Imported Upstream version 0.19.7
[platform/upstream/gettext.git] / gettext-tools / po / fi.po
index d5fb67c..c74207d 100644 (file)
@@ -1,16 +1,16 @@
 # Finnish translations for GNU Gettext package.
 # This file is distributed under the same license as the gettext package.
-# Copyright © 2002, 2009, 2010, 2013 Free Software Foundation, Inc.
+# Copyright © 2002, 2009, 2010, 2013, 2014, 2015 Free Software Foundation, Inc.
 # Sami J. Laine <sami.laine@iki.fi>, 2002
 # Lauri Nurmi <lanurmi@iki.fi>, 2009
-# Jorma Karvonen <karvonen.jorma@gmail.com>, 2010, 2013.
+# Jorma Karvonen <karvonen.jorma@gmail.com>, 2010, 2013-2015.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gettext-tools 0.18.2\n"
+"Project-Id-Version: gettext-tools 0.19.4.73\n"
 "Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
-"POT-Creation-Date: 2014-01-07 15:19+0900\n"
-"PO-Revision-Date: 2013-03-03 11:26+0200\n"
+"POT-Creation-Date: 2015-12-28 08:26+0900\n"
+"PO-Revision-Date: 2015-09-01 19:17+0300\n"
 "Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
 "Language: fi\n"
@@ -18,7 +18,6 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.5.4\n"
 
 #: gnulib-lib/argmatch.c:133
 #, c-format
@@ -34,24 +33,24 @@ msgstr "argumentti %s kontekstille %s ei ole yksiselitteinen"
 msgid "Valid arguments are:"
 msgstr "Kelvolliset argumentit ovat:"
 
-#: gnulib-lib/clean-temp.c:332
+#: gnulib-lib/clean-temp.c:325
 #, c-format
 msgid "cannot find a temporary directory, try setting $TMPDIR"
 msgstr ""
 "tilapäisen hakemiston löytäminen epäonnistui, yritä asettaa $TMPDIR-muuttuja"
 
-#: gnulib-lib/clean-temp.c:346
+#: gnulib-lib/clean-temp.c:339
 #, c-format
 msgid "cannot create a temporary directory using template \"%s\""
 msgstr ""
 "tilapäisen hakemiston luominen mallinnetta ”%s” käyttämällä epäonnistui"
 
-#: gnulib-lib/clean-temp.c:442
+#: gnulib-lib/clean-temp.c:435
 #, c-format
 msgid "cannot remove temporary file %s"
 msgstr "väliaikaistiedoston %s poistaminen epäonnistui"
 
-#: gnulib-lib/clean-temp.c:457
+#: gnulib-lib/clean-temp.c:450
 #, c-format
 msgid "cannot remove temporary directory %s"
 msgstr "tilapäisen hakemiston %s poistaminen epäonnistui"
@@ -60,40 +59,40 @@ msgstr "tilapäisen hakemiston %s poistaminen epäonnistui"
 msgid "write error"
 msgstr "kirjoitusvirhe"
 
-#: gnulib-lib/copy-acl.c:54 gnulib-lib/copy-file.c:217
+#: gnulib-lib/copy-acl.c:54 gnulib-lib/copy-file.c:214
 #, c-format
 msgid "preserving permissions for %s"
 msgstr "säilytetään käyttöoikeudet kohteelle %s"
 
-#: gnulib-lib/copy-file.c:194
+#: gnulib-lib/copy-file.c:191
 #, c-format
 msgid "error while opening %s for reading"
 msgstr "virhe avattaessa tiedostoa %s lukemista varten"
 
-#: gnulib-lib/copy-file.c:198
+#: gnulib-lib/copy-file.c:195
 #, c-format
 msgid "cannot open backup file %s for writing"
 msgstr "varmuuskopiotiedoston %s avaaminen kirjoittamista varten epäonnistui"
 
-#: gnulib-lib/copy-file.c:202
+#: gnulib-lib/copy-file.c:199
 #, c-format
 msgid "error reading %s"
 msgstr "virhe luettaessa tiedostoa %s"
 
-#: gnulib-lib/copy-file.c:206
+#: gnulib-lib/copy-file.c:203
 #, c-format
 msgid "error writing %s"
 msgstr "virhe kirjoitettaessa tiedostoa %s"
 
-#: gnulib-lib/copy-file.c:210
+#: gnulib-lib/copy-file.c:207
 #, c-format
 msgid "error after reading %s"
 msgstr "virhe tiedoston %s lukemisen jälkeen"
 
 #: gnulib-lib/csharpcomp.c:310 gnulib-lib/javaversion.c:76 src/msginit.c:897
-#: src/msginit.c:972 src/msginit.c:1132 src/msginit.c:1231
-#: src/read-csharp.c:72 src/read-java.c:70 src/read-resources.c:73
-#: src/read-tcl.c:110 src/write-resources.c:77
+#: src/msginit.c:972 src/msginit.c:1132 src/msginit.c:1231 src/msginit.c:1396
+#: src/read-csharp.c:73 src/read-java.c:71 src/read-resources.c:74
+#: src/read-tcl.c:111 src/write-resources.c:78
 #, c-format
 msgid "fdopen() failed"
 msgstr "fdopen() epäonnistui"
@@ -108,98 +107,104 @@ msgstr "C#-kääntäjää ei löytynyt, yritä asentaa pnet"
 msgid "C# virtual machine not found, try installing pnet"
 msgstr "C#-virtuaalikonetta ei löytynyt, yritä asentaa pnet"
 
-#: gnulib-lib/error.c:188
+#: gnulib-lib/error.c:191
 msgid "Unknown system error"
 msgstr "Tuntematon järjestelmän virhe"
 
-#: gnulib-lib/execute.c:189 gnulib-lib/execute.c:262
-#: gnulib-lib/spawn-pipe.c:234 gnulib-lib/spawn-pipe.c:348
+#: gnulib-lib/execute.c:191 gnulib-lib/execute.c:264
+#: gnulib-lib/spawn-pipe.c:236 gnulib-lib/spawn-pipe.c:350
 #: gnulib-lib/wait-process.c:282 gnulib-lib/wait-process.c:356
 #, c-format
 msgid "%s subprocess failed"
 msgstr "%s aliprosessi epäonnistui"
 
-#: gnulib-lib/getopt.c:547 gnulib-lib/getopt.c:576
+#: gnulib-lib/getopt.c:575 gnulib-lib/getopt.c:604
 #, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: valitsin ’%s’ ei ole yksiselitteinen; mahdollisuudet:"
 
-#: gnulib-lib/getopt.c:624 gnulib-lib/getopt.c:628
+#: gnulib-lib/getopt.c:619
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: valitsin ’%s’ ei ole yksiselitteinen\n"
+
+#: gnulib-lib/getopt.c:654 gnulib-lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: valitsin ’--%s’ ei salli argumenttia\n"
 
-#: gnulib-lib/getopt.c:637 gnulib-lib/getopt.c:642
+#: gnulib-lib/getopt.c:667 gnulib-lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: valitsin ’%c%s’ ei salli argumenttia\n"
 
-#: gnulib-lib/getopt.c:685 gnulib-lib/getopt.c:704
+#: gnulib-lib/getopt.c:715 gnulib-lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: valitsin ’--%s’ vaatii argumentin\n"
 
-#: gnulib-lib/getopt.c:742 gnulib-lib/getopt.c:745
+#: gnulib-lib/getopt.c:772 gnulib-lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: tunnistamaton valitsin ’--%s’\n"
 
-#: gnulib-lib/getopt.c:753 gnulib-lib/getopt.c:756
+#: gnulib-lib/getopt.c:783 gnulib-lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: tunnistamaton valitsin ’%c%s’\n"
 
-#: gnulib-lib/getopt.c:805 gnulib-lib/getopt.c:808
+#: gnulib-lib/getopt.c:835 gnulib-lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: virheellinen valitsin -- ’%c’\n"
 
-#: gnulib-lib/getopt.c:861 gnulib-lib/getopt.c:878 gnulib-lib/getopt.c:1088
-#: gnulib-lib/getopt.c:1106
+#: gnulib-lib/getopt.c:891 gnulib-lib/getopt.c:908 gnulib-lib/getopt.c:1118
+#: gnulib-lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: valitsin vaatii argumentin -- ’%c’\n"
 
-#: gnulib-lib/getopt.c:934 gnulib-lib/getopt.c:950
+#: gnulib-lib/getopt.c:964 gnulib-lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: valitsin ’-W %s’ ei ole yksiselitteinen\n"
 
-#: gnulib-lib/getopt.c:974 gnulib-lib/getopt.c:992
+#: gnulib-lib/getopt.c:1004 gnulib-lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: valitsin ’-W %s’ ei salli argumenttia\n"
 
-#: gnulib-lib/getopt.c:1013 gnulib-lib/getopt.c:1031
+#: gnulib-lib/getopt.c:1043 gnulib-lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: valitsin ’-W %s’ vaatii argumentin\n"
 
-#: gnulib-lib/javacomp.c:126 gnulib-lib/javacomp.c:140
-#: gnulib-lib/javacomp.c:156
+#: gnulib-lib/javacomp.c:121 gnulib-lib/javacomp.c:135
+#: gnulib-lib/javacomp.c:151
 #, c-format
 msgid "invalid source_version argument to compile_java_class"
 msgstr "virheellinen source_version-argumentti kohteelle compile_java_class"
 
-#: gnulib-lib/javacomp.c:171 gnulib-lib/javacomp.c:192
+#: gnulib-lib/javacomp.c:166 gnulib-lib/javacomp.c:187
 #, c-format
 msgid "invalid target_version argument to compile_java_class"
 msgstr "virheellinen target_version-argumentti kohteelle compile_java_class"
 
-#: gnulib-lib/javacomp.c:503 src/write-csharp.c:739 src/write-java.c:1131
-#: src/write-java.c:1143
+#: gnulib-lib/javacomp.c:498 src/write-csharp.c:739 src/write-java.c:1141
+#: src/write-java.c:1149 src/write-java.c:1177 src/write-java.c:1189
 #, c-format
 msgid "failed to create \"%s\""
 msgstr "tiedoston ”%s” luominen epäonnistui"
 
-#: gnulib-lib/javacomp.c:510 src/write-catalog.c:255 src/write-catalog.c:319
-#: src/write-csharp.c:748 src/write-java.c:1152 src/write-mo.c:811
-#: src/write-qt.c:748 src/write-tcl.c:222
+#: gnulib-lib/javacomp.c:505 src/write-catalog.c:256 src/write-catalog.c:320
+#: src/write-csharp.c:748 src/write-desktop.c:182 src/write-java.c:1157
+#: src/write-java.c:1198 src/write-mo.c:812 src/write-qt.c:749
+#: src/write-tcl.c:223 src/write-xml.c:75
 #, c-format
 msgid "error while writing \"%s\" file"
 msgstr "virhe kirjoitettaessa tiedostoa ”%s”"
 
-#: gnulib-lib/javacomp.c:2343
+#: gnulib-lib/javacomp.c:2338
 #, c-format
 msgid "Java compiler not found, try installing gcj or set $JAVAC"
 msgstr ""
@@ -212,14 +217,14 @@ msgstr ""
 "Java-virtuaalikonetta ei löytynyt, yritä asentaa gij tai aseta muuttuja $JAVA"
 
 #: gnulib-lib/javaversion.c:84 src/msginit.c:905 src/msginit.c:980
-#: src/msginit.c:1140
+#: src/msginit.c:1140 src/msginit.c:1404
 #, c-format
 msgid "%s subprocess I/O error"
 msgstr "%s aliprosessisiirräntävirhe"
 
-#: gnulib-lib/obstack.c:413 gnulib-lib/obstack.c:415 gnulib-lib/xmalloc.c:37
-#: gnulib-lib/xsetenv.c:37 src/msgl-check.c:559 src/po-lex.c:83
-#: src/po-lex.c:102 src/x-glade.c:817 libgettextpo/gettext-po.c:1328
+#: gnulib-lib/obstack.c:338 gnulib-lib/obstack.c:340 gnulib-lib/xmalloc.c:38
+#: gnulib-lib/xsetenv.c:37 src/cldr-plurals.c:61 src/msgl-check.c:564
+#: src/po-lex.c:83 src/po-lex.c:102 libgettextpo/gettext-po.c:1326
 #, c-format
 msgid "memory exhausted"
 msgstr "muisti loppui"
@@ -230,13 +235,13 @@ msgstr "muisti loppui"
 msgid "creation of threads failed"
 msgstr "säikeiden luominen epäonnistui"
 
-#: gnulib-lib/pipe-filter-ii.c:224 gnulib-lib/pipe-filter-ii.c:374
-#: src/msgexec.c:389
+#: gnulib-lib/pipe-filter-ii.c:224 gnulib-lib/pipe-filter-ii.c:381
+#: src/msgexec.c:427
 #, c-format
 msgid "write to %s subprocess failed"
 msgstr "kirjoittaminen aliprosessiin %s epäonnistui"
 
-#: gnulib-lib/pipe-filter-ii.c:245 gnulib-lib/pipe-filter-ii.c:417
+#: gnulib-lib/pipe-filter-ii.c:245 gnulib-lib/pipe-filter-ii.c:424
 #, c-format
 msgid "read from %s subprocess failed"
 msgstr "lukeminen aliprosessista %s epäonnistui"
@@ -246,12 +251,12 @@ msgstr "lukeminen aliprosessista %s epäonnistui"
 msgid "cannot set up nonblocking I/O to %s subprocess"
 msgstr "ei-lukitsevan siirron asettaminen aliprosessiin %s epäonnistui"
 
-#: gnulib-lib/pipe-filter-ii.c:329
+#: gnulib-lib/pipe-filter-ii.c:336
 #, c-format
 msgid "communication with %s subprocess failed"
 msgstr "viestintä aliprosessin %s kanssa epäonnistui"
 
-#: gnulib-lib/pipe-filter-ii.c:449
+#: gnulib-lib/pipe-filter-ii.c:456
 #, c-format
 msgid "%s subprocess terminated with exit code %d"
 msgstr "%s aliprosessi päättyi poistumiskoodilla %d"
@@ -277,11 +282,11 @@ msgstr "%s aliprosessi päättyi poistumiskoodilla %d"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnulib-lib/quotearg.c:312
+#: gnulib-lib/quotearg.c:347
 msgid "`"
 msgstr "”"
 
-#: gnulib-lib/quotearg.c:313
+#: gnulib-lib/quotearg.c:348
 msgid "'"
 msgstr "”"
 
@@ -290,8 +295,8 @@ msgstr "”"
 msgid "setting permissions for %s"
 msgstr "asetetaan käyttöoikeuksia kohteelle %s"
 
-#: gnulib-lib/spawn-pipe.c:140 gnulib-lib/spawn-pipe.c:143
-#: gnulib-lib/spawn-pipe.c:264 gnulib-lib/spawn-pipe.c:267
+#: gnulib-lib/spawn-pipe.c:142 gnulib-lib/spawn-pipe.c:145
+#: gnulib-lib/spawn-pipe.c:266 gnulib-lib/spawn-pipe.c:269
 #, c-format
 msgid "cannot create pipe"
 msgstr "putken luominen epäonnistui"
@@ -317,22 +322,163 @@ msgstr "%s aliprosessi"
 msgid "%s subprocess got fatal signal %d"
 msgstr "%s aliprosessi vastaanotti fataalin signaalin %d"
 
-#: src/file-list.c:53 src/msggrep.c:247 src/open-catalog.c:122
-#: src/read-mo.c:252 src/read-tcl.c:125 src/urlget.c:216 src/xgettext.c:1925
-#: src/xgettext.c:1938 src/xgettext.c:1948
+#: src/cldr-plurals.c:69
 #, c-format
-msgid "error while opening \"%s\" for reading"
-msgstr "virhe avattaessa tiedostoa ”%s” lukemista varten"
+msgid "The root element must be <%s>"
+msgstr ""
+
+#: src/cldr-plurals.c:83
+#, fuzzy, c-format
+msgid "The element <%s> does not contain a <%s> element"
+msgstr "Juurielementti <%s> ei ole sallittu virheettömässä Glade-tiedostossa"
 
-#: src/format.c:151
+#: src/cldr-plurals.c:105 src/cldr-plurals.c:146
 #, c-format
-msgid "'%s' is not a valid %s format string, unlike '%s'. Reason: %s"
-msgstr "’%s’ ei ole kelvollinen %s-muotomerkkijono, toisin kuin ’%s’. Syy: %s"
+msgid "The element <%s> does not have attribute <%s>"
+msgstr ""
+
+#: src/cldr-plurals.c:191 src/hostname.c:210 src/msgattrib.c:418
+#: src/msgcat.c:364 src/msgcmp.c:210 src/msgcomm.c:356 src/msgconv.c:304
+#: src/msgen.c:301 src/msgexec.c:260 src/msgfilter.c:410 src/msgfmt.c:914
+#: src/msggrep.c:513 src/msginit.c:359 src/msgmerge.c:495 src/msgunfmt.c:424
+#: src/msguniq.c:323 src/recode-sr-latin.c:144 src/urlget.c:173
+#: src/xgettext.c:1044
+#, c-format
+msgid "Try '%s --help' for more information.\n"
+msgstr "Komento ’%s --help’ antaa lisää tietoja.\n"
+
+#: src/cldr-plurals.c:195
+#, fuzzy, c-format
+msgid "Usage: %s [OPTION...] [LOCALE RULES]...\n"
+msgstr "Käyttö: %s [VALITSIN] [TIEDOSTO]...\n"
+
+#: src/cldr-plurals.c:200
+#, c-format, no-wrap
+msgid ""
+"Extract or convert Unicode CLDR plural rules.\n"
+"\n"
+"If both LOCALE and RULES are specified, it reads CLDR plural rules for\n"
+"LOCALE from RULES and print them in a form suitable for gettext use.\n"
+"If no argument is given, it reads CLDR plural rules from the standard input.\n"
+msgstr ""
+
+#: src/cldr-plurals.c:209 src/msgfmt.c:927 src/xgettext.c:1057
+#, c-format, no-wrap
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"Similarly for optional arguments.\n"
+msgstr ""
+"Pitkien valitsinten pakolliset argumentit ovat pakollisia myös lyhyille.\n"
+"Valinnaiset argumentit vastaavasti.\n"
+
+#: src/cldr-plurals.c:214
+#, fuzzy, c-format
+msgid "  -c, --cldr                  print plural rules in the CLDR format\n"
+msgstr "  -V, --version                Näytä versiotiedot\n"
+
+#: src/cldr-plurals.c:216 src/hostname.c:233 src/msgattrib.c:537
+#: src/msgcat.c:472 src/msgcmp.c:261 src/msgcomm.c:458 src/msgconv.c:388
+#: src/msgen.c:384 src/msgexec.c:309 src/msgfilter.c:510 src/msgfmt.c:1080
+#: src/msggrep.c:631 src/msginit.c:423 src/msgmerge.c:622 src/msgunfmt.c:530
+#: src/msguniq.c:420 src/recode-sr-latin.c:165 src/urlget.c:189
+#: src/xgettext.c:1230
+#, c-format, no-wrap
+msgid "  -h, --help                  display this help and exit\n"
+msgstr "  -h, --help                  näytä tämä ohje ja poistu\n"
+
+#: src/cldr-plurals.c:218 src/hostname.c:235 src/msgattrib.c:539
+#: src/msgcat.c:474 src/msgcmp.c:263 src/msgcomm.c:460 src/msgconv.c:390
+#: src/msgen.c:386 src/msgexec.c:311 src/msgfilter.c:512 src/msgfmt.c:1082
+#: src/msggrep.c:633 src/msginit.c:425 src/msgmerge.c:624 src/msgunfmt.c:532
+#: src/msguniq.c:422 src/recode-sr-latin.c:168 src/urlget.c:191
+#: src/xgettext.c:1232
+#, c-format, no-wrap
+msgid "  -V, --version               output version information and exit\n"
+msgstr "  -V, --version               tulosta ohjelman versiotiedot ja poistu\n"
+
+#. TRANSLATORS: The placeholder indicates the bug-reporting address
+#. for this package.  Please add _another line_ saying
+#. "Report translation bugs to <...>\n" with the address for translation
+#. bugs (typically your translation team's web or email address).
+#: src/cldr-plurals.c:225 src/hostname.c:242 src/msgattrib.c:546
+#: src/msgcat.c:481 src/msgcmp.c:270 src/msgcomm.c:467 src/msgconv.c:397
+#: src/msgen.c:393 src/msgexec.c:318 src/msgfilter.c:519 src/msgfmt.c:1093
+#: src/msggrep.c:640 src/msginit.c:432 src/msgmerge.c:635 src/msgunfmt.c:541
+#: src/msguniq.c:429 src/recode-sr-latin.c:175 src/urlget.c:200
+#: src/xgettext.c:1239
+msgid "Report bugs to <bug-gnu-gettext@gnu.org>.\n"
+msgstr ""
+"Ilmoita ohjelmiston vioista (englanniksi) osoitteeseen <bug-gnu-gettext@gnu."
+"org>.\n"
+"Ilmoita suomennoksen vioista osoitteeseen <translation-team-fi@lists."
+"sourceforge.net>.\n"
+
+# Käännetty M. Välimäen GPLv3-käännöksestä vihjeitä katsoen.
+#: src/cldr-plurals.c:289 src/hostname.c:181 src/msgattrib.c:356
+#: src/msgcat.c:295 src/msgcmp.c:173 src/msgcomm.c:286 src/msgconv.c:245
+#: src/msgen.c:242 src/msgexec.c:187 src/msgfilter.c:289 src/msgfmt.c:444
+#: src/msggrep.c:420 src/msginit.c:269 src/msgmerge.c:357 src/msgunfmt.c:263
+#: src/msguniq.c:265 src/recode-sr-latin.c:111 src/urlget.c:144
+#: src/xgettext.c:678
+#, c-format, no-wrap
+msgid ""
+"Copyright (C) %s Free Software Foundation, Inc.\n"
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+msgstr ""
+"Copyright © %s Free Software Foundation, Inc.\n"
+"Lisenssi GPLv3+: GNU GPL versio 3 tai myöhempi <http://gnu.org/licenses/gpl.html>\n"
+"Tämä on vapaa ohjelmisto ja sen muuttaminen ja levittäminen edelleen on sallittua.\n"
+"Ohjelmalle EI ANNETA TAKUUTA lain sallimissa rajoissa.\n"
+
+#: src/cldr-plurals.c:295 src/hostname.c:187 src/msgattrib.c:362
+#: src/msgcat.c:301 src/msgcmp.c:179 src/msgcomm.c:292 src/msgconv.c:251
+#: src/msgen.c:248 src/msgexec.c:193 src/msgfilter.c:295 src/msgfmt.c:450
+#: src/msggrep.c:426 src/msginit.c:275 src/msgmerge.c:363 src/msgunfmt.c:269
+#: src/msguniq.c:271 src/urlget.c:150 src/xgettext.c:684
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Kirjoittanut %s.\n"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/cldr-plurals.c:295
+msgid "Daiki Ueno"
+msgstr ""
+
+#: src/cldr-plurals.c:315
+#, fuzzy, c-format
+msgid "%s cannot be read"
+msgstr "%s on olemassa, mutta sen lukeminen epäonnistui"
+
+#: src/cldr-plurals.c:321
+#, fuzzy, c-format
+msgid "cannot extract rules for %s"
+msgstr "tilapäisen hakemiston %s poistaminen epäonnistui"
+
+#: src/cldr-plurals.c:331
+#, c-format
+msgid "cannot parse CLDR rule"
+msgstr ""
+
+#: src/cldr-plurals.c:366
+#, c-format
+msgid "extra operand %s"
+msgstr ""
+
+#: src/file-list.c:54 src/msggrep.c:248 src/open-catalog.c:123
+#: src/read-mo.c:262 src/read-tcl.c:126 src/urlget.c:217
+#: src/write-desktop.c:172 src/xgettext.c:2184 src/xgettext.c:2197
+#: src/xgettext.c:2207
+#, c-format
+msgid "error while opening \"%s\" for reading"
+msgstr "virhe avattaessa tiedostoa ”%s” lukemista varten"
 
-#: src/format-awk.c:509 src/format-boost.c:617 src/format-elisp.c:348
-#: src/format-gcc-internal.c:627 src/format-librep.c:312 src/format-lua.c:228
-#: src/format-pascal.c:397 src/format-perl.c:584 src/format-php.c:350
-#: src/format-qt.c:173 src/format-tcl.c:390 src/format-ycp.c:147
+#: src/format-awk.c:510 src/format-boost.c:618 src/format-elisp.c:349
+#: src/format-gcc-internal.c:627 src/format-kde.c:224 src/format-librep.c:313
+#: src/format-lua.c:228 src/format-pascal.c:398 src/format-perl.c:585
+#: src/format-php.c:351 src/format-qt.c:174 src/format-tcl.c:391
+#: src/format-ycp.c:148
 #, c-format
 msgid ""
 "a format specification for argument %u, as in '%s', doesn't exist in '%s'"
@@ -340,33 +486,39 @@ msgstr ""
 "muotomäärittelyä argumentille %u sellaisena kuin merkkijonossa ’%s’, ei ole "
 "olemassa merkkijonossa ’%s’"
 
-#: src/format-awk.c:520 src/format-boost.c:628 src/format-elisp.c:359
-#: src/format-gcc-internal.c:638 src/format-librep.c:323 src/format-lua.c:235
-#: src/format-pascal.c:408 src/format-perl.c:595 src/format-php.c:361
-#: src/format-qt.c:170 src/format-tcl.c:401 src/format-ycp.c:144
+#: src/format-awk.c:521 src/format-boost.c:629 src/format-elisp.c:360
+#: src/format-gcc-internal.c:638 src/format-kde.c:235 src/format-librep.c:324
+#: src/format-lua.c:235 src/format-pascal.c:409 src/format-perl.c:596
+#: src/format-php.c:362 src/format-qt.c:171 src/format-tcl.c:402
+#: src/format-ycp.c:145
 #, c-format
 msgid "a format specification for argument %u doesn't exist in '%s'"
 msgstr "muotomäärittelyä argumentille %u ei ole merkkijonossa ’%s’"
 
-#: src/format-awk.c:540 src/format-boost.c:648 src/format-c.c:146
-#: src/format-elisp.c:379 src/format-gcc-internal.c:658
-#: src/format-gfc-internal.c:372 src/format-javascript.c:227
-#: src/format-librep.c:343 src/format-lua.c:242 src/format-pascal.c:428
-#: src/format-perl.c:615 src/format-php.c:381 src/format-python.c:527
-#: src/format-tcl.c:421
+#: src/format-awk.c:541 src/format-boost.c:649 src/format-c.c:147
+#: src/format-elisp.c:380 src/format-gcc-internal.c:658
+#: src/format-gfc-internal.c:372 src/format-javascript.c:228
+#: src/format-librep.c:344 src/format-lua.c:242 src/format-pascal.c:429
+#: src/format-perl.c:616 src/format-php.c:382 src/format-python.c:528
+#: src/format-tcl.c:422
 #, c-format
 msgid "format specifications in '%s' and '%s' for argument %u are not the same"
 msgstr ""
 "muotomäärittelyt eivät ole samat merkkijonossa ’%s’ ja merkkijonossa ’%s’ "
 "argumentille %u"
 
-#: src/format-boost.c:449
+#: src/format-boost.c:450
 #, c-format
 msgid "The directive number %u starts with | but does not end with |."
 msgstr "Direktiivinumero %u alkaa merkillä | mutta ei pääty merkkeihin |."
 
+#: src/format.c:152
+#, c-format
+msgid "'%s' is not a valid %s format string, unlike '%s'. Reason: %s"
+msgstr "’%s’ ei ole kelvollinen %s-muotomerkkijono, toisin kuin ’%s’. Syy: %s"
+
 #  Sanalla token on eri merkityksiä eri asiayhteyksissä. Tässä otaksun, että kyse on merkkijonosta, joka ei sisällä tyhjemerkkejä (välilyöntejä)
-#: src/format-c.c:36
+#: src/format-c.c:37
 #, c-format
 msgid ""
 "In the directive number %u, the token after '<' is not the name of a format "
@@ -376,66 +528,66 @@ msgstr ""
 "muotomääritemakron nimi. Kelvolliset makronimet luetellaan ISO C 99 luvussa "
 "7.8.1"
 
-#: src/format-c.c:39
+#: src/format-c.c:40
 #, c-format
 msgid "In the directive number %u, the token after '<' is not followed by '>'."
 msgstr ""
 "Direktiivissä numero %u merkin ’<’ jäljessä olevaa merkkijonoa ei seuraa "
 "merkki ’>’."
 
-#: src/format-c.c:42 src/format-gfc-internal.c:289
+#: src/format-c.c:43 src/format-gfc-internal.c:289
 #, c-format
 msgid "The string refers to argument number %u but ignores argument number %u."
 msgstr ""
 "Merkkijono viittaa argumenttiin numero %u, mutta ohittaa argumentin numero "
 "%u."
 
-#: src/format-c.c:137 src/format-csharp.c:206 src/format-gfc-internal.c:363
-#: src/format-javascript.c:215 src/format-python.c:515
-#: src/format-qt-plural.c:110
+#: src/format-c.c:138 src/format-csharp.c:207 src/format-gfc-internal.c:363
+#: src/format-javascript.c:216 src/format-python.c:516
+#: src/format-qt-plural.c:111
 #, c-format
 msgid "number of format specifications in '%s' and '%s' does not match"
 msgstr ""
 "muotomäärittelyiden määrä merkkijonossa ’%s’ ja merkkijonossa ’%s’ ei täsmää"
 
-#: src/format-csharp.c:88 src/format-java.c:205
+#: src/format-csharp.c:89 src/format-java.c:206
 #, c-format
 msgid "In the directive number %u, '{' is not followed by an argument number."
 msgstr "Direktiivissä numero %u argumenttinumeroa ei ole merkin ’{’ jäljessä."
 
-#: src/format-csharp.c:109
+#: src/format-csharp.c:110
 #, c-format
 msgid "In the directive number %u, ',' is not followed by a number."
 msgstr "Direktiivissä numero %u numeroa ei ole merkin ’,’ jäljessä."
 
-#: src/format-csharp.c:130 src/format-java.c:191
+#: src/format-csharp.c:131 src/format-java.c:192
 msgid ""
 "The string ends in the middle of a directive: found '{' without matching '}'."
 msgstr ""
 "Merkkijono loppuu keskellä direktiiviä: löytyi ’{’ ilman päättävää suljetta "
 "’}’."
 
