diff libcpp/po/fi.po @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents f6334be47118
children 84e7813d76e9
line wrap: on
line diff
--- a/libcpp/po/fi.po	Sun Aug 21 07:07:55 2011 +0900
+++ b/libcpp/po/fi.po	Fri Oct 27 22:46:09 2017 +0900
@@ -1,25 +1,29 @@
 # Finnish messages for cpplib.
-# Copyright © 2010 Free Software Foundation, Inc.
+# Copyright © 2010, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gcc package.
-# Jorma Karvonen <karvonen.jorma@gmail.com>, 2010.
+# Jorma Karvonen <karvonen.jorma@gmail.com>, 2010, 2012-2015.
+# Lauri Nurmi <lanurmi@iki.fi>, 2016.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: cpplib 4.6-b20101218\n"
+"Project-Id-Version: cpplib 7.1-b20170101\n"
 "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2010-12-18 16:00+0000\n"
-"PO-Revision-Date: 2010-12-19 21:07+0200\n"
-"Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
+"POT-Creation-Date: 2017-01-01 00:51+0000\n"
+"PO-Revision-Date: 2017-01-04 02:11+0200\n"
+"Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
+"Language: fi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.8.11\n"
 
 #: charset.c:674
 #, c-format
 msgid "conversion from %s to %s not supported by iconv"
-msgstr "iconv ei tue muunnosta kohteesta %s kohteeseen %s"
+msgstr "iconv ei tue muunnosta %s -> %s"
 
 #: charset.c:677
 msgid "iconv_open"
@@ -28,934 +32,995 @@
 #: charset.c:685
 #, c-format
 msgid "no iconv implementation, cannot convert from %s to %s"
-msgstr "ei iconv-toteutusta, ei voida muuntaa kohteesta %s kohteeseen %s"
+msgstr "ei iconv-toteutusta, muunnosta %s -> %s ei voida suorittaa"
 
 #: charset.c:781
 #, c-format
 msgid "character 0x%lx is not in the basic source character set\n"
-msgstr "merkki 0x%lx ei ole peruslähdemerkkien joukossa\n"
+msgstr "merkki 0x%lx ei ole peruslähdemerkistössä\n"
 
-#: charset.c:798 charset.c:1444
+#: charset.c:798 charset.c:1677
 msgid "converting to execution character set"
-msgstr "muunnetaan suoritusmerkkijoukkoon"
+msgstr "muunnetaan suoritusmerkistöön"
 
 #: charset.c:804
 #, c-format
 msgid "character 0x%lx is not unibyte in execution character set"
-msgstr "merkki 0x%lx ei ole yksitavumerkki suoritusmerkkijoukossa"
+msgstr "merkki 0x%lx ei ole yksitavuinen suoritusmerkistössä"
+
+#: charset.c:1047
+msgid "universal character names are only valid in C++ and C99"
+msgstr "universaalit merkkinimet ovat kelvollisia vai C++:ssa ja C99:ssä"
 
-#  NFKC-muodossa Unicode-merkki ilmaistaan nelinumeroisella heksadesimaaliluvulla
-#: charset.c:928
-#, c-format
-msgid "Character %x might not be NFKC"
-msgstr "Merkki %x ei saattaisi olla Unicode-normalisointimerkkijonomuotoa NFKC"
+#: charset.c:1051
+msgid "C99's universal character names are incompatible with C90"
+msgstr "C99:n universaalit merkkinimet ovat epäyhteensopivia C90:n kanssa"
 
-#: charset.c:994
-msgid "universal character names are only valid in C++ and C99"
-msgstr "yleispätevät merkkinimet ovat kelvollisia vai C++:ssa ja C99:ssä"
-
-#: charset.c:997
+#: charset.c:1054
 #, c-format
 msgid "the meaning of '\\%c' is different in traditional C"
-msgstr "’\\%c’-merkitys on erilainen perinteisessä C:ssä"
+msgstr "’\\%c’:lla on eri merkitys perinteisessä C:ssä"
 
 #  UCN tarkoittaa Universal Character Names ja se sallii minkä tahansa kirjaimen käyttämisen C-lähdekielessä, ei vain englanninkielen kirjainten käytön. Merkki voidaan ilmaista joko kenoviivalla, sitä seuraavalla pienellä u-kirjaimella ja nelinumeroisella heksadesimaaliluvulla tai kenoviivaa seuraavalla suurella U-kirjaimella ja kahdeksannumeroisella heksadesimaaliluvulla.
-#: charset.c:1006
+#: charset.c:1063
 msgid "In _cpp_valid_ucn but not a UCN"
-msgstr "Kohteessa _cpp_valid_ucn mutta ei UCN"
+msgstr "Funktiossa _cpp_valid_ucn mutta ei ole UCN"
 
-#: charset.c:1031
+#: charset.c:1096
 #, c-format
 msgid "incomplete universal character name %.*s"
-msgstr "vaillinainen yleispätevä merkkinimi %.*s"
+msgstr "vaillinainen universaali merkkinimi %.*s"
 
-#: charset.c:1046
+#: charset.c:1111
 #, c-format
 msgid "%.*s is not a valid universal character"
-msgstr "%.*s ei ole kelvollinen yleispätevä merkki"
+msgstr "%.*s ei ole kelvollinen universaali merkki"
 
-#: charset.c:1056 lex.c:1040
+#: charset.c:1121 lex.c:1333
 msgid "'$' in identifier or number"
-msgstr "’$’ tunnisteessa tai numerossa"
+msgstr "’$’ tunnisteessa tai lukuarvossa"
 
-#: charset.c:1066
+#: charset.c:1131
 #, c-format
 msgid "universal character %.*s is not valid in an identifier"
-msgstr "yleispätevä merkki %.*s ei ole kelvollinen tunniste"
+msgstr "universaali merkki %.*s ei ole kelvollinen tunniste"
 
-#: charset.c:1070
+#: charset.c:1135
 #, c-format
 msgid "universal character %.*s is not valid at the start of an identifier"
-msgstr "yleispätevä merkki %.*s ei ole kelvollien tunnisteen alussa"
+msgstr "universaali merkki %.*s ei ole kelvollinen tunnisteen alussa"
 
-#: charset.c:1102 charset.c:1674
+#: charset.c:1181 charset.c:2000
 msgid "converting UCN to source character set"
-msgstr "muunnetaan UCN lähdemerkkijoukoksi"
+msgstr "muunnetaan UCN lähdemerkistöön"
 
-#: charset.c:1106
+#: charset.c:1188
 msgid "converting UCN to execution character set"
-msgstr "muunnetaan UCN suoritusmerkkijoukoksi"
+msgstr "muunnetaan UCN suoritusmerkistöön"
 
-#: charset.c:1178
+#: charset.c:1277
 msgid "the meaning of '\\x' is different in traditional C"
-msgstr "merkin ’\\x’ merkitys on erilainen perinteisessä C:ssä"
+msgstr "’\\%x’:lla on eri merkitys perinteisessä C:ssä"
 
-#: charset.c:1195
+#: charset.c:1302
 msgid "\\x used with no following hex digits"
-msgstr "\\x käytetty ilman seuraavia heksadesimaalinumeroita"
+msgstr "\\x:ää käytetty ilman seuraavia heksanumeroita"
 
-#: charset.c:1202
+#: charset.c:1309
 msgid "hex escape sequence out of range"
-msgstr "heksadesimaali koodinvaihtosekvenssi lukualueen ulkopuolella"
+msgstr "heksadesimaalinen ohjaussarja sallitun välin ulkopuolella"
 
-#: charset.c:1240
+#: charset.c:1361
 msgid "octal escape sequence out of range"
-msgstr "oktaaliluku koodinvaihtosekvenssi lukualueen ulkopuolella"
+msgstr "oktaalinen ohjaussarja sallitun välin ulkopuolella"
 
