summaryrefslogtreecommitdiffstats
path: root/src/interfaces/ecpg/preproc/po
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/ecpg/preproc/po')
-rw-r--r--src/interfaces/ecpg/preproc/po/cs.po695
-rw-r--r--src/interfaces/ecpg/preproc/po/de.po700
-rw-r--r--src/interfaces/ecpg/preproc/po/el.po700
-rw-r--r--src/interfaces/ecpg/preproc/po/es.po706
-rw-r--r--src/interfaces/ecpg/preproc/po/fr.po757
-rw-r--r--src/interfaces/ecpg/preproc/po/it.po679
-rw-r--r--src/interfaces/ecpg/preproc/po/ja.po701
-rw-r--r--src/interfaces/ecpg/preproc/po/ko.po690
-rw-r--r--src/interfaces/ecpg/preproc/po/pl.po674
-rw-r--r--src/interfaces/ecpg/preproc/po/pt_BR.po653
-rw-r--r--src/interfaces/ecpg/preproc/po/ru.po741
-rw-r--r--src/interfaces/ecpg/preproc/po/sv.po699
-rw-r--r--src/interfaces/ecpg/preproc/po/tr.po699
-rw-r--r--src/interfaces/ecpg/preproc/po/uk.po683
-rw-r--r--src/interfaces/ecpg/preproc/po/vi.po684
-rw-r--r--src/interfaces/ecpg/preproc/po/zh_CN.po693
-rw-r--r--src/interfaces/ecpg/preproc/po/zh_TW.po645
17 files changed, 11799 insertions, 0 deletions
diff --git a/src/interfaces/ecpg/preproc/po/cs.po b/src/interfaces/ecpg/preproc/po/cs.po
new file mode 100644
index 0000000..0112bad
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/cs.po
@@ -0,0 +1,695 @@
+# Czech message translation file for ecpg
+# Copyright (C) 2012 PostgreSQL Global Development Group
+# This file is distributed under the same license as the PostgreSQL package.
+#
+# Tomáš Vondra <tv@fuzzy.cz>, 2012, 2013.
+msgid ""
+msgstr ""
+"Project-Id-Version: ecpg-cs (PostgreSQL 9.3)\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2020-10-31 16:09+0000\n"
+"PO-Revision-Date: 2021-09-16 09:06+0200\n"
+"Last-Translator: Tomas Vondra <tv@fuzzy.cz>\n"
+"Language-Team: Czech <info@cspug.cx>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Poedit 2.4.1\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "proměnná \"%s\" musí mít číselný typ"
+
+#: descriptor.c:124 descriptor.c:146
+#, c-format
+msgid "descriptor \"%s\" does not exist"
+msgstr "descriptor \"%s\" neexistuje"
+
+#: descriptor.c:161 descriptor.c:213
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "descriptor header item \"%d\" neexistuje"
+
+#: descriptor.c:183
+#, c-format
+msgid "nullable is always 1"
+msgstr "nullable je vždy 1"
+
+#: descriptor.c:186
+#, c-format
+msgid "key_member is always 0"
+msgstr "key_member je vždy 0"
+
+#: descriptor.c:280
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "descriptor item \"%s\" není implementován"
+
+#: descriptor.c:290
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "descriptor item \"%s\" nelze nastavit"
+
+#: ecpg.c:35
+#, c-format
+msgid ""
+"%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
+"\n"
+msgstr ""
+"%s je PostgreSQL preprocesor vloženého SQL pro C programy.\n"
+"\n"
+
+#: ecpg.c:37
+#, c-format
+msgid ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"Použití:\n"
+" %s [VOLBA]... SOUBOR...\n"
+"\n"
+
+#: ecpg.c:40
+#, c-format
+msgid "Options:\n"
+msgstr "Volby:\n"
+
+#: ecpg.c:41
+#, c-format
+msgid ""
+" -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr ""
+" -c automaticky generuje C kód z vložných SQL příkazů;\n"
+" toto ovlivňuje EXEC SQL TYPE\n"
+
+#: ecpg.c:43
+#, c-format
+msgid ""
+" -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+msgstr ""
+" -C MÓD nastaví mód kompatibility; MÓD může být jedno z \n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+
+#: ecpg.c:46
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d zapne generování ladicích informací parseru\n"
+
+#: ecpg.c:48
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D SYMBOL definuje SYMBOL\n"
+
+#: ecpg.c:49
+#, c-format
+msgid " -h parse a header file, this option includes option \"-c\"\n"
+msgstr " -h naparsuje hlavičkový soubor, tato volba zahrnuje volbu \"-c\"\n"
+
+#: ecpg.c:50
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i naparsuje také systémové hlavičkové soubory\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I ADRESÁŘ vyhledá include soubory v ADRESÁŘi\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o SOUBOR zapíše výsledek do SOUBORu\n"
+
+#: ecpg.c:53
+#, c-format
+msgid ""
+" -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr ""
+" -r VOLBA určuje run-time chování; VOLBA může být:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+
+#: ecpg.c:55
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression běh v módu regresních testů\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr " -t zapne autocommit transakcí\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " -V, --version output version information, then exit\n"
+msgstr " -V, --version vypíše informaci o verzi, poté skončí\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " -?, --help show this help, then exit\n"
+msgstr " -?, --help zobrazí tuto nápovědu; poté skončí\n"
+
+#: ecpg.c:59
+#, c-format
+msgid ""
+"\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr ""
+"\n"
+"Pokud není zadán žádný výstupní soubor, je jméno získáno přidáním .c\n"
+"na konec jména vstupního souboru, po odstranění koncovky .pgc pokud\n"
+"je přítomna.\n"
+
+#: ecpg.c:61
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Chyby hlašte na <%s>.\n"
+
+#: ecpg.c:62
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s domácí stránka: <%s>\n"
+
+#: ecpg.c:140
+#, c-format
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s: nelze nalézt cestu k vlastnímu spustitelnému souboru\n"
+
+#: ecpg.c:175 ecpg.c:332 ecpg.c:343
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: nelze otevřít soubor \"%s\": %s\n"
+
+#: ecpg.c:218 ecpg.c:231 ecpg.c:247 ecpg.c:273
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "Zkuste \"%s --help\" pro více informací.\n"
+
+#: ecpg.c:242
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr "%s: podpora pro ladicí informace parseru (-d) není dostupná\n"
+
+#: ecpg.c:261
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n"
+msgstr "%s, PostgreSQL embedded C preprocessor, verze %s\n"
+
+#: ecpg.c:263
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "EXEC SQL INCLUDE ... hledání začíná zde:\n"
+
+#: ecpg.c:266
+#, c-format
+msgid "end of search list\n"
+msgstr "konec vyhledávacího seznamu\n"
+
+#: ecpg.c:272
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s: nebyl zadán žádný vstupní soubor\n"
+
+#: ecpg.c:466
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "kurzor \"%s\" byl deklarován ale nebyl otevřen"
+
+#: ecpg.c:479 preproc.y:128
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "nelze odstranit výstupní soubor \"%s\"\n"
+
+#: pgc.l:502
+#, c-format
+msgid "unterminated /* comment"
+msgstr "neukončený /* komentář"
+
+#: pgc.l:519
+#, c-format
+msgid "unterminated bit string literal"
+msgstr "neukončený literál - bitový řetězec"
+
+#: pgc.l:527
+#, c-format
+msgid "unterminated hexadecimal string literal"
+msgstr "neukončený literál - hexadecimální řetězec"
+
+#: pgc.l:602
+#, c-format
+msgid "invalid bit string literal"
+msgstr "neplatný bit string literál"
+
+#: pgc.l:623
+#, c-format
+msgid "unhandled previous state in xqs\n"
+msgstr "neošetřený předchozí stav v xqs\n"
+
+#: pgc.l:652 pgc.l:754
+#, c-format
+msgid "unterminated quoted string"
+msgstr "neukončený řetězec v uvozovkách"
+
+#: pgc.l:703
+#, c-format
+msgid "unterminated dollar-quoted string"
+msgstr "neukončený dollar-quoted řetězec"
+
+#: pgc.l:721 pgc.l:734
+#, c-format
+msgid "zero-length delimited identifier"
+msgstr "ohraničený (delimited) identifikátor s nulovou délkou"
+
+#: pgc.l:745
+#, c-format
+msgid "unterminated quoted identifier"
+msgstr "neukončený identifikátor v uvozovkách"
+
+#: pgc.l:1076
+#, c-format
+msgid "nested /* ... */ comments"
+msgstr "vnořené /* ... */ komentáře"
+
+#: pgc.l:1169
+#, c-format
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "chybějící identifikátor v příkazu EXEC SQL UNDEF"
+
+#: pgc.l:1187 pgc.l:1200 pgc.l:1216 pgc.l:1229
+#, c-format
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "příliš mnoho zanořených EXEC SQL IFDEF podmínek"
+
+#: pgc.l:1245 pgc.l:1256 pgc.l:1271 pgc.l:1293
+#, c-format
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "chybějící odpovídající \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+
+#: pgc.l:1247 pgc.l:1258 pgc.l:1439
+#, c-format
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "chybějící \"EXEC SQL ENDIF;\""
+
+#: pgc.l:1273 pgc.l:1295
+#, c-format
+msgid "more than one EXEC SQL ELSE"
+msgstr "více než jedna větev EXEC SQL ELSE"
+
+#: pgc.l:1318 pgc.l:1332
+#, c-format
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "neodpovídající EXEC SQL ENDIF"
+
+#: pgc.l:1387
+#, c-format
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "chybějící identifikátor v příkazu EXEC SQL IFDEF"
+
+#: pgc.l:1396
+#, c-format
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "chybějící identifikátor v příkazu EXEC SQL DEFINE"
+
+#: pgc.l:1429
+#, c-format
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "syntaktická chyba v příkazu EXEC SQL INCLUDE"
+
+#: pgc.l:1479
+#, c-format
+msgid "internal error: unreachable state; please report this to <%s>"
+msgstr "interní chyba: nedosažitelný stav; oznamte toto prosím na <%s>"
+
+#: pgc.l:1631
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr "Chyba: include path \"%s/%s\" na řádku %d je příliš dlouhá, přeskakuji\n"
+
+#: pgc.l:1654
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr "nelze otevřít soubor \"%s\" na řádku %d"
+
+#: preproc.y:31
+msgid "syntax error"
+msgstr "syntaktická chyba"
+
+#: preproc.y:82
+#, c-format
+msgid "WARNING: "
+msgstr "VAROVÁNÍ: "
+
+#: preproc.y:85
+#, c-format
+msgid "ERROR: "
+msgstr "CHYBA: "
+
+#: preproc.y:512
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "kurzor \"%s\" neexistuje"
+
+#: preproc.y:541
+#, c-format
+msgid "initializer not allowed in type definition"
+msgstr "inicializátor (initializer) není v definici typu povolen"
+
+#: preproc.y:543
+#, c-format
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "název typu \"string\" je vyhrazen pro mód Informix"
+
+#: preproc.y:550 preproc.y:15960
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "typ \"%s\" je již definován"
+
+#: preproc.y:575 preproc.y:16603 preproc.y:16928 variable.c:621
+#, c-format
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr "vícerozměrná pole pro jednoduché datové typy nejsou podporována"
+
+#: preproc.y:1704
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "AT volba není v příkazu CLOSE DATABASE povolena"
+
+#: preproc.y:1952
+#, c-format
+msgid "AT option not allowed in CONNECT statement"
+msgstr "AT volba není v příkazu CONNECT povolena"
+
+#: preproc.y:1986
+#, c-format
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "AT volba není v příkazu DISCONNECT povolena"
+
+#: preproc.y:2041
+#, c-format
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "AT volba není v příkazu SET CONNECTION povolena"
+
+#: preproc.y:2063
+#, c-format
+msgid "AT option not allowed in TYPE statement"
+msgstr "AT volba není v příkazu TYPE povolena"
+
+#: preproc.y:2072
+#, c-format
+msgid "AT option not allowed in VAR statement"
+msgstr "AT volba není v příkazu VAR povolena"
+
+#: preproc.y:2079
+#, c-format
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "AT volba není v příkazu WHENEVER povolena"
+
+#: preproc.y:2156 preproc.y:2328 preproc.y:2333 preproc.y:2456 preproc.y:4034
+#: preproc.y:4682 preproc.y:5624 preproc.y:5924 preproc.y:7542 preproc.y:9081
+#: preproc.y:9086 preproc.y:11921
+#, c-format
+msgid "unsupported feature will be passed to server"
+msgstr "nepodporovaná vlastnost bude předána serveru"
+
+#: preproc.y:2714
+#, c-format
+msgid "SHOW ALL is not implemented"
+msgstr "příkaz SHOW ALL není implementován"
+
+#: preproc.y:3382
+#, c-format
+msgid "COPY FROM STDIN is not implemented"
+msgstr "příkaz COPY FROM STDIN není implementován"
+
+#: preproc.y:10060 preproc.y:15545
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr "použití proměnné \"%s\" v dalších deklaracích není podporováno"
+
+#: preproc.y:10062 preproc.y:15547
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "kurzor \"%s\" je již definován"
+
+#: preproc.y:10502
+#, c-format
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "již neopdporovaná syntaxe LIMIT #,# předána serveru"
+
+#: preproc.y:10835 preproc.y:10842
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "poddotaz ve FROM musí mít alias"
+
+#: preproc.y:15268 preproc.y:15275
+#, c-format
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "CREATE TABLE AS nemůže specifikovat INTO"
+
+#: preproc.y:15311
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "očekáváno \"@\", nalezeno \"%s\""
+
+#: preproc.y:15323
+#, c-format
+msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported"
+msgstr "podporovány jsou pouze protokoly \"tcp\" a \"unix\" a typ databáze \"postgresql\""
+
+#: preproc.y:15326
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "očekáváno \"://\", nalezeno \"%s\""
+
+#: preproc.y:15331
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr "Unixové sockety fungují pouze na \"localhost\" ale ne na \"%s\""
+
+#: preproc.y:15357
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "očekáváno \"postgresql\", nalezeno \"%s\""
+
+#: preproc.y:15360
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "chybný typ spojení: %s"
+
+#: preproc.y:15369
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "očekáváno \"@\" nebo \"://\", nalezeno \"%s\""
+
+#: preproc.y:15444 preproc.y:15462
+#, c-format
+msgid "invalid data type"
+msgstr "chybný datový typ"
+
+#: preproc.y:15473 preproc.y:15490
+#, c-format
+msgid "incomplete statement"
+msgstr "neúplný příkaz"
+
+#: preproc.y:15476 preproc.y:15493
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "nerozpoznaný token \"%s\""
+
+#: preproc.y:15763
+#, c-format
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr "pouze datové typy numeric a decimal mají argumenty přesnost/velikost"
+
+#: preproc.y:15775
+#, c-format
+msgid "interval specification not allowed here"
+msgstr "specifikace intervalu zde není povolena"
+
+#: preproc.y:15935 preproc.y:15987
+#, c-format
+msgid "too many levels in nested structure/union definition"
+msgstr "příliš mnoho úrovní v definici vnořené struktury/union"
+
+#: preproc.y:16110
+#, c-format
+msgid "pointers to varchar are not implemented"
+msgstr "ukazatele na varchar nejsou implementovány"
+
+#: preproc.y:16297 preproc.y:16322
+#, c-format
+msgid "using unsupported DESCRIBE statement"
+msgstr "použití nepodporovaného příkazu DESCRIBE"
+
+#: preproc.y:16569
+#, c-format
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "inicializátor není v příkazu EXEC SQL VAR podporován"
+
+#: preproc.y:16886
+#, c-format
+msgid "arrays of indicators are not allowed on input"
+msgstr "pole identifikátorů nejsou na vstupu povolena"
+
+#: preproc.y:17073
+#, c-format
+msgid "operator not allowed in variable definition"
+msgstr "operátor není povolen v definici proměnné"
+
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:17114
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "%s na nebo blízko \"%s\""
+
+#: type.c:18 type.c:30
+#, c-format
+msgid "out of memory"
+msgstr "paměť vyčerpána"
+
+#: type.c:214 type.c:685
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "nerozpoznaný kód typu proměnné %d"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "proměnná \"%s\" je překryta lokální proměnnou s jiným datovým typem"
+
+#: type.c:265
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "proměnná \"%s\" je překryta lokální proměnnou"
+
+#: type.c:277
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr "indicator variable \"%s\" je překryta lokální proměnnou s jiným datovým typem"
+
+#: type.c:279
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "indicator variable \"%s\" je překryta lokální proměnnou"
+
+#: type.c:287
+#, c-format
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "indicator variable pro pole/ukaztel musí být pole/ukazatel"
+
+#: type.c:291
+#, c-format
+msgid "nested arrays are not supported (except strings)"
+msgstr "vnořená pole nejsou podporována (kromě řetězců)"
+
+#: type.c:333
+#, c-format
+msgid "indicator for struct has to be a struct"
+msgstr "indikátor pro strukturu musí být struktura"
+
+#: type.c:353 type.c:374 type.c:394
+#, c-format
+msgid "indicator for simple data type has to be simple"
+msgstr "indikátor pro jednoduché datové typy musí být jednoduchý"
+
+#: type.c:625
+#, c-format
+msgid "indicator struct \"%s\" has too few members"
+msgstr "indikátor pro strukturu \"%s\" má příliš málo položek"
+
+#: type.c:633
+#, c-format
+msgid "indicator struct \"%s\" has too many members"
+msgstr "indikátor pro strukturu \"%s\" má příliš mnoho položek"
+
+#: type.c:744
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "nerozpoznaný kód deskriptoru položky %d"
+
+#: variable.c:89 variable.c:116
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "nesprávně vytvořený název proměnné \"%s\""
+
+#: variable.c:139
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "proměnná \"%s\" není ukazatel"
+
+#: variable.c:142 variable.c:167
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "proměnná \"%s\" není ukazatel na strukturu nebo sjednocení"
+
+#: variable.c:154
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "proměnná \"%s\" není ani struktura ani sjednocení"
+
+#: variable.c:164
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "proměnná \"%s\" není pole"
+
+#: variable.c:233 variable.c:255
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "proměnná \"%s\" není deklarována"
+
+#: variable.c:494
+#, c-format
+msgid "indicator variable must have an integer type"
+msgstr "indicator variable musí mít celočíselný typ"
+
+#: variable.c:506
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr "nerozpoznaný název datového typu \"%s\""
+
+#: variable.c:517 variable.c:525 variable.c:542 variable.c:545
+#, c-format
+msgid "multidimensional arrays are not supported"
+msgstr "vícerozměrná pole nejsou podporována"
+
+#: variable.c:534
+#, c-format
+msgid "multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] "víceúrovňové ukazatele (více než 2 úrovně) nejsou podporovány; nalezena %d úroveň"
+msgstr[1] "víceúrovňové ukazatele (více než 2 úrovně) nejsou podporovány; nalezeny %d úrovně"
+msgstr[2] "víceúrovňové ukazatele (více než 2 úrovně) nejsou podporovány; nalezeny %d úrovně"
+
+#: variable.c:539
+#, c-format
+msgid "pointer to pointer is not supported for this data type"
+msgstr "ukazatel na ukazatel není pro tento datový typ podporován"
+
+#: variable.c:559
+#, c-format
+msgid "multidimensional arrays for structures are not supported"
+msgstr "vícerozměrná pole pro struktury nejsou podporována"
+
+#~ msgid "COPY TO STDIN is not possible"
+#~ msgstr "příkaz COPY TO STDIN nelze použít"
+
+#~ msgid "COPY FROM STDOUT is not possible"
+#~ msgstr "příkaz COPY FROM STDOUT nelze použít"
+
+#~ msgid ""
+#~ "\n"
+#~ "Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Chyby hlaste na adresu <pgsql-bugs@postgresql.org>.\n"
diff --git a/src/interfaces/ecpg/preproc/po/de.po b/src/interfaces/ecpg/preproc/po/de.po
new file mode 100644
index 0000000..caadb67
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/de.po
@@ -0,0 +1,700 @@
+# German message translation file for ecpg
+# Copyright (C) 2009-2021 PostgreSQL Global Development Group
+# This file is distributed under the same license as the PostgreSQL package.
+#
+# Use these quotes: »%s«
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PostgreSQL 14\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2021-09-16 09:39+0000\n"
+"PO-Revision-Date: 2021-09-16 14:00+0200\n"
+"Last-Translator: Peter Eisentraut <peter@eisentraut.org>\n"
+"Language-Team: German <pgsql-translators@postgresql.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "Variable »%s« muss einen numerischen Typ haben"
+
+#: descriptor.c:125 descriptor.c:156
+#, c-format
+msgid "descriptor %s bound to connection %s does not exist"
+msgstr "Deskriptor %s gebunden an Verbindung %s existiert nicht"
+
+#: descriptor.c:127 descriptor.c:158
+#, c-format
+msgid "descriptor %s bound to the default connection does not exist"
+msgstr "Deskriptor %s gebunden an die Standardverbindung existiert nicht"
+
+#: descriptor.c:173 descriptor.c:225
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "Deskriptorkopfelement »%d« existiert nicht"
+
+#: descriptor.c:195
+#, c-format
+msgid "nullable is always 1"
+msgstr "nullable ist immer 1"
+
+#: descriptor.c:198
+#, c-format
+msgid "key_member is always 0"
+msgstr "key_member ist immer 0"
+
+#: descriptor.c:292
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "Deskriptorelement »%s« ist nicht implementiert"
+
+#: descriptor.c:302
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "Deskriptorelement »%s« kann nicht gesetzt werden"
+
+#: ecpg.c:36
+#, c-format
+msgid ""
+"%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
+"\n"
+msgstr ""
+"%s ist der Embedded-SQL-Präprozessor von PostgreSQL für C-Programme.\n"
+"\n"
+
+#: ecpg.c:38
+#, c-format
+msgid ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"Aufruf:\n"
+" %s [OPTION]... DATEI...\n"
+"\n"
+
+#: ecpg.c:41
+#, c-format
+msgid "Options:\n"
+msgstr "Optionen:\n"
+
+#: ecpg.c:42
+#, c-format
+msgid ""
+" -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr ""
+" -c automatisch C-Code aus eingebettetem SQL-Code erzeugen;\n"
+" betrifft EXEC SQL TYPE\n"
+
+#: ecpg.c:44
+#, c-format
+msgid ""
+" -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+msgstr ""
+" -C MODUS Kompatibilitätsmodus setzen; MODUS kann sein:\n"
+" »INFORMIX«, »INFORMIX_SE«, »ORACLE«\n"
+
+#: ecpg.c:47
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d Parser-Debug-Ausgabe erzeugen\n"
+
+#: ecpg.c:49
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D SYMBOL SYMBOL definieren\n"
+
+#: ecpg.c:50
+#, c-format
+msgid " -h parse a header file, this option includes option \"-c\"\n"
+msgstr " -h eine Headerdatei parsen, schließt Option »-c« ein\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i Systemheaderdateien ebenfalls parsen\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I VERZ VERZ nach Include-Dateien durchsuchen\n"
+
+#: ecpg.c:53
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o DATEI Ausgabe in DATEI schreiben\n"
+
+#: ecpg.c:54
+#, c-format
+msgid ""
+" -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr ""
+" -r OPTION Laufzeitverhalten bestimmen; OPTION kann sein:\n"
+" »no_indicator«, »prepare«, »questionmarks«\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression Regressiontestmodus verwenden\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr " -t Autocommit von Transaktionen anschalten\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " -V, --version output version information, then exit\n"
+msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n"
+
+#: ecpg.c:59
+#, c-format
+msgid " -?, --help show this help, then exit\n"
+msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n"
+
+#: ecpg.c:60
+#, c-format
+msgid ""
+"\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr ""
+"\n"
+"Wenn keine Ausgabedatei angegeben ist, dann wird .c an den Namen der\n"
+"Eingabedatei angehängt und vorher .pgc, falls vorhanden, entfernt.\n"
+
+#: ecpg.c:62
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Berichten Sie Fehler an <%s>.\n"
+
+#: ecpg.c:63
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s Homepage: <%s>\n"
+
+#: ecpg.c:141
+#, c-format
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s: konnte Pfad des eigenen Programs nicht finden\n"
+
+#: ecpg.c:176 ecpg.c:333 ecpg.c:344
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: konnte Datei »%s« nicht öffnen: %s\n"
+
+#: ecpg.c:219 ecpg.c:232 ecpg.c:248 ecpg.c:274
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "Versuchen Sie »%s --help« für weitere Informationen.\n"
+
+#: ecpg.c:243
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr "%s: Unterstützung für Parserdebugging (-d) nicht verfügbar\n"
+
+#: ecpg.c:262
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n"
+msgstr "%s, der PostgreSQL-Embedded-C-Präprozessor, Version %s\n"
+
+#: ecpg.c:264
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "EXEC SQL INCLUDE ... Suche beginnt hier:\n"
+
+#: ecpg.c:267
+#, c-format
+msgid "end of search list\n"
+msgstr "Ende der Suchliste\n"
+
+#: ecpg.c:273
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s: keine Eingabedateien angegeben\n"
+
+#: ecpg.c:477
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "Cursor »%s« wurde deklariert aber nicht geöffnet"
+
+#: ecpg.c:490 preproc.y:130
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "konnte Ausgabedatei »%s« nicht entfernen\n"
+
+#: pgc.l:502
+#, c-format
+msgid "unterminated /* comment"
+msgstr "/*-Kommentar nicht abgeschlossen"
+
+#: pgc.l:519
+#, c-format
+msgid "unterminated bit string literal"
+msgstr "Bitkettenkonstante nicht abgeschlossen"
+
+#: pgc.l:527
+#, c-format
+msgid "unterminated hexadecimal string literal"
+msgstr "hexadezimale Zeichenkette nicht abgeschlossen"
+
+#: pgc.l:602
+#, c-format
+msgid "invalid bit string literal"
+msgstr "ungültige Bitkettenkonstante"
+
+#: pgc.l:607
+#, c-format
+msgid "invalid hex string literal"
+msgstr "ungültige hexadezimale Zeichenkettenkonstante"
+
+#: pgc.l:625
+#, c-format
+msgid "unhandled previous state in xqs\n"
+msgstr "unbehandelter vorheriger Zustand in xqs\n"
+
+#: pgc.l:651 pgc.l:760
+#, c-format
+msgid "unterminated quoted string"
+msgstr "Zeichenkette in Anführungszeichen nicht abgeschlossen"
+
+#: pgc.l:702
+#, c-format
+msgid "unterminated dollar-quoted string"
+msgstr "Dollar-Quotes nicht abgeschlossen"
+
+#: pgc.l:720 pgc.l:740
+#, c-format
+msgid "zero-length delimited identifier"
+msgstr "Bezeichner in Anführungszeichen hat Länge null"
+
+#: pgc.l:751
+#, c-format
+msgid "unterminated quoted identifier"
+msgstr "Bezeichner in Anführungszeichen nicht abgeschlossen"
+
+#: pgc.l:1082
+#, c-format
+msgid "nested /* ... */ comments"
+msgstr "geschachtelte /* ... */-Kommentare"
+
+#: pgc.l:1175
+#, c-format
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "fehlender Bezeichner im Befehl EXEC SQL UNDEF"
+
+#: pgc.l:1193 pgc.l:1206 pgc.l:1222 pgc.l:1235
+#, c-format
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "zu viele verschachtelte EXEC SQL IFDEF-Bedingungen"
+
+#: pgc.l:1251 pgc.l:1262 pgc.l:1277 pgc.l:1299
+#, c-format
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "passendes »EXEC SQL IFDEF« / »EXEC SQL IFNDEF« fehlt"
+
+#: pgc.l:1253 pgc.l:1264 pgc.l:1445
+#, c-format
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "»EXEC SQL ENDIF;« fehlt"
+
+#: pgc.l:1279 pgc.l:1301
+#, c-format
+msgid "more than one EXEC SQL ELSE"
+msgstr "mehr als ein EXEC SQL ENDIF"
+
+#: pgc.l:1324 pgc.l:1338
+#, c-format
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "unzusammenhängendes EXEC SQL ENDIF"
+
+#: pgc.l:1393
+#, c-format
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "fehlender Bezeichner im Befehl EXEC SQL IFDEF"
+
+#: pgc.l:1402
+#, c-format
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "fehlender Bezeichner im Befehl EXEC SQL DEFINE"
+
+#: pgc.l:1435
+#, c-format
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "Syntaxfehler im Befehl EXEC SQL INCLUDE"
+
+#: pgc.l:1485
+#, c-format
+msgid "internal error: unreachable state; please report this to <%s>"
+msgstr "interner Fehler: unerreichbarer Zustand; bitte an <%s> berichten"
+
+#: pgc.l:1637
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr "Fehler: Include-Pfad »%s/%s« ist zu lang auf Zeile %d, wird übersprungen\n"
+
+#: pgc.l:1660
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr "konnte Include-Datei »%s« nicht öffnen auf Zeile %d"
+
+#: preproc.y:31
+msgid "syntax error"
+msgstr "Syntaxfehler"
+
+#: preproc.y:84
+#, c-format
+msgid "WARNING: "
+msgstr "WARNUNG: "
+
+#: preproc.y:87
+#, c-format
+msgid "ERROR: "
+msgstr "FEHLER: "
+
+#: preproc.y:514
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "Cursor »%s« existiert nicht"
+
+#: preproc.y:543
+#, c-format
+msgid "initializer not allowed in type definition"
+msgstr "Initialisierungswert nicht erlaubt in Typdefinition"
+
+#: preproc.y:545
+#, c-format
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "Typname »string« ist im Informix-Modus reserviert"
+
+#: preproc.y:552 preproc.y:17675
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "Typ »%s« ist bereits definiert"
+
+#: preproc.y:577 preproc.y:18310 preproc.y:18635 variable.c:621
+#, c-format
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr "mehrdimensionale Arrays für einfache Datentypen werden nicht unterstützt"
+
+#: preproc.y:599
+#, c-format
+msgid "connection %s is overwritten with %s by DECLARE statement %s"
+msgstr "Verbindung %s wird mit %s überschrieben, durch DECLARE-Anweisung %s"
+
+#: preproc.y:1753
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "AT-Option ist nicht erlaubt im Befehl CLOSE DATABASE"
+
+#: preproc.y:2001
+#, c-format
+msgid "AT option not allowed in CONNECT statement"
+msgstr "AT-Option ist nicht erlaubt im Befehl CONNECT"
+
+#: preproc.y:2041
+#, c-format
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "AT-Option ist nicht erlaubt im Befehl DISCONNECT"
+
+#: preproc.y:2096
+#, c-format
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "AT-Option ist nicht erlaubt im Befehl SET CONNECTION"
+
+#: preproc.y:2118
+#, c-format
+msgid "AT option not allowed in TYPE statement"
+msgstr "AT-Option ist nicht erlaubt im TYPE-Befehl"
+
+#: preproc.y:2127
+#, c-format
+msgid "AT option not allowed in VAR statement"
+msgstr "AT-Option ist nicht erlaubt im VAR-Befehl"
+
+#: preproc.y:2134
+#, c-format
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "AT-Option ist nicht erlaubt im WHENEVER-Befehl"
+
+#: preproc.y:2211 preproc.y:2383 preproc.y:2388 preproc.y:2511 preproc.y:4143
+#: preproc.y:4807 preproc.y:5340 preproc.y:5678 preproc.y:5978 preproc.y:7514
+#: preproc.y:9082 preproc.y:9087 preproc.y:11915
+#, c-format
+msgid "unsupported feature will be passed to server"
+msgstr "nicht mehr unterstütztes Feature wird an Server weitergereicht werden"
+
+#: preproc.y:2769
+#, c-format
+msgid "SHOW ALL is not implemented"
+msgstr "SHOW ALL ist nicht implementiert"
+
+#: preproc.y:3464
+#, c-format
+msgid "COPY FROM STDIN is not implemented"
+msgstr "COPY FROM STDIN ist nicht implementiert"
+
+#: preproc.y:10014 preproc.y:17250
+#, c-format
+msgid "\"database\" cannot be used as cursor name in INFORMIX mode"
+msgstr "»database« kann im INFORMIX-Modus nicht als Cursorname verwendet werden"
+
+#: preproc.y:10021 preproc.y:17260
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr "Verwendung der Variable »%s« in verschiedenen DECLARE-Anweisungen wird nicht unterstützt"
+
+#: preproc.y:10023 preproc.y:17262
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "Cursor »%s« ist bereits definiert"
+
+#: preproc.y:10497
+#, c-format
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "nicht mehr unterstützte Syntax LIMIT x,y wird an Server weitergereicht"
+
+#: preproc.y:10830 preproc.y:10837
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "Unteranfrage in FROM muss Aliasnamen erhalten"
+
+#: preproc.y:16942 preproc.y:16949
+#, c-format
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "CREATE TABLE AS kann INTO nicht verwenden"
+
+#: preproc.y:16985
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "»@« erwartet, »%s« gefunden"
+
+#: preproc.y:16997
+#, c-format
+msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported"
+msgstr "er werden nur die Protokolle »tcp« und »unix« und der Datenbanktyp »postgresql« unterstützt"
+
+#: preproc.y:17000
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "»://« erwartet, »%s« gefunden"
+
+#: preproc.y:17005
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr "Unix-Domain-Sockets funktionieren nur mit »localhost«, aber nicht mit »%s«"
+
+#: preproc.y:17031
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "»postgresql« erwartet, »%s« gefunden"
+
+#: preproc.y:17034
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "ungültiger Verbindungstyp: %s"
+
+#: preproc.y:17043
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "»@« oder »://« erwartet, »%s« gefunden"
+
+#: preproc.y:17118 preproc.y:17136
+#, c-format
+msgid "invalid data type"
+msgstr "ungültiger Datentyp"
+
+#: preproc.y:17147 preproc.y:17164
+#, c-format
+msgid "incomplete statement"
+msgstr "unvollständige Anweisung"
+
+#: preproc.y:17150 preproc.y:17167
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "nicht erkanntes Token »%s«"
+
+#: preproc.y:17212
+#, c-format
+msgid "name \"%s\" is already declared"
+msgstr "Name »%s« ist bereits deklariert"
+
+#: preproc.y:17478
+#, c-format
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr "nur die Datentypen NUMERIC und DECIMAL haben Argumente für Präzision und Skala"
+
+#: preproc.y:17490
+#, c-format
+msgid "interval specification not allowed here"
+msgstr "Intervallangabe hier nicht erlaubt"
+
+#: preproc.y:17650 preproc.y:17702
+#, c-format
+msgid "too many levels in nested structure/union definition"
+msgstr "zu viele Ebenen in verschachtelter Definition von Struktur/Union"
+
+#: preproc.y:17825
+#, c-format
+msgid "pointers to varchar are not implemented"
+msgstr "Zeiger auf varchar sind nicht implementiert"
+
+#: preproc.y:18276
+#, c-format
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "Initialisierungswert nicht erlaubt in Befehl EXEC SQL VAR"
+
+#: preproc.y:18593
+#, c-format
+msgid "arrays of indicators are not allowed on input"
+msgstr "Array aus Indikatoren bei der Eingabe nicht erlaubt"
+
+#: preproc.y:18780
+#, c-format
+msgid "operator not allowed in variable definition"
+msgstr "Operator nicht erlaubt in Variablendefinition"
+
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:18821
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "%s bei »%s«"
+
+#: type.c:18 type.c:30
+#, c-format
+msgid "out of memory"
+msgstr "Speicher aufgebraucht"
+
+#: type.c:214 type.c:685
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "unbekannter Variablentypcode %d"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "Variable »%s« wird durch eine lokale Variable eines anderen Typs versteckt"
+
+#: type.c:265
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "Variable »%s« wird durch eine lokale Variable versteckt"
+
+#: type.c:277
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr "Indikatorvariable »%s« wird durch eine lokale Variable eines anderen Typs versteckt"
+
+#: type.c:279
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "Indikatorvariable »%s« wird durch eine lokale Variable versteckt"
+
+#: type.c:287
+#, c-format
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "Indikator für Array/Zeiger muss Array/Zeiger sein"
+
+#: type.c:291
+#, c-format
+msgid "nested arrays are not supported (except strings)"
+msgstr "verschachtelte Arrays werden nicht unterstützt (außer Zeichenketten)"
+
+#: type.c:333
+#, c-format
+msgid "indicator for struct has to be a struct"
+msgstr "Indikator für struct muss ein struct sein"
+
+#: type.c:353 type.c:374 type.c:394
+#, c-format
+msgid "indicator for simple data type has to be simple"
+msgstr "Indikator für einfachen Typ muss einfachen Typ haben"
+
+#: type.c:625
+#, c-format
+msgid "indicator struct \"%s\" has too few members"
+msgstr "Indikator-Struct »%s« hat zu wenige Mitglieder"
+
+#: type.c:633
+#, c-format
+msgid "indicator struct \"%s\" has too many members"
+msgstr "Indikator-Struct »%s« hat zu viele Mitglieder"
+
+#: type.c:744
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "unbekannter Deskriptorelementcode %d"
+
+#: variable.c:89 variable.c:116
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "falsch geformte Variable »%s«"
+
+#: variable.c:139
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "Variable »%s« ist kein Zeiger"
+
+#: variable.c:142 variable.c:167
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "Variable »%s« ist kein Zeiger auf eine Struktur oder Union"
+
+#: variable.c:154
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "Variable »%s« ist keine Struktur oder Union"
+
+#: variable.c:164
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "Variable »%s« ist kein Array"
+
+#: variable.c:233 variable.c:255
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "Variable »%s« ist nicht deklariert"
+
+#: variable.c:494
+#, c-format
+msgid "indicator variable must have an integer type"
+msgstr "Indikatorvariable muss einen ganzzahligen Typ haben"
+
+#: variable.c:506
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr "unbekannter Datentypname »%s«"
+
+#: variable.c:517 variable.c:525 variable.c:542 variable.c:545
+#, c-format
+msgid "multidimensional arrays are not supported"
+msgstr "mehrdimensionale Arrays werden nicht unterstützt"
+
+#: variable.c:534
+#, c-format
+msgid "multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] "Zeiger mit mehr als 2 Ebenen werden nicht unterstützt; %d Ebene gefunden"
+msgstr[1] "Zeiger mit mehr als 2 Ebenen werden nicht unterstützt; %d Ebenen gefunden"
+
+#: variable.c:539
+#, c-format
+msgid "pointer to pointer is not supported for this data type"
+msgstr "Zeiger auf Zeiger wird für diesen Datentyp nicht unterstützt"
+
+#: variable.c:559
+#, c-format
+msgid "multidimensional arrays for structures are not supported"
+msgstr "mehrdimensionale Arrays für Strukturen werden nicht unterstützt"
diff --git a/src/interfaces/ecpg/preproc/po/el.po b/src/interfaces/ecpg/preproc/po/el.po
new file mode 100644
index 0000000..e0e1d55
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/el.po
@@ -0,0 +1,700 @@
+# Greek message translation file for ecpg
+# Copyright (C) 2021 PostgreSQL Global Development Group
+# This file is distributed under the same license as the ecpg (PostgreSQL) package.
+# Georgios Kokolatos <gkokolatos@pm.me>, 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ecpg (PostgreSQL) 14\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2021-11-03 18:09+0000\n"
+"PO-Revision-Date: 2021-11-05 11:17+0100\n"
+"Last-Translator: Georgios Kokolatos <gkokolatos@pm.me>\n"
+"Language-Team: \n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Poedit 3.0\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "η μεταβλητή «%s» πρέπει να έχει αριθμητικό τύπο"
+
+#: descriptor.c:125 descriptor.c:156
+#, c-format
+msgid "descriptor %s bound to connection %s does not exist"
+msgstr "ο περιγραφέας %s δεσμευμένος στη σύνδεση %s δεν υπάρχει"
+
+#: descriptor.c:127 descriptor.c:158
+#, c-format
+msgid "descriptor %s bound to the default connection does not exist"
+msgstr "ο περιγραφέας %s δεσμευμένος στη προεπιλεγμένη σύνδεση δεν υπάρχει"
+
+#: descriptor.c:173 descriptor.c:225
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "ο περιγραφέας στοιχείου κεφαλίδας «%d» δεν υπάρχει"
+
+#: descriptor.c:195
+#, c-format
+msgid "nullable is always 1"
+msgstr "nullable είναι πάντα 1"
+
+#: descriptor.c:198
+#, c-format
+msgid "key_member is always 0"
+msgstr "key_member είναι πάντα 0"
+
+#: descriptor.c:292
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "το στοιχείο περιγραφής «%s» δεν έχει υλοποιηθεί"
+
+#: descriptor.c:302
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "το στοιχείο περιγραφής «%s» δεν δύναται να οριστεί"
+
+#: ecpg.c:36
+#, c-format
+msgid ""
+"%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
+"\n"
+msgstr ""
+"%s είναι ο ενσωματωμένος SQL προεπεξεργαστής της PostgreSQL για προγράμματα γραμμένα σε C.\n"
+"\n"
+
+#: ecpg.c:38
+#, c-format
+msgid ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"Χρήση:\n"
+" %s [ΕΠΙΛΟΓΗ]... ΑΡΧΕΙΟ...\n"
+"\n"
+
+#: ecpg.c:41
+#, c-format
+msgid "Options:\n"
+msgstr "Επιλογές:\n"
+
+#: ecpg.c:42
+#, c-format
+msgid ""
+" -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr ""
+" -c δημιούργησε αυτόματα κώδικα σε C από ενσωματωμένο SQL κώδικα·\n"
+" αυτό επηρεάζει την εντολή EXEC SQL TYPE\n"
+
+#: ecpg.c:44
+#, c-format
+msgid ""
+" -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+msgstr ""
+" -C MODE όρισε λειτουργία συμβατότητας; MODE μπορεί να είναι ένα από\n"
+" «INFORMIX», «INFORMIX_SE», «ORACLE»\n"
+
+#: ecpg.c:47
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d παράξε έξοδο αποσφαλμάτωσης parser\n"
+
+#: ecpg.c:49
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D SYMBOL όρισε SYMBOL\n"
+
+#: ecpg.c:50
+#, c-format
+msgid " -h parse a header file, this option includes option \"-c\"\n"
+msgstr " -h ανάλυσε αρχείο header, αυτή η επιλογή περιλαμβάνει την επιλογή «-c»\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i ανάλυσε επίσης αρχεία include του συστήματος\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I DIRECTORY ψάξε στο DIRECTORY για αρχεία include\n"
+
+#: ecpg.c:53
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o OUTFILE γράψε το αποτέλεσμα στο αρχείο OUTFILE\n"
+
+#: ecpg.c:54
+#, c-format
+msgid ""
+" -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr ""
+" -r OPTION καθόρισε τη συμπεριφορά χρόνου εκτέλεσης. OPTION μπορεί να είναι:\n"
+" «no_indicator», «prepare», «questionmarks»\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression εκτέλεσε σε λειτουργία ελέγχου αναδρομής\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr " -t ενεργοποίησε την αυτόματη ολοκλήρωση συναλλαγών\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " -V, --version output version information, then exit\n"
+msgstr " -V, --version εμφάνισε πληροφορίες έκδοσης, στη συνέχεια έξοδος\n"
+
+#: ecpg.c:59
+#, c-format
+msgid " -?, --help show this help, then exit\n"
+msgstr " -?, --help εμφάνισε αυτό το μήνυμα βοήθειας, στη συνέχεια έξοδος\n"
+
+#: ecpg.c:60
+#, c-format
+msgid ""
+"\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr ""
+"\n"
+"Εάν δεν καθοριστεί αρχείο εξόδου, το όνομα σχηματίζεται προσθέτοντας .c στο\n"
+"όνομα αρχείου εισόδου, μετά την αφαίρεση του .pgc, εάν αυτό υπάρχει.\n"
+
+#: ecpg.c:62
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Υποβάλετε αναφορές σφάλματων σε <%s>.\n"
+
+#: ecpg.c:63
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s αρχική σελίδα: <%s>\n"
+
+#: ecpg.c:141
+#, c-format
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s: δεν ήταν δυνατός ο εντοπισμός της ιδίας εκτελέσιμης διαδρομής\n"
+
+#: ecpg.c:176 ecpg.c:333 ecpg.c:344
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: δεν ήταν δυνατό το άνοιγμα του αρχείου «%s»: %s\n"
+
+#: ecpg.c:219 ecpg.c:232 ecpg.c:248 ecpg.c:274
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "Δοκιμάστε «%s --help» για περισσότερες πληροφορίες.\n"
+
+#: ecpg.c:243
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr "%s: η υποστήριξη εντοπισμού σφαλμάτων (-d) του αναλυτή δεν είναι διαθέσιμη\n"
+
+#: ecpg.c:262
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n"
+msgstr "%s, ο ενσωματωμένος προεπεξεργαστής C της PostgreSQL, έκδοση %s\n"
+
+#: ecpg.c:264
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "EXEC SQL INCLUDE ... η αναζήτηση ξεκινάει εδώ:\n"
+
+#: ecpg.c:267
+#, c-format
+msgid "end of search list\n"
+msgstr "τέλος της λίστας αναζήτησης\n"
+
+#: ecpg.c:273
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s: δεν καθορίστηκαν αρχεία εισόδου\n"
+
+#: ecpg.c:477
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "ο δρομέας «%s» έχει δηλωθεί αλλά δεν έχει ανοιχτεί"
+
+#: ecpg.c:490 preproc.y:130
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "δεν ήταν δυνατή η αφαίρεση του αρχείου εξόδου «%s»\n"
+
+#: pgc.l:502
+#, c-format
+msgid "unterminated /* comment"
+msgstr "ατερμάτιστο /* σχόλιο"
+
+#: pgc.l:519
+#, c-format
+msgid "unterminated bit string literal"
+msgstr "ατερμάτιστη bit κυριολεκτική συμβολοσειρά"
+
+#: pgc.l:527
+#, c-format
+msgid "unterminated hexadecimal string literal"
+msgstr "ατερμάτιστη δεκαεξαδική κυριολεκτική συμβολοσειρά"
+
+#: pgc.l:602
+#, c-format
+msgid "invalid bit string literal"
+msgstr "μη έγκυρη bit κυριολεκτική συμβολοσειρά"
+
+#: pgc.l:607
+#, c-format
+msgid "invalid hex string literal"
+msgstr "μη έγκυρη hex κυριολεκτική συμβολοσειρά"
+
+#: pgc.l:625
+#, c-format
+msgid "unhandled previous state in xqs\n"
+msgstr "μη χειρισμένη προηγούμενη κατάσταση σε xqs\n"
+
+#: pgc.l:651 pgc.l:760
+#, c-format
+msgid "unterminated quoted string"
+msgstr "ανολοκλήρωτη συμβολοσειρά με εισαγωγικά"
+
+#: pgc.l:702
+#, c-format
+msgid "unterminated dollar-quoted string"
+msgstr "ατερμάτιστη dollar-quoted συμβολοσειρά"
+
+#: pgc.l:720 pgc.l:740
+#, c-format
+msgid "zero-length delimited identifier"
+msgstr "μηδενικού μήκους οριοθετημένο αναγνωριστικό"
+
+#: pgc.l:751
+#, c-format
+msgid "unterminated quoted identifier"
+msgstr "ατερμάτιστο αναγνωριστικό σε εισαγωγικά"
+
+#: pgc.l:1082
+#, c-format
+msgid "nested /* ... */ comments"
+msgstr "ένθετα /* ... */ σχόλια"
+
+#: pgc.l:1175
+#, c-format
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "λείπει αναγνωριστικό στην εντολή EXEC SQL UNDEF"
+
+#: pgc.l:1193 pgc.l:1206 pgc.l:1222 pgc.l:1235
+#, c-format
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "πάρα πολλές ένθετες συνθήκες EXEC SQL IFDEF"
+
+#: pgc.l:1251 pgc.l:1262 pgc.l:1277 pgc.l:1299
+#, c-format
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "λείπει αντιστοίχιση «EXEC SQL IFDEF» / «EXEC SQL IFNDEF»"
+
+#: pgc.l:1253 pgc.l:1264 pgc.l:1445
+#, c-format
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "λείπει «EXEC SQL ENDIF;»"
+
+#: pgc.l:1279 pgc.l:1301
+#, c-format
+msgid "more than one EXEC SQL ELSE"
+msgstr "περισσότερες από μία EXEC SQL ELSE"
+
+#: pgc.l:1324 pgc.l:1338
+#, c-format
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "μη αντιστοιχισμένο EXEC SQL ENDIF"
+
+#: pgc.l:1393
+#, c-format
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "λείπει αναγνωριστικό στην εντολή EXEC SQL IFDEF"
+
+#: pgc.l:1402
+#, c-format
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "λείπει αναγνωριστικό στην εντολή EXEC SQL DEFINE"
+
+#: pgc.l:1435
+#, c-format
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "συντακτικό σφάλμα στην εντολή EXEC SQL INCLUDE"
+
+#: pgc.l:1485
+#, c-format
+msgid "internal error: unreachable state; please report this to <%s>"
+msgstr "εσωτερικό σφάλμα: μη δυνατή κατάσταση· Παρακαλούμε όπως το αναφέρετε σε <%s>"
+
+#: pgc.l:1637
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr "Σφάλμα: η διαδρομή ενσωμάτωσης «%s/%s» είναι πολύ μακρυά στη γραμμή %d, παρακάμπτεται\n"
+
+#: pgc.l:1660
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr "δεν ήταν δυνατό το άνοιγμα του αρχείου ενσωμάτωσης «%s» στη γραμμή %d"
+
+#: preproc.y:31
+msgid "syntax error"
+msgstr "συντακτικό σφάλμα"
+
+#: preproc.y:84
+#, c-format
+msgid "WARNING: "
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: "
+
+#: preproc.y:87
+#, c-format
+msgid "ERROR: "
+msgstr "ΣΦΑΛΜΑ: "
+
+#: preproc.y:514
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "ο δρομέας «%s» δεν υπάρχει"
+
+#: preproc.y:543
+#, c-format
+msgid "initializer not allowed in type definition"
+msgstr "δεν επιτρέπεται εκκινητής σε ορισμό τύπου"
+
+#: preproc.y:545
+#, c-format
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "το όνομα τύπου «string» είναι δεσμευμένο σε λειτουργία Informix"
+
+#: preproc.y:552 preproc.y:17675
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "ο τύπος «%s» έχει ήδη οριστεί"
+
+#: preproc.y:577 preproc.y:18310 preproc.y:18635 variable.c:621
+#, c-format
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr "οι πολυδιάστατες συστυχίες για απλούς τύπους δεδομένων δεν υποστηρίζονται"
+
+#: preproc.y:599
+#, c-format
+msgid "connection %s is overwritten with %s by DECLARE statement %s"
+msgstr "η σύνδεση %s αντικαθίσταται με %s από τη δήλωση DECLARE %s"
+
+#: preproc.y:1753
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "η επιλογή AT δεν επιτρέπεται σε δήλωση CLOSE DATABASE"
+
+#: preproc.y:2001
+#, c-format
+msgid "AT option not allowed in CONNECT statement"
+msgstr "η επιλογή AT δεν επιτρέπεται σε δήλωση CONNECT"
+
+#: preproc.y:2041
+#, c-format
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "η επιλογή AT δεν επιτρέπεται σε δήλωση DISCONNECT"
+
+#: preproc.y:2096
+#, c-format
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "η επιλογή AT δεν επιτρέπεται σε δήλωση SET CONNECTION"
+
+#: preproc.y:2118
+#, c-format
+msgid "AT option not allowed in TYPE statement"
+msgstr "η επιλογή AT δεν επιτρέπεται σε δήλωση TYPE"
+
+#: preproc.y:2127
+#, c-format
+msgid "AT option not allowed in VAR statement"
+msgstr "η επιλογή AT δεν επιτρέπεται σε δήλωση VAR"
+
+#: preproc.y:2134
+#, c-format
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "η επιλογή AT δεν επιτρέπεται σε δήλωση WHENEVER"
+
+#: preproc.y:2211 preproc.y:2383 preproc.y:2388 preproc.y:2511 preproc.y:4143
+#: preproc.y:4807 preproc.y:5340 preproc.y:5678 preproc.y:5978 preproc.y:7514
+#: preproc.y:9082 preproc.y:9087 preproc.y:11915
+#, c-format
+msgid "unsupported feature will be passed to server"
+msgstr "μη υποστηριζόμενο χαρακτηριστικό που θα προωθηθεί στον διακομιστή"
+
+#: preproc.y:2769
+#, c-format
+msgid "SHOW ALL is not implemented"
+msgstr "SHOW ALL δεν είναι υλοποιημένο"
+
+#: preproc.y:3464
+#, c-format
+msgid "COPY FROM STDIN is not implemented"
+msgstr "COPY FROM STDIN δεν είναι υλοποιημένο"
+
+#: preproc.y:10014 preproc.y:17250
+#, c-format
+msgid "\"database\" cannot be used as cursor name in INFORMIX mode"
+msgstr "το «database» δεν μπορεί να χρησιμοποιηθεί ως όνομα δρομέα σε λειτουργία INFORMIX"
+
+#: preproc.y:10021 preproc.y:17260
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr "η χρήση της μεταβλητής «%s» σε διαφορετικές δηλώσεις προτάσεων δεν υποστηρίζεται"
+
+#: preproc.y:10023 preproc.y:17262
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "ο δρομέας «%s» έχει ήδη οριστεί"
+
+#: preproc.y:10497
+#, c-format
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "μη υποστηριζόμενη πλέον σύνταξη LIMIT #,# που θα προωθηθεί στον διακομιστή"
+
+#: preproc.y:10830 preproc.y:10837
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "υποερώτημα σε FROM πρέπει να έχει ένα alias"
+
+#: preproc.y:16942 preproc.y:16949
+#, c-format
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "CREATE TABLE AS δεν δύναται να ορίσει INTO"
+
+#: preproc.y:16985
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "ανέμενε «@», βρήκε «%s»."
+
+#: preproc.y:16997
+#, c-format
+msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported"
+msgstr "μόνο τα πρωτόκολλα \"TCP\" και \"UNIX\" και ο τύπος βάσης δεδομένων «postgresql» υποστηρίζονται"
+
+#: preproc.y:17000
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "ανέμενε «://», βρήκε «%s»."
+
+#: preproc.y:17005
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr "οι υποδοχές πεδίου-Unix λειτουργούν μόνο στο «localhost» αλλά όχι στο «%s»"
+
+#: preproc.y:17031
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "ανέμενε «postgresql», βρήκε «%s»."
+
+#: preproc.y:17034
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "άκυρη επιλογή σύνδεσης: %s"
+
+#: preproc.y:17043
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "ανέμενε «@» ή «://», βρήκε «%s»."
+
+#: preproc.y:17118 preproc.y:17136
+#, c-format
+msgid "invalid data type"
+msgstr "μη έγκυρος τύπος δεδομένων"
+
+#: preproc.y:17147 preproc.y:17164
+#, c-format
+msgid "incomplete statement"
+msgstr "ανολοκλήρωτη δήλωση"
+
+#: preproc.y:17150 preproc.y:17167
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "μη αναγνωρίσιμο διακριτικό «%s»"
+
+#: preproc.y:17212
+#, c-format
+msgid "name \"%s\" is already declared"
+msgstr "το όνομα «%s» έχει ήδη δηλωθεί"
+
+#: preproc.y:17478
+#, c-format
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr "μόνο οι αριθμητικοί και δεκαδικοί τύποι δεδομένων έχουν όρισμα ακρίβειας/κλίμακας"
+
+#: preproc.y:17490
+#, c-format
+msgid "interval specification not allowed here"
+msgstr "προδιαγραφές διαστήματος δεν επιτρέπονται εδώ"
+
+#: preproc.y:17650 preproc.y:17702
+#, c-format
+msgid "too many levels in nested structure/union definition"
+msgstr "πάρα πολλά επίπεδα σε ένθετο ορισμό δομής/ένωσης"
+
+#: preproc.y:17825
+#, c-format
+msgid "pointers to varchar are not implemented"
+msgstr "δείκτες σε varchar δεν είναι υλοποιημένοι"
+
+#: preproc.y:18276
+#, c-format
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "δεν επιτρέπεται αρχικοποιητής σε εντολή EXEC SQL VAR"
+
+#: preproc.y:18593
+#, c-format
+msgid "arrays of indicators are not allowed on input"
+msgstr "δεν επιτρέπονται δείκτες συστάδων για είσοδο"
+
+#: preproc.y:18780
+#, c-format
+msgid "operator not allowed in variable definition"
+msgstr "δεν επιτρέπεται χειριστής σε ορισμό μεταβλητής"
+
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:18821
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "%s σε ή κοντά σε «%s»"
+
+#: type.c:18 type.c:30
+#, c-format
+msgid "out of memory"
+msgstr "έλλειψη μνήμης"
+
+#: type.c:214 type.c:685
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "μη αναγνωρίσιμος κωδικός τύπου μεταβλητής %d"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "η μεταβλητή «%s» αποκρύπτεται από μια τοπική μεταβλητή διαφορετικού τύπου"
+
+#: type.c:265
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "η μεταβλητή «%s» αποκρύπτεται από μια τοπική μεταβλητή"
+
+#: type.c:277
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr "ο δείκτης μεταβλητής «%s» αποκρύπτεται από μια τοπική μεταβλητή διαφορετικού τύπου"
+
+#: type.c:279
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "ο δείκτης μεταβλητής «%s» αποκρύπτεται από μια τοπική μεταβλητή"
+
+#: type.c:287
+#, c-format
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "ο δείκτης για συστάδα/δείκτη πρέπει να είναι πίνακας/δείκτης"
+
+#: type.c:291
+#, c-format
+msgid "nested arrays are not supported (except strings)"
+msgstr "οι ένθετες συστάδες δεν υποστηρίζονται (εξαιρούνται οι συμβολοσειρές)"
+
+#: type.c:333
+#, c-format
+msgid "indicator for struct has to be a struct"
+msgstr "ο δείκτης για δομή πρέπει να είναι μια δομή"
+
+#: type.c:353 type.c:374 type.c:394
+#, c-format
+msgid "indicator for simple data type has to be simple"
+msgstr "ο δείκτης για απλό τύπο δεδομένων πρέπει να είναι απλός"
+
+#: type.c:625
+#, c-format
+msgid "indicator struct \"%s\" has too few members"
+msgstr "ο δείκτης δομής «%s» έχει πολύ λίγα μέλη"
+
+#: type.c:633
+#, c-format
+msgid "indicator struct \"%s\" has too many members"
+msgstr "ο δείκτης δομής «%s» έχει πάρα πολλά μέλη"
+
+#: type.c:744
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "μη αναγνωρίσιμος κωδικός στοιχείου περιγραφέα %d"
+
+#: variable.c:89 variable.c:116
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "εσφαλμένα σχηματισμένη μεταβλητή «%s»"
+
+#: variable.c:139
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "η μεταβλητή «%s» δεν είναι δείκτης"
+
+#: variable.c:142 variable.c:167
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "η μεταβλητή «%s» δεν είναι δείκτης προς μια δομή ή μια ένωση"
+
+#: variable.c:154
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "η μεταβλητή «%s» δεν είναι ούτε δομή ούτε ένωση"
+
+#: variable.c:164
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "η μεταβλητή «%s» δεν είναι μία συστάδα"
+
+#: variable.c:233 variable.c:255
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "η μεταβλητή «%s» δεν έχει δηλωθεί"
+
+#: variable.c:494
+#, c-format
+msgid "indicator variable must have an integer type"
+msgstr "ο δείκτης μεταβλητής πρέπει να έχει ακέραιο τύπο"
+
+#: variable.c:506
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr "μη αναγνωρίσιμο όνομα τύπου δεδομένων «%s»"
+
+#: variable.c:517 variable.c:525 variable.c:542 variable.c:545
+#, c-format
+msgid "multidimensional arrays are not supported"
+msgstr "οι πολυδιάστατες συστάδες δεν υποστηρίζονται"
+
+#: variable.c:534
+#, c-format
+msgid "multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] "οι δείκτες πολλαπλών επιπέδων (περισσότερα από 2 επίπεδα) δεν υποστηρίζονται· βρέθηκε %d επίπεδο"
+msgstr[1] "οι δείκτες πολλαπλών επιπέδων (περισσότερα από 2 επίπεδα) δεν υποστηρίζονται· βρέθηκαν %d επίπεδα"
+
+#: variable.c:539
+#, c-format
+msgid "pointer to pointer is not supported for this data type"
+msgstr "δεν υποστηρίζεται δείκτης προς δείκτη για αυτόν τον τύπο δεδομένων"
+
+#: variable.c:559
+#, c-format
+msgid "multidimensional arrays for structures are not supported"
+msgstr "οι πολυδιάστατες συστάδες για δομές δεν υποστηρίζονται"
diff --git a/src/interfaces/ecpg/preproc/po/es.po b/src/interfaces/ecpg/preproc/po/es.po
new file mode 100644
index 0000000..a7daca4
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/es.po
@@ -0,0 +1,706 @@
+# Spanish translation file for ecpg
+#
+# Copyright (c) 2009-2021, PostgreSQL Global Development Group
+# This file is distributed under the same license as the PostgreSQL package.
+#
+# Emanuel Calvo Franco <postgres.arg@gmail.com>, 2009.
+# Alvaro Herrera <alvherre@alvh.no-ip.org>, 2009-2012
+# Franco Catena, <francocatena@gmail.com>, 2009
+# Carlos Chapi <carloswaldo@babelruins.org>, 2018, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ecpg (PostgreSQL) 14\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2022-08-07 20:26+0000\n"
+"PO-Revision-Date: 2021-10-13 23:43-0500\n"
+"Last-Translator: Carlos Chapi <carloswaldo@babelruins.org>\n"
+"Language-Team: PgSQL-es-Ayuda <pgsql-es-ayuda@lists.postgresql.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: BlackCAT 1.1\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "la variable «%s» debe tener tipo numérico"
+
+#: descriptor.c:125 descriptor.c:156
+#, c-format
+msgid "descriptor %s bound to connection %s does not exist"
+msgstr "el descriptor %s vinculado a la conexión %s no existe"
+
+#: descriptor.c:127 descriptor.c:158
+#, c-format
+msgid "descriptor %s bound to the default connection does not exist"
+msgstr "el descriptor %s vinculado a la conexión predeterminada no existe"
+
+#: descriptor.c:173 descriptor.c:225
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "no existe el descriptor del elemento de cabecera «%d»"
+
+#: descriptor.c:195
+#, c-format
+msgid "nullable is always 1"
+msgstr "nullable es siempre 1"
+
+#: descriptor.c:198
+#, c-format
+msgid "key_member is always 0"
+msgstr "key_member es siempre 0"
+
+#: descriptor.c:292
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "elemento del descriptor «%s» no está implementado"
+
+#: descriptor.c:302
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "no se puede establecer el elemento del descriptor «%s»"
+
+#: ecpg.c:36
+#, c-format
+msgid ""
+"%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
+"\n"
+msgstr ""
+"%s es el preprocesador de SQL incrustado para programas en C de PostgreSQL.\n"
+"\n"
+
+#: ecpg.c:38
+#, c-format
+msgid ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"Empleo:\n"
+" %s [OPCIÓN]... ARCHIVO...\n"
+"\n"
+
+#: ecpg.c:41
+#, c-format
+msgid "Options:\n"
+msgstr "Opciones:\n"
+
+#: ecpg.c:42
+#, c-format
+msgid ""
+" -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr ""
+" -c genera automáticamente código en C desde código SQL\n"
+" incrustado; esto afecta EXEC SQL TYPE\n"
+
+#: ecpg.c:44
+#, c-format
+msgid ""
+" -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+msgstr ""
+" -C MODO establece el modo de compatibilidad;\n"
+" MODO puede ser \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+
+#: ecpg.c:47
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d genera salida depurada del analizador\n"
+
+#: ecpg.c:49
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D SYMBOL define SYMBOL\n"
+
+#: ecpg.c:50
+#, c-format
+msgid " -h parse a header file, this option includes option \"-c\"\n"
+msgstr " -h analiza un archivo de cabecera; esto incluye «-c»\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i analiza además los archivos de inclusión de sistema\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I DIRECTORIO busca los archivos de inclusión en DIRECTORIO\n"
+
+#: ecpg.c:53
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o ARCHIVO escribe la salida en ARCHIVO\n"
+
+#: ecpg.c:54
+#, c-format
+msgid ""
+" -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr ""
+" -r OPCIÓN especifica el comportamiento en tiempo de ejecución;\n"
+" OPCIÓN puede ser: «no_indicator», «prepare»,\n"
+" «questionmarks»\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression ejecuta en modo de prueba de regresión\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr " -t activa el compromiso (commit) automático de transacciones\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " -V, --version output version information, then exit\n"
+msgstr " -V, --version muestra información de la versión, luego sale\n"
+
+#: ecpg.c:59
+#, c-format
+msgid " -?, --help show this help, then exit\n"
+msgstr " -?, --help muestra esta ayuda, luego sale\n"
+
+#: ecpg.c:60
+#, c-format
+msgid ""
+"\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr ""
+"\n"
+"Si no se especifica un archivo de salida, el nombre se forma agregando .c al\n"
+"archivo de entrada, luego de quitar .pgc si está presente.\n"
+
+#: ecpg.c:62
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Reporte errores a <%s>.\n"
+
+#: ecpg.c:63
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Sitio web de %s: <%s>\n"
+
+#: ecpg.c:141
+#, c-format
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s: no se pudo localizar la ruta de mi propio ejecutable\n"
+
+#: ecpg.c:176 ecpg.c:333 ecpg.c:344
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: no se pudo abrir el archivo «%s»: %s\n"
+
+#: ecpg.c:219 ecpg.c:232 ecpg.c:248 ecpg.c:274
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "Utilice «%s --help» para obtener mayor información.\n"
+
+#: ecpg.c:243
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr "%s: la depuración del analizador (parser, -d) no está disponible)\n"
+
+#: ecpg.c:262
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n"
+msgstr "%s, el preprocesador de C incrustado de PostgreSQL, versión %s\n"
+
+#: ecpg.c:264
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "EXEC SQL INCLUDE ... la búsqueda comienza aquí:\n"
+
+#: ecpg.c:267
+#, c-format
+msgid "end of search list\n"
+msgstr "fin de la lista de búsqueda\n"
+
+#: ecpg.c:273
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s: no se especificaron archivos de entrada\n"
+
+#: ecpg.c:477
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "el cursor «%s» fue declarado pero no abierto"
+
+#: ecpg.c:490 preproc.y:130
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "no se pudo eliminar el archivo de salida «%s»\n"
+
+#: pgc.l:502
+#, c-format
+msgid "unterminated /* comment"
+msgstr "comentario /* no cerrado"
+
+#: pgc.l:519
+#, c-format
+msgid "unterminated bit string literal"
+msgstr "una cadena de bits está inconclusa"
+
+#: pgc.l:527
+#, c-format
+msgid "unterminated hexadecimal string literal"
+msgstr "una cadena hexadecimal está inconclusa"
+
+#: pgc.l:602
+#, c-format
+msgid "invalid bit string literal"
+msgstr "cadena de bits no válida"
+
+#: pgc.l:607
+#, c-format
+msgid "invalid hex string literal"
+msgstr "cadena hexadecimal no válida"
+
+#: pgc.l:625
+#, c-format
+msgid "unhandled previous state in xqs\n"
+msgstr "estado previo no manejado en xqs\n"
+
+#: pgc.l:651 pgc.l:760
+#, c-format
+msgid "unterminated quoted string"
+msgstr "una cadena en comillas está inconclusa"
+
+#: pgc.l:702
+#, c-format
+msgid "unterminated dollar-quoted string"
+msgstr "una cadena separada por $ está inconclusa"
+
+#: pgc.l:720 pgc.l:740
+#, c-format
+msgid "zero-length delimited identifier"
+msgstr "identificador delimitado de longitud cero"
+
+#: pgc.l:751
+#, c-format
+msgid "unterminated quoted identifier"
+msgstr "un identificador en comillas está inconcluso"
+
+#: pgc.l:1082
+#, c-format
+msgid "nested /* ... */ comments"
+msgstr "comentarios /* ... */ anidados"
+
+#: pgc.l:1175
+#, c-format
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "falta un identificador en la orden EXEC SQL UNDEF"
+
+#: pgc.l:1193 pgc.l:1206 pgc.l:1222 pgc.l:1235
+#, c-format
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "demasiadas condiciones EXEC SQL IFDEF anidadas"
+
+#: pgc.l:1251 pgc.l:1262 pgc.l:1277 pgc.l:1299
+#, c-format
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "falta el «EXEC SQL IFDEF» / «EXEC SQL IFNDEF»"
+
+#: pgc.l:1253 pgc.l:1264 pgc.l:1445
+#, c-format
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "falta el «EXEC SQL ENDIF;»"
+
+#: pgc.l:1279 pgc.l:1301
+#, c-format
+msgid "more than one EXEC SQL ELSE"
+msgstr "hay más de un EXEC SQL ELSE"
+
+#: pgc.l:1324 pgc.l:1338
+#, c-format
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "EXEC SQL ENDIF sin coincidencia"
+
+#: pgc.l:1393
+#, c-format
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "identificador faltante en la orden EXEC SQL IFDEF"
+
+#: pgc.l:1402
+#, c-format
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "identificador faltante en la orden EXEC SQL DEFINE"
+
+#: pgc.l:1435
+#, c-format
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "error de sintaxis en orden EXEC SQL INCLUDE"
+
+#: pgc.l:1485
+#, c-format
+msgid "internal error: unreachable state; please report this to <%s>"
+msgstr "error interno: estado no esperado; por favor reporte a <%s>"
+
+#: pgc.l:1637
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr "Error: ruta de inclusión «%s/%s» es demasiada larga en la línea %d, omitiendo\n"
+
+#: pgc.l:1660
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr "no se pudo abrir el archivo a incluir «%s» en la línea %d"
+
+#: preproc.y:31
+msgid "syntax error"
+msgstr "error de sintaxis"
+
+#: preproc.y:84
+#, c-format
+msgid "WARNING: "
+msgstr "ATENCIÓN: "
+
+#: preproc.y:87
+#, c-format
+msgid "ERROR: "
+msgstr "ERROR: "
+
+#: preproc.y:514
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "no existe el cursor «%s»"
+
+#: preproc.y:543
+#, c-format
+msgid "initializer not allowed in type definition"
+msgstr "inicializador no permitido en definición de tipo"
+
+#: preproc.y:545
+#, c-format
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "el nombre de tipo «string» está reservado en modo Informix"
+
+#: preproc.y:552 preproc.y:17675
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "el tipo «%s» ya está definido"
+
+#: preproc.y:577 preproc.y:18310 preproc.y:18635 variable.c:621
+#, c-format
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr "los arrays multidimensionales para tipos de datos simples no están soportados"
+
+#: preproc.y:599
+#, c-format
+msgid "connection %s is overwritten with %s by DECLARE statement %s"
+msgstr "la conexión %s es sobrescrita con %s por la sentencia DECLARE %s"
+
+#: preproc.y:1753
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "la opción AT no está permitida en la sentencia CLOSE DATABASE"
+
+#: preproc.y:2001
+#, c-format
+msgid "AT option not allowed in CONNECT statement"
+msgstr "la opción AT no está permitida en la sentencia CONNECT"
+
+#: preproc.y:2041
+#, c-format
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "la opción AT no está permitida en la sentencia DISCONNECT"
+
+#: preproc.y:2096
+#, c-format
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "la opción AT no está permitida en la sentencia SET CONNECTION"
+
+#: preproc.y:2118
+#, c-format
+msgid "AT option not allowed in TYPE statement"
+msgstr "la opción AT no está permitida en la sentencia TYPE"
+
+#: preproc.y:2127
+#, c-format
+msgid "AT option not allowed in VAR statement"
+msgstr "la opción AT no está permitida en la sentencia VAR"
+
+#: preproc.y:2134
+#, c-format
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "la opción AT no está permitida en la sentencia WHENEVER"
+
+#: preproc.y:2211 preproc.y:2383 preproc.y:2388 preproc.y:2511 preproc.y:4143
+#: preproc.y:4807 preproc.y:5340 preproc.y:5678 preproc.y:5978 preproc.y:7514
+#: preproc.y:9082 preproc.y:9087 preproc.y:11915
+#, c-format
+msgid "unsupported feature will be passed to server"
+msgstr "característica no soportada será pasada al servidor"
+
+#: preproc.y:2769
+#, c-format
+msgid "SHOW ALL is not implemented"
+msgstr "SHOW ALL no está implementado"
+
+#: preproc.y:3464
+#, c-format
+msgid "COPY FROM STDIN is not implemented"
+msgstr "COPY FROM STDIN no está implementado"
+
+#: preproc.y:10014 preproc.y:17250
+#, c-format
+msgid "\"database\" cannot be used as cursor name in INFORMIX mode"
+msgstr "no se puede usar «database» como nombre de cursor en modo INFORMIX"
+
+#: preproc.y:10021 preproc.y:17260
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr "el uso de la variable «%s» en diferentes sentencias declare no está soportado"
+
+#: preproc.y:10023 preproc.y:17262
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "el cursor «%s» ya está definido"
+
+#: preproc.y:10497
+#, c-format
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "la sintaxis LIMIT #,# que ya no está soportada ha sido pasada al servidor"
+
+#: preproc.y:10830 preproc.y:10837
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "las subconsultas en FROM deben tener un alias"
+
+#: preproc.y:16942 preproc.y:16949
+#, c-format
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "CREATE TABLE AS no puede especificar INTO"
+
+#: preproc.y:16985
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "se esperaba «@», se encontró «%s»"
+
+#: preproc.y:16997
+#, c-format
+msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported"
+msgstr "sólo los protocolos «tcp» y «unix» y tipo de bases de datos «postgresql» están soportados"
+
+#: preproc.y:17000
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "se esperaba «://», se encontró «%s»"
+
+#: preproc.y:17005
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr "los sockets de dominio unix sólo trabajan en «localhost» pero no en «%s»"
+
+#: preproc.y:17031
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "se esperaba «postgresql», se encontró «%s»"
+
+#: preproc.y:17034
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "tipo de conexión no válido: %s"
+
+#: preproc.y:17043
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "se esperaba «@» o «://», se encontró «%s»"
+
+#: preproc.y:17118 preproc.y:17136
+#, c-format
+msgid "invalid data type"
+msgstr "tipo de dato no válido"
+
+#: preproc.y:17147 preproc.y:17164
+#, c-format
+msgid "incomplete statement"
+msgstr "sentencia incompleta"
+
+#: preproc.y:17150 preproc.y:17167
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "elemento «%s» no reconocido"
+
+#: preproc.y:17212
+#, c-format
+msgid "name \"%s\" is already declared"
+msgstr "el nombre «%s» ya está declarado"
+
+#: preproc.y:17478
+#, c-format
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr "sólo los tipos de dato numeric y decimal tienen argumento de precisión/escala"
+
+#: preproc.y:17490
+#, c-format
+msgid "interval specification not allowed here"
+msgstr "la especificación de intervalo no está permitida aquí"
+
+#: preproc.y:17650 preproc.y:17702
+#, c-format
+msgid "too many levels in nested structure/union definition"
+msgstr "demasiados niveles en la definición anidada de estructura/unión"
+
+#: preproc.y:17825
+#, c-format
+msgid "pointers to varchar are not implemented"
+msgstr "los punteros a varchar no están implementados"
+
+#: preproc.y:18276
+#, c-format
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "inicializador no permitido en la orden EXEC SQL VAR"
+
+#: preproc.y:18593
+#, c-format
+msgid "arrays of indicators are not allowed on input"
+msgstr "no se permiten los arrays de indicadores en la entrada"
+
+#: preproc.y:18780
+#, c-format
+msgid "operator not allowed in variable definition"
+msgstr "operador no permitido en definición de variable"
+
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:18821
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "%s en o cerca de «%s»"
+
+#: type.c:18 type.c:30
+#, c-format
+msgid "out of memory"
+msgstr "memoria agotada"
+
+#: type.c:214 type.c:685
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "código de tipo de variable %d no reconocido"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "la variable «%s» está escondida por una variable local de tipo diferente"
+
+#: type.c:265
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "la variable «%s» está escondida por una variable local"
+
+#: type.c:277
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr "la variable de indicador «%s» está escondida por una variable local de tipo diferente"
+
+#: type.c:279
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "variable de indicador «%s» está escondida por una variable local"
+
+#: type.c:287
+#, c-format
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "indicador para array/puntero debe ser array/puntero"
+
+#: type.c:291
+#, c-format
+msgid "nested arrays are not supported (except strings)"
+msgstr "no se permiten arrays anidados (excepto cadenas de caracteres)"
+
+#: type.c:333
+#, c-format
+msgid "indicator for struct has to be a struct"
+msgstr "el indicador para struct debe ser struct"
+
+#: type.c:353 type.c:374 type.c:394
+#, c-format
+msgid "indicator for simple data type has to be simple"
+msgstr "el indicador para tipo dato simple debe ser simple"
+
+#: type.c:625
+#, c-format
+msgid "indicator struct \"%s\" has too few members"
+msgstr "struct para indicador «%s» no tiene suficientes miembros"
+
+#: type.c:633
+#, c-format
+msgid "indicator struct \"%s\" has too many members"
+msgstr "struct para indicador «%s» tiene demasiados miembros"
+
+#: type.c:744
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "código de descriptor de elemento %d no reconocido"
+
+#: variable.c:89 variable.c:116
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "variable formada incorrectamente «%s»"
+
+#: variable.c:139
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "la variable «%s» no es un puntero"
+
+#: variable.c:142 variable.c:167
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "la variable «%s» no es un puntero a una estructura o unión"
+
+#: variable.c:154
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "la variable «%s» no es una estructura ni una unión"
+
+#: variable.c:164
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "la variable «%s» no es un array"
+
+#: variable.c:233 variable.c:255
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "la variable «%s» no está declarada"
+
+#: variable.c:494
+#, c-format
+msgid "indicator variable must have an integer type"
+msgstr "la variable de un indicador debe ser de algún tipo numérico entero"
+
+#: variable.c:506
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr "nombre de tipo de datos «%s» no reconocido"
+
+#: variable.c:517 variable.c:525 variable.c:542 variable.c:545
+#, c-format
+msgid "multidimensional arrays are not supported"
+msgstr "los arrays multidimensionales no están soportados"
+
+#: variable.c:534
+#, c-format
+msgid "multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] "no se soportan los punteros multinivel (más de 2); se encontró 1 nivel"
+msgstr[1] "no se soportan los punteros multinivel (más de 2); se encontraron %d niveles"
+
+#: variable.c:539
+#, c-format
+msgid "pointer to pointer is not supported for this data type"
+msgstr "los punteros a puntero no están soportados para este tipo de dato"
+
+#: variable.c:559
+#, c-format
+msgid "multidimensional arrays for structures are not supported"
+msgstr "los arrays multidimensionales para estructuras no están soportados"
diff --git a/src/interfaces/ecpg/preproc/po/fr.po b/src/interfaces/ecpg/preproc/po/fr.po
new file mode 100644
index 0000000..5b09eb1
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/fr.po
@@ -0,0 +1,757 @@
+# translation of ecpg.po to fr_fr
+# french message translation file for ecpg
+#
+# Use these quotes: « %s »
+#
+# Guillaume Lelarge <guillaume@lelarge.info>, 2009.
+# Stéphane Schildknecht <stephane.schildknecht@dalibo.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: PostgreSQL 14\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2021-08-27 02:09+0000\n"
+"PO-Revision-Date: 2021-08-27 17:30+0200\n"
+"Last-Translator: Guillaume Lelarge <guillaume@lelarge.info>\n"
+"Language-Team: PostgreSQLfr <pgsql-fr-generale@postgresql.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Poedit 3.0\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "la variable « %s » doit avoir un type numeric"
+
+#: descriptor.c:125 descriptor.c:156
+#, c-format
+msgid "descriptor %s bound to connection %s does not exist"
+msgstr "le descripteur %s lié à la connexion %s n'existe pas"
+
+#: descriptor.c:127 descriptor.c:158
+#, c-format
+msgid "descriptor %s bound to the default connection does not exist"
+msgstr "le descripteur %s lié à la connexion par défaut n'existe pas"
+
+#: descriptor.c:173 descriptor.c:225
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "l'élément d'en-tête du descripteur « %d » n'existe pas"
+
+#: descriptor.c:195
+#, c-format
+msgid "nullable is always 1"
+msgstr "nullable vaut toujours 1"
+
+#: descriptor.c:198
+#, c-format
+msgid "key_member is always 0"
+msgstr "key_member vaut toujours 0"
+
+#: descriptor.c:292
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "l'élément du descripteur « %s » n'est pas implanté"
+
+#: descriptor.c:302
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "l'élément du descripteur « %s » ne peut pas être initialisé"
+
+#: ecpg.c:36
+#, c-format
+msgid ""
+"%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
+"\n"
+msgstr ""
+"%s est le préprocesseur SQL embarqué de PostgreSQL pour les programmes C.\n"
+"\n"
+
+#: ecpg.c:38
+#, c-format
+msgid ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"Usage:\n"
+" %s [OPTION]... FICHIER...\n"
+"\n"
+
+#: ecpg.c:41
+#, c-format
+msgid "Options:\n"
+msgstr "Options :\n"
+
+#: ecpg.c:42
+#, c-format
+msgid ""
+" -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr ""
+" -c produit automatiquement le code C à partir du code SQL\n"
+" embarqué ; ceci affecte EXEC SQL TYPE\n"
+
+#: ecpg.c:44
+#, c-format
+msgid ""
+" -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+msgstr ""
+" -C MODE configure le mode de compatibilité ; MODE peut être\n"
+" « INFORMIX », « INFORMIX_SE » ou « ORACLE »\n"
+
+#: ecpg.c:47
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d produit la sortie de débogage de l'analyseur\n"
+
+#: ecpg.c:49
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D SYMBOLE définit SYMBOLE\n"
+
+#: ecpg.c:50
+#, c-format
+msgid " -h parse a header file, this option includes option \"-c\"\n"
+msgstr ""
+" -h analyse un fichier d'en-tête, cette option inclut l'option\n"
+" « -c »\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i analyse en plus les fichiers d'en-tête systèmes\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I RÉPERTOIRE recherche les fichiers d'en-têtes dans RÉPERTOIRE\n"
+
+#: ecpg.c:53
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o FICHIER écrit le résultat dans FICHIER\n"
+
+#: ecpg.c:54
+#, c-format
+msgid ""
+" -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr ""
+" -r OPTION indique le comportement à l'exécution ; OPTION peut valoir :\n"
+" « no_indicator », « prepare », « questionmarks »\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression s'exécute en mode de tests des régressions\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr " -t active la validation automatique des transactions\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " -V, --version output version information, then exit\n"
+msgstr " -V, --version affiche la version et quitte\n"
+
+#: ecpg.c:59
+#, c-format
+msgid " -?, --help show this help, then exit\n"
+msgstr " -?, --help affiche cette aide et quitte\n"
+
+#: ecpg.c:60
+#, c-format
+msgid ""
+"\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr ""
+"\n"
+"Si aucun nom de fichier en sortie n'est fourni, le nom est formaté en ajoutant\n"
+"le suffixe .c au nom du fichier en entrée après avoir supprimé le suffixe .pgc\n"
+"s'il est présent.\n"
+
+#: ecpg.c:62
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Rapporter les bogues à <%s>.\n"
+
+#: ecpg.c:63
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Page d'accueil de %s : <%s>\n"
+
+#: ecpg.c:141
+#, c-format
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s : n'a pas pu localiser le chemin de mon propre exécutable\n"
+
+#: ecpg.c:176 ecpg.c:333 ecpg.c:344
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s : n'a pas pu ouvrir le fichier « %s » : %s\n"
+
+#: ecpg.c:219 ecpg.c:232 ecpg.c:248 ecpg.c:274
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "Essayer « %s --help » pour plus d'informations.\n"
+
+#: ecpg.c:243
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr "%s : support de débogage de l'analyseur (-d) non disponible\n"
+
+#: ecpg.c:262
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n"
+msgstr "%s, le préprocesseur C embarqué de PostgreSQL, version %s\n"
+
+#: ecpg.c:264
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "la recherche EXEC SQL INCLUDE ... commence ici :\n"
+
+#: ecpg.c:267
+#, c-format
+msgid "end of search list\n"
+msgstr "fin de la liste de recherche\n"
+
+#: ecpg.c:273
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s : aucun fichier précisé en entrée\n"
+
+#: ecpg.c:477
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "le curseur « %s » est déclaré mais non ouvert"
+
+#: ecpg.c:490 preproc.y:130
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "n'a pas pu supprimer le fichier « %s » en sortie\n"
+
+#: pgc.l:502
+#, c-format
+msgid "unterminated /* comment"
+msgstr "commentaire /* non terminé"
+
+#: pgc.l:519
+#, c-format
+msgid "unterminated bit string literal"
+msgstr "chaîne bit litéral non terminée"
+
+#: pgc.l:527
+#, c-format
+msgid "unterminated hexadecimal string literal"
+msgstr "chaîne hexadécimale litérale non terminée"
+
+#: pgc.l:602
+#, c-format
+msgid "invalid bit string literal"
+msgstr "chaîne bit litéral invalide"
+
+#: pgc.l:607
+#, c-format
+msgid "invalid hex string literal"
+msgstr "chaîne hexadécimale litéralle invalide"
+
+#: pgc.l:625
+#, c-format
+msgid "unhandled previous state in xqs\n"
+msgstr "état précédent non géré dans xqs\n"
+
+#: pgc.l:651 pgc.l:760
+#, c-format
+msgid "unterminated quoted string"
+msgstr "chaîne entre guillemets non terminée"
+
+#: pgc.l:702
+#, c-format
+msgid "unterminated dollar-quoted string"
+msgstr "chaîne entre guillemets dollars non terminée"
+
+#: pgc.l:720 pgc.l:740
+#, c-format
+msgid "zero-length delimited identifier"
+msgstr "identifiant délimité de longueur nulle"
+
+#: pgc.l:751
+#, c-format
+msgid "unterminated quoted identifier"
+msgstr "identifiant entre guillemets non terminé"
+
+#: pgc.l:1082
+#, c-format
+msgid "nested /* ... */ comments"
+msgstr "commentaires /* ... */ imbriqués"
+
+#: pgc.l:1175
+#, c-format
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "identifiant manquant dans la commande EXEC SQL UNDEF"
+
+#: pgc.l:1193 pgc.l:1206 pgc.l:1222 pgc.l:1235
+#, c-format
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "trop de conditions EXEC SQL IFDEF imbriquées"
+
+#: pgc.l:1251 pgc.l:1262 pgc.l:1277 pgc.l:1299
+#, c-format
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "correspondance manquante « EXEC SQL IFDEF » / « EXEC SQL IFNDEF »"
+
+#: pgc.l:1253 pgc.l:1264 pgc.l:1445
+#, c-format
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "« EXEC SQL ENDIF; » manquant"
+
+#: pgc.l:1279 pgc.l:1301
+#, c-format
+msgid "more than one EXEC SQL ELSE"
+msgstr "plusieurs EXEC SQL ELSE"
+
+#: pgc.l:1324 pgc.l:1338
+#, c-format
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "EXEC SQL ENDIF différent"
+
+#: pgc.l:1393
+#, c-format
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "identifiant manquant dans la commande EXEC SQL IFDEF"
+
+#: pgc.l:1402
+#, c-format
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "identifiant manquant dans la commande EXEC SQL DEFINE"
+
+#: pgc.l:1435
+#, c-format
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "erreur de syntaxe dans la commande EXEC SQL INCLUDE"
+
+#: pgc.l:1485
+#, c-format
+msgid "internal error: unreachable state; please report this to <%s>"
+msgstr "erreur interne : l'état ne peut être atteint ; merci de rapporter ceci à <%s>"
+
+#: pgc.l:1637
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr ""
+"Erreur : le chemin d'en-tête « %s/%s » est trop long sur la ligne %d,\n"
+"ignoré\n"
+
+#: pgc.l:1660
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr "n'a pas pu ouvrir le fichier d'en-tête « %s » sur la ligne %d"
+
+#: preproc.y:31
+msgid "syntax error"
+msgstr "erreur de syntaxe"
+
+#: preproc.y:84
+#, c-format
+msgid "WARNING: "
+msgstr "ATTENTION : "
+
+#: preproc.y:87
+#, c-format
+msgid "ERROR: "
+msgstr "ERREUR : "
+
+#: preproc.y:514
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "le curseur « %s » n'existe pas"
+
+#: preproc.y:543
+#, c-format
+msgid "initializer not allowed in type definition"
+msgstr "initialiseur non autorisé dans la définition du type"
+
+#: preproc.y:545
+#, c-format
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "le nom du type « string » est réservé dans le mode Informix"
+
+#: preproc.y:552 preproc.y:17675
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "le type « %s » est déjà défini"
+
+#: preproc.y:577 preproc.y:18310 preproc.y:18635 variable.c:621
+#, c-format
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr ""
+"les tableaux multi-dimensionnels pour les types de données simples ne sont\n"
+"pas supportés"
+
+#: preproc.y:599
+#, c-format
+msgid "connection %s is overwritten with %s by DECLARE statement %s"
+msgstr "la connexion %s est surchargée avec %s par l'instruction DECLARE %s"
+
+#: preproc.y:1753
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "option AT non autorisée dans une instruction CLOSE DATABASE"
+
+#: preproc.y:2001
+#, c-format
+msgid "AT option not allowed in CONNECT statement"
+msgstr "option AT non autorisée dans une instruction CONNECT"
+
+#: preproc.y:2041
+#, c-format
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "option AT non autorisée dans une instruction DISCONNECT"
+
+#: preproc.y:2096
+#, c-format
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "option AT non autorisée dans une instruction SET CONNECTION"
+
+#: preproc.y:2118
+#, c-format
+msgid "AT option not allowed in TYPE statement"
+msgstr "option AT non autorisée dans une instruction TYPE"
+
+#: preproc.y:2127
+#, c-format
+msgid "AT option not allowed in VAR statement"
+msgstr "option AT non autorisée dans une instruction VAR"
+
+#: preproc.y:2134
+#, c-format
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "option AT non autorisée dans une instruction WHENEVER"
+
+#: preproc.y:2211 preproc.y:2383 preproc.y:2388 preproc.y:2511 preproc.y:4143 preproc.y:4807
+#: preproc.y:5340 preproc.y:5678 preproc.y:5978 preproc.y:7514 preproc.y:9082 preproc.y:9087
+#: preproc.y:11915
+#, c-format
+msgid "unsupported feature will be passed to server"
+msgstr "la fonctionnalité non supportée sera passée au serveur"
+
+#: preproc.y:2769
+#, c-format
+msgid "SHOW ALL is not implemented"
+msgstr "SHOW ALL n'est pas implanté"
+
+#: preproc.y:3464
+#, c-format
+msgid "COPY FROM STDIN is not implemented"
+msgstr "COPY FROM STDIN n'est pas implanté"
+
+#: preproc.y:10014 preproc.y:17250
+#, c-format
+msgid "\"database\" cannot be used as cursor name in INFORMIX mode"
+msgstr "« database » ne peut pas être utilisé comme nom de curseur dans le mode INFORMIX"
+
+#: preproc.y:10021 preproc.y:17260
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr ""
+"l'utilisation de la variable « %s » dans différentes instructions de déclaration\n"
+"n'est pas supportée"
+
+#: preproc.y:10023 preproc.y:17262
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "le curseur « %s » est déjà défini"
+
+#: preproc.y:10497
+#, c-format
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "la syntaxe obsolète LIMIT #,# a été passée au serveur"
+
+#: preproc.y:10830 preproc.y:10837
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "la sous-requête du FROM doit avoir un alias"
+
+#: preproc.y:16942 preproc.y:16949
+#, c-format
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "CREATE TABLE AS ne peut pas indiquer INTO"
+
+#: preproc.y:16985
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "« @ » attendu, « %s » trouvé"
+
+#: preproc.y:16997
+#, c-format
+msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported"
+msgstr ""
+"seuls les protocoles « tcp » et « unix » et les types de base de données\n"
+"« postgresql » sont supportés"
+
+#: preproc.y:17000
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "« :// » attendu, « %s » trouvé"
+
+#: preproc.y:17005
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr "les sockets de domaine Unix fonctionnent seulement sur « localhost », mais pas sur « %s »"
+
+#: preproc.y:17031
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "« postgresql » attendu, « %s » trouvé"
+
+#: preproc.y:17034
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "type de connexion invalide : %s"
+
+#: preproc.y:17043
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "« @ » ou « :// » attendu, « %s » trouvé"
+
+#: preproc.y:17118 preproc.y:17136
+#, c-format
+msgid "invalid data type"
+msgstr "type de données invalide"
+
+#: preproc.y:17147 preproc.y:17164
+#, c-format
+msgid "incomplete statement"
+msgstr "instruction incomplète"
+
+#: preproc.y:17150 preproc.y:17167
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "jeton « %s » non reconnu"
+
+#: preproc.y:17212
+#, c-format
+msgid "name \"%s\" is already declared"
+msgstr "le nom « %s » est déjà défini"
+
+#: preproc.y:17478
+#, c-format
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr ""
+"seuls les types de données numeric et decimal ont des arguments de\n"
+"précision et d'échelle"
+
+#: preproc.y:17490
+#, c-format
+msgid "interval specification not allowed here"
+msgstr "interval de spécification non autorisé ici"
+
+#: preproc.y:17650 preproc.y:17702
+#, c-format
+msgid "too many levels in nested structure/union definition"
+msgstr "trop de niveaux dans la définition de structure/union imbriquée"
+
+#: preproc.y:17825
+#, c-format
+msgid "pointers to varchar are not implemented"
+msgstr "les pointeurs sur des chaînes de caractères (varchar) ne sont pas implantés"
+
+#: preproc.y:18276
+#, c-format
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "initialiseur non autorisé dans la commande EXEC SQL VAR"
+
+#: preproc.y:18593
+#, c-format
+msgid "arrays of indicators are not allowed on input"
+msgstr "les tableaux d'indicateurs ne sont pas autorisés en entrée"
+
+#: preproc.y:18780
+#, c-format
+msgid "operator not allowed in variable definition"
+msgstr "opérateur non autorisé dans la définition de la variable"
+
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:18821
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "%s sur ou près de « %s »"
+
+#: type.c:18 type.c:30
+#, c-format
+msgid "out of memory"
+msgstr "mémoire épuisée"
+
+#: type.c:214 type.c:685
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "code %d du type de variable non reconnu"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "la variable « %s » est cachée par une variable locale d'un type différent"
+
+#: type.c:265
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "la variable « %s » est cachée par une variable locale"
+
+#: type.c:277
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr ""
+"la variable indicateur « %s » est caché par une variable locale d'un type\n"
+"différent"
+
+#: type.c:279
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "la variable indicateur « %s » est cachée par une variable locale"
+
+#: type.c:287
+#, c-format
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "l'indicateur pour le tableau/pointeur doit être tableau/pointeur"
+
+#: type.c:291
+#, c-format
+msgid "nested arrays are not supported (except strings)"
+msgstr ""
+"les tableaux imbriqués ne sont pas supportés (sauf les chaînes de\n"
+"caractères)"
+
+#: type.c:333
+#, c-format
+msgid "indicator for struct has to be a struct"
+msgstr "l'indicateur d'un struct doit être un struct"
+
+#: type.c:353 type.c:374 type.c:394
+#, c-format
+msgid "indicator for simple data type has to be simple"
+msgstr "l'indicateur d'un type de données simple doit être simple"
+
+#: type.c:625
+#, c-format
+msgid "indicator struct \"%s\" has too few members"
+msgstr "le struct indicateur « %s » a trop peu de membres"
+
+#: type.c:633
+#, c-format
+msgid "indicator struct \"%s\" has too many members"
+msgstr "le struct indicateur « %s » a trop de membres"
+
+#: type.c:744
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "code %d de l'élément du descripteur non reconnu"
+
+#: variable.c:89 variable.c:116
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "variable « %s » mal formée"
+
+#: variable.c:139
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "la variable « %s » n'est pas un pointeur"
+
+#: variable.c:142 variable.c:167
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "la variable « %s » n'est pas un pointeur vers une structure ou une union"
+
+#: variable.c:154
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "la variable « %s » n'est ni une structure ni une union"
+
+#: variable.c:164
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "la variable « %s » n'est pas un tableau"
+
+#: variable.c:233 variable.c:255
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "la variable « %s » n'est pas déclarée"
+
+#: variable.c:494
+#, c-format
+msgid "indicator variable must have an integer type"
+msgstr "la variable d'indicateur doit avoir un type integer"
+
+#: variable.c:506
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr "nom « %s » non reconnu pour un type de données"
+
+#: variable.c:517 variable.c:525 variable.c:542 variable.c:545
+#, c-format
+msgid "multidimensional arrays are not supported"
+msgstr "les tableaux multidimensionnels ne sont pas supportés"
+
+#: variable.c:534
+#, c-format
+msgid "multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] ""
+"les pointeurs multi-niveaux (plus de deux) ne sont pas supportés :\n"
+"%d niveau trouvé"
+msgstr[1] ""
+"les pointeurs multi-niveaux (plus de deux) ne sont pas supportés :\n"
+"%d niveaux trouvés"
+
+#: variable.c:539
+#, c-format
+msgid "pointer to pointer is not supported for this data type"
+msgstr "ce type de données ne supporte pas les pointeurs de pointeur"
+
+#: variable.c:559
+#, c-format
+msgid "multidimensional arrays for structures are not supported"
+msgstr "les tableaux multidimensionnels ne sont pas supportés pour les structures"
+
+#~ msgid "declared name %s is already defined"
+#~ msgstr "le nom déclaré %s est déjà défini"
+
+#~ msgid "COPY TO STDIN is not possible"
+#~ msgstr "COPY TO STDIN n'est pas possible"
+
+#~ msgid "COPY FROM STDOUT is not possible"
+#~ msgstr "COPY FROM STDOUT n'est pas possible"
+
+#~ msgid "NEW used in query that is not in a rule"
+#~ msgstr "NEW utilisé dans une requête qui n'est pas dans une règle"
+
+#~ msgid "OLD used in query that is not in a rule"
+#~ msgstr "OLD utilisé dans une requête qui n'est pas dans une règle"
+
+#~ msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE"
+#~ msgstr "une contrainte déclarée INITIALLY DEFERRED doit être DEFERRABLE"
+
+#~ msgid "AT option not allowed in DEALLOCATE statement"
+#~ msgstr "option AT non autorisée dans une instruction DEALLOCATE"
+
+#~ msgid " --version output version information, then exit\n"
+#~ msgstr " --version affiche la version et quitte\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Rapporter les bogues à <pgsql-bugs@lists.postgresql.org>.\n"
+
+#~ msgid "using unsupported DESCRIBE statement"
+#~ msgstr "utilisation de l'instruction DESCRIBE non supporté"
diff --git a/src/interfaces/ecpg/preproc/po/it.po b/src/interfaces/ecpg/preproc/po/it.po
new file mode 100644
index 0000000..bfdd9ea
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/it.po
@@ -0,0 +1,679 @@
+#
+# ecpg.po
+# Italian message translation file for ecpg
+#
+# For development and bug report please use:
+# https://github.com/dvarrazzo/postgresql-it
+#
+# Copyright (C) 2012-2017 PostgreSQL Global Development Group
+# Copyright (C) 2010, Associazione Culturale ITPUG
+#
+# Daniele Varrazzo <daniele.varrazzo@gmail.com>, 2012-2017.
+# Maurizio Totti <maurizio.totti@gmail.com>, 2010.
+#
+# This file is distributed under the same license as the PostgreSQL package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ecpg (PostgreSQL) 11\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
+"POT-Creation-Date: 2018-10-08 14:08+0000\n"
+"PO-Revision-Date: 2018-10-08 21:54+0100\n"
+"Last-Translator: Daniele Varrazzo <daniele.varrazzo@gmail.com>\n"
+"Language-Team: https://github.com/dvarrazzo/postgresql-it\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: Poedit 2.0.6\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "la variabile \"%s\" deve essere di tipo numerico"
+
+#: descriptor.c:124 descriptor.c:146
+#, c-format
+msgid "descriptor \"%s\" does not exist"
+msgstr "il descrittore \"%s\" non esiste"
+
+#: descriptor.c:161 descriptor.c:213
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "la voce \"%d\" dell'header del descrittore non esiste"
+
+#: descriptor.c:183
+#, c-format
+msgid "nullable is always 1"
+msgstr "nullable è sempre 1"
+
+#: descriptor.c:186
+#, c-format
+msgid "key_member is always 0"
+msgstr "key_member è sempre 0"
+
+#: descriptor.c:280
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "la voce \"%s\" del descrittore non è implementata"
+
+#: descriptor.c:290
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "la voce \"%s\" del descrittore non può essere impostata"
+
+#: ecpg.c:35
+#, c-format
+msgid ""
+"%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
+"\n"
+msgstr ""
+"%s è il preprocessore SQL embedded di PostgreSQL per programmi scritti in C.\n"
+"\n"
+
+#: ecpg.c:37
+#, c-format
+msgid ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"Utilizzo:\n"
+" %s [OPZIONE]... FILE...\n"
+"\n"
+
+#: ecpg.c:40
+#, c-format
+msgid "Options:\n"
+msgstr "Opzioni:\n"
+
+#: ecpg.c:41
+#, c-format
+msgid ""
+" -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr ""
+" -c genera automaticamente il codice C dal codice SQL embedded;\n"
+" questo ha effetto su EXEC SQL TYPE\n"
+
+#: ecpg.c:43
+#, c-format
+msgid ""
+" -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+msgstr ""
+" -C MODO imposta la modalità di compatibilità; MODO può essere uno\n"
+" tra \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+
+#: ecpg.c:46
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d genera l'output di debug del parser\n"
+
+#: ecpg.c:48
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D SIMBOLO definisci SIMBOLO\n"
+
+#: ecpg.c:49
+#, c-format
+msgid " -h parse a header file, this option includes option \"-c\"\n"
+msgstr " -h analizza un file header, questa opzione include \"-c\"\n"
+
+#: ecpg.c:50
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i analizza anche i file di sistema\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I DIRECTORY cerca gli include file in DIRECTORY\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o FILEOUT scrive il risultato in FILEOUT\n"
+
+#: ecpg.c:53
+#, c-format
+msgid ""
+" -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr ""
+" -r OPZIONE specifica il comportamento run-time; OPZIONE può essere:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+
+#: ecpg.c:55
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression esegui in modalità test di regressione\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr " -t attiva il commit automatico delle transazioni\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " -V, --version output version information, then exit\n"
+msgstr " -V --version mostra informazioni sulla versione ed esci\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " -?, --help show this help, then exit\n"
+msgstr " -?, --help mostra questo aiuto ed esci\n"
+
+#: ecpg.c:59
+#, c-format
+msgid ""
+"\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr ""
+"\n"
+"Se non viene specificato nessun file di output, il nome è composto aggiungendo\n"
+".c al nome del file di input, dopo aver tolto .pgc se presente.\n"
+
+#: ecpg.c:61
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <pgsql-bugs@postgresql.org>.\n"
+msgstr ""
+"\n"
+"Puoi segnalare eventuali bug a <pgsql-bugs@postgresql.org>.\n"
+
+#: ecpg.c:139
+#, c-format
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s: percorso del proprio eseguibile non trovato\n"
+
+#: ecpg.c:174 ecpg.c:331 ecpg.c:342
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: apertura del file \"%s\" fallita: %s\n"
+
+#: ecpg.c:217 ecpg.c:230 ecpg.c:246 ecpg.c:272
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "Prova \"%s --help\" per maggiori informazioni.\n"
+
+#: ecpg.c:241
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr "%s: il supporto al debug del parser (-d) non è disponibile\n"
+
+#: ecpg.c:260
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n"
+msgstr "%s, il preprocessore di PostgreSQL per programmi in C, versione %s\n"
+
+#: ecpg.c:262
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "EXEC SQL INCLUDE ... la ricerca inizia da qui:\n"
+
+#: ecpg.c:265
+#, c-format
+msgid "end of search list\n"
+msgstr "fine della lista di ricerca\n"
+
+#: ecpg.c:271
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s: non è stato specificato nessun file di input\n"
+
+#: ecpg.c:465
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "il cursore \"%s\" è stato dichiarato, ma non aperto"
+
+#: ecpg.c:478 preproc.y:127
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "rimozione del file di output \"%s\" fallita\n"
+
+#: pgc.l:444
+#, c-format
+msgid "unterminated /* comment"
+msgstr "commento /* non terminato"
+
+# string literal sarebbe intraducubile infatti è come la stringa viene rappresentata nel linguaggio di programmazione, ma come si fa a tradurlo?....
+# Secondo me "stringa letterale" -- Daniele
+#: pgc.l:457
+#, c-format
+msgid "invalid bit string literal"
+msgstr "bit nella stringa letterale non valido"
+
+#: pgc.l:466
+#, c-format
+msgid "unterminated bit string literal"
+msgstr "letterale di stringa di bit non terminato"
+
+#: pgc.l:482
+#, c-format
+msgid "unterminated hexadecimal string literal"
+msgstr "letterale di stringa esadecimale non terminato"
+
+#: pgc.l:560
+#, c-format
+msgid "unterminated quoted string"
+msgstr "stringa tra virgolette non terminata"
+
+#: pgc.l:618 pgc.l:631
+#, c-format
+msgid "zero-length delimited identifier"
+msgstr "identificativo delimitato di lunghezza zero"
+
+#: pgc.l:639
+#, c-format
+msgid "unterminated quoted identifier"
+msgstr "identificativo tra virgolette non terminato"
+
+#: pgc.l:921
+#, c-format
+msgid "nested /* ... */ comments"
+msgstr "commenti /* ... */ annidati"
+
+#: pgc.l:1014
+#, c-format
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "identificativo mancante nel comando EXEC SQL UNDEF"
+
+#: pgc.l:1060 pgc.l:1074
+#, c-format
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "mancata corrispondenza fra \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+
+#: pgc.l:1063 pgc.l:1076 pgc.l:1252
+#, c-format
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "manca \"EXEC SQL ENDIF;\""
+
+#: pgc.l:1092 pgc.l:1111
+#, c-format
+msgid "more than one EXEC SQL ELSE"
+msgstr "più di un EXEC SQL ELSE"
+
+#: pgc.l:1133 pgc.l:1147
+#, c-format
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "EXEC SQL ENDIF non corrispondente"
+
+#: pgc.l:1167
+#, c-format
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "troppe condizioni EXEC SQL IFDEF annidate"
+
+#: pgc.l:1200
+#, c-format
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "identificativo mancante nel comando EXEC SQL IFDEF"
+
+#: pgc.l:1209
+#, c-format
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "identificativo mancante nel comando EXEC SQL DEFINE"
+
+#: pgc.l:1242
+#, c-format
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "errore di sintassi nel comando EXEC SQL INCLUDE"
+
+#: pgc.l:1291
+#, c-format
+msgid "internal error: unreachable state; please report this to <pgsql-bugs@postgresql.org>"
+msgstr "errore interno: stato non raggiungibile, si prega di segnalarlo a <pgsql-bugs@postgresql.org>"
+
+#: pgc.l:1420
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr "Errore: il percorso delle inclusioni \"%s/%s\" è troppo lungo alla riga %d, perciò viene saltato\n"
+
+#: pgc.l:1443
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr "apertura del file di include \"%s\" alla riga %d fallita"
+
+#: preproc.y:31
+msgid "syntax error"
+msgstr "errore di sintassi"
+
+#: preproc.y:81
+#, c-format
+msgid "WARNING: "
+msgstr "ATTENZIONE: "
+
+#: preproc.y:84
+#, c-format
+msgid "ERROR: "
+msgstr "ERRORE: "
+
+#: preproc.y:508
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "il cursore \"%s\" non esiste"
+
+#: preproc.y:537
+#, c-format
+msgid "initializer not allowed in type definition"
+msgstr "l'inizializzatore non è permesso nella definizione del tipo di dato"
+
+#: preproc.y:539
+#, c-format
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "il nome di tipo \"string\" è riservato alla modalità Informix"
+
+#: preproc.y:546 preproc.y:15744
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "il tipo \"%s\" è già definito"
+
+#: preproc.y:570 preproc.y:16402 preproc.y:16727 variable.c:620
+#, c-format
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr "gli array multidimensionali per tipi dato semplici non sono supportati"
+
+#: preproc.y:1694
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "l'opzione AT non è permessa nell'istruzione CLOSE DATABASE"
+
+#: preproc.y:1903
+#, c-format
+msgid "AT option not allowed in CONNECT statement"
+msgstr "l'opzione AT non è permessa nell'istruzione CONNECT"
+
+#: preproc.y:1937
+#, c-format
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "l'opzione AT non è permessa nell'istruzione DISCONNECT"
+
+#: preproc.y:1992
+#, c-format
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "l'opzione AT non è permessa nell'istruzione SET CONNECTION"
+
+#: preproc.y:2014
+#, c-format
+msgid "AT option not allowed in TYPE statement"
+msgstr "l'opzione AT non è permessa nell'istruzione TYPE"
+
+#: preproc.y:2023
+#, c-format
+msgid "AT option not allowed in VAR statement"
+msgstr "l'opzione AT non è permessa nell'istruzione VAR"
+
+#: preproc.y:2030
+#, c-format
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "l'opzione AT non è permessa nell'istruzione WHENEVER"
+
+#: preproc.y:2107 preproc.y:2279 preproc.y:2284 preproc.y:2400 preproc.y:4045
+#: preproc.y:5615 preproc.y:5624 preproc.y:5924 preproc.y:7523 preproc.y:9016
+#: preproc.y:9021 preproc.y:11812
+#, c-format
+msgid "unsupported feature will be passed to server"
+msgstr "al server è stata richiesta una funzionalità non supportata"
+
+#: preproc.y:2658
+#, c-format
+msgid "SHOW ALL is not implemented"
+msgstr "SHOW ALL non è implementato"
+
+#: preproc.y:3386
+#, c-format
+msgid "COPY FROM STDIN is not implemented"
+msgstr "COPY FROM STDIN non è implementato"
+
+#: preproc.y:9969 preproc.y:15333
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr "usare la variabile \"%s\" in una diversa istruzione declare non è supportato"
+
+#: preproc.y:9971 preproc.y:15335
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "il cursore \"%s\" è già definito"
+
+#: preproc.y:10401
+#, c-format
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "la sintassi LIMIT #,# passata al server non è più supportata"
+
+#: preproc.y:10726 preproc.y:10733
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "la sottoquery in FROM deve avere un alias"
+
+#: preproc.y:15063
+#, c-format
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "CREATE TABLE AS non può specificare INTO"
+
+#: preproc.y:15099
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "atteso \"@\", trovato \"%s\""
+
+#: preproc.y:15111
+#, c-format
+msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported"
+msgstr "soltanto i protocolli \"tcp\" e \"unix\" ed il tipo database \"postgresql\" sono supportati"
+
+#: preproc.y:15114
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "atteso \"://\", trovato \"%s\""
+
+#: preproc.y:15119
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr "i socket di dominio Unix funzionano solo con \"localhost\" ma non con \"%s\""
+
+#: preproc.y:15145
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "atteso \"postgresql\", trovato \"%s\""
+
+#: preproc.y:15148
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "tipo di connessione non valido: %s"
+
+#: preproc.y:15157
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "atteso \"@\" oppure \"://\", trovato \"%s\""
+
+#: preproc.y:15232 preproc.y:15250
+#, c-format
+msgid "invalid data type"
+msgstr "tipo dato non valido"
+
+#: preproc.y:15261 preproc.y:15278
+#, c-format
+msgid "incomplete statement"
+msgstr "istruzione incompleta"
+
+#: preproc.y:15264 preproc.y:15281
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "token \"%s\" sconosciuto"
+
+#: preproc.y:15555
+#, c-format
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr "solo i dati di tipo numeric e decimal hanno argomento precisione/scala"
+
+#: preproc.y:15567
+#, c-format
+msgid "interval specification not allowed here"
+msgstr "specificazione di intervallo non permessa qui"
+
+#: preproc.y:15719 preproc.y:15771
+#, c-format
+msgid "too many levels in nested structure/union definition"
+msgstr "troppi livelli nidificati nella definizione della struttura/unione"
+
+#: preproc.y:15910
+#, c-format
+msgid "pointers to varchar are not implemented"
+msgstr "i puntatori a varchar non sono implementati"
+
+#: preproc.y:16097 preproc.y:16122
+#, c-format
+msgid "using unsupported DESCRIBE statement"
+msgstr "si sta utilizzando una istruzione DESCRIBE non supportata"
+
+#: preproc.y:16369
+#, c-format
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "initializer non è permesso nel comando EXEC SQL VAR"
+
+#: preproc.y:16685
+#, c-format
+msgid "arrays of indicators are not allowed on input"
+msgstr "array di indicatori non sono permessi"
+
+#: preproc.y:16906
+#, c-format
+msgid "operator not allowed in variable definition"
+msgstr "operatore non permesso nella definizione di variabile"
+
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:16947
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "%s a o presso \"%s\""
+
+#: type.c:18 type.c:30
+#, c-format
+msgid "out of memory"
+msgstr "memoria esaurita"
+
+#: type.c:212 type.c:676
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "tipo di variabile sconosciuto codice %d"
+
+#: type.c:261
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "la variabile \"%s\" è nascosta da una variabile locale di tipo diverso"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "la variabile \"%s\" è nascosta da una variabile locale"
+
+#: type.c:275
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr "la variabile di indicatore \"%s\" è nascosta da una variabile locale di tipo diverso"
+
+#: type.c:277
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "la variabile di indicatore \"%s\" è nascosta da una variabile locale"
+
+#: type.c:285
+#, c-format
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "un indicatore per un array/puntatore deve essere un array/puntatore"
+
+#: type.c:289
+#, c-format
+msgid "nested arrays are not supported (except strings)"
+msgstr "array annidati non sono supportati (tranne che per le stringhe)"
+
+#: type.c:331
+#, c-format
+msgid "indicator for struct has to be a struct"
+msgstr "un indicatore per una struttura deve essere una struttura"
+
+# capire meglio i "simple data types"
+#: type.c:351 type.c:372 type.c:392
+#, c-format
+msgid "indicator for simple data type has to be simple"
+msgstr "un indicatore per un tipo di dato semplice deve essere semplice"
+
+#: type.c:616
+#, c-format
+msgid "indicator struct \"%s\" has too few members"
+msgstr "l'indicatore struttura \"%s\" non ha abbastanza membri"
+
+#: type.c:624
+#, c-format
+msgid "indicator struct \"%s\" has too many members"
+msgstr "l'indicatore struttura \"%s\" ha troppi membri"
+
+#: type.c:735
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "descrittore di codice %d sconosciuto"
+
+#: variable.c:89 variable.c:116
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "variabile \"%s\" composta in maniera scorretta"
+
+#: variable.c:139
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "la variabile \"%s\" non è un puntatore"
+
+#: variable.c:142 variable.c:167
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "la variabile \"%s\" non è un puntatore ad una struttura o ad una unione"
+
+#: variable.c:154
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "la variabile \"%s\" non è né una struttura né una unione"
+
+#: variable.c:164
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "la variabile \"%s\" non è un array"
+
+#: variable.c:233 variable.c:255
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "la variabile \"%s\" non è stata dichiarata"
+
+#: variable.c:494
+#, c-format
+msgid "indicator variable must have an integer type"
+msgstr "il tipo di variabile di un indicatore deve essere intero"
+
+#: variable.c:506
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr "tipo di dato chiamato \"%s\" è sconosciuto"
+
+#: variable.c:517 variable.c:525 variable.c:542 variable.c:545
+#, c-format
+msgid "multidimensional arrays are not supported"
+msgstr "gli array multidimensionali non sono supportati"
+
+#: variable.c:534
+#, c-format
+msgid "multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] "puntatori a più livelli (più di 2) non sono supportati; trovato %d livello"
+msgstr[1] "puntatori a più livelli (più di 2) non sono supportati; trovati %d livelli"
+
+#: variable.c:539
+#, c-format
+msgid "pointer to pointer is not supported for this data type"
+msgstr "il puntatore a puntatore non è supportato per questo tipo di dato"
+
+#: variable.c:559
+#, c-format
+msgid "multidimensional arrays for structures are not supported"
+msgstr "gli array multidimensionali per strutture non sono supportati"
diff --git a/src/interfaces/ecpg/preproc/po/ja.po b/src/interfaces/ecpg/preproc/po/ja.po
new file mode 100644
index 0000000..30196c1
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/ja.po
@@ -0,0 +1,701 @@
+# Japanese message translation file for ecpg-preproc
+# Copyright (C) 2022 PostgreSQL Global Development Group
+# This file is distributed under the same license as the pg_archivecleanup (PostgreSQL) package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ecpg (PostgreSQL 14)\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2021-08-25 17:29+0900\n"
+"PO-Revision-Date: 2021-08-25 17:34+0900\n"
+"Last-Translator: Kyotaro Horiguchi <horikyota.ntt@gmail.com>\n"
+"Language-Team: jpug-doc <jpug-doc@ml.postgresql.jp>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Poedit 1.8.13\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "変数\"%s\"は数値型でなければなりません"
+
+#: descriptor.c:125 descriptor.c:156
+#, c-format
+msgid "descriptor %s bound to connection %s does not exist"
+msgstr "接続%2$sに関連付けられている記述子%1$sは存在しません"
+
+#: descriptor.c:127 descriptor.c:158
+#, c-format
+msgid "descriptor %s bound to the default connection does not exist"
+msgstr "デフォルト接続に関連付けられている記述し%sは存在しません"
+
+#: descriptor.c:173 descriptor.c:225
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "記述子ヘッダ項目%dは存在しません"
+
+#: descriptor.c:195
+#, c-format
+msgid "nullable is always 1"
+msgstr "nullableは常に1です"
+
+#: descriptor.c:198
+#, c-format
+msgid "key_member is always 0"
+msgstr "key_memberは常に0です"
+
+#: descriptor.c:292
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "記述子項目%sは実装されていません"
+
+#: descriptor.c:302
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "記述子項目%sは設定できません"
+
+#: ecpg.c:36
+#, c-format
+msgid ""
+"%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
+"\n"
+msgstr ""
+"%sはCプログラム用のPostgreSQL埋込みSQLプリプロセッサです。\n"
+"\n"
+
+#: ecpg.c:38
+#, c-format
+msgid ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"使用方法:\n"
+" %s [オプション]... ファイル...\n"
+"\n"
+
+#: ecpg.c:41
+#, c-format
+msgid "Options:\n"
+msgstr "オプション:\n"
+
+#: ecpg.c:42
+#, c-format
+msgid ""
+" -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr ""
+" -c 埋め込まれたSQLコードを元にC言語コードを自動的に生成します\n"
+" これはEXEC SQL TYPEに影響を与えます\n"
+
+#: ecpg.c:44
+#, c-format
+msgid ""
+" -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+msgstr ""
+" -C MODE 互換モードを設定; MODEは\"INFORMIX\"、 \"INFORMIX_SE\"、\n"
+" \"ORACLE\"のいずれかです\n"
+
+#: ecpg.c:47
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d パーサのデバッグ出力を有効にします\n"
+
+#: ecpg.c:49
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D SYMBOL シンボル SYMBOL を定義します\n"
+
+#: ecpg.c:50
+#, c-format
+msgid " -h parse a header file, this option includes option \"-c\"\n"
+msgstr ""
+" -h ヘッダファイルをパースします。このオプションには\"-c\"オプション\n"
+" が含まれます\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i システムインクルードファイルもパースします\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I DIRECTORY DIRECTORYからインクルードファイルを検索します\n"
+
+#: ecpg.c:53
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o OUTFILE 結果をOUTFILEに出力します\n"
+
+#: ecpg.c:54
+#, c-format
+msgid ""
+" -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr ""
+" -r OPTION 実行時の動作を指定します。オプションは次のいずれかです\n"
+" \"no_indicator\"、\"prepare\"、\"questionmarks\"\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression リグレッション試験モードで実行します\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr " -t トランザクションの自動コミットを有効にします\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " -V, --version output version information, then exit\n"
+msgstr " -V, --version バージョン情報を出力して、終了します\n"
+
+#: ecpg.c:59
+#, c-format
+msgid " -?, --help show this help, then exit\n"
+msgstr " -?, --help このヘルプを表示して、終了します\n"
+
+#: ecpg.c:60
+#, c-format
+msgid ""
+"\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr ""
+"\n"
+"出力ファイルの指定がない場合は、入力ファイルの名前に.cを付けた名前になります。\n"
+"ただし、もし.pgcがある場合はこれを取り除いてから.cが付けられます。\n"
+
+#: ecpg.c:62
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"バグは<%s>に報告してください。\n"
+
+#: ecpg.c:63
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s ホームページ: <%s>\n"
+
+#: ecpg.c:141
+#, c-format
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s: 自身の実行ファイルが見つかりませんでした\n"
+
+#: ecpg.c:176 ecpg.c:333 ecpg.c:344
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: ファイル\"%s\"をオープンできませんでした: %s\n"
+
+#: ecpg.c:219 ecpg.c:232 ecpg.c:248 ecpg.c:274
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "詳細は\"%s --help\"で確認してください。\n"
+
+#: ecpg.c:243
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr "%s: パーサデバッグのサポート(-d)を利用できません\n"
+
+#: ecpg.c:262
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n"
+msgstr "%s, PostgreSQL埋込みC言語プリプロセッサ, バージョン%s\n"
+
+#: ecpg.c:264
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "EXEC SQL INCLUDE ... 検索が始まります\n"
+
+#: ecpg.c:267
+#, c-format
+msgid "end of search list\n"
+msgstr "検索リストの終端です\n"
+
+#: ecpg.c:273
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s: 入力ファイルが指定されていません\n"
+
+#: ecpg.c:477
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "カーソル%sは宣言されましたが、オープンされていません"
+
+#: ecpg.c:490 preproc.y:130
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "出力ファイル\"%s\"を削除できませんでした\n"
+
+#: pgc.l:501
+#, c-format
+msgid "unterminated /* comment"
+msgstr "/*コメントが閉じていません"
+
+#: pgc.l:518
+#, c-format
+msgid "unterminated bit string literal"
+msgstr "ビット列リテラルの終端がありません"
+
+#: pgc.l:526
+#, c-format
+msgid "unterminated hexadecimal string literal"
+msgstr "16進数文字列リテラルの終端がありません"
+
+#: pgc.l:601
+#, c-format
+msgid "invalid bit string literal"
+msgstr "無効なビット列リテラルです"
+
+#: pgc.l:606
+#, c-format
+msgid "invalid hex string literal"
+msgstr "不正な16進文字列リテラルです"
+
+#: pgc.l:624
+#, c-format
+msgid "unhandled previous state in xqs\n"
+msgstr "xqsの中で処理されない前ステート\n"
+
+#: pgc.l:650 pgc.l:759
+#, c-format
+msgid "unterminated quoted string"
+msgstr "文字列の引用符が閉じていません"
+
+#: pgc.l:701
+#, c-format
+msgid "unterminated dollar-quoted string"
+msgstr "文字列のドル引用符が閉じていません"
+
+#: pgc.l:719 pgc.l:739
+#, c-format
+msgid "zero-length delimited identifier"
+msgstr "二重引用符で囲まれた識別子の長さがゼロです"
+
+#: pgc.l:750
+#, c-format
+msgid "unterminated quoted identifier"
+msgstr "識別子の引用符が閉じていません"
+
+#: pgc.l:1081
+#, c-format
+msgid "nested /* ... */ comments"
+msgstr "入れ子状の /* ... */ コメント"
+
+#: pgc.l:1174
+#, c-format
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "EXEC SQL UNDEFコマンドにおいて識別子がありません"
+
+#: pgc.l:1192 pgc.l:1205 pgc.l:1221 pgc.l:1234
+#, c-format
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "入れ子状のEXEC SQL IFDEF条件が多すぎます"
+
+#: pgc.l:1250 pgc.l:1261 pgc.l:1276 pgc.l:1298
+#, c-format
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "対応する\"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"がありません"
+
+#: pgc.l:1252 pgc.l:1263 pgc.l:1444
+#, c-format
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "\"EXEC SQL ENDIF;\"がありません"
+
+#: pgc.l:1278 pgc.l:1300
+#, c-format
+msgid "more than one EXEC SQL ELSE"
+msgstr "1つ以上のEXEC SQL ELSE\"が存在します"
+
+#: pgc.l:1323 pgc.l:1337
+#, c-format
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "EXEC SQL ENDIFに対応するものがありません"
+
+#: pgc.l:1392
+#, c-format
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "EXEC SQL IFDEFコマンドにおいて識別子がありません"
+
+#: pgc.l:1401
+#, c-format
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "EXEC SQL DEFINEコマンドにおいて識別子がありません"
+
+#: pgc.l:1434
+#, c-format
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "EXEC SQL INCLUDEコマンドにおいて構文エラーがあります"
+
+#: pgc.l:1484
+#, c-format
+msgid "internal error: unreachable state; please report this to <%s>"
+msgstr "内部エラー: 到達しないはずの状態です。<%s>まで報告してください"
+
+#: pgc.l:1637
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr "エラー:行番号%3$dのインクルードパス\"%1$s/%2$s\"が長すぎます。無視しました。\n"
+
+#: pgc.l:1660
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr "行番号%2$dのインクルードファイル\"%1$s\"をオープンすることができませんでした"
+
+#: preproc.y:31
+msgid "syntax error"
+msgstr "構文エラー"
+
+#: preproc.y:84
+#, c-format
+msgid "WARNING: "
+msgstr "警告: "
+
+#: preproc.y:87
+#, c-format
+msgid "ERROR: "
+msgstr "エラー: "
+
+#: preproc.y:514
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "カーソル\"%s\"は存在しません"
+
+#: preproc.y:543
+#, c-format
+msgid "initializer not allowed in type definition"
+msgstr "型定義では初期化子は許されません"
+
+#: preproc.y:545
+#, c-format
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "型名\"string\"はInformixモードですでに予約されています"
+
+#: preproc.y:552 preproc.y:17675
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "\"%s\"型はすでに定義されています"
+
+#: preproc.y:577 preproc.y:18310 preproc.y:18635 variable.c:621
+#, c-format
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr "単純なデータ型の多次元配列はサポートされていません"
+
+#: preproc.y:599
+#, c-format
+msgid "connection %s is overwritten with %s by DECLARE statement %s"
+msgstr "接続%1$sはDECLARE文%3$sで%2$sに上書きされます"
+
+#: preproc.y:1753
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "CLOSE DATABASE文ではATオプションは許されません"
+
+#: preproc.y:2001
+#, c-format
+msgid "AT option not allowed in CONNECT statement"
+msgstr "CONNECT文ではATオプションは許されません"
+
+#: preproc.y:2041
+#, c-format
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "DISCONNECT文ではATオプションは許されません"
+
+#: preproc.y:2096
+#, c-format
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "SET CONNECTION文ではATオプションは許されません"
+
+#: preproc.y:2118
+#, c-format
+msgid "AT option not allowed in TYPE statement"
+msgstr "TYPE文ではATオプションは許されません"
+
+#: preproc.y:2127
+#, c-format
+msgid "AT option not allowed in VAR statement"
+msgstr "VAR文ではATオプションは許されません"
+
+#: preproc.y:2134
+#, c-format
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "WHENEVER文ではATオプションは許されません"
+
+#: preproc.y:2211 preproc.y:2383 preproc.y:2388 preproc.y:2511 preproc.y:4143
+#: preproc.y:4807 preproc.y:5340 preproc.y:5678 preproc.y:5978 preproc.y:7514
+#: preproc.y:9082 preproc.y:9087 preproc.y:11915
+#, c-format
+msgid "unsupported feature will be passed to server"
+msgstr "非サポートの機能がサーバに渡されます"
+
+#: preproc.y:2769
+#, c-format
+msgid "SHOW ALL is not implemented"
+msgstr "SHOW ALLは実装されていません"
+
+#: preproc.y:3464
+#, c-format
+msgid "COPY FROM STDIN is not implemented"
+msgstr "COPY FROM STDINは実装されていません"
+
+#: preproc.y:10014 preproc.y:17250
+#, c-format
+msgid "\"database\" cannot be used as cursor name in INFORMIX mode"
+msgstr "INFORMIXモードでは\"database\"をカーソル名として使用できません"
+
+#: preproc.y:10021 preproc.y:17260
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr "異なったdeclareステートメントにおける変数\"%s\"の使用はサポートされていません"
+
+#: preproc.y:10023 preproc.y:17262
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "カーソル\"%s\"はすでに定義されています"
+
+#: preproc.y:10497
+#, c-format
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "サーバに渡されるLIMIT #,#構文はもはやサポートされていません"
+
+#: preproc.y:10830 preproc.y:10837
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "FROM句の副問い合わせには別名が必要です"
+
+#: preproc.y:16942 preproc.y:16949
+#, c-format
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "CREATE TABLE ASはINTOを指定できません"
+
+#: preproc.y:16985
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "想定では\"@\"、結果では\"%s\""
+
+#: preproc.y:16997
+#, c-format
+msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported"
+msgstr "プロトコルでは\"tcp\"および\"unix\"のみ、データベースの種類では\"postgresql\"のみがサポートされています"
+
+#: preproc.y:17000
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "想定では\"://\"、結果では\"%s\""
+
+#: preproc.y:17005
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr "Unixドメインソケットは\"localhost\"でのみで動作し、\"%s\"では動作しません"
+
+#: preproc.y:17031
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "想定では\"postgresql\"、結果では\"%s\""
+
+#: preproc.y:17034
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "無効な接続種類: %s"
+
+#: preproc.y:17043
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "想定では\"@または\"\"://\"、結果では\"%s\""
+
+#: preproc.y:17118 preproc.y:17136
+#, c-format
+msgid "invalid data type"
+msgstr "無効なデータ型"
+
+#: preproc.y:17147 preproc.y:17164
+#, c-format
+msgid "incomplete statement"
+msgstr "不完全な文"
+
+#: preproc.y:17150 preproc.y:17167
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "認識できないトークン\"%s\""
+
+#: preproc.y:17212
+#, c-format
+msgid "name \"%s\" is already declared"
+msgstr "名前\"%s\"はすでに定義されています"
+
+#: preproc.y:17478
+#, c-format
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr "数値データ型または10進数データ型のみが精度/位取りの引数を取ることができます"
+
+#: preproc.y:17490
+#, c-format
+msgid "interval specification not allowed here"
+msgstr "時間間隔の指定はここでは許されません"
+
+#: preproc.y:17650 preproc.y:17702
+#, c-format
+msgid "too many levels in nested structure/union definition"
+msgstr "構造体/ユニオンの定義の入れ子レベルが深すぎます"
+
+#: preproc.y:17825
+#, c-format
+msgid "pointers to varchar are not implemented"
+msgstr "varcharを指し示すポインタは実装されていません"
+
+#: preproc.y:18276
+#, c-format
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "EXEC SQL VARコマンドでは初期化子は許されません"
+
+#: preproc.y:18593
+#, c-format
+msgid "arrays of indicators are not allowed on input"
+msgstr "指示子配列は入力として許されません"
+
+#: preproc.y:18780
+#, c-format
+msgid "operator not allowed in variable definition"
+msgstr "変数定義では演算子は許されません"
+
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:18821
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "\"%2$s\"またはその近辺で%1$s"
+
+#: type.c:18 type.c:30
+#, c-format
+msgid "out of memory"
+msgstr "メモリ不足"
+
+#: type.c:214 type.c:685
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "認識できない変数型コード%d"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "変数\"%s\"は、異なった型を持つローカル変数により隠蔽されています"
+
+#: type.c:265
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "変数\"%s\"はローカル変数により隠蔽されています"
+
+#: type.c:277
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr "指示子変数\"%s\"は、異なった型を持つローカル変数により隠蔽されています"
+
+#: type.c:279
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "指示子変数\"%s\"はローカル変数により隠蔽されています"
+
+#: type.c:287
+#, c-format
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "配列/ポインタ用の指示子は配列/ポインタでなければなりません"
+
+#: type.c:291
+#, c-format
+msgid "nested arrays are not supported (except strings)"
+msgstr "入れ子状の配列はサポートされません (文字列は除きます)"
+
+#: type.c:333
+#, c-format
+msgid "indicator for struct has to be a struct"
+msgstr "構造体用の指示子は構造体でなければなりません"
+
+#: type.c:353 type.c:374 type.c:394
+#, c-format
+msgid "indicator for simple data type has to be simple"
+msgstr "単純なデータ型用の指示子は単純型でなければなりません"
+
+#: type.c:625
+#, c-format
+msgid "indicator struct \"%s\" has too few members"
+msgstr "指示子構造体\"%s\"のメンバが足りません"
+
+#: type.c:633
+#, c-format
+msgid "indicator struct \"%s\" has too many members"
+msgstr "指示子構造体\"%s\"のメンバが多すぎます"
+
+#: type.c:744
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "認識できない記述子項目コード%dです"
+
+#: variable.c:89 variable.c:116
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "正しく成形されていない変数\"%s\"です"
+
+#: variable.c:139
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "変数\"%s\"はポインタではありません"
+
+#: variable.c:142 variable.c:167
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "変数\"%s\"は構造体またはユニオンを指し示すポインタではありません"
+
+#: variable.c:154
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "変数\"%s\"は構造体でもユニオンでもありません"
+
+#: variable.c:164
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "変数\"%s\"は配列ではありません"
+
+#: variable.c:233 variable.c:255
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "変数\"%s\"は宣言されていません"
+
+#: variable.c:494
+#, c-format
+msgid "indicator variable must have an integer type"
+msgstr "指示子変数は整数型でなければなりません"
+
+#: variable.c:506
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr "データ型名\"%s\"は認識できません"
+
+#: variable.c:517 variable.c:525 variable.c:542 variable.c:545
+#, c-format
+msgid "multidimensional arrays are not supported"
+msgstr "多次元配列はサポートされません"
+
+#: variable.c:534
+#, c-format
+msgid "multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] "複数レベルのポインタ(3レベル以上)はサポートされません。%dレベルあります"
+msgstr[1] "複数レベルのポインタ(3レベル以上)はサポートされません。%dレベルあります"
+
+#: variable.c:539
+#, c-format
+msgid "pointer to pointer is not supported for this data type"
+msgstr "このデータ型では、ポインタを指し示すポインタはサポートされていません"
+
+#: variable.c:559
+#, c-format
+msgid "multidimensional arrays for structures are not supported"
+msgstr "構造体の多次元配列はサポートされていません"
diff --git a/src/interfaces/ecpg/preproc/po/ko.po b/src/interfaces/ecpg/preproc/po/ko.po
new file mode 100644
index 0000000..43516f9
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/ko.po
@@ -0,0 +1,690 @@
+# LANGUAGE message translation file for ecpg
+# Copyright (C) 2017 PostgreSQL Global Development Group
+# This file is distributed under the same license as the PostgreSQL package.
+# Ioseph Kim <ioseph@uri.sarang.net>, 2017.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ecpg (PostgreSQL) 13\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2020-10-05 01:09+0000\n"
+"PO-Revision-Date: 2020-10-05 16:55+0900\n"
+"Last-Translator: Ioseph Kim <ioseph@uri.sarang.net>\n"
+"Language-Team: Korean Team <pgsql-kr@postgresql.kr>\n"
+"Language: ko\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "\"%s\" 변수는 숫자 형식이어야 함"
+
+#: descriptor.c:124 descriptor.c:146
+#, c-format
+msgid "descriptor \"%s\" does not exist"
+msgstr "\"%s\" 설명자가 없음"
+
+#: descriptor.c:161 descriptor.c:213
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "설명자 헤더 항목 \"%d\"이(가) 없음"
+
+#: descriptor.c:183
+#, c-format
+msgid "nullable is always 1"
+msgstr "null 허용 여부는 항상 1"
+
+#: descriptor.c:186
+#, c-format
+msgid "key_member is always 0"
+msgstr "key_member는 항상 0"
+
+#: descriptor.c:280
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "설명자 항목 \"%s\"이(가) 구현되지 않음"
+
+#: descriptor.c:290
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "설명자 항목 \"%s\"을(를) 설정할 수 없음"
+
+#: ecpg.c:35
+#, c-format
+msgid ""
+"%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
+"\n"
+msgstr ""
+"%s은(는) C 프로그램용 PostgreSQL 포함 SQL 전처리기입니다.\n"
+"\n"
+
+#: ecpg.c:37
+#, c-format
+msgid ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"사용:\n"
+" %s [OPTION]... 파일...\n"
+"\n"
+
+#: ecpg.c:40
+#, c-format
+msgid "Options:\n"
+msgstr "옵션들:\n"
+
+#: ecpg.c:41
+#, c-format
+msgid ""
+" -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr ""
+" -c 포함된 SQL 코드에서 자동으로 C 코드를 생성합니다.\n"
+" EXEC SQL TYPE에 영향을 줍니다.\n"
+
+#: ecpg.c:43
+#, c-format
+msgid ""
+" -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+msgstr ""
+" -C MODE 호환성 모드를 설정합니다. MODE는 다음 중 하나일 수 있습니"
+"다.\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+
+#: ecpg.c:46
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d 파서 디버그 출력 생성\n"
+
+#: ecpg.c:48
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D SYMBOL SYMBOL 정의\n"
+
+#: ecpg.c:49
+#, c-format
+msgid ""
+" -h parse a header file, this option includes option \"-c\"\n"
+msgstr " -h 헤더 파일 구문 분석. 이 옵션은 \"-c\" 옵션 포함\n"
+
+#: ecpg.c:50
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i 시스템 포함 파일도 구문 분석\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I DIRECTORY DIRECTORY에서 포함 파일 검색\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o OUTFILE OUTFILE에 결과 쓰기\n"
+
+#: ecpg.c:53
+#, c-format
+msgid ""
+" -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr ""
+" -r OPTION 런타임 동작을 지정합니다. 사용 가능한 OPTION은 다음과 같습니"
+"다.\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+
+#: ecpg.c:55
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression 회귀 테스트 모드에서 실행\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr " -t 트랜잭션 자동 커밋 설정\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " -V, --version output version information, then exit\n"
+msgstr " -V, --version 버전 정보 보여주고 마침\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " -?, --help show this help, then exit\n"
+msgstr " -?, --help 이 도움말을 보여주고 마침\n"
+
+#: ecpg.c:59
+#, c-format
+msgid ""
+"\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr ""
+"\n"
+"출력 파일 이름을 지정하지 않으면 입력 파일 이름에 .pgc가 있을 경우 제거하고\n"
+".c를 추가하여 이름이 지정됩니다.\n"
+
+#: ecpg.c:61
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"문제점 보고 주소: <%s>\n"
+
+#: ecpg.c:62
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s 홈페이지: <%s>\n"
+
+#: ecpg.c:140
+#, c-format
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s: 실행 가능한 경로를 지정할 수 없습니다\n"
+
+#: ecpg.c:175 ecpg.c:332 ecpg.c:343
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: \"%s\" 파일 열 수 없음: %s\n"
+
+#: ecpg.c:218 ecpg.c:231 ecpg.c:247 ecpg.c:273
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "자제한 사항은 \"%s --help\" 명령으로 살펴보십시오.\n"
+
+#: ecpg.c:242
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr "%s: 파서 디버그 지원(-d)을 사용할 수 없음\n"
+
+#: ecpg.c:261
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n"
+msgstr "%s, PostgreSQL 포함 C 전처리기, 버전 %s\n"
+
+#: ecpg.c:263
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "EXEC SQL INCLUDE ... 여기서 검색 시작:\n"
+
+#: ecpg.c:266
+#, c-format
+msgid "end of search list\n"
+msgstr "검색 목록의 끝\n"
+
+#: ecpg.c:272
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s: 지정된 입력 파일 없음\n"
+
+#: ecpg.c:466
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "\"%s\" 커서가 선언되었지만 열리지 않음"
+
+#: ecpg.c:479 preproc.y:128
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "출력 파일 \"%s\"을(를) 제거할 수 없음\n"
+
+#: pgc.l:502
+#, c-format
+msgid "unterminated /* comment"
+msgstr "마무리 안된 /* 주석"
+
+#: pgc.l:519
+#, c-format
+msgid "unterminated bit string literal"
+msgstr "마무리 안된 비트 문자열 문자"
+
+#: pgc.l:527
+#, c-format
+msgid "unterminated hexadecimal string literal"
+msgstr "마무리 안된 16진수 문자열 문자"
+
+#: pgc.l:602
+#, c-format
+msgid "invalid bit string literal"
+msgstr "잘못된 비트 문자열 리터럴"
+
+#: pgc.l:623
+#, c-format
+msgid "unhandled previous state in xqs\n"
+msgstr "xqs 안에 다룰 수 없는 이전 상태값 있음\n"
+
+#: pgc.l:652 pgc.l:754
+#, c-format
+msgid "unterminated quoted string"
+msgstr "마무리 안된 따옴표 안의 문자열"
+
+#: pgc.l:703
+#, c-format
+msgid "unterminated dollar-quoted string"
+msgstr "마무리 안된 따옴표 안의 문자열"
+
+#: pgc.l:721 pgc.l:734
+#, c-format
+msgid "zero-length delimited identifier"
+msgstr "길이가 0인 구분 식별자"
+
+#: pgc.l:745
+#, c-format
+msgid "unterminated quoted identifier"
+msgstr "마무리 안된 따옴표 안의 식별자"
+
+#: pgc.l:1076
+#, c-format
+msgid "nested /* ... */ comments"
+msgstr "중첩된 /* ... */ 주석"
+
+#: pgc.l:1169
+#, c-format
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "EXEC SQL UNDEF 명령에 식별자 누락"
+
+#: pgc.l:1187 pgc.l:1200 pgc.l:1216 pgc.l:1229
+#, c-format
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "중첩된 EXEC SQL IFDEF 조건이 너무 많음"
+
+#: pgc.l:1245 pgc.l:1256 pgc.l:1271 pgc.l:1293
+#, c-format
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "일치하는 \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\" 누락"
+
+#: pgc.l:1247 pgc.l:1258 pgc.l:1439
+#, c-format
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "\"EXEC SQL ENDIF;\" 누락"
+
+#: pgc.l:1273 pgc.l:1295
+#, c-format
+msgid "more than one EXEC SQL ELSE"
+msgstr "두 개 이상의 EXEC SQL ELSE"
+
+#: pgc.l:1318 pgc.l:1332
+#, c-format
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "일치하지 않는 EXEC SQL ENDIF"
+
+#: pgc.l:1387
+#, c-format
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "EXEC SQL IFDEF 명령에 식별자 누락"
+
+#: pgc.l:1396
+#, c-format
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "EXEC SQL DEFINE 명령에 식별자 누락"
+
+#: pgc.l:1429
+#, c-format
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "EXEC SQL INCLUDE 명령에 구문 오류 발생"
+
+#: pgc.l:1479
+#, c-format
+msgid "internal error: unreachable state; please report this to <%s>"
+msgstr ""
+"내부 오류: 상태값을 알 수 없습니다. 이 문제를 <%s> 주소로 "
+"알려주십시오."
+
+#: pgc.l:1631
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr "오류: 포함 경로 \"%s/%s\"이(가) %d줄에서 너무 길어서 건너뜀\n"
+
+#: pgc.l:1654
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr "포함 파일 \"%s\"을(를) %d줄에서 열 수 없음"
+
+#: preproc.y:31
+msgid "syntax error"
+msgstr "구문 오류"
+
+#: preproc.y:82
+#, c-format
+msgid "WARNING: "
+msgstr "경고: "
+
+#: preproc.y:85
+#, c-format
+msgid "ERROR: "
+msgstr "오류: "
+
+#: preproc.y:512
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "\"%s\" 이름의 커서가 없음"
+
+#: preproc.y:541
+#, c-format
+msgid "initializer not allowed in type definition"
+msgstr "형식 정의에 이니셜라이저가 허용되지 않음"
+
+#: preproc.y:543
+#, c-format
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "\"string\" 자료형 이름은 인포믹스 모드에서 예약어로 쓰입니다"
+
+#: preproc.y:550 preproc.y:15960
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "\"%s\" 형식이 이미 정의됨"
+
+#: preproc.y:575 preproc.y:16603 preproc.y:16928 variable.c:621
+#, c-format
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr "단순 데이터 형식에 다차원 배열이 지원되지 않음"
+
+#: preproc.y:1704
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "CLOSE DATABASE 문에 AT 옵션이 허용되지 않음"
+
+#: preproc.y:1952
+#, c-format
+msgid "AT option not allowed in CONNECT statement"
+msgstr "CONNECT 문에 AT 옵션이 허용되지 않음"
+
+#: preproc.y:1986
+#, c-format
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "DISCONNECT 문에 AT 옵션이 허용되지 않음"
+
+#: preproc.y:2041
+#, c-format
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "SET CONNECTION 문에 AT 옵션이 허용되지 않음"
+
+#: preproc.y:2063
+#, c-format
+msgid "AT option not allowed in TYPE statement"
+msgstr "TYPE 문에 AT 옵션이 허용되지 않음"
+
+#: preproc.y:2072
+#, c-format
+msgid "AT option not allowed in VAR statement"
+msgstr "VAR 문에 AT 옵션이 허용되지 않음"
+
+#: preproc.y:2079
+#, c-format
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "WHENEVER 문에 AT 옵션이 허용되지 않음"
+
+#: preproc.y:2156 preproc.y:2328 preproc.y:2333 preproc.y:2456 preproc.y:4034
+#: preproc.y:4682 preproc.y:5624 preproc.y:5924 preproc.y:7542 preproc.y:9081
+#: preproc.y:9086 preproc.y:11921
+#, c-format
+msgid "unsupported feature will be passed to server"
+msgstr "지원되지 않는 기능이 서버에 전달됨"
+
+#: preproc.y:2714
+#, c-format
+msgid "SHOW ALL is not implemented"
+msgstr "SHOW ALL이 구현되지 않음"
+
+#: preproc.y:3382
+#, c-format
+msgid "COPY FROM STDIN is not implemented"
+msgstr "COPY FROM STDIN이 구현되지 않음"
+
+#: preproc.y:10060 preproc.y:15545
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr "서로 다른 선언 구문에서 \"%s\" 변수 사용은 지원하지 않습니다"
+
+#: preproc.y:10062 preproc.y:15547
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "\"%s\" 커서가 이미 정의됨"
+
+#: preproc.y:10502
+#, c-format
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "더 이상 지원되지 않는 LIMIT #,# 구문이 서버에 전달됨"
+
+#: preproc.y:10835 preproc.y:10842
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "FROM 절 내의 subquery 에는 반드시 alias 를 가져야만 합니다"
+
+#: preproc.y:15268 preproc.y:15275
+#, c-format
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "CREATE TABLE AS에서 INTO를 지정할 수 없음"
+
+#: preproc.y:15311
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "\"@\"이 필요한데 \"%s\"이(가) 있음"
+
+#: preproc.y:15323
+#, c-format
+msgid ""
+"only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are "
+"supported"
+msgstr ""
+"\"tcp\" 및 \"unix\" 프로토콜과 데이터베이스 형식 \"postgresql\"만 지원됨"
+
+#: preproc.y:15326
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "\"://\"가 필요한데 \"%s\"이(가) 있음"
+
+#: preproc.y:15331
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr ""
+"Unix-domain 소켓은 \"localhost\"에서만 작동하며 \"%s\"에서는 작동하지 않음"
+
+#: preproc.y:15357
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "\"postgresql\"이 필요한데 \"%s\"이(가) 있음"
+
+#: preproc.y:15360
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "잘못된 연결 형식: %s"
+
+#: preproc.y:15369
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "\"@\" 또는 \"://\"가 필요한데 \"%s\"이(가) 있음"
+
+#: preproc.y:15444 preproc.y:15462
+#, c-format
+msgid "invalid data type"
+msgstr "잘못된 데이터 형식"
+
+#: preproc.y:15473 preproc.y:15490
+#, c-format
+msgid "incomplete statement"
+msgstr "불완전한 문"
+
+#: preproc.y:15476 preproc.y:15493
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "인식할 수 없는 토큰 \"%s\""
+
+#: preproc.y:15763
+#, c-format
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr "숫자 및 10진수 데이터 형식에만 전체 자릿수/소수 자릿수 인수 포함"
+
+#: preproc.y:15775
+#, c-format
+msgid "interval specification not allowed here"
+msgstr "여기에는 간격 지정이 허용되지 않음"
+
+#: preproc.y:15935 preproc.y:15987
+#, c-format
+msgid "too many levels in nested structure/union definition"
+msgstr "중첩된 구조/union 정의에 수준이 너무 많음"
+
+#: preproc.y:16110
+#, c-format
+msgid "pointers to varchar are not implemented"
+msgstr "varchar에 대한 포인터가 구현되지 않음"
+
+#: preproc.y:16297 preproc.y:16322
+#, c-format
+msgid "using unsupported DESCRIBE statement"
+msgstr "지원되지 않는 DESCRIBE 문 사용"
+
+#: preproc.y:16569
+#, c-format
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "EXEC SQL VAR 명령에 이니셜라이저가 허용되지 않음"
+
+#: preproc.y:16886
+#, c-format
+msgid "arrays of indicators are not allowed on input"
+msgstr "입력에서 표시기의 배열이 허용되지 않음"
+
+#: preproc.y:17073
+#, c-format
+msgid "operator not allowed in variable definition"
+msgstr "연산자는 동적 정의 영역에서는 사용할 수 없음"
+
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:17114
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "%s, \"%s\" 부근"
+
+#: type.c:18 type.c:30
+#, c-format
+msgid "out of memory"
+msgstr "메모리 부족"
+
+#: type.c:214 type.c:685
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "인식할 수 없는 변수 형식 코드 %d"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "\"%s\" 변수가 다른 자료형의 지역 변수에 의해 숨겨졌음"
+
+#: type.c:265
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "\"%s\" 변수가 지역 변수에 의해 숨겨졌음"
+
+#: type.c:277
+#, c-format
+msgid ""
+"indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr "\"%s\" 지시자 변수가 지역 변수의 다른 자료형 때문에 숨겨졌음"
+
+#: type.c:279
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "\"%s\" 지시자 변수가 지역 변수에 의해 숨겨졌음"
+
+#: type.c:287
+#, c-format
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "배열/포인터의 표시기는 배열/포인터여야 함"
+
+#: type.c:291
+#, c-format
+msgid "nested arrays are not supported (except strings)"
+msgstr "중첩된 배열은 지원되지 않음(문자열 제외)"
+
+#: type.c:333
+#, c-format
+msgid "indicator for struct has to be a struct"
+msgstr "구조의 표시기는 구조여야 함"
+
+#: type.c:353 type.c:374 type.c:394
+#, c-format
+msgid "indicator for simple data type has to be simple"
+msgstr "단순 데이터 형식의 표시기는 단순이어야 함"
+
+#: type.c:625
+#, c-format
+msgid "indicator struct \"%s\" has too few members"
+msgstr "\"%s\" 지시 구조체는 맴버가 너무 적음"
+
+#: type.c:633
+#, c-format
+msgid "indicator struct \"%s\" has too many members"
+msgstr "\"%s\" 지시 구조체는 맴버가 너무 많음"
+
+#: type.c:744
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "인식할 수 없는 설명자 항목 코드 %d"
+
+#: variable.c:89 variable.c:116
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "잘못된 형식의 변수 \"%s\""
+
+#: variable.c:139
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "\"%s\" 변수가 포인터가 아님"
+
+#: variable.c:142 variable.c:167
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "\"%s\" 변수가 구조나 union의 포인터가 아님"
+
+#: variable.c:154
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "\"%s\" 변수가 구조나 union이 아님"
+
+#: variable.c:164
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "\"%s\" 변수가 배열이 아님"
+
+#: variable.c:233 variable.c:255
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "\"%s\" 변수가 선언되지 않음"
+
+#: variable.c:494
+#, c-format
+msgid "indicator variable must have an integer type"
+msgstr "표시기 변수에 정수 형식이 있어야 함"
+
+#: variable.c:506
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr "인식할 수 없는 데이터 형식 이름 \"%s\""
+
+#: variable.c:517 variable.c:525 variable.c:542 variable.c:545
+#, c-format
+msgid "multidimensional arrays are not supported"
+msgstr "다차원 배열이 지원되지 않음"
+
+#: variable.c:534
+#, c-format
+msgid ""
+"multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural ""
+"multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] "다중단계 포인터(2단계 이상)는 지원하지 않음; 발견된 레벨: %d"
+
+#: variable.c:539
+#, c-format
+msgid "pointer to pointer is not supported for this data type"
+msgstr "이 데이터 형식에는 포인터에 대한 포인터가 지원되지 않음"
+
+#: variable.c:559
+#, c-format
+msgid "multidimensional arrays for structures are not supported"
+msgstr "구조에는 다차원 배열이 지원되지 않음"
diff --git a/src/interfaces/ecpg/preproc/po/pl.po b/src/interfaces/ecpg/preproc/po/pl.po
new file mode 100644
index 0000000..c3a2fe2
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/pl.po
@@ -0,0 +1,674 @@
+# Polish message translation file for ecpg
+# Copyright (C) 2011 PostgreSQL Global Development Group
+# This file is distributed under the same license as the PostgreSQL package.
+# Begina Felicysym <begina.felicysym@wp.eu>, 2011, 2012.
+# grzegorz <begina.felicysym@wp.eu>, 2014, 2017.
+msgid ""
+msgstr ""
+"Project-Id-Version: ecpg (PostgreSQL 9.1)\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
+"POT-Creation-Date: 2017-03-14 17:38+0000\n"
+"PO-Revision-Date: 2017-03-14 19:42+0200\n"
+"Last-Translator: grzegorz <begina.felicysym@wp.eu>\n"
+"Language-Team: begina.felicysym@wp.eu\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+"X-Generator: Virtaal 0.7.1\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "zmienna \"%s\" musi mieć typ numeryczny"
+
+#: descriptor.c:124 descriptor.c:146
+#, c-format
+msgid "descriptor \"%s\" does not exist"
+msgstr "deskryptor \"%s\" nie istnieje"
+
+#: descriptor.c:161 descriptor.c:213
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "element nagłówka deskryptora \"%d\" nie istnieje"
+
+#: descriptor.c:183
+#, c-format
+msgid "nullable is always 1"
+msgstr "nullable jest zawsze 1"
+
+#: descriptor.c:186
+#, c-format
+msgid "key_member is always 0"
+msgstr "key_member jest zawsze 0"
+
+#: descriptor.c:280
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "element deskryptora \"%s\" nie jest zaimplementowany"
+
+#: descriptor.c:290
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "element deskryptora \"%s\" nie może zostać ustawiony"
+
+#: ecpg.c:35
+#, c-format
+msgid ""
+"%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
+"\n"
+msgstr ""
+"%s jest osadzonym w PostgreSQL preprocesorem SQL dla programów C.\n"
+"\n"
+
+#: ecpg.c:37
+#, c-format
+msgid ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"Sposób użycia:\n"
+" %s [OPCJE]... PLIK...\n"
+"\n"
+
+#: ecpg.c:40
+#, c-format
+msgid "Options:\n"
+msgstr "Opcje:\n"
+
+#: ecpg.c:41
+#, c-format
+msgid ""
+" -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr ""
+" -c automatycznie generuje kod w C z osadzonego kodu SQL;\n"
+" dotyczy to EXEC SQL TYPE\n"
+
+#: ecpg.c:43
+#, c-format
+msgid ""
+" -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\"\n"
+msgstr ""
+" -C TRYB ustala tryb kompatybilności; TRYB może być jednym z\n"
+" \"INFORMIX\", \"INFORMIX_SE\"\n"
+
+#: ecpg.c:46
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d generuje wyjście debugowania parsera\n"
+
+#: ecpg.c:48
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D SYMBOL definiuje SYMBOL\n"
+
+#: ecpg.c:49
+#, c-format
+msgid " -h parse a header file, this option includes option \"-c\"\n"
+msgstr " -h parsuje plik nagłówkowy, opcja ta zawiera opcję \"-c\"\n"
+
+#: ecpg.c:50
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i parsuje również systemowe pliki nagłówkowe\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I FOLDER przeszukuje FOLDER w poszukiwaniu plików nagłówkowych\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o PLIKOUT zapisuje wynik do PLIKOUT\n"
+
+#: ecpg.c:53
+#, c-format
+msgid ""
+" -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr ""
+" -r OPCJA określa zachowanie uruchomienia; OPTCJA może być:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+
+#: ecpg.c:55
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression wykonanie w trybie testów regresyjnych\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr " -t włącza automatyczne zatwierdzanie transakcji\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " -V, --version output version information, then exit\n"
+msgstr " -V, --version wypisuje informacje o wersji i kończy\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " -?, --help show this help, then exit\n"
+msgstr " -?, --help pokazuje ten ekran pomocy i kończy\n"
+
+#: ecpg.c:59
+#, c-format
+msgid ""
+"\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr ""
+"\n"
+"Jeżeli nie wskazano pliku wyjścia, nazwa jest tworzona przez dodanie .c\n"
+"do nazwy pliku wejścia, po usunięciu .pgc jeśli obecne.\n"
+
+#: ecpg.c:61
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <pgsql-bugs@postgresql.org>.\n"
+msgstr ""
+"\n"
+"Błędy proszę przesyłać na adres <pgsql-bugs@postgresql.org>.\n"
+
+#: ecpg.c:139
+#, c-format
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s: nie można odnaleźć własnej ścieżki programu wykonywalnego\n"
+
+#: ecpg.c:174 ecpg.c:327 ecpg.c:337
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: nie można otworzyć pliku \"%s\": %s\n"
+
+#: ecpg.c:213 ecpg.c:226 ecpg.c:242 ecpg.c:268
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "Spróbuj \"%s --help\" aby uzyskać więcej informacji.\n"
+
+#: ecpg.c:237
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr "%s: wsparcie debugu analizatora (-d) niedostępne\n"
+
+#: ecpg.c:256
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n"
+msgstr "%s, preprocesor C osadzony w PostgreSQL, wersja %s\n"
+
+#: ecpg.c:258
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "EXEC SQL INCLUDE ... wyszukiwanie zaczyna się tutaj:\n"
+
+#: ecpg.c:261
+#, c-format
+msgid "end of search list\n"
+msgstr "koniec listy wyszukiwania\n"
+
+#: ecpg.c:267
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s: nie wskazano pliku wejściowego\n"
+
+#: ecpg.c:460
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "kursor \"%s\" został zadeklarowany, ale nie otwarty"
+
+#: ecpg.c:473 preproc.y:127
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "nie można usunąć pliku wyjścia \"%s\"\n"
+
+#: pgc.l:431
+#, c-format
+msgid "unterminated /* comment"
+msgstr "nie zakończony komentarz /*"
+
+#: pgc.l:444
+#, c-format
+msgid "invalid bit string literal"
+msgstr "nieprawidłowa stała łańcucha bitów"
+
+#: pgc.l:453
+#, c-format
+msgid "unterminated bit string literal"
+msgstr "niezakończona stała łańcucha bitów"
+
+#: pgc.l:469
+#, c-format
+msgid "unterminated hexadecimal string literal"
+msgstr "niezakończona stała łańcucha szesnastkowego"
+
+#: pgc.l:547
+#, c-format
+msgid "unterminated quoted string"
+msgstr "niezakończona stała łańcuchowa"
+
+#: pgc.l:605 pgc.l:618
+#, c-format
+msgid "zero-length delimited identifier"
+msgstr "ograniczony identyfikator o długości zero"
+
+#: pgc.l:626
+#, c-format
+msgid "unterminated quoted identifier"
+msgstr "niezakończony łańcuch identyfikatora"
+
+#: pgc.l:881
+#, c-format
+msgid "nested /* ... */ comments"
+msgstr "zagnieżdżone komentarze /* ... */"
+
+#: pgc.l:974
+#, c-format
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "brakujący identyfikator w poleceniu EXEC SQL UNDEF"
+
+#: pgc.l:1020 pgc.l:1034
+#, c-format
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "brak pasującego \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+
+#: pgc.l:1023 pgc.l:1036 pgc.l:1212
+#, c-format
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "brak \"EXEC SQL ENDIF;\""
+
+#: pgc.l:1052 pgc.l:1071
+#, c-format
+msgid "more than one EXEC SQL ELSE"
+msgstr "więcej niż jeden EXEC SQL ELSE"
+
+#: pgc.l:1093 pgc.l:1107
+#, c-format
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "niedopasowany EXEC SQL ENDIF"
+
+#: pgc.l:1127
+#, c-format
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "zbyt wiele zagłębień warunków EXEC SQL IFDEF"
+
+#: pgc.l:1160
+#, c-format
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "brakujący identyfikator w poleceniu EXEC SQL IFDEF"
+
+#: pgc.l:1169
+#, c-format
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "brakujący identyfikator w poleceniu EXEC SQL DEFINE"
+
+#: pgc.l:1202
+#, c-format
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "błąd składni w poleceniu EXEC SQL INCLUDE"
+
+#: pgc.l:1251
+#, c-format
+msgid "internal error: unreachable state; please report this to <pgsql-bugs@postgresql.org>"
+msgstr ""
+"błąd wewnętrzny: nieosiągalny stan; proszę przesłać go na adres <pgsql-"
+"bugs@postgresql.org>"
+
+#: pgc.l:1375
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr "Błąd: załączona ścieżka \"%s/%s\" jest zbyt długa w linii %d, pominięto\n"
+
+#: pgc.l:1398
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr "nie można otworzyć załączonego pliku \"%s\" w linii %d"
+
+#: preproc.y:31
+msgid "syntax error"
+msgstr "błąd składni"
+
+#: preproc.y:81
+#, c-format
+msgid "WARNING: "
+msgstr "OSTRZEŻENIE: "
+
+#: preproc.y:84
+#, c-format
+msgid "ERROR: "
+msgstr "BŁĄD: "
+
+#: preproc.y:508
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "kursor \"%s\" nie istnieje"
+
+#: preproc.y:537
+#, c-format
+msgid "initializer not allowed in type definition"
+msgstr "inicjator niedozwolony w definicji typu"
+
+#: preproc.y:539
+#, c-format
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "nazwa typu \"string\" jest zarezerwowana w trybie Informix"
+
+#: preproc.y:546 preproc.y:15234
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "typ \"%s\" już istnieje"
+
+#: preproc.y:570 preproc.y:15892 preproc.y:16212 variable.c:620
+#, c-format
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr "wielowymiarowe tablice dla prostych typów danych nie są wspierane"
+
+#: preproc.y:1675
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "opcja AT niedozwolona w wyrażeniu CLOSE DATABASE"
+
+#: preproc.y:1886
+#, c-format
+msgid "AT option not allowed in CONNECT statement"
+msgstr "opcja AT niedozwolona w wyrażeniu CONNECT"
+
+#: preproc.y:1920
+#, c-format
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "opcja AT niedozwolona w wyrażeniu DISCONNECT"
+
+#: preproc.y:1975
+#, c-format
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "opcja AT niedozwolona w wyrażeniu SET CONNECTION"
+
+#: preproc.y:1997
+#, c-format
+msgid "AT option not allowed in TYPE statement"
+msgstr "opcja AT niedozwolona w wyrażeniu TYPE"
+
+#: preproc.y:2006
+#, c-format
+msgid "AT option not allowed in VAR statement"
+msgstr "opcja AT niedozwolona w wyrażeniu VAR"
+
+#: preproc.y:2013
+#, c-format
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "opcja AT niedozwolona w wyrażeniu WHENEVER"
+
+#: preproc.y:2265 preproc.y:2270 preproc.y:2386 preproc.y:3923 preproc.y:5434
+#: preproc.y:5443 preproc.y:5751 preproc.y:7247 preproc.y:8659 preproc.y:8664
+#: preproc.y:11368 preproc.y:11989
+#, c-format
+msgid "unsupported feature will be passed to server"
+msgstr "niewspierana cecha zostanie przekazana na serwer"
+
+#: preproc.y:2644
+#, c-format
+msgid "SHOW ALL is not implemented"
+msgstr "SHOW ALL nie jest zaimplementowane"
+
+#: preproc.y:3268
+#, c-format
+msgid "COPY FROM STDIN is not implemented"
+msgstr "COPY FROM STDIN nie zostało zaimplementowane"
+
+#: preproc.y:9534 preproc.y:14823
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr "użycie zmiennej \"%s\" w innych wyrażeniach deklaracji nie jest wspierane"
+
+#: preproc.y:9536 preproc.y:14825
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "kursor \"%s\" już istnieje"
+
+#: preproc.y:9966
+#, c-format
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "już nie wspierana składnia LIMIT #,# przesłana na serwer"
+
+#: preproc.y:10282 preproc.y:10289
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "podzapytanie z FROM musi mieć alias"
+
+#: preproc.y:14553
+#, c-format
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "CREATE TABLE AS nie może zawierać INTO"
+
+#: preproc.y:14589
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "oczekiwano \"@\", znaleziono \"%s\""
+
+#: preproc.y:14601
+#, c-format
+msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported"
+msgstr ""
+"tylko protokoły \"tcp\" i \"unix\" oraz typ bazy danych \"postgresql\" są "
+"wspierane"
+
+#: preproc.y:14604
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "oczekiwano \"://\", znaleziono \"%s\""
+
+#: preproc.y:14609
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr "Gniazda dziedziny Uniksa działają tylko na \"localhost\" a nie na \"%s\""
+
+#: preproc.y:14635
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "oczekiwano \"postgresql\", znaleziono \"%s\""
+
+#: preproc.y:14638
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "niepoprawny typ połączenia: %s"
+
+#: preproc.y:14647
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "oczekiwano \"@\" lub \"://\", znaleziono \"%s\""
+
+#: preproc.y:14722 preproc.y:14740
+#, c-format
+msgid "invalid data type"
+msgstr "niepoprawny typ danych"
+
+#: preproc.y:14751 preproc.y:14768
+#, c-format
+msgid "incomplete statement"
+msgstr "niepełne wyrażenie"
+
+#: preproc.y:14754 preproc.y:14771
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "niezrozumiały token \"%s\""
+
+#: preproc.y:15045
+#, c-format
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr "tylko typy danych numeric i decimal mają argument precyzji/skali"
+
+#: preproc.y:15057
+#, c-format
+msgid "interval specification not allowed here"
+msgstr "specyfikacja interwału niedozwolona tutaj"
+
+#: preproc.y:15209 preproc.y:15261
+#, c-format
+msgid "too many levels in nested structure/union definition"
+msgstr "zbyt wiele poziomów w zagnieżdżonej definicji structure/union"
+
+#: preproc.y:15400
+#, c-format
+msgid "pointers to varchar are not implemented"
+msgstr "wskazania na varchar nie są zaimplementowane"
+
+#: preproc.y:15587 preproc.y:15612
+#, c-format
+msgid "using unsupported DESCRIBE statement"
+msgstr "użycie niewspieranego wyrażenia DESCRIBE"
+
+#: preproc.y:15859
+#, c-format
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "inicjator niedopuszczalny w poleceniu EXEC SQL VAR"
+
+#: preproc.y:16170
+#, c-format
+msgid "arrays of indicators are not allowed on input"
+msgstr "tabele wskazań nie są dozwolone w wejściu"
+
+#: preproc.y:16391
+#, c-format
+msgid "operator not allowed in variable definition"
+msgstr "operator niedozwolony w definicji zmiennej"
+
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:16429
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "%s w lub pobliżu \"%s\""
+
+#: type.c:18 type.c:30
+#, c-format
+msgid "out of memory"
+msgstr "brak pamięci"
+
+#: type.c:212 type.c:664
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "niezrozumiały kod typu zmiennej %d"
+
+#: type.c:261
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "zmienna \"%s\" została przykryta przez zmienną lokalną innego typu"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "zmienna \"%s\" została przykryta przez zmienną lokalną"
+
+#: type.c:275
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr ""
+"zmienna wskaźnikowa \"%s\" została przykryta przez zmienną lokalną innego typu"
+
+#: type.c:277
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "zmienna wskaźnikowa \"%s\" została przykryta przez zmienną lokalną"
+
+#: type.c:285
+#, c-format
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "wskaźnik do array/pointer musi być array/pointer"
+
+#: type.c:289
+#, c-format
+msgid "nested arrays are not supported (except strings)"
+msgstr "tabele zagnieżdżone nie są wspierane (poza ciągami znaków)"
+
+#: type.c:331
+#, c-format
+msgid "indicator for struct has to be a struct"
+msgstr "wskaźnik do struct musi być struct"
+
+#: type.c:351 type.c:372 type.c:392
+#, c-format
+msgid "indicator for simple data type has to be simple"
+msgstr "wskaźnik do prostego typu danych musi być prosty"
+
+#: type.c:723
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "niezrozumiały kod deskryptora elementu %d"
+
+#: variable.c:89 variable.c:116
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "niepoprawnie utworzona zmienna \"%s\""
+
+#: variable.c:139
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "zmienna \"%s\" nie jest wskaźnikiem"
+
+#: variable.c:142 variable.c:167
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "zmienna \"%s\" nie jest wskazaniem na structure ani union"
+
+#: variable.c:154
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "zmienna \"%s\" nie jest ani structure ani union"
+
+#: variable.c:164
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "zmienna \"%s\" nie jest tablicą"
+
+#: variable.c:233 variable.c:255
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "zmienna \"%s\" nie została zadeklarowana"
+
+#: variable.c:494
+#, c-format
+msgid "indicator variable must have an integer type"
+msgstr "zmienna wskaźnikowa musi mieć typ integer"
+
+#: variable.c:506
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr "niezrozumiała nazwa typu danych \"%s\""
+
+#: variable.c:517 variable.c:525 variable.c:542 variable.c:545
+#, c-format
+msgid "multidimensional arrays are not supported"
+msgstr "wielowymiarowe tablice nie są wspierane"
+
+#: variable.c:534
+#, c-format
+msgid "multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] ""
+"wielopoziomowe wskaźniki (więcej niż 2 poziomy) nie są wspierane; znaleziono "
+"%d poziom"
+msgstr[1] ""
+"wielopoziomowe wskaźniki (więcej niż 2 poziomy) nie są wspierane; znaleziono "
+"%d poziomy"
+msgstr[2] ""
+"wielopoziomowe wskaźniki (więcej niż 2 poziomy) nie są wspierane; znaleziono "
+"%d poziomów"
+
+#: variable.c:539
+#, c-format
+msgid "pointer to pointer is not supported for this data type"
+msgstr "wskazanie na wskaźnik nie jest wspierane dla tego typu danych"
+
+#: variable.c:559
+#, c-format
+msgid "multidimensional arrays for structures are not supported"
+msgstr "wielowymiarowe tablice dla struktur nie są wspierane"
+
+#~ msgid "COPY FROM STDOUT is not possible"
+#~ msgstr "COPY FROM STDOUT nie jest możliwe"
+
+#~ msgid "COPY TO STDIN is not possible"
+#~ msgstr "COPY TO STDIN nie jest możliwe"
diff --git a/src/interfaces/ecpg/preproc/po/pt_BR.po b/src/interfaces/ecpg/preproc/po/pt_BR.po
new file mode 100644
index 0000000..f64ecae
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/pt_BR.po
@@ -0,0 +1,653 @@
+# Brazilian Portuguese message translation file for ecpg
+# Copyright (C) 2009 PostgreSQL Global Development Group
+# This file is distributed under the same license as the PostgreSQL package.
+# Fernando Ike de Oliveira <fike@midstorm.org>, 2009.
+# Euler Taveira de Oliveira <euler@timbira.com>, 2010-2016.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PostgreSQL 9.6\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
+"POT-Creation-Date: 2016-10-25 16:32-0300\n"
+"PO-Revision-Date: 2018-06-25 08:59+0200\n"
+"Last-Translator: Euler Taveira de Oliveira <euler@timbira.com>\n"
+"Language-Team: Brazilian Portuguese <pgbr-dev@listas.postgresql.org.br>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n>1);\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "variável \"%s\" deve ter um tipo númerico"
+
+#: descriptor.c:124 descriptor.c:146
+#, c-format
+msgid "descriptor \"%s\" does not exist"
+msgstr "descritor \"%s\" não existe"
+
+#: descriptor.c:161 descriptor.c:212
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "item do cabeçalho do descritor \"%d\" não existe"
+
+#: descriptor.c:183
+#, c-format
+msgid "nullable is always 1"
+msgstr "nullable é sempre 1"
+
+#: descriptor.c:186
+#, c-format
+msgid "key_member is always 0"
+msgstr "key_member é sempre 0"
+
+#: descriptor.c:279
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "item do descritor \"%s\" não está implementado"
+
+#: descriptor.c:289
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "item do descritor \"%s\" não pode ser definido"
+
+#: ecpg.c:35
+#, c-format
+msgid ""
+"%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
+"\n"
+msgstr "%s é o pré-processador SQL embutido do PostgreSQL para programas em C.\n\n"
+
+#: ecpg.c:37
+#, c-format
+msgid ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"Uso:\n"
+" %s [OPÇÃO]... ARQUIVO...\n"
+"\n"
+
+#: ecpg.c:40
+#, c-format
+msgid "Options:\n"
+msgstr "Opções:\n"
+
+#: ecpg.c:41
+#, c-format
+msgid ""
+" -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr ""
+" -c gera automaticamente código C a partir do código SQL embutido;\n"
+" isso afeta o EXEC SQL TYPE\n"
+
+#: ecpg.c:43
+#, c-format
+msgid ""
+" -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\"\n"
+msgstr ""
+" -C mode define o modo de compatilidade; MODE pode ser um de\n"
+" \"INFORMIX\", \"INFORMIX_SE\"\n"
+
+#: ecpg.c:46
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d gera saída de depuração do analisador\n"
+
+#: ecpg.c:48
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D SÍMBOLO define SÍMBOLO\n"
+
+#: ecpg.c:49
+#, c-format
+msgid " -h parse a header file, this option includes option \"-c\"\n"
+msgstr " -h analisa um arquivo de cabeçalho, essa opção inclui a opção \"-c\"\n"
+
+#: ecpg.c:50
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i analisa arquivos de cabeçalho do sistema também\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I DIRETÓRIO procura DIRETÓRIO para incluir arquivos\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o ARQUIVO grava resultado no ARQUIVO\n"
+
+#: ecpg.c:53
+#, c-format
+msgid ""
+" -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr ""
+" -r OPÇÃO especifica comportamento em tempo de execução; OPÇÃO pode ser:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+
+#: ecpg.c:55
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression executa em modo de teste de regressão\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr " -t habilita o auto efetivação de transações\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " -V, --version output version information, then exit\n"
+msgstr " -V, --version mostra informação sobre a versão e termina\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " -?, --help show this help, then exit\n"
+msgstr " -?, --help mostra essa ajuda e termina\n"
+
+#: ecpg.c:59
+#, c-format
+msgid ""
+"\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr ""
+"\n"
+"Se nenhum arquivo de saída for especificado, o nome é formado adicionando .c ao\n"
+"nome do arquivo de entrada, após remover .pgc se presente.\n"
+
+#: ecpg.c:61
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <pgsql-bugs@postgresql.org>.\n"
+msgstr ""
+"\n"
+"Relate erros a <pgsql-bugs@postgresql.org>.\n"
+
+#: ecpg.c:139
+#, c-format
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s: não pôde localizar meu próprio caminho executável\n"
+
+#: ecpg.c:175 ecpg.c:326 ecpg.c:336
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: não pôde abrir arquivo \"%s\": %s\n"
+
+#: ecpg.c:214 ecpg.c:227 ecpg.c:243 ecpg.c:268
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "Tente \"%s --help\" para obter informações adicionais.\n"
+
+#: ecpg.c:238
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr "%s: suporte a depuração do analisador (-d) não está disponível\n"
+
+#: ecpg.c:256
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %d.%d.%d\n"
+msgstr "%s, the pré-processador C embutido do PostgreSQL, versão %d.%d.%d\n"
+
+#: ecpg.c:258
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "EXEC SQL INCLUDE ... pesquisa inicia aqui:\n"
+
+#: ecpg.c:261
+#, c-format
+msgid "end of search list\n"
+msgstr "fim da lista de pesquisa\n"
+
+#: ecpg.c:267
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s: nenhum arquivo de entrada foi especificado\n"
+
+#: ecpg.c:459
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "cursor \"%s\" foi declarado mas não foi aberto"
+
+#: ecpg.c:472 preproc.y:127
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "não pôde remover arquivo de saída \"%s\"\n"
+
+#: pgc.l:440
+#, c-format
+msgid "unterminated /* comment"
+msgstr "comentário /* não foi terminado"
+
+#: pgc.l:453
+#, c-format
+msgid "invalid bit string literal"
+msgstr "cadeia de bits inválida"
+
+#: pgc.l:462
+#, c-format
+msgid "unterminated bit string literal"
+msgstr "cadeia de bits não foi terminada"
+
+#: pgc.l:478
+#, c-format
+msgid "unterminated hexadecimal string literal"
+msgstr "cadeia de caracteres hexadecimal não foi terminada"
+
+#: pgc.l:556
+#, c-format
+msgid "unterminated quoted string"
+msgstr "cadeia de caracteres entre aspas não foi terminada"
+
+#: pgc.l:613 pgc.l:626
+#, c-format
+msgid "zero-length delimited identifier"
+msgstr "identificador delimitado tem tamanho zero"
+
+#: pgc.l:634
+#, c-format
+msgid "unterminated quoted identifier"
+msgstr "identificador entre aspas não foi terminado"
+
+#: pgc.l:889
+#, c-format
+msgid "nested /* ... */ comments"
+msgstr "comentários /* ... */ aninhados"
+
+#: pgc.l:982
+#, c-format
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "faltando identificador no comando EXEC SQL UNDEF"
+
+#: pgc.l:1028 pgc.l:1042
+#, c-format
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "faltando correspondente \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+
+#: pgc.l:1031 pgc.l:1044 pgc.l:1220
+#, c-format
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "faltando \"EXEC SQL ENDIF;\""
+
+#: pgc.l:1060 pgc.l:1079
+#, c-format
+msgid "more than one EXEC SQL ELSE"
+msgstr "mais de um EXEC SQL ELSE"
+
+#: pgc.l:1101 pgc.l:1115
+#, c-format
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "EXEC SQL ENDIF não tem correspondente"
+
+#: pgc.l:1135
+#, c-format
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "muitas condições EXEC SQL IFDEF aninhadas"
+
+#: pgc.l:1168
+#, c-format
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "faltando identificador no comando EXEC SQL IFDEF"
+
+#: pgc.l:1177
+#, c-format
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "faltando identificador no comando EXEC SQL IFDEF"
+
+#: pgc.l:1210
+#, c-format
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "erro de sintaxe no comando EXEC SQL INCLUDE"
+
+#: pgc.l:1259
+#, c-format
+msgid "internal error: unreachable state; please report this to <pgsql-bugs@postgresql.org>"
+msgstr "erro interno: estado inacessível; por favor relato isso a <pgsql-bugs@postgresql.org>"
+
+#: pgc.l:1383
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr "Erro: caminho de inclusão \"%s/%s\" é muito longo na linha %d, ignorando\n"
+
+#: pgc.l:1406
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr "não pôde abrir arquivo de inclusão \"%s\" na linha %d"
+
+#: preproc.y:31
+msgid "syntax error"
+msgstr "erro de sintaxe"
+
+#: preproc.y:81
+#, c-format
+msgid "WARNING: "
+msgstr "AVISO: "
+
+#: preproc.y:84
+#, c-format
+msgid "ERROR: "
+msgstr "ERRO: "
+
+#: preproc.y:508
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "cursor \"%s\" não existe"
+
+#: preproc.y:537
+#, c-format
+msgid "initializer not allowed in type definition"
+msgstr "inicializador não é permitido na definição do tipo"
+
+#: preproc.y:539
+#, c-format
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "nome de tipo \"string\" é reservado no modo Informix"
+
+#: preproc.y:546 preproc.y:14626
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "tipo \"%s\" já está definido"
+
+#: preproc.y:570 preproc.y:15284 preproc.y:15604 variable.c:620
+#, c-format
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr "matrizes multidimensionais para tipo de dados simples não são suportadas"
+
+#: preproc.y:1634
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "opção AT não é permitida no comando CLOSE DATABASE"
+
+#: preproc.y:1849
+#, c-format
+msgid "AT option not allowed in CONNECT statement"
+msgstr "opção AT não é permitida no comando CONNECT"
+
+#: preproc.y:1883
+#, c-format
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "opção AT não é permitida no comando DISCONNECT"
+
+#: preproc.y:1938
+#, c-format
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "opção AT não é permitida no comando SET CONNECTION"
+
+#: preproc.y:1960
+#, c-format
+msgid "AT option not allowed in TYPE statement"
+msgstr "opção AT não é permitida no comando TYPE"
+
+#: preproc.y:1969
+#, c-format
+msgid "AT option not allowed in VAR statement"
+msgstr "opção AT não é permitida no comando VAR"
+
+#: preproc.y:1976
+#, c-format
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "opção AT não é permitida no comando WHENEVER"
+
+#: preproc.y:2228 preproc.y:2233 preproc.y:2349 preproc.y:3759 preproc.y:5173
+#: preproc.y:5182 preproc.y:5466 preproc.y:6902 preproc.y:8140 preproc.y:8145
+#: preproc.y:10776 preproc.y:11393
+#, c-format
+msgid "unsupported feature will be passed to server"
+msgstr "funcionalidade não suportada será enviada ao servidor"
+
+#: preproc.y:2607
+#, c-format
+msgid "SHOW ALL is not implemented"
+msgstr "SHOW ALL não está implementado"
+
+#: preproc.y:3147
+#, c-format
+msgid "COPY FROM STDIN is not implemented"
+msgstr "COPY FROM STDIN não está implementado"
+
+#: preproc.y:9035 preproc.y:14215
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr "utilizar variável \"%s\" em comandos de declaração diferentes não é suportado"
+
+#: preproc.y:9037 preproc.y:14217
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "cursor \"%s\" já está definido"
+
+#: preproc.y:9467
+#, c-format
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "sintaxe LIMIT #,# que não é suportada foi enviada ao servidor"
+
+#: preproc.y:9775 preproc.y:9782
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "subconsulta no FROM deve ter um aliás"
+
+#: preproc.y:13945
+#, c-format
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "CREATE TABLE AS não pode especificar INTO"
+
+#: preproc.y:13981
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "esperado \"@\", encontrado \"%s\""
+
+#: preproc.y:13993
+#, c-format
+msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported"
+msgstr "somente os protocolos \"tcp\" e \"unix\" e tipo banco de dados \"postgressql\" sãosuportados"
+
+#: preproc.y:13996
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "esperado \"://\", encontrado \"%s\""
+
+#: preproc.y:14001
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr "Soquetes de domínio Unix trabalham somente com \"localhost\" e não com \"%s\""
+
+#: preproc.y:14027
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "esperado \"postgresql\", encontrado \"%s\""
+
+#: preproc.y:14030
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "tipo de conexão inválido: %s"
+
+#: preproc.y:14039
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "esperado \"@\" ou \"://\", encontrado \"%s\""
+
+#: preproc.y:14114 preproc.y:14132
+#, c-format
+msgid "invalid data type"
+msgstr "tipo de dado inválido"
+
+#: preproc.y:14143 preproc.y:14160
+#, c-format
+msgid "incomplete statement"
+msgstr "comando incompleto"
+
+#: preproc.y:14146 preproc.y:14163
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "informação desconhecida \"%s\""
+
+#: preproc.y:14437
+#, c-format
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr "somente os tipos de dados numeric e decimal possuem argumento de precisão/escala"
+
+#: preproc.y:14449
+#, c-format
+msgid "interval specification not allowed here"
+msgstr "especificação de intervalo não é permitida aqui"
+
+#: preproc.y:14601 preproc.y:14653
+#, c-format
+msgid "too many levels in nested structure/union definition"
+msgstr "muitos níveis em definição aninhada de estrutura/união"
+
+#: preproc.y:14792
+#, c-format
+msgid "pointers to varchar are not implemented"
+msgstr "ponteiros para varchar não estão implentados"
+
+#: preproc.y:14979 preproc.y:15004
+#, c-format
+msgid "using unsupported DESCRIBE statement"
+msgstr "utilizando comando DESCRIBE que não é suportado"
+
+#: preproc.y:15251
+#, c-format
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "inicilização não é permitido no comando EXEC SQL VAR"
+
+#: preproc.y:15562
+#, c-format
+msgid "arrays of indicators are not allowed on input"
+msgstr "matrizes do indicadores não são permitidas na entrada"
+
+#: preproc.y:15783
+#, c-format
+msgid "operator not allowed in variable definition"
+msgstr "operador não é permitido na definição da variável"
+
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:15821
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "%s em ou próximo a \"%s\""
+
+#: type.c:18 type.c:30
+#, c-format
+msgid "out of memory"
+msgstr "sem memória"
+
+#: type.c:212 type.c:664
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "tipo de código de variável %d é desconhecido"
+
+#: type.c:261
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "variável \"%s\" está escondida por uma variável local de um tipo diferente"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "variável \"%s\" está escondida por uma variável local"
+
+#: type.c:275
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr "variável de indicador \"%s\" está escondida por uma variável local de um tipo diferente"
+
+#: type.c:277
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "variável de indicador \"%s\" está escondida por uma variável local"
+
+#: type.c:285
+#, c-format
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "indicador para matriz/ponteiro tem de ser matriz/ponteiro"
+
+#: type.c:289
+#, c-format
+msgid "nested arrays are not supported (except strings)"
+msgstr "matrizes aninhadas não são suportadas (exceto cadeia de caracteres)"
+
+#: type.c:331
+#, c-format
+msgid "indicator for struct has to be a struct"
+msgstr "indicador para struct tem que ser struct"
+
+#: type.c:351 type.c:372 type.c:392
+#, c-format
+msgid "indicator for simple data type has to be simple"
+msgstr "indicador para tipo de dados simples tem que ser simples"
+
+#: type.c:723
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "código do item do descritor %d é desconhecido"
+
+#: variable.c:89 variable.c:116
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "variável \"%s\" possui formato incorreto"
+
+#: variable.c:139
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "variável \"%s\" não é um ponteiro"
+
+#: variable.c:142 variable.c:167
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "variável \"%s\" não é um ponteiro para uma estrutura ou uma união"
+
+#: variable.c:154
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "variável \"%s\" não é nem uma estrutura nem uma união"
+
+#: variable.c:164
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "variável \"%s\" não é uma matriz"
+
+#: variable.c:233 variable.c:255
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "variável \"%s\" não foi declarada"
+
+#: variable.c:494
+#, c-format
+msgid "indicator variable must have an integer type"
+msgstr "variável de indicador deve ter um tipo inteiro"
+
+#: variable.c:506
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr "nome do tipo dados \"%s\" é desconhecido"
+
+#: variable.c:517 variable.c:525 variable.c:542 variable.c:545
+#, c-format
+msgid "multidimensional arrays are not supported"
+msgstr "matrizes multidimensionais não são suportadas"
+
+#: variable.c:534
+#, c-format
+msgid "multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] "ponteiros com múltiplos níveis (mais do que 2 níveis) não são suportados; %d nível encontrado"
+msgstr[1] "ponteiros com múltiplos níveis (mais do que 2 níveis) não são suportados; %d níveis encontrados"
+
+#: variable.c:539
+#, c-format
+msgid "pointer to pointer is not supported for this data type"
+msgstr "ponteiro para ponteiro não é suportado para esse tipo de dado"
+
+#: variable.c:559
+#, c-format
+msgid "multidimensional arrays for structures are not supported"
+msgstr "matrizes multidimensionais para estruturas não são suportadas"
diff --git a/src/interfaces/ecpg/preproc/po/ru.po b/src/interfaces/ecpg/preproc/po/ru.po
new file mode 100644
index 0000000..056cd13
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/ru.po
@@ -0,0 +1,741 @@
+# Russian message translation file for ecpg
+# Copyright (C) 2012-2016 PostgreSQL Global Development Group
+# This file is distributed under the same license as the PostgreSQL package.
+# Alexander Lakhin <exclusion@gmail.com>, 2012-2017, 2018, 2019, 2020, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: ecpg (PostgreSQL current)\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2021-09-01 12:57+0300\n"
+"PO-Revision-Date: 2021-09-04 10:54+0300\n"
+"Last-Translator: Alexander Lakhin <exclusion@gmail.com>\n"
+"Language-Team: Russian <pgsql-ru-general@postgresql.org>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "переменная \"%s\" должна иметь числовой тип"
+
+#: descriptor.c:125 descriptor.c:156
+#, c-format
+msgid "descriptor %s bound to connection %s does not exist"
+msgstr "дескриптор %s, привязанный к соединению %s, не существует"
+
+#: descriptor.c:127 descriptor.c:158
+#, c-format
+msgid "descriptor %s bound to the default connection does not exist"
+msgstr "дескриптор %s, привязанный к соединению по умолчанию, не существует"
+
+#: descriptor.c:173 descriptor.c:225
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "заголовок дескриптора не содержит элемент \"%d\""
+
+#: descriptor.c:195
+#, c-format
+msgid "nullable is always 1"
+msgstr "NULLABLE всегда равно 1"
+
+#: descriptor.c:198
+#, c-format
+msgid "key_member is always 0"
+msgstr "KEY_MEMBER всегда равно 0"
+
+#: descriptor.c:292
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "поле \"%s\" в дескрипторе не реализовано"
+
+#: descriptor.c:302
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "установить поле \"%s\" в дескрипторе нельзя"
+
+#: ecpg.c:36
+#, c-format
+msgid ""
+"%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
+"\n"
+msgstr ""
+"%s - препроцессор SQL-вставок в программах на C для PostgreSQL.\n"
+"\n"
+
+#: ecpg.c:38
+#, c-format
+msgid ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"Использование:\n"
+" %s [ПАРАМЕТР]... ФАЙЛ...\n"
+"\n"
+
+#: ecpg.c:41
+#, c-format
+msgid "Options:\n"
+msgstr "Параметры:\n"
+
+#: ecpg.c:42
+#, c-format
+msgid ""
+" -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr ""
+" -c автоматически генерировать код C из внедрённого SQL-кода;\n"
+" (это касается EXEC SQL TYPE)\n"
+
+#: ecpg.c:44
+#, c-format
+msgid ""
+" -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+msgstr ""
+" -C РЕЖИМ установить режим совместимости; допустимый РЕЖИМ:\n"
+" \"INFORMIX\", \"INFORMIX_SE\" или \"ORACLE\"\n"
+
+#: ecpg.c:47
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d генерировать отладочные сообщения при разборе\n"
+
+#: ecpg.c:49
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D СИМВОЛ определить (define) СИМВОЛ\n"
+
+#: ecpg.c:50
+#, c-format
+msgid ""
+" -h parse a header file, this option includes option \"-c\"\n"
+msgstr " -h разобрать файл заголовка (включает параметр \"-c\")\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i разобрать также системные включаемые файлы\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I КАТАЛОГ искать включаемые файлы в указанном каталоге\n"
+
+#: ecpg.c:53
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o ФАЙЛ записать результат в ФАЙЛ\n"
+
+#: ecpg.c:54
+#, c-format
+msgid ""
+" -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr ""
+" -r ПАРАМЕТР определить режим выполнения; допустимый ПАРАМЕТР:\n"
+" \"no_indicator\", \"prepare\" или \"questionmarks\"\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression запустить в режиме тестирования регрессии\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr " -t включить автофиксацию транзакций\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " -V, --version output version information, then exit\n"
+msgstr " -V, --version показать версию и выйти\n"
+
+#: ecpg.c:59
+#, c-format
+msgid " -?, --help show this help, then exit\n"
+msgstr " -?, --help показать эту справку и выйти\n"
+
+# skip-rule: space-before-period
+#: ecpg.c:60
+#, c-format
+msgid ""
+"\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr ""
+"\n"
+"Если выходной файл не указан, к имени входного файла без расширения .pgc\n"
+"добавляется .c.\n"
+
+#: ecpg.c:62
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Об ошибках сообщайте по адресу <%s>.\n"
+
+#: ecpg.c:63
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Домашняя страница %s: <%s>\n"
+
+#: ecpg.c:141
+#, c-format
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s: не удалось найти путь к собственному исполняемому файлу\n"
+
+#: ecpg.c:176 ecpg.c:333 ecpg.c:344
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: не удалось открыть файл \"%s\": %s\n"
+
+#: ecpg.c:219 ecpg.c:232 ecpg.c:248 ecpg.c:274
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "Для дополнительной информации попробуйте \"%s --help\".\n"
+
+#: ecpg.c:243
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr "%s: отладочные сообщения при разборе (-d) не поддерживаются\n"
+
+#: ecpg.c:262
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n"
+msgstr "%s, препроцессор внедрённого в С языка СУБД PostgreSQL, версия %s\n"
+
+#: ecpg.c:264
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "поиск файлов для EXEC SQL INCLUDE ... начинается в каталогах:\n"
+
+#: ecpg.c:267
+#, c-format
+msgid "end of search list\n"
+msgstr "конец списка поиска\n"
+
+#: ecpg.c:273
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s: нет входных файлов\n"
+
+#: ecpg.c:477
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "курсор \"%s\" был объявлен, но не открыт"
+
+#: ecpg.c:490 preproc.y:130
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "ошибка при удалении выходного файла \"%s\"\n"
+
+#: pgc.l:502
+#, c-format
+msgid "unterminated /* comment"
+msgstr "незавершённый комментарий /*"
+
+#: pgc.l:519
+#, c-format
+msgid "unterminated bit string literal"
+msgstr "оборванная битовая строка"
+
+#: pgc.l:527
+#, c-format
+msgid "unterminated hexadecimal string literal"
+msgstr "оборванная шестнадцатеричная строка"
+
+#: pgc.l:602
+#, c-format
+msgid "invalid bit string literal"
+msgstr "неверная битовая строка"
+
+#: pgc.l:607
+#, c-format
+msgid "invalid hex string literal"
+msgstr "неверная шестнадцатеричная строка"
+
+#: pgc.l:625
+#, c-format
+msgid "unhandled previous state in xqs\n"
+msgstr ""
+"необрабатываемое предыдущее состояние при обнаружении закрывающего "
+"апострофа\n"
+
+#: pgc.l:651 pgc.l:760
+#, c-format
+msgid "unterminated quoted string"
+msgstr "незавершённая строка в кавычках"
+
+#: pgc.l:702
+#, c-format
+msgid "unterminated dollar-quoted string"
+msgstr "незавершённая строка с $"
+
+#: pgc.l:720 pgc.l:740
+#, c-format
+msgid "zero-length delimited identifier"
+msgstr "пустой идентификатор в кавычках"
+
+#: pgc.l:751
+#, c-format
+msgid "unterminated quoted identifier"
+msgstr "незавершённый идентификатор в кавычках"
+
+#: pgc.l:1082
+#, c-format
+msgid "nested /* ... */ comments"
+msgstr "вложенные комментарии /* ... */"
+
+#: pgc.l:1175
+#, c-format
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "в команде EXEC SQL UNDEF отсутствует идентификатор"
+
+#: pgc.l:1193 pgc.l:1206 pgc.l:1222 pgc.l:1235
+#, c-format
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "слишком много вложенных условий EXEC SQL IFDEF"
+
+#: pgc.l:1251 pgc.l:1262 pgc.l:1277 pgc.l:1299
+#, c-format
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "нет соответствующего \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+
+#: pgc.l:1253 pgc.l:1264 pgc.l:1445
+#, c-format
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "отсутствует \"EXEC SQL ENDIF;\""
+
+#: pgc.l:1279 pgc.l:1301
+#, c-format
+msgid "more than one EXEC SQL ELSE"
+msgstr "неоднократная команда EXEC SQL ELSE"
+
+#: pgc.l:1324 pgc.l:1338
+#, c-format
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "непарная команда EXEC SQL ENDIF"
+
+#: pgc.l:1393
+#, c-format
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "в команде EXEC SQL IFDEF отсутствует идентификатор"
+
+#: pgc.l:1402
+#, c-format
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "в команде EXEC SQL DEFINE отсутствует идентификатор"
+
+#: pgc.l:1435
+#, c-format
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "ошибка синтаксиса в команде EXEC SQL INCLUDE"
+
+#: pgc.l:1485
+#, c-format
+msgid "internal error: unreachable state; please report this to <%s>"
+msgstr "внутренняя ошибка: недостижимое состояние; пожалуйста, сообщите в <%s>"
+
+#: pgc.l:1637
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr ""
+"Ошибка: путь включаемых файлов \"%s/%s\" в строке %d слишком длинный, "
+"пропускается\n"
+
+#: pgc.l:1660
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr "не удалось открыть включаемый файл \"%s\" (строка %d)"
+
+#: preproc.y:31
+msgid "syntax error"
+msgstr "ошибка синтаксиса"
+
+#: preproc.y:84
+#, c-format
+msgid "WARNING: "
+msgstr "ПРЕДУПРЕЖДЕНИЕ: "
+
+#: preproc.y:87
+#, c-format
+msgid "ERROR: "
+msgstr "ОШИБКА: "
+
+#: preproc.y:514
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "курсор \"%s\" не существует"
+
+#: preproc.y:543
+#, c-format
+msgid "initializer not allowed in type definition"
+msgstr "определение типа не может включать инициализатор"
+
+#: preproc.y:545
+#, c-format
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "имя типа \"string\" в режиме Informix зарезервировано"
+
+#: preproc.y:552 preproc.y:17675
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "тип \"%s\" уже определён"
+
+#: preproc.y:577 preproc.y:18310 preproc.y:18635 variable.c:621
+#, c-format
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr "многомерные массивы с простыми типами данных не поддерживаются"
+
+#: preproc.y:599
+#, c-format
+msgid "connection %s is overwritten with %s by DECLARE statement %s"
+msgstr "подключение %s заменяется на %s оператором DECLARE %s"
+
+#: preproc.y:1753
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "оператор CLOSE DATABASE с параметром AT не поддерживается"
+
+#: preproc.y:2001
+#, c-format
+msgid "AT option not allowed in CONNECT statement"
+msgstr "оператор CONNECT с параметром AT не поддерживается"
+
+#: preproc.y:2041
+#, c-format
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "оператор DISCONNECT с параметром AT не поддерживается"
+
+#: preproc.y:2096
+#, c-format
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "оператор SET CONNECTION с параметром AT не поддерживается"
+
+#: preproc.y:2118
+#, c-format
+msgid "AT option not allowed in TYPE statement"
+msgstr "оператор TYPE с параметром AT не поддерживается"
+
+#: preproc.y:2127
+#, c-format
+msgid "AT option not allowed in VAR statement"
+msgstr "оператор VAR с параметром AT не поддерживается"
+
+#: preproc.y:2134
+#, c-format
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "оператор WHENEVER с параметром AT не поддерживается"
+
+#: preproc.y:2211 preproc.y:2383 preproc.y:2388 preproc.y:2511 preproc.y:4143
+#: preproc.y:4807 preproc.y:5340 preproc.y:5678 preproc.y:5978 preproc.y:7514
+#: preproc.y:9082 preproc.y:9087 preproc.y:11915
+#, c-format
+msgid "unsupported feature will be passed to server"
+msgstr "неподдерживаемая функция будет передана серверу"
+
+#: preproc.y:2769
+#, c-format
+msgid "SHOW ALL is not implemented"
+msgstr "SHOW ALL не реализовано"
+
+#: preproc.y:3464
+#, c-format
+msgid "COPY FROM STDIN is not implemented"
+msgstr "операция COPY FROM STDIN не реализована"
+
+#: preproc.y:10014 preproc.y:17250
+#, c-format
+msgid "\"database\" cannot be used as cursor name in INFORMIX mode"
+msgstr ""
+"в режиме INFORMIX нельзя использовать \"database\" в качестве имени курсора"
+
+#: preproc.y:10021 preproc.y:17260
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr ""
+"использование переменной \"%s\" в разных операторах DECLARE не поддерживается"
+
+#: preproc.y:10023 preproc.y:17262
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "курсор \"%s\" уже определён"
+
+#: preproc.y:10497
+#, c-format
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "не поддерживаемое более предложение LIMIT #,# передано на сервер"
+
+#: preproc.y:10830 preproc.y:10837
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "подзапрос во FROM должен иметь псевдоним"
+
+#: preproc.y:16942 preproc.y:16949
+#, c-format
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "в CREATE TABLE AS нельзя указать INTO"
+
+#: preproc.y:16985
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "ожидался знак \"@\", но на этом месте \"%s\""
+
+#: preproc.y:16997
+#, c-format
+msgid ""
+"only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are "
+"supported"
+msgstr ""
+"поддерживаются только протоколы \"tcp\" и \"unix\", а тип базы данных - "
+"\"postgresql\""
+
+#: preproc.y:17000
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "ожидалось \"://\", но на этом месте \"%s\""
+
+#: preproc.y:17005
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr "Unix-сокеты работают только с \"localhost\", но не с адресом \"%s\""
+
+#: preproc.y:17031
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "ожидался тип \"postgresql\", но на этом месте \"%s\""
+
+#: preproc.y:17034
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "неверный тип подключения: %s"
+
+#: preproc.y:17043
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "ожидалось \"@\" или \"://\", но на этом месте \"%s\""
+
+#: preproc.y:17118 preproc.y:17136
+#, c-format
+msgid "invalid data type"
+msgstr "неверный тип данных"
+
+#: preproc.y:17147 preproc.y:17164
+#, c-format
+msgid "incomplete statement"
+msgstr "неполный оператор"
+
+#: preproc.y:17150 preproc.y:17167
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "нераспознанное ключевое слово \"%s\""
+
+#: preproc.y:17212
+#, c-format
+msgid "name \"%s\" is already declared"
+msgstr "имя \"%s\" уже объявлено"
+
+#: preproc.y:17478
+#, c-format
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr ""
+"точность/масштаб можно указать только для типов данных numeric и decimal"
+
+#: preproc.y:17490
+#, c-format
+msgid "interval specification not allowed here"
+msgstr "определение интервала здесь не допускается"
+
+#: preproc.y:17650 preproc.y:17702
+#, c-format
+msgid "too many levels in nested structure/union definition"
+msgstr "слишком много уровней в определении вложенной структуры/объединения"
+
+#: preproc.y:17825
+#, c-format
+msgid "pointers to varchar are not implemented"
+msgstr "указатели на varchar не реализованы"
+
+#: preproc.y:18276
+#, c-format
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "команда EXEC SQL VAR не может включать инициализатор"
+
+#: preproc.y:18593
+#, c-format
+msgid "arrays of indicators are not allowed on input"
+msgstr "массивы индикаторов на входе недопустимы"
+
+#: preproc.y:18780
+#, c-format
+msgid "operator not allowed in variable definition"
+msgstr "недопустимый оператор в определении переменной"
+
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:18821
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "%s (примерное положение: \"%s\")"
+
+#: type.c:18 type.c:30
+#, c-format
+msgid "out of memory"
+msgstr "нехватка памяти"
+
+#: type.c:214 type.c:685
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "нераспознанный код типа переменной %d"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "переменная \"%s\" скрыта локальной переменной другого типа"
+
+#: type.c:265
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "переменная \"%s\" скрыта локальной переменной"
+
+#: type.c:277
+#, c-format
+msgid ""
+"indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr "переменная-индикатор \"%s\" скрыта локальной переменной другого типа"
+
+#: type.c:279
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "переменная-индикатор \"%s\" скрыта локальной переменной"
+
+#: type.c:287
+#, c-format
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "индикатор для массива/указателя должен быть массивом/указателем"
+
+#: type.c:291
+#, c-format
+msgid "nested arrays are not supported (except strings)"
+msgstr "вложенные массивы не поддерживаются (за исключением строк)"
+
+#: type.c:333
+#, c-format
+msgid "indicator for struct has to be a struct"
+msgstr "индикатор структуры должен быть структурой"
+
+#: type.c:353 type.c:374 type.c:394
+#, c-format
+msgid "indicator for simple data type has to be simple"
+msgstr "индикатор простого типа должен быть простым"
+
+#: type.c:625
+#, c-format
+msgid "indicator struct \"%s\" has too few members"
+msgstr "в структуре индикаторе \"%s\" слишком мало членов"
+
+#: type.c:633
+#, c-format
+msgid "indicator struct \"%s\" has too many members"
+msgstr "в структуре индикаторе \"%s\" слишком много членов"
+
+#: type.c:744
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "нераспознанный код элемента дескриптора %d"
+
+#: variable.c:89 variable.c:116
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "неправильно оформленная переменная \"%s\""
+
+#: variable.c:139
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "переменная \"%s\" - не указатель"
+
+#: variable.c:142 variable.c:167
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "переменная \"%s\" - не указатель на структуру или объединение"
+
+#: variable.c:154
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "переменная \"%s\" - не структура и не объединение"
+
+#: variable.c:164
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "переменная \"%s\" - не массив"
+
+#: variable.c:233 variable.c:255
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "переменная \"%s\" не объявлена"
+
+#: variable.c:494
+#, c-format
+msgid "indicator variable must have an integer type"
+msgstr "переменная-индикатор должна быть целочисленной"
+
+#: variable.c:506
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr "нераспознанное имя типа данных \"%s\""
+
+#: variable.c:517 variable.c:525 variable.c:542 variable.c:545
+#, c-format
+msgid "multidimensional arrays are not supported"
+msgstr "многомерные массивы не поддерживаются"
+
+#: variable.c:534
+#, c-format
+msgid ""
+"multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural ""
+"multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] ""
+"многоуровневые указатели (больше 2 уровней) не поддерживаются, обнаружен %d "
+"уровень"
+msgstr[1] ""
+"многоуровневые указатели (больше 2 уровней) не поддерживаются, обнаружено %d "
+"уровня"
+msgstr[2] ""
+"многоуровневые указатели (больше 2 уровней) не поддерживаются, обнаружено %d "
+"уровней"
+
+#: variable.c:539
+#, c-format
+msgid "pointer to pointer is not supported for this data type"
+msgstr "для этого типа данных указатели на указатели не поддерживаются"
+
+#: variable.c:559
+#, c-format
+msgid "multidimensional arrays for structures are not supported"
+msgstr "многомерные массивы структур не поддерживаются"
+
+#~ msgid "using unsupported DESCRIBE statement"
+#~ msgstr "используется неподдерживаемый оператор DESCRIBE"
+
+#~ msgid ""
+#~ "\n"
+#~ "Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Об ошибках сообщайте по адресу <pgsql-bugs@lists.postgresql.org>.\n"
+
+#~ msgid "declared name \"%s\" is already defined"
+#~ msgstr "объявленное имя \"%s\" уже определено"
+
+#~ msgid "COPY FROM STDOUT is not possible"
+#~ msgstr "операция COPY FROM STDOUT невозможна"
+
+#~ msgid "COPY TO STDIN is not possible"
+#~ msgstr "операция COPY TO STDIN невозможна"
diff --git a/src/interfaces/ecpg/preproc/po/sv.po b/src/interfaces/ecpg/preproc/po/sv.po
new file mode 100644
index 0000000..a0ff805
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/sv.po
@@ -0,0 +1,699 @@
+# SWEDISHE message translation file for ecpg
+# Copyright (C) 2017 PostgreSQL Global Development Group
+# This file is distributed under the same license as the PostgreSQL package.
+# Dennis Björklund <db@zigo.dhs.org>, 2017, 2018, 2019, 2020, 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PostgreSQL 14\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2021-11-06 17:09+0000\n"
+"PO-Revision-Date: 2021-11-06 21:58+0100\n"
+"Last-Translator: Dennis Björklund <db@zigo.dhs.org>\n"
+"Language-Team: Swedish <pgsql-translators@postgresql.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "variabel \"%s\" måste ha en numerisk typ"
+
+#: descriptor.c:125 descriptor.c:156
+#, c-format
+msgid "descriptor %s bound to connection %s does not exist"
+msgstr "deskriptor %s kopplad till anslutning %s finns inte"
+
+#: descriptor.c:127 descriptor.c:158
+#, c-format
+msgid "descriptor %s bound to the default connection does not exist"
+msgstr "deskriptor %s kopplad till standardanslutning finns inte"
+
+#: descriptor.c:173 descriptor.c:225
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "deskriptor-header-post \"%d\" finns inte"
+
+#: descriptor.c:195
+#, c-format
+msgid "nullable is always 1"
+msgstr "nullable är alltid 1"
+
+#: descriptor.c:198
+#, c-format
+msgid "key_member is always 0"
+msgstr "key_member är alltid 0"
+
+#: descriptor.c:292
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "deskriptor-post \"%s\" är inte implementerad"
+
+#: descriptor.c:302
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "deskriptor-post \"%s\" kan inte sättas"
+
+#: ecpg.c:36
+#, c-format
+msgid ""
+"%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
+"\n"
+msgstr ""
+"%s är PostgreSQLs inbäddade SQL-preprocessor för C-program.\n"
+"\n"
+
+#: ecpg.c:38
+#, c-format
+msgid ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"Användning:\n"
+" %s [FLAGGA]... FIL...\n"
+"\n"
+
+#: ecpg.c:41
+#, c-format
+msgid "Options:\n"
+msgstr "Flaggor:\n"
+
+#: ecpg.c:42
+#, c-format
+msgid ""
+" -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr ""
+" -c generera automatiskt C-kod från inbäddad SQL-kod;\n"
+" detta påverkar EXEC SQL TYPE\n"
+
+#: ecpg.c:44
+#, c-format
+msgid ""
+" -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+msgstr ""
+" -C LÄGE sätt kompabilitetsläge; LÄGE kan vara en av\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+
+#: ecpg.c:47
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d generera parser-debug-utmatning\n"
+
+#: ecpg.c:49
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D SYMBOL definiera SYMBOL\n"
+
+#: ecpg.c:50
+#, c-format
+msgid " -h parse a header file, this option includes option \"-c\"\n"
+msgstr " -h parsa en header-fil, denna flagga inkluderar flaggan \"-c\"\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i parsa system-include-filer dessutom\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I KATALOG sök i KATALOG efter include-filer\n"
+
+#: ecpg.c:53
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o UTFIL skriv resultat till UTFIL\n"
+
+#: ecpg.c:54
+#, c-format
+msgid ""
+" -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr ""
+" -r FLAGGA ange runtime-beteende; FLAGGA kan vara en av:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression kör i regressions-test-läge\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr " -t slå på auto-commit av transaktioner\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " -V, --version output version information, then exit\n"
+msgstr " -V, --version visa versionsinformation, avsluta sedan\n"
+
+#: ecpg.c:59
+#, c-format
+msgid " -?, --help show this help, then exit\n"
+msgstr " -?, --help visa denna hjälp, avsluta sedan\n"
+
+#: ecpg.c:60
+#, c-format
+msgid ""
+"\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr ""
+"\n"
+"Om ingen utdatafil anges så skapas namnet genom att lägga till .c till\n"
+"indatafilnamnet, detta efter att .pgc strippats bort om det var med.\n"
+
+#: ecpg.c:62
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Rapportera fel till <%s>.\n"
+
+#: ecpg.c:63
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "hemsida för %s: <%s>\n"
+
+#: ecpg.c:141
+#, c-format
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s: kunde inte hitta min egna körbara fils sökväg\n"
+
+#: ecpg.c:176 ecpg.c:333 ecpg.c:344
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: kunde inte öppna fil \"%s\": %s\n"
+
+#: ecpg.c:219 ecpg.c:232 ecpg.c:248 ecpg.c:274
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "Försök med \"%s --help\" för mer information.\n"
+
+#: ecpg.c:243
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr "%s: parser-debug-stöd (-d) är inte tillgängligt\n"
+
+#: ecpg.c:262
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n"
+msgstr "%s, PostgreSQLs inbäddade C-preprocessor, version %s\n"
+
+#: ecpg.c:264
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "EXEC SQL INCLUDE ... sökning startar här:\n"
+
+#: ecpg.c:267
+#, c-format
+msgid "end of search list\n"
+msgstr "slut på söklista\n"
+
+#: ecpg.c:273
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s: inga indatafiler angivna\n"
+
+#: ecpg.c:477
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "markören \"%s\" har deklarerats men inte öppnats"
+
+#: ecpg.c:490 preproc.y:130
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "kunde inte ta bort utdatafil \"%s\"\n"
+
+#: pgc.l:502
+#, c-format
+msgid "unterminated /* comment"
+msgstr "ej avslutad /*-kommentar"
+
+#: pgc.l:519
+#, c-format
+msgid "unterminated bit string literal"
+msgstr "ej avslutad bitsträngslitteral"
+
+#: pgc.l:527
+#, c-format
+msgid "unterminated hexadecimal string literal"
+msgstr "ej avslutad hexadecimal stränglitteral"
+
+#: pgc.l:602
+#, c-format
+msgid "invalid bit string literal"
+msgstr "ogiltig bit-sträng-literal"
+
+#: pgc.l:607
+#, c-format
+msgid "invalid hex string literal"
+msgstr "ogiltig hex-sträng-literal"
+
+#: pgc.l:625
+#, c-format
+msgid "unhandled previous state in xqs\n"
+msgstr "tidigare state i xqs som ej kan hanteras\n"
+
+#: pgc.l:651 pgc.l:760
+#, c-format
+msgid "unterminated quoted string"
+msgstr "icketerminerad citerad sträng"
+
+#: pgc.l:702
+#, c-format
+msgid "unterminated dollar-quoted string"
+msgstr "icke terminerad dollarciterad sträng"
+
+#: pgc.l:720 pgc.l:740
+#, c-format
+msgid "zero-length delimited identifier"
+msgstr "noll-längds avdelad identifierare"
+
+#: pgc.l:751
+#, c-format
+msgid "unterminated quoted identifier"
+msgstr "ej avslutad citerad identifierare"
+
+#: pgc.l:1082
+#, c-format
+msgid "nested /* ... */ comments"
+msgstr "nästlade /* ... */-kommentarer"
+
+#: pgc.l:1175
+#, c-format
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "saknar identifierare i EXEC SQL UNDEF-kommando"
+
+#: pgc.l:1193 pgc.l:1206 pgc.l:1222 pgc.l:1235
+#, c-format
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "för många nästlade EXEC SQL IFDEF-villkor"
+
+#: pgc.l:1251 pgc.l:1262 pgc.l:1277 pgc.l:1299
+#, c-format
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "saknar matchande \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+
+#: pgc.l:1253 pgc.l:1264 pgc.l:1445
+#, c-format
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "saknar \"EXEC SQL ENDIF;\""
+
+#: pgc.l:1279 pgc.l:1301
+#, c-format
+msgid "more than one EXEC SQL ELSE"
+msgstr "mer än en EXEC SQL ELSE"
+
+#: pgc.l:1324 pgc.l:1338
+#, c-format
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "ej matchad EXEC SQL ENDIF"
+
+#: pgc.l:1393
+#, c-format
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "saknar identifierare i EXEC SQL IFDEF-kommando"
+
+#: pgc.l:1402
+#, c-format
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "saknar identifierare i EXEC SQL DEFINE-kommando"
+
+#: pgc.l:1435
+#, c-format
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "syntaxfel i EXEC SQL INCLUDE-kommando"
+
+#: pgc.l:1485
+#, c-format
+msgid "internal error: unreachable state; please report this to <%s>"
+msgstr "internt fel: state som ej skall kunna nås; vänligen rapportera detta till <%s>"
+
+#: pgc.l:1637
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr "Fel: include-sökväg \"%s/%s\" är för lång på rad %d, hoppar över\n"
+
+#: pgc.l:1660
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr "kunde inte öppna inkludefil \"%s\" på rad %d"
+
+#: preproc.y:31
+msgid "syntax error"
+msgstr "syntaxfel"
+
+#: preproc.y:84
+#, c-format
+msgid "WARNING: "
+msgstr "VARNING: "
+
+#: preproc.y:87
+#, c-format
+msgid "ERROR: "
+msgstr "FEL: "
+
+#: preproc.y:514
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "markör \"%s\" existerar inte"
+
+#: preproc.y:543
+#, c-format
+msgid "initializer not allowed in type definition"
+msgstr "initialiserare tillåts inte i typdefinition"
+
+#: preproc.y:545
+#, c-format
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "typnamn \"string\" är reserverat i Informix-läge"
+
+#: preproc.y:552 preproc.y:17675
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "typen \"%s\" är redan definierad"
+
+#: preproc.y:577 preproc.y:18310 preproc.y:18635 variable.c:621
+#, c-format
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr "multidimensionella array:er för enkla datatyper stöds inte"
+
+#: preproc.y:599
+#, c-format
+msgid "connection %s is overwritten with %s by DECLARE statement %s"
+msgstr "anslutning %s överskriven med %s av DECLARE-sats %s"
+
+#: preproc.y:1753
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "AT-flaggan tillåts inte i CLOSE DATABASE-sats"
+
+#: preproc.y:2001
+#, c-format
+msgid "AT option not allowed in CONNECT statement"
+msgstr "AT-flaggan tillåts inte i CONNECT-sats"
+
+#: preproc.y:2041
+#, c-format
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "AT-flaggan tillåts inte i DISCONNECT-sats"
+
+#: preproc.y:2096
+#, c-format
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "AT-flaggan tillåts inte i SET CONNECTION-sats"
+
+#: preproc.y:2118
+#, c-format
+msgid "AT option not allowed in TYPE statement"
+msgstr "AT-flaggan tillåts inte i TYPE-sats"
+
+#: preproc.y:2127
+#, c-format
+msgid "AT option not allowed in VAR statement"
+msgstr "AT-flaggan tillåts inte i VAR-sats"
+
+#: preproc.y:2134
+#, c-format
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "AT-flaggan tillåts inte i WHENEVER-sats"
+
+#: preproc.y:2211 preproc.y:2383 preproc.y:2388 preproc.y:2511 preproc.y:4143
+#: preproc.y:4807 preproc.y:5340 preproc.y:5678 preproc.y:5978 preproc.y:7514
+#: preproc.y:9082 preproc.y:9087 preproc.y:11915
+#, c-format
+msgid "unsupported feature will be passed to server"
+msgstr "ej stödd funktion skickass till servern"
+
+#: preproc.y:2769
+#, c-format
+msgid "SHOW ALL is not implemented"
+msgstr "SHOW ALL är inte implementerad"
+
+#: preproc.y:3464
+#, c-format
+msgid "COPY FROM STDIN is not implemented"
+msgstr "COPY FROM STDIN är inte implementerad"
+
+#: preproc.y:10014 preproc.y:17250
+#, c-format
+msgid "\"database\" cannot be used as cursor name in INFORMIX mode"
+msgstr "\"database\" kan inte användas som markörsnamn i INFORMIX-läge"
+
+#: preproc.y:10021 preproc.y:17260
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr "använda variabel \"%s\" i olika deklarationssatser stöds inte"
+
+#: preproc.y:10023 preproc.y:17262
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "markören \"%s\" är redan definierad"
+
+#: preproc.y:10497
+#, c-format
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "ej längre stödd syntax LIMIT #,# har skickats till servern"
+
+#: preproc.y:10830 preproc.y:10837
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "subfråga i FROM måste ha ett alias"
+
+#: preproc.y:16942 preproc.y:16949
+#, c-format
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "CREATE TABLE AS kan inte ange INTO"
+
+#: preproc.y:16985
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "förväntade \"@\", hittade \"%s\""
+
+#: preproc.y:16997
+#, c-format
+msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported"
+msgstr "bara protokoll \"tcp\" och \"unix\" samt databastyp \"postgresql\" stöds"
+
+#: preproc.y:17000
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "förväntade \"://\", hittade \"%s\""
+
+#: preproc.y:17005
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr "Unix-domän-socket fungerart bara på \"localhost\" men inte på \"%s\""
+
+#: preproc.y:17031
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "förväntade \"postgresql\", hittade \"%s\""
+
+#: preproc.y:17034
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "ogiltig anslutningstyp: %s"
+
+#: preproc.y:17043
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "förväntade \"@\" eller \"://\", hittade \"%s\""
+
+#: preproc.y:17118 preproc.y:17136
+#, c-format
+msgid "invalid data type"
+msgstr "ogiltig datatyp"
+
+#: preproc.y:17147 preproc.y:17164
+#, c-format
+msgid "incomplete statement"
+msgstr "ofullständig sats"
+
+#: preproc.y:17150 preproc.y:17167
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "okänd symbol \"%s\""
+
+#: preproc.y:17212
+#, c-format
+msgid "name \"%s\" is already declared"
+msgstr "namnet \"%s\" är redan deklarerat"
+
+#: preproc.y:17478
+#, c-format
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr "bara datatyperna numeric och decimal har precision/skala-argument"
+
+#: preproc.y:17490
+#, c-format
+msgid "interval specification not allowed here"
+msgstr "intervallspecifikation tillåts inte här"
+
+#: preproc.y:17650 preproc.y:17702
+#, c-format
+msgid "too many levels in nested structure/union definition"
+msgstr "för många nästlade nivåer i struktur/union-definition"
+
+#: preproc.y:17825
+#, c-format
+msgid "pointers to varchar are not implemented"
+msgstr "pekare till varchar är inte implementerat"
+
+#: preproc.y:18276
+#, c-format
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "initialiserare tillåts inte i EXEC SQL VAR-kommando"
+
+#: preproc.y:18593
+#, c-format
+msgid "arrays of indicators are not allowed on input"
+msgstr "array:er av indikatorer tillåts inte vid indata"
+
+#: preproc.y:18780
+#, c-format
+msgid "operator not allowed in variable definition"
+msgstr "operator tillåts inte i variabeldefinition"
+
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:18821
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "%s vid eller nära \"%s\""
+
+#: type.c:18 type.c:30
+#, c-format
+msgid "out of memory"
+msgstr "slut på minne"
+
+#: type.c:214 type.c:685
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "okänd variabeltypkod %d"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "variabel \"%s\" döljs av en lokal variabel av annan typ"
+
+#: type.c:265
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "variabel \"%s\" döljs av en lokal variabel"
+
+#: type.c:277
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr "indikatorvariabel \"%s\" döljs av en lokal variabel av annan typ"
+
+#: type.c:279
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "indikatorvariabel \"%s\" döljs av en lokal variabel"
+
+#: type.c:287
+#, c-format
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "indikator för array/pekare måste vara en array/pekare"
+
+#: type.c:291
+#, c-format
+msgid "nested arrays are not supported (except strings)"
+msgstr "nästlade array:er stöds inte (förutom strängar)"
+
+#: type.c:333
+#, c-format
+msgid "indicator for struct has to be a struct"
+msgstr "indikator för en struktur måste vara en struktur"
+
+#: type.c:353 type.c:374 type.c:394
+#, c-format
+msgid "indicator for simple data type has to be simple"
+msgstr "indikator för enkla datatyper måste vara enkel"
+
+#: type.c:625
+#, c-format
+msgid "indicator struct \"%s\" has too few members"
+msgstr "indikatorstruktur \"%s\" har för få medlemmar"
+
+#: type.c:633
+#, c-format
+msgid "indicator struct \"%s\" has too many members"
+msgstr "indikatorstruktur \"%s\" har för många medlemmar"
+
+#: type.c:744
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "okänd deskriptor-post-kod %d"
+
+#: variable.c:89 variable.c:116
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "inkorrekt formatterad variabel \"%s\""
+
+#: variable.c:139
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "variabel \"%s\" är inte en pekare"
+
+#: variable.c:142 variable.c:167
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "variabel \"%s\" är inte en pekare till en struktur eller union"
+
+#: variable.c:154
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "variabel \"%s\" är varken en struktur eller en union"
+
+#: variable.c:164
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "variabel \"%s\" är inte en array"
+
+#: variable.c:233 variable.c:255
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "variabel \"%s\" är inte deklarerad"
+
+#: variable.c:494
+#, c-format
+msgid "indicator variable must have an integer type"
+msgstr "indikatorvariabel måste ha en heltalstyp"
+
+#: variable.c:506
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr "okänt datatypsnamn \"%s\""
+
+#: variable.c:517 variable.c:525 variable.c:542 variable.c:545
+#, c-format
+msgid "multidimensional arrays are not supported"
+msgstr "multidimensionella array:er stöds inte"
+
+#: variable.c:534
+#, c-format
+msgid "multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] "multinivåpekare (mer än 2 nivåer) stöds inte; hittade %d nivå"
+msgstr[1] "multinivåpekare (mer än 2 nivåer) stöds inte; hittade %d nivåer"
+
+#: variable.c:539
+#, c-format
+msgid "pointer to pointer is not supported for this data type"
+msgstr "pekare till pekare stöds inte för denna datatyp"
+
+#: variable.c:559
+#, c-format
+msgid "multidimensional arrays for structures are not supported"
+msgstr "multidimensionella array:er av strukturer stöds inte"
diff --git a/src/interfaces/ecpg/preproc/po/tr.po b/src/interfaces/ecpg/preproc/po/tr.po
new file mode 100644
index 0000000..dc19759
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/tr.po
@@ -0,0 +1,699 @@
+# LANGUAGE message translation file for ecpg
+# Copyright (C) 2009 PostgreSQL Global Development Group
+# This file is distributed under the same license as the PostgreSQL package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+# Abdullah GÜLNER <agulner@gmail.com>, 2018.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PostgreSQL 8.4\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-04-26 13:39+0000\n"
+"PO-Revision-Date: 2021-09-16 09:37+0200\n"
+"Last-Translator: Abdullah GÜLNER <agulner@gmail.com>\n"
+"Language-Team: Turkish <ceviri@postgresql.org.tr>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Poedit 1.8.7.1\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "\"%s\" değişkeninin sayısal veri tipi olmalı"
+
+#: descriptor.c:124 descriptor.c:146
+#, c-format
+msgid "descriptor \"%s\" does not exist"
+msgstr "\"%s\" açıklayıcısı mevcut değil"
+
+#: descriptor.c:161 descriptor.c:213
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "\"%d\" açıklayıcı başlık maddesi mevcut değil"
+
+#: descriptor.c:183
+#, c-format
+msgid "nullable is always 1"
+msgstr "nullable her zaman 1'dir"
+
+#: descriptor.c:186
+#, c-format
+msgid "key_member is always 0"
+msgstr "key_member her zaman 0'dır."
+
+#: descriptor.c:280
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "\"%s\" açıklayıcı öğesi kodlanmamıştır"
+
+#: descriptor.c:290
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "\"%s\" açıklayıcı öğesi ayarlanamaz"
+
+#: ecpg.c:36
+#, c-format
+msgid ""
+"%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
+"\n"
+msgstr ""
+"%s C programları için PostgreSQL'e gömüşü SQL önişlemcisidir.\n"
+"\n"
+
+#: ecpg.c:38
+#, c-format
+msgid ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"Kullanımı:\n"
+" %s [SEÇENEK]... DOSYA...\n"
+"\n"
+
+#: ecpg.c:41
+#, c-format
+msgid "Options:\n"
+msgstr "Seçenekler:\n"
+
+#: ecpg.c:42
+#, c-format
+msgid ""
+" -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr ""
+" -c gömülü SQL kodundan otomatik olarak C kodu üret;\n"
+" bu EXEC SQL TYPE'ı etkiler\n"
+
+#: ecpg.c:44
+#, c-format
+msgid ""
+" -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+msgstr ""
+" -C MOD uyumluluk modunu ayarla; MOD aşağıdakilerden birisi olabilir\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+
+#: ecpg.c:47
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d ayrıştırıcı hata ayıklama çıktısını oluştur\n"
+
+#: ecpg.c:49
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D SEMBOL SEMBOLü tanımla\n"
+
+#: ecpg.c:50
+#, c-format
+msgid " -h parse a header file, this option includes option \"-c\"\n"
+msgstr " -h başlık dosyasını ayrıştır; bu seçenek \"-c\" seçeneğini içerir\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i sistem include dosyalarını da ayrıştırl\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I DİZİN dosyaları içermek için DİZİN dizinini araştır\n"
+
+#: ecpg.c:53
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o ÇIKTI DOSYASI sonucu ÇIKTI DOSYASIna yaz\n"
+
+#: ecpg.c:54
+#, c-format
+msgid ""
+" -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr ""
+" -r SEÇENEK çalışma zamanı davranışını belirt; SEÇENEK şunlardan birisi olabilir:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression regression testi modunda çalış\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr " -t transactionların otomatik commit olması özelliğini aç\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " -V, --version output version information, then exit\n"
+msgstr " -V, --version sürüm bilgisini göster, sonra çık\n"
+
+#: ecpg.c:59
+#, c-format
+msgid " -?, --help show this help, then exit\n"
+msgstr " -?, --help bu yardımı göster, sonra çık\n"
+
+#: ecpg.c:60
+#, c-format
+msgid ""
+"\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr ""
+"\n"
+"Eğer çıktı dosyası belirtilmediyse, dosyanın adı eğer sonunda .pgc varsa\n"
+"kaldırıldıktan sonra girdi dosyasının sonuna .c eklenerek oluşturulur.\n"
+
+#: ecpg.c:62
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
+msgstr ""
+"\n"
+"Hataları <pgsql-bugs@lists.postgresql.org> adresine bildirebilirsiniz.\n"
+
+#: ecpg.c:182
+#, c-format
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s: kendi çalıştırılabilir dosyamın yolunu bulamadım\n"
+
+#: ecpg.c:217 ecpg.c:374 ecpg.c:385
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: \"%s\" dosyası açılamadı: %s\n"
+
+#: ecpg.c:260 ecpg.c:273 ecpg.c:289 ecpg.c:315
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "Daha fazla bilgi için \"%s --help\" yazın\n"
+
+#: ecpg.c:284
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr "%s: ayrıştırıcı hata ayıklama desteği (-d) yok\n"
+
+#: ecpg.c:303
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n"
+msgstr "%s, PostgreSQL gömülü C önişlemcisi, %s sürümü\n"
+
+#: ecpg.c:305
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "EXEC SQL INCLUDE ... araması burada başlıyor:\n"
+
+#: ecpg.c:308
+#, c-format
+msgid "end of search list\n"
+msgstr "arama listesinin sonu\n"
+
+#: ecpg.c:314
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s: girdi dosyası belirtilmedi\n"
+
+#: ecpg.c:497
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "\"%s\" imleci tanımlanmış ama açılmamış"
+
+#: ecpg.c:510 preproc.y:129
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "\"%s\" çıktı dosyası kaldırılamadı\n"
+
+#: pgc.l:472
+#, c-format
+msgid "unterminated /* comment"
+msgstr "/* açıklama sonlandırılmamış"
+
+#: pgc.l:490
+#, c-format
+msgid "invalid bit string literal"
+msgstr "geçersiz bit dizini bilgisi"
+
+#: pgc.l:502
+#, c-format
+msgid "unterminated bit string literal"
+msgstr "sonuçlandırılmamış bit string literal"
+
+#: pgc.l:518
+#, c-format
+msgid "unterminated hexadecimal string literal"
+msgstr "sonuçlandırılmamış hexadecimal string literal"
+
+#: pgc.l:614 pgc.l:718
+#, c-format
+msgid "unterminated quoted string"
+msgstr "sonuçlandırılmamış tırnakla sınırlandırılmış satır"
+
+#: pgc.l:665
+#, c-format
+msgid "unterminated dollar-quoted string"
+msgstr "sonlandırılmamış dolar işaretiyle sınırlandırılmış satır"
+
+#: pgc.l:684 pgc.l:697
+#, c-format
+msgid "zero-length delimited identifier"
+msgstr "sınırlandırılmış tanım sıfır uzunluklu"
+
+#: pgc.l:709
+#, c-format
+msgid "unterminated quoted identifier"
+msgstr "sonuçlandırılmamış tırnakla sınırlandırılmış tanım"
+
+#: pgc.l:1040
+#, c-format
+msgid "nested /* ... */ comments"
+msgstr "iç içe /* ... */ açıklamalar (comment)"
+
+#: pgc.l:1133
+#, c-format
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "EXEC SQL UNDEF komutunda eksik tanımlayıcı"
+
+#: pgc.l:1179 pgc.l:1193
+#, c-format
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "eksik \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\" eşleşmesi"
+
+#: pgc.l:1182 pgc.l:1195 pgc.l:1371
+#, c-format
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "eksik \"EXEC SQL ENDIF;\""
+
+#: pgc.l:1211 pgc.l:1230
+#, c-format
+msgid "more than one EXEC SQL ELSE"
+msgstr "birden fazla EXEC SQL ELSE"
+
+#: pgc.l:1252 pgc.l:1266
+#, c-format
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "eşlenmeyen EXEC SQL ENDIF"
+
+#: pgc.l:1286
+#, c-format
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "Çok fazla yuvalanmış EXEC SQL IFDEF koşulu"
+
+#: pgc.l:1319
+#, c-format
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "EXEC SQL IFDEF komutunda eksik belirteç"
+
+#: pgc.l:1328
+#, c-format
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "EXEC SQL DEFINE komutunda eksik tanımlayıcı"
+
+#: pgc.l:1361
+#, c-format
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "EXEC SQL INCLUDE komutunda sözdizimi hatası"
+
+#: pgc.l:1411
+#, c-format
+msgid "internal error: unreachable state; please report this to <pgsql-bugs@lists.postgresql.org>"
+msgstr "dahili hata: erişilemeyen durum: bunu lütfen <pgsql-bugs@lists.postgresql.org> adresine bildiriniz."
+
+#: pgc.l:1562
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr "Hata: \"%s/%s\" include yolu çok uzun, satır numarası %d; atlanıyor\n"
+
+#: pgc.l:1585
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr " \"%s\" include dosyası %d. satırda açılamadı"
+
+#: preproc.y:31
+msgid "syntax error"
+msgstr "söz dizim hatası "
+
+#: preproc.y:83
+#, c-format
+msgid "WARNING: "
+msgstr "UYARI:"
+
+#: preproc.y:86
+#, c-format
+msgid "ERROR: "
+msgstr "HATA:"
+
+#: preproc.y:510
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "\"%s\" imleci mevcut değil"
+
+#: preproc.y:539
+#, c-format
+msgid "initializer not allowed in type definition"
+msgstr "tip tanımlamasında ilklendiriciye izin verilmez"
+
+#: preproc.y:541
+#, c-format
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "\"string\" tip adı Informix modunda ayrılmıştır"
+
+#: preproc.y:548 preproc.y:15828
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "\"%s\" tipi zaten tanımlanmış"
+
+#: preproc.y:573 preproc.y:16499 preproc.y:16824 variable.c:621
+#, c-format
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr "basit veri tipleri için çok boyutlu diziler desteklenmemektedir."
+
+#: preproc.y:1896
+#, c-format
+msgid "AT option not allowed in CONNECT statement"
+msgstr "AT seçeneğine CONNECT ifadesinde izin verilmemektedir"
+
+#: preproc.y:1934
+#, c-format
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "AT seçeneğine DISCONNECT ifadesinde izin verilmemektedir"
+
+#: preproc.y:1996
+#, c-format
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "AT seçeneğine SET CONNECTION ifadesinde izin verilmemektedir"
+
+#: preproc.y:2018
+#, c-format
+msgid "AT option not allowed in TYPE statement"
+msgstr "AT seçeneğine TYPE ifadesinde izin verilmemektedir"
+
+#: preproc.y:2027
+#, c-format
+msgid "AT option not allowed in VAR statement"
+msgstr "AT seçeneğine VAR ifadesinde izin verilmemektedir"
+
+#: preproc.y:2034
+#, c-format
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "AT seçeneğine WHENEVER ifadesinde izin verilmemektedir"
+
+#: preproc.y:2111 preproc.y:2283 preproc.y:2288 preproc.y:2411 preproc.y:4004
+#: preproc.y:5593 preproc.y:5893 preproc.y:7521 preproc.y:9033 preproc.y:9038
+#: preproc.y:11831
+#, c-format
+msgid "unsupported feature will be passed to server"
+msgstr "desteklenmeyen özellik sunucuya aktarılacaktır"
+
+#: preproc.y:2669
+#, c-format
+msgid "SHOW ALL is not implemented"
+msgstr "SHOW ALL kodlanmamıştır"
+
+#: preproc.y:3327
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "AT seçeneğine CLOSE DATABASE ifadesinde izin verilmemektedir"
+
+#: preproc.y:3352
+#, c-format
+msgid "COPY FROM STDIN is not implemented"
+msgstr "COPY FROM STDIN kodlanmamıştır"
+
+#: preproc.y:9977 preproc.y:15411
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr "\"%s\" değşkenini farklı declare ifadeleri arasında kullanmak desteklenmemektedir"
+
+#: preproc.y:9979 preproc.y:15413
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "\"%s\" imleci zaten tanımlanmış"
+
+#: preproc.y:10420
+#, c-format
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "artık desteklenmeyen LIMIT #,# sözdizimi sunucuya aktarıldı"
+
+#: preproc.y:10745 preproc.y:10752
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "FROM öğesindeki subquery bir aliası almalıdır"
+
+#: preproc.y:15102 preproc.y:15109
+#, c-format
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "CREATE TABLE AS işleminde INTO kullanılamaz"
+
+#: preproc.y:15145
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "\"@\" bekleniyordu; \"%s\" bulundu"
+
+#: preproc.y:15157
+#, c-format
+msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported"
+msgstr "sadece \"tcp\" ve \"unix\" protokolleri ile \"postgresql\" veritabanı tipi desteklenmektedir."
+
+#: preproc.y:15160
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "\"://\" bekleniyordu; \"%s\" bulundu"
+
+#: preproc.y:15165
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr "Unix-domain soketleri sadece \"localhost\" üzerinde çalışabilir; ancak \"%s\" üzerinde çalışamaz."
+
+#: preproc.y:15191
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "\"postgresql\" bekleniyordu; \"%s\" bulundu"
+
+#: preproc.y:15194
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "Geçersiz bağlantı tipi: %s"
+
+#: preproc.y:15203
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "\"@\" or \"://\" bekleniyordu; \"%s\" bulundu"
+
+#: preproc.y:15278 preproc.y:15296
+#, c-format
+msgid "invalid data type"
+msgstr "geçersiz veri tipi"
+
+#: preproc.y:15307 preproc.y:15324
+#, c-format
+msgid "incomplete statement"
+msgstr "eksik ifade"
+
+#: preproc.y:15310 preproc.y:15327
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "tanımlanmayan imge \"%s\""
+
+#: preproc.y:15373
+#, c-format
+msgid "declared name %s is already defined"
+msgstr "belirtilen isim, %s zaten tanımlanmış"
+
+#: preproc.y:15631
+#, c-format
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr "sadece sayısal ve ondalıklı verip tiplerinin ondalık bilgisi vardır"
+
+#: preproc.y:15643
+#, c-format
+msgid "interval specification not allowed here"
+msgstr "aralık belirtimine burada izin verilmiyor"
+
+#: preproc.y:15803 preproc.y:15855
+#, c-format
+msgid "too many levels in nested structure/union definition"
+msgstr "içiçe gelmiş yapı/birleşme tanımında çok fazla seviye"
+
+#: preproc.y:16006
+#, c-format
+msgid "pointers to varchar are not implemented"
+msgstr "varcharlara işaretçiler henüz uyarlanmadı"
+
+#: preproc.y:16193 preproc.y:16218
+#, c-format
+msgid "using unsupported DESCRIBE statement"
+msgstr "desteklenmeyen DESCRIBE ifadesi kullanılıyor"
+
+#: preproc.y:16465
+#, c-format
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "EXEC SQL VAR konutunda ilklendiriciye izin verilmemektedir"
+
+#: preproc.y:16782
+#, c-format
+msgid "arrays of indicators are not allowed on input"
+msgstr "belirticilerin dizilerine girdide izin verilmez"
+
+#: preproc.y:17003
+#, c-format
+msgid "operator not allowed in variable definition"
+msgstr "değişken tanımlamasında operatöre izin verilmez"
+
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:17044
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "\"%2$s\" yerinde %1$s"
+
+#: type.c:18 type.c:30
+#, c-format
+msgid "out of memory"
+msgstr "yetersiz bellek"
+
+#: type.c:214 type.c:685
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "tanımsız değişken tipi kodu %d"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "\"%s\" değişkeni farklı tipteki yerel bir değişken tarafından gizlenmiştir"
+
+#: type.c:265
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "\"%s\" değişkeni yerel bir değişken tarafından gizlenmiştir"
+
+#: type.c:277
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr "\"%s\" belirteç değişkeni farklı tipteki yerel bir değişken tarafından gizlenmiştir"
+
+#: type.c:279
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "\"%s\" gösterge değişkeni yerel bir değişken tarafından gizlenmektedir"
+
+#: type.c:287
+#, c-format
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "array/pointer için gösterici array/pointer olmalıdır"
+
+#: type.c:291
+#, c-format
+msgid "nested arrays are not supported (except strings)"
+msgstr "içiçe geçmiş diziler, dizgiler haricinde desteklenmez"
+
+#: type.c:333
+#, c-format
+msgid "indicator for struct has to be a struct"
+msgstr "struct için gösterici (indicator) yine struct olmalı"
+
+#: type.c:353 type.c:374 type.c:394
+#, c-format
+msgid "indicator for simple data type has to be simple"
+msgstr "basit veri tipinin göstergesi basit olmalı"
+
+#: type.c:625
+#, c-format
+msgid "indicator struct \"%s\" has too few members"
+msgstr "\"%s\" gösterge yapısının (struct) çok az üyesi var"
+
+#: type.c:633
+#, c-format
+msgid "indicator struct \"%s\" has too many members"
+msgstr "\"%s\" gösterge yapısının (struct) çok fazla üyesi var"
+
+#: type.c:744
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "tanımlanmayan açıklayıcı madde kodu %d"
+
+#: variable.c:89 variable.c:116
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "doğru şekilde oluşturulmamış \"%s\" değişkeni"
+
+#: variable.c:139
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "\"%s\" değişkeni bir pointer değil"
+
+#: variable.c:142 variable.c:167
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "\"%s\" değişkeni structure ya da union'a pointer değil"
+
+#: variable.c:154
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "\"%s\" değişkeni structure ya da union değil"
+
+#: variable.c:164
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "\"%s\" değişkeni bir dizi değil"
+
+#: variable.c:233 variable.c:255
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "\"%s\" değişkeni bildirilmemiş"
+
+#: variable.c:494
+#, c-format
+msgid "indicator variable must have an integer type"
+msgstr "belirteç değişkeni tamsayı veri tipine sahip olmalı"
+
+#: variable.c:506
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr "tanımlanmayan veri tipi adı \"%s\""
+
+#: variable.c:517 variable.c:525 variable.c:542 variable.c:545
+#, c-format
+msgid "multidimensional arrays are not supported"
+msgstr "çok boyutlu diziler desteklenmiyor"
+
+#: variable.c:534
+#, c-format
+msgid "multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] "çoklu seviye işaretçileri (İkiden fazla) desteklenmiyor: %d seviye bulundu"
+
+#: variable.c:539
+#, c-format
+msgid "pointer to pointer is not supported for this data type"
+msgstr "Bu veri tipi için işaretçiden işaretçiye desteklenmemektedir"
+
+#: variable.c:559
+#, c-format
+msgid "multidimensional arrays for structures are not supported"
+msgstr "yapılar için çok boyutlu diziler desteklenmemektedir"
+
+#~ msgid " --help show this help, then exit\n"
+#~ msgstr " --help bu yardımı göster ve çık\n"
+
+#~ msgid " --version output version information, then exit\n"
+#~ msgstr " --version sürüm numarasını yaz ve çık\n"
+
+#~ msgid "AT option not allowed in DEALLOCATE statement"
+#~ msgstr "AT seçeneğine DEALLOCATE ifadesinde izin verilmemektedir"
+
+#~ msgid "COPY TO STDIN is not possible"
+#~ msgstr "COPY TO STDIN mümkün değildir"
+
+#~ msgid "COPY FROM STDOUT is not possible"
+#~ msgstr "COPY FROM STDOUT mümkün değildir"
+
+#~ msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE"
+#~ msgstr "INITIALLY DEFERRED olarak tanımlanan kısıtlayıcı DEFERRABLE özelliğine sahip olmalıdır"
+
+#~ msgid "OLD used in query that is not in a rule"
+#~ msgstr "rule olmayan sorgusunda OLD kullanıldı"
+
+#~ msgid "NEW used in query that is not in a rule"
+#~ msgstr "rule olmayan sorgusunda NEW kullanıldı"
diff --git a/src/interfaces/ecpg/preproc/po/uk.po b/src/interfaces/ecpg/preproc/po/uk.po
new file mode 100644
index 0000000..717def4
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/uk.po
@@ -0,0 +1,683 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: postgresql\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2022-03-16 09:09+0000\n"
+"PO-Revision-Date: 2022-06-19 10:10\n"
+"Last-Translator: \n"
+"Language-Team: Ukrainian\n"
+"Language: uk_UA\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
+"X-Crowdin-Project: postgresql\n"
+"X-Crowdin-Project-ID: 324573\n"
+"X-Crowdin-Language: uk\n"
+"X-Crowdin-File: /REL_14_STABLE/ecpg.pot\n"
+"X-Crowdin-File-ID: 782\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "змінна \"%s\" повинна мати числовий тип"
+
+#: descriptor.c:125 descriptor.c:156
+#, c-format
+msgid "descriptor %s bound to connection %s does not exist"
+msgstr "дескриптор %s, прив'язаний до підключення %s, не існує"
+
+#: descriptor.c:127 descriptor.c:158
+#, c-format
+msgid "descriptor %s bound to the default connection does not exist"
+msgstr "дескриптор %s, прив'язаний до підключення за замовчуванням, не існує"
+
+#: descriptor.c:173 descriptor.c:225
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "елемент заголовка дескриптору \"%d\" не існує"
+
+#: descriptor.c:195
+#, c-format
+msgid "nullable is always 1"
+msgstr "nullable завжди 1"
+
+#: descriptor.c:198
+#, c-format
+msgid "key_member is always 0"
+msgstr "key_member завжди 0"
+
+#: descriptor.c:292
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "елемент дескриптору \"%s\" не реалізовано"
+
+#: descriptor.c:302
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "елемент дескриптору \"%s\" не можна встановити"
+
+#: ecpg.c:36
+#, c-format
+msgid "%s is the PostgreSQL embedded SQL preprocessor for C programs.\n\n"
+msgstr "%s - це препроцесор SQL-вставок PostgreSQL для C програм.\n\n"
+
+#: ecpg.c:38
+#, c-format
+msgid "Usage:\n"
+" %s [OPTION]... FILE...\n\n"
+msgstr "Використання: \n"
+" %s [OPTION]... FILE...\n\n"
+
+#: ecpg.c:41
+#, c-format
+msgid "Options:\n"
+msgstr "Параметри:\n"
+
+#: ecpg.c:42
+#, c-format
+msgid " -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr " -c автоматично генерувати C-код з вбудованого SQL-коду;\n"
+" це стосується EXEC SQL TYPE\n"
+
+#: ecpg.c:44
+#, c-format
+msgid " -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+msgstr " -C MODE встановити режим сумісності; допустимий режим може бути одним з:\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+
+#: ecpg.c:47
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d генерувати налагоджувальні повідомлення при аналізі\n"
+
+#: ecpg.c:49
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D SYMBOL визначити СИМВОЛ\n"
+
+#: ecpg.c:50
+#, c-format
+msgid " -h parse a header file, this option includes option \"-c\"\n"
+msgstr " -h аналізувати файл заголовку, цей параметр включає параметр \"-c\"\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i аналізувати системні файли include\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I DIRECTORY шукати файли для включення у зазначенному каталозі\n"
+
+#: ecpg.c:53
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o OUTFILE записати результат до OUTFILE\n"
+
+#: ecpg.c:54
+#, c-format
+msgid " -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr " -r OPTION визначити поведінку під час виконання; допустимий парамтер може бути:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression запустити в режимі тестування регресії\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr " -t увімкнути автопідтвердження транзакцій\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " -V, --version output version information, then exit\n"
+msgstr " -V, --version показати версію, потім вийти\n"
+
+#: ecpg.c:59
+#, c-format
+msgid " -?, --help show this help, then exit\n"
+msgstr " -?, --help показати цю довідку, потім вийти\n"
+
+#: ecpg.c:60
+#, c-format
+msgid "\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr "\n"
+"Якщо файл виводу не вказано, ім'я файла формується додаванням .c до введеного імені файла, після обрізання розширення .pgc, якщо присутнє.\n"
+
+#: ecpg.c:62
+#, c-format
+msgid "\n"
+"Report bugs to <%s>.\n"
+msgstr "\n"
+"Повідомляти про помилки на <%s>.\n"
+
+#: ecpg.c:63
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Домашня сторінка %s: <%s>\n"
+
+#: ecpg.c:141
+#, c-format
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s: не вдалося знайти свій власний шлях для виконання\n"
+
+#: ecpg.c:176 ecpg.c:333 ecpg.c:344
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: не вдалося відкрити файл \"%s\": %s\n"
+
+#: ecpg.c:219 ecpg.c:232 ecpg.c:248 ecpg.c:274
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "Спробуйте \"%s --help\" для додаткової інформації.\n"
+
+#: ecpg.c:243
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr "%s: налагоджувальні повідомлення під час аналізу (-d) не підтримуються\n"
+
+#: ecpg.c:262
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n"
+msgstr "%s, вбудований препроцесор PostgreSQL, версія %s\n"
+
+#: ecpg.c:264
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "EXEC SQL INCLUDE ... пошук починається тут:\n"
+
+#: ecpg.c:267
+#, c-format
+msgid "end of search list\n"
+msgstr "кінець списку пошуку\n"
+
+#: ecpg.c:273
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s: не вказано вхідні файли\n"
+
+#: ecpg.c:477
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "курсор \"%s\" був оголошений, але не відкритий"
+
+#: ecpg.c:490 preproc.y:130
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "не вдалося видалити файл виводу \"%s\"\n"
+
+#: pgc.l:502
+#, c-format
+msgid "unterminated /* comment"
+msgstr "незавершений коментар /*"
+
+#: pgc.l:519
+#, c-format
+msgid "unterminated bit string literal"
+msgstr "незавершений бітовий рядок"
+
+#: pgc.l:527
+#, c-format
+msgid "unterminated hexadecimal string literal"
+msgstr "незавершений шістнадцятковий рядок"
+
+#: pgc.l:602
+#, c-format
+msgid "invalid bit string literal"
+msgstr "неприпустимий літерал бітового рядка"
+
+#: pgc.l:607
+#, c-format
+msgid "invalid hex string literal"
+msgstr "неприпустимий шістнадцятковий рядок"
+
+#: pgc.l:625
+#, c-format
+msgid "unhandled previous state in xqs\n"
+msgstr "необроблений попередній стан у xqs\n"
+
+#: pgc.l:651 pgc.l:760
+#, c-format
+msgid "unterminated quoted string"
+msgstr "незавершений рядок в лапках"
+
+#: pgc.l:702
+#, c-format
+msgid "unterminated dollar-quoted string"
+msgstr "незавершений рядок з $"
+
+#: pgc.l:720 pgc.l:740
+#, c-format
+msgid "zero-length delimited identifier"
+msgstr "пустий ідентифікатор із роздільниками"
+
+#: pgc.l:751
+#, c-format
+msgid "unterminated quoted identifier"
+msgstr "незавершений ідентифікатор в лапках"
+
+#: pgc.l:1082
+#, c-format
+msgid "nested /* ... */ comments"
+msgstr "вкладені /* ... */ коменарі"
+
+#: pgc.l:1175
+#, c-format
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "відсутній ідентифікатор у команді EXEC SQL UNDEF"
+
+#: pgc.l:1193 pgc.l:1206 pgc.l:1222 pgc.l:1235
+#, c-format
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "забагато вкладених умов EXEC SQL IFDEF"
+
+#: pgc.l:1251 pgc.l:1262 pgc.l:1277 pgc.l:1299
+#, c-format
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "немає відповідного \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+
+#: pgc.l:1253 pgc.l:1264 pgc.l:1445
+#, c-format
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "відсутній \"EXEC SQL ENDIF;\""
+
+#: pgc.l:1279 pgc.l:1301
+#, c-format
+msgid "more than one EXEC SQL ELSE"
+msgstr "більше ніж один EXEC SQL ELSE"
+
+#: pgc.l:1324 pgc.l:1338
+#, c-format
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "невідповідний EXEC SQL ENDIF"
+
+#: pgc.l:1393
+#, c-format
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "відсутній ідентифікатор у команді EXEC SQL IFDEF"
+
+#: pgc.l:1402
+#, c-format
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "відсутній ідентифікатор у команді EXEC SQL DEFINE"
+
+#: pgc.l:1435
+#, c-format
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "синтаксична помилка у команді EXEC SQL INCLUDE"
+
+#: pgc.l:1485
+#, c-format
+msgid "internal error: unreachable state; please report this to <%s>"
+msgstr "внутрішня помилка: недосяжний стан; будь ласка, повідомте про це на <%s>"
+
+#: pgc.l:1637
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr "Помилка: шлях включення \"%s/%s\" занадто довгий у рядку %d, пропускається\n"
+
+#: pgc.l:1660
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr "не вдалося відкрити файл включення \"%s\" у рядку %d"
+
+#: preproc.y:31
+msgid "syntax error"
+msgstr "синтаксична помилка"
+
+#: preproc.y:84
+#, c-format
+msgid "WARNING: "
+msgstr "ПОПЕРЕДЖЕННЯ: "
+
+#: preproc.y:87
+#, c-format
+msgid "ERROR: "
+msgstr "ПОМИЛКА: "
+
+#: preproc.y:514
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "курсор \"%s\" не існує"
+
+#: preproc.y:543
+#, c-format
+msgid "initializer not allowed in type definition"
+msgstr "ініціалізація заборонена у визначенні типу"
+
+#: preproc.y:545
+#, c-format
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "ім’я типу \"string\" зарезервовано у режимі Informix"
+
+#: preproc.y:552 preproc.y:17675
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "тип \"%s\" вже визначений"
+
+#: preproc.y:577 preproc.y:18310 preproc.y:18635 variable.c:621
+#, c-format
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr "багатовимірні масиви для простих типів даних не підтримуються"
+
+#: preproc.y:599
+#, c-format
+msgid "connection %s is overwritten with %s by DECLARE statement %s"
+msgstr "підключення %s було перезаписано з %s командою DECLARE %s"
+
+#: preproc.y:1753
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "Параметр AT не дозволений в інструкції CLOSE DATABASE"
+
+#: preproc.y:2001
+#, c-format
+msgid "AT option not allowed in CONNECT statement"
+msgstr "Параметр AT не дозволений в інструкції CONNECT"
+
+#: preproc.y:2041
+#, c-format
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "Параметр AT не дозволений в інструкції DISCONNECT"
+
+#: preproc.y:2096
+#, c-format
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "Параметр AT не дозволений в інструкції SET CONNECTION"
+
+#: preproc.y:2118
+#, c-format
+msgid "AT option not allowed in TYPE statement"
+msgstr "Параметр AT не дозволений в інструкції TYPE"
+
+#: preproc.y:2127
+#, c-format
+msgid "AT option not allowed in VAR statement"
+msgstr "Параметр AT не дозволений в інструкції VAR"
+
+#: preproc.y:2134
+#, c-format
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "Параметр AT не дозволений в інструкції WHENEVER"
+
+#: preproc.y:2211 preproc.y:2383 preproc.y:2388 preproc.y:2511 preproc.y:4143
+#: preproc.y:4807 preproc.y:5340 preproc.y:5678 preproc.y:5978 preproc.y:7514
+#: preproc.y:9082 preproc.y:9087 preproc.y:11915
+#, c-format
+msgid "unsupported feature will be passed to server"
+msgstr "непідтримувана функція буде передана до сервера"
+
+#: preproc.y:2769
+#, c-format
+msgid "SHOW ALL is not implemented"
+msgstr "SHOW ALL не реалізовано"
+
+#: preproc.y:3464
+#, c-format
+msgid "COPY FROM STDIN is not implemented"
+msgstr "COPY FROM STDIN не реалізовано"
+
+#: preproc.y:10014 preproc.y:17250
+#, c-format
+msgid "\"database\" cannot be used as cursor name in INFORMIX mode"
+msgstr "\"database\" не може використовуватись як назва курсора в режимі INFORMIX"
+
+#: preproc.y:10021 preproc.y:17260
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr "використання змінної \"%s\" у різних інструкціях declare не підтримується"
+
+#: preproc.y:10023 preproc.y:17262
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "курсор \"%s\" вже визначено"
+
+#: preproc.y:10497
+#, c-format
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "непідтримуваний синтаксис LIMIT #,# передано до сервера"
+
+#: preproc.y:10830 preproc.y:10837
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "підзапит в FROM повинен мати псевдонім"
+
+#: preproc.y:16942 preproc.y:16949
+#, c-format
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "CREATE TABLE AS не може містити INTO"
+
+#: preproc.y:16985
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "очікувалося \"@\", знайдено \"%s\""
+
+#: preproc.y:16997
+#, c-format
+msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported"
+msgstr "підтримуються лише протоколи \"tcp\" та \"unix\" і тип бази даних \"postgresql\""
+
+#: preproc.y:17000
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "очікувалося \"://\", знайдено \"%s\""
+
+#: preproc.y:17005
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr "Unix-сокети працюють лише з \"localhost\", але не з \"%s\""
+
+#: preproc.y:17031
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "очікувалось \"postgresql\", знайдено \"%s\""
+
+#: preproc.y:17034
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "неприпустимий тип підключення: %s"
+
+#: preproc.y:17043
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "очікувалось \"@\" або \"://\", знайдено \"%s\""
+
+#: preproc.y:17118 preproc.y:17136
+#, c-format
+msgid "invalid data type"
+msgstr "неприпустимий тип даних"
+
+#: preproc.y:17147 preproc.y:17164
+#, c-format
+msgid "incomplete statement"
+msgstr "неповний оператор"
+
+#: preproc.y:17150 preproc.y:17167
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "нерозпізнаний токен \"%s\""
+
+#: preproc.y:17212
+#, c-format
+msgid "name \"%s\" is already declared"
+msgstr "ім'я \"%s\" вже оголошена"
+
+#: preproc.y:17478
+#, c-format
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr "точність/масштаб можна вказати лише для типів даних numeric і decimal"
+
+#: preproc.y:17490
+#, c-format
+msgid "interval specification not allowed here"
+msgstr "специфікація інтервалу тут не допускається"
+
+#: preproc.y:17650 preproc.y:17702
+#, c-format
+msgid "too many levels in nested structure/union definition"
+msgstr "занадто багато рівнів у визначенні вкладеної структури/об'єднання"
+
+#: preproc.y:17825
+#, c-format
+msgid "pointers to varchar are not implemented"
+msgstr "вказівників на varchar не реалізовано"
+
+#: preproc.y:18276
+#, c-format
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "команда EXEC SQL VAR не допускає ініціалізатор"
+
+#: preproc.y:18593
+#, c-format
+msgid "arrays of indicators are not allowed on input"
+msgstr "вхідні масиви індикаторів не допускаються"
+
+#: preproc.y:18780
+#, c-format
+msgid "operator not allowed in variable definition"
+msgstr "у визначенні змінної оператор не допускається"
+
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:18821
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "%s в або поблизу \"%s\""
+
+#: type.c:18 type.c:30
+#, c-format
+msgid "out of memory"
+msgstr "недостатньо пам'яті"
+
+#: type.c:214 type.c:685
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "нерозпізнаний код типу змінної %d"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "змінна \"%s\" прихована локальною змінною іншого типу"
+
+#: type.c:265
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "змінна \"%s\" прихована локальною змінною"
+
+#: type.c:277
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr "змінна-індикатор \"%s\" прихована локальною змінною іншого типу"
+
+#: type.c:279
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "змінна-індикатор \"%s\" прихована локальною змінною"
+
+#: type.c:287
+#, c-format
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "індикатор для масиву/вказівника повинен бути масивом/вказівником"
+
+#: type.c:291
+#, c-format
+msgid "nested arrays are not supported (except strings)"
+msgstr "вкладені масиви не підтримуються (окрім рядків)"
+
+#: type.c:333
+#, c-format
+msgid "indicator for struct has to be a struct"
+msgstr "індикатор структури повинен бути структурою"
+
+#: type.c:353 type.c:374 type.c:394
+#, c-format
+msgid "indicator for simple data type has to be simple"
+msgstr "індикатор для простого типу даних повинен бути простим"
+
+#: type.c:625
+#, c-format
+msgid "indicator struct \"%s\" has too few members"
+msgstr "індикатор структури \"%s\" має занадто мало елементів"
+
+#: type.c:633
+#, c-format
+msgid "indicator struct \"%s\" has too many members"
+msgstr "індикатор структури \"%s\" має занадто багато елементів"
+
+#: type.c:744
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "нерозпізнаний код елементу дескриптора %d"
+
+#: variable.c:89 variable.c:116
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "неправильно створена змінна \"%s\""
+
+#: variable.c:139
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "змінна \"%s\" не є вказівником"
+
+#: variable.c:142 variable.c:167
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "змінна \"%s\" не є вказівником на структуру або об'єднання"
+
+#: variable.c:154
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "змінна \"%s\" не є структурою або об'єднанням"
+
+#: variable.c:164
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "змінна \"%s\" не є масивом"
+
+#: variable.c:233 variable.c:255
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "змінна \"%s\" не проголошена"
+
+#: variable.c:494
+#, c-format
+msgid "indicator variable must have an integer type"
+msgstr "змінна-індикатор повинна бути цілим числом"
+
+#: variable.c:506
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr "нерозпізнане ім'я типу даних \"%s\""
+
+#: variable.c:517 variable.c:525 variable.c:542 variable.c:545
+#, c-format
+msgid "multidimensional arrays are not supported"
+msgstr "багатовимірні масиви не підтримуються"
+
+#: variable.c:534
+#, c-format
+msgid "multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] "багаторівневі вказівники (більше 2 рівнів) не підтримуються; знайдено %d рівень"
+msgstr[1] "багаторівневі вказівники (більше 2 рівнів) не підтримуються; знайдено %d рівні"
+msgstr[2] "багаторівневі вказівники (більше 2 рівнів) не підтримуються; знайдено %d рівнів"
+msgstr[3] "багаторівневі вказівники (більше 2 рівнів) не підтримуються; знайдено %d рівень"
+
+#: variable.c:539
+#, c-format
+msgid "pointer to pointer is not supported for this data type"
+msgstr "для цього типу даних вказівники на вказівники не підтримуються"
+
+#: variable.c:559
+#, c-format
+msgid "multidimensional arrays for structures are not supported"
+msgstr "багатовимірні масиви структур не підтримуються"
+
diff --git a/src/interfaces/ecpg/preproc/po/vi.po b/src/interfaces/ecpg/preproc/po/vi.po
new file mode 100644
index 0000000..5c7c357
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/vi.po
@@ -0,0 +1,684 @@
+# LANGUAGE message translation file for ecpg
+# Copyright (C) 2018 PostgreSQL Global Development Group
+# This file is distributed under the same license as the ecpg (PostgreSQL) package.
+# FIRST AUTHOR <kakalot49@gmail.com>, 2018.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ecpg (PostgreSQL) 11\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
+"POT-Creation-Date: 2018-04-22 12:08+0000\n"
+"PO-Revision-Date: 2018-05-04 22:20+0900\n"
+"Language-Team: <pgvn_translators@postgresql.vn>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Poedit 2.0.6\n"
+"Last-Translator: Dang Minh Huong <kakalot49@gmail.com>\n"
+"Language: vi_VN\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "biến \"%s\" phải là kiểu numeric"
+
+#: descriptor.c:124 descriptor.c:146
+#, c-format
+msgid "descriptor \"%s\" does not exist"
+msgstr "descriptor \"%s\" không tồn tại"
+
+#: descriptor.c:161 descriptor.c:213
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "descriptor header item \"%d\" không tồn tại"
+
+#: descriptor.c:183
+#, c-format
+msgid "nullable is always 1"
+msgstr "giá trị có thể là NULL luôn là 1"
+
+#: descriptor.c:186
+#, c-format
+msgid "key_member is always 0"
+msgstr "key_member luôn là 0"
+
+#: descriptor.c:280
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "descriptor item \"%s\" chưa được thực thi"
+
+#: descriptor.c:290
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "descriptor item \"%s\" không thể thiết lập được"
+
+#: ecpg.c:35
+#, c-format
+msgid ""
+"%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
+"\n"
+msgstr ""
+"%s là tiền xử lý nhúng SQL của PostgreSQL cho ngôn ngữ C.\n"
+"\n"
+
+#: ecpg.c:37
+#, c-format
+msgid ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"Cách sử dụng:\n"
+" %s [TÙY CHỌN]... TỆP...\n"
+"\n"
+
+#: ecpg.c:40
+#, c-format
+msgid "Options:\n"
+msgstr "Tùy chọn:\n"
+
+#: ecpg.c:41
+#, c-format
+msgid ""
+" -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr ""
+" -c tự động sinh mã C từ mã SQL nhúng;\n"
+" điều này ảnh hưởng tới EXEC SQL TYPE\n"
+
+#: ecpg.c:43
+#, c-format
+msgid ""
+" -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+msgstr ""
+" -C MODE thiết lập chế độ tương thích; MODE có thể là \n"
+" \"INFORMIX\", \"INFORMIX_SE\" hoặc \"ORACLE\"\n"
+
+#: ecpg.c:46
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d xuất debug log cho trình phân tích cú pháp\n"
+
+#: ecpg.c:48
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D SYMBOL định nghĩa SYMBOL\n"
+
+#: ecpg.c:49
+#, c-format
+msgid ""
+" -h parse a header file, this option includes option \"-c\"\n"
+msgstr ""
+" -h phân tích cú pháp tệp header, tùy chọn này bao gồm \n"
+" cả tùy chọn \"-c\"\n"
+
+#: ecpg.c:50
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i phân tích cả cú pháp của các tệp include files\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I DIRECTORY tìm kiếm THƯ MỤC cho các include files\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o OUTFILE ghi kết quả ra OUTFILE\n"
+
+#: ecpg.c:53
+#, c-format
+msgid ""
+" -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr ""
+" -r OPTION chỉ định cách thức run-time; OPTION có thể là:\n"
+" \"no_indicator\", \"prepare\" hay \"questionmarks\"\n"
+
+#: ecpg.c:55
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression chạy trong chế độ regression test\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr ""
+" -t thiết lập autocommit sang on trong các transactions\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " -V, --version output version information, then exit\n"
+msgstr " -V, --version xuât thông tin phiên bản, sau đó thoát\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " -?, --help show this help, then exit\n"
+msgstr " -?, --help hiển thị nội dung hướng dẫn này, sau đó thoát\n"
+
+#: ecpg.c:59
+#, c-format
+msgid ""
+"\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr ""
+"\n"
+"Nếu tệp xuất ra (OUTFILE) không được chỉ định, tên của tệp .c sẽ được \n"
+"lấy từ tên tệp .pgc đầu vào sau khi đã bỏ đi phần mở rộng .pgc\n"
+
+#: ecpg.c:61
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <pgsql-bugs@postgresql.org>.\n"
+msgstr ""
+"\n"
+"Báo cáo lỗi tới <pgsql-bugs@postgresql.org>.\n"
+
+#: ecpg.c:139
+#, c-format
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s: không thể xác định ví trí đường dẫn để thực thi\n"
+
+#: ecpg.c:174 ecpg.c:331 ecpg.c:342
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: không thể mở file \"%s\": %s\n"
+
+#: ecpg.c:217 ecpg.c:230 ecpg.c:246 ecpg.c:272
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "Thử \"%s --help\" để biết thêm thông tin.\n"
+
+#: ecpg.c:241
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr ""
+"%s: chế độ hỗ trợ debug (-d) cho trình phân tích cú pháp chưa sẵn sàng\n"
+
+#: ecpg.c:260
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n"
+msgstr "%s, tiền xử lý nhúng ngôn ngữ C cho PostgreSQL, phiên bản %s\n"
+
+#: ecpg.c:262
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "EXEC SQL INCLUDE ... tìm kiếm bắt đầu từ đây:\n"
+
+#: ecpg.c:265
+#, c-format
+msgid "end of search list\n"
+msgstr "cuối danh sách tìm kiếm\n"
+
+#: ecpg.c:271
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s: không có tệp đầu vào nào được chỉ định\n"
+
+#: ecpg.c:465
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "con trỏ \"%s\" đã được định nghĩa nhưng chưa được open"
+
+#: ecpg.c:478 preproc.y:127
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "không thể xóa tệp đầu ra \"%s\"\n"
+
+#: pgc.l:435
+#, c-format
+msgid "unterminated /* comment"
+msgstr "dấu bình luận /* chưa được kết thúc"
+
+#: pgc.l:448
+#, c-format
+msgid "invalid bit string literal"
+msgstr "chuỗi ký tự bit không hợp lệ"
+
+#: pgc.l:457
+#, c-format
+msgid "unterminated bit string literal"
+msgstr "chuỗi bít ký tự chưa hoàn chỉnh"
+
+#: pgc.l:473
+#, c-format
+msgid "unterminated hexadecimal string literal"
+msgstr "chuỗi ký tự thập lục phân chưa hoàn chỉnh"
+
+#: pgc.l:551
+#, c-format
+msgid "unterminated quoted string"
+msgstr "chuỗi trích dẫn chưa hoàn chỉnh"
+
+#: pgc.l:609 pgc.l:622
+#, c-format
+msgid "zero-length delimited identifier"
+msgstr "ký tự phân cách có độ dài bằng 0"
+
+#: pgc.l:630
+#, c-format
+msgid "unterminated quoted identifier"
+msgstr "identifier trích dẫn chưa hoàn chỉnh"
+
+#: pgc.l:880
+#, c-format
+msgid "nested /* ... */ comments"
+msgstr "dấu bình luận /* ... */ lồng nhau"
+
+#: pgc.l:973
+#, c-format
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "thiếu identifier trong câu lệnh EXEC SQL UNDEF"
+
+#: pgc.l:1019 pgc.l:1033
+#, c-format
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "không khớp giữa \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+
+#: pgc.l:1022 pgc.l:1035 pgc.l:1211
+#, c-format
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "thiếu câu lệnh \"EXEC SQL ENDIF;\""
+
+#: pgc.l:1051 pgc.l:1070
+#, c-format
+msgid "more than one EXEC SQL ELSE"
+msgstr "có nhiều hơn một câu lệnh EXEC SQL ELSE"
+
+#: pgc.l:1092 pgc.l:1106
+#, c-format
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "câu lệnh EXEC SQL ENDIF không khớp"
+
+#: pgc.l:1126
+#, c-format
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "quá nhiều điều kiện lồng EXEC SQL IFDEF"
+
+#: pgc.l:1159
+#, c-format
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "thiếu identifier trong câu lệnh EXEC SQL IFDEF"
+
+#: pgc.l:1168
+#, c-format
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "thiếu identifier trong câu lệnh EXEC SQL DEFINE"
+
+#: pgc.l:1201
+#, c-format
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "lỗi cú pháp trong câu lệnh EXEC SQL INCLUDE"
+
+#: pgc.l:1250
+#, c-format
+msgid ""
+"internal error: unreachable state; please report this to <pgsql-"
+"bugs@postgresql.org>"
+msgstr ""
+"lỗi nội bộ: trạng thái không thể truy cập; vui lòng báo cáo điều này với "
+"<pgsql-bugs@postgresql.org>"
+
+#: pgc.l:1379
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr "Lỗi: đường dẫn include \"%s/%s\" quá dài trên dòng %d, bỏ qua\n"
+
+#: pgc.l:1402
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr "không thể mở tệp include \"%s\" trên dòng %d"
+
+#: preproc.y:31
+msgid "syntax error"
+msgstr "lỗi cú pháp"
+
+#: preproc.y:81
+#, c-format
+msgid "WARNING: "
+msgstr "CẢNH BÁO: "
+
+#: preproc.y:84
+#, c-format
+msgid "ERROR: "
+msgstr "LỖI: "
+
+#: preproc.y:508
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "on trỏ \"%s\" không tồn tại"
+
+#: preproc.y:537
+#, c-format
+msgid "initializer not allowed in type definition"
+msgstr "initializer không được cho phép trong định nghĩa kiểu"
+
+#: preproc.y:539
+#, c-format
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "kiểu \"string\" được dành riêng trong chế độ Informix"
+
+#: preproc.y:546 preproc.y:15714
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "kiểu \"%s\" đã được định nghĩa"
+
+#: preproc.y:570 preproc.y:16372 preproc.y:16697 variable.c:620
+#, c-format
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr "mảng đa chiều cho các kiểu dữ liệu đơn giản không được hỗ trợ"
+
+#: preproc.y:1693
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "Tùy chọn AT không được phép trong câu lệnh CLOSE DATABASE"
+
+#: preproc.y:1902
+#, c-format
+msgid "AT option not allowed in CONNECT statement"
+msgstr "Tùy chọn AT không được phép trong câu lệnh CONNECT"
+
+#: preproc.y:1936
+#, c-format
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "Tùy chọn AT không được phép trong câu lệnh DISCONNECT"
+
+#: preproc.y:1991
+#, c-format
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "Tùy chọn AT không được cho phép trong câu lệnh SET CONNECTION"
+
+#: preproc.y:2013
+#, c-format
+msgid "AT option not allowed in TYPE statement"
+msgstr "Tùy chọn AT không được phép trong câu lệnh TYPE"
+
+#: preproc.y:2022
+#, c-format
+msgid "AT option not allowed in VAR statement"
+msgstr "Tùy chọn AT không được phép trong câu lệnh VAR"
+
+#: preproc.y:2029
+#, c-format
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "Tùy chọn AT không được phép trong câu lệnh WHENEVER"
+
+#: preproc.y:2106 preproc.y:2278 preproc.y:2283 preproc.y:2399 preproc.y:4036
+#: preproc.y:5594 preproc.y:5603 preproc.y:5903 preproc.y:7502 preproc.y:8995
+#: preproc.y:9000 preproc.y:11782
+#, c-format
+msgid "unsupported feature will be passed to server"
+msgstr "tính năng không được hỗ trợ sẽ được chuyển đến server"
+
+#: preproc.y:2657
+#, c-format
+msgid "SHOW ALL is not implemented"
+msgstr "Lệnh SHOW ALL chưa được thực thi"
+
+#: preproc.y:3377
+#, c-format
+msgid "COPY FROM STDIN is not implemented"
+msgstr "Lệnh COPY FROM STDIN chưa được thực thi"
+
+#: preproc.y:9948 preproc.y:15303
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr ""
+"sử dụng biến \"%s\" trong các câu lệnh khai báo khác nhau không được hỗ trợ"
+
+#: preproc.y:9950 preproc.y:15305
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "con trỏ \"%s\" đã được định nghĩa"
+
+#: preproc.y:10380
+#, c-format
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "cú pháp không còn được hỗ trợ LIMIT #, # được chuyển đến server"
+
+#: preproc.y:10696 preproc.y:10703
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "truy vấn phụ trong FROM phải có bí danh"
+
+#: preproc.y:15033
+#, c-format
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "Không thể sử dụng INTO trong câu lệnh CREATE TABLE AS"
+
+#: preproc.y:15069
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "kì vọng \"@\", tìm thấy \"%s\""
+
+#: preproc.y:15081
+#, c-format
+msgid ""
+"only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are "
+"supported"
+msgstr ""
+"chỉ các giao thức \"tcp\" và \"unix\" và kiểu cơ sở dữ liệu \"postgresql\" "
+"được hỗ trợ"
+
+#: preproc.y:15084
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "kỳ vọng \"://\", tìm thấy \"%s\""
+
+#: preproc.y:15089
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr ""
+"Unix-domain sockets chỉ hoạt động trên \"localhost\" nhưng không hoạt động "
+"trên \"%s\""
+
+#: preproc.y:15115
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "kỳ vọng \"postgresql\", tìm thấy \"%s\""
+
+#: preproc.y:15118
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "loại kết nối không hợp lệ: %s"
+
+#: preproc.y:15127
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "kỳ vọng \"@\" or \"://\", tìm được \"%s\""
+
+#: preproc.y:15202 preproc.y:15220
+#, c-format
+msgid "invalid data type"
+msgstr "kiểu dữ liệu không hợp lệ"
+
+#: preproc.y:15231 preproc.y:15248
+#, c-format
+msgid "incomplete statement"
+msgstr "câu lệnh chưa hoàn chỉnh"
+
+#: preproc.y:15234 preproc.y:15251
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "không nhận ra token \"%s\""
+
+#: preproc.y:15525
+#, c-format
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr "chỉ các kiểu dữ liệu numeric và decimal có đối số precision và scale"
+
+#: preproc.y:15537
+#, c-format
+msgid "interval specification not allowed here"
+msgstr "chỉ định interval không được phép ở đây"
+
+#: preproc.y:15689 preproc.y:15741
+#, c-format
+msgid "too many levels in nested structure/union definition"
+msgstr "quá nhiều cấp độ lồng nhau trong định nghĩa structure/union"
+
+#: preproc.y:15880
+#, c-format
+msgid "pointers to varchar are not implemented"
+msgstr "con trỏ đến kiểu varchar chưa được thực thi"
+
+#: preproc.y:16067 preproc.y:16092
+#, c-format
+msgid "using unsupported DESCRIBE statement"
+msgstr "sử dụng câu lệnh chưa được hỗ trợ DESCRIBE"
+
+#: preproc.y:16339
+#, c-format
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "initializer không được phép trong câu lệnh EXEC SQL VAR"
+
+#: preproc.y:16655
+#, c-format
+msgid "arrays of indicators are not allowed on input"
+msgstr "đầu vào là mảng của các indicators không được cho phép"
+
+#: preproc.y:16876
+#, c-format
+msgid "operator not allowed in variable definition"
+msgstr "toán tử không được phép trong định nghĩa biến"
+
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:16917
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "%s tại hoặc gần \"%s\""
+
+#: type.c:18 type.c:30
+#, c-format
+msgid "out of memory"
+msgstr "hết bộ nhớ"
+
+#: type.c:212 type.c:674
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "không nhận ra kiểu mã biến %d"
+
+#: type.c:261
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "biến \"%s\" bị ẩn bởi biến cục bộ thuộc một kiểu khác"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "biến \"%s\" bị ẩn bởi biến cục bộ"
+
+#: type.c:275
+#, c-format
+msgid ""
+"indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr "biến indicator \"%s\" bị ẩn bởi một biến cục bộ thuộc một kiểu khác"
+
+#: type.c:277
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "biến indicator \"%s\" bị ẩn bởi biến cục bộ"
+
+#: type.c:285
+#, c-format
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "mảng/con trỏ cho indicator phải là mảng/con trỏ"
+
+#: type.c:289
+#, c-format
+msgid "nested arrays are not supported (except strings)"
+msgstr "mảng lồng nhau không được hỗ trợ (ngoại trừ chuỗi)"
+
+#: type.c:331
+#, c-format
+msgid "indicator for struct has to be a struct"
+msgstr "indicator cho structure phải là một structure"
+
+#: type.c:351 type.c:372 type.c:392
+#, c-format
+msgid "indicator for simple data type has to be simple"
+msgstr "indicator cho kiểu dữ liệu đơn giản phải đơn giản"
+
+#: type.c:615
+#, c-format
+msgid "indicator struct \"%s\" has too few members"
+msgstr "cấu trúc của indicator \"%s\" có quá ít thành viên"
+
+#: type.c:622
+#, c-format
+msgid "indicator struct \"%s\" has too many members"
+msgstr "cấu trúc của indicator \"%s\" có quá nhiều thành viên"
+
+#: type.c:733
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "không nhận ra mã descriptor item %d"
+
+#: variable.c:89 variable.c:116
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "biến được định dạng không chính xác \"%s\""
+
+#: variable.c:139
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "biến \"%s\" không phải là con trỏ"
+
+#: variable.c:142 variable.c:167
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "biến \"%s\" không phải là con trỏ trỏ tới structure hoặc union"
+
+#: variable.c:154
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "biến \"%s\" không phải là kiểu structure hay union"
+
+#: variable.c:164
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "biến \"%s\" không phải là mảng"
+
+#: variable.c:233 variable.c:255
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "biến \"%s\" chưa được định nghĩa"
+
+#: variable.c:494
+#, c-format
+msgid "indicator variable must have an integer type"
+msgstr "biến indicator phải có kiểu integer"
+
+#: variable.c:506
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr "không nhận ra kiểu dữ liệu \"%s\""
+
+#: variable.c:517 variable.c:525 variable.c:542 variable.c:545
+#, c-format
+msgid "multidimensional arrays are not supported"
+msgstr "mảng đa chiều không được hỗ trợ"
+
+#: variable.c:534
+#, c-format
+msgid ""
+"multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural ""
+"multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] ""
+"các con trỏ đa cấp (nhiều hơn 2 cấp) không được hỗ trợ; đã tìm thấy %d cấp"
+
+#: variable.c:539
+#, c-format
+msgid "pointer to pointer is not supported for this data type"
+msgstr "con trỏ đến con trỏ không được hỗ trợ cho kiểu dữ liệu này"
+
+#: variable.c:559
+#, c-format
+msgid "multidimensional arrays for structures are not supported"
+msgstr "mảng đa chiều cho kiểu cấu trúc không được hỗ trợ"
diff --git a/src/interfaces/ecpg/preproc/po/zh_CN.po b/src/interfaces/ecpg/preproc/po/zh_CN.po
new file mode 100644
index 0000000..74fd9da
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/zh_CN.po
@@ -0,0 +1,693 @@
+# LANGUAGE message translation file for ecpg
+# Copyright (C) 2010 PostgreSQL Global Development Group
+# This file is distributed under the same license as the PostgreSQL package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ecpg (PostgreSQL) 14\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2021-08-14 05:39+0000\n"
+"PO-Revision-Date: 2021-08-15 18:42+0800\n"
+"Last-Translator: Jie Zhang <zhangjie2@fujitsu.com>\n"
+"Language-Team: Chinese (Simplified) <zhangjie2@fujitsu.com>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Poedit 1.5.4\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "变量 \"%s\"必须是数值类型"
+
+#: descriptor.c:125 descriptor.c:156
+msgid "descriptor %s bound to connection %s does not exist"
+msgstr "绑定到连接%2$s的描述符%1$s不存在"
+
+#: descriptor.c:127 descriptor.c:158
+msgid "descriptor %s bound to the default connection does not exist"
+msgstr "绑定到默认连接%2$s的描述符%1$s不存在"
+
+#: descriptor.c:173 descriptor.c:225
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "描述符标题成员\"%d\"不存在"
+
+#: descriptor.c:195
+#, c-format
+msgid "nullable is always 1"
+msgstr "可为空永远用1表示"
+
+#: descriptor.c:198
+#, c-format
+msgid "key_member is always 0"
+msgstr "key_member永远是0"
+
+#: descriptor.c:292
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "没有使用描述符成员\"%s\"."
+
+#: descriptor.c:302
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "无法设置描述符成员 \"%s\""
+
+#: ecpg.c:36
+#, c-format
+msgid ""
+"%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
+"\n"
+msgstr ""
+"%s是用于C语言程序的PostgreSQL嵌入式SQL预处理器.\n"
+"\n"
+
+#: ecpg.c:38
+#, c-format
+msgid ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+
+#: ecpg.c:41
+#, c-format
+msgid "Options:\n"
+msgstr "选项:\n"
+
+#: ecpg.c:42
+#, c-format
+msgid ""
+" -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr ""
+" -c 从嵌入式SQL代码中自动产生C代码;\n"
+" 这将影响EXEC SQL TYPE\n"
+
+#: ecpg.c:44
+#, c-format
+msgid ""
+" -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+msgstr ""
+" -C MODE 设置兼容模式;MODE可以是下列模式之一\n"
+" \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
+
+#: ecpg.c:47
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d 产生解析器的调试输出\n"
+
+#: ecpg.c:49
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D SYMBOL 定义SYMBOL\n"
+
+#: ecpg.c:50
+#, c-format
+msgid " -h parse a header file, this option includes option \"-c\"\n"
+msgstr " -h 分析一个头文件,这个选项包含选项\"-c\"\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i 分析系统引用文件\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I DIRECTORY 为引用文件搜索变量DIRECTORY\n"
+
+#: ecpg.c:53
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o OUTFILE 将结果写入到OUTFILE\n"
+
+#: ecpg.c:54
+#, c-format
+msgid ""
+" -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr ""
+" -r OPTION 指定运行时的系统行为; OPTION可以是:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression 在回归测试模式下运行\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr " -t 打开事务的自动提交功能\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " -V, --version output version information, then exit\n"
+msgstr " -V, --version 输出版本信息,然后退出\n"
+
+#: ecpg.c:59
+#, c-format
+msgid " -?, --help show this help, then exit\n"
+msgstr " -?, --help 显示帮助信息,然后退出\n"
+
+#: ecpg.c:60
+#, c-format
+msgid ""
+"\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr ""
+"\n"
+"如果没有指定输出文件,那么输出文件名将由输入文件名(如果有后缀,那么去掉.pgc)\n"
+"加上.c的后缀名组成.\n"
+
+#: ecpg.c:62
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"臭虫报告至<%s>.\n"
+
+#: ecpg.c:63
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s 主页: <%s>\n"
+
+#: ecpg.c:141
+#, c-format
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s: 找不到我的可执行文件路径\n"
+
+#: ecpg.c:176 ecpg.c:333 ecpg.c:344
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: 无法打开文件 \"%s\": %s\n"
+
+#: ecpg.c:219 ecpg.c:232 ecpg.c:248 ecpg.c:274
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "请用 \"%s --help\" 获取更多的信息.\n"
+
+#: ecpg.c:243
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr "%s: 解析器跟踪调试支持(-d)无效\n"
+
+#: ecpg.c:262
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n"
+msgstr "%s, PostgreSQL嵌入式C语言预处理器, 版本%s\n"
+
+#: ecpg.c:264
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "EXEC SQL INCLUDE ... 从这里开始搜索:\n"
+
+#: ecpg.c:267
+#, c-format
+msgid "end of search list\n"
+msgstr "搜索列表的结束部分\n"
+
+#: ecpg.c:273
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s: 没有指定输入文件\n"
+
+#: ecpg.c:477
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "已经声明了游标\"%s\",但是没有打开"
+
+#: ecpg.c:490 preproc.y:130
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "无法删除输出文件 \"%s\"\n"
+
+#: pgc.l:502
+#, c-format
+msgid "unterminated /* comment"
+msgstr "/* 注释没有结束"
+
+#: pgc.l:519
+#, c-format
+msgid "unterminated bit string literal"
+msgstr "未结束的bit字符串常量"
+
+#: pgc.l:527
+#, c-format
+msgid "unterminated hexadecimal string literal"
+msgstr "未结束的16进制字符串常量"
+
+#: pgc.l:602
+#, c-format
+msgid "invalid bit string literal"
+msgstr "无效的bit字符串常量"
+
+#: pgc.l:607
+msgid "invalid hex string literal"
+msgstr "无效的十六进制字符串常量"
+
+#: pgc.l:625
+#, c-format
+msgid "unhandled previous state in xqs\n"
+msgstr "xqs中未处理的先前状态\n"
+
+#: pgc.l:651 pgc.l:760
+#, c-format
+msgid "unterminated quoted string"
+msgstr "未结束的引用字符串"
+
+#: pgc.l:702
+#, c-format
+msgid "unterminated dollar-quoted string"
+msgstr "未结束的用$符号引用的字符串"
+
+#: pgc.l:720 pgc.l:740
+#, c-format
+msgid "zero-length delimited identifier"
+msgstr "长度为0的分隔标识符"
+
+#: pgc.l:751
+#, c-format
+msgid "unterminated quoted identifier"
+msgstr "未结束的引用标识符"
+
+#: pgc.l:1082
+#, c-format
+msgid "nested /* ... */ comments"
+msgstr "有嵌套注释/*...*/"
+
+#: pgc.l:1175
+#, c-format
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "在EXEC SQL UNDEF命令中丢失标识符"
+
+#: pgc.l:1193 pgc.l:1206 pgc.l:1222 pgc.l:1235
+#, c-format
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "嵌套EXEC SQL IFDEF条件太多"
+
+#: pgc.l:1251 pgc.l:1262 pgc.l:1277 pgc.l:1299
+#, c-format
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "丢失匹配 \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+
+#: pgc.l:1253 pgc.l:1264 pgc.l:1445
+#, c-format
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "\"EXEC SQL ENDIF;\"丢失"
+
+#: pgc.l:1279 pgc.l:1301
+#, c-format
+msgid "more than one EXEC SQL ELSE"
+msgstr "多个EXEC SQL ELSE"
+
+#: pgc.l:1324 pgc.l:1338
+#, c-format
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "EXEC SQL ENDIF不匹配"
+
+#: pgc.l:1393
+#, c-format
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "在EXEC SQL IFDEF命令中丢失标识符"
+
+#: pgc.l:1402
+#, c-format
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "在EXEC SQL DEFINE命令中丢失标识符"
+
+#: pgc.l:1435
+#, c-format
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "在EXEC SQL INCLUDE命令中出现语法错误"
+
+#: pgc.l:1485
+msgid "internal error: unreachable state; please report this to <%s>"
+msgstr "内部错误:不可到达的状态;请向<%s>发送报告"
+
+#: pgc.l:1637
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr "错误:在第%3$d行上包含路径\"%1$s/%2$s\"太长,跳过\n"
+
+#: pgc.l:1660
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr "在第%2$d行无法打开应用文件\"%1$s\""
+
+#: preproc.y:31
+msgid "syntax error"
+msgstr "语法错误"
+
+#: preproc.y:84
+#, c-format
+msgid "WARNING: "
+msgstr "警告:"
+
+#: preproc.y:87
+#, c-format
+msgid "ERROR: "
+msgstr "错误:"
+
+#: preproc.y:514
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "游标 \"%s\" 不存在"
+
+#: preproc.y:543
+#, c-format
+msgid "initializer not allowed in type definition"
+msgstr "在类型定义中不允许进行初始化"
+
+#: preproc.y:545
+#, c-format
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "在Informix模式中类型名称\"string\" 是被保留的"
+
+#: preproc.y:552 preproc.y:17675
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "已定义类型\"%s\" "
+
+#: preproc.y:577 preproc.y:18310 preproc.y:18635 variable.c:621
+#, c-format
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr "不支持针对简单数据类型的多维数组"
+
+#: preproc.y:599
+msgid "connection %s is overwritten to %s."
+msgstr "连接%s被覆盖到%s."
+
+#: preproc.y:1753
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "在CLOSE DATABASE语句中不允许使用AT选项"
+
+#: preproc.y:2001
+#, c-format
+msgid "AT option not allowed in CONNECT statement"
+msgstr "在CONNECT语句中不允许使用AT选项"
+
+#: preproc.y:2041
+#, c-format
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "在DISCONNECT语句中不允许使用AT选项"
+
+#: preproc.y:2096
+#, c-format
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "在SET CONNECTION语句中不允许使用AT选项"
+
+#: preproc.y:2118
+#, c-format
+msgid "AT option not allowed in TYPE statement"
+msgstr "在TYPE语句中不允许使用AT选项"
+
+#: preproc.y:2127
+#, c-format
+msgid "AT option not allowed in VAR statement"
+msgstr "在VAR语句中不允许使用AT选项"
+
+#: preproc.y:2134
+#, c-format
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "在WHENEVER语句中不允许使用AT选项"
+
+#: preproc.y:2211 preproc.y:2383 preproc.y:2388 preproc.y:2511 preproc.y:4143
+#: preproc.y:4807 preproc.y:5340 preproc.y:5678 preproc.y:5978 preproc.y:7514
+#: preproc.y:9082 preproc.y:9087 preproc.y:11915
+#, c-format
+msgid "unsupported feature will be passed to server"
+msgstr "不支持的功能特性将会传递给服务器"
+
+#: preproc.y:2769
+#, c-format
+msgid "SHOW ALL is not implemented"
+msgstr "没有使用SHOW ALL"
+
+#: preproc.y:3464
+#, c-format
+msgid "COPY FROM STDIN is not implemented"
+msgstr "不能进行COPY FROM STDIN的操作"
+
+#: preproc.y:10014 preproc.y:17250
+msgid "\"database\" cannot be used as cursor name in INFORMIX mode"
+msgstr "在INFORMIX模式下,\"database\"不能用作游标名称"
+
+#: preproc.y:10021 preproc.y:17260
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr "不支持在不同的声明语句中使用变量\"%s\""
+
+#: preproc.y:10023 preproc.y:17262
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "已经定义了游标\"%s\""
+
+#: preproc.y:10497
+#, c-format
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "不再支持将LIMIT #,#语法传递给服务器"
+
+#: preproc.y:10830 preproc.y:10837
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "FROM 中的子查询必须有一个别名"
+
+#: preproc.y:16942 preproc.y:16949
+#, c-format
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "在CREATE TABLE AS语句中不能指定INTO子句"
+
+#: preproc.y:16985
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "期望 \"@\", 但是找到了\"%s\""
+
+#: preproc.y:16997
+#, c-format
+msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported"
+msgstr "只支持协议\"tcp\"和 \"unix\"以及数据库类型 \"postgresql\""
+
+#: preproc.y:17000
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "期望得到 \"://\",但是找到了\"%s\""
+
+#: preproc.y:17005
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr "Unix-域的sockets只能在\"localhost\"上运行,而不能在\"%s\"上运行"
+
+#: preproc.y:17031
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "期望\"postgresql\", 但是只找到了\"%s\""
+
+#: preproc.y:17034
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "无效的连接类型: %s"
+
+#: preproc.y:17043
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "期望\"@\"或\"://\",但是只找到了\"%s\""
+
+#: preproc.y:17118 preproc.y:17136
+#, c-format
+msgid "invalid data type"
+msgstr "无效数据类型"
+
+#: preproc.y:17147 preproc.y:17164
+#, c-format
+msgid "incomplete statement"
+msgstr "未结束的语句"
+
+#: preproc.y:17150 preproc.y:17167
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "无法识别的符号\"%s\""
+
+#: preproc.y:17212
+msgid "name \"%s\" is already declared"
+msgstr "已声明名称\"%s\""
+
+#: preproc.y:17478
+#, c-format
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr "只有数据类型numeric和decimal有精度/范围参数"
+
+#: preproc.y:17490
+#, c-format
+msgid "interval specification not allowed here"
+msgstr "在这里不允许使用间隔定义"
+
+#: preproc.y:17650 preproc.y:17702
+#, c-format
+msgid "too many levels in nested structure/union definition"
+msgstr "在嵌套结构/联合定义中存在太多的层次"
+
+#: preproc.y:17825
+#, c-format
+msgid "pointers to varchar are not implemented"
+msgstr "没有实现指向varchar类型值的指针"
+
+#: preproc.y:18276
+#, c-format
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "在EXEC SQL VAR命令中不允许初始化"
+
+#: preproc.y:18593
+#, c-format
+msgid "arrays of indicators are not allowed on input"
+msgstr "在输入上不允许使用标识数组"
+
+#: preproc.y:18780
+#, c-format
+msgid "operator not allowed in variable definition"
+msgstr "操作符不允许出现在变量定义当中"
+
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:18821
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "%s 在 \"%s\" 或附近的"
+
+#: type.c:18 type.c:30
+#, c-format
+msgid "out of memory"
+msgstr "内存不足"
+
+#: type.c:214 type.c:685
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "无法识别的变量类型代码%d"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "变量\"%s\"是由一个不同类型的局部变量隐藏的"
+
+#: type.c:265
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "变量\"%s\"是由一个局部变量隐藏的"
+
+#: type.c:277
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr "标记变量(indicator variable)\"%s\"是由一个不同类型的局部变量隐藏的。"
+
+#: type.c:279
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "标记变量(indicator variable)\"%s\"是由一个局部变量隐藏的"
+
+#: type.c:287
+#, c-format
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "对于数组/指针的记号必须是array/pointer"
+
+#: type.c:291
+#, c-format
+msgid "nested arrays are not supported (except strings)"
+msgstr "不支持嵌套数组(除了字符串外)"
+
+#: type.c:333
+#, c-format
+msgid "indicator for struct has to be a struct"
+msgstr "结构的记号必须是struct"
+
+#: type.c:353 type.c:374 type.c:394
+#, c-format
+msgid "indicator for simple data type has to be simple"
+msgstr "对简单数据类型的指标要简单 "
+
+#: type.c:625
+#, c-format
+msgid "indicator struct \"%s\" has too few members"
+msgstr "结构\"%s\"的记号的成员太少"
+
+#: type.c:633
+#, c-format
+msgid "indicator struct \"%s\" has too many members"
+msgstr "结构\"%s\"的记号成员太多"
+
+#: type.c:744
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "无法识别的描述符成员代码 %d"
+
+#: variable.c:89 variable.c:116
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "不正确形成的变量 \"%s\""
+
+#: variable.c:139
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "变量\"%s\"不是一个指针"
+
+#: variable.c:142 variable.c:167
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "变量\"%s\" 不是一个指向结构或联合的指针"
+
+#: variable.c:154
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "变量\"%s\"既不是一个结构也不是一个联合"
+
+#: variable.c:164
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "变量\"%s\"不是一个数组"
+
+#: variable.c:233 variable.c:255
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "没有声明变量\"%s\""
+
+#: variable.c:494
+#, c-format
+msgid "indicator variable must have an integer type"
+msgstr "标记变量必须有一个整数类型"
+
+#: variable.c:506
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr "无法识别的数据类型名称 \"%s\""
+
+#: variable.c:517 variable.c:525 variable.c:542 variable.c:545
+#, c-format
+msgid "multidimensional arrays are not supported"
+msgstr "不支持多维数组"
+
+#: variable.c:534
+#, c-format
+msgid "multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] "不支持多级指针(超过2级);找到了%d级指针."
+
+#: variable.c:539
+#, c-format
+msgid "pointer to pointer is not supported for this data type"
+msgstr "对于这种数据类型不支持指向指针的指针"
+
+#: variable.c:559
+#, c-format
+msgid "multidimensional arrays for structures are not supported"
+msgstr "不支持结构类型的多维数组"
+
diff --git a/src/interfaces/ecpg/preproc/po/zh_TW.po b/src/interfaces/ecpg/preproc/po/zh_TW.po
new file mode 100644
index 0000000..9d94f8c
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/zh_TW.po
@@ -0,0 +1,645 @@
+# Traditional Chinese message translation file for ecpg
+# Copyright (C) 2010 PostgreSQL Global Development Group
+# This file is distributed under the same license as the PostgreSQL package.
+msgid ""
+msgstr ""
+"Project-Id-Version: PostgreSQL 9.1\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
+"POT-Creation-Date: 2011-05-11 20:42+0000\n"
+"PO-Revision-Date: 2013-09-03 23:28-0400\n"
+"Last-Translator: Zhenbang Wei <znbang@gmail.com>\n"
+"Language-Team: EnterpriseDB translation team <dev-escalations@enterprisedb.com>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: descriptor.c:64
+#, c-format
+msgid "variable \"%s\" must have a numeric type"
+msgstr "變數 \"%s\" 必須具有數值型別"
+
+#: descriptor.c:124 descriptor.c:146
+#, c-format
+msgid "descriptor \"%s\" does not exist"
+msgstr "描述子 \"%s\" 不存在"
+
+#: descriptor.c:161 descriptor.c:210
+#, c-format
+msgid "descriptor header item \"%d\" does not exist"
+msgstr "描述子標頭項目 \"%d\" 不存在"
+
+#: descriptor.c:182
+msgid "nullable is always 1"
+msgstr "Nullable 一律為 1"
+
+#: descriptor.c:185
+msgid "key_member is always 0"
+msgstr "key_member 一律為 0"
+
+#: descriptor.c:277
+#, c-format
+msgid "descriptor item \"%s\" is not implemented"
+msgstr "未實作描述子項目 \"%s\""
+
+#: descriptor.c:287
+#, c-format
+msgid "descriptor item \"%s\" cannot be set"
+msgstr "不能設定描述子項目 \"%s\""
+
+#: ecpg.c:35
+#, c-format
+msgid ""
+"%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
+"\n"
+msgstr ""
+"%s 是 PostgreSQL 內嵌 SQL 前置處理器,適用於 C 程式。\n"
+"\n"
+
+#: ecpg.c:37
+#, c-format
+msgid ""
+"Usage:\n"
+" %s [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"使用方法:\n"
+"%s [選項]...檔案...\n"
+"\n"
+
+# postmaster/postmaster.c:1017 tcop/postgres.c:2115
+#: ecpg.c:40
+#, c-format
+msgid "Options:\n"
+msgstr "選項:\n"
+
+#: ecpg.c:41
+#, c-format
+msgid ""
+" -c automatically generate C code from embedded SQL code;\n"
+" this affects EXEC SQL TYPE\n"
+msgstr ""
+" -c 自動從內嵌 SQL 程式碼產生 C 程式碼,\n"
+" EXEC SQL TYPE 會受到影響\n"
+
+#: ecpg.c:43
+#, c-format
+msgid ""
+" -C MODE set compatibility mode; MODE can be one of\n"
+" \"INFORMIX\", \"INFORMIX_SE\"\n"
+msgstr ""
+" -C 模式 設定相容性模式,模式可以是下列其中一項\n"
+" \"INFORMIX\"、\"INFORMIX_SE\"\n"
+
+#: ecpg.c:46
+#, c-format
+msgid " -d generate parser debug output\n"
+msgstr " -d 產生解譯器偵錯輸出\n"
+
+#: ecpg.c:48
+#, c-format
+msgid " -D SYMBOL define SYMBOL\n"
+msgstr " -D 符號 定義符號\n"
+
+#: ecpg.c:49
+#, c-format
+msgid ""
+" -h parse a header file, this option includes option \"-c\"\n"
+msgstr " -h 解譯標頭檔,此選項包含選項 \"-c\"\n"
+
+#: ecpg.c:50
+#, c-format
+msgid " -i parse system include files as well\n"
+msgstr " -i 同時解譯系統引用檔案\n"
+
+#: ecpg.c:51
+#, c-format
+msgid " -I DIRECTORY search DIRECTORY for include files\n"
+msgstr " -I 目錄 搜尋引用檔案的目錄\n"
+
+#: ecpg.c:52
+#, c-format
+msgid " -o OUTFILE write result to OUTFILE\n"
+msgstr " -o 輸出檔 將結果寫入輸出檔\n"
+
+#: ecpg.c:53
+#, c-format
+msgid ""
+" -r OPTION specify run-time behavior; OPTION can be:\n"
+" \"no_indicator\", \"prepare\", \"questionmarks\"\n"
+msgstr ""
+" -r 選項 指定執行階段行為,選項可以是:\n"
+" \"no_indicator\"、\"prepare\"、\"questionmarks\"\n"
+
+#: ecpg.c:55
+#, c-format
+msgid " --regression run in regression testing mode\n"
+msgstr " --regression 以迴歸測試模式執行\n"
+
+#: ecpg.c:56
+#, c-format
+msgid " -t turn on autocommit of transactions\n"
+msgstr " -t 開啟交易自動提交功能\n"
+
+#: ecpg.c:57
+#, c-format
+msgid " --help show this help, then exit\n"
+msgstr " --help 顯示此說明然後結束\n"
+
+#: ecpg.c:58
+#, c-format
+msgid " --version output version information, then exit\n"
+msgstr " --version 輸出版本資訊然後結束\n"
+
+#: ecpg.c:59
+#, c-format
+msgid ""
+"\n"
+"If no output file is specified, the name is formed by adding .c to the\n"
+"input file name, after stripping off .pgc if present.\n"
+msgstr ""
+"\n"
+"如果未指定輸出檔,檔名就是將輸入檔的檔名\n"
+"去掉 .pgc (如果有的話) 再加上 .c。\n"
+
+# tcop/postgres.c:2140
+#: ecpg.c:61
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <pgsql-bugs@postgresql.org>.\n"
+msgstr ""
+"\n"
+"回報錯誤給 <pgsql-bugs@postgresql.org>。\n"
+
+#: ecpg.c:182 ecpg.c:333 ecpg.c:343
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: 無法開啟檔案\"%s\": %s\n"
+
+# postmaster/postmaster.c:512 postmaster/postmaster.c:525
+#: ecpg.c:221 ecpg.c:234 ecpg.c:250 ecpg.c:275
+#, c-format
+msgid "Try \"%s --help\" for more information.\n"
+msgstr "執行\"%s --help\"顯示更多資訊。\n"
+
+#: ecpg.c:245
+#, c-format
+msgid "%s: parser debug support (-d) not available\n"
+msgstr "%s: 解譯器偵錯支援 (-d) 無法使用\n"
+
+#: ecpg.c:263
+#, c-format
+msgid "%s, the PostgreSQL embedded C preprocessor, version %d.%d.%d\n"
+msgstr "%s,PostgreSQL 內嵌 C 前置處理器,版本 %d.%d.%d\n"
+
+#: ecpg.c:265
+#, c-format
+msgid "EXEC SQL INCLUDE ... search starts here:\n"
+msgstr "EXEC SQL INCLUDE ... 在此處開始搜尋:\n"
+
+#: ecpg.c:268
+#, c-format
+msgid "end of search list\n"
+msgstr "搜尋清單結尾\n"
+
+#: ecpg.c:274
+#, c-format
+msgid "%s: no input files specified\n"
+msgstr "%s: 未指定輸入檔\n"
+
+#: ecpg.c:466
+#, c-format
+msgid "cursor \"%s\" has been declared but not opened"
+msgstr "指標 \"%s\" 已宣告但尚未開啟"
+
+#: ecpg.c:479 preproc.y:109
+#, c-format
+msgid "could not remove output file \"%s\"\n"
+msgstr "無法移除輸出檔 \"%s\"\n"
+
+# scan.l:312
+#: pgc.l:402
+msgid "unterminated /* comment"
+msgstr "未結束的 /* 註解"
+
+#: pgc.l:415
+msgid "invalid bit string literal"
+msgstr "位元字串實量無效"
+
+# scan.l:339
+#: pgc.l:424
+msgid "unterminated bit string literal"
+msgstr "未結束的位元字串實量"
+
+# scan.l:358
+#: pgc.l:440
+msgid "unterminated hexadecimal string literal"
+msgstr "未結束的十六進位字串實量"
+
+# scan.l:407
+#: pgc.l:518
+msgid "unterminated quoted string"
+msgstr "未結束的引號字串"
+
+#: pgc.l:573 pgc.l:586
+msgid "zero-length delimited identifier"
+msgstr "長度為零的分隔識別字"
+
+#: pgc.l:594
+msgid "unterminated quoted identifier"
+msgstr "未結束的引號識別字"
+
+#: pgc.l:940
+msgid "missing identifier in EXEC SQL UNDEF command"
+msgstr "EXEC SQL UNDEF 指令遺漏識別字"
+
+#: pgc.l:986 pgc.l:1000
+msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+msgstr "遺漏相符的 \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
+
+#: pgc.l:989 pgc.l:1002 pgc.l:1178
+msgid "missing \"EXEC SQL ENDIF;\""
+msgstr "遺漏 \"EXEC SQL ENDIF;\""
+
+#: pgc.l:1018 pgc.l:1037
+msgid "more than one EXEC SQL ELSE"
+msgstr "多個 EXEC SQL ELSE"
+
+#: pgc.l:1059 pgc.l:1073
+msgid "unmatched EXEC SQL ENDIF"
+msgstr "EXEC SQL ENDIF 不相符"
+
+#: pgc.l:1093
+msgid "too many nested EXEC SQL IFDEF conditions"
+msgstr "過多巢狀 EXEC SQL IFDEF 條件"
+
+#: pgc.l:1126
+msgid "missing identifier in EXEC SQL IFDEF command"
+msgstr "EXEC SQL IFDEF 指令遺漏識別字"
+
+#: pgc.l:1135
+msgid "missing identifier in EXEC SQL DEFINE command"
+msgstr "EXEC SQL DEFINE 指令遺漏識別字"
+
+#: pgc.l:1168
+msgid "syntax error in EXEC SQL INCLUDE command"
+msgstr "EXEC SQL INCLUDE 指令的語法錯誤"
+
+#: pgc.l:1217
+msgid ""
+"internal error: unreachable state; please report this to <pgsql-"
+"bugs@postgresql.org>"
+msgstr "內部錯誤: 無法連線狀態,請將錯誤回報給 <pgsql-bugs@postgresql.org>"
+
+#: pgc.l:1342
+#, c-format
+msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
+msgstr "錯誤: 引用檔路徑 \"%s/%s\" 太長 (位於行 %d),略過\n"
+
+#: pgc.l:1364
+#, c-format
+msgid "could not open include file \"%s\" on line %d"
+msgstr "無法開啟引用檔 \"%s\" (位於行 %d)"
+
+# gram.y:8218 gram.y:8220 y.tab.c:19175
+#: preproc.y:31
+msgid "syntax error"
+msgstr "語法錯誤"
+
+#: preproc.y:81
+#, c-format
+msgid "WARNING: "
+msgstr "警告:"
+
+#: preproc.y:85
+#, c-format
+msgid "ERROR: "
+msgstr "錯誤:"
+
+# commands/portalcmds.c:182 commands/portalcmds.c:229
+#: preproc.y:391
+#, c-format
+msgid "cursor \"%s\" does not exist"
+msgstr "指標 \"%s\"不存在"
+
+#: preproc.y:419
+msgid "initializer not allowed in type definition"
+msgstr "型別定義中不允許使用初始設定式"
+
+# commands/user.c:1396
+#: preproc.y:421
+msgid "type name \"string\" is reserved in Informix mode"
+msgstr "型別名稱 \"string\" 在 Informix 是保留字"
+
+#: preproc.y:428 preproc.y:13035
+#, c-format
+msgid "type \"%s\" is already defined"
+msgstr "型別 \"%s\" 已定義"
+
+#: preproc.y:452 preproc.y:13675 preproc.y:13996 variable.c:610
+msgid "multidimensional arrays for simple data types are not supported"
+msgstr "不支援簡單資料型別的多維度陣列"
+
+#: preproc.y:1426
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "CLOSE DATABASE 陳述式中不允許使用 AT 選項"
+
+#: preproc.y:1496 preproc.y:1640
+msgid "AT option not allowed in DEALLOCATE statement"
+msgstr "DEALLOCATE 陳述式中不允許使用 AT 選項"
+
+#: preproc.y:1626
+msgid "AT option not allowed in CONNECT statement"
+msgstr "CONNECT 陳述式中不允許使用 AT 選項"
+
+#: preproc.y:1662
+msgid "AT option not allowed in DISCONNECT statement"
+msgstr "DISCONNECT 陳述式中不允許使用 AT 選項"
+
+#: preproc.y:1717
+msgid "AT option not allowed in SET CONNECTION statement"
+msgstr "SET CONNECTION 陳述式中不允許使用 AT 選項"
+
+#: preproc.y:1739
+msgid "AT option not allowed in TYPE statement"
+msgstr "TYPE 陳述式中不允許使用 AT 選項"
+
+#: preproc.y:1748
+msgid "AT option not allowed in VAR statement"
+msgstr "VAR 陳述式中不允許使用 AT 選項"
+
+#: preproc.y:1755
+msgid "AT option not allowed in WHENEVER statement"
+msgstr "WHENEVER 陳述式中不允許使用 AT 選項"
+
+#: preproc.y:2101 preproc.y:3272 preproc.y:3344 preproc.y:4550 preproc.y:4559
+#: preproc.y:4840 preproc.y:7127 preproc.y:7132 preproc.y:7137 preproc.y:9471
+#: preproc.y:10014
+msgid "unsupported feature will be passed to server"
+msgstr "不支援的功能將會傳遞到伺服器"
+
+#: preproc.y:2327
+msgid "SHOW ALL is not implemented"
+msgstr "未實作 SHOW ALL"
+
+#: preproc.y:2750 preproc.y:2761
+msgid "COPY TO STDIN is not possible"
+msgstr "COPY TO STDIN 不可行"
+
+#: preproc.y:2752
+msgid "COPY FROM STDOUT is not possible"
+msgstr "COPY FROM STDOUT 不可行"
+
+#: preproc.y:2754
+msgid "COPY FROM STDIN is not implemented"
+msgstr "未實作 COPY FROM STDIN"
+
+#: preproc.y:4490 preproc.y:4501
+msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE"
+msgstr "限制宣告的 INITIALLY DEFERRED 必須是 DEFERRABLE"
+
+#: preproc.y:7933 preproc.y:12624
+#, c-format
+msgid "using variable \"%s\" in different declare statements is not supported"
+msgstr "在多個宣告陳述式中使用變數 \"%s\" 未被支援"
+
+#: preproc.y:7935 preproc.y:12626
+#, c-format
+msgid "cursor \"%s\" is already defined"
+msgstr "指標 \"%s\" 已定義"
+
+#: preproc.y:8353
+msgid "no longer supported LIMIT #,# syntax passed to server"
+msgstr "不再支援的 LIMIT #,# 語法已傳遞到伺服器"
+
+# gram.y:5166 parser/parse_clause.c:423
+#: preproc.y:8588
+msgid "subquery in FROM must have an alias"
+msgstr "FROM中的子查詢要有別名"
+
+#: preproc.y:12356
+msgid "CREATE TABLE AS cannot specify INTO"
+msgstr "CREATE TABLE AS 不能指定 INTO"
+
+#: preproc.y:12393
+#, c-format
+msgid "expected \"@\", found \"%s\""
+msgstr "預期 \"@\",找到 \"%s\""
+
+#: preproc.y:12405
+msgid ""
+"only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are "
+"supported"
+msgstr "只支援通訊協定 \"tcp\" 和 \"unix\" 以及資料庫類型 \"postgresql\""
+
+#: preproc.y:12408
+#, c-format
+msgid "expected \"://\", found \"%s\""
+msgstr "預期 \"://\",找到 \"%s\""
+
+#: preproc.y:12413
+#, c-format
+msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
+msgstr "Unix-可用域通訊端僅適用 \"localhost\",不適用 \"%s\""
+
+#: preproc.y:12439
+#, c-format
+msgid "expected \"postgresql\", found \"%s\""
+msgstr "預期 \"postgresql\",找到 \"%s\""
+
+#: preproc.y:12442
+#, c-format
+msgid "invalid connection type: %s"
+msgstr "連線類型無效:%s"
+
+#: preproc.y:12451
+#, c-format
+msgid "expected \"@\" or \"://\", found \"%s\""
+msgstr "預期 \"@\" 或 \"://\",找到 \"%s\""
+
+#: preproc.y:12526 preproc.y:12544
+msgid "invalid data type"
+msgstr "資料型別無效"
+
+#: preproc.y:12555 preproc.y:12570
+msgid "incomplete statement"
+msgstr "陳述式不完整"
+
+#: preproc.y:12558 preproc.y:12573
+#, c-format
+msgid "unrecognized token \"%s\""
+msgstr "無法辨識的 token \"%s\""
+
+#: preproc.y:12846
+msgid "only data types numeric and decimal have precision/scale argument"
+msgstr "只有數值和十進位資料型別有精確度/小數位數參數"
+
+#: preproc.y:12858
+msgid "interval specification not allowed here"
+msgstr "這裡不允許使用間隔規格"
+
+#: preproc.y:13010 preproc.y:13062
+msgid "too many levels in nested structure/union definition"
+msgstr "巢狀結構/聯集定義中的層級過多"
+
+#: preproc.y:13193
+msgid "pointers to varchar are not implemented"
+msgstr "Varchar 的指標未實作"
+
+#: preproc.y:13380 preproc.y:13405
+msgid "using unsupported DESCRIBE statement"
+msgstr "使用不支援的 DESCRIBE 陳述式"
+
+#: preproc.y:13642
+msgid "initializer not allowed in EXEC SQL VAR command"
+msgstr "EXEC SQL VAR 指令中不允許使用初始設定式"
+
+#: preproc.y:13954
+msgid "arrays of indicators are not allowed on input"
+msgstr "輸入中不允許使用指標陣列"
+
+# translator: first %s is typically "syntax error"
+# scan.l:629
+#. translator: %s is typically the translation of "syntax error"
+#: preproc.y:14208
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "在\"%s\"附近發生 %s"
+
+# commands/sequence.c:798 executor/execGrouping.c:328
+# executor/execGrouping.c:388 executor/nodeIndexscan.c:1051 lib/dllist.c:43
+# lib/dllist.c:88 libpq/auth.c:637 postmaster/pgstat.c:1006
+# postmaster/pgstat.c:1023 postmaster/pgstat.c:2452 postmaster/pgstat.c:2527
+# postmaster/pgstat.c:2572 postmaster/pgstat.c:2623
+# postmaster/postmaster.c:755 postmaster/postmaster.c:1625
+# postmaster/postmaster.c:2344 storage/buffer/localbuf.c:139
+# storage/file/fd.c:587 storage/file/fd.c:620 storage/file/fd.c:766
+# storage/ipc/sinval.c:789 storage/lmgr/lock.c:497 storage/smgr/md.c:138
+# storage/smgr/md.c:848 storage/smgr/smgr.c:213 utils/adt/cash.c:297
+# utils/adt/cash.c:312 utils/adt/oracle_compat.c:73
+# utils/adt/oracle_compat.c:124 utils/adt/regexp.c:191
+# utils/adt/ri_triggers.c:3471 utils/cache/relcache.c:164
+# utils/cache/relcache.c:178 utils/cache/relcache.c:1130
+# utils/cache/typcache.c:165 utils/cache/typcache.c:487
+# utils/fmgr/dfmgr.c:127 utils/fmgr/fmgr.c:521 utils/fmgr/fmgr.c:532
+# utils/init/miscinit.c:213 utils/init/miscinit.c:234
+# utils/init/miscinit.c:244 utils/misc/guc.c:1898 utils/misc/guc.c:1911
+# utils/misc/guc.c:1924 utils/mmgr/aset.c:337 utils/mmgr/aset.c:503
+# utils/mmgr/aset.c:700 utils/mmgr/aset.c:893 utils/mmgr/portalmem.c:75
+#: type.c:18 type.c:30
+msgid "out of memory"
+msgstr "記憶體用盡"
+
+#: type.c:212 type.c:594
+#, c-format
+msgid "unrecognized variable type code %d"
+msgstr "無法辨識的變數型別程式碼 %d "
+
+#: type.c:261
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable of a different type"
+msgstr "變數 \"%s\" 被不同型別的區域變數遮蔽"
+
+#: type.c:263
+#, c-format
+msgid "variable \"%s\" is hidden by a local variable"
+msgstr "變數 \"%s\" 被區域變數遮蔽"
+
+#: type.c:275
+#, c-format
+msgid ""
+"indicator variable \"%s\" is hidden by a local variable of a different type"
+msgstr "指標變數 \"%s\" 被不同型別的區域變數遮蔽"
+
+#: type.c:277
+#, c-format
+msgid "indicator variable \"%s\" is hidden by a local variable"
+msgstr "指標變數 \"%s\" 被區域變數遮蔽"
+
+#: type.c:285
+msgid "indicator for array/pointer has to be array/pointer"
+msgstr "陣列/指標的指標必須是陣列/指標"
+
+#: type.c:289
+msgid "nested arrays are not supported (except strings)"
+msgstr "不支援巢狀陣列 (字串除外)"
+
+#: type.c:322
+msgid "indicator for struct has to be a struct"
+msgstr "建構的指標必須是建構"
+
+#: type.c:331 type.c:339 type.c:347
+msgid "indicator for simple data type has to be simple"
+msgstr "簡單資料型別的指標必須簡單"
+
+#: type.c:653
+#, c-format
+msgid "unrecognized descriptor item code %d"
+msgstr "無法辨識的描述子項目程式碼 %d"
+
+#: variable.c:89 variable.c:112
+#, c-format
+msgid "incorrectly formed variable \"%s\""
+msgstr "變數 \"%s\" 的格式不正確"
+
+#: variable.c:135
+#, c-format
+msgid "variable \"%s\" is not a pointer"
+msgstr "變數 \"%s\" 不是指標"
+
+#: variable.c:138 variable.c:163
+#, c-format
+msgid "variable \"%s\" is not a pointer to a structure or a union"
+msgstr "變數 \"%s\" 不是結構或聯集的指標"
+
+#: variable.c:150
+#, c-format
+msgid "variable \"%s\" is neither a structure nor a union"
+msgstr "變數 \"%s\" 不是結構或聯集"
+
+#: variable.c:160
+#, c-format
+msgid "variable \"%s\" is not an array"
+msgstr "變數 \"%s\" 不是陣列"
+
+#: variable.c:229 variable.c:251
+#, c-format
+msgid "variable \"%s\" is not declared"
+msgstr "變數 \"%s\" 未宣告"
+
+#: variable.c:484
+msgid "indicator variable must have an integer type"
+msgstr "指標變數必須是整數型別"
+
+#: variable.c:496
+#, c-format
+msgid "unrecognized data type name \"%s\""
+msgstr " 無法辨識的資料型別名稱 \"%s\""
+
+#: variable.c:507 variable.c:515 variable.c:532 variable.c:535
+msgid "multidimensional arrays are not supported"
+msgstr "不支援多維度陣列"
+
+#: variable.c:524
+#, c-format
+msgid ""
+"multilevel pointers (more than 2 levels) are not supported; found %d level"
+msgid_plural ""
+"multilevel pointers (more than 2 levels) are not supported; found %d levels"
+msgstr[0] "不支援多層指標(2層以上),發現 %d 層"
+
+#: variable.c:529
+msgid "pointer to pointer is not supported for this data type"
+msgstr "此資料型別不支援指標的指標"
+
+#: variable.c:549
+msgid "multidimensional arrays for structures are not supported"
+msgstr "不支援多維度的結構陣列"
+
+#~ msgid "OLD used in query that is not in a rule"
+#~ msgstr "查詢中使用的 OLD 不在規則中"
+
+#~ msgid "NEW used in query that is not in a rule"
+#~ msgstr "查詢中使用的 NEW 不在規則中"