-#: src/format-csharp.c:139
+#: src/format-csharp.c:140
 #, c-format
 msgid ""
 "The directive number %u ends with an invalid character '%c' instead of '}'."
 msgstr ""
 "Direktiivi numero %u päättyy virheelliseen merkkiin ’%c’ eikä sulkeeseen ’}’."
 
-#: src/format-csharp.c:140
+#: src/format-csharp.c:141
 #, c-format
 msgid "The directive number %u ends with an invalid character instead of '}'."
 msgstr ""
 "Direktiivi numero %u päättyy virheelliseen merkkiin eikä sulkeeseen ’}’."
 
-#: src/format-csharp.c:161 src/format-java.c:346
+#: src/format-csharp.c:162 src/format-java.c:347
 msgid ""
 "The string starts in the middle of a directive: found '}' without matching "
 "'{'."
 msgstr ""
 "Merkkijono alkaa keskeltä direktiiviä: löytyi ’}’ ilman alkusuljetta ’{’."
 
-#: src/format-csharp.c:162
+#: src/format-csharp.c:163
 #, c-format
 msgid "The string contains a lone '}' after directive number %u."
 msgstr ""
@@ -557,42 +709,42 @@ msgid "The string refers to argument number %u in incompatible ways."
 msgstr ""
 "Merkkijono viittaa argumenttinumeroon %u yhteensopimattomilla tavoilla."
 
-#: src/format-java.c:240
+#: src/format-java.c:241
 #, c-format
 msgid ""
 "In the directive number %u, the substring \"%s\" is not a valid date/time "
 "style."
 msgstr ""
-"Direktiivissä numero %u osamerkkijono ”%s” ei ole kelvollinen päivämäärä/"
-"aika -tyyli."
+"Direktiivissä numero %u osamerkkijono ”%s” ei ole kelvollinen päivämäärä"
+"tai aikatyyli."
 
-#: src/format-java.c:251 src/format-java.c:285 src/format-java.c:314
+#: src/format-java.c:252 src/format-java.c:286 src/format-java.c:315
 #, c-format
 msgid "In the directive number %u, \"%s\" is not followed by a comma."
 msgstr "Direktiivissä numero %u pilkku ei seuraa merkkijonoa ”%s”."
 
-#: src/format-java.c:274
+#: src/format-java.c:275
 #, c-format
 msgid ""
 "In the directive number %u, the substring \"%s\" is not a valid number style."
 msgstr ""
 "Direktiivissä numero %u osamerkkijono ”%s” ei ole kelvollinen numerotyyli."
 
-#: src/format-java.c:323
+#: src/format-java.c:324
 #, c-format
 msgid ""
 "In the directive number %u, the argument number is not followed by a comma "
 "and one of \"%s\", \"%s\", \"%s\", \"%s\"."
 msgstr ""
 "Direktiivissä numero %u argumenttinumeroa ei seuraa pilkku tai yksi "
-"seuraavista: ”%s”, ”%s”, ”%s”,”%s”."
+"seuraavista: ”%s”, ”%s”, ”%s”, ”%s”."
 
-#: src/format-java.c:572
+#: src/format-java.c:573
 #, c-format
 msgid "In the directive number %u, a choice contains no number."
 msgstr "Direktiivissä numero %u valinta ei sisällä numeroa."
 
-#: src/format-java.c:583
+#: src/format-java.c:584
 #, c-format
 msgid ""
 "In the directive number %u, a choice contains a number that is not followed "
@@ -601,7 +753,7 @@ msgstr ""
 "Direktiivissä numero %u valinta sisältää numeron, jota ei seuraa ’<’, ’#’ "
 "eikä ’%s’."
 
-#: src/format-java.c:745
+#: src/format-java.c:746
 #, c-format
 msgid ""
 "a format specification for argument {%u}, as in '%s', doesn't exist in '%s'"
@@ -609,12 +761,12 @@ msgstr ""
 "muotomäärittelyä argumentille {%u}, kuten merkkijonossa ’%s’, ei ole "
 "merkkijonossa ’%s’"
 
-#: src/format-java.c:756
+#: src/format-java.c:757
 #, c-format
 msgid "a format specification for argument {%u} doesn't exist in '%s'"
 msgstr "muotomäärittelyä argumentille {%u} ei ole merkkijonossa ’%s’"
 
-#: src/format-java.c:776
+#: src/format-java.c:777
 #, c-format
 msgid ""
 "format specifications in '%s' and '%s' for argument {%u} are not the same"
@@ -622,8 +774,30 @@ msgstr ""
 "muotomäärittelyt eivät ole samat merkkijonossa ’%s’ ja merkkijonossa ’%s’ "
 "argumentille {%u}"
 
-#: src/format-lisp.c:2337 src/format-lisp.c:2349 src/format-scheme.c:2363
-#: src/format-scheme.c:2375
+#: src/format-kde.c:159
+#, c-format
+msgid ""
+"The string refers to argument number %u but ignores the arguments %u and %u."
+msgstr ""
+"Merkkijono viittaa argumenttiin numero %u, mutta ohittaa argumentit %u ja %u."
+
+#: src/format-kde.c:243
+#, c-format
+msgid ""
+"a format specification for arguments %u and %u doesn't exist in '%s', only "
+"one argument may be ignored"
+msgstr ""
+"muotomäärittelyä argumenteille %u ja %u ei ole olemassa merkkijonossa ’%s’, "
+"vain yksi argumentti voidaan ohittaa"
+
+#: src/format-kde-kuit.c:244 src/format-kde-kuit.c:264
+#: src/format-kde-kuit.c:274
+#, c-format
+msgid "error while parsing: %s"
+msgstr "virhe jäsennettäessä: ”%s”"
+
+#: src/format-lisp.c:2340 src/format-lisp.c:2352 src/format-scheme.c:2365
+#: src/format-scheme.c:2377
 #, c-format
 msgid ""
 "In the directive number %u, parameter %u is of type '%s' but a parameter of "
@@ -632,7 +806,7 @@ msgstr ""
 "Direktiivissä numero %u parametri %u on ’%s’-tyyppinen, mutta odotettiin "
 "’%s’-tyyppistä parametriä."
 
-#: src/format-lisp.c:2372 src/format-scheme.c:2398
+#: src/format-lisp.c:2375 src/format-scheme.c:2400
 #, c-format
 msgid ""
 "In the directive number %u, too many parameters are given; expected at most "
@@ -647,33 +821,33 @@ msgstr[1] ""
 "Direktiivissä numero %u annettiin liian monia parametreja; odotettiin "
 "korkeintaan %u parametria."
 
-#: src/format-lisp.c:2496 src/format-scheme.c:2499
+#: src/format-lisp.c:2499 src/format-scheme.c:2501
 #, c-format
 msgid "In the directive number %u, '%c' is not followed by a digit."
 msgstr "Direktiivissä numero %u merkkiä ’%c’ ei seuraa luku."
 
-#: src/format-lisp.c:2736 src/format-scheme.c:2754
+#: src/format-lisp.c:2739 src/format-scheme.c:2756
 #, c-format
 msgid "In the directive number %u, the argument %d is negative."
 msgstr "Direktiivissä numero %u argumentti %d on negatiivinen."
 
-#: src/format-lisp.c:2805
+#: src/format-lisp.c:2808
 msgid "The string ends in the middle of a ~/.../ directive."
 msgstr "Merkkijono loppuu keskellä ~/.../-direktiiviä."
 
-#: src/format-lisp.c:2843 src/format-lisp.c:3108 src/format-lisp.c:3225
-#: src/format-lisp.c:3285 src/format-lisp.c:3397 src/format-scheme.c:2840
-#: src/format-scheme.c:3105 src/format-scheme.c:3222 src/format-scheme.c:3320
+#: src/format-lisp.c:2846 src/format-lisp.c:3111 src/format-lisp.c:3228
+#: src/format-lisp.c:3288 src/format-lisp.c:3400 src/format-scheme.c:2842
+#: src/format-scheme.c:3107 src/format-scheme.c:3224 src/format-scheme.c:3322
 #, c-format
 msgid "Found '~%c' without matching '~%c'."
 msgstr "Löytyi ’~%c’ ilman täsmäävää ’~%c’."
 
-#: src/format-lisp.c:2863 src/format-scheme.c:2860
+#: src/format-lisp.c:2866 src/format-scheme.c:2862
 #, c-format
 msgid "In the directive number %u, both the @ and the : modifiers are given."
 msgstr "Direktiivissä numero %u annettiin sekä @- että :-määritteet."
 
-#: src/format-lisp.c:2976 src/format-scheme.c:2973
+#: src/format-lisp.c:2979 src/format-scheme.c:2975
 #, c-format
 msgid ""
 "In the directive number %u, '~:[' is not followed by two clauses, separated "
@@ -682,32 +856,38 @@ msgstr ""
 "Direktiivissä numero %u merkkien ’~:[’ jäljessä ei ole kaksi lausetta, jotka "
 "on eroteltu merkeillä ’~;’."
 
-#: src/format-lisp.c:3326 src/format-scheme.c:3263
+#: src/format-lisp.c:3329 src/format-scheme.c:3265
 #, c-format
 msgid "In the directive number %u, '~;' is used in an invalid position."
 msgstr ""
 "Direktiivissä numero %u merkkejä ’~;’ käytetään virheellisessä paikassa."
 
-#: src/format-lisp.c:3432 src/format-scheme.c:3355
+#: src/format-lisp.c:3435 src/format-scheme.c:3357
 msgid "The string refers to some argument in incompatible ways."
 msgstr ""
 "Merkkijono viittaa johonkin argumenttiin yhteensopimattomilla tavoilla."
 
-#: src/format-lisp.c:3474 src/format-scheme.c:3397
+#: src/format-lisp.c:3477 src/format-scheme.c:3399
 #, c-format
 msgid "format specifications in '%s' and '%s' are not equivalent"
 msgstr ""
 "muotomäärittelyt merkkijonossa ’%s’ ja merkkijonossa ’%s’ eivät ole "
 "yhdenmukaiset"
 
-#: src/format-lisp.c:3490 src/format-scheme.c:3413
+#: src/format-lisp.c:3493 src/format-scheme.c:3415
 #, c-format
 msgid "format specifications in '%s' are not a subset of those in '%s'"
 msgstr ""
 "muotomäärittelyt merkkijonossa ’%s’ eivät ole merkkijonon ’%s’ "
 "muotomäärittelyiden osajoukko"
 
-#: src/format-perl.c:433
+#: src/format-perl-brace.c:199 src/format-python-brace.c:435
+#: src/format-python-brace.c:448 src/format-python.c:472 src/format-sh.c:309
+#, c-format
+msgid "a format specification for argument '%s' doesn't exist in '%s'"
+msgstr "muotomäärittelyä argumentille ’%s’ ei löydy merkkijonosta ’%s’"
+
+#: src/format-perl.c:434
 #, c-format
 msgid ""
 "In the directive number %u, the size specifier is incompatible with the "
@@ -716,14 +896,36 @@ msgstr ""
 "Direktiivissä numero %u kokomäärittelijä on yhteensopimaton "
 "muunnosmäärittelijän ’%c’ kanssa."
 
-#: src/format-perl-brace.c:199 src/format-python.c:471
-#: src/format-python-brace.c:374 src/format-python-brace.c:387
-#: src/format-sh.c:308
+#: src/format-python-brace.c:138
 #, c-format
-msgid "a format specification for argument '%s' doesn't exist in '%s'"
-msgstr "muotomäärittelyä argumentille ’%s’ ei löydy merkkijonosta ’%s’"
+msgid "In the directive number %u, '%c' cannot start a field name."
+msgstr "Direktiivissä numero %u merkki ’%c’ ei voi aloittaa kenttänimeä."
+
+#: src/format-python-brace.c:151
+#, c-format
+msgid "In the directive number %u, '%c' cannot start a getattr argument."
+msgstr ""
+"Direktiivissä numero %u merkki ’%c’ ei voi aloittaa getattr-argumenttia."
 
-#: src/format-python.c:115
+#: src/format-python-brace.c:166
+#, c-format
+msgid "In the directive number %u, '%c' cannot start a getitem argument."
+msgstr ""
+"Direktiivissä numero %u merkki ’%c’ ei voi aloittaa getitem-argumenttia."
+
+#: src/format-python-brace.c:186
+#, c-format
+msgid ""
+"In the directive number %u, no more nesting is allowed in a format specifier."
+msgstr ""
+"Direktiivissä numero %u ei sallita enempää sisäkkäisyyttä muotomääritteessä."
+
+#: src/format-python-brace.c:271
+#, c-format
+msgid "In the directive number %u, there is an unterminated format directive."
+msgstr "Direktiivissä numero %u on päättämätön muotodirektiivi."
+
+#: src/format-python.c:116
 msgid ""
 "The string refers to arguments both through argument names and through "
 "unnamed argument specifications."
@@ -731,13 +933,13 @@ msgstr ""
 "Merkkijono viittaa argumentteihin sekä argumenttinimien että nimettömien "
 "argumenttimäärittelyjen avulla."
 
-#: src/format-python.c:354
+#: src/format-python.c:355
 #, c-format
 msgid "The string refers to the argument named '%s' in incompatible ways."
 msgstr ""
 "Merkkijono viittaa argumenttiin nimeltään ’%s’ yhteensopimattomilla tavoilla."
 
-#: src/format-python.c:430
+#: src/format-python.c:431
 #, c-format
 msgid ""
 "format specifications in '%s' expect a mapping, those in '%s' expect a tuple"
@@ -745,7 +947,7 @@ msgstr ""
 "muotomäärittelyt merkkijonossa ’%s’ edellyttävät kartoitusta, "
 "muotomäärittelyt merkkijonossa ’%s’ edellyttävät järjestettyä joukkoa"
 
-#: src/format-python.c:437
+#: src/format-python.c:438
 #, c-format
 msgid ""
 "format specifications in '%s' expect a tuple, those in '%s' expect a mapping"
@@ -753,7 +955,7 @@ msgstr ""
 "muotomäärittelyt merkkijonossa ’%s’ edellyttävät järjestettyä joukkoa, "
 "muotomäärittelyt merkkijonossa ’%s’ edellyttävät kartoitusta"
 
-#: src/format-python.c:460 src/format-sh.c:297
+#: src/format-python.c:461 src/format-sh.c:298
 #, c-format
 msgid ""
 "a format specification for argument '%s', as in '%s', doesn't exist in '%s'"
@@ -761,7 +963,7 @@ msgstr ""
 "muotomäärittelyä argumentille ’%s’, kuten merkkijonossa ’%s’:ssä, ei löydy "
 "merkkijonosta ’%s’"
 
-#: src/format-python.c:494
+#: src/format-python.c:495
 #, c-format
 msgid ""
 "format specifications in '%s' and '%s' for argument '%s' are not the same"
@@ -769,33 +971,7 @@ msgstr ""
 "muotomäärittelyt eivät ole samat merkkijonossa ’%s’ ja merkkijonossa ’%s’ "
 "argumentille ’%s’"
 
-#: src/format-python-brace.c:136
-#, fuzzy, c-format
-msgid "In the directive number %u, '%c' cannot start a field name."
-msgstr "Direktiivissä numero %u merkkiä ’%c’ ei seuraa luku."
-
-#: src/format-python-brace.c:149
-#, fuzzy, c-format
-msgid "In the directive number %u, '%c' cannot start a getattr argument."
-msgstr "Direktiivissä numero %u argumenttinumeroa ei ole merkin ’{’ jäljessä."
-
-#: src/format-python-brace.c:164
-#, fuzzy, c-format
-msgid "In the directive number %u, '%c' cannot start a getitem argument."
-msgstr "Direktiivissä numero %u merkkiä ’%c’ ei seuraa luku."
-
-#: src/format-python-brace.c:184
-#, fuzzy, c-format
-msgid ""
-"In the directive number %u, no more nesting is allowed in a format specifier."
-msgstr "Direktiivissä numero %u tarkkuus ei ole sallittu ennen merkkiä ’%c’."
-
-#: src/format-python-brace.c:210
-#, fuzzy, c-format
-msgid "In the directive number %u, there is an unterminated format directive."
-msgstr "Direktiivissä numero %u argumentti %d on negatiivinen."
-
-#: src/format-qt.c:152
+#: src/format-qt.c:153
 #, c-format
 msgid ""
 "'%s' is a simple format string, but '%s' is not: it contains an 'L' flag or "
@@ -804,11 +980,11 @@ msgstr ""
 "’%s’ on yksinkertainen muotomerkkijono, mutta ’%s’ ei ole: se sisältää ’L’-"
 "lipun tai kaksilukuisen argumenttinumeron"
 
-#: src/format-sh.c:79
+#: src/format-sh.c:80
 msgid "The string refers to a shell variable with a non-ASCII name."
 msgstr "Merkkijono viittaa komentoikkunamuuttujaan, jolla on ei-ASCII-nimi."
 
-#: src/format-sh.c:81
+#: src/format-sh.c:82
 msgid ""
 "The string refers to a shell variable with complex shell brace syntax. This "
 "syntax is unsupported here due to security reasons."
@@ -816,7 +992,7 @@ msgstr ""
 "Merkkijono viittaa komentoikkunamuuttujaan, jolla on mutkikas "
 "aaltosulkusyntaksi. Tämä syntaksi on tukematon turvallisuussyistä."
 
-#: src/format-sh.c:83
+#: src/format-sh.c:84
 msgid ""
 "The string refers to a shell variable whose value may be different inside "
 "shell functions."
@@ -824,94 +1000,58 @@ msgstr ""
 "Merkkijono viittaa komentoikkunamuuttujaan, jonka arvo saattaa olla "
 "erilainen komentoikkunafunktioiden sisällä."
 
-#: src/format-sh.c:85
+#: src/format-sh.c:86
 msgid "The string refers to a shell variable with an empty name."
 msgstr "Merkkijono viittaa komentoikkunamuuttujaan, jolla on tyhjä nimi."
 
-#: src/format-ycp.c:90
+#: src/format-ycp.c:91
 #, c-format
 msgid ""
 "In the directive number %u, the character '%c' is not a digit between 1 and "
 "9."
 msgstr "Direktiivissä numero %u merkki ’%c’ ei ole luku välillä 1...9."
 
-#: src/format-ycp.c:91
+#: src/format-ycp.c:92
 #, c-format
 msgid ""
 "The character that terminates the directive number %u is not a digit between "
 "1 and 9."
 msgstr "Merkki, joka päättää direktivin numero %u ei ole luku välillä 1...9."
 
-# Käännetty M. Välimäen GPLv3-käännöksestä vihjeitä katsoen.
-#: src/hostname.c:178 src/msgattrib.c:344 src/msgcat.c:289 src/msgcmp.c:172
-#: src/msgcomm.c:280 src/msgconv.c:235 src/msgen.c:231 src/msgexec.c:180
-#: src/msgfilter.c:273 src/msgfmt.c:366 src/msggrep.c:410 src/msginit.c:268
-#: src/msgmerge.c:344 src/msgunfmt.c:262 src/msguniq.c:259
-#: src/recode-sr-latin.c:110 src/urlget.c:143 src/xgettext.c:599
-#, c-format, no-wrap
-msgid ""
-"Copyright (C) %s Free Software Foundation, Inc.\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
-"This is free software: you are free to change and redistribute it.\n"
-"There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr ""
-"Copyright © %s Free Software Foundation, Inc.\n"
-"Lisenssi GPLv3+: GNU GPL versio 3 tai myöhempi <http://gnu.org/licenses/gpl.html>\n"
-"Tämä on vapaa ohjelmisto ja sen muuttaminen ja levittäminen edelleen on sallittua.\n"
-"Ohjelmalle EI ANNETA TAKUUTA lain sallimissa rajoissa.\n"
-
-#: src/hostname.c:184 src/msgattrib.c:350 src/msgcat.c:295 src/msgcmp.c:178
-#: src/msgcomm.c:286 src/msgconv.c:241 src/msgen.c:237 src/msgexec.c:186
-#: src/msgfilter.c:279 src/msgfmt.c:372 src/msggrep.c:416 src/msginit.c:274
-#: src/msgmerge.c:350 src/msgunfmt.c:268 src/msguniq.c:265 src/urlget.c:149
-#: src/xgettext.c:605
-#, c-format
-msgid "Written by %s.\n"
-msgstr "Kirjoittanut %s.\n"
-
 #. This is a proper name. See the gettext manual, section Names.
-#: src/hostname.c:184 src/msgattrib.c:350 src/msgcat.c:295 src/msgconv.c:241
-#: src/msgen.c:237 src/msgexec.c:186 src/msgfilter.c:279 src/msggrep.c:416
-#: src/msginit.c:274 src/msguniq.c:265 src/recode-sr-latin.c:121
-#: src/urlget.c:149
+#: src/hostname.c:187 src/msgattrib.c:362 src/msgcat.c:301 src/msgconv.c:251
+#: src/msgen.c:248 src/msgexec.c:193 src/msgfilter.c:295 src/msggrep.c:426
+#: src/msginit.c:275 src/msguniq.c:271 src/recode-sr-latin.c:122
+#: src/urlget.c:150
 msgid "Bruno Haible"
 msgstr "Bruno Haible"
 
-#: src/hostname.c:194 src/msginit.c:284 src/recode-sr-latin.c:130
+#: src/hostname.c:197 src/msginit.c:285 src/recode-sr-latin.c:131
 #, c-format
 msgid "too many arguments"
 msgstr "liian monta argumenttia"
 
-#: src/hostname.c:207 src/msgattrib.c:410 src/msgcat.c:362 src/msgcmp.c:209
-#: src/msgcomm.c:354 src/msgconv.c:298 src/msgen.c:294 src/msgexec.c:253
-#: src/msgfilter.c:384 src/msgfmt.c:650 src/msggrep.c:507 src/msginit.c:358
-#: src/msgmerge.c:476 src/msgunfmt.c:423 src/msguniq.c:321
-#: src/recode-sr-latin.c:143 src/urlget.c:172 src/xgettext.c:828
-#, c-format
-msgid "Try '%s --help' for more information.\n"
-msgstr "Komento ’%s --help’ antaa lisää tietoja.\n"
-
-#: src/hostname.c:211 src/msginit.c:362 src/recode-sr-latin.c:148
+#: src/hostname.c:214 src/msginit.c:363 src/recode-sr-latin.c:149
 #, c-format, no-wrap
 msgid "Usage: %s [OPTION]\n"
 msgstr "Käyttö: %s [VALITSIN]\n"
 
-#: src/hostname.c:215
+#: src/hostname.c:218
 #, c-format
 msgid "Print the machine's hostname.\n"
 msgstr "Näytä laitteen konenimi.\n"
 
-#: src/hostname.c:218
+#: src/hostname.c:221
 #, c-format
 msgid "Output format:\n"
 msgstr "Tulosteen muoto:\n"
 
-#: src/hostname.c:220
+#: src/hostname.c:223
 #, c-format
 msgid "  -s, --short                 short host name\n"
 msgstr "  -s, --short                 lyhyt tietokonenimi\n"
 
-#: src/hostname.c:222
+#: src/hostname.c:225
 #, c-format
 msgid ""
 "  -f, --fqdn, --long          long host name, includes fully qualified "
@@ -922,83 +1062,103 @@ msgstr ""
 "kelpuutetun\n"
 "                                verkkoaluenimen ja aliakset\n"
 
-#: src/hostname.c:225
+#: src/hostname.c:228
 #, c-format
 msgid "  -i, --ip-address            addresses for the hostname\n"
 msgstr "  -i, --ip-address            osoitteet tietokoneelle\n"
 
-#: src/hostname.c:228 src/msgattrib.c:525 src/msgcat.c:468 src/msgcmp.c:258
-#: src/msgcomm.c:454 src/msgconv.c:380 src/msgen.c:375 src/msgexec.c:295
-#: src/msgfilter.c:476 src/msgfmt.c:775 src/msggrep.c:623 src/msginit.c:420
-#: src/msgmerge.c:601 src/msgunfmt.c:527 src/msguniq.c:416
-#: src/recode-sr-latin.c:161 src/urlget.c:186 src/xgettext.c:1000
+#: src/hostname.c:231 src/msgattrib.c:535 src/msgcat.c:470 src/msgcmp.c:259
+#: src/msgcomm.c:456 src/msgconv.c:386 src/msgen.c:382 src/msgexec.c:307
+#: src/msgfilter.c:508 src/msgfmt.c:1078 src/msggrep.c:629 src/msginit.c:421
+#: src/msgmerge.c:620 src/msgunfmt.c:528 src/msguniq.c:418
+#: src/recode-sr-latin.c:162 src/urlget.c:187 src/xgettext.c:1228
 #, c-format, no-wrap
 msgid "Informative output:\n"
 msgstr "Selittävä tuloste:\n"
 
-#: src/hostname.c:230 src/msgattrib.c:527 src/msgcat.c:470 src/msgcmp.c:260
-#: src/msgcomm.c:456 src/msgconv.c:382 src/msgen.c:377 src/msgexec.c:297
-#: src/msgfilter.c:478 src/msgfmt.c:777 src/msggrep.c:625 src/msginit.c:422
-#: src/msgmerge.c:603 src/msgunfmt.c:529 src/msguniq.c:418
-#: src/recode-sr-latin.c:164 src/urlget.c:188 src/xgettext.c:1002
-#, c-format, no-wrap
-msgid "  -h, --help                  display this help and exit\n"
-msgstr "  -h, --help                  näytä tämä ohje ja poistu\n"
+#: src/hostname.c:258 src/hostname.c:264 src/hostname.c:271
+#, c-format
+msgid "could not get host name"
+msgstr "ei saatu tietokonenimeä"
 
-#: src/hostname.c:232 src/msgattrib.c:529 src/msgcat.c:472 src/msgcmp.c:262
-#: src/msgcomm.c:458 src/msgconv.c:384 src/msgen.c:379 src/msgexec.c:299
-#: src/msgfilter.c:480 src/msgfmt.c:779 src/msggrep.c:627 src/msginit.c:424
-#: src/msgmerge.c:605 src/msgunfmt.c:531 src/msguniq.c:420
-#: src/recode-sr-latin.c:167 src/urlget.c:190 src/xgettext.c:1004
-#, c-format, no-wrap
-msgid "  -V, --version               output version information and exit\n"
-msgstr "  -V, --version               tulosta ohjelman versiotiedot ja poistu\n"
+#: src/its.c:319
+#, fuzzy, c-format
+msgid "selector is not specified"
+msgstr "on annettava vähintään kaksi tiedostoa"
 
-#. TRANSLATORS: The placeholder indicates the bug-reporting address
-#. for this package.  Please add _another line_ saying
-#. "Report translation bugs to <...>\n" with the address for translation
-#. bugs (typically your translation team's web or email address).
-#: src/hostname.c:239 src/msgattrib.c:536 src/msgcat.c:479 src/msgcmp.c:269
-#: src/msgcomm.c:465 src/msgconv.c:391 src/msgen.c:386 src/msgexec.c:306
-#: src/msgfilter.c:487 src/msgfmt.c:790 src/msggrep.c:634 src/msginit.c:431
-#: src/msgmerge.c:616 src/msgunfmt.c:540 src/msguniq.c:427
-#: src/recode-sr-latin.c:174 src/urlget.c:199 src/xgettext.c:1011
-msgid "Report bugs to <bug-gnu-gettext@gnu.org>.\n"
+#: src/its.c:326 src/its.c:1550
+#, fuzzy, c-format
+msgid "cannot create XPath context"
+msgstr "putken luominen epäonnistui"
+
+#: src/its.c:344
+#, c-format
+msgid "cannot evaluate XPath expression: %s"
 msgstr ""
-"Ilmoita ohjelmiston vioista (englanniksi) osoitteeseen <bug-gnu-gettext@gnu."
-"org>.\n"
-"Ilmoita suomennoksen vioista osoitteeseen <translation-team-fi@lists."
-"sourceforge.net>.\n"
 
-#: src/hostname.c:255 src/hostname.c:261 src/hostname.c:268
+#: src/its.c:614
 #, c-format
-msgid "could not get host name"
-msgstr "ei saatu tietokonenimeä"
+msgid "\"%s\" node does not contain \"%s\""
+msgstr ""
+
+#: src/its.c:1001
+#, fuzzy, c-format
+msgid "invalid attribute value \"%s\" for \"%s\""
+msgstr "virheellinen argumentti %s kontekstille %s"
+
+#: src/its.c:1333
+#, c-format
+msgid "the root element is not \"rules\" under namespace %s"
+msgstr ""
+
+#: src/its.c:1376 src/its.c:1402 src/its.c:1795 src/its.c:1914
+#: src/locating-rule.c:170
+#, fuzzy, c-format
+msgid "cannot read %s: %s"
+msgstr "putken luominen epäonnistui"
 
-#: src/msgattrib.c:365 src/msgconv.c:256 src/msgexec.c:152 src/msgfilter.c:194
-#: src/msggrep.c:431 src/msginit.c:197 src/msguniq.c:280
+#: src/its.c:1573
+#, c-format
+msgid "cannot evaluate XPath location path: %s"
+msgstr ""
+
+#: src/locating-rule.c:236
+#, fuzzy, c-format
+msgid "\"%s\" node does not have \"%s\""
+msgstr "%s ei ole olemassa"
+
+#: src/locating-rule.c:307
+#, fuzzy, c-format
+msgid "cannot read XML file %s"
+msgstr "tulostetiedoston ”%s” luominen epäonnistui"
+
+#: src/locating-rule.c:319
+#, c-format
+msgid "the root element is not \"locatingRules\""
+msgstr ""
+
+#: src/msgattrib.c:377 src/msgconv.c:266 src/msgexec.c:155 src/msgfilter.c:197
+#: src/msggrep.c:441 src/msginit.c:198 src/msguniq.c:286
 #, c-format
 msgid "at most one input file allowed"
 msgstr "enintään yksi syötetiedosto on sallittu"
 
-#: src/msgattrib.c:371 src/msgattrib.c:375 src/msgcat.c:311 src/msgcat.c:315
-#: src/msgcomm.c:296 src/msgcomm.c:300 src/msgconv.c:262 src/msgconv.c:266
-#: src/msgen.c:259 src/msgen.c:263 src/msgfilter.c:294 src/msgfilter.c:298
-#: src/msgfmt.c:411 src/msgfmt.c:419 src/msgfmt.c:434 src/msgfmt.c:456
-#: src/msggrep.c:437 src/msggrep.c:441 src/msgmerge.c:375 src/msgmerge.c:396
-#: src/msgmerge.c:400 src/msgunfmt.c:299 src/msguniq.c:286 src/msguniq.c:290
-#: src/xgettext.c:615 src/xgettext.c:619 src/xgettext.c:626 src/xgettext.c:629
-#: src/xgettext.c:632
+#: src/msgattrib.c:383 src/msgcat.c:317 src/msgcomm.c:302 src/msgconv.c:272
+#: src/msgen.c:270 src/msgfilter.c:310 src/msgfmt.c:503 src/msgfmt.c:511
+#: src/msgfmt.c:526 src/msgfmt.c:548 src/msggrep.c:447 src/msgmerge.c:388
+#: src/msgmerge.c:393 src/msgmerge.c:398 src/msgmerge.c:419 src/msgunfmt.c:300
+#: src/msguniq.c:292 src/xgettext.c:694 src/xgettext.c:701 src/xgettext.c:704
+#: src/xgettext.c:707 src/xgettext.c:755
 #, c-format
 msgid "%s and %s are mutually exclusive"
 msgstr "valitsimet %s ja %s ovat toisensa poissulkevia"
 