-#: charset.c:1306
+#: charset.c:1443
 msgid "the meaning of '\\a' is different in traditional C"
-msgstr "merkin ’\\a’ merkitys on erilainen perinteisessä C:ssä"
+msgstr "’\\a’:lla on eri merkitys perinteisessä C:ssä"
 
-#: charset.c:1313
+#: charset.c:1450
 #, c-format
 msgid "non-ISO-standard escape sequence, '\\%c'"
-msgstr "ei-ISO-standardi koodinvaihtosekvenssi ’\\%c’"
+msgstr "ISO-standardiin kuulumaton ohjaussarja ’\\%c’"
 
-#: charset.c:1321
+#: charset.c:1458
 #, c-format
 msgid "unknown escape sequence: '\\%c'"
-msgstr "tuntematon koodinvaihtosekvenssi ’\\%c’"
+msgstr "tuntematon ohjaussarja ’\\%c’"
 
-#: charset.c:1329
+#: charset.c:1466
 #, c-format
 msgid "unknown escape sequence: '\\%s'"
-msgstr "tuntematon koodinvaihtosekvenssi ’\\%s’"
+msgstr "tuntematon ohjaussarja ’\\%s’"
 
-#: charset.c:1336
+#: charset.c:1474
 msgid "converting escape sequence to execution character set"
-msgstr "muunnetaan koodinvaihtosekvenssi suoritusmerkkijoukoksi"
+msgstr "muunnetaan ohjaussarja suoritusmerkistöön"
 
-#: charset.c:1509 charset.c:1573
+#: charset.c:1614
+msgid "missing open quote"
+msgstr "avautuva sulje puuttuu"
+
+#: charset.c:1827 charset.c:1891
 msgid "character constant too long for its type"
-msgstr "merkkivakio on liian pitkä tälle tyypille"
+msgstr "merkkivakio on liian pitkä tyypilleen"
 
-#: charset.c:1512
+#: charset.c:1830
 msgid "multi-character character constant"
-msgstr "monimerkkikirjainvakio"
+msgstr "monimerkkinen merkkivakio"
 
-#: charset.c:1612
+#: charset.c:1931
 msgid "empty character constant"
 msgstr "tyhjä merkkivakio"
 
-#: charset.c:1721
+#: charset.c:2047
 #, c-format
 msgid "failure to convert %s to %s"
-msgstr "virhe muuntaa kohde %s kohteeksi %s"
+msgstr "muunnos %s -> %s epäonnistui"
 
-#: directives.c:223 directives.c:249
+#: directives.c:235 directives.c:278
 #, c-format
 msgid "extra tokens at end of #%s directive"
-msgstr "direktiivin #%s lopussa ylimääräisiä merkkejä"
+msgstr "ylimääräisiä merkkejä #%s-direktiivin lopussa"
 
-#: directives.c:355
+#: directives.c:385
 #, c-format
 msgid "#%s is a GCC extension"
-msgstr "#%s on GCC-laajennus"
+msgstr "#%s on GCC-laajennos"
 
-#: directives.c:360
+#: directives.c:390
 #, c-format
 msgid "#%s is a deprecated GCC extension"
-msgstr "#%s on vanhentunut GCC-laajennus"
+msgstr "#%s on vanhentunut GCC-laajennos"
 
-#: directives.c:373
+#: directives.c:403
 msgid "suggest not using #elif in traditional C"
-msgstr "ei suositella #elif-käyttöä perinteisessä C:ssä"
+msgstr "ehdotetaan #elif:in käytön välttämistä perinteisessä C:ssä"
 
-#: directives.c:376
+#: directives.c:406
 #, c-format
 msgid "traditional C ignores #%s with the # indented"
-msgstr "perinteinen C ohittaa #%s merkillä # sisennettynä"
+msgstr "#%s ohitetaan perinteisessä C:ssä kun # on sisennetty"
 
-#: directives.c:380
+#: directives.c:410
 #, c-format
 msgid "suggest hiding #%s from traditional C with an indented #"
-msgstr "suosittelee piilottamaan #%s perinteisestä C:stä sisennetyllä #-merkillä"
+msgstr "ehdotetaan #%s:n piilottamista perinteiseltä C:ltä sisentämällä #"
 
-#: directives.c:406
+#: directives.c:436
 msgid "embedding a directive within macro arguments is not portable"
-msgstr "direktiivin upottaminen makroargumenttien sisälle ei ole siirrettävä"
+msgstr "direktiivin upottaminen makroargumenttien sisälle ei ole siirrettävää"
 
-#: directives.c:426
+#: directives.c:456
 msgid "style of line directive is a GCC extension"
-msgstr "rividirektiivin tyyli on GCC-laajennus"
+msgstr "rividirektiivin tyyli on GCC-laajennos"
 
-#: directives.c:481
+#: directives.c:537
 #, c-format
 msgid "invalid preprocessing directive #%s"
-msgstr "virheellinen esikäsittelijädirektiivi #%s"
+msgstr "virheellinen esikääntäjän direktiivi #%s"
 
-#: directives.c:549
+#: directives.c:606
 msgid "\"defined\" cannot be used as a macro name"
-msgstr "”defined” ei voida käyttää makronimenä"
+msgstr "”defined” ei ole kelvollinen makron nimi"
 
-#: directives.c:555
+#: directives.c:611
+msgid "\"__has_include__\" cannot be used as a macro name"
+msgstr "”__has_include__” ei ole kelvollinen makron nimi"
+
+#: directives.c:617
 #, c-format
 msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
-msgstr "”%s” ei voida käyttää makronimenä, koska se on operaattori C++:ssa"
+msgstr "”%s” ei ole kelvollinen makron nimi, sillä se on C++:n operaattori"
 
-#: directives.c:558
+#: directives.c:620
 #, c-format
 msgid "no macro name given in #%s directive"
-msgstr "makronimeä ei ole annettu #%s-direktiivissä"
+msgstr "makron nimeä ei ole annettu #%s-direktiivissä"
 
-#: directives.c:561
+#: directives.c:623
 msgid "macro names must be identifiers"
-msgstr "makronimien on oltava tunnisteita"
+msgstr "makrojen nimien on oltava tunnisteita"
 
-#: directives.c:610
+#: directives.c:672 directives.c:677
 #, c-format
 msgid "undefining \"%s\""
-msgstr "määrittelemätön ”%s”"
+msgstr "kumotaan määrittely ”%s”"
 
-#: directives.c:665
+#: directives.c:732
 msgid "missing terminating > character"
-msgstr "puuttuva päättymismerkki >"
+msgstr "päättävä >-merkki puuttuu"
 
-#: directives.c:724
+#: directives.c:791
 #, c-format
 msgid "#%s expects \"FILENAME\" or <FILENAME>"
-msgstr "#%s odottaa ”TIEDOSTONIMI” tai <TIEDOSTONIMI>"
+msgstr "#%s odottaa argumenttia \"TIEDOSTONIMI\" tai <TIEDOSTONIMI>"
 
-#: directives.c:770
+#: directives.c:837
 #, c-format
 msgid "empty filename in #%s"
-msgstr "tyhjä tiedostonimi kohteessa #%s"
+msgstr "tyhjä tiedostonimi direktiivissä #%s"
 
-#: directives.c:780
+#: directives.c:847
 msgid "#include nested too deeply"
-msgstr "#include sisäkkäinen liian syvälle"
+msgstr "liikaa sisäkkäisiä #include:ja"
 
-#: directives.c:821
+#: directives.c:888
 msgid "#include_next in primary source file"
 msgstr "#include_next ensisijaisessa lähdetiedostossa"
 
-#: directives.c:847
+#: directives.c:914
 #, c-format
 msgid "invalid flag \"%s\" in line directive"
 msgstr "virheellinen lippu ”%s” rividirektiivissä"
 
-#: directives.c:907
+#: directives.c:974
 msgid "unexpected end of file after #line"