-#: src/msgattrib.c:414 src/msgconv.c:302 src/msggrep.c:511 src/msguniq.c:325
+#: src/msgattrib.c:422 src/msgconv.c:308 src/msggrep.c:517 src/msguniq.c:327
 #, c-format
 msgid "Usage: %s [OPTION] [INPUTFILE]\n"
 msgstr "Käyttö: %s [VALITSIN] [SYÖTETIEDOSTO]\n"
 
-#: src/msgattrib.c:419
+#: src/msgattrib.c:427
 #, c-format, no-wrap
 msgid ""
 "Filters the messages of a translation catalog according to their attributes,\n"
@@ -1007,33 +1167,33 @@ msgstr ""
 "Suodattaa käännösluettelon viestit niiden attribuuttien mukaan,\n"
 "ja manipuloi attribuutteja.\n"
 
-#: src/msgattrib.c:423 src/msgcat.c:383 src/msgcmp.c:227 src/msgcomm.c:374
-#: src/msgconv.c:310 src/msgen.c:310 src/msgexec.c:276 src/msgfilter.c:396
-#: src/msggrep.c:521 src/msginit.c:372 src/msgmerge.c:497 src/msgunfmt.c:435
-#: src/msguniq.c:341
+#: src/msgattrib.c:431 src/msgcat.c:385 src/msgcmp.c:228 src/msgcomm.c:376
+#: src/msgconv.c:316 src/msgen.c:317 src/msgexec.c:288 src/msgfilter.c:422
+#: src/msggrep.c:527 src/msginit.c:373 src/msgmerge.c:516 src/msgunfmt.c:436
+#: src/msguniq.c:343
 #, c-format
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Pitkien valitsinten pakolliset argumentit ovat pakollisia myös lyhyille.\n"
 
-#: src/msgattrib.c:426 src/msgcat.c:386 src/msgcmp.c:230 src/msgcomm.c:377
-#: src/msgconv.c:313 src/msgen.c:313 src/msgexec.c:279 src/msgfilter.c:399
-#: src/msgfmt.c:668 src/msggrep.c:524 src/msginit.c:375 src/msgmerge.c:500
-#: src/msgunfmt.c:449 src/msguniq.c:344 src/xgettext.c:846
+#: src/msgattrib.c:434 src/msgcat.c:388 src/msgcmp.c:231 src/msgcomm.c:379
+#: src/msgconv.c:319 src/msgen.c:320 src/msgexec.c:291 src/msgfilter.c:425
+#: src/msgfmt.c:932 src/msggrep.c:530 src/msginit.c:376 src/msgmerge.c:519
+#: src/msgunfmt.c:450 src/msguniq.c:346 src/xgettext.c:1062
 #, c-format
 msgid "Input file location:\n"
 msgstr "Syötetiedostosijainti:\n"
 
-#: src/msgattrib.c:428 src/msgconv.c:315 src/msggrep.c:526 src/msguniq.c:346
+#: src/msgattrib.c:436 src/msgconv.c:321 src/msggrep.c:532 src/msguniq.c:348
 #, c-format
 msgid "  INPUTFILE                   input PO file\n"
 msgstr "  SYÖTETIEDOSTO               syötteen PO-tiedosto\n"
 
-#: src/msgattrib.c:430 src/msgcat.c:392 src/msgcmp.c:236 src/msgcomm.c:383
-#: src/msgconv.c:317 src/msgen.c:317 src/msgexec.c:283 src/msgfilter.c:403
-#: src/msgfmt.c:672 src/msggrep.c:528 src/msgmerge.c:506 src/msguniq.c:348
-#: src/xgettext.c:852
+#: src/msgattrib.c:438 src/msgcat.c:394 src/msgcmp.c:237 src/msgcomm.c:385
+#: src/msgconv.c:323 src/msgen.c:324 src/msgexec.c:295 src/msgfilter.c:429
+#: src/msgfmt.c:936 src/msggrep.c:534 src/msgmerge.c:525 src/msguniq.c:350
+#: src/xgettext.c:1068
 #, c-format
 msgid ""
 "  -D, --directory=DIRECTORY   add DIRECTORY to list for input files search\n"
@@ -1041,31 +1201,32 @@ msgstr ""
 "  -D, --directory=HAKEMISTO   lisää HAKEMISTO syötetiedostojen "
 "hakuluetteloon\n"
 
-#: src/msgattrib.c:432 src/msgconv.c:319 src/msgexec.c:285 src/msgfilter.c:405
-#: src/msggrep.c:530 src/msgunfmt.c:453 src/msguniq.c:350
+#: src/msgattrib.c:440 src/msgconv.c:325 src/msgexec.c:297 src/msgfilter.c:431
+#: src/msggrep.c:536 src/msgunfmt.c:454 src/msguniq.c:352
 #, c-format
 msgid "If no input file is given or if it is -, standard input is read.\n"
 msgstr "Jos syötetiedostoa ei ole annettu tai se on -, luetaan vakiosyöte.\n"
 
-#: src/msgattrib.c:435 src/msgcat.c:397 src/msgcomm.c:388 src/msgconv.c:322
-#: src/msgen.c:322 src/msgfilter.c:408 src/msgfmt.c:692 src/msggrep.c:533
-#: src/msginit.c:383 src/msgmerge.c:518 src/msgunfmt.c:489 src/msguniq.c:353
-#: src/xgettext.c:857
+#: src/msgattrib.c:443 src/msgcat.c:399 src/msgcomm.c:390 src/msgconv.c:328
+#: src/msgen.c:329 src/msgfilter.c:434 src/msgfmt.c:960 src/msggrep.c:539
+#: src/msginit.c:384 src/msgmerge.c:537 src/msgunfmt.c:490 src/msguniq.c:355
+#: src/xgettext.c:1073
 #, c-format
 msgid "Output file location:\n"
 msgstr "Tulostetiedostosijainti:\n"
 
-#: src/msgattrib.c:437 src/msgcat.c:399 src/msgcomm.c:390 src/msgconv.c:324
-#: src/msgen.c:324 src/msgfilter.c:410 src/msgfmt.c:694 src/msggrep.c:535
-#: src/msgmerge.c:520 src/msgunfmt.c:491 src/msguniq.c:355
+#: src/msgattrib.c:445 src/msgcat.c:401 src/msgcomm.c:392 src/msgconv.c:330
+#: src/msgen.c:331 src/msgfilter.c:436 src/msgfmt.c:962 src/msgfmt.c:1011
+#: src/msgfmt.c:1030 src/msggrep.c:541 src/msgmerge.c:539 src/msgunfmt.c:492
+#: src/msguniq.c:357
 #, c-format
 msgid "  -o, --output-file=FILE      write output to specified file\n"
 msgstr ""
 "  -o, --output-file=TIEDOSTO  kirjoita tuloste määriteltyyn tiedostoon\n"
 
-#: src/msgattrib.c:439 src/msgcat.c:401 src/msgcomm.c:392 src/msgconv.c:326
-#: src/msgen.c:326 src/msgfilter.c:412 src/msggrep.c:537 src/msgmerge.c:522
-#: src/msgunfmt.c:493 src/msguniq.c:357
+#: src/msgattrib.c:447 src/msgcat.c:403 src/msgcomm.c:394 src/msgconv.c:332
+#: src/msgen.c:333 src/msgfilter.c:438 src/msggrep.c:543 src/msgmerge.c:541
+#: src/msgunfmt.c:494 src/msguniq.c:359
 #, c-format
 msgid ""
 "The results are written to standard output if no output file is specified\n"
@@ -1075,80 +1236,80 @@ msgstr ""
 "määritelty\n"
 "tai jos se on -.\n"
 
-#: src/msgattrib.c:443 src/msgcat.c:405 src/msgcomm.c:396 src/msguniq.c:361
+#: src/msgattrib.c:451 src/msgcat.c:407 src/msgcomm.c:398 src/msguniq.c:363
 #, c-format
 msgid "Message selection:\n"
 msgstr "Viestivalinta:\n"
 
-#: src/msgattrib.c:445
+#: src/msgattrib.c:453
 #, c-format
 msgid ""
 "      --translated            keep translated, remove untranslated messages\n"
 msgstr ""
 "      --translated            pidä käännetyt, poista kääntämättömät viestit\n"
 
-#: src/msgattrib.c:447
+#: src/msgattrib.c:455
 #, c-format
 msgid ""
 "      --untranslated          keep untranslated, remove translated messages\n"
 msgstr ""
 "      --untranslated          pidä kääntämättömät, poista käännetyt viestit\n"
 
-#: src/msgattrib.c:449
+#: src/msgattrib.c:457
 #, c-format
 msgid "      --no-fuzzy              remove 'fuzzy' marked messages\n"
 msgstr "      --no-fuzzy              poista ’fuzzy’-merkityt vajaat viestit\n"
 
-#: src/msgattrib.c:451
+#: src/msgattrib.c:459
 #, c-format
 msgid "      --only-fuzzy            keep 'fuzzy' marked messages\n"
 msgstr "      --only-fuzzy            pidä ’fuzzy’-merkityt vajaat viestit\n"
 
-#: src/msgattrib.c:453
+#: src/msgattrib.c:461
 #, c-format
 msgid "      --no-obsolete           remove obsolete #~ messages\n"
 msgstr "      --no-obsolete           poista vanhentuneet #~ -viestit\n"
 
-#: src/msgattrib.c:455
+#: src/msgattrib.c:463
 #, c-format
 msgid "      --only-obsolete         keep obsolete #~ messages\n"
 msgstr "      --only-obsolete         pidä vanhentuneet #~ -viestit\n"
 
-#: src/msgattrib.c:458
+#: src/msgattrib.c:466
 #, c-format
 msgid "Attribute manipulation:\n"
 msgstr "Attribuuttimanipulointi:\n"
 
-#: src/msgattrib.c:460
+#: src/msgattrib.c:468
 #, c-format
 msgid "      --set-fuzzy             set all messages 'fuzzy'\n"
 msgstr "      --set-fuzzy             aseta kaikki viestit vajaiksi\n"
 
-#: src/msgattrib.c:462
+#: src/msgattrib.c:470
 #, c-format
 msgid "      --clear-fuzzy           set all messages non-'fuzzy'\n"
 msgstr "      --clear-fuzzy           aseta kaikki viestit epävajaiksi\n"
 
-#: src/msgattrib.c:464
+#: src/msgattrib.c:472
 #, c-format
 msgid "      --set-obsolete          set all messages obsolete\n"
 msgstr "      --set-obsolete          aseta kaikki viestit vanhentuneiksi\n"
 
-#: src/msgattrib.c:466
+#: src/msgattrib.c:474
 #, c-format
 msgid "      --clear-obsolete        set all messages non-obsolete\n"
 msgstr "      --clear-obsolete        aseta kaikki sanomat ei-vanhentuneiksi\n"
 
-#: src/msgattrib.c:468
-#, fuzzy, c-format
+#: src/msgattrib.c:476
+#, c-format
 msgid ""
 "      --previous              when setting 'fuzzy', keep previous msgids\n"
 "                              of translated messages.\n"
 msgstr ""
-"      --previous              säilytä käännettyjen viestien aikaisemmat "
-"msgid-merkkijonot\n"
+"      --previous              kun asetetaan vajaiksi, säilytä käännettyjen\n"
+"                              viestien aikaisemmat msgid-merkkijonot\n"
 
-#: src/msgattrib.c:471
+#: src/msgattrib.c:479
 #, c-format
 msgid ""
 "      --clear-previous        remove the \"previous msgid\" from all "
@@ -1156,7 +1317,15 @@ msgid ""
 msgstr ""
 "      --clear-previous        poista \"previous msgid\" kaikista viesteistä\n"
 
-#: src/msgattrib.c:473
+#: src/msgattrib.c:481
+#, c-format
+msgid ""
+"      --empty                 when removing 'fuzzy', also set msgstr empty\n"
+msgstr ""
+"      --empty                 poistettaessa ’fuzzy’-merkityt vajaat viestit "
+"poista myös tyhjä msgstr\n"
+
+#: src/msgattrib.c:483
 #, c-format
 msgid ""
 "      --only-file=FILE.po     manipulate only entries listed in FILE.po\n"
@@ -1164,7 +1333,7 @@ msgstr ""
 "      --only-file=TIEDOSTO.po manipuloi vain rivejä, jotka on luetteloitu "
 "tiedostossa TIEDOSTO.po\n"
 
-#: src/msgattrib.c:475
+#: src/msgattrib.c:485
 #, c-format
 msgid ""
 "      --ignore-file=FILE.po   manipulate only entries not listed in FILE.po\n"
@@ -1172,14 +1341,14 @@ msgstr ""
 "      --ignore-file=TIEDOSTO.po manipuloi vain rivejä, joita ei ole "
 "luetteloitu tiedostossa TIEDOSTO.po\n"
 
-#: src/msgattrib.c:477
+#: src/msgattrib.c:487
 #, c-format
 msgid "      --fuzzy                 synonym for --only-fuzzy --clear-fuzzy\n"
 msgstr ""
 "      --fuzzy                 synonyymi valitsimelle --only-fuzzy --clear-"
 "fuzzy\n"
 
-#: src/msgattrib.c:479
+#: src/msgattrib.c:489
 #, c-format
 msgid ""
 "      --obsolete              synonym for --only-obsolete --clear-obsolete\n"
@@ -1187,16 +1356,16 @@ msgstr ""
 "      --obsolete              synonyymi valitsimelle --only-obsolete --clear-"
 "obsolete\n"
 
-#: src/msgattrib.c:482 src/msgcat.c:417 src/msgcmp.c:250 src/msgcomm.c:408
-#: src/msgconv.c:337 src/msgen.c:330 src/msgexec.c:288 src/msgfilter.c:431
-#: src/msgfmt.c:737 src/msggrep.c:580 src/msginit.c:391 src/msgmerge.c:555
-#: src/msguniq.c:368
+#: src/msgattrib.c:492 src/msgcat.c:419 src/msgcmp.c:251 src/msgcomm.c:410
+#: src/msgconv.c:343 src/msgen.c:337 src/msgexec.c:300 src/msgfilter.c:463
+#: src/msgfmt.c:1040 src/msggrep.c:586 src/msginit.c:392 src/msgmerge.c:574
+#: src/msguniq.c:370
 #, c-format
 msgid "Input file syntax:\n"
 msgstr "Syötetiedoston syntaksi:\n"
 
-#: src/msgattrib.c:484 src/msgconv.c:339 src/msgen.c:332 src/msgexec.c:290
-#: src/msgfilter.c:433 src/msggrep.c:582 src/msginit.c:393 src/msguniq.c:370
+#: src/msgattrib.c:494 src/msgconv.c:345 src/msgen.c:339 src/msgexec.c:302
+#: src/msgfilter.c:465 src/msggrep.c:588 src/msginit.c:394 src/msguniq.c:372
 #, c-format
 msgid ""
 "  -P, --properties-input      input file is in Java .properties syntax\n"
@@ -1204,8 +1373,8 @@ msgstr ""
 "  -P, --properties-input      syötetiedosto on Java .properties -"
 "syntaksissa\n"
 
-#: src/msgattrib.c:486 src/msgconv.c:341 src/msgen.c:334 src/msgexec.c:292
-#: src/msgfilter.c:435 src/msggrep.c:584 src/msginit.c:395 src/msguniq.c:372
+#: src/msgattrib.c:496 src/msgconv.c:347 src/msgen.c:341 src/msgexec.c:304
+#: src/msgfilter.c:467 src/msggrep.c:590 src/msginit.c:396 src/msguniq.c:374
 #, c-format
 msgid ""
 "      --stringtable-input     input file is in NeXTstep/GNUstep .strings "
@@ -1214,17 +1383,17 @@ msgstr ""
 "      --stringtable-input     syötetiedosto on NeXTstep/GNUstep .strings -"
 "syntaksissa\n"
 
-#: src/msgattrib.c:489 src/msgcat.c:425 src/msgcomm.c:416 src/msgconv.c:344
-#: src/msgen.c:337 src/msgfilter.c:438 src/msgfmt.c:765 src/msggrep.c:587
-#: src/msginit.c:398 src/msgmerge.c:563 src/msgunfmt.c:497 src/msguniq.c:375
-#: src/xgettext.c:946
+#: src/msgattrib.c:499 src/msgcat.c:427 src/msgcomm.c:418 src/msgconv.c:350
+#: src/msgen.c:344 src/msgfilter.c:470 src/msgfmt.c:1068 src/msggrep.c:593
+#: src/msginit.c:399 src/msgmerge.c:582 src/msgunfmt.c:498 src/msguniq.c:377
+#: src/xgettext.c:1170
 #, c-format
 msgid "Output details:\n"
 msgstr "Tulosteen yksityiskohdat:\n"
 
-#: src/msgattrib.c:491 src/msgcat.c:434 src/msgcomm.c:418 src/msgconv.c:346
-#: src/msgen.c:341 src/msgfilter.c:440 src/msggrep.c:589 src/msginit.c:404
-#: src/msgmerge.c:567 src/msgunfmt.c:499 src/msguniq.c:382 src/xgettext.c:948
+#: src/msgattrib.c:501 src/msgcat.c:436 src/msgcomm.c:420 src/msgconv.c:352
+#: src/msgen.c:348 src/msgfilter.c:472 src/msggrep.c:595 src/msginit.c:405
+#: src/msgmerge.c:586 src/msgunfmt.c:500 src/msguniq.c:384 src/xgettext.c:1172
 #, c-format
 msgid ""
 "      --color                 use colors and other text attributes always\n"
@@ -1239,18 +1408,18 @@ msgstr ""
 "                              MILLOIN saattaa olla ’always’, ’never’, "
 "’auto’, tai ’html’.\n"
 
-#: src/msgattrib.c:495 src/msgcat.c:438 src/msgcomm.c:422 src/msgconv.c:350
-#: src/msgen.c:345 src/msgfilter.c:444 src/msggrep.c:593 src/msginit.c:408
-#: src/msgmerge.c:571 src/msgunfmt.c:503 src/msguniq.c:386 src/xgettext.c:952
+#: src/msgattrib.c:505 src/msgcat.c:440 src/msgcomm.c:424 src/msgconv.c:356
+#: src/msgen.c:352 src/msgfilter.c:476 src/msggrep.c:599 src/msginit.c:409
+#: src/msgmerge.c:590 src/msgunfmt.c:504 src/msguniq.c:388 src/xgettext.c:1176
 #, c-format
 msgid "      --style=STYLEFILE       specify CSS style rule file for --color\n"
 msgstr ""
 "      --style=TYYLITIEDOSTO   määritä CSS-tyylisääntötiedosto valitsimelle --"
 "color\n"
 
-#: src/msgattrib.c:497 src/msgcat.c:440 src/msgcomm.c:424 src/msgconv.c:352
-#: src/msgen.c:347 src/msgmerge.c:573 src/msgunfmt.c:505 src/msguniq.c:388
-#: src/xgettext.c:954
+#: src/msgattrib.c:507 src/msgcat.c:442 src/msgcomm.c:426 src/msgconv.c:358
+#: src/msgen.c:354 src/msgmerge.c:592 src/msgunfmt.c:506 src/msguniq.c:390
+#: src/xgettext.c:1178
 #, c-format
 msgid ""
 "  -e, --no-escape             do not use C escapes in output (default)\n"
@@ -1258,9 +1427,9 @@ msgstr ""
 "  -e, --no-escape             älä käytä C-koodinvaihtomerkkejä tulosteessa "
 "(oletus)\n"
 
-#: src/msgattrib.c:499 src/msgcat.c:442 src/msgcomm.c:426 src/msgconv.c:354
-#: src/msgen.c:349 src/msgfilter.c:448 src/msgmerge.c:575 src/msgunfmt.c:507
-#: src/msguniq.c:390 src/xgettext.c:956
+#: src/msgattrib.c:509 src/msgcat.c:444 src/msgcomm.c:428 src/msgconv.c:360
+#: src/msgen.c:356 src/msgfilter.c:480 src/msgmerge.c:594 src/msgunfmt.c:508
+#: src/msguniq.c:392 src/xgettext.c:1180
 #, c-format
 msgid ""
 "  -E, --escape                use C escapes in output, no extended chars\n"
@@ -1268,39 +1437,39 @@ msgstr ""
 "  -E, --escape                käytä C-koodinvaihtomerkkejä tulosteessa, ei "
 "laajennettuja merkkejä\n"
 
-#: src/msgattrib.c:501 src/msgcat.c:444 src/msgcomm.c:428 src/msgconv.c:356
-#: src/msgen.c:351 src/msgfilter.c:450 src/msggrep.c:599 src/msgmerge.c:577
-#: src/msgunfmt.c:509 src/msguniq.c:392 src/xgettext.c:958
+#: src/msgattrib.c:511 src/msgcat.c:446 src/msgcomm.c:430 src/msgconv.c:362
+#: src/msgen.c:358 src/msgfilter.c:482 src/msggrep.c:605 src/msgmerge.c:596
+#: src/msgunfmt.c:510 src/msguniq.c:394 src/xgettext.c:1182
 #, c-format
 msgid "      --force-po              write PO file even if empty\n"
 msgstr ""
 "      --force-po              kirjoita PO-tiedosto vaikka se on tyhjä\n"
 
-#: src/msgattrib.c:503 src/msgcat.c:446 src/msgcomm.c:430 src/msguniq.c:394
-#: src/xgettext.c:960
+#: src/msgattrib.c:513 src/msgcat.c:448 src/msgcomm.c:432 src/msguniq.c:396
+#: src/xgettext.c:1184
 #, c-format
 msgid "  -i, --indent                write the .po file using indented style\n"
 msgstr ""
 "  -i, --indent                kirjoita .po -tiedosto käyttäen sisennettyä "
 "tyyliä\n"
 
-#: src/msgattrib.c:505 src/msgcat.c:448 src/msgcomm.c:432 src/msguniq.c:396
-#: src/xgettext.c:962
+#: src/msgattrib.c:515 src/msgcat.c:450 src/msgcomm.c:434 src/msguniq.c:398
+#: src/xgettext.c:1186
 #, c-format
 msgid "      --no-location           do not write '#: filename:line' lines\n"
 msgstr ""
 "      --no-location           älä kirjoita ’#: filename:line’ -rivejä\n"
 
-#: src/msgattrib.c:507 src/msgcat.c:450 src/msgcomm.c:434 src/msguniq.c:398
-#: src/xgettext.c:964
+#: src/msgattrib.c:517 src/msgcat.c:452 src/msgcomm.c:436 src/msguniq.c:400
+#: src/xgettext.c:1188
 #, c-format
 msgid ""
 "  -n, --add-location          generate '#: filename:line' lines (default)\n"
 msgstr ""
 "  -n, --add-location          tuota ’#: filename:line’ -rivit (oletus)\n"
 
-#: src/msgattrib.c:509 src/msgcat.c:452 src/msgcomm.c:436 src/msguniq.c:400
-#: src/xgettext.c:966
+#: src/msgattrib.c:519 src/msgcat.c:454 src/msgcomm.c:438 src/msguniq.c:402
+#: src/xgettext.c:1190
 #, c-format
 msgid ""
 "      --strict                write out strict Uniforum conforming .po file\n"
@@ -1308,32 +1477,32 @@ msgstr ""
 "      --strict                luo tiukasti Uniforum-yhteensopiva .po-"
 "tiedosto\n"
 
-#: src/msgattrib.c:511 src/msgcat.c:454 src/msgcomm.c:438 src/msgconv.c:366
-#: src/msgen.c:361 src/msgfilter.c:462 src/msggrep.c:609 src/msginit.c:410
-#: src/msgmerge.c:587 src/msgunfmt.c:515 src/msguniq.c:402
+#: src/msgattrib.c:521 src/msgcat.c:456 src/msgcomm.c:440 src/msgconv.c:372
+#: src/msgen.c:368 src/msgfilter.c:494 src/msggrep.c:615 src/msginit.c:411
+#: src/msgmerge.c:606 src/msgunfmt.c:516 src/msguniq.c:404
 #, c-format
 msgid "  -p, --properties-output     write out a Java .properties file\n"
 msgstr "  -p, --properties-output     luo Java .properties -tiedosto\n"
 
-#: src/msgattrib.c:513 src/msgcat.c:456 src/msgcomm.c:440 src/msgconv.c:368
-#: src/msgen.c:363 src/msgfilter.c:464 src/msggrep.c:611 src/msginit.c:412
-#: src/msgmerge.c:589 src/msgunfmt.c:517 src/msguniq.c:404 src/xgettext.c:970
+#: src/msgattrib.c:523 src/msgcat.c:458 src/msgcomm.c:442 src/msgconv.c:374
+#: src/msgen.c:370 src/msgfilter.c:496 src/msggrep.c:617 src/msginit.c:413
+#: src/msgmerge.c:608 src/msgunfmt.c:518 src/msguniq.c:406 src/xgettext.c:1194
 #, c-format
 msgid ""
 "      --stringtable-output    write out a NeXTstep/GNUstep .strings file\n"
 msgstr ""
 "      --stringtable-output    luo NeXTstep/GNUstep .strings -tiedosto\n"
 
-#: src/msgattrib.c:515 src/msgcat.c:458 src/msgcomm.c:442 src/msgconv.c:370
-#: src/msgen.c:365 src/msgfilter.c:466 src/msggrep.c:613 src/msginit.c:414
-#: src/msgmerge.c:591 src/msgunfmt.c:519 src/msguniq.c:406 src/xgettext.c:972
+#: src/msgattrib.c:525 src/msgcat.c:460 src/msgcomm.c:444 src/msgconv.c:376
+#: src/msgen.c:372 src/msgfilter.c:498 src/msggrep.c:619 src/msginit.c:415
+#: src/msgmerge.c:610 src/msgunfmt.c:520 src/msguniq.c:408 src/xgettext.c:1200
 #, c-format
 msgid "  -w, --width=NUMBER          set output page width\n"
 msgstr "  -w, --width=NUMERO          aseta tulostesivun leveys\n"
 
-#: src/msgattrib.c:517 src/msgcat.c:460 src/msgcomm.c:444 src/msgconv.c:372
-#: src/msgen.c:367 src/msgfilter.c:468 src/msggrep.c:615 src/msginit.c:416
-#: src/msgmerge.c:593 src/msgunfmt.c:521 src/msguniq.c:408 src/xgettext.c:974
+#: src/msgattrib.c:527 src/msgcat.c:462 src/msgcomm.c:446 src/msgconv.c:378
+#: src/msgen.c:374 src/msgfilter.c:500 src/msggrep.c:621 src/msginit.c:417
+#: src/msgmerge.c:612 src/msgunfmt.c:522 src/msguniq.c:410 src/xgettext.c:1202
 #, c-format
 msgid ""
 "      --no-wrap               do not break long message lines, longer than\n"
@@ -1343,33 +1512,33 @@ msgstr ""
 "kuin\n"
 "                              tulostesivun leveys, useammalle riville\n"
 
-#: src/msgattrib.c:520 src/msgcat.c:463 src/msgcomm.c:447 src/msgconv.c:375
-#: src/msgen.c:370 src/msgfilter.c:471 src/msgmerge.c:596 src/msgunfmt.c:524
-#: src/msguniq.c:411 src/xgettext.c:977
+#: src/msgattrib.c:530 src/msgcat.c:465 src/msgcomm.c:449 src/msgconv.c:381
+#: src/msgen.c:377 src/msgfilter.c:503 src/msgmerge.c:615 src/msgunfmt.c:525
+#: src/msguniq.c:413 src/xgettext.c:1205
 #, c-format
 msgid "  -s, --sort-output           generate sorted output\n"
 msgstr "  -s, --sort-output           tuota lajiteltu tuloste\n"
 
-#: src/msgattrib.c:522 src/msgcat.c:465 src/msgcomm.c:449 src/msgconv.c:377
-#: src/msgen.c:372 src/msgfilter.c:473 src/msgmerge.c:598 src/msguniq.c:413
-#: src/xgettext.c:979
+#: src/msgattrib.c:532 src/msgcat.c:467 src/msgcomm.c:451 src/msgconv.c:383
+#: src/msgen.c:379 src/msgfilter.c:505 src/msgmerge.c:617 src/msguniq.c:415
+#: src/xgettext.c:1207
 #, c-format
 msgid "  -F, --sort-by-file          sort output by file location\n"
 msgstr ""
 "  -F, --sort-by-file          lajittele tuloste tiedostosijainnin mukaan\n"
 
-#: src/msgcat.c:321 src/msgcomm.c:326
+#: src/msgcat.c:323 src/msgcomm.c:328
 #, c-format
 msgid "impossible selection criteria specified (%d < n < %d)"
 msgstr "määritelty mahdoton valintakriteeri (%d < n < %d)"
 
-#: src/msgcat.c:366 src/msgcomm.c:358 src/xgettext.c:832
+#: src/msgcat.c:368 src/msgcomm.c:360 src/xgettext.c:1048
 #, c-format
 msgid "Usage: %s [OPTION] [INPUTFILE]...\n"
 msgstr "Käyttö: %s [VALITSIN] [SYÖTETIEDOSTO]...\n"
 
 #  Pistekommentilla tarkoitan kehittäjän kääntäjää varten lisäämiä kommentteja, jotka alkavat risuaitamerkillä ja sen jälkeisellä pisteellä.
-#: src/msgcat.c:371
+#: src/msgcat.c:373
 #, c-format, no-wrap
 msgid ""
 "Concatenates and merges the specified PO files.\n"
@@ -1392,25 +1561,25 @@ msgstr ""
 "--use-first on määritelty. Silloin ne otetaan ensimmäisestä PO-tiedostosta,\n"
 "joka on määritellyt ne.\n"
 
-#: src/msgcat.c:388 src/msgcomm.c:379 src/xgettext.c:848
+#: src/msgcat.c:390 src/msgcomm.c:381 src/xgettext.c:1064
 #, c-format
 msgid "  INPUTFILE ...               input files\n"
 msgstr "  SYÖTETIEDOSTO ...           syötetiedostot\n"
 
-#: src/msgcat.c:390 src/msgcomm.c:381 src/xgettext.c:850
+#: src/msgcat.c:392 src/msgcomm.c:383 src/xgettext.c:1066
 #, c-format
 msgid "  -f, --files-from=FILE       get list of input files from FILE\n"
 msgstr ""
 "  -f, --files-from=TIEDOSTO   hae syötetiedostojen luettelo TIEDOSTOsta\n"
 
-#: src/msgcat.c:394 src/msgcomm.c:385 src/msgen.c:319 src/msgfmt.c:674
-#: src/xgettext.c:854
+#: src/msgcat.c:396 src/msgcomm.c:387 src/msgen.c:326 src/msgfmt.c:938
+#: src/xgettext.c:1070
 #, c-format
 msgid "If input file is -, standard input is read.\n"
 msgstr "Jos syötetiedosto on -, luetaan vakiosyötettä.\n"
 
 #  Tässä defaults taitaa olla verbi yksikön kolmannessa persoonassa.
-#: src/msgcat.c:407 src/msgcomm.c:398
+#: src/msgcat.c:409 src/msgcomm.c:400
 #, c-format
 msgid ""
 "  -<, --less-than=NUMBER      print messages with less than this many\n"
@@ -1421,7 +1590,7 @@ msgstr ""
 "                              määrittelyä. Oletus ääretön, jos ei ole "
 "asetettu\n"
 
-#: src/msgcat.c:410
+#: src/msgcat.c:412
 #, c-format
 msgid ""
 "  ->, --more-than=NUMBER      print messages with more than this many\n"
@@ -1431,7 +1600,7 @@ msgstr ""
 "monta\n"
 "                              määrittelyä. Oletus 0, jos ei ole asetettu\n"
 
-#: src/msgcat.c:413 src/msgcomm.c:404
+#: src/msgcat.c:415 src/msgcomm.c:406
 #, c-format
 msgid ""
 "  -u, --unique                shorthand for --less-than=2, requests\n"
@@ -1441,8 +1610,8 @@ msgstr ""
 "pyynnöille\n"
 "                              että vain uniikkeja viestejä tulostetaan\n"
 
-#: src/msgcat.c:419 src/msgcmp.c:252 src/msgcomm.c:410 src/msgfmt.c:739
-#: src/msgmerge.c:557
+#: src/msgcat.c:421 src/msgcmp.c:253 src/msgcomm.c:412 src/msgfmt.c:1042
+#: src/msgmerge.c:576
 #, c-format
 msgid ""
 "  -P, --properties-input      input files are in Java .properties syntax\n"
@@ -1450,8 +1619,8 @@ msgstr ""
 "  -P, --properties-input      syötetiedostot ovat Java .properties -"
 "syntaksissa\n"
 
-#: src/msgcat.c:421 src/msgcmp.c:254 src/msgcomm.c:412 src/msgfmt.c:741
-#: src/msgmerge.c:559
+#: src/msgcat.c:423 src/msgcmp.c:255 src/msgcomm.c:414 src/msgfmt.c:1044
+#: src/msgmerge.c:578
 #, c-format
 msgid ""
 "      --stringtable-input     input files are in NeXTstep/GNUstep .strings\n"
@@ -1460,12 +1629,12 @@ msgstr ""
 "      --stringtable-input     syötetiedostot ovat NeXTstep/GNUstep .strings\n"
 "                              -syntaksissa\n"
 
-#: src/msgcat.c:427 src/msgconv.c:332 src/msguniq.c:377
+#: src/msgcat.c:429 src/msgconv.c:338 src/msguniq.c:379
 #, c-format
 msgid "  -t, --to-code=NAME          encoding for output\n"
 msgstr "  -t, --to-code=NIMI          koodaus tulosteelle\n"
 
-#: src/msgcat.c:429 src/msguniq.c:379
+#: src/msgcat.c:431 src/msguniq.c:381
 #, c-format
 msgid ""
 "      --use-first             use first available translation for each\n"
@@ -1476,34 +1645,34 @@ msgstr ""
 "                              jokaiselle viestille, älä yhdistä useita "
 "käännöksiä\n"
 
-#: src/msgcat.c:432 src/msgen.c:339 src/msgmerge.c:565
+#: src/msgcat.c:434 src/msgen.c:346 src/msgmerge.c:584
 #, c-format
 msgid ""
 "      --lang=CATALOGNAME      set 'Language' field in the header entry\n"
 msgstr "      --lang=LUETTELONIMI     aseta ’Language’-kenttä otsakkeessa\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/msgcmp.c:178 src/msgcomm.c:286 src/msgmerge.c:350
+#: src/msgcmp.c:179 src/msgcomm.c:292 src/msgmerge.c:363
 msgid "Peter Miller"
 msgstr "Peter Miller"
 
-#: src/msgcmp.c:189 src/msgmerge.c:361
+#: src/msgcmp.c:190 src/msgmerge.c:374
 #, c-format
 msgid "no input files given"
 msgstr "syötetiedostoja ei annettu"
 
-#: src/msgcmp.c:194 src/msgmerge.c:366
+#: src/msgcmp.c:195 src/msgmerge.c:379
 #, c-format
 msgid "exactly 2 input files required"
 msgstr "tarvitaan täsmälleen kaksi syötetiedostoa"
 
 #  Tiedostoihin ref.pot ja def.po viitataan muissa teksteissä, joten ne on paras jättää suomentamatta.
-#: src/msgcmp.c:213 src/msgmerge.c:480
+#: src/msgcmp.c:214 src/msgmerge.c:499
 #, c-format
 msgid "Usage: %s [OPTION] def.po ref.pot\n"
 msgstr "Käyttö: %s [VALITSIN] def.po ref.pot\n"
 
-#: src/msgcmp.c:218
+#: src/msgcmp.c:219
 #, c-format, no-wrap
 msgid ""
 "Compare two Uniforum style .po files to check that both contain the same\n"
@@ -1521,22 +1690,22 @@ msgstr ""
 "ei löydetä tarkkaa täsmäystä, käytetään vajaustäsmäystä tuottamaan parempi\n"
 "diagnostiikka.\n"
 
-#: src/msgcmp.c:232
+#: src/msgcmp.c:233
 #, c-format
 msgid "  def.po                      translations\n"
 msgstr "  def.po                      käännökset\n"
 
-#: src/msgcmp.c:234
+#: src/msgcmp.c:235
 #, c-format
 msgid "  ref.pot                     references to the sources\n"
 msgstr "  ref.pot                     viitteet lähteisiin\n"
 
-#: src/msgcmp.c:239 src/msgmerge.c:546
+#: src/msgcmp.c:240 src/msgmerge.c:565
 #, c-format
 msgid "Operation modifiers:\n"
 msgstr "Toimintomääreet:\n"
 
-#: src/msgcmp.c:241 src/msgmerge.c:548
+#: src/msgcmp.c:242 src/msgmerge.c:567
 #, c-format
 msgid ""
 "  -m, --multi-domain          apply ref.pot to each of the domains in def."
@@ -1545,65 +1714,65 @@ msgstr ""
 "  -m, --multi-domain          käytä ref.pot-tiedostoa jokaiselle "
 "nimiavaruudelle tiedostossa def.po\n"
 
-#: src/msgcmp.c:243 src/msgmerge.c:550
+#: src/msgcmp.c:244 src/msgmerge.c:569
 #, c-format
 msgid "  -N, --no-fuzzy-matching     do not use fuzzy matching\n"
 msgstr "  -N, --no-fuzzy-matching     älä käytä vajaustäsmäystä\n"
 
-#: src/msgcmp.c:245
+#: src/msgcmp.c:246
 #, c-format
 msgid "      --use-fuzzy             consider fuzzy entries\n"
 msgstr "      --use-fuzzy             ota huomioon vajausrivit\n"
 
-#: src/msgcmp.c:247
+#: src/msgcmp.c:248
 #, c-format
 msgid "      --use-untranslated      consider untranslated entries\n"
 msgstr "      --use-untranslated      ota huomioon kääntämättömät rivit\n"
 
-#: src/msgcmp.c:324
+#: src/msgcmp.c:325
 #, c-format
 msgid "this message is untranslated"
 msgstr "tämä viesti on kääntämättä"
 
-#: src/msgcmp.c:330
+#: src/msgcmp.c:331
 #, c-format
 msgid "this message needs to be reviewed by the translator"
 msgstr "kääntäjän on katselmoitava tämä viesti"
 
-#: src/msgcmp.c:369 src/msgmerge.c:1500
+#: src/msgcmp.c:370 src/msgmerge.c:1523
 #, c-format
 msgid "this message is used but not defined..."
 msgstr "tätä viestiä käytetään, mutta sitä ei ole määritelty..."
 
-#: src/msgcmp.c:372 src/msgmerge.c:1503
+#: src/msgcmp.c:373 src/msgmerge.c:1526
 #, c-format
 msgid "...but this definition is similar"
 msgstr "...mutta tämä määrittely on samanlainen"
 
-#: src/msgcmp.c:377 src/msgmerge.c:1531
+#: src/msgcmp.c:378 src/msgmerge.c:1554
 #, c-format
 msgid "this message is used but not defined in %s"
 msgstr ""
 "tätä viestiä käytetään, mutta sitä ei ole määritelty nimiavaruudessa %s"
 
-#: src/msgcmp.c:546
+#: src/msgcmp.c:547
 #, c-format
 msgid "warning: this message is not used"
 msgstr "varoitus: tätä viestiä ei käytetä"
 
-#: src/msgcmp.c:553 src/msgfmt.c:545
+#: src/msgcmp.c:554 src/msgfmt.c:787 src/msgfmt.c:1633 src/xgettext.c:1021
 #, c-format
 msgid "found %d fatal error"
 msgid_plural "found %d fatal errors"
 msgstr[0] "%d vakava virhe"
 msgstr[1] "%d vakavaa virhettä"
 
-#: src/msgcomm.c:315
+#: src/msgcomm.c:317
 #, c-format
 msgid "at least two files must be specified"
 msgstr "on annettava vähintään kaksi tiedostoa"
 
-#: src/msgcomm.c:363
+#: src/msgcomm.c:365
 #, c-format, no-wrap
 msgid ""
 "Find messages which are common to two or more of the specified PO files.\n"
@@ -1624,7 +1793,7 @@ msgstr ""
 "--use-first on määritelty. Silloin ne otetaan ensimmäisestä PO-tiedostosta,\n"
 "joka on määritellyt ne. Tiedostosijainnit kaikista PO-tiedostoista kumuloituvat.\n"
 
-#: src/msgcomm.c:401
+#: src/msgcomm.c:403
 #, c-format
 msgid ""
 "  ->, --more-than=NUMBER      print messages with more than this many\n"
@@ -1635,7 +1804,7 @@ msgstr ""
 "                              monta määrittelyä. Oletus 1, jos ei ole "
 "asetettu\n"
 
-#: src/msgcomm.c:451 src/xgettext.c:981
+#: src/msgcomm.c:453 src/xgettext.c:1209
 #, c-format
 msgid ""
 "      --omit-header           don't write header with 'msgid \"\"' entry\n"
@@ -1643,62 +1812,62 @@ msgstr ""
 "      --omit-header           älä kirjoita otsaketta, jossa on ’msgid \"\"’ -"
 "rivi\n"
 
-#: src/msgconv.c:306
+#: src/msgconv.c:312
 #, c-format
 msgid "Converts a translation catalog to a different character encoding.\n"
 msgstr "Muuntaa käännösluettelon eri merkkikoodaukseen.\n"
 
-#: src/msgconv.c:330
+#: src/msgconv.c:336
 #, c-format
 msgid "Conversion target:\n"
 msgstr "Muunnoskohde:\n"
 
-#: src/msgconv.c:334
+#: src/msgconv.c:340
 #, c-format
 msgid "The default encoding is the current locale's encoding.\n"
 msgstr "Oletuskoodaus on nykyisen paikallisasetuksen koodaus.\n"
 
-#: src/msgconv.c:358 src/msgen.c:353 src/msgmerge.c:579
+#: src/msgconv.c:364 src/msgen.c:360 src/msgmerge.c:598
 #, c-format
 msgid "  -i, --indent                indented output style\n"
 msgstr "  -i, --indent                sisennetty tulostetyyli\n"
 
-#: src/msgconv.c:360 src/msgen.c:355 src/msgfilter.c:456 src/msggrep.c:603
-#: src/msgmerge.c:581
+#: src/msgconv.c:366 src/msgen.c:362 src/msgfilter.c:488 src/msggrep.c:609
+#: src/msgmerge.c:600
 #, c-format
 msgid "      --no-location           suppress '#: filename:line' lines\n"
 msgstr "      --no-location           vaienna ’#: filename:line’ -rivit\n"
 
-#: src/msgconv.c:362 src/msgen.c:357 src/msgfilter.c:458 src/msggrep.c:605
-#: src/msgmerge.c:583
+#: src/msgconv.c:368 src/msgen.c:364 src/msgfilter.c:490 src/msggrep.c:611
+#: src/msgmerge.c:602
 #, c-format
 msgid ""
-"      --add-location          preserve '#: filename:line' lines (default)\n"
+"  -n, --add-location          preserve '#: filename:line' lines (default)\n"
 msgstr ""
-"      --add-location          säilytä ’#: filename:line’ -rivit (oletus)\n"
+"  -n, --add-location          säilytä ’#: filename:line’ -rivit (oletus)\n"
 
-#: src/msgconv.c:364 src/msgen.c:359 src/msgfilter.c:460 src/msggrep.c:607
-#: src/msgmerge.c:585
+#: src/msgconv.c:370 src/msgen.c:366 src/msgfilter.c:492 src/msggrep.c:613
+#: src/msgmerge.c:604
 #, c-format
 msgid "      --strict                strict Uniforum output style\n"
 msgstr "      --strict                tiukka Uniforum-tulostetyyli\n"
 
-#: src/msgen.c:248 src/msgfmt.c:383 src/xgettext.c:649
+#: src/msgen.c:259 src/msgfmt.c:463 src/xgettext.c:724
 #, c-format
 msgid "no input file given"
 msgstr "syötetiedostoa ei annettu"
 
-#: src/msgen.c:253
+#: src/msgen.c:264
 #, c-format
 msgid "exactly one input file required"
 msgstr "tarvitaan täsmälleen yksi syötetiedosto"
 
-#: src/msgen.c:298
+#: src/msgen.c:305
 #, c-format
 msgid "Usage: %s [OPTION] INPUTFILE\n"
 msgstr "Käyttö: %s [VALITSIN] SYÖTETIEDOSTO\n"
 
-#: src/msgen.c:303
+#: src/msgen.c:310
 #, c-format, no-wrap
 msgid ""
 "Creates an English translation catalog.  The input file is the last\n"
@@ -1711,22 +1880,22 @@ msgstr ""
 "ohjelman luoma). Kääntämättömät rivit liitetään käännökseen, joka on\n"
 "identtinen msgid-merkkijonolle.\n"
 
-#: src/msgen.c:315
+#: src/msgen.c:322
 #, c-format
 msgid "  INPUTFILE                   input PO or POT file\n"
 msgstr "  SYÖTETIEDOSTO               syötteen PO- tai POT-tiedosto\n"
 
-#: src/msgexec.c:196
+#: src/msgexec.c:203
 #, c-format
 msgid "missing command name"
 msgstr "puuttuva komentonimi"
 
-#: src/msgexec.c:257
+#: src/msgexec.c:264
 #, c-format
 msgid "Usage: %s [OPTION] COMMAND [COMMAND-OPTION]\n"
 msgstr "Käyttö: %s [VALITSIN] KOMENTO [KOMENNON VALITSIN]\n"
 
-#: src/msgexec.c:262
+#: src/msgexec.c:269
 #, c-format, no-wrap
 msgid ""
 "Applies a command to all translations of a translation catalog.\n"
@@ -1741,7 +1910,7 @@ msgstr ""
 "Se tulosteesta tulee msgexec-tuloste. Paluukoodi msgexec-ohjelmalle\n"
 "on kaikkien kutsujen maksimipaluukoodi.\n"
 
-#: src/msgexec.c:271
+#: src/msgexec.c:278
 #, c-format, no-wrap
 msgid ""
 "A special builtin command called '0' outputs the translation, followed by a\n"
@@ -1750,37 +1919,47 @@ msgstr ""
 "Erityinen sisäinen komento nimeltä ’0’ tulostaa käännöksen ja nollatavun.\n"
 "”msgexec 0”:n tuloste kelpaa syötteeksi ”xargs -0”:lle.\n"
 
-#: src/msgexec.c:281 src/msgfilter.c:401
+#: src/msgexec.c:283
+#, c-format
+msgid "Command input:\n"
+msgstr "Komentosyöte:\n"
+
+#: src/msgexec.c:285
+#, c-format
+msgid "  --newline                   add newline at the end of input\n"
+msgstr "  --newline                   lisää rivinvaihto syötteen loppuun\n"
+
+#: src/msgexec.c:293 src/msgfilter.c:427
 #, c-format
 msgid "  -i, --input=INPUTFILE       input PO file\n"
 msgstr "  -i, --input=SYÖTETIEDOSTO   syöte-PO-tiedosto\n"
 
-#: src/msgexec.c:345
+#: src/msgexec.c:357
 #, c-format
 msgid "write to stdout failed"
 msgstr "kirjoittaminen vakiotulosteeseen epäonnistui"
 
-#: src/msgfilter.c:289
+#: src/msgfilter.c:305
 #, c-format
 msgid "missing filter name"
 msgstr "puuttuva suodatinnimi"
 
-#: src/msgfilter.c:313
+#: src/msgfilter.c:325
 #, c-format
 msgid "at least one sed script must be specified"
 msgstr "vähintään yksi sed-skripti on määriteltävä"
 
-#: src/msgfilter.c:388
+#: src/msgfilter.c:414
 #, c-format
 msgid "Usage: %s [OPTION] FILTER [FILTER-OPTION]\n"
 msgstr "Käyttö: %s [VALITSIN] SUODATIN [SUODATTIMEN VALITSIN]\n"
 
-#: src/msgfilter.c:392
+#: src/msgfilter.c:418
 #, c-format
 msgid "Applies a filter to all translations of a translation catalog.\n"
 msgstr "Soveltaa suodatinta kaikkiin käännösluettelon käännöksiin.\n"
 
-#: src/msgfilter.c:416
+#: src/msgfilter.c:442
 #, c-format
 msgid ""
 "The FILTER can be any program that reads a translation from standard input\n"
@@ -1790,19 +1969,33 @@ msgstr ""
 "vakiosyötteestä\n"
 "ja kirjoittaa muutetun käännöksen vakiotulosteeseen.\n"
 
-#: src/msgfilter.c:421
+#: src/msgfilter.c:447
+#, c-format
+msgid "Filter input and output:\n"
+msgstr "Suodatinsyöte ja -tuloste:\n"
+
+#: src/msgfilter.c:449
+#, c-format
+msgid ""
+"  --newline                   add a newline at the end of input and\n"
+"                                remove a newline from the end of output"
+msgstr ""
+"  --newline                   lisää rivinvaihto syötteen loppuun ja\n"
+"                                poista rivinvaihto tulosteen lopusta"
+
+#: src/msgfilter.c:453
 #, c-format
 msgid "Useful FILTER-OPTIONs when the FILTER is 'sed':\n"
 msgstr "Hyödylliset SUODATTIMEN VALITSIN-asetukset kun SUODATIN on ’sed’:\n"
 
-#: src/msgfilter.c:423
+#: src/msgfilter.c:455
 #, c-format
 msgid ""
 "  -e, --expression=SCRIPT     add SCRIPT to the commands to be executed\n"
 msgstr ""
 "  -e, --expression=SKRIPTI    lisää SKRIPTI suoritettaviin komentoihin\n"
 
-#: src/msgfilter.c:425
+#: src/msgfilter.c:457
 #, c-format
 msgid ""
 "  -f, --file=SCRIPTFILE       add the contents of SCRIPTFILE to the "
@@ -1812,14 +2005,14 @@ msgstr ""
 "  -f, --file=SKRIPTITIEDOSTO  lisää SKRIPTITIEDOSTOn sisältö suoritettaviin\n"
 "                                komentoihin\n"
 
-#: src/msgfilter.c:428
+#: src/msgfilter.c:460
 #, c-format
 msgid ""
 "  -n, --quiet, --silent       suppress automatic printing of pattern space\n"
 msgstr ""
 "  -n, --quiet, --silent       vaienna mallitilan automaattinen tulostus\n"
 
-#: src/msgfilter.c:446 src/msggrep.c:595
+#: src/msgfilter.c:478 src/msggrep.c:601
 #, c-format
 msgid ""
 "      --no-escape             do not use C escapes in output (default)\n"
@@ -1827,12 +2020,12 @@ msgstr ""
 "      --no-escape             älä käytä C-koodinvaihtomerkkejä tulosteessa "
 "(oletus)\n"
 
-#: src/msgfilter.c:452 src/msggrep.c:601
+#: src/msgfilter.c:484 src/msggrep.c:607
 #, c-format
 msgid "      --indent                indented output style\n"
 msgstr "      --indent                sisennetty tulostetyyli\n"
 
-#: src/msgfilter.c:454
+#: src/msgfilter.c:486
 #, c-format
 msgid ""
 "      --keep-header           keep header entry unmodified, don't filter it\n"
@@ -1840,102 +2033,124 @@ msgstr ""
 "      --keep-header           pidä otsake muokkaamattomana, älä suodata "
 "sitä\n"
 
-#: src/msgfmt.c:304
+#: src/msgfilter.c:666
+#, c-format
+msgid "filter output is not terminated with a newline"
+msgstr "syötetuloste ei pääty rivinvaihtoon"
+
+#: src/msgfmt.c:372
 #, c-format
 msgid "the argument to %s should be a single punctuation character"
 msgstr "argumentti valitsimeen %s pitäisi olla yksittäinen välimerkki"
 
-#: src/msgfmt.c:351
+#: src/msgfmt.c:419
 #, c-format
 msgid "invalid endianness: %s"
 msgstr "virheellinen endian-tyyppi: %s"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/msgfmt.c:372 src/msgunfmt.c:268 src/xgettext.c:605
+#: src/msgfmt.c:450 src/msgunfmt.c:269 src/xgettext.c:684
 msgid "Ulrich Drepper"
 msgstr "Ulrich Drepper"
 
-#: src/msgfmt.c:425 src/msgfmt.c:447 src/msgfmt.c:469 src/msgunfmt.c:330
-#: src/msgunfmt.c:353
+#: src/msgfmt.c:471
+#, c-format
+msgid "no input file should be given if %s and %s are specified"
+msgstr "syötetiedostoa ei pitäisi antaa, jos %s ja %s on määritelty"
+
+#: src/msgfmt.c:517 src/msgfmt.c:539 src/msgfmt.c:561 src/msgunfmt.c:331
+#: src/msgunfmt.c:354
 #, c-format
 msgid "%s requires a \"-d directory\" specification"
 msgstr "valitsin %s vaatii ”-d directory”-määrittelyn"
 
-#: src/msgfmt.c:440 src/msgfmt.c:462 src/msgunfmt.c:323 src/msgunfmt.c:346
+#: src/msgfmt.c:532 src/msgfmt.c:554 src/msgfmt.c:589 src/msgfmt.c:617
+#: src/msgunfmt.c:324 src/msgunfmt.c:347
 #, c-format
 msgid "%s requires a \"-l locale\" specification"
 msgstr "valitsin %s vaatii ”-l locale”-määrittelyn"
 
-#: src/msgfmt.c:478 src/msgunfmt.c:362 src/msgunfmt.c:368
+#: src/msgfmt.c:571 src/msgfmt.c:599
 #, c-format
-msgid "%s is only valid with %s or %s"
-msgstr "valitsin %s on kelvollinen vain valitsimen %s tai %s kanssa"
+msgid "%s requires a \"--template template\" specification"
+msgstr "valitsin %s vaatii ”--template template”-määrittelyn"
 
-#: src/msgfmt.c:484 src/msgfmt.c:490
+#: src/msgfmt.c:578 src/msgfmt.c:606
 #, c-format
-msgid "%s is only valid with %s, %s or %s"
-msgstr "valitsin %s on kelvollinen vain valitsimen %s, %s tai %s kanssa"
+msgid "%s requires a \"-o file\" specification"
+msgstr "valitsin %s vaatii ”-o file”-määrittelyn"
 
-#. TRANSLATORS: The prefix before a statistics message.  The argument
+#: src/msgfmt.c:584 src/msgfmt.c:612
+#, c-format
+msgid "%s and %s are mutually exclusive in %s"
+msgstr "valitsimet %s ja %s ovat toisensa poissulkevia kohteessa %s"
+
+#: src/msgfmt.c:626 src/msgunfmt.c:363 src/msgunfmt.c:369
+#, c-format
+msgid "%s is only valid with %s or %s"
+msgstr "valitsin %s on kelvollinen vain valitsimen %s tai %s kanssa"
+
+#: src/msgfmt.c:632 src/msgfmt.c:638
+#, c-format
+msgid "%s is only valid with %s, %s or %s"
+msgstr "valitsin %s on kelvollinen vain valitsimen %s, %s tai %s kanssa"
+
+#: src/msgfmt.c:723
+#, fuzzy, c-format
+msgid "cannot locate ITS rules for %s"
+msgstr "tulostetiedoston ”%s” luominen epäonnistui"
+
+#. TRANSLATORS: The prefix before a statistics message.  The argument
 #. is a file name or a comma separated list of file names.
-#: src/msgfmt.c:620
+#: src/msgfmt.c:884
 #, c-format
 msgid "%s: "
 msgstr "%s: "
 
-#: src/msgfmt.c:624
+#: src/msgfmt.c:888
 #, c-format
 msgid "%d translated message"
 msgid_plural "%d translated messages"
 msgstr[0] "%d käännetty viesti"
 msgstr[1] "%d käännettyä viestiä"
 
-#: src/msgfmt.c:629
+#: src/msgfmt.c:893
 #, c-format
 msgid ", %d fuzzy translation"
 msgid_plural ", %d fuzzy translations"
 msgstr[0] ", %d vajaa käännös"
 msgstr[1] ", %d vajaata käännöstä"
 
-#: src/msgfmt.c:634
+#: src/msgfmt.c:898
 #, c-format
 msgid ", %d untranslated message"
 msgid_plural ", %d untranslated messages"
 msgstr[0] ", %d kääntämätön viesti"
 msgstr[1] ", %d kääntämätöntä viestiä"
 
-#: src/msgfmt.c:654
+#: src/msgfmt.c:918
 #, c-format
 msgid "Usage: %s [OPTION] filename.po ...\n"
 msgstr "Käyttö: %s [VALITSIN] tiedosto.po ...\n"
 
-#: src/msgfmt.c:658
+#: src/msgfmt.c:922
 #, c-format
 msgid "Generate binary message catalog from textual translation description.\n"
 msgstr ""
 "Tuota binäärimuotoisia viestiluetteloita tekstimuotoisesta "
 "käännöskuvauksesta.\n"
 
-#: src/msgfmt.c:663 src/xgettext.c:841
-#, c-format, no-wrap
-msgid ""
-"Mandatory arguments to long options are mandatory for short options too.\n"
-"Similarly for optional arguments.\n"
-msgstr ""
-"Pitkien valitsinten pakolliset argumentit ovat pakollisia myös lyhyille.\n"
-"Valinnaiset argumentit vastaavasti.\n"
-
-#: src/msgfmt.c:670
+#: src/msgfmt.c:934
 #, c-format
 msgid "  filename.po ...             input files\n"
 msgstr "  tiedosto.po ...             syötetiedostot\n"
 
-#: src/msgfmt.c:677 src/msgmerge.c:512 src/msgunfmt.c:438 src/xgettext.c:890
+#: src/msgfmt.c:941 src/msgmerge.c:531 src/msgunfmt.c:439 src/xgettext.c:1106
 #, c-format
 msgid "Operation mode:\n"
 msgstr "Toimintatila:\n"
 
-#: src/msgfmt.c:679
+#: src/msgfmt.c:943
 #, c-format
 msgid ""
 "  -j, --java                  Java mode: generate a Java ResourceBundle "
@@ -1943,7 +2158,7 @@ msgid ""
 msgstr ""
 "  -j, --java                  Java-tila: tuota Java ResourceBundle -luokka\n"
 
-#: src/msgfmt.c:681
+#: src/msgfmt.c:945
 #, c-format
 msgid ""
 "      --java2                 like --java, and assume Java2 (JDK 1.2 or "
@@ -1952,12 +2167,12 @@ msgstr ""
 "      --java2                 kuten --java, ja otaksu Java2 (JDK 1.2 tai "
 "uudempi)\n"
 
-#: src/msgfmt.c:683
+#: src/msgfmt.c:947
 #, c-format
 msgid "      --csharp                C# mode: generate a .NET .dll file\n"
 msgstr "      --csharp                C#-tila: tuota .NET .dll -tiedosto\n"
 
-#: src/msgfmt.c:685
+#: src/msgfmt.c:949
 #, c-format
 msgid ""
 "      --csharp-resources      C# resources mode: generate a .NET .resources "
@@ -1966,40 +2181,52 @@ msgstr ""
 "      --csharp-resources      C#-resurssitila: tuota .NET .resources -"
 "tiedosto\n"
 
-#: src/msgfmt.c:687
+#: src/msgfmt.c:951
 #, c-format
 msgid ""
 "      --tcl                   Tcl mode: generate a tcl/msgcat .msg file\n"
 msgstr ""
 "      --tcl                   Tcl-tila: tuotaa tcl/msgcat .msg -tiedosto\n"
 
-#: src/msgfmt.c:689
+#: src/msgfmt.c:953
 #, c-format
 msgid "      --qt                    Qt mode: generate a Qt .qm file\n"
 msgstr "      --qt                    Qt-tila: tuota Qt .qm -tiedosto\n"
 
-#: src/msgfmt.c:696
+#: src/msgfmt.c:955
+#, c-format
+msgid ""
+"      --desktop               Desktop Entry mode: generate a .desktop file\n"
+msgstr ""
+"      --desktop               Työpöytä-syöttötila: tuota .desktop -tiedosto\n"
+
+#: src/msgfmt.c:957
+#, fuzzy, c-format
+msgid "      --xml                   XML mode: generate XML file\n"
+msgstr "      --qt                    Qt-tila: tuota Qt .qm -tiedosto\n"
+
+#: src/msgfmt.c:964
 #, c-format
 msgid "      --strict                enable strict Uniforum mode\n"
 msgstr "      --strict                ota käyttöön tiukka Uniforum-tila\n"
 