-msgstr "tiedoston odottamaton loppu #line-direktiivin jälkeen"
+msgstr "odottamaton tiedoston loppu #line-direktiivin jälkeen"
 
-#: directives.c:910
+#: directives.c:977
 #, c-format
 msgid "\"%s\" after #line is not a positive integer"
-msgstr "”%s” direktiivin #line jälkeen ei ole positiivinen kokonaisluku"
+msgstr "#line:n jälkeinen ”%s”  ei ole positiivinen kokonaisluku"
 
-#: directives.c:916 directives.c:918
+#: directives.c:983 directives.c:985
 msgid "line number out of range"
-msgstr "rivinumero lukualueen ulkopuolella"
+msgstr "rivinumero sallitun välin ulkopuolella"
 
-#: directives.c:931 directives.c:1011
+#: directives.c:998 directives.c:1079
 #, c-format
 msgid "\"%s\" is not a valid filename"
 msgstr "”%s” ei ole kelvollinen tiedostonimi"
 
-#: directives.c:971
+#: directives.c:1039
 #, c-format
 msgid "\"%s\" after # is not a positive integer"
-msgstr "”%s” merkin # jälkeen ei ole positiivinen kokonaisluku"
+msgstr "#:n jälkeinen ”%s” ei ole positiivinen kokonaisluku"
 
-#: directives.c:1064 directives.c:1066 directives.c:1068
+#: directives.c:1098
+#, c-format
+msgid "file \"%s\" linemarker ignored due to incorrect nesting"
+msgstr "tiedoston ”%s” rivinmerkitsin jätetään huomiotta virheellisen sisäkkäisyyden vuoksi"
+
+#: directives.c:1157 directives.c:1159 directives.c:1161 directives.c:1747
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: directives.c:1092
+#: directives.c:1185
 #, c-format
 msgid "invalid #%s directive"
 msgstr "virheellinen #%s-direktiivi"
 
-#: directives.c:1155
+#: directives.c:1248
 #, c-format
 msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
-msgstr "rekisteröidään pragmat nimiavaruudessa ”%s” täsmäämättömällä nimilaajennuksella"
+msgstr "rekisteröidään pragmat nimiavaruudessa ”%s” epäsopivalla nimenlavennuksella"
 
-#: directives.c:1164
+#: directives.c:1257
 #, c-format
 msgid "registering pragma \"%s\" with name expansion and no namespace"
-msgstr "rekisteröidään pragma ”%s” nimilaajennuksella ja ilman nimiavaruutta"
+msgstr "rekisteröidään pragma ”%s” nimenlavennuksella ja ilman nimiavaruutta"
 
-#: directives.c:1182
+#: directives.c:1275
 #, c-format
 msgid "registering \"%s\" as both a pragma and a pragma namespace"
-msgstr "rekisteröidään ”%s” sekä pragmana ja pragma-nimiavaruutena"
+msgstr "rekisteröidään ”%s” sekä pragmana että pragma-nimiavaruutena"
 
-#: directives.c:1185
+#: directives.c:1278
 #, c-format
 msgid "#pragma %s %s is already registered"
 msgstr "#pragma %s %s on jo rekisteröity"
 
-#: directives.c:1188
+#: directives.c:1281
 #, c-format
 msgid "#pragma %s is already registered"
 msgstr "#pragma %s on jo rekisteröity"
 
-#: directives.c:1218
+#: directives.c:1311
 msgid "registering pragma with NULL handler"
 msgstr "rekisteröidään pragma NULL-käsittelijällä"
 
-#: directives.c:1430
+#: directives.c:1528
 msgid "#pragma once in main file"
-msgstr "#pragma once main-tiedostossa"
+msgstr "#pragma once päätiedostossa"
 
-#: directives.c:1453
+#: directives.c:1551
 msgid "invalid #pragma push_macro directive"
-msgstr "virheellinen #pragma push_macro-direktiivi"
+msgstr "virheellinen #pragma push_macro -direktiivi"
 
-#: directives.c:1508
+#: directives.c:1606
 msgid "invalid #pragma pop_macro directive"
-msgstr "virheellinen #pragma pop_macro-direktiivi"
+msgstr "virheellinen #pragma pop_macro -direktiivi"
 
 #  poison tarkoittaa, että makroa tai direktiiviä ei koskaan määritellä tai käytetä
-#: directives.c:1563
+#: directives.c:1661
 msgid "invalid #pragma GCC poison directive"
-msgstr "virheelinen #pragma GCC poison-direktiivi"
+msgstr "virheellinen #pragma GCC poison -direktiivi"
 
-#  poison tarkoittaa, että makroa tai direktiiviä ei koskaan määritellä tai käytetä
-#: directives.c:1572
+#: directives.c:1670
 #, c-format
 msgid "poisoning existing macro \"%s\""
-msgstr "kielletään olemassaoleva makro ”%s”"
+msgstr "myrkytetään olemassa oleva makro ”%s”"
 
-#: directives.c:1591
+#: directives.c:1689
 msgid "#pragma system_header ignored outside include file"
-msgstr "#pragma system_header ohitetaan include-tiedoston ulkopuolella"
+msgstr "#pragma system_header ohitetaan otsaketiedoston ulkopuolella"
 
-#: directives.c:1616
+#: directives.c:1714
 #, c-format
 msgid "cannot find source file %s"
-msgstr "ei voi löytää lähdetiedostoa %s"
+msgstr "lähdetiedostoa %s ei löydy"
 
-#: directives.c:1620
+#: directives.c:1718
 #, c-format
 msgid "current file is older than %s"
 msgstr "nykyinen tiedosto on vanhempi kuin %s"
 
-#: directives.c:1805
-msgid "_Pragma takes a parenthesized string literal"
-msgstr "_Pragma ottaa sulkumerkkeillä ympäröidyn merkkijonoliteraalin"
+#: directives.c:1742
+#, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "virheellinen ”#pragma GCC %s” -direktiivi"
 
-#: directives.c:1916
-msgid "#else without #if"
-msgstr "#else ilman #if"
+#: directives.c:1943
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma ottaa sulkeilla ympäröidyn merkkijonoliteraalin"
 
-#: directives.c:1921
-msgid "#else after #else"
-msgstr "#else jälkeen #else"
+#: directives.c:2064
+msgid "#else without #if"
+msgstr "#else ilman #if:iä"
 
-#: directives.c:1923 directives.c:1956
+#: directives.c:2069
+msgid "#else after #else"
+msgstr "#else #else:n jälkeen"
+
+#: directives.c:2071 directives.c:2104
 msgid "the conditional began here"
-msgstr "ehdollinen alkoi tässä"
+msgstr "ehtolause alkoi tästä"
 
-#: directives.c:1949
+#: directives.c:2097
 msgid "#elif without #if"
-msgstr "#elif ilman #if"
+msgstr "#elif ilman #if:iä"
 
-#: directives.c:1954
+#: directives.c:2102
 msgid "#elif after #else"
-msgstr "#elif jälkeen #else"
+msgstr "#elif #else:n jälkeen"
 
-#: directives.c:1992
+#: directives.c:2133
 msgid "#endif without #if"
-msgstr "#endif ilman #if"
+msgstr "#endif ilman #if:iä"
 
-#: directives.c:2072
+#: directives.c:2213
 msgid "missing '(' after predicate"
-msgstr "merkki ’(’ puuttuu predikaatin jälkeen"
+msgstr "’(’ puuttuu predikaatin jäljestä"
 
-#: directives.c:2087
+#: directives.c:2228
 msgid "missing ')' to complete answer"
-msgstr "merkki ’)’ puuttuu täydelliseen vastaukseen"
+msgstr "’)’ puuttuu vastauksen täydentämisestä"
 
-#: directives.c:2107
+#: directives.c:2248
 msgid "predicate's answer is empty"
 msgstr "predikaatin vastaus on tyhjä"
 