-#: src/msgfmt.c:698 src/xgettext.c:865
+#: src/msgfmt.c:966 src/xgettext.c:1081
 #, c-format
 msgid "If output file is -, output is written to standard output.\n"
 msgstr "Jos tulostiedosto on -, tuloste kirjoitetaan vakiotulosteeseen.\n"
 
-#: src/msgfmt.c:701
+#: src/msgfmt.c:969
 #, c-format
 msgid "Output file location in Java mode:\n"
 msgstr "Tulostetiedostosijainti Java-tilassa:\n"
 
-#: src/msgfmt.c:703 src/msgfmt.c:717 src/msgunfmt.c:458 src/msgunfmt.c:469
+#: src/msgfmt.c:971 src/msgfmt.c:987 src/msgunfmt.c:459 src/msgunfmt.c:470
 #, c-format
 msgid "  -r, --resource=RESOURCE     resource name\n"
 msgstr "  -r, --resource=RESURSSI     resurssinimi\n"
 
-#: src/msgfmt.c:705 src/msgfmt.c:719 src/msgfmt.c:729 src/msgunfmt.c:460
-#: src/msgunfmt.c:471 src/msgunfmt.c:481
+#: src/msgfmt.c:973 src/msgfmt.c:989 src/msgfmt.c:999 src/msgfmt.c:1009
+#: src/msgfmt.c:1026 src/msgunfmt.c:461 src/msgunfmt.c:472 src/msgunfmt.c:482
 #, c-format
 msgid ""
 "  -l, --locale=LOCALE         locale name, either language or "
@@ -2007,14 +2234,22 @@ msgid ""
 msgstr ""
 "  -l, --locale=MAA-ASETUSTO   maa-asetuston nimi, joko kieli tai kieli_MAA\n"
 
-#: src/msgfmt.c:707
+#: src/msgfmt.c:975
+#, c-format
+msgid ""
+"      --source                produce a .java file, instead of a .class "
+"file\n"
+msgstr ""
+"      --source                tuota .java-tiedosto, eikä .class -tiedostoa\n"
+
+#: src/msgfmt.c:977
 #, c-format
 msgid ""
 "  -d DIRECTORY                base directory of classes directory hierarchy\n"
 msgstr ""
 "  -d HAKEMISTO                luokkien hakemistohierarkian perushakemisto\n"
 
-#: src/msgfmt.c:709
+#: src/msgfmt.c:979
 #, c-format
 msgid ""
 "The class name is determined by appending the locale name to the resource "
@@ -2026,12 +2261,12 @@ msgstr ""
 "erottamalla ne alaviivalla.  Valitsin -d on pakollinen.  Luokka on\n"
 "kirjoitettu määriteltyyn hakemistoon.\n"
 
-#: src/msgfmt.c:715
+#: src/msgfmt.c:985
 #, c-format
 msgid "Output file location in C# mode:\n"
 msgstr "Tulostetiedostosijainti C#-tilassa:\n"
 
-#: src/msgfmt.c:721 src/msgunfmt.c:473
+#: src/msgfmt.c:991 src/msgunfmt.c:474
 #, c-format
 msgid ""
 "  -d DIRECTORY                base directory for locale dependent .dll "
@@ -2040,7 +2275,7 @@ msgstr ""
 "  -d HAKEMISTO                perushakemisto paikallisasetuksista "
 "riippuville .dll-tiedostoille\n"
 
-#: src/msgfmt.c:723
+#: src/msgfmt.c:993
 #, c-format
 msgid ""
 "The -l and -d options are mandatory.  The .dll file is written in a\n"
@@ -2050,17 +2285,17 @@ msgstr ""
 "määriteltyyn\n"
 "alihakemistoon, jonka nimi riippuu paikallisasetuksesta.\n"
 
-#: src/msgfmt.c:727
+#: src/msgfmt.c:997
 #, c-format
 msgid "Output file location in Tcl mode:\n"
 msgstr "Tulostetiedostosijainti Tcl-tilassa:\n"
 
-#: src/msgfmt.c:731 src/msgunfmt.c:483
+#: src/msgfmt.c:1001 src/msgunfmt.c:484
 #, c-format
 msgid "  -d DIRECTORY                base directory of .msg message catalogs\n"
 msgstr "  -d HAKEMISTO                perushakemisto .msg-viestiluetteloille\n"
 
-#: src/msgfmt.c:733
+#: src/msgfmt.c:1003
 #, c-format
 msgid ""
 "The -l and -d options are mandatory.  The .msg file is written in the\n"
@@ -2069,12 +2304,64 @@ msgstr ""
 "Valitsimet -l ja -d ovat pakollisia.  Tiedosto .msg kirjoitetaan\n"
 "määriteltyyn hakemistoon.\n"
 
-#: src/msgfmt.c:745 src/xgettext.c:882
+#: src/msgfmt.c:1007
+#, c-format
+msgid "Desktop Entry mode options:\n"
+msgstr "Työpyötäsyöttötilan valitsimet:\n"
+
+#: src/msgfmt.c:1013
+#, c-format
+msgid "  --template=TEMPLATE         a .desktop file used as a template\n"
+msgstr ""
+"  --template=MALLINNE         tiedostoa .desktop käytetään mallinteena\n"
+
+#: src/msgfmt.c:1015 src/msgfmt.c:1034
+#, c-format
+msgid "  -d DIRECTORY                base directory of .po files\n"
+msgstr "  -d HAKEMISTO                .po-tiedostojen perushakemisto\n"
+
+#: src/msgfmt.c:1017 src/xgettext.c:1135
+#, c-format
+msgid ""
+"  -kWORD, --keyword=WORD      look for WORD as an additional keyword\n"
+"  -k, --keyword               do not to use default keywords\n"
+msgstr ""
+"  -kWORD, --keyword=WORD      etsi WORD-argumentti lisäavainsanana\n"
+"  -k, --keyword               älä käytä oletusavainsanoja\n"
+
+#: src/msgfmt.c:1020 src/msgfmt.c:1036
+#, c-format
+msgid ""
+"The -l, -o, and --template options are mandatory.  If -D is specified, "
+"input\n"
+"files are read from the directory instead of the command line arguments.\n"
+msgstr ""
+"Valitsimet -l, -o, ja --template ovat pakollisia.  Jos valitsin -D "
+"määritellään,\n"
+"syötetiedostot luetaan hakemistosta eikä komentoriviargumentteina.\n"
+
+#: src/msgfmt.c:1024
+#, fuzzy, c-format
+msgid "XML mode options:\n"
+msgstr "Työpyötäsyöttötilan valitsimet:\n"
+
+#: src/msgfmt.c:1028
+#, c-format
+msgid "  -L, --language=NAME         recognise the specified XML language\n"
+msgstr ""
+
+#: src/msgfmt.c:1032
+#, fuzzy, c-format
+msgid "  --template=TEMPLATE         an XML file used as a template\n"
+msgstr ""
+"  --template=MALLINNE         tiedostoa .desktop käytetään mallinteena\n"
+
+#: src/msgfmt.c:1048 src/xgettext.c:1098
 #, c-format
 msgid "Input file interpretation:\n"
 msgstr "Syötetiedoston tulkinta:\n"
 
-#: src/msgfmt.c:747
+#: src/msgfmt.c:1050
 #, c-format
 msgid ""
 "  -c, --check                 perform all the checks implied by\n"
@@ -2086,13 +2373,13 @@ msgstr ""
 "                                --check-format, --check-header, --check-"
 "domain\n"
 
-#: src/msgfmt.c:750
+#: src/msgfmt.c:1053
 #, c-format
 msgid "      --check-format          check language dependent format strings\n"
 msgstr ""
 "      --check-format          tarkista kieliriippuvaiset muotomerkkijonot\n"
 
-#: src/msgfmt.c:752
+#: src/msgfmt.c:1055
 #, c-format
 msgid ""
 "      --check-header          verify presence and contents of the header "
@@ -2100,7 +2387,7 @@ msgid ""
 msgstr ""
 "      --check-header          tarkista otsakkeen olemassaolo ja sisältö\n"
 
-#: src/msgfmt.c:754
+#: src/msgfmt.c:1057
 #, c-format
 msgid ""
 "      --check-domain          check for conflicts between domain directives\n"
@@ -2110,7 +2397,7 @@ msgstr ""
 "valitsimen\n"
 "                                --output-file väliset ristiriidat\n"
 
-#: src/msgfmt.c:757
+#: src/msgfmt.c:1060
 #, c-format
 msgid ""
 "  -C, --check-compatibility   check that GNU msgfmt behaves like X/Open "
@@ -2119,7 +2406,7 @@ msgstr ""
 "  -C, --check-compatibility   tarkista, että GNU msgfmt käyttäytyy kuin X/"
 "Open msgfmt\n"
 
-#: src/msgfmt.c:759
+#: src/msgfmt.c:1062
 #, c-format
 msgid ""
 "      --check-accelerators[=CHAR]  check presence of keyboard accelerators "
@@ -2130,12 +2417,12 @@ msgstr ""
 "olemassaolo\n"
 "                                valikkoriveillä\n"
 
-#: src/msgfmt.c:762
+#: src/msgfmt.c:1065
 #, c-format
 msgid "  -f, --use-fuzzy             use fuzzy entries in output\n"
 msgstr "  -f, --use-fuzzy             käytä vajausmerkintöjä tulosteessa\n"
 
-#: src/msgfmt.c:767
+#: src/msgfmt.c:1070
 #, c-format
 msgid ""
 "  -a, --alignment=NUMBER      align strings to NUMBER bytes (default: %d)\n"
@@ -2143,7 +2430,7 @@ msgstr ""
 "  -a, --alignment=NUMERO      tasaa merkkijonot NUMEROon tavuun (oletus: "
 "%d)\n"
 
-#: src/msgfmt.c:769
+#: src/msgfmt.c:1072
 #, c-format
 msgid ""
 "      --endianness=BYTEORDER  write out 32-bit numbers in the given byte "
@@ -2157,85 +2444,94 @@ msgstr ""
 "riippuu\n"
 "                                alustasta)\n"
 
-#: src/msgfmt.c:772
+#: src/msgfmt.c:1075
 #, c-format
 msgid ""
 "      --no-hash               binary file will not include the hash table\n"
 msgstr "      --no-hash               binaaritiedosto ei sisällä hash-taulua\n"
 
-#: src/msgfmt.c:781
+#: src/msgfmt.c:1084
 #, c-format
 msgid "      --statistics            print statistics about translations\n"
 msgstr "      --statistics            tulosta tilastot käännöksistä\n"
 
-#: src/msgfmt.c:783 src/msgmerge.c:607 src/msgunfmt.c:533
+#: src/msgfmt.c:1086 src/msgmerge.c:626 src/msgunfmt.c:534
 #, c-format
 msgid "  -v, --verbose               increase verbosity level\n"
 msgstr "  -v, --verbose               kasvata laveustasoa\n"
 
-#: src/msgfmt.c:897
+#: src/msgfmt.c:1199
 #, c-format
 msgid "warning: PO file header missing or invalid\n"
 msgstr "varoitus: PO-tiedoston otsake puuttuu tai on virheellinen\n"
 
-#: src/msgfmt.c:900
+#: src/msgfmt.c:1202
 #, c-format
 msgid "warning: charset conversion will not work\n"
 msgstr "varoitus: merkistömuunnos ei tule toimimaan\n"
 
-#: src/msgfmt.c:910
+#: src/msgfmt.c:1212
 #, c-format
 msgid "warning: PO file header fuzzy\n"
 msgstr "varoitus: PO-tiedoston otsake on merkitty vajaaksi\n"
 
-#: src/msgfmt.c:912
+#: src/msgfmt.c:1214
 #, c-format
 msgid "warning: older versions of msgfmt will give an error on this\n"
 msgstr "varoitus: msgfmt:n vanhat versiot antavat tästä virheen\n"
 
-#: src/msgfmt.c:936
+#: src/msgfmt.c:1238
 #, c-format
 msgid "domain name \"%s\" not suitable as file name"
 msgstr "nimiavaruusnimi ”%s” ei ole sopiva tiedostonimenä"
 
-#: src/msgfmt.c:941
+#: src/msgfmt.c:1243
 #, c-format
 msgid "domain name \"%s\" not suitable as file name: will use prefix"
 msgstr "nimiavaruusnimi ”%s” ei ole sopiva tiedostonimenä: käyttää etuliitettä"
 
-#: src/msgfmt.c:955
+#: src/msgfmt.c:1257
 #, c-format
 msgid "'domain %s' directive ignored"
 msgstr "’nimiavaruus %s’-direktiivi ohitetaan"
 
-#: src/msgfmt.c:1015
+#: src/msgfmt.c:1317
 #, c-format
 msgid "empty 'msgstr' entry ignored"
 msgstr "tyhjä ’msgstr’-merkkijono jätetty huomioimatta"
 
-#: src/msgfmt.c:1016
+#: src/msgfmt.c:1318
 #, c-format
 msgid "fuzzy 'msgstr' entry ignored"
 msgstr "vajaa ’msgstr’-merkkijono jätetty huomioimatta"
 
-#: src/msgfmt.c:1065
+#: src/msgfmt.c:1367
 #, c-format
 msgid "%s: warning: source file contains fuzzy translation"
 msgstr "%s: varoitus: lähdetiedosto sisältää vajaan käännöksen"
 
-#: src/msggrep.c:258 src/po-lex.c:657 src/read-mo.c:86
-#: src/read-properties.c:89 src/read-stringtable.c:98 src/x-awk.c:139
-#: src/x-c.c:484 src/x-csharp.c:163 src/x-elisp.c:145 src/x-glade.c:834
-#: src/x-java.c:181 src/x-javascript.c:172 src/x-librep.c:147 src/x-lisp.c:212
-#: src/x-lua.c:173 src/x-perl.c:227 src/x-perl.c:302 src/x-perl.c:395
-#: src/x-php.c:163 src/x-python.c:176 src/x-rst.c:233 src/x-scheme.c:171
-#: src/x-sh.c:155 src/x-smalltalk.c:91 src/x-tcl.c:150 src/x-vala.c:174
-#: src/x-ycp.c:91
+#: src/msgfmt.c:1484
+#, c-format
+msgid "%s does not exist"
+msgstr "%s ei ole olemassa"
+
+#: src/msgfmt.c:1491
+#, c-format
+msgid "%s exists but cannot read"
+msgstr "%s on olemassa, mutta sen lukeminen epäonnistui"
+
+#: src/msggrep.c:259 src/po-lex.c:657 src/read-desktop.c:127 src/read-mo.c:88
+#: src/read-properties.c:90 src/read-stringtable.c:99 src/x-awk.c:140
+#: src/x-c.c:583 src/x-csharp.c:164 src/x-elisp.c:146 src/x-java.c:181
+#: src/x-javascript.c:172 src/x-librep.c:148 src/x-lisp.c:213 src/x-lua.c:173
+#: src/x-perl.c:227 src/x-perl.c:302 src/x-perl.c:395 src/x-php.c:164
+#: src/x-python.c:177 src/x-rst.c:234 src/x-scheme.c:171 src/x-sh.c:155
+#: src/x-smalltalk.c:92 src/x-tcl.c:151 src/x-vala.c:176 src/x-ycp.c:92
 #, c-format
 msgid "error while reading \"%s\""
 msgstr "virhe luettaessa tiedostoa ”%s”"
 
-#: src/msggrep.c:496
+#: src/msggrep.c:502
 #, c-format
 msgid ""
 "option '%c' cannot be used before 'J' or 'K' or 'T' or 'C' or 'X' has been "
@@ -2244,7 +2540,7 @@ msgstr ""
 "valitsinta ’%c’ ei voida käyttää ennen kuin ’J’ tai ’K’ tai ’T’ tai ’C’ tai "
 "’X’ on määritelty"
 
-#: src/msggrep.c:516
+#: src/msggrep.c:522
 #, c-format, no-wrap
 msgid ""
 "Extracts all messages of a translation catalog that match a given pattern\n"
@@ -2254,7 +2550,7 @@ msgstr ""
 "tai kuuluvat johonkin annetuista lähdetiedostoista.\n"
 
 #  Pistekommentti viittaan kommenttiriviin, joka alkaa merkeillä "#. "
-#: src/msggrep.c:542
+#: src/msggrep.c:548
 #, c-format, no-wrap
 msgid ""
 "Message selection:\n"
@@ -2330,7 +2626,7 @@ msgstr ""
 "  -v, --invert-match          tulosta vain viestit, jotka eivät täsmää mihinkään\n"
 "                              valintakriteeriin\n"
 
-#: src/msggrep.c:597
+#: src/msggrep.c:603
 #, c-format
 msgid ""
 "      --escape                use C escapes in output, no extended chars\n"
@@ -2338,19 +2634,19 @@ msgstr ""
 "      --escape                käytä C-koodinvaihtomerkkejä tulosteessa, ei "
 "laajennettuja merkkejä\n"
 
-#: src/msggrep.c:618
+#: src/msggrep.c:624
 #, c-format
 msgid "      --sort-output           generate sorted output\n"
 msgstr "      --sort-output           tuota lajiteltu tuloste\n"
 
-#: src/msggrep.c:620
+#: src/msggrep.c:626
 #, c-format
 msgid "      --sort-by-file          sort output by file location\n"
 msgstr ""
 "      --sort-by-file          lajitttele tuloste tiedoston sijainnin "
 "perusteella\n"
 
-#: src/msginit.c:297
+#: src/msginit.c:298
 msgid ""
 "You are in a language indifferent environment.  Please set\n"
 "your LANG environment variable, as described in the ABOUT-NLS\n"
@@ -2360,7 +2656,7 @@ msgstr ""
 "ympäristömuuttuja, kuten kuvaillaan ABOUT-NLS-tiedostossa.\n"
 "Se on välttämätöntä, jotta voit testata käännöksiäsi.\n"
 
-#: src/msginit.c:321
+#: src/msginit.c:322
 #, c-format
 msgid ""
 "Output file %s already exists.\n"
@@ -2371,24 +2667,24 @@ msgstr ""
 "Määritä paikallisasetus valitsimen --locale tai\n"
 "tulosteen .po-tiedosot valitsimen --output-file avulla .\n"
 
-#: src/msginit.c:347
+#: src/msginit.c:348
 #, c-format
 msgid "Created %s.\n"
 msgstr "Luotu %s.\n"
 
-#: src/msginit.c:367
+#: src/msginit.c:368
 #, c-format, no-wrap
 msgid ""
 "Creates a new PO file, initializing the meta information with values from the\n"
 "user's environment.\n"
 msgstr "Luo uuden PO-tiedoston alustaen meta-tiedot arvoilla käyttäjän ympäristöstä.\n"
 
-#: src/msginit.c:377
+#: src/msginit.c:378
 #, c-format
 msgid "  -i, --input=INPUTFILE       input POT file\n"
 msgstr "  -i, --input=SYÖTETIEDOSTO   syötteen POT-tiedosto\n"
 
-#: src/msginit.c:379
+#: src/msginit.c:380
 #, c-format
 msgid ""
 "If no input file is given, the current directory is searched for the POT "
@@ -2399,13 +2695,13 @@ msgstr ""
 "tiedosto.\n"
 "Jos se on -, luetaan vakiosyöte.\n"
 
-#: src/msginit.c:385
+#: src/msginit.c:386
 #, c-format
 msgid "  -o, --output-file=FILE      write output to specified PO file\n"
 msgstr ""
 "  -o, --output-file=TIEDOSTO  kirjoita tuloste määriteltyyn PO-tiedostoon\n"
 
-#: src/msginit.c:387
+#: src/msginit.c:388
 #, c-format
 msgid ""
 "If no output file is given, it depends on the --locale option or the user's\n"
@@ -2416,19 +2712,19 @@ msgstr ""
 "paikkallisasetuksista. Jos se on -, tulokset kirjoitetaan "
 "vakiotulosteeseen.\n"
 
-#: src/msginit.c:400
+#: src/msginit.c:401
 #, c-format
 msgid "  -l, --locale=LL_CC          set target locale\n"
 msgstr "  -l, --locale=LL_CC          aseta kohdepaikallisasetus\n"
 
-#: src/msginit.c:402
+#: src/msginit.c:403
 #, c-format
 msgid ""
 "      --no-translator         assume the PO file is automatically generated\n"
 msgstr ""
 "      --no-translator         otaksu PO-tiedosto tuotetuksi automaattisesti\n"
 
-#: src/msginit.c:468
+#: src/msginit.c:469
 msgid ""
 "Found more than one .pot file.\n"
 "Please specify the input .pot file through the --input option.\n"
@@ -2436,12 +2732,12 @@ msgstr ""
 "Löytyi useampi kuin yksi .pot-tiedosto.\n"
 "Määritä syötteen .pot-tiedosto valitsimella --input.\n"
 
-#: src/msginit.c:476 src/msginit.c:481
+#: src/msginit.c:477 src/msginit.c:482
 #, c-format
 msgid "error reading current directory"
 msgstr "virhe luettaessa nykyistä hakemistoa"
 
-#: src/msginit.c:489
+#: src/msginit.c:490
 msgid ""
 "Found no .pot file in the current directory.\n"
 "Please specify the input .pot file through the --input option.\n"
@@ -2450,8 +2746,8 @@ msgstr ""
 "Määritä syötteen .pot-tiedosto valitsimella --input.\n"
 
 #: src/msginit.c:918 src/msginit.c:993 src/msginit.c:1153 src/msginit.c:1248
-#: src/read-csharp.c:83 src/read-java.c:81 src/read-resources.c:84
-#: src/read-tcl.c:127 src/write-resources.c:104
+#: src/msginit.c:1418 src/read-csharp.c:84 src/read-java.c:82
+#: src/read-resources.c:85 src/read-tcl.c:128 src/write-resources.c:105
 #, c-format
 msgid "%s subprocess failed with exit code %d"
 msgstr "%s aliprosessi epäonnistui poistumiskoodilla %d"
@@ -2473,28 +2769,28 @@ msgstr ""
 #. TRANSLATORS: "English" needs to be replaced by your language.
 #. For example in it.po write "Traduzioni italiani ...",
 #. *not* "Traduzioni inglesi ...".
-#: src/msginit.c:1534
+#: src/msginit.c:1615
 #, c-format
 msgid "English translations for %s package"
 msgstr "Suomenkielinen käännös %s-paketille"
 
-#: src/msgl-cat.c:177 src/msgl-charset.c:86 src/msgl-iconv.c:247
+#: src/msgl-cat.c:178 src/msgl-charset.c:87 src/msgl-iconv.c:248
 #, c-format
 msgid "present charset \"%s\" is not a portable encoding name"
 msgstr "nykyinen merkistö ”%s” ei ole siirrettävä koodausnimi"
 
-#: src/msgl-cat.c:188 src/msgl-iconv.c:259
+#: src/msgl-cat.c:189 src/msgl-iconv.c:260
 #, c-format
 msgid "two different charsets \"%s\" and \"%s\" in input file"
 msgstr "kaksi erilaista merkistöä ”%s” ja ”%s” syötetiedostossa"
 
-#: src/msgl-cat.c:203
+#: src/msgl-cat.c:204
 #, c-format
 msgid ""
 "input file '%s' doesn't contain a header entry with a charset specification"
 msgstr "syötetiedostossa ’%s’ ei ole otsaketta, jossa on merkistömäärittely"
 
-#: src/msgl-cat.c:207
+#: src/msgl-cat.c:208
 #, c-format
 msgid ""
 "domain \"%s\" in input file '%s' doesn't contain a header entry with a "
@@ -2503,19 +2799,19 @@ msgstr ""
 "nimiavaruus ”%s” syötetiedostossa ’%s’ ei sisällä otsaketta, jossa on "
 "merkistömäärittely"
 
-#: src/msgl-cat.c:391 src/msgl-iconv.c:375
+#: src/msgl-cat.c:394 src/msgl-iconv.c:376
 #, c-format
 msgid "target charset \"%s\" is not a portable encoding name."
 msgstr "kohdemerkistö %s” ei ole siirrettävä koodausnimi."
 
-#: src/msgl-cat.c:442 src/msgl-cat.c:448 src/msgl-charset.c:92
-#: src/msgl-charset.c:127 src/po-xerror.c:122 src/po-xerror.c:147
-#: src/xgettext.c:3073
+#: src/msgl-cat.c:445 src/msgl-cat.c:451 src/msgl-charset.c:93
+#: src/msgl-charset.c:128 src/po-xerror.c:122 src/po-xerror.c:147
+#: src/xgettext.c:578 src/xgettext.c:3739
 #, c-format
 msgid "warning: "
 msgstr "varoitus: "
 
-#: src/msgl-cat.c:443
+#: src/msgl-cat.c:446
 #, c-format
 msgid ""
 "Input files contain messages in different encodings, UTF-8 among others.\n"
@@ -2524,7 +2820,7 @@ msgstr ""
 "Syötetiedosto sisältää viestejä eri merkistöissä, mm. UTF-8:na.\n"
 "Muunnetaan tuloste UTF-8:ksi.\n"
 
-#: src/msgl-cat.c:449
+#: src/msgl-cat.c:452
 #, c-format
 msgid ""
 "Input files contain messages in different encodings, %s and %s among "
@@ -2537,7 +2833,7 @@ msgstr ""
 "Muunnetaan tuloste UTF-8 -koodaukseen.\n"
 "Eri tulostekoodauksen valitsemiseksi käytä valitsinta --to-code.\n"
 
-#: src/msgl-cat.c:488
+#: src/msgl-cat.c:491
 #, c-format
 msgid ""
 "Conversion of file %s from %s encoding to %s encoding\n"
@@ -2551,7 +2847,7 @@ msgstr ""
 "ASCII-tekstiksi, tai varmista että ne ovat UTF-8 -koodausta alusta alkaen,\n"
 "ts. jo lähdekooditiedostoissa.\n"
 
-#: src/msgl-charset.c:93
+#: src/msgl-charset.c:94
 #, c-format
 msgid ""
 "Locale charset \"%s\" is different from\n"
@@ -2564,12 +2860,12 @@ msgstr ""
 "Tuloste ’%s’ saattaisi olla virheellinen.\n"
 "Mahdollisia kiertokeinoja ovat:\n"
 
-#: src/msgl-charset.c:100
+#: src/msgl-charset.c:101
 #, c-format
 msgid "- Set LC_ALL to a locale with encoding %s.\n"
 msgstr "- Aseta LC_ALL paikallisasetukseen, jonka koodaus on %s.\n"
 
-#: src/msgl-charset.c:105
+#: src/msgl-charset.c:106
 #, c-format
 msgid ""
 "- Convert the translation catalog to %s using 'msgconv',\n"
@@ -2582,7 +2878,7 @@ msgstr ""
 "  muunna sitten takaisin po-tiedoston paikallisasetukseen %s käyttäen "
 "ohjelmaa 'msgconv'.\n"
 
-#: src/msgl-charset.c:114
+#: src/msgl-charset.c:115
 #, c-format
 msgid ""
 "- Set LC_ALL to a locale with encoding %s,\n"
@@ -2596,7 +2892,7 @@ msgstr ""
 "  muunna sitten takaisin po-tiedoston merkistöön %s käyttäen ohjelmaa "
 "'msgconv'.\n"
 
-#: src/msgl-charset.c:128
+#: src/msgl-charset.c:129
 #, c-format
 msgid ""
 "Locale charset \"%s\" is not a portable encoding name.\n"
@@ -2607,24 +2903,24 @@ msgstr ""
 "’%s’-tuloste saattaa olla virheellinen.\n"
 "Mahdollinen kiertokeino on asettaa muuttujaan LC_ALL=C.\n"
 
-#: src/msgl-check.c:130
+#: src/msgl-check.c:135
 msgid "plural expression can produce negative values"
 msgstr "monikkolauseke voi palauttaa negatiivisia arvoja"
 
-#: src/msgl-check.c:141
+#: src/msgl-check.c:146
 #, c-format
 msgid "nplurals = %lu but plural expression can produce values as large as %lu"
 msgstr "nplurals = %lu, mutta monikkolauseke voi palauttaa jopa arvon %lu"
 
-#: src/msgl-check.c:187
+#: src/msgl-check.c:192
 msgid "plural expression can produce division by zero"
 msgstr "monikkolauseke voi aiheuttaa jaon nollalla"
 
-#: src/msgl-check.c:192
+#: src/msgl-check.c:197
 msgid "plural expression can produce integer overflow"
 msgstr "monikkolauseke voi aiheuttaa kokonaisluvun ylivuodon"
 
-#: src/msgl-check.c:197
+#: src/msgl-check.c:202
 msgid ""
 "plural expression can produce arithmetic exceptions, possibly division by "
 "zero"
@@ -2632,51 +2928,51 @@ msgstr ""
 "monikkolauseke voi aiheuttaa aritmeettisia poikkeuksia, mahdollisesti jaon "
 "nollalla"
 
-#: src/msgl-check.c:266
+#: src/msgl-check.c:271
 #, c-format
 msgid "Try using the following, valid for %s:"
 msgstr "Yritä käyttää seuraavaa, kelvollinen kohteelle %s:"
 
-#: src/msgl-check.c:358 src/msgl-check.c:382
+#: src/msgl-check.c:363 src/msgl-check.c:387
 msgid "message catalog has plural form translations"
 msgstr "viestiluettelossa on monikkomuotoisia käännöksiä"
 
-#: src/msgl-check.c:360
+#: src/msgl-check.c:365
 msgid "but header entry lacks a \"plural=EXPRESSION\" attribute"
 msgstr "mutta otsakkeesta puuttuu attribuutti \"plural=LAUSEKE\""
 
-#: src/msgl-check.c:384
+#: src/msgl-check.c:389
 msgid "but header entry lacks a \"nplurals=INTEGER\" attribute"
 msgstr "mutta otsakkeesta puuttuu \"nplurals=KOKONAISLUKU\"-attribuutti"
 
-#: src/msgl-check.c:420
+#: src/msgl-check.c:425
 msgid "invalid nplurals value"
 msgstr "virheellinen nplurals-arvo"
 
-#: src/msgl-check.c:442
+#: src/msgl-check.c:447
 msgid "invalid plural expression"
 msgstr "virheellinen monikkolauseke"
 
-#: src/msgl-check.c:472 src/msgl-check.c:488
+#: src/msgl-check.c:477 src/msgl-check.c:493
 #, c-format
 msgid "nplurals = %lu"
 msgstr "nplurals = %lu"
 
-#: src/msgl-check.c:474
+#: src/msgl-check.c:479
 #, c-format
 msgid "but some messages have only one plural form"
 msgid_plural "but some messages have only %lu plural forms"
 msgstr[0] "mutta joillakin viesteillä on vain yksi monikkomuoto"
 msgstr[1] "mutta joillakin viesteillä on vain %lu monikkomuotoa"
 