-#: directives.c:2134
+#: directives.c:2275
 msgid "assertion without predicate"
-msgstr "assertion-toiminto ilman predikaattia"
+msgstr "väite ilman predikaattia"
 
-#: directives.c:2137
+#: directives.c:2278
 msgid "predicate must be an identifier"
 msgstr "predikaatin on oltava tunniste"
 
-#: directives.c:2223
+#: directives.c:2364
 #, c-format
 msgid "\"%s\" re-asserted"
-msgstr "”%s” uudelleen assert-toimintoon"
+msgstr "”%s” väitetty uudelleen"
 
-#: directives.c:2514
+#: directives.c:2656
 #, c-format
 msgid "unterminated #%s"
 msgstr "päättämätön #%s"
 
-#: directives-only.c:222 lex.c:2074 traditional.c:163
+#: directives-only.c:221 lex.c:2819 traditional.c:167
 msgid "unterminated comment"
 msgstr "päättämätön kommentti"
 
-#: errors.c:235
-msgid "stdout"
-msgstr "vakiotuloste"
-
-#: errors.c:237
+#: errors.c:300
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: expr.c:282
-msgid "too many decimal points in number"
-msgstr "liian monta desimaalipistettä numerossa"
-
-#: expr.c:311 expr.c:396
-msgid "fixed-point constants are a GCC extension"
-msgstr "kiintopistevakiot ovat GCC-laajennus"
+#: errors.c:312
+msgid "stdout"
+msgstr "vakiotuloste"
 
-#: expr.c:324
-#, c-format
-msgid "invalid digit \"%c\" in binary constant"
-msgstr "virheellinen numero ”%c” binäärivakiossa"
+#: expr.c:601 expr.c:718
+msgid "fixed-point constants are a GCC extension"
+msgstr "kiintopistevakiot ovat GCC-laajennos"
 
-#: expr.c:326
-#, c-format
-msgid "invalid digit \"%c\" in octal constant"
-msgstr "virheellinen numero ”%c” oktaalivakiossa"
-
-#: expr.c:334
+#: expr.c:626
 msgid "invalid prefix \"0b\" for floating constant"
 msgstr "virheellinen etuliite ”0b” liukulukuvakiolle"
 
-#: expr.c:339
-msgid "no digits in hexadecimal floating constant"
-msgstr "ei lukuja heksadesimaalisessa liukulukuvakiossa"
-
-#: expr.c:343
-msgid "use of C99 hexadecimal floating constant"
-msgstr "käytä C99 heksadesimaaliliukulukuvakiota"
+#: expr.c:639
+msgid "use of C++1z hexadecimal floating constant"
+msgstr "C++1z:n heksadesimaaliliukulukuvakion käyttö"
 
-#: expr.c:352
-msgid "exponent has no digits"
-msgstr "eksponentilla ei ole numeoita"
+#: expr.c:642
+msgid "use of C99 hexadecimal floating constant"
+msgstr "C99:n heksadesimaaliliukulukuvakion käyttö"
 
-#: expr.c:359
-msgid "hexadecimal floating constants require an exponent"
-msgstr "heksadesimaalinen liukulukuvakio vaatii eksponentin"
-
-#: expr.c:365
+#: expr.c:686
 #, c-format
 msgid "invalid suffix \"%.*s\" on floating constant"
-msgstr "virheellinen loppuliite ”%.*s” liukulukuvakiossa"
+msgstr "virheellinen loppuliite ”%.*s” liukulukuvakiolla"
 
-#: expr.c:375 expr.c:425
+#: expr.c:697 expr.c:757
 #, c-format
 msgid "traditional C rejects the \"%.*s\" suffix"
-msgstr "perinteinen C hylkää ”%.*s”-loppuliitteen"
+msgstr "perinteinen C ei salli ”%.*s”-loppuliitettä"
 
-#: expr.c:383
+#: expr.c:705
 msgid "suffix for double constant is a GCC extension"
-msgstr "loppuliite double-vakiolle on GCC-laajennus"
+msgstr "loppuliite double-vakiolle on GCC-laajennos"
 
-#: expr.c:389
+#: expr.c:711
 #, c-format
 msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
-msgstr "virheellinen loppuliite ”%.*s” heksadesimaalisessa liukulukuvakiossa"
+msgstr "virheellinen loppuliite ”%.*s” heksadesimaalisella liukulukuvakiolla"
 
-#: expr.c:400
+#: expr.c:722
 msgid "decimal float constants are a GCC extension"
-msgstr "desimaaliliukulukuvakiot ovat GCC-laajennus"
+msgstr "desimaali-float-vakiot ovat GCC-laajennos"
 
-#: expr.c:410
+#: expr.c:740
 #, c-format
 msgid "invalid suffix \"%.*s\" on integer constant"
-msgstr "virheellinen loppuliite ”%.*s” kokonaislukuvakiossa"
+msgstr "virheellinen loppuliite ”%.*s” kokonaislukuvakiolla"
 
-#: expr.c:433
-msgid "use of C++0x long long integer constant"
-msgstr "käytä ”C++0x long long”-kokonaislukuvakiota"
+#: expr.c:765
+msgid "use of C++11 long long integer constant"
+msgstr "C++11:n long long -kokonaislukuvakion käyttö"
 
-#: expr.c:434
+#: expr.c:766
 msgid "use of C99 long long integer constant"
-msgstr "käytä ”C99 long long”-kokonaislukuvakiota"
+msgstr "C99:n long long -kokonaislukuvakion käyttö"
 
-#: expr.c:448
+#: expr.c:782
 msgid "imaginary constants are a GCC extension"
-msgstr "imaginaarivakiot ovat GCC-laajennus"
+msgstr "imaginäärivakiot ovat GCC-laajennos"
 
-#: expr.c:451
+#: expr.c:788
+msgid "binary constants are a C++14 feature or GCC extension"
+msgstr "binäärivakiot ovat C++14:n ominaisuus tai GCC-laajennos"
+
+#: expr.c:790
 msgid "binary constants are a GCC extension"
-msgstr "binäärivakiot ovat GCC-laajennus"
+msgstr "binäärivakiot ovat GCC-laajennos"
 
-#: expr.c:544
+#: expr.c:885
 msgid "integer constant is too large for its type"
-msgstr "kokonaislukuvakio on liian iso sen tyypiksi"
+msgstr "kokonaislukuvakio on liian suuri tyypilleen"
 
-#: expr.c:575
+#: expr.c:916
 msgid "integer constant is so large that it is unsigned"
-msgstr "kokonaislukuvakio on niin iso, että se on etumerkitön"
+msgstr "kokonaislukuvakio on niin suuri, että se on etumerkitön"
 
-#: expr.c:670
+#: expr.c:1011
 msgid "missing ')' after \"defined\""
-msgstr "merkki ’)’ puuttuu ”defined”-merkkijonon jäljestä"
+msgstr "’)’ puuttuu ”defined”-sanan jäljestä"
 
-#: expr.c:677
+#: expr.c:1018
 msgid "operator \"defined\" requires an identifier"
 msgstr "operaattori ”defined” vaatii tunnisteen"
 
-#: expr.c:685
+#: expr.c:1026
 #, c-format
 msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
-msgstr "(”%s” on vaihtoehtoinen merkkijono ”%s” C++:ssa)"
-
-#: expr.c:695
-msgid "this use of \"defined\" may not be portable"
-msgstr "tämä ”defined”-käyttö ei ehkä ole siirrettävä"
+msgstr "(”%s” on vaihtoehtoinen symboli ”%s”:lle C++:ssa)"
 
-#: expr.c:751
-msgid "floating constant in preprocessor expression"
-msgstr "liukulukuvakio esikäsittelijälausekkeessa"
+#: expr.c:1038
+msgid "this use of \"defined\" may not be portable"
+msgstr "tämä ”defined”-sanan käyttö ei ehkä ole siirrettävää"
 