-#: src/msgl-check.c:490
+#: src/msgl-check.c:495
 #, c-format
 msgid "but some messages have one plural form"
 msgid_plural "but some messages have %lu plural forms"
 msgstr[0] "mutta joillakin viesteillä on yksi monikkomuoto"
 msgstr[1] "mutta joillakin viesteillä on %lu monikkomuotoa"
 
-#: src/msgl-check.c:514
+#: src/msgl-check.c:519
 msgid ""
 "message catalog has plural form translations, but lacks a header entry with "
 "\"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\""
@@ -2684,72 +2980,89 @@ msgstr ""
 "viestiluettelossa on monikkomuotoisia käännöksiä, mutta siitä puuttuu "
 "otsakerivi \"Plural-Forms: nplurals=KOKONAISLUKU; plural=LAUSEKE;\""
 
-#: src/msgl-check.c:611
+#: src/msgl-check.c:616
 msgid "'msgid' and 'msgid_plural' entries do not both begin with '\\n'"
 msgstr "’msgid’ ja ’msgid_plural’ -rivit eivät molemmat ala merkillä ’\\n’"
 
-#: src/msgl-check.c:619
+#: src/msgl-check.c:624
 #, c-format
 msgid "'msgid' and 'msgstr[%u]' entries do not both begin with '\\n'"
 msgstr "’msgid’ ja ’msgstr[%u]’ -rivit eivät molemmat ala merkillä ’\\n’"
 
-#: src/msgl-check.c:634
+#: src/msgl-check.c:639
 msgid "'msgid' and 'msgstr' entries do not both begin with '\\n'"
 msgstr "’msgid’ ja ’msgstr’ -rivit eivät molemmat ala merkillä ’\\n’"
 
-#: src/msgl-check.c:652
+#: src/msgl-check.c:657
 msgid "'msgid' and 'msgid_plural' entries do not both end with '\\n'"
 msgstr "’msgid’ ja ’msgid_plural’ -rivit eivät molemmat lopu merkillä ’\\n’"
 
-#: src/msgl-check.c:660
+#: src/msgl-check.c:665
 #, c-format
 msgid "'msgid' and 'msgstr[%u]' entries do not both end with '\\n'"
 msgstr "’msgid’ ja ’msgstr[%u]’ -rivit eivät molemmat lopu merkillä ’\\n’"
 
-#: src/msgl-check.c:675
+#: src/msgl-check.c:680
 msgid "'msgid' and 'msgstr' entries do not both end with '\\n'"
 msgstr "’msgid’ ja ’msgstr’ -rivit eivät molemmat lopu merkillä ’\\n’"
 
-#: src/msgl-check.c:687
+#: src/msgl-check.c:692
 msgid "plural handling is a GNU gettext extension"
 msgstr "monikkomuotojen käsittely on GNU gettext -laajennos"
 
-#: src/msgl-check.c:729
+#: src/msgl-check.c:734
 #, c-format
 msgid "msgstr lacks the keyboard accelerator mark '%c'"
 msgstr "msgstr-merkkijonosta puuttuu pikanäppäinmerkki ’%c’"
 
-#: src/msgl-check.c:739
+#: src/msgl-check.c:745
 #, c-format
 msgid "msgstr has too many keyboard accelerator marks '%c'"
 msgstr "msgstr-merkkijonossa on liian monta pikanäppäinmerkkiä ’%c’"
 
-#: src/msgl-check.c:801
+#: src/msgl-check.c:819
 #, c-format
 msgid "header field '%s' still has the initial default value\n"
 msgstr "otsakekenttä ’%s’ on edelleen oletusarvossaan\n"
 
-#: src/msgl-check.c:816
+#: src/msgl-check.c:836
 #, c-format
 msgid "header field '%s' missing in header\n"
 msgstr "otsakekenttä ’%s’ puuttuu otsakkeessa\n"
 
-#: src/msgl-iconv.c:65
+#: src/msgl-check.c:941
+msgid "ASCII ellipsis ('...') instead of Unicode"
+msgstr "ASCII-ellipsi (’...’) eikä Unicode-ellipsi"
+
+#: src/msgl-check.c:1014
+msgid "space before ellipsis found in user visible strings"
+msgstr "välilyönti ennen ellipsiä löytyi käyttäjälle näkyvässä merkkijonossa"
+
+#: src/msgl-check.c:1043
+msgid "ASCII double quote used instead of Unicode"
+msgstr "ASCII-kaksoislainausmerkki käytetty eikä Unicode-lainausmerkki"
+
+#: src/msgl-check.c:1049
+msgid "ASCII single quote used instead of Unicode"
+msgstr ""
+"ASCII-yksittäismerkkinen lainausmerkki käytetty eikä Unicode-lainausmerkki"
+
+#: src/msgl-iconv.c:66
 #, c-format
 msgid "%s: input is not valid in \"%s\" encoding"
 msgstr "%s: syöte ei ole kelvollinen ”%s”-koodauksessa"
 
-#: src/msgl-iconv.c:69
+#: src/msgl-iconv.c:70
 #, c-format
 msgid "%s: error while converting from \"%s\" encoding to \"%s\" encoding"
 msgstr "%s: virhe muunnettaessa ”%s”-koodauksesta ”%s”-koodaukseen"
 
-#: src/msgl-iconv.c:290
+#: src/msgl-iconv.c:291
 msgid "input file doesn't contain a header entry with a charset specification"
 msgstr "syötetiedosto ei sisällä otsaketta, jossa on merkistömäärittely"
 
-#: src/msgl-iconv.c:305 src/recode-sr-latin.c:288 src/recode-sr-latin.c:293
-#: src/x-python.c:665 src/xgettext.c:708
+#: src/msgl-iconv.c:306 src/recode-sr-latin.c:289 src/recode-sr-latin.c:294
+#: src/xgettext.c:813 src/x-python.c:666
 #, c-format
 msgid ""
 "Cannot convert from \"%s\" to \"%s\". %s relies on iconv(), and iconv() does "
@@ -2758,7 +3071,7 @@ msgstr ""
 "Muuntaminen koodauksesta ”%s” koodaukseen ”%s” epäonnistui. %s käyttää "
 "funktiota iconv(), ja iconv() ei tue tätä muunnosta."
 
-#: src/msgl-iconv.c:335
+#: src/msgl-iconv.c:336
 #, c-format
 msgid ""
 "Conversion from \"%s\" to \"%s\" introduces duplicates: some different "
@@ -2767,8 +3080,8 @@ msgstr ""
 "Muunnos koodauksesta ”%s” koodaukseen ”%s” esitteli kaksoiskappaleita: "
 "jotkut eri msgid-merkkijonot ovat samoja."
 
-#: src/msgl-iconv.c:341 src/recode-sr-latin.c:302 src/x-python.c:672
-#: src/xgettext.c:715
+#: src/msgl-iconv.c:342 src/recode-sr-latin.c:303 src/xgettext.c:820
+#: src/x-python.c:673
 #, c-format
 msgid ""
 "Cannot convert from \"%s\" to \"%s\". %s relies on iconv(). This version was "
@@ -2777,16 +3090,16 @@ msgstr ""
 "Muuntaminen koodauksesta ”%s” koodaukseen ”%s” epäonnistui. %s käyttää "
 "funktiota iconv(). Tämä versio on rakennettu ilman funktiota iconv()."
 
-#: src/msgmerge.c:383 src/msgmerge.c:389
+#: src/msgmerge.c:406 src/msgmerge.c:412
 #, c-format
 msgid "%s is only valid with %s"
 msgstr "valitsin %s on kelvollinen vain valitsimen %s kanssa"
 
-#: src/msgmerge.c:448
+#: src/msgmerge.c:467
 msgid "backup type"
 msgstr "varmuuskopiotyyppi"
 
-#: src/msgmerge.c:485
+#: src/msgmerge.c:504
 #, c-format, no-wrap
 msgid ""
 "Merges two Uniforum style .po files together.  The def.po file is an\n"
@@ -2809,19 +3122,19 @@ msgstr ""
 "kommentit ja tiedostosijainnit säilytetään.  Siellä missä ei löydetä\n"
 "tarkkaa täsmäystä, käytetään vajaustäsmäystä paremman tuloksen tuottamiseksi.\n"
 
-#: src/msgmerge.c:502
+#: src/msgmerge.c:521
 #, c-format
 msgid "  def.po                      translations referring to old sources\n"
 msgstr ""
 "  def.po                      käännökset, jotka viittaavat vanhoihin "
 "lähdekoodeihin\n"
 
-#: src/msgmerge.c:504
+#: src/msgmerge.c:523
 #, c-format
 msgid "  ref.pot                     references to new sources\n"
 msgstr "  ref.pot                     viittaa uusiin lähdekoodeihin\n"
 
-#: src/msgmerge.c:508
+#: src/msgmerge.c:527
 #, c-format
 msgid ""
 "  -C, --compendium=FILE       additional library of message translations,\n"
@@ -2830,7 +3143,7 @@ msgstr ""
 "  -C, --compendium=TIEDOSTO   viestikäännösten lisäkirjasto,\n"
 "                              saatetaan määritellä useammin kuin kerran\n"
 
-#: src/msgmerge.c:514
+#: src/msgmerge.c:533
 #, c-format
 msgid ""
 "  -U, --update                update def.po,\n"
@@ -2840,28 +3153,28 @@ msgstr ""
 "                              älä tee mitään, jos tiedosto def.po on jo ajan "
 "tasalla\n"
 
-#: src/msgmerge.c:526
+#: src/msgmerge.c:545
 #, c-format
 msgid "Output file location in update mode:\n"
 msgstr "Tulostetiedostosijainti päivitystilassa:\n"
 
-#: src/msgmerge.c:528
+#: src/msgmerge.c:547
 #, c-format
 msgid "The result is written back to def.po.\n"
 msgstr "Tulos kirjoitetaan takaisin tiedostoon def.po.\n"
 
-#: src/msgmerge.c:530
+#: src/msgmerge.c:549
 #, c-format
 msgid "      --backup=CONTROL        make a backup of def.po\n"
 msgstr "      --backup=CONTROL        tee tiedoston def.po varmuuskopio\n"
 
-#: src/msgmerge.c:532
+#: src/msgmerge.c:551
 #, c-format
 msgid "      --suffix=SUFFIX         override the usual backup suffix\n"
 msgstr ""
 "      --suffix=LOPPULIITE     korvaa tavallisen varmuuskopioloppuliitteen\n"
 
-#: src/msgmerge.c:534
+#: src/msgmerge.c:553
 #, c-format
 msgid ""
 "The version control method may be selected via the --backup option or "
@@ -2882,7 +3195,7 @@ msgstr ""
 "                  yksinkertainen\n"
 "  simple, never   tee aina yksinkertaisia varmuuskopioita\n"
 
-#: src/msgmerge.c:541
+#: src/msgmerge.c:560
 #, c-format
 msgid ""
 "The backup suffix is '~', unless set with --suffix or the "
@@ -2892,7 +3205,7 @@ msgstr ""
 "Varmuuskopioloppuliite on ’~’, ellei ole asetettu valitsimella --suffix tai\n"
 "ympäristömuuttujalla SIMPLE_BACKUP_SUFFIX.\n"
 
-#: src/msgmerge.c:552
+#: src/msgmerge.c:571
 #, c-format
 msgid ""
 "      --previous              keep previous msgids of translated messages\n"
@@ -2900,23 +3213,23 @@ msgstr ""
 "      --previous              säilytä käännettyjen viestien aikaisemmat "
 "msgid-merkkijonot\n"
 
-#: src/msgmerge.c:609 src/urlget.c:192
+#: src/msgmerge.c:628 src/urlget.c:193
 #, c-format
 msgid "  -q, --quiet, --silent       suppress progress indicators\n"
 msgstr "  -q, --quiet, --silent       vaienna edistymisindikaattorit\n"
 
-#: src/msgmerge.c:1604
+#: src/msgmerge.c:1627
 #, c-format
 msgid "this message should define plural forms"
 msgstr "tämän viestin pitäisi määritellä monikkomuodot"
 
-#: src/msgmerge.c:1627
+#: src/msgmerge.c:1650
 #, c-format
 msgid "this message should not define plural forms"
 msgstr "tämän viestin ei pitäisi määritellä monikkomuotoja"
 
 #  Ensimmäinen parametri on joko tyhjä merkkijono tai rivinvaihto
-#: src/msgmerge.c:2030
+#: src/msgmerge.c:2053
 #, c-format
 msgid ""
 "%sRead %ld old + %ld reference, merged %ld, fuzzied %ld, missing %ld, "
@@ -2925,30 +3238,30 @@ msgstr ""
 "%sLuettu %ld vanhaa + %ld viitettä, yhdistettyjä %ld, vajaita %ld, puuttuvia "
 "%ld, vanhentuneita %ld.\n"
 
-#: src/msgmerge.c:2038 src/urlget.c:306 src/urlget.c:353 src/urlget.c:395
-#: src/urlget.c:437
+#: src/msgmerge.c:2061 src/urlget.c:307 src/urlget.c:354 src/urlget.c:396
+#: src/urlget.c:438
 #, c-format
 msgid " done.\n"
 msgstr " valmis.\n"
 
-#: src/msgunfmt.c:308 src/msgunfmt.c:317 src/msgunfmt.c:340
+#: src/msgunfmt.c:309 src/msgunfmt.c:318 src/msgunfmt.c:341
 #, c-format
 msgid "%s and explicit file names are mutually exclusive"
 msgstr ""
 "valitsin %s ja eksplisiittiset tiedostonimet ovat toisensa poissulkevia"
 
-#: src/msgunfmt.c:427
+#: src/msgunfmt.c:428
 #, c-format
 msgid "Usage: %s [OPTION] [FILE]...\n"
 msgstr "Käyttö: %s [VALITSIN] [TIEDOSTO]...\n"
 
-#: src/msgunfmt.c:431
+#: src/msgunfmt.c:432
 #, c-format
 msgid "Convert binary message catalog to Uniforum style .po file.\n"
 msgstr ""
 "Muunna binäärimuotoinen viestiluettelo Uniforum-tyyliseksi .po-tiedostoksi.\n"
 
-#: src/msgunfmt.c:440
+#: src/msgunfmt.c:441
 #, c-format
 msgid ""
 "  -j, --java                  Java mode: input is a Java ResourceBundle "
@@ -2957,12 +3270,12 @@ msgstr ""
 "  -j, --java                  Java-tila: syöte on Java ResourceBundle -"
 "luokka\n"
 
-#: src/msgunfmt.c:442
+#: src/msgunfmt.c:443
 #, c-format
 msgid "      --csharp                C# mode: input is a .NET .dll file\n"
 msgstr "      --csharp                C#-tila: syöte on .NET .dll -tiedosto\n"
 
-#: src/msgunfmt.c:444
+#: src/msgunfmt.c:445
 #, c-format
 msgid ""
 "      --csharp-resources      C# resources mode: input is a .NET .resources "
@@ -2971,24 +3284,24 @@ msgstr ""
 "      --csharp-resources      C#-resurssitila: syöte on .NET .resources -"
 "tiedosto\n"
 
-#: src/msgunfmt.c:446
+#: src/msgunfmt.c:447
 #, c-format
 msgid ""
 "      --tcl                   Tcl mode: input is a tcl/msgcat .msg file\n"
 msgstr ""
 "      --tcl                   Tcl-tila: syöte on tcl/msgcat .msg -tiedosto\n"
 
-#: src/msgunfmt.c:451
+#: src/msgunfmt.c:452
 #, c-format
 msgid "  FILE ...                    input .mo files\n"
 msgstr "  TIEDOSTO ...                syötteen .mo -tiedostot\n"
 
-#: src/msgunfmt.c:456
+#: src/msgunfmt.c:457
 #, c-format
 msgid "Input file location in Java mode:\n"
 msgstr "Syötetiedostosijainti Java-tilassa:\n"
 
-#: src/msgunfmt.c:462
+#: src/msgunfmt.c:463
 #, c-format
 msgid ""
 "The class name is determined by appending the locale name to the resource "
@@ -2998,12 +3311,12 @@ msgstr ""
 "Luokkanimi määritellään liittämällä paikallisasetuksen nimi resurssinimeen,\n"
 "erotettun alaviivalla. Luokka sijoitetaan käyttäen muuttujaa CLASSPATH.\n"
 
-#: src/msgunfmt.c:467
+#: src/msgunfmt.c:468
 #, c-format
 msgid "Input file location in C# mode:\n"
 msgstr "Syötetiedostosijainti C#-tilassa:\n"
 
-#: src/msgunfmt.c:475
+#: src/msgunfmt.c:476
 #, c-format
 msgid ""
 "The -l and -d options are mandatory.  The .dll file is located in a\n"
@@ -3012,12 +3325,12 @@ msgstr ""
 "Valitsimet -l ja -d ovat pakollisia.  Tiedosto .dll sijoitetaan sellaisen\n"
 "hakemiston alihakemistoon, jonka nimi riippuu paikallisasetuksesta.\n"
 
-#: src/msgunfmt.c:479
+#: src/msgunfmt.c:480
 #, c-format
 msgid "Input file location in Tcl mode:\n"
 msgstr "Syötetiedostosijainti Tcl-tilassa:\n"
 
-#: src/msgunfmt.c:485
+#: src/msgunfmt.c:486
 #, c-format
 msgid ""
 "The -l and -d options are mandatory.  The .msg file is located in the\n"
@@ -3026,17 +3339,17 @@ msgstr ""
 "Valitsimet -l ja -d ovat pakollisia.  Tiedosto .msg sijaitsee määritellyssä\n"
 "hakemistossa.\n"
 
-#: src/msgunfmt.c:511
+#: src/msgunfmt.c:512
 #, c-format
 msgid "  -i, --indent                write indented output style\n"
 msgstr "  -i, --indent                kirjoita sisennettyä tulostetyyliä\n"
 
-#: src/msgunfmt.c:513
+#: src/msgunfmt.c:514
 #, c-format
 msgid "      --strict                write strict uniforum style\n"
 msgstr "      --strict                kirjoita tiukkaa uniforum-tyyliä\n"
 
-#: src/msguniq.c:330
+#: src/msguniq.c:332
 #, c-format, no-wrap
 msgid ""
 "Unifies duplicate translations in a translation catalog.\n"
@@ -3058,12 +3371,12 @@ msgstr ""
 "käännöksestä.  Tiedostosijainnit kumuloituvat. Kun käytetään valitsinta\n"
 "--unique, kaksoiskappaleet hylätään.\n"
 
-#: src/msguniq.c:363
+#: src/msguniq.c:365
 #, c-format
 msgid "  -d, --repeated              print only duplicates\n"
 msgstr "  -d, --repeated              tulosta vain kaksoiskappaleet\n"
 
-#: src/msguniq.c:365
+#: src/msguniq.c:367
 #, c-format
 msgid ""
 "  -u, --unique                print only unique messages, discard "
@@ -3072,7 +3385,7 @@ msgstr ""
 "  -u, --unique                tulosta vain uniikit viestit, hylkää "
 "kaksoiskappaleet\n"
 
-#: src/open-catalog.c:56 libgettextpo/gettext-po.c:102
+#: src/open-catalog.c:57 libgettextpo/gettext-po.c:102
 #: libgettextpo/gettext-po.c:150 libgettextpo/gettext-po.c:198
 msgid "<stdin>"
 msgstr "<vakiosyöte>"
@@ -3128,32 +3441,32 @@ msgstr ""
 "Merkistö puuttuu otsakkeessa.\n"
 "Viestimuunnos käyttäjän merkistöön ei toimi.\n"
 
-#: src/po-gram-gen.y:93
+#: src/po-gram-gen.y:94
 #, c-format
 msgid "inconsistent use of #~"
 msgstr "epäjohdonmukainen #~ -käyttö"
 
-#: src/po-gram-gen.y:240
+#: src/po-gram-gen.y:244
 #, c-format
 msgid "missing 'msgstr[]' section"
 msgstr "puuttuva ’msgid_plural[]’-rivi"
 
-#: src/po-gram-gen.y:249
+#: src/po-gram-gen.y:253
 #, c-format
 msgid "missing 'msgid_plural' section"
 msgstr "puuttuva ’msgid_plural’-rivi"
 
-#: src/po-gram-gen.y:257
+#: src/po-gram-gen.y:261
 #, c-format
 msgid "missing 'msgstr' section"
 msgstr "puuttuva ’msgstr’-rivi"
 
-#: src/po-gram-gen.y:396
+#: src/po-gram-gen.y:400
 #, c-format
 msgid "first plural form has nonzero index"
 msgstr "ensimmäisellä monikkomuodolla on nollasta poikkeava indeksi"
 
-#: src/po-gram-gen.y:398
+#: src/po-gram-gen.y:402
 #, c-format
 msgid "plural form has wrong index"
 msgstr "monikkomuodolla on väärä indeksi"
@@ -3163,7 +3476,7 @@ msgstr "monikkomuodolla on väärä indeksi"
 msgid "too many errors, aborting"
 msgstr "liian monia virheitä, keskeytetään"
 
-#: src/po-lex.c:437 src/po-lex.c:507 src/write-po.c:740 src/write-po.c:869
+#: src/po-lex.c:437 src/po-lex.c:507 src/write-po.c:813 src/write-po.c:951
 #, c-format
 msgid "invalid multibyte sequence"
 msgstr "virheellinen monitavusekvenssi"
@@ -3207,66 +3520,85 @@ msgstr "rivinvaihto merkkijonon sisällä"
 msgid "context separator <EOT> within string"
 msgstr "kontekstierotin <EOT> merkkijonon sisällä"
 
-#: src/read-catalog.c:332 src/xgettext.c:1023
+#: src/read-catalog.c:325 src/xgettext.c:1251
 #, c-format
 msgid "this file may not contain domain directives"
 msgstr "tämä tiedosto ei ehkä sisällä nimiavaruusdirektiivejä"
 
-#: src/read-catalog.c:377
+#: src/read-catalog.c:370
 msgid "duplicate message definition"
 msgstr "kaksinkertainen viestimäärittely"
 
-#: src/read-catalog.c:379
+#: src/read-catalog.c:372
 msgid "this is the location of the first definition"
 msgstr "ensimmäinen määrittely täällä"
 
-#: src/read-mo.c:105 src/read-mo.c:126 src/read-mo.c:172 src/read-mo.c:199
+#: src/read-desktop.c:267
+msgid "unterminated group name"
+msgstr ""
+
+#: src/read-desktop.c:286
+#, fuzzy
+msgid "invalid non-blank character"
+msgstr "varoitus: virheellinen Unicode-merkki"
+
+#: src/read-desktop.c:403
+#, fuzzy, c-format
+msgid "missing '=' after \"%s\""
+msgstr "puuttuva suodatinnimi"
+
+#: src/read-desktop.c:466
+#, fuzzy
+msgid "invalid non-blank line"
+msgstr "virheellinen nplurals-arvo"
+
+#: src/read-mo.c:108 src/read-mo.c:130 src/read-mo.c:168 src/read-mo.c:184
 #, c-format
 msgid "file \"%s\" is truncated"
 msgstr "tiedosto ”%s” typistetään"
 
-#: src/read-mo.c:129
+#: src/read-mo.c:133
 #, c-format
 msgid "file \"%s\" contains a not NUL terminated string"
 msgstr "tiedosto ”%s” sisältää merkkijonon, jota ei ole päätetty NUL-merkillä"
 
-#: src/read-mo.c:165 src/read-mo.c:274
+#: src/read-mo.c:176 src/read-mo.c:284
 #, c-format
 msgid "file \"%s\" is not in GNU .mo format"
 msgstr "tiedosto ”%s” ei ole GNU:n .mo-muodossa"
 
-#: src/read-mo.c:178
+#: src/read-mo.c:190
 #, c-format
 msgid "file \"%s\" contains a not NUL terminated string, at %s"
 msgstr ""
 "tiedosto ”%s” sisältää osoitteessa %s merkkijonon, jota ei ole päätetty NUL-"
 "merkillä"
 
-#: src/read-properties.c:227
+#: src/read-properties.c:228
 msgid "warning: invalid \\uxxxx syntax for Unicode character"
 msgstr "varoitus: virheellinen \\uxxxx -syntaksi Unicode-merkkille"
 
-#: src/read-stringtable.c:802
+#: src/read-stringtable.c:803
 msgid "warning: unterminated string"
 msgstr "varoitus: päättämätön merkkijono"
 
-#: src/read-stringtable.c:810
+#: src/read-stringtable.c:811
 msgid "warning: syntax error"
 msgstr "varoitus: syntaksivirhe"
 
-#: src/read-stringtable.c:871 src/read-stringtable.c:893
+#: src/read-stringtable.c:872 src/read-stringtable.c:894
 msgid "warning: unterminated key/value pair"
 msgstr "varoitus: päättämätön avain/arvo-pari"
 
-#: src/read-stringtable.c:939
+#: src/read-stringtable.c:940
 msgid "warning: syntax error, expected ';' after string"
 msgstr "varoitus: syntaksivirhe, odotettiin ’;’ merkkijonon jälkeen"
 
-#: src/read-stringtable.c:948
+#: src/read-stringtable.c:949
 msgid "warning: syntax error, expected '=' or ';' after string"
 msgstr "varoitus: syntaksivirhe, odotettiin ’=’ tai ’;’ merkkijonon jälkeen"
 
-#: src/recode-sr-latin.c:116
+#: src/recode-sr-latin.c:117
 #, c-format
 msgid "Written by %s and %s.\n"
 msgstr "Kirjoittaneet %s ja %s.\n"
@@ -3275,17 +3607,17 @@ msgstr "Kirjoittaneet %s ja %s.\n"
 #. (with Unicode escapes) "\u0160egan" or (with HTML entities)
 #. "&Scaron;egan".
 #. This is a proper name. See the gettext manual, section Names.
-#: src/recode-sr-latin.c:120
+#: src/recode-sr-latin.c:121
 msgid "Danilo Segan"
 msgstr "Danilo Šegan"
 
 #  Vai tarkoittaako tämä, että käytetään recode-ohjelmaa?
-#: src/recode-sr-latin.c:153
+#: src/recode-sr-latin.c:154
 #, c-format, no-wrap
 msgid "Recode Serbian text from Cyrillic to Latin script.\n"
 msgstr "Koodaa uudelleen serbiankielinen teksti kyrillisestä latinalaismerkkiseksi skriptiksi.\n"
 
-#: src/recode-sr-latin.c:156
+#: src/recode-sr-latin.c:157
 #, c-format, no-wrap
 msgid ""
 "The input text is read from standard input.  The converted text is output to\n"
@@ -3294,27 +3626,27 @@ msgstr ""
 "Syöteteksti luetaan vakiosyötteestä.  Muunnettu teksti tulostetaan\n"
 "vakiotulosteeseen.\n"
 
-#: src/recode-sr-latin.c:339
+#: src/recode-sr-latin.c:340
 #, c-format
 msgid "input is not valid in \"%s\" encoding"
 msgstr "syöte ei ole kelvollinen ”%s”-koodauksessa"
 
-#: src/recode-sr-latin.c:367
+#: src/recode-sr-latin.c:368
 #, c-format
 msgid "error while converting from \"%s\" encoding to \"%s\" encoding"
 msgstr "virhe muunnettaessa ”%s”-koodauksesta ”%s”-koodaukseen"
 
-#: src/urlget.c:159
+#: src/urlget.c:160
 #, c-format
 msgid "expected two arguments"
 msgstr "odotettiin kahta argumenttia"
 
-#: src/urlget.c:176
+#: src/urlget.c:177
 #, c-format
 msgid "Usage: %s [OPTION] URL FILE\n"
 msgstr "Käyttö: %s [VALITSIN] VERKKO-OSOITE TIEDOSTO\n"
 
-#: src/urlget.c:181
+#: src/urlget.c:182
 #, c-format, no-wrap
 msgid ""
 "Fetches and outputs the contents of an URL.  If the URL cannot be accessed,\n"
@@ -3323,37 +3655,37 @@ msgstr ""
 "Noutaa ja tulostaa verkko-osoitteen sisällön.  Jos verkko-osoitetta ei saada,\n"
 "käytetään sen sijaan paikallisesti haettua TIEDOSTOa.\n"
 
-#: src/urlget.c:228
+#: src/urlget.c:229
 #, c-format
 msgid "error reading \"%s\""
 msgstr "virhe luettaessa tiedostoa ”%s”"
 
-#: src/urlget.c:234
+#: src/urlget.c:235
 #, c-format
 msgid "error writing stdout"
 msgstr "virhe kirjoitettaessa vakiotulosteeseen"
 
-#: src/urlget.c:238
+#: src/urlget.c:239
 #, c-format
 msgid "error after reading \"%s\""
 msgstr "virhe tiedoston ”%s” lukemisen jälkeen"
 
-#: src/urlget.c:264
+#: src/urlget.c:265
 #, c-format
 msgid "Retrieving %s..."
 msgstr "Noudetaan %s..."
 
-#: src/urlget.c:308
+#: src/urlget.c:309
 #, c-format
 msgid " timed out.\n"
 msgstr " aikavalvonta toimi.\n"
 
-#: src/urlget.c:445
+#: src/urlget.c:446
 #, c-format
 msgid " failed.\n"
 msgstr " epäonnistui.\n"
 
-#: src/write-catalog.c:126
+#: src/write-catalog.c:127
 msgid ""
 "Cannot output multiple translation domains into a single file with the "
 "specified output format. Try using PO file syntax instead."
@@ -3361,7 +3693,7 @@ msgstr ""
 "Useiden käännösnimiavaruuksien tulostaminen yhteen tiedostoon määritellyssä "
 "tulostemuodossa epäonnistui. Yritä käyttää sen sijaan PO-tiedostosyntaksia."
 
-#: src/write-catalog.c:129
+#: src/write-catalog.c:130
 msgid ""
 "Cannot output multiple translation domains into a single file with the "
 "specified output format."
@@ -3369,7 +3701,7 @@ msgstr ""
 "Useiden käännösnimiavaruuksien tulostaminen yhteen tiedostoon määritellyllä "
 "tulostemuodolla epäonnistui."
 
-#: src/write-catalog.c:162
+#: src/write-catalog.c:163
 msgid ""
 "message catalog has context dependent translations, but the output format "
 "does not support them."
@@ -3377,7 +3709,7 @@ msgstr ""
 "viestiluettelossa on kontekstista riippuvia käännöksiä, mutta tulostemuoto "
 "ei tue niitä."
 
-#: src/write-catalog.c:197
+#: src/write-catalog.c:198
 msgid ""
 "message catalog has plural form translations, but the output format does not "
 "support them. Try generating a Java class using \"msgfmt --java\", instead "