-#: expr.c:757
-msgid "imaginary number in preprocessor expression"
-msgstr "imaginaariluku esikääntäjälausekkeessa"
+#: expr.c:1098
+msgid "user-defined literal in preprocessor expression"
+msgstr "käyttäjän määrittelemä literaali esikääntäjän lausekkeessa"
 
-#: expr.c:804
-#, c-format
-msgid "\"%s\" is not defined"
-msgstr "”%s” ei ole määritelty"
+#: expr.c:1103
+msgid "floating constant in preprocessor expression"
+msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: expr.c:816
-msgid "assertions are a GCC extension"
-msgstr "assertion-toiminnot ovat GCC-laajennus"
+#: expr.c:1109
+msgid "imaginary number in preprocessor expression"
+msgstr "imaginääriluku esikääntäjän lausekkeessa"
 
-#: expr.c:819
-msgid "assertions are a deprecated extension"
-msgstr "assertion-toiminnot ovat vanhentunut laajennus"
-
-#: expr.c:952 expr.c:981
+#: expr.c:1162
 #, c-format
-msgid "missing binary operator before token \"%s\""
-msgstr "puuttua binäärioperaattori ennen merkkijonoa ”%s”"
+msgid "\"%s\" is not defined, evaluates to 0"
+msgstr "”%s” on määrittelemättä, evaluoituu 0:ksi"
 
-#: expr.c:972
-#, c-format
-msgid "token \"%s\" is not valid in preprocessor expressions"
-msgstr "merkkijono ”%s” ei ole kelvollinen esikäsittelijälausekkeissa"
-
-#: expr.c:989
-msgid "missing expression between '(' and ')'"
-msgstr "puuttuva lauseke merkkien ’(’ ja ’)’ välillä"
+#: expr.c:1175
+msgid "assertions are a GCC extension"
+msgstr "väitteet ovat GCC-laajennos"
 
-#: expr.c:992
-#, c-format
-msgid "%s with no expression"
-msgstr "%s ilman lauseketta"
-
-#: expr.c:995
-#, c-format
-msgid "operator '%s' has no right operand"
-msgstr "operaattorilla ’%s’ ei ole oikeaa operandia"
+#: expr.c:1178
+msgid "assertions are a deprecated extension"
+msgstr "väitteet ovat vanhentunut laajennos"
 
-#: expr.c:1000
-#, c-format
-msgid "operator '%s' has no left operand"
-msgstr "operaattorilla ’%s’ ei ole vasenta operandia"
-
-#: expr.c:1026
-msgid " ':' without preceding '?'"
-msgstr " ’:’ ilman edeltävää ’?’"
-
-#: expr.c:1054
+# %s on #if tai #elif
+#: expr.c:1424
 #, c-format
 msgid "unbalanced stack in %s"
-msgstr "tasapainoton pino kohteessa %s"
+msgstr "tasapainoton pino %s:ssä"
 
-#: expr.c:1074
+#: expr.c:1444
 #, c-format
 msgid "impossible operator '%u'"
 msgstr "mahdoton operaattori ’%u’"
 
-#: expr.c:1175
+#: expr.c:1545
 msgid "missing ')' in expression"
-msgstr "merkki ’)’ puuttuu lausekkeessa"
+msgstr "’)’ puuttuu lausekkeesta"
 
-#: expr.c:1204
+#: expr.c:1574
 msgid "'?' without following ':'"
-msgstr "’?’ ilman seuraavaa ’:’"
+msgstr "’?’ ilman sitä seuraavaa ’:’-merkkiä"
 
-#: expr.c:1214
+#: expr.c:1584
 msgid "integer overflow in preprocessor expression"
-msgstr "kokonaislukuylivuoto esikääntäjälausekkeessa"
+msgstr "kokonaislukuylivuoto esikääntäjän lausekkeessa"
 
-#: expr.c:1219
+#: expr.c:1589
 msgid "missing '(' in expression"
-msgstr "merkki ’(’ puuttuu lausekkeessa"
+msgstr "’(’ puuttuu lausekkeesta"
 
-#: expr.c:1251
+#: expr.c:1621
 #, c-format
 msgid "the left operand of \"%s\" changes sign when promoted"
-msgstr "vasen ”%s”-operandi vaihtaa merkkiä, kun korotettiin"
+msgstr "”%s”:n vasen operandi vaihtaa ylennettäessä etumerkkiään"
 
-#: expr.c:1256
+#: expr.c:1626
 #, c-format
 msgid "the right operand of \"%s\" changes sign when promoted"
-msgstr "oikea ”%s”-operandi vaihtaa merkkiä, kun korotettiin"
+msgstr "”%s”:n oikea operandi vaihtaa ylennettäessä etumerkkiään"
 
-#: expr.c:1515
+#: expr.c:1885
 msgid "traditional C rejects the unary plus operator"
-msgstr "perinteinen C hylkää unaariplus-operaattorin"
+msgstr "perinteinen C ei salli unaarista plus-operaattoria"
 
-#: expr.c:1598
+#: expr.c:1983
 msgid "comma operator in operand of #if"
-msgstr "pilkkuoperaattori #if-operandissa"
+msgstr "pilkkuoperaattori #if:in operandissa"
 
-#: expr.c:1734
+#: expr.c:2119
 msgid "division by zero in #if"
-msgstr "jako nollalla #if-lauseessa"
+msgstr "jako nollalla #if-ehdossa"
 
-#: files.c:463
-msgid "NULL directory in find_file"
-msgstr "NULL-hakemistto kohteessa find_file"
+#: expr.c:2216
+msgid "operator \"__has_include__\" requires a header string"
+msgstr "operaattori ”__has_include__” vaatii otsakemerkkijonon"
 
-#: files.c:500
+#: expr.c:2232
+msgid "missing ')' after \"__has_include__\""
+msgstr "’)’ puuttuu ”__has_include__”-sanan jäljestä"
+
+#: files.c:573
 msgid "one or more PCH files were found, but they were invalid"
 msgstr "yksi tai useampia PCH-tiedostoja löytyi, mutta ne olivat virheellisiä"
 
-#: files.c:503
+#: files.c:576
 msgid "use -Winvalid-pch for more information"
-msgstr "käytä lisätietoja varten valitsinta -Winvalid-pch"
-
-#: files.c:594
-#, c-format
-msgid "%s is a block device"
-msgstr "%s on lohkolaite"
+msgstr "käytä valitsinta -Winvalid-pch lisätietojen saamiseksi"
 
-#: files.c:611
-#, c-format
-msgid "%s is too large"
-msgstr "%s on liian laaja"
-
-#: files.c:646
-#, c-format
-msgid "%s is shorter than expected"
-msgstr "%s on lyhyempi kuin otaksuttiin"
-
-#: files.c:881
+#: files.c:981
 #, c-format
 msgid "no include path in which to search for %s"
-msgstr "ei include-polkua, jossa etsiä kohdetta %s"
+msgstr "ei include-polkua, josta etsiä tiedostoa %s"
 
-#: files.c:1307
+#: files.c:1441
 msgid "Multiple include guards may be useful for:\n"
-msgstr "Useat include-vartijat saattavat olla hyödyllisiä kohteelle:\n"
+msgstr "Monen includen estimet voivat olla hyödyllisiä tiedostoille:\n"
 
-#: init.c:489
+#: init.c:553
 msgid "cppchar_t must be an unsigned type"
-msgstr "cppchar_t on oltava etumerkitön tyyppi"
+msgstr "cppchar_t:n on oltava etumerkitön tyyppi"
 
-#: init.c:493
+#: init.c:557
 #, c-format
 msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
-msgstr "esikääntäjäaritmetiikan maksimitarkkuus on %lu bittiä; kohde vaatii %lu bittiä"
+msgstr "esikääntäjäaritmetiikan enimmäistarkkuus on %lu bittiä; kohde vaatii %lu bittiä"
 
-#: init.c:500
+#: init.c:564
 msgid "CPP arithmetic must be at least as precise as a target int"
-msgstr "CPP-aritmetiikan on oltava vähintään yhtä tarkkaa kuin kohteen int-tyypin"
+msgstr "CPP-aritmetiikan on oltava vähintään yhtä tarkka kuin kohteen int-tyypin"
 
-#: init.c:503
+#: init.c:567
 msgid "target char is less than 8 bits wide"
-msgstr "kohdemerkki on pienempi kuin 8 bittiä leveä"
+msgstr "kohteen char-tyyppi on alle 8 bittiä leveä"
 
-#: init.c:507
+#: init.c:571
 msgid "target wchar_t is narrower than target char"
 msgstr "kohteen wchar_t-tyyppi on kapeampi kuin kohteen char-tyyppi"
 
-#: init.c:511
+#: init.c:575
 msgid "target int is narrower than target char"
-msgstr "kohteen kokonaislukutyyppi on kapeampi kuin kohteen char-tyyppi"
+msgstr "kohteen int-tyyppi on kapeampi kuin kohteen char-tyyppi"
 
-#: init.c:516
+#: init.c:580
 msgid "CPP half-integer narrower than CPP character"
 msgstr "CPP-puolikokonaisluku on kapeampi kuin CPP-merkki"
 
-#: init.c:520
+#: init.c:584
 #, c-format
 msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
-msgstr "CPP tällä tietokoneella ei voi käsitellä wide-merkkivakioita, jotka ovat yli %lu bittiä, mutta kohde vaatii %lu bittiä"
+msgstr "tämän koneen CPP ei pysty käsittelemään yli %lu-bittisiä leveämerkkivakioita, mutta kohde vaatii %lu bittiä"
 
-#: lex.c:834
+#: lex.c:1126
 msgid "backslash and newline separated by space"
-msgstr "kenoviiva ja rivinvaihtomerkki eroteltu välilyönnillä"
+msgstr "kenoviiva ja rivinvaihto erotettu välilyönnillä"
 
-#: lex.c:839
+#: lex.c:1131
 msgid "backslash-newline at end of file"
 msgstr "kenoviiva-rivinvaihto tiedoston lopussa"
 
-#: lex.c:855
+#: lex.c:1147
 #, c-format
 msgid "trigraph ??%c converted to %c"
-msgstr "trigraph-merkki ??%c muunnettu merkiksi %c"
+msgstr "kolmoismerkki ??%c muunnettu merkiksi %c"
 
-#: lex.c:863
+#: lex.c:1155
 #, c-format
 msgid "trigraph ??%c ignored, use -trigraphs to enable"
-msgstr "trigraph-merkki ??%c ohitettiin, käytä valitsinta -trigraphs merkkien käyttöönottamiseksi"
+msgstr "kolmoismerkki ??%c ohitettiin, ota käyttöön valitsimella -trigraphs"
 
-#: lex.c:912
+#: lex.c:1204
 msgid "\"/*\" within comment"
 msgstr "”/*” kommentin sisällä"
 
-#: lex.c:970
+# Mahdolliset arvot: "form feed", "vertical tab", eivät käännettäviä.
+#: lex.c:1262
 #, c-format
 msgid "%s in preprocessing directive"
-msgstr "%s esikäsittelijädirektiivissä"
+msgstr "%s esikääntäjän direktiivissä"
 
-#: lex.c:979
+#: lex.c:1271
 msgid "null character(s) ignored"
-msgstr "null-merkkejä ei oteta huomioon"
+msgstr "null-merkit ohitetaan"
 
 #  NFKC-muodossa Unicode-merkki ilmaistaan nelinumeroisella heksadesimaaliluvulla
-#: lex.c:1016
+#: lex.c:1308
 #, c-format
 msgid "`%.*s' is not in NFKC"
-msgstr "”%.*s” ei ole Unicode-normalisointimerkkijonomuodossa NFKC"
+msgstr "”%.*s” ei ole NFKC-muodossa"
 
 #  NFC-muodossa Unicode-merkki ilmaistaan nelinumeroisella heksadesimaaliluvulla
-#: lex.c:1019
+#: lex.c:1311
 #, c-format
 msgid "`%.*s' is not in NFC"
-msgstr "”%.*s” ei ole Unicode-normalisointimerkkijonomuodossa NFC"
+msgstr "”%.*s” ei ole NFC-muodossa"
 
 #  poison tarkoittaa, että makroa tai direktiiviä ei koskaan määritellä tai käytetä
-#: lex.c:1087 lex.c:1164
+#: lex.c:1381 lex.c:1470
 #, c-format
 msgid "attempt to use poisoned \"%s\""
-msgstr "yritys käyttää poison-kiellettyä makroa ”%s”"
+msgstr "myrkytetyn makron ”%s” käyttöyritys"
 
-#: lex.c:1095 lex.c:1172
+#  Variadic-makro on sellainen makro, jonka argumenttien lukumäärä voi vaihdella.
+#: lex.c:1391 lex.c:1480
+msgid "__VA_ARGS__ can only appear in the expansion of a C++11 variadic macro"
+msgstr "__VA_ARGS__ voi esiintyä vain C++11:n variadisen makron lavennoksessa"
+
+#  Variadic-makro on sellainen makro, jonka argumenttien lukumäärä voi vaihdella.
+#: lex.c:1395 lex.c:1484
 msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
-msgstr "__VA_ARGS__ voi vain esiintyä C99 variadic-makrolaajennuksessa"
+msgstr "__VA_ARGS__ voi esiintyä vain C99:n variadisen makron lavennoksessa"
 
-#: lex.c:1101 lex.c:1178
+#: lex.c:1402 lex.c:1491
 #, c-format
 msgid "identifier \"%s\" is a special operator name in C++"
-msgstr "tunniste ”%s” on erikoisoperaattorinimi C++:ssa"
+msgstr "tunniste ”%s” on operaattorin nimi C++:ssa"
 
-#: lex.c:1323
+#: lex.c:1781
 msgid "raw string delimiter longer than 16 characters"
-msgstr "raakamerkkijonoerotin pitempi kuin 16 merkkiä"
+msgstr "raa’an merkkijonon erotin pitempi kuin 16 merkkiä"
 
-#: lex.c:1326
+#: lex.c:1785
+msgid "invalid new-line in raw string delimiter"
+msgstr "virheellinen rivinvaihto raa’an merkkijonon erottimessa"
+
+#: lex.c:1789
 #, c-format
 msgid "invalid character '%c' in raw string delimiter"
-msgstr "virheellinen merkki ’%c’ raakamerkkijonoerottimessa"
+msgstr "virheellinen merkki ’%c’ raa’an merkkijonon erottimessa"
 
-#: lex.c:1447 lex.c:1469
+#: lex.c:1838 lex.c:1860
 msgid "unterminated raw string"
-msgstr "päättämätön raakamerkkijono"
+msgstr "päättämätön raaka merkkijono"
 
-#: lex.c:1484 lex.c:1583
+#: lex.c:1881 lex.c:2011
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr "literaalissa virheellinen jälkiliite; C++11 vaatii välilyönnin literaalin ja merkkijonomakron väliin"
+
+#: lex.c:1993
 msgid "null character(s) preserved in literal"
-msgstr "null-merkit säilytetään literaaleissa"
+msgstr "null-merkit säilytetään literaalissa"
 
-#: lex.c:1586
+#: lex.c:1996
 #, c-format
 msgid "missing terminating %c character"
-msgstr "puuttuva päättymismerkki %c"
+msgstr "päättävä merkki %c puuttuu"
 
-#: lex.c:2085
+#: lex.c:2029
+msgid "C++11 requires a space between string literal and macro"
+msgstr "C++11 vaatii välilyönnin literaalin ja merkkijonomakron väliin"
+
+#: lex.c:2833 lex.c:2867
 msgid "C++ style comments are not allowed in ISO C90"