@@ -3387,7 +3719,7 @@ msgstr ""
 "niitä. Yritä tuottaa Java-luokka käyttäen komentoa \"msgfmt --java\", eikä "
 "ominaisuustiedostoa."
 
-#: src/write-catalog.c:202
+#: src/write-catalog.c:203
 msgid ""
 "message catalog has plural form translations, but the output format does not "
 "support them."
@@ -3395,12 +3727,12 @@ msgstr ""
 "viestiluettelossa on monikkomuotoisia käännöksiä, mutta tulostemuoto ei tue "
 "niitä."
 
-#: src/write-catalog.c:231 src/write-catalog.c:275
+#: src/write-catalog.c:232 src/write-catalog.c:276 src/write-xml.c:58
 #, c-format
 msgid "cannot create output file \"%s\""
 msgstr "tulostetiedoston ”%s” luominen epäonnistui"
 
-#: src/write-catalog.c:239 src/write-catalog.c:283
+#: src/write-catalog.c:240 src/write-catalog.c:284
 msgid "standard output"
 msgstr "vakiotuloste"
 
@@ -3421,13 +3753,19 @@ msgstr "epäonnistunut C#-luokan kääntäminen, yritä valitsinta --verbose"
 msgid "compilation of C# class failed"
 msgstr "epäonnistunut C#-luokan kääntäminen"
 
-#: src/write-java.c:1080
+#: src/write-desktop.c:162 src/write-mo.c:800 src/write-qt.c:737
+#: src/write-tcl.c:213
+#, c-format
+msgid "error while opening \"%s\" for writing"
+msgstr "virhe avattaessa tiedostoa ”%s” kirjoittamista varten"
+
+#: src/write-java.c:1092
 #, c-format
 msgid "not a valid Java class name: %s"
 msgstr "kelvoton Java-luokkanimi: %s"
 
 #  käännetty tällä tavalla, jotta alkaisi pienellä alkukirjaimella.
-#: src/write-java.c:1165
+#: src/write-java.c:1211
 #, c-format
 msgid "compilation of Java class failed, please try --verbose or set $JAVAC"
 msgstr ""
@@ -3435,24 +3773,23 @@ msgstr ""
 "muuttuja $JAVAC"
 
 #  käännetty tällä tavalla, jotta alkaisi pienellä alkukirjaimella.
-#: src/write-java.c:1168
+#: src/write-java.c:1214
 #, c-format
 msgid "compilation of Java class failed, please try to set $JAVAC"
 msgstr "epäonnistunut Java-luokan kääntäminen, yritä asettaa muuttuja $JAVAC"
 
-#: src/write-mo.c:799 src/write-qt.c:736 src/write-tcl.c:212
-#, c-format
-msgid "error while opening \"%s\" for writing"
-msgstr "virhe avattaessa tiedostoa ”%s” kirjoittamista varten"
+#: src/write-po.c:822
+msgid "incomplete multibyte sequence"
+msgstr "vaillinainen monitavusekvenssi"
 
-#: src/write-po.c:803
+#: src/write-po.c:885
 #, c-format
 msgid ""
 "internationalized messages should not contain the '\\%c' escape sequence"
 msgstr ""
 "paikallistettujen viestien ei pitäisi sisältää ’\\%c’-koodinvaihtosekvenssiä"
 
-#: src/write-po.c:1254 src/write-po.c:1383
+#: src/write-po.c:1336 src/write-po.c:1460
 #, c-format
 msgid ""
 "The following msgctxt contains non-ASCII characters.\n"
@@ -3466,7 +3803,7 @@ msgstr ""
 "msgctxt-merkkijonon käyttämistä.\n"
 "%s\n"
 
-#: src/write-po.c:1266 src/write-po.c:1395
+#: src/write-po.c:1348 src/write-po.c:1472
 #, c-format
 msgid ""
 "The following msgid contains non-ASCII characters.\n"
@@ -3480,7 +3817,7 @@ msgstr ""
 "msgid-merkkijonon käyttämistä.\n"
 "%s\n"
 
-#: src/write-qt.c:667
+#: src/write-qt.c:668
 msgid ""
 "message catalog has plural form translations\n"
 "but the Qt message catalog format doesn't support plural handling\n"
@@ -3488,7 +3825,7 @@ msgstr ""
 "viestiluettelossa on monikkomuotoisia käännöksiä\n"
 "mutta Qt-viestiluettelomuoto ei tue monikkojen käsittelyä\n"
 
-#: src/write-qt.c:693
+#: src/write-qt.c:694
 msgid ""
 "message catalog has msgctxt strings containing characters outside "
 "ISO-8859-1\n"
@@ -3501,7 +3838,7 @@ msgstr ""
 "vain\n"
 "käännetyissä merkkijonoissa, ei kontekstimerkkijonoissa\n"
 
-#: src/write-qt.c:717
+#: src/write-qt.c:718
 msgid ""
 "message catalog has msgid strings containing characters outside ISO-8859-1\n"
 "but the Qt message catalog format supports Unicode only in the translated\n"
@@ -3513,12 +3850,12 @@ msgstr ""
 "vain\n"
 "käännetyissä merkkijonoissa, ei kääntämättömissä merkkijonoissa\n"
 
-#: src/write-resources.c:94
+#: src/write-resources.c:95
 #, c-format
 msgid "error while writing to %s subprocess"
 msgstr "virhe kirjoitettaessa aliprosessiin %s"
 
-#: src/write-resources.c:131
+#: src/write-resources.c:132
 msgid ""
 "message catalog has context dependent translations\n"
 "but the C# .resources format doesn't support contexts\n"
@@ -3526,7 +3863,7 @@ msgstr ""
 "viestiluettelossa on kontekstiriippuvaisia käännöksiä\n"
 "mutta C# .resources -muoto ei tue konteksteja\n"
 
-#: src/write-resources.c:150
+#: src/write-resources.c:151
 msgid ""
 "message catalog has plural form translations\n"
 "but the C# .resources format doesn't support plural handling\n"
@@ -3534,15 +3871,15 @@ msgstr ""
 "viestiluettelossa on monikkomuotoisia käännöksiä\n"
 "mutta C# .resources -muoto ei tue monikkokäsittelyä\n"
 
-#: src/write-tcl.c:157
+#: src/write-tcl.c:158
 msgid ""
 "message catalog has context dependent translations\n"
 "but the Tcl message catalog format doesn't support contexts\n"
 msgstr ""
 "viestiluettelossa on kontekstiriippuvaisia käännöksiä\n"
-"mutta Tcl-viestiluettelomuoto ei tue konteksteja.\n"
+"mutta Tcl-viestiluettelomuoto ei tue konteksteja\n"
 
-#: src/write-tcl.c:176
+#: src/write-tcl.c:177
 msgid ""
 "message catalog has plural form translations\n"
 "but the Tcl message catalog format doesn't support plural handling\n"
@@ -3550,31 +3887,36 @@ msgstr ""
 "viestiluettelossa on monikkomuotoisia käännöksiä\n"
 "mutta Tcl-viestiluettelomuoto ei tule monikkokäsittelyä\n"
 
-#: src/x-awk.c:341 src/x-javascript.c:988 src/x-python.c:1128
+#: src/x-awk.c:342 src/x-javascript.c:796 src/x-python.c:932
 #, c-format
 msgid "%s:%d: warning: unterminated string"
 msgstr "%s:%d: varoitus: päättämätön merkkijono"
 
-#: src/x-awk.c:592
+#: src/x-awk.c:593
 #, c-format
 msgid "%s:%d: warning: unterminated regular expression"
 msgstr "%s:%d: varoitus: päättämätön säännöllinen lauseke"
 
-#: src/x-c.c:1223 src/x-csharp.c:1509 src/x-java.c:872 src/x-vala.c:762
+#: src/x-c.c:1161
+#, c-format
+msgid "warning: invalid Unicode character"
+msgstr "varoitus: virheellinen Unicode-merkki"
+
+#: src/x-c.c:1475 src/x-csharp.c:1510 src/x-java.c:872 src/x-vala.c:619
 #, c-format
 msgid "%s:%d: warning: unterminated character constant"
 msgstr "%s:%d: varoitus: päättämätön merkkivakio"
 
-#: src/x-c.c:1247 src/x-vala.c:832
+#: src/x-c.c:1531 src/x-c.c:1582 src/x-vala.c:729
 #, c-format
 msgid "%s:%d: warning: unterminated string literal"
 msgstr "%s:%d: varoitus: päättämätön merkkijonoliteraali"
 
-#: src/x-csharp.c:224 src/xgettext.c:2055
+#: src/x-csharp.c:225 src/xgettext.c:2375
 msgid "Please specify the source encoding through --from-code."
 msgstr "Määritä lähdekoodaus valitsimen --from-code avulla."
 
-#: src/x-csharp.c:269
+#: src/x-csharp.c:270
 #, c-format
 msgid ""
 "%s:%d: Invalid multibyte sequence.\n"
@@ -3583,7 +3925,7 @@ msgstr ""
 "%s:%d: Virheellinen monitavusekvenssi.\n"
 "Määritä oikea lähdekoodikoodaus valitsimen --from-code avulla.\n"
 
-#: src/x-csharp.c:285
+#: src/x-csharp.c:286
 #, c-format
 msgid ""
 "%s:%d: Long incomplete multibyte sequence.\n"
@@ -3592,7 +3934,7 @@ msgstr ""
 "%s:%d: Pitkä vaillinainen monitavusekvenssi.\n"
 "Määritä oikea lähdekoodikoodaus valitsimen --from-code avulla.\n"
 
-#: src/x-csharp.c:297
+#: src/x-csharp.c:298
 #, c-format
 msgid ""
 "%s:%d: Incomplete multibyte sequence at end of file.\n"
@@ -3601,7 +3943,7 @@ msgstr ""
 "%s:%d: Vaillinainen monitavusekvenssi tiedoston lopussa.\n"
 "Määritä oikea lähdekoodikoodaus valitsimen --from-code avulla.\n"
 
-#: src/x-csharp.c:306
+#: src/x-csharp.c:307
 #, c-format
 msgid ""
 "%s:%d: Incomplete multibyte sequence at end of line.\n"
@@ -3610,12 +3952,12 @@ msgstr ""
 "%s:%d: Vaillinainen monitavusekvenssi rivin lopussa.\n"
 "Määritä oikea lähdekoodikoodaus valitsimen --from-code avulla.\n"
 
-#: src/x-csharp.c:315 src/x-javascript.c:321 src/x-python.c:374
+#: src/x-csharp.c:316 src/x-javascript.c:322 src/x-python.c:375
 #, c-format
 msgid "%s:%d: iconv failure"
 msgstr "%s:%d: iconv-häiriö"
 
-#: src/x-csharp.c:338
+#: src/x-csharp.c:339
 #, c-format
 msgid ""
 "%s:%d: Invalid multibyte sequence.\n"
@@ -3624,382 +3966,214 @@ msgstr ""
 "%s:%d: Virheellinen monitavusekvenssi.\n"
 "Määritä lähdekoodikoodaus valitsimen --from-code avulla.\n"
 
-#: src/x-csharp.c:1390 src/x-python.c:1335
+#: src/x-csharp.c:1391 src/x-python.c:1139
 #, c-format
 msgid "%s:%d: warning: invalid Unicode character"
 msgstr "%s:%d: varoitus: virheellinen Unicode-merkki"
 
-#: src/x-csharp.c:1512 src/x-java.c:875
+#: src/x-csharp.c:1513 src/x-java.c:875
 #, c-format
 msgid "%s:%d: warning: unterminated string constant"
 msgstr "%s:%d: varoitus: päättämätön merkkijonovakio"
 
-#: src/x-csharp.c:2020 src/x-java.c:1369
+#: src/x-csharp.c:2019 src/x-java.c:1369
 #, c-format
 msgid "%s:%d: warning: ')' found where '}' was expected"
-msgstr "%s:%d: varoitus: ')' löytyi kun '}' odotettiin"
+msgstr "%s:%d: varoitus: ’)’ löytyi kun ’}’ odotettiin"
 
-#: src/x-csharp.c:2054 src/x-java.c:1403
+#: src/x-csharp.c:2053 src/x-java.c:1403
 #, c-format
 msgid "%s:%d: warning: '}' found where ')' was expected"
-msgstr "%s:%d: varoitus: '}' löytyi kun ')' odotettiin"
+msgstr "%s:%d: varoitus: ’}’ löytyi kun ’)’ odotettiin"
 
-#: src/x-glade.c:561
+#: src/xgettext.c:579
 #, c-format
-msgid "Missing context for the string extracted from '%s' element"
+msgid "'%s' is not a valid encoding name.  Using ASCII as fallback.\n"
 msgstr ""
+"’%s’ ei ole kelvollinen koodausnimi. Käytetään ASCII-koodia varmistuksena.\n"
 
-#: src/x-glade.c:686
+#: src/xgettext.c:648
 #, c-format
-msgid "The root element <%s> is not allowed in a valid Glade file"
-msgstr ""
+msgid "syntax check '%s' unknown"
+msgstr "syntaksitarkistus ’%s’ on tuntematon"
 
-#: src/x-glade.c:841 src/x-glade.c:848
+#: src/xgettext.c:657
 #, c-format
-msgid "%s:%lu:%lu: %s"
-msgstr "%s:%lu:%lu: %s"
+msgid "sentence end type '%s' unknown"
+msgstr "lauselopputyyppi ’%s’ on tuntematon"
 
-#: src/x-glade.c:875
+#: src/xgettext.c:711
 #, c-format
-msgid ""
-"Language \"glade\" is not supported. %s relies on expat.\n"
-"This version was built without expat.\n"
+msgid "--join-existing cannot be used when output is written to stdout"
 msgstr ""
-"Kieltä ”glade” ei tueta. %s turvautuu expat-ohjelmaan.\n"
-"Tämä versio on rakennettu ilman expat-ohjelmaa.\n"
+"valitsimen --join-existing käyttäminen epäonnistui kun tuloste kirjoitetaan "
+"vakiotulosteeseen"
 
-#: src/x-java.c:494
+#: src/xgettext.c:716
 #, c-format
-msgid "%s:%d: warning: lone surrogate U+%04X"
-msgstr "%s:%d: varoitus: yksinäinen sijainen U+%04X"
+msgid "xgettext cannot work without keywords to look for"
+msgstr "xgettext ei voi työskennellä ilman etsittäviä avainsanoja"
 
-#: src/x-javascript.c:230
-#, fuzzy
-msgid "Please specify the source encoding through --from-code\n"
-msgstr "Määritä lähdekoodaus valitsimen --from-code avulla."
+#: src/xgettext.c:868
+#, c-format
+msgid "warning: ITS rule file '%s' does not exist"
+msgstr ""
 
-#: src/x-javascript.c:275
-#, fuzzy, c-format
+#: src/xgettext.c:949
+#, c-format
 msgid ""
-"%s:%d: Invalid multibyte sequence.\n"
-"Please specify the correct source encoding through --from-code\n"
+"warning: ITS rule file '%s' does not exist; check your gettext installation"
 msgstr ""
-"%s:%d: Virheellinen monitavusekvenssi.\n"
-"Määritä oikea lähdekoodikoodaus valitsimen --from-code avulla.\n"
 
-#: src/x-javascript.c:291
-#, fuzzy, c-format
-msgid ""
-"%s:%d: Long incomplete multibyte sequence.\n"
-"Please specify the correct source encoding through --from-code\n"
+#: src/xgettext.c:967
+#, c-format
+msgid "warning: file '%s' extension '%s' is unknown; will try C"
 msgstr ""
-"%s:%d: Pitkä vaillinainen monitavusekvenssi.\n"
-"Määritä oikea lähdekoodikoodaus valitsimen --from-code avulla.\n"
+"varoitus: tiedoston ’%s’ tarkennin ’%s’ on tuntematon; yritetään tarkenninta "
+"C"
 
-#: src/x-javascript.c:303
-#, fuzzy, c-format
+#: src/xgettext.c:1052
+#, c-format
+msgid "Extract translatable strings from given input files.\n"
+msgstr "Poimi käännettävät merkkijonot annetuista syötetiedostoista.\n"
+
+#: src/xgettext.c:1075
+#, c-format
 msgid ""
-"%s:%d: Incomplete multibyte sequence at end of file.\n"
-"Please specify the correct source encoding through --from-code\n"
+"  -d, --default-domain=NAME   use NAME.po for output (instead of messages."
+"po)\n"
 msgstr ""
-"%s:%d: Vaillinainen monitavusekvenssi tiedoston lopussa.\n"
-"Määritä oikea lähdekoodikoodaus valitsimen --from-code avulla.\n"
+"  -d, --default-domain=NIMI   käytä tiedostoa NIMI.po tulostukseen (eikä "
+"tiedostoa messages.po)\n"
 
-#: src/x-javascript.c:312
-#, fuzzy, c-format
-msgid ""
-"%s:%d: Incomplete multibyte sequence at end of line.\n"
-"Please specify the correct source encoding through --from-code\n"
+#: src/xgettext.c:1077
+#, c-format
+msgid "  -o, --output=FILE           write output to specified file\n"
 msgstr ""
-"%s:%d: Vaillinainen monitavusekvenssi rivin lopussa.\n"
-"Määritä oikea lähdekoodikoodaus valitsimen --from-code avulla.\n"
+"  -o, --output=TIEDOSTO       kirjoita tuloste määriteltyyn tiedostoon\n"
 
-#: src/x-javascript.c:344
-#, fuzzy, c-format
+#: src/xgettext.c:1079
+#, c-format
 msgid ""
-"%s:%d: Invalid multibyte sequence.\n"
-"Please specify the source encoding through --from-code\n"
+"  -p, --output-dir=DIR        output files will be placed in directory DIR\n"
 msgstr ""
-"%s:%d: Virheellinen monitavusekvenssi.\n"
-"Määritä lähdekoodikoodaus valitsimen --from-code avulla.\n"
+"  -p, --output-dir=HAKEMISTO  tulostetiedostot sijoitetaan HAKEMISTOon\n"
 
-#: src/x-javascript.c:1147
-#, fuzzy, c-format
-msgid "%s:%d: warning: RegExp literal terminated too early"
-msgstr "%s:%d: varoitus: päättämätön merkkijonoliteraali"
+#: src/xgettext.c:1084
+#, c-format
+msgid "Choice of input file language:\n"
+msgstr "Syötetiedoston kielen valinta:\n"
 
-#: src/x-perl.c:308
+#: src/xgettext.c:1086
 #, c-format
-msgid "%s:%d: can't find string terminator \"%s\" anywhere before EOF"
+msgid ""
+"  -L, --language=NAME         recognise the specified language\n"
+"                                (C, C++, ObjectiveC, PO, Shell, Python, "
+"Lisp,\n"
+"                                EmacsLisp, librep, Scheme, Smalltalk, Java,\n"
+"                                JavaProperties, C#, awk, YCP, Tcl, Perl, "
+"PHP,\n"
+"                                GCC-source, NXStringTable, RST, Glade, Lua,\n"
+"                                JavaScript, Vala, Desktop)\n"
 msgstr ""
-"%s:%d: ei löydetä merkkijonopäättämismerkkiä ”%s” mistään ennen EOF-"
-"tiedostonloppumerkkiä"
+"  -L, --language=NIMI         tunnista määritelty kieli\n"
+"                                (C, C++, ObjectiveC, PO, Shell, Python, "
+"Lisp,\n"
+"                                EmacsLisp, librep, Scheme, Smalltalk, Java,\n"
+"                                JavaProperties, C#, awk, YCP, Tcl, Perl, "
+"PHP,\n"
+"                                GCC-source, NXStringTable, RST, Glade, Lua,\n"
+"                                JavaScript, Vala, Desktop)\n"
 
-#: src/x-perl.c:1043
+#: src/xgettext.c:1093
 #, c-format
-msgid "%s:%d: missing right brace on \\x{HEXNUMBER}"
-msgstr "%s:%d: puuttuu oikea aaltosulje kohteessa \\x{HEXNUMBER}"
+msgid "  -C, --c++                   shorthand for --language=C++\n"
+msgstr ""
+"  -C, --c++                   pikavalitsin valitsimelle --language=C++\n"
 
-#: src/x-perl.c:1163
+#: src/xgettext.c:1095
 #, c-format
-msgid "%s:%d: invalid interpolation (\"\\l\") of 8bit character \"%c\""
-msgstr "%s:%d: virheellinen 8-bittisen merkin ”%c” interpolaatio (”\\l”)"
+msgid ""
+"By default the language is guessed depending on the input file name "
+"extension.\n"
+msgstr ""
+"Oletuksena kieli on arvattu riippuen syötetiedostonimen tarkentimesta.\n"
 
-#: src/x-perl.c:1183
+#: src/xgettext.c:1100
 #, c-format
-msgid "%s:%d: invalid interpolation (\"\\u\") of 8bit character \"%c\""
-msgstr "%s:%d: virheellinen 8-bittisen merkin ”%c” interpolaatio (”\\u”)"
+msgid ""
+"      --from-code=NAME        encoding of input files\n"
+"                                (except for Python, Tcl, Glade)\n"
+msgstr ""
+"      --from-code=NIMI        syötetiedostojen koodaus\n"
+"                                (paitsi kielille Python, Tcl, Glade)\n"
 
-#: src/x-perl.c:1217
+#: src/xgettext.c:1103
 #, c-format
-msgid "%s:%d: invalid variable interpolation at \"%c\""
-msgstr "%s:%d: virheellinen muuttujainterpolaatio osoitteessa ”%c”"
+msgid "By default the input files are assumed to be in ASCII.\n"
+msgstr "Oletuksen syötetiedostojen otaksutaan olevan ASCII-tekstiä.\n"
 
-#: src/x-perl.c:1230
+#: src/xgettext.c:1108
 #, c-format
-msgid "%s:%d: invalid interpolation (\"\\L\") of 8bit character \"%c\""
-msgstr "%s:%d: virheellinen 8-bitisen merkin ”%c” interpolaatio (”\\L”)"
+msgid "  -j, --join-existing         join messages with existing file\n"
+msgstr ""
+"  -j, --join-existing         liitä viesti oleamssaolevaan tiedostoon\n"
 
-#: src/x-perl.c:1247
+#: src/xgettext.c:1110
 #, c-format
-msgid "%s:%d: invalid interpolation (\"\\U\") of 8bit character \"%c\""
-msgstr "%s:%d: virheellinen 8-bittisen merkin ”%c” interpolaatio (”\\U”)"
+msgid "  -x, --exclude-file=FILE.po  entries from FILE.po are not extracted\n"
+msgstr ""
+"  -x, --exclude-file=FILE.po  rivejä tiedostossa FILE.po ei ole poimittu\n"
 
-#: src/x-python.c:278
+#: src/xgettext.c:1112
+#, c-format
 msgid ""
-"Please specify the source encoding through --from-code or through a comment\n"
-"as specified in http://www.python.org/peps/pep-0263.html.\n"
+"  -cTAG, --add-comments=TAG   place comment blocks starting with TAG and\n"
+"                                preceding keyword lines in output file\n"
+"  -c, --add-comments          place all comment blocks preceding keyword "
+"lines\n"
+"                                in output file\n"
 msgstr ""
-"Määritä lähdekoodikoodaus valitsimen --from-code tai kommentin avulla\n"
-"kuten on määritelty asiakirjassa http://www.python.org/peps/pep-0263.html.\n"
+"  -cTAG, --add-comments=TAG   sijoita TAG-alkuiset kommenttilohkot ja\n"
+"                                edeltävät avainsanarivit tulostetiedostoon\n"
+"  -c, --add-comments          sijoita kaikkia kommenttilohkoja edeltävät "
+"avainsana-\n"
+"                                rivit tulostetiedostoon\n"
 
-#: src/x-python.c:324
+#: src/xgettext.c:1117
 #, c-format
 msgid ""
-"%s:%d: Invalid multibyte sequence.\n"
-"Please specify the correct source encoding through --from-code or through a\n"
-"comment as specified in http://www.python.org/peps/pep-0263.html.\n"
+"      --check=NAME            perform syntax check on messages\n"
+"                                (ellipsis-unicode, space-ellipsis,\n"
+"                                 quote-unicode)\n"
 msgstr ""
-"%s:%d: Virheellinen monitavusekvenssi.\n"
-"Määritä oikea lähdekoodikoodaus valitsimen --from-code tai kommentin avulla\n"
-"kuten on määritelty asiakirjassa http://www.python.org/peps/pep-0263.html.\n"
+"      --check=NIMI            suorita syntaksitarkistus viesteille\n"
+"                                (ellipsis-unicode, space-ellipsis,\n"
+"                                 quote-unicode)\n"
 
-#: src/x-python.c:341
+#: src/xgettext.c:1121
 #, c-format
 msgid ""
-"%s:%d: Long incomplete multibyte sequence.\n"
-"Please specify the correct source encoding through --from-code or through a\n"
-"comment as specified in http://www.python.org/peps/pep-0263.html.\n"
-msgstr ""
-"%s:%d: Pitkä vaillinainen monitavusekvenssi.\n"
-"Määritä oikea lähdekoodikoodaus valitsimen --from-code tai kommentin avulla\n"
-"kuten on määritelty asiakirjassa http://www.python.org/peps/pep-0263.html.\n"
-
-#: src/x-python.c:354
-#, c-format
-msgid ""
-"%s:%d: Incomplete multibyte sequence at end of file.\n"
-"Please specify the correct source encoding through --from-code or through a\n"
-"comment as specified in http://www.python.org/peps/pep-0263.html.\n"
-msgstr ""
-"%s:%d: Vaillinainen monitavusekvenssi tiedoston lopussa.\n"
-"Määritä oikea lähdekoodikoodaus valitsimen --from-code tai kommentin avulla\n"
-"kuten on määritelty asiakirjassa http://www.python.org/peps/pep-0263.html.\n"
-
-#: src/x-python.c:364
-#, c-format
-msgid ""
-"%s:%d: Incomplete multibyte sequence at end of line.\n"
-"Please specify the correct source encoding through --from-code or through a\n"
-"comment as specified in http://www.python.org/peps/pep-0263.html.\n"
-msgstr ""
-"%s:%d: Vaillinainen monitavusekvenssi rivin lopussa.\n"
-"Määritä oikea lähdekoodikoodaus valitsimen --from-code tai kommentin avulla\n"
-"kuten on määritelty asiakirjassa http://www.python.org/peps/pep-0263.html.\n"
-
-#: src/x-python.c:397
-#, c-format
-msgid ""
-"%s:%d: Invalid multibyte sequence.\n"
-"Please specify the source encoding through --from-code or through a comment\n"
-"as specified in http://www.python.org/peps/pep-0263.html.\n"
+"      --sentence-end=TYPE     type describing the end of sentence\n"
+"                                (single-space, which is the default, \n"
+"                                 or double-space)\n"
 msgstr ""
-"%s:%d: Virheellinen monitavusekvenssi.\n"
-"Määritä lähdekoodikoodaus valitsimen --from-code tai kommentin avulla\n"
-"kuten on määritelty asiakirjassa http://www.python.org/peps/pep-0263.html.\n"
-
-#: src/x-python.c:722
-#, c-format
-msgid "Unknown encoding \"%s\". Proceeding with ASCII instead."
-msgstr "Tuntematon koodaus ”%s”. Jatketaan sen sijaan ASCII-koodauksella."
-
-#: src/x-rst.c:108
-#, c-format
-msgid "%s:%d: invalid string definition"
-msgstr "%s:%d: virheellinen merkkijonomäärittely"
+"      --sentence-end=TYYPPI   lauseen loppua kuvaileva tyyppi\n"
+"                                (single-space, joka on oletus, \n"
+"                                 tai double-space)\n"
 
-#: src/x-rst.c:172
-#, c-format
-msgid "%s:%d: missing number after #"
-msgstr "%s:%d: numero puuttuu merkin # jäljestä"
-
-#: src/x-rst.c:207
-#, c-format
-msgid "%s:%d: invalid string expression"
-msgstr "%s:%d: virheellinen merkkijonolauseke"
-
-#: src/x-sh.c:1074
-#, c-format
-msgid ""
-"%s:%lu: warning: the syntax $\"...\" is deprecated due to security reasons; "
-"use eval_gettext instead"
-msgstr ""
-"%s:%lu: varoitus: syntaksi $\"...\" on vanhentunut turvallisuussyistä; käytä "
-"sen sijaan funktiota eval_gettext"
-
-#: src/x-vala.c:558
-#, fuzzy, c-format
-msgid "%s:%d: warning: regular expression literal terminated too early"
-msgstr "%s:%d: varoitus: päättämätön merkkijonoliteraali"
-
-#: src/xgettext.c:636
-#, c-format
-msgid "--join-existing cannot be used when output is written to stdout"
-msgstr ""
-"valitsimen --join-existing käyttäminen epäonnistui kun tuloste kirjoitetaan "
-"vakiotulosteeseen"
-
-#: src/xgettext.c:641
-#, c-format
-msgid "xgettext cannot work without keywords to look for"
-msgstr "xgettext ei voi työskennellä ilman etsittäviä avainsanoja"
-
-#: src/xgettext.c:785
-#, c-format
-msgid "warning: file '%s' extension '%s' is unknown; will try C"
-msgstr ""
-"varoitus: tiedoston ’%s’ tarkennin ’%s’ on tuntematon; yritetään tarkenninta "
-"C"
-
-#: src/xgettext.c:836
-#, c-format
-msgid "Extract translatable strings from given input files.\n"
-msgstr "Poimi käännettävät merkkijonot annetuista syötetiedostoista.\n"
-
-#: src/xgettext.c:859
-#, c-format
-msgid ""
-"  -d, --default-domain=NAME   use NAME.po for output (instead of messages."
-"po)\n"
-msgstr ""
-"  -d, --default-domain=NIMI   käytä tiedostoa NIMI.po tulostukseen (eikä "
-"tiedostoa messages.po)\n"
-
-#: src/xgettext.c:861
-#, c-format
-msgid "  -o, --output=FILE           write output to specified file\n"
-msgstr ""
-"  -o, --output=TIEDOSTO       kirjoita tuloste määriteltyyn tiedostoon\n"
-
-#: src/xgettext.c:863
-#, c-format
-msgid ""
-"  -p, --output-dir=DIR        output files will be placed in directory DIR\n"
-msgstr ""
-"  -p, --output-dir=HAKEMISTO  tulostetiedostot sijoitetaan HAKEMISTOon\n"
-
-#: src/xgettext.c:868
-#, c-format
-msgid "Choice of input file language:\n"
-msgstr "Syötetiedoston kielen valinta:\n"
-
-#: src/xgettext.c:870
-#, fuzzy, c-format
-msgid ""
-"  -L, --language=NAME         recognise the specified language\n"
-"                                (C, C++, ObjectiveC, PO, Shell, Python, "
-"Lisp,\n"
-"                                EmacsLisp, librep, Scheme, Smalltalk, Java,\n"
-"                                JavaProperties, C#, awk, YCP, Tcl, Perl, "
-"PHP,\n"
-"                                GCC-source, NXStringTable, RST, Glade, Lua,\n"
-"                                JavaScript, Vala)\n"
-msgstr ""
-"  -L, --language=NIMI         tunnista määritelty kieli\n"
-"                                (C, C++, ObjectiveC, PO, Shell, Python, "
-"Lisp,\n"
-"                                EmacsLisp, librep, Scheme, Smalltalk, Java,\n"
-"                                JavaProperties, C#, awk, YCP, Tcl, Perl, "
-"PHP,\n"
-"                                GCC-source, NXStringTable, RST, Glade)\n"
-
-#: src/xgettext.c:877
-#, c-format
-msgid "  -C, --c++                   shorthand for --language=C++\n"
-msgstr ""
-"  -C, --c++                   pikavalitsin valitsimelle --language=C++\n"
-
-#: src/xgettext.c:879
-#, c-format
-msgid ""
-"By default the language is guessed depending on the input file name "
-"extension.\n"
-msgstr ""
-"Oletuksena kieli on arvattu riippuen syötetiedostonimen tarkentimesta.\n"
-
-#: src/xgettext.c:884
-#, c-format
-msgid ""
-"      --from-code=NAME        encoding of input files\n"
-"                                (except for Python, Tcl, Glade)\n"
-msgstr ""
-"      --from-code=NIMI        syötetiedostojen koodaus\n"
-"                                (paitsi kielille Python, Tcl, Glade)\n"
-
-#: src/xgettext.c:887
-#, c-format
-msgid "By default the input files are assumed to be in ASCII.\n"
-msgstr "Oletuksen syötetiedostojen otaksutaan olevan ASCII-tekstiä.\n"
-
-#: src/xgettext.c:892
-#, c-format
-msgid "  -j, --join-existing         join messages with existing file\n"
-msgstr ""
-"  -j, --join-existing         liitä viesti oleamssaolevaan tiedostoon\n"
-
-#: src/xgettext.c:894
-#, c-format
-msgid "  -x, --exclude-file=FILE.po  entries from FILE.po are not extracted\n"
-msgstr ""
-"  -x, --exclude-file=FILE.po  rivejä tiedostossa FILE.po ei ole poimittu\n"
-
-#: src/xgettext.c:896
-#, c-format
-msgid ""
-"  -cTAG, --add-comments=TAG   place comment blocks starting with TAG and\n"
-"                                preceding keyword lines in output file\n"
-"  -c, --add-comments          place all comment blocks preceding keyword "
-"lines\n"
-"                                in output file\n"
-msgstr ""
-"  -cTAG, --add-comments=TAG   sijoita TAG-alkuiset kommenttilohkot ja\n"
-"                                edeltävät avainsanarivit tulostetiedostoon\n"
-"  -c, --add-comments          sijoita kaikkia kommenttilohkoja edeltävät "
-"avainsana-\n"
-"                                rivit tulostetiedostoon\n"
-
-#: src/xgettext.c:902
+#: src/xgettext.c:1126
 #, c-format
 msgid "Language specific options:\n"
 msgstr "Kielikohtaiset valitsimet:\n"
 
-#: src/xgettext.c:904
+#: src/xgettext.c:1128
 #, c-format
 msgid "  -a, --extract-all           extract all strings\n"
 msgstr "  -a, --extract-all           pura kaikki merkkijonot\n"
 
-#: src/xgettext.c:906 src/xgettext.c:914
-#, fuzzy, c-format
+#: src/xgettext.c:1130
+#, c-format
 msgid ""
 "                                (only languages C, C++, ObjectiveC, Shell,\n"
 "                                Python, Lisp, EmacsLisp, librep, Scheme, "
@@ -4010,18 +4184,25 @@ msgstr ""
 "                                (vain kielet C, C++, ObjectiveC, Shell,\n"
 "                                Python, Lisp, EmacsLisp, librep, Scheme, "
 "Java,\n"
-"                                C#, awk, Tcl, Perl, PHP, GCC-source, Glade)\n"
+"                                C#, awk, Tcl, Perl, PHP, GCC-source, Glade,\n"
+"                                Lua, JavaScript, Vala)\n"
 
-#: src/xgettext.c:911
+#: src/xgettext.c:1138
 #, c-format
 msgid ""
-"  -kWORD, --keyword=WORD      look for WORD as an additional keyword\n"
-"  -k, --keyword               do not to use default keywords\n"
+"                                (only languages C, C++, ObjectiveC, Shell,\n"
+"                                Python, Lisp, EmacsLisp, librep, Scheme, "
+"Java,\n"
+"                                C#, awk, Tcl, Perl, PHP, GCC-source, Glade,\n"
+"                                Lua, JavaScript, Vala, Desktop)\n"
 msgstr ""
-"  -kWORD, --keyword=WORD      etsi WORD-argumentti lisäavainsanana\n"
-"  -k, --keyword               älä käytä oletusavainsanoja\n"
+"                                (vain kielet C, C++, ObjectiveC, Shell,\n"
+"                                Python, Lisp, EmacsLisp, librep, Scheme, "
+"Java,\n"
+"                                C#, awk, Tcl, Perl, PHP, GCC-source, Glade,\n"
+"                                Lua, JavaScript, Vala, Desktop)\n"
 
-#: src/xgettext.c:919
+#: src/xgettext.c:1143
 #, c-format
 msgid ""
 "      --flag=WORD:ARG:FLAG    additional flag for strings inside the "
@@ -4032,8 +4213,8 @@ msgstr ""
 "argumentti-\n"
 "                              numeron ARG sisällä\n"
 
-#: src/xgettext.c:922
-#, fuzzy, c-format
+#: src/xgettext.c:1146
+#, c-format
 msgid ""
 "                                (only languages C, C++, ObjectiveC, Shell,\n"
 "                                Python, Lisp, EmacsLisp, librep, Scheme, "
@@ -4044,40 +4225,41 @@ msgstr ""
 "                                (vain kielille C, C++, ObjectiveC, Shell,\n"
 "                                Python, Lisp, EmacsLisp, librep, Scheme, "
 "Java,\n"
-"                                C#, awk, YCP, Tcl, Perl, PHP, GCC-source)\n"
+"                                C#, awk, YCP, Tcl, Perl, PHP, GCC-source,\n"
+"                                Lua, JavaScript, Vala)\n"
 
-#: src/xgettext.c:927
+#: src/xgettext.c:1151
 #, c-format
 msgid "  -T, --trigraphs             understand ANSI C trigraphs for input\n"
 msgstr ""
 "  -T, --trigraphs             ymmärrä ANSI C kolmimerkkejä syötettä varten\n"
 
-#: src/xgettext.c:929
+#: src/xgettext.c:1153
 #, c-format
 msgid "                                (only languages C, C++, ObjectiveC)\n"
 msgstr "                                (vain kielet C, C++, ObjectiveC)\n"
 
-#: src/xgettext.c:931
+#: src/xgettext.c:1155
 #, c-format
 msgid "      --qt                    recognize Qt format strings\n"
 msgstr "      --qt                    tunnista Qt-muotoiset merkkijonot\n"
 
-#: src/xgettext.c:933 src/xgettext.c:937 src/xgettext.c:941
+#: src/xgettext.c:1157 src/xgettext.c:1161 src/xgettext.c:1165
 #, c-format
 msgid "                                (only language C++)\n"
 msgstr "                                (vain C++-kieli)\n"
 
-#: src/xgettext.c:935
+#: src/xgettext.c:1159
 #, c-format
 msgid "      --kde                   recognize KDE 4 format strings\n"
 msgstr "      --kde                   tunnista KDE 4 -muotoiset merkkijonot\n"
 
-#: src/xgettext.c:939
+#: src/xgettext.c:1163
 #, c-format
 msgid "      --boost                 recognize Boost format strings\n"
 msgstr "      --boost                 tunnista Boost-muotoiset merkkijonot\n"
 
-#: src/xgettext.c:943
+#: src/xgettext.c:1167
 #, c-format
 msgid ""
 "      --debug                 more detailed formatstring recognition result\n"
@@ -4085,18 +4267,29 @@ msgstr ""
 "      --debug                 yksityiskohtaisempi "
 "muotomerkkijonotunnistustulos\n"
 
-#: src/xgettext.c:968
+#: src/xgettext.c:1192
 #, c-format
 msgid "      --properties-output     write out a Java .properties file\n"
 msgstr "      --properties-output     luo Java .properties -tiedoston\n"
 
-#: src/xgettext.c:983
+#: src/xgettext.c:1196
+#, fuzzy, c-format
+msgid "      --its=FILE              apply ITS rules from FILE\n"
+msgstr ""
+"  -f, --files-from=TIEDOSTO   hae syötetiedostojen luettelo TIEDOSTOsta\n"
+
+#: src/xgettext.c:1198
+#, fuzzy, c-format
+msgid "      --itstool               write out itstool comments\n"
+msgstr "      --indent                sisennetty tulostetyyli\n"
+
+#: src/xgettext.c:1211
 #, c-format
 msgid "      --copyright-holder=STRING  set copyright holder in output\n"
 msgstr ""
 "      --copyright-holder=STRING  aseta copyright-omistajan tulosteessa\n"
 
-#: src/xgettext.c:985
+#: src/xgettext.c:1213
 #, c-format
 msgid ""
 "      --foreign-user          omit FSF copyright in output for foreign user\n"
@@ -4104,17 +4297,17 @@ msgstr ""
 "      --foreign-user          ohita FSF copyright-tulosteessa "
 "vieraskieliselle käyttäjälle\n"
 
-#: src/xgettext.c:987
+#: src/xgettext.c:1215
 #, c-format
 msgid "      --package-name=PACKAGE  set package name in output\n"
 msgstr "      --package-name=PACKAGE  aseta pakkausnimi tulosteessa\n"
 
-#: src/xgettext.c:989
+#: src/xgettext.c:1217
 #, c-format
 msgid "      --package-version=VERSION  set package version in output\n"
 msgstr "      --package-version=VERSION  aseta pakkausversio tulosteessa\n"
 
-#: src/xgettext.c:991
+#: src/xgettext.c:1219
 #, c-format
 msgid ""
 "      --msgid-bugs-address=EMAIL@ADDRESS  set report address for msgid bugs\n"
@@ -4122,7 +4315,7 @@ msgstr ""
 "      --msgid-bugs-address=EMAIL@ADDRESS  aseta ilmoitusosoite msgid-"
 "vikailmoituksia varten\n"
 
-#: src/xgettext.c:993
+#: src/xgettext.c:1221
 #, c-format
 msgid ""
 "  -m[STRING], --msgstr-prefix[=STRING]  use STRING or \"\" as prefix for "
@@ -4133,7 +4326,7 @@ msgstr ""
 "etuliitteenä msgstr-\n"
 "                                merkkijonon arvoille\n"
 
-#: src/xgettext.c:996
+#: src/xgettext.c:1224
 #, c-format
 msgid ""
 "  -M[STRING], --msgstr-suffix[=STRING]  use STRING or \"\" as suffix for "
@@ -4144,7 +4337,7 @@ msgstr ""
 "loppuliitteenä msgstr-\n"
 "                                merkkijonon arvoille\n"
 
-#: src/xgettext.c:1817
+#: src/xgettext.c:2050
 #, c-format
 msgid ""
 "A --flag argument doesn't have the <keyword>:<argnum>:[pass-]<flag> syntax: "
@@ -4153,31 +4346,31 @@ msgstr ""
 "Argumentilla --flag ei ole <avainsana>:<argumenttinumero>:[pass-]<lippu> -"
 "syntaksia: %s"
 
-#: src/xgettext.c:1916
+#: src/xgettext.c:2175
 msgid "standard input"
 msgstr "vakiosyöte"
 
-#: src/xgettext.c:2020
+#: src/xgettext.c:2340
 #, c-format
 msgid "Non-ASCII character at %s%s."
 msgstr "Ei-ASCII-merkki osoitteessa %s%s."
 
-#: src/xgettext.c:2024
+#: src/xgettext.c:2344
 #, c-format
 msgid "Non-ASCII comment at or before %s%s."
 msgstr "Ei-ASCII-kommentti osoitteessa tai ennen osoitetta %s%s."
 
-#: src/xgettext.c:2029
+#: src/xgettext.c:2349
 #, c-format
 msgid "Non-ASCII string at %s%s."
 msgstr "Ei-ASCII-merkkijono osoitteessa %s%s."
 
-#: src/xgettext.c:2135 src/xgettext.c:2168 src/xgettext.c:2230
+#: src/xgettext.c:2455 src/xgettext.c:2488 src/xgettext.c:2553
 #, c-format
 msgid "%s%s: warning: "
 msgstr "%s%s: varoitus: "
 
-#: src/xgettext.c:2138
+#: src/xgettext.c:2458
 #, c-format
 msgid ""
 "Although being used in a format string position, the %s is not a valid %s "
@@ -4186,7 +4379,7 @@ msgstr ""
 "Vaikka käytetty muotomerkkijonopaikassa, merkkijono %s ei ole kelvollinen %s-"
 "muotomerkkijono. Syy: %s\n"
 
-#: src/xgettext.c:2139
+#: src/xgettext.c:2459
 #, c-format
 msgid ""
 "Although declared as such, the %s is not a valid %s format string. Reason: "
@@ -4195,7 +4388,7 @@ msgstr ""
 "Vaikka esitelty sellaisena, merkkijono %s ei ole kelvollinen %s-"
 "muotomerkkijono. Syy: %s\n"
 
-#: src/xgettext.c:2170
+#: src/xgettext.c:2490
 #, c-format
 msgid ""
 "'%s' format string with unnamed arguments cannot be properly localized:\n"
@@ -4209,7 +4402,7 @@ msgstr ""
 "Harkitse muotomerkkijonon käyttämistä nimetyillä argumenteilla,\n"
 "ja kartoittamalla eikä argumenttien monilla.\n"
 
-#: src/xgettext.c:2232
+#: src/xgettext.c:2555
 msgid ""
 "Empty msgid.  It is reserved by GNU gettext:\n"
 "gettext(\"\") returns the header entry with\n"
@@ -4219,27 +4412,27 @@ msgstr ""
 "gettext(\"\") palauttaa otsakkeen metatiedolla,\n"
 "ei tyhjää merkkijonoa.\n"
 
-#: src/xgettext.c:2891
+#: src/xgettext.c:3292
 #, c-format
 msgid "ambiguous argument specification for keyword '%.*s'"
 msgstr "argumenttimäärittely avainsanalle ’%.*s’ ei ole yksiselitteinen"
 
-#: src/xgettext.c:2918
+#: src/xgettext.c:3319
 #, c-format
 msgid "warning: missing context for keyword '%.*s'"
 msgstr "varoitus: puuttuva konteksti avainsanalle ’%.*s’"
 
-#: src/xgettext.c:2943
+#: src/xgettext.c:3344
 #, c-format
 msgid "warning: missing context for plural argument of keyword '%.*s'"
 msgstr "varoitus: puuttuva konteksti avainsanan ’%.*s’ monikkoargumentille"
 
-#: src/xgettext.c:2964
+#: src/xgettext.c:3365
 #, c-format
 msgid "context mismatch between singular and plural form"
 msgstr "kontekstitäsmäämättömyys yksikkö- ja monikkomuotojen välillä"
 
-#: src/xgettext.c:3074
+#: src/xgettext.c:3740
 msgid ""
 "The option --msgid-bugs-address was not specified.\n"
 "If you are using a 'Makevars' file, please specify\n"
@@ -4251,15 +4444,357 @@ msgstr ""
 "MSGID_BUGS_ADDRESS-muuttuja; muussa tapauksessa\n"
 "määritä komentorivivalitsin --msgid-bugs-address.\n"
 
-#: src/xgettext.c:3289
+#: src/xgettext.c:3958
 #, c-format
 msgid "language '%s' unknown"
 msgstr "kieli ’%s’ on tuntematon"
 
+#: src/x-java.c:494
+#, c-format
+msgid "%s:%d: warning: lone surrogate U+%04X"
+msgstr "%s:%d: varoitus: yksinäinen sijainen U+%04X"
+
+#: src/x-javascript.c:231
+msgid "Please specify the source encoding through --from-code\n"
+msgstr "Määritä lähdekoodaus valitsimen --from-code avulla\n"
+
+#: src/x-javascript.c:276
+#, c-format
+msgid ""
+"%s:%d: Invalid multibyte sequence.\n"
+"Please specify the correct source encoding through --from-code\n"
+msgstr ""
+"%s:%d: Virheellinen monitavusekvenssi.\n"
+"Määritä oikea lähdekoodikoodaus valitsimen --from-code avulla\n"
+
+#: src/x-javascript.c:292
+#, c-format
+msgid ""
+"%s:%d: Long incomplete multibyte sequence.\n"
+"Please specify the correct source encoding through --from-code\n"
+msgstr ""
+"%s:%d: Pitkä vaillinainen monitavusekvenssi.\n"
+"Määritä oikea lähdekoodikoodaus valitsimen --from-code avulla\n"
+
+#: src/x-javascript.c:304
+#, c-format
+msgid ""
+"%s:%d: Incomplete multibyte sequence at end of file.\n"
+"Please specify the correct source encoding through --from-code\n"
+msgstr ""
+"%s:%d: Vaillinainen monitavusekvenssi tiedoston lopussa.\n"
+"Määritä oikea lähdekoodikoodaus valitsimen --from-code avulla\n"
+
+#: src/x-javascript.c:313
+#, c-format
+msgid ""
+"%s:%d: Incomplete multibyte sequence at end of line.\n"
+"Please specify the correct source encoding through --from-code\n"
+msgstr ""
+"%s:%d: Vaillinainen monitavusekvenssi rivin lopussa.\n"
+"Määritä oikea lähdekoodikoodaus valitsimen --from-code avulla\n"
+
+#: src/x-javascript.c:345
+#, c-format
+msgid ""
+"%s:%d: Invalid multibyte sequence.\n"
+"Please specify the source encoding through --from-code\n"
+msgstr ""
+"%s:%d: Virheellinen monitavusekvenssi.\n"
+"Määritä lähdekoodikoodaus valitsimen --from-code avulla\n"
+
+#: src/x-javascript.c:955
+#, c-format
+msgid "%s:%d: warning: RegExp literal terminated too early"
+msgstr "%s:%d: varoitus: RegExp-merkkijonoliteraali päättyi liian aikaisin"
+
+#: src/x-javascript.c:1056
+#, c-format
+msgid "%s:%d: warning: %s is not allowed"
+msgstr "%s:%d: varoitus: %s ei ole sallittu"
+
+#: src/x-javascript.c:1070
+#, c-format
+msgid "%s:%d: warning: unterminated XML markup"
+msgstr "%s:%d: varoitus: päättämätön XML-merkkaus"
+
+#: src/x-perl.c:308
+#, c-format
+msgid "%s:%d: can't find string terminator \"%s\" anywhere before EOF"
+msgstr ""
+"%s:%d: ei löydetä merkkijonopäättämismerkkiä ”%s” mistään ennen EOF-"
+"tiedostonloppumerkkiä"
+
+#: src/x-perl.c:1043
+#, c-format
+msgid "%s:%d: missing right brace on \\x{HEXNUMBER}"
+msgstr "%s:%d: puuttuu oikea aaltosulje kohteessa \\x{HEXNUMBER}"
+
+#: src/x-perl.c:1163
+#, c-format
+msgid "%s:%d: invalid interpolation (\"\\l\") of 8bit character \"%c\""
+msgstr "%s:%d: virheellinen 8-bittisen merkin ”%c” interpolaatio (”\\l”)"
+
+#: src/x-perl.c:1183
+#, c-format
+msgid "%s:%d: invalid interpolation (\"\\u\") of 8bit character \"%c\""
+msgstr "%s:%d: virheellinen 8-bittisen merkin ”%c” interpolaatio (”\\u”)"
+
+#: src/x-perl.c:1217
+#, c-format
+msgid "%s:%d: invalid variable interpolation at \"%c\""
+msgstr "%s:%d: virheellinen muuttujainterpolaatio osoitteessa ”%c”"
+
+#: src/x-perl.c:1230
+#, c-format
+msgid "%s:%d: invalid interpolation (\"\\L\") of 8bit character \"%c\""
+msgstr "%s:%d: virheellinen 8-bitisen merkin ”%c” interpolaatio (”\\L”)"
+
+#: src/x-perl.c:1247
+#, c-format
+msgid "%s:%d: invalid interpolation (\"\\U\") of 8bit character \"%c\""
+msgstr "%s:%d: virheellinen 8-bittisen merkin ”%c” interpolaatio (”\\U”)"
+
+#: src/x-python.c:279
+msgid ""
+"Please specify the source encoding through --from-code or through a comment\n"
+"as specified in http://www.python.org/peps/pep-0263.html.\n"
+msgstr ""
+"Määritä lähdekoodikoodaus valitsimen --from-code tai kommentin avulla\n"
+"kuten on määritelty asiakirjassa http://www.python.org/peps/pep-0263.html.\n"
+
+#: src/x-python.c:325
+#, c-format
+msgid ""
+"%s:%d: Invalid multibyte sequence.\n"
+"Please specify the correct source encoding through --from-code or through a\n"
+"comment as specified in http://www.python.org/peps/pep-0263.html.\n"
+msgstr ""
+"%s:%d: Virheellinen monitavusekvenssi.\n"
+"Määritä oikea lähdekoodikoodaus valitsimen --from-code tai kommentin avulla\n"
+"kuten on määritelty asiakirjassa http://www.python.org/peps/pep-0263.html.\n"
+
+#: src/x-python.c:342
+#, c-format
+msgid ""
+"%s:%d: Long incomplete multibyte sequence.\n"
+"Please specify the correct source encoding through --from-code or through a\n"
+"comment as specified in http://www.python.org/peps/pep-0263.html.\n"
+msgstr ""
+"%s:%d: Pitkä vaillinainen monitavusekvenssi.\n"
+"Määritä oikea lähdekoodikoodaus valitsimen --from-code tai kommentin avulla\n"
+"kuten on määritelty asiakirjassa http://www.python.org/peps/pep-0263.html.\n"
+
+#: src/x-python.c:355
+#, c-format
+msgid ""
+"%s:%d: Incomplete multibyte sequence at end of file.\n"
+"Please specify the correct source encoding through --from-code or through a\n"
+"comment as specified in http://www.python.org/peps/pep-0263.html.\n"
+msgstr ""
+"%s:%d: Vaillinainen monitavusekvenssi tiedoston lopussa.\n"
+"Määritä oikea lähdekoodikoodaus valitsimen --from-code tai kommentin avulla\n"
+"kuten on määritelty asiakirjassa http://www.python.org/peps/pep-0263.html.\n"
+
+#: src/x-python.c:365
+#, c-format
+msgid ""
+"%s:%d: Incomplete multibyte sequence at end of line.\n"
+"Please specify the correct source encoding through --from-code or through a\n"
+"comment as specified in http://www.python.org/peps/pep-0263.html.\n"
+msgstr ""
+"%s:%d: Vaillinainen monitavusekvenssi rivin lopussa.\n"
+"Määritä oikea lähdekoodikoodaus valitsimen --from-code tai kommentin avulla\n"
+"kuten on määritelty asiakirjassa http://www.python.org/peps/pep-0263.html.\n"
+
+#: src/x-python.c:398
+#, c-format
+msgid ""
+"%s:%d: Invalid multibyte sequence.\n"
+"Please specify the source encoding through --from-code or through a comment\n"
+"as specified in http://www.python.org/peps/pep-0263.html.\n"
+msgstr ""
+"%s:%d: Virheellinen monitavusekvenssi.\n"
+"Määritä lähdekoodikoodaus valitsimen --from-code tai kommentin avulla\n"
+"kuten on määritelty asiakirjassa http://www.python.org/peps/pep-0263.html.\n"
+
+#: src/x-python.c:723
+#, c-format
+msgid "Unknown encoding \"%s\". Proceeding with ASCII instead."
+msgstr "Tuntematon koodaus ”%s”. Jatketaan sen sijaan ASCII-koodauksella."
+
+#: src/x-rst.c:109
+#, c-format
+msgid "%s:%d: invalid string definition"
+msgstr "%s:%d: virheellinen merkkijonomäärittely"
+
+#: src/x-rst.c:173
+#, c-format
+msgid "%s:%d: missing number after #"
+msgstr "%s:%d: numero puuttuu merkin # jäljestä"
+
+#: src/x-rst.c:208
+#, c-format
+msgid "%s:%d: invalid string expression"
+msgstr "%s:%d: virheellinen merkkijonolauseke"
+
+#: src/x-sh.c:1075
+#, c-format
+msgid ""
+"%s:%lu: warning: the syntax $\"...\" is deprecated due to security reasons; "
+"use eval_gettext instead"
+msgstr ""
+"%s:%lu: varoitus: syntaksi $\"...\" on vanhentunut turvallisuussyistä; käytä "
+"sen sijaan funktiota eval_gettext"
+
+#: src/x-vala.c:414
+#, c-format
+msgid "%s:%d: warning: regular expression literal terminated too early"
+msgstr ""
+"%s:%d: varoitus: säännöllisen lausekkeen merkkijonoliteraali päättyi liian "
+"aikaisin"
+
 #: libgettextpo/gettext-po.c:84
 msgid "<unnamed>"
 msgstr "<nimetön>"
 
+#: libgettextpo/markup.c:366 libgettextpo/markup.c:449
+#, fuzzy
+msgid "invalid UTF-8 sequence"
+msgstr "virheellinen ohjainsekvenssi"
+
+#: libgettextpo/markup.c:377
+#, fuzzy, c-format
+msgid "'%s' is not a valid name: %c"
+msgstr "kelvoton Java-luokkanimi: %s"
+
+#: libgettextpo/markup.c:397
+#, fuzzy, c-format
+msgid "'%s' is not a valid name: '%c'"
+msgstr "kelvoton Java-luokkanimi: %s"
+
+#: libgettextpo/markup.c:523 libgettextpo/markup.c:534
+#: libgettextpo/markup.c:559
+#, fuzzy, c-format
+msgid "invalid character reference: %s"
+msgstr "virheellinen ohjainsekvenssi"
+
+#: libgettextpo/markup.c:526
+msgid "not a valid number specification"
+msgstr ""
+
+#: libgettextpo/markup.c:535 libgettextpo/markup.c:606
+msgid "no ending ';'"
+msgstr ""
+
+#: libgettextpo/markup.c:560
+msgid "non-permitted character"
+msgstr ""
+
+#: libgettextpo/markup.c:599
+msgid "empty"
+msgstr ""
+
+#: libgettextpo/markup.c:604
+msgid "unknown"
+msgstr ""
+
+#: libgettextpo/markup.c:608
+#, fuzzy, c-format
+msgid "invalid entity reference: %s"
+msgstr "virheellinen endian-tyyppi: %s"
+
+#: libgettextpo/markup.c:959
+msgid "document must begin with an element"
+msgstr ""
+
+#: libgettextpo/markup.c:994 libgettextpo/markup.c:1301
+#: libgettextpo/markup.c:1332
+#, fuzzy, c-format
+msgid "invalid character after '%s'"
+msgstr "virheellinen argumentti %s kontekstille %s"
+
+#: libgettextpo/markup.c:1031 libgettextpo/markup.c:1107
+#, c-format
+msgid "missing '%c'"
+msgstr ""
+
+#: libgettextpo/markup.c:1140 libgettextpo/markup.c:1176
+#, c-format
+msgid "missing '%c' or '%c'"
+msgstr ""
+
+#: libgettextpo/markup.c:1333
+msgid "a close element name"
+msgstr ""
+
+#: libgettextpo/markup.c:1339 libgettextpo/markup.c:1344
+msgid "element is closed"
+msgstr ""
+
+#: libgettextpo/markup.c:1475
+msgid "empty document"
+msgstr ""
+
+#: libgettextpo/markup.c:1488
+msgid "after '<'"
+msgstr ""
+
+#: libgettextpo/markup.c:1495 libgettextpo/markup.c:1527
+msgid "elements still open"
+msgstr ""
+
+#: libgettextpo/markup.c:1500
+msgid "missing '>'"
+msgstr ""
+
+#: libgettextpo/markup.c:1504
+msgid "inside an element name"
+msgstr ""
+
+#: libgettextpo/markup.c:1509
+#, fuzzy
+msgid "inside an attribute name"
+msgstr "puuttuva suodatinnimi"
+
+#: libgettextpo/markup.c:1513
+msgid "inside an open tag"
+msgstr ""
+
+#: libgettextpo/markup.c:1517
+msgid "after '='"
+msgstr ""
+
+#: libgettextpo/markup.c:1522
+msgid "inside an attribute value"
+msgstr ""
+
+#: libgettextpo/markup.c:1533
+msgid "inside the close tag"
+msgstr ""
+
+#: libgettextpo/markup.c:1537
+msgid "inside a comment or processing instruction"
+msgstr ""
+
+#: libgettextpo/markup.c:1548
+#, c-format
+msgid "document ended unexpectedly: %s"
+msgstr ""
+
+#~ msgid "Missing context for the string extracted from '%s' element"
+#~ msgstr "Puuttuva asiayhteys merkkijonolle, joka poimittiin elementistä ’%s’"
+
+#~ msgid "%s:%lu:%lu: %s"
+#~ msgstr "%s:%lu:%lu: %s"
+
+#~ msgid ""
+#~ "Language \"glade\" is not supported. %s relies on expat.\n"
+#~ "This version was built without expat.\n"
+#~ msgstr ""
+#~ "Kieltä ”glade” ei tueta. %s turvautuu expat-ohjelmaan.\n"
+#~ "Tämä versio on rakennettu ilman expat-ohjelmaa.\n"
+
 #~ msgid "header field '%s' should start at beginning of line\n"
 #~ msgstr "otsakekentän ’%s’ pitäisi alkaa rivin alusta\n"
 
@@ -4486,9 +5021,6 @@ msgstr "<nimetön>"
 #~ msgid "  -u, --unqote                 Do not quote the output\n"
 #~ msgstr "  -u, --unquote                Ei lainausmerkkejä tulosteeseen\n"
 
-#~ msgid "  -V, --version                Output version information\n"
-#~ msgstr "  -V, --version                Näytä versiotiedot\n"
-
 #~ msgid "missing optstring argument"
 #~ msgstr "puuttuva valitsinmerkkijonon argumentti"