-msgstr "C++-tyyliset kommentit eivät ole sallittuja ISO C90-standardissa"
+msgstr "C++-tyyliset kommentit eivät ole sallittuja ISO C90:ssä"
 
-#: lex.c:2087
+#: lex.c:2835 lex.c:2846 lex.c:2869
 msgid "(this will be reported only once per input file)"
-msgstr "(tästä ilmoitetaan vain kerran per syötetiedosto)"
+msgstr "(tästä ilmoitetaan vain kerran syötetiedostoa kohden)"
 
-#: lex.c:2092
+#: lex.c:2844
+msgid "C++ style comments are incompatible with C90"
+msgstr "C++-tyyliset kommentit ovat epäyhteensopivia C90:n kanssa"
+
+#: lex.c:2875
 msgid "multi-line comment"
 msgstr "monirivinen kommentti"
 
-#: lex.c:2412
+#: lex.c:3248
 #, c-format
 msgid "unspellable token %s"
-msgstr "tavaamaton merkkijono %s"
+msgstr "kirjoitusasuton symboli %s"
 
-#: macro.c:87
+#: macro.c:203
 #, c-format
 msgid "macro \"%s\" is not used"
-msgstr "makroa ”%s” ei ole käytetty"
+msgstr "makroa ”%s” ei käytetä"
 
-#: macro.c:126 macro.c:321
+#: macro.c:242 macro.c:488
 #, c-format
 msgid "invalid built-in macro \"%s\""
 msgstr "virheellinen sisäinen makro ”%s”"
 
-#: macro.c:160
-msgid "could not determine file timestamp"
-msgstr "ei voitu ottaa selvää tiedoston aikaleimasta"
+#: macro.c:249 macro.c:349
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr "makro ”%s” saattaa estää toistettavat käännökset"
 
-#: macro.c:256
-msgid "could not determine date and time"
-msgstr "ei voitu ottaa selvää päivämäärästä ja ajasta"
+#: macro.c:280
+msgid "could not determine file timestamp"
+msgstr "ei voitu selvittää tiedoston aikaleimaa"
 
-#: macro.c:272
-msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
-msgstr "__COUNTER__ laajennettu direktiivin sisällä valitsimella -fdirectives-only"
+#: macro.c:395
+msgid "could not determine date and time"
+msgstr "ei voitu selvittää päivämäärää ja aikaa"
 
-#: macro.c:430
+#: macro.c:411
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ lavennettu direktiivin sisällä valitsimella -fdirectives-only"
+
+#: macro.c:599
 msgid "invalid string literal, ignoring final '\\'"
-msgstr "virheellinen merkijonoliteraali, ei oteta huomioon lopun ’\\’ merkkejä"
+msgstr "virheellinen merkijonoliteraali, ohitetaan viimeinen ’\\’"
 
-#: macro.c:490
+#: macro.c:661
 #, c-format
 msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
-msgstr "liittämällä ”%s” ja ”%s” ei anneta kelvollista esikääntäjämerkkijonoa"
+msgstr "liittämällä ”%s” ja ”%s” ei saada kelvollista esikääntäjän symbolia"
+
+#  Variadic-makro on sellainen makro, jonka argumenttien lukumäärä voi vaihdella.
+#: macro.c:785
+msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro"
+msgstr "ISO C++11 vaatii vähintään yhden argumentin variadisen makron ”...”:lle"
 
-#: macro.c:565
-msgid "ISO C99 requires rest arguments to be used"
-msgstr "ISO C99 vaatii, että loput argumentit käytetään"
+#  Variadic-makro on sellainen makro, jonka argumenttien lukumäärä voi vaihdella.
+#: macro.c:789
+msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro"
+msgstr "ISO C99 vaatii vähintään yhden argumentin variadisen makron ”...”:lle"
 
-#: macro.c:570
+#: macro.c:796
 #, c-format
 msgid "macro \"%s\" requires %u arguments, but only %u given"
 msgstr "makro ”%s” vaatii %u argumenttia, mutta vain %u on annettu"
 
-#: macro.c:575
+#: macro.c:801
 #, c-format
 msgid "macro \"%s\" passed %u arguments, but takes just %u"
-msgstr "makrolle ”%s” välitetty %u argumenttia, mutta se ottaa vain %u"
+msgstr "makrolle ”%s” annettu %u argumenttia, mutta se ottaa vain %u"
 
-#: macro.c:734 traditional.c:681
+#: macro.c:995 traditional.c:819
 #, c-format
 msgid "unterminated argument list invoking macro \"%s\""
-msgstr "päättämätön argumenttiluettelo kutsuttaessa makroa ”%s”"
+msgstr "päättämätön argumenttiluettelo ”%s”-makron kutsussa"
 
-#: macro.c:866
+#: macro.c:1146
 #, c-format
 msgid "function-like macro \"%s\" must be used with arguments in traditional C"
-msgstr "funktion kaltaista makroa ”%s” on käytettävä argumenteilla perinteisessä C:ssä "
+msgstr "funktion kaltaista makroa ”%s” on käytettävä argumenttien kanssa perinteisessä C:ssä"
 
-#: macro.c:1040
+#: macro.c:1836
 #, c-format
-msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
-msgstr "kutsutaan makron %s argumenttia %d: tyhjät makroargumentit ovat määrittelemättömiä ISO C90:ssä ja ISO C++98:ssa"
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98"
+msgstr "%s-makron argumentin %d kutsu: tyhjät makroargumentit ovat määrittelemättömiä ISO C++98:ssa"
 
-#: macro.c:1507
+#: macro.c:1844 macro.c:1853
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90"
+msgstr "%s-makron argumentin %d kutsu: tyhjät makroargumentit ovat määrittelemättömiä ISO C90:ssä"
+
+#: macro.c:2817
 #, c-format
 msgid "duplicate macro parameter \"%s\""
-msgstr "kaksoiskappale makroparametri ”%s”"
+msgstr "kahdenkertainen makroparametri ”%s”"
 
-#: macro.c:1553
+#: macro.c:2866
 #, c-format
 msgid "\"%s\" may not appear in macro parameter list"
-msgstr "”%s” ei ehkä ilmene makroparametriluettelossa"
+msgstr "”%s” ei saa esiintyä makron parametriluettelossa"
 
-#: macro.c:1561
+#: macro.c:2874
 msgid "macro parameters must be comma-separated"
-msgstr "makroparametrien on oltava pilkulla eroteltuja"
+msgstr "makron parametrien on oltava pilkuin eroteltuja"
 
-#: macro.c:1578
+#: macro.c:2893
 msgid "parameter name missing"
-msgstr "parametrinimi puuttuu"
+msgstr "parametrin nimi puuttuu"
 
-#  Variadic-makro on sellainen makro, jonka argumenttien lukumäärä voi vaihdella.
-#: macro.c:1596
+#: macro.c:2914
+msgid "anonymous variadic macros were introduced in C++11"
+msgstr "anonyymit variadiset makrot esiteltiin C++11:ssä"
+
+#: macro.c:2918 macro.c:2923
 msgid "anonymous variadic macros were introduced in C99"
-msgstr "anonyymit variadic-makrot esiteltiin C99:ssä"
+msgstr "anonyymit variadiset makrot esiteltiin C99:ssä"
 
-#  Variadic-makro on sellainen makro, joka hyväksyy vaihtelevan määrän argumentteja.
-#: macro.c:1601
+#: macro.c:2930
+msgid "ISO C++ does not permit named variadic macros"
+msgstr "ISO C++ ei salli nimettyjä variadisia makroja"
+
+#: macro.c:2933
 msgid "ISO C does not permit named variadic macros"
-msgstr "ISO C ei salli nimettyjä variadic-makroja"
+msgstr "ISO C ei salli nimettyjä variadisia makroja"
 
-#: macro.c:1610
+#: macro.c:2943
 msgid "missing ')' in macro parameter list"
-msgstr "puuttuu ’)’ makroparametriluettelosta"
+msgstr "’)’ puuttuu makron parametriluettelosta"
 
-#: macro.c:1659
+#: macro.c:2994
 msgid "'##' cannot appear at either end of a macro expansion"
-msgstr "’##’ ei voi esiintyä makrolaajennuksen kummassakaan päässä"
+msgstr "”##” ei voi esiintyä makrolavennuksen kummassakaan päässä"
 
-#: macro.c:1694
+#: macro.c:3031
+msgid "ISO C++11 requires whitespace after the macro name"
+msgstr "ISO C++11 vaatii tyhjemerkin makron nimen jälkeen"
+
+#: macro.c:3034
 msgid "ISO C99 requires whitespace after the macro name"
-msgstr "ISO C99 vaatii tyhjemerkin makronimen jälkeen"
+msgstr "ISO C99 vaatii tyhjemerkin makron nimen jälkeen"
 
-#: macro.c:1718
+#: macro.c:3059
 msgid "missing whitespace after the macro name"
-msgstr "puuttuu tyhjemerkki makronimen jälkeen"
+msgstr "tyhjemerkki puuttuu makron nimen jäljestä"
 
-#: macro.c:1752
+#: macro.c:3093
 msgid "'#' is not followed by a macro parameter"
-msgstr "’#’-merkkiä seuraa makroparametri"
+msgstr "”#” ilman sitä seuraavaa makroparametria"
 
-#: macro.c:1910
+#: macro.c:3254
 #, c-format
 msgid "\"%s\" redefined"
-msgstr "”%s” on määritelty uudelleen"
+msgstr "”%s” määritelty uudelleen"
 
-#: macro.c:1916
+#: macro.c:3259
 msgid "this is the location of the previous definition"
 msgstr "tämä on edellisen määrittelyn sijainti"
 
-#: macro.c:1977
+#: macro.c:3320
 #, c-format
 msgid "macro argument \"%s\" would be stringified in traditional C"
-msgstr "makroargumentti ”%s” muunnettaisiin merkkijonoksi perinteisessä C:ssä"
+msgstr "makron argumentti ”%s” merkkijonostettaisiin perinteisessä C:ssä"
 
-#: macro.c:2004
+#: macro.c:3356
 #, c-format
 msgid "invalid hash type %d in cpp_macro_definition"
-msgstr "virheellinen hash-tyyppi %d kohteessa cpp_macro_definition"
+msgstr "virheellinen hash-tyyppi %d funktiossa cpp_macro_definition"
 
-#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+#: pch.c:89 pch.c:347 pch.c:361 pch.c:379 pch.c:385 pch.c:394 pch.c:401
 msgid "while writing precompiled header"
-msgstr "kirjoitettaessa esikäännettyjä otsaketiedostoja"
+msgstr "kirjoitettaessa esikäännettyä otsaketta"
 
-#  poison tarkoittaa, että makroa tai direktiiviä ei koskaan määritellä tai käytetä
-#: pch.c:608
+#: pch.c:621
 #, c-format
 msgid "%s: not used because `%.*s' is poisoned"
-msgstr "%s: ei käytetä, koska ”%.*s” on poison-kielletty"
+msgstr "%s: ei käytetä, koska ”%.*s” on myrkytetty"
 
-#: pch.c:630
+#: pch.c:643
 #, c-format
 msgid "%s: not used because `%.*s' not defined"
-msgstr "%s: ei käytetä, koska ”%.*s” ei ole määritelty"
+msgstr "%s: ei käytetä, koska ”%.*s” on määrittelemättä"
 
-#: pch.c:642
+#: pch.c:655
 #, c-format
 msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
-msgstr "%s: ei käytetä, koska ”%.*s” on määritelty nimellä ”%s” ei nimellä ”%.*s”"
+msgstr "%s: ei käytetä, koska ”%.*s” on määritelty arvoon ”%s” eikä ”%.*s”"
 
-#: pch.c:683
+#: pch.c:696
 #, c-format
 msgid "%s: not used because `%s' is defined"
 msgstr "%s: ei käytetä, koska ”%s” on määritelty"
 
-#: pch.c:703
+#: pch.c:716
 #, c-format
 msgid "%s: not used because `__COUNTER__' is invalid"
-msgstr "%s: ei käytetty, koska ”__COUNTER__” on virheellinen"
+msgstr "%s: ei käytetä, koska ”__COUNTER__” on virheellinen"
 
-#: pch.c:712 pch.c:891
+#: pch.c:725 pch.c:902
 msgid "while reading precompiled header"
-msgstr "luettaessa esikäännettyjä otsaketiedostoja"
+msgstr "luettaessa esikäännettyä otsaketta"
 
-#: traditional.c:751
+#: traditional.c:889
 #, c-format
 msgid "detected recursion whilst expanding macro \"%s\""
-msgstr "havaittu rekursio laajennettaessa makroa ”%s”"
+msgstr "havaittiin rekursio lavennettaessa makroa ”%s”"
+
+#: traditional.c:1108
+msgid "syntax error in macro parameter list"
+msgstr "syntaksivirhe makron parameteriluettelossa"
+
+#~ msgid "NULL directory in find_file"
+#~ msgstr "NULL-hakemisto funktiossa find_file"
+
+#~ msgid "%s is a block device"
+#~ msgstr "%s on lohkolaite"
+
+#~ msgid "%s is too large"
+#~ msgstr "%s on liian suuri"
+
+#~ msgid "%s is shorter than expected"
+#~ msgstr "%s on odotettua lyhyempi"
+
+#  NFKC-muodossa Unicode-merkki ilmaistaan nelinumeroisella heksadesimaaliluvulla
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "Merkki %x ei saattaisi olla Unicode-normalisointimerkkijonomuotoa NFKC"
+
+#~ msgid "too many decimal points in number"
+#~ msgstr "liian monta desimaalipistettä numerossa"
+
+#~ msgid "invalid digit \"%c\" in binary constant"
+#~ msgstr "virheellinen numero ”%c” binäärivakiossa"
 
-#: traditional.c:969
-msgid "syntax error in macro parameter list"
-msgstr "syntaksivirhe makroparameteriluettelossa"
+#~ msgid "invalid digit \"%c\" in octal constant"
+#~ msgstr "virheellinen numero ”%c” oktaalivakiossa"
+
+#~ msgid "no digits in hexadecimal floating constant"
+#~ msgstr "ei lukuja heksadesimaalisessa liukulukuvakiossa"
+
+#~ msgid "exponent has no digits"
+#~ msgstr "eksponentilla ei ole numeoita"
+
+#~ msgid "hexadecimal floating constants require an exponent"
+#~ msgstr "heksadesimaalinen liukulukuvakio vaatii eksponentin"
+
+#~ msgid "missing binary operator before token \"%s\""
+#~ msgstr "puuttua binäärioperaattori ennen merkkijonoa ”%s”"
+
+#~ msgid "token \"%s\" is not valid in preprocessor expressions"
+#~ msgstr "merkkijono ”%s” ei ole kelvollinen esikäsittelijälausekkeissa"
+
+#~ msgid "missing expression between '(' and ')'"
+#~ msgstr "puuttuva lauseke merkkien ’(’ ja ’)’ välillä"
+
+#~ msgid "%s with no expression"
+#~ msgstr "%s ilman lauseketta"
+
+#~ msgid "operator '%s' has no right operand"
+#~ msgstr "operaattorilla ’%s’ ei ole oikeaa operandia"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "operaattorilla ’%s’ ei ole vasenta operandia"
+
+#~ msgid " ':' without preceding '?'"
+#~ msgstr " ’:’ ilman edeltävää ’?’"