zn_CH -- Translation update
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sat, 6 Dec 2014 17:57:53 +0000 (17:57 +0000)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sat, 6 Dec 2014 18:04:46 +0000 (18:04 +0000)
Provided by Xiong He - pgfoundry #1011462

http://pgfoundry.org/tracker/?func=detail&atid=320&aid=1011462&group_id=1000064

13 files changed:
zh_CN/ecpg.po
zh_CN/initdb.po
zh_CN/libpq.po
zh_CN/pg_basebackup.po
zh_CN/pg_controldata.po
zh_CN/pg_ctl.po
zh_CN/pg_dump.po
zh_CN/pg_resetxlog.po
zh_CN/pgscripts.po
zh_CN/plpgsql.po
zh_CN/plpython.po
zh_CN/postgres.po
zh_CN/psql.po

index d619127621e261689384edd60185483df64a9afb..0a43655ff1b95a65e742f4548f56f6bd3670f62d 100644 (file)
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ecpg (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2013-01-29 13:40+0000\n"
-"PO-Revision-Date: 2012-10-19 10:58+0800\n"
+"POT-Creation-Date: 2014-11-22 21:07+0000\n"
+"PO-Revision-Date: 2014-11-24 15:21+0800\n"
 "Last-Translator: Xiong He <iihero@qq.com>\n"
 "Language-Team: Chinese (Simplified)\n"
 "Language: zh_CN\n"
@@ -177,144 +177,156 @@ msgstr ""
 "\n"
 "错误报告至 <pgsql-bugs@postgresql.org>.\n"
 
-#: ecpg.c:182 ecpg.c:333 ecpg.c:343
+#: ecpg.c:143
+#, c-format
+#| msgid "%s: could not find own executable\n"
+msgid "%s: could not locate my own executable path\n"
+msgstr "%s: 找不到我的可执行文件路径\n"
+
+#: ecpg.c:186 ecpg.c:337 ecpg.c:347
 #, c-format
 msgid "%s: could not open file \"%s\": %s\n"
 msgstr "%s: 无法打开文件 \"%s\": %s\n"
 
-#: ecpg.c:221 ecpg.c:234 ecpg.c:250 ecpg.c:275
+#: ecpg.c:225 ecpg.c:238 ecpg.c:254 ecpg.c:279
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
 
-#: ecpg.c:245
+#: ecpg.c:249
 #, c-format
 msgid "%s: parser debug support (-d) not available\n"
 msgstr "%s: 解析器跟踪调试支持(-d)无效\n"
 
-#: ecpg.c:263
+#: ecpg.c:267
 #, 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
+#: ecpg.c:269
 #, c-format
 msgid "EXEC SQL INCLUDE ... search starts here:\n"
 msgstr "EXEC SQL INCLUDE ... 从这里开始搜索:\n"
 
-#: ecpg.c:268
+#: ecpg.c:272
 #, c-format
 msgid "end of search list\n"
 msgstr "搜索列表的结束部分\n"
 
-#: ecpg.c:274
+#: ecpg.c:278
 #, c-format
 msgid "%s: no input files specified\n"
 msgstr "%s: 没有指定输入文件\n"
 
-#: ecpg.c:466
+#: ecpg.c:470
 #, c-format
 msgid "cursor \"%s\" has been declared but not opened"
 msgstr "已经声明了游标\"%s\",但是没有打开"
 
-#: ecpg.c:479 preproc.y:109
+#: ecpg.c:483 preproc.y:125
 #, c-format
 msgid "could not remove output file \"%s\"\n"
 msgstr "无法删除输出文件 \"%s\"\n"
 
-#: pgc.l:403
+#: pgc.l:421
 #, c-format
 msgid "unterminated /* comment"
 msgstr "/* 注释没有结束"
 
-#: pgc.l:416
+#: pgc.l:434
 #, c-format
 msgid "invalid bit string literal"
 msgstr "无效的bit字符串常量"
 
-#: pgc.l:425
+#: pgc.l:443
 #, c-format
 msgid "unterminated bit string literal"
 msgstr "未结束的bit字符串常量"
 
-#: pgc.l:441
+#: pgc.l:459
 #, c-format
 msgid "unterminated hexadecimal string literal"
 msgstr "未结束的16进制字符串常量"
 
-#: pgc.l:519
+#: pgc.l:537
 #, c-format
 msgid "unterminated quoted string"
 msgstr "未结束的引用字符串"
 
-#: pgc.l:574 pgc.l:587
+#: pgc.l:592 pgc.l:605
 #, c-format
 msgid "zero-length delimited identifier"
 msgstr "长度为0的分隔标识符"
 
-#: pgc.l:595
+#: pgc.l:613
 #, c-format
 msgid "unterminated quoted identifier"
 msgstr "未结束的引用标识符"
 
-#: pgc.l:941
+#: pgc.l:867
+#, c-format
+#| msgid "unterminated /* comment"
+msgid "nested /* ... */ comments"
+msgstr "有嵌套注释/*...*/"
+
+#: pgc.l:960
 #, c-format
 msgid "missing identifier in EXEC SQL UNDEF command"
 msgstr "在EXEC SQL UNDEF命令中丢失标识符"
 
-#: pgc.l:987 pgc.l:1001
+#: pgc.l:1006 pgc.l:1020
 #, c-format
 msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
 msgstr "丢失匹配 \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
 
-#: pgc.l:990 pgc.l:1003 pgc.l:1179
+#: pgc.l:1009 pgc.l:1022 pgc.l:1198
 #, c-format
 msgid "missing \"EXEC SQL ENDIF;\""
 msgstr "\"EXEC SQL ENDIF;\"丢失"
 
-#: pgc.l:1019 pgc.l:1038
+#: pgc.l:1038 pgc.l:1057
 #, c-format
 msgid "more than one EXEC SQL ELSE"
 msgstr "多个EXEC SQL ELSE"
 
-#: pgc.l:1060 pgc.l:1074
+#: pgc.l:1079 pgc.l:1093
 #, c-format
 msgid "unmatched EXEC SQL ENDIF"
 msgstr "EXEC SQL ENDIF不匹配"
 
-#: pgc.l:1094
+#: pgc.l:1113
 #, c-format
 msgid "too many nested EXEC SQL IFDEF conditions"
 msgstr "嵌套EXEC SQL IFDEF条件太多"
 
-#: pgc.l:1127
+#: pgc.l:1146
 #, c-format
 msgid "missing identifier in EXEC SQL IFDEF command"
 msgstr "在EXEC SQL IFDEF命令中丢失标识符"
 
-#: pgc.l:1136
+#: pgc.l:1155
 #, c-format
 msgid "missing identifier in EXEC SQL DEFINE command"
 msgstr "在EXEC SQL DEFINE命令中丢失标识符"
 
-#: pgc.l:1169
+#: pgc.l:1188
 #, c-format
 msgid "syntax error in EXEC SQL INCLUDE command"
 msgstr "在EXEC SQL INCLUDE命令中出现语法错误"
 
-#: pgc.l:1218
+#: pgc.l:1237
 #, c-format
 msgid ""
 "internal error: unreachable state; please report this to <pgsql-"
 "bugs@postgresql.org>"
 msgstr "内部错误:不可到达的状态;请向<pgsql-bugs@postgresql.org>发送报告"
 
-#: pgc.l:1343
+#: pgc.l:1362
 #, 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:1365
+#: pgc.l:1385
 #, c-format
 msgid "could not open include file \"%s\" on line %d"
 msgstr "在第%2$d行无法打开应用文件\"%1$s\""
@@ -323,216 +335,213 @@ msgstr "在第%2$d行无法打开应用文件\"%1$s\""
 msgid "syntax error"
 msgstr "语法错误"
 
-#: preproc.y:81
+#: preproc.y:79
 #, c-format
 msgid "WARNING: "
 msgstr "警告:"
 
-#: preproc.y:85
+#: preproc.y:82
 #, c-format
 msgid "ERROR: "
 msgstr "错误:"
 
-#: preproc.y:491
+#: preproc.y:506
 #, c-format
 msgid "cursor \"%s\" does not exist"
 msgstr "游标 \"%s\" 不存在"
 
-#: preproc.y:520
+#: preproc.y:535
 #, c-format
 msgid "initializer not allowed in type definition"
 msgstr "在类型定义中不允许进行初始化"
 
-#: preproc.y:522
+#: preproc.y:537
 #, c-format
 msgid "type name \"string\" is reserved in Informix mode"
 msgstr "在Informix模式中类型名称\"string\" 是被保留的"
 
-#: preproc.y:529 preproc.y:13277
+#: preproc.y:544 preproc.y:13867
 #, c-format
 msgid "type \"%s\" is already defined"
 msgstr "已定义类型\"%s\" "
 
-#: preproc.y:553 preproc.y:13930 preproc.y:14251 variable.c:614
+#: preproc.y:568 preproc.y:14525 preproc.y:14846 variable.c:618
 #, c-format
 msgid "multidimensional arrays for simple data types are not supported"
 msgstr "不支持针对简单数据类型的多维数组"
 
-#: preproc.y:1526
+#: preproc.y:1579
 #, c-format
 msgid "AT option not allowed in CLOSE DATABASE statement"
 msgstr "在CLOSE DATABASE语句中不允许使用AT选项"
 
-#: preproc.y:1723
+#: preproc.y:1782
 #, c-format
 msgid "AT option not allowed in CONNECT statement"
 msgstr "在CONNECT语句中不允许使用AT选项"
 
-#: preproc.y:1757
+#: preproc.y:1816
 #, c-format
 msgid "AT option not allowed in DISCONNECT statement"
 msgstr "在DISCONNECT语句中不允许使用AT选项"
 
-#: preproc.y:1812
+#: preproc.y:1871
 #, c-format
 msgid "AT option not allowed in SET CONNECTION statement"
 msgstr "在SET CONNECTION语句中不允许使用AT选项"
 
-#: preproc.y:1834
+#: preproc.y:1893
 #, c-format
 msgid "AT option not allowed in TYPE statement"
 msgstr "在TYPE语句中不允许使用AT选项"
 
-#: preproc.y:1843
+#: preproc.y:1902
 #, c-format
 msgid "AT option not allowed in VAR statement"
 msgstr "在VAR语句中不允许使用AT选项"
 
-#: preproc.y:1850
+#: preproc.y:1909
 #, c-format
 msgid "AT option not allowed in WHENEVER statement"
 msgstr "在WHENEVER语句中不允许使用AT选项"
 
-#: preproc.y:2204 preproc.y:3489 preproc.y:4658 preproc.y:4667 preproc.y:4952
-#: preproc.y:7343 preproc.y:7348 preproc.y:7353 preproc.y:9695 preproc.y:10242
+#: preproc.y:2157 preproc.y:2162 preproc.y:2278 preproc.y:3656 preproc.y:4908
+#: preproc.y:4917 preproc.y:5201 preproc.y:6604 preproc.y:7693 preproc.y:7698
+#: preproc.y:10156 preproc.y:10753
 #, c-format
 msgid "unsupported feature will be passed to server"
 msgstr "不支持的功能特性将会传递给服务器"
 
-#: preproc.y:2446
+#: preproc.y:2536
 #, c-format
 msgid "SHOW ALL is not implemented"
 msgstr "没有使用SHOW ALL"
 
-#: preproc.y:2889 preproc.y:2900
-#, c-format
-msgid "COPY TO STDIN is not possible"
-msgstr "不能进行COPY TO STDIN的操作"
-
-#: preproc.y:2891
-#, c-format
-msgid "COPY FROM STDOUT is not possible"
-msgstr "不能进行COPY FROM STDOUT的操作"
-
-#: preproc.y:2893
+#: preproc.y:3044
 #, c-format
 msgid "COPY FROM STDIN is not implemented"
 msgstr "不能进行COPY FROM STDIN的操作"
 
-#: preproc.y:8157 preproc.y:12866
+#: preproc.y:8534 preproc.y:13456
 #, c-format
 msgid "using variable \"%s\" in different declare statements is not supported"
 msgstr "不支持在不同的声明语句中使用变量\"%s\""
 
-#: preproc.y:8159 preproc.y:12868
+#: preproc.y:8536 preproc.y:13458
 #, c-format
 msgid "cursor \"%s\" is already defined"
 msgstr "已经定义了游标\"%s\""
 
-#: preproc.y:8577
+#: preproc.y:8954
 #, c-format
 msgid "no longer supported LIMIT #,# syntax passed to server"
 msgstr "不再支持将LIMIT #,#语法传递给服务器"
 
-#: preproc.y:8812
+#: preproc.y:9190 preproc.y:9197
 #, c-format
 msgid "subquery in FROM must have an alias"
 msgstr "FROM 中的子查询必须有一个别名"
 
-#: preproc.y:12596
+#: preproc.y:13186
 #, c-format
 msgid "CREATE TABLE AS cannot specify INTO"
 msgstr "在CREATE TABLE AS语句中不能指定INTO子句"
 
-#: preproc.y:12632
+#: preproc.y:13222
 #, c-format
 msgid "expected \"@\", found \"%s\""
 msgstr "期望 \"@\", 但是找到了\"%s\""
 
-#: preproc.y:12644
+#: preproc.y:13234
 #, c-format
 msgid ""
 "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are "
 "supported"
 msgstr "只支持协议\"tcp\"和 \"unix\"以及数据库类型 \"postgresql\""
 
-#: preproc.y:12647
+#: preproc.y:13237
 #, c-format
 msgid "expected \"://\", found \"%s\""
 msgstr "期望得到 \"://\",但是找到了\"%s\""
 
-#: preproc.y:12652
+#: preproc.y:13242
 #, c-format
 msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
 msgstr "Unix-域的sockets只能在\"localhost\"上运行,而不能在\"%s\"上运行"
 
-#: preproc.y:12678
+#: preproc.y:13268
 #, c-format
 msgid "expected \"postgresql\", found \"%s\""
 msgstr "期望\"postgresql\", 但是只找到了\"%s\""
 
-#: preproc.y:12681
+#: preproc.y:13271
 #, c-format
 msgid "invalid connection type: %s"
 msgstr "无效的连接类型: %s"
 
-#: preproc.y:12690
+#: preproc.y:13280
 #, c-format
 msgid "expected \"@\" or \"://\", found \"%s\""
 msgstr "期望\"@\"或\"://\",但是只找到了\"%s\""
 
-#: preproc.y:12765 preproc.y:12783
+#: preproc.y:13355 preproc.y:13373
 #, c-format
 msgid "invalid data type"
 msgstr "无效数据类型"
 
-#: preproc.y:12794 preproc.y:12811
+#: preproc.y:13384 preproc.y:13401
 #, c-format
 msgid "incomplete statement"
 msgstr "未结束的语句"
 
-#: preproc.y:12797 preproc.y:12814
+#: preproc.y:13387 preproc.y:13404
 #, c-format
 msgid "unrecognized token \"%s\""
 msgstr "无法识别的符号\"%s\""
 
-#: preproc.y:13088
+#: preproc.y:13678
 #, c-format
 msgid "only data types numeric and decimal have precision/scale argument"
 msgstr "只有数据类型numeric和decimal有精度/范围参数"
 
-#: preproc.y:13100
+#: preproc.y:13690
 #, c-format
 msgid "interval specification not allowed here"
 msgstr "在这里不允许使用间隔定义"
 
-#: preproc.y:13252 preproc.y:13304
+#: preproc.y:13842 preproc.y:13894
 #, c-format
 msgid "too many levels in nested structure/union definition"
 msgstr "在嵌套结构/联合定义中存在太多的层次"
 
-#: preproc.y:13438
+#: preproc.y:14033
 #, c-format
 msgid "pointers to varchar are not implemented"
 msgstr "没有实现指向varchar类型值的指针"
 
-#: preproc.y:13625 preproc.y:13650
+#: preproc.y:14220 preproc.y:14245
 #, c-format
 msgid "using unsupported DESCRIBE statement"
 msgstr "使用不支持的DESCRIBE语句"
 
-#: preproc.y:13897
+#: preproc.y:14492
 #, c-format
 msgid "initializer not allowed in EXEC SQL VAR command"
 msgstr "在EXEC SQL VAR命令中不允许初始化"
 
-#: preproc.y:14209
+#: preproc.y:14804
 #, c-format
 msgid "arrays of indicators are not allowed on input"
 msgstr "在输入上不允许使用标识数组"
 
+#: preproc.y:15025
+#, c-format
+#| msgid "initializer not allowed in type definition"
+msgid "operator not allowed in variable definition"
+msgstr "操作符不允许出现在变量定义当中"
+
 #. translator: %s is typically the translation of "syntax error"
-#: preproc.y:14463
+#: preproc.y:15063
 #, c-format
 msgid "%s at or near \"%s\""
 msgstr "%s 在 \"%s\" 或附近的"
@@ -542,7 +551,7 @@ msgstr "%s 在 \"%s\" 或附近的"
 msgid "out of memory"
 msgstr "内存用尽"
 
-#: type.c:212 type.c:590
+#: type.c:212 type.c:664
 #, c-format
 msgid "unrecognized variable type code %d"
 msgstr "无法识别的变量类型代码%d"
@@ -578,17 +587,17 @@ msgstr "对于数组/指针的记号必须是array/pointer"
 msgid "nested arrays are not supported (except strings)"
 msgstr "不支持嵌套数组(除了字符串外)"
 
-#: type.c:322
+#: type.c:331
 #, c-format
 msgid "indicator for struct has to be a struct"
 msgstr "结构的记号必须是struct"
 
-#: type.c:331 type.c:339 type.c:347
+#: type.c:351 type.c:372 type.c:392
 #, c-format
 msgid "indicator for simple data type has to be simple"
 msgstr "对简单数据类型的指标要简单 "
 
-#: type.c:649
+#: type.c:723
 #, c-format
 msgid "unrecognized descriptor item code %d"
 msgstr "无法识别的描述符成员代码 %d"
@@ -623,22 +632,22 @@ msgstr "变量\"%s\"不是一个数组"
 msgid "variable \"%s\" is not declared"
 msgstr "没有声明变量\"%s\""
 
-#: variable.c:488
+#: variable.c:492
 #, c-format
 msgid "indicator variable must have an integer type"
 msgstr "标记变量必须有一个整数类型"
 
-#: variable.c:500
+#: variable.c:504
 #, c-format
 msgid "unrecognized data type name \"%s\""
 msgstr "无法识别的数据类型名称 \"%s\""
 
-#: variable.c:511 variable.c:519 variable.c:536 variable.c:539
+#: variable.c:515 variable.c:523 variable.c:540 variable.c:543
 #, c-format
 msgid "multidimensional arrays are not supported"
 msgstr "不支持多维数组"
 
-#: variable.c:528
+#: variable.c:532
 #, c-format
 msgid ""
 "multilevel pointers (more than 2 levels) are not supported; found %d level"
@@ -646,24 +655,30 @@ msgid_plural ""
 "multilevel pointers (more than 2 levels) are not supported; found %d levels"
 msgstr[0] "不支持多级指针(超过2级);找到了%d级指针."
 
-#: variable.c:533
+#: variable.c:537
 #, c-format
 msgid "pointer to pointer is not supported for this data type"
 msgstr "对于这种数据类型不支持指向指针的指针"
 
-#: variable.c:553
+#: variable.c:557
 #, c-format
 msgid "multidimensional arrays for structures are not supported"
 msgstr "不支持结构类型的多维数组"
 
-#~ msgid "NEW used in query that is not in a rule"
-#~ msgstr "查询中使用的 NEW 不在一个规则中"
+#~ msgid "AT option not allowed in DEALLOCATE statement"
+#~ msgstr "在DEALLOCATE语句中不允许使用AT选项"
+
+#~ msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE"
+#~ msgstr "约束声明 INITIALLY DEFERRED 必须为 DEFERRABLE"
 
 #~ msgid "OLD used in query that is not in a rule"
 #~ msgstr "查询中使用的 OLD 不在一个规则中"
 
-#~ msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE"
-#~ msgstr "约束声明 INITIALLY DEFERRED 必须为 DEFERRABLE"
+#~ msgid "NEW used in query that is not in a rule"
+#~ msgstr "查询中使用的 NEW 不在一个规则中"
 
-#~ msgid "AT option not allowed in DEALLOCATE statement"
-#~ msgstr "在DEALLOCATE语句中不允许使用AT选项"
+#~ msgid "COPY FROM STDOUT is not possible"
+#~ msgstr "不能进行COPY FROM STDOUT的操作"
+
+#~ msgid "COPY TO STDIN is not possible"
+#~ msgstr "不能进行COPY TO STDIN的操作"
index 391431c30eab8eebe51110ef85bc9317065f2a91..3986eab28fed7528fa32c458de3c974f5a6c28bc 100644 (file)
@@ -6,8 +6,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: initdb (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2013-09-02 00:27+0000\n"
-"PO-Revision-Date: 2013-09-02 10:57+0800\n"
+"POT-Creation-Date: 2014-11-22 21:12+0000\n"
+"PO-Revision-Date: 2014-12-06 13:06+0800\n"
 "Last-Translator: Xiong He <iihero@qq.com>\n"
 "Language-Team: Chinese (Simplified)\n"
 "Language: zh_CN\n"
@@ -16,6 +16,43 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.5.4\n"
 
+#: ../../common/exec.c:127 ../../common/exec.c:241 ../../common/exec.c:284
+#, c-format
+msgid "could not identify current directory: %s"
+msgstr "无法确认当前目录: %s"
+
+# command.c:122
+#: ../../common/exec.c:146
+#, c-format
+msgid "invalid binary \"%s\""
+msgstr "无效的二进制码 \"%s\""
+
+# command.c:1103
+#: ../../common/exec.c:195
+#, c-format
+msgid "could not read binary \"%s\""
+msgstr "无法读取二进制码 \"%s\""
+
+#: ../../common/exec.c:202
+#, c-format
+msgid "could not find a \"%s\" to execute"
+msgstr "未能找到一个 \"%s\" 来执行"
+
+#: ../../common/exec.c:257 ../../common/exec.c:293
+#, c-format
+msgid "could not change directory to \"%s\": %s"
+msgstr "无法跳转到目录 \"%s\" 中: %s"
+
+#: ../../common/exec.c:272
+#, c-format
+msgid "could not read symbolic link \"%s\""
+msgstr "无法读取符号链结 \"%s\""
+
+#: ../../common/exec.c:523
+#, c-format
+msgid "pclose failed: %s"
+msgstr "pclose调用失败: %s"
+
 #: ../../common/fe_memutils.c:33 ../../common/fe_memutils.c:60
 #: ../../common/fe_memutils.c:83
 #, c-format
@@ -25,218 +62,203 @@ msgstr "内存溢出\n"
 # common.c:78
 #: ../../common/fe_memutils.c:77
 #, c-format
-#| msgid "pg_strdup: cannot duplicate null pointer (internal error)\n"
 msgid "cannot duplicate null pointer (internal error)\n"
 msgstr "无法复制空指针 (内部错误)\n"
 
-#: ../../port/dirmod.c:220
-#, c-format
-msgid "could not set junction for \"%s\": %s\n"
-msgstr "无法为 \"%s\"设置连接: %s\n"
-
-#: ../../port/dirmod.c:295
-#, c-format
-msgid "could not get junction for \"%s\": %s\n"
-msgstr "无法为\"%s\"得到连接: %s\n"
-
-#: ../../port/dirmod.c:377
+#: ../../common/pgfnames.c:45
 #, c-format
 msgid "could not open directory \"%s\": %s\n"
 msgstr "无法打开目录 \"%s\": %s\n"
 
-#: ../../port/dirmod.c:414
+#: ../../common/pgfnames.c:72
 #, c-format
 msgid "could not read directory \"%s\": %s\n"
 msgstr "无法读取目录 \"%s\": %s\n"
 
-#: ../../port/dirmod.c:497
+#: ../../common/pgfnames.c:84
+#, c-format
+#| msgid "could not open directory \"%s\": %s\n"
+msgid "could not close directory \"%s\": %s\n"
+msgstr "无法关闭目录 \"%s\": %s\n"
+
+#: ../../common/rmtree.c:77
 #, c-format
 msgid "could not stat file or directory \"%s\": %s\n"
 msgstr "无法获取文件或目录 \"%s\"的状态: %s\n"
 
-#: ../../port/dirmod.c:524 ../../port/dirmod.c:541
+#: ../../common/rmtree.c:104 ../../common/rmtree.c:121
 #, c-format
 msgid "could not remove file or directory \"%s\": %s\n"
 msgstr "无法删除文件或目录 \"%s\": %s\n"
 
-#: ../../port/exec.c:127 ../../port/exec.c:241 ../../port/exec.c:284
-#, c-format
-msgid "could not identify current directory: %s"
-msgstr "无法确认当前目录: %s"
-
-# command.c:122
-#: ../../port/exec.c:146
+#: ../../common/username.c:45
 #, c-format
-msgid "invalid binary \"%s\""
-msgstr "无效的二进制码 \"%s\""
+#| msgid "could not load private key file \"%s\": %s"
+msgid "could not look up effective user ID %ld: %s"
+msgstr "无法找到有效的用户ID %ld: %s"
 
-# command.c:1103
-#: ../../port/exec.c:195
-#, c-format
-msgid "could not read binary \"%s\""
-msgstr "无法读取二进制码 \"%s\""
-
-#: ../../port/exec.c:202
-#, c-format
-msgid "could not find a \"%s\" to execute"
-msgstr "未能找到一个 \"%s\" 来执行"
-
-#: ../../port/exec.c:257 ../../port/exec.c:293
-#, c-format
-#| msgid "could not change directory to \"%s\": %m"
-msgid "could not change directory to \"%s\": %s"
-msgstr "无法跳转到目录 \"%s\" 中: %s"
-
-#: ../../port/exec.c:272
-#, c-format
-msgid "could not read symbolic link \"%s\""
-msgstr "无法读取符号链结 \"%s\""
+#: ../../common/username.c:47
+#| msgid "server \"%s\" does not exist"
+msgid "user does not exist"
+msgstr "用户不存在"
 
-#: ../../port/exec.c:523
+#: ../../common/username.c:61
 #, c-format
-#| msgid "query failed: %s"
-msgid "pclose failed: %s"
-msgstr "pclose调用失败: %s"
+msgid "user name lookup failure: %s"
+msgstr "用户名查找失败: %s"
 
-#: ../../port/wait_error.c:47
+#: ../../common/wait_error.c:47
 #, c-format
-#| msgid "could not execute plan"
 msgid "command not executable"
 msgstr "命令无法执行"
 
-#: ../../port/wait_error.c:51
+#: ../../common/wait_error.c:51
 #, c-format
-#| msgid "case not found"
 msgid "command not found"
 msgstr "命令没有找到"
 
-#: ../../port/wait_error.c:56
+#: ../../common/wait_error.c:56
 #, c-format
 msgid "child process exited with exit code %d"
 msgstr "子进程已退出, 退出码为 %d"
 
-#: ../../port/wait_error.c:63
+#: ../../common/wait_error.c:63
 #, c-format
 msgid "child process was terminated by exception 0x%X"
 msgstr "子进程被例外(exception) 0x%X 终止"
 
-#: ../../port/wait_error.c:73
+#: ../../common/wait_error.c:73
 #, c-format
 msgid "child process was terminated by signal %s"
 msgstr "子进程被信号 %s 终止"
 
-#: ../../port/wait_error.c:77
+#: ../../common/wait_error.c:77
 #, c-format
 msgid "child process was terminated by signal %d"
 msgstr "子进程被信号 %d 终止"
 
-#: ../../port/wait_error.c:82
+#: ../../common/wait_error.c:82
 #, c-format
 msgid "child process exited with unrecognized status %d"
 msgstr "子进程已退出, 未知状态 %d"
 
-#: initdb.c:327
+#: ../../port/dirmod.c:219
+#, c-format
+msgid "could not set junction for \"%s\": %s\n"
+msgstr "无法为 \"%s\"设置连接: %s\n"
+
+#: ../../port/dirmod.c:294
+#, c-format
+msgid "could not get junction for \"%s\": %s\n"
+msgstr "无法为\"%s\"得到连接: %s\n"
+
+#: initdb.c:337
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: 内存溢出\n"
 
-#: initdb.c:437 initdb.c:1543
+#: initdb.c:447 initdb.c:1653
 #, c-format
 msgid "%s: could not open file \"%s\" for reading: %s\n"
 msgstr "%s: 为了读取, 无法打开文件 \"%s\": %s\n"
 
-#: initdb.c:493 initdb.c:1036 initdb.c:1065
+#: initdb.c:503 initdb.c:1055 initdb.c:1083
 #, c-format
 msgid "%s: could not open file \"%s\" for writing: %s\n"
 msgstr "%s: 为了写, 无法打开文件 \"%s\": %s\n"
 
-#: initdb.c:501 initdb.c:509 initdb.c:1043 initdb.c:1071
+#: initdb.c:511 initdb.c:519 initdb.c:1062 initdb.c:1089
 #, c-format
 msgid "%s: could not write file \"%s\": %s\n"
 msgstr "%s: 无法写文件 \"%s\": %s\n"
 
-#: initdb.c:531
+#: initdb.c:541 initdb.c:608
 #, c-format
 msgid "%s: could not open directory \"%s\": %s\n"
 msgstr "%s: 无法打开目录 \"%s\": %s\n"
 
-#: initdb.c:548
+#: initdb.c:558
 #, c-format
 msgid "%s: could not stat file \"%s\": %s\n"
 msgstr "%s: 无法统计文件: \"%s\": %s\n"
 
-#: initdb.c:571
+#: initdb.c:571 initdb.c:628
 #, c-format
-#| msgid "%s: could not create directory \"%s\": %s\n"
 msgid "%s: could not read directory \"%s\": %s\n"
 msgstr "%s: 无法读取目录 \"%s\": %s\n"
 
-#: initdb.c:608 initdb.c:660
+#: initdb.c:578 initdb.c:635
+#, c-format
+#| msgid "%s: could not open directory \"%s\": %s\n"
+msgid "%s: could not close directory \"%s\": %s\n"
+msgstr "%s: 无法关闭目录 \"%s\": %s\n"
+
+#: initdb.c:662 initdb.c:714
 #, c-format
 msgid "%s: could not open file \"%s\": %s\n"
 msgstr "%s: 无法打开文件 \"%s\": %s\n"
 
-#: initdb.c:676
+#: initdb.c:730
 #, c-format
 msgid "%s: could not fsync file \"%s\": %s\n"
 msgstr "%s: 无法对文件 \"%s\"进行fsync同步: %s\n"
 
-#: initdb.c:697
+#: initdb.c:751
 #, c-format
 msgid "%s: could not execute command \"%s\": %s\n"
 msgstr "%s: 无法执行命令 \"%s\": %s\n"
 
-#: initdb.c:713
+#: initdb.c:767
 #, c-format
 msgid "%s: removing data directory \"%s\"\n"
 msgstr "%s: 删除数据目录 \"%s\"\n"
 
-#: initdb.c:716
+#: initdb.c:770
 #, c-format
 msgid "%s: failed to remove data directory\n"
 msgstr "%s: 删除数据目录失败\n"
 
-#: initdb.c:722
+#: initdb.c:776
 #, c-format
 msgid "%s: removing contents of data directory \"%s\"\n"
 msgstr "%s: 删除数据目录 \"%s\" 的内容\n"
 
-#: initdb.c:725
+#: initdb.c:779
 #, c-format
 msgid "%s: failed to remove contents of data directory\n"
 msgstr "%s: 删除数据目录内容失败\n"
 
-#: initdb.c:731
+#: initdb.c:785
 #, c-format
 msgid "%s: removing transaction log directory \"%s\"\n"
 msgstr "%s: 正在删除事务日志文件目录 \"%s\"\n"
 
-#: initdb.c:734
+#: initdb.c:788
 #, c-format
 msgid "%s: failed to remove transaction log directory\n"
 msgstr "%s: 删除数据目录失败\n"
 
-#: initdb.c:740
+#: initdb.c:794
 #, c-format
 msgid "%s: removing contents of transaction log directory \"%s\"\n"
 msgstr "%s: 删除事务日志目录 \"%s\" 的内容\n"
 
-#: initdb.c:743
+#: initdb.c:797
 #, c-format
 msgid "%s: failed to remove contents of transaction log directory\n"
 msgstr "%s: 删除事务日志目录的内容失败\n"
 
-#: initdb.c:752
+#: initdb.c:806
 #, c-format
 msgid "%s: data directory \"%s\" not removed at user's request\n"
 msgstr "%s: 在用户的要求下数据库目录 \"%s\" 不被删除\n"
 
-#: initdb.c:757
+#: initdb.c:811
 #, c-format
 msgid "%s: transaction log directory \"%s\" not removed at user's request\n"
 msgstr "%s: 在用户的要求下不删除事务日志目录 \"%s\"\n"
 
-#: initdb.c:779
+#: initdb.c:832
 #, c-format
 msgid ""
 "%s: cannot be run as root\n"
@@ -247,32 +269,22 @@ msgstr ""
 "请以服务器进程所有者的用户 (无特权) 身份\n"
 "登陆 (使用, e.g., \"su\").\n"
 
-#: initdb.c:791
-#, c-format
-msgid "%s: could not obtain information about current user: %s\n"
-msgstr "%s: 无法获得当前用户的信息: %s\n"
-
-#: initdb.c:808
-#, c-format
-msgid "%s: could not get current user name: %s\n"
-msgstr "%s: 无法获取当前用户名称: %s\n"
-
-#: initdb.c:839
+#: initdb.c:868
 #, c-format
 msgid "%s: \"%s\" is not a valid server encoding name\n"
 msgstr "%s: \"%s\" 不是一个有效的服务器编码名字\n"
 
-#: initdb.c:956 initdb.c:3246
+#: initdb.c:982 initdb.c:3382
 #, c-format
 msgid "%s: could not create directory \"%s\": %s\n"
 msgstr "%s: 无法创建目录 \"%s\": %s\n"
 
-#: initdb.c:986
+#: initdb.c:1011
 #, c-format
 msgid "%s: file \"%s\" does not exist\n"
 msgstr "%s: 文件 \"%s\" 不存在\n"
 
-#: initdb.c:988 initdb.c:997 initdb.c:1007
+#: initdb.c:1013 initdb.c:1022 initdb.c:1032
 #, c-format
 msgid ""
 "This might mean you have a corrupted installation or identified\n"
@@ -281,36 +293,47 @@ msgstr ""
 "这意味着您的安装发生了错误或\n"
 "使用 -L 选项指定了错误的路径.\n"
 
-#: initdb.c:994
+#: initdb.c:1019
 #, c-format
 msgid "%s: could not access file \"%s\": %s\n"
 msgstr "%s: 无法访问文件 \"%s\": %s\n"
 
-#: initdb.c:1005
+#: initdb.c:1030
 #, c-format
 msgid "%s: file \"%s\" is not a regular file\n"
 msgstr "%s: 文件 \"%s\" 不是常规文件\n"
 
-#: initdb.c:1113
+#: initdb.c:1175
 #, c-format
 msgid "selecting default max_connections ... "
 msgstr "选择默认最大联接数 (max_connections) ... "
 
-#: initdb.c:1142
+#: initdb.c:1205
 #, c-format
 msgid "selecting default shared_buffers ... "
 msgstr "选择默认共享缓冲区大小 (shared_buffers) ... "
 
-#: initdb.c:1186
+#: initdb.c:1238
+#, c-format
+msgid "selecting dynamic shared memory implementation ... "
+msgstr "选择动态共享内存实现 ......"
+
+#: initdb.c:1256
 msgid "creating configuration files ... "
 msgstr "创建配置文件 ... "
 
-#: initdb.c:1381
+#: initdb.c:1347 initdb.c:1367 initdb.c:1451 initdb.c:1467
+#, c-format
+#| msgid "%s: could not change permissions of directory \"%s\": %s\n"
+msgid "%s: could not change permissions of \"%s\": %s\n"
+msgstr "%s: 无法改变\"%s\"的权限:%s\n"
+
+#: initdb.c:1491
 #, c-format
 msgid "creating template1 database in %s/base/1 ... "
 msgstr "在 %s/base/1 中创建 template1 数据库 ... "
 
-#: initdb.c:1397
+#: initdb.c:1507
 #, c-format
 msgid ""
 "%s: input file \"%s\" does not belong to PostgreSQL %s\n"
@@ -319,142 +342,154 @@ msgstr ""
 "%s: 输入文件 \"%s\" 不属于 PostgreSQL %s\n"
 "检查你的安装或使用 -L 选项指定正确的路径.\n"
 
-#: initdb.c:1484
+#: initdb.c:1594
 msgid "initializing pg_authid ... "
 msgstr "初始化 pg_authid ...  "
 
-#: initdb.c:1518
+#: initdb.c:1628
 msgid "Enter new superuser password: "
 msgstr "输入新的超级用户口令: "
 
-#: initdb.c:1519
+#: initdb.c:1629
 msgid "Enter it again: "
 msgstr "再输入一遍: "
 
-#: initdb.c:1522
+#: initdb.c:1632
 #, c-format
 msgid "Passwords didn't match.\n"
 msgstr "口令不匹配.\n"
 
-#: initdb.c:1549
+#: initdb.c:1659
 #, c-format
 msgid "%s: could not read password from file \"%s\": %s\n"
 msgstr "%s: 无法从文件 \"%s\" 读取口令: %s\n"
 
-#: initdb.c:1562
+#: initdb.c:1672
 #, c-format
 msgid "setting password ... "
 msgstr "设置口令 ... "
 
-#: initdb.c:1662
+#: initdb.c:1772
 msgid "initializing dependencies ... "
 msgstr "初始化dependencies ... "
 
-#: initdb.c:1690
+#: initdb.c:1800
 msgid "creating system views ... "
 msgstr "创建系统视图 ... "
 
-#: initdb.c:1726
+#: initdb.c:1836
 msgid "loading system objects' descriptions ... "
 msgstr "正在加载系统对象描述 ..."
 
-#: initdb.c:1832
+#: initdb.c:1942
 msgid "creating collations ... "
 msgstr "创建(字符集)校对规则 ... "
 
-#: initdb.c:1865
+#: initdb.c:1975
 #, c-format
 msgid "%s: locale name too long, skipped: \"%s\"\n"
 msgstr "%s: 本地化名称太长, 跳过: \"%s\"\n"
 
-#: initdb.c:1890
+#: initdb.c:2000
 #, c-format
 msgid "%s: locale name has non-ASCII characters, skipped: \"%s\"\n"
 msgstr "%s: 本地化名称带有非ASCII字符, 跳过: \"%s\"\n"
 
 # describe.c:1542
-#: initdb.c:1953
+#: initdb.c:2069
 #, c-format
 msgid "No usable system locales were found.\n"
 msgstr "没有找到可用的系统本地化名称.\n"
 
-#: initdb.c:1954
+#: initdb.c:2070
 #, c-format
 msgid "Use the option \"--debug\" to see details.\n"
 msgstr "使用选项 \"--debug\" 获取细节.\n"
 
-#: initdb.c:1957
+#: initdb.c:2073
 #, c-format
 msgid "not supported on this platform\n"
 msgstr "在此平台上不支持\n"
 
-#: initdb.c:1972
+#: initdb.c:2088
 msgid "creating conversions ... "
 msgstr "创建字符集转换 ... "
 
-#: initdb.c:2007
+#: initdb.c:2123
 msgid "creating dictionaries ... "
 msgstr "正在创建字典 ... "
 
-#: initdb.c:2061
+#: initdb.c:2177
 msgid "setting privileges on built-in objects ... "
 msgstr "对内建对象设置权限 ... "
 
-#: initdb.c:2119
+#: initdb.c:2235
 msgid "creating information schema ... "
 msgstr "创建信息模式 ... "
 
-#: initdb.c:2175
+#: initdb.c:2291
 msgid "loading PL/pgSQL server-side language ... "
 msgstr "正在装载PL/pgSQL服务器端编程语言..."
 
-#: initdb.c:2200
+#: initdb.c:2316
 msgid "vacuuming database template1 ... "
 msgstr "清理数据库 template1 ... "
 
-#: initdb.c:2256
+#: initdb.c:2372
 msgid "copying template1 to template0 ... "
 msgstr "拷贝 template1 到 template0 ... "
 
-#: initdb.c:2288
+#: initdb.c:2404
 msgid "copying template1 to postgres ... "
 msgstr "拷贝 template1 到 template0 ... "
 
-#: initdb.c:2314
+#: initdb.c:2431
 msgid "syncing data to disk ... "
 msgstr "同步数据到磁盘..."
 
-#: initdb.c:2386
+#: initdb.c:2510
 #, c-format
 msgid "caught signal\n"
 msgstr "捕获信号\n"
 
-#: initdb.c:2392
+#: initdb.c:2516
 #, c-format
 msgid "could not write to child process: %s\n"
 msgstr "无法写到子进程: %s\n"
 
-#: initdb.c:2400
+#: initdb.c:2524
 #, c-format
 msgid "ok\n"
 msgstr "成功\n"
 
-#: initdb.c:2503
+#: initdb.c:2614
+#, c-format
+#| msgid "%s: select() failed: %s\n"
+msgid "%s: setlocale() failed\n"
+msgstr "%s:setlocale()调用失败\n"
+
+#: initdb.c:2632
 #, c-format
 msgid "%s: failed to restore old locale \"%s\"\n"
 msgstr "%s: 无法恢复旧的本地化文件 \"%s\"\n"
 
-#: initdb.c:2509
+#: initdb.c:2642
 #, c-format
 msgid "%s: invalid locale name \"%s\"\n"
 msgstr "%s: 无效的 locale 名字 \"%s\"\n"
 
-#: initdb.c:2536
+#: initdb.c:2654
+#, c-format
+msgid ""
+"%s: invalid locale settings; check LANG and LC_* environment variables\n"
+msgstr "%s:无效的本地化设置; 请检查环境变量LANG和LC_*的值\n"
+
+#: initdb.c:2682
 #, c-format
 msgid "%s: encoding mismatch\n"
 msgstr "%s: 警告: 编码不匹配\n"
 
-#: initdb.c:2538
+#: initdb.c:2684
 #, c-format
 msgid ""
 "The encoding you selected (%s) and the encoding that the\n"
@@ -469,32 +504,32 @@ msgstr ""
 "组合类型.\n"
 "\n"
 
-#: initdb.c:2657
+#: initdb.c:2789
 #, c-format
 msgid "%s: WARNING: cannot create restricted tokens on this platform\n"
 msgstr "%s: WARNING: 无法为该平台创建受限制的令牌\n"
 
-#: initdb.c:2666
+#: initdb.c:2798
 #, c-format
 msgid "%s: could not open process token: error code %lu\n"
 msgstr "%s:无法打开进程令牌 (token): 错误码 %lu\n"
 
-#: initdb.c:2679
+#: initdb.c:2811
 #, c-format
 msgid "%s: could not to allocate SIDs: error code %lu\n"
 msgstr "%s: 无法分配SID: 错误码为 %lu\n"
 
-#: initdb.c:2698
+#: initdb.c:2830
 #, c-format
 msgid "%s: could not create restricted token: error code %lu\n"
 msgstr "%s: 无法创建受限令牌: 错误码为 %lu\n"
 
-#: initdb.c:2719
+#: initdb.c:2851
 #, c-format
 msgid "%s: could not start process for command \"%s\": error code %lu\n"
 msgstr "%s: 无法为命令 \"%s\"创建进程: 错误码 %lu\n"
 
-#: initdb.c:2733
+#: initdb.c:2865
 #, c-format
 msgid ""
 "%s initializes a PostgreSQL database cluster.\n"
@@ -503,17 +538,17 @@ msgstr ""
 "%s 初始化一个 PostgreSQL 数据库簇.\n"
 "\n"
 
-#: initdb.c:2734
+#: initdb.c:2866
 #, c-format
 msgid "Usage:\n"
 msgstr "使用方法:\n"
 
-#: initdb.c:2735
+#: initdb.c:2867
 #, c-format
 msgid "  %s [OPTION]... [DATADIR]\n"
 msgstr "  %s [选项]... [DATADIR]\n"
 
-#: initdb.c:2736
+#: initdb.c:2868
 #, c-format
 msgid ""
 "\n"
@@ -522,43 +557,43 @@ msgstr ""
 "\n"
 "选项:\n"
 
-#: initdb.c:2737
+#: initdb.c:2869
 #, c-format
 msgid ""
 "  -A, --auth=METHOD         default authentication method for local "
 "connections\n"
 msgstr "  -A, --auth=METHOD         本地连接的默认认证方法\n"
 
-#: initdb.c:2738
+#: initdb.c:2870
 #, c-format
 msgid ""
 "      --auth-host=METHOD    default authentication method for local TCP/IP "
 "connections\n"
 msgstr "      --auth-host=METHOD   本地的TCP/IP连接的默认认证方法\n"
 
-#: initdb.c:2739
+#: initdb.c:2871
 #, c-format
 msgid ""
 "      --auth-local=METHOD   default authentication method for local-socket "
 "connections\n"
 msgstr "      --auth-local=METHOD   本地socket连接的默认认证方法\n"
 
-#: initdb.c:2740
+#: initdb.c:2872
 #, c-format
 msgid " [-D, --pgdata=]DATADIR     location for this database cluster\n"
 msgstr "  -D, --pgdata=DATADIR      当前数据库簇的位置\n"
 
-#: initdb.c:2741
+#: initdb.c:2873
 #, c-format
 msgid "  -E, --encoding=ENCODING   set default encoding for new databases\n"
 msgstr "  -E, --encoding=ENCODING   为新数据库设置默认编码\n"
 
-#: initdb.c:2742
+#: initdb.c:2874
 #, c-format
 msgid "      --locale=LOCALE       set default locale for new databases\n"
 msgstr "      --locale=LOCALE      为新数据库设置默认语言环境\n"
 
-#: initdb.c:2743
+#: initdb.c:2875
 #, c-format
 msgid ""
 "      --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n"
@@ -573,18 +608,18 @@ msgstr ""
 "                   设定缺省语言环境(默认使用环境变\n"
 "                   量)\n"
 
-#: initdb.c:2747
+#: initdb.c:2879
 #, c-format
 msgid "      --no-locale           equivalent to --locale=C\n"
 msgstr "  --no-locale               等同于 --locale=C\n"
 
-#: initdb.c:2748
+#: initdb.c:2880
 #, c-format
 msgid ""
 "      --pwfile=FILE         read password for the new superuser from file\n"
 msgstr "  --pwfile=文件名           对于新的超级用户从文件读取口令\n"
 
-#: initdb.c:2749
+#: initdb.c:2881
 #, c-format
 msgid ""
 "  -T, --text-search-config=CFG\n"
@@ -593,24 +628,24 @@ msgstr ""
 "  -T, --text-search-config=CFG\n"
 "                   缺省的文本搜索配置\n"
 
-#: initdb.c:2751
+#: initdb.c:2883
 #, c-format
 msgid "  -U, --username=NAME       database superuser name\n"
 msgstr "  -U, --username=NAME       数据库超级用户名\n"
 
-#: initdb.c:2752
+#: initdb.c:2884
 #, c-format
 msgid ""
 "  -W, --pwprompt            prompt for a password for the new superuser\n"
 msgstr "  -W, --pwprompt            对于新的超级用户提示输入口令\n"
 
-#: initdb.c:2753
+#: initdb.c:2885
 #, c-format
 msgid ""
 "  -X, --xlogdir=XLOGDIR     location for the transaction log directory\n"
 msgstr "  -X, --xlogdir=XLOGDIR          当前事务日志目录的位置\n"
 
-#: initdb.c:2754
+#: initdb.c:2886
 #, c-format
 msgid ""
 "\n"
@@ -619,46 +654,44 @@ msgstr ""
 "\n"
 "非普通使用选项:\n"
 
-#: initdb.c:2755
+#: initdb.c:2887
 #, c-format
 msgid "  -d, --debug               generate lots of debugging output\n"
 msgstr "  -d, --debug               产生大量的除错信息\n"
 
-#: initdb.c:2756
+#: initdb.c:2888
 #, c-format
 msgid "  -k, --data-checksums      use data page checksums\n"
 msgstr " -k, --data-checksums    使用数据页产生效验和\n"
 
-#: initdb.c:2757
+#: initdb.c:2889
 #, c-format
 msgid "  -L DIRECTORY              where to find the input files\n"
 msgstr "  -L DIRECTORY              输入文件的位置\n"
 
-#: initdb.c:2758
+#: initdb.c:2890
 #, c-format
 msgid "  -n, --noclean             do not clean up after errors\n"
 msgstr "  -n, --noclean             出错后不清理\n"
 
-#: initdb.c:2759
+#: initdb.c:2891
 #, c-format
-#| msgid "  -n, --noclean             do not clean up after errors\n"
 msgid ""
 "  -N, --nosync              do not wait for changes to be written safely to "
 "disk\n"
-msgstr "  -n, --nosync             不用等待变化安全写入磁盘\n"
+msgstr "  -N, --nosync             不用等待变化安全写入磁盘\n"
 
-#: initdb.c:2760
+#: initdb.c:2892
 #, c-format
 msgid "  -s, --show                show internal settings\n"
 msgstr "  -s, --show                显示内部设置\n"
 
-#: initdb.c:2761
+#: initdb.c:2893
 #, c-format
-#| msgid "  -s, --schema-only            dump only the schema, no data\n"
 msgid "  -S, --sync-only           only sync data directory\n"
 msgstr "  -S, --sync-only          只同步数据目录\n"
 
-#: initdb.c:2762
+#: initdb.c:2894
 #, c-format
 msgid ""
 "\n"
@@ -667,17 +700,17 @@ msgstr ""
 "\n"
 "其它选项:\n"
 
-#: initdb.c:2763
+#: initdb.c:2895
 #, c-format
 msgid "  -V, --version             output version information, then exit\n"
 msgstr "  -V, --version             输出版本信息, 然后退出\n"
 
-#: initdb.c:2764
+#: initdb.c:2896
 #, c-format
 msgid "  -?, --help                show this help, then exit\n"
 msgstr "  -?, --help                显示此帮助, 然后退出\n"
 
-#: initdb.c:2765
+#: initdb.c:2897
 #, c-format
 msgid ""
 "\n"
@@ -687,7 +720,7 @@ msgstr ""
 "\n"
 "如果没有指定数据目录, 将使用环境变量 PGDATA\n"
 
-#: initdb.c:2767
+#: initdb.c:2899
 #, c-format
 msgid ""
 "\n"
@@ -696,7 +729,7 @@ msgstr ""
 "\n"
 "报告错误至 <pgql-bugs@postgresql.org>.\n"
 
-#: initdb.c:2775
+#: initdb.c:2907
 msgid ""
 "\n"
 "WARNING: enabling \"trust\" authentication for local connections\n"
@@ -708,28 +741,28 @@ msgstr ""
 "你可以通过编辑 pg_hba.conf 更改或你下次\n"
 "行 initdb 时使用 -A或者--auth-local和--auth-host选项.\n"
 
-#: initdb.c:2797
+#: initdb.c:2929
 #, c-format
 msgid "%s: invalid authentication method \"%s\" for \"%s\" connections\n"
 msgstr "%s: 无效认证方法 \"%s\" 用于 \"%s\" 连接\n"
 
-#: initdb.c:2811
+#: initdb.c:2943
 #, c-format
 msgid ""
 "%s: must specify a password for the superuser to enable %s authentication\n"
 msgstr "%s: 为了启动 %s 认证, 你需要为超级用户指定一个口令\n"
 
-#: initdb.c:2844
+#: initdb.c:2976
 #, c-format
 msgid "%s: could not re-execute with restricted token: error code %lu\n"
 msgstr "%s: 无法使用受限令牌再次执行: 错误码 %lu\n"
 
-#: initdb.c:2859
+#: initdb.c:2991
 #, c-format
 msgid "%s: could not get exit code from subprocess: error code %lu\n"
 msgstr "%s: 无法从子进程得到退出码: 错误码 %lu\n"
 
-#: initdb.c:2885
+#: initdb.c:3017
 #, c-format
 msgid ""
 "%s: no data directory specified\n"
@@ -742,7 +775,7 @@ msgstr ""
 "存在. 使用 -D 选项或者\n"
 "环境变量 PGDATA.\n"
 
-#: initdb.c:2924
+#: initdb.c:3055
 #, c-format
 msgid ""
 "The program \"postgres\" is needed by %s but was not found in the\n"
@@ -753,7 +786,7 @@ msgstr ""
 "\n"
 "检查您的安装.\n"
 
-#: initdb.c:2931
+#: initdb.c:3062
 #, c-format
 msgid ""
 "The program \"postgres\" was found by \"%s\"\n"
@@ -764,17 +797,17 @@ msgstr ""
 "\n"
 "检查您的安装.\n"
 
-#: initdb.c:2950
+#: initdb.c:3081
 #, c-format
 msgid "%s: input file location must be an absolute path\n"
 msgstr "%s: 输入文件位置必须为绝对路径\n"
 
-#: initdb.c:2969
+#: initdb.c:3100
 #, c-format
 msgid "The database cluster will be initialized with locale \"%s\".\n"
 msgstr "数据库簇将使用本地化语言 \"%s\"进行初始化.\n"
 
-#: initdb.c:2972
+#: initdb.c:3103
 #, c-format
 msgid ""
 "The database cluster will be initialized with locales\n"
@@ -793,22 +826,22 @@ msgstr ""
 "  NUMERIC:  %s\n"
 "  TIME:     %s\n"
 
-#: initdb.c:2996
+#: initdb.c:3127
 #, c-format
 msgid "%s: could not find suitable encoding for locale \"%s\"\n"
 msgstr "%s: 无法为locale(本地化语言)\"%s\"找到合适的编码\n"
 
-#: initdb.c:2998
+#: initdb.c:3129
 #, c-format
 msgid "Rerun %s with the -E option.\n"
 msgstr "带 -E 选项重新运行 %s.\n"
 
-#: initdb.c:2999 initdb.c:3561 initdb.c:3582
+#: initdb.c:3130 initdb.c:3706 initdb.c:3727
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
 
-#: initdb.c:3011
+#: initdb.c:3142
 #, c-format
 msgid ""
 "Encoding \"%s\" implied by locale is not allowed as a server-side encoding.\n"
@@ -817,12 +850,12 @@ msgstr ""
 "本地化隐含的编码 \"%s\" 不允许作为服务器端的编码.\n"
 "默认的数据库编码将采用 \"%s\" 作为代替.\n"
 
-#: initdb.c:3019
+#: initdb.c:3150
 #, c-format
 msgid "%s: locale \"%s\" requires unsupported encoding \"%s\"\n"
 msgstr "%s: 本地化语言环境 \"%s\"要求使用不支持的编码\"%s\"\n"
 
-#: initdb.c:3022
+#: initdb.c:3153
 #, c-format
 msgid ""
 "Encoding \"%s\" is not allowed as a server-side encoding.\n"
@@ -831,57 +864,57 @@ msgstr ""
 "不允许将编码\"%s\"作为服务器端编码.\n"
 "使用一个不同的本地化语言环境重新运行%s.\n"
 
-#: initdb.c:3031
+#: initdb.c:3162
 #, c-format
 msgid "The default database encoding has accordingly been set to \"%s\".\n"
 msgstr "默认的数据库编码已经相应的设置为 \"%s\".\n"
 
-#: initdb.c:3102
+#: initdb.c:3233
 #, c-format
 msgid ""
 "%s: could not find suitable text search configuration for locale \"%s\"\n"
 msgstr "%s: 无法为本地化语言环境\"%s\"找到合适的文本搜索配置\n"
 
-#: initdb.c:3113
+#: initdb.c:3244
 #, c-format
 msgid ""
 "%s: warning: suitable text search configuration for locale \"%s\" is "
 "unknown\n"
 msgstr "%s: 警告: 对于本地化语言环境\"%s\"合适的文本搜索配置未知\n"
 
-#: initdb.c:3118
+#: initdb.c:3249
 #, c-format
 msgid ""
 "%s: warning: specified text search configuration \"%s\" might not match "
 "locale \"%s\"\n"
 msgstr "%s: 警告: 所指定的文本搜索配置\"%s\"可能与本地语言环境\"%s\"不匹配\n"
 
-#: initdb.c:3123
+#: initdb.c:3254
 #, c-format
 msgid "The default text search configuration will be set to \"%s\".\n"
 msgstr "缺省的文本搜索配置将会被设置到\"%s\"\n"
 
-#: initdb.c:3162 initdb.c:3240
+#: initdb.c:3298 initdb.c:3376
 #, c-format
 msgid "creating directory %s ... "
 msgstr "创建目录 %s ... "
 
-#: initdb.c:3176 initdb.c:3258
+#: initdb.c:3312 initdb.c:3394
 #, c-format
 msgid "fixing permissions on existing directory %s ... "
 msgstr "修复已存在目录 %s 的权限 ... "
 
-#: initdb.c:3182 initdb.c:3264
+#: initdb.c:3318 initdb.c:3400
 #, c-format
 msgid "%s: could not change permissions of directory \"%s\": %s\n"
 msgstr "%s: 无法改变目录 \"%s\" 的权限: %s\n"
 
-#: initdb.c:3197 initdb.c:3279
+#: initdb.c:3333 initdb.c:3415
 #, c-format
 msgid "%s: directory \"%s\" exists but is not empty\n"
 msgstr "%s: 目录\"%s\"已存在,但不是空的\n"
 
-#: initdb.c:3203
+#: initdb.c:3339
 #, c-format
 msgid ""
 "If you want to create a new database system, either remove or empty\n"
@@ -892,47 +925,47 @@ msgstr ""
 "目录 \"%s\" 或者运行带参数的 %s\n"
 "而不是 \"%s\".\n"
 
-#: initdb.c:3211 initdb.c:3292
+#: initdb.c:3347 initdb.c:3428
 #, c-format
 msgid "%s: could not access directory \"%s\": %s\n"
 msgstr "%s: 无法访问目录 \"%s\": %s\n"
 
-#: initdb.c:3231
+#: initdb.c:3367
 #, c-format
 msgid "%s: transaction log directory location must be an absolute path\n"
 msgstr "%s: 事务日志目录的位置必须为绝对路径\n"
 
-#: initdb.c:3285
+#: initdb.c:3421
 #, c-format
 msgid ""
 "If you want to store the transaction log there, either\n"
 "remove or empty the directory \"%s\".\n"
 msgstr "如果您要存储事务日志,需要删除或者清空目录\"%s\".\n"
 
-#: initdb.c:3304
+#: initdb.c:3439
 #, c-format
 msgid "%s: could not create symbolic link \"%s\": %s\n"
 msgstr "%s: 无法创建符号链接 \"%s\": %s\n"
 
-#: initdb.c:3309
+#: initdb.c:3444
 #, c-format
 msgid "%s: symlinks are not supported on this platform"
 msgstr "%s: 在这个平台上不支持使用符号链接"
 
-#: initdb.c:3321
+#: initdb.c:3457
 #, c-format
 msgid ""
 "It contains a dot-prefixed/invisible file, perhaps due to it being a mount "
 "point.\n"
 msgstr "它包含一个不可见的带固定点的文件,可能因为它是一个装载点。\n"
 
-#: initdb.c:3324
+#: initdb.c:3460
 #, c-format
 msgid ""
 "It contains a lost+found directory, perhaps due to it being a mount point.\n"
 msgstr "它包含名为lost+found的目录,可能因为它是一个加载点.\n"
 
-#: initdb.c:3327
+#: initdb.c:3463
 #, c-format
 msgid ""
 "Using a mount point directly as the data directory is not recommended.\n"
@@ -941,32 +974,32 @@ msgstr ""
 "不推荐将加载点作为数据目录.\n"
 "通常在加载点下边创建一个子目录.\n"
 
-#: initdb.c:3346
+#: initdb.c:3482
 #, c-format
 msgid "creating subdirectories ... "
 msgstr "正在创建子目录 ... "
 
-#: initdb.c:3505
+#: initdb.c:3650
 #, c-format
 msgid "Running in debug mode.\n"
 msgstr "运行在除错模式中. \n"
 
-#: initdb.c:3509
+#: initdb.c:3654
 #, c-format
 msgid "Running in noclean mode.  Mistakes will not be cleaned up.\n"
 msgstr "运行在 noclean 模式中. 错误将不被清理.\n"
 
-#: initdb.c:3580
+#: initdb.c:3725
 #, c-format
 msgid "%s: too many command-line arguments (first is \"%s\")\n"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 
-#: initdb.c:3597
+#: initdb.c:3742
 #, c-format
 msgid "%s: password prompt and password file cannot be specified together\n"
 msgstr "%s: 口令提示和口令文件不能同时都指定\n"
 
-#: initdb.c:3619
+#: initdb.c:3764
 #, c-format
 msgid ""
 "The files belonging to this database system will be owned by user \"%s\".\n"
@@ -976,17 +1009,17 @@ msgstr ""
 "属于此数据库系统的文件宿主为用户 \"%s\".\n"
 "此用户也必须为服务器进程的宿主.\n"
 
-#: initdb.c:3635
+#: initdb.c:3780
 #, c-format
 msgid "Data page checksums are enabled.\n"
 msgstr "允许生成数据页校验和.\n"
 
-#: initdb.c:3637
+#: initdb.c:3782
 #, c-format
 msgid "Data page checksums are disabled.\n"
 msgstr "禁止为数据页生成校验和.\n"
 
-#: initdb.c:3646
+#: initdb.c:3791
 #, c-format
 msgid ""
 "\n"
@@ -997,7 +1030,7 @@ msgstr ""
 "跳过同步到磁盘操作.\n"
 "如果操作系统宕机,数据目录可能会毁坏.\n"
 
-#: initdb.c:3655
+#: initdb.c:3800
 #, c-format
 msgid ""
 "\n"
@@ -1016,26 +1049,32 @@ msgstr ""
 "    %s%s%s%spg_ctl -D %s%s%s -l logfile start\n"
 "\n"
 
-#~ msgid "%s: unrecognized authentication method \"%s\"\n"
-#~ msgstr "%s: 未知认证方法 \"%s\".\n"
+#~ msgid "could not change directory to \"%s\""
+#~ msgstr "无法进入目录 \"%s\""
 
-#~ msgid ""
-#~ "%s: The password file was not generated. Please report this problem.\n"
-#~ msgstr "%s: 口令文件没有生成. 请报告这个问题.\n"
+#~ msgid "creating directory %s/%s ... "
+#~ msgstr "创建目录 %s/%s ... "
 
-#~ msgid "%s: could not determine valid short version string\n"
-#~ msgstr "%s: 无法确定有效的短版本字符串\n"
+#~ msgid ""
+#~ "  --locale=LOCALE           initialize database cluster with given "
+#~ "locale\n"
+#~ msgstr "  --locale=LOCALE           初始化数据库簇的 locale\n"
 
 #~ msgid "enabling unlimited row size for system tables ... "
 #~ msgstr "启动不限制系统表行大小 ... "
 
+#~ msgid "%s: could not determine valid short version string\n"
+#~ msgstr "%s: 无法确定有效的短版本字符串\n"
+
 #~ msgid ""
-#~ "  --locale=LOCALE           initialize database cluster with given "
-#~ "locale\n"
-#~ msgstr "  --locale=LOCALE           初始化数据库簇的 locale\n"
+#~ "%s: The password file was not generated. Please report this problem.\n"
+#~ msgstr "%s: 口令文件没有生成. 请报告这个问题.\n"
 
-#~ msgid "creating directory %s/%s ... "
-#~ msgstr "创建目录 %s/%s ... "
+#~ msgid "%s: unrecognized authentication method \"%s\"\n"
+#~ msgstr "%s: 未知认证方法 \"%s\".\n"
 
-#~ msgid "could not change directory to \"%s\""
-#~ msgstr "无法进入目录 \"%s\""
+#~ msgid "%s: could not get current user name: %s\n"
+#~ msgstr "%s: 无法获取当前用户名称: %s\n"
+
+#~ msgid "%s: could not obtain information about current user: %s\n"
+#~ msgstr "%s: 无法获得当前用户的信息: %s\n"
index d33fbb132064992bfcc75b7ae6cbd4cd2cb35068..73250b9cd8bcc9c04de0ef4279d28eb98880f628 100644 (file)
@@ -5,8 +5,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libpq (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2013-09-02 00:16+0000\n"
-"PO-Revision-Date: 2013-09-02 11:06+0800\n"
+"POT-Creation-Date: 2014-12-06 04:38+0000\n"
+"PO-Revision-Date: 2014-12-06 13:07+0800\n"
 "Last-Translator: Xiong He <iihero@qq.com>\n"
 "Language-Team: Chinese (Simplified)\n"
 "Language: zh_CN\n"
@@ -15,114 +15,97 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.5.4\n"
 
-#: fe-auth.c:210 fe-auth.c:429 fe-auth.c:656
-msgid "host name must be specified\n"
-msgstr "必须指定主机名\n"
-
-# fe-auth.c:395
-#: fe-auth.c:240
-#, c-format
-msgid "could not set socket to blocking mode: %s\n"
-msgstr "无法将套接字设置为阻塞模式: %s\n"
-
-# fe-auth.c:412 fe-auth.c:416
-#: fe-auth.c:258 fe-auth.c:262
-#, c-format
-msgid "Kerberos 5 authentication rejected: %*s\n"
-msgstr "kerberos 5 认证被拒绝: %*s\n"
-
-# fe-auth.c:440
-#: fe-auth.c:288
-#, c-format
-#| msgid "could not restore non-blocking mode on socket: %s\n"
-msgid "could not restore nonblocking mode on socket: %s\n"
-msgstr "无法为套接字:%s恢复非阻塞模式\n"
-
-#: fe-auth.c:400
+#: fe-auth.c:148
 msgid "GSSAPI continuation error"
 msgstr "GSSAPI连续出现错误"
 
-#: fe-auth.c:436
+#: fe-auth.c:177 fe-auth.c:410
+msgid "host name must be specified\n"
+msgstr "必须指定主机名\n"
+
+#: fe-auth.c:184
 msgid "duplicate GSS authentication request\n"
 msgstr "重复的GSS认证请求\n"
 
-#: fe-auth.c:456
+# fe-connect.c:2427 fe-connect.c:2436 fe-connect.c:2933 fe-exec.c:1284
+# fe-lobj.c:536
+#: fe-auth.c:197 fe-auth.c:307 fe-auth.c:381 fe-auth.c:416 fe-auth.c:512
+#: fe-connect.c:701 fe-connect.c:882 fe-connect.c:1058 fe-connect.c:2063
+#: fe-connect.c:3454 fe-connect.c:3706 fe-connect.c:3825 fe-connect.c:4055
+#: fe-connect.c:4135 fe-connect.c:4230 fe-connect.c:4482 fe-connect.c:4510
+#: fe-connect.c:4582 fe-connect.c:4600 fe-connect.c:4616 fe-connect.c:4699
+#: fe-connect.c:5051 fe-connect.c:5201 fe-exec.c:3340 fe-exec.c:3505
+#: fe-lobj.c:896 fe-protocol2.c:1181 fe-protocol3.c:1544 fe-secure.c:792
+#: fe-secure.c:1201
+msgid "out of memory\n"
+msgstr "内存用尽\n"
+
+#: fe-auth.c:210
 msgid "GSSAPI name import error"
 msgstr "GSSAPI名称导入错误"
 
-#: fe-auth.c:542
+#: fe-auth.c:296
 msgid "SSPI continuation error"
 msgstr "SSPI连续出现错误"
 
-# fe-connect.c:2427 fe-connect.c:2436 fe-connect.c:2933 fe-exec.c:1284
-# fe-lobj.c:536
-#: fe-auth.c:553 fe-auth.c:627 fe-auth.c:662 fe-auth.c:758 fe-connect.c:2005
-#: fe-connect.c:3393 fe-connect.c:3611 fe-connect.c:4023 fe-connect.c:4118
-#: fe-connect.c:4383 fe-connect.c:4452 fe-connect.c:4469 fe-connect.c:4560
-#: fe-connect.c:4910 fe-connect.c:5060 fe-exec.c:3296 fe-exec.c:3461
-#: fe-lobj.c:896 fe-protocol2.c:1181 fe-protocol3.c:1544 fe-secure.c:790
-#: fe-secure.c:1190
-msgid "out of memory\n"
-msgstr "内存用尽\n"
-
-#: fe-auth.c:642
+#: fe-auth.c:396
 msgid "could not acquire SSPI credentials"
 msgstr "无法获得SSPI证书"
 
 # fe-auth.c:503
-#: fe-auth.c:733
+#: fe-auth.c:487
 msgid "SCM_CRED authentication method not supported\n"
 msgstr "不支持 SCM_CRED 认证方式\n"
 
 # fe-auth.c:595
-#: fe-auth.c:809
+#: fe-auth.c:563
 msgid "Kerberos 4 authentication not supported\n"
 msgstr "不支持 Kerberos 4 认证\n"
 
 # fe-auth.c:612
-#: fe-auth.c:825
+#: fe-auth.c:568
 msgid "Kerberos 5 authentication not supported\n"
 msgstr "不支持 Kerberos 5 认证\n"
 
 # fe-auth.c:595
-#: fe-auth.c:897
+#: fe-auth.c:639
 msgid "GSSAPI authentication not supported\n"
 msgstr "不支持GSSAPI认证\n"
 
 # fe-auth.c:595
-#: fe-auth.c:929
+#: fe-auth.c:671
 msgid "SSPI authentication not supported\n"
 msgstr "不支持SSPI认证\n"
 
 # fe-auth.c:595
-#: fe-auth.c:937
+#: fe-auth.c:679
 msgid "Crypt authentication not supported\n"
 msgstr "不支持Crypt认证\n"
 
 # fe-auth.c:640
-#: fe-auth.c:964
+#: fe-auth.c:706
 #, c-format
 msgid "authentication method %u not supported\n"
 msgstr "不支持 %u 认证方式\n"
 
-#: fe-connect.c:798
+#: fe-connect.c:824
 #, c-format
 msgid "invalid sslmode value: \"%s\"\n"
 msgstr "无效的 sslmode 值: \"%s\"\n"
 
-#: fe-connect.c:819
+#: fe-connect.c:845
 #, c-format
 msgid "sslmode value \"%s\" invalid when SSL support is not compiled in\n"
 msgstr "无效的 sslmode 值 \"%s\" 当没有把 SSL 支持编译进来时\n"
 
 # fe-connect.c:732
-#: fe-connect.c:1023
+#: fe-connect.c:1082
 #, c-format
 msgid "could not set socket to TCP no delay mode: %s\n"
 msgstr "无法将套接字设置为 TCP 无延迟模式: %s\n"
 
 # fe-connect.c:752
-#: fe-connect.c:1053
+#: fe-connect.c:1112
 #, c-format
 msgid ""
 "could not connect to server: %s\n"
@@ -134,7 +117,7 @@ msgstr ""
 "\t\"%s\"上准备接受联接?\n"
 
 # fe-connect.c:761
-#: fe-connect.c:1108
+#: fe-connect.c:1167
 #, c-format
 msgid ""
 "could not connect to server: %s\n"
@@ -146,7 +129,7 @@ msgstr ""
 "%s 上的 TCP/IP 联接?\n"
 
 # fe-connect.c:761
-#: fe-connect.c:1117
+#: fe-connect.c:1176
 #, c-format
 msgid ""
 "could not connect to server: %s\n"
@@ -157,277 +140,276 @@ msgstr ""
 "\t服务器是否在主机 \"%s\" 上运行并且准备接受在端口\n"
 "%s 上的 TCP/IP 联接?\n"
 
-#: fe-connect.c:1168
+#: fe-connect.c:1227
 #, c-format
 msgid "setsockopt(TCP_KEEPIDLE) failed: %s\n"
 msgstr "执行setsockopt(TCP_KEEPIDLE)失败: %s\n"
 
-#: fe-connect.c:1181
+#: fe-connect.c:1240
 #, c-format
 msgid "setsockopt(TCP_KEEPALIVE) failed: %s\n"
 msgstr "执行setsockopt(TCP_KEEPALIVE)失败: %s\n"
 
-#: fe-connect.c:1213
+#: fe-connect.c:1272
 #, c-format
 msgid "setsockopt(TCP_KEEPINTVL) failed: %s\n"
 msgstr "执行setsockopt(TCP_KEEPINTVL)失败: %s\n"
 
-#: fe-connect.c:1245
+#: fe-connect.c:1304
 #, c-format
 msgid "setsockopt(TCP_KEEPCNT) failed: %s\n"
 msgstr "执行setsockopt(TCP_KEEPCNT) 失败: %s\n"
 
-#: fe-connect.c:1293
+#: fe-connect.c:1352
 #, c-format
 msgid "WSAIoctl(SIO_KEEPALIVE_VALS) failed: %ui\n"
 msgstr "执行WSAIoctl(SIO_KEEPALIVE_VALS)失败:%u\n"
 
-#: fe-connect.c:1345
+#: fe-connect.c:1404
 #, c-format
 msgid "invalid port number: \"%s\"\n"
 msgstr "无效端口号: \"%s\"\n"
 
-#: fe-connect.c:1378
+#: fe-connect.c:1437
 #, c-format
 msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)\n"
 msgstr "Unix域的套接字路径\"%s\"超长(最大为%d字节)\n"
 
 # fe-misc.c:702
-#: fe-connect.c:1397
+#: fe-connect.c:1456
 #, c-format
 msgid "could not translate host name \"%s\" to address: %s\n"
 msgstr "无法解释主机名 \"%s\" 到地址: %s\n"
 
 # fe-misc.c:702
-#: fe-connect.c:1401
+#: fe-connect.c:1460
 #, c-format
 msgid "could not translate Unix-domain socket path \"%s\" to address: %s\n"
 msgstr "无法解释 Unix-domian 套接字路径 \"%s\" 到地址: %s\n"
 
 # fe-connect.c:1232
-#: fe-connect.c:1606
+#: fe-connect.c:1665
 msgid "invalid connection state, probably indicative of memory corruption\n"
 msgstr "无效的联接状态, 可能是存储器数据被破坏的标志\n"
 
 # fe-connect.c:891
-#: fe-connect.c:1647
+#: fe-connect.c:1705
 #, c-format
 msgid "could not create socket: %s\n"
 msgstr "无法创建套接字: %s\n"
 
 # fe-connect.c:708
-#: fe-connect.c:1669
+#: fe-connect.c:1727
 #, c-format
-#| msgid "could not set socket to non-blocking mode: %s\n"
 msgid "could not set socket to nonblocking mode: %s\n"
 msgstr "无法设置套接字为非阻塞模式: %s\n"
 
 # fe-auth.c:395
-#: fe-connect.c:1680
+#: fe-connect.c:1738
 #, c-format
 msgid "could not set socket to close-on-exec mode: %s\n"
 msgstr "无法将套接字设置为执行时关闭 (close-on-exec) 模式: %s\n"
 
-#: fe-connect.c:1699
+#: fe-connect.c:1757
 msgid "keepalives parameter must be an integer\n"
 msgstr "参数keepalives必须是一个整数\n"
 
-#: fe-connect.c:1712
+#: fe-connect.c:1770
 #, c-format
 msgid "setsockopt(SO_KEEPALIVE) failed: %s\n"
 msgstr "执行setsockopt(SO_KEEPALIVE) 失败: %s\n"
 
 # fe-connect.c:1263
-#: fe-connect.c:1849
+#: fe-connect.c:1907
 #, c-format
 msgid "could not get socket error status: %s\n"
 msgstr "无法获取套接字错误状态: %s\n"
 
 # fe-connect.c:1283
-#: fe-connect.c:1883
+#: fe-connect.c:1941
 #, c-format
 msgid "could not get client address from socket: %s\n"
 msgstr "无法从套接字获取客户端地址: %s\n"
 
-#: fe-connect.c:1924
+#: fe-connect.c:1982
 msgid "requirepeer parameter is not supported on this platform\n"
 msgstr "在此平台上不支持requirepeer参数\n"
 
-#: fe-connect.c:1927
+#: fe-connect.c:1985
 #, c-format
 msgid "could not get peer credentials: %s\n"
 msgstr "无法获得对等(peer)证书:%s\n"
 
-#: fe-connect.c:1937
+#: fe-connect.c:1995
 #, c-format
 msgid "local user with ID %d does not exist\n"
 msgstr "ID 为 %d 的本地用户不存在\n"
 
-#: fe-connect.c:1945
+#: fe-connect.c:2003
 #, c-format
 msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"\n"
 msgstr "期望对方用户指定值为 \"%s\",  但实际的对方用户名为 \"%s\"\n"
 
 # fe-connect.c:959
-#: fe-connect.c:1979
+#: fe-connect.c:2037
 #, c-format
 msgid "could not send SSL negotiation packet: %s\n"
 msgstr "无法发送 SSL 握手包: %s\n"
 
 # fe-connect.c:1322
-#: fe-connect.c:2018
+#: fe-connect.c:2076
 #, c-format
 msgid "could not send startup packet: %s\n"
 msgstr "无法发送启动包: %s\n"
 
 # fe-connect.c:1010
-#: fe-connect.c:2088
+#: fe-connect.c:2146
 msgid "server does not support SSL, but SSL was required\n"
 msgstr "服务器不支持 SSL, 但是要求使用 SSL\n"
 
 # fe-connect.c:1001
-#: fe-connect.c:2114
+#: fe-connect.c:2172
 #, c-format
 msgid "received invalid response to SSL negotiation: %c\n"
 msgstr "收到对 SSL 握手的无效响应: %c\n"
 
 # fe-connect.c:1378
-#: fe-connect.c:2189 fe-connect.c:2222
+#: fe-connect.c:2247 fe-connect.c:2280
 #, c-format
 msgid "expected authentication request from server, but received %c\n"
 msgstr "期待来自服务器的认证请求, 却收到 %c\n"
 
-#: fe-connect.c:2389
+#: fe-connect.c:2447
 #, c-format
 msgid "out of memory allocating GSSAPI buffer (%d)"
 msgstr "在分配GSSAPI缓冲区(%d)时内存用尽"
 
 # fe-connect.c:1490
-#: fe-connect.c:2474
+#: fe-connect.c:2532
 msgid "unexpected message from server during startup\n"
 msgstr "启动过程中收到来自服务器的非预期信息\n"
 
 # fe-connect.c:1549
-#: fe-connect.c:2568
+#: fe-connect.c:2626
 #, c-format
 msgid "invalid connection state %d, probably indicative of memory corruption\n"
 msgstr "无效的连接状态 %d, 这可能表示内存出现问题\n"
 
-#: fe-connect.c:3001 fe-connect.c:3061
+#: fe-connect.c:3060 fe-connect.c:3120
 #, c-format
 msgid "PGEventProc \"%s\" failed during PGEVT_CONNRESET event\n"
 msgstr "在PGEVT_CONNRESET事件触发期间执行PGEventProc \"%s\"错误\n"
 
-#: fe-connect.c:3406
+#: fe-connect.c:3467
 #, c-format
 msgid "invalid LDAP URL \"%s\": scheme must be ldap://\n"
 msgstr "无效LDAP URL\"%s\": 模式必须是ldap://\n"
 
-#: fe-connect.c:3421
+#: fe-connect.c:3482
 #, c-format
 msgid "invalid LDAP URL \"%s\": missing distinguished name\n"
 msgstr "无效LDAP URL \"%s\": 丢失可区分的名称\n"
 
-#: fe-connect.c:3432 fe-connect.c:3485
+#: fe-connect.c:3493 fe-connect.c:3546
 #, c-format
 msgid "invalid LDAP URL \"%s\": must have exactly one attribute\n"
 msgstr "无效LDAP URL \"%s\": 只能有一个属性\n"
 
-#: fe-connect.c:3442 fe-connect.c:3499
+#: fe-connect.c:3503 fe-connect.c:3560
 #, c-format
 msgid "invalid LDAP URL \"%s\": must have search scope (base/one/sub)\n"
 msgstr "无效LDAP URL \"%s\": 必须有搜索范围(base/one/sub)\n"
 
-#: fe-connect.c:3453
+#: fe-connect.c:3514
 #, c-format
 msgid "invalid LDAP URL \"%s\": no filter\n"
 msgstr "无效的 LDAP URL \"%s\": 没有过滤器\n"
 
-#: fe-connect.c:3474
+#: fe-connect.c:3535
 #, c-format
 msgid "invalid LDAP URL \"%s\": invalid port number\n"
 msgstr "无效LDAP URL \"%s\": 无效端口号\n"
 
-#: fe-connect.c:3508
+#: fe-connect.c:3569
 msgid "could not create LDAP structure\n"
-msgstr "无法创建LDAP结构: %s\n"
+msgstr "无法创建LDAP结构\n"
 
-#: fe-connect.c:3550
+#: fe-connect.c:3645
 #, c-format
 msgid "lookup on LDAP server failed: %s\n"
 msgstr "在LDAP服务器上的查找失败: %s\n"
 
-#: fe-connect.c:3561
+#: fe-connect.c:3656
 msgid "more than one entry found on LDAP lookup\n"
 msgstr "在LDAP搜索上找到多个入口\n"
 
-#: fe-connect.c:3562 fe-connect.c:3574
+#: fe-connect.c:3657 fe-connect.c:3669
 msgid "no entry found on LDAP lookup\n"
 msgstr "在LDAP查找上没有发现入口\n"
 
-#: fe-connect.c:3585 fe-connect.c:3598
+#: fe-connect.c:3680 fe-connect.c:3693
 msgid "attribute has no values on LDAP lookup\n"
 msgstr "在LDAP查找上的属性没有值\n"
 
 # fe-connect.c:2475
-#: fe-connect.c:3650 fe-connect.c:3669 fe-connect.c:4157
+#: fe-connect.c:3745 fe-connect.c:3764 fe-connect.c:4269
 #, c-format
 msgid "missing \"=\" after \"%s\" in connection info string\n"
 msgstr "在联接信息字串里的 \"%s\" 后面缺少 \"=\"\n"
 
 # fe-connect.c:2558
-#: fe-connect.c:3733 fe-connect.c:4337 fe-connect.c:5042
+#: fe-connect.c:3837 fe-connect.c:4450 fe-connect.c:5184
 #, c-format
 msgid "invalid connection option \"%s\"\n"
 msgstr "非法联接选项 \"%s\"\n"
 
 # fe-connect.c:2524
-#: fe-connect.c:3749 fe-connect.c:4206
+#: fe-connect.c:3853 fe-connect.c:4318
 msgid "unterminated quoted string in connection info string\n"
 msgstr "联接信息字串中未结束的引号字串\n"
 
-#: fe-connect.c:3788
+#: fe-connect.c:3893
 msgid "could not get home directory to locate service definition file"
 msgstr "无法进入home目录来定位服务定义文件"
 
-#: fe-connect.c:3821
+#: fe-connect.c:3926
 #, c-format
 msgid "definition of service \"%s\" not found\n"
 msgstr "错误:没有找到服务\"%s\"的定义\n"
 
-#: fe-connect.c:3844
+#: fe-connect.c:3949
 #, c-format
 msgid "service file \"%s\" not found\n"
 msgstr "错误:没有找到服务文件\"%s\"\n"
 
-#: fe-connect.c:3857
+#: fe-connect.c:3962
 #, c-format
 msgid "line %d too long in service file \"%s\"\n"
 msgstr "在服务文件\"%2$s\"中的第%1$d行的长度太长\n"
 
-#: fe-connect.c:3928 fe-connect.c:3955
+#: fe-connect.c:4033 fe-connect.c:4067
 #, c-format
 msgid "syntax error in service file \"%s\", line %d\n"
 msgstr "在服务文件\"%s\"的第%d行出现语法错误\n"
 
-#: fe-connect.c:4570
+#: fe-connect.c:4710
 #, c-format
 msgid "invalid URI propagated to internal parser routine: \"%s\"\n"
 msgstr "无效的URI传入内部解析器处理程序: \"%s\"\n"
 
-#: fe-connect.c:4640
+#: fe-connect.c:4780
 #, c-format
 msgid ""
 "end of string reached when looking for matching \"]\" in IPv6 host address "
 "in URI: \"%s\"\n"
 msgstr "在 URI: \"%s\"中的IPv6主机地址里查找匹配符\"]\"时遇到了字符串结束符\n"
 
-#: fe-connect.c:4647
+#: fe-connect.c:4787
 #, c-format
 msgid "IPv6 host address may not be empty in URI: \"%s\"\n"
 msgstr "URI:\"%s\"中的IPv6主机地址可能不为空\n"
 
-#: fe-connect.c:4662
+#: fe-connect.c:4802
 #, c-format
 msgid ""
 "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): "
@@ -435,162 +417,161 @@ msgid ""
 msgstr ""
 "非预期的字符\"%c\"出现在在位置%d, URI (expected \":\" or \"/\"):\"%s\"\n"
 
-#: fe-connect.c:4776
+#: fe-connect.c:4916
 #, c-format
 msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"\n"
 msgstr "遇到多余的键/值分隔符\"=\"在URI查询参数里: \"%s\"\n"
 
-#: fe-connect.c:4796
+#: fe-connect.c:4936
 #, c-format
 msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"\n"
 msgstr "缺少相应的键/值分隔符\"=\"在URI查询参数里: \"%s\"\n"
 
-#: fe-connect.c:4867
+#: fe-connect.c:5007
 #, c-format
 msgid "invalid URI query parameter: \"%s\"\n"
 msgstr "无效的URI查询参数: \"%s\"\n"
 
 # fe-connect.c:2558
-#: fe-connect.c:4937
+#: fe-connect.c:5079
 #, c-format
 msgid "invalid percent-encoded token: \"%s\"\n"
 msgstr "无效的百分号编码令牌: \"%s\"\n"
 
-#: fe-connect.c:4947
+#: fe-connect.c:5089
 #, c-format
 msgid "forbidden value %%00 in percent-encoded value: \"%s\"\n"
 msgstr "在百分值编码的值: \"%s\"里禁止使用 %%00\n"
 
 # fe-connect.c:2744
-#: fe-connect.c:5270
+#: fe-connect.c:5420
 msgid "connection pointer is NULL\n"
 msgstr "联接指针是 NULL\n"
 
-#: fe-connect.c:5547
+#: fe-connect.c:5706
 #, c-format
 msgid "WARNING: password file \"%s\" is not a plain file\n"
 msgstr "警告: 口令文件\"%s\"不是普通文本文件\n"
 
 # fe-connect.c:2953
-#: fe-connect.c:5556
+#: fe-connect.c:5715
 #, c-format
 msgid ""
 "WARNING: password file \"%s\" has group or world access; permissions should "
 "be u=rw (0600) or less\n"
 msgstr "警告: 口令文件\"%s\"的访问权限过大; 权限应设置 为 u=rw (0600)或更少\n"
 
-#: fe-connect.c:5656
+#: fe-connect.c:5821
 #, c-format
 msgid "password retrieved from file \"%s\"\n"
 msgstr "从文件\"%s\"中获取口令\n"
 
-#: fe-exec.c:824
+#: fe-exec.c:825
 msgid "NOTICE"
 msgstr "注意"
 
 # fe-exec.c:737
-#: fe-exec.c:1120 fe-exec.c:1178 fe-exec.c:1224
+#: fe-exec.c:1121 fe-exec.c:1179 fe-exec.c:1225
 msgid "command string is a null pointer\n"
 msgstr "命令字串是一个空指针\n"
 
-#: fe-exec.c:1184 fe-exec.c:1230 fe-exec.c:1325
-#| msgid "interval(%d) precision must be between %d and %d"
+#: fe-exec.c:1185 fe-exec.c:1231 fe-exec.c:1326
 msgid "number of parameters must be between 0 and 65535\n"
 msgstr "参数的个数必须介于0到65535之间\n"
 
 # fe-exec.c:737
-#: fe-exec.c:1218 fe-exec.c:1319
+#: fe-exec.c:1219 fe-exec.c:1320
 msgid "statement name is a null pointer\n"
 msgstr "声明名字是一个空指针\n"
 
-#: fe-exec.c:1238 fe-exec.c:1402 fe-exec.c:2096 fe-exec.c:2295
+#: fe-exec.c:1239 fe-exec.c:1403 fe-exec.c:2118 fe-exec.c:2317
 msgid "function requires at least protocol version 3.0\n"
 msgstr "函数至少需要 3.0 版本的协议\n"
 
 # fe-exec.c:745
-#: fe-exec.c:1356
+#: fe-exec.c:1357
 msgid "no connection to the server\n"
 msgstr "没有到服务器的联接\n"
 
 # fe-exec.c:752
-#: fe-exec.c:1363
+#: fe-exec.c:1364
 msgid "another command is already in progress\n"
 msgstr "已经有另外一条命令在处理\n"
 
-#: fe-exec.c:1478
+#: fe-exec.c:1479
 msgid "length must be given for binary parameter\n"
 msgstr "对于2进制参数必须指定长度\n"
 
 # fe-exec.c:1371
-#: fe-exec.c:1756
+#: fe-exec.c:1748
 #, c-format
 msgid "unexpected asyncStatus: %d\n"
 msgstr "意外的 asyncStatus(异步状态): %d\n"
 
-#: fe-exec.c:1776
+#: fe-exec.c:1768
 #, c-format
 msgid "PGEventProc \"%s\" failed during PGEVT_RESULTCREATE event\n"
 msgstr "在PGEVT_CONNRESET事件触发期间执行PGEventProc \"%s\"错误\n"
 
-#: fe-exec.c:1906
+#: fe-exec.c:1928
 msgid "COPY terminated by new PQexec"
 msgstr "COPY 被一个新的 PQexec 终止"
 
 # fe-exec.c:1421
-#: fe-exec.c:1914
+#: fe-exec.c:1936
 msgid "COPY IN state must be terminated first\n"
 msgstr "COPY IN 状态必须先结束\n"
 
 # fe-exec.c:1421
-#: fe-exec.c:1934
+#: fe-exec.c:1956
 msgid "COPY OUT state must be terminated first\n"
 msgstr "COPY OUT 状态必须先结束\n"
 
-#: fe-exec.c:1942
+#: fe-exec.c:1964
 msgid "PQexec not allowed during COPY BOTH\n"
 msgstr "在 COPY BOTH时不允许调用PQexec\n"
 
 # fe-exec.c:1780
-#: fe-exec.c:2185 fe-exec.c:2252 fe-exec.c:2342 fe-protocol2.c:1327
+#: fe-exec.c:2207 fe-exec.c:2274 fe-exec.c:2364 fe-protocol2.c:1327
 #: fe-protocol3.c:1683
 msgid "no COPY in progress\n"
 msgstr "没有正在处理的 COPY\n"
 
 # fe-exec.c:1884
-#: fe-exec.c:2534
+#: fe-exec.c:2556
 msgid "connection in wrong state\n"
 msgstr "联接处于错误状态\n"
 
 # fe-exec.c:2055
-#: fe-exec.c:2565
+#: fe-exec.c:2587
 msgid "invalid ExecStatusType code"
 msgstr "非法 ExecStatusType 代码"
 
 # fe-exec.c:2108 fe-exec.c:2141
-#: fe-exec.c:2629 fe-exec.c:2652
+#: fe-exec.c:2651 fe-exec.c:2674
 #, c-format
 msgid "column number %d is out of range 0..%d"
 msgstr "列号码 %d 超出了范围 0..%d"
 
 # fe-exec.c:2130
-#: fe-exec.c:2645
+#: fe-exec.c:2667
 #, c-format
 msgid "row number %d is out of range 0..%d"
 msgstr "行号码 %d 超出了范围 0..%d"
 
 # fe-exec.c:2130
-#: fe-exec.c:2667
+#: fe-exec.c:2689
 #, c-format
 msgid "parameter number %d is out of range 0..%d"
 msgstr "参数号%d超出了范围 0..%d"
 
 # fe-exec.c:2325
-#: fe-exec.c:2955
+#: fe-exec.c:2999
 #, c-format
 msgid "could not interpret result from server: %s"
 msgstr "无法解释来自服务器的结果: %s"
 
-#: fe-exec.c:3194 fe-exec.c:3278
+#: fe-exec.c:3238 fe-exec.c:3322
 msgid "incomplete multibyte character\n"
 msgstr "无效的多字节字符\n"
 
@@ -600,29 +581,24 @@ msgid "cannot determine OID of function lo_truncate\n"
 msgstr "无法确定函数 lo_creat 的 OID\n"
 
 #: fe-lobj.c:171
-#| msgid "Value exceeds integer range."
 msgid "argument of lo_truncate exceeds integer range\n"
 msgstr "lo_truncate的参数超出整数范围\n"
 
 # fe-lobj.c:616
 #: fe-lobj.c:222
-#| msgid "cannot determine OID of function lo_truncate\n"
 msgid "cannot determine OID of function lo_truncate64\n"
 msgstr "无法确定函数lo_truncate64的OID值\n"
 
 #: fe-lobj.c:280
-#| msgid "Value exceeds integer range."
 msgid "argument of lo_read exceeds integer range\n"
 msgstr "lo_read的参数值已超出整数范围\n"
 
 #: fe-lobj.c:335
-#| msgid "Value exceeds integer range."
 msgid "argument of lo_write exceeds integer range\n"
 msgstr "lo_write的参数值已超出整数范围\n"
 
 # fe-lobj.c:630
 #: fe-lobj.c:426
-#| msgid "cannot determine OID of function lo_lseek\n"
 msgid "cannot determine OID of function lo_lseek64\n"
 msgstr "无法确定函数lo_lseek64的OID值\n"
 
@@ -633,7 +609,6 @@ msgstr "无法确定函数 lo_creat 的 OID\n"
 
 # fe-lobj.c:637
 #: fe-lobj.c:601
-#| msgid "cannot determine OID of function lo_tell\n"
 msgid "cannot determine OID of function lo_tell64\n"
 msgstr "无法确定函数lo_tell64的OID值\n"
 
@@ -711,13 +686,13 @@ msgid "integer of size %lu not supported by pqPutInt"
 msgstr "pgPutInt 不支持大小为 %lu 的整数"
 
 # fe-misc.c:450 fe-misc.c:642 fe-misc.c:798
-#: fe-misc.c:610 fe-misc.c:806
+#: fe-misc.c:642 fe-misc.c:841
 msgid "connection not open\n"
 msgstr "联接未打开\n"
 
 # fe-misc.c:612 fe-misc.c:686
-#: fe-misc.c:736 fe-secure.c:386 fe-secure.c:466 fe-secure.c:547
-#: fe-secure.c:656
+#: fe-misc.c:811 fe-secure.c:388 fe-secure.c:468 fe-secure.c:549
+#: fe-secure.c:658
 msgid ""
 "server closed the connection unexpectedly\n"
 "\tThis probably means the server terminated abnormally\n"
@@ -727,17 +702,17 @@ msgstr ""
 "\t这种现象通常意味着服务器在处理请求之前\n"
 "或者正在处理请求的时候意外中止\n"
 
-#: fe-misc.c:970
+#: fe-misc.c:1007
 msgid "timeout expired\n"
 msgstr "超时满\n"
 
 # fe-misc.c:450 fe-misc.c:642 fe-misc.c:798
-#: fe-misc.c:1015
+#: fe-misc.c:1052
 msgid "socket not open\n"
 msgstr "套接字未打开\n"
 
 # fe-misc.c:389 fe-misc.c:423 fe-misc.c:838
-#: fe-misc.c:1038
+#: fe-misc.c:1075
 #, c-format
 msgid "select() failed: %s\n"
 msgstr "select() 失败: %s\n"
@@ -875,19 +850,16 @@ msgstr "背景:  %s\n"
 
 #: fe-protocol3.c:926
 #, c-format
-#| msgid "CONTEXT:  %s\n"
 msgid "SCHEMA NAME:  %s\n"
 msgstr "方案名:  %s\n"
 
 #: fe-protocol3.c:930
 #, c-format
-#| msgid "DETAIL:  %s\n"
 msgid "TABLE NAME:  %s\n"
 msgstr "表名: %s\n"
 
 #: fe-protocol3.c:934
 #, c-format
-#| msgid "CONTEXT:  %s\n"
 msgid "COLUMN NAME:  %s\n"
 msgstr "列名: %s\n"
 
@@ -898,7 +870,6 @@ msgstr "数据类型名: %s\n"
 
 #: fe-protocol3.c:942
 #, c-format
-#| msgid "CONTEXT:  %s\n"
 msgid "CONSTRAINT NAME:  %s\n"
 msgstr "约束名: %s\n"
 
@@ -925,9 +896,8 @@ msgstr "第%d行"
 msgid "PQgetline: not doing text COPY OUT\n"
 msgstr "PQgetline: not doing text COPY OUT\n"
 
-#: fe-secure.c:270 fe-secure.c:1127 fe-secure.c:1347
+#: fe-secure.c:270 fe-secure.c:1138 fe-secure.c:1358
 #, c-format
-#| msgid "could not create SSL context: %s\n"
 msgid "could not acquire mutex: %s\n"
 msgstr "无法获取互斥锁(mutex): %s\n"
 
@@ -936,135 +906,135 @@ msgstr "无法获取互斥锁(mutex): %s\n"
 msgid "could not establish SSL connection: %s\n"
 msgstr "无法建立 SSL 联接: %s\n"
 
-#: fe-secure.c:391 fe-secure.c:552 fe-secure.c:1476
+#: fe-secure.c:393 fe-secure.c:554 fe-secure.c:1487
 #, c-format
 msgid "SSL SYSCALL error: %s\n"
 msgstr "SSL SYSCALL 错误: %s\n"
 
-#: fe-secure.c:398 fe-secure.c:559 fe-secure.c:1480
+#: fe-secure.c:400 fe-secure.c:561 fe-secure.c:1491
 msgid "SSL SYSCALL error: EOF detected\n"
 msgstr "SSL SYSCALL 错误: 发现结束符\n"
 
 # fe-auth.c:232
-#: fe-secure.c:409 fe-secure.c:570 fe-secure.c:1489
+#: fe-secure.c:411 fe-secure.c:572 fe-secure.c:1500
 #, c-format
 msgid "SSL error: %s\n"
 msgstr "SSL 错误: %s\n"
 
-#: fe-secure.c:424 fe-secure.c:585
+#: fe-secure.c:426 fe-secure.c:587
 msgid "SSL connection has been closed unexpectedly\n"
 msgstr "SSL连接异常关闭\n"
 
-#: fe-secure.c:430 fe-secure.c:591 fe-secure.c:1498
+#: fe-secure.c:432 fe-secure.c:593 fe-secure.c:1509
 #, c-format
 msgid "unrecognized SSL error code: %d\n"
 msgstr "未知的 SSL 错误码: %d\n"
 
 # fe-misc.c:515 fe-misc.c:595
-#: fe-secure.c:474
+#: fe-secure.c:476
 #, c-format
 msgid "could not receive data from server: %s\n"
 msgstr "无法从服务器接收数据: %s\n"
 
 # fe-misc.c:702
-#: fe-secure.c:663
+#: fe-secure.c:665
 #, c-format
 msgid "could not send data to server: %s\n"
 msgstr "无法向服务器发送数据: %s\n"
 
-#: fe-secure.c:783 fe-secure.c:800
+#: fe-secure.c:785 fe-secure.c:802
 msgid "could not get server common name from server certificate\n"
 msgstr "从服务器证书中无法得到服务器的CN值(common name)\n"
 
-#: fe-secure.c:813
+#: fe-secure.c:815
 msgid "SSL certificate's common name contains embedded null\n"
 msgstr "SSL认证的普通名称包含了嵌入的空值\n"
 
-#: fe-secure.c:825
+#: fe-secure.c:827
 msgid "host name must be specified for a verified SSL connection\n"
 msgstr "必须为一个已验证的SSL连接指定主机名\n"
 
-#: fe-secure.c:839
+#: fe-secure.c:841
 #, c-format
 msgid "server common name \"%s\" does not match host name \"%s\"\n"
 msgstr "服务器名字 \"%s\"与主机名不匹配\"%s\"\n"
 
-#: fe-secure.c:974
+#: fe-secure.c:982
 #, c-format
 msgid "could not create SSL context: %s\n"
 msgstr "无法创建 SSL 环境: %s\n"
 
 # fe-lobj.c:400 fe-lobj.c:483
-#: fe-secure.c:1097
+#: fe-secure.c:1108
 #, c-format
 msgid "could not open certificate file \"%s\": %s\n"
 msgstr "无法打开证书文件 \"%s\": %s\n"
 
 # fe-lobj.c:400 fe-lobj.c:483
-#: fe-secure.c:1136 fe-secure.c:1151
+#: fe-secure.c:1147 fe-secure.c:1162
 #, c-format
 msgid "could not read certificate file \"%s\": %s\n"
 msgstr "无法读取证书文件 \"%s\": %s\n"
 
 # fe-lobj.c:400 fe-lobj.c:483
-#: fe-secure.c:1206
+#: fe-secure.c:1217
 #, c-format
 msgid "could not load SSL engine \"%s\": %s\n"
 msgstr "无法加载SSL引擎 \"%s\": %s\n"
 
-#: fe-secure.c:1218
+#: fe-secure.c:1229
 #, c-format
 msgid "could not initialize SSL engine \"%s\": %s\n"
 msgstr "无法初始化SSL引擎\"%s\": %s\n"
 
 # fe-connect.c:891
-#: fe-secure.c:1234
+#: fe-secure.c:1245
 #, c-format
 msgid "could not read private SSL key \"%s\" from engine \"%s\": %s\n"
 msgstr "无法从引擎\"%2$s\"读取私有SSL钥\"%1$s\": %3$s\n"
 
 # fe-connect.c:891
-#: fe-secure.c:1248
+#: fe-secure.c:1259
 #, c-format
 msgid "could not load private SSL key \"%s\" from engine \"%s\": %s\n"
 msgstr "无法从引擎\"%2$s\"读取私有SSL钥\"%1$s\": %3$s\n"
 
-#: fe-secure.c:1285
+#: fe-secure.c:1296
 #, c-format
 msgid "certificate present, but not private key file \"%s\"\n"
 msgstr "有证书, 但不是私钥文件 \"%s\"\n"
 
 # fe-connect.c:2953
-#: fe-secure.c:1293
+#: fe-secure.c:1304
 #, c-format
 msgid ""
 "private key file \"%s\" has group or world access; permissions should be "
 "u=rw (0600) or less\n"
 msgstr "警告: 私钥文件 \"%s\"的访问权限过大; 权限应设置 为 u=rw (0600)或更小\n"
 
-#: fe-secure.c:1304
+#: fe-secure.c:1315
 #, c-format
 msgid "could not load private key file \"%s\": %s\n"
 msgstr "无法装载私钥文件 \"%s\": %s\n"
 
-#: fe-secure.c:1318
+#: fe-secure.c:1329
 #, c-format
 msgid "certificate does not match private key file \"%s\": %s\n"
 msgstr "证书不匹配私钥文件 \"%s\": %s\n"
 
 # fe-connect.c:891
-#: fe-secure.c:1356
+#: fe-secure.c:1367
 #, c-format
 msgid "could not read root certificate file \"%s\": %s\n"
 msgstr "无法读取根证书文件 \"%s\": %s\n"
 
 # fe-lobj.c:400 fe-lobj.c:483
-#: fe-secure.c:1386
+#: fe-secure.c:1397
 #, c-format
 msgid "SSL library does not support CRL certificates (file \"%s\")\n"
 msgstr "SSL库不支持CRL认证(文件 \"%s\")\n"
 
-#: fe-secure.c:1419
+#: fe-secure.c:1430
 msgid ""
 "could not get home directory to locate root certificate file\n"
 "Either provide the file or change sslmode to disable server certificate "
@@ -1073,7 +1043,7 @@ msgstr ""
 "无法获取home目录以定位根认证文件\n"
 "可以提供该文件或者将sslmode改为禁用服务器证书认证.\n"
 
-#: fe-secure.c:1423
+#: fe-secure.c:1434
 #, c-format
 msgid ""
 "root certificate file \"%s\" does not exist\n"
@@ -1083,17 +1053,17 @@ msgstr ""
 "根认证文件\"%s\"不存在\n"
 "可以提供这个文件或者将sslmode改为禁用服务器认证检验.\n"
 
-#: fe-secure.c:1517
+#: fe-secure.c:1528
 #, c-format
 msgid "certificate could not be obtained: %s\n"
 msgstr "无法获得证书: %s\n"
 
-#: fe-secure.c:1594
+#: fe-secure.c:1624
 #, c-format
 msgid "no SSL error reported"
 msgstr "没有报告SSL错误"
 
-#: fe-secure.c:1603
+#: fe-secure.c:1633
 #, c-format
 msgid "SSL error code %lu"
 msgstr "SSL 错误代码 %lu"
index 4de00ad88f52ffa847f5b521aa5b151680f33dfa..634e5bb89c4d5f247e84fab38ce89882d420920e 100644 (file)
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pg_basebackup (PostgreSQL) 9.2\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2013-09-02 00:26+0000\n"
-"PO-Revision-Date: 2013-10-13 22:00-0400\n"
+"POT-Creation-Date: 2014-11-22 21:12+0000\n"
+"PO-Revision-Date: 2014-12-06 13:10+0800\n"
 "Last-Translator: Xiong He <iihero@qq.com>\n"
 "Language-Team: Chinese (Simplified)\n"
 "Language: zh_CN\n"
@@ -27,11 +27,38 @@ msgstr "内存溢出\n"
 # common.c:78
 #: ../../common/fe_memutils.c:77
 #, c-format
-#| msgid "pg_strdup: cannot duplicate null pointer (internal error)\n"
 msgid "cannot duplicate null pointer (internal error)\n"
 msgstr "无法复制空指针 (内部错误)\n"
 
-#: pg_basebackup.c:106
+#: pg_basebackup.c:153
+#, c-format
+#| msgid "directory name too long: \"%s\"\n"
+msgid "%s: directory name too long\n"
+msgstr "字典名: \"%s\"太长\n"
+
+#: pg_basebackup.c:163
+#, c-format
+msgid "%s: multiple \"=\" signs in tablespace mapping\n"
+msgstr "%s: 多个 \"=\" 号出现在表空间的映射中\n"
+
+#: pg_basebackup.c:176
+#, c-format
+#| msgid "%s: invalid output format \"%s\", must be \"plain\" or \"tar\"\n"
+msgid ""
+"%s: invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"\n"
+msgstr "%s: 无效表空间映射表格式: \"%s\", 有效格式必须为: \"OLDDIR=NEWDIR\"\n"
+
+#: pg_basebackup.c:189
+#, c-format
+msgid "%s: old directory is not an absolute path in tablespace mapping: %s\n"
+msgstr "%s:: 在表空间映射表:%s中的旧目录不是一个绝对路径\n"
+
+#: pg_basebackup.c:196
+#, c-format
+msgid "%s: new directory is not an absolute path in tablespace mapping: %s\n"
+msgstr "%s:: 在表空间映射表:%s中的新目录不是一个绝对路径\n"
+
+#: pg_basebackup.c:227
 #, c-format
 msgid ""
 "%s takes a base backup of a running PostgreSQL server.\n"
@@ -40,17 +67,17 @@ msgstr ""
 "%s 在运行的PostgreSQL服务器上执行基础备份.\n"
 "\n"
 
-#: pg_basebackup.c:108 pg_receivexlog.c:53
+#: pg_basebackup.c:229 pg_receivexlog.c:60 pg_recvlogical.c:67
 #, c-format
 msgid "Usage:\n"
 msgstr "使用方法:\n"
 
-#: pg_basebackup.c:109 pg_receivexlog.c:54
+#: pg_basebackup.c:230 pg_receivexlog.c:61 pg_recvlogical.c:68
 #, c-format
 msgid "  %s [OPTION]...\n"
 msgstr "  %s [选项]...\n"
 
-#: pg_basebackup.c:110
+#: pg_basebackup.c:231
 #, c-format
 msgid ""
 "\n"
@@ -59,22 +86,28 @@ msgstr ""
 "\n"
 "控制输出的选项:\n"
 
-#: pg_basebackup.c:111
+#: pg_basebackup.c:232
 #, c-format
 msgid "  -D, --pgdata=DIRECTORY receive base backup into directory\n"
 msgstr " -D, --pgdata=DIRECTORY 接收基础备份到指定目录\n"
 
-#: pg_basebackup.c:112
+#: pg_basebackup.c:233
 #, c-format
 msgid "  -F, --format=p|t       output format (plain (default), tar)\n"
 msgstr "  -F, --format=p|t       输出格式 (纯文本 (缺省值), tar压缩格式)\n"
 
+#: pg_basebackup.c:234
+#, c-format
+msgid ""
+"  -r, --max-rate=RATE    maximum transfer rate to transfer data directory\n"
+"                         (in kB/s, or use suffix \"k\" or \"M\")\n"
+msgstr ""
+"  -r, --max-rate=RATE    传输数据目录的最大传输速率\n"
+"                         (单位 kB/s, 也可以使用后缀\"k\" 或 \"M\")\n"
+
 # help.c:121
-#: pg_basebackup.c:113
+#: pg_basebackup.c:236
 #, c-format
-#| msgid ""
-#| "  -0, --record-separator-zero\n"
-#| "                           set record separator to zero byte\n"
 msgid ""
 "  -R, --write-recovery-conf\n"
 "                         write recovery.conf after backup\n"
@@ -82,13 +115,22 @@ msgstr ""
 "  -R, --write-recovery-conf\n"
 "                           备份后对文件recovery.conf进行写操作\n"
 
-#: pg_basebackup.c:115
+#: pg_basebackup.c:238
+#, c-format
+msgid ""
+"  -T, --tablespace-mapping=OLDDIR=NEWDIR\n"
+"                         relocate tablespace in OLDDIR to NEWDIR\n"
+msgstr ""
+"  -T, --tablespace-mapping=OLDDIR=NEWDIR\n"
+"                         将表空间由 OLDDIR 重定位到 NEWDIR\n"
+
+#: pg_basebackup.c:240
 #, c-format
 msgid ""
 "  -x, --xlog             include required WAL files in backup (fetch mode)\n"
 msgstr "  -x, --xlog             在备份中包含必需的WAL文件(fetch 模式)\n"
 
-#: pg_basebackup.c:116
+#: pg_basebackup.c:241
 #, c-format
 msgid ""
 "  -X, --xlog-method=fetch|stream\n"
@@ -97,18 +139,25 @@ msgstr ""
 "  -X, --xlog-method=fetch|stream\n"
 "                         按指定的模式包含必需的WAL日志文件\n"
 
-#: pg_basebackup.c:118
+#: pg_basebackup.c:243
+#, c-format
+#| msgid ""
+#| "  -X, --xlogdir=XLOGDIR     location for the transaction log directory\n"
+msgid "      --xlogdir=XLOGDIR  location for the transaction log directory\n"
+msgstr "      --xlogdir=XLOGDIR  当前事务日志目录的位置\n"
+
+#: pg_basebackup.c:244
 #, c-format
 msgid "  -z, --gzip             compress tar output\n"
 msgstr "  -z, --gzip             对tar文件进行压缩输出\n"
 
-#: pg_basebackup.c:119
+#: pg_basebackup.c:245
 #, c-format
 msgid ""
 "  -Z, --compress=0-9     compress tar output with given compression level\n"
 msgstr "  -Z, --compress=0-9     按给定的压缩级别对tar文件进行压缩输出\n"
 
-#: pg_basebackup.c:120
+#: pg_basebackup.c:246
 #, c-format
 msgid ""
 "\n"
@@ -117,7 +166,7 @@ msgstr ""
 "\n"
 "一般选项:\n"
 
-#: pg_basebackup.c:121
+#: pg_basebackup.c:247
 #, c-format
 msgid ""
 "  -c, --checkpoint=fast|spread\n"
@@ -126,32 +175,32 @@ msgstr ""
 "  -c, --checkpoint=fast|spread\n"
 "                         设置检查点方式(fast或者spread)\n"
 
-#: pg_basebackup.c:123
+#: pg_basebackup.c:249
 #, c-format
 msgid "  -l, --label=LABEL      set backup label\n"
 msgstr "  -l, --label=LABEL      设置备份标签\n"
 
-#: pg_basebackup.c:124
+#: pg_basebackup.c:250
 #, c-format
 msgid "  -P, --progress         show progress information\n"
 msgstr "  -P, --progress         显示进度信息\n"
 
-#: pg_basebackup.c:125 pg_receivexlog.c:58
+#: pg_basebackup.c:251 pg_receivexlog.c:68 pg_recvlogical.c:86
 #, c-format
 msgid "  -v, --verbose          output verbose messages\n"
 msgstr "  -v, --verbose          输出详细的消息\n"
 
-#: pg_basebackup.c:126 pg_receivexlog.c:59
+#: pg_basebackup.c:252 pg_receivexlog.c:69 pg_recvlogical.c:87
 #, c-format
 msgid "  -V, --version          output version information, then exit\n"
 msgstr "  -V, --version          输出版本信息, 然后退出\n"
 
-#: pg_basebackup.c:127 pg_receivexlog.c:60
+#: pg_basebackup.c:253 pg_receivexlog.c:70 pg_recvlogical.c:88
 #, c-format
 msgid "  -?, --help             show this help, then exit\n"
 msgstr "  -?, --help             显示帮助, 然后退出\n"
 
-#: pg_basebackup.c:128 pg_receivexlog.c:61
+#: pg_basebackup.c:254 pg_receivexlog.c:71 pg_recvlogical.c:89
 #, c-format
 msgid ""
 "\n"
@@ -160,23 +209,22 @@ msgstr ""
 "\n"
 "联接选项:\n"
 
-#: pg_basebackup.c:129 pg_receivexlog.c:62
+#: pg_basebackup.c:255 pg_receivexlog.c:72
 #, c-format
-#| msgid "  -d, --dbname=NAME        connect to database name\n"
 msgid "  -d, --dbname=CONNSTR   connection string\n"
 msgstr "  -d, --dbname=CONNSTR        连接串\n"
 
-#: pg_basebackup.c:130 pg_receivexlog.c:63
+#: pg_basebackup.c:256 pg_receivexlog.c:73 pg_recvlogical.c:91
 #, c-format
 msgid "  -h, --host=HOSTNAME    database server host or socket directory\n"
 msgstr "  -h, --host=HOSTNAME    数据库服务器主机或者是socket目录\n"
 
-#: pg_basebackup.c:131 pg_receivexlog.c:64
+#: pg_basebackup.c:257 pg_receivexlog.c:74 pg_recvlogical.c:92
 #, c-format
 msgid "  -p, --port=PORT        database server port number\n"
 msgstr "  -p, --port=PORT        数据库服务器端口号\n"
 
-#: pg_basebackup.c:132 pg_receivexlog.c:65
+#: pg_basebackup.c:258
 #, c-format
 msgid ""
 "  -s, --status-interval=INTERVAL\n"
@@ -186,24 +234,24 @@ msgstr ""
 "  -s, --status-interval=INTERVAL\n"
 "                         发往服务器的状态包的时间间隔 (以秒计)\n"
 
-#: pg_basebackup.c:134 pg_receivexlog.c:67
+#: pg_basebackup.c:260 pg_receivexlog.c:75 pg_recvlogical.c:93
 #, c-format
 msgid "  -U, --username=NAME    connect as specified database user\n"
 msgstr "  -U, --username=NAME    指定连接所需的数据库用户名\n"
 
-#: pg_basebackup.c:135 pg_receivexlog.c:68
+#: pg_basebackup.c:261 pg_receivexlog.c:76 pg_recvlogical.c:94
 #, c-format
 msgid "  -w, --no-password      never prompt for password\n"
 msgstr "  -w, --no-password      禁用输入密码的提示\n"
 
-#: pg_basebackup.c:136 pg_receivexlog.c:69
+#: pg_basebackup.c:262 pg_receivexlog.c:77 pg_recvlogical.c:95
 #, c-format
 msgid ""
 "  -W, --password         force password prompt (should happen "
 "automatically)\n"
 msgstr "  -W, --password         强制提示输入密码 (应该自动发生)\n"
 
-#: pg_basebackup.c:137 pg_receivexlog.c:70
+#: pg_basebackup.c:263 pg_receivexlog.c:78 pg_recvlogical.c:96
 #, c-format
 msgid ""
 "\n"
@@ -212,191 +260,224 @@ msgstr ""
 "\n"
 "错误报告至 <pgsql-bugs@postgresql.org>.\n"
 
-#: pg_basebackup.c:180
+#: pg_basebackup.c:306
 #, c-format
 msgid "%s: could not read from ready pipe: %s\n"
 msgstr "%s: 无法从准备就绪的管道: %s读\n"
 
-#: pg_basebackup.c:188 pg_basebackup.c:280 pg_basebackup.c:1598
-#: pg_receivexlog.c:266
+#: pg_basebackup.c:314 pg_basebackup.c:406 pg_basebackup.c:1877
+#: pg_receivexlog.c:301 pg_recvlogical.c:937
 #, c-format
 msgid "%s: could not parse transaction log location \"%s\"\n"
 msgstr "%s: 无法解析来自 \"%s\"的事务日志\n"
 
-#: pg_basebackup.c:293
+#: pg_basebackup.c:419
 #, c-format
 msgid "%s: could not create pipe for background process: %s\n"
 msgstr "%s: 无法为后台进程: %s创建管道\n"
 
-#: pg_basebackup.c:326
+#: pg_basebackup.c:452
 #, c-format
 msgid "%s: could not create background process: %s\n"
 msgstr "%s: 无法创建后台进程: %s\n"
 
-#: pg_basebackup.c:338
+#: pg_basebackup.c:464
 #, c-format
 msgid "%s: could not create background thread: %s\n"
 msgstr "%s: 无法创建后台线程: %s\n"
 
-#: pg_basebackup.c:363 pg_basebackup.c:989
+#: pg_basebackup.c:489 pg_basebackup.c:1246
 #, c-format
 msgid "%s: could not create directory \"%s\": %s\n"
 msgstr "%s: 无法创建目录 \"%s\": %s\n"
 
-#: pg_basebackup.c:382
+#: pg_basebackup.c:508
 #, c-format
 msgid "%s: directory \"%s\" exists but is not empty\n"
 msgstr "%s: 目录\"%s\"已存在,但不是空的\n"
 
-#: pg_basebackup.c:390
+#: pg_basebackup.c:516
 #, c-format
 msgid "%s: could not access directory \"%s\": %s\n"
 msgstr "%s: 无法访问目录 \"%s\": %s\n"
 
-#: pg_basebackup.c:438
+#: pg_basebackup.c:578
 #, c-format
-#| msgid "%s/%s kB (100%%), %d/%d tablespace %35s"
-#| msgid_plural "%s/%s kB (100%%), %d/%d tablespaces %35s"
 msgid "%*s/%s kB (100%%), %d/%d tablespace %*s"
 msgid_plural "%*s/%s kB (100%%), %d/%d tablespaces %*s"
 msgstr[0] "%*s/%s kB (100%%), %d/%d 表空间 %*s"
 
-#: pg_basebackup.c:450
+#: pg_basebackup.c:590
 #, c-format
-#| msgid "%s/%s kB (%d%%), %d/%d tablespace (%-30.30s)"
-#| msgid_plural "%s/%s kB (%d%%), %d/%d tablespaces (%-30.30s)"
 msgid "%*s/%s kB (%d%%), %d/%d tablespace (%s%-*.*s)"
 msgid_plural "%*s/%s kB (%d%%), %d/%d tablespaces (%s%-*.*s)"
 msgstr[0] "%*s/%s kB (%d%%), %d/%d 表空间 (%s%-*.*s)"
 
-#: pg_basebackup.c:466
+#: pg_basebackup.c:606
 #, c-format
-#| msgid "%s/%s kB (%d%%), %d/%d tablespace"
-#| msgid_plural "%s/%s kB (%d%%), %d/%d tablespaces"
 msgid "%*s/%s kB (%d%%), %d/%d tablespace"
 msgid_plural "%*s/%s kB (%d%%), %d/%d tablespaces"
 msgstr[0] "%*s/%s kB (%d%%), %d/%d 表空间"
 
-#: pg_basebackup.c:493
+#: pg_basebackup.c:628
+#, c-format
+#| msgid "%s: \"%s\" is not a valid encoding name\n"
+msgid "%s: transfer rate \"%s\" is not a valid value\n"
+msgstr "%s: 传输速率\"%s\"不是一个有效值\n"
+
+#: pg_basebackup.c:635
+#, c-format
+#| msgid "%s: invalid locale name \"%s\"\n"
+msgid "%s: invalid transfer rate \"%s\": %s\n"
+msgstr "%s:无效的传输速率\"%s\": %s\n"
+
+#: pg_basebackup.c:645
+#, c-format
+#| msgid "count must be greater than zero"
+msgid "%s: transfer rate must be greater than zero\n"
+msgstr "%s: 传输速率必须大于0\n"
+
+#: pg_basebackup.c:679
+#, c-format
+#| msgid "%s: invalid argument: \"%s\"\n"
+msgid "%s: invalid --max-rate unit: \"%s\"\n"
+msgstr "%s: 无效的 --max-rate 单位: \"%s\"\n"
+
+#: pg_basebackup.c:688
+#, c-format
+#| msgid "argument of lo_write exceeds integer range\n"
+msgid "%s: transfer rate \"%s\" exceeds integer range\n"
+msgstr "%s:传输速率 \"%s\" 超出了整数范围\n"
+
+#: pg_basebackup.c:700
+#, c-format
+#| msgid "result is out of range"
+msgid "%s: transfer rate \"%s\" is out of range\n"
+msgstr "%s: 传输速率 \"%s\" 超出范围\n"
+
+#: pg_basebackup.c:724
 #, c-format
 msgid "%s: could not write to compressed file \"%s\": %s\n"
 msgstr "%s: 无法往压缩文件里写\"%s\": %s\n"
 
-#: pg_basebackup.c:503 pg_basebackup.c:1071 pg_basebackup.c:1289
+#: pg_basebackup.c:734 pg_basebackup.c:1340 pg_basebackup.c:1558
 #, c-format
 msgid "%s: could not write to file \"%s\": %s\n"
 msgstr "%s: 无法写文件 \"%s\": %s\n"
 
-#: pg_basebackup.c:558 pg_basebackup.c:578 pg_basebackup.c:606
+#: pg_basebackup.c:789 pg_basebackup.c:810 pg_basebackup.c:838
 #, c-format
 msgid "%s: could not set compression level %d: %s\n"
 msgstr "%s: 无法设置压缩级别 %d: %s\n"
 
-#: pg_basebackup.c:627
+#: pg_basebackup.c:859
 #, c-format
 msgid "%s: could not create compressed file \"%s\": %s\n"
 msgstr "%s: 无法创建压缩文件 \"%s\": %s\n"
 
-#: pg_basebackup.c:638 pg_basebackup.c:1031 pg_basebackup.c:1282
+#: pg_basebackup.c:870 pg_basebackup.c:1300 pg_basebackup.c:1551
 #, c-format
 msgid "%s: could not create file \"%s\": %s\n"
 msgstr "%s: 无法创建文件 \"%s\": %s\n"
 
-#: pg_basebackup.c:650 pg_basebackup.c:893
+#: pg_basebackup.c:882 pg_basebackup.c:1146
 #, c-format
 msgid "%s: could not get COPY data stream: %s"
 msgstr "%s: 无法得到复制数据流: %s"
 
-#: pg_basebackup.c:707
+#: pg_basebackup.c:939
 #, c-format
 msgid "%s: could not close compressed file \"%s\": %s\n"
 msgstr "%s: 无法关闭压缩文件 \"%s\": %s\n"
 
-#: pg_basebackup.c:720 receivelog.c:161 receivelog.c:351 receivelog.c:725
+#: pg_basebackup.c:952 pg_recvlogical.c:554 receivelog.c:160 receivelog.c:295
+#: receivelog.c:674
 #, c-format
 msgid "%s: could not close file \"%s\": %s\n"
 msgstr "%s: 无法关闭文件 \"%s\": %s\n"
 
-#: pg_basebackup.c:731 pg_basebackup.c:922 receivelog.c:938
+#: pg_basebackup.c:963 pg_basebackup.c:1175 pg_recvlogical.c:420
+#: receivelog.c:890
 #, c-format
 msgid "%s: could not read COPY data: %s"
 msgstr "%s: 无法读取复制数据: %s"
 
-#: pg_basebackup.c:936
+#: pg_basebackup.c:1189
 #, c-format
 msgid "%s: invalid tar block header size: %d\n"
 msgstr "%s: 无效的tar压缩块头大小: %d\n"
 
-#: pg_basebackup.c:944
+#: pg_basebackup.c:1197
 #, c-format
 msgid "%s: could not parse file size\n"
 msgstr "%s: 无法解析文件大小\n"
 
-#: pg_basebackup.c:952
+#: pg_basebackup.c:1205
 #, c-format
 msgid "%s: could not parse file mode\n"
 msgstr "%s: 无法解析文件模式\n"
 
-#: pg_basebackup.c:997
+#: pg_basebackup.c:1254
 #, c-format
 msgid "%s: could not set permissions on directory \"%s\": %s\n"
 msgstr "%s: 无法设置目录权限 \"%s\": %s\n"
 
-#: pg_basebackup.c:1010
+#: pg_basebackup.c:1278
 #, c-format
 msgid "%s: could not create symbolic link from \"%s\" to \"%s\": %s\n"
 msgstr "%s: 无法创建从 \"%s\" 到 \"%s\"的符号链接: %s\n"
 
-#: pg_basebackup.c:1018
+#: pg_basebackup.c:1287
 #, c-format
 msgid "%s: unrecognized link indicator \"%c\"\n"
 msgstr "%s: 无法识别的链接标识符 \"%c\"\n"
 
-#: pg_basebackup.c:1038
+#: pg_basebackup.c:1307
 #, c-format
 msgid "%s: could not set permissions on file \"%s\": %s\n"
 msgstr "%s: 无法设置文件 \"%s\"的访问权限: %s\n"
 
-#: pg_basebackup.c:1097
+#: pg_basebackup.c:1366
 #, c-format
 msgid "%s: COPY stream ended before last file was finished\n"
 msgstr "%s: 复制流在最后一个文件结束前终止\n"
 
-#: pg_basebackup.c:1183 pg_basebackup.c:1203 pg_basebackup.c:1210
-#: pg_basebackup.c:1257
+#: pg_basebackup.c:1452 pg_basebackup.c:1472 pg_basebackup.c:1479
+#: pg_basebackup.c:1526
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: 内存溢出\n"
 
-#: pg_basebackup.c:1333
+#: pg_basebackup.c:1603
 #, c-format
-#| msgid "%s: could not parse server version \"%s\"\n"
 msgid "%s: incompatible server version %s\n"
 msgstr "%s: 不兼容的服务器版本号 %s\n"
 
-#: pg_basebackup.c:1360 pg_basebackup.c:1389 pg_receivexlog.c:251
-#: receivelog.c:532 receivelog.c:577 receivelog.c:616
+#: pg_basebackup.c:1630 pg_basebackup.c:1664 pg_receivexlog.c:286
+#: pg_recvlogical.c:255 pg_recvlogical.c:853 pg_recvlogical.c:886
+#: pg_recvlogical.c:921 receivelog.c:470 receivelog.c:521 receivelog.c:561
 #, c-format
 msgid "%s: could not send replication command \"%s\": %s"
 msgstr "%s: 无法发送复制命令 \"%s\": %s"
 
-#: pg_basebackup.c:1367 pg_receivexlog.c:258 receivelog.c:540
+#: pg_basebackup.c:1637 pg_receivexlog.c:293 pg_recvlogical.c:861
+#: receivelog.c:478
 #, c-format
+#| msgid ""
+#| "%s: could not identify system: got %d rows and %d fields, expected %d "
+#| "rows and %d fields\n"
 msgid ""
 "%s: could not identify system: got %d rows and %d fields, expected %d rows "
-"and %d fields\n"
-msgstr "%s: 无法识别系统: 得到 %d 行和 %d 列, 期望值为: %d 行和 %d 列\n"
+"and %d or more fields\n"
+msgstr "%s: 无法识别系统: 得到%d行和%d列, 期望值为: %d行和%d列或更多列\n"
 
-#: pg_basebackup.c:1400
+#: pg_basebackup.c:1675
 #, c-format
 msgid "%s: could not initiate base backup: %s"
 msgstr "%s: 无法发起基础备份: %s"
 
-#: pg_basebackup.c:1407
+#: pg_basebackup.c:1682
 #, c-format
-#| msgid ""
-#| "%s: could not identify system: got %d rows and %d fields, expected %d "
-#| "rows and %d fields\n"
 msgid ""
 "%s: server returned unexpected response to BASE_BACKUP command; got %d rows "
 "and %d fields, expected %d rows and %d fields\n"
@@ -404,162 +485,184 @@ msgstr ""
 "%s: 服务器对BASE_BACKUP命令返回意外的响应; 得到 %d 行和 %d 列, 期望值为: %d "
 "行和 %d 列\n"
 
-#: pg_basebackup.c:1427
+#: pg_basebackup.c:1702
 #, c-format
-#| msgid "%s: starting log streaming at %X/%X (timeline %u)\n"
 msgid "transaction log start point: %s on timeline %u\n"
 msgstr "事务日志起始于时间点: %s, 基于时间表%u \n"
 
-#: pg_basebackup.c:1436
+#: pg_basebackup.c:1711
 #, c-format
 msgid "%s: could not get backup header: %s"
 msgstr "%s: 无法得到备份头: %s"
 
-#: pg_basebackup.c:1442
+#: pg_basebackup.c:1717
 #, c-format
 msgid "%s: no data returned from server\n"
 msgstr "%s: 服务器没有数据返回\n"
 
 # Here, we need to understand what's the content "database has"?
 # Is it the stdout fd? or anything else? Please correct me here.
-#: pg_basebackup.c:1471
+#: pg_basebackup.c:1749
 #, c-format
 msgid "%s: can only write single tablespace to stdout, database has %d\n"
 msgstr "%s: 只能把表空间写往标准输出, 数据库拥有标准输出: %d\n"
 
-#: pg_basebackup.c:1483
+#: pg_basebackup.c:1761
 #, c-format
 msgid "%s: starting background WAL receiver\n"
 msgstr "%s: 启动后台 WAL 接收进程\n"
 
-#: pg_basebackup.c:1513
+#: pg_basebackup.c:1792
 #, c-format
 msgid "%s: could not get transaction log end position from server: %s"
 msgstr "%s: 无法得到来自服务器的事务日志终止位置: %s"
 
-#: pg_basebackup.c:1520
+#: pg_basebackup.c:1799
 #, c-format
 msgid "%s: no transaction log end position returned from server\n"
 msgstr "%s: 服务器端没有返回事务日志的终止位置\n"
 
-#: pg_basebackup.c:1532
+#: pg_basebackup.c:1811
 #, c-format
 msgid "%s: final receive failed: %s"
 msgstr "%s: 最终接收失败: %s"
 
-#: pg_basebackup.c:1550
+#: pg_basebackup.c:1829
 #, c-format
-#| msgid "%s: waiting for background process to finish streaming...\n"
 msgid "%s: waiting for background process to finish streaming ...\n"
 msgstr "%s: 等待后台进程结束流操作...\n"
 
-#: pg_basebackup.c:1556
+#: pg_basebackup.c:1835
 #, c-format
 msgid "%s: could not send command to background pipe: %s\n"
 msgstr "%s: 无法发送命令到后台管道: %s\n"
 
-#: pg_basebackup.c:1565
+#: pg_basebackup.c:1844
 #, c-format
 msgid "%s: could not wait for child process: %s\n"
 msgstr "%s: 无法等待子进程: %s\n"
 
-#: pg_basebackup.c:1571
+#: pg_basebackup.c:1850
 #, c-format
 msgid "%s: child %d died, expected %d\n"
 msgstr "%s: 子进程 %d 已终止, 期望值为 %d\n"
 
-#: pg_basebackup.c:1577
+#: pg_basebackup.c:1856
 #, c-format
 msgid "%s: child process did not exit normally\n"
 msgstr "%s: 子进程没有正常退出\n"
 
-#: pg_basebackup.c:1583
+#: pg_basebackup.c:1862
 #, c-format
 msgid "%s: child process exited with error %d\n"
 msgstr "%s: 子进程退出, 错误码为: %d\n"
 
-#: pg_basebackup.c:1610
+#: pg_basebackup.c:1889
 #, c-format
 msgid "%s: could not wait for child thread: %s\n"
 msgstr "%s: 无法等待子线程: %s\n"
 
-#: pg_basebackup.c:1617
+#: pg_basebackup.c:1896
 #, c-format
 msgid "%s: could not get child thread exit status: %s\n"
 msgstr "%s: 无法得到子线程退出状态: %s\n"
 
-#: pg_basebackup.c:1623
+#: pg_basebackup.c:1902
 #, c-format
 msgid "%s: child thread exited with error %u\n"
 msgstr "%s: 子线程退出, 错误码为: %u\n"
 
-#: pg_basebackup.c:1709
+#: pg_basebackup.c:1991
 #, c-format
 msgid "%s: invalid output format \"%s\", must be \"plain\" or \"tar\"\n"
 msgstr "%s: 无效输出格式: \"%s\", 有效值为: \"plain\" 或者 \"tar\"\n"
 
-#: pg_basebackup.c:1721 pg_basebackup.c:1733
+#: pg_basebackup.c:2009 pg_basebackup.c:2021
 #, c-format
 msgid "%s: cannot specify both --xlog and --xlog-method\n"
 msgstr "%s: 不能同时指定两个选项: --xlog and --xlog-method\n"
 
-#: pg_basebackup.c:1748
+#: pg_basebackup.c:2036
 #, c-format
 msgid ""
 "%s: invalid xlog-method option \"%s\", must be \"fetch\" or \"stream\"\n"
 msgstr ""
 "%s: 无效的xlog-method 选项: \"%s\", 必须是: \"fetch\" 或者 \"stream\"\n"
 
-#: pg_basebackup.c:1767
+#: pg_basebackup.c:2058
 #, c-format
 msgid "%s: invalid compression level \"%s\"\n"
 msgstr "%s: 无效的压缩级别值: \"%s\"\n"
 
-#: pg_basebackup.c:1779
+#: pg_basebackup.c:2070
 #, c-format
 msgid ""
 "%s: invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"\n"
 msgstr "%s: 无效的检查点参数: \"%s\", 必须是: \"fast\" 或 \"spread\"\n"
 
-#: pg_basebackup.c:1806 pg_receivexlog.c:392
+#: pg_basebackup.c:2097 pg_receivexlog.c:428 pg_recvlogical.c:736
 #, c-format
 msgid "%s: invalid status interval \"%s\"\n"
 msgstr "%s: 无效的状态间隔值: \"%s\"\n"
 
-#: pg_basebackup.c:1822 pg_basebackup.c:1836 pg_basebackup.c:1847
-#: pg_basebackup.c:1860 pg_basebackup.c:1870 pg_receivexlog.c:408
-#: pg_receivexlog.c:422 pg_receivexlog.c:433
+#: pg_basebackup.c:2113 pg_basebackup.c:2127 pg_basebackup.c:2138
+#: pg_basebackup.c:2151 pg_basebackup.c:2161 pg_basebackup.c:2173
+#: pg_basebackup.c:2184 pg_receivexlog.c:447 pg_receivexlog.c:461
+#: pg_receivexlog.c:472 pg_recvlogical.c:760 pg_recvlogical.c:774
+#: pg_recvlogical.c:785 pg_recvlogical.c:793 pg_recvlogical.c:801
+#: pg_recvlogical.c:809 pg_recvlogical.c:817 pg_recvlogical.c:825
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
 
-#: pg_basebackup.c:1834 pg_receivexlog.c:420
+#: pg_basebackup.c:2125 pg_receivexlog.c:459 pg_recvlogical.c:772
 #, c-format
 msgid "%s: too many command-line arguments (first is \"%s\")\n"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 
-#: pg_basebackup.c:1846 pg_receivexlog.c:432
+#: pg_basebackup.c:2137 pg_receivexlog.c:471
 #, c-format
 msgid "%s: no target directory specified\n"
 msgstr "%s: 没有指定目标目录\n"
 
-#: pg_basebackup.c:1858
+#: pg_basebackup.c:2149
 #, c-format
 msgid "%s: only tar mode backups can be compressed\n"
 msgstr "%s: 只有tar模式备份才能进行压缩\n"
 
-#: pg_basebackup.c:1868
+#: pg_basebackup.c:2159
 #, c-format
-#| msgid "%s: wal streaming can only be used in plain mode\n"
 msgid "%s: WAL streaming can only be used in plain mode\n"
 msgstr "%s: WAL 流操作只能在plain模式下使用\n"
 
-#: pg_basebackup.c:1879
+#: pg_basebackup.c:2171
+#, c-format
+#| msgid "%s: transaction log directory location must be an absolute path\n"
+msgid ""
+"%s: transaction log directory location can only be specified in plain mode\n"
+msgstr "%s: 事务日志目录的位置只能在简单模式里指定\n"
+
+#: pg_basebackup.c:2182
+#, c-format
+msgid "%s: transaction log directory location must be an absolute path\n"
+msgstr "%s: 事务日志目录的位置必须为绝对路径\n"
+
+#: pg_basebackup.c:2194
 #, c-format
 msgid "%s: this build does not support compression\n"
 msgstr "%s: 这个编译版本不支持压缩\n"
 
-#: pg_receivexlog.c:51
+#: pg_basebackup.c:2221
+#, c-format
+msgid "%s: could not create symbolic link \"%s\": %s\n"
+msgstr "%s: 无法创建符号链接 \"%s\": %s\n"
+
+#: pg_basebackup.c:2226
+#, c-format
+msgid "%s: symlinks are not supported on this platform"
+msgstr "%s: 在这个平台上不支持使用符号链接"
+
+#: pg_receivexlog.c:58
 #, c-format
 msgid ""
 "%s receives PostgreSQL streaming transaction logs.\n"
@@ -568,7 +671,7 @@ msgstr ""
 "%s 接收PostgreSQL的流事务日志.\n"
 "\n"
 
-#: pg_receivexlog.c:55
+#: pg_receivexlog.c:62 pg_recvlogical.c:73
 #, c-format
 msgid ""
 "\n"
@@ -577,182 +680,445 @@ msgstr ""
 "\n"
 "选项:\n"
 
-#: pg_receivexlog.c:56
+#: pg_receivexlog.c:63
 #, c-format
 msgid ""
 "  -D, --directory=DIR    receive transaction log files into this directory\n"
 msgstr "  -D, --directory=DIR    接收事务日志到指定的目录\n"
 
-#: pg_receivexlog.c:57
+#: pg_receivexlog.c:64 pg_recvlogical.c:78
 #, c-format
 msgid "  -n, --no-loop          do not loop on connection lost\n"
 msgstr "  -n, --no-loop          连接丢失时不进行循环处理\n"
 
-#: pg_receivexlog.c:81
+#: pg_receivexlog.c:65 pg_recvlogical.c:83
+#, c-format
+#| msgid ""
+#| "  -s, --status-interval=INTERVAL\n"
+#| "                         time between status packets sent to server (in "
+#| "seconds)\n"
+msgid ""
+"  -s, --status-interval=SECS\n"
+"                         time between status packets sent to server "
+"(default: %d)\n"
+msgstr ""
+"  -s, --status-interval=SECS\n"
+"                         发往服务器的状态包的时间间隔 (默认为: %d)\n"
+
+#: pg_receivexlog.c:67
+#, c-format
+msgid "  -S, --slot=SLOTNAME    replication slot to use\n"
+msgstr "  -S, --slot=SLOTNAME    用于复制的槽名\n"
+
+#: pg_receivexlog.c:89
 #, c-format
 msgid "%s: finished segment at %X/%X (timeline %u)\n"
 msgstr "%s: finished segment at %X/%X (timeline %u)\n"
 
-#: pg_receivexlog.c:94
+#: pg_receivexlog.c:102
 #, c-format
 msgid "%s: switched to timeline %u at %X/%X\n"
 msgstr "%s: 切换到时间表 %u 在 %X/%X\n"
 
-#: pg_receivexlog.c:103
+#: pg_receivexlog.c:111
 #, c-format
-#| msgid "%s: received interrupt signal, exiting.\n"
 msgid "%s: received interrupt signal, exiting\n"
 msgstr "%s: 接收到终断信号, 正在退出\n"
 
-#: pg_receivexlog.c:128
+#: pg_receivexlog.c:137
 #, c-format
 msgid "%s: could not open directory \"%s\": %s\n"
 msgstr "%s: 无法打开目录 \"%s\": %s\n"
 
-#: pg_receivexlog.c:157
-#, c-format
-msgid "%s: could not parse transaction log file name \"%s\"\n"
-msgstr "%s: 无法解析事务日志文件名: \"%s\"\n"
-
-#: pg_receivexlog.c:167
+#: pg_receivexlog.c:187
 #, c-format
 msgid "%s: could not stat file \"%s\": %s\n"
 msgstr "%s: 无法统计文件: \"%s\": %s\n"
 
-#: pg_receivexlog.c:185
+#: pg_receivexlog.c:195
 #, c-format
 msgid "%s: segment file \"%s\" has incorrect size %d, skipping\n"
 msgstr "%s: 段文件 \"%s\" 大小值: %d不正确, 跳过\n"
 
-#: pg_receivexlog.c:293
+#: pg_receivexlog.c:214
+#, c-format
+msgid "%s: could not read directory \"%s\": %s\n"
+msgstr "%s: 无法读取目录 \"%s\": %s\n"
+
+#: pg_receivexlog.c:221
+#, c-format
+#| msgid "%s: could not open directory \"%s\": %s\n"
+msgid "%s: could not close directory \"%s\": %s\n"
+msgstr "%s: 无法关闭目录 \"%s\": %s\n"
+
+#: pg_receivexlog.c:328
 #, c-format
 msgid "%s: starting log streaming at %X/%X (timeline %u)\n"
 msgstr "%s: 在时间点: %X/%X (时间安排%u)启动日志的流操作 \n"
 
-#: pg_receivexlog.c:373
+#: pg_receivexlog.c:409 pg_recvlogical.c:683
 #, c-format
 msgid "%s: invalid port number \"%s\"\n"
 msgstr "%s: 无效端口号 \"%s\"\n"
 
-#: pg_receivexlog.c:455
-#, fuzzy, c-format
+#: pg_receivexlog.c:494 pg_recvlogical.c:964
+#, c-format
 #| msgid "%s: disconnected.\n"
 msgid "%s: disconnected\n"
-msgstr "%s: 连接已断开.\n"
+msgstr "%s: 连接已断开\n"
 
 #. translator: check source for value for %d
-#: pg_receivexlog.c:462
+#: pg_receivexlog.c:501 pg_recvlogical.c:971
 #, c-format
-#| msgid "%s: disconnected. Waiting %d seconds to try again.\n"
 msgid "%s: disconnected; waiting %d seconds to try again\n"
 msgstr "%s: 连接已断开, 将于%d 秒后尝试重连.\n"
 
-#: receivelog.c:69
+#: pg_recvlogical.c:65
+#, c-format
+#| msgid ""
+#| "%s receives PostgreSQL streaming transaction logs.\n"
+#| "\n"
+msgid ""
+"%s receives PostgreSQL logical change streams.\n"
+"\n"
+msgstr ""
+"%s 接收PostgreSQL的逻辑改变流.\n"
+"\n"
+
+#: pg_recvlogical.c:69
+#, c-format
+msgid ""
+"\n"
+"Action to be performed:\n"
+msgstr ""
+"\n"
+"即将执行的动作:\n"
+
+#: pg_recvlogical.c:70
+#, c-format
+msgid ""
+"      --create-slot      create a new replication slot (for the slot's name "
+"see --slot)\n"
+msgstr "      --create-slot     创建新的复制槽(槽名请参考选项 --slot)\n"
+
+#: pg_recvlogical.c:71
+#, c-format
+msgid ""
+"      --drop-slot        drop the replication slot (for the slot's name see "
+"--slot)\n"
+msgstr "      --drop-slot        删除复制槽 (槽名请参考选项 --slot)\n"
+
+#: pg_recvlogical.c:72
+#, c-format
+msgid ""
+"      --start            start streaming in a replication slot (for the "
+"slot's name see --slot)\n"
+msgstr "      --start            复制槽中启动流复制(槽名请参考选项 --slot)\n"
+
+#: pg_recvlogical.c:74
+#, c-format
+#| msgid "  -f, --file=FILENAME          output file or directory name\n"
+msgid "  -f, --file=FILE        receive log into this file, - for stdout\n"
+msgstr "  -f, --file=FILE        接收日志到这个文件, - 为标准输出\n"
+
+#: pg_recvlogical.c:75
+#, c-format
+#| msgid ""
+#| "  -s, --status-interval=INTERVAL\n"
+#| "                         time between status packets sent to server (in "
+#| "seconds)\n"
+msgid ""
+"  -F  --fsync-interval=SECS\n"
+"                         time between fsyncs to the output file (default: "
+"%d)\n"
+msgstr ""
+"  -F  --fsync-interval=SECS\n"
+"                         写往输出文件的文件同步的时间间隔 (默认值为: %d)\n"
+
+#: pg_recvlogical.c:77
+#, c-format
+msgid ""
+"  -I, --startpos=LSN     where in an existing slot should the streaming "
+"start\n"
+msgstr "  -I, --startpos=LSN     在当前槽中流复制启动的起始位置\n"
+
+#: pg_recvlogical.c:79
+#, c-format
+msgid ""
+"  -o, --option=NAME[=VALUE]\n"
+"                         pass option NAME with optional value VALUE to the\n"
+"                         output plugin\n"
+msgstr ""
+"  -o, --option=NAME[=VALUE]\n"
+"                         选项NAME附带可选值VALUE给\n"
+"                         输出插件\n"
+
+#: pg_recvlogical.c:82
+#, c-format
+msgid "  -P, --plugin=PLUGIN    use output plugin PLUGIN (default: %s)\n"
+msgstr "  -P, --plugin=PLUGIN    使用输出插件PLUGIN (默认为: %s)\n"
+
+#: pg_recvlogical.c:85
+#, c-format
+msgid "  -S, --slot=SLOTNAME    name of the logical replication slot\n"
+msgstr "  -S, --slot=SLOTNAME   逻辑复制槽的名字\n"
+
+#: pg_recvlogical.c:90
+#, c-format
+#| msgid "  -d, --dbname=DBNAME       database to cluster\n"
+msgid "  -d, --dbname=DBNAME    database to connect to\n"
+msgstr "  -d, --dbname=DBNAME    要连接的目标数据库\n"
+
+#: pg_recvlogical.c:123
+#, c-format
+msgid "%s: confirming write up to %X/%X, flush to %X/%X (slot %s)\n"
+msgstr "%s: 确认上写至%X/%X, 并刷写回至 %X/%X (槽 %s)\n"
+
+#: pg_recvlogical.c:148 receivelog.c:340
+#, c-format
+msgid "%s: could not send feedback packet: %s"
+msgstr "%s: 无法发送回馈包: %s"
+
+#: pg_recvlogical.c:184
+#, c-format
+#| msgid "%s: could not fsync file \"%s\": %s\n"
+msgid "%s: could not fsync log file \"%s\": %s\n"
+msgstr "%s: 无法fsync同步日志文件\"%s\": %s\n"
+
+#: pg_recvlogical.c:223
+#, c-format
+#| msgid "%s: starting log streaming at %X/%X (timeline %u)\n"
+msgid "%s: starting log streaming at %X/%X (slot %s)\n"
+msgstr "%s:在%X/%X (槽 %s)位置启动日志流\n"
+
+#: pg_recvlogical.c:265
+#, c-format
+#| msgid "%s: streaming header too small: %d\n"
+msgid "%s: streaming initiated\n"
+msgstr "%s: 流已初始化\n"
+
+# command.c:1148
+#: pg_recvlogical.c:328
+#, c-format
+msgid "%s: could not open log file \"%s\": %s\n"
+msgstr "%s:无法开启日志档 \"%s\":%s\n"
+
+#: pg_recvlogical.c:397 receivelog.c:837
+#, c-format
+msgid "%s: select() failed: %s\n"
+msgstr "%s: select() 失败: %s\n"
+
+#: pg_recvlogical.c:406 receivelog.c:845
+#, c-format
+msgid "%s: could not receive data from WAL stream: %s"
+msgstr "%s: 无法接收来自WAL流的数据: %s"
+
+#: pg_recvlogical.c:447 pg_recvlogical.c:486 receivelog.c:912 receivelog.c:966
+#, c-format
+msgid "%s: streaming header too small: %d\n"
+msgstr "%s: 流头大小: %d 值太小\n"
+
+#: pg_recvlogical.c:469 receivelog.c:1072
+#, c-format
+msgid "%s: unrecognized streaming header: \"%c\"\n"
+msgstr "%s: 无法识别的流头: \"%c\"\n"
+
+#: pg_recvlogical.c:515 pg_recvlogical.c:529
+#, c-format
+#| msgid "%s: could not write %u bytes to WAL file \"%s\": %s\n"
+msgid "%s: could not write %u bytes to log file \"%s\": %s\n"
+msgstr "%s: 无法写入 %u 字节到日志文件 \"%s\": %s\n"
+
+#: pg_recvlogical.c:540 receivelog.c:627 receivelog.c:665
+#, c-format
+msgid "%s: unexpected termination of replication stream: %s"
+msgstr "%s: 流复制异常终止: %s"
+
+#: pg_recvlogical.c:662
+#, c-format
+#| msgid "%s: invalid status interval \"%s\"\n"
+msgid "%s: invalid fsync interval \"%s\"\n"
+msgstr "%s: 无效的fsync同步时间间隔值: \"%s\"\n"
+
+#: pg_recvlogical.c:703
+#, c-format
+#| msgid "%s: could not parse version \"%s\"\n"
+msgid "%s: could not parse start position \"%s\"\n"
+msgstr "%s: 无法解析起始位置\"%s\"\n"
+
+#: pg_recvlogical.c:784
+#, c-format
+#| msgid "%s: no operation specified\n"
+msgid "%s: no slot specified\n"
+msgstr "%s: 没有指定槽\n"
+
+#: pg_recvlogical.c:792
+#, c-format
+#| msgid "%s: no target directory specified\n"
+msgid "%s: no target file specified\n"
+msgstr "%s: 没有指定目标文件\n"
+
+#: pg_recvlogical.c:800
+#, c-format
+#| msgid "%s: no data directory specified\n"
+msgid "%s: no database specified\n"
+msgstr "%s: 没有指定数据库\n"
+
+#: pg_recvlogical.c:808
+#, c-format
+#| msgid "%s: no operation specified\n"
+msgid "%s: at least one action needs to be specified\n"
+msgstr "%s: 至少要指定一个操作\n"
+
+#: pg_recvlogical.c:816
+#, c-format
+msgid "%s: cannot use --create-slot or --start together with --drop-slot\n"
+msgstr ""
+"%s: 不能使用 --create-slot 选项或 同时使用--start和--drop-slot两个选项\n"
+
+#: pg_recvlogical.c:824
+#, c-format
+msgid "%s: cannot use --create-slot or --drop-slot together with --startpos\n"
+msgstr ""
+"%s: 不能使用 --create-slot 选项或 同时使用--drop-slot和--startpos两个选项\n"
+
+#: pg_recvlogical.c:878
+#, c-format
+#| msgid "%s: could not send replication command \"%s\": %s"
+msgid "%s: dropping replication slot \"%s\"\n"
+msgstr "%s: 删除复制槽\"%s\"\n"
+
+#: pg_recvlogical.c:894
+#, c-format
+#| msgid ""
+#| "%s: could not identify system: got %d rows and %d fields, expected %d "
+#| "rows and %d fields\n"
+msgid ""
+"%s: could not drop replication slot \"%s\": got %d rows and %d fields, "
+"expected %d rows and %d fields\n"
+msgstr "%s: 无法删除复制槽 \"%s\": 得到%d行%d列, 但期望值为%d行%d列\n"
+
+#: pg_recvlogical.c:912
+#, c-format
+#| msgid "%s: unexpected termination of replication stream: %s"
+msgid "%s: creating replication slot \"%s\"\n"
+msgstr "%s: 创建复制槽 \"%s\"\n"
+
+#: pg_recvlogical.c:929
+#, c-format
+#| msgid ""
+#| "%s: could not identify system: got %d rows and %d fields, expected %d "
+#| "rows and %d fields\n"
+msgid ""
+"%s: could not create replication slot \"%s\": got %d rows and %d fields, "
+"expected %d rows and %d fields\n"
+msgstr "%s: 无法创建复制槽 \"%s\": 得到%d行%d列, 但期望值为%d行%d列\n"
+
+#: receivelog.c:68
 #, c-format
 msgid "%s: could not open transaction log file \"%s\": %s\n"
 msgstr "%s: 无法打开事务日志文件 \"%s\": %s\n"
 
-#: receivelog.c:81
+#: receivelog.c:80
 #, c-format
 msgid "%s: could not stat transaction log file \"%s\": %s\n"
 msgstr "%s: 无法统计事务日志文件 \"%s\": %s\n"
 
-#: receivelog.c:95
+#: receivelog.c:94
 #, c-format
 msgid "%s: transaction log file \"%s\" has %d bytes, should be 0 or %d\n"
 msgstr "%s: 事务日志文件 \"%s\" 大小为 %d 字节, 正确值应该是 0 或 %d字节\n"
 
-#: receivelog.c:108
+#: receivelog.c:107
 #, c-format
 msgid "%s: could not pad transaction log file \"%s\": %s\n"
 msgstr "%s: 无法填充事务日志文件 \"%s\": %s\n"
 
-#: receivelog.c:121
+#: receivelog.c:120
 #, c-format
 msgid "%s: could not seek to beginning of transaction log file \"%s\": %s\n"
 msgstr "%s: 无法定位事务日志文件 \"%s\"的开始位置: %s\n"
 
-#: receivelog.c:147
+#: receivelog.c:146
 #, c-format
 msgid "%s: could not determine seek position in file \"%s\": %s\n"
 msgstr "%s: 无法确定文件 \"%s\"的当前位置: %s\n"
 
-#: receivelog.c:154 receivelog.c:344
+#: receivelog.c:153 receivelog.c:288 receivelog.c:933
 #, c-format
 msgid "%s: could not fsync file \"%s\": %s\n"
 msgstr "%s: 无法对文件 \"%s\"进行fsync同步: %s\n"
 
-#: receivelog.c:181
+#: receivelog.c:179
 #, c-format
 msgid "%s: could not rename file \"%s\": %s\n"
 msgstr "%s: 无法重命名文件 \"%s\": %s\n"
 
-#: receivelog.c:188
+#: receivelog.c:186
 #, c-format
-#| msgid "%s: not renaming \"%s\", segment is not complete\n"
 msgid "%s: not renaming \"%s%s\", segment is not complete\n"
 msgstr "%s: 没有重命名 \"%s%s\", 段不完整\n"
 
 # command.c:1148
-#: receivelog.c:277
+#: receivelog.c:219
 #, c-format
-#| msgid "%s: could not open log file \"%s\": %s\n"
 msgid "%s: could not open timeline history file \"%s\": %s\n"
 msgstr "%s:无法打开时间表历史文件\"%s\":%s\n"
 
-#: receivelog.c:304
+#: receivelog.c:246
 #, c-format
 msgid "%s: server reported unexpected history file name for timeline %u: %s\n"
 msgstr "%s: 服务器为时间表报告生成的意外历史文件名 %u:%s\n"
 
-#: receivelog.c:319
+#: receivelog.c:263
 #, c-format
-#| msgid "%s: could not create file \"%s\": %s\n"
 msgid "%s: could not create timeline history file \"%s\": %s\n"
 msgstr "%s: 无法创建时间表历史文件 \"%s\": %s\n"
 
-#: receivelog.c:336
+#: receivelog.c:280
 #, c-format
-#| msgid "%s: could not write to file \"%s\": %s\n"
 msgid "%s: could not write timeline history file \"%s\": %s\n"
 msgstr "%s: 无法写时间表历史文件 \"%s\": %s\n"
 
-#: receivelog.c:363
+#: receivelog.c:305
 #, c-format
-#| msgid "could not rename file \"%s\" to \"%s\": %m"
 msgid "%s: could not rename file \"%s\" to \"%s\": %s\n"
 msgstr "%s: 无法将文件 \"%s\" 重命名为 \"%s\":%s\n"
 
-#: receivelog.c:436
+#: receivelog.c:374
 #, c-format
-msgid "%s: could not send feedback packet: %s"
-msgstr "%s: 无法发送回馈包: %s"
+#| msgid ""
+#| "%s: incompatible server version %s; streaming is only supported with "
+#| "server version %s\n"
+msgid ""
+"%s: incompatible server version %s; client does not support streaming from "
+"server versions older than %s\n"
+msgstr "%s: 不兼容的服务器版本号 %s; 当服务器版本低于%s时客户端不支持流复制\n"
 
-#: receivelog.c:470
+#: receivelog.c:384
 #, c-format
-#| msgid "No per-database role settings support in this server version.\n"
+#| msgid ""
+#| "%s: incompatible server version %s; streaming is only supported with "
+#| "server version %s\n"
 msgid ""
-"%s: incompatible server version %s; streaming is only supported with server "
-"version %s\n"
-msgstr "%s: ä¸\8då\85¼å®¹ç\9a\84æ\9c\8då¤\87å\99¨ç\89\88æ\9c¬å\8f· %s; å\8fªæ\9c\89å\9c¨ç\89\88æ\9c¬ä¸º%sç\9a\84æ\9c\8då\8a¡å\99¨ä¸­æ\89\8dæ\94¯æ\8c\81æµ\81æ\93\8dä½\9c\n"
+"%s: incompatible server version %s; client does not support streaming from "
+"server versions newer than %s\n"
+msgstr "%s: ä¸\8då\85¼å®¹ç\9a\84æ\9c\8då\8a¡å\99¨ç\89\88æ\9c¬å\8f· %s; å½\93æ\9c\8då\8a¡å\99¨ç\89\88æ\9c¬é«\98äº\8e%sæ\97¶å®¢æ\88·ç«¯ä¸\8dæ\94¯æ\8c\81æµ\81å¤\8då\88\n"
 
-#: receivelog.c:548
+#: receivelog.c:486
 #, c-format
 msgid ""
 "%s: system identifier does not match between base backup and streaming "
 "connection\n"
 msgstr "%s: 基础备份和流连接的系统标识符不匹配\n"
 
-#: receivelog.c:556
+#: receivelog.c:494
 #, c-format
 msgid "%s: starting timeline %u is not present in the server\n"
 msgstr "%s: 服务器上没有起始时间表 %u\n"
 
-#: receivelog.c:590
+#: receivelog.c:534
 #, c-format
-#| msgid ""
-#| "%s: could not identify system: got %d rows and %d fields, expected %d "
-#| "rows and %d fields\n"
 msgid ""
 "%s: unexpected response to TIMELINE_HISTORY command: got %d rows and %d "
 "fields, expected %d rows and %d fields\n"
@@ -760,119 +1126,92 @@ msgstr ""
 "%s: 获得命令TIMELINE_HISTORY的意外响应: 得到 %d 行和 %d 列, 期望值为: %d 行"
 "和 %d 列\n"
 
-#: receivelog.c:663
+#: receivelog.c:608
 #, c-format
 msgid ""
 "%s: server reported unexpected next timeline %u, following timeline %u\n"
 msgstr "%s: 服务器报出的下次意外时间表 %u, 紧跟时间表 %u之后\n"
 
-#: receivelog.c:670
+#: receivelog.c:615
 #, c-format
 msgid ""
 "%s: server stopped streaming timeline %u at %X/%X, but reported next "
 "timeline %u to begin at %X/%X\n"
 msgstr ""
-"%s: 服务器在%X/%X时停止流操作时间表%u, 但是报出将在%X/%X时开始下一个时间"
-"表%u\n"
+"%1$s: 服务器在%3$X/%4$X时停止流操作时间表%2$u, 但是报出将在%6$X/%7$X时开始下"
+"一个时间表%5$u\n"
 
-#: receivelog.c:682 receivelog.c:717
-#, c-format
-msgid "%s: unexpected termination of replication stream: %s"
-msgstr "%s: 流复制异常终止: %s"
-
-#: receivelog.c:708
+#: receivelog.c:656
 #, c-format
 msgid "%s: replication stream was terminated before stop point\n"
 msgstr "%s: 流复制在停止点之前异常终止\n"
 
-#: receivelog.c:756
+#: receivelog.c:705
 #, c-format
-#| msgid ""
-#| "%s: could not identify system: got %d rows and %d fields, expected %d "
-#| "rows and %d fields\n"
 msgid ""
 "%s: unexpected result set after end-of-timeline: got %d rows and %d fields, "
 "expected %d rows and %d fields\n"
 msgstr ""
 "%s: 终点时间表的意外结果集: 得到 %d 行和 %d 列, 期望值为: %d 行和 %d 列\n"
 
-#: receivelog.c:766
+#: receivelog.c:715
 #, c-format
-#| msgid "%s: could not parse transaction log location \"%s\"\n"
 msgid "%s: could not parse next timeline's starting point \"%s\"\n"
 msgstr "%s: 无法解析下次时间表的起始点\"%s\"\n"
 
-#: receivelog.c:821 receivelog.c:923 receivelog.c:1088
+#: receivelog.c:770 receivelog.c:873 receivelog.c:1059
 #, c-format
-#| msgid "%s: could not send feedback packet: %s"
 msgid "%s: could not send copy-end packet: %s"
 msgstr "%s: 无法发送副本结束包: %s"
 
-#: receivelog.c:888
-#, c-format
-msgid "%s: select() failed: %s\n"
-msgstr "%s: select() 失败: %s\n"
-
-#: receivelog.c:896
-#, c-format
-msgid "%s: could not receive data from WAL stream: %s"
-msgstr "%s: 无法接收来自WAL流的数据: %s"
-
-#: receivelog.c:960 receivelog.c:995
-#, c-format
-msgid "%s: streaming header too small: %d\n"
-msgstr "%s: 流头大小: %d 值太小\n"
-
-#: receivelog.c:1014
+#: receivelog.c:985
 #, c-format
 msgid "%s: received transaction log record for offset %u with no file open\n"
 msgstr "%s: 偏移位置 %u 处接收到的事务日志记录没有打开文件\n"
 
-#: receivelog.c:1026
+#: receivelog.c:997
 #, c-format
 msgid "%s: got WAL data offset %08x, expected %08x\n"
 msgstr "%s: 得到WAL数据偏移 %08x, 期望值为 %08x\n"
 
-#: receivelog.c:1063
+#: receivelog.c:1034
 #, c-format
 msgid "%s: could not write %u bytes to WAL file \"%s\": %s\n"
 msgstr "%s: 无法写入 %u 字节到 WAL 文件 \"%s\": %s\n"
 
-#: receivelog.c:1101
-#, c-format
-msgid "%s: unrecognized streaming header: \"%c\"\n"
-msgstr "%s: 无法识别的流头: \"%c\"\n"
-
-#: streamutil.c:135
+#: streamutil.c:142
 msgid "Password: "
 msgstr "口令: "
 
-#: streamutil.c:148
+#: streamutil.c:166
 #, c-format
 msgid "%s: could not connect to server\n"
 msgstr "%s: 无法连接到服务器\n"
 
-#: streamutil.c:164
+#: streamutil.c:184
 #, c-format
 msgid "%s: could not connect to server: %s\n"
 msgstr "%s: 无法连接到服务器: %s\n"
 
-#: streamutil.c:188
+#: streamutil.c:208
 #, c-format
 msgid "%s: could not determine server setting for integer_datetimes\n"
 msgstr "%s: 无法确定服务器上integer_datetimes的配置\n"
 
-#: streamutil.c:201
+#: streamutil.c:221
 #, c-format
 msgid "%s: integer_datetimes compile flag does not match server\n"
 msgstr "%s: integer_datetimes编译开关与服务器端不匹配\n"
 
-#~ msgid "%s: keepalive message has incorrect size %d\n"
-#~ msgstr "%s: keepalive(保持活连接)的消息大小 %d 不正确 \n"
+#~ msgid "%s: no start point returned from server\n"
+#~ msgstr "%s: 服务器没有返回起始点\n"
 
 #~ msgid ""
 #~ "%s: timeline does not match between base backup and streaming connection\n"
 #~ msgstr "%s: 基础备份和流连接的时间安排不匹配\n"
 
-#~ msgid "%s: no start point returned from server\n"
-#~ msgstr "%s: 服务器没有返回起始点\n"
+#~ msgid "%s: keepalive message has incorrect size %d\n"
+#~ msgstr "%s: keepalive(保持活连接)的消息大小 %d 不正确 \n"
+
+#~ msgid "%s: could not parse transaction log file name \"%s\"\n"
+#~ msgstr "%s: 无法解析事务日志文件名: \"%s\"\n"
index e33866ecb8bf16a1aafdbb8f76f76f85545092e4..b1bf3c65879abcc034f04fd0d440292e39812567 100644 (file)
@@ -5,8 +5,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pg_controldata (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2013-09-02 00:28+0000\n"
-"PO-Revision-Date: 2013-09-02 14:28+0800\n"
+"POT-Creation-Date: 2014-11-22 21:12+0000\n"
+"PO-Revision-Date: 2014-11-24 17:54+0800\n"
 "Last-Translator: Xiong He <iihero@qq.com>\n"
 "Language-Team: Chinese (Simplified)\n"
 "Language: zh_CN\n"
@@ -104,31 +104,31 @@ msgstr "在运行中"
 msgid "unrecognized status code"
 msgstr "不被认可的状态码"
 
-#: pg_controldata.c:81
+#: pg_controldata.c:83
 msgid "unrecognized wal_level"
 msgstr "参数wal_level的值无法识别"
 
-#: pg_controldata.c:126
+#: pg_controldata.c:128
 #, c-format
 msgid "%s: no data directory specified\n"
 msgstr "%s: 没有指定数据目录\n"
 
-#: pg_controldata.c:127
+#: pg_controldata.c:129
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "用 \"%s --help\" 显示更多的信息.\n"
 
-#: pg_controldata.c:135
+#: pg_controldata.c:137
 #, c-format
 msgid "%s: could not open file \"%s\" for reading: %s\n"
 msgstr "%s: 无法打开文件 \"%s\" 读取信息: %s\n"
 
-#: pg_controldata.c:142
+#: pg_controldata.c:144
 #, c-format
 msgid "%s: could not read file \"%s\": %s\n"
 msgstr "%s: 无法读取文件 \"%s\": %s\n"
 
-#: pg_controldata.c:156
+#: pg_controldata.c:158
 #, c-format
 msgid ""
 "WARNING: Calculated CRC checksum does not match value stored in file.\n"
@@ -141,12 +141,12 @@ msgstr ""
 "下面的结果是不可靠的.\n"
 "\n"
 
-#: pg_controldata.c:190
+#: pg_controldata.c:192
 #, c-format
 msgid "pg_control version number:            %u\n"
 msgstr "pg_control 版本:                      %u\n"
 
-#: pg_controldata.c:193
+#: pg_controldata.c:195
 #, c-format
 msgid ""
 "WARNING: possible byte ordering mismatch\n"
@@ -160,261 +160,288 @@ msgstr ""
 "在那种情况下结果将会是不正确的,并且所安装的PostgreSQL\n"
 "将会与这个数据目录不兼容\n"
 
-#: pg_controldata.c:197
+#: pg_controldata.c:199
 #, c-format
 msgid "Catalog version number:               %u\n"
 msgstr "Catalog 版本:                         %u\n"
 
-#: pg_controldata.c:199
+#: pg_controldata.c:201
 #, c-format
 msgid "Database system identifier:           %s\n"
 msgstr "数据库系统标识符:                     %s\n"
 
-#: pg_controldata.c:201
+#: pg_controldata.c:203
 #, c-format
 msgid "Database cluster state:               %s\n"
 msgstr "数据库簇状态:                         %s\n"
 
-#: pg_controldata.c:203
+#: pg_controldata.c:205
 #, c-format
 msgid "pg_control last modified:             %s\n"
 msgstr "pg_control 最后修改:                  %s\n"
 
-#: pg_controldata.c:205
+#: pg_controldata.c:207
 #, c-format
 msgid "Latest checkpoint location:           %X/%X\n"
 msgstr "最新检查点位置:                       %X/%X\n"
 
-#: pg_controldata.c:208
+#: pg_controldata.c:210
 #, c-format
 msgid "Prior checkpoint location:            %X/%X\n"
 msgstr "优先检查点位置:                       %X/%X\n"
 
-#: pg_controldata.c:211
+#: pg_controldata.c:213
 #, c-format
 msgid "Latest checkpoint's REDO location:    %X/%X\n"
 msgstr "最新检查点的 REDO 位置:               %X/%X\n"
 
-#: pg_controldata.c:214
+#: pg_controldata.c:216
 #, c-format
-#| msgid "Latest checkpoint's REDO location:    %X/%X\n"
 msgid "Latest checkpoint's REDO WAL file:    %s\n"
 msgstr "最新检查点的重做日志文件: %s\n"
 
-#: pg_controldata.c:216
+#: pg_controldata.c:218
 #, c-format
 msgid "Latest checkpoint's TimeLineID:       %u\n"
 msgstr "最新检查点的 TimeLineID:              %u\n"
 
-#: pg_controldata.c:218
+#: pg_controldata.c:220
 #, c-format
-#| msgid "Latest checkpoint's TimeLineID:       %u\n"
 msgid "Latest checkpoint's PrevTimeLineID:   %u\n"
 msgstr "最新检查点的PrevTimeLineID: %u\n"
 
-#: pg_controldata.c:220
+#: pg_controldata.c:222
 #, c-format
 msgid "Latest checkpoint's full_page_writes: %s\n"
 msgstr "最新检查点的full_page_writes: %s\n"
 
 # help.c:48
-#: pg_controldata.c:221
+#: pg_controldata.c:223 pg_controldata.c:264
 msgid "off"
 msgstr "关闭"
 
 # help.c:48
-#: pg_controldata.c:221
+#: pg_controldata.c:223 pg_controldata.c:264
 msgid "on"
 msgstr "开启"
 
-#: pg_controldata.c:222
+#: pg_controldata.c:224
 #, c-format
 msgid "Latest checkpoint's NextXID:          %u/%u\n"
 msgstr "最新检查点的 NextXID:            %u/%u\n"
 
-#: pg_controldata.c:225
+#: pg_controldata.c:227
 #, c-format
 msgid "Latest checkpoint's NextOID:          %u\n"
 msgstr "最新检查点的 NextOID:                 %u\n"
 
-#: pg_controldata.c:227
+#: pg_controldata.c:229
 #, c-format
 msgid "Latest checkpoint's NextMultiXactId:  %u\n"
 msgstr "最新检查点的NextMultiXactId: %u\n"
 
-#: pg_controldata.c:229
+#: pg_controldata.c:231
 #, c-format
 msgid "Latest checkpoint's NextMultiOffset:  %u\n"
 msgstr "最新检查点的NextMultiOffsetD: %u\n"
 
-#: pg_controldata.c:231
+#: pg_controldata.c:233
 #, c-format
 msgid "Latest checkpoint's oldestXID:        %u\n"
 msgstr "最新检查点的oldestXID:            %u\n"
 
-#: pg_controldata.c:233
+#: pg_controldata.c:235
 #, c-format
 msgid "Latest checkpoint's oldestXID's DB:   %u\n"
 msgstr "最新检查点的oldestXID所在的数据库:%u\n"
 
-#: pg_controldata.c:235
+#: pg_controldata.c:237
 #, c-format
 msgid "Latest checkpoint's oldestActiveXID:  %u\n"
 msgstr "最新检查点检查oldestActiveXID:  %u\n"
 
-#: pg_controldata.c:237
+#: pg_controldata.c:239
 #, c-format
-#| msgid "Latest checkpoint's oldestActiveXID:  %u\n"
 msgid "Latest checkpoint's oldestMultiXid:   %u\n"
 msgstr "最新检查点检查oldestMultiXid:  %u\n"
 
-#: pg_controldata.c:239
+#: pg_controldata.c:241
 #, c-format
-#| msgid "Latest checkpoint's oldestXID's DB:   %u\n"
 msgid "Latest checkpoint's oldestMulti's DB: %u\n"
 msgstr "最新检查点的oldestMulti所在的数据库:%u\n"
 
-#: pg_controldata.c:241
+#: pg_controldata.c:243
 #, c-format
 msgid "Time of latest checkpoint:            %s\n"
 msgstr "最新检查点的时间:                     %s\n"
 
-#: pg_controldata.c:243
+#: pg_controldata.c:245
 #, c-format
 msgid "Fake LSN counter for unlogged rels:   %X/%X\n"
 msgstr "不带日志的关系: %X/%X使用虚假的LSN计数器\n"
 
-#: pg_controldata.c:246
+#: pg_controldata.c:248
 #, c-format
 msgid "Minimum recovery ending location:     %X/%X\n"
 msgstr "最小恢复结束位置: %X/%X\n"
 
-#: pg_controldata.c:249
+#: pg_controldata.c:251
 #, c-format
-#| msgid "Minimum recovery ending location:     %X/%X\n"
 msgid "Min recovery ending loc's timeline:   %u\n"
 msgstr "最小恢复结束位置时间表: %u\n"
 
-#: pg_controldata.c:251
+#: pg_controldata.c:253
 #, c-format
 msgid "Backup start location:                %X/%X\n"
 msgstr "开始进行备份的点位置:                       %X/%X\n"
 
-#: pg_controldata.c:254
+#: pg_controldata.c:256
 #, c-format
 msgid "Backup end location:                  %X/%X\n"
 msgstr "备份的最终位置:                  %X/%X\n"
 
-#: pg_controldata.c:257
+#: pg_controldata.c:259
 #, c-format
 msgid "End-of-backup record required:        %s\n"
 msgstr "需要终止备份的记录:        %s\n"
 
-#: pg_controldata.c:258
+#: pg_controldata.c:260
 msgid "no"
 msgstr "否"
 
-#: pg_controldata.c:258
+#: pg_controldata.c:260
 msgid "yes"
 msgstr "是"
 
-#: pg_controldata.c:259
+#: pg_controldata.c:261
 #, c-format
 msgid "Current wal_level setting:            %s\n"
 msgstr "参数wal_level的当前设置:         %s\n"
 
-#: pg_controldata.c:261
+#: pg_controldata.c:263
+#, c-format
+#| msgid "Current wal_level setting:            %s\n"
+msgid "Current wal_log_hints setting:        %s\n"
+msgstr "当前的 wal_log_hints 设置:        %s\n"
+
+#: pg_controldata.c:265
 #, c-format
 msgid "Current max_connections setting:      %d\n"
 msgstr "参数max_connections的当前设置:   %d\n"
 
-#: pg_controldata.c:263
+#: pg_controldata.c:267
+#, c-format
+#| msgid "Current max_prepared_xacts setting:   %d\n"
+msgid "Current max_worker_processes setting: %d\n"
+msgstr "参数 max_worker_processes 的当前设置:   %d\n"
+
+#: pg_controldata.c:269
 #, c-format
 msgid "Current max_prepared_xacts setting:   %d\n"
 msgstr "参数 max_prepared_xacts的当前设置:   %d\n"
 
-#: pg_controldata.c:265
+#: pg_controldata.c:271
 #, c-format
 msgid "Current max_locks_per_xact setting:   %d\n"
 msgstr "参数max_locks_per_xact setting的当前设置:   %d\n"
 
-#: pg_controldata.c:267
+#: pg_controldata.c:273
 #, c-format
 msgid "Maximum data alignment:               %u\n"
 msgstr "最大数据校准:     %u\n"
 
-#: pg_controldata.c:270
+#: pg_controldata.c:276
 #, c-format
 msgid "Database block size:                  %u\n"
 msgstr "数据库块大小:                         %u\n"
 
-#: pg_controldata.c:272
+#: pg_controldata.c:278
 #, c-format
 msgid "Blocks per segment of large relation: %u\n"
 msgstr "大关系的每段块数:                     %u\n"
 
-#: pg_controldata.c:274
+#: pg_controldata.c:280
 #, c-format
 msgid "WAL block size:                       %u\n"
 msgstr "WAL的块大小:    %u\n"
 
-#: pg_controldata.c:276
+#: pg_controldata.c:282
 #, c-format
 msgid "Bytes per WAL segment:                %u\n"
 msgstr "每一个 WAL 段字节数:                  %u\n"
 
-#: pg_controldata.c:278
+#: pg_controldata.c:284
 #, c-format
 msgid "Maximum length of identifiers:        %u\n"
 msgstr "标识符的最大长度:                     %u\n"
 
-#: pg_controldata.c:280
+#: pg_controldata.c:286
 #, c-format
 msgid "Maximum columns in an index:          %u\n"
 msgstr "在索引中可允许使用最大的列数:    %u\n"
 
-#: pg_controldata.c:282
+#: pg_controldata.c:288
 #, c-format
 msgid "Maximum size of a TOAST chunk:        %u\n"
 msgstr "TOAST区块的最大长度:                %u\n"
 
-#: pg_controldata.c:284
+#: pg_controldata.c:290
+#, c-format
+#| msgid "Maximum size of a TOAST chunk:        %u\n"
+msgid "Size of a large-object chunk:         %u\n"
+msgstr "大对象区块的大小:         %u\n"
+
+#: pg_controldata.c:292
 #, c-format
 msgid "Date/time type storage:               %s\n"
 msgstr "日期/时间 类型存储:                   %s\n"
 
-#: pg_controldata.c:285
+#: pg_controldata.c:293
 msgid "64-bit integers"
 msgstr "64位整数"
 
-#: pg_controldata.c:285
+#: pg_controldata.c:293
 msgid "floating-point numbers"
 msgstr "浮点数"
 
-#: pg_controldata.c:286
+#: pg_controldata.c:294
 #, c-format
 msgid "Float4 argument passing:              %s\n"
 msgstr "正在传递Flloat4类型的参数:           %s\n"
 
-#: pg_controldata.c:287 pg_controldata.c:289
+#: pg_controldata.c:295 pg_controldata.c:297
 msgid "by reference"
 msgstr "由引用"
 
-#: pg_controldata.c:287 pg_controldata.c:289
+#: pg_controldata.c:295 pg_controldata.c:297
 msgid "by value"
 msgstr "由值"
 
-#: pg_controldata.c:288
+#: pg_controldata.c:296
 #, c-format
 msgid "Float8 argument passing:              %s\n"
 msgstr "正在传递Flloat8类型的参数:                   %s\n"
 
-#: pg_controldata.c:290
+#: pg_controldata.c:298
 #, c-format
-#| msgid "Catalog version number:               %u\n"
 msgid "Data page checksum version:           %u\n"
 msgstr "数据页校验和版本:  %u\n"
 
+#~ msgid "Latest checkpoint's StartUpID:        %u\n"
+#~ msgstr "最新检查点的 StartUpID:               %u\n"
+
+#~ msgid "LC_CTYPE:                             %s\n"
+#~ msgstr "LC_CTYPE:                             %s\n"
+
+#~ msgid "LC_COLLATE:                           %s\n"
+#~ msgstr "LC_COLLATE:                           %s\n"
+
+#~ msgid "Maximum number of function arguments: %u\n"
+#~ msgstr "函数参数的最大个数:                   %u\n"
+
+#~ msgid "Latest checkpoint's UNDO location:    %X/%X\n"
+#~ msgstr "最新检查点的 UNDO 位置:               %X/%X\n"
+
 #~ msgid ""
 #~ "Usage:\n"
 #~ "  %s [OPTION] [DATADIR]\n"
@@ -429,18 +456,3 @@ msgstr "数据页校验和版本:  %u\n"
 #~ "选项:\n"
 #~ "  --help         显示此帮助信息, 然后退出\n"
 #~ "  --version      显示 pg_controldata 的版本, 然后退出\n"
-
-#~ msgid "Latest checkpoint's UNDO location:    %X/%X\n"
-#~ msgstr "最新检查点的 UNDO 位置:               %X/%X\n"
-
-#~ msgid "Maximum number of function arguments: %u\n"
-#~ msgstr "函数参数的最大个数:                   %u\n"
-
-#~ msgid "LC_COLLATE:                           %s\n"
-#~ msgstr "LC_COLLATE:                           %s\n"
-
-#~ msgid "LC_CTYPE:                             %s\n"
-#~ msgstr "LC_CTYPE:                             %s\n"
-
-#~ msgid "Latest checkpoint's StartUpID:        %u\n"
-#~ msgstr "最新检查点的 StartUpID:               %u\n"
index 1c4a811790ee0dcd93d7b265580ee40351e64abb..61e87071ffb4729ca9f175f8efaf71a8abc5b5bf 100644 (file)
@@ -6,8 +6,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pg_ctl (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2013-09-02 00:26+0000\n"
-"PO-Revision-Date: 2013-09-02 14:39+0800\n"
+"POT-Creation-Date: 2014-11-22 21:12+0000\n"
+"PO-Revision-Date: 2014-12-06 13:11+0800\n"
 "Last-Translator: Xiong He <iihero@qq.com>\n"
 "Language-Team: Chinese (Simplified)\n"
 "Language: zh_CN\n"
@@ -16,112 +16,130 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.5.4\n"
 
-#: ../../common/fe_memutils.c:33 ../../common/fe_memutils.c:60
-#: ../../common/fe_memutils.c:83
-#, c-format
-msgid "out of memory\n"
-msgstr "内存溢出\n"
-
-# common.c:78
-#: ../../common/fe_memutils.c:77
-#, c-format
-#| msgid "pg_strdup: cannot duplicate null pointer (internal error)\n"
-msgid "cannot duplicate null pointer (internal error)\n"
-msgstr "无法复制空指针 (内部错误)\n"
-
-#: ../../port/exec.c:127 ../../port/exec.c:241 ../../port/exec.c:284
+#: ../../common/exec.c:127 ../../common/exec.c:241 ../../common/exec.c:284
 #, c-format
 msgid "could not identify current directory: %s"
 msgstr "无法确认当前目录: %s"
 
 # command.c:122
-#: ../../port/exec.c:146
+#: ../../common/exec.c:146
 #, c-format
 msgid "invalid binary \"%s\""
 msgstr "无效的二进制码 \"%s\""
 
 # command.c:1103
-#: ../../port/exec.c:195
+#: ../../common/exec.c:195
 #, c-format
 msgid "could not read binary \"%s\""
 msgstr "无法读取二进制码 \"%s\""
 
-#: ../../port/exec.c:202
+#: ../../common/exec.c:202
 #, c-format
 msgid "could not find a \"%s\" to execute"
 msgstr "未能找到一个 \"%s\" 来执行"
 
-#: ../../port/exec.c:257 ../../port/exec.c:293
+#: ../../common/exec.c:257 ../../common/exec.c:293
 #, c-format
-#| msgid "could not change directory to \"%s\": %m"
 msgid "could not change directory to \"%s\": %s"
 msgstr "无法跳转到目录 \"%s\" 中: %s"
 
-#: ../../port/exec.c:272
+#: ../../common/exec.c:272
 #, c-format
 msgid "could not read symbolic link \"%s\""
 msgstr "无法读取符号链结 \"%s\""
 
-#: ../../port/exec.c:523
+#: ../../common/exec.c:523
 #, c-format
-#| msgid "query failed: %s"
 msgid "pclose failed: %s"
 msgstr "pclose调用失败: %s"
 
-#: ../../port/wait_error.c:47
+#: ../../common/fe_memutils.c:33 ../../common/fe_memutils.c:60
+#: ../../common/fe_memutils.c:83 ../../port/path.c:598 ../../port/path.c:636
+#: ../../port/path.c:653
+#, c-format
+msgid "out of memory\n"
+msgstr "内存溢出\n"
+
+# common.c:78
+#: ../../common/fe_memutils.c:77
+#, c-format
+msgid "cannot duplicate null pointer (internal error)\n"
+msgstr "无法复制空指针 (内部错误)\n"
+
+#: ../../common/wait_error.c:47
 #, c-format
-#| msgid "could not execute plan"
 msgid "command not executable"
 msgstr "无法执行命令"
 
-#: ../../port/wait_error.c:51
+#: ../../common/wait_error.c:51
 #, c-format
-#| msgid "case not found"
 msgid "command not found"
 msgstr "没有找到命令"
 
-#: ../../port/wait_error.c:56
+#: ../../common/wait_error.c:56
 #, c-format
 msgid "child process exited with exit code %d"
 msgstr "子进程已退出, 退出码为 %d"
 
-#: ../../port/wait_error.c:63
+#: ../../common/wait_error.c:63
 #, c-format
 msgid "child process was terminated by exception 0x%X"
 msgstr "子进程被例外(exception) 0x%X 终止"
 
-#: ../../port/wait_error.c:73
+#: ../../common/wait_error.c:73
 #, c-format
 msgid "child process was terminated by signal %s"
 msgstr "子进程被信号 %s 终止"
 
-#: ../../port/wait_error.c:77
+#: ../../common/wait_error.c:77
 #, c-format
 msgid "child process was terminated by signal %d"
 msgstr "子进程被信号 %d 终止"
 
-#: ../../port/wait_error.c:82
+#: ../../common/wait_error.c:82
 #, c-format
 msgid "child process exited with unrecognized status %d"
 msgstr "子进程已退出, 未知状态 %d"
 
-#: pg_ctl.c:253
+#: ../../port/path.c:620
+#, c-format
+#| msgid "could not identify current directory: %s"
+msgid "could not get current working directory: %s\n"
+msgstr "无法得到当前工作目录: %s\n"
+
+#: pg_ctl.c:259
+#, c-format
+#| msgid "directory \"%s\" does not exist"
+msgid "%s: directory \"%s\" does not exist\n"
+msgstr "%s: 目录 \"%s\" 不存在\n"
+
+#: pg_ctl.c:262
+#, c-format
+msgid "%s: could not access directory \"%s\": %s\n"
+msgstr "%s: 无法访问目录 \"%s\": %s\n"
+
+#: pg_ctl.c:275
+#, c-format
+#| msgid "specified data directory \"%s\" is not a directory"
+msgid "%s: directory \"%s\" is not a database cluster directory\n"
+msgstr "%s: 目录 \"%s\"不是一个数据库集群目录\n"
+
+#: pg_ctl.c:288
 #, c-format
 msgid "%s: could not open PID file \"%s\": %s\n"
 msgstr "%s: 无法打开 PID 文件 \"%s\": %s\n"
 
-#: pg_ctl.c:262
+#: pg_ctl.c:297
 #, c-format
-#| msgid "%s: PID file \"%s\" does not exist\n"
 msgid "%s: the PID file \"%s\" is empty\n"
 msgstr "%s: PID 文件 \"%s\" 为空\n"
 
-#: pg_ctl.c:265
+#: pg_ctl.c:300
 #, c-format
 msgid "%s: invalid data in PID file \"%s\"\n"
 msgstr "%s: PID文件 \"%s\" 中存在无效数据\n"
 
-#: pg_ctl.c:477
+#: pg_ctl.c:531
 #, c-format
 msgid ""
 "\n"
@@ -130,7 +148,7 @@ msgstr ""
 "\n"
 "%s: -w 选项不能用于9.1以前版本的服务器启动\n"
 
-#: pg_ctl.c:547
+#: pg_ctl.c:601
 #, c-format
 msgid ""
 "\n"
@@ -139,7 +157,7 @@ msgstr ""
 "\n"
 "%s: -w 选项不能用于相对套接字目录\n"
 
-#: pg_ctl.c:595
+#: pg_ctl.c:656
 #, c-format
 msgid ""
 "\n"
@@ -148,22 +166,22 @@ msgstr ""
 "\n"
 "%s: 数据目录里可能正在运行着一个已经存在的postmaster进程\n"
 
-#: pg_ctl.c:645
+#: pg_ctl.c:706
 #, c-format
 msgid "%s: cannot set core file size limit; disallowed by hard limit\n"
 msgstr "%s: 不能设置核心文件大小的限制;磁盘限额不允许\n"
 
-#: pg_ctl.c:670
+#: pg_ctl.c:731
 #, c-format
 msgid "%s: could not read file \"%s\"\n"
 msgstr "%s: 无法读取文件 \"%s\"\n"
 
-#: pg_ctl.c:675
+#: pg_ctl.c:736
 #, c-format
 msgid "%s: option file \"%s\" must have exactly one line\n"
 msgstr "%s: 选项文件 \"%s\" 只能有一行\n"
 
-#: pg_ctl.c:723
+#: pg_ctl.c:787
 #, c-format
 msgid ""
 "The program \"%s\" is needed by %s but was not found in the\n"
@@ -174,7 +192,7 @@ msgstr ""
 "\n"
 "请检查您的安装.\n"
 
-#: pg_ctl.c:729
+#: pg_ctl.c:793
 #, c-format
 msgid ""
 "The program \"%s\" was found by \"%s\"\n"
@@ -185,42 +203,42 @@ msgstr ""
 "\n"
 "检查您的安装.\n"
 
-#: pg_ctl.c:762
+#: pg_ctl.c:826
 #, c-format
 msgid "%s: database system initialization failed\n"
 msgstr "%s: 数据库系统初始化失败\n"
 
-#: pg_ctl.c:777
+#: pg_ctl.c:841
 #, c-format
 msgid "%s: another server might be running; trying to start server anyway\n"
 msgstr "%s: 其他服务器进程可能正在运行; 尝试启动服务器进程\n"
 
-#: pg_ctl.c:814
+#: pg_ctl.c:878
 #, c-format
 msgid "%s: could not start server: exit code was %d\n"
 msgstr "%s: 无法启动服务器进程: 退出码为 %d\n"
 
-#: pg_ctl.c:821
+#: pg_ctl.c:885
 msgid "waiting for server to start..."
 msgstr "等待服务器进程启动 ..."
 
-#: pg_ctl.c:826 pg_ctl.c:927 pg_ctl.c:1018
+#: pg_ctl.c:890 pg_ctl.c:991 pg_ctl.c:1082
 msgid " done\n"
 msgstr " 完成\n"
 
-#: pg_ctl.c:827
+#: pg_ctl.c:891
 msgid "server started\n"
 msgstr "服务器进程已经启动\n"
 
-#: pg_ctl.c:830 pg_ctl.c:834
+#: pg_ctl.c:894 pg_ctl.c:898
 msgid " stopped waiting\n"
 msgstr " 已停止等待\n"
 
-#: pg_ctl.c:831
+#: pg_ctl.c:895
 msgid "server is still starting up\n"
 msgstr "服务器仍在启动过程中\n"
 
-#: pg_ctl.c:835
+#: pg_ctl.c:899
 #, c-format
 msgid ""
 "%s: could not start server\n"
@@ -229,43 +247,43 @@ msgstr ""
 "%s: 无法启动服务器进程\n"
 "检查日志输出.\n"
 
-#: pg_ctl.c:841 pg_ctl.c:919 pg_ctl.c:1009
+#: pg_ctl.c:905 pg_ctl.c:983 pg_ctl.c:1073
 msgid " failed\n"
 msgstr " 失败\n"
 
-#: pg_ctl.c:842
+#: pg_ctl.c:906
 #, c-format
 msgid "%s: could not wait for server because of misconfiguration\n"
 msgstr "%s: 因为配制错误,而无法等待服务器\n"
 
-#: pg_ctl.c:848
+#: pg_ctl.c:912
 msgid "server starting\n"
 msgstr "正在启动服务器进程\n"
 
-#: pg_ctl.c:863 pg_ctl.c:949 pg_ctl.c:1039 pg_ctl.c:1079
+#: pg_ctl.c:927 pg_ctl.c:1013 pg_ctl.c:1103 pg_ctl.c:1143
 #, c-format
 msgid "%s: PID file \"%s\" does not exist\n"
 msgstr "%s: PID 文件 \"%s\" 不存在\n"
 
-#: pg_ctl.c:864 pg_ctl.c:951 pg_ctl.c:1040 pg_ctl.c:1080
+#: pg_ctl.c:928 pg_ctl.c:1015 pg_ctl.c:1104 pg_ctl.c:1144
 msgid "Is server running?\n"
 msgstr "服务器进程是否正在运行?\n"
 
-#: pg_ctl.c:870
+#: pg_ctl.c:934
 #, c-format
 msgid "%s: cannot stop server; single-user server is running (PID: %ld)\n"
 msgstr "%s: 无法停止服务器进程; 正在运行 单用户模式服务器进程(PID: %ld)\n"
 
-#: pg_ctl.c:878 pg_ctl.c:973
+#: pg_ctl.c:942 pg_ctl.c:1037
 #, c-format
 msgid "%s: could not send stop signal (PID: %ld): %s\n"
 msgstr "%s: 无法发送停止信号 (PID: %ld): %s\n"
 
-#: pg_ctl.c:885
+#: pg_ctl.c:949
 msgid "server shutting down\n"
 msgstr "正在关闭服务器进程\n"
 
-#: pg_ctl.c:900 pg_ctl.c:988
+#: pg_ctl.c:964 pg_ctl.c:1052
 msgid ""
 "WARNING: online backup mode is active\n"
 "Shutdown will not complete until pg_stop_backup() is called.\n"
@@ -274,16 +292,16 @@ msgstr ""
 "警告: 在线备份模式处于激活状态\n"
 "关闭命令将不会完成,直到调用了pg_stop_backup().\n"
 
-#: pg_ctl.c:904 pg_ctl.c:992
+#: pg_ctl.c:968 pg_ctl.c:1056
 msgid "waiting for server to shut down..."
 msgstr "等待服务器进程关闭 ..."
 
-#: pg_ctl.c:921 pg_ctl.c:1011
+#: pg_ctl.c:985 pg_ctl.c:1075
 #, c-format
 msgid "%s: server does not shut down\n"
 msgstr "%s: server进程没有关闭\n"
 
-#: pg_ctl.c:923 pg_ctl.c:1013
+#: pg_ctl.c:987 pg_ctl.c:1077
 msgid ""
 "HINT: The \"-m fast\" option immediately disconnects sessions rather than\n"
 "waiting for session-initiated disconnection.\n"
@@ -291,186 +309,186 @@ msgstr ""
 "提示: \"-m fast\" 选项可以立即断开会话, 而不用\n"
 "等待会话发起的断连.\n"
 
-#: pg_ctl.c:929 pg_ctl.c:1019
+#: pg_ctl.c:993 pg_ctl.c:1083
 msgid "server stopped\n"
 msgstr "服务器进程已经关闭\n"
 
-#: pg_ctl.c:952 pg_ctl.c:1025
+#: pg_ctl.c:1016 pg_ctl.c:1089
 msgid "starting server anyway\n"
 msgstr "正在启动服务器进程\n"
 
-#: pg_ctl.c:961
+#: pg_ctl.c:1025
 #, c-format
 msgid "%s: cannot restart server; single-user server is running (PID: %ld)\n"
 msgstr "%s: 无法重启服务器进程; 单用户模式服务器进程正在运行 (PID: %ld)\n"
 
-#: pg_ctl.c:964 pg_ctl.c:1049
+#: pg_ctl.c:1028 pg_ctl.c:1113
 msgid "Please terminate the single-user server and try again.\n"
 msgstr "请终止单用户模式服务器进程,然后再重试.\n"
 
-#: pg_ctl.c:1023
+#: pg_ctl.c:1087
 #, c-format
 msgid "%s: old server process (PID: %ld) seems to be gone\n"
 msgstr "%s: 原有的进程(PID: %ld)可能已经不存在了\n"
 
-#: pg_ctl.c:1046
+#: pg_ctl.c:1110
 #, c-format
 msgid "%s: cannot reload server; single-user server is running (PID: %ld)\n"
 msgstr ""
 "%s: 无法重新加载服务器进程;正在运行单用户模式的服务器进程 (PID: %ld)\n"
 
-#: pg_ctl.c:1055
+#: pg_ctl.c:1119
 #, c-format
 msgid "%s: could not send reload signal (PID: %ld): %s\n"
 msgstr "%s: 无法发送重载信号 (PID: %ld): %s\n"
 
-#: pg_ctl.c:1060
+#: pg_ctl.c:1124
 msgid "server signaled\n"
 msgstr "服务器进程发出信号\n"
 
-#: pg_ctl.c:1086
+#: pg_ctl.c:1150
 #, c-format
 msgid "%s: cannot promote server; single-user server is running (PID: %ld)\n"
 msgstr ""
 "%s: 无法重新加载服务器进程;正在运行单用户模式的服务器进程 (PID: %ld)\n"
 
-#: pg_ctl.c:1095
+#: pg_ctl.c:1159
 #, c-format
 msgid "%s: cannot promote server; server is not in standby mode\n"
 msgstr "%s: 无法重新加载服务器进程;服务器没有运行在standby模式下\n"
 
-#: pg_ctl.c:1110
+#: pg_ctl.c:1174
 #, c-format
 msgid "%s: could not create promote signal file \"%s\": %s\n"
 msgstr "%s: 无法创建重新加载信号文件 \"%s\": %s\n"
 
-#: pg_ctl.c:1116
+#: pg_ctl.c:1180
 #, c-format
 msgid "%s: could not write promote signal file \"%s\": %s\n"
 msgstr "%s: 无法写入重新加载文件 \"%s\": %s\n"
 
-#: pg_ctl.c:1124
+#: pg_ctl.c:1188
 #, c-format
 msgid "%s: could not send promote signal (PID: %ld): %s\n"
 msgstr "%s: 无法发送重载信号(PID: %ld): %s\n"
 
-#: pg_ctl.c:1127
+#: pg_ctl.c:1191
 #, c-format
 msgid "%s: could not remove promote signal file \"%s\": %s\n"
 msgstr "%s: 无法移动重新加载信号文件 \"%s\": %s\n"
 
-#: pg_ctl.c:1132
+#: pg_ctl.c:1196
 msgid "server promoting\n"
 msgstr "服务器重新加载中\n"
 
-#: pg_ctl.c:1179
+#: pg_ctl.c:1243
 #, c-format
 msgid "%s: single-user server is running (PID: %ld)\n"
 msgstr "%s: 正在运行单用户模式服务器进程 (PID: %ld)\n"
 
-#: pg_ctl.c:1191
+#: pg_ctl.c:1256
 #, c-format
 msgid "%s: server is running (PID: %ld)\n"
 msgstr "%s: 正在运行服务器进程(PID: %ld)\n"
 
-#: pg_ctl.c:1202
+#: pg_ctl.c:1272
 #, c-format
 msgid "%s: no server running\n"
 msgstr "%s:没有服务器进程正在运行\n"
 
-#: pg_ctl.c:1220
+#: pg_ctl.c:1290
 #, c-format
 msgid "%s: could not send signal %d (PID: %ld): %s\n"
 msgstr "%s: 无法发送信号 %d (PID: %ld): %s\n"
 
-#: pg_ctl.c:1254
+#: pg_ctl.c:1347
 #, c-format
 msgid "%s: could not find own program executable\n"
 msgstr "%s: 无法找到执行文件\n"
 
-#: pg_ctl.c:1264
+#: pg_ctl.c:1357
 #, c-format
 msgid "%s: could not find postgres program executable\n"
 msgstr "%s: 无法找到postgres程序的执行文件\n"
 
-#: pg_ctl.c:1329 pg_ctl.c:1361
+#: pg_ctl.c:1437 pg_ctl.c:1469
 #, c-format
 msgid "%s: could not open service manager\n"
 msgstr "%s: 无法打开服务管理器\n"
 
-#: pg_ctl.c:1335
+#: pg_ctl.c:1443
 #, c-format
 msgid "%s: service \"%s\" already registered\n"
 msgstr "%s: 服务 \"%s\" 已经注册了\n"
 
-#: pg_ctl.c:1346
+#: pg_ctl.c:1454
 #, c-format
 msgid "%s: could not register service \"%s\": error code %lu\n"
 msgstr "%s: 无法注册服务 \"%s\": 错误码 %lu\n"
 
-#: pg_ctl.c:1367
+#: pg_ctl.c:1475
 #, c-format
 msgid "%s: service \"%s\" not registered\n"
 msgstr "%s: 服务 \"%s\" 没有注册\n"
 
-#: pg_ctl.c:1374
+#: pg_ctl.c:1482
 #, c-format
 msgid "%s: could not open service \"%s\": error code %lu\n"
 msgstr "%s: 无法打开服务 \"%s\": 错误码 %lu\n"
 
-#: pg_ctl.c:1381
+#: pg_ctl.c:1489
 #, c-format
 msgid "%s: could not unregister service \"%s\": error code %lu\n"
 msgstr "%s: 无法注销服务 \"%s\": 错误码 %lu\n"
 
-#: pg_ctl.c:1466
+#: pg_ctl.c:1574
 msgid "Waiting for server startup...\n"
 msgstr "等待服务器进程启动 ...\n"
 
-#: pg_ctl.c:1469
+#: pg_ctl.c:1577
 msgid "Timed out waiting for server startup\n"
 msgstr "在等待服务器启动时超时\n"
 
-#: pg_ctl.c:1473
+#: pg_ctl.c:1581
 msgid "Server started and accepting connections\n"
 msgstr "服务器进程已启动并且接受连接\n"
 
-#: pg_ctl.c:1517
+#: pg_ctl.c:1625
 #, c-format
 msgid "%s: could not start service \"%s\": error code %lu\n"
 msgstr "%s: 无法启动服务 \"%s\": 错误码 %lu\n"
 
-#: pg_ctl.c:1589
+#: pg_ctl.c:1697
 #, c-format
 msgid "%s: WARNING: cannot create restricted tokens on this platform\n"
 msgstr "%s: 警告: 该平台上无法创建受限令牌\n"
 
-#: pg_ctl.c:1598
+#: pg_ctl.c:1706
 #, c-format
 msgid "%s: could not open process token: error code %lu\n"
 msgstr "%s: 无法打开进程令牌 (token): 错误码 %lu\n"
 
-#: pg_ctl.c:1611
+#: pg_ctl.c:1719
 #, c-format
 msgid "%s: could not allocate SIDs: error code %lu\n"
 msgstr "%s: 无法分配SID: 错误码 %lu\n"
 
-#: pg_ctl.c:1630
+#: pg_ctl.c:1738
 #, c-format
 msgid "%s: could not create restricted token: error code %lu\n"
 msgstr "%s: 无法创建继承套接字: 错误码为 %lu\n"
 
-#: pg_ctl.c:1668
+#: pg_ctl.c:1771
 #, c-format
 msgid "%s: WARNING: could not locate all job object functions in system API\n"
 msgstr "%s: 警告: 系统API中无法定位所有工作对象函数\n"
 
-#: pg_ctl.c:1754
+#: pg_ctl.c:1853
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "试用 \"%s --help\" 获取更多的信息.\n"
 
-#: pg_ctl.c:1762
+#: pg_ctl.c:1861
 #, c-format
 msgid ""
 "%s is a utility to initialize, start, stop, or control a PostgreSQL server.\n"
@@ -479,17 +497,17 @@ msgstr ""
 "%s 是一个用于初始化、启动、停止或控制PostgreSQL服务器的工具.\n"
 "\n"
 
-#: pg_ctl.c:1763
+#: pg_ctl.c:1862
 #, c-format
 msgid "Usage:\n"
 msgstr "使用方法:\n"
 
-#: pg_ctl.c:1764
+#: pg_ctl.c:1863
 #, c-format
 msgid "  %s init[db]               [-D DATADIR] [-s] [-o \"OPTIONS\"]\n"
 msgstr "  %s init[db]               [-D 数据目录] [-s] [-o \"选项\"]\n"
 
-#: pg_ctl.c:1765
+#: pg_ctl.c:1864
 #, c-format
 msgid ""
 "  %s start   [-w] [-t SECS] [-D DATADIR] [-s] [-l FILENAME] [-o \"OPTIONS"
@@ -497,12 +515,12 @@ msgid ""
 msgstr ""
 "  %s start   [-w]  [-t 秒数] [-D 数据目录] [-s] [-l 文件名] [-o \"选项\"]\n"
 
-#: pg_ctl.c:1766
+#: pg_ctl.c:1865
 #, c-format
 msgid "  %s stop    [-W] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]\n"
-msgstr "  %s stop   [-w]  [-t 秒数] [-D 数据目录] [-s] [-m 关闭模式]\n"
+msgstr "  %s stop   [-W]  [-t 秒数] [-D 数据目录] [-s] [-m 关闭模式]\n"
 
-#: pg_ctl.c:1767
+#: pg_ctl.c:1866
 #, c-format
 msgid ""
 "  %s restart [-w] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]\n"
@@ -511,27 +529,27 @@ msgstr ""
 "  %s restart [-w] [-t 秒数] [-D 数据目录] [-s] [-m 关闭模式]\n"
 "                [-o \"选项\"]\n"
 
-#: pg_ctl.c:1769
+#: pg_ctl.c:1868
 #, c-format
 msgid "  %s reload  [-D DATADIR] [-s]\n"
 msgstr "  %s reload  [-D 数据目录] [-s]\n"
 
-#: pg_ctl.c:1770
+#: pg_ctl.c:1869
 #, c-format
 msgid "  %s status  [-D DATADIR]\n"
 msgstr "  %s status  [-D 数据目录]\n"
 
-#: pg_ctl.c:1771
+#: pg_ctl.c:1870
 #, c-format
 msgid "  %s promote [-D DATADIR] [-s]\n"
 msgstr "  %s promote  [-D 数据目录] [-s]\n"
 
-#: pg_ctl.c:1772
+#: pg_ctl.c:1871
 #, c-format
 msgid "  %s kill    SIGNALNAME PID\n"
 msgstr "  %s kill    信号名称 进程号\n"
 
-#: pg_ctl.c:1774
+#: pg_ctl.c:1873
 #, c-format
 msgid ""
 "  %s register   [-N SERVICENAME] [-U USERNAME] [-P PASSWORD] [-D DATADIR]\n"
@@ -540,12 +558,12 @@ msgstr ""
 "  %s register   [-N 服务名称] [-U 用户名] [-P 口令] [-D 数据目录]\n"
 "          [-S 启动类型] [-w] [-t 秒数] [-o \"选项\"]\n"
 
-#: pg_ctl.c:1776
+#: pg_ctl.c:1875
 #, c-format
 msgid "  %s unregister [-N SERVICENAME]\n"
 msgstr "  %s unregister [-N 服务名称]\n"
 
-#: pg_ctl.c:1779
+#: pg_ctl.c:1878
 #, c-format
 msgid ""
 "\n"
@@ -554,42 +572,42 @@ msgstr ""
 "\n"
 "普通选项:\n"
 
-#: pg_ctl.c:1780
+#: pg_ctl.c:1879
 #, c-format
 msgid "  -D, --pgdata=DATADIR   location of the database storage area\n"
 msgstr "  -D, --pgdata=数据目录  数据库存储区域的位置\n"
 
-#: pg_ctl.c:1781
+#: pg_ctl.c:1880
 #, c-format
 msgid "  -s, --silent           only print errors, no informational messages\n"
 msgstr "  -s, --silent           只打印错误信息, 没有其他信息\n"
 
-#: pg_ctl.c:1782
+#: pg_ctl.c:1881
 #, c-format
 msgid "  -t, --timeout=SECS     seconds to wait when using -w option\n"
 msgstr "  -t, --timeout=SECS    当使用-w 选项时需要等待的秒数\n"
 
-#: pg_ctl.c:1783
+#: pg_ctl.c:1882
 #, c-format
 msgid "  -V, --version          output version information, then exit\n"
 msgstr "  -V, --version           输出版本信息, 然后退出\n"
 
-#: pg_ctl.c:1784
+#: pg_ctl.c:1883
 #, c-format
 msgid "  -w                     wait until operation completes\n"
 msgstr "  -w                     等待直到操作完成\n"
 
-#: pg_ctl.c:1785
+#: pg_ctl.c:1884
 #, c-format
 msgid "  -W                     do not wait until operation completes\n"
 msgstr "  -W                     不用等待操作完成\n"
 
-#: pg_ctl.c:1786
+#: pg_ctl.c:1885
 #, c-format
 msgid "  -?, --help             show this help, then exit\n"
 msgstr "  -?, --help             显示此帮助, 然后退出\n"
 
-#: pg_ctl.c:1787
+#: pg_ctl.c:1886
 #, c-format
 msgid ""
 "(The default is to wait for shutdown, but not for start or restart.)\n"
@@ -598,12 +616,12 @@ msgstr ""
 "(默认为关闭等待, 但不是启动或重启.)\n"
 "\n"
 
-#: pg_ctl.c:1788
+#: pg_ctl.c:1887
 #, c-format
 msgid "If the -D option is omitted, the environment variable PGDATA is used.\n"
 msgstr "如果省略了 -D 选项, 将使用 PGDATA 环境变量.\n"
 
-#: pg_ctl.c:1790
+#: pg_ctl.c:1889
 #, c-format
 msgid ""
 "\n"
@@ -612,22 +630,22 @@ msgstr ""
 "\n"
 "启动或重启的选项:\n"
 
-#: pg_ctl.c:1792
+#: pg_ctl.c:1891
 #, c-format
 msgid "  -c, --core-files       allow postgres to produce core files\n"
 msgstr "  -c, --core-files       允许postgres进程产生核心文件\n"
 
-#: pg_ctl.c:1794
+#: pg_ctl.c:1893
 #, c-format
 msgid "  -c, --core-files       not applicable on this platform\n"
 msgstr "  -c, --core-files       在这种平台上不可用\n"
 
-#: pg_ctl.c:1796
+#: pg_ctl.c:1895
 #, c-format
 msgid "  -l, --log=FILENAME     write (or append) server log to FILENAME\n"
 msgstr "  -l, --log=FILENAME    写入 (或追加) 服务器日志到文件FILENAME\n"
 
-#: pg_ctl.c:1797
+#: pg_ctl.c:1896
 #, c-format
 msgid ""
 "  -o OPTIONS             command line options to pass to postgres\n"
@@ -636,31 +654,31 @@ msgstr ""
 "  -o OPTIONS             传递给postgres的命令行选项\n"
 "                      (PostgreSQL 服务器执行文件)或initdb\n"
 
-#: pg_ctl.c:1799
+#: pg_ctl.c:1898
 #, c-format
 msgid "  -p PATH-TO-POSTGRES    normally not necessary\n"
 msgstr "  -p PATH-TO-POSTMASTER  正常情况不必要\n"
 
-#: pg_ctl.c:1800
+#: pg_ctl.c:1899
 #, c-format
 #| msgid ""
 #| "\n"
-#| "Options for stop or restart:\n"
+#| "Options for start or restart:\n"
 msgid ""
 "\n"
-"Options for stop, restart, or promote:\n"
+"Options for stop or restart:\n"
 msgstr ""
 "\n"
-"停止、重启或者提升的选项:\n"
+"停止或重启的选项:\n"
 
-#: pg_ctl.c:1801
+#: pg_ctl.c:1900
 #, c-format
 msgid ""
 "  -m, --mode=MODE        MODE can be \"smart\", \"fast\", or \"immediate\"\n"
 msgstr ""
 "  -m, --mode=MODE        可以是 \"smart\", \"fast\", 或者 \"immediate\"\n"
 
-#: pg_ctl.c:1803
+#: pg_ctl.c:1902
 #, c-format
 msgid ""
 "\n"
@@ -669,24 +687,24 @@ msgstr ""
 "\n"
 "关闭模式有如下几种:\n"
 
-#: pg_ctl.c:1804
+#: pg_ctl.c:1903
 #, c-format
 msgid "  smart       quit after all clients have disconnected\n"
 msgstr "  smart       所有客户端断开连接后退出\n"
 
-#: pg_ctl.c:1805
+#: pg_ctl.c:1904
 #, c-format
 msgid "  fast        quit directly, with proper shutdown\n"
 msgstr "  fast        直接退出, 正确的关闭\n"
 
-#: pg_ctl.c:1806
+#: pg_ctl.c:1905
 #, c-format
 msgid ""
 "  immediate   quit without complete shutdown; will lead to recovery on "
 "restart\n"
 msgstr "  immediate   不完全的关闭退出; 重启后恢复\n"
 
-#: pg_ctl.c:1808
+#: pg_ctl.c:1907
 #, c-format
 msgid ""
 "\n"
@@ -695,7 +713,7 @@ msgstr ""
 "\n"
 "允许关闭的信号名称:\n"
 
-#: pg_ctl.c:1812
+#: pg_ctl.c:1911
 #, c-format
 msgid ""
 "\n"
@@ -704,28 +722,28 @@ msgstr ""
 "\n"
 "注册或注销的选项:\n"
 
-#: pg_ctl.c:1813
+#: pg_ctl.c:1912
 #, c-format
 msgid ""
 "  -N SERVICENAME  service name with which to register PostgreSQL server\n"
 msgstr "  -N 服务名称     注册到 PostgreSQL 服务器的服务名称\n"
 
-#: pg_ctl.c:1814
+#: pg_ctl.c:1913
 #, c-format
 msgid "  -P PASSWORD     password of account to register PostgreSQL server\n"
 msgstr "  -P 口令         注册到 PostgreSQL 服务器帐户的口令\n"
 
-#: pg_ctl.c:1815
+#: pg_ctl.c:1914
 #, c-format
 msgid "  -U USERNAME     user name of account to register PostgreSQL server\n"
 msgstr "  -U 用户名       注册到 PostgreSQL 服务器帐户的用户名\n"
 
-#: pg_ctl.c:1816
+#: pg_ctl.c:1915
 #, c-format
 msgid "  -S START-TYPE   service start type to register PostgreSQL server\n"
 msgstr "  -S START-TYPE   注册到PostgreSQL服务器的服务启动类型\n"
 
-#: pg_ctl.c:1818
+#: pg_ctl.c:1917
 #, c-format
 msgid ""
 "\n"
@@ -734,18 +752,18 @@ msgstr ""
 "\n"
 "启动类型有:\n"
 
-#: pg_ctl.c:1819
+#: pg_ctl.c:1918
 #, c-format
 msgid ""
 "  auto       start service automatically during system startup (default)\n"
 msgstr "  auto       在系统启动时自动启动服务(默认选项)\n"
 
-#: pg_ctl.c:1820
+#: pg_ctl.c:1919
 #, c-format
 msgid "  demand     start service on demand\n"
 msgstr "  demand     按需启动服务\n"
 
-#: pg_ctl.c:1823
+#: pg_ctl.c:1922
 #, c-format
 msgid ""
 "\n"
@@ -754,27 +772,27 @@ msgstr ""
 "\n"
 "臭虫报告至 <pgsql-bugs@postgresql.org>.\n"
 
-#: pg_ctl.c:1848
+#: pg_ctl.c:1947
 #, c-format
 msgid "%s: unrecognized shutdown mode \"%s\"\n"
 msgstr "%s: 无效的关闭模式 \"%s\"\n"
 
-#: pg_ctl.c:1880
+#: pg_ctl.c:1979
 #, c-format
 msgid "%s: unrecognized signal name \"%s\"\n"
 msgstr "%s: 无效信号名称 \"%s\"\n"
 
-#: pg_ctl.c:1897
+#: pg_ctl.c:1996
 #, c-format
 msgid "%s: unrecognized start type \"%s\"\n"
 msgstr "%s: 无法识别的启动类型 \"%s\"\n"
 
-#: pg_ctl.c:1950
+#: pg_ctl.c:2051
 #, c-format
 msgid "%s: could not determine the data directory using command \"%s\"\n"
 msgstr "%s: 使用命令 \"%s\"无法确定数据目录\n"
 
-#: pg_ctl.c:2023
+#: pg_ctl.c:2123
 #, c-format
 msgid ""
 "%s: cannot be run as root\n"
@@ -785,85 +803,85 @@ msgstr ""
 "请以服务器进程所属用户 (非特权用户) 登录 (或使用 \"su\")\n"
 "\n"
 
-#: pg_ctl.c:2094
+#: pg_ctl.c:2190
 #, c-format
 msgid "%s: -S option not supported on this platform\n"
 msgstr "%s: -S 选项在该平台上不支持\n"
 
-#: pg_ctl.c:2136
+#: pg_ctl.c:2228
 #, c-format
 msgid "%s: too many command-line arguments (first is \"%s\")\n"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 
-#: pg_ctl.c:2160
+#: pg_ctl.c:2252
 #, c-format
 msgid "%s: missing arguments for kill mode\n"
 msgstr "%s: 缺少 kill 模式参数\n"
 
-#: pg_ctl.c:2178
+#: pg_ctl.c:2270
 #, c-format
 msgid "%s: unrecognized operation mode \"%s\"\n"
 msgstr "%s: 无效的操作模式 \"%s\"\n"
 
-#: pg_ctl.c:2188
+#: pg_ctl.c:2280
 #, c-format
 msgid "%s: no operation specified\n"
 msgstr "%s: 没有指定操作\n"
 
-#: pg_ctl.c:2209
+#: pg_ctl.c:2301
 #, c-format
 msgid ""
 "%s: no database directory specified and environment variable PGDATA unset\n"
 msgstr "%s: 没有指定数据目录, 并且没有设置 PGDATA 环境变量\n"
 
-#~ msgid ""
-#~ "%s is a utility to start, stop, restart, reload configuration files,\n"
-#~ "report the status of a PostgreSQL server, or signal a PostgreSQL "
-#~ "process.\n"
-#~ "\n"
-#~ msgstr ""
-#~ "%s 是一个启动, 停止, 重启, 重载配置文件, 报告 PostgreSQL 服务器状态,\n"
-#~ "或者杀掉 PostgreSQL 进程的工具\n"
-#~ "\n"
+#~ msgid "could not change directory to \"%s\""
+#~ msgstr "无法进入目录 \"%s\""
 
-#~ msgid "  --help                 show this help, then exit\n"
-#~ msgstr "  --help                 显示此帮助信息, 然后退出\n"
+#~ msgid "%s: out of memory\n"
+#~ msgstr "%s: 内存溢出\n"
 
-#~ msgid "  --version              output version information, then exit\n"
-#~ msgstr "  --version              显示版本信息, 然后退出\n"
+#~ msgid "%s: invalid option %s\n"
+#~ msgstr "%s: 无效选项 %s\n"
 
-#~ msgid "could not start server\n"
-#~ msgstr "无法启动服务器进程\n"
+#~ msgid "%s: a standalone backend \"postgres\" is running (PID: %ld)\n"
+#~ msgstr "%s: 一个独立的后端 \"postgres\" 正在运行 (PID: %ld)\n"
+
+#~ msgid "%s: neither postmaster nor postgres running\n"
+#~ msgstr "%s: postmaster 或者 postgres 没有运行\n"
 
 #~ msgid ""
-#~ "The program \"postmaster\" is needed by %s but was not found in the\n"
-#~ "same directory as \"%s\".\n"
+#~ "The program \"postmaster\" was found by \"%s\"\n"
+#~ "but was not the same version as %s.\n"
 #~ "Check your installation.\n"
 #~ msgstr ""
-#~ "程序 \"postmaster\" 是 %s 需要的, 但没有在同一个目录 \"%s\" 发现.\n"
+#~ "%s 找到程序 \"postmaster\", 但版本和 \"%s\" 不一致.\n"
 #~ "\n"
 #~ "检查您的安装.\n"
 
 #~ msgid ""
-#~ "The program \"postmaster\" was found by \"%s\"\n"
-#~ "but was not the same version as %s.\n"
+#~ "The program \"postmaster\" is needed by %s but was not found in the\n"
+#~ "same directory as \"%s\".\n"
 #~ "Check your installation.\n"
 #~ msgstr ""
-#~ "%s 找到程序 \"postmaster\", 但版本和 \"%s\" 不一致.\n"
+#~ "程序 \"postmaster\" 是 %s 需要的, 但没有在同一个目录 \"%s\" 发现.\n"
 #~ "\n"
 #~ "检查您的安装.\n"
 
-#~ msgid "%s: neither postmaster nor postgres running\n"
-#~ msgstr "%s: postmaster 或者 postgres 没有运行\n"
-
-#~ msgid "%s: a standalone backend \"postgres\" is running (PID: %ld)\n"
-#~ msgstr "%s: 一个独立的后端 \"postgres\" 正在运行 (PID: %ld)\n"
+#~ msgid "could not start server\n"
+#~ msgstr "无法启动服务器进程\n"
 
-#~ msgid "%s: invalid option %s\n"
-#~ msgstr "%s: 无效选项 %s\n"
+#~ msgid "  --version              output version information, then exit\n"
+#~ msgstr "  --version              显示版本信息, 然后退出\n"
 
-#~ msgid "%s: out of memory\n"
-#~ msgstr "%s: 内存溢出\n"
+#~ msgid "  --help                 show this help, then exit\n"
+#~ msgstr "  --help                 显示此帮助信息, 然后退出\n"
 
-#~ msgid "could not change directory to \"%s\""
-#~ msgstr "无法进入目录 \"%s\""
+#~ msgid ""
+#~ "%s is a utility to start, stop, restart, reload configuration files,\n"
+#~ "report the status of a PostgreSQL server, or signal a PostgreSQL "
+#~ "process.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "%s 是一个启动, 停止, 重启, 重载配置文件, 报告 PostgreSQL 服务器状态,\n"
+#~ "或者杀掉 PostgreSQL 进程的工具\n"
+#~ "\n"
index f277b35713e93217bc08342813b7eaf3ec4ff751..ea3887297d36993c82e79fe228f9e89099960ac1 100644 (file)
@@ -5,8 +5,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pg_dump (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2013-09-02 00:27+0000\n"
-"PO-Revision-Date: 2013-09-02 15:51+0800\n"
+"POT-Creation-Date: 2014-11-22 21:12+0000\n"
+"PO-Revision-Date: 2014-11-28 14:53+0800\n"
 "Last-Translator: Xiong He <iihero@qq.com>\n"
 "Language-Team: Chinese (Simplified)\n"
 "Language: zh_CN\n"
@@ -16,59 +16,91 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Poedit 1.5.4\n"
 
-#: ../../common/fe_memutils.c:33 ../../common/fe_memutils.c:60
-#: ../../common/fe_memutils.c:83 pg_backup_db.c:134 pg_backup_db.c:189
-#: pg_backup_db.c:233 pg_backup_db.c:279
-#, c-format
-msgid "out of memory\n"
-msgstr "内存用尽\n"
-
-# common.c:78
-#: ../../common/fe_memutils.c:77
-#, c-format
-#| msgid "pg_strdup: cannot duplicate null pointer (internal error)\n"
-msgid "cannot duplicate null pointer (internal error)\n"
-msgstr "无法复制空指针 (内部错误)\n"
-
-#: ../../port/exec.c:127 ../../port/exec.c:241 ../../port/exec.c:284
+#: ../../common/exec.c:127 ../../common/exec.c:241 ../../common/exec.c:284
 #, c-format
 msgid "could not identify current directory: %s"
 msgstr "无法确认当前目录: %s"
 
 # command.c:122
-#: ../../port/exec.c:146
+#: ../../common/exec.c:146
 #, c-format
 msgid "invalid binary \"%s\""
 msgstr "无效的二进制码 \"%s\""
 
 # command.c:1103
-#: ../../port/exec.c:195
+#: ../../common/exec.c:195
 #, c-format
 msgid "could not read binary \"%s\""
 msgstr "无法读取二进制码 \"%s\""
 
-#: ../../port/exec.c:202
+#: ../../common/exec.c:202
 #, c-format
 msgid "could not find a \"%s\" to execute"
 msgstr "未能找到一个 \"%s\" 来执行"
 
-#: ../../port/exec.c:257 ../../port/exec.c:293
+#: ../../common/exec.c:257 ../../common/exec.c:293
 #, c-format
-#| msgid "could not change directory to \"%s\": %m"
 msgid "could not change directory to \"%s\": %s"
 msgstr "无法跳转到目录 \"%s\" 中: %s"
 
-#: ../../port/exec.c:272
+#: ../../common/exec.c:272
 #, c-format
 msgid "could not read symbolic link \"%s\""
 msgstr "无法读取符号链结 \"%s\""
 
-#: ../../port/exec.c:523
+#: ../../common/exec.c:523
 #, c-format
-#| msgid "query failed: %s"
 msgid "pclose failed: %s"
 msgstr "pclose调用失败: %s"
 
+#: ../../common/fe_memutils.c:33 ../../common/fe_memutils.c:60
+#: ../../common/fe_memutils.c:83 pg_backup_db.c:134 pg_backup_db.c:189
+#: pg_backup_db.c:233 pg_backup_db.c:279
+#, c-format
+msgid "out of memory\n"
+msgstr "内存用尽\n"
+
+# common.c:78
+#: ../../common/fe_memutils.c:77
+#, c-format
+msgid "cannot duplicate null pointer (internal error)\n"
+msgstr "无法复制空指针 (内部错误)\n"
+
+#: ../../common/wait_error.c:47
+#, c-format
+msgid "command not executable"
+msgstr "命令无法执行"
+
+#: ../../common/wait_error.c:51
+#, c-format
+msgid "command not found"
+msgstr "命令没有找到"
+
+#: ../../common/wait_error.c:56
+#, c-format
+msgid "child process exited with exit code %d"
+msgstr "子进程已退出, 退出码为 %d"
+
+#: ../../common/wait_error.c:63
+#, c-format
+msgid "child process was terminated by exception 0x%X"
+msgstr "子进程被例外(exception) 0x%X 终止"
+
+#: ../../common/wait_error.c:73
+#, c-format
+msgid "child process was terminated by signal %s"
+msgstr "子进程被信号 %s 终止"
+
+#: ../../common/wait_error.c:77
+#, c-format
+msgid "child process was terminated by signal %d"
+msgstr "子进程被信号 %d 终止"
+
+#: ../../common/wait_error.c:82
+#, c-format
+msgid "child process exited with unrecognized status %d"
+msgstr "子进程已退出, 未知状态 %d"
+
 #: common.c:105
 #, c-format
 msgid "reading schemas\n"
@@ -177,7 +209,6 @@ msgstr "读取表继承信息\n"
 
 #: common.c:206
 #, c-format
-#| msgid "reading triggers\n"
 msgid "reading event triggers\n"
 msgstr "读取事件触发器\n"
 
@@ -246,46 +277,52 @@ msgstr "压缩IO"
 msgid "invalid compression code: %d\n"
 msgstr "无效的压缩码: %d\n"
 
-#: compress_io.c:138 compress_io.c:174 compress_io.c:195 compress_io.c:528
-#: compress_io.c:555
+#: compress_io.c:138 compress_io.c:174 compress_io.c:195 compress_io.c:514
+#: compress_io.c:541
 #, c-format
 msgid "not built with zlib support\n"
 msgstr "没有编译成带有zlib库支持的版本\n"
 
-#: compress_io.c:243 compress_io.c:352
+#: compress_io.c:245 compress_io.c:347
 #, c-format
 msgid "could not initialize compression library: %s\n"
 msgstr "无法初始化压缩库: %s\n"
 
-#: compress_io.c:264
+#: compress_io.c:266
 #, c-format
 msgid "could not close compression stream: %s\n"
 msgstr "无法关闭压缩流: %s\n"
 
-#: compress_io.c:282
+#: compress_io.c:284
 #, c-format
 msgid "could not compress data: %s\n"
 msgstr "无法压缩数据: %s\n"
 
-#: compress_io.c:303 compress_io.c:440 pg_backup_archiver.c:1437
-#: pg_backup_archiver.c:1460 pg_backup_custom.c:661 pg_backup_directory.c:529
-#: pg_backup_tar.c:598 pg_backup_tar.c:1087 pg_backup_tar.c:1308
-#, c-format
-msgid "could not write to output file: %s\n"
-msgstr "无法写到输出文件: %s\n"
-
-#: compress_io.c:372 compress_io.c:388
+#: compress_io.c:367 compress_io.c:383
 #, c-format
 msgid "could not uncompress data: %s\n"
 msgstr "无法解压缩数据: %s\n"
 
-#: compress_io.c:396
+#: compress_io.c:391
 #, c-format
 msgid "could not close compression library: %s\n"
 msgstr "无法关闭压缩库: %s\n"
 
+# input.c:210
+#: compress_io.c:575 compress_io.c:611 pg_backup_custom.c:590
+#: pg_backup_tar.c:563
+#, c-format
+msgid "could not read from input file: %s\n"
+msgstr "无法从输入档案读取:%s\n"
+
+# input.c:210
+#: compress_io.c:614 pg_backup_custom.c:587 pg_backup_directory.c:551
+#: pg_backup_tar.c:799 pg_backup_tar.c:823
+#, c-format
+msgid "could not read from input file: end of file\n"
+msgstr "无法从输入文件中读取:文件的结尾\n"
+
 #: parallel.c:77
-#| msgid "tar archiver"
 msgid "parallel archiver"
 msgstr "并行归档"
 
@@ -296,29 +333,26 @@ msgstr "%s: WSAStartup 失败: %d\n"
 
 #: parallel.c:343
 #, c-format
-#| msgid "server is still starting up\n"
 msgid "worker is terminating\n"
 msgstr "工作者进程正在终止\n"
 
 #: parallel.c:535
 #, c-format
-#| msgid "could not create SSL context: %s\n"
 msgid "could not create communication channels: %s\n"
 msgstr "无法创建通信通道: %s\n"
 
 # fe-connect.c:891
-#: parallel.c:605
+#: parallel.c:608
 #, c-format
 msgid "could not create worker process: %s\n"
 msgstr "无法创建工作进程: %s\n"
 
-#: parallel.c:822
+#: parallel.c:825
 #, c-format
-#| msgid "could not get junction for \"%s\": %s\n"
 msgid "could not get relation name for OID %u: %s\n"
 msgstr "无法获取OID值为%u:%s的关系名\n"
 
-#: parallel.c:839
+#: parallel.c:842
 #, c-format
 msgid ""
 "could not obtain lock on relation \"%s\"\n"
@@ -330,92 +364,79 @@ msgstr ""
 "这通常意味着在父进程pg_dump已经得到表的共享访问锁之后,仍有人请求该表的排它访"
 "问锁.\n"
 
-#: parallel.c:923
+#: parallel.c:926
 #, c-format
-#| msgid "unrecognized authentication option name: \"%s\""
 msgid "unrecognized command on communication channel: %s\n"
 msgstr "无法识别通信通上的命令:%s\n"
 
-#: parallel.c:956
+#: parallel.c:959
 #, c-format
-#| msgid "worker process failed: exit code %d\n"
 msgid "a worker process died unexpectedly\n"
 msgstr "一工作者进程意外退出\n"
 
 # fe-misc.c:515 fe-misc.c:595
-#: parallel.c:983 parallel.c:992
+#: parallel.c:986 parallel.c:995
 #, c-format
-#| msgid "could not receive data from server: %s\n"
 msgid "invalid message received from worker: %s\n"
 msgstr "接收到来自工作者进程的无效消息: %s\n"
 
-#: parallel.c:989 pg_backup_db.c:336
+#: parallel.c:992 pg_backup_db.c:336
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: parallel.c:1041 parallel.c:1085
+#: parallel.c:1044 parallel.c:1088
 #, c-format
 msgid "error processing a parallel work item\n"
 msgstr "错误处理一个并行工作项\n"
 
-#: parallel.c:1113 parallel.c:1251
+#: parallel.c:1116 parallel.c:1254
 #, c-format
-#| msgid "could not write to output file: %s\n"
 msgid "could not write to the communication channel: %s\n"
 msgstr "无法写入通信通道: %s\n"
 
-#: parallel.c:1162
+#: parallel.c:1165
 #, c-format
-#| msgid "unterminated quoted string\n"
 msgid "terminated by user\n"
 msgstr "已被用户终止\n"
 
-#: parallel.c:1214
+#: parallel.c:1217
 #, c-format
-#| msgid "error during file seek: %s\n"
 msgid "error in ListenToWorkers(): %s\n"
 msgstr "调用ListenToWorkers()时出错: %s\n"
 
-#: parallel.c:1325
+#: parallel.c:1341
 #, c-format
-#| msgid "could not create inherited socket: error code %d\n"
 msgid "pgpipe: could not create socket: error code %d\n"
 msgstr "pgpipe: 无法创建套接字: 错误码为 %d\n"
 
-#: parallel.c:1336
+#: parallel.c:1352
 #, c-format
-#| msgid "could not initialize LDAP: error code %d"
 msgid "pgpipe: could not bind: error code %d\n"
 msgstr "pgpipe: 无法绑定: 错误码为%d\n"
 
-#: parallel.c:1343
+#: parallel.c:1359
 #, c-format
-#| msgid "%s: could not allocate SIDs: error code %lu\n"
 msgid "pgpipe: could not listen: error code %d\n"
 msgstr "pgpipe: 无法监听: 错误码为 %d\n"
 
-#: parallel.c:1350
+#: parallel.c:1366
 #, c-format
-#| msgid "worker process failed: exit code %d\n"
 msgid "pgpipe: getsockname() failed: error code %d\n"
 msgstr "pgpipe: getsockname()调用失败: 错误码为 %d\n"
 
-#: parallel.c:1357
+#: parallel.c:1377
 #, c-format
-#| msgid "could not create inherited socket: error code %d\n"
 msgid "pgpipe: could not create second socket: error code %d\n"
 msgstr "pgpipe: 无法创建继承套接字: 错误码为 %d\n"
 
-#: parallel.c:1365
+#: parallel.c:1386
 #, c-format
-#| msgid "could not create inherited socket: error code %d\n"
 msgid "pgpipe: could not connect socket: error code %d\n"
 msgstr "pgpipe: 无法连接套接字: 错误码为 %d\n"
 
-#: parallel.c:1372
+#: parallel.c:1393
 #, c-format
-#| msgid "could not accept SSL connection: %m"
 msgid "pgpipe: could not accept connection: error code %d\n"
 msgstr "pgpipe: 无法接受连接: 错误码为 %d\n"
 
@@ -424,7 +445,7 @@ msgstr "pgpipe: 无法接受连接: 错误码为 %d\n"
 msgid "archiver"
 msgstr "归档"
 
-#: pg_backup_archiver.c:169 pg_backup_archiver.c:1300
+#: pg_backup_archiver.c:169 pg_backup_archiver.c:1401
 #, c-format
 msgid "could not close output file: %s\n"
 msgstr "无法关闭输出文件: %s\n"
@@ -473,434 +494,419 @@ msgstr "为恢复数据库与数据库联接\n"
 msgid "direct database connections are not supported in pre-1.3 archives\n"
 msgstr "1.3 以前的归档里不支持直接数据库联接\n"
 
-#: pg_backup_archiver.c:339
+#: pg_backup_archiver.c:343
 #, c-format
 msgid "implied data-only restore\n"
 msgstr "隐含的只恢复数据\n"
 
-#: pg_backup_archiver.c:408
+#: pg_backup_archiver.c:412
 #, c-format
 msgid "dropping %s %s\n"
 msgstr "删除 %s %s\n"
 
-#: pg_backup_archiver.c:475
+#: pg_backup_archiver.c:563
 #, c-format
 msgid "setting owner and privileges for %s %s\n"
 msgstr "为 %s %s 设置属主和权限\n"
 
-#: pg_backup_archiver.c:541 pg_backup_archiver.c:543
+#: pg_backup_archiver.c:629 pg_backup_archiver.c:631
 #, c-format
 msgid "warning from original dump file: %s\n"
 msgstr "来自原始转储文件的警告: %s\n"
 
-#: pg_backup_archiver.c:550
+#: pg_backup_archiver.c:638
 #, c-format
 msgid "creating %s %s\n"
 msgstr "创建 %s %s\n"
 
-#: pg_backup_archiver.c:594
+#: pg_backup_archiver.c:682
 #, c-format
 msgid "connecting to new database \"%s\"\n"
 msgstr "联接到新数据库 \"%s\"\n"
 
-#: pg_backup_archiver.c:622
+#: pg_backup_archiver.c:710
 #, c-format
-#| msgid "restoring %s\n"
 msgid "processing %s\n"
 msgstr "正在处理 %s\n"
 
-#: pg_backup_archiver.c:636
+#: pg_backup_archiver.c:730
 #, c-format
-#| msgid "restoring data for table \"%s\"\n"
 msgid "processing data for table \"%s\"\n"
 msgstr "为表 \"%s\" 处理数据\n"
 
-#: pg_backup_archiver.c:698
+#: pg_backup_archiver.c:792
 #, c-format
 msgid "executing %s %s\n"
 msgstr "执行 %s %s\n"
 
-#: pg_backup_archiver.c:735
+#: pg_backup_archiver.c:829
 #, c-format
 msgid "disabling triggers for %s\n"
 msgstr "为%s禁用触发器\n"
 
-#: pg_backup_archiver.c:761
+#: pg_backup_archiver.c:855
 #, c-format
 msgid "enabling triggers for %s\n"
 msgstr "为%s启用触发器\n"
 
-#: pg_backup_archiver.c:791
+#: pg_backup_archiver.c:885
 #, c-format
 msgid ""
 "internal error -- WriteData cannot be called outside the context of a "
 "DataDumper routine\n"
 msgstr "内部错误 -- WriteData 不能在 DataDumper 过程的环境之外调用\n"
 
-#: pg_backup_archiver.c:948
+#: pg_backup_archiver.c:1044
 #, c-format
 msgid "large-object output not supported in chosen format\n"
 msgstr "选定的格式不支持大对象输出\n"
 
-#: pg_backup_archiver.c:1002
+#: pg_backup_archiver.c:1098
 #, c-format
 msgid "restored %d large object\n"
 msgid_plural "restored %d large objects\n"
 msgstr[0] "恢复%d个大对象\n"
 
-#: pg_backup_archiver.c:1023 pg_backup_tar.c:731
+#: pg_backup_archiver.c:1119 pg_backup_tar.c:741
 #, c-format
 msgid "restoring large object with OID %u\n"
 msgstr "恢复带有OID %u 的大对象\n"
 
-#: pg_backup_archiver.c:1035
+#: pg_backup_archiver.c:1131
 #, c-format
 msgid "could not create large object %u: %s"
 msgstr "无法创建大对象%u: %s"
 
-#: pg_backup_archiver.c:1040 pg_dump.c:2662
+#: pg_backup_archiver.c:1136 pg_dump.c:2732
 #, c-format
 msgid "could not open large object %u: %s"
 msgstr "无法打开大对象%u: %s"
 
 # fe-lobj.c:400 fe-lobj.c:483
-#: pg_backup_archiver.c:1097
+#: pg_backup_archiver.c:1193
 #, c-format
 msgid "could not open TOC file \"%s\": %s\n"
 msgstr "无法打开TOC文件 \"%s\": %s\n"
 
-#: pg_backup_archiver.c:1138
+#: pg_backup_archiver.c:1234
 #, c-format
 msgid "WARNING: line ignored: %s\n"
 msgstr "警告: 忽略的行: %s\n"
 
-#: pg_backup_archiver.c:1145
+#: pg_backup_archiver.c:1241
 #, c-format
 msgid "could not find entry for ID %d\n"
 msgstr "无法为 ID %d 找到记录\n"
 
-#: pg_backup_archiver.c:1166 pg_backup_directory.c:222
-#: pg_backup_directory.c:595
+#: pg_backup_archiver.c:1262 pg_backup_directory.c:229
+#: pg_backup_directory.c:600
 #, c-format
 msgid "could not close TOC file: %s\n"
 msgstr "无法关闭 TOC 文件: %s\n"
 
-#: pg_backup_archiver.c:1270 pg_backup_custom.c:161 pg_backup_directory.c:333
-#: pg_backup_directory.c:581 pg_backup_directory.c:639
-#: pg_backup_directory.c:659
+#: pg_backup_archiver.c:1371 pg_backup_custom.c:161 pg_backup_directory.c:340
+#: pg_backup_directory.c:586 pg_backup_directory.c:644
+#: pg_backup_directory.c:664
 #, c-format
 msgid "could not open output file \"%s\": %s\n"
 msgstr "无法打开输出文件\"%s\": %s\n"
 
-#: pg_backup_archiver.c:1273 pg_backup_custom.c:168
+#: pg_backup_archiver.c:1374 pg_backup_custom.c:168
 #, c-format
 msgid "could not open output file: %s\n"
 msgstr "无法打开输出文件: %s\n"
 
-#: pg_backup_archiver.c:1373
+#: pg_backup_archiver.c:1478
 #, c-format
 msgid "wrote %lu byte of large object data (result = %lu)\n"
 msgid_plural "wrote %lu bytes of large object data (result = %lu)\n"
 msgstr[0] "已经写入了大对象的%lu字节(结果 = %lu)\n"
 
-#: pg_backup_archiver.c:1379
+#: pg_backup_archiver.c:1484
 #, c-format
 msgid "could not write to large object (result: %lu, expected: %lu)\n"
 msgstr "无法写入大对象 (结果: %lu, 预期: %lu)\n"
 
-#: pg_backup_archiver.c:1445
-#, c-format
-msgid "could not write to custom output routine\n"
-msgstr "无法写出到客户输出过程\n"
-
-#: pg_backup_archiver.c:1483
+#: pg_backup_archiver.c:1577
 #, c-format
 msgid "Error while INITIALIZING:\n"
 msgstr "INITIALIZING 时错误:\n"
 
-#: pg_backup_archiver.c:1488
+#: pg_backup_archiver.c:1582
 #, c-format
 msgid "Error while PROCESSING TOC:\n"
 msgstr "PROCESSING TOC 时错误:\n"
 
-#: pg_backup_archiver.c:1493
+#: pg_backup_archiver.c:1587
 #, c-format
 msgid "Error while FINALIZING:\n"
 msgstr "FINALIZING 时错误:\n"
 
-#: pg_backup_archiver.c:1498
+#: pg_backup_archiver.c:1592
 #, c-format
 msgid "Error from TOC entry %d; %u %u %s %s %s\n"
 msgstr "错误来自 TOC 记录 %d; %u %u %s %s %s\n"
 
-#: pg_backup_archiver.c:1571
+#: pg_backup_archiver.c:1665
 #, c-format
 msgid "bad dumpId\n"
 msgstr "错误的dumpId号\n"
 
-#: pg_backup_archiver.c:1592
+#: pg_backup_archiver.c:1686
 #, c-format
 msgid "bad table dumpId for TABLE DATA item\n"
 msgstr "TABLE DATA 项的表dumpId错误\n"
 
-#: pg_backup_archiver.c:1684
+#: pg_backup_archiver.c:1778
 #, c-format
 msgid "unexpected data offset flag %d\n"
 msgstr "意外的数据偏移标志 %d\n"
 
-#: pg_backup_archiver.c:1697
+#: pg_backup_archiver.c:1791
 #, c-format
 msgid "file offset in dump file is too large\n"
 msgstr "在转储文件中的文件偏移量太大\n"
 
-#: pg_backup_archiver.c:1791 pg_backup_archiver.c:3247 pg_backup_custom.c:639
-#: pg_backup_directory.c:509 pg_backup_tar.c:787
-#, c-format
-msgid "unexpected end of file\n"
-msgstr "意外的文件结尾\n"
-
-#: pg_backup_archiver.c:1808
+#: pg_backup_archiver.c:1904
 #, c-format
 msgid "attempting to ascertain archive format\n"
 msgstr "试图确认归档格式\n"
 
-#: pg_backup_archiver.c:1834 pg_backup_archiver.c:1844
+#: pg_backup_archiver.c:1930 pg_backup_archiver.c:1940
 #, c-format
 msgid "directory name too long: \"%s\"\n"
 msgstr "字典名字太长: \"%s\"\n"
 
-#: pg_backup_archiver.c:1852
+#: pg_backup_archiver.c:1948
 #, c-format
 msgid ""
 "directory \"%s\" does not appear to be a valid archive (\"toc.dat\" does not "
 "exist)\n"
 msgstr "目录 \"%s\" 看上去不像一个有效的归档 (\"toc.dat\" 不存在)\n"
 
-#: pg_backup_archiver.c:1860 pg_backup_custom.c:180 pg_backup_custom.c:771
-#: pg_backup_directory.c:206 pg_backup_directory.c:394
+#: pg_backup_archiver.c:1956 pg_backup_custom.c:180 pg_backup_custom.c:769
+#: pg_backup_directory.c:213 pg_backup_directory.c:401
 #, c-format
 msgid "could not open input file \"%s\": %s\n"
 msgstr "无法打开输入文件 \"%s\": %s\n"
 
-#: pg_backup_archiver.c:1868 pg_backup_custom.c:187
+#: pg_backup_archiver.c:1964 pg_backup_custom.c:187
 #, c-format
 msgid "could not open input file: %s\n"
 msgstr "无法打开输入文件: %s\n"
 
-#: pg_backup_archiver.c:1877
+#: pg_backup_archiver.c:1971
 #, c-format
 msgid "could not read input file: %s\n"
 msgstr "无法读取输入文件: %s\n"
 
-#: pg_backup_archiver.c:1879
+#: pg_backup_archiver.c:1973
 #, c-format
 msgid "input file is too short (read %lu, expected 5)\n"
 msgstr "输入文件太短 (读了 %lu, 预期 5)\n"
 
-#: pg_backup_archiver.c:1944
+#: pg_backup_archiver.c:2056
 #, c-format
 msgid "input file appears to be a text format dump. Please use psql.\n"
 msgstr "输入文件看起来像是文本格式的dump. 请使用psql.\n"
 
-#: pg_backup_archiver.c:1948
+#: pg_backup_archiver.c:2062
 #, c-format
 msgid "input file does not appear to be a valid archive (too short?)\n"
 msgstr "输入文件看上去不象有效的归档 (太短?)\n"
 
-#: pg_backup_archiver.c:1951
+#: pg_backup_archiver.c:2068
 #, c-format
 msgid "input file does not appear to be a valid archive\n"
 msgstr "输入文件看上去不象有效的归档\n"
 
-#: pg_backup_archiver.c:1971
+#: pg_backup_archiver.c:2088
 #, c-format
 msgid "could not close input file: %s\n"
 msgstr "无法关闭输入文件: %s\n"
 
-#: pg_backup_archiver.c:1988
+#: pg_backup_archiver.c:2105
 #, c-format
 msgid "allocating AH for %s, format %d\n"
 msgstr "为 %s 分配 AH, 格式 %d\n"
 
-#: pg_backup_archiver.c:2093
+#: pg_backup_archiver.c:2210
 #, c-format
 msgid "unrecognized file format \"%d\"\n"
 msgstr "不可识别的文件格式 \"%d\"\n"
 
-#: pg_backup_archiver.c:2243
+#: pg_backup_archiver.c:2360
 #, c-format
 msgid "entry ID %d out of range -- perhaps a corrupt TOC\n"
 msgstr "记录 ID %d 超出范围 - 可能是损坏了的 TOC\n"
 
-#: pg_backup_archiver.c:2359
+#: pg_backup_archiver.c:2476
 #, c-format
 msgid "read TOC entry %d (ID %d) for %s %s\n"
 msgstr "为 %3$s %4$s 读取 TOC 记录 %1$d (ID %2$d)\n"
 
-#: pg_backup_archiver.c:2393
+#: pg_backup_archiver.c:2510
 #, c-format
 msgid "unrecognized encoding \"%s\"\n"
 msgstr "未知编码: \"%s\"\n"
 
-#: pg_backup_archiver.c:2398
+#: pg_backup_archiver.c:2515
 #, c-format
 msgid "invalid ENCODING item: %s\n"
 msgstr "无效的ENCODING成员:%s\n"
 
-#: pg_backup_archiver.c:2416
+#: pg_backup_archiver.c:2533
 #, c-format
 msgid "invalid STDSTRINGS item: %s\n"
 msgstr "无效的STDSTRINGS成员:%s\n"
 
-#: pg_backup_archiver.c:2633
+#: pg_backup_archiver.c:2750
 #, c-format
 msgid "could not set session user to \"%s\": %s"
 msgstr "无法设置会话用户为 \"%s\": %s"
 
-#: pg_backup_archiver.c:2665
+#: pg_backup_archiver.c:2782
 #, c-format
 msgid "could not set default_with_oids: %s"
 msgstr "无法设置 default_with_oids: %s"
 
-#: pg_backup_archiver.c:2803
+#: pg_backup_archiver.c:2920
 #, c-format
 msgid "could not set search_path to \"%s\": %s"
 msgstr "无法设置search_path值为\"%s\": %s"
 
-#: pg_backup_archiver.c:2864
+#: pg_backup_archiver.c:2981
 #, c-format
 msgid "could not set default_tablespace to %s: %s"
 msgstr "无法设置default_tablespace为 %s: %s"
 
-#: pg_backup_archiver.c:2974 pg_backup_archiver.c:3157
+#: pg_backup_archiver.c:3068 pg_backup_archiver.c:3251
 #, c-format
 msgid "WARNING: don't know how to set owner for object type %s\n"
 msgstr "警告: 不知道如何为对象类型%s设置属主\n"
 
-#: pg_backup_archiver.c:3210
+#: pg_backup_archiver.c:3304
 #, c-format
 msgid ""
 "WARNING: requested compression not available in this installation -- archive "
 "will be uncompressed\n"
 msgstr "警告: 所要求的压缩无法在本次安装中获取 - 归档将不被压缩\n"
 
-#: pg_backup_archiver.c:3250
+#: pg_backup_archiver.c:3343
 #, c-format
 msgid "did not find magic string in file header\n"
 msgstr "在文件头中没有找到魔术字串\n"
 
-#: pg_backup_archiver.c:3263
+#: pg_backup_archiver.c:3356
 #, c-format
 msgid "unsupported version (%d.%d) in file header\n"
 msgstr "在文件头中有不支持的版本 (%d.%d)\n"
 
-#: pg_backup_archiver.c:3268
+#: pg_backup_archiver.c:3361
 #, c-format
 msgid "sanity check on integer size (%lu) failed\n"
 msgstr "整数尺寸 (%lu) 的健全检查失败\n"
 
-#: pg_backup_archiver.c:3272
+#: pg_backup_archiver.c:3365
 #, c-format
 msgid ""
 "WARNING: archive was made on a machine with larger integers, some operations "
 "might fail\n"
 msgstr "警告: 归档不是在支持更大范围整数的主机上产生的, 有些操作可能失败\n"
 
-#: pg_backup_archiver.c:3282
+#: pg_backup_archiver.c:3375
 #, c-format
 msgid "expected format (%d) differs from format found in file (%d)\n"
 msgstr "预期的格式 (%d) 和在文件里找到的格式 (%d) 不同\n"
 
-#: pg_backup_archiver.c:3298
+#: pg_backup_archiver.c:3391
 #, c-format
 msgid ""
 "WARNING: archive is compressed, but this installation does not support "
 "compression -- no data will be available\n"
 msgstr "警告: 归档是压缩过的, 但是当前安装不支持压缩 - 数据将不可使用\n"
 
-#: pg_backup_archiver.c:3316
+#: pg_backup_archiver.c:3409
 #, c-format
 msgid "WARNING: invalid creation date in header\n"
 msgstr "警告: 在头中的创建日期无效\n"
 
-#: pg_backup_archiver.c:3405
+#: pg_backup_archiver.c:3497
 #, c-format
-#| msgid "entering restore_toc_entries_parallel\n"
 msgid "entering restore_toc_entries_prefork\n"
 msgstr "正在进入restore_toc_entries_prefork\n"
 
-#: pg_backup_archiver.c:3449
+#: pg_backup_archiver.c:3541
 #, c-format
 msgid "processing item %d %s %s\n"
 msgstr "正在处理成员%d %s %s\n"
 
-#: pg_backup_archiver.c:3501
+#: pg_backup_archiver.c:3593
 #, c-format
 msgid "entering restore_toc_entries_parallel\n"
 msgstr "正在进入restore_toc_entries_parallel\n"
 
-#: pg_backup_archiver.c:3549
+#: pg_backup_archiver.c:3641
 #, c-format
 msgid "entering main parallel loop\n"
 msgstr "正在进入主并行循环\n"
 
-#: pg_backup_archiver.c:3560
+#: pg_backup_archiver.c:3652
 #, c-format
 msgid "skipping item %d %s %s\n"
 msgstr "忽略成员%d %s %s\n"
 
-#: pg_backup_archiver.c:3570
+#: pg_backup_archiver.c:3662
 #, c-format
 msgid "launching item %d %s %s\n"
 msgstr "正在启动成员%d %s %s\n"
 
-#: pg_backup_archiver.c:3628
+#: pg_backup_archiver.c:3720
 #, c-format
 msgid "finished main parallel loop\n"
 msgstr "已完成主并行循环\n"
 
-#: pg_backup_archiver.c:3637
+#: pg_backup_archiver.c:3729
 #, c-format
-#| msgid "entering restore_toc_entries_parallel\n"
 msgid "entering restore_toc_entries_postfork\n"
 msgstr "正在进入restore_toc_entries_postfork\n"
 
-#: pg_backup_archiver.c:3655
+#: pg_backup_archiver.c:3747
 #, c-format
 msgid "processing missed item %d %s %s\n"
 msgstr "正在处理丢失的成员%d %s %s\n"
 
-#: pg_backup_archiver.c:3804
+#: pg_backup_archiver.c:3896
 #, c-format
 msgid "no item ready\n"
 msgstr "没有成员准备好\n"
 
-#: pg_backup_archiver.c:3854
+#: pg_backup_archiver.c:3946
 #, c-format
 msgid "could not find slot of finished worker\n"
 msgstr "无法找到已完成的工作进程的位置\n"
 
-#: pg_backup_archiver.c:3856
+#: pg_backup_archiver.c:3948
 #, c-format
 msgid "finished item %d %s %s\n"
 msgstr "已完成的成员%d %s %s\n"
 
-#: pg_backup_archiver.c:3869
+#: pg_backup_archiver.c:3961
 #, c-format
 msgid "worker process failed: exit code %d\n"
 msgstr "子进程已退出, 退出码为 %d\n"
 
-#: pg_backup_archiver.c:4031
+#: pg_backup_archiver.c:4123
 #, c-format
 msgid "transferring dependency %d -> %d to %d\n"
 msgstr "传输依赖关系从%d -> %d 到%d\n"
 
-#: pg_backup_archiver.c:4100
+#: pg_backup_archiver.c:4196
 #, c-format
 msgid "reducing dependencies for %d\n"
 msgstr "为%d减少依赖关系\n"
 
-#: pg_backup_archiver.c:4139
+#: pg_backup_archiver.c:4235
 #, c-format
 msgid "table \"%s\" could not be created, will not restore its data\n"
 msgstr "无法创建表\"%s\" , 这样无法恢复它的数据\n"
@@ -910,22 +916,22 @@ msgstr "无法创建表\"%s\" , 这样无法恢复它的数据\n"
 msgid "custom archiver"
 msgstr "客户归档"
 
-#: pg_backup_custom.c:382 pg_backup_null.c:152
+#: pg_backup_custom.c:383 pg_backup_null.c:151
 #, c-format
 msgid "invalid OID for large object\n"
 msgstr "大对象的无效 OID\n"
 
-#: pg_backup_custom.c:453
+#: pg_backup_custom.c:454
 #, c-format
 msgid "unrecognized data block type (%d) while searching archive\n"
 msgstr "搜索归档是碰到不识别的数据块类型 (%d)\n"
 
-#: pg_backup_custom.c:464
+#: pg_backup_custom.c:465
 #, c-format
 msgid "error during file seek: %s\n"
 msgstr "在文件内定位时出错: %s\n"
 
-#: pg_backup_custom.c:474
+#: pg_backup_custom.c:475
 #, c-format
 msgid ""
 "could not find block ID %d in archive -- possibly due to out-of-order "
@@ -935,7 +941,7 @@ msgstr ""
 "在归档中无法找到数据块ID %d -- 这可能是由于不正常的恢复引起的,这种不正常的恢"
 "复通常因为在归档中缺少数据偏移量而无法处理\n"
 
-#: pg_backup_custom.c:479
+#: pg_backup_custom.c:480
 #, c-format
 msgid ""
 "could not find block ID %d in archive -- possibly due to out-of-order "
@@ -944,74 +950,58 @@ msgstr ""
 "在归档中无法找到数据块ID %d -- 这可能是由于不正常的恢复引起的,这种不正常的恢"
 "复通常因为缺少的输入文件而无法处理\n"
 
-#: pg_backup_custom.c:484
+#: pg_backup_custom.c:485
 #, c-format
 msgid "could not find block ID %d in archive -- possibly corrupt archive\n"
 msgstr "无法在归档中找到ID为%d的数据块--这可能是因为归档文件损坏\n"
 
-#: pg_backup_custom.c:491
+#: pg_backup_custom.c:492
 #, c-format
 msgid "found unexpected block ID (%d) when reading data -- expected %d\n"
 msgstr "读取数据时发现意外块 ID (%d) - 预期是 %d\n"
 
-#: pg_backup_custom.c:505
+#: pg_backup_custom.c:506
 #, c-format
 msgid "unrecognized data block type %d while restoring archive\n"
 msgstr "恢复归档时碰到不识别的数据块类型 %d\n"
 
-# input.c:210
-#: pg_backup_custom.c:587 pg_backup_custom.c:995
-#, c-format
-msgid "could not read from input file: end of file\n"
-msgstr "无法从输入文件中读取:文件的结尾\n"
-
-# input.c:210
-#: pg_backup_custom.c:590 pg_backup_custom.c:998
-#, c-format
-msgid "could not read from input file: %s\n"
-msgstr "无法从输入档案读取:%s\n"
-
-#: pg_backup_custom.c:619
+#: pg_backup_custom.c:708 pg_backup_custom.c:758 pg_backup_custom.c:907
+#: pg_backup_tar.c:1086
 #, c-format
-msgid "could not write byte: %s\n"
-msgstr "æ\97 æ³\95å\86\99å­\97è\8a\82: %s\n"
+msgid "could not determine seek position in archive file: %s\n"
+msgstr "æ\97 æ³\95å\9c¨å½\92æ¡£æ\96\87件中确å®\9aæ\9f¥æ\89¾ä½\8dç½®: %s\n"
 
-#: pg_backup_custom.c:727 pg_backup_custom.c:765
+#: pg_backup_custom.c:726 pg_backup_custom.c:763
 #, c-format
 msgid "could not close archive file: %s\n"
 msgstr "无法关闭归档文件: %s\n"
 
-#: pg_backup_custom.c:746
+#: pg_backup_custom.c:745
 #, c-format
 msgid "can only reopen input archives\n"
 msgstr "只能重新打开输入归档\n"
 
-#: pg_backup_custom.c:753
+#: pg_backup_custom.c:752
 #, c-format
 msgid "parallel restore from standard input is not supported\n"
 msgstr "不支持从标准输入进行并行恢复\n"
 
-#: pg_backup_custom.c:755
+#: pg_backup_custom.c:754
 #, c-format
 msgid "parallel restore from non-seekable file is not supported\n"
 msgstr "不支持从不可随机寻址的文件里并行恢复\n"
 
-#: pg_backup_custom.c:760
-#, c-format
-msgid "could not determine seek position in archive file: %s\n"
-msgstr "无法在归档文件中确定查找位置: %s\n"
-
-#: pg_backup_custom.c:775
+#: pg_backup_custom.c:773
 #, c-format
 msgid "could not set seek position in archive file: %s\n"
 msgstr "无法在归档文件中设置查找位置: %s\n"
 
-#: pg_backup_custom.c:793
+#: pg_backup_custom.c:791
 #, c-format
 msgid "compressor active\n"
 msgstr "压缩程序已激活\n"
 
-#: pg_backup_custom.c:903
+#: pg_backup_custom.c:911
 #, c-format
 msgid "WARNING: ftell mismatch with expected position -- ftell used\n"
 msgstr "警告: ftell 和预期位置不匹配 -- 使用 ftell\n"
@@ -1026,12 +1016,12 @@ msgstr "归档 (db)"
 msgid "could not get server_version from libpq\n"
 msgstr "无法从 libpq 获取服务器版本\n"
 
-#: pg_backup_db.c:54 pg_dumpall.c:1896
+#: pg_backup_db.c:54 pg_dumpall.c:1934
 #, c-format
 msgid "server version: %s; %s version: %s\n"
 msgstr "服务器版本: %s; %s 版本: %s\n"
 
-#: pg_backup_db.c:56 pg_dumpall.c:1898
+#: pg_backup_db.c:56 pg_dumpall.c:1936
 #, c-format
 msgid "aborting because of server version mismatch\n"
 msgstr "因为服务器版本不匹配而终止\n"
@@ -1042,7 +1032,7 @@ msgid "connecting to database \"%s\" as user \"%s\"\n"
 msgstr "以用户 \"%2$s\" 的身份联接到数据库 \"%1$s\"\n"
 
 #: pg_backup_db.c:132 pg_backup_db.c:184 pg_backup_db.c:231 pg_backup_db.c:277
-#: pg_dumpall.c:1726 pg_dumpall.c:1834
+#: pg_dumpall.c:1764 pg_dumpall.c:1872
 msgid "Password: "
 msgstr "口令: "
 
@@ -1092,31 +1082,31 @@ msgstr "查询是: %s\n"
 msgid "%s: %s    Command was: %s\n"
 msgstr "%s: %s    命令是: %s\n"
 
-#: pg_backup_db.c:460 pg_backup_db.c:531 pg_backup_db.c:538
+#: pg_backup_db.c:465 pg_backup_db.c:537 pg_backup_db.c:544
 msgid "could not execute query"
 msgstr "无法执行查询"
 
-#: pg_backup_db.c:511
+#: pg_backup_db.c:516
 #, c-format
 msgid "error returned by PQputCopyData: %s"
 msgstr "PQputCopyData返回错误: %s"
 
-#: pg_backup_db.c:557
+#: pg_backup_db.c:563
 #, c-format
 msgid "error returned by PQputCopyEnd: %s"
 msgstr "PQputCopyEnd返回错误: %s"
 
 # describe.c:933
-#: pg_backup_db.c:563
+#: pg_backup_db.c:569
 #, c-format
 msgid "COPY failed for table \"%s\": %s"
 msgstr "复制表 \"%s\"失败: %s"
 
-#: pg_backup_db.c:574
+#: pg_backup_db.c:580
 msgid "could not start database transaction"
 msgstr "无法开始数据库事务"
 
-#: pg_backup_db.c:580
+#: pg_backup_db.c:586
 msgid "could not commit database transaction"
 msgstr "无法提交数据库事务"
 
@@ -1130,58 +1120,63 @@ msgstr "目录归档器"
 msgid "no output directory specified\n"
 msgstr "没有指定输出目录\n"
 
-#: pg_backup_directory.c:193
+#: pg_backup_directory.c:190
+#, c-format
+msgid "could not read directory \"%s\": %s\n"
+msgstr "无法读取目录 \"%s\": %s\n"
+
+#: pg_backup_directory.c:194
+#, c-format
+#| msgid "could not open directory \"%s\": %s\n"
+msgid "could not close directory \"%s\": %s\n"
+msgstr "无法关闭目录 \"%s\": %s\n"
+
+#: pg_backup_directory.c:200
 #, c-format
 msgid "could not create directory \"%s\": %s\n"
 msgstr "无法创建目录 \"%s\": %s\n"
 
-#: pg_backup_directory.c:405
+#: pg_backup_directory.c:412
 #, c-format
 msgid "could not close data file: %s\n"
 msgstr "无法关闭数据文件: %s\n"
 
-#: pg_backup_directory.c:446
+#: pg_backup_directory.c:453
 #, c-format
 msgid "could not open large object TOC file \"%s\" for input: %s\n"
 msgstr "无法为输入: %s打开大对象文件\"%s\"\n"
 
-#: pg_backup_directory.c:456
+#: pg_backup_directory.c:464
 #, c-format
 msgid "invalid line in large object TOC file \"%s\": \"%s\"\n"
 msgstr "无效行存在于大对象文件\"%s\": \"%s\"\n"
 
-#: pg_backup_directory.c:465
+#: pg_backup_directory.c:473
 #, c-format
 msgid "error reading large object TOC file \"%s\"\n"
 msgstr "在读取大对象文件\"%s\"时发生错误\n"
 
-#: pg_backup_directory.c:469
+#: pg_backup_directory.c:477
 #, c-format
 msgid "could not close large object TOC file \"%s\": %s\n"
 msgstr "无法关闭大对象 TOC 文件\"%s\": %s\n"
 
-#: pg_backup_directory.c:490
-#, c-format
-msgid "could not write byte\n"
-msgstr "无法写字节\n"
-
-#: pg_backup_directory.c:682
+#: pg_backup_directory.c:687
 #, c-format
 msgid "could not write to blobs TOC file\n"
 msgstr "无法写入BLOB到大对象TOC文件\n"
 
-#: pg_backup_directory.c:714
+#: pg_backup_directory.c:719
 #, c-format
 msgid "file name too long: \"%s\"\n"
 msgstr "文件名超长: \"%s\"\n"
 
-#: pg_backup_directory.c:800
+#: pg_backup_directory.c:805
 #, c-format
-#| msgid "error during file seek: %s\n"
 msgid "error during backup\n"
 msgstr "在备份过程中出错\n"
 
-#: pg_backup_null.c:77
+#: pg_backup_null.c:76
 #, c-format
 msgid "this format cannot be read\n"
 msgstr "无法读取这个格式\n"
@@ -1236,68 +1231,58 @@ msgstr "无法打开临时文件\n"
 msgid "could not close tar member\n"
 msgstr "无法关闭 tar 成员\n"
 
-#: pg_backup_tar.c:560
+#: pg_backup_tar.c:573
 #, c-format
 msgid "internal error -- neither th nor fh specified in tarReadRaw()\n"
 msgstr "内部错误 -- 在 tarReadRaw() 里既未声明 th 也未声明 fh\n"
 
-#: pg_backup_tar.c:686
+#: pg_backup_tar.c:696
 #, c-format
 msgid "unexpected COPY statement syntax: \"%s\"\n"
 msgstr "意外的COPY语句语法: \"%s\"\n"
 
-#: pg_backup_tar.c:889
-#, c-format
-msgid "could not write null block at end of tar archive\n"
-msgstr "无法在 tar 归档末尾写 null 块\n"
-
-#: pg_backup_tar.c:944
+#: pg_backup_tar.c:958
 #, c-format
 msgid "invalid OID for large object (%u)\n"
 msgstr "用于大对象的非法 OID (%u)\n"
 
-#: pg_backup_tar.c:1078
+#: pg_backup_tar.c:1095
 #, c-format
 msgid "archive member too large for tar format\n"
 msgstr "在 tar 格式中归档成员太大\n"
 
 # command.c:1148
-#: pg_backup_tar.c:1093
+#: pg_backup_tar.c:1109
 #, c-format
 msgid "could not close temporary file: %s\n"
 msgstr "无法关闭临时文件: %s\n"
 
-#: pg_backup_tar.c:1103
+#: pg_backup_tar.c:1119
 #, c-format
 msgid "actual file length (%s) does not match expected (%s)\n"
 msgstr "实际文件长度 (%s) 不匹配预期的长度 (%s)\n"
 
-#: pg_backup_tar.c:1111
-#, c-format
-msgid "could not output padding at end of tar member\n"
-msgstr "无法在 tar 成员尾部输出填充内容\n"
-
-#: pg_backup_tar.c:1140
+#: pg_backup_tar.c:1156
 #, c-format
 msgid "moving from position %s to next member at file position %s\n"
 msgstr "从位置 %s 移动到文件位置 %s 的下一个成员\n"
 
-#: pg_backup_tar.c:1151
+#: pg_backup_tar.c:1167
 #, c-format
 msgid "now at file position %s\n"
 msgstr "现在在文件的位置 %s\n"
 
-#: pg_backup_tar.c:1160 pg_backup_tar.c:1190
+#: pg_backup_tar.c:1176 pg_backup_tar.c:1206
 #, c-format
 msgid "could not find header for file \"%s\" in tar archive\n"
 msgstr "无法在tar归档中为文件\"%s\"找到标题头\n"
 
-#: pg_backup_tar.c:1174
+#: pg_backup_tar.c:1190
 #, c-format
 msgid "skipping tar member %s\n"
 msgstr "忽略 tar 成员 %s\n"
 
-#: pg_backup_tar.c:1178
+#: pg_backup_tar.c:1194
 #, c-format
 msgid ""
 "restoring data out of order is not supported in this archive format: \"%s\" "
@@ -1306,23 +1291,18 @@ msgstr ""
 "这个归档格式里不支持不按照顺序转储数据: 要求\"%s\" ,但它在归档文件里位于\"%s"
 "\"前面.\n"
 
-#: pg_backup_tar.c:1224
-#, c-format
-msgid "mismatch in actual vs. predicted file position (%s vs. %s)\n"
-msgstr "实际文件位置和预期文件位置不匹配 (%s 对 %s)\n"
-
-#: pg_backup_tar.c:1239
+#: pg_backup_tar.c:1241
 #, c-format
 msgid "incomplete tar header found (%lu byte)\n"
 msgid_plural "incomplete tar header found (%lu bytes)\n"
 msgstr[0] "找到未完成的tar文件头(%lu个字节)\n"
 
-#: pg_backup_tar.c:1277
+#: pg_backup_tar.c:1279
 #, c-format
 msgid "TOC Entry %s at %s (length %lu, checksum %d)\n"
 msgstr "在 %2$s 的 TOC 记录 %1$s (长度 %3$lu, 校验和 %4$d)\n"
 
-#: pg_backup_tar.c:1287
+#: pg_backup_tar.c:1289
 #, c-format
 msgid ""
 "corrupt tar header found in %s (expected %d, computed %d) file position %s\n"
@@ -1334,9 +1314,9 @@ msgstr ""
 msgid "%s: unrecognized section name: \"%s\"\n"
 msgstr "%s: 无法识别的节名称: \"%s\"\n"
 
-#: pg_backup_utils.c:56 pg_dump.c:540 pg_dump.c:557 pg_dumpall.c:303
-#: pg_dumpall.c:313 pg_dumpall.c:323 pg_dumpall.c:332 pg_dumpall.c:341
-#: pg_dumpall.c:399 pg_restore.c:282 pg_restore.c:298 pg_restore.c:310
+#: pg_backup_utils.c:56 pg_dump.c:539 pg_dump.c:556 pg_dumpall.c:305
+#: pg_dumpall.c:315 pg_dumpall.c:325 pg_dumpall.c:334 pg_dumpall.c:350
+#: pg_dumpall.c:408 pg_restore.c:278 pg_restore.c:294 pg_restore.c:306
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "输入 \"%s --help\" 获取更多的信息.\n"
@@ -1346,7 +1326,7 @@ msgstr "输入 \"%s --help\" 获取更多的信息.\n"
 msgid "out of on_exit_nicely slots\n"
 msgstr "超出on_exit_nicely槽\n"
 
-#: pg_dump.c:555 pg_dumpall.c:311 pg_restore.c:296
+#: pg_dump.c:554 pg_dumpall.c:313 pg_restore.c:292
 #, c-format
 msgid "%s: too many command-line arguments (first is \"%s\")\n"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
@@ -1356,41 +1336,44 @@ msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 msgid "options -s/--schema-only and -a/--data-only cannot be used together\n"
 msgstr "选项 -s/--schema-only和-a/--data-only 不能同时使用.\n"
 
-#: pg_dump.c:570
+#: pg_dump.c:573
 #, c-format
 msgid "options -c/--clean and -a/--data-only cannot be used together\n"
 msgstr "选项 -c/--clean和 -a/--data-only不能同时使用.\n"
 
-#: pg_dump.c:574
+#: pg_dump.c:579
 #, c-format
 msgid ""
 "options --inserts/--column-inserts and -o/--oids cannot be used together\n"
 msgstr "选项--inserts/--column-inserts和-o/--oids不能同时使用.\n"
 
-#: pg_dump.c:575
+#: pg_dump.c:580
 #, c-format
 msgid "(The INSERT command cannot set OIDs.)\n"
 msgstr "(INSERT 命令无法设置对象标识(oid).)\n"
 
-#: pg_dump.c:605
+#: pg_dump.c:585
+#, c-format
+msgid "option --if-exists requires option -c/--clean\n"
+msgstr "选项 --if-exists 需要选项 -c/ --clean \n"
+
+#: pg_dump.c:613
 #, c-format
-#| msgid "%s: invalid port number \"%s\"\n"
 msgid "%s: invalid number of parallel jobs\n"
 msgstr "%s: 无效的并行工作数\n"
 
 # input.c:213
-#: pg_dump.c:609
+#: pg_dump.c:617
 #, c-format
-#| msgid "parallel restore is not supported with this archive file format\n"
 msgid "parallel backup only supported by the directory format\n"
 msgstr "并行备份只被目录格式支持\n"
 
-#: pg_dump.c:619
+#: pg_dump.c:627
 #, c-format
 msgid "could not open output file \"%s\" for writing\n"
 msgstr "无法打开输出文件 \"%s\" 用于写出\n"
 
-#: pg_dump.c:678
+#: pg_dump.c:686
 #, c-format
 msgid ""
 "Synchronized snapshots are not supported by this server version.\n"
@@ -1401,24 +1384,24 @@ msgstr ""
 "如果不需要同步快照功能,\n"
 "可以带参数 --no-synchronized-snapshots运行.\n"
 
-#: pg_dump.c:691
+#: pg_dump.c:699
 #, c-format
 msgid "last built-in OID is %u\n"
 msgstr "最后的内置 OID 是 %u\n"
 
 # describe.c:1542
-#: pg_dump.c:700
+#: pg_dump.c:708
 #, c-format
 msgid "No matching schemas were found\n"
 msgstr "没有找到符合的关联。\n"
 
 # describe.c:1542
-#: pg_dump.c:712
+#: pg_dump.c:720
 #, c-format
 msgid "No matching tables were found\n"
 msgstr "没有找到符合的关联。\n"
 
-#: pg_dump.c:856
+#: pg_dump.c:865
 #, c-format
 msgid ""
 "%s dumps a database as a text file or to other formats.\n"
@@ -1427,17 +1410,17 @@ msgstr ""
 "%s 把一个数据库转储为纯文本文件或者是其它格式.\n"
 "\n"
 
-#: pg_dump.c:857 pg_dumpall.c:541 pg_restore.c:414
+#: pg_dump.c:866 pg_dumpall.c:553 pg_restore.c:432
 #, c-format
 msgid "Usage:\n"
 msgstr "用法:\n"
 
-#: pg_dump.c:858
+#: pg_dump.c:867
 #, c-format
 msgid "  %s [OPTION]... [DBNAME]\n"
 msgstr "  %s [选项]... [数据库名字]\n"
 
-#: pg_dump.c:860 pg_dumpall.c:544 pg_restore.c:417
+#: pg_dump.c:869 pg_dumpall.c:556 pg_restore.c:435
 #, c-format
 msgid ""
 "\n"
@@ -1446,12 +1429,12 @@ msgstr ""
 "\n"
 "一般选项:\n"
 
-#: pg_dump.c:861
+#: pg_dump.c:870
 #, c-format
 msgid "  -f, --file=FILENAME          output file or directory name\n"
 msgstr "  -f, --file=FILENAME          输出文件或目录名\n"
 
-#: pg_dump.c:862
+#: pg_dump.c:871
 #, c-format
 msgid ""
 "  -F, --format=c|d|t|p         output file format (custom, directory, tar,\n"
@@ -1460,41 +1443,39 @@ msgstr ""
 "  -F, --format=c|d|t|p         输出文件格式 (定制, 目录, tar)\n"
 "                               明文 (默认值))\n"
 
-#: pg_dump.c:864
+#: pg_dump.c:873
 #, c-format
-#| msgid ""
-#| "  -j, --jobs=NUM               use this many parallel jobs to restore\n"
 msgid "  -j, --jobs=NUM               use this many parallel jobs to dump\n"
 msgstr "  -j, --jobs=NUM               执行多个并行任务进行备份转储工作\n"
 
-#: pg_dump.c:865
+#: pg_dump.c:874
 #, c-format
 msgid "  -v, --verbose                verbose mode\n"
 msgstr "  -v, --verbose                详细模式\n"
 
-#: pg_dump.c:866 pg_dumpall.c:546
+#: pg_dump.c:875 pg_dumpall.c:558
 #, c-format
 msgid "  -V, --version                output version information, then exit\n"
 msgstr "  -V, --version                输出版本信息,然后退出\n"
 
-#: pg_dump.c:867
+#: pg_dump.c:876
 #, c-format
 msgid ""
 "  -Z, --compress=0-9           compression level for compressed formats\n"
 msgstr "  -Z, --compress=0-9           被压缩格式的压缩级别\n"
 
-#: pg_dump.c:868 pg_dumpall.c:547
+#: pg_dump.c:877 pg_dumpall.c:559
 #, c-format
 msgid ""
 "  --lock-wait-timeout=TIMEOUT  fail after waiting TIMEOUT for a table lock\n"
 msgstr "  --lock-wait-timeout=TIMEOUT  在等待表锁超时后操作失败\n"
 
-#: pg_dump.c:869 pg_dumpall.c:548
+#: pg_dump.c:878 pg_dumpall.c:560
 #, c-format
 msgid "  -?, --help                   show this help, then exit\n"
 msgstr "  -?, --help                   显示此帮助, 然后退出\n"
 
-#: pg_dump.c:871 pg_dumpall.c:549
+#: pg_dump.c:880 pg_dumpall.c:561
 #, c-format
 msgid ""
 "\n"
@@ -1503,17 +1484,17 @@ msgstr ""
 "\n"
 "控制输出内容选项:\n"
 
-#: pg_dump.c:872 pg_dumpall.c:550
+#: pg_dump.c:881 pg_dumpall.c:562
 #, c-format
 msgid "  -a, --data-only              dump only the data, not the schema\n"
 msgstr "  -a, --data-only              只转储数据,不包括模式\n"
 
-#: pg_dump.c:873
+#: pg_dump.c:882
 #, c-format
 msgid "  -b, --blobs                  include large objects in dump\n"
 msgstr "  -b, --blobs                  在转储中包括大对象\n"
 
-#: pg_dump.c:874 pg_restore.c:428
+#: pg_dump.c:883 pg_restore.c:446
 #, c-format
 msgid ""
 "  -c, --clean                  clean (drop) database objects before "
@@ -1521,33 +1502,33 @@ msgid ""
 msgstr ""
 "  -c, --clean                  在重新创建之前,先清除(删除)数据库对象\n"
 
-#: pg_dump.c:875
+#: pg_dump.c:884
 #, c-format
 msgid ""
 "  -C, --create                 include commands to create database in dump\n"
 msgstr "  -C, --create                 在转储中包括命令,以便创建数据库\n"
 
-#: pg_dump.c:876
+#: pg_dump.c:885
 #, c-format
 msgid "  -E, --encoding=ENCODING      dump the data in encoding ENCODING\n"
 msgstr "  -E, --encoding=ENCODING      转储以ENCODING形式编码的数据\n"
 
-#: pg_dump.c:877
+#: pg_dump.c:886
 #, c-format
 msgid "  -n, --schema=SCHEMA          dump the named schema(s) only\n"
 msgstr "  -n, --schema=SCHEMA          只转储指定名称的模式\n"
 
-#: pg_dump.c:878
+#: pg_dump.c:887
 #, c-format
 msgid "  -N, --exclude-schema=SCHEMA  do NOT dump the named schema(s)\n"
 msgstr "  -N, --exclude-schema=SCHEMA  不转储已命名的模式\n"
 
-#: pg_dump.c:879 pg_dumpall.c:553
+#: pg_dump.c:888 pg_dumpall.c:565
 #, c-format
 msgid "  -o, --oids                   include OIDs in dump\n"
 msgstr "  -o, --oids                   在转储中包括 OID\n"
 
-#: pg_dump.c:880
+#: pg_dump.c:889
 #, c-format
 msgid ""
 "  -O, --no-owner               skip restoration of object ownership in\n"
@@ -1556,46 +1537,46 @@ msgstr ""
 "  -O, --no-owner               在明文格式中, 忽略恢复对象所属者\n"
 "\n"
 
-#: pg_dump.c:882 pg_dumpall.c:556
+#: pg_dump.c:891 pg_dumpall.c:568
 #, c-format
 msgid "  -s, --schema-only            dump only the schema, no data\n"
 msgstr "  -s, --schema-only            只转储模式, 不包括数据\n"
 
-#: pg_dump.c:883
+#: pg_dump.c:892
 #, c-format
 msgid ""
 "  -S, --superuser=NAME         superuser user name to use in plain-text "
 "format\n"
 msgstr "  -S, --superuser=NAME         在明文格式中使用指定的超级用户名\n"
 
-#: pg_dump.c:884
+#: pg_dump.c:893
 #, c-format
 msgid "  -t, --table=TABLE            dump the named table(s) only\n"
 msgstr "  -t, --table=TABLE            只转储指定名称的表\n"
 
-#: pg_dump.c:885
+#: pg_dump.c:894
 #, c-format
 msgid "  -T, --exclude-table=TABLE    do NOT dump the named table(s)\n"
 msgstr "  -T, --exclude-table=TABLE    不转储指定名称的表\n"
 
-#: pg_dump.c:886 pg_dumpall.c:559
+#: pg_dump.c:895 pg_dumpall.c:571
 #, c-format
 msgid "  -x, --no-privileges          do not dump privileges (grant/revoke)\n"
 msgstr "  -x, --no-privileges          不要转储权限 (grant/revoke)\n"
 
-#: pg_dump.c:887 pg_dumpall.c:560
+#: pg_dump.c:896 pg_dumpall.c:572
 #, c-format
 msgid "  --binary-upgrade             for use by upgrade utilities only\n"
 msgstr "  --binary-upgrade             只能由升级工具使用\n"
 
-#: pg_dump.c:888 pg_dumpall.c:561
+#: pg_dump.c:897 pg_dumpall.c:573
 #, c-format
 msgid ""
 "  --column-inserts             dump data as INSERT commands with column "
 "names\n"
 msgstr "  --column-inserts             以带有列名的INSERT命令形式转储数据\n"
 
-#: pg_dump.c:889 pg_dumpall.c:562
+#: pg_dump.c:898 pg_dumpall.c:574
 #, c-format
 msgid ""
 "  --disable-dollar-quoting     disable dollar quoting, use SQL standard "
@@ -1603,19 +1584,26 @@ msgid ""
 msgstr ""
 "  --disable-dollar-quoting     取消美元 (符号) 引号, 使用 SQL 标准引号\n"
 
-#: pg_dump.c:890 pg_dumpall.c:563 pg_restore.c:444
+#: pg_dump.c:899 pg_dumpall.c:575 pg_restore.c:462
 #, c-format
 msgid ""
 "  --disable-triggers           disable triggers during data-only restore\n"
 msgstr "  --disable-triggers           在只恢复数据的过程中禁用触发器\n"
 
-#: pg_dump.c:891
+#: pg_dump.c:900
 #, c-format
 msgid ""
 "  --exclude-table-data=TABLE   do NOT dump data for the named table(s)\n"
 msgstr "  --exclude-table-data=TABLE   不转储指定名称的表中的数据\n"
 
-#: pg_dump.c:892 pg_dumpall.c:564
+#: pg_dump.c:901 pg_dumpall.c:576 pg_restore.c:463
+#, c-format
+#| msgid ""
+#| "  --if-exists               don't report error if user doesn't exist\n"
+msgid "  --if-exists                  use IF EXISTS when dropping objects\n"
+msgstr "  --if-exists              当删除对象时使用IF EXISTS\n"
+
+#: pg_dump.c:902 pg_dumpall.c:577
 #, c-format
 msgid ""
 "  --inserts                    dump data as INSERT commands, rather than "
@@ -1623,35 +1611,35 @@ msgid ""
 msgstr ""
 "  --inserts                    以INSERT命令,而不是COPY命令的形式转储数据\n"
 
-#: pg_dump.c:893 pg_dumpall.c:565
+#: pg_dump.c:903 pg_dumpall.c:578
 #, c-format
 msgid "  --no-security-labels         do not dump security label assignments\n"
 msgstr "  --no-security-labels         不转储安全标签的分配\n"
 
-#: pg_dump.c:894
+#: pg_dump.c:904
 #, c-format
 msgid ""
 "  --no-synchronized-snapshots  do not use synchronized snapshots in parallel "
 "jobs\n"
 msgstr "  --no-synchronized-snapshots  在并行工作集中不使用同步快照\n"
 
-#: pg_dump.c:895 pg_dumpall.c:566
+#: pg_dump.c:905 pg_dumpall.c:579
 #, c-format
 msgid "  --no-tablespaces             do not dump tablespace assignments\n"
 msgstr "  --no-tablespaces             不转储表空间分配信息\n"
 
-#: pg_dump.c:896 pg_dumpall.c:567
+#: pg_dump.c:906 pg_dumpall.c:580
 #, c-format
 msgid "  --no-unlogged-table-data     do not dump unlogged table data\n"
 msgstr "  --no-unlogged-table-data     不转储没有日志的表数据\n"
 
-#: pg_dump.c:897 pg_dumpall.c:568
+#: pg_dump.c:907 pg_dumpall.c:581
 #, c-format
 msgid ""
 "  --quote-all-identifiers      quote all identifiers, even if not key words\n"
 msgstr "  --quote-all-identifiers      所有标识符加引号,即使不是关键字\n"
 
-#: pg_dump.c:898
+#: pg_dump.c:908
 #, c-format
 msgid ""
 "  --section=SECTION            dump named section (pre-data, data, or post-"
@@ -1659,14 +1647,14 @@ msgid ""
 msgstr ""
 "  --section=SECTION            备份命名的节 (数据前, 数据, 及 数据后)\n"
 
-#: pg_dump.c:899
+#: pg_dump.c:909
 #, c-format
 msgid ""
 "  --serializable-deferrable    wait until the dump can run without "
 "anomalies\n"
 msgstr "  --serializable-deferrable   等到备份可以无异常运行\n"
 
-#: pg_dump.c:900 pg_dumpall.c:569 pg_restore.c:450
+#: pg_dump.c:910 pg_dumpall.c:582 pg_restore.c:469
 #, c-format
 msgid ""
 "  --use-set-session-authorization\n"
@@ -1678,7 +1666,7 @@ msgstr ""
 "                               使用 SESSION AUTHORIZATION 命令代替\n"
 "                ALTER OWNER 命令来设置所有权\n"
 
-#: pg_dump.c:904 pg_dumpall.c:573 pg_restore.c:454
+#: pg_dump.c:914 pg_dumpall.c:586 pg_restore.c:473
 #, c-format
 msgid ""
 "\n"
@@ -1687,45 +1675,44 @@ msgstr ""
 "\n"
 "联接选项:\n"
 
-#: pg_dump.c:905
+#: pg_dump.c:915
 #, c-format
-#| msgid "  -d, --dbname=DBNAME       database to cluster\n"
 msgid "  -d, --dbname=DBNAME      database to dump\n"
 msgstr "  -d, --dbname=DBNAME       对数据库 DBNAME备份\n"
 
-#: pg_dump.c:906 pg_dumpall.c:575 pg_restore.c:455
+#: pg_dump.c:916 pg_dumpall.c:588 pg_restore.c:474
 #, c-format
 msgid "  -h, --host=HOSTNAME      database server host or socket directory\n"
 msgstr "  -h, --host=主机名        数据库服务器的主机名或套接字目录\n"
 
-#: pg_dump.c:907 pg_dumpall.c:577 pg_restore.c:456
+#: pg_dump.c:917 pg_dumpall.c:590 pg_restore.c:475
 #, c-format
 msgid "  -p, --port=PORT          database server port number\n"
 msgstr "  -p, --port=端口号        数据库服务器的端口号\n"
 
-#: pg_dump.c:908 pg_dumpall.c:578 pg_restore.c:457
+#: pg_dump.c:918 pg_dumpall.c:591 pg_restore.c:476
 #, c-format
 msgid "  -U, --username=NAME      connect as specified database user\n"
 msgstr "  -U, --username=名字      以指定的数据库用户联接\n"
 
-#: pg_dump.c:909 pg_dumpall.c:579 pg_restore.c:458
+#: pg_dump.c:919 pg_dumpall.c:592 pg_restore.c:477
 #, c-format
 msgid "  -w, --no-password        never prompt for password\n"
 msgstr "  -w, --no-password        永远不提示输入口令\n"
 
-#: pg_dump.c:910 pg_dumpall.c:580 pg_restore.c:459
+#: pg_dump.c:920 pg_dumpall.c:593 pg_restore.c:478
 #, c-format
 msgid ""
 "  -W, --password           force password prompt (should happen "
 "automatically)\n"
 msgstr "  -W, --password           强制口令提示 (自动)\n"
 
-#: pg_dump.c:911 pg_dumpall.c:581
+#: pg_dump.c:921 pg_dumpall.c:594
 #, c-format
 msgid "  --role=ROLENAME          do SET ROLE before dump\n"
 msgstr "  --role=ROLENAME          在转储前运行SET ROLE\n"
 
-#: pg_dump.c:913
+#: pg_dump.c:923
 #, c-format
 msgid ""
 "\n"
@@ -1738,154 +1725,154 @@ msgstr ""
 "的数值.\n"
 "\n"
 
-#: pg_dump.c:915 pg_dumpall.c:585 pg_restore.c:463
+#: pg_dump.c:925 pg_dumpall.c:598 pg_restore.c:485
 #, c-format
 msgid "Report bugs to <pgsql-bugs@postgresql.org>.\n"
 msgstr "报告错误至 <pgsql-bugs@postgresql.org>.\n"
 
-#: pg_dump.c:933
+#: pg_dump.c:943
 #, c-format
 msgid "invalid client encoding \"%s\" specified\n"
 msgstr "声明了无效的输出格式 \"%s\"\n"
 
-#: pg_dump.c:1095
+#: pg_dump.c:1105
 #, c-format
 msgid "invalid output format \"%s\" specified\n"
 msgstr "声明了非法的输出格式 \"%s\"\n"
 
-#: pg_dump.c:1117
+#: pg_dump.c:1127
 #, c-format
 msgid "server version must be at least 7.3 to use schema selection switches\n"
 msgstr "服务器版本必须至少是7.3才能使用模式选择转换\n"
 
-#: pg_dump.c:1393
+#: pg_dump.c:1403
 #, c-format
 msgid "dumping contents of table %s\n"
 msgstr "正在转储表 %s 的内容\n"
 
-#: pg_dump.c:1516
+#: pg_dump.c:1526
 #, c-format
 msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed.\n"
 msgstr "转储表 \"%s\" 的内容的 SQL 命令失败: PQendcopy() 失败.\n"
 
-#: pg_dump.c:1517 pg_dump.c:1527
+#: pg_dump.c:1527 pg_dump.c:1537
 #, c-format
 msgid "Error message from server: %s"
 msgstr "来自服务器的错误信息: %s"
 
-#: pg_dump.c:1518 pg_dump.c:1528
+#: pg_dump.c:1528 pg_dump.c:1538
 #, c-format
 msgid "The command was: %s\n"
 msgstr "命令是: %s\n"
 
-#: pg_dump.c:1526
+#: pg_dump.c:1536
 #, c-format
 msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed.\n"
 msgstr "转储表 \"%s\" 的内容失败: PQgetResult() 失败.\n"
 
-#: pg_dump.c:2136
+#: pg_dump.c:2174
 #, c-format
 msgid "saving database definition\n"
 msgstr "保存数据库定义\n"
 
-#: pg_dump.c:2433
+#: pg_dump.c:2503
 #, c-format
 msgid "saving encoding = %s\n"
 msgstr "正在保存encoding = %s\n"
 
-#: pg_dump.c:2460
+#: pg_dump.c:2530
 #, c-format
 msgid "saving standard_conforming_strings = %s\n"
 msgstr "正在保存standard_conforming_strings = %s\n"
 
-#: pg_dump.c:2493
+#: pg_dump.c:2563
 #, c-format
 msgid "reading large objects\n"
 msgstr "正在读取大对象\n"
 
-#: pg_dump.c:2625
+#: pg_dump.c:2695
 #, c-format
 msgid "saving large objects\n"
 msgstr "保存大对象\n"
 
-#: pg_dump.c:2672
+#: pg_dump.c:2742
 #, c-format
 msgid "error reading large object %u: %s"
 msgstr "在读取大对象时发生错误%u: %s"
 
-#: pg_dump.c:2865
+#: pg_dump.c:2935
 #, c-format
 msgid "could not find parent extension for %s\n"
 msgstr "无法找到父扩展%s\n"
 
-#: pg_dump.c:2968
+#: pg_dump.c:3038
 #, c-format
 msgid "WARNING: owner of schema \"%s\" appears to be invalid\n"
 msgstr "警告: 模式 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:3011
+#: pg_dump.c:3081
 #, c-format
 msgid "schema with OID %u does not exist\n"
 msgstr "OID %u 的模式不存在\n"
 
-#: pg_dump.c:3361
+#: pg_dump.c:3431
 #, c-format
 msgid "WARNING: owner of data type \"%s\" appears to be invalid\n"
 msgstr "警告: 数据类型 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:3472
+#: pg_dump.c:3542
 #, c-format
 msgid "WARNING: owner of operator \"%s\" appears to be invalid\n"
 msgstr "警告: 操作符 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:3729
+#: pg_dump.c:3801
 #, c-format
 msgid "WARNING: owner of operator class \"%s\" appears to be invalid\n"
 msgstr "警告: 操作符表 \"%s\" 无效\n"
 
-#: pg_dump.c:3817
+#: pg_dump.c:3889
 #, c-format
 msgid "WARNING: owner of operator family \"%s\" appears to be invalid\n"
 msgstr "警告: 操作符 \"%s\" 的所有者无效\n"
 
-#: pg_dump.c:3976
+#: pg_dump.c:4048
 #, c-format
 msgid "WARNING: owner of aggregate function \"%s\" appears to be invalid\n"
 msgstr "警告: 聚集函数 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:4180
+#: pg_dump.c:4252
 #, c-format
 msgid "WARNING: owner of function \"%s\" appears to be invalid\n"
 msgstr "警告: 函数 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:4734
+#: pg_dump.c:4870
 #, c-format
 msgid "WARNING: owner of table \"%s\" appears to be invalid\n"
 msgstr "警告: 数据表 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:4885
+#: pg_dump.c:5022
 #, c-format
 msgid "reading indexes for table \"%s\"\n"
 msgstr "为表 \"%s\" 读取索引\n"
 
-#: pg_dump.c:5218
+#: pg_dump.c:5388
 #, c-format
 msgid "reading foreign key constraints for table \"%s\"\n"
 msgstr "为表 \"%s\" 读取外键约束\n"
 
-#: pg_dump.c:5463
+#: pg_dump.c:5633
 #, c-format
 msgid ""
 "failed sanity check, parent table OID %u of pg_rewrite entry OID %u not "
 "found\n"
 msgstr "健全检查失败,pg_rewrite项OID %2$u 的源表 OID%1$u 未找到\n"
 
-#: pg_dump.c:5556
+#: pg_dump.c:5726
 #, c-format
 msgid "reading triggers for table \"%s\"\n"
 msgstr "为表 \"%s\" 读取触发器\n"
 
-#: pg_dump.c:5717
+#: pg_dump.c:5887
 #, c-format
 msgid ""
 "query produced null referenced table name for foreign key trigger \"%s\" on "
@@ -1894,181 +1881,181 @@ msgstr ""
 "对在表 \"%2$s\" 上的外键触发器 \"%1$s\" 上的查询生成了 NULL 个引用表(表的 "
 "OID 是: %3$u)\n"
 
-#: pg_dump.c:6169
+#: pg_dump.c:6339
 #, c-format
 msgid "finding the columns and types of table \"%s\"\n"
 msgstr "正在查找表 \"%s\" 的字段和类型\n"
 
-#: pg_dump.c:6347
+#: pg_dump.c:6517
 #, c-format
 msgid "invalid column numbering in table \"%s\"\n"
 msgstr "在表 \"%s\" 中的字段个数是无效的\n"
 
-#: pg_dump.c:6381
+#: pg_dump.c:6551
 #, c-format
 msgid "finding default expressions of table \"%s\"\n"
 msgstr "正在查找表 \"%s\" 的默认表达式\n"
 
-#: pg_dump.c:6433
+#: pg_dump.c:6603
 #, c-format
 msgid "invalid adnum value %d for table \"%s\"\n"
 msgstr "表 \"%2$s\" 的无效 adnum 值 %1$d\n"
 
-#: pg_dump.c:6505
+#: pg_dump.c:6675
 #, c-format
 msgid "finding check constraints for table \"%s\"\n"
 msgstr "正在为表 \"%s\" 查找检查约束\n"
 
-#: pg_dump.c:6600
+#: pg_dump.c:6770
 #, c-format
 msgid "expected %d check constraint on table \"%s\" but found %d\n"
 msgid_plural "expected %d check constraints on table \"%s\" but found %d\n"
 msgstr[0] "在表\"%2$s\"上期望有%1$d个检查约束,但是找到了%3$d个\n"
 
-#: pg_dump.c:6604
+#: pg_dump.c:6774
 #, c-format
 msgid "(The system catalogs might be corrupted.)\n"
 msgstr "(系统表可能损坏了.)\n"
 
-#: pg_dump.c:7970
+#: pg_dump.c:8143
 #, c-format
 msgid "WARNING: typtype of data type \"%s\" appears to be invalid\n"
 msgstr "警告: 数据类型 \"%s\" 的所有者看起来无效\n"
 
-#: pg_dump.c:9419
+#: pg_dump.c:9585
 #, c-format
 msgid "WARNING: bogus value in proargmodes array\n"
 msgstr "警告: 无法分析 proargmodes 数组\n"
 
-#: pg_dump.c:9747
+#: pg_dump.c:9913
 #, c-format
 msgid "WARNING: could not parse proallargtypes array\n"
 msgstr "警告: 无法分析 proallargtypes 数组\n"
 
-#: pg_dump.c:9763
+#: pg_dump.c:9929
 #, c-format
 msgid "WARNING: could not parse proargmodes array\n"
 msgstr "警告: 无法分析 proargmodes 数组\n"
 
-#: pg_dump.c:9777
+#: pg_dump.c:9943
 #, c-format
 msgid "WARNING: could not parse proargnames array\n"
 msgstr "警告: 无法分析 proargnames 数组\n"
 
-#: pg_dump.c:9788
+#: pg_dump.c:9954
 #, c-format
 msgid "WARNING: could not parse proconfig array\n"
 msgstr "警告: 无法解析 proconfig 数组\n"
 
-#: pg_dump.c:9845
+#: pg_dump.c:10009
 #, c-format
 msgid "unrecognized provolatile value for function \"%s\"\n"
 msgstr "函数 \"%s\" 的意外正向易失值\n"
 
-#: pg_dump.c:10065
+#: pg_dump.c:10231
 #, c-format
 msgid "WARNING: bogus value in pg_cast.castfunc or pg_cast.castmethod field\n"
 msgstr "警告: 在pg_cast.castfunc或者pg_cast.castmethod字段中的是假值\n"
 
-#: pg_dump.c:10068
+#: pg_dump.c:10234
 #, c-format
 msgid "WARNING: bogus value in pg_cast.castmethod field\n"
 msgstr "警告: 在pg_cast.castmethod字段中的是假值\n"
 
-#: pg_dump.c:10437
+#: pg_dump.c:10622
 #, c-format
 msgid "WARNING: could not find operator with OID %s\n"
 msgstr "警告: 未找到 OID 为 %s 的操作符\n"
 
-#: pg_dump.c:11499
+#: pg_dump.c:11797
 #, c-format
 msgid ""
 "WARNING: aggregate function %s could not be dumped correctly for this "
 "database version; ignored\n"
 msgstr "警告: 无法为此版本的数据库正确转储聚集函数 \"%s\"; 忽略\n"
 
-#: pg_dump.c:12275
+#: pg_dump.c:12622
 #, c-format
 msgid "unrecognized object type in default privileges: %d\n"
 msgstr "缺省权限中存在未知对象类型: %d\n"
 
-#: pg_dump.c:12290
+#: pg_dump.c:12637
 #, c-format
 msgid "could not parse default ACL list (%s)\n"
 msgstr "无法解析缺省ACL列表(%s)\n"
 
-#: pg_dump.c:12345
+#: pg_dump.c:12692
 #, c-format
 msgid "could not parse ACL list (%s) for object \"%s\" (%s)\n"
 msgstr "无法为对象 \"%2$s\" 分析 ACL 列表 (%1$s) (%3$s)\n"
 
-#: pg_dump.c:12764
+#: pg_dump.c:13109
 #, c-format
 msgid "query to obtain definition of view \"%s\" returned no data\n"
 msgstr "获取视图 \"%s\" 定义的查询没有返回数据\n"
 
-#: pg_dump.c:12767
+#: pg_dump.c:13112
 #, c-format
 msgid ""
 "query to obtain definition of view \"%s\" returned more than one definition\n"
 msgstr "获取视图 \"%s\" 定义的查询返回超过一个定义\n"
 
-#: pg_dump.c:12774
+#: pg_dump.c:13119
 #, c-format
 msgid "definition of view \"%s\" appears to be empty (length zero)\n"
 msgstr "视图 \"%s\" 的定义是空的(零长)\n"
 
-#: pg_dump.c:13482
+#: pg_dump.c:13852
 #, c-format
 msgid "invalid column number %d for table \"%s\"\n"
 msgstr "对于表 \"%2$s\" 字段个数 %1$d 是无效的\n"
 
-#: pg_dump.c:13597
+#: pg_dump.c:13976
 #, c-format
 msgid "missing index for constraint \"%s\"\n"
 msgstr "对于约束 \"%s\" 缺少索引\n"
 
-#: pg_dump.c:13784
+#: pg_dump.c:14163
 #, c-format
 msgid "unrecognized constraint type: %c\n"
 msgstr "未知的约束类型: %c\n"
 
-#: pg_dump.c:13933 pg_dump.c:14097
+#: pg_dump.c:14312 pg_dump.c:14476
 #, c-format
 msgid "query to get data of sequence \"%s\" returned %d row (expected 1)\n"
 msgid_plural ""
 "query to get data of sequence \"%s\" returned %d rows (expected 1)\n"
 msgstr[0] "查询得到了序列\"%s\"的数据,返回了%d条记录(期望一条)\n"
 
-#: pg_dump.c:13944
+#: pg_dump.c:14323
 #, c-format
 msgid "query to get data of sequence \"%s\" returned name \"%s\"\n"
 msgstr "获取序列 \"%s\" 的数据的查询返回了名字 \"%s\"\n"
 
 # fe-exec.c:1371
-#: pg_dump.c:14184
+#: pg_dump.c:14571
 #, c-format
 msgid "unexpected tgtype value: %d\n"
 msgstr "意外的tgtype值: %d\n"
 
-#: pg_dump.c:14266
+#: pg_dump.c:14653
 #, c-format
 msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"\n"
 msgstr "给表 \"%3$s\" 上的触发器 \"%2$s\" 的错误参数 (%1$s)\n"
 
-#: pg_dump.c:14446
+#: pg_dump.c:14841
 #, c-format
 msgid ""
 "query to get rule \"%s\" for table \"%s\" failed: wrong number of rows "
 "returned\n"
 msgstr "获取表 \"%2$s\" 的规则 \"%1$s\" 查询失败: 返回了错误的行数\n"
 
-#: pg_dump.c:14747
+#: pg_dump.c:15142
 #, c-format
 msgid "reading dependency data\n"
 msgstr "读取从属数据\n"
 
-#: pg_dump.c:15292
+#: pg_dump.c:15687
 #, c-format
 msgid "query returned %d row instead of one: %s\n"
 msgid_plural "query returned %d rows instead of one: %s\n"
@@ -2079,33 +2066,33 @@ msgstr[0] "查询返回了%d条记录,而不是一条记录: %s\n"
 msgid "sorter"
 msgstr "排序器"
 
-#: pg_dump_sort.c:465
+#: pg_dump_sort.c:466
 #, c-format
 msgid "invalid dumpId %d\n"
 msgstr "无效的dumpId %d\n"
 
-#: pg_dump_sort.c:471
+#: pg_dump_sort.c:472
 #, c-format
 msgid "invalid dependency %d\n"
 msgstr "无效的依赖 %d\n"
 
-#: pg_dump_sort.c:685
+#: pg_dump_sort.c:705
 #, c-format
 msgid "could not identify dependency loop\n"
 msgstr "无法标识循环依赖\n"
 
-#: pg_dump_sort.c:1135
+#: pg_dump_sort.c:1227
 #, c-format
 msgid ""
 "NOTICE: there are circular foreign-key constraints among these table(s):\n"
 msgstr "注意: 这些表之间存在循环外键约束依赖:\n"
 
-#: pg_dump_sort.c:1137 pg_dump_sort.c:1157
+#: pg_dump_sort.c:1229 pg_dump_sort.c:1249
 #, c-format
 msgid "  %s\n"
 msgstr "  %s\n"
 
-#: pg_dump_sort.c:1138
+#: pg_dump_sort.c:1230
 #, c-format
 msgid ""
 "You might not be able to restore the dump without using --disable-triggers "
@@ -2113,19 +2100,19 @@ msgid ""
 msgstr ""
 "不使用 --disable-triggers 选项或者临时删除约束,你将不能对备份进行恢复 .\n"
 
-#: pg_dump_sort.c:1139
+#: pg_dump_sort.c:1231
 #, c-format
 msgid ""
 "Consider using a full dump instead of a --data-only dump to avoid this "
 "problem.\n"
 msgstr "考虑使用完全备份代替 --data-only选项进行备份以避免此问题.\n"
 
-#: pg_dump_sort.c:1151
+#: pg_dump_sort.c:1243
 #, c-format
 msgid "WARNING: could not resolve dependency loop among these items:\n"
 msgstr "WARNING: 无法解析这些项的循环依赖:\n"
 
-#: pg_dumpall.c:180
+#: pg_dumpall.c:182
 #, c-format
 msgid ""
 "The program \"pg_dump\" is needed by %s but was not found in the\n"
@@ -2136,7 +2123,7 @@ msgstr ""
 "\n"
 "检查您的安装.\n"
 
-#: pg_dumpall.c:187
+#: pg_dumpall.c:189
 #, c-format
 msgid ""
 "The program \"pg_dump\" was found by \"%s\"\n"
@@ -2147,32 +2134,37 @@ msgstr ""
 "\n"
 "检查您的安装.\n"
 
-#: pg_dumpall.c:321
+#: pg_dumpall.c:323
 #, c-format
 msgid ""
 "%s: options -g/--globals-only and -r/--roles-only cannot be used together\n"
 msgstr "%s: 选项-g/--globals-only和-r/--roles-only不能同时使用.\n"
 
-#: pg_dumpall.c:330
+#: pg_dumpall.c:332
 #, c-format
 msgid ""
 "%s: options -g/--globals-only and -t/--tablespaces-only cannot be used "
 "together\n"
 msgstr "%s: 选项  -g/--globals-only和-t/--tablespaces-only不能同时使用.\n"
 
-#: pg_dumpall.c:339
+#: pg_dumpall.c:341 pg_restore.c:343
+#, c-format
+msgid "%s: option --if-exists requires option -c/--clean\n"
+msgstr "%s: 选项 --if-exists 需要选项 -c/ --clean \n"
+
+#: pg_dumpall.c:348
 #, c-format
 msgid ""
 "%s: options -r/--roles-only and -t/--tablespaces-only cannot be used "
 "together\n"
 msgstr "%s: 选项  -r/--roles-only和 -t/--tablespaces-only不能同时使用.\n"
 
-#: pg_dumpall.c:381 pg_dumpall.c:1823
+#: pg_dumpall.c:390 pg_dumpall.c:1861
 #, c-format
 msgid "%s: could not connect to database \"%s\"\n"
 msgstr "%s: 无法与数据库 \"%s\" 联接\n"
 
-#: pg_dumpall.c:396
+#: pg_dumpall.c:405
 #, c-format
 msgid ""
 "%s: could not connect to databases \"postgres\" or \"template1\"\n"
@@ -2182,12 +2174,12 @@ msgstr ""
 "请指定另外一个数据库.\n"
 
 # command.c:1148
-#: pg_dumpall.c:413
+#: pg_dumpall.c:422
 #, c-format
 msgid "%s: could not open the output file \"%s\": %s\n"
 msgstr "%s:无法打开输出文件 \"%s\":%s\n"
 
-#: pg_dumpall.c:540
+#: pg_dumpall.c:552
 #, c-format
 msgid ""
 "%s extracts a PostgreSQL database cluster into an SQL script file.\n"
@@ -2196,61 +2188,60 @@ msgstr ""
 "%s 抽取一个 PostgreSQL 数据库簇进一个 SQL 脚本文件.\n"
 "\n"
 
-#: pg_dumpall.c:542
+#: pg_dumpall.c:554
 #, c-format
 msgid "  %s [OPTION]...\n"
 msgstr "  %s [选项]...\n"
 
-#: pg_dumpall.c:545
+#: pg_dumpall.c:557
 #, c-format
 msgid "  -f, --file=FILENAME          output file name\n"
 msgstr "  -f, --file=FILENAME          输出文件名\n"
 
-#: pg_dumpall.c:551
+#: pg_dumpall.c:563
 #, c-format
 msgid ""
 "  -c, --clean                  clean (drop) databases before recreating\n"
 msgstr "  -c, --clean                  在重新创建数据库前先清除(删除)数据库\n"
 
-#: pg_dumpall.c:552
+#: pg_dumpall.c:564
 #, c-format
 msgid "  -g, --globals-only           dump only global objects, no databases\n"
 msgstr "  -g, --globals-only           只转储全局对象, 不包括数据库\n"
 
-#: pg_dumpall.c:554 pg_restore.c:436
+#: pg_dumpall.c:566 pg_restore.c:454
 #, c-format
 msgid "  -O, --no-owner               skip restoration of object ownership\n"
 msgstr "  -O, --no-owner               不恢复对象所属者\n"
 
-#: pg_dumpall.c:555
+#: pg_dumpall.c:567
 #, c-format
 msgid ""
 "  -r, --roles-only             dump only roles, no databases or tablespaces\n"
 msgstr "  -r, --roles-only             只转储角色,不包括数据库或表空间\n"
 
-#: pg_dumpall.c:557
+#: pg_dumpall.c:569
 #, c-format
 msgid "  -S, --superuser=NAME         superuser user name to use in the dump\n"
 msgstr "  -S, --superuser=NAME         在转储中, 指定的超级用户名\n"
 
-#: pg_dumpall.c:558
+#: pg_dumpall.c:570
 #, c-format
 msgid ""
 "  -t, --tablespaces-only       dump only tablespaces, no databases or roles\n"
 msgstr "  -t, --tablespaces-only       只转储表空间,而不转储数据库或角色\n"
 
-#: pg_dumpall.c:574
+#: pg_dumpall.c:587
 #, c-format
-#| msgid "  -d, --dbname=NAME        connect to database name\n"
 msgid "  -d, --dbname=CONNSTR     connect using connection string\n"
 msgstr "  -d, --dbname=CONNSTR        连接数据库使用的连接串\n"
 
-#: pg_dumpall.c:576
+#: pg_dumpall.c:589
 #, c-format
 msgid "  -l, --database=DBNAME    alternative default database\n"
 msgstr "  -l, --database=DBNAME    另一个缺省数据库\n"
 
-#: pg_dumpall.c:583
+#: pg_dumpall.c:596
 #, c-format
 msgid ""
 "\n"
@@ -2264,95 +2255,108 @@ msgstr ""
 ".\n"
 "\n"
 
-#: pg_dumpall.c:1083
+#: pg_dumpall.c:1101
 #, c-format
 msgid "%s: could not parse ACL list (%s) for tablespace \"%s\"\n"
 msgstr "%1$s: 无法为表空间 \"%3$s\" 分析 ACL 列表 (%2$s)\n"
 
-#: pg_dumpall.c:1387
+#: pg_dumpall.c:1418
 #, c-format
 msgid "%s: could not parse ACL list (%s) for database \"%s\"\n"
 msgstr "%1$s: 无法为数据库 \"%3$s\" 分析 ACL 列表 (%2$s)\n"
 
-#: pg_dumpall.c:1599
+#: pg_dumpall.c:1628
 #, c-format
 msgid "%s: dumping database \"%s\"...\n"
 msgstr "%s: 正在转储数据库 \"%s\"...\n"
 
-#: pg_dumpall.c:1609
+#: pg_dumpall.c:1649
 #, c-format
 msgid "%s: pg_dump failed on database \"%s\", exiting\n"
 msgstr "%s: pg_dump 失败在数据库 \"%s\", 正在退出\n"
 
 # command.c:1148
-#: pg_dumpall.c:1618
+#: pg_dumpall.c:1658
 #, c-format
 msgid "%s: could not re-open the output file \"%s\": %s\n"
 msgstr "%s:无法重新打开输出文件 \"%s\":%s\n"
 
-#: pg_dumpall.c:1665
+#: pg_dumpall.c:1703
 #, c-format
 msgid "%s: running \"%s\"\n"
 msgstr "%s: 正在运行 \"%s\"\n"
 
-#: pg_dumpall.c:1845
+#: pg_dumpall.c:1883
 #, c-format
 msgid "%s: could not connect to database \"%s\": %s\n"
 msgstr "%s: 无法与数据库 \"%s\" 联接: %s\n"
 
-#: pg_dumpall.c:1875
+#: pg_dumpall.c:1913
 #, c-format
 msgid "%s: could not get server version\n"
 msgstr "%s: 无法从服务器获取版本\n"
 
-#: pg_dumpall.c:1881
+#: pg_dumpall.c:1919
 #, c-format
 msgid "%s: could not parse server version \"%s\"\n"
 msgstr "%s: 无法分析版本字串 \"%s\"\n"
 
-#: pg_dumpall.c:1959 pg_dumpall.c:1985
+#: pg_dumpall.c:1997 pg_dumpall.c:2023
 #, c-format
 msgid "%s: executing %s\n"
 msgstr "%s: 执行 %s\n"
 
-#: pg_dumpall.c:1965 pg_dumpall.c:1991
+#: pg_dumpall.c:2003 pg_dumpall.c:2029
 #, c-format
 msgid "%s: query failed: %s"
 msgstr "%s: 查询失败: %s"
 
-#: pg_dumpall.c:1967 pg_dumpall.c:1993
+#: pg_dumpall.c:2005 pg_dumpall.c:2031
 #, c-format
 msgid "%s: query was: %s\n"
 msgstr "%s: 查询是: %s\n"
 
-#: pg_restore.c:308
+#: pg_restore.c:304
 #, c-format
 msgid "%s: options -d/--dbname and -f/--file cannot be used together\n"
 msgstr "%s: 选项 -d/--dbname和-f/--file不能同时使用.\n"
 
-#: pg_restore.c:320
+#: pg_restore.c:315
+#, c-format
+#| msgid ""
+#| "options -s/--schema-only and -a/--data-only cannot be used together\n"
+msgid ""
+"%s: options -s/--schema-only and -a/--data-only cannot be used together\n"
+msgstr "%s: 选项 -s/--schema-only和-a/--data-only 不能同时使用\n"
+
+#: pg_restore.c:322
+#, c-format
+#| msgid "options -c/--clean and -a/--data-only cannot be used together\n"
+msgid "%s: options -c/--clean and -a/--data-only cannot be used together\n"
+msgstr "%s: 选项 -c/--clean和 -a/--data-only不能同时使用.\n"
+
+#: pg_restore.c:330
 #, c-format
 msgid "%s: cannot specify both --single-transaction and multiple jobs\n"
 msgstr "%s: 不能同时指定选项--single-transaction和多个任务\n"
 
-#: pg_restore.c:351
+#: pg_restore.c:369
 #, c-format
 msgid ""
 "unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\"\n"
 msgstr "不可识别的归档格式\"%s\"; 请指定 \"c\", \"d\", 或 \"t\"\n"
 
-#: pg_restore.c:381
+#: pg_restore.c:399
 #, c-format
-#| msgid "maximum number of prepared transactions reached"
 msgid "%s: maximum number of parallel jobs is %d\n"
 msgstr "%s: 已经达到并行工作集的最大数 %d\n"
 
-#: pg_restore.c:399
+#: pg_restore.c:417
 #, c-format
 msgid "WARNING: errors ignored on restore: %d\n"
 msgstr "警告: 恢复中忽略错误: %d\n"
 
-#: pg_restore.c:413
+#: pg_restore.c:431
 #, c-format
 msgid ""
 "%s restores a PostgreSQL database from an archive created by pg_dump.\n"
@@ -2361,47 +2365,47 @@ msgstr ""
 "%s 从一个归档中恢复一个由 pg_dump 创建的 PostgreSQL 数据库.\n"
 "\n"
 
-#: pg_restore.c:415
+#: pg_restore.c:433
 #, c-format
 msgid "  %s [OPTION]... [FILE]\n"
 msgstr "  %s [选项]... [文件名]\n"
 
-#: pg_restore.c:418
+#: pg_restore.c:436
 #, c-format
 msgid "  -d, --dbname=NAME        connect to database name\n"
 msgstr "  -d, --dbname=名字        连接数据库名字\n"
 
-#: pg_restore.c:419
+#: pg_restore.c:437
 #, c-format
 msgid "  -f, --file=FILENAME      output file name\n"
 msgstr "  -f, --file=文件名        输出文件名\n"
 
-#: pg_restore.c:420
+#: pg_restore.c:438
 #, c-format
 msgid "  -F, --format=c|d|t       backup file format (should be automatic)\n"
 msgstr "  -F, --format=c|d|t       备份文件格式(应该自动进行)\n"
 
-#: pg_restore.c:421
+#: pg_restore.c:439
 #, c-format
 msgid "  -l, --list               print summarized TOC of the archive\n"
 msgstr "  -l, --list               打印归档文件的 TOC 概述\n"
 
-#: pg_restore.c:422
+#: pg_restore.c:440
 #, c-format
 msgid "  -v, --verbose            verbose mode\n"
 msgstr "  -v, --verbose            详细模式\n"
 
-#: pg_restore.c:423
+#: pg_restore.c:441
 #, c-format
 msgid "  -V, --version            output version information, then exit\n"
 msgstr "  -V, --version            输出版本信息, 然后退出\n"
 
-#: pg_restore.c:424
+#: pg_restore.c:442
 #, c-format
 msgid "  -?, --help               show this help, then exit\n"
 msgstr "  -?, --help               显示此帮助, 然后退出\n"
 
-#: pg_restore.c:426
+#: pg_restore.c:444
 #, c-format
 msgid ""
 "\n"
@@ -2410,32 +2414,32 @@ msgstr ""
 "\n"
 "恢复控制选项:\n"
 
-#: pg_restore.c:427
+#: pg_restore.c:445
 #, c-format
 msgid "  -a, --data-only              restore only the data, no schema\n"
 msgstr "  -a, --data-only             只恢复数据, 不包括模式\n"
 
-#: pg_restore.c:429
+#: pg_restore.c:447
 #, c-format
 msgid "  -C, --create                 create the target database\n"
 msgstr "  -C, --create                 创建目标数据库\n"
 
-#: pg_restore.c:430
+#: pg_restore.c:448
 #, c-format
 msgid "  -e, --exit-on-error          exit on error, default is to continue\n"
 msgstr "  -e, --exit-on-error          发生错误退出, 默认为继续\n"
 
-#: pg_restore.c:431
+#: pg_restore.c:449
 #, c-format
 msgid "  -I, --index=NAME             restore named index\n"
 msgstr "  -I, --index=NAME             恢复指定名称的索引\n"
 
-#: pg_restore.c:432
+#: pg_restore.c:450
 #, c-format
 msgid "  -j, --jobs=NUM               use this many parallel jobs to restore\n"
 msgstr "  -j, --jobs=NUM               执行多个并行任务进行恢复工作\n"
 
-#: pg_restore.c:433
+#: pg_restore.c:451
 #, c-format
 msgid ""
 "  -L, --use-list=FILENAME      use table of contents from this file for\n"
@@ -2444,52 +2448,52 @@ msgstr ""
 "  -L, --use-list=FILENAME      从这个文件中使用指定的内容表排序\n"
 "                               输出\n"
 
-#: pg_restore.c:435
+#: pg_restore.c:453
 #, c-format
 msgid "  -n, --schema=NAME            restore only objects in this schema\n"
 msgstr "  -n, --schema=NAME            在这个模式中只恢复对象\n"
 
-#: pg_restore.c:437
+#: pg_restore.c:455
 #, c-format
 msgid "  -P, --function=NAME(args)    restore named function\n"
 msgstr "  -P, --function=NAME(args)    恢复指定名字的函数\n"
 
-#: pg_restore.c:438
+#: pg_restore.c:456
 #, c-format
 msgid "  -s, --schema-only            restore only the schema, no data\n"
 msgstr "  -s, --schema-only           只恢复模式, 不包括数据\n"
 
-#: pg_restore.c:439
+#: pg_restore.c:457
 #, c-format
 msgid ""
 "  -S, --superuser=NAME         superuser user name to use for disabling "
 "triggers\n"
 msgstr "  -S, --superuser=NAME         使用指定的超级用户来禁用触发器\n"
 
-#: pg_restore.c:440
-#, fuzzy, c-format
+#: pg_restore.c:458
+#, c-format
 #| msgid "  -t, --table=NAME             restore named table\n"
-msgid "  -t, --table=NAME             restore named table(s)\n"
-msgstr "  -t, --table=NAME             恢复指定名字的表\n"
+msgid "  -t, --table=NAME             restore named table\n"
+msgstr "  -t, --table=NAME             恢复命名表\n"
 
-#: pg_restore.c:441
+#: pg_restore.c:459
 #, c-format
 msgid "  -T, --trigger=NAME           restore named trigger\n"
 msgstr "  -T, --trigger=NAME          恢复指定名字的触发器\n"
 
-#: pg_restore.c:442
+#: pg_restore.c:460
 #, c-format
 msgid ""
 "  -x, --no-privileges          skip restoration of access privileges (grant/"
 "revoke)\n"
 msgstr "  -x, --no-privileges          跳过处理权限的恢复 (grant/revoke)\n"
 
-#: pg_restore.c:443
+#: pg_restore.c:461
 #, c-format
 msgid "  -1, --single-transaction     restore as a single transaction\n"
 msgstr "  -1, --single-transaction     作为单个事务恢复\n"
 
-#: pg_restore.c:445
+#: pg_restore.c:464
 #, c-format
 msgid ""
 "  --no-data-for-failed-tables  do not restore data of tables that could not "
@@ -2499,29 +2503,40 @@ msgstr ""
 "  --no-data-for-failed-tables  对那些无法创建的表不进行\n"
 "                               数据恢复\n"
 
-#: pg_restore.c:447
+#: pg_restore.c:466
 #, c-format
 msgid "  --no-security-labels         do not restore security labels\n"
 msgstr "  --no-security-labels         不恢复安全标签信息\n"
 
-#: pg_restore.c:448
+#: pg_restore.c:467
 #, c-format
 msgid "  --no-tablespaces             do not restore tablespace assignments\n"
 msgstr "  --no-tablespaces             不恢复表空间的分配信息\n"
 
-#: pg_restore.c:449
+#: pg_restore.c:468
 #, c-format
 msgid ""
 "  --section=SECTION            restore named section (pre-data, data, or "
 "post-data)\n"
 msgstr "  --section=SECTION            恢复命名节 (数据前、数据及数据后)\n"
 
-#: pg_restore.c:460
+#: pg_restore.c:479
 #, c-format
 msgid "  --role=ROLENAME          do SET ROLE before restore\n"
 msgstr "  --role=ROLENAME          在恢复前执行SET ROLE操作\n"
 
-#: pg_restore.c:462
+#: pg_restore.c:481
+#, c-format
+msgid ""
+"\n"
+"The options -I, -n, -P, -t, -T, and --section can be combined and specified\n"
+"multiple times to select multiple objects.\n"
+msgstr ""
+"\n"
+"选项 -I, -n, -P, -t, -T, 以及 --section 可以组合使用和指定\n"
+"多次用于选择多个对象.\n"
+
+#: pg_restore.c:484
 #, c-format
 msgid ""
 "\n"
@@ -2532,358 +2547,382 @@ msgstr ""
 "如果没有提供输入文件名, 则使用标准输入.\n"
 "\n"
 
-#~ msgid "-C and -c are incompatible options\n"
-#~ msgstr "-C 和 -c 是互不兼容的选项\n"
+#~ msgid "could not parse version string \"%s\"\n"
+#~ msgstr "无法分析版本字串 \"%s\"\n"
 
-#~ msgid ""
-#~ "  -O, --no-owner           do not output commands to set object "
-#~ "ownership\n"
-#~ msgstr ""
-#~ "  -O, --no-owner           设置对象的所属者时不输出\n"
-#~ "                           命令\n"
+#~ msgid "%s: could not parse version \"%s\"\n"
+#~ msgstr "%s: 无法解析版本 \"%s\"\n"
 
-#~ msgid ""
-#~ "  -i, --ignore-version     proceed even when server version mismatches\n"
-#~ "                           pg_dumpall version\n"
-#~ msgstr ""
-#~ "  -i, --ignore-version     当服务器版本与 pg_dumpall 不匹配时\n"
-#~ "                           继续运行\n"
+#~ msgid "%s: invalid -X option -- %s\n"
+#~ msgstr "%s: 无效的 -X 选项 -- %s\n"
 
-#~ msgid ""
-#~ "  -i, --ignore-version     proceed even when server version mismatches\n"
-#~ msgstr "  -i, --ignore-version     当服务器版本不匹配时继续运行\n"
+#~ msgid "  --help                      show this help, then exit\n"
+#~ msgstr "  --help                       显示此帮助信息, 然后退出\n"
 
-#~ msgid "could not write tar header\n"
-#~ msgstr "无法写 tar 头\n"
+#~ msgid ""
+#~ "  --version                   output version information, then exit\n"
+#~ msgstr "  --versoin                    输出版本信息, 然后退出\n"
 
-#~ msgid "could not close tar member: %s\n"
-#~ msgstr "无法关闭 tar 成员: %s\n"
+#~ msgid "*** aborted because of error\n"
+#~ msgstr "*** 因为错误退出\n"
 
-#~ msgid "write error appending to tar archive (wrote %lu, attempted %lu)\n"
-#~ msgstr "向 tar 归档附加时写错误 (写了 %lu, 试图写 %lu)\n"
+#~ msgid "missing pg_database entry for database \"%s\"\n"
+#~ msgstr "缺少用于 \"%s\" 的 pg_database 记录\n"
 
-#~ msgid "could not write to tar member (wrote %lu, attempted %lu)\n"
-#~ msgstr "无法写入 tar 成员 (写了 %lu, 企图写 %lu)\n"
+#~ msgid ""
+#~ "query returned more than one (%d) pg_database entry for database \"%s\"\n"
+#~ msgstr "查询为数据库 \"%2$s\" 返回了超过一条 (%1$d) pg_database 记录\n"
 
-#~ msgid "requested %d bytes, got %d from lookahead and %d from file\n"
-#~ msgstr "要求 %d 字节, 从预览中获取 %d, 从文件中获取 %d\n"
+#~ msgid "dumpDatabase(): could not find pg_largeobject.relfrozenxid\n"
+#~ msgstr "dumpDatabase():  无法找到pg_largeobject.relfrozenxid\n"
 
-#~ msgid "could not open large object file\n"
-#~ msgstr "æ\97 æ³\95æ\89\93å¼\80大对象æ\96\87ä»¶\n"
+#~ msgid "query returned no rows: %s\n"
+#~ msgstr "æ\9f¥è¯¢æ\94¾å¼\83, æ²¡æ\9c\89è®°å½\95: %s\n"
 
-#~ msgid "could not open data file for input\n"
-#~ msgstr "无法为输入打开数据文件\n"
+#~ msgid "missing pg_database entry for this database\n"
+#~ msgstr "缺少此数据库的 pg_database 记录\n"
 
-#~ msgid "could not open data file for output\n"
-#~ msgstr "æ\97 æ³\95为è¾\93å\87ºæ\89\93å¼\80æ\95°æ\8d®æ\96\87ä»¶\n"
+#~ msgid "found more than one pg_database entry for this database\n"
+#~ msgstr "æ\89¾å\88°æ­¤æ\95°æ\8d®åº\93ç\9a\84å¤\9aäº\8eä¸\80æ\9d¡ç\9a\84 pg_database è®°å½\95\n"
 
-#~ msgid "could not commit transaction for large object cross-references"
-#~ msgstr "无法为大对象交叉引用提交事务"
+#~ msgid "could not find entry for pg_indexes in pg_class\n"
+#~ msgstr "在 pg_class 中无法为 pg_indexes 找到记录\n"
 
-#~ msgid "could not start transaction for large object cross-references"
-#~ msgstr "无法为大对象交叉引用启动事务"
+#~ msgid "found more than one entry for pg_indexes in pg_class\n"
+#~ msgstr "在 pg_class 表中找到多条 pg_indexes 的记录\n"
 
-#~ msgid "could not create large object cross-reference entry"
-#~ msgstr "无法创建大对象交叉引用记录"
+#~ msgid "SQL command failed\n"
+#~ msgstr "SQL 命令失败\n"
 
-#~ msgid "could not create index on large object cross-reference table"
-#~ msgstr "无法在大对象交叉引用表上创建索引"
+#~ msgid "cannot reopen stdin\n"
+#~ msgstr "无法重新打开stdin\n"
 
-#~ msgid "creating index for large object cross-references\n"
-#~ msgstr "为大对象交叉引用创建索引\n"
+#~ msgid "cannot reopen non-seekable file\n"
+#~ msgstr "无法重新打开不可查找的文件\n"
 
-#~ msgid "could not create large object cross-reference table"
-#~ msgstr "æ\97 æ³\95å\88\9b建大对象交å\8f\89å¼\95ç\94¨è¡¨"
+#~ msgid "file archiver"
+#~ msgstr "æ\96\87ä»¶å½\92æ¡£"
 
-#~ msgid "creating table for large object cross-references\n"
-#~ msgstr "为大对象交叉引用创建表\n"
+#~ msgid ""
+#~ "WARNING:\n"
+#~ "  This format is for demonstration purposes; it is not intended for\n"
+#~ "  normal use. Files will be written in the current working directory.\n"
+#~ msgstr ""
+#~ "警告:\n"
+#~ "  这个格式仅用于演示; 并非用于一般用途.\n"
+#~ "  文件将写入当前工作目录.\n"
 
-#~ msgid "error while updating column \"%s\" of table \"%s\": %s"
-#~ msgstr "更新表 \"%2$s\" 的字段 \"%1$s\" 时出错: %3$s"
+#~ msgid "could not close data file after reading\n"
+#~ msgstr "读取之后无法关闭数据文件\n"
 
-#~ msgid "could not update column \"%s\" of table \"%s\": %s"
-#~ msgstr "æ\97 æ³\95æ\9b´æ\96°è¡¨ \"%2$s\" ç\9a\84å­\97段 \"%1$s\": %3$s"
+#~ msgid "could not open large object TOC for input: %s\n"
+#~ msgstr "æ\97 æ³\95æ\89\93å¼\80大对象 TOC è¿\9bè¡\8cè¾\93å\85¥: %s\n"
 
-#~ msgid "SQL: %s\n"
-#~ msgstr "SQL: %s\n"
+#~ msgid "could not open large object TOC for output: %s\n"
+#~ msgstr "无法打开大对象 TOC 进行输出: %s\n"
 
-#~ msgid "fixing large object cross-references for %s.%s\n"
-#~ msgstr "为 %s.%s 修补大对象交叉引用\n"
+#~ msgid "could not close large object file\n"
+#~ msgstr "无法关闭大对象文件\n"
 
-#~ msgid "no OID type columns in table %s\n"
-#~ msgstr "表 %s 中没有 OID 类型字段\n"
+#~ msgid "invalid COPY statement -- could not find \"copy\" in string \"%s\"\n"
+#~ msgstr "COPY 语句错 -- 无法在字串 \"%s\" 中找到 \"copy\"\n"
 
-#~ msgid "could not find OID columns of table \"%s\": %s"
-#~ msgstr "无法寻找表 \"%s\" 的 OID 字段: %s"
+#~ msgid ""
+#~ "invalid COPY statement -- could not find \"from stdin\" in string \"%s\" "
+#~ "starting at position %lu\n"
+#~ msgstr ""
+#~ "COPY 语句错 -- 无法在从 %2$lu 位置开始的字串 \"%1$s\" 里找到 \"from stdin"
+#~ "\" 字样\n"
 
-#~ msgid "error returned by PQendcopy\n"
-#~ msgstr "PQendcopy 返回错误\n"
+#~ msgid "restoring large object OID %u\n"
+#~ msgstr "恢复 OID %u 的大对象\n"
 
-#~ msgid "COPY command executed in non-primary connection\n"
-#~ msgstr "COPY 命令在没有主联接的环境下执行\n"
+#~ msgid "  --help                   show this help, then exit\n"
+#~ msgstr "  --help                   显示此帮助信息, 然后退出\n"
 
-#~ msgid "%s: no result from server\n"
-#~ msgstr "%s: 没有来自服务器的结果\n"
+#~ msgid "  --version                output version information, then exit\n"
+#~ msgstr "  --version                输出版本信息, 然后退出\n"
 
 #~ msgid ""
-#~ "aborting because of version mismatch  (Use the -i option to proceed "
-#~ "anyway.)\n"
-#~ msgstr "因版本差异退出 (用 -i 选项忽略差异继续处理.)\n"
+#~ "  -c, --clean              clean (drop) database objects before "
+#~ "recreating\n"
+#~ msgstr ""
+#~ "  -c, --clean              在重新创建数据库对象之前需要清除(删除)数据库"
+#~ "对象\n"
 
-#~ msgid "could not write uncompressed chunk\n"
-#~ msgstr "无法写入未压缩的块\n"
+#~ msgid "  -O, --no-owner           skip restoration of object ownership\n"
+#~ msgstr "  -O, --no-owner           忽略恢复对象所属者\n"
 
-#~ msgid "could not write compressed chunk\n"
-#~ msgstr "无法写入压缩的块\n"
+#~ msgid ""
+#~ "  --disable-triggers       disable triggers during data-only restore\n"
+#~ msgstr " --disable-triggers        在只恢复数据的过程中禁用触发器\n"
 
-#~ msgid "write error in _WriteBuf (%lu != %lu)\n"
-#~ msgstr "在 _WriteBuf 里的写错误 (%lu != %lu)\n"
+#~ msgid ""
+#~ "  --use-set-session-authorization\n"
+#~ "                           use SET SESSION AUTHORIZATION commands instead "
+#~ "of\n"
+#~ "                           ALTER OWNER commands to set ownership\n"
+#~ msgstr ""
+#~ "  --use-set-session-authorization\n"
+#~ "                           使用 SESSION AUTHORIZATION 命令代替\n"
+#~ "                  ALTER OWNER命令来设置对象所有权\n"
 
-#~ msgid "could not read data block -- expected %lu, got %lu\n"
-#~ msgstr "无法读取数据块 - 预期 %lu, 实际 %lu\n"
+#~ msgid "%s: out of memory\n"
+#~ msgstr "%s: 内存溢出\n"
 
-#~ msgid "large objects cannot be loaded without a database connection\n"
-#~ msgstr "没有数据库联接时无法装载大对象\n"
+#~ msgid "dumpBlobs(): could not open large object: %s"
+#~ msgstr "dumpBlobs(): 无法打开大对象: %s"
 
-#~ msgid "could not open archive file \"%s\": %s\n"
-#~ msgstr "æ\97 æ³\95æ\89\93å¼\80å½\92æ¡£æ\96\87ä»¶ \"%s\": %s\n"
+#~ msgid "saving large object comments\n"
+#~ msgstr "æ­£å\9c¨ä¿\9då­\98大对象注é\87\8a\n"
 
-#~ msgid "archive format is %d\n"
-#~ msgstr "å½\92档格å¼\8fæ\98¯ %d\n"
+#~ msgid "no label definitions found for enum ID %u\n"
+#~ msgstr "对äº\8eæ\9e\9a举 ID %u没æ\9c\89æ\89¾å\88°æ \87ç­¾å®\9aä¹\89\n"
 
-#~ msgid "could not close the input file after reading header: %s\n"
-#~ msgstr "读取头之后无法关闭输入文件: %s\n"
+#~ msgid ""
+#~ "dumping a specific TOC data block out of order is not supported without "
+#~ "ID on this input stream (fseek required)\n"
+#~ msgstr ""
+#~ "如果在此输入流中没有ID(标识)(fseek 要求的), 那么是不支持非顺序转储特定TOC"
+#~ "数据块的\n"
 
-#~ msgid "read %lu bytes into lookahead buffer\n"
-#~ msgstr "读取 %lu 字节到预览缓冲区\n"
+#~ msgid "compression support is disabled in this format\n"
+#~ msgstr "在这个格式里, 压缩支持时被关闭了的\n"
 
-#~ msgid "could not write to output file (%lu != %lu)\n"
-#~ msgstr "无法写出到输出文件 (%lu != %lu)\n"
+#~ msgid "User name: "
+#~ msgstr "用户名: "
 
-#~ msgid "could not write to compressed archive\n"
-#~ msgstr "无法写入压缩的归档\n"
+#~ msgid "large-object output not supported for a single table\n"
+#~ msgstr "不支持单个表的大对象输出.\n"
 
-#~ msgid "could not open TOC file\n"
-#~ msgstr "无法打开 TOC 文件\n"
+#~ msgid "use a full dump instead\n"
+#~ msgstr "使用完整转储替代.\n"
 
-#~ msgid "wrote remaining %lu bytes of large-object data (result = %lu)\n"
-#~ msgstr "写剩下了 %lu 字节的大对象数据 (结果 = %lu)\n"
+#~ msgid "large-object output not supported for a single schema\n"
+#~ msgstr "不支持单个模式的大对象输出.\n"
 
-#~ msgid "restoring large object with OID %u as %u\n"
-#~ msgstr "把 OID 为 %u 的大对象恢复为 %u\n"
+#~ msgid "INSERT (-d, -D) and OID (-o) options cannot be used together\n"
+#~ msgstr "INSERT (-d, -D) 和 OID (-o) 选项不能同时使用.\n"
 
-#~ msgid "starting large-object transactions\n"
-#~ msgstr "开始大对象事务\n"
+#~ msgid "large-object output is not supported for plain-text dump files\n"
+#~ msgstr "纯文本转储文件不支持输出大对象.\n"
 
-#~ msgid "cannot restore large objects without a database connection\n"
-#~ msgstr "没有数据库联接时无法恢复大对象\n"
+#~ msgid "(Use a different output format.)\n"
+#~ msgstr "(使用不同的输出格式.)\n"
 
-#~ msgid "committing large-object transactions\n"
-#~ msgstr "提交大对象事务\n"
+#~ msgid ""
+#~ "  -i, --ignore-version     proceed even when server version mismatches\n"
+#~ "                           pg_dump version\n"
+#~ msgstr ""
+#~ "  -i, --ignore-version     当服务器的版本号与 pg_dump 的版本号不匹配时\n"
+#~ "                           仍继续运行\n"
 
-#~ msgid "fixing up large-object cross-reference for \"%s\"\n"
-#~ msgstr "为 \"%s\" 修复大对象的交叉引用\n"
+#~ msgid "  -c, --clean              clean (drop) schema prior to create\n"
+#~ msgstr "  -c, --clean              先清楚(删除)预先的模式,再建立\n"
 
-#~ msgid "WARNING: skipping large-object restoration\n"
-#~ msgstr "警告: 忽略大对象的恢复\n"
+#~ msgid ""
+#~ "  -S, --superuser=NAME     specify the superuser user name to use in\n"
+#~ "                           plain text format\n"
+#~ msgstr ""
+#~ "  -S, --superuser=NAME     在明文格式中, 使用指定的超级用户\n"
+#~ "                           名称\n"
 
-#~ msgid "could not close output archive file\n"
-#~ msgstr "æ\97 æ³\95å\85³é\97­è¾\93å\87ºå½\92æ¡£æ\96\87ä»¶\n"
+#~ msgid "specified schema \"%s\" does not exist\n"
+#~ msgstr "æ\8c\87å®\9aç\9a\84模å¼\8f \"%s\" ä¸\8då­\98å\9c¨\n"
 
-#~ msgid "maximum system OID is %u\n"
-#~ msgstr "æ\9c\80大系ç»\9f OID æ\98¯ %u\n"
+#~ msgid "specified table \"%s\" does not exist\n"
+#~ msgstr "æ\8c\87å®\9aç\9a\84表 \"%s\" ä¸\8då­\98å\9c¨\n"
 
-#~ msgid "inserted invalid OID\n"
-#~ msgstr "插入了非法 OID\n"
+#~ msgid "expected %d triggers on table \"%s\" but found %d\n"
+#~ msgstr "预期在表 \"%2$s\" 上有触发器 %1$d , 却发现 %3$d\n"
 
 #~ msgid "Got %d rows instead of one from: %s"
 #~ msgstr "已得到 %d 条记录替代来自 %s 的一条"
 
-#~ msgid "expected %d triggers on table \"%s\" but found %d\n"
-#~ msgstr "预期在表 \"%2$s\" 上有触发器 %1$d , 却发现 %3$d\n"
+#~ msgid "inserted invalid OID\n"
+#~ msgstr "插入了非法 OID\n"
 
-#~ msgid "specified table \"%s\" does not exist\n"
-#~ msgstr "æ\8c\87å®\9aç\9a\84表 \"%s\" ä¸\8då­\98å\9c¨\n"
+#~ msgid "maximum system OID is %u\n"
+#~ msgstr "æ\9c\80大系ç»\9f OID æ\98¯ %u\n"
 
-#~ msgid "specified schema \"%s\" does not exist\n"
-#~ msgstr "æ\8c\87å®\9aç\9a\84模å¼\8f \"%s\" ä¸\8då­\98å\9c¨\n"
+#~ msgid "could not close output archive file\n"
+#~ msgstr "æ\97 æ³\95å\85³é\97­è¾\93å\87ºå½\92æ¡£æ\96\87ä»¶\n"
 
-#~ msgid ""
-#~ "  -S, --superuser=NAME     specify the superuser user name to use in\n"
-#~ "                           plain text format\n"
-#~ msgstr ""
-#~ "  -S, --superuser=NAME     在明文格式中, 使用指定的超级用户\n"
-#~ "                           名称\n"
+#~ msgid "WARNING: skipping large-object restoration\n"
+#~ msgstr "警告: 忽略大对象的恢复\n"
 
-#~ msgid "  -c, --clean              clean (drop) schema prior to create\n"
-#~ msgstr "  -c, --clean              先清楚(删除)预先的模式,再建立\n"
+#~ msgid "fixing up large-object cross-reference for \"%s\"\n"
+#~ msgstr "为 \"%s\" 修复大对象的交叉引用\n"
 
-#~ msgid ""
-#~ "  -i, --ignore-version     proceed even when server version mismatches\n"
-#~ "                           pg_dump version\n"
-#~ msgstr ""
-#~ "  -i, --ignore-version     当服务器的版本号与 pg_dump 的版本号不匹配时\n"
-#~ "                           仍继续运行\n"
+#~ msgid "committing large-object transactions\n"
+#~ msgstr "提交大对象事务\n"
 
-#~ msgid "(Use a different output format.)\n"
-#~ msgstr "(使用不同的输出格式.)\n"
+#~ msgid "cannot restore large objects without a database connection\n"
+#~ msgstr "没有数据库联接时无法恢复大对象\n"
 
-#~ msgid "large-object output is not supported for plain-text dump files\n"
-#~ msgstr "纯文本转储文件不支持输出大对象.\n"
+#~ msgid "starting large-object transactions\n"
+#~ msgstr "开始大对象事务\n"
 
-#~ msgid "INSERT (-d, -D) and OID (-o) options cannot be used together\n"
-#~ msgstr "INSERT (-d, -D) 和 OID (-o) 选项不能同时使用.\n"
+#~ msgid "restoring large object with OID %u as %u\n"
+#~ msgstr "把 OID 为 %u 的大对象恢复为 %u\n"
 
-#~ msgid "large-object output not supported for a single schema\n"
-#~ msgstr "不支持单个模式的大对象输出.\n"
+#~ msgid "wrote remaining %lu bytes of large-object data (result = %lu)\n"
+#~ msgstr "写剩下了 %lu 字节的大对象数据 (结果 = %lu)\n"
 
-#~ msgid "use a full dump instead\n"
-#~ msgstr "使用完整转储替代.\n"
+#~ msgid "could not open TOC file\n"
+#~ msgstr "无法打开 TOC 文件\n"
 
-#~ msgid "large-object output not supported for a single table\n"
-#~ msgstr "不支持单个表的大对象输出.\n"
+#~ msgid "could not write to compressed archive\n"
+#~ msgstr "无法写入压缩的归档\n"
 
-#~ msgid "User name: "
-#~ msgstr "用户名: "
+#~ msgid "could not write to output file (%lu != %lu)\n"
+#~ msgstr "无法写出到输出文件 (%lu != %lu)\n"
 
-#~ msgid "compression support is disabled in this format\n"
-#~ msgstr "在这个格式里, 压缩支持时被关闭了的\n"
+#~ msgid "read %lu bytes into lookahead buffer\n"
+#~ msgstr "读取 %lu 字节到预览缓冲区\n"
 
-#~ msgid ""
-#~ "dumping a specific TOC data block out of order is not supported without "
-#~ "ID on this input stream (fseek required)\n"
-#~ msgstr ""
-#~ "如果在此输入流中没有ID(标识)(fseek 要求的), 那么是不支持非顺序转储特定TOC"
-#~ "数据块的\n"
+#~ msgid "could not close the input file after reading header: %s\n"
+#~ msgstr "读取头之后无法关闭输入文件: %s\n"
 
-#~ msgid "no label definitions found for enum ID %u\n"
-#~ msgstr "对äº\8eæ\9e\9a举 ID %u没æ\9c\89æ\89¾å\88°æ \87ç­¾å®\9aä¹\89\n"
+#~ msgid "archive format is %d\n"
+#~ msgstr "å½\92档格å¼\8fæ\98¯ %d\n"
 
-#~ msgid "saving large object comments\n"
-#~ msgstr "æ­£å\9c¨ä¿\9då­\98大对象注é\87\8a\n"
+#~ msgid "could not open archive file \"%s\": %s\n"
+#~ msgstr "æ\97 æ³\95æ\89\93å¼\80å½\92æ¡£æ\96\87ä»¶ \"%s\": %s\n"
 
-#~ msgid "dumpBlobs(): could not open large object: %s"
-#~ msgstr "dumpBlobs(): 无法打开大对象: %s"
+#~ msgid "large objects cannot be loaded without a database connection\n"
+#~ msgstr "没有数据库联接时无法装载大对象\n"
 
-#~ msgid "%s: out of memory\n"
-#~ msgstr "%s: 内存溢出\n"
+#~ msgid "could not read data block -- expected %lu, got %lu\n"
+#~ msgstr "无法读取数据块 - 预期 %lu, 实际 %lu\n"
 
-#~ msgid ""
-#~ "  --use-set-session-authorization\n"
-#~ "                           use SET SESSION AUTHORIZATION commands instead "
-#~ "of\n"
-#~ "                           ALTER OWNER commands to set ownership\n"
-#~ msgstr ""
-#~ "  --use-set-session-authorization\n"
-#~ "                           使用 SESSION AUTHORIZATION 命令代替\n"
-#~ "                  ALTER OWNER命令来设置对象所有权\n"
+#~ msgid "write error in _WriteBuf (%lu != %lu)\n"
+#~ msgstr "在 _WriteBuf 里的写错误 (%lu != %lu)\n"
 
-#~ msgid ""
-#~ "  --disable-triggers       disable triggers during data-only restore\n"
-#~ msgstr " --disable-triggers        在只恢复数据的过程中禁用触发器\n"
+#~ msgid "could not write compressed chunk\n"
+#~ msgstr "无法写入压缩的块\n"
 
-#~ msgid "  -O, --no-owner           skip restoration of object ownership\n"
-#~ msgstr "  -O, --no-owner           忽略恢复对象所属者\n"
+#~ msgid "could not write uncompressed chunk\n"
+#~ msgstr "无法写入未压缩的块\n"
 
 #~ msgid ""
-#~ "  -c, --clean              clean (drop) database objects before "
-#~ "recreating\n"
-#~ msgstr ""
-#~ "  -c, --clean              在重新创建数据库对象之前需要清除(删除)数据库"
-#~ "对象\n"
+#~ "aborting because of version mismatch  (Use the -i option to proceed "
+#~ "anyway.)\n"
+#~ msgstr "因版本差异退出 (用 -i 选项忽略差异继续处理.)\n"
 
-#~ msgid "  --version                output version information, then exit\n"
-#~ msgstr "  --version                输出版本信息, 然后退出\n"
+#~ msgid "%s: no result from server\n"
+#~ msgstr "%s: 没有来自服务器的结果\n"
 
-#~ msgid "  --help                   show this help, then exit\n"
-#~ msgstr "  --help                   显示此帮助信息, 然后退出\n"
+#~ msgid "COPY command executed in non-primary connection\n"
+#~ msgstr "COPY 命令在没有主联接的环境下执行\n"
 
-#~ msgid "restoring large object OID %u\n"
-#~ msgstr "恢复 OID %u 的大对象\n"
+#~ msgid "error returned by PQendcopy\n"
+#~ msgstr "PQendcopy 返回错误\n"
 
-#~ msgid ""
-#~ "invalid COPY statement -- could not find \"from stdin\" in string \"%s\" "
-#~ "starting at position %lu\n"
-#~ msgstr ""
-#~ "COPY 语句错 -- 无法在从 %2$lu 位置开始的字串 \"%1$s\" 里找到 \"from stdin"
-#~ "\" 字样\n"
+#~ msgid "could not find OID columns of table \"%s\": %s"
+#~ msgstr "无法寻找表 \"%s\" 的 OID 字段: %s"
 
-#~ msgid "invalid COPY statement -- could not find \"copy\" in string \"%s\"\n"
-#~ msgstr "COPY 语句错 -- 无法在字串 \"%s\" 中找到 \"copy\"\n"
+#~ msgid "no OID type columns in table %s\n"
+#~ msgstr "表 %s 中没有 OID 类型字段\n"
 
-#~ msgid "could not close large object file\n"
-#~ msgstr "无法关闭大对象文件\n"
+#~ msgid "fixing large object cross-references for %s.%s\n"
+#~ msgstr "为 %s.%s 修补大对象交叉引用\n"
 
-#~ msgid "could not open large object TOC for output: %s\n"
-#~ msgstr "无法打开大对象 TOC 进行输出: %s\n"
+#~ msgid "SQL: %s\n"
+#~ msgstr "SQL: %s\n"
 
-#~ msgid "could not open large object TOC for input: %s\n"
-#~ msgstr "æ\97 æ³\95æ\89\93å¼\80大对象 TOC è¿\9bè¡\8cè¾\93å\85¥: %s\n"
+#~ msgid "could not update column \"%s\" of table \"%s\": %s"
+#~ msgstr "æ\97 æ³\95æ\9b´æ\96°è¡¨ \"%2$s\" ç\9a\84å­\97段 \"%1$s\": %3$s"
 
-#~ msgid "could not close data file after reading\n"
-#~ msgstr "读取之后无法关闭数据文件\n"
+#~ msgid "error while updating column \"%s\" of table \"%s\": %s"
+#~ msgstr "更新表 \"%2$s\" 的字段 \"%1$s\" 时出错: %3$s"
 
-#~ msgid ""
-#~ "WARNING:\n"
-#~ "  This format is for demonstration purposes; it is not intended for\n"
-#~ "  normal use. Files will be written in the current working directory.\n"
-#~ msgstr ""
-#~ "警告:\n"
-#~ "  这个格式仅用于演示; 并非用于一般用途.\n"
-#~ "  文件将写入当前工作目录.\n"
+#~ msgid "creating table for large object cross-references\n"
+#~ msgstr "为大对象交叉引用创建表\n"
 
-#~ msgid "file archiver"
-#~ msgstr "æ\96\87ä»¶å½\92æ¡£"
+#~ msgid "could not create large object cross-reference table"
+#~ msgstr "æ\97 æ³\95å\88\9b建大对象交å\8f\89å¼\95ç\94¨è¡¨"
 
-#~ msgid "cannot reopen non-seekable file\n"
-#~ msgstr "无法重新打开不可查找的文件\n"
+#~ msgid "creating index for large object cross-references\n"
+#~ msgstr "为大对象交叉引用创建索引\n"
 
-#~ msgid "cannot reopen stdin\n"
-#~ msgstr "无法重新打开stdin\n"
+#~ msgid "could not create index on large object cross-reference table"
+#~ msgstr "无法在大对象交叉引用表上创建索引"
 
-#~ msgid "SQL command failed\n"
-#~ msgstr "SQL 命令失败\n"
+#~ msgid "could not create large object cross-reference entry"
+#~ msgstr "无法创建大对象交叉引用记录"
 
-#~ msgid "found more than one entry for pg_indexes in pg_class\n"
-#~ msgstr "在 pg_class 表中找到多条 pg_indexes 的记录\n"
+#~ msgid "could not start transaction for large object cross-references"
+#~ msgstr "无法为大对象交叉引用启动事务"
 
-#~ msgid "could not find entry for pg_indexes in pg_class\n"
-#~ msgstr "在 pg_class 中无法为 pg_indexes 找到记录\n"
+#~ msgid "could not commit transaction for large object cross-references"
+#~ msgstr "无法为大对象交叉引用提交事务"
 
-#~ msgid "found more than one pg_database entry for this database\n"
-#~ msgstr "æ\89¾å\88°æ­¤æ\95°æ\8d®åº\93ç\9a\84å¤\9aäº\8eä¸\80æ\9d¡ç\9a\84 pg_database è®°å½\95\n"
+#~ msgid "could not open data file for output\n"
+#~ msgstr "æ\97 æ³\95为è¾\93å\87ºæ\89\93å¼\80æ\95°æ\8d®æ\96\87ä»¶\n"
 
-#~ msgid "missing pg_database entry for this database\n"
-#~ msgstr "缺少此数据库的 pg_database 记录\n"
+#~ msgid "could not open data file for input\n"
+#~ msgstr "无法为输入打开数据文件\n"
 
-#~ msgid "query returned no rows: %s\n"
-#~ msgstr "æ\9f¥è¯¢æ\94¾å¼\83, æ²¡æ\9c\89è®°å½\95: %s\n"
+#~ msgid "could not open large object file\n"
+#~ msgstr "æ\97 æ³\95æ\89\93å¼\80大对象æ\96\87ä»¶\n"
 
-#~ msgid "dumpDatabase(): could not find pg_largeobject.relfrozenxid\n"
-#~ msgstr "dumpDatabase():  无法找到pg_largeobject.relfrozenxid\n"
+#~ msgid "requested %d bytes, got %d from lookahead and %d from file\n"
+#~ msgstr "要求 %d 字节, 从预览中获取 %d, 从文件中获取 %d\n"
 
-#~ msgid ""
-#~ "query returned more than one (%d) pg_database entry for database \"%s\"\n"
-#~ msgstr "查询为数据库 \"%2$s\" 返回了超过一条 (%1$d) pg_database 记录\n"
+#~ msgid "could not write to tar member (wrote %lu, attempted %lu)\n"
+#~ msgstr "无法写入 tar 成员 (写了 %lu, 企图写 %lu)\n"
 
-#~ msgid "missing pg_database entry for database \"%s\"\n"
-#~ msgstr "缺少用于 \"%s\" 的 pg_database 记录\n"
+#~ msgid "write error appending to tar archive (wrote %lu, attempted %lu)\n"
+#~ msgstr "向 tar 归档附加时写错误 (写了 %lu, 试图写 %lu)\n"
 
-#~ msgid "*** aborted because of error\n"
-#~ msgstr "*** 因为错误退出\n"
+#~ msgid "could not close tar member: %s\n"
+#~ msgstr "无法关闭 tar 成员: %s\n"
+
+#~ msgid "could not write tar header\n"
+#~ msgstr "无法写 tar 头\n"
 
 #~ msgid ""
-#~ "  --version                   output version information, then exit\n"
-#~ msgstr "  --versoin                    输出版本信息, 然后退出\n"
+#~ "  -i, --ignore-version     proceed even when server version mismatches\n"
+#~ msgstr "  -i, --ignore-version     当服务器版本不匹配时继续运行\n"
 
-#~ msgid "  --help                      show this help, then exit\n"
-#~ msgstr "  --help                       显示此帮助信息, 然后退出\n"
+#~ msgid ""
+#~ "  -i, --ignore-version     proceed even when server version mismatches\n"
+#~ "                           pg_dumpall version\n"
+#~ msgstr ""
+#~ "  -i, --ignore-version     当服务器版本与 pg_dumpall 不匹配时\n"
+#~ "                           继续运行\n"
 
-#~ msgid "%s: invalid -X option -- %s\n"
-#~ msgstr "%s: 无效的 -X 选项 -- %s\n"
+#~ msgid ""
+#~ "  -O, --no-owner           do not output commands to set object "
+#~ "ownership\n"
+#~ msgstr ""
+#~ "  -O, --no-owner           设置对象的所属者时不输出\n"
+#~ "                           命令\n"
 
-#~ msgid "%s: could not parse version \"%s\"\n"
-#~ msgstr "%s: 无法解析版本 \"%s\"\n"
+#~ msgid "-C and -c are incompatible options\n"
+#~ msgstr "-C 和 -c 是互不兼容的选项\n"
 
-#~ msgid "could not parse version string \"%s\"\n"
-#~ msgstr "无法分析版本字串 \"%s\"\n"
+#~ msgid "mismatch in actual vs. predicted file position (%s vs. %s)\n"
+#~ msgstr "实际文件位置和预期文件位置不匹配 (%s 对 %s)\n"
+
+#~ msgid "could not output padding at end of tar member\n"
+#~ msgstr "无法在 tar 成员尾部输出填充内容\n"
+
+#~ msgid "could not write null block at end of tar archive\n"
+#~ msgstr "无法在 tar 归档末尾写 null 块\n"
+
+#~ msgid "could not write byte\n"
+#~ msgstr "无法写字节\n"
+
+#~ msgid "could not write byte: %s\n"
+#~ msgstr "无法写字节: %s\n"
+
+#~ msgid "unexpected end of file\n"
+#~ msgstr "意外的文件结尾\n"
+
+#~ msgid "could not write to custom output routine\n"
+#~ msgstr "无法写出到客户输出过程\n"
+
+#~ msgid "could not write to output file: %s\n"
+#~ msgstr "无法写到输出文件: %s\n"
index 9b236e7b82e87e82373f1607e72bc6afb0f45551..5e1309eec311a1aca5898e63914ad821d8c33dce 100644 (file)
@@ -5,8 +5,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pg_resetxlog (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2013-09-02 00:26+0000\n"
-"PO-Revision-Date: 2013-09-02 16:18+0800\n"
+"POT-Creation-Date: 2014-11-22 21:12+0000\n"
+"PO-Revision-Date: 2014-11-28 15:14+0800\n"
 "Last-Translator: Xiong He <iihero@qq.com>\n"
 "Language-Team: Chinese (Simplified)\n"
 "Language: zh_CN\n"
@@ -15,101 +15,100 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.5.4\n"
 
-#: pg_resetxlog.c:133
+#: pg_resetxlog.c:130
 #, c-format
 msgid "%s: invalid argument for option -e\n"
 msgstr "%s: 对于选项-e 参数无效\n"
 
-#: pg_resetxlog.c:134 pg_resetxlog.c:149 pg_resetxlog.c:164 pg_resetxlog.c:179
-#: pg_resetxlog.c:187 pg_resetxlog.c:213 pg_resetxlog.c:227 pg_resetxlog.c:234
-#: pg_resetxlog.c:242
+#: pg_resetxlog.c:131 pg_resetxlog.c:146 pg_resetxlog.c:161 pg_resetxlog.c:176
+#: pg_resetxlog.c:184 pg_resetxlog.c:210 pg_resetxlog.c:224 pg_resetxlog.c:231
+#: pg_resetxlog.c:239
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "输入 \"%s --help\" 获取更多的信息.\n"
 
-#: pg_resetxlog.c:139
+#: pg_resetxlog.c:136
 #, c-format
 msgid "%s: transaction ID epoch (-e) must not be -1\n"
 msgstr "%s: 事务ID epoch(-e) 不能为 -1\n"
 
-#: pg_resetxlog.c:148
+#: pg_resetxlog.c:145
 #, c-format
 msgid "%s: invalid argument for option -x\n"
 msgstr "%s: 为 -x 选项的无效参数\n"
 
-#: pg_resetxlog.c:154
+#: pg_resetxlog.c:151
 #, c-format
 msgid "%s: transaction ID (-x) must not be 0\n"
 msgstr "%s: 事务 ID (-x) 不能为 0\n"
 
-#: pg_resetxlog.c:163
+#: pg_resetxlog.c:160
 #, c-format
 msgid "%s: invalid argument for option -o\n"
 msgstr "%s: 为 -o 选项的无效参数\n"
 
-#: pg_resetxlog.c:169
+#: pg_resetxlog.c:166
 #, c-format
 msgid "%s: OID (-o) must not be 0\n"
 msgstr "%s: OID (-o) 不能为 0\n"
 
-#: pg_resetxlog.c:178 pg_resetxlog.c:186
+#: pg_resetxlog.c:175 pg_resetxlog.c:183
 #, c-format
 msgid "%s: invalid argument for option -m\n"
 msgstr "%s: 对于选项-m 参数无效\n"
 
-#: pg_resetxlog.c:192
+#: pg_resetxlog.c:189
 #, c-format
 msgid "%s: multitransaction ID (-m) must not be 0\n"
 msgstr "%s:  多事务 ID (-m) 不能为 0\n"
 
-#: pg_resetxlog.c:202
+#: pg_resetxlog.c:199
 #, c-format
-#| msgid "%s: multitransaction ID (-m) must not be 0\n"
 msgid "%s: oldest multitransaction ID (-m) must not be 0\n"
 msgstr "%s:  最老的多事务 ID (-m) 不能为 0\n"
 
-#: pg_resetxlog.c:212
+#: pg_resetxlog.c:209
 #, c-format
 msgid "%s: invalid argument for option -O\n"
 msgstr "%s: 对于选项-O 参数无效\n"
 
-#: pg_resetxlog.c:218
+#: pg_resetxlog.c:215
 #, c-format
 msgid "%s: multitransaction offset (-O) must not be -1\n"
 msgstr "%s: 多事务 偏移 (-O) 不能为-1\n"
 
-#: pg_resetxlog.c:226
+#: pg_resetxlog.c:223
 #, c-format
 msgid "%s: invalid argument for option -l\n"
 msgstr "%s: 为 -l 选项的无效参数\n"
 
-#: pg_resetxlog.c:241
+#: pg_resetxlog.c:238
 #, c-format
 msgid "%s: no data directory specified\n"
 msgstr "%s: 没有指定数据目录\n"
 
-#: pg_resetxlog.c:255
+#: pg_resetxlog.c:252
 #, c-format
 msgid "%s: cannot be executed by \"root\"\n"
 msgstr "%s:不能由\"root\"执行\n"
 
-#: pg_resetxlog.c:257
+#: pg_resetxlog.c:254
 #, c-format
 msgid "You must run %s as the PostgreSQL superuser.\n"
 msgstr "您现在作为PostgreSQL超级用户运行%s.\n"
 
 # command.c:256
-#: pg_resetxlog.c:267
+#: pg_resetxlog.c:264
 #, c-format
 msgid "%s: could not change directory to \"%s\": %s\n"
 msgstr "%s: 无法切换目录至 \"%s\": %s\n"
 
-#: pg_resetxlog.c:280 pg_resetxlog.c:414
+#: pg_resetxlog.c:277 pg_resetxlog.c:418
 #, c-format
 msgid "%s: could not open file \"%s\" for reading: %s\n"
 msgstr "%s: 无法打开文件 \"%s\" 读取信息: %s\n"
 
-#: pg_resetxlog.c:287
+#: pg_resetxlog.c:284
 #, c-format
 msgid ""
 "%s: lock file \"%s\" exists\n"
@@ -118,7 +117,7 @@ msgstr ""
 "%s: 锁文件 \"%s\" 已经存在\n"
 "是否有一个服务正在运行? 如果没有, 删除那个锁文件然后再试一次.\n"
 
-#: pg_resetxlog.c:362
+#: pg_resetxlog.c:366
 #, c-format
 msgid ""
 "\n"
@@ -127,7 +126,7 @@ msgstr ""
 "\n"
 "如果这些值可接受, 用 -f 强制重置.\n"
 
-#: pg_resetxlog.c:374
+#: pg_resetxlog.c:378
 #, c-format
 msgid ""
 "The database server was not shut down cleanly.\n"
@@ -138,12 +137,12 @@ msgstr ""
 "重置事务日志有可能会引起丢失数据.\n"
 "如果你仍想继续, 用 -f 强制重置.\n"
 
-#: pg_resetxlog.c:388
+#: pg_resetxlog.c:392
 #, c-format
 msgid "Transaction log reset\n"
 msgstr "事务日志重置\n"
 
-#: pg_resetxlog.c:417
+#: pg_resetxlog.c:421
 #, c-format
 msgid ""
 "If you are sure the data directory path is correct, execute\n"
@@ -154,22 +153,22 @@ msgstr ""
 "  touch %s\n"
 "然后再试一次.\n"
 
-#: pg_resetxlog.c:430
+#: pg_resetxlog.c:434
 #, c-format
 msgid "%s: could not read file \"%s\": %s\n"
 msgstr "%s: 无法读取文件 \"%s\": %s\n"
 
-#: pg_resetxlog.c:453
+#: pg_resetxlog.c:457
 #, c-format
 msgid "%s: pg_control exists but has invalid CRC; proceed with caution\n"
 msgstr "%s: pg_control 已经存在, 但有无效的CRC; 带有警告的继续运行\n"
 
-#: pg_resetxlog.c:462
+#: pg_resetxlog.c:466
 #, c-format
 msgid "%s: pg_control exists but is broken or unknown version; ignoring it\n"
 msgstr "%s: pg_control 已经存在, 但已破坏或无效版本; 忽略它\n"
 
-#: pg_resetxlog.c:561
+#: pg_resetxlog.c:568
 #, c-format
 msgid ""
 "Guessed pg_control values:\n"
@@ -178,228 +177,306 @@ msgstr ""
 "猜测的 pg_control 值:\n"
 "\n"
 
-#: pg_resetxlog.c:563
+#: pg_resetxlog.c:570
 #, c-format
+#| msgid ""
+#| "pg_control values:\n"
+#| "\n"
 msgid ""
-"pg_control values:\n"
+"Current pg_control values:\n"
 "\n"
 msgstr ""
-"pg_control 值:\n"
+"当前的 pg_control 值:\n"
 "\n"
 
-#: pg_resetxlog.c:574
-#, c-format
-#| msgid "First log file segment after reset:   %u\n"
-msgid "First log segment after reset:        %s\n"
-msgstr "重置后的第一个日志段:        %s\n"
-
-#: pg_resetxlog.c:576
+#: pg_resetxlog.c:579
 #, c-format
 msgid "pg_control version number:            %u\n"
 msgstr "pg_control 版本:                      %u\n"
 
-#: pg_resetxlog.c:578
+#: pg_resetxlog.c:581
 #, c-format
 msgid "Catalog version number:               %u\n"
 msgstr "Catalog 版本:                         %u\n"
 
-#: pg_resetxlog.c:580
+#: pg_resetxlog.c:583
 #, c-format
 msgid "Database system identifier:           %s\n"
 msgstr "数据库系统标识符:                     %s\n"
 
-#: pg_resetxlog.c:582
+#: pg_resetxlog.c:585
 #, c-format
 msgid "Latest checkpoint's TimeLineID:       %u\n"
 msgstr "最新检查点的 TimeLineID:              %u\n"
 
-#: pg_resetxlog.c:584
+#: pg_resetxlog.c:587
 #, c-format
 msgid "Latest checkpoint's full_page_writes: %s\n"
 msgstr "最新检查点的full_page_writes: %s\n"
 
 # help.c:48
-#: pg_resetxlog.c:585
+#: pg_resetxlog.c:588
 msgid "off"
 msgstr "关闭"
 
 # help.c:48
-#: pg_resetxlog.c:585
+#: pg_resetxlog.c:588
 msgid "on"
 msgstr "开启"
 
-#: pg_resetxlog.c:586
+#: pg_resetxlog.c:589
 #, c-format
 msgid "Latest checkpoint's NextXID:          %u/%u\n"
 msgstr "最新检查点的 NextXID:                     %u/%u\n"
 
-#: pg_resetxlog.c:589
+#: pg_resetxlog.c:592
 #, c-format
 msgid "Latest checkpoint's NextOID:          %u\n"
 msgstr "最新检查点的 NextOID:                 %u\n"
 
-#: pg_resetxlog.c:591
+#: pg_resetxlog.c:594
 #, c-format
 msgid "Latest checkpoint's NextMultiXactId:  %u\n"
 msgstr "最新检查点的 NextMultiXactId:         %u\n"
 
-#: pg_resetxlog.c:593
+#: pg_resetxlog.c:596
 #, c-format
 msgid "Latest checkpoint's NextMultiOffset:  %u\n"
 msgstr "最新检查点的 NextMultiOffset:          %u\n"
 
-#: pg_resetxlog.c:595
+#: pg_resetxlog.c:598
 #, c-format
 msgid "Latest checkpoint's oldestXID:        %u\n"
 msgstr "最新检查点的oldestXID:             %u\n"
 
-#: pg_resetxlog.c:597
+#: pg_resetxlog.c:600
 #, c-format
 msgid "Latest checkpoint's oldestXID's DB:   %u\n"
 msgstr "最新检查点的oldestXID所在的数据库: %u\n"
 
-#: pg_resetxlog.c:599
+#: pg_resetxlog.c:602
 #, c-format
 msgid "Latest checkpoint's oldestActiveXID:  %u\n"
 msgstr "最新检查点的oldestActiveXID:      %u\n"
 
-#: pg_resetxlog.c:601
+#: pg_resetxlog.c:604
 #, c-format
-#| msgid "Latest checkpoint's oldestActiveXID:  %u\n"
 msgid "Latest checkpoint's oldestMultiXid:   %u\n"
 msgstr "最新检查点的oldestMultiXid:   %u\n"
 
-#: pg_resetxlog.c:603
+#: pg_resetxlog.c:606
 #, c-format
-#| msgid "Latest checkpoint's oldestXID's DB:   %u\n"
 msgid "Latest checkpoint's oldestMulti's DB: %u\n"
 msgstr "最新检查点的oldestMulti所在的数据库: %u\n"
 
-#: pg_resetxlog.c:605
+#: pg_resetxlog.c:608
 #, c-format
 msgid "Maximum data alignment:               %u\n"
 msgstr "最大的数据校准:                     %u\n"
 
-#: pg_resetxlog.c:608
+#: pg_resetxlog.c:611
 #, c-format
 msgid "Database block size:                  %u\n"
 msgstr "数据库块大小:                         %u\n"
 
-#: pg_resetxlog.c:610
+#: pg_resetxlog.c:613
 #, c-format
 msgid "Blocks per segment of large relation: %u\n"
 msgstr "大关系的每段块数:                     %u\n"
 
-#: pg_resetxlog.c:612
+#: pg_resetxlog.c:615
 #, c-format
 msgid "WAL block size:                       %u\n"
 msgstr "WAL块大小:                         %u\n"
 
-#: pg_resetxlog.c:614
+#: pg_resetxlog.c:617
 #, c-format
 msgid "Bytes per WAL segment:                %u\n"
 msgstr "每一个 WAL 段字节数:                  %u\n"
 
-#: pg_resetxlog.c:616
+#: pg_resetxlog.c:619
 #, c-format
 msgid "Maximum length of identifiers:        %u\n"
 msgstr "标示符的最大长度:                     %u\n"
 
-#: pg_resetxlog.c:618
+#: pg_resetxlog.c:621
 #, c-format
 msgid "Maximum columns in an index:          %u\n"
 msgstr "在索引中最多可用的列数:                   %u\n"
 
-#: pg_resetxlog.c:620
+#: pg_resetxlog.c:623
 #, c-format
 msgid "Maximum size of a TOAST chunk:        %u\n"
 msgstr "一个TOAST区块的最大空间:                   %u\n"
 
-#: pg_resetxlog.c:622
+#: pg_resetxlog.c:625
+#, c-format
+#| msgid "Maximum size of a TOAST chunk:        %u\n"
+msgid "Size of a large-object chunk:         %u\n"
+msgstr "一个大对象区块的大小:     %u\n"
+
+#: pg_resetxlog.c:627
 #, c-format
 msgid "Date/time type storage:               %s\n"
 msgstr "日期/时间类型存储:                    %s\n"
 
-#: pg_resetxlog.c:623
+#: pg_resetxlog.c:628
 msgid "64-bit integers"
 msgstr "64位整型"
 
-#: pg_resetxlog.c:623
+#: pg_resetxlog.c:628
 msgid "floating-point numbers"
 msgstr "浮点数"
 
-#: pg_resetxlog.c:624
+#: pg_resetxlog.c:629
 #, c-format
 msgid "Float4 argument passing:              %s\n"
 msgstr "正在传递Float4类型的参数:                    %s\n"
 
-#: pg_resetxlog.c:625 pg_resetxlog.c:627
+#: pg_resetxlog.c:630 pg_resetxlog.c:632
 msgid "by reference"
 msgstr "由引用"
 
-#: pg_resetxlog.c:625 pg_resetxlog.c:627
+#: pg_resetxlog.c:630 pg_resetxlog.c:632
 msgid "by value"
 msgstr "由值"
 
-#: pg_resetxlog.c:626
+#: pg_resetxlog.c:631
 #, c-format
 msgid "Float8 argument passing:              %s\n"
 msgstr "正在传递Float8类型的参数:                    %s\n"
 
-#: pg_resetxlog.c:628
+#: pg_resetxlog.c:633
 #, c-format
-#| msgid "Catalog version number:               %u\n"
 msgid "Data page checksum version:           %u\n"
 msgstr "数据页检验和版本:        %u\n"
 
-#: pg_resetxlog.c:690
+#: pg_resetxlog.c:647
+#, c-format
+msgid ""
+"\n"
+"\n"
+"Values to be changed:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"将被改变的值:\n"
+"\n"
+
+#: pg_resetxlog.c:650
+#, c-format
+msgid "First log segment after reset:        %s\n"
+msgstr "重置后的第一个日志段:        %s\n"
+
+#: pg_resetxlog.c:654
+#, c-format
+#| msgid "WAL block size:                       %u\n"
+msgid "NextMultiXactId:                      %u\n"
+msgstr "下一个MultiXactId值NextMultiXactId:         %u\n"
+
+#: pg_resetxlog.c:656
+#, c-format
+#| msgid "WAL block size:                       %u\n"
+msgid "OldestMultiXid:                       %u\n"
+msgstr "最老的MultiXid值OldestMultiXid:          %u\n"
+
+#: pg_resetxlog.c:658
+#, c-format
+#| msgid "WAL block size:                       %u\n"
+msgid "OldestMulti's DB:                     %u\n"
+msgstr "最老的MultiXid对应的DB:     %u\n"
+
+#: pg_resetxlog.c:664
+#, c-format
+#| msgid "WAL block size:                       %u\n"
+msgid "NextMultiOffset:                      %u\n"
+msgstr "下一个偏移NextMultiOffset:           %u\n"
+
+#: pg_resetxlog.c:670
+#, c-format
+#| msgid "LC_CTYPE:                             %s\n"
+msgid "NextOID:                              %u\n"
+msgstr "NextOID:                             %u\n"
+
+#: pg_resetxlog.c:676
+#, c-format
+#| msgid "LC_CTYPE:                             %s\n"
+msgid "NextXID:                              %u\n"
+msgstr "NextXID:                              %u\n"
+
+#: pg_resetxlog.c:678
+#, c-format
+#| msgid "LC_COLLATE:                           %s\n"
+msgid "OldestXID:                            %u\n"
+msgstr "OldestXID:                            %u\n"
+
+#: pg_resetxlog.c:680
+#, c-format
+#| msgid "WAL block size:                       %u\n"
+msgid "OldestXID's DB:                       %u\n"
+msgstr "OldestXID's DB:                       %u\n"
+
+#: pg_resetxlog.c:686
+#, c-format
+#| msgid "WAL block size:                       %u\n"
+msgid "NextXID epoch:                        %u\n"
+msgstr "NextXID 末端:                        %u\n"
+
+#: pg_resetxlog.c:751
 #, c-format
 msgid ""
 "%s: internal error -- sizeof(ControlFileData) is too large ... fix "
 "PG_CONTROL_SIZE\n"
 msgstr "%s: 内部错误 -- sizeof(ControlFileData) 太大 ... 修复 xlog.c\n"
 
-#: pg_resetxlog.c:705
+#: pg_resetxlog.c:766
 #, c-format
 msgid "%s: could not create pg_control file: %s\n"
 msgstr "%s: 无法创建 pg_control 文件: %s\n"
 
-#: pg_resetxlog.c:716
+#: pg_resetxlog.c:777
 #, c-format
 msgid "%s: could not write pg_control file: %s\n"
 msgstr "%s: 无法写 pg_control 文件: %s\n"
 
-#: pg_resetxlog.c:723 pg_resetxlog.c:1022
+#: pg_resetxlog.c:784 pg_resetxlog.c:1068
 #, c-format
 msgid "%s: fsync error: %s\n"
 msgstr "%s: fsync 错误: %s\n"
 
-#: pg_resetxlog.c:763 pg_resetxlog.c:834 pg_resetxlog.c:890
+#: pg_resetxlog.c:824 pg_resetxlog.c:890 pg_resetxlog.c:941
 #, c-format
 msgid "%s: could not open directory \"%s\": %s\n"
 msgstr "%s: 无法打开目录 \"%s\": %s\n"
 
-#: pg_resetxlog.c:805 pg_resetxlog.c:867 pg_resetxlog.c:924
+#: pg_resetxlog.c:855 pg_resetxlog.c:912 pg_resetxlog.c:964
 #, c-format
-msgid "%s: could not read from directory \"%s\": %s\n"
-msgstr "%s: 无法从目录 \"%s\" 中读取: %s\n"
+msgid "%s: could not read directory \"%s\": %s\n"
+msgstr "%s: 无法读取目录 \"%s\": %s\n"
 
-#: pg_resetxlog.c:848 pg_resetxlog.c:905
+#: pg_resetxlog.c:862 pg_resetxlog.c:919 pg_resetxlog.c:971
+#, c-format
+#| msgid "%s: could not open directory \"%s\": %s\n"
+msgid "%s: could not close directory \"%s\": %s\n"
+msgstr "%s: 无法关闭目录 \"%s\": %s\n"
+
+#: pg_resetxlog.c:903 pg_resetxlog.c:955
 #, c-format
 msgid "%s: could not delete file \"%s\": %s\n"
 msgstr "%s: 无法删除文件 \"%s\": %s\n"
 
-#: pg_resetxlog.c:989
+#: pg_resetxlog.c:1035
 #, c-format
 msgid "%s: could not open file \"%s\": %s\n"
 msgstr "%s: 无法打开文件 \"%s\": %s\n"
 
-#: pg_resetxlog.c:1000 pg_resetxlog.c:1014
+#: pg_resetxlog.c:1046 pg_resetxlog.c:1060
 #, c-format
 msgid "%s: could not write file \"%s\": %s\n"
 msgstr "%s: 无法写文件 \"%s\": %s\n"
 
-#: pg_resetxlog.c:1033
+#: pg_resetxlog.c:1079
 #, c-format
 msgid ""
 "%s resets the PostgreSQL transaction log.\n"
@@ -408,7 +485,7 @@ msgstr ""
 "%s 重置 PostgreSQL 事务日志.\n"
 "\n"
 
-#: pg_resetxlog.c:1034
+#: pg_resetxlog.c:1080
 #, c-format
 msgid ""
 "Usage:\n"
@@ -419,70 +496,68 @@ msgstr ""
 "  %s [选项]... 数据目录\n"
 "\n"
 
-#: pg_resetxlog.c:1035
+#: pg_resetxlog.c:1081
 #, c-format
 msgid "Options:\n"
 msgstr "选项:\n"
 
-#: pg_resetxlog.c:1036
+#: pg_resetxlog.c:1082
 #, c-format
 msgid "  -e XIDEPOCH      set next transaction ID epoch\n"
 msgstr "  -e XIDEPOCH      设置下一个事务ID时间单元(epoch)\n"
 
-#: pg_resetxlog.c:1037
+#: pg_resetxlog.c:1083
 #, c-format
 msgid "  -f               force update to be done\n"
 msgstr "  -f               强制更新\n"
 
-#: pg_resetxlog.c:1038
+#: pg_resetxlog.c:1084
 #, c-format
-#| msgid ""
-#| "  -l TLI,FILE,SEG  force minimum WAL starting location for new "
-#| "transaction log\n"
 msgid ""
 "  -l XLOGFILE      force minimum WAL starting location for new transaction "
 "log\n"
 msgstr "  -l XLOGFILE      为新的事务日志强制使用最小WAL日志起始位置\n"
 
-#: pg_resetxlog.c:1039
+#: pg_resetxlog.c:1085
 #, c-format
-#| msgid "  -m XID           set next multitransaction ID\n"
 msgid "  -m MXID,MXID     set next and oldest multitransaction ID\n"
 msgstr "  -m MXID,MXID     设置下一个事务和最老的事务ID\n"
 
-#: pg_resetxlog.c:1040
+#: pg_resetxlog.c:1086
 #, c-format
+#| msgid ""
+#| "  -n               no update, just show extracted control values (for "
+#| "testing)\n"
 msgid ""
-"  -n               no update, just show extracted control values (for "
-"testing)\n"
-msgstr "  -n               未更新, 只显示抽取的控制值 (测试用途)\n"
+"  -n               no update, just show what would be done (for testing)\n"
+msgstr "  -n               未更新, 只显示将要做什么 (测试用途)\n"
 
-#: pg_resetxlog.c:1041
+#: pg_resetxlog.c:1087
 #, c-format
 msgid "  -o OID           set next OID\n"
 msgstr "  -o OID           设置下一个 OID\n"
 
-#: pg_resetxlog.c:1042
+#: pg_resetxlog.c:1088
 #, c-format
 msgid "  -O OFFSET        set next multitransaction offset\n"
 msgstr "  -O OFFSET        设置下一个多事务(multitransaction)偏移\n"
 
-#: pg_resetxlog.c:1043
+#: pg_resetxlog.c:1089
 #, c-format
 msgid "  -V, --version    output version information, then exit\n"
 msgstr "  -V, --version    输出版本信息,然后退出\n"
 
-#: pg_resetxlog.c:1044
+#: pg_resetxlog.c:1090
 #, c-format
 msgid "  -x XID           set next transaction ID\n"
 msgstr "  -x XID           设置下一个事务 ID\n"
 
-#: pg_resetxlog.c:1045
+#: pg_resetxlog.c:1091
 #, c-format
 msgid "  -?, --help       show this help, then exit\n"
 msgstr "  -?, --help       显示帮助信息,然后退出\n"
 
-#: pg_resetxlog.c:1046
+#: pg_resetxlog.c:1092
 #, c-format
 msgid ""
 "\n"
@@ -491,35 +566,32 @@ msgstr ""
 "\n"
 "报告错误至 <pgsql-bugs@postgresql.org>.\n"
 
-#~ msgid "  --help          show this help, then exit\n"
-#~ msgstr "  --help            显示此帮助信息, 然后退出\n"
+#~ msgid "First log file ID after reset:        %u\n"
+#~ msgstr "重置后的第一个日志文件ID:               %u\n"
 
-#~ msgid "  --version       output version information, then exit\n"
-#~ msgstr "  --version         输出版本信息, 然后退出\n"
+#~ msgid "%s: invalid argument for -o option\n"
+#~ msgstr "%s: 为 -o 选项的无效参数\n"
 
-#~ msgid "%s: invalid LC_COLLATE setting\n"
-#~ msgstr "%s: 无效的 LC_COLLATE 设置\n"
+#~ msgid "%s: invalid argument for -x option\n"
+#~ msgstr "%s: 为 -x 选项的无效参数\n"
 
-#~ msgid "%s: invalid LC_CTYPE setting\n"
-#~ msgstr "%s: 无效的 LC_CTYPE 设置\n"
+#~ msgid "Latest checkpoint's StartUpID:        %u\n"
+#~ msgstr "最新检查点的 StartUpID:               %u\n"
 
 #~ msgid "Maximum number of function arguments: %u\n"
 #~ msgstr "函数参数的最大个数:                   %u\n"
 
-#~ msgid "LC_COLLATE:                           %s\n"
-#~ msgstr "LC_COLLATE:                           %s\n"
-
-#~ msgid "LC_CTYPE:                             %s\n"
-#~ msgstr "LC_CTYPE:                             %s\n"
+#~ msgid "%s: invalid LC_CTYPE setting\n"
+#~ msgstr "%s: 无效的 LC_CTYPE 设置\n"
 
-#~ msgid "Latest checkpoint's StartUpID:        %u\n"
-#~ msgstr "最新检查点的 StartUpID:               %u\n"
+#~ msgid "%s: invalid LC_COLLATE setting\n"
+#~ msgstr "%s: 无效的 LC_COLLATE 设置\n"
 
-#~ msgid "%s: invalid argument for -x option\n"
-#~ msgstr "%s: 为 -x 选项的无效参数\n"
+#~ msgid "  --version       output version information, then exit\n"
+#~ msgstr "  --version         输出版本信息, 然后退出\n"
 
-#~ msgid "%s: invalid argument for -o option\n"
-#~ msgstr "%s: 为 -o 选项的无效参数\n"
+#~ msgid "  --help          show this help, then exit\n"
+#~ msgstr "  --help            显示此帮助信息, 然后退出\n"
 
-#~ msgid "First log file ID after reset:        %u\n"
-#~ msgstr "重置后的第一个日志文件ID:               %u\n"
+#~ msgid "%s: could not read from directory \"%s\": %s\n"
+#~ msgstr "%s: 无法从目录 \"%s\" 中读取: %s\n"
index d17693e5e08576a4b934d3b4b13fe3a4a9c401ec..38629ac817190629a9f6e7c54872f66fbccd8ef2 100644 (file)
@@ -6,8 +6,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pgscripts (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2013-09-02 00:27+0000\n"
-"PO-Revision-Date: 2013-09-02 16:30+0800\n"
+"POT-Creation-Date: 2014-11-22 21:12+0000\n"
+"PO-Revision-Date: 2014-12-06 13:14+0800\n"
 "Last-Translator: Xiong He <iihero@qq.com>\n"
 "Language-Team: Chinese (Simplified)\n"
 "Language: zh_CN\n"
@@ -25,23 +25,38 @@ msgstr "内存溢出\n"
 # common.c:78
 #: ../../common/fe_memutils.c:77
 #, c-format
-#| msgid "pg_strdup: cannot duplicate null pointer (internal error)\n"
 msgid "cannot duplicate null pointer (internal error)\n"
 msgstr "无法复制空指针 (内部错误)\n"
 
+#: ../../common/username.c:45
+#, c-format
+#| msgid "could not load private key file \"%s\": %s"
+msgid "could not look up effective user ID %ld: %s"
+msgstr "无法查找得到有效的用户ID %ld: %s"
+
+#: ../../common/username.c:47
+#| msgid "server \"%s\" does not exist"
+msgid "user does not exist"
+msgstr "用户不存在"
+
+#: ../../common/username.c:61
+#, c-format
+msgid "user name lookup failure: %s"
+msgstr "用户名查找失败: %s"
+
 #: clusterdb.c:110 clusterdb.c:129 createdb.c:119 createdb.c:138
-#: createlang.c:89 createlang.c:119 createlang.c:172 createuser.c:163
-#: createuser.c:178 dropdb.c:94 dropdb.c:103 dropdb.c:111 droplang.c:88
-#: droplang.c:118 droplang.c:172 dropuser.c:89 dropuser.c:104 dropuser.c:115
-#: pg_isready.c:92 pg_isready.c:106 reindexdb.c:120 reindexdb.c:139
-#: vacuumdb.c:134 vacuumdb.c:154
+#: createlang.c:89 createlang.c:119 createlang.c:174 createuser.c:168
+#: createuser.c:183 dropdb.c:94 dropdb.c:103 dropdb.c:111 droplang.c:88
+#: droplang.c:118 droplang.c:174 dropuser.c:89 dropuser.c:104 dropuser.c:115
+#: pg_isready.c:93 pg_isready.c:107 reindexdb.c:120 reindexdb.c:139
+#: vacuumdb.c:139 vacuumdb.c:159
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
 
-#: clusterdb.c:127 createdb.c:136 createlang.c:117 createuser.c:176
-#: dropdb.c:109 droplang.c:116 dropuser.c:102 pg_isready.c:104 reindexdb.c:137
-#: vacuumdb.c:152
+#: clusterdb.c:127 createdb.c:136 createlang.c:117 createuser.c:181
+#: dropdb.c:109 droplang.c:116 dropuser.c:102 pg_isready.c:105 reindexdb.c:137
+#: vacuumdb.c:157
 #, c-format
 msgid "%s: too many command-line arguments (first is \"%s\")\n"
 msgstr "%s: 太多的命令行参数 (第一个是 \"%s\")\n"
@@ -53,7 +68,6 @@ msgstr "%s: 无法对所有数据库和一个指定的数据库同时建簇\n"
 
 #: clusterdb.c:146
 #, c-format
-#| msgid "%s: cannot cluster a specific table in all databases\n"
 msgid "%s: cannot cluster specific table(s) in all databases\n"
 msgstr "%s: 无法在所有数据库中对指定表进行建簇\n"
 
@@ -81,21 +95,21 @@ msgstr ""
 "%s 对一个数据库中先前已经建过簇的表进行建簇.\n"
 "\n"
 
-#: clusterdb.c:262 createdb.c:252 createlang.c:234 createuser.c:329
-#: dropdb.c:155 droplang.c:235 dropuser.c:156 pg_isready.c:210 reindexdb.c:342
-#: vacuumdb.c:358
+#: clusterdb.c:262 createdb.c:252 createlang.c:236 createuser.c:348
+#: dropdb.c:155 droplang.c:237 dropuser.c:156 pg_isready.c:222 reindexdb.c:342
+#: vacuumdb.c:425
 #, c-format
 msgid "Usage:\n"
 msgstr "使用方法:\n"
 
-#: clusterdb.c:263 reindexdb.c:343 vacuumdb.c:359
+#: clusterdb.c:263 reindexdb.c:343 vacuumdb.c:426
 #, c-format
 msgid "  %s [OPTION]... [DBNAME]\n"
 msgstr "  %s [选项]... [数据库名]\n"
 
-#: clusterdb.c:264 createdb.c:254 createlang.c:236 createuser.c:331
-#: dropdb.c:157 droplang.c:237 dropuser.c:158 pg_isready.c:213 reindexdb.c:344
-#: vacuumdb.c:360
+#: clusterdb.c:264 createdb.c:254 createlang.c:238 createuser.c:350
+#: dropdb.c:157 droplang.c:239 dropuser.c:158 pg_isready.c:225 reindexdb.c:344
+#: vacuumdb.c:427
 #, c-format
 msgid ""
 "\n"
@@ -114,8 +128,8 @@ msgstr "  -a, --all                 对所有数据库建簇\n"
 msgid "  -d, --dbname=DBNAME       database to cluster\n"
 msgstr "  -d, --dbname=DBNAME       对数据库 DBNAME 建簇\n"
 
-#: clusterdb.c:267 createlang.c:238 createuser.c:335 dropdb.c:158
-#: droplang.c:239 dropuser.c:159 reindexdb.c:347
+#: clusterdb.c:267 createlang.c:240 createuser.c:354 dropdb.c:158
+#: droplang.c:241 dropuser.c:159 reindexdb.c:347
 #, c-format
 msgid ""
 "  -e, --echo                show the commands being sent to the server\n"
@@ -128,7 +142,6 @@ msgstr "  -q, --quiet               不写任何信息\n"
 
 #: clusterdb.c:269
 #, c-format
-#| msgid "  -t, --table=TABLE         cluster specific table only\n"
 msgid "  -t, --table=TABLE         cluster specific table(s) only\n"
 msgstr "  -t, --table=TABLE         只对指定的表建簇\n"
 
@@ -137,21 +150,21 @@ msgstr "  -t, --table=TABLE         只对指定的表建簇\n"
 msgid "  -v, --verbose             write a lot of output\n"
 msgstr "  -v, --verbose                   写大量的输出\n"
 
-#: clusterdb.c:271 createlang.c:240 createuser.c:348 dropdb.c:160
-#: droplang.c:241 dropuser.c:162 reindexdb.c:352
+#: clusterdb.c:271 createlang.c:242 createuser.c:368 dropdb.c:160
+#: droplang.c:243 dropuser.c:162 reindexdb.c:352
 #, c-format
 msgid "  -V, --version             output version information, then exit\n"
 msgstr "  -V, --version             输出版本信息, 然后退出\n"
 
-#: clusterdb.c:272 createlang.c:241 createuser.c:353 dropdb.c:162
-#: droplang.c:242 dropuser.c:164 reindexdb.c:353
+#: clusterdb.c:272 createlang.c:243 createuser.c:373 dropdb.c:162
+#: droplang.c:244 dropuser.c:164 reindexdb.c:353
 #, c-format
 msgid "  -?, --help                show this help, then exit\n"
 msgstr "  -?, --help                显示此帮助, 然后退出\n"
 
-#: clusterdb.c:273 createdb.c:265 createlang.c:242 createuser.c:354
-#: dropdb.c:163 droplang.c:243 dropuser.c:165 pg_isready.c:219 reindexdb.c:354
-#: vacuumdb.c:373
+#: clusterdb.c:273 createdb.c:265 createlang.c:244 createuser.c:374
+#: dropdb.c:163 droplang.c:245 dropuser.c:165 pg_isready.c:231 reindexdb.c:354
+#: vacuumdb.c:442
 #, c-format
 msgid ""
 "\n"
@@ -160,37 +173,37 @@ msgstr ""
 "\n"
 "联接选项:\n"
 
-#: clusterdb.c:274 createlang.c:243 createuser.c:355 dropdb.c:164
-#: droplang.c:244 dropuser.c:166 reindexdb.c:355 vacuumdb.c:374
+#: clusterdb.c:274 createlang.c:245 createuser.c:375 dropdb.c:164
+#: droplang.c:246 dropuser.c:166 reindexdb.c:355 vacuumdb.c:443
 #, c-format
 msgid "  -h, --host=HOSTNAME       database server host or socket directory\n"
 msgstr "  -h, --host=HOSTNAM        数据库服务器所在机器的主机名或套接字目录\n"
 
-#: clusterdb.c:275 createlang.c:244 createuser.c:356 dropdb.c:165
-#: droplang.c:245 dropuser.c:167 reindexdb.c:356 vacuumdb.c:375
+#: clusterdb.c:275 createlang.c:246 createuser.c:376 dropdb.c:165
+#: droplang.c:247 dropuser.c:167 reindexdb.c:356 vacuumdb.c:444
 #, c-format
 msgid "  -p, --port=PORT           database server port\n"
 msgstr "  -p, --port=PORT           数据库服务器端口号\n"
 
-#: clusterdb.c:276 createlang.c:245 dropdb.c:166 droplang.c:246
-#: reindexdb.c:357 vacuumdb.c:376
+#: clusterdb.c:276 createlang.c:247 dropdb.c:166 droplang.c:248
+#: reindexdb.c:357 vacuumdb.c:445
 #, c-format
 msgid "  -U, --username=USERNAME   user name to connect as\n"
 msgstr "  -U, --username=USERNAME   联接的用户名\n"
 
-#: clusterdb.c:277 createlang.c:246 createuser.c:358 dropdb.c:167
-#: droplang.c:247 dropuser.c:169 reindexdb.c:358 vacuumdb.c:377
+#: clusterdb.c:277 createlang.c:248 createuser.c:378 dropdb.c:167
+#: droplang.c:249 dropuser.c:169 reindexdb.c:358 vacuumdb.c:446
 #, c-format
 msgid "  -w, --no-password         never prompt for password\n"
-msgstr "  -w, -no-password         永远不提示输入口令\n"
+msgstr "  -w, --no-password         永远不提示输入口令\n"
 
-#: clusterdb.c:278 createlang.c:247 createuser.c:359 dropdb.c:168
-#: droplang.c:248 dropuser.c:170 reindexdb.c:359 vacuumdb.c:378
+#: clusterdb.c:278 createlang.c:249 createuser.c:379 dropdb.c:168
+#: droplang.c:250 dropuser.c:170 reindexdb.c:359 vacuumdb.c:447
 #, c-format
 msgid "  -W, --password            force password prompt\n"
 msgstr "  -W, --password            强制提示输入口令\n"
 
-#: clusterdb.c:279 dropdb.c:169 reindexdb.c:360 vacuumdb.c:379
+#: clusterdb.c:279 dropdb.c:169 reindexdb.c:360 vacuumdb.c:448
 #, c-format
 msgid "  --maintenance-db=DBNAME   alternate maintenance database\n"
 msgstr "  --maintenance-db=DBNAME   更改维护数据库\n"
@@ -204,9 +217,9 @@ msgstr ""
 "\n"
 "阅读 SQL 命令 CLUSTER 的描述信息, 以便获得更详细的信息.\n"
 
-#: clusterdb.c:281 createdb.c:273 createlang.c:248 createuser.c:360
-#: dropdb.c:170 droplang.c:249 dropuser.c:171 pg_isready.c:224 reindexdb.c:362
-#: vacuumdb.c:381
+#: clusterdb.c:281 createdb.c:273 createlang.c:250 createuser.c:380
+#: dropdb.c:170 droplang.c:251 dropuser.c:171 pg_isready.c:236 reindexdb.c:362
+#: vacuumdb.c:450
 #, c-format
 msgid ""
 "\n"
@@ -215,69 +228,59 @@ msgstr ""
 "\n"
 "臭虫报告至 <pgsql-bugs@postgresql.org>.\n"
 
-#: common.c:44
-#, c-format
-msgid "%s: could not obtain information about current user: %s\n"
-msgstr "%s: 无法获得当前用户的信息: %s\n"
-
-#: common.c:55
-#, c-format
-msgid "%s: could not get current user name: %s\n"
-msgstr "%s: 无法获取当前用户名称: %s\n"
-
-#: common.c:102 common.c:148
+#: common.c:69 common.c:115
 msgid "Password: "
 msgstr "口令: "
 
-#: common.c:137
+#: common.c:104
 #, c-format
 msgid "%s: could not connect to database %s\n"
 msgstr "%s: 无法联接到数据库 %s\n"
 
-#: common.c:164
+#: common.c:131
 #, c-format
 msgid "%s: could not connect to database %s: %s"
 msgstr "%s: 无法联接到数据库 %s: %s"
 
-#: common.c:213 common.c:241
+#: common.c:180 common.c:208
 #, c-format
 msgid "%s: query failed: %s"
 msgstr "%s: 查询失败: %s"
 
-#: common.c:215 common.c:243
+#: common.c:182 common.c:210
 #, c-format
 msgid "%s: query was: %s\n"
 msgstr "%s: 查询是: %s\n"
 
 #. translator: abbreviation for "yes"
-#: common.c:284
+#: common.c:251
 msgid "y"
 msgstr "y"
 
 #. translator: abbreviation for "no"
-#: common.c:286
+#: common.c:253
 msgid "n"
 msgstr "n"
 
 #. translator: This is a question followed by the translated options for
 #. "yes" and "no".
-#: common.c:296
+#: common.c:263
 #, c-format
 msgid "%s (%s/%s) "
 msgstr "%s (%s/%s) "
 
-#: common.c:317
+#: common.c:284
 #, c-format
 msgid "Please answer \"%s\" or \"%s\".\n"
 msgstr "请回答\"%s\"或\"%s\".\n"
 
-#: common.c:395 common.c:428
+#: common.c:362 common.c:395
 #, c-format
 msgid "Cancel request sent\n"
 msgstr "取消发送的请求\n"
 
 # fe-connect.c:1322
-#: common.c:397 common.c:430
+#: common.c:364 common.c:397
 #, c-format
 msgid "Could not send cancel request: %s"
 msgstr "无法发送取消请求: %s"
@@ -340,7 +343,7 @@ msgstr "  -E, --encoding=ENCODING      数据库编码\n"
 #: createdb.c:258
 #, c-format
 msgid "  -l, --locale=LOCALE          locale settings for the database\n"
-msgstr "  -O, --owner=OWNER            新数据库的所属用户\n"
+msgstr "  -l, --locale=LOCALE          数据库的本地化设置\n"
 
 #: createdb.c:259
 #, c-format
@@ -433,22 +436,22 @@ msgstr "是否信任?"
 msgid "Procedural Languages"
 msgstr "过程语言"
 
-#: createlang.c:171 droplang.c:170
+#: createlang.c:173 droplang.c:172
 #, c-format
 msgid "%s: missing required argument language name\n"
 msgstr "%s: 缺少要求的语言名称参数\n"
 
-#: createlang.c:195
+#: createlang.c:197
 #, c-format
 msgid "%s: language \"%s\" is already installed in database \"%s\"\n"
 msgstr "%1$s: 数据库 \"%3$s\" 中已经安装了语言 \"%2$s\"\n"
 
-#: createlang.c:217
+#: createlang.c:219
 #, c-format
 msgid "%s: language installation failed: %s"
 msgstr "%s: 语言安装失败: %s"
 
-#: createlang.c:233
+#: createlang.c:235
 #, c-format
 msgid ""
 "%s installs a procedural language into a PostgreSQL database.\n"
@@ -457,62 +460,62 @@ msgstr ""
 "%s 安装一个过程语言进 PostgreSQL 数据库.\n"
 "\n"
 
-#: createlang.c:235 droplang.c:236
+#: createlang.c:237 droplang.c:238
 #, c-format
 msgid "  %s [OPTION]... LANGNAME [DBNAME]\n"
 msgstr "  %s [选项]... 语言名称 [数据库名]\n"
 
-#: createlang.c:237
+#: createlang.c:239
 #, c-format
 msgid "  -d, --dbname=DBNAME       database to install language in\n"
 msgstr "  -d, --dbname=DBNAME       要安装语言的数据库\n"
 
-#: createlang.c:239 droplang.c:240
+#: createlang.c:241 droplang.c:242
 #, c-format
 msgid ""
 "  -l, --list                show a list of currently installed languages\n"
 msgstr "  -l, --list                显示当前已经安装了的语言列表\n"
 
-#: createuser.c:185
+#: createuser.c:190
 msgid "Enter name of role to add: "
 msgstr "输入要增加的角色名称: "
 
-#: createuser.c:200
+#: createuser.c:205
 msgid "Enter password for new role: "
 msgstr "为新角色输入的口令: "
 
-#: createuser.c:201
+#: createuser.c:206
 msgid "Enter it again: "
 msgstr "再输入一遍: "
 
-#: createuser.c:204
+#: createuser.c:209
 #, c-format
 msgid "Passwords didn't match.\n"
 msgstr "口令不匹配.\n"
 
-#: createuser.c:213
+#: createuser.c:218
 msgid "Shall the new role be a superuser?"
 msgstr "新的角色是否是超级用户?"
 
-#: createuser.c:228
+#: createuser.c:233
 msgid "Shall the new role be allowed to create databases?"
 msgstr "新的角色允许创建数据库吗?"
 
-#: createuser.c:236
+#: createuser.c:241
 msgid "Shall the new role be allowed to create more new roles?"
 msgstr "新角色允许创建其它新的角色吗? "
 
-#: createuser.c:270
+#: createuser.c:275
 #, c-format
 msgid "Password encryption failed.\n"
 msgstr "密码加密失败.\n"
 
-#: createuser.c:313
+#: createuser.c:332
 #, c-format
 msgid "%s: creation of new role failed: %s"
 msgstr "%s: 创建新用户失败: %s"
 
-#: createuser.c:328
+#: createuser.c:347
 #, c-format
 msgid ""
 "%s creates a new PostgreSQL role.\n"
@@ -521,33 +524,39 @@ msgstr ""
 "%s 创建一个新的 PostgreSQL 用户.\n"
 "\n"
 
-#: createuser.c:330 dropuser.c:157
+#: createuser.c:349 dropuser.c:157
 #, c-format
 msgid "  %s [OPTION]... [ROLENAME]\n"
 msgstr "  %s [选项]... [用户名]\n"
 
-#: createuser.c:332
+#: createuser.c:351
 #, c-format
 msgid ""
 "  -c, --connection-limit=N  connection limit for role (default: no limit)\n"
 msgstr "  -c, --connection-limit=N  角色的连接限制(缺省: 没有限制)\n"
 
-#: createuser.c:333
+#: createuser.c:352
 #, c-format
 msgid "  -d, --createdb            role can create new databases\n"
 msgstr "  -d, --createdb            此角色可以创建新数据库\n"
 
-#: createuser.c:334
+#: createuser.c:353
 #, c-format
 msgid "  -D, --no-createdb         role cannot create databases (default)\n"
 msgstr "  -D, --no-createdb         此角色不可以创建新数据库(默认)\n"
 
-#: createuser.c:336
+#: createuser.c:355
 #, c-format
 msgid "  -E, --encrypted           encrypt stored password\n"
 msgstr "  -E, --encrypted           口令加密存储\n"
 
-#: createuser.c:337
+#: createuser.c:356
+#, c-format
+#| msgid "  -s, --superuser           role will be superuser\n"
+msgid "  -g, --role=ROLE           new role will be a member of this role\n"
+msgstr "  -g, --role=ROLE           新的角色必须是这个角色的成员\n"
+
+#: createuser.c:357
 #, c-format
 msgid ""
 "  -i, --inherit             role inherits privileges of roles it is a\n"
@@ -556,52 +565,52 @@ msgstr ""
 "  -i, --inherit            角色能够继承它所属角色的权限\n"
 "                   (这是缺省情况)\n"
 
-#: createuser.c:339
+#: createuser.c:359
 #, c-format
 msgid "  -I, --no-inherit          role does not inherit privileges\n"
 msgstr "  -I, --no-inherit          角色不继承权限\n"
 
-#: createuser.c:340
+#: createuser.c:360
 #, c-format
 msgid "  -l, --login               role can login (default)\n"
 msgstr "  -l, --login              角色能够登录(这是缺省情况)\n"
 
-#: createuser.c:341
+#: createuser.c:361
 #, c-format
 msgid "  -L, --no-login            role cannot login\n"
 msgstr "  -L, --no-login            角色不能登录\n"
 
-#: createuser.c:342
+#: createuser.c:362
 #, c-format
 msgid "  -N, --unencrypted         do not encrypt stored password\n"
 msgstr "  -N, --unencrypted         口令不加密存储\n"
 
-#: createuser.c:343
+#: createuser.c:363
 #, c-format
 msgid "  -P, --pwprompt            assign a password to new role\n"
 msgstr "  -P, --pwprompt            给新角色指定口令\n"
 
-#: createuser.c:344
+#: createuser.c:364
 #, c-format
 msgid "  -r, --createrole          role can create new roles\n"
 msgstr "  -r, --createrole        这个角色可以创建新的角色\n"
 
-#: createuser.c:345
+#: createuser.c:365
 #, c-format
 msgid "  -R, --no-createrole       role cannot create roles (default)\n"
 msgstr "  -R, --no-createrole       这个角色没有创建其它角色的权限(默认)\n"
 
-#: createuser.c:346
+#: createuser.c:366
 #, c-format
 msgid "  -s, --superuser           role will be superuser\n"
 msgstr "  -s, --superuser          角色将是超级用户\n"
 
-#: createuser.c:347
+#: createuser.c:367
 #, c-format
 msgid "  -S, --no-superuser        role will not be superuser (default)\n"
 msgstr "  -S, --no-superuser       角色不能是超级用户(默认)\n"
 
-#: createuser.c:349
+#: createuser.c:369
 #, c-format
 msgid ""
 "  --interactive             prompt for missing role name and attributes "
@@ -611,17 +620,17 @@ msgstr ""
 "  --interactive             提示缺少角色名及其属性\n"
 "                            而不是使用默认值\n"
 
-#: createuser.c:351
+#: createuser.c:371
 #, c-format
 msgid "  --replication             role can initiate replication\n"
 msgstr "  --replication             角色能启动复制\n"
 
-#: createuser.c:352
+#: createuser.c:372
 #, c-format
 msgid "  --no-replication          role cannot initiate replication\n"
 msgstr "  --no-replication          角色不能启动复制\n"
 
-#: createuser.c:357
+#: createuser.c:377
 #, c-format
 msgid ""
 "  -U, --username=USERNAME   user name to connect as (not the one to create)\n"
@@ -672,17 +681,17 @@ msgid ""
 "  --if-exists               don't report error if database doesn't exist\n"
 msgstr "  --if-exists               如果数据库不存在则不报告错误\n"
 
-#: droplang.c:201
+#: droplang.c:203
 #, c-format
 msgid "%s: language \"%s\" is not installed in database \"%s\"\n"
 msgstr "%1$s: 数据库 \"%3$s\" 中, 没有安装语言 \"%2$s\"\n"
 
-#: droplang.c:219
+#: droplang.c:221
 #, c-format
 msgid "%s: language removal failed: %s"
 msgstr "%s: 语言删除失败: %s"
 
-#: droplang.c:234
+#: droplang.c:236
 #, c-format
 msgid ""
 "%s removes a procedural language from a database.\n"
@@ -691,7 +700,7 @@ msgstr ""
 "%s 从数据库中删除一个过程语言.\n"
 "\n"
 
-#: droplang.c:238
+#: droplang.c:240
 #, c-format
 msgid ""
 "  -d, --dbname=DBNAME       database from which to remove the language\n"
@@ -758,23 +767,18 @@ msgstr "  -U, --username=USERNAME   联接用户 (不是要删除的用户名)\n
 # common.c:170
 # copy.c:530
 # copy.c:575
-#: pg_isready.c:138
+#: pg_isready.c:142
 #, c-format
-#| msgid "%s: %s\n"
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: pg_isready.c:146
+#: pg_isready.c:150
 #, c-format
-#| msgid "could not set default_with_oids: %s"
 msgid "%s: could not fetch default options\n"
 msgstr "%s: 无法取得缺省选项\n"
 
-#: pg_isready.c:209
+#: pg_isready.c:221
 #, c-format
-#| msgid ""
-#| "%s creates a PostgreSQL database.\n"
-#| "\n"
 msgid ""
 "%s issues a connection check to a PostgreSQL database.\n"
 "\n"
@@ -782,56 +786,51 @@ msgstr ""
 "%s 发起一个到指定 PostgreSQL数据库的连接检查.\n"
 "\n"
 
-#: pg_isready.c:211
+#: pg_isready.c:223
 #, c-format
 msgid "  %s [OPTION]...\n"
 msgstr "  %s [选项]...\n"
 
-#: pg_isready.c:214
+#: pg_isready.c:226
 #, c-format
-#| msgid "  -d, --dbname=DBNAME       database to reindex\n"
 msgid "  -d, --dbname=DBNAME      database name\n"
 msgstr "  -d, --dbname=DBNAME  数据库名\n"
 
-#: pg_isready.c:215
+#: pg_isready.c:227
 #, c-format
-#| msgid "  -q, --quiet               don't write any messages\n"
 msgid "  -q, --quiet              run quietly\n"
 msgstr "  -q, --quiet               静默运行\n"
 
-#: pg_isready.c:216
+#: pg_isready.c:228
 #, c-format
 msgid "  -V, --version            output version information, then exit\n"
 msgstr "  -V, --version            输出版本信息, 然后退出\n"
 
-#: pg_isready.c:217
+#: pg_isready.c:229
 #, c-format
 msgid "  -?, --help               show this help, then exit\n"
 msgstr "  -?, --help               显示此帮助, 然后退出\n"
 
-#: pg_isready.c:220
+#: pg_isready.c:232
 #, c-format
 msgid "  -h, --host=HOSTNAME      database server host or socket directory\n"
 msgstr "  -h, --host=主机名        数据库服务器的主机名或套接字目录\n"
 
-#: pg_isready.c:221
+#: pg_isready.c:233
 #, c-format
-#| msgid "  -p, --port=PORT           database server port\n"
 msgid "  -p, --port=PORT          database server port\n"
 msgstr "  -p, --port=PORT           数据库服务器端口\n"
 
-#: pg_isready.c:222
+#: pg_isready.c:234
 #, c-format
-#| msgid "  -t, --timeout=SECS     seconds to wait when using -w option\n"
 msgid ""
 "  -t, --timeout=SECS       seconds to wait when attempting connection, 0 "
 "disables (default: %s)\n"
 msgstr ""
 "  -t, --timeout=SECS    尝试连接时要等待的秒数, 值为0表示禁用(缺省值: %s)\n"
 
-#: pg_isready.c:223
+#: pg_isready.c:235
 #, c-format
-#| msgid "  -U, --username=USERNAME   user name to connect as\n"
 msgid "  -U, --username=USERNAME  user name to connect as\n"
 msgstr "  -U, --username=USERNAME   连接的用户名\n"
 
@@ -847,28 +846,22 @@ msgstr "%s: 无法对所有数据库和系统目录同时进行索引重建操
 
 #: reindexdb.c:159
 #, c-format
-#| msgid "%s: cannot reindex a specific table in all databases\n"
 msgid "%s: cannot reindex specific table(s) in all databases\n"
 msgstr "%s: 无法在所有数据库中对指定表上的索引进行重建\n"
 
 #: reindexdb.c:164
 #, c-format
-#| msgid "%s: cannot reindex a specific index in all databases\n"
 msgid "%s: cannot reindex specific index(es) in all databases\n"
 msgstr "%s: 无法在所有数据库中对指定的索引进行重建\n"
 
 #: reindexdb.c:175
 #, c-format
-#| msgid ""
-#| "%s: cannot reindex a specific table and system catalogs at the same time\n"
 msgid ""
 "%s: cannot reindex specific table(s) and system catalogs at the same time\n"
 msgstr "%s: 无法对指定的表和系统视图同时进行索引重建操作\n"
 
 #: reindexdb.c:180
 #, c-format
-#| msgid ""
-#| "%s: cannot reindex a specific index and system catalogs at the same time\n"
 msgid ""
 "%s: cannot reindex specific index(es) and system catalogs at the same time\n"
 msgstr "%s: 无法对指定索引和系统视图同时进行索引重建操作\n"
@@ -919,9 +912,8 @@ msgstr "  -d, --dbname=数据库名称       对数据库中的索引进行重
 
 #: reindexdb.c:348
 #, c-format
-#| msgid "  -i, --index=INDEX         recreate specific index only\n"
 msgid "  -i, --index=INDEX         recreate specific index(es) only\n"
-msgstr "  -I, --index=INDEX       仅重新创建指定的索引\n"
+msgstr "  -i, --index=INDEX       仅重新创建指定的索引\n"
 
 #: reindexdb.c:350
 #, c-format
@@ -930,7 +922,6 @@ msgstr "  -s, --system              对系统视图重新创建索引\n"
 
 #: reindexdb.c:351
 #, c-format
-#| msgid "  -t, --table=TABLE         reindex specific table only\n"
 msgid "  -t, --table=TABLE         reindex specific table(s) only\n"
 msgstr "  -t, --table=表名        只对指定的表重新创建索引\n"
 
@@ -943,43 +934,54 @@ msgstr ""
 "\n"
 "阅读SQL命令REINDEX的描述信息, 以便获得更详细的信息.\n"
 
-#: vacuumdb.c:162
+#: vacuumdb.c:167
 #, c-format
 msgid "%s: cannot use the \"full\" option when performing only analyze\n"
 msgstr "%s: 在只执行分析的时候,无法使用选项\"full\"\n"
 
-#: vacuumdb.c:168
+#: vacuumdb.c:173
 #, c-format
 msgid "%s: cannot use the \"freeze\" option when performing only analyze\n"
 msgstr "%s: 当只执行分析的时候,无法使用选项\"freeze\"\n"
 
-#: vacuumdb.c:181
+#: vacuumdb.c:186
 #, c-format
 msgid "%s: cannot vacuum all databases and a specific one at the same time\n"
 msgstr "%s: 无法对所有数据库和一个指定的数据库同时清理\n"
 
-#: vacuumdb.c:187
+#: vacuumdb.c:192
 #, c-format
-#| msgid "%s: cannot vacuum a specific table in all databases\n"
 msgid "%s: cannot vacuum specific table(s) in all databases\n"
 msgstr "%s: 无法在所有数据库中对指定的表进行清理\n"
 
-#: vacuumdb.c:306
+#: vacuumdb.c:244
 #, c-format
 msgid "%s: vacuuming of table \"%s\" in database \"%s\" failed: %s"
 msgstr "%1$s: 在数据库 \"%3$s\" 中的表 \"%2$s\" 清理失败: %4$s"
 
-#: vacuumdb.c:309
+#: vacuumdb.c:247
 #, c-format
 msgid "%s: vacuuming of database \"%s\" failed: %s"
 msgstr "%s: 数据库 \"%s\" 清理失败: %s"
 
-#: vacuumdb.c:341
+#: vacuumdb.c:333
+msgid "Generating minimal optimizer statistics (1 target)"
+msgstr "产生最小优化器统计(一个目标)"
+
+#: vacuumdb.c:334
+msgid "Generating medium optimizer statistics (10 targets)"
+msgstr "产生中等优化器统计(10个目标)"
+
+#: vacuumdb.c:335
+msgid "Generating default (full) optimizer statistics"
+msgstr "产生缺省(完全)优化器统计"
+
+#: vacuumdb.c:406
 #, c-format
 msgid "%s: vacuuming database \"%s\"\n"
 msgstr "%s: 清理数据库 \"%s\"\n"
 
-#: vacuumdb.c:357
+#: vacuumdb.c:424
 #, c-format
 msgid ""
 "%s cleans and analyzes a PostgreSQL database.\n"
@@ -988,71 +990,80 @@ msgstr ""
 "%s 清理并且优化一个 PostgreSQL 数据库.\n"
 "\n"
 
-#: vacuumdb.c:361
+#: vacuumdb.c:428
 #, c-format
 msgid "  -a, --all                       vacuum all databases\n"
 msgstr "  -a, --all                       清理所有的数据库\n"
 
-#: vacuumdb.c:362
+#: vacuumdb.c:429
 #, c-format
 msgid "  -d, --dbname=DBNAME             database to vacuum\n"
 msgstr "  -d, --dbname=DBNAME             清理数据库 DBNAME\n"
 
-#: vacuumdb.c:363
+#: vacuumdb.c:430
 #, c-format
 msgid ""
 "  -e, --echo                      show the commands being sent to the "
 "server\n"
 msgstr "  -e, --echo                      显示发送到服务端的命令\n"
 
-#: vacuumdb.c:364
+#: vacuumdb.c:431
 #, c-format
 msgid "  -f, --full                      do full vacuuming\n"
 msgstr "  -f, --full                      完全清理\n"
 
-#: vacuumdb.c:365
+#: vacuumdb.c:432
 #, c-format
 msgid "  -F, --freeze                    freeze row transaction information\n"
 msgstr "  -F, --freeze                    冻结记录的事务信息\n"
 
-#: vacuumdb.c:366
+#: vacuumdb.c:433
 #, c-format
 msgid "  -q, --quiet                     don't write any messages\n"
 msgstr "  -q, --quiet                     不写任何信息\n"
 
-#: vacuumdb.c:367
+#: vacuumdb.c:434
 #, c-format
-#| msgid "  -t, --table='TABLE[(COLUMNS)]'  vacuum specific table only\n"
 msgid "  -t, --table='TABLE[(COLUMNS)]'  vacuum specific table(s) only\n"
 msgstr "  -t, --table='TABLE[(COLUMNS)]'  只清理指定的表\n"
 
-#: vacuumdb.c:368
+#: vacuumdb.c:435
 #, c-format
 msgid "  -v, --verbose                   write a lot of output\n"
 msgstr "  -v, --verbose                   写大量的输出\n"
 
-#: vacuumdb.c:369
+#: vacuumdb.c:436
 #, c-format
 msgid ""
 "  -V, --version                   output version information, then exit\n"
 msgstr "  -V, --version                   输出版本信息, 然后退出\n"
 
-#: vacuumdb.c:370
+#: vacuumdb.c:437
 #, c-format
 msgid "  -z, --analyze                   update optimizer statistics\n"
-msgstr "  -z, --anaylze                   更新优化器的统计信息\n"
+msgstr "  -z, --analyze                   更新优化器统计\n"
 
-#: vacuumdb.c:371
+#: vacuumdb.c:438
 #, c-format
 msgid "  -Z, --analyze-only              only update optimizer statistics\n"
-msgstr "  -z, --analyze-only               只更新优化器的统计信息\n"
+msgstr "  -Z, --analyze-only               只更新优化器统计\n"
+
+#: vacuumdb.c:439
+#, c-format
+msgid ""
+"      --analyze-in-stages         only update optimizer statistics, in "
+"multiple\n"
+"                                  stages for faster results\n"
+msgstr ""
+"      --analyze-in-stages        只更新优化器统计, 分多\n"
+"                                  阶段产生更快的结果\n"
 
-#: vacuumdb.c:372
+#: vacuumdb.c:441
 #, c-format
 msgid "  -?, --help                      show this help, then exit\n"
 msgstr "  -?, --help                      显示此帮助信息, 然后退出\n"
 
-#: vacuumdb.c:380
+#: vacuumdb.c:449
 #, c-format
 msgid ""
 "\n"
@@ -1061,68 +1072,74 @@ msgstr ""
 "\n"
 "阅读 SQL 命令 VACUUM 的描述信息, 以便获得更详细的信息.\n"
 
-#~ msgid "  --help                       show this help, then exit\n"
-#~ msgstr "  --help                       显示此帮助信息, 然后退出\n"
+#~ msgid "%s: out of memory\n"
+#~ msgstr "%s: 内存溢出\n"
 
 #~ msgid ""
-#~ "  --version                    output version information, then exit\n"
-#~ msgstr "  --versoin                    输出版本信息, 然后退出\n"
+#~ "  -D, --location=PATH       alternative place to store the database\n"
+#~ msgstr "  -D, --location=PATH       选择一个地方存放数据库\n"
 
-#~ msgid "  --help                    show this help, then exit\n"
-#~ msgstr "  --help                    显示此帮助信息, 然后退出\n"
+#~ msgid "  -W, --password            prompt for password to connect\n"
+#~ msgstr "  -W, --password            联接提示口令输入\n"
 
-#~ msgid "  --version                 output version information, then exit\n"
-#~ msgstr "  --version                 输出版本信息, 然后退出\n"
+#~ msgid "  -i, --sysid=SYSID         select sysid for new user\n"
+#~ msgstr "  -i, --sysid=SYSID         选择一个 sysid 给新用户\n"
+
+#~ msgid "%s: user ID must be a positive number\n"
+#~ msgstr "%s: 用户 ID 必需为一个正数\n"
 
 #~ msgid ""
-#~ "\n"
-#~ "If one of -d, -D, -r, -R, -s, -S, and ROLENAME is not specified, you "
-#~ "will\n"
-#~ "be prompted interactively.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "如果 -d, -D, -r, -R, -s, -S 和 ROLENAME 一个都没有指定,将使用交互式提示\n"
-#~ "你.\n"
+#~ "  -L, --pglib=DIRECTORY     find language interpreter file in DIRECTORY\n"
+#~ msgstr "  -L, --pglib=DIRECTORY     在 DIRECTORY 目录中查找语言翻译文件\n"
 
 #~ msgid ""
-#~ "%s: still %s functions declared in language \"%s\"; language not removed\n"
-#~ msgstr "%s: 函数 %s 是用语言 \"%s\" 声明的; 语言未被删除\n"
+#~ "Supported languages are plpgsql, pltcl, pltclu, plperl, plperlu, and "
+#~ "plpythonu.\n"
+#~ msgstr ""
+#~ "已支持的语言有 plpgsql, pltcl, pltclu, plperl, plperlu, 和 plpythonu.\n"
 
-#~ msgid "  --help                          show this help, then exit\n"
-#~ msgstr "  --help                          显示此帮助信息, 然后退出\n"
+#~ msgid "%s: unsupported language \"%s\"\n"
+#~ msgstr "%s: 不支持语言 \"%s\"\n"
+
+#~ msgid "  -q, --quiet                  don't write any messages\n"
+#~ msgstr "  -q, --quiet                  不写任何信息\n"
 
 #~ msgid ""
 #~ "  --version                       output version information, then exit\n"
 #~ msgstr "  --versoin                       输出版本信息, 然后退出\n"
 
-#~ msgid "  -q, --quiet                  don't write any messages\n"
-#~ msgstr "  -q, --quiet                  不写任何信息\n"
+#~ msgid "  --help                          show this help, then exit\n"
+#~ msgstr "  --help                          显示此帮助信息, 然后退出\n"
 
-#~ msgid "%s: unsupported language \"%s\"\n"
-#~ msgstr "%s: 不支持语言 \"%s\"\n"
+#~ msgid ""
+#~ "%s: still %s functions declared in language \"%s\"; language not removed\n"
+#~ msgstr "%s: 函数 %s 是用语言 \"%s\" 声明的; 语言未被删除\n"
 
 #~ msgid ""
-#~ "Supported languages are plpgsql, pltcl, pltclu, plperl, plperlu, and "
-#~ "plpythonu.\n"
+#~ "\n"
+#~ "If one of -d, -D, -r, -R, -s, -S, and ROLENAME is not specified, you "
+#~ "will\n"
+#~ "be prompted interactively.\n"
 #~ msgstr ""
-#~ "已支持的语言有 plpgsql, pltcl, pltclu, plperl, plperlu, 和 plpythonu.\n"
+#~ "\n"
+#~ "如果 -d, -D, -r, -R, -s, -S 和 ROLENAME 一个都没有指定,将使用交互式提示\n"
+#~ "你.\n"
 
-#~ msgid ""
-#~ "  -L, --pglib=DIRECTORY     find language interpreter file in DIRECTORY\n"
-#~ msgstr "  -L, --pglib=DIRECTORY     在 DIRECTORY 目录中查找语言翻译文件\n"
+#~ msgid "  --version                 output version information, then exit\n"
+#~ msgstr "  --version                 输出版本信息, 然后退出\n"
 
-#~ msgid "%s: user ID must be a positive number\n"
-#~ msgstr "%s: 用户 ID 必需为一个正数\n"
+#~ msgid "  --help                    show this help, then exit\n"
+#~ msgstr "  --help                    显示此帮助信息, 然后退出\n"
 
-#~ msgid "  -i, --sysid=SYSID         select sysid for new user\n"
-#~ msgstr "  -i, --sysid=SYSID         选择一个 sysid 给新用户\n"
+#~ msgid ""
+#~ "  --version                    output version information, then exit\n"
+#~ msgstr "  --versoin                    输出版本信息, 然后退出\n"
 
-#~ msgid "  -W, --password            prompt for password to connect\n"
-#~ msgstr "  -W, --password            联接提示口令输入\n"
+#~ msgid "  --help                       show this help, then exit\n"
+#~ msgstr "  --help                       显示此帮助信息, 然后退出\n"
 
-#~ msgid ""
-#~ "  -D, --location=PATH       alternative place to store the database\n"
-#~ msgstr "  -D, --location=PATH       选择一个地方存放数据库\n"
+#~ msgid "%s: could not get current user name: %s\n"
+#~ msgstr "%s: 无法获取当前用户名称: %s\n"
 
-#~ msgid "%s: out of memory\n"
-#~ msgstr "%s: 内存溢出\n"
+#~ msgid "%s: could not obtain information about current user: %s\n"
+#~ msgstr "%s: 无法获得当前用户的信息: %s\n"
index 14e6dcfd1f89cec15629065142d1e0fda4d799a8..61d4d39176d84cb814edab293d0cb0e71e8385f0 100644 (file)
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PostgreSQL 9.0\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2013-09-02 00:15+0000\n"
-"PO-Revision-Date: 2013-09-02 16:31+0800\n"
+"POT-Creation-Date: 2014-11-22 21:07+0000\n"
+"PO-Revision-Date: 2014-11-28 15:50+0800\n"
 "Last-Translator: Xiong He <iihero@qq.com>\n"
 "Language-Team: Weibin <ssmei_2000@yahoo.com>\n"
 "Language: zh_CN\n"
@@ -18,469 +18,467 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Poedit 1.5.4\n"
 
-#: pl_comp.c:432 pl_handler.c:276
+#: pl_comp.c:436 pl_handler.c:438
 #, c-format
 msgid "PL/pgSQL functions cannot accept type %s"
 msgstr "PL/pgSQL函数不使用类型%s"
 
-#: pl_comp.c:513
+#: pl_comp.c:517
 #, c-format
 msgid "could not determine actual return type for polymorphic function \"%s\""
 msgstr "无法确定多态函数\"%s\"的实际返回类型"
 
-#: pl_comp.c:543
+#: pl_comp.c:547
 #, c-format
 msgid "trigger functions can only be called as triggers"
 msgstr "触发器函数只能以触发器的形式调用"
 
-#: pl_comp.c:547 pl_handler.c:261
+#: pl_comp.c:551 pl_handler.c:423
 #, c-format
 msgid "PL/pgSQL functions cannot return type %s"
 msgstr "PL/pgSQL函数不能返回类型%s"
 
-#: pl_comp.c:590
+#: pl_comp.c:594
 #, c-format
 msgid "trigger functions cannot have declared arguments"
 msgstr "触发器函数不能有已声明的参数"
 
-#: pl_comp.c:591
+#: pl_comp.c:595
 #, c-format
 msgid ""
 "The arguments of the trigger can be accessed through TG_NARGS and TG_ARGV "
 "instead."
 msgstr "触发器的参数可以通过TG_NARGS和TG_ARGV进行访问."
 
-#: pl_comp.c:693
+#: pl_comp.c:697
 #, c-format
-#| msgid "trigger functions cannot have declared arguments"
 msgid "event trigger functions cannot have declared arguments"
 msgstr "事件触发器函数不能有已声明的参数"
 
-#: pl_comp.c:950
+#: pl_comp.c:962
 #, c-format
 msgid "compilation of PL/pgSQL function \"%s\" near line %d"
 msgstr "在第%2$d行附件编译PL/pgSQL函数\"%1$s\""
 
-#: pl_comp.c:973
+#: pl_comp.c:985
 #, c-format
 msgid "parameter name \"%s\" used more than once"
 msgstr "多次使用参数名称 \"%s\""
 
-#: pl_comp.c:1083
+#: pl_comp.c:1095
 #, c-format
 msgid "column reference \"%s\" is ambiguous"
 msgstr "字段关联 \"%s\" 是不明确的"
 
-#: pl_comp.c:1085
+#: pl_comp.c:1097
 #, c-format
 msgid "It could refer to either a PL/pgSQL variable or a table column."
 msgstr "可以指向一个PL/pgSQL变量或表中的列"
 
-#: pl_comp.c:1265 pl_comp.c:1293 pl_exec.c:4097 pl_exec.c:4452 pl_exec.c:4538
-#: pl_exec.c:4629
+#: pl_comp.c:1277 pl_comp.c:1305 pl_exec.c:4179 pl_exec.c:4524 pl_exec.c:4609
+#: pl_exec.c:4700
 #, c-format
 msgid "record \"%s\" has no field \"%s\""
 msgstr "记录\"%s\"没有字段\"%s\""
 
-#: pl_comp.c:1824
+#: pl_comp.c:1836
 #, c-format
 msgid "relation \"%s\" does not exist"
 msgstr "关系 \"%s\" 不存在"
 
-#: pl_comp.c:1933
+#: pl_comp.c:1945
 #, c-format
 msgid "variable \"%s\" has pseudo-type %s"
 msgstr "变量\"%s\"具有伪类型%s"
 
-#: pl_comp.c:1999
+#: pl_comp.c:2011
 #, c-format
 msgid "relation \"%s\" is not a table"
 msgstr "关系 \"%s\"不是一张表"
 
-#: pl_comp.c:2159
+#: pl_comp.c:2171
 #, c-format
 msgid "type \"%s\" is only a shell"
 msgstr "类型 \"%s\" 只是一个 shell"
 
-#: pl_comp.c:2233 pl_comp.c:2286
+#: pl_comp.c:2245 pl_comp.c:2298
 #, c-format
 msgid "unrecognized exception condition \"%s\""
 msgstr "不可识别的异常条件\"%s\""
 
-#: pl_comp.c:2444
+#: pl_comp.c:2456
 #, c-format
 msgid ""
 "could not determine actual argument type for polymorphic function \"%s\""
 msgstr "无法确定多态函数\"%s\"的实际参数类型"
 
-#: pl_exec.c:254 pl_exec.c:514 pl_exec.c:793
+#: pl_exec.c:277 pl_exec.c:537 pl_exec.c:816
 msgid "during initialization of execution state"
 msgstr "在执行状态的初始化期间"
 
-#: pl_exec.c:261
+#: pl_exec.c:284
 msgid "while storing call arguments into local variables"
 msgstr "在将调用的参数存储到本地变量时"
 
-#: pl_exec.c:303 pl_exec.c:671
+#: pl_exec.c:326 pl_exec.c:694
 msgid "during function entry"
 msgstr "在进入函数期间"
 
-#: pl_exec.c:334 pl_exec.c:702 pl_exec.c:834
+#: pl_exec.c:357 pl_exec.c:725 pl_exec.c:857
 #, c-format
 msgid "CONTINUE cannot be used outside a loop"
 msgstr "在循环的外部不能使用CONTINUE"
 
-#: pl_exec.c:338
+#: pl_exec.c:361
 #, c-format
 msgid "control reached end of function without RETURN"
 msgstr "控制流程到达函数的结束部分,但是没有看到RETURN"
 
-#: pl_exec.c:345
+#: pl_exec.c:368
 msgid "while casting return value to function's return type"
 msgstr "正在将返回值强行指派为函数的返回类型"
 
-#: pl_exec.c:358 pl_exec.c:2810
+#: pl_exec.c:381 pl_exec.c:2843
 #, c-format
 msgid "set-valued function called in context that cannot accept a set"
 msgstr "集值函数在不接受使用集合的环境中调用"
 
-#: pl_exec.c:396 pl_exec.c:2653
+#: pl_exec.c:419 pl_exec.c:2686
 msgid "returned record type does not match expected record type"
 msgstr "所返回的记录类型与所期待的记录类型不匹配"
 
-#: pl_exec.c:456 pl_exec.c:710 pl_exec.c:842
+#: pl_exec.c:479 pl_exec.c:733 pl_exec.c:865
 msgid "during function exit"
 msgstr "在函数退出期间"
 
-#: pl_exec.c:706 pl_exec.c:838
+#: pl_exec.c:729 pl_exec.c:861
 #, c-format
 msgid "control reached end of trigger procedure without RETURN"
 msgstr "控制流程到达触发器/存储过程的结束部分,但是没有看到RETURN"
 
-#: pl_exec.c:715
+#: pl_exec.c:738
 #, c-format
 msgid "trigger procedure cannot return a set"
 msgstr "触发器存储过程无法返回集合"
 
-#: pl_exec.c:737
+#: pl_exec.c:760
 msgid ""
 "returned row structure does not match the structure of the triggering table"
 msgstr "所返回的记录结构与触发表的结构不匹配"
 
-#: pl_exec.c:893
+#: pl_exec.c:916
 #, c-format
 msgid "PL/pgSQL function %s line %d %s"
 msgstr "PL/pgSQL 函数%s在第%d行%s"
 
-#: pl_exec.c:904
+#: pl_exec.c:927
 #, c-format
 msgid "PL/pgSQL function %s %s"
 msgstr "PL/pgSQL 函数%s %s"
 
 #. translator: last %s is a plpgsql statement type name
-#: pl_exec.c:912
+#: pl_exec.c:935
 #, c-format
 msgid "PL/pgSQL function %s line %d at %s"
 msgstr "在%3$s的第%2$d行的PL/pgSQL函数%1$s"
 
-#: pl_exec.c:918
+#: pl_exec.c:941
 #, c-format
 msgid "PL/pgSQL function %s"
 msgstr "PL/pgSQL函数 %s"
 
-#: pl_exec.c:1027
+#: pl_exec.c:1050
 msgid "during statement block local variable initialization"
 msgstr "在初始化语句块的局部变量期间"
 
-#: pl_exec.c:1069
+#: pl_exec.c:1092
 #, c-format
 msgid "variable \"%s\" declared NOT NULL cannot default to NULL"
 msgstr "声明为NOT NULL的变量\"%s\"无法将缺省值设为NULL"
 
-#: pl_exec.c:1119
+#: pl_exec.c:1142
 msgid "during statement block entry"
 msgstr "在进入语句块期间"
 
-#: pl_exec.c:1140
+#: pl_exec.c:1163
 msgid "during statement block exit"
 msgstr "在退出语句块期间"
 
-#: pl_exec.c:1183
+#: pl_exec.c:1206
 msgid "during exception cleanup"
 msgstr "在清理异常期间"
 
-#: pl_exec.c:1536
+#: pl_exec.c:1559
 #, c-format
 msgid "GET STACKED DIAGNOSTICS cannot be used outside an exception handler"
 msgstr "GET STACKED DIAGNOSTICS不能用于异常处理之外"
 
-#: pl_exec.c:1727
+#: pl_exec.c:1760
 #, c-format
 msgid "case not found"
 msgstr "没有找到CASE"
 
-#: pl_exec.c:1728
+#: pl_exec.c:1761
 #, c-format
 msgid "CASE statement is missing ELSE part."
 msgstr "在CASE语句结构中丢失ELSE部分"
 
-#: pl_exec.c:1880
+#: pl_exec.c:1913
 #, c-format
 msgid "lower bound of FOR loop cannot be null"
 msgstr "FOR循环的低位边界不能为空"
 
-#: pl_exec.c:1895
+#: pl_exec.c:1928
 #, c-format
 msgid "upper bound of FOR loop cannot be null"
 msgstr "FOR循环的高位边界不能为空"
 
-#: pl_exec.c:1912
+#: pl_exec.c:1945
 #, c-format
 msgid "BY value of FOR loop cannot be null"
 msgstr "FOR循环的BY值不能为空"
 
-#: pl_exec.c:1918
+#: pl_exec.c:1951
 #, c-format
 msgid "BY value of FOR loop must be greater than zero"
 msgstr "FOR循环的BY值必须大于0"
 
-#: pl_exec.c:2088 pl_exec.c:3648
+#: pl_exec.c:2121 pl_exec.c:3730
 #, c-format
 msgid "cursor \"%s\" already in use"
 msgstr "游标\"%s\"已经在使用"
 
-#: pl_exec.c:2111 pl_exec.c:3710
+#: pl_exec.c:2144 pl_exec.c:3792
 #, c-format
 msgid "arguments given for cursor without arguments"
 msgstr "给不带有参数的游标指定参数"
 
-#: pl_exec.c:2130 pl_exec.c:3729
+#: pl_exec.c:2163 pl_exec.c:3811
 #, c-format
 msgid "arguments required for cursor"
 msgstr "游标需要参数"
 
-#: pl_exec.c:2217
+#: pl_exec.c:2250
 #, c-format
 msgid "FOREACH expression must not be null"
 msgstr "FOREACH表达式不能为空"
 
-#: pl_exec.c:2223
+#: pl_exec.c:2256
 #, c-format
 msgid "FOREACH expression must yield an array, not type %s"
 msgstr "FOREACH表达式的结果必须是数组, 而不是类型 %s"
 
-#: pl_exec.c:2240
+#: pl_exec.c:2273
 #, c-format
 msgid "slice dimension (%d) is out of the valid range 0..%d"
 msgstr "索引维数(%d)超出有效范围: 0..%d"
 
-#: pl_exec.c:2267
+#: pl_exec.c:2300
 #, c-format
 msgid "FOREACH ... SLICE loop variable must be of an array type"
 msgstr "FOREACH ... SLICE循环变量必须属于数组类型"
 
-#: pl_exec.c:2271
+#: pl_exec.c:2304
 #, c-format
 msgid "FOREACH loop variable must not be of an array type"
 msgstr "FOREACH循环变量不能为数组类型"
 
-#: pl_exec.c:2492 pl_exec.c:2645
+#: pl_exec.c:2525 pl_exec.c:2678
 #, c-format
-#| msgid "while casting return value to function's return type"
 msgid ""
 "cannot return non-composite value from function returning composite type"
 msgstr "返回值为组合类型的函数不能返回非组合型的值"
 
-#: pl_exec.c:2536 pl_gram.y:3012
+#: pl_exec.c:2569 pl_gram.y:3075
 #, c-format
 msgid "cannot use RETURN NEXT in a non-SETOF function"
 msgstr "无法在非SETOF函数中使用RETURN NEXT"
 
-#: pl_exec.c:2564 pl_exec.c:2687
+#: pl_exec.c:2597 pl_exec.c:2720
 #, c-format
 msgid "wrong result type supplied in RETURN NEXT"
 msgstr "在RETURN NEXT中提供了错误的结果类型"
 
-#: pl_exec.c:2587 pl_exec.c:4084 pl_exec.c:4410 pl_exec.c:4445 pl_exec.c:4512
-#: pl_exec.c:4531 pl_exec.c:4599 pl_exec.c:4622
+#: pl_exec.c:2620 pl_exec.c:4166 pl_exec.c:4491 pl_exec.c:4517 pl_exec.c:4583
+#: pl_exec.c:4602 pl_exec.c:4670 pl_exec.c:4693
 #, c-format
 msgid "record \"%s\" is not assigned yet"
 msgstr "记录 \"%s\"还没有分配"
 
-#: pl_exec.c:2589 pl_exec.c:4086 pl_exec.c:4412 pl_exec.c:4447 pl_exec.c:4514
-#: pl_exec.c:4533 pl_exec.c:4601 pl_exec.c:4624
+#: pl_exec.c:2622 pl_exec.c:4168 pl_exec.c:4493 pl_exec.c:4519 pl_exec.c:4585
+#: pl_exec.c:4604 pl_exec.c:4672 pl_exec.c:4695
 #, c-format
 msgid "The tuple structure of a not-yet-assigned record is indeterminate."
 msgstr "未分配记录的元组结构未确定."
 
-#: pl_exec.c:2593 pl_exec.c:2613
+#: pl_exec.c:2626 pl_exec.c:2646
 #, c-format
 msgid "wrong record type supplied in RETURN NEXT"
 msgstr "在RETURN NEXT中提供了错误的记录类型"
 
-#: pl_exec.c:2705
+#: pl_exec.c:2738
 #, c-format
 msgid "RETURN NEXT must have a parameter"
 msgstr "RETURN NEXT必须有一个参数"
 
-#: pl_exec.c:2738 pl_gram.y:3070
+#: pl_exec.c:2771 pl_gram.y:3133
 #, c-format
 msgid "cannot use RETURN QUERY in a non-SETOF function"
 msgstr "无法在非SETOF函数中使用RETURN QUERY"
 
-#: pl_exec.c:2758
+#: pl_exec.c:2791
 msgid "structure of query does not match function result type"
 msgstr "查询的结构与函数的返回类型不匹配"
 
-#: pl_exec.c:2838 pl_exec.c:2970
+#: pl_exec.c:2871 pl_exec.c:3003
 #, c-format
 msgid "RAISE option already specified: %s"
 msgstr "已经指定了RAISE选项:%s"
 
-#: pl_exec.c:2871
+#: pl_exec.c:2904
 #, c-format
 msgid "RAISE without parameters cannot be used outside an exception handler"
 msgstr "不带有参数的RAISE不能在异常处理的外部使用"
 
-#: pl_exec.c:2912
+#: pl_exec.c:2945
 #, c-format
 msgid "too few parameters specified for RAISE"
 msgstr "为RAISE子句指定参数过少"
 
-#: pl_exec.c:2940
+#: pl_exec.c:2973
 #, c-format
 msgid "too many parameters specified for RAISE"
 msgstr "为RAISE子句指定参数过多"
 
-#: pl_exec.c:2960
+#: pl_exec.c:2993
 #, c-format
 msgid "RAISE statement option cannot be null"
 msgstr "RAISE语句选项不能为空"
 
-#: pl_exec.c:3031
+#: pl_exec.c:3064
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: pl_exec.c:3201 pl_exec.c:3338 pl_exec.c:3511
+#: pl_exec.c:3241 pl_exec.c:3378 pl_exec.c:3569
 #, c-format
 msgid "cannot COPY to/from client in PL/pgSQL"
 msgstr "无法在PL/pgSQL中从客户端或向客户端使用COPY命令"
 
-#: pl_exec.c:3205 pl_exec.c:3342 pl_exec.c:3515
+#: pl_exec.c:3245 pl_exec.c:3382 pl_exec.c:3573
 #, c-format
 msgid "cannot begin/end transactions in PL/pgSQL"
 msgstr "无法在PL/pgSQL中无法使用begin/end事务"
 
-#: pl_exec.c:3206 pl_exec.c:3343 pl_exec.c:3516
+#: pl_exec.c:3246 pl_exec.c:3383 pl_exec.c:3574
 #, c-format
 msgid "Use a BEGIN block with an EXCEPTION clause instead."
 msgstr "使用带有一个EXCEPTION子句的BEGIN代码块."
 
-#: pl_exec.c:3366 pl_exec.c:3540
+#: pl_exec.c:3406 pl_exec.c:3598
 #, c-format
 msgid "INTO used with a command that cannot return data"
 msgstr "使用了带有无法返回数据的命令的INTO"
 
-#: pl_exec.c:3386 pl_exec.c:3560
+#: pl_exec.c:3434 pl_exec.c:3626
 #, c-format
 msgid "query returned no rows"
 msgstr "查询没有返回记录"
 
-#: pl_exec.c:3395 pl_exec.c:3569
+#: pl_exec.c:3453 pl_exec.c:3645
 #, c-format
 msgid "query returned more than one row"
 msgstr "查询返回多条记录"
 
-#: pl_exec.c:3410
+#: pl_exec.c:3470
 #, c-format
 msgid "query has no destination for result data"
 msgstr "对于结果数据,查询没有目标"
 
-#: pl_exec.c:3411
+#: pl_exec.c:3471
 #, c-format
 msgid "If you want to discard the results of a SELECT, use PERFORM instead."
 msgstr "如果您想要放弃SELECT语句的结果,请使用PERFORM."
 
-#: pl_exec.c:3444 pl_exec.c:6407
+#: pl_exec.c:3505 pl_exec.c:6480
 #, c-format
 msgid "query string argument of EXECUTE is null"
 msgstr "EXECUTE的查询字符串参数是空值"
 
-#: pl_exec.c:3503
+#: pl_exec.c:3561
 #, c-format
 msgid "EXECUTE of SELECT ... INTO is not implemented"
 msgstr "没有执行EXECUTE of SELECT ... INTO "
 
-#: pl_exec.c:3504
+#: pl_exec.c:3562
 #, c-format
 msgid ""
 "You might want to use EXECUTE ... INTO or EXECUTE CREATE TABLE ... AS "
 "instead."
 msgstr "您可以使用EXECUTE ... INTO或者EXECUTE CREATE TABLE ... AS语句来替代"
 
-#: pl_exec.c:3792 pl_exec.c:3884
+#: pl_exec.c:3874 pl_exec.c:3966
 #, c-format
 msgid "cursor variable \"%s\" is null"
 msgstr "游标变量\"%s\"是空的"
 
-#: pl_exec.c:3799 pl_exec.c:3891
+#: pl_exec.c:3881 pl_exec.c:3973
 #, c-format
 msgid "cursor \"%s\" does not exist"
 msgstr "游标 \"%s\" 不存在"
 
-#: pl_exec.c:3813
+#: pl_exec.c:3895
 #, c-format
 msgid "relative or absolute cursor position is null"
 msgstr "游标的相对或绝对位置是空的"
 
-#: pl_exec.c:3980
+#: pl_exec.c:4062
 #, c-format
 msgid "null value cannot be assigned to variable \"%s\" declared NOT NULL"
 msgstr "不能将声明为NOT NULL的变量\"%s\" 分配空值"
 
-#: pl_exec.c:4027
+#: pl_exec.c:4109
 #, c-format
 msgid "cannot assign non-composite value to a row variable"
 msgstr "无法将非组合值分配给记录变量"
 
-#: pl_exec.c:4051
+#: pl_exec.c:4133
 #, c-format
 msgid "cannot assign non-composite value to a record variable"
 msgstr "无法将非组合值分配给记录类型变量"
 
-#: pl_exec.c:4196
+#: pl_exec.c:4278
 #, c-format
 msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)"
 msgstr "数组维数(%d)超过了最大允许值(%d)"
 
-#: pl_exec.c:4228
+#: pl_exec.c:4310
 #, c-format
 msgid "subscripted object is not an array"
 msgstr "下标对象不是一个数组"
 
-#: pl_exec.c:4265
+#: pl_exec.c:4347
 #, c-format
 msgid "array subscript in assignment must not be null"
 msgstr "在赋值中数组下标不能为空"
 
-#: pl_exec.c:4737
+#: pl_exec.c:4806
 #, c-format
 msgid "query \"%s\" did not return data"
 msgstr "查询\"%s\"没有返回数据"
 
-#: pl_exec.c:4745
+#: pl_exec.c:4814
 #, c-format
 msgid "query \"%s\" returned %d column"
 msgid_plural "query \"%s\" returned %d columns"
 msgstr[0] "查询\"%s\"返回%d列"
 
-#: pl_exec.c:4771
+#: pl_exec.c:4840
 #, c-format
 msgid "query \"%s\" returned more than one row"
 msgstr "查询\"%s\"返回多条数据"
 
-#: pl_exec.c:4828
+#: pl_exec.c:4897
 #, c-format
 msgid "query \"%s\" is not a SELECT"
 msgstr "查询 \"%s\"不是SELECT语句"
@@ -521,378 +519,398 @@ msgstr "EXECUTE 语句"
 msgid "FOR over EXECUTE statement"
 msgstr "在EXECUTE语句上的FOR语句"
 
-#: pl_gram.y:449
+#: pl_gram.y:469
 #, c-format
 msgid "block label must be placed before DECLARE, not after"
 msgstr "代码块标签必须放在DECLARE的前面,而不是后面"
 
-#: pl_gram.y:469
+#: pl_gram.y:489
 #, c-format
 msgid "collations are not supported by type %s"
 msgstr "类型 %s不支持校对函数"
 
-#: pl_gram.y:484
+#: pl_gram.y:504
 #, c-format
 msgid "row or record variable cannot be CONSTANT"
 msgstr "记录或者记录类型变量不能是CONSTANT类型"
 
-#: pl_gram.y:494
+#: pl_gram.y:514
 #, c-format
 msgid "row or record variable cannot be NOT NULL"
 msgstr "记录或者记录类型变量不能是NOT NULL"
 
-#: pl_gram.y:505
+#: pl_gram.y:525
 #, c-format
 msgid "default value for row or record variable is not supported"
 msgstr "不支持为记录或记录类型变量设置缺省值"
 
-#: pl_gram.y:650 pl_gram.y:665 pl_gram.y:691
+#: pl_gram.y:670 pl_gram.y:685 pl_gram.y:711
 #, c-format
 msgid "variable \"%s\" does not exist"
 msgstr "变量 \"%s\" 不存在"
 
-#: pl_gram.y:709 pl_gram.y:722
+#: pl_gram.y:729 pl_gram.y:757
 msgid "duplicate declaration"
 msgstr "重复声明"
 
-#: pl_gram.y:900
+#: pl_gram.y:740 pl_gram.y:768
+#, c-format
+#| msgid "variable \"%s\" is hidden by a local variable"
+msgid "variable \"%s\" shadows a previously defined variable"
+msgstr "变量\"%s\"隐藏了前一个已定义的变量"
+
+#: pl_gram.y:955
 #, c-format
 msgid "diagnostics item %s is not allowed in GET STACKED DIAGNOSTICS"
 msgstr "诊断项 %s 不允许出现在GET STACKED DIAGNOSTICS的结果中"
 
-#: pl_gram.y:918
+#: pl_gram.y:973
 #, c-format
 msgid "diagnostics item %s is not allowed in GET CURRENT DIAGNOSTICS"
 msgstr "诊断项 %s 不允许出现在GET CURRENT DIAGNOSTICS的结果中"
 
-#: pl_gram.y:1010
+#: pl_gram.y:1071
 msgid "unrecognized GET DIAGNOSTICS item"
 msgstr "无法识别的项GET DIAGNOSTICS"
 
-#: pl_gram.y:1021 pl_gram.y:3257
+#: pl_gram.y:1082 pl_gram.y:3320
 #, c-format
 msgid "\"%s\" is not a scalar variable"
 msgstr "\"%s\" 不是一个标量变量"
 
-#: pl_gram.y:1273 pl_gram.y:1467
+#: pl_gram.y:1334 pl_gram.y:1528
 #, c-format
 msgid ""
 "loop variable of loop over rows must be a record or row variable or list of "
 "scalar variables"
 msgstr "在记录集上进行循环的循环变量必须是记录或记录类型变量或标量变量的列表"
 
-#: pl_gram.y:1307
+#: pl_gram.y:1368
 #, c-format
 msgid "cursor FOR loop must have only one target variable"
 msgstr "游标的FOR循环只能有一个目标变量"
 
-#: pl_gram.y:1314
+#: pl_gram.y:1375
 #, c-format
 msgid "cursor FOR loop must use a bound cursor variable"
 msgstr "游标的FOR循环必须使用有界游标变量"
 
-#: pl_gram.y:1398
+#: pl_gram.y:1459
 #, c-format
 msgid "integer FOR loop must have only one target variable"
 msgstr "整数FOR循环必须只能有一个目标变量"
 
-#: pl_gram.y:1434
+#: pl_gram.y:1495
 #, c-format
 msgid "cannot specify REVERSE in query FOR loop"
 msgstr "无法在查询FOR循环中指定REVERSE "
 
-#: pl_gram.y:1581
+#: pl_gram.y:1642
 #, c-format
 msgid "loop variable of FOREACH must be a known variable or list of variables"
 msgstr "FOREACH的循环变量必须是已知类型或者是变量列表"
 
-#: pl_gram.y:1633 pl_gram.y:1670 pl_gram.y:1718 pl_gram.y:2713 pl_gram.y:2794
-#: pl_gram.y:2905 pl_gram.y:3658
+#: pl_gram.y:1694 pl_gram.y:1731 pl_gram.y:1779 pl_gram.y:2776 pl_gram.y:2857
+#: pl_gram.y:2968 pl_gram.y:3721
 msgid "unexpected end of function definition"
 msgstr "在函数定义中意外出现的结束标志"
 
-#: pl_gram.y:1738 pl_gram.y:1762 pl_gram.y:1778 pl_gram.y:1784 pl_gram.y:1873
-#: pl_gram.y:1881 pl_gram.y:1895 pl_gram.y:1990 pl_gram.y:2171 pl_gram.y:2254
-#: pl_gram.y:2386 pl_gram.y:3500 pl_gram.y:3561 pl_gram.y:3639
+#: pl_gram.y:1799 pl_gram.y:1823 pl_gram.y:1839 pl_gram.y:1845 pl_gram.y:1934
+#: pl_gram.y:1942 pl_gram.y:1956 pl_gram.y:2051 pl_gram.y:2232 pl_gram.y:2315
+#: pl_gram.y:2449 pl_gram.y:3563 pl_gram.y:3624 pl_gram.y:3702
 msgid "syntax error"
 msgstr "语法错误"
 
-#: pl_gram.y:1766 pl_gram.y:1768 pl_gram.y:2175 pl_gram.y:2177
+#: pl_gram.y:1827 pl_gram.y:1829 pl_gram.y:2236 pl_gram.y:2238
 msgid "invalid SQLSTATE code"
 msgstr "无效的SQLSTATE代码"
 
-#: pl_gram.y:1937
+#: pl_gram.y:1998
 msgid "syntax error, expected \"FOR\""
 msgstr "语法错误,期望\"FOR\""
 
-#: pl_gram.y:1999
+#: pl_gram.y:2060
 #, c-format
 msgid "FETCH statement cannot return multiple rows"
 msgstr "FETCH语句无法返回多条记录"
 
-#: pl_gram.y:2055
+#: pl_gram.y:2116
 #, c-format
 msgid "cursor variable must be a simple variable"
 msgstr "游标变量必须是一个简单变量"
 
-#: pl_gram.y:2061
+#: pl_gram.y:2122
 #, c-format
 msgid "variable \"%s\" must be of type cursor or refcursor"
 msgstr "变量\"%s\" 必须属于游标类型或refcursor类型"
 
-#: pl_gram.y:2229
+#: pl_gram.y:2290
 msgid "label does not exist"
 msgstr "标签不存在"
 
-#: pl_gram.y:2357 pl_gram.y:2368
+#: pl_gram.y:2420 pl_gram.y:2431
 #, c-format
 msgid "\"%s\" is not a known variable"
 msgstr "\"%s\" 不是一个已知变量"
 
-#: pl_gram.y:2472 pl_gram.y:2482 pl_gram.y:2637
+#: pl_gram.y:2535 pl_gram.y:2545 pl_gram.y:2700
 msgid "mismatched parentheses"
 msgstr "括号不匹配"
 
-#: pl_gram.y:2486
+#: pl_gram.y:2549
 #, c-format
 msgid "missing \"%s\" at end of SQL expression"
 msgstr "在SQL表达式的结尾处丢失\"%s\""
 
-#: pl_gram.y:2492
+#: pl_gram.y:2555
 #, c-format
 msgid "missing \"%s\" at end of SQL statement"
 msgstr "在SQL语句的结尾处丢失\"%s\""
 
-#: pl_gram.y:2509
+#: pl_gram.y:2572
 msgid "missing expression"
 msgstr "缺少表达式"
 
-#: pl_gram.y:2511
+#: pl_gram.y:2574
 msgid "missing SQL statement"
 msgstr "缺少SQL语句"
 
-#: pl_gram.y:2639
+#: pl_gram.y:2702
 msgid "incomplete data type declaration"
 msgstr "未完成的数据类型声明"
 
-#: pl_gram.y:2662
+#: pl_gram.y:2725
 msgid "missing data type declaration"
 msgstr "丢失数据类型声明"
 
-#: pl_gram.y:2718
+#: pl_gram.y:2781
 msgid "INTO specified more than once"
 msgstr "多次指定INTO"
 
-#: pl_gram.y:2886
+#: pl_gram.y:2949
 msgid "expected FROM or IN"
 msgstr "期望关键字FROM或IN"
 
-#: pl_gram.y:2946
+#: pl_gram.y:3009
 #, c-format
 msgid "RETURN cannot have a parameter in function returning set"
 msgstr "在返回为集合的函数中RETURN不能带有参数"
 
-#: pl_gram.y:2947
+#: pl_gram.y:3010
 #, c-format
 msgid "Use RETURN NEXT or RETURN QUERY."
 msgstr "使用RETURN NEXT或RETURN QUERY."
 
-#: pl_gram.y:2955
+#: pl_gram.y:3018
 #, c-format
 msgid "RETURN cannot have a parameter in function with OUT parameters"
 msgstr "在带有输出参数的函数中RETURN不能有参数"
 
-#: pl_gram.y:2964
+#: pl_gram.y:3027
 #, c-format
 msgid "RETURN cannot have a parameter in function returning void"
 msgstr "在返回为空的函数中RETURN不能有参数"
 
-#: pl_gram.y:3026
+#: pl_gram.y:3089
 #, c-format
 msgid "RETURN NEXT cannot have a parameter in function with OUT parameters"
 msgstr "在带有输出参数的函数中RETURN NEXT不能有参数"
 
-#: pl_gram.y:3126
+#: pl_gram.y:3189
 #, c-format
 msgid "\"%s\" is declared CONSTANT"
 msgstr "\"%s\"被声明为常量"
 
-#: pl_gram.y:3188 pl_gram.y:3200
+#: pl_gram.y:3251 pl_gram.y:3263
 #, c-format
 msgid "record or row variable cannot be part of multiple-item INTO list"
 msgstr "记录或行类型变量不能作为带有多个项的INTO列表中的一部分"
 
-#: pl_gram.y:3245
+#: pl_gram.y:3308
 #, c-format
 msgid "too many INTO variables specified"
 msgstr "在INTO后面指定了太多的变量"
 
-#: pl_gram.y:3453
+#: pl_gram.y:3516
 #, c-format
 msgid "end label \"%s\" specified for unlabelled block"
 msgstr "为没有标签的代码块指定结束标签\"%s\" "
 
-#: pl_gram.y:3460
+#: pl_gram.y:3523
 #, c-format
 msgid "end label \"%s\" differs from block's label \"%s\""
 msgstr "结束标签\"%s\" 与代码块标签\"%s\"不同"
 
-#: pl_gram.y:3495
+#: pl_gram.y:3558
 #, c-format
 msgid "cursor \"%s\" has no arguments"
 msgstr "游标\"%s\" 没有参数"
 
-#: pl_gram.y:3509
+#: pl_gram.y:3572
 #, c-format
 msgid "cursor \"%s\" has arguments"
 msgstr "游标\"%s\"有参数"
 
-#: pl_gram.y:3551
+#: pl_gram.y:3614
 #, c-format
 msgid "cursor \"%s\" has no argument named \"%s\""
 msgstr "游标\"%s\" 没有名为 \"%s\"的参数"
 
-#: pl_gram.y:3571
+#: pl_gram.y:3634
 #, c-format
 msgid "value for parameter \"%s\" of cursor \"%s\" specified more than once"
 msgstr "游标\"%2$s\"中的参数值\"%1$s\"指定了多次"
 
-#: pl_gram.y:3596
+#: pl_gram.y:3659
 #, c-format
 msgid "not enough arguments for cursor \"%s\""
 msgstr "游标 \"%s\"没有足够的参数"
 
-#: pl_gram.y:3603
+#: pl_gram.y:3666
 #, c-format
 msgid "too many arguments for cursor \"%s\""
 msgstr "游标 \"%s\"给定的参数太多"
 
-#: pl_gram.y:3690
+#: pl_gram.y:3753
 msgid "unrecognized RAISE statement option"
 msgstr "无法识别的RAISE语句选项"
 
-#: pl_gram.y:3694
+#: pl_gram.y:3757
 msgid "syntax error, expected \"=\""
 msgstr "语法错误,期望\"=\""
 
-#: pl_handler.c:61
+#: pl_handler.c:147
 msgid ""
 "Sets handling of conflicts between PL/pgSQL variable names and table column "
 "names."
 msgstr "设置在PL/pgSQL变量名称和表中列名冲突时的处理原则"
 
+#: pl_handler.c:156
+msgid ""
+"Print information about parameters in the DETAIL part of the error messages "
+"generated on INTO ... STRICT failures."
+msgstr "打印产生于INTO...STRICT失败时的详细的错误消息里的参数信息"
+
+#: pl_handler.c:164
+msgid "List of programming constructs that should produce a warning."
+msgstr "程序构造列表必须输出警告."
+
+#: pl_handler.c:174
+msgid "List of programming constructs that should produce an error."
+msgstr "程序构造列表必须输出一个错误信息提示."
+
 #. translator: %s is typically the translation of "syntax error"
-#: pl_scanner.c:552
+#: pl_scanner.c:554
 #, c-format
 msgid "%s at end of input"
 msgstr "%s 在输入的末尾"
 
 #. translator: first %s is typically the translation of "syntax error"
-#: pl_scanner.c:568
+#: pl_scanner.c:570
 #, c-format
 msgid "%s at or near \"%s\""
 msgstr "%s 在 \"%s\" 或附近的"
 
-#~ msgid "relation \"%s.%s\" does not exist"
-#~ msgstr "关系 \"%s.%s\" 不存在"
-
-#~ msgid "expected \"[\""
-#~ msgstr "期望 \"[\""
-
-#~ msgid "row \"%s\" has no field \"%s\""
-#~ msgstr "记录\"%s\"没有字段\"%s\""
-
-#~ msgid "row \"%s.%s\" has no field \"%s\""
-#~ msgstr "记录\"%s.%s\"没有字段\"%s\""
+#~ msgid ""
+#~ "RETURN must specify a record or row variable in function returning row"
+#~ msgstr "在返回记录的函数中RETURN必须制定一个记录或记录类型变量"
 
-#~ msgid "type of \"%s\" does not match that when preparing the plan"
-#~ msgstr " \"%s\"类型与正在准备计划时的类型不匹配"
+#~ msgid ""
+#~ "RETURN NEXT must specify a record or row variable in function returning "
+#~ "row"
+#~ msgstr "在返回记录的函数中RETURN NEXT必须指定记录或记录类型变量"
 
-#~ msgid "type of \"%s.%s\" does not match that when preparing the plan"
-#~ msgstr " \"%s.%s\"类型与正在准备计划时的类型不匹配"
+#~ msgid "unterminated dollar-quoted string"
+#~ msgstr "未结束的$引用字符串"
 
-#~ msgid "type of tg_argv[%d] does not match that when preparing the plan"
-#~ msgstr "tg_argv[%d]的类型与正在准备计划时的类型不匹配"
+#~ msgid "unterminated quoted string"
+#~ msgstr "未结束的引用字符串"
 
-#~ msgid "N/A (dropped column)"
-#~ msgstr "N/A (已删除的列)"
+#~ msgid "unterminated /* comment"
+#~ msgstr "/* 注释没有结束"
 
-#~ msgid ""
-#~ "Number of returned columns (%d) does not match expected column count (%d)."
-#~ msgstr "所返回列的数量(%d列)与所期望列的数量(%d)不匹配."
+#~ msgid "unterminated quoted identifier"
+#~ msgstr "未结束的引用标识符"
 
-#~ msgid "Returned type %s does not match expected type %s in column \"%s\"."
-#~ msgstr "所返回的类型%1$s与列\"%3$s\"中期待的类型%2$s不匹配."
+#~ msgid "qualified identifier cannot be used here: %s"
+#~ msgstr "在这里不能使用限定标识符:%s"
 
-#~ msgid "only positional parameters can be aliased"
-#~ msgstr "å\8fªæ\9c\89å·²å®\9aä½\8dç\9a\84å\8f\82æ\95°è\83½ä½¿ç\94¨å\8c\96å\90\8d"
+#~ msgid "unterminated \" in identifier: %s"
+#~ msgstr "å\9c¨æ \87è¯\86符中æ\9cªç»\93æ\9d\9fç\9a\84\"ï¼\9a%s"
 
-#~ msgid "function has no parameter \"%s\""
-#~ msgstr "å\87½æ\95°ä¸­æ²¡æ\9c\89å\8f\82æ\95°\"%s\""
+#~ msgid "variable \"%s\" does not exist in the current block"
+#~ msgstr "å\9c¨å½\93å\89\8d代ç \81å\9d\97中ä¸\8då­\98å\9c¨å\8f\98é\87\8f \"%s\""
 
-#~ msgid "expected an integer variable"
-#~ msgstr "期望一个整型变量"
+#~ msgid "expected \")\""
+#~ msgstr "期望\")\""
 
-#~ msgid "syntax error at \"%s\""
-#~ msgstr "在\"%s\"上出现语法错误"
+#~ msgid "string literal in PL/PgSQL function \"%s\" near line %d"
+#~ msgstr "在PL/PgSQL函数 \"%s\" 第%d行附近的字符串常量"
 
-#~ msgid "Expected \"FOR\", to open a cursor for an unbound cursor variable."
-#~ msgstr "期望\"FOR\"来为无界游标变量打开游标"
+#~ msgid "SQL statement in PL/PgSQL function \"%s\" near line %d"
+#~ msgstr "在PL/PgSQL函数 \"%s\" 第%d行附近的SQL语句"
 
-#~ msgid "expected a cursor or refcursor variable"
-#~ msgstr "期望游标或refcursor类型变量"
+#~ msgid ""
+#~ "Expected record variable, row variable, or list of scalar variables "
+#~ "following INTO."
+#~ msgstr "在INTO后期望记录类型变量,记录变量或标量变量的列表."
 
-#~ msgid "too many variables specified in SQL statement"
-#~ msgstr "在SQL语句中指定了太多的变量"
+#~ msgid "cannot assign to tg_argv"
+#~ msgstr "无法分配到tg_argv"
 
 #~ msgid ""
 #~ "RETURN cannot have a parameter in function returning set; use RETURN NEXT "
 #~ "or RETURN QUERY"
 #~ msgstr "在返回集合的函数中RETURN不能有参数;使用RETURN NEXT或RETURN QUERY"
 
-#~ msgid "cannot assign to tg_argv"
-#~ msgstr "无法分配到tg_argv"
+#~ msgid "too many variables specified in SQL statement"
+#~ msgstr "在SQL语句中指定了太多的变量"
 
-#~ msgid ""
-#~ "Expected record variable, row variable, or list of scalar variables "
-#~ "following INTO."
-#~ msgstr "在INTO后期望记录类型变量,记录变量或标量变量的列表."
+#~ msgid "expected a cursor or refcursor variable"
+#~ msgstr "期望游标或refcursor类型变量"
 
-#~ msgid "SQL statement in PL/PgSQL function \"%s\" near line %d"
-#~ msgstr "在PL/PgSQL函数 \"%s\" 第%d行附近的SQL语句"
+#~ msgid "Expected \"FOR\", to open a cursor for an unbound cursor variable."
+#~ msgstr "期望\"FOR\"来为无界游标变量打开游标"
 
-#~ msgid "string literal in PL/PgSQL function \"%s\" near line %d"
-#~ msgstr "在PL/PgSQL函数 \"%s\" 第%d行附近的字符串常量"
+#~ msgid "syntax error at \"%s\""
+#~ msgstr "在\"%s\"上出现语法错误"
 
-#~ msgid "expected \")\""
-#~ msgstr "期望\")\""
+#~ msgid "expected an integer variable"
+#~ msgstr "期望一个整型变量"
 
-#~ msgid "variable \"%s\" does not exist in the current block"
-#~ msgstr "å\9c¨å½\93å\89\8d代ç \81å\9d\97中ä¸\8då­\98å\9c¨å\8f\98é\87\8f \"%s\""
+#~ msgid "function has no parameter \"%s\""
+#~ msgstr "å\87½æ\95°ä¸­æ²¡æ\9c\89å\8f\82æ\95°\"%s\""
 
-#~ msgid "unterminated \" in identifier: %s"
-#~ msgstr "å\9c¨æ \87è¯\86符中æ\9cªç»\93æ\9d\9fç\9a\84\"ï¼\9a%s"
+#~ msgid "only positional parameters can be aliased"
+#~ msgstr "å\8fªæ\9c\89å·²å®\9aä½\8dç\9a\84å\8f\82æ\95°è\83½ä½¿ç\94¨å\8c\96å\90\8d"
 
-#~ msgid "qualified identifier cannot be used here: %s"
-#~ msgstr "在这里不能使用限定标识符:%s"
+#~ msgid "Returned type %s does not match expected type %s in column \"%s\"."
+#~ msgstr "所返回的类型%1$s与列\"%3$s\"中期待的类型%2$s不匹配."
 
-#~ msgid "unterminated quoted identifier"
-#~ msgstr "未结束的引用标识符"
+#~ msgid ""
+#~ "Number of returned columns (%d) does not match expected column count (%d)."
+#~ msgstr "所返回列的数量(%d列)与所期望列的数量(%d)不匹配."
 
-#~ msgid "unterminated /* comment"
-#~ msgstr "/* 注释没有结束"
+#~ msgid "N/A (dropped column)"
+#~ msgstr "N/A (已删除的列)"
 
-#~ msgid "unterminated quoted string"
-#~ msgstr "未结束的引用字符串"
+#~ msgid "type of tg_argv[%d] does not match that when preparing the plan"
+#~ msgstr "tg_argv[%d]的类型与正在准备计划时的类型不匹配"
 
-#~ msgid "unterminated dollar-quoted string"
-#~ msgstr "未结束的$引用字符串"
+#~ msgid "type of \"%s.%s\" does not match that when preparing the plan"
+#~ msgstr " \"%s.%s\"类型与正在准备计划时的类型不匹配"
 
-#~ msgid ""
-#~ "RETURN NEXT must specify a record or row variable in function returning "
-#~ "row"
-#~ msgstr "在返回记录的函数中RETURN NEXT必须指定记录或记录类型变量"
+#~ msgid "type of \"%s\" does not match that when preparing the plan"
+#~ msgstr " \"%s\"类型与正在准备计划时的类型不匹配"
 
-#~ msgid ""
-#~ "RETURN must specify a record or row variable in function returning row"
-#~ msgstr "在返回记录的函数中RETURN必须制定一个记录或记录类型变量"
+#~ msgid "row \"%s.%s\" has no field \"%s\""
+#~ msgstr "记录\"%s.%s\"没有字段\"%s\""
+
+#~ msgid "row \"%s\" has no field \"%s\""
+#~ msgstr "记录\"%s\"没有字段\"%s\""
+
+#~ msgid "expected \"[\""
+#~ msgstr "期望 \"[\""
+
+#~ msgid "relation \"%s.%s\" does not exist"
+#~ msgstr "关系 \"%s.%s\" 不存在"
index b21c34d242f2ccc03d17767d31adc897299e4128..e626ac2e3149b7fff3985e3cc3064a8034affb3c 100644 (file)
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PostgreSQL 9.0\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2013-01-29 13:39+0000\n"
-"PO-Revision-Date: 2012-10-19 20:50+0800\n"
+"POT-Creation-Date: 2014-11-22 21:07+0000\n"
+"PO-Revision-Date: 2014-11-28 15:52+0800\n"
 "Last-Translator: Xiong He <iihero@qq.com>\n"
 "Language-Team: Weibin <ssmei_2000@yahoo.com>\n"
 "Language: zh_CN\n"
@@ -28,12 +28,12 @@ msgstr "plpy.cursor期望一个查询或一个计划"
 msgid "plpy.cursor takes a sequence as its second argument"
 msgstr "plpy.cursor将一个序列作为它的第二个参数"
 
-#: plpy_cursorobject.c:187 plpy_spi.c:222
+#: plpy_cursorobject.c:187 plpy_spi.c:223
 #, c-format
 msgid "could not execute plan"
 msgstr "无法执行计划"
 
-#: plpy_cursorobject.c:190 plpy_spi.c:225
+#: plpy_cursorobject.c:190 plpy_spi.c:226
 #, c-format
 msgid "Expected sequence of %d argument, got %d: %s"
 msgid_plural "Expected sequence of %d arguments, got %d: %s"
@@ -45,18 +45,18 @@ msgstr[0] "期望%d序列参数,但是得到%d: %s"
 msgid "iterating a closed cursor"
 msgstr "遍历一个关闭的游标"
 
-#: plpy_cursorobject.c:348 plpy_cursorobject.c:415
+#: plpy_cursorobject.c:348 plpy_cursorobject.c:413
 #, c-format
 msgid "iterating a cursor in an aborted subtransaction"
 msgstr "在终止的子事务里遍历一个游标"
 
 # sql_help.h:109
-#: plpy_cursorobject.c:407
+#: plpy_cursorobject.c:405
 #, c-format
 msgid "fetch from a closed cursor"
 msgstr "从关闭的游标里获取结果"
 
-#: plpy_cursorobject.c:486
+#: plpy_cursorobject.c:482
 #, c-format
 msgid "closing a cursor in an aborted subtransaction"
 msgstr "在终止的子事务里关闭一个游标"
@@ -66,85 +66,85 @@ msgstr "在终止的子事务里关闭一个游标"
 msgid "%s"
 msgstr "%s"
 
-#: plpy_exec.c:90
+#: plpy_exec.c:91
 #, c-format
 msgid "unsupported set function return mode"
 msgstr "不支持集合函数返回模式"
 
-#: plpy_exec.c:91
+#: plpy_exec.c:92
 #, c-format
 msgid ""
 "PL/Python set-returning functions only support returning only value per call."
 msgstr "PL/Python集合返回函数只支持在每次调用时返回值."
 
-#: plpy_exec.c:103
+#: plpy_exec.c:104
 #, c-format
 msgid "returned object cannot be iterated"
 msgstr "所返回的对象无法迭代"
 
-#: plpy_exec.c:104
+#: plpy_exec.c:105
 #, c-format
 msgid "PL/Python set-returning functions must return an iterable object."
 msgstr "PL/Python集合返回函数必须返回一个可迭代的对象."
 
-#: plpy_exec.c:129
+#: plpy_exec.c:130
 #, c-format
 msgid "error fetching next item from iterator"
 msgstr "当从迭代器中取回下一个成员时出现错误"
 
-#: plpy_exec.c:164
+#: plpy_exec.c:165
 #, c-format
 msgid "PL/Python function with return type \"void\" did not return None"
 msgstr "返回类型为\"void\"的PL/Python函数不返回None"
 
-#: plpy_exec.c:288 plpy_exec.c:314
+#: plpy_exec.c:289 plpy_exec.c:315
 #, c-format
 msgid "unexpected return value from trigger procedure"
 msgstr "在触发器存储过程出现非期望的返回值"
 
-#: plpy_exec.c:289
+#: plpy_exec.c:290
 #, c-format
 msgid "Expected None or a string."
 msgstr "期望空值或一个字符串"
 
-#: plpy_exec.c:304
+#: plpy_exec.c:305
 #, c-format
 msgid ""
 "PL/Python trigger function returned \"MODIFY\" in a DELETE trigger -- ignored"
 msgstr "在DELETE触发器中的PL/Python 触发器函数返回 \"MODIFY\"  -- 忽略"
 
-#: plpy_exec.c:315
+#: plpy_exec.c:316
 #, c-format
 msgid "Expected None, \"OK\", \"SKIP\", or \"MODIFY\"."
 msgstr "期望None, \"OK\", \"SKIP\", 或\"MODIFY\""
 
-#: plpy_exec.c:396
+#: plpy_exec.c:397
 #, c-format
 msgid "PyList_SetItem() failed, while setting up arguments"
 msgstr "当设置参数的同时, 执行PyList_SetItem()失败"
 
-#: plpy_exec.c:400
+#: plpy_exec.c:401
 #, c-format
 msgid "PyDict_SetItemString() failed, while setting up arguments"
 msgstr "当设置参数的同时, 执行PyDict_SetItemString()失败"
 
-#: plpy_exec.c:412
+#: plpy_exec.c:413
 #, c-format
 msgid ""
 "function returning record called in context that cannot accept type record"
 msgstr "返回值类型是记录的函数在不接受使用记录类型的环境中调用"
 
-#: plpy_exec.c:450
+#: plpy_exec.c:451
 #, c-format
 msgid "while creating return value"
 msgstr "同时在创建返回值"
 
-#: plpy_exec.c:474
+#: plpy_exec.c:475
 #, c-format
 msgid "could not create new dictionary while building trigger arguments"
 msgstr "在构建触发器参数的同时无法创建新的字典."
 
-#: plpy_exec.c:664
+#: plpy_exec.c:663
 #, c-format
 msgid "TD[\"new\"] deleted, cannot modify row"
 msgstr "TD[\"new\"] 已删除,无法修改记录"
@@ -166,22 +166,22 @@ msgid ""
 "row"
 msgstr "在 TD[\"new\"]中找到的键 \"%s\"在正在触发的记录中不是作为列而存在."
 
-#: plpy_exec.c:778
+#: plpy_exec.c:777
 #, c-format
 msgid "while modifying trigger row"
 msgstr "同时正在修改触发器记录"
 
-#: plpy_exec.c:839
+#: plpy_exec.c:838
 #, c-format
 msgid "forcibly aborting a subtransaction that has not been exited"
 msgstr "强行终止一个还未退出的子事务"
 
-#: plpy_main.c:101
+#: plpy_main.c:93
 #, c-format
 msgid "Python major version mismatch in session"
 msgstr "在会话中Python的主版本不匹配"
 
-#: plpy_main.c:102
+#: plpy_main.c:94
 #, c-format
 msgid ""
 "This session has previously used Python major version %d, and it is now "
@@ -189,37 +189,37 @@ msgid ""
 msgstr ""
 "这个会话先前已经使用的Python主版本是%d,现在它试图使用的Python主版本是%d "
 
-#: plpy_main.c:104
+#: plpy_main.c:96
 #, c-format
 msgid "Start a new session to use a different Python major version."
 msgstr "启动一个新的会话来使用一个不同的Python的主要版本"
 
-#: plpy_main.c:119
+#: plpy_main.c:111
 #, c-format
 msgid "untrapped error in initialization"
 msgstr "在初始化过程中出现无法捕获的错误"
 
-#: plpy_main.c:142
+#: plpy_main.c:134
 #, c-format
 msgid "could not import \"__main__\" module"
 msgstr "无法导入模块\"__main__\" "
 
-#: plpy_main.c:147
+#: plpy_main.c:139
 #, c-format
 msgid "could not create globals"
 msgstr "无法创建全局变量"
 
-#: plpy_main.c:151
+#: plpy_main.c:143
 #, c-format
 msgid "could not initialize globals"
 msgstr "无法初始化全局变量"
 
-#: plpy_main.c:351
+#: plpy_main.c:347
 #, c-format
 msgid "PL/Python function \"%s\""
 msgstr "PL/Python函数\"%s\""
 
-#: plpy_main.c:358
+#: plpy_main.c:354
 #, c-format
 msgid "PL/Python anonymous code block"
 msgstr "PL/Python匿名代码块"
@@ -259,27 +259,27 @@ msgstr "无法解析plpy.elog中的参数"
 msgid "could not parse error message in plpy.elog"
 msgstr "无法解析在plpy.elog中的错误消息"
 
-#: plpy_procedure.c:199
+#: plpy_procedure.c:200
 #, c-format
 msgid "trigger functions can only be called as triggers"
 msgstr "触发器函数只能以触发器的形式调用"
 
-#: plpy_procedure.c:204 plpy_typeio.c:406
+#: plpy_procedure.c:205 plpy_typeio.c:409
 #, c-format
 msgid "PL/Python functions cannot return type %s"
 msgstr "PL/Python函数不能返回类型%s"
 
-#: plpy_procedure.c:286
+#: plpy_procedure.c:287
 #, c-format
 msgid "PL/Python functions cannot accept type %s"
 msgstr "PL/Python函数不能接受类型%s"
 
-#: plpy_procedure.c:382
+#: plpy_procedure.c:383
 #, c-format
 msgid "could not compile PL/Python function \"%s\""
 msgstr "无法编译PL/Python函数\"%s\""
 
-#: plpy_procedure.c:385
+#: plpy_procedure.c:386
 #, c-format
 msgid "could not compile anonymous PL/Python code block"
 msgstr "无法编译PL/Python中的匿名代码块"
@@ -289,46 +289,41 @@ msgstr "无法编译PL/Python中的匿名代码块"
 msgid "command did not produce a result set"
 msgstr "命令没有产生结果集"
 
-#: plpy_spi.c:56
+#: plpy_spi.c:57
 #, c-format
 msgid "second argument of plpy.prepare must be a sequence"
 msgstr "plpy.prepare的第二个参数必须是一个序列"
 
-#: plpy_spi.c:105
+#: plpy_spi.c:106
 #, c-format
 msgid "plpy.prepare: type name at ordinal position %d is not a string"
 msgstr "plpy.prepare: 在顺序位置%d的类型名称不是string"
 
-#: plpy_spi.c:137
+#: plpy_spi.c:138
 #, c-format
 msgid "plpy.prepare does not support composite types"
 msgstr "plpy.prepare不支持使用组合类型"
 
-#: plpy_spi.c:187
+#: plpy_spi.c:188
 #, c-format
 msgid "plpy.execute expected a query or a plan"
 msgstr "plpy.execute期望一个查询或一个计划"
 
-#: plpy_spi.c:206
+#: plpy_spi.c:207
 #, c-format
 msgid "plpy.execute takes a sequence as its second argument"
 msgstr "plpy.execute将一个序列作为它的第二个参数"
 
-#: plpy_spi.c:330
+#: plpy_spi.c:331
 #, c-format
 msgid "SPI_execute_plan failed: %s"
 msgstr "执行SPI_execute_plan失败: %s"
 
-#: plpy_spi.c:372
+#: plpy_spi.c:373
 #, c-format
 msgid "SPI_execute failed: %s"
 msgstr "SPI_execute执行失败: %s"
 
-#: plpy_spi.c:439
-#, c-format
-msgid "unrecognized error in PLy_spi_execute_fetch_result"
-msgstr "在PLy_spi_execute_fetch_result中出现无法识别的错误"
-
 #: plpy_subxactobject.c:122
 #, c-format
 msgid "this subtransaction has already been entered"
@@ -349,77 +344,94 @@ msgstr "该子事务仍没有进入"
 msgid "there is no subtransaction to exit from"
 msgstr "没有子事务可以退出"
 
-#: plpy_typeio.c:291
+#: plpy_typeio.c:294
 #, c-format
 msgid "could not create new dictionary"
 msgstr "无法创建新的字典"
 
-#: plpy_typeio.c:408
+#: plpy_typeio.c:411
 #, c-format
 msgid "PL/Python does not support conversion to arrays of row types."
 msgstr "PL/Python不支持对行类型数组的转换。"
 
-#: plpy_typeio.c:584
+#: plpy_typeio.c:540
+#, c-format
+#| msgid "could not import \"plpy\" module"
+msgid "could not import a module for Decimal constructor"
+msgstr "无法为十进制构造函数导入模块"
+
+#: plpy_typeio.c:544
+#, c-format
+msgid "no Decimal attribute in module"
+msgstr "模块中没有小数位属性"
+
+#: plpy_typeio.c:550
+#, c-format
+#| msgid "conversion from wchar_t to server encoding failed: %m"
+msgid "conversion from numeric to Decimal failed"
+msgstr "由numeric数值到Decimal小数转换失败"
+
+#: plpy_typeio.c:619
 #, c-format
 msgid "cannot convert multidimensional array to Python list"
 msgstr "无法将多维数组转换为Python列表"
 
-#: plpy_typeio.c:585
+#: plpy_typeio.c:620
 #, c-format
 msgid "PL/Python only supports one-dimensional arrays."
 msgstr "PL/Python只支持使用一维数组"
 
-#: plpy_typeio.c:591
+#: plpy_typeio.c:626
 #, c-format
 msgid "could not create new Python list"
 msgstr "无法创建新的Python列表"
 
-#: plpy_typeio.c:650
+#: plpy_typeio.c:685
 #, c-format
 msgid "could not create bytes representation of Python object"
 msgstr "无法创建Python对象的字节表达式"
 
-#: plpy_typeio.c:742
+#: plpy_typeio.c:777
 #, c-format
 msgid "could not create string representation of Python object"
 msgstr "无法创建Python对象的字符串表达式"
 
-#: plpy_typeio.c:753
+#: plpy_typeio.c:788
 #, c-format
 msgid ""
 "could not convert Python object into cstring: Python string representation "
 "appears to contain null bytes"
 msgstr "无法将Python对象转换为cstring: Python字符串表达式可能包含空字节"
 
-#: plpy_typeio.c:787
+#: plpy_typeio.c:823
 #, c-format
 msgid ""
 "return value of function with array return type is not a Python sequence"
 msgstr "带有数组返回类型的函数返回值不是一个Python序列"
 
-#: plpy_typeio.c:886
+#: plpy_typeio.c:930
 #, c-format
 msgid "key \"%s\" not found in mapping"
 msgstr "在映射中没有找到键\"%s\""
 
-#: plpy_typeio.c:887
+#: plpy_typeio.c:931
 #, c-format
 msgid ""
 "To return null in a column, add the value None to the mapping with the key "
 "named after the column."
 msgstr "为了在一列中返回空值, 需要在列的后面对带有已命名键的映射添加值None"
 
-#: plpy_typeio.c:935
+#: plpy_typeio.c:979
 #, c-format
 msgid "length of returned sequence did not match number of columns in row"
 msgstr "所返回序列的长度与在记录中列的数量不匹配"
 
-#: plpy_typeio.c:1043
+#: plpy_typeio.c:1087
 #, c-format
 msgid "attribute \"%s\" does not exist in Python object"
 msgstr "在Python对象中不存在属性\"%s\""
 
-#: plpy_typeio.c:1044
+#: plpy_typeio.c:1088
 #, c-format
 msgid ""
 "To return null in a column, let the returned object have an attribute named "
@@ -427,58 +439,61 @@ msgid ""
 msgstr ""
 "为了在一列中返回空值, 需要让返回的对象在带有值None的列后面的带有已命名属性"
 
-#: plpy_util.c:70
+#: plpy_util.c:72
 #, c-format
 msgid "could not convert Python Unicode object to bytes"
 msgstr "无法将Python中以Unicode编码的对象转换为PostgreSQL服务器字节码"
 
-#: plpy_util.c:75
+#: plpy_util.c:78
 #, c-format
 msgid "could not extract bytes from encoded string"
 msgstr "无法从已编码字符串里提取相应字节码值"
 
-#~ msgid "PL/Python function \"%s\" failed"
-#~ msgstr "PL/Python函数 \"%s\" 执行失败"
+#~ msgid "PyCObject_AsVoidPtr() failed"
+#~ msgstr "执行PyCObject_AsVoidPtr()失败"
 
-#~ msgid ""
-#~ "could not create string representation of Python object in PL/Python "
-#~ "function \"%s\" while creating return value"
-#~ msgstr ""
-#~ "在创建返回值时, 无法计算在PL/Python函数\"%s\"中Python对象的字符串表达式"
+#~ msgid "PyCObject_FromVoidPtr() failed"
+#~ msgstr "执行PyCObject_FromVoidPtr()失败"
 
-#~ msgid ""
-#~ "could not compute string representation of Python object in PL/Python "
-#~ "function \"%s\" while modifying trigger row"
-#~ msgstr ""
-#~ "在修改触发器记录的同时无法计算在PL/Python函数\"%s\"中Python对象的字符串表"
-#~ "达式"
+#~ msgid "transaction aborted"
+#~ msgstr "事务终止"
 
-#~ msgid "out of memory"
-#~ msgstr "内存用尽"
+#~ msgid "invalid arguments for plpy.prepare"
+#~ msgstr " plpy.prepare的无效参数"
 
-#~ msgid "PL/Python: %s"
-#~ msgstr "PL/Python: %s"
+#~ msgid "unrecognized error in PLy_spi_prepare"
+#~ msgstr "在PLy_spi_prepare中无法识别的错误"
 
-#~ msgid "could not create procedure cache"
-#~ msgstr "无法创建存储过程缓存"
+#~ msgid "unrecognized error in PLy_spi_execute_plan"
+#~ msgstr "在PLy_spi_execute_plan中出现无法识别的错误"
 
 #~ msgid "unrecognized error in PLy_spi_execute_query"
 #~ msgstr "在PLy_spi_execute_query中出现无法识别的错误"
 
-#~ msgid "unrecognized error in PLy_spi_execute_plan"
-#~ msgstr "在PLy_spi_execute_plan中出现无法识别的错误"
+#~ msgid "could not create procedure cache"
+#~ msgstr "无法创建存储过程缓存"
 
-#~ msgid "unrecognized error in PLy_spi_prepare"
-#~ msgstr "在PLy_spi_prepare中无法识别的错误"
+#~ msgid "PL/Python: %s"
+#~ msgstr "PL/Python: %s"
 
-#~ msgid "invalid arguments for plpy.prepare"
-#~ msgstr " plpy.prepare的无效参数"
+#~ msgid "out of memory"
+#~ msgstr "内存用尽"
 
-#~ msgid "transaction aborted"
-#~ msgstr "事务终止"
+#~ msgid ""
+#~ "could not compute string representation of Python object in PL/Python "
+#~ "function \"%s\" while modifying trigger row"
+#~ msgstr ""
+#~ "在修改触发器记录的同时无法计算在PL/Python函数\"%s\"中Python对象的字符串表"
+#~ "达式"
 
-#~ msgid "PyCObject_FromVoidPtr() failed"
-#~ msgstr "执行PyCObject_FromVoidPtr()失败"
+#~ msgid ""
+#~ "could not create string representation of Python object in PL/Python "
+#~ "function \"%s\" while creating return value"
+#~ msgstr ""
+#~ "在创建返回值时, 无法计算在PL/Python函数\"%s\"中Python对象的字符串表达式"
 
-#~ msgid "PyCObject_AsVoidPtr() failed"
-#~ msgstr "执行PyCObject_AsVoidPtr()失败"
+#~ msgid "PL/Python function \"%s\" failed"
+#~ msgstr "PL/Python函数 \"%s\" 执行失败"
+
+#~ msgid "unrecognized error in PLy_spi_execute_fetch_result"
+#~ msgstr "在PLy_spi_execute_fetch_result中出现无法识别的错误"
index 3f531c35169fcdee6a8112955ca41d21bdd09db4..69485c3924ec0ef5f57e2f28c41c2ac228365688 100644 (file)
@@ -5,8 +5,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: postgres (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2013-01-29 13:41+0000\n"
-"PO-Revision-Date: 2013-06-24 14:11-0400\n"
+"POT-Creation-Date: 2014-11-22 21:11+0000\n"
+"PO-Revision-Date: 2014-12-06 13:18+0800\n"
 "Last-Translator: Xiong He <iihero@qq.com>\n"
 "Language-Team: Chinese (Simplified)\n"
 "Language: zh_CN\n"
@@ -16,118 +16,203 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Poedit 1.5.4\n"
 
-#: ../port/chklocale.c:328 ../port/chklocale.c:334
+#: ../common/exec.c:127 ../common/exec.c:241 ../common/exec.c:284
 #, c-format
-msgid "could not determine encoding for locale \"%s\": codeset is \"%s\""
-msgstr "无法确定语言环境\"%s\"的编码: 代码集是\"%s\""
+msgid "could not identify current directory: %s"
+msgstr "无法确认当前目录: %s"
 
-#: ../port/chklocale.c:336
+# command.c:122
+#: ../common/exec.c:146
 #, c-format
-msgid "Please report this to <pgsql-bugs@postgresql.org>."
-msgstr "请向 <pgsql-bugs@postgresql.org>发送报告."
+msgid "invalid binary \"%s\""
+msgstr "无效的二进制码 \"%s\""
 
-#: ../port/dirmod.c:79 ../port/dirmod.c:92 ../port/dirmod.c:109
+# command.c:1103
+#: ../common/exec.c:195
 #, c-format
-msgid "out of memory\n"
-msgstr "内存溢出\n"
+msgid "could not read binary \"%s\""
+msgstr "无法读取二进制码 \"%s\""
 
-#: ../port/dirmod.c:291
+#: ../common/exec.c:202
 #, c-format
-msgid "could not set junction for \"%s\": %s"
-msgstr "æ\97 æ³\95为\"%s\"设置è¿\9eæ\8e¥ç\82¹: %s"
+msgid "could not find a \"%s\" to execute"
+msgstr "æ\9cªè\83½æ\89¾å\88°ä¸\80个 \"%s\" æ\9d¥æ\89§è¡\8c"
 
-#: ../port/dirmod.c:294
+#: ../common/exec.c:257 ../common/exec.c:293
 #, c-format
-msgid "could not set junction for \"%s\": %s\n"
-msgstr "无法为\"%s\"设置连接点: %s\n"
+msgid "could not change directory to \"%s\": %s"
+msgstr "无法跳转到目录 \"%s\" 中: %s"
 
-#: ../port/dirmod.c:366
+#: ../common/exec.c:272
 #, c-format
-msgid "could not get junction for \"%s\": %s"
-msgstr "无法得到联接 \"%s\": %s"
+msgid "could not read symbolic link \"%s\""
+msgstr "无法读取符号链接 \"%s\""
 
-#: ../port/dirmod.c:369
+#: ../common/exec.c:523
 #, c-format
-msgid "could not get junction for \"%s\": %s\n"
-msgstr "无法得到联接 \"%s\": %s\n"
+msgid "pclose failed: %s"
+msgstr "pclose调用失败: %s"
+
+#: ../common/fe_memutils.c:33 ../common/fe_memutils.c:60
+#: ../common/fe_memutils.c:83 ../common/psprintf.c:181 ../port/path.c:598
+#: ../port/path.c:636 ../port/path.c:653
+#, c-format
+msgid "out of memory\n"
+msgstr "内存溢出\n"
 
-#: ../port/dirmod.c:451
+# common.c:78
+#: ../common/fe_memutils.c:77
+#, c-format
+msgid "cannot duplicate null pointer (internal error)\n"
+msgstr "无法复制空指针 (内部错误)\n"
+
+#: ../common/pgfnames.c:45
 #, c-format
 msgid "could not open directory \"%s\": %s\n"
 msgstr "无法打开目录 \"%s\": %s\n"
 
-#: ../port/dirmod.c:488
+#: ../common/pgfnames.c:72
 #, c-format
 msgid "could not read directory \"%s\": %s\n"
 msgstr "无法读取目录 \"%s\": %s\n"
 
-#: ../port/dirmod.c:571
+#: ../common/pgfnames.c:84
+#, c-format
+#| msgid "could not open directory \"%s\": %s\n"
+msgid "could not close directory \"%s\": %s\n"
+msgstr "无法关闭目录 \"%s\": %s\n"
+
+#: ../common/psprintf.c:179 ../port/path.c:596 ../port/path.c:634
+#: ../port/path.c:651 access/transam/xlog.c:6123 lib/stringinfo.c:258
+#: libpq/auth.c:823 libpq/auth.c:1179 libpq/auth.c:1247 libpq/auth.c:1647
+#: postmaster/bgworker.c:267 postmaster/bgworker.c:783
+#: postmaster/postmaster.c:2173 postmaster/postmaster.c:2204
+#: postmaster/postmaster.c:3740 postmaster/postmaster.c:4441
+#: postmaster/postmaster.c:4526 postmaster/postmaster.c:5218
+#: postmaster/postmaster.c:5450 storage/buffer/buf_init.c:154
+#: storage/buffer/localbuf.c:396 storage/file/fd.c:458 storage/file/fd.c:855
+#: storage/file/fd.c:973 storage/file/fd.c:1586 storage/ipc/procarray.c:909
+#: storage/ipc/procarray.c:1395 storage/ipc/procarray.c:1402
+#: storage/ipc/procarray.c:1751 storage/ipc/procarray.c:2335
+#: utils/adt/formatting.c:1519 utils/adt/formatting.c:1639
+#: utils/adt/formatting.c:1760 utils/adt/regexp.c:219 utils/adt/varlena.c:3653
+#: utils/adt/varlena.c:3674 utils/fmgr/dfmgr.c:224 utils/hash/dynahash.c:379
+#: utils/hash/dynahash.c:456 utils/hash/dynahash.c:970 utils/mb/mbutils.c:376
+#: utils/mb/mbutils.c:709 utils/misc/guc.c:3571 utils/misc/guc.c:3587
+#: utils/misc/guc.c:3600 utils/misc/tzparser.c:470 utils/mmgr/aset.c:499
+#: utils/mmgr/aset.c:678 utils/mmgr/aset.c:872 utils/mmgr/aset.c:1114
+#, c-format
+msgid "out of memory"
+msgstr "内存用尽"
+
+#: ../common/relpath.c:59
+#, c-format
+msgid "invalid fork name"
+msgstr "无效分支名称"
+
+#: ../common/relpath.c:60
+#, c-format
+#| msgid "Valid fork names are \"main\", \"fsm\", and \"vm\"."
+msgid "Valid fork names are \"main\", \"fsm\", \"vm\", and \"init\"."
+msgstr "有效的分支名称是 \"main\", \"fsm\", \"vm\"和\"init\"."
+
+#: ../common/rmtree.c:77
 #, c-format
 msgid "could not stat file or directory \"%s\": %s\n"
 msgstr "无法获取文件或目录\"%s\"的状态: %s\n"
 
-#: ../port/dirmod.c:598 ../port/dirmod.c:615
+#: ../common/rmtree.c:104 ../common/rmtree.c:121
 #, c-format
 msgid "could not remove file or directory \"%s\": %s\n"
 msgstr "无法删除目录 \"%s\": %s\n"
 
-#: ../port/exec.c:125 ../port/exec.c:239 ../port/exec.c:282
-#, c-format
-msgid "could not identify current directory: %s"
-msgstr "无法确认当前目录: %s"
-
-# command.c:122
-#: ../port/exec.c:144
+#: ../common/username.c:45
 #, c-format
-msgid "invalid binary \"%s\""
-msgstr "无效的二进制码 \"%s\""
+#| msgid "could not load private key file \"%s\": %s"
+msgid "could not look up effective user ID %ld: %s"
+msgstr "无法找到有效的用户ID %ld: %s"
 
-# command.c:1103
-#: ../port/exec.c:193
-#, c-format
-msgid "could not read binary \"%s\""
-msgstr "无法读取二进制码 \"%s\""
+#: ../common/username.c:47 libpq/auth.c:1594
+#| msgid "server \"%s\" does not exist"
+msgid "user does not exist"
+msgstr "用户不存在"
 
-#: ../port/exec.c:200
+#: ../common/username.c:61
 #, c-format
-msgid "could not find a \"%s\" to execute"
-msgstr "未能找到一个 \"%s\" 来执行"
+msgid "user name lookup failure: %s"
+msgstr "用户名: %s查找失败"
 
-#: ../port/exec.c:255 ../port/exec.c:291
+#: ../common/wait_error.c:47
 #, c-format
-msgid "could not change directory to \"%s\""
-msgstr "无法进入目录 \"%s\""
+msgid "command not executable"
+msgstr "命令无法执行"
 
-#: ../port/exec.c:270
+#: ../common/wait_error.c:51
 #, c-format
-msgid "could not read symbolic link \"%s\""
-msgstr "无法读取符号链接 \"%s\""
+msgid "command not found"
+msgstr "命令没有找到"
 
-#: ../port/exec.c:526
+#: ../common/wait_error.c:56
 #, c-format
 msgid "child process exited with exit code %d"
 msgstr "子进程已退出, 退出码为 %d"
 
-#: ../port/exec.c:530
+#: ../common/wait_error.c:63
 #, c-format
 msgid "child process was terminated by exception 0x%X"
 msgstr "子进程被例外(exception) 0x%X 终止"
 
-#: ../port/exec.c:539
+#: ../common/wait_error.c:73
 #, c-format
 msgid "child process was terminated by signal %s"
 msgstr "子进程被信号 %s 终止"
 
-#: ../port/exec.c:542
+#: ../common/wait_error.c:77
 #, c-format
 msgid "child process was terminated by signal %d"
 msgstr "子进程被信号 %d 终止"
 
-#: ../port/exec.c:546
+#: ../common/wait_error.c:82
 #, c-format
 msgid "child process exited with unrecognized status %d"
 msgstr "子进程已退出, 未知状态 %d"
 
+#: ../port/chklocale.c:259
+#, c-format
+#| msgid "could not determine encoding for locale \"%s\": codeset is \"%s\""
+msgid "could not determine encoding for codeset \"%s\""
+msgstr "无法确定字符集的编码\"%s\""
+
+#: ../port/chklocale.c:260 ../port/chklocale.c:389
+#, c-format
+msgid "Please report this to <pgsql-bugs@postgresql.org>."
+msgstr "请向 <pgsql-bugs@postgresql.org>发送报告."
+
+#: ../port/chklocale.c:381 ../port/chklocale.c:387
+#, c-format
+msgid "could not determine encoding for locale \"%s\": codeset is \"%s\""
+msgstr "无法确定语言环境\"%s\"的编码: 代码集是\"%s\""
+
+#: ../port/dirmod.c:216
+#, c-format
+msgid "could not set junction for \"%s\": %s"
+msgstr "无法为\"%s\"设置连接点: %s"
+
+#: ../port/dirmod.c:219
+#, c-format
+msgid "could not set junction for \"%s\": %s\n"
+msgstr "无法为\"%s\"设置连接点: %s\n"
+
+#: ../port/dirmod.c:291
+#, c-format
+msgid "could not get junction for \"%s\": %s"
+msgstr "无法得到联接 \"%s\": %s"
+
+#: ../port/dirmod.c:294
+#, c-format
+msgid "could not get junction for \"%s\": %s\n"
+msgstr "无法得到联接 \"%s\": %s\n"
+
 # fe-lobj.c:400 fe-lobj.c:483
 #: ../port/open.c:112
 #, c-format
@@ -154,22 +239,28 @@ msgid ""
 "database system."
 msgstr "您可能有反病毒,备份或类似的软件与数据库系统冲突"
 
+#: ../port/path.c:620
+#, c-format
+#| msgid "could not identify current directory: %s"
+msgid "could not get current working directory: %s\n"
+msgstr "无法得到当前工作目录: %s\n"
+
 #: ../port/strerror.c:25
 #, c-format
 msgid "unrecognized error %d"
 msgstr "未知的 SSL 错误码: %d"
 
-#: ../port/win32error.c:188
+#: ../port/win32error.c:189
 #, c-format
 msgid "mapped win32 error code %lu to %d"
 msgstr "将win32错误代码%2$d映射为%1$lu"
 
-#: ../port/win32error.c:199
+#: ../port/win32error.c:201
 #, c-format
 msgid "unrecognized win32 error code: %lu"
 msgstr "未知的 win32 错误码: %lu"
 
-#: access/common/heaptuple.c:645 access/common/heaptuple.c:1399
+#: access/common/heaptuple.c:679 access/common/heaptuple.c:1419
 #, c-format
 msgid "number of columns (%d) exceeds limit (%d)"
 msgstr "字段个数 (%d) 超出限制 (%d)"
@@ -179,163 +270,161 @@ msgstr "字段个数 (%d) 超出限制 (%d)"
 msgid "number of index columns (%d) exceeds limit (%d)"
 msgstr "索引字段个数 (%d) 超出限制 (%d)"
 
-#: access/common/indextuple.c:168 access/spgist/spgutils.c:605
+#: access/common/indextuple.c:173 access/spgist/spgutils.c:605
 #, c-format
-msgid "index row requires %lu bytes, maximum size is %lu"
-msgstr "索引行需要 %lu 字节, 最大值为 %lu"
+#| msgid "index row requires %lu bytes, maximum size is %lu"
+msgid "index row requires %zu bytes, maximum size is %zu"
+msgstr "索引行需要 %zu 字节, 最大值为 %zu"
 
-#: access/common/printtup.c:278 tcop/fastpath.c:180 tcop/fastpath.c:567
-#: tcop/postgres.c:1671
+#: access/common/printtup.c:294 tcop/fastpath.c:182 tcop/fastpath.c:571
+#: tcop/postgres.c:1672
 #, c-format
 msgid "unsupported format code: %d"
 msgstr "不支持的格式代码: %d"
 
-#: access/common/reloptions.c:351
+#: access/common/reloptions.c:396
 #, c-format
 msgid "user-defined relation parameter types limit exceeded"
 msgstr "用户定义的关系参数类型超过限制"
 
-#: access/common/reloptions.c:635
+#: access/common/reloptions.c:680
 #, c-format
 msgid "RESET must not include values for parameters"
 msgstr "RESET中不能包含参数的值"
 
-#: access/common/reloptions.c:668
+#: access/common/reloptions.c:713
 #, c-format
 msgid "unrecognized parameter namespace \"%s\""
 msgstr "未识别的参数命名空间 \"%s\""
 
-#: access/common/reloptions.c:912
+#: access/common/reloptions.c:959 parser/parse_clause.c:268
 #, c-format
 msgid "unrecognized parameter \"%s\""
 msgstr "未识别的参数 \"%s\""
 
-#: access/common/reloptions.c:937
+#: access/common/reloptions.c:984
 #, c-format
 msgid "parameter \"%s\" specified more than once"
 msgstr "表名 \"%s\" 被指定多次"
 
-#: access/common/reloptions.c:952
+#: access/common/reloptions.c:999
 #, c-format
 msgid "invalid value for boolean option \"%s\": %s"
 msgstr "布尔选项\"%s\"的值无效:%s"
 
-#: access/common/reloptions.c:963
+#: access/common/reloptions.c:1010
 #, c-format
 msgid "invalid value for integer option \"%s\": %s"
 msgstr "参数 \"%s\" 的值无效: \"%s\""
 
-#: access/common/reloptions.c:968 access/common/reloptions.c:986
+#: access/common/reloptions.c:1015 access/common/reloptions.c:1033
 #, c-format
 msgid "value %s out of bounds for option \"%s\""
 msgstr "值 %s超出了选项\"%s\"的范围"
 
-#: access/common/reloptions.c:970
+#: access/common/reloptions.c:1017
 #, c-format
 msgid "Valid values are between \"%d\" and \"%d\"."
 msgstr "有效值在\"%d\"和\"%d\"之间."
 
-#: access/common/reloptions.c:981
+#: access/common/reloptions.c:1028
 #, c-format
 msgid "invalid value for floating point option \"%s\": %s"
 msgstr "浮点数类型选项\"%s\"的值无效:%s"
 
-#: access/common/reloptions.c:988
+#: access/common/reloptions.c:1035
 #, c-format
 msgid "Valid values are between \"%f\" and \"%f\"."
 msgstr "有效值在 \"%f\"和 \"%f\"之间"
 
-#: access/common/tupconvert.c:107
+#: access/common/tupconvert.c:108
 #, c-format
 msgid "Returned type %s does not match expected type %s in column %d."
 msgstr "在第%3$d列中返回类型%1$s与期望的类型%2$s不匹配."
 
-#: access/common/tupconvert.c:135
+#: access/common/tupconvert.c:136
 #, c-format
 msgid ""
 "Number of returned columns (%d) does not match expected column count (%d)."
 msgstr "所返回列的数量(%d)与所期望列的数量(%d)不匹配."
 
-#: access/common/tupconvert.c:240
+#: access/common/tupconvert.c:241
 #, c-format
 msgid ""
 "Attribute \"%s\" of type %s does not match corresponding attribute of type "
 "%s."
 msgstr "类型%2$s的属性\"%1$s\"与对应类型%3$s的属性不匹配。"
 
-#: access/common/tupconvert.c:252
+#: access/common/tupconvert.c:253
 #, c-format
 msgid "Attribute \"%s\" of type %s does not exist in type %s."
 msgstr "类型%2$s的属性\"%1$s\"在类型%3$s中不存在."
 
-#: access/common/tupdesc.c:584 parser/parse_relation.c:1183
+#: access/common/tupdesc.c:635 parser/parse_relation.c:1339
 #, c-format
 msgid "column \"%s\" cannot be declared SETOF"
 msgstr "字段 \"%s\" 不能被声明为 SETOF"
 
-#: access/gin/ginentrypage.c:100 access/nbtree/nbtinsert.c:530
-#: access/nbtree/nbtsort.c:482 access/spgist/spgdoinsert.c:1890
+#: access/gin/ginentrypage.c:108 access/gist/gist.c:1281
+#: access/nbtree/nbtinsert.c:545 access/nbtree/nbtsort.c:485
+#: access/spgist/spgdoinsert.c:1880
 #, c-format
-msgid "index row size %lu exceeds maximum %lu for index \"%s\""
-msgstr "索引行的大小 %1$lu 超过了索引\"%3$s\"所允许的最大值%2$lu"
+#| msgid "index row size %lu exceeds maximum %lu for index \"%s\""
+msgid "index row size %zu exceeds maximum %zu for index \"%s\""
+msgstr "索引行的大小 %1$zu 超过了索引\"%3$s\"所允许的最大值%2$zu"
 
-#: access/gin/ginscan.c:400
+#: access/gin/ginscan.c:402
 #, c-format
 msgid "old GIN indexes do not support whole-index scans nor searches for nulls"
 msgstr "老的GIN索引不支持完整索引 (whole-index) 扫描,也不支持null值搜索"
 
-#: access/gin/ginscan.c:401
+#: access/gin/ginscan.c:403
 #, c-format
 msgid "To fix this, do REINDEX INDEX \"%s\"."
 msgstr "要解决此问题, 可执行REINDEX INDEX \"%s\"."
 
-#: access/gist/gist.c:76 access/gist/gistbuild.c:169
-#, c-format
-msgid "unlogged GiST indexes are not supported"
-msgstr "不支持不带事务日志的GiST索引"
-
-#: access/gist/gist.c:600 access/gist/gistvacuum.c:267
+#: access/gist/gist.c:624 access/gist/gistvacuum.c:266
 #, c-format
 msgid "index \"%s\" contains an inner tuple marked as invalid"
 msgstr "索引\"%s\"包含无效的内部元组"
 
-#: access/gist/gist.c:602 access/gist/gistvacuum.c:269
+#: access/gist/gist.c:626 access/gist/gistvacuum.c:268
 #, c-format
 msgid ""
 "This is caused by an incomplete page split at crash recovery before "
 "upgrading to PostgreSQL 9.1."
 msgstr "这是在升级到PostgreSQL 9.1之前执行灾难恢复时不完全的页分裂引起的."
 
-#: access/gist/gist.c:603 access/gist/gistutil.c:640
-#: access/gist/gistutil.c:651 access/gist/gistvacuum.c:270
+#: access/gist/gist.c:627 access/gist/gistutil.c:693
+#: access/gist/gistutil.c:704 access/gist/gistvacuum.c:269
 #: access/hash/hashutil.c:172 access/hash/hashutil.c:183
 #: access/hash/hashutil.c:195 access/hash/hashutil.c:216
-#: access/nbtree/nbtpage.c:434 access/nbtree/nbtpage.c:445
+#: access/nbtree/nbtpage.c:509 access/nbtree/nbtpage.c:520
 #, c-format
 msgid "Please REINDEX it."
 msgstr "请重建索引 (REINDEX)."
 
-#: access/gist/gistbuild.c:265
+#: access/gist/gistbuild.c:254
 #, c-format
 msgid "invalid value for \"buffering\" option"
 msgstr "\"buffering\"选项值无效"
 
-#: access/gist/gistbuild.c:266
+#: access/gist/gistbuild.c:255
 #, c-format
 msgid "Valid values are \"on\", \"off\", and \"auto\"."
 msgstr "有效值为\"on\", \"off\", 或 \"auto\"之一."
 
-#: access/gist/gistbuildbuffers.c:780 utils/sort/logtape.c:213
+#: access/gist/gistbuildbuffers.c:780 utils/sort/logtape.c:212
 #, c-format
 msgid "could not write block %ld of temporary file: %m"
 msgstr "无法写入临时文件块 %ld: %m"
 
-#: access/gist/gistsplit.c:375
+#: access/gist/gistsplit.c:446
 #, c-format
 msgid "picksplit method for column %d of index \"%s\" failed"
 msgstr "为索引\"%2$s\"的第%1$d列执行picksplit方法失败"
 
-#: access/gist/gistsplit.c:377
+#: access/gist/gistsplit.c:448
 #, c-format
 msgid ""
 "The index is not optimal. To optimize it, contact a developer, or try to use "
@@ -344,25 +433,26 @@ msgstr ""
 "索引没有优化.为了优化索引,请联系开发人员,或者在CREATE INDEX命令中尝试在这一列"
 "上创建第二个索引."
 
-#: access/gist/gistutil.c:637 access/hash/hashutil.c:169
-#: access/nbtree/nbtpage.c:431
+#: access/gist/gistutil.c:690 access/hash/hashutil.c:169
+#: access/nbtree/nbtpage.c:506
 #, c-format
 msgid "index \"%s\" contains unexpected zero page at block %u"
 msgstr "索引\"%s\"在块%u上包含未期望的零页"
 
-#: access/gist/gistutil.c:648 access/hash/hashutil.c:180
-#: access/hash/hashutil.c:192 access/nbtree/nbtpage.c:442
+#: access/gist/gistutil.c:701 access/hash/hashutil.c:180
+#: access/hash/hashutil.c:192 access/nbtree/nbtpage.c:517
 #, c-format
 msgid "index \"%s\" contains corrupted page at block %u"
 msgstr "索引\"%s\"在块%u上包含已损坏的页"
 
-#: access/hash/hashinsert.c:72
+#: access/hash/hashinsert.c:68
 #, c-format
-msgid "index row size %lu exceeds hash maximum %lu"
-msgstr "索引列大小 %lu 超过散列最大值 %lu"
+#| msgid "index row size %lu exceeds hash maximum %lu"
+msgid "index row size %zu exceeds hash maximum %zu"
+msgstr "索引行大小 %zu 超过散列最大值 %zu"
 
-#: access/hash/hashinsert.c:75 access/spgist/spgdoinsert.c:1894
-#: access/spgist/spgutils.c:667
+#: access/hash/hashinsert.c:70 access/spgist/spgdoinsert.c:1884
+#: access/spgist/spgutils.c:666
 #, c-format
 msgid "Values larger than a buffer page cannot be indexed."
 msgstr "大于一个缓冲页的值无法用于创建索引."
@@ -372,7 +462,7 @@ msgstr "大于一个缓冲页的值无法用于创建索引."
 msgid "out of overflow pages in hash index \"%s\""
 msgstr "散列索引 \"%s\" 中页溢出"
 
-#: access/hash/hashsearch.c:151
+#: access/hash/hashsearch.c:153
 #, c-format
 msgid "hash indexes do not support whole-index scans"
 msgstr "散列索引不支持完整索引 (whole-index) 扫描"
@@ -387,58 +477,141 @@ msgstr "索引 \"%s\" 不是一个散列索引"
 msgid "index \"%s\" has wrong hash version"
 msgstr "索引 \"%s\" 有错误的散列版本"
 
-#: access/heap/heapam.c:1085 access/heap/heapam.c:1113
-#: access/heap/heapam.c:1145 catalog/aclchk.c:1728
+#: access/heap/heapam.c:1199 access/heap/heapam.c:1227
+#: access/heap/heapam.c:1259 catalog/aclchk.c:1742
 #, c-format
 msgid "\"%s\" is an index"
 msgstr "\"%s\" 是一个索引"
 
-#: access/heap/heapam.c:1090 access/heap/heapam.c:1118
-#: access/heap/heapam.c:1150 catalog/aclchk.c:1735 commands/tablecmds.c:8140
-#: commands/tablecmds.c:10386
+#: access/heap/heapam.c:1204 access/heap/heapam.c:1232
+#: access/heap/heapam.c:1264 catalog/aclchk.c:1749 commands/tablecmds.c:8495
+#: commands/tablecmds.c:11279
 #, c-format
 msgid "\"%s\" is a composite type"
 msgstr "\"%s\" 为混和类型"
 
-#: access/heap/heapam.c:3558 access/heap/heapam.c:3589
-#: access/heap/heapam.c:3624
+#: access/heap/heapam.c:4223 access/heap/heapam.c:4436
+#: access/heap/heapam.c:4493 executor/execMain.c:1992
 #, c-format
 msgid "could not obtain lock on row in relation \"%s\""
 msgstr "无法在关系 \"%s\"中的记录上获得锁"
 
-#: access/heap/hio.c:239 access/heap/rewriteheap.c:592
+#: access/heap/hio.c:240 access/heap/rewriteheap.c:666
+#, c-format
+#| msgid "row is too big: size %lu, maximum size %lu"
+msgid "row is too big: size %zu, maximum size %zu"
+msgstr "行太大: 尺寸 %zu, 最大值 %zu"
+
+#: access/heap/rewriteheap.c:932
+#, c-format
+#| msgid "Could not write to file \"%s\" at offset %u: %m."
+msgid "could not write to file \"%s\", wrote %d of %d: %m"
+msgstr "无法往文件 \"%s\" 偏移量 %d, %d 写入: %m"
+
+#: access/heap/rewriteheap.c:973 access/heap/rewriteheap.c:1185
+#: access/heap/rewriteheap.c:1282 access/transam/timeline.c:407
+#: access/transam/timeline.c:497 access/transam/xlog.c:3185
+#: access/transam/xlog.c:3315 replication/logical/snapbuild.c:1592
+#: replication/slot.c:1042 replication/slot.c:1131 storage/file/fd.c:436
+#: storage/smgr/md.c:966 storage/smgr/md.c:1197 storage/smgr/md.c:1370
+#: utils/misc/guc.c:6599
+#, c-format
+msgid "could not fsync file \"%s\": %m"
+msgstr "无法 fsync 文件 \"%s\": %m"
+
+#: access/heap/rewriteheap.c:1028 access/heap/rewriteheap.c:1148
+#: access/transam/timeline.c:315 access/transam/timeline.c:475
+#: access/transam/xlog.c:3141 access/transam/xlog.c:3276
+#: access/transam/xlog.c:9915 access/transam/xlog.c:10230
+#: postmaster/postmaster.c:4216 replication/slot.c:999
+#: storage/file/copydir.c:162 storage/smgr/md.c:304 utils/time/snapmgr.c:976
+#, c-format
+msgid "could not create file \"%s\": %m"
+msgstr "无法创建文件 \"%s\": %m"
+
+#: access/heap/rewriteheap.c:1157
+#, c-format
+#| msgid "could not truncate file \"%s\" to %u blocks: %m"
+msgid "could not truncate file \"%s\" to %u: %m"
+msgstr "无法将文件\"%s\"截断为%u:%m"
+
+#: access/heap/rewriteheap.c:1164 replication/walsender.c:465
+#: storage/smgr/md.c:1782
+#, c-format
+msgid "could not seek to end of file \"%s\": %m"
+msgstr "无法查找到文件\"%s\"的末端: %m"
+
+#: access/heap/rewriteheap.c:1175 access/transam/timeline.c:367
+#: access/transam/timeline.c:401 access/transam/timeline.c:491
+#: access/transam/xlog.c:3176 access/transam/xlog.c:3308
+#: postmaster/postmaster.c:4226 postmaster/postmaster.c:4236
+#: replication/logical/snapbuild.c:1576 replication/slot.c:1028
+#: storage/file/copydir.c:187 utils/init/miscinit.c:1057
+#: utils/init/miscinit.c:1066 utils/init/miscinit.c:1073 utils/misc/guc.c:6567
+#: utils/misc/guc.c:6592 utils/misc/guc.c:8290 utils/misc/guc.c:8304
+#: utils/time/snapmgr.c:981 utils/time/snapmgr.c:988
+#, c-format
+msgid "could not write to file \"%s\": %m"
+msgstr "无法写入文件 \"%s\": %m"
+
+#: access/heap/rewriteheap.c:1258 access/transam/xlog.c:10099
+#: access/transam/xlogarchive.c:114 access/transam/xlogarchive.c:467
+#: replication/logical/reorderbuffer.c:2352
+#: replication/logical/reorderbuffer.c:2409
+#: replication/logical/snapbuild.c:1520 replication/logical/snapbuild.c:1895
+#: replication/slot.c:1105 storage/ipc/dsm.c:326 storage/smgr/md.c:404
+#: storage/smgr/md.c:453 storage/smgr/md.c:1317
+#, c-format
+msgid "could not remove file \"%s\": %m"
+msgstr "无法删除文件 \"%s\": %m"
+
+#: access/heap/rewriteheap.c:1272 access/transam/timeline.c:111
+#: access/transam/timeline.c:236 access/transam/timeline.c:334
+#: access/transam/xlog.c:3117 access/transam/xlog.c:3224
+#: access/transam/xlog.c:3261 access/transam/xlog.c:3536
+#: access/transam/xlog.c:3614 replication/basebackup.c:458
+#: replication/basebackup.c:1167 replication/logical/logicalfuncs.c:152
+#: replication/logical/reorderbuffer.c:1965
+#: replication/logical/reorderbuffer.c:2172
+#: replication/logical/reorderbuffer.c:2801
+#: replication/logical/snapbuild.c:1569 replication/logical/snapbuild.c:1653
+#: replication/slot.c:1120 replication/walsender.c:458
+#: replication/walsender.c:2094 storage/file/copydir.c:155
+#: storage/file/fd.c:422 storage/smgr/md.c:586 storage/smgr/md.c:844
+#: utils/error/elog.c:1797 utils/init/miscinit.c:992
+#: utils/init/miscinit.c:1121 utils/misc/guc.c:6795 utils/misc/guc.c:6813
 #, c-format
-msgid "row is too big: size %lu, maximum size %lu"
-msgstr "行太大: 尺寸 %lu, 最大值 %lu"
+msgid "could not open file \"%s\": %m"
+msgstr "无法打开文件 \"%s\": %m"
 
-#: access/index/indexam.c:162 catalog/objectaddress.c:641
-#: commands/indexcmds.c:1745 commands/tablecmds.c:222
-#: commands/tablecmds.c:10377
+#: access/index/indexam.c:172 catalog/objectaddress.c:855
+#: commands/indexcmds.c:1725 commands/tablecmds.c:232
+#: commands/tablecmds.c:11270
 #, c-format
 msgid "\"%s\" is not an index"
 msgstr "\"%s\" 不是一个索引"
 
-#: access/nbtree/nbtinsert.c:392
+#: access/nbtree/nbtinsert.c:396
 #, c-format
 msgid "duplicate key value violates unique constraint \"%s\""
 msgstr "重复键违反唯一约束\"%s\""
 
-#: access/nbtree/nbtinsert.c:394
+#: access/nbtree/nbtinsert.c:398
 #, c-format
 msgid "Key %s already exists."
 msgstr "键值\"%s\" 已经存在"
 
-#: access/nbtree/nbtinsert.c:456
+#: access/nbtree/nbtinsert.c:466
 #, c-format
 msgid "failed to re-find tuple within index \"%s\""
 msgstr "在索引\"%s\"中重新寻找元组失败"
 
-#: access/nbtree/nbtinsert.c:458
+#: access/nbtree/nbtinsert.c:468
 #, c-format
 msgid "This may be because of a non-immutable index expression."
 msgstr "这可能是由于一个非不可改变的索引表达式引起的"
 
-#: access/nbtree/nbtinsert.c:534 access/nbtree/nbtsort.c:486
+#: access/nbtree/nbtinsert.c:548 access/nbtree/nbtsort.c:488
 #, c-format
 msgid ""
 "Values larger than 1/3 of a buffer page cannot be indexed.\n"
@@ -448,754 +621,695 @@ msgstr ""
 "值大于缓冲页的1/3,不能建索引.\n"
 "请考虑这个值MD5哈希函数索引,或者使用全文索引."
 
-#: access/nbtree/nbtpage.c:159 access/nbtree/nbtpage.c:363
-#: parser/parse_utilcmd.c:1584
+#: access/nbtree/nbtpage.c:166 access/nbtree/nbtpage.c:362
+#: access/nbtree/nbtpage.c:449 parser/parse_utilcmd.c:1620
 #, c-format
 msgid "index \"%s\" is not a btree"
 msgstr "索引 \"%s\" 不是一个 btree"
 
-#: access/nbtree/nbtpage.c:165 access/nbtree/nbtpage.c:369
+#: access/nbtree/nbtpage.c:172 access/nbtree/nbtpage.c:368
+#: access/nbtree/nbtpage.c:455
 #, c-format
 msgid "version mismatch in index \"%s\": file version %d, code version %d"
 msgstr "在索引 \"%s\" 中版本不匹配: 文件版本 %d, 代码版本 %d"
 
-#: access/spgist/spgutils.c:664
+#: access/nbtree/nbtpage.c:1187
+#, c-format
+#| msgid "Index \"%s\" contains a whole-row table reference."
+msgid "index \"%s\" contains a half-dead internal page"
+msgstr "索引 \"%s\" 包含一个半死的内部页."
+
+#: access/nbtree/nbtpage.c:1189
+#, c-format
+msgid ""
+"This can be caused by an interrupted VACUUM in version 9.3 or older, before "
+"upgrade. Please REINDEX it."
+msgstr ""
+"可能是由于升级之前, 使用了9.3或者更老的版本里的VACUUM命令并产生中断造成的. 请"
+"为它重建索引."
+
+#: access/spgist/spgutils.c:663
+#, c-format
+#| msgid "SP-GiST inner tuple size %lu exceeds maximum %lu"
+msgid "SP-GiST inner tuple size %zu exceeds maximum %zu"
+msgstr "SP-GiST内部元组大小%zu超出最大值%zu"
+
+#: access/transam/multixact.c:990
+#, c-format
+#| msgid ""
+#| "database is not accepting commands to avoid wraparound data loss in "
+#| "database \"%s\""
+msgid ""
+"database is not accepting commands that generate new MultiXactIds to avoid "
+"wraparound data loss in database \"%s\""
+msgstr ""
+"数据库没有接收产生新的MultiXactIds的命令来避免在数据库\"%s\"中的重叠数据损失"
+
+#: access/transam/multixact.c:992 access/transam/multixact.c:999
+#: access/transam/multixact.c:1014 access/transam/multixact.c:1023
+#, c-format
+#| msgid ""
+#| "To avoid a database shutdown, execute a database-wide VACUUM in that "
+#| "database.\n"
+#| "You might also need to commit or roll back old prepared transactions."
+msgid ""
+"Execute a database-wide VACUUM in that database.\n"
+"You might also need to commit or roll back old prepared transactions."
+msgstr ""
+"在数据库中执行数据库范围的VACUUM.\n"
+"您也可能需要提交或回滚旧的已准备好的事务."
+
+#: access/transam/multixact.c:997
+#, c-format
+#| msgid ""
+#| "database is not accepting commands to avoid wraparound data loss in "
+#| "database with OID %u"
+msgid ""
+"database is not accepting commands that generate new MultiXactIds to avoid "
+"wraparound data loss in database with OID %u"
+msgstr ""
+"数据库没有接受产生新的MultiXactIds的命令来避免在带有OID为%u的数据库中的重叠数"
+"据损失"
+
+#: access/transam/multixact.c:1009 access/transam/multixact.c:2201
+#, c-format
+#| msgid "database \"%s\" must be vacuumed within %u transactions"
+msgid "database \"%s\" must be vacuumed before %u more MultiXactId is used"
+msgid_plural ""
+"database \"%s\" must be vacuumed before %u more MultiXactIds are used"
+msgstr[0] "数据库 \"%s\"必须在运行%u个事务前进行清理(vacuume)."
+
+#: access/transam/multixact.c:1018 access/transam/multixact.c:2210
+#, c-format
+#| msgid "database with OID %u must be vacuumed within %u transactions"
+msgid ""
+"database with OID %u must be vacuumed before %u more MultiXactId is used"
+msgid_plural ""
+"database with OID %u must be vacuumed before %u more MultiXactIds are used"
+msgstr[0] "带有OID为%u的数据库必须在%u个MultiXactIds使用前进行清理(vacuume)."
+
+#: access/transam/multixact.c:1169
+#, c-format
+msgid "MultiXactId %u does no longer exist -- apparent wraparound"
+msgstr "MultiXactId的值%u不再使用 -- 明显是回卷了"
+
+#: access/transam/multixact.c:1177
+#, c-format
+#| msgid "could not truncate directory \"%s\": apparent wraparound"
+msgid "MultiXactId %u has not been created yet -- apparent wraparound"
+msgstr "MultiXactId %u还没被创建 -- 有明显的重叠"
+
+#: access/transam/multixact.c:2166
+#, c-format
+#| msgid "transaction ID wrap limit is %u, limited by database with OID %u"
+msgid "MultiXactId wrap limit is %u, limited by database with OID %u"
+msgstr "MultiXactId的封装限制是%u, 限制于OID为%u的数据库."
+
+#: access/transam/multixact.c:2206 access/transam/multixact.c:2215
+#: access/transam/varsup.c:137 access/transam/varsup.c:144
+#: access/transam/varsup.c:374 access/transam/varsup.c:381
+#, c-format
+msgid ""
+"To avoid a database shutdown, execute a database-wide VACUUM in that "
+"database.\n"
+"You might also need to commit or roll back old prepared transactions."
+msgstr ""
+"为了避免关闭数据库,需要在数据库中执行数据库范围的VACUUM.\n"
+"您也可能需要提交或回滚旧的已准备好的事务."
+
+#: access/transam/multixact.c:2799
 #, c-format
-msgid "SP-GiST inner tuple size %lu exceeds maximum %lu"
-msgstr "SP-GiST内部元组大小%lu超出最大值%lu"
+#| msgid "invalid role OID: %u"
+msgid "invalid MultiXactId: %u"
+msgstr "无效的MultiXactId:%u"
 
-#: access/transam/slru.c:607
+#: access/transam/slru.c:651
 #, c-format
 msgid "file \"%s\" doesn't exist, reading as zeroes"
 msgstr "文件 \"%s\" 不存在, 假设读取了 0 字节"
 
-#: access/transam/slru.c:837 access/transam/slru.c:843
-#: access/transam/slru.c:850 access/transam/slru.c:857
-#: access/transam/slru.c:864 access/transam/slru.c:871
+#: access/transam/slru.c:881 access/transam/slru.c:887
+#: access/transam/slru.c:894 access/transam/slru.c:901
+#: access/transam/slru.c:908 access/transam/slru.c:915
 #, c-format
 msgid "could not access status of transaction %u"
 msgstr "无法处理事物 %u 的状态"
 
-#: access/transam/slru.c:838
+#: access/transam/slru.c:882
 #, c-format
 msgid "Could not open file \"%s\": %m."
 msgstr "无法打开文件 \"%s\": %m"
 
-#: access/transam/slru.c:844
+#: access/transam/slru.c:888
 #, c-format
 msgid "Could not seek in file \"%s\" to offset %u: %m."
 msgstr "无法在文件 \"%s\" 偏移量 %u 查找: %m"
 
-#: access/transam/slru.c:851
+#: access/transam/slru.c:895
 #, c-format
 msgid "Could not read from file \"%s\" at offset %u: %m."
 msgstr "无法从文件 \"%s\" 偏移量 %u 读取: %m"
 
-#: access/transam/slru.c:858
+#: access/transam/slru.c:902
 #, c-format
 msgid "Could not write to file \"%s\" at offset %u: %m."
 msgstr "无法往文件 \"%s\" 偏移量 %u 写入: %m"
 
-#: access/transam/slru.c:865
+#: access/transam/slru.c:909
 #, c-format
 msgid "Could not fsync file \"%s\": %m."
 msgstr "无法在文件 \"%s\"上执行系统调用fsync: %m"
 
-#: access/transam/slru.c:872
+#: access/transam/slru.c:916
 #, c-format
 msgid "Could not close file \"%s\": %m."
 msgstr "无法关闭文件 \"%s\": %m"
 
-#: access/transam/slru.c:1127
+#: access/transam/slru.c:1171
 #, c-format
 msgid "could not truncate directory \"%s\": apparent wraparound"
 msgstr "无法清空目录\"%s\": 有明显的重叠"
 
-#: access/transam/slru.c:1201 access/transam/slru.c:1219
+#: access/transam/slru.c:1220
 #, c-format
 msgid "removing file \"%s\""
 msgstr "删除文件 \"%s\""
 
-#: access/transam/twophase.c:252
+#: access/transam/timeline.c:148 access/transam/timeline.c:153
+#, c-format
+msgid "syntax error in history file: %s"
+msgstr "历史文件中的语法错误: %s"
+
+#: access/transam/timeline.c:149
+#, c-format
+msgid "Expected a numeric timeline ID."
+msgstr "期望一个数字 timeline ID."
+
+# sql_help.h:105
+#: access/transam/timeline.c:154
+#, c-format
+#| msgid "force a transaction log checkpoint"
+msgid "Expected a transaction log switchpoint location."
+msgstr "期望一个事务日志切换点位置."
+
+#: access/transam/timeline.c:158
+#, c-format
+msgid "invalid data in history file: %s"
+msgstr "历史文件中的无效数据: %s"
+
+#: access/transam/timeline.c:159
+#, c-format
+msgid "Timeline IDs must be in increasing sequence."
+msgstr "TimeLine ID 必须为递增序列."
+
+#: access/transam/timeline.c:179
+#, c-format
+msgid "invalid data in history file \"%s\""
+msgstr "历史文件 \"%s\" 中存在无效数据"
+
+#: access/transam/timeline.c:180
+#, c-format
+msgid "Timeline IDs must be less than child timeline's ID."
+msgstr "Timeline ID 必须小于子 timeline 的 ID."
+
+#: access/transam/timeline.c:346 access/transam/xlog.c:3289
+#: access/transam/xlog.c:10081 access/transam/xlog.c:10094
+#: access/transam/xlog.c:10462 access/transam/xlog.c:10505
+#: access/transam/xlogfuncs.c:468 access/transam/xlogfuncs.c:487
+#: replication/logical/reorderbuffer.c:2819 replication/walsender.c:483
+#: storage/file/copydir.c:176 utils/adt/genfile.c:139
+#, c-format
+msgid "could not read file \"%s\": %m"
+msgstr "无法读取文件 \"%s\": %m"
+
+#: access/transam/timeline.c:412 access/transam/timeline.c:502
+#: access/transam/xlog.c:3191 access/transam/xlog.c:3320
+#: access/transam/xlogfuncs.c:493 commands/copy.c:1518
+#: storage/file/copydir.c:201
+#, c-format
+msgid "could not close file \"%s\": %m"
+msgstr "无法关闭文件 \"%s\": %m"
+
+#: access/transam/timeline.c:429 access/transam/timeline.c:519
+#, c-format
+msgid "could not link file \"%s\" to \"%s\": %m"
+msgstr "无法把文件 \"%s\" 链接到 \"%s\": %m"
+
+#: access/transam/timeline.c:436 access/transam/timeline.c:526
+#: access/transam/xlog.c:5403 access/transam/xlog.c:6496
+#: access/transam/xlogarchive.c:458 access/transam/xlogarchive.c:475
+#: access/transam/xlogarchive.c:582 postmaster/pgarch.c:759
+#: replication/logical/snapbuild.c:1606 replication/slot.c:468
+#: replication/slot.c:942 replication/slot.c:1054 utils/misc/guc.c:6843
+#: utils/time/snapmgr.c:999
+#, c-format
+msgid "could not rename file \"%s\" to \"%s\": %m"
+msgstr "无法把文件 \"%s\" 重命名为 \"%s\": %m"
+
+#: access/transam/timeline.c:598
+#, c-format
+#| msgid "%s: starting timeline %u is not present in the server\n"
+msgid "requested timeline %u is not in this server's history"
+msgstr "服务器上没有起始时间表 %u"
+
+#: access/transam/twophase.c:330
 #, c-format
 msgid "transaction identifier \"%s\" is too long"
 msgstr "事务标示符 \"%s\" 太长"
 
 # large_obj.c:55
-#: access/transam/twophase.c:259
+#: access/transam/twophase.c:337
 #, c-format
 msgid "prepared transactions are disabled"
 msgstr "禁用已准备好的事务"
 
-#: access/transam/twophase.c:260
+#: access/transam/twophase.c:338
 #, c-format
 msgid "Set max_prepared_transactions to a nonzero value."
 msgstr "将max_prepared_transactions设置为一个非零值"
 
-#: access/transam/twophase.c:293
+#: access/transam/twophase.c:357
 #, c-format
 msgid "transaction identifier \"%s\" is already in use"
 msgstr "事务标示符\"%s\"已经在使用"
 
-#: access/transam/twophase.c:302
+#: access/transam/twophase.c:366
 #, c-format
 msgid "maximum number of prepared transactions reached"
 msgstr "已经达到已准备好事务的最大数量"
 
-#: access/transam/twophase.c:303
+#: access/transam/twophase.c:367
 #, c-format
 msgid "Increase max_prepared_transactions (currently %d)."
 msgstr "增加max_prepared_transactions的值(当前值是%d)."
 
-#: access/transam/twophase.c:431
+#: access/transam/twophase.c:505
 #, c-format
 msgid "prepared transaction with identifier \"%s\" is busy"
 msgstr "标示符为\"%s\"的事务处于繁忙状态."
 
-#: access/transam/twophase.c:439
+#: access/transam/twophase.c:511
 #, c-format
 msgid "permission denied to finish prepared transaction"
 msgstr "完成已准备好事务的权限不够"
 
-#: access/transam/twophase.c:440
+#: access/transam/twophase.c:512
 #, c-format
 msgid "Must be superuser or the user that prepared the transaction."
 msgstr "必须是超级用户或者是准备好事务的用户"
 
-#: access/transam/twophase.c:451
+#: access/transam/twophase.c:523
 #, c-format
 msgid "prepared transaction belongs to another database"
 msgstr "已准备好的事务属于另一个数据库"
 
-#: access/transam/twophase.c:452
+#: access/transam/twophase.c:524
 #, c-format
 msgid ""
 "Connect to the database where the transaction was prepared to finish it."
 msgstr "连接到带有准备好完成事务的数据库"
 
-#: access/transam/twophase.c:466
+#: access/transam/twophase.c:539
 #, c-format
 msgid "prepared transaction with identifier \"%s\" does not exist"
 msgstr "带有标示符\"%s\" 已准备好事务不存在"
 
-#: access/transam/twophase.c:969
+#: access/transam/twophase.c:1042
 #, c-format
 msgid "two-phase state file maximum length exceeded"
 msgstr "超过两阶段状态文件的最大长度"
 
-#: access/transam/twophase.c:987
+#: access/transam/twophase.c:1055
 #, c-format
 msgid "could not create two-phase state file \"%s\": %m"
 msgstr "无法创建两阶段提交状态文件 \"%s\": %m"
 
-#: access/transam/twophase.c:1001 access/transam/twophase.c:1018
-#: access/transam/twophase.c:1074 access/transam/twophase.c:1494
-#: access/transam/twophase.c:1501
+#: access/transam/twophase.c:1069 access/transam/twophase.c:1086
+#: access/transam/twophase.c:1135 access/transam/twophase.c:1564
+#: access/transam/twophase.c:1571
 #, c-format
 msgid "could not write two-phase state file: %m"
 msgstr "无法对两阶段提交状态文件进行写操作: %m"
 
-#: access/transam/twophase.c:1027
+#: access/transam/twophase.c:1095
 #, c-format
 msgid "could not seek in two-phase state file: %m"
 msgstr "无法在两阶段提交状态文件中进行查找: %m"
 
-#: access/transam/twophase.c:1080 access/transam/twophase.c:1519
+#: access/transam/twophase.c:1141 access/transam/twophase.c:1589
 #, c-format
 msgid "could not close two-phase state file: %m"
 msgstr "无法关闭两阶段提交状态文件: %m"
 
-#: access/transam/twophase.c:1160 access/transam/twophase.c:1600
+#: access/transam/twophase.c:1228 access/transam/twophase.c:1670
 #, c-format
 msgid "could not open two-phase state file \"%s\": %m"
 msgstr "无法打开两阶段提交状态文件\"%s\": %m"
 
-#: access/transam/twophase.c:1177
+#: access/transam/twophase.c:1245
 #, c-format
 msgid "could not stat two-phase state file \"%s\": %m"
 msgstr "无法获取两阶段提交状态文件 \"%s\" 的状态: %m"
 
-#: access/transam/twophase.c:1209
+#: access/transam/twophase.c:1277
 #, c-format
 msgid "could not read two-phase state file \"%s\": %m"
 msgstr "无法读取两阶段提交状态文件 \"%s\": %m"
 
-#: access/transam/twophase.c:1305
+#: access/transam/twophase.c:1373
 #, c-format
 msgid "two-phase state file for transaction %u is corrupt"
 msgstr "事务%u的两阶段提交状态文件损坏"
 
-#: access/transam/twophase.c:1456
+#: access/transam/twophase.c:1526
 #, c-format
 msgid "could not remove two-phase state file \"%s\": %m"
 msgstr "无法删除两阶段提交状态文件\"%s\": %m"
 
-#: access/transam/twophase.c:1485
+#: access/transam/twophase.c:1555
 #, c-format
 msgid "could not recreate two-phase state file \"%s\": %m"
 msgstr "无法重新创建两阶段提交状态文件 \"%s\": %m"
 
-#: access/transam/twophase.c:1513
+#: access/transam/twophase.c:1583
 #, c-format
 msgid "could not fsync two-phase state file: %m"
 msgstr "无法在两阶段提交状态文件上执行系统调用fsync: %m"
 
-#: access/transam/twophase.c:1609
+#: access/transam/twophase.c:1679
 #, c-format
 msgid "could not fsync two-phase state file \"%s\": %m"
 msgstr "无法在两阶段提交状态文件\"%s\"上执行系统调用fsync: %m"
 
-#: access/transam/twophase.c:1616
+#: access/transam/twophase.c:1686
 #, c-format
 msgid "could not close two-phase state file \"%s\": %m"
 msgstr "无法关闭两阶段提交状态文件 \"%s\": %m"
 
-#: access/transam/twophase.c:1681
+#: access/transam/twophase.c:1751
 #, c-format
 msgid "removing future two-phase state file \"%s\""
 msgstr "删除可能产生的两阶段提交状态文件 \"%s\""
 
-#: access/transam/twophase.c:1697 access/transam/twophase.c:1708
-#: access/transam/twophase.c:1827 access/transam/twophase.c:1838
-#: access/transam/twophase.c:1911
+#: access/transam/twophase.c:1767 access/transam/twophase.c:1778
+#: access/transam/twophase.c:1897 access/transam/twophase.c:1908
+#: access/transam/twophase.c:1981
 #, c-format
 msgid "removing corrupt two-phase state file \"%s\""
 msgstr "删除已损坏的两阶段提交状态文件\"%s\""
 
-#: access/transam/twophase.c:1816 access/transam/twophase.c:1900
+#: access/transam/twophase.c:1886 access/transam/twophase.c:1970
 #, c-format
 msgid "removing stale two-phase state file \"%s\""
 msgstr "正在删除无用的两阶段提交状态文件\"%s\""
 
-#: access/transam/twophase.c:1918
+#: access/transam/twophase.c:1988
 #, c-format
 msgid "recovering prepared transaction %u"
 msgstr "正在恢复已准备事务%u"
 
-#: access/transam/varsup.c:113
+#: access/transam/varsup.c:115
 #, c-format
 msgid ""
 "database is not accepting commands to avoid wraparound data loss in database "
 "\"%s\""
 msgstr "数据库没有接收命令来避免在数据库\"%s\"中的重叠数据损失"
 
-#: access/transam/varsup.c:115 access/transam/varsup.c:122
+#: access/transam/varsup.c:117 access/transam/varsup.c:124
 #, c-format
+#| msgid ""
+#| "Stop the postmaster and use a standalone backend to vacuum that "
+#| "database.\n"
+#| "You might also need to commit or roll back old prepared transactions."
 msgid ""
-"Stop the postmaster and use a standalone backend to vacuum that database.\n"
+"Stop the postmaster and vacuum that database in single-user mode.\n"
 "You might also need to commit or roll back old prepared transactions."
 msgstr ""
-"停止postmaster进程,然后使用单独的后台进程来清理数据库.\n"
+"停止postmaster进程,然后在单用户模式下清理数据库.\n"
 "您也可能需要提交或回滚旧的已准备好事务."
 
-#: access/transam/varsup.c:120
+#: access/transam/varsup.c:122
 #, c-format
 msgid ""
 "database is not accepting commands to avoid wraparound data loss in database "
 "with OID %u"
 msgstr "数据库没有接受命令来避免在带有OID为%u的数据库中的重叠数据损失"
 
-#: access/transam/varsup.c:132 access/transam/varsup.c:368
+#: access/transam/varsup.c:134 access/transam/varsup.c:371
 #, c-format
 msgid "database \"%s\" must be vacuumed within %u transactions"
 msgstr "数据库 \"%s\"在运行%u个事务中进行清理(vacuume)."
 
-#: access/transam/varsup.c:135 access/transam/varsup.c:142
-#: access/transam/varsup.c:371 access/transam/varsup.c:378
-#, c-format
-msgid ""
-"To avoid a database shutdown, execute a database-wide VACUUM in that "
-"database.\n"
-"You might also need to commit or roll back old prepared transactions."
-msgstr ""
-"为了避免关闭数据库,需要在数据库中执行数据库范围的VACUUM.\n"
-"您也可能需要提交或回滚旧的已准备好的事务."
-
-#: access/transam/varsup.c:139 access/transam/varsup.c:375
+#: access/transam/varsup.c:141 access/transam/varsup.c:378
 #, c-format
 msgid "database with OID %u must be vacuumed within %u transactions"
 msgstr "带有OID为%u的数据库必须在%u个事务中进行清理(vacuume)."
 
-#: access/transam/varsup.c:333
+#: access/transam/varsup.c:336
 #, c-format
 msgid "transaction ID wrap limit is %u, limited by database with OID %u"
 msgstr "事务ID的封装限制是%u, 由带有OID为%u的数据库限制."
 
-#: access/transam/xact.c:753
+#: access/transam/xact.c:814
 #, c-format
-msgid "cannot have more than 2^32-1 commands in a transaction"
-msgstr "在一个事物中不可以超过 2^32-1 个命令"
+#| msgid "cannot have more than 2^32-1 commands in a transaction"
+msgid "cannot have more than 2^32-2 commands in a transaction"
+msgstr "一个事物中拥有最多不能超过 2^32-2 个命令"
 
-#: access/transam/xact.c:1324
+#: access/transam/xact.c:1370
 #, c-format
 msgid "maximum number of committed subtransactions (%d) exceeded"
 msgstr "超过已提交子事务的最大数量(%d)"
 
-#: access/transam/xact.c:2097
+#: access/transam/xact.c:2151
 #, c-format
 msgid "cannot PREPARE a transaction that has operated on temporary tables"
 msgstr "无法在一个已经在临时表上操作的事务上执行PREPARE操作"
 
-#: access/transam/xact.c:2107
+#: access/transam/xact.c:2161
 #, c-format
 msgid "cannot PREPARE a transaction that has exported snapshots"
 msgstr "无法在一个已经导出快照的事务上执行PREPARE操作"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:2916
+#: access/transam/xact.c:3000
 #, c-format
 msgid "%s cannot run inside a transaction block"
 msgstr "%s 无法在事物块中运行"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:2926
+#: access/transam/xact.c:3010
 #, c-format
 msgid "%s cannot run inside a subtransaction"
 msgstr "%s 无法在一个子事物中运行"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:2936
+#: access/transam/xact.c:3020
 #, c-format
 msgid "%s cannot be executed from a function or multi-command string"
 msgstr "%s 无法从函数或包含多条命令的字符串中执行."
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:2987
+#: access/transam/xact.c:3091
 #, c-format
 msgid "%s can only be used in transaction blocks"
 msgstr "%s 只能在事务块中使用"
 
-#: access/transam/xact.c:3169
+#: access/transam/xact.c:3274
 #, c-format
 msgid "there is already a transaction in progress"
 msgstr "已经有一个事物在运行中"
 
-#: access/transam/xact.c:3337 access/transam/xact.c:3430
+#: access/transam/xact.c:3442 access/transam/xact.c:3535
 #, c-format
 msgid "there is no transaction in progress"
 msgstr "没有事物在运行中"
 
-#: access/transam/xact.c:3526 access/transam/xact.c:3577
-#: access/transam/xact.c:3583 access/transam/xact.c:3627
-#: access/transam/xact.c:3676 access/transam/xact.c:3682
+#: access/transam/xact.c:3631 access/transam/xact.c:3682
+#: access/transam/xact.c:3688 access/transam/xact.c:3732
+#: access/transam/xact.c:3781 access/transam/xact.c:3787
 #, c-format
 msgid "no such savepoint"
 msgstr "没有这个保存点"
 
-#: access/transam/xact.c:4335
+#: access/transam/xact.c:4464
 #, c-format
 msgid "cannot have more than 2^32-1 subtransactions in a transaction"
 msgstr "在一个事物中不可以超过有 2^32-1 个子事物"
 
-#: access/transam/xlog.c:1313 access/transam/xlog.c:1382
+#: access/transam/xlog.c:2416
 #, c-format
-msgid "could not create archive status file \"%s\": %m"
-msgstr "无法创建归档状态文件 \"%s\": %m"
+#| msgid "Could not seek in file \"%s\" to offset %u: %m."
+msgid "could not seek in log file %s to offset %u: %m"
+msgstr "无法在日志文件 \"%s\" 中定位 %u: %m"
 
-#: access/transam/xlog.c:1321 access/transam/xlog.c:1390
+#: access/transam/xlog.c:2436
 #, c-format
-msgid "could not write archive status file \"%s\": %m"
-msgstr "无法写入归档状态文件 \"%s\": %m"
+#| msgid ""
+#| "could not write to log file %u, segment %u at offset %u, length %lu: %m"
+msgid "could not write to log file %s at offset %u, length %zu: %m"
+msgstr "无法在偏移量 %2$u,长度 %3$zu写入日志文件%1$s: %4$m"
 
-#: access/transam/xlog.c:1370 access/transam/xlog.c:3002
-#: access/transam/xlog.c:3019 access/transam/xlog.c:4806
-#: access/transam/xlog.c:5789 access/transam/xlog.c:6547
-#: postmaster/pgarch.c:755 utils/time/snapmgr.c:883
+#: access/transam/xlog.c:2712
 #, c-format
-msgid "could not rename file \"%s\" to \"%s\": %m"
-msgstr "无法把文件 \"%s\" 重命名为 \"%s\": %m"
+#| msgid "updated min recovery point to %X/%X"
+msgid "updated min recovery point to %X/%X on timeline %u"
+msgstr "在时间点%3$u上将最小恢复点更新到%1$X/%2$X"
 
-#: access/transam/xlog.c:1836 access/transam/xlog.c:10570
-#: replication/walreceiver.c:543 replication/walsender.c:1040
+#: access/transam/xlog.c:3292
 #, c-format
-msgid "could not seek in log file %u, segment %u to offset %u: %m"
-msgstr "æ\97 æ³\95å\9c¨æ\97¥å¿\97æ\96\87ä»¶ %u ä¸­æ\9f¥æ\89¾, æ®µ %u å\81\8fç§»é\87\8f %u: %m"
+msgid "not enough data in file \"%s\""
+msgstr "æ\96\87ä»¶ \"%s\" ä¸­ç\9a\84æ\95°æ\8d®ä¸\8dè¶³"
 
-#: access/transam/xlog.c:1853 replication/walreceiver.c:560
+#: access/transam/xlog.c:3411
 #, c-format
-msgid "could not write to log file %u, segment %u at offset %u, length %lu: %m"
-msgstr "无法在偏移量 %3$u,长度 %4$lu写入日志文件%1$u, 段 %2$u: %5$m"
+#| msgid ""
+#| "could not link file \"%s\" to \"%s\" (initialization of log file %u, "
+#| "segment %u): %m"
+msgid "could not link file \"%s\" to \"%s\" (initialization of log file): %m"
+msgstr "无法链接文件 \"%s\" 到 \"%s\" (日志文件初始化): %m"
 
-#: access/transam/xlog.c:2082
+#: access/transam/xlog.c:3423
 #, c-format
-msgid "updated min recovery point to %X/%X"
-msgstr "将最小恢复点更新到%X/%X"
+#| msgid ""
+#| "could not rename file \"%s\" to \"%s\" (initialization of log file %u, "
+#| "segment %u): %m"
+msgid "could not rename file \"%s\" to \"%s\" (initialization of log file): %m"
+msgstr "无法重命名文件 \"%s\" 为 \"%s\" (日志文件初始化): %m"
 
-#: access/transam/xlog.c:2459 access/transam/xlog.c:2563
-#: access/transam/xlog.c:2792 access/transam/xlog.c:2877
-#: access/transam/xlog.c:2934 replication/walsender.c:1028
+#: access/transam/xlog.c:3451
 #, c-format
-msgid "could not open file \"%s\" (log file %u, segment %u): %m"
-msgstr "无法打开文件 \"%s\" (日志文件 %u, 段 %u): %m"
+#| msgid "%s: could not open transaction log file \"%s\": %s\n"
+msgid "could not open transaction log file \"%s\": %m"
+msgstr "无法打开事务日志文件 \"%s\": %m"
 
-#: access/transam/xlog.c:2484 access/transam/xlog.c:2617
-#: access/transam/xlog.c:4656 access/transam/xlog.c:9552
-#: access/transam/xlog.c:9857 postmaster/postmaster.c:3709
-#: storage/file/copydir.c:172 storage/smgr/md.c:297 utils/time/snapmgr.c:860
+#: access/transam/xlog.c:3640
 #, c-format
-msgid "could not create file \"%s\": %m"
-msgstr "无法创建文件 \"%s\": %m"
+#| msgid "could not close file \"%s\": %m"
+msgid "could not close log file %s: %m"
+msgstr "无法关闭日志文件 %s: %m"
 
-#: access/transam/xlog.c:2516 access/transam/xlog.c:2649
-#: access/transam/xlog.c:4708 access/transam/xlog.c:4771
-#: postmaster/postmaster.c:3719 postmaster/postmaster.c:3729
-#: storage/file/copydir.c:197 utils/init/miscinit.c:1089
-#: utils/init/miscinit.c:1098 utils/init/miscinit.c:1105 utils/misc/guc.c:7564
-#: utils/misc/guc.c:7578 utils/time/snapmgr.c:865 utils/time/snapmgr.c:872
+#: access/transam/xlog.c:3699 replication/logical/logicalfuncs.c:147
+#: replication/walsender.c:2089
 #, c-format
-msgid "could not write to file \"%s\": %m"
-msgstr "æ\97 æ³\95å\86\99å\85¥æ\96\87ä»¶ \"%s\": %m"
+msgid "requested WAL segment %s has already been removed"
+msgstr "æ\89\80è¦\81æ±\82ç\9a\84WAL段%så·²ç»\8f被å\88 é\99¤"
 
-#: access/transam/xlog.c:2524 access/transam/xlog.c:2656
-#: access/transam/xlog.c:4777 storage/file/copydir.c:269 storage/smgr/md.c:959
-#: storage/smgr/md.c:1190 storage/smgr/md.c:1363
+#: access/transam/xlog.c:3777 access/transam/xlog.c:3954
 #, c-format
-msgid "could not fsync file \"%s\": %m"
-msgstr "无法 fsync 文件 \"%s\": %m"
+msgid "could not open transaction log directory \"%s\": %m"
+msgstr "无法打开事务日志目录 \"%s\": %m"
 
-#: access/transam/xlog.c:2529 access/transam/xlog.c:2661
-#: access/transam/xlog.c:4782 commands/copy.c:1341 storage/file/copydir.c:211
+#: access/transam/xlog.c:3825
 #, c-format
-msgid "could not close file \"%s\": %m"
-msgstr "无法关闭文件 \"%s\": %m"
+msgid "recycled transaction log file \"%s\""
+msgstr "回收事务日志文件 \"%s\""
 
-#: access/transam/xlog.c:2602 access/transam/xlog.c:4413
-#: access/transam/xlog.c:4514 access/transam/xlog.c:4675
-#: replication/basebackup.c:362 replication/basebackup.c:966
-#: storage/file/copydir.c:165 storage/file/copydir.c:255 storage/smgr/md.c:579
-#: storage/smgr/md.c:837 utils/error/elog.c:1536 utils/init/miscinit.c:1038
-#: utils/init/miscinit.c:1153
+#: access/transam/xlog.c:3841
 #, c-format
-msgid "could not open file \"%s\": %m"
-msgstr "无法打开文件 \"%s\": %m"
+msgid "removing transaction log file \"%s\""
+msgstr "删除事务日志文件 \"%s\""
 
-#: access/transam/xlog.c:2630 access/transam/xlog.c:4687
-#: access/transam/xlog.c:9713 access/transam/xlog.c:9726
-#: access/transam/xlog.c:10095 access/transam/xlog.c:10138
-#: storage/file/copydir.c:186 utils/adt/genfile.c:138
+#: access/transam/xlog.c:3864
 #, c-format
-msgid "could not read file \"%s\": %m"
-msgstr "无法读取文件 \"%s\": %m"
+msgid "could not rename old transaction log file \"%s\": %m"
+msgstr "无法重命名旧的事务日志文件\"%s\": %m"
 
-#: access/transam/xlog.c:2633
+#: access/transam/xlog.c:3876
 #, c-format
-msgid "not enough data in file \"%s\""
-msgstr "æ\96\87ä»¶ \"%s\" ä¸­ç\9a\84æ\95°æ\8d®ä¸\8dè¶³"
+msgid "could not remove old transaction log file \"%s\": %m"
+msgstr "æ\97 æ³\95å\88 é\99¤æ\97§ç\9a\84äº\8bå\8a¡æ\97¥å¿\97æ\96\87ä»¶ \"%s\": %m"
 
-#: access/transam/xlog.c:2752
+#: access/transam/xlog.c:3914 access/transam/xlog.c:3924
 #, c-format
-msgid ""
-"could not link file \"%s\" to \"%s\" (initialization of log file %u, segment "
-"%u): %m"
-msgstr "无法链接文件 \"%s\" 到 \"%s\" (日志文件 %u 的初始化, 段 %u): %m"
+msgid "required WAL directory \"%s\" does not exist"
+msgstr "所需要的WAL目录 \"%s\" 不存在"
 
-#: access/transam/xlog.c:2764
-#, c-format
-msgid ""
-"could not rename file \"%s\" to \"%s\" (initialization of log file %u, "
-"segment %u): %m"
-msgstr "无法重命名文件 \"%s\" 为 \"%s\" (日志文件 %u 的初始化, 段 %u): %m"
-
-#: access/transam/xlog.c:2961 replication/walreceiver.c:509
-#, c-format
-msgid "could not close log file %u, segment %u: %m"
-msgstr "无法关闭日志文件 %u, 段 %u: %m"
-
-#: access/transam/xlog.c:3011 access/transam/xlog.c:3118
-#: access/transam/xlog.c:9731 storage/smgr/md.c:397 storage/smgr/md.c:446
-#: storage/smgr/md.c:1310
-#, c-format
-msgid "could not remove file \"%s\": %m"
-msgstr "无法删除文件 \"%s\": %m"
-
-#: access/transam/xlog.c:3110 access/transam/xlog.c:3270
-#: access/transam/xlog.c:9537 access/transam/xlog.c:9701
-#: replication/basebackup.c:368 replication/basebackup.c:422
-#: storage/file/copydir.c:86 storage/file/copydir.c:125 utils/adt/dbsize.c:66
-#: utils/adt/dbsize.c:216 utils/adt/dbsize.c:296 utils/adt/genfile.c:107
-#: utils/adt/genfile.c:279
-#, c-format
-msgid "could not stat file \"%s\": %m"
-msgstr "无法取文件 \"%s\" 的状态: %m"
-
-#: access/transam/xlog.c:3249
-#, c-format
-msgid "archive file \"%s\" has wrong size: %lu instead of %lu"
-msgstr "归档文件\"%s\"大小错误:应该是%lu而不是%lu"
-
-#: access/transam/xlog.c:3258
-#, c-format
-msgid "restored log file \"%s\" from archive"
-msgstr "从归档中恢复日志文件 \"%s\""
-
-#: access/transam/xlog.c:3308
-#, c-format
-msgid "could not restore file \"%s\" from archive: return code %d"
-msgstr "无法从归档中恢复文件 \"%s\": 返回码为 %d"
-
-#. translator: First %s represents a recovery.conf parameter name like
-#. "recovery_end_command", and the 2nd is the value of that parameter.
-#: access/transam/xlog.c:3422
-#, c-format
-msgid "%s \"%s\": return code %d"
-msgstr "%s \"%s\": 返回码为 %d"
-
-#: access/transam/xlog.c:3486 replication/walsender.c:1022
-#, c-format
-msgid "requested WAL segment %s has already been removed"
-msgstr "所要求的WAL段%s已经被删除"
-
-#: access/transam/xlog.c:3549 access/transam/xlog.c:3721
-#, c-format
-msgid "could not open transaction log directory \"%s\": %m"
-msgstr "无法打开事务日志目录 \"%s\": %m"
-
-#: access/transam/xlog.c:3592
-#, c-format
-msgid "recycled transaction log file \"%s\""
-msgstr "回收事务日志文件 \"%s\""
-
-#: access/transam/xlog.c:3608
-#, c-format
-msgid "removing transaction log file \"%s\""
-msgstr "删除事务日志文件 \"%s\""
-
-#: access/transam/xlog.c:3631
-#, c-format
-msgid "could not rename old transaction log file \"%s\": %m"
-msgstr "无法重命名旧的事务日志文件\"%s\": %m"
-
-#: access/transam/xlog.c:3643
-#, c-format
-msgid "could not remove old transaction log file \"%s\": %m"
-msgstr "无法删除旧的事务日志文件 \"%s\": %m"
-
-#: access/transam/xlog.c:3681 access/transam/xlog.c:3691
-#, c-format
-msgid "required WAL directory \"%s\" does not exist"
-msgstr "所需要的WAL目录 \"%s\" 不存在"
-
-#: access/transam/xlog.c:3697
+#: access/transam/xlog.c:3930
 #, c-format
 msgid "creating missing WAL directory \"%s\""
 msgstr "正在创建丢失的WAL目录\"%s\""
 
-#: access/transam/xlog.c:3700
+#: access/transam/xlog.c:3933
 #, c-format
 msgid "could not create missing directory \"%s\": %m"
 msgstr "无法创建丢失的目录 \"%s\": %m"
 
-#: access/transam/xlog.c:3734
+#: access/transam/xlog.c:3967
 #, c-format
 msgid "removing transaction log backup history file \"%s\""
 msgstr "正在删除事务日志备份历史文件 \"%s\""
 
-#: access/transam/xlog.c:3876
-#, c-format
-msgid "incorrect hole size in record at %X/%X"
-msgstr "在%X/%X上的记录中页的未使用空洞大小不正确"
-
-#: access/transam/xlog.c:3889
-#, c-format
-msgid "incorrect total length in record at %X/%X"
-msgstr "在%X/%X上的记录中的总长度不正确"
-
-#: access/transam/xlog.c:3902
-#, c-format
-msgid "incorrect resource manager data checksum in record at %X/%X"
-msgstr "在记录的 %X/%X 中的不正确资源管理数据校验值"
-
-#: access/transam/xlog.c:3980 access/transam/xlog.c:4018
-#, c-format
-msgid "invalid record offset at %X/%X"
-msgstr "无效的记录偏移量 %X/%X"
-
-#: access/transam/xlog.c:4026
-#, c-format
-msgid "contrecord is requested by %X/%X"
-msgstr "%X/%X 需要 contrecord"
-
-#: access/transam/xlog.c:4041
+#: access/transam/xlog.c:4159
 #, c-format
-msgid "invalid xlog switch record at %X/%X"
-msgstr "在%X/%X上的xlog切换记录无效"
+#| msgid "unexpected timeline ID %u in log file %u, segment %u, offset %u"
+msgid "unexpected timeline ID %u in log segment %s, offset %u"
+msgstr "日志段%2$s,偏移%3$u出现意外的时间点ID %1$u"
 
-#: access/transam/xlog.c:4049
+#: access/transam/xlog.c:4281
 #, c-format
-msgid "record with zero length at %X/%X"
-msgstr "在 %X/%X 位置有零长度的记录"
-
-#: access/transam/xlog.c:4058
-#, c-format
-msgid "invalid record length at %X/%X"
-msgstr "在%X/%X的无效的记录长度 "
-
-#: access/transam/xlog.c:4065
-#, c-format
-msgid "invalid resource manager ID %u at %X/%X"
-msgstr "在 %2$X/%3$X 位置, 为无效的资源管理 ID %1$u"
-
-#: access/transam/xlog.c:4078 access/transam/xlog.c:4094
-#, c-format
-msgid "record with incorrect prev-link %X/%X at %X/%X"
-msgstr "在 %3$X/%4$X位置的记录带有不正确的prev-link %1$X/%2$X"
-
-#: access/transam/xlog.c:4123
-#, c-format
-msgid "record length %u at %X/%X too long"
-msgstr "在 %2$X/%3$X, 记录长度 %1$u 太长"
-
-#: access/transam/xlog.c:4163
-#, c-format
-msgid "there is no contrecord flag in log file %u, segment %u, offset %u"
-msgstr "日志文件 %u, 段 %u, 偏移量 %u 中没有 contrecord 标志"
-
-#: access/transam/xlog.c:4173
-#, c-format
-msgid "invalid contrecord length %u in log file %u, segment %u, offset %u"
-msgstr "日志文件 %2$u 中无效的 contrecord 长度 %1$u, 段 %3$u, 偏移量 %4$u"
-
-#: access/transam/xlog.c:4263
-#, c-format
-msgid "invalid magic number %04X in log file %u, segment %u, offset %u"
-msgstr "日志文件 %2$u, 段 %3$u, 偏移量 %4$u 中无效的 magic 数字 %1$04X"
-
-#: access/transam/xlog.c:4270 access/transam/xlog.c:4316
-#, c-format
-msgid "invalid info bits %04X in log file %u, segment %u, offset %u"
-msgstr "日志文件 %2$u 中无效的信息 (info) 位 %1$04X, 段 %3$u, 偏移量 %4$u"
-
-#: access/transam/xlog.c:4292 access/transam/xlog.c:4300
-#: access/transam/xlog.c:4307
-#, c-format
-msgid "WAL file is from different database system"
-msgstr "WAL 文件来自不同的数据库系统"
-
-#: access/transam/xlog.c:4293
-#, c-format
-msgid ""
-"WAL file database system identifier is %s, pg_control database system "
-"identifier is %s."
-msgstr "WAL文件的数据库系统标识符是%s,pg_control的数据库系统标识符是%s."
-
-#: access/transam/xlog.c:4301
-#, c-format
-msgid "Incorrect XLOG_SEG_SIZE in page header."
-msgstr "页头中不正确的 XLOG_SEG_SIZE."
-
-#: access/transam/xlog.c:4308
-#, c-format
-msgid "Incorrect XLOG_BLCKSZ in page header."
-msgstr "页头中不正确的 XLOG_SEG_SIZE."
-
-#: access/transam/xlog.c:4324
-#, c-format
-msgid "unexpected pageaddr %X/%X in log file %u, segment %u, offset %u"
-msgstr "日志文件 %3$u 中意外的页地址 %1$X/%2$X, 段 %4$u, 偏移量 %5$u"
-
-#: access/transam/xlog.c:4336
-#, c-format
-msgid "unexpected timeline ID %u in log file %u, segment %u, offset %u"
-msgstr "日志文件 %2$u 中意外的 timeline ID %1$u, 段 %3$u, 偏移量 %4$u"
+msgid "new timeline %u is not a child of database system timeline %u"
+msgstr "新的时间线%u不附属于数据库系统时间线%u"
 
-#: access/transam/xlog.c:4363
+#: access/transam/xlog.c:4295
 #, c-format
+#| msgid "new timeline %u is not a child of database system timeline %u"
 msgid ""
-"out-of-sequence timeline ID %u (after %u) in log file %u, segment %u, offset "
-"%u"
+"new timeline %u forked off current database system timeline %u before "
+"current recovery point %X/%X"
 msgstr ""
-"日志文件 %3$u 中超出序列的 timeline ID %1$u (%2$u 之后), 段 %4$u, 偏移量 %5$u"
-
-#: access/transam/xlog.c:4442
-#, c-format
-msgid "syntax error in history file: %s"
-msgstr "历史文件中的语法错误: %s"
-
-#: access/transam/xlog.c:4443
-#, c-format
-msgid "Expected a numeric timeline ID."
-msgstr "期望一个数字 timeline ID."
-
-#: access/transam/xlog.c:4448
-#, c-format
-msgid "invalid data in history file: %s"
-msgstr "历史文件中的无效数据: %s"
-
-#: access/transam/xlog.c:4449
-#, c-format
-msgid "Timeline IDs must be in increasing sequence."
-msgstr "TimeLine ID 必须为递增序列."
-
-#: access/transam/xlog.c:4462
-#, c-format
-msgid "invalid data in history file \"%s\""
-msgstr "历史文件 \"%s\" 中存在无效数据"
-
-#: access/transam/xlog.c:4463
-#, c-format
-msgid "Timeline IDs must be less than child timeline's ID."
-msgstr "Timeline ID 必须小于子 timeline 的 ID."
+"在当前恢复点%3$X/%4$X之前, 新的时间点%1$u脱离了当前茅的数据库系统时间点%2$u"
 
-#: access/transam/xlog.c:4556
-#, c-format
-msgid "new timeline %u is not a child of database system timeline %u"
-msgstr "新的时间线%u不附属于数据库系统时间线%u"
-
-#: access/transam/xlog.c:4574
+#: access/transam/xlog.c:4314
 #, c-format
 msgid "new target timeline is %u"
 msgstr "新的目标时间线为%u"
 
-#: access/transam/xlog.c:4799
-#, c-format
-msgid "could not link file \"%s\" to \"%s\": %m"
-msgstr "无法把文件 \"%s\" 链接到 \"%s\": %m"
-
-#: access/transam/xlog.c:4888
+#: access/transam/xlog.c:4394
 #, c-format
 msgid "could not create control file \"%s\": %m"
 msgstr "无法创建控制文件 \"%s\": %m"
 
-#: access/transam/xlog.c:4899 access/transam/xlog.c:5124
+#: access/transam/xlog.c:4405 access/transam/xlog.c:4641
 #, c-format
 msgid "could not write to control file: %m"
 msgstr "无法写入控制文件: %m"
 
-#: access/transam/xlog.c:4905 access/transam/xlog.c:5130
+#: access/transam/xlog.c:4411 access/transam/xlog.c:4647
 #, c-format
 msgid "could not fsync control file: %m"
 msgstr "无法 fsync 控制文件: %m"
 
-#: access/transam/xlog.c:4910 access/transam/xlog.c:5135
+#: access/transam/xlog.c:4416 access/transam/xlog.c:4652
 #, c-format
 msgid "could not close control file: %m"
 msgstr "无法关闭控制文件: %m"
 
-#: access/transam/xlog.c:4928 access/transam/xlog.c:5113
+#: access/transam/xlog.c:4434 access/transam/xlog.c:4630
 #, c-format
 msgid "could not open control file \"%s\": %m"
 msgstr "无法打开控制文件 \"%s\": %m"
 
-#: access/transam/xlog.c:4934
+#: access/transam/xlog.c:4440
 #, c-format
 msgid "could not read from control file: %m"
 msgstr "无法读取控制文件: %m"
 
-#: access/transam/xlog.c:4947 access/transam/xlog.c:4956
-#: access/transam/xlog.c:4980 access/transam/xlog.c:4987
-#: access/transam/xlog.c:4994 access/transam/xlog.c:4999
-#: access/transam/xlog.c:5006 access/transam/xlog.c:5013
-#: access/transam/xlog.c:5020 access/transam/xlog.c:5027
-#: access/transam/xlog.c:5034 access/transam/xlog.c:5041
-#: access/transam/xlog.c:5050 access/transam/xlog.c:5057
-#: access/transam/xlog.c:5066 access/transam/xlog.c:5073
-#: access/transam/xlog.c:5082 access/transam/xlog.c:5089
-#: utils/init/miscinit.c:1171
+#: access/transam/xlog.c:4453 access/transam/xlog.c:4462
+#: access/transam/xlog.c:4486 access/transam/xlog.c:4493
+#: access/transam/xlog.c:4500 access/transam/xlog.c:4505
+#: access/transam/xlog.c:4512 access/transam/xlog.c:4519
+#: access/transam/xlog.c:4526 access/transam/xlog.c:4533
+#: access/transam/xlog.c:4540 access/transam/xlog.c:4547
+#: access/transam/xlog.c:4554 access/transam/xlog.c:4563
+#: access/transam/xlog.c:4570 access/transam/xlog.c:4579
+#: access/transam/xlog.c:4586 access/transam/xlog.c:4595
+#: access/transam/xlog.c:4602 utils/init/miscinit.c:1139
 #, c-format
 msgid "database files are incompatible with server"
 msgstr "数据库文件和服务器不兼容"
 
-#: access/transam/xlog.c:4948
+#: access/transam/xlog.c:4454
 #, c-format
 msgid ""
 "The database cluster was initialized with PG_CONTROL_VERSION %d (0x%08x), "
@@ -1204,14 +1318,14 @@ msgstr ""
 "数据库集群是以 PG_CONTROL_VERSION %d (0x%08x)初始化的, 但是 服务器是以 "
 "PG_CONTROL_VERSION %d (0x%08x)编译的."
 
-#: access/transam/xlog.c:4952
+#: access/transam/xlog.c:4458
 #, c-format
 msgid ""
 "This could be a problem of mismatched byte ordering.  It looks like you need "
 "to initdb."
 msgstr "这是一个字节顺序不匹配的问题.您需要运行initdb."
 
-#: access/transam/xlog.c:4957
+#: access/transam/xlog.c:4463
 #, c-format
 msgid ""
 "The database cluster was initialized with PG_CONTROL_VERSION %d, but the "
@@ -1220,18 +1334,18 @@ msgstr ""
 "数据库集群是以 PG_CONTROL_VERSION %d 初始化的, 但是 服务器是以 "
 "PG_CONTROL_VERSION %d 编译的."
 
-#: access/transam/xlog.c:4960 access/transam/xlog.c:4984
-#: access/transam/xlog.c:4991 access/transam/xlog.c:4996
+#: access/transam/xlog.c:4466 access/transam/xlog.c:4490
+#: access/transam/xlog.c:4497 access/transam/xlog.c:4502
 #, c-format
 msgid "It looks like you need to initdb."
 msgstr "看上去, 你需要初始化数据库."
 
-#: access/transam/xlog.c:4971
+#: access/transam/xlog.c:4477
 #, c-format
 msgid "incorrect checksum in control file"
 msgstr "控制文件的校验值不正确"
 
-#: access/transam/xlog.c:4981
+#: access/transam/xlog.c:4487
 #, c-format
 msgid ""
 "The database cluster was initialized with CATALOG_VERSION_NO %d, but the "
@@ -1240,7 +1354,7 @@ msgstr ""
 "数据库簇是以 CATALOG_VERSION_NO %d 初始化的, 但是 服务器是以 "
 "CATALOG_VERSION_NO %d 编译的."
 
-#: access/transam/xlog.c:4988
+#: access/transam/xlog.c:4494
 #, c-format
 msgid ""
 "The database cluster was initialized with MAXALIGN %d, but the server was "
@@ -1248,32 +1362,32 @@ msgid ""
 msgstr ""
 "数据库集群是以 MAXALIGN%d 初始化的, 但是 服务器是以 NAMEDATALEN %d 编译的."
 
-#: access/transam/xlog.c:4995
+#: access/transam/xlog.c:4501
 #, c-format
 msgid ""
 "The database cluster appears to use a different floating-point number format "
 "than the server executable."
 msgstr "数据库集群在使用与服务器执行部分不同的浮点数格式"
 
-#: access/transam/xlog.c:5000
+#: access/transam/xlog.c:4506
 #, c-format
 msgid ""
 "The database cluster was initialized with BLCKSZ %d, but the server was "
 "compiled with BLCKSZ %d."
 msgstr "数据库簇是以 BLCKSZ %d 初始化的, 但是 服务器是以 BLCKSZ %d 编译的."
 
-#: access/transam/xlog.c:5003 access/transam/xlog.c:5010
-#: access/transam/xlog.c:5017 access/transam/xlog.c:5024
-#: access/transam/xlog.c:5031 access/transam/xlog.c:5038
-#: access/transam/xlog.c:5045 access/transam/xlog.c:5053
-#: access/transam/xlog.c:5060 access/transam/xlog.c:5069
-#: access/transam/xlog.c:5076 access/transam/xlog.c:5085
-#: access/transam/xlog.c:5092
+#: access/transam/xlog.c:4509 access/transam/xlog.c:4516
+#: access/transam/xlog.c:4523 access/transam/xlog.c:4530
+#: access/transam/xlog.c:4537 access/transam/xlog.c:4544
+#: access/transam/xlog.c:4551 access/transam/xlog.c:4558
+#: access/transam/xlog.c:4566 access/transam/xlog.c:4573
+#: access/transam/xlog.c:4582 access/transam/xlog.c:4589
+#: access/transam/xlog.c:4598 access/transam/xlog.c:4605
 #, c-format
 msgid "It looks like you need to recompile or initdb."
 msgstr "看上去, 你需要重新编译或初始化数据库."
 
-#: access/transam/xlog.c:5007
+#: access/transam/xlog.c:4513
 #, c-format
 msgid ""
 "The database cluster was initialized with RELSEG_SIZE %d, but the server was "
@@ -1281,7 +1395,7 @@ msgid ""
 msgstr ""
 "数据库簇是以 RELSEG_SIZE %d 初始化的, 但是 服务器是以 RELSEG_SIZE %d 编译的."
 
-#: access/transam/xlog.c:5014
+#: access/transam/xlog.c:4520
 #, c-format
 msgid ""
 "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was "
@@ -1290,7 +1404,7 @@ msgstr ""
 "数据库集群是以 XLOG_BLCKSZ %d 初始化的, 但是 服务器是以 XLOG_BLCKSZ %d 编译"
 "的."
 
-#: access/transam/xlog.c:5021
+#: access/transam/xlog.c:4527
 #, c-format
 msgid ""
 "The database cluster was initialized with XLOG_SEG_SIZE %d, but the server "
@@ -1299,7 +1413,7 @@ msgstr ""
 "数据库簇是以 XLOG_SEG_SIZE %d 初始化的, 但是 服务器是以 XLOG_SEG_SIZE %d 编译"
 "的."
 
-#: access/transam/xlog.c:5028
+#: access/transam/xlog.c:4534
 #, c-format
 msgid ""
 "The database cluster was initialized with NAMEDATALEN %d, but the server was "
@@ -1307,7 +1421,7 @@ msgid ""
 msgstr ""
 "数据库簇是以 NAMEDATALEN %d 初始化的, 但是 服务器是以 NAMEDATALEN %d 编译的."
 
-#: access/transam/xlog.c:5035
+#: access/transam/xlog.c:4541
 #, c-format
 msgid ""
 "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server "
@@ -1316,7 +1430,7 @@ msgstr ""
 "数据库集群是以 INDEX_MAX_KEYS  %d 初始化的, 但是 服务器是以 INDEX_MAX_KEYS "
 "%d 编译的."
 
-#: access/transam/xlog.c:5042
+#: access/transam/xlog.c:4548
 #, c-format
 msgid ""
 "The database cluster was initialized with TOAST_MAX_CHUNK_SIZE %d, but the "
@@ -1325,7 +1439,18 @@ msgstr ""
 "数据库集群是以 TOAST_MAX_CHUNK_SIZE %d 初始化的, 但是 服务器是以 "
 "TOAST_MAX_CHUNK_SIZE %d 编译的."
 
-#: access/transam/xlog.c:5051
+#: access/transam/xlog.c:4555
+#, c-format
+#| msgid ""
+#| "The database cluster was initialized with BLCKSZ %d, but the server was "
+#| "compiled with BLCKSZ %d."
+msgid ""
+"The database cluster was initialized with LOBLKSIZE %d, but the server was "
+"compiled with LOBLKSIZE %d."
+msgstr ""
+"数据库簇是以 LOBLKSIZE %d 初始化的, 但是 服务器是以 LOBLKSIZE %d 编译的."
+
+#: access/transam/xlog.c:4564
 #, c-format
 msgid ""
 "The database cluster was initialized without HAVE_INT64_TIMESTAMP but the "
@@ -1334,7 +1459,7 @@ msgstr ""
 "数据库簇初始化时没有定义 HAVE_INT64_TIMESTAMP, 但是 服务器编译时定义了 "
 "HAVE_INT64_TIMESTAMP."
 
-#: access/transam/xlog.c:5058
+#: access/transam/xlog.c:4571
 #, c-format
 msgid ""
 "The database cluster was initialized with HAVE_INT64_TIMESTAMP but the "
@@ -1343,7 +1468,7 @@ msgstr ""
 "数据库簇初始化时定义了 HAVE_INT64_TIMESTAMP, 但是 服务器编译时没有定义 "
 "HAVE_INT64_TIMESTAMP."
 
-#: access/transam/xlog.c:5067
+#: access/transam/xlog.c:4580
 #, c-format
 msgid ""
 "The database cluster was initialized without USE_FLOAT4_BYVAL but the server "
@@ -1352,7 +1477,7 @@ msgstr ""
 "数据库集群在初始化时没带有USE_FLOAT4_BYVAL选项, 但是服务器是以"
 "USE_FLOAT4_BYVAL选项编译的."
 
-#: access/transam/xlog.c:5074
+#: access/transam/xlog.c:4587
 #, c-format
 msgid ""
 "The database cluster was initialized with USE_FLOAT4_BYVAL but the server "
@@ -1361,7 +1486,7 @@ msgstr ""
 "数据库集群是以USE_FLOAT4_BYVAL 初始化的, 但是服务器是以USE_FLOAT4_BYVAL编译"
 "的."
 
-#: access/transam/xlog.c:5083
+#: access/transam/xlog.c:4596
 #, c-format
 msgid ""
 "The database cluster was initialized without USE_FLOAT8_BYVAL but the server "
@@ -1370,7 +1495,7 @@ msgstr ""
 "数据库集群在初始化时没有带有 USE_FLOAT8_BYVAL, 但是服务器是以 "
 "USE_FLOAT8_BYVAL编译的."
 
-#: access/transam/xlog.c:5090
+#: access/transam/xlog.c:4603
 #, c-format
 msgid ""
 "The database cluster was initialized with USE_FLOAT8_BYVAL but the server "
@@ -1379,54 +1504,84 @@ msgstr ""
 "数据库集群是以USE_FLOAT8_BYVAL初始化的, 但是 服务器没有以USE_FLOAT8_BYVAL编"
 "译."
 
-#: access/transam/xlog.c:5417
+#: access/transam/xlog.c:5004
 #, c-format
 msgid "could not write bootstrap transaction log file: %m"
 msgstr "无法写入 bootstrap 事务日志文件: %m"
 
-#: access/transam/xlog.c:5423
+#: access/transam/xlog.c:5010
 #, c-format
 msgid "could not fsync bootstrap transaction log file: %m"
 msgstr "无法同步 (fsync) 事务日志文件: %m"
 
-#: access/transam/xlog.c:5428
+#: access/transam/xlog.c:5015
 #, c-format
 msgid "could not close bootstrap transaction log file: %m"
 msgstr "无法关闭 bootstrap 事务日志文件: %m"
 
-#: access/transam/xlog.c:5495
+#: access/transam/xlog.c:5086
 #, c-format
 msgid "could not open recovery command file \"%s\": %m"
 msgstr "无法打开恢复命令文件 \"%s\": %m"
 
-#: access/transam/xlog.c:5535 access/transam/xlog.c:5626
-#: access/transam/xlog.c:5637 commands/extension.c:525
-#: commands/extension.c:533 utils/misc/guc.c:5343
+#: access/transam/xlog.c:5126 access/transam/xlog.c:5217
+#: access/transam/xlog.c:5228 commands/extension.c:527
+#: commands/extension.c:535 utils/misc/guc.c:5369
 #, c-format
 msgid "parameter \"%s\" requires a Boolean value"
 msgstr "参数 \"%s\" 需要一个布尔值"
 
-#: access/transam/xlog.c:5551
+#: access/transam/xlog.c:5142
 #, c-format
 msgid "recovery_target_timeline is not a valid number: \"%s\""
 msgstr "recovery_target_timeline 不是一个有效的数字: \"%s\""
 
-#: access/transam/xlog.c:5567
+#: access/transam/xlog.c:5158
 #, c-format
 msgid "recovery_target_xid is not a valid number: \"%s\""
 msgstr "recovery_target_xid 不是一个有效的数字: \"%s\""
 
-#: access/transam/xlog.c:5611
+#: access/transam/xlog.c:5189
 #, c-format
 msgid "recovery_target_name is too long (maximum %d characters)"
 msgstr "recovery_target_name 值超长 (最大长度为 %d 个字符)"
 
-#: access/transam/xlog.c:5658
+#: access/transam/xlog.c:5203
+#, c-format
+#| msgid "invalid value for parameter \"%s\": %d"
+msgid "invalid value for recovery parameter \"recovery_target\""
+msgstr "恢复参数\"recovery_target\"的值无效"
+
+#: access/transam/xlog.c:5204
+#, c-format
+msgid "The only allowed value is \"immediate\"."
+msgstr "唯一有效的值是\"immediate\"."
+
+#: access/transam/xlog.c:5263
+#, c-format
+#| msgid "parameter \"%s\" requires a Boolean value"
+msgid "parameter \"%s\" requires a temporal value"
+msgstr "参数 \"%s\" 需要一个临时值"
+
+#: access/transam/xlog.c:5265 catalog/dependency.c:970
+#: catalog/dependency.c:971 catalog/dependency.c:977 catalog/dependency.c:978
+#: catalog/dependency.c:989 catalog/dependency.c:990
+#: catalog/objectaddress.c:764 commands/tablecmds.c:763
+#: commands/tablecmds.c:8949 commands/user.c:988 commands/view.c:475
+#: libpq/auth.c:285 port/win32/security.c:51 storage/lmgr/deadlock.c:955
+#: storage/lmgr/proc.c:1184 utils/misc/guc.c:5401 utils/misc/guc.c:5526
+#: utils/misc/guc.c:8867 utils/misc/guc.c:8901 utils/misc/guc.c:8935
+#: utils/misc/guc.c:8969 utils/misc/guc.c:9004
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: access/transam/xlog.c:5271
 #, c-format
 msgid "unrecognized recovery parameter \"%s\""
 msgstr "未认可的恢复参数 \"%s\""
 
-#: access/transam/xlog.c:5669
+#: access/transam/xlog.c:5282
 #, c-format
 msgid ""
 "recovery command file \"%s\" specified neither primary_conninfo nor "
@@ -1434,14 +1589,14 @@ msgid ""
 msgstr ""
 "恢复命令文件 \"%s\" 既没有指定restore_command,也没有指定primary_conninfo"
 
-#: access/transam/xlog.c:5671
+#: access/transam/xlog.c:5284
 #, c-format
 msgid ""
 "The database server will regularly poll the pg_xlog subdirectory to check "
 "for files placed there."
 msgstr "数据服务器将会通过定期轮询pg_xlog子目录来检查放在这里的文件。"
 
-#: access/transam/xlog.c:5677
+#: access/transam/xlog.c:5290
 #, c-format
 msgid ""
 "recovery command file \"%s\" must specify restore_command when standby mode "
@@ -1449,52 +1604,58 @@ msgid ""
 msgstr ""
 "当没有启用备份模式的时候恢复命令文件 \"%s\" 必须指定 restore_command的值"
 
-#: access/transam/xlog.c:5697
+#: access/transam/xlog.c:5310
 #, c-format
 msgid "recovery target timeline %u does not exist"
 msgstr "恢复目标的时间线 %u 不存在"
 
-#: access/transam/xlog.c:5793
+#: access/transam/xlog.c:5407
 #, c-format
 msgid "archive recovery complete"
 msgstr "归档恢复完毕"
 
-#: access/transam/xlog.c:5918
+#: access/transam/xlog.c:5477 access/transam/xlog.c:5671
 #, c-format
-msgid "recovery stopping after commit of transaction %u, time %s"
-msgstr "恢复停止在事物 %u 提交之后, 时间 %s"
+#| msgid "recovery stopping after commit of transaction %u, time %s"
+msgid "recovery stopping after reaching consistency"
+msgstr "达到一致性前恢复停止"
 
-#: access/transam/xlog.c:5923
+#: access/transam/xlog.c:5552
 #, c-format
 msgid "recovery stopping before commit of transaction %u, time %s"
 msgstr "恢复停止在事物 %u 提交之前, 时间 %s"
 
-#: access/transam/xlog.c:5931
-#, c-format
-msgid "recovery stopping after abort of transaction %u, time %s"
-msgstr "恢复停止在事物 %u 中断之后, 时间 %s"
-
-#: access/transam/xlog.c:5936
+#: access/transam/xlog.c:5559
 #, c-format
 msgid "recovery stopping before abort of transaction %u, time %s"
 msgstr "恢复停止在事物 %u 中断之前, 时间 %s"
 
-#: access/transam/xlog.c:5945
+#: access/transam/xlog.c:5601
 #, c-format
 msgid "recovery stopping at restore point \"%s\", time %s"
 msgstr "恢复停止在恢复点 \"%s\", 时间 %s"
 
-#: access/transam/xlog.c:5979
+#: access/transam/xlog.c:5651
+#, c-format
+msgid "recovery stopping after commit of transaction %u, time %s"
+msgstr "恢复停止在事物 %u 提交之后, 时间 %s"
+
+#: access/transam/xlog.c:5659
+#, c-format
+msgid "recovery stopping after abort of transaction %u, time %s"
+msgstr "恢复停止在事物 %u 中断之后, 时间 %s"
+
+#: access/transam/xlog.c:5698
 #, c-format
 msgid "recovery has paused"
 msgstr "恢复操作已暂停"
 
-#: access/transam/xlog.c:5980
+#: access/transam/xlog.c:5699
 #, c-format
 msgid "Execute pg_xlog_replay_resume() to continue."
 msgstr "执行 pg_xlog_replay_resume() 以继续."
 
-#: access/transam/xlog.c:6110
+#: access/transam/xlog.c:5914
 #, c-format
 msgid ""
 "hot standby is not possible because %s = %d is a lower setting than on the "
@@ -1503,12 +1664,12 @@ msgstr ""
 "在备用点无法实施热备操作,因为%s = %d这个设置低于在主服务器的设置(它的值"
 "是%d)"
 
-#: access/transam/xlog.c:6132
+#: access/transam/xlog.c:5936
 #, c-format
 msgid "WAL was generated with wal_level=minimal, data may be missing"
 msgstr "WAL文件由wal_level=minimal的设置而产生,这种情况下数据可能会丢失"
 
-#: access/transam/xlog.c:6133
+#: access/transam/xlog.c:5937
 #, c-format
 msgid ""
 "This happens if you temporarily set wal_level=minimal without taking a new "
@@ -1516,15 +1677,19 @@ msgid ""
 msgstr ""
 "发生这种情况是因为您临时将wal_level设置为minimal,而没有同时进行基础备份"
 
-#: access/transam/xlog.c:6144
+#: access/transam/xlog.c:5948
 #, c-format
+#| msgid ""
+#| "hot standby is not possible because wal_level was not set to \"hot_standby"
+#| "\" on the master server"
 msgid ""
 "hot standby is not possible because wal_level was not set to \"hot_standby\" "
-"on the master server"
+"or higher on the master server"
 msgstr ""
-"无法实施热备份,因为在主用服务器上参数wal_level没有设置为\"hot_standby\""
+"无法实施热备份,因为在主用服务器上参数wal_level没有设置为\"hot_standby\"或更"
+"高等级的值"
 
-#: access/transam/xlog.c:6145
+#: access/transam/xlog.c:5949
 #, c-format
 msgid ""
 "Either set wal_level to \"hot_standby\" on the master, or turn off "
@@ -1532,44 +1697,44 @@ msgid ""
 msgstr ""
 "在这里既可以将参数wal_level设置为\"hot_standby\" ,也可以将hot_standby关闭"
 
-#: access/transam/xlog.c:6195
+#: access/transam/xlog.c:6004
 #, c-format
 msgid "control file contains invalid data"
 msgstr "控制文件包含无效的数据"
 
-#: access/transam/xlog.c:6199
+#: access/transam/xlog.c:6010
 #, c-format
 msgid "database system was shut down at %s"
 msgstr "数据库上次关闭时间为 %s"
 
-#: access/transam/xlog.c:6203
+#: access/transam/xlog.c:6015
 #, c-format
 msgid "database system was shut down in recovery at %s"
 msgstr "在%s,数据库在恢复中关闭"
 
-#: access/transam/xlog.c:6207
+#: access/transam/xlog.c:6019
 #, c-format
 msgid "database system shutdown was interrupted; last known up at %s"
 msgstr "数据库系统关闭操作被中断;上一次已知的运行是在%s"
 
-#: access/transam/xlog.c:6211
+#: access/transam/xlog.c:6023
 #, c-format
 msgid "database system was interrupted while in recovery at %s"
 msgstr "恢复时, 数据库系统在 %s 被中断"
 
-#: access/transam/xlog.c:6213
+#: access/transam/xlog.c:6025
 #, c-format
 msgid ""
 "This probably means that some data is corrupted and you will have to use the "
 "last backup for recovery."
 msgstr "这意味着一些数据被毁坏, 你将不得不使用最新的备份恢复."
 
-#: access/transam/xlog.c:6217
+#: access/transam/xlog.c:6029
 #, c-format
 msgid "database system was interrupted while in recovery at log time %s"
 msgstr "当日志时间%s进行恢复时,数据库系统被中断"
 
-#: access/transam/xlog.c:6219
+#: access/transam/xlog.c:6031
 #, c-format
 msgid ""
 "If this has occurred more than once some data might be corrupted and you "
@@ -1578,169 +1743,210 @@ msgstr ""
 "如果这种现象多次发生,那么表示数据可能已经损坏,您可能需要选择更早一点的恢复"
 "目标"
 
-#: access/transam/xlog.c:6223
+#: access/transam/xlog.c:6035
 #, c-format
 msgid "database system was interrupted; last known up at %s"
 msgstr "数据库系统中断;上一次的启动时间是在%s"
 
-#: access/transam/xlog.c:6272
-#, c-format
-msgid "requested timeline %u is not a child of database system timeline %u"
-msgstr "所要求的时间线%u不附属数据库系统时间线%u"
-
-#: access/transam/xlog.c:6290
+#: access/transam/xlog.c:6089
 #, c-format
 msgid "entering standby mode"
 msgstr "正在进入备用模式"
 
-#: access/transam/xlog.c:6293
+#: access/transam/xlog.c:6092
 #, c-format
 msgid "starting point-in-time recovery to XID %u"
 msgstr "开始执行到XID %u的基于时间点恢复"
 
-#: access/transam/xlog.c:6297
+#: access/transam/xlog.c:6096
 #, c-format
 msgid "starting point-in-time recovery to %s"
 msgstr "开始执行到%s的基于时间点恢复"
 
-#: access/transam/xlog.c:6301
+#: access/transam/xlog.c:6100
 #, c-format
 msgid "starting point-in-time recovery to \"%s\""
 msgstr "开始执行到基于时间点恢复的时间点\"%s\""
 
-#: access/transam/xlog.c:6305
+#: access/transam/xlog.c:6104
+#, c-format
+#| msgid "starting point-in-time recovery to %s"
+msgid "starting point-in-time recovery to earliest consistent point"
+msgstr "开始执行到最早一致点的基于时间点恢复"
+
+#: access/transam/xlog.c:6107
 #, c-format
 msgid "starting archive recovery"
 msgstr "开始归档恢复"
 
-#: access/transam/xlog.c:6328 access/transam/xlog.c:6368
+#: access/transam/xlog.c:6124
+#, c-format
+msgid "Failed while allocating an XLog reading processor."
+msgstr "分配XLog读取处理器失败."
+
+#: access/transam/xlog.c:6149 access/transam/xlog.c:6216
 #, c-format
 msgid "checkpoint record is at %X/%X"
 msgstr "checkpoint 记录位置在 %X/%X"
 
-#: access/transam/xlog.c:6342
+#: access/transam/xlog.c:6163
 #, c-format
 msgid "could not find redo location referenced by checkpoint record"
 msgstr "无法找到checkpoint 记录对应的重做日志位置"
 
-#: access/transam/xlog.c:6343 access/transam/xlog.c:6350
+#: access/transam/xlog.c:6164 access/transam/xlog.c:6171
 #, c-format
 msgid ""
 "If you are not restoring from a backup, try removing the file \"%s/"
 "backup_label\"."
 msgstr "如果你不是从备份恢复, 请删除 \"%s/backup_label\"."
 
-#: access/transam/xlog.c:6349
+#: access/transam/xlog.c:6170
 #, c-format
 msgid "could not locate required checkpoint record"
 msgstr "无法找到需要的 checkpoint 记录"
 
-#: access/transam/xlog.c:6378 access/transam/xlog.c:6393
+#: access/transam/xlog.c:6226 access/transam/xlog.c:6241
 #, c-format
 msgid "could not locate a valid checkpoint record"
 msgstr "无法找到一个有效的 checkpoint 记录"
 
-#: access/transam/xlog.c:6387
+#: access/transam/xlog.c:6235
 #, c-format
 msgid "using previous checkpoint record at %X/%X"
 msgstr "使用在 %X/%X 的前一个 checkpoint 记录"
 
-#: access/transam/xlog.c:6402
+#: access/transam/xlog.c:6265
+#, c-format
+#| msgid "requested timeline %u is not a child of database system timeline %u"
+msgid "requested timeline %u is not a child of this server's history"
+msgstr "所要求的时间线%u不在服务器的历史时间线里"
+
+#: access/transam/xlog.c:6267
+#, c-format
+msgid ""
+"Latest checkpoint is at %X/%X on timeline %u, but in the history of the "
+"requested timeline, the server forked off from that timeline at %X/%X."
+msgstr ""
+"最近的检查点位于%X/%X,时间点为%u, 但是在请求的历史时间点中,服务器端在那个时"
+"间点会产生分支%X/%X."
+
+#: access/transam/xlog.c:6283
+#, c-format
+#| msgid "requested timeline %u is not a child of database system timeline %u"
+msgid ""
+"requested timeline %u does not contain minimum recovery point %X/%X on "
+"timeline %u"
+msgstr "所要求的时间线%u不包含最小恢复点%X/%X,在时间线%u处"
+
+#: access/transam/xlog.c:6292
 #, c-format
 msgid "redo record is at %X/%X; shutdown %s"
 msgstr "重做记录是在%X/%X; 关闭 %s"
 
-#: access/transam/xlog.c:6406
+#: access/transam/xlog.c:6296
 #, c-format
 msgid "next transaction ID: %u/%u; next OID: %u"
 msgstr "下一个事务ID: %u/%u; 下一个 OID: %u"
 
-#: access/transam/xlog.c:6410
+#: access/transam/xlog.c:6300
 #, c-format
 msgid "next MultiXactId: %u; next MultiXactOffset: %u"
 msgstr "下一个MultiXactId: %u; 下一个MultiXactOffset: %u"
 
-#: access/transam/xlog.c:6413
+#: access/transam/xlog.c:6303
 #, c-format
 msgid "oldest unfrozen transaction ID: %u, in database %u"
 msgstr "在数据库%2$u中,最旧的非冻结事务ID是%1$u"
 
-#: access/transam/xlog.c:6417
+#: access/transam/xlog.c:6306
+#, c-format
+#| msgid "oldest unfrozen transaction ID: %u, in database %u"
+msgid "oldest MultiXactId: %u, in database %u"
+msgstr "在数据库%2$u中,最旧的事务ID是%1$u"
+
+#: access/transam/xlog.c:6310
 #, c-format
 msgid "invalid next transaction ID"
 msgstr "无效的下一个事务 ID"
 
-#: access/transam/xlog.c:6441
+#: access/transam/xlog.c:6380
 #, c-format
 msgid "invalid redo in checkpoint record"
 msgstr "在检查点记录中无效的redo操作"
 
-#: access/transam/xlog.c:6452
+#: access/transam/xlog.c:6391
 #, c-format
 msgid "invalid redo record in shutdown checkpoint"
 msgstr "在关闭检查点中的redo记录无效"
 
-#: access/transam/xlog.c:6483
+#: access/transam/xlog.c:6422
 #, c-format
 msgid ""
 "database system was not properly shut down; automatic recovery in progress"
 msgstr "数据库系统没有正确的关闭; 处于自动恢复状态中"
 
-#: access/transam/xlog.c:6515
+#: access/transam/xlog.c:6426
+#, c-format
+#| msgid "recovery target timeline %u does not exist"
+msgid "crash recovery starts in timeline %u and has target timeline %u"
+msgstr "崩溃恢复开始于时间线%u, 目标时间线是%u"
+
+#: access/transam/xlog.c:6463
 #, c-format
 msgid "backup_label contains data inconsistent with control file"
 msgstr "backup_label 包含了与控制文件不一致的数据"
 
-#: access/transam/xlog.c:6516
+#: access/transam/xlog.c:6464
 #, c-format
 msgid ""
 "This means that the backup is corrupted and you will have to use another "
 "backup for recovery."
 msgstr "这意味着一些数据备份已毁坏, 你将不得不使用别的备份进行恢复."
 
-#: access/transam/xlog.c:6580
+#: access/transam/xlog.c:6529
 #, c-format
 msgid "initializing for hot standby"
 msgstr "正在为热备进行初始化"
 
-#: access/transam/xlog.c:6711
+#: access/transam/xlog.c:6661
 #, c-format
 msgid "redo starts at %X/%X"
 msgstr "redo 在 %X/%X 开始"
 
-#: access/transam/xlog.c:6848
+#: access/transam/xlog.c:6876
 #, c-format
 msgid "redo done at %X/%X"
 msgstr "redo 在 %X/%X 完成"
 
-#: access/transam/xlog.c:6853 access/transam/xlog.c:8493
+#: access/transam/xlog.c:6881 access/transam/xlog.c:8735
 #, c-format
 msgid "last completed transaction was at log time %s"
 msgstr "上一次完成事务是在日志时间%s完成的."
 
-#: access/transam/xlog.c:6861
+#: access/transam/xlog.c:6889
 #, c-format
 msgid "redo is not required"
 msgstr "不需要 redo"
 
-#: access/transam/xlog.c:6909
+#: access/transam/xlog.c:6947
 #, c-format
 msgid "requested recovery stop point is before consistent recovery point"
 msgstr "所要求的恢复停止点在一致性恢复点之前"
 
-#: access/transam/xlog.c:6925 access/transam/xlog.c:6929
+#: access/transam/xlog.c:6963 access/transam/xlog.c:6967
 #, c-format
 msgid "WAL ends before end of online backup"
 msgstr "联机备份终止之前,WAL已经终止"
 
-#: access/transam/xlog.c:6926
+#: access/transam/xlog.c:6964
 #, c-format
 msgid ""
 "All WAL generated while online backup was taken must be available at "
 "recovery."
 msgstr "所有联机备份时产生的WAL日志在恢复时必须存在."
 
-#: access/transam/xlog.c:6930
+#: access/transam/xlog.c:6968
 #, c-format
 msgid ""
 "Online backup started with pg_start_backup() must be ended with "
@@ -1749,280 +1955,318 @@ msgstr ""
 "由pg_start_backup()发起的联机备份必须通过调用pg_stop_backup()来终止, 并且到那"
 "一刻为止所有的WAL日志在恢复时必须存在."
 
-#: access/transam/xlog.c:6933
+#: access/transam/xlog.c:6971
 #, c-format
 msgid "WAL ends before consistent recovery point"
 msgstr "在一致性恢复点前结束WAL"
 
-#: access/transam/xlog.c:6955
+#: access/transam/xlog.c:6998
 #, c-format
 msgid "selected new timeline ID: %u"
 msgstr "已选择的新时间线ID:%u"
 
-#: access/transam/xlog.c:7247
+#: access/transam/xlog.c:7339
 #, c-format
 msgid "consistent recovery state reached at %X/%X"
 msgstr "在%X/%X上已到达一致性恢复状态"
 
-#: access/transam/xlog.c:7414
+#: access/transam/xlog.c:7536
 #, c-format
 msgid "invalid primary checkpoint link in control file"
 msgstr "在控制文件中无效的主 checkpoint 链接"
 
-#: access/transam/xlog.c:7418
+#: access/transam/xlog.c:7540
 #, c-format
 msgid "invalid secondary checkpoint link in control file"
 msgstr "在控制文件中无效的次 checkpoint 链接"
 
-#: access/transam/xlog.c:7422
+#: access/transam/xlog.c:7544
 #, c-format
 msgid "invalid checkpoint link in backup_label file"
 msgstr "在 backup_label 文件中无效的 checkpoint 链接"
 
-#: access/transam/xlog.c:7436
+#: access/transam/xlog.c:7561
 #, c-format
 msgid "invalid primary checkpoint record"
 msgstr "无效的主 checkpoint 记录"
 
-#: access/transam/xlog.c:7440
+#: access/transam/xlog.c:7565
 #, c-format
 msgid "invalid secondary checkpoint record"
 msgstr "无效的次 checkpoint 记录"
 
-#: access/transam/xlog.c:7444
+#: access/transam/xlog.c:7569
 #, c-format
 msgid "invalid checkpoint record"
 msgstr "无效的 checkpoint 记录"
 
-#: access/transam/xlog.c:7455
+#: access/transam/xlog.c:7580
 #, c-format
 msgid "invalid resource manager ID in primary checkpoint record"
 msgstr "在主 checkpoint 记录中的无效资源管理器 ID"
 
-#: access/transam/xlog.c:7459
+#: access/transam/xlog.c:7584
 #, c-format
 msgid "invalid resource manager ID in secondary checkpoint record"
 msgstr "在次 checkpoint 记录中的无效资源管理器 ID"
 
-#: access/transam/xlog.c:7463
+#: access/transam/xlog.c:7588
 #, c-format
 msgid "invalid resource manager ID in checkpoint record"
 msgstr "在 checkpoint 记录中的无效资源管理器 ID"
 
-#: access/transam/xlog.c:7475
+#: access/transam/xlog.c:7600
 #, c-format
 msgid "invalid xl_info in primary checkpoint record"
 msgstr "在主 checkpoint 记录中无效的 xl_info"
 
-#: access/transam/xlog.c:7479
+#: access/transam/xlog.c:7604
 #, c-format
 msgid "invalid xl_info in secondary checkpoint record"
 msgstr "在次 checkpoint 记录中无效的 xl_info"
 
-#: access/transam/xlog.c:7483
+#: access/transam/xlog.c:7608
 #, c-format
 msgid "invalid xl_info in checkpoint record"
 msgstr "在 checkpoint 记录中无效的 xl_info"
 
-#: access/transam/xlog.c:7495
+#: access/transam/xlog.c:7620
 #, c-format
 msgid "invalid length of primary checkpoint record"
 msgstr "无效的主 checkpoint 记录长度"
 
-#: access/transam/xlog.c:7499
+#: access/transam/xlog.c:7624
 #, c-format
 msgid "invalid length of secondary checkpoint record"
 msgstr "无效的次 checkpoint 记录长度"
 
-#: access/transam/xlog.c:7503
+#: access/transam/xlog.c:7628
 #, c-format
 msgid "invalid length of checkpoint record"
 msgstr "无效的 checkpoint 记录长度"
 
-#: access/transam/xlog.c:7672
+#: access/transam/xlog.c:7788
 #, c-format
 msgid "shutting down"
 msgstr "正在关闭"
 
-#: access/transam/xlog.c:7694
+#: access/transam/xlog.c:7811
 #, c-format
 msgid "database system is shut down"
 msgstr "数据库系统已关闭"
 
-#: access/transam/xlog.c:8140
+#: access/transam/xlog.c:8277
 #, c-format
 msgid ""
 "concurrent transaction log activity while database system is shutting down"
 msgstr "当数据库正在关闭时, 仍有活跃的并发事物日志"
 
-#: access/transam/xlog.c:8351
+#: access/transam/xlog.c:8546
 #, c-format
 msgid "skipping restartpoint, recovery has already ended"
 msgstr "正在跳过重新启动点, 恢复已经结束"
 
-#: access/transam/xlog.c:8374
+#: access/transam/xlog.c:8569
 #, c-format
 msgid "skipping restartpoint, already performed at %X/%X"
 msgstr "跳过重新启动点,它已经在%X/%X上执行了."
 
-#: access/transam/xlog.c:8491
+#: access/transam/xlog.c:8733
 #, c-format
 msgid "recovery restart point at %X/%X"
 msgstr "恢复得重新启动点是在%X/%X开始"
 
-#: access/transam/xlog.c:8635
+#: access/transam/xlog.c:8878
 #, c-format
 msgid "restore point \"%s\" created at %X/%X"
 msgstr "恢复点\"%s\",创建于%X/%X"
 
-#: access/transam/xlog.c:8806
+#: access/transam/xlog.c:9102
 #, c-format
-msgid "online backup was canceled, recovery cannot continue"
-msgstr "在线备份操作已取消,恢复操作无法继续"
+#| msgid "unexpected timeline ID %u (after %u) in checkpoint record"
+msgid ""
+"unexpected previous timeline ID %u (current timeline ID %u) in checkpoint "
+"record"
+msgstr "在检查点记录中出现未期望的时间线ID%u(当前时间线%u)"
 
-#: access/transam/xlog.c:8869
+#: access/transam/xlog.c:9111
 #, c-format
 msgid "unexpected timeline ID %u (after %u) in checkpoint record"
 msgstr "在检查点记录中出现未期望的时间线ID%u(在%u之后)"
 
-#: access/transam/xlog.c:8918
+#: access/transam/xlog.c:9127
+#, c-format
+msgid ""
+"unexpected timeline ID %u in checkpoint record, before reaching minimum "
+"recovery point %X/%X on timeline %u"
+msgstr ""
+"在达到最小恢复点%2$X/%3$X之前,时间点%4$u处,在检查点记录中出现意外的时间点"
+"ID %1$u"
+
+#: access/transam/xlog.c:9195
+#, c-format
+msgid "online backup was canceled, recovery cannot continue"
+msgstr "在线备份操作已取消,恢复操作无法继续"
+
+#: access/transam/xlog.c:9256 access/transam/xlog.c:9305
+#: access/transam/xlog.c:9328
 #, c-format
 msgid "unexpected timeline ID %u (should be %u) in checkpoint record"
 msgstr "在检查点记录中出现未期望的时间线ID%u(应该是%u)"
 
-#: access/transam/xlog.c:9215 access/transam/xlog.c:9239
+#: access/transam/xlog.c:9563
 #, c-format
-msgid "could not fsync log file %u, segment %u: %m"
-msgstr "无法同步 (fsync) 日志文件 %u, 段 %u: %m"
+#| msgid "could not fsync log file %u, segment %u: %m"
+msgid "could not fsync log segment %s: %m"
+msgstr "无法同步 (fsync) 日志段 %s: %m"
 
-#: access/transam/xlog.c:9247
+#: access/transam/xlog.c:9587
 #, c-format
-msgid "could not fsync write-through log file %u, segment %u: %m"
-msgstr "无法同步 (fsync) 日志文件 %u, 段 %u: %m"
+#| msgid "could not fsync file \"%s\": %m"
+msgid "could not fsync log file %s: %m"
+msgstr "无法 fsync 日志文件 %s: %m"
 
-#: access/transam/xlog.c:9256
+#: access/transam/xlog.c:9595
 #, c-format
-msgid "could not fdatasync log file %u, segment %u: %m"
-msgstr "无法同步 (fdatasync) 日志文件 %u, 段 %u: %m"
+#| msgid "could not fsync write-through log file %u, segment %u: %m"
+msgid "could not fsync write-through log file %s: %m"
+msgstr "无法同步 (fsync) 写入日志文件%s: %m"
 
-#: access/transam/xlog.c:9312 access/transam/xlog.c:9642
+#: access/transam/xlog.c:9604
 #, c-format
-msgid "must be superuser or replication role to run a backup"
-msgstr "运行备份必须为超级用户或者是复制角色用户"
+#| msgid "could not fdatasync log file %u, segment %u: %m"
+msgid "could not fdatasync log file %s: %m"
+msgstr "无法同步 (fdatasync) 日志文件 %s: %m"
 
-#: access/transam/xlog.c:9320 access/transam/xlog.c:9650
-#: access/transam/xlogfuncs.c:107 access/transam/xlogfuncs.c:139
-#: access/transam/xlogfuncs.c:181 access/transam/xlogfuncs.c:205
-#: access/transam/xlogfuncs.c:288 access/transam/xlogfuncs.c:365
+#: access/transam/xlog.c:9682 access/transam/xlog.c:10018
+#: access/transam/xlogfuncs.c:111 access/transam/xlogfuncs.c:140
+#: access/transam/xlogfuncs.c:179 access/transam/xlogfuncs.c:200
+#: access/transam/xlogfuncs.c:270 access/transam/xlogfuncs.c:326
 #, c-format
 msgid "recovery is in progress"
 msgstr "恢复操作正在进行中"
 
-#: access/transam/xlog.c:9321 access/transam/xlog.c:9651
-#: access/transam/xlogfuncs.c:108 access/transam/xlogfuncs.c:140
-#: access/transam/xlogfuncs.c:182 access/transam/xlogfuncs.c:206
+#: access/transam/xlog.c:9683 access/transam/xlog.c:10019
+#: access/transam/xlogfuncs.c:112 access/transam/xlogfuncs.c:141
+#: access/transam/xlogfuncs.c:180 access/transam/xlogfuncs.c:201
 #, c-format
 msgid "WAL control functions cannot be executed during recovery."
 msgstr "在恢复期间无法执行WAL控制函数"
 
-#: access/transam/xlog.c:9330 access/transam/xlog.c:9660
+#: access/transam/xlog.c:9692 access/transam/xlog.c:10028
 #, c-format
 msgid "WAL level not sufficient for making an online backup"
 msgstr "WAL的级别不能满足在线备份的要求"
 
-#: access/transam/xlog.c:9331 access/transam/xlog.c:9661
-#: access/transam/xlogfuncs.c:146
+#: access/transam/xlog.c:9693 access/transam/xlog.c:10029
+#: access/transam/xlogfuncs.c:147
 #, c-format
+#| msgid ""
+#| "wal_level must be set to \"archive\" or \"hot_standby\" at server start."
 msgid ""
-"wal_level must be set to \"archive\" or \"hot_standby\" at server start."
-msgstr "在服务器启动的时候wal_level必须被设置为\"archive\"或\"hot_standby\"."
+"wal_level must be set to \"archive\", \"hot_standby\", or \"logical\" at "
+"server start."
+msgstr ""
+"在服务器启动的时候wal_level必须被设置为\"archive\",\"hot_standby\"或\"logical"
+"\"."
 
-#: access/transam/xlog.c:9336
+#: access/transam/xlog.c:9698
 #, c-format
 msgid "backup label too long (max %d bytes)"
 msgstr "备份标签名超长(最大为%d字节)"
 
-#: access/transam/xlog.c:9367 access/transam/xlog.c:9543
+#: access/transam/xlog.c:9729 access/transam/xlog.c:9906
 #, c-format
 msgid "a backup is already in progress"
 msgstr "一个备份已经在运行中"
 
-#: access/transam/xlog.c:9368
+#: access/transam/xlog.c:9730
 #, c-format
 msgid "Run pg_stop_backup() and try again."
 msgstr "运行pg_stop_backup(),然后重新尝试一次."
 
-#: access/transam/xlog.c:9461
+#: access/transam/xlog.c:9824
 #, c-format
 msgid ""
 "WAL generated with full_page_writes=off was replayed since last restartpoint"
 msgstr "使用full_page_writes=off产生的WAL日志自最后一次重启点,已经重做了"
 
-#: access/transam/xlog.c:9463 access/transam/xlog.c:9810
-#, fuzzy, c-format
+#: access/transam/xlog.c:9826 access/transam/xlog.c:10179
+#, c-format
 msgid ""
 "This means that the backup being taken on the standby is corrupt and should "
 "not be used. Enable full_page_writes and run CHECKPOINT on the master, and "
 "then try an online backup again."
 msgstr ""
 "这意味着备用节点上的备份已经损坏,不应该使用。启用 full_page_writes并在主节点"
-"上运行CHECKPOING,然后再试着执行联机备份."
+"上运行CHECKPOINT,然后再试着执行联机备份."
+
+#: access/transam/xlog.c:9900 access/transam/xlog.c:10069
+#: access/transam/xlogarchive.c:106 access/transam/xlogarchive.c:265
+#: guc-file.l:885 replication/basebackup.c:464 replication/basebackup.c:521
+#: replication/logical/snapbuild.c:1478 storage/file/copydir.c:72
+#: storage/file/copydir.c:115 utils/adt/dbsize.c:68 utils/adt/dbsize.c:218
+#: utils/adt/dbsize.c:298 utils/adt/genfile.c:108 utils/adt/genfile.c:280
+#, c-format
+msgid "could not stat file \"%s\": %m"
+msgstr "无法取文件 \"%s\" 的状态: %m"
 
-#: access/transam/xlog.c:9544
+#: access/transam/xlog.c:9907
 #, c-format
 msgid ""
 "If you're sure there is no backup in progress, remove file \"%s\" and try "
 "again."
 msgstr "如果你确认没有其他备份进程在运行, 删除文件 \"%s\", 然后重试."
 
-#: access/transam/xlog.c:9561 access/transam/xlog.c:9869
+#: access/transam/xlog.c:9924 access/transam/xlog.c:10242
 #, c-format
 msgid "could not write file \"%s\": %m"
 msgstr "无法写入文件 \"%s\": %m"
 
-#: access/transam/xlog.c:9705
+#: access/transam/xlog.c:10073
 #, c-format
 msgid "a backup is not in progress"
 msgstr "没有备份在运行中"
 
-#: access/transam/xlog.c:9744 access/transam/xlog.c:9756
-#: access/transam/xlog.c:10110 access/transam/xlog.c:10116
+#: access/transam/xlog.c:10112 access/transam/xlog.c:10125
+#: access/transam/xlog.c:10476 access/transam/xlog.c:10482
+#: access/transam/xlogfuncs.c:498
 #, c-format
 msgid "invalid data in file \"%s\""
 msgstr "文件 \"%s\" 中存在无效数据"
 
-#: access/transam/xlog.c:9760
+#: access/transam/xlog.c:10129 replication/basebackup.c:951
 #, c-format
 msgid "the standby was promoted during online backup"
 msgstr "联机备份期间,备用节点已提升为主节点"
 
-#: access/transam/xlog.c:9761
+#: access/transam/xlog.c:10130 replication/basebackup.c:952
 #, c-format
 msgid ""
 "This means that the backup being taken is corrupt and should not be used. "
 "Try taking another online backup."
 msgstr "这意味着备用节点上的备份已经损坏,不应该使用. 请尝试再次执行联机备份."
 
-#: access/transam/xlog.c:9808
+#: access/transam/xlog.c:10177
 #, c-format
 msgid ""
 "WAL generated with full_page_writes=off was replayed during online backup"
 msgstr "由full_page_writes=off产生的WAL日志在联机备份期间已经完成重做"
 
-#: access/transam/xlog.c:9918
+#: access/transam/xlog.c:10291
 #, c-format
 msgid ""
 "pg_stop_backup cleanup done, waiting for required WAL segments to be archived"
 msgstr "pg_stop_backup命令所执行的清理操作已完成,正在等待所要求的WAL段归档"
 
-#: access/transam/xlog.c:9928
+#: access/transam/xlog.c:10301
 #, c-format
 msgid ""
 "pg_stop_backup still waiting for all required WAL segments to be archived "
 "(%d seconds elapsed)"
 msgstr "pg_stop_backup在等待所有需要的WAL段归档(已过去%d秒)"
 
-#: access/transam/xlog.c:9930
+#: access/transam/xlog.c:10303
 #, c-format
 msgid ""
 "Check that your archive_command is executing properly.  pg_stop_backup can "
@@ -2032,12 +2276,12 @@ msgstr ""
 "请检查您的归档命令是否正确执行。pg_stop_backup命令可以安全退出,但是如果没有"
 "所有需要的WAL段,数据库备份将无法使用."
 
-#: access/transam/xlog.c:9937
+#: access/transam/xlog.c:10310
 #, c-format
 msgid "pg_stop_backup complete, all required WAL segments have been archived"
 msgstr "pg_stop_backup 执行完成,所有需要的WAL段都已经归档完成。"
 
-#: access/transam/xlog.c:9941
+#: access/transam/xlog.c:10314
 #, c-format
 msgid ""
 "WAL archiving is not enabled; you must ensure that all required WAL segments "
@@ -2045,696 +2289,742 @@ msgid ""
 msgstr ""
 "没有启用WAL归档;您必须确保所有的WAL段已通过其他的方法拷贝,这样才能完成备份"
 
-#: access/transam/xlog.c:10160
+#: access/transam/xlog.c:10527
 #, c-format
 msgid "xlog redo %s"
 msgstr "xlog重做 %s"
 
-#: access/transam/xlog.c:10200
+#: access/transam/xlog.c:10567
 #, c-format
 msgid "online backup mode canceled"
 msgstr "在线备份模式已取消"
 
-#: access/transam/xlog.c:10201
+#: access/transam/xlog.c:10568
 #, c-format
 msgid "\"%s\" was renamed to \"%s\"."
 msgstr "\"%s\" 被重新命名为\"%s\"."
 
-#: access/transam/xlog.c:10208
+#: access/transam/xlog.c:10575
 #, c-format
 msgid "online backup mode was not canceled"
 msgstr "在线备份模式没有取消"
 
-#: access/transam/xlog.c:10209
+#: access/transam/xlog.c:10576
 #, c-format
 msgid "Could not rename \"%s\" to \"%s\": %m."
 msgstr "无法把文件 \"%s\" 重命名为 \"%s\": %m"
 
-#: access/transam/xlog.c:10556 access/transam/xlog.c:10578
+#: access/transam/xlog.c:10696 replication/logical/logicalfuncs.c:169
+#: replication/walreceiver.c:937 replication/walsender.c:2106
 #, c-format
-msgid "could not read from log file %u, segment %u, offset %u: %m"
-msgstr "无法从日志文件 %u 读取, 段 %u, 偏移量 %u: %m"
+#| msgid "could not seek in log file %u, segment %u to offset %u: %m"
+msgid "could not seek in log segment %s to offset %u: %m"
+msgstr "无法在日志段%s中查找, 偏移量 %u: %m"
 
-#: access/transam/xlog.c:10667
+#: access/transam/xlog.c:10708
+#, c-format
+#| msgid "could not read from log file %u, segment %u, offset %u: %m"
+msgid "could not read from log segment %s, offset %u: %m"
+msgstr "无法从日志段%s中读取偏移量 %u: %m"
+
+#: access/transam/xlog.c:11171
 #, c-format
 msgid "received promote request"
 msgstr "接收到提或请求"
 
-#: access/transam/xlog.c:10680
+#: access/transam/xlog.c:11184
 #, c-format
 msgid "trigger file found: %s"
 msgstr "已找到触发器文件:%s"
 
-#: access/transam/xlogfuncs.c:102
+#: access/transam/xlog.c:11193
+#, c-format
+#| msgid "could not stat file \"%s\": %m"
+msgid "could not stat trigger file \"%s\": %m"
+msgstr "无法统计触发器文件 \"%s\": %m"
+
+#: access/transam/xlogarchive.c:244
+#, c-format
+msgid "archive file \"%s\" has wrong size: %lu instead of %lu"
+msgstr "归档文件\"%s\"大小错误:应该是%lu而不是%lu"
+
+#: access/transam/xlogarchive.c:253
+#, c-format
+msgid "restored log file \"%s\" from archive"
+msgstr "从归档中恢复日志文件 \"%s\""
+
+#: access/transam/xlogarchive.c:303
+#, c-format
+#| msgid "could not restore file \"%s\" from archive: return code %d"
+msgid "could not restore file \"%s\" from archive: %s"
+msgstr "无法从归档文件%2$s中恢复文件 \"%1$s\""
+
+#. translator: First %s represents a recovery.conf parameter name like
+#. "recovery_end_command", the 2nd is the value of that parameter, the
+#. third an already translated error message.
+#: access/transam/xlogarchive.c:415
+#, c-format
+#| msgid "%s %s%s%s: %s"
+msgid "%s \"%s\": %s"
+msgstr "%s \"%s\": %s"
+
+#: access/transam/xlogarchive.c:525 access/transam/xlogarchive.c:594
+#, c-format
+msgid "could not create archive status file \"%s\": %m"
+msgstr "无法创建归档状态文件 \"%s\": %m"
+
+#: access/transam/xlogarchive.c:533 access/transam/xlogarchive.c:602
+#, c-format
+msgid "could not write archive status file \"%s\": %m"
+msgstr "无法写入归档状态文件 \"%s\": %m"
+
+#: access/transam/xlogfuncs.c:60 access/transam/xlogfuncs.c:88
+#, c-format
+msgid "must be superuser or replication role to run a backup"
+msgstr "运行备份必须为超级用户或者是复制角色用户"
+
+#: access/transam/xlogfuncs.c:106
 #, c-format
 msgid "must be superuser to switch transaction log files"
 msgstr "必须为超级用户才能切换事务日志文件"
 
-#: access/transam/xlogfuncs.c:134
+#: access/transam/xlogfuncs.c:135
 #, c-format
 msgid "must be superuser to create a restore point"
 msgstr "只有超级用户能创建恢复点"
 
-#: access/transam/xlogfuncs.c:145
+#: access/transam/xlogfuncs.c:146
 #, c-format
 msgid "WAL level not sufficient for creating a restore point"
 msgstr "WAL的级别不能满足创建恢复点的要求"
 
-#: access/transam/xlogfuncs.c:153
+#: access/transam/xlogfuncs.c:154
 #, c-format
 msgid "value too long for restore point (maximum %d characters)"
 msgstr "恢复点值超长(最大%d个字符)"
 
-#: access/transam/xlogfuncs.c:289
+#: access/transam/xlogfuncs.c:271
 #, c-format
 msgid "pg_xlogfile_name_offset() cannot be executed during recovery."
 msgstr "在恢复过程中不能执行pg_xlogfile_name_offset()"
 
-#: access/transam/xlogfuncs.c:301 access/transam/xlogfuncs.c:375
-#: access/transam/xlogfuncs.c:530 access/transam/xlogfuncs.c:534
-#, c-format
-msgid "could not parse transaction log location \"%s\""
-msgstr "无法解析事务日志位置\"%s\""
-
-#: access/transam/xlogfuncs.c:366
+#: access/transam/xlogfuncs.c:327
 #, c-format
 msgid "pg_xlogfile_name() cannot be executed during recovery."
 msgstr "在恢复过程中无法执行pg_xlogfile_name() "
 
-#: access/transam/xlogfuncs.c:396 access/transam/xlogfuncs.c:418
-#: access/transam/xlogfuncs.c:440
+#: access/transam/xlogfuncs.c:344 access/transam/xlogfuncs.c:366
 #, c-format
 msgid "must be superuser to control recovery"
 msgstr "只有超级用户才能控制恢复"
 
-#: access/transam/xlogfuncs.c:401 access/transam/xlogfuncs.c:423
-#: access/transam/xlogfuncs.c:445
+#: access/transam/xlogfuncs.c:349 access/transam/xlogfuncs.c:371
+#: access/transam/xlogfuncs.c:388
 #, c-format
 msgid "recovery is not in progress"
 msgstr "恢复操作没在进行中"
 
-#: access/transam/xlogfuncs.c:402 access/transam/xlogfuncs.c:424
-#: access/transam/xlogfuncs.c:446
+#: access/transam/xlogfuncs.c:350 access/transam/xlogfuncs.c:372
+#: access/transam/xlogfuncs.c:389
 #, c-format
 msgid "Recovery control functions can only be executed during recovery."
 msgstr "在恢复期间无法执行恢复控制函数"
 
-#: access/transam/xlogfuncs.c:495 access/transam/xlogfuncs.c:501
-#, c-format
-msgid "invalid input syntax for transaction log location: \"%s\""
-msgstr "事务日志位置\"%s\"出现无效的输入语法"
-
-#: access/transam/xlogfuncs.c:542 access/transam/xlogfuncs.c:546
-#, c-format
-msgid "xrecoff \"%X\" is out of valid range, 0..%X"
-msgstr "xrecoff  \"%X\"超出有效范围, 0..%X"
-
-#: bootstrap/bootstrap.c:279 postmaster/postmaster.c:701 tcop/postgres.c:3425
+#: bootstrap/bootstrap.c:273 postmaster/postmaster.c:759 tcop/postgres.c:3462
 #, c-format
 msgid "--%s requires a value"
 msgstr "--%s 需要一个值"
 
-#: bootstrap/bootstrap.c:284 postmaster/postmaster.c:706 tcop/postgres.c:3430
+#: bootstrap/bootstrap.c:278 postmaster/postmaster.c:764 tcop/postgres.c:3467
 #, c-format
 msgid "-c %s requires a value"
 msgstr "-c %s 需要一个值"
 
-#: bootstrap/bootstrap.c:295 postmaster/postmaster.c:718
-#: postmaster/postmaster.c:731
+#: bootstrap/bootstrap.c:289 postmaster/postmaster.c:776
+#: postmaster/postmaster.c:789
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
 
-#: bootstrap/bootstrap.c:304
+#: bootstrap/bootstrap.c:298
 #, c-format
 msgid "%s: invalid command-line arguments\n"
 msgstr "%s: 无效的命令行参数\n"
 
-#: catalog/aclchk.c:203
+#: catalog/aclchk.c:206
 #, c-format
 msgid "grant options can only be granted to roles"
 msgstr "grant 选项只能用于个体用户上"
 
-#: catalog/aclchk.c:322
+#: catalog/aclchk.c:329
 #, c-format
 msgid "no privileges were granted for column \"%s\" of relation \"%s\""
 msgstr "没有为关系\"%2$s\"的列\"%1$s\"授予相应的权限"
 
-#: catalog/aclchk.c:327
+#: catalog/aclchk.c:334
 #, c-format
 msgid "no privileges were granted for \"%s\""
 msgstr "没有为\"%s\"授予权限"
 
-#: catalog/aclchk.c:335
+#: catalog/aclchk.c:342
 #, c-format
 msgid "not all privileges were granted for column \"%s\" of relation \"%s\""
 msgstr "没有为关系\"%2$s\"的列\"%1$s\"授予所有权限"
 
-#: catalog/aclchk.c:340
+#: catalog/aclchk.c:347
 #, c-format
 msgid "not all privileges were granted for \"%s\""
 msgstr "没有为\"%s\"授予所有的权限"
 
-#: catalog/aclchk.c:351
+#: catalog/aclchk.c:358
 #, c-format
 msgid "no privileges could be revoked for column \"%s\" of relation \"%s\""
 msgstr "不能从关系\"%2$s\"的列\"%1$s\"上撤销权限"
 
-#: catalog/aclchk.c:356
+#: catalog/aclchk.c:363
 #, c-format
 msgid "no privileges could be revoked for \"%s\""
 msgstr "不能为\"%s\"撤销权限"
 
-#: catalog/aclchk.c:364
+#: catalog/aclchk.c:371
 #, c-format
 msgid ""
 "not all privileges could be revoked for column \"%s\" of relation \"%s\""
 msgstr "不能从关系\"%2$s\"的列\"%1$s\"上撤销所有权限"
 
-#: catalog/aclchk.c:369
+#: catalog/aclchk.c:376
 #, c-format
 msgid "not all privileges could be revoked for \"%s\""
 msgstr "不能为\"%s\"撤销所有权限"
 
-#: catalog/aclchk.c:448 catalog/aclchk.c:925
+#: catalog/aclchk.c:455 catalog/aclchk.c:933
 #, c-format
 msgid "invalid privilege type %s for relation"
 msgstr "关系的权限类型%s无效"
 
-#: catalog/aclchk.c:452 catalog/aclchk.c:929
+#: catalog/aclchk.c:459 catalog/aclchk.c:937
 #, c-format
 msgid "invalid privilege type %s for sequence"
 msgstr "序列的权限类型 %s 无效"
 
-#: catalog/aclchk.c:456
+#: catalog/aclchk.c:463
 #, c-format
 msgid "invalid privilege type %s for database"
 msgstr "无效的数据库权限类型 %s"
 
-#: catalog/aclchk.c:460
+#: catalog/aclchk.c:467
 #, c-format
 msgid "invalid privilege type %s for domain"
 msgstr "域的权限类型%s无效"
 
-#: catalog/aclchk.c:464 catalog/aclchk.c:933
+#: catalog/aclchk.c:471 catalog/aclchk.c:941
 #, c-format
 msgid "invalid privilege type %s for function"
 msgstr "无效的函数权限类型 %s"
 
-#: catalog/aclchk.c:468
+#: catalog/aclchk.c:475
 #, c-format
 msgid "invalid privilege type %s for language"
 msgstr "无效的语言权限类型 %s"
 
-#: catalog/aclchk.c:472
+#: catalog/aclchk.c:479
 #, c-format
 msgid "invalid privilege type %s for large object"
 msgstr "用于大对象的无效权限类型%s"
 
-#: catalog/aclchk.c:476
+#: catalog/aclchk.c:483
 #, c-format
 msgid "invalid privilege type %s for schema"
 msgstr "无效的模式权限类型 %s"
 
-#: catalog/aclchk.c:480
+#: catalog/aclchk.c:487
 #, c-format
 msgid "invalid privilege type %s for tablespace"
 msgstr "无效的表空间权限类型 %s"
 
-#: catalog/aclchk.c:484 catalog/aclchk.c:937
+#: catalog/aclchk.c:491 catalog/aclchk.c:945
 #, c-format
 msgid "invalid privilege type %s for type"
 msgstr "类型的权限类型 %s无效"
 
-#: catalog/aclchk.c:488
+#: catalog/aclchk.c:495
 #, c-format
 msgid "invalid privilege type %s for foreign-data wrapper"
 msgstr "外部数据封装器的权限类型 %s 无效"
 
-#: catalog/aclchk.c:492
+#: catalog/aclchk.c:499
 #, c-format
 msgid "invalid privilege type %s for foreign server"
 msgstr "外部服务器的权限类型%s无效"
 
-#: catalog/aclchk.c:531
+#: catalog/aclchk.c:538
 #, c-format
 msgid "column privileges are only valid for relations"
 msgstr "列权限只对关系有效"
 
-#: catalog/aclchk.c:681 catalog/aclchk.c:3879 catalog/aclchk.c:4656
-#: catalog/objectaddress.c:382 catalog/pg_largeobject.c:112
-#: catalog/pg_largeobject.c:172 storage/large_object/inv_api.c:273
+#: catalog/aclchk.c:688 catalog/aclchk.c:3904 catalog/aclchk.c:4681
+#: catalog/objectaddress.c:586 catalog/pg_largeobject.c:113
+#: storage/large_object/inv_api.c:291
 #, c-format
 msgid "large object %u does not exist"
 msgstr "大对象 %u 不存在"
 
-#: catalog/aclchk.c:867 catalog/aclchk.c:875 commands/collationcmds.c:93
-#: commands/copy.c:873 commands/copy.c:891 commands/copy.c:899
-#: commands/copy.c:907 commands/copy.c:915 commands/copy.c:923
-#: commands/copy.c:931 commands/copy.c:939 commands/copy.c:955
-#: commands/copy.c:969 commands/dbcommands.c:144 commands/dbcommands.c:152
-#: commands/dbcommands.c:160 commands/dbcommands.c:168
-#: commands/dbcommands.c:176 commands/dbcommands.c:184
-#: commands/dbcommands.c:192 commands/dbcommands.c:1353
-#: commands/dbcommands.c:1361 commands/extension.c:1248
-#: commands/extension.c:1256 commands/extension.c:1264
-#: commands/extension.c:2662 commands/foreigncmds.c:543
-#: commands/foreigncmds.c:552 commands/functioncmds.c:507
-#: commands/functioncmds.c:599 commands/functioncmds.c:607
-#: commands/functioncmds.c:615 commands/functioncmds.c:1935
-#: commands/functioncmds.c:1943 commands/sequence.c:1156
-#: commands/sequence.c:1164 commands/sequence.c:1172 commands/sequence.c:1180
-#: commands/sequence.c:1188 commands/sequence.c:1196 commands/sequence.c:1204
-#: commands/sequence.c:1212 commands/typecmds.c:293 commands/typecmds.c:1300
-#: commands/typecmds.c:1309 commands/typecmds.c:1317 commands/typecmds.c:1325
-#: commands/typecmds.c:1333 commands/user.c:134 commands/user.c:151
-#: commands/user.c:159 commands/user.c:167 commands/user.c:175
-#: commands/user.c:183 commands/user.c:191 commands/user.c:199
-#: commands/user.c:207 commands/user.c:215 commands/user.c:223
-#: commands/user.c:231 commands/user.c:494 commands/user.c:506
-#: commands/user.c:514 commands/user.c:522 commands/user.c:530
-#: commands/user.c:538 commands/user.c:546 commands/user.c:554
-#: commands/user.c:563 commands/user.c:571
+#: catalog/aclchk.c:875 catalog/aclchk.c:883 commands/collationcmds.c:91
+#: commands/copy.c:925 commands/copy.c:943 commands/copy.c:951
+#: commands/copy.c:959 commands/copy.c:967 commands/copy.c:975
+#: commands/copy.c:983 commands/copy.c:991 commands/copy.c:999
+#: commands/copy.c:1015 commands/copy.c:1029 commands/copy.c:1048
+#: commands/copy.c:1063 commands/dbcommands.c:148 commands/dbcommands.c:156
+#: commands/dbcommands.c:164 commands/dbcommands.c:172
+#: commands/dbcommands.c:180 commands/dbcommands.c:188
+#: commands/dbcommands.c:196 commands/dbcommands.c:1372
+#: commands/dbcommands.c:1380 commands/extension.c:1246
+#: commands/extension.c:1254 commands/extension.c:1262
+#: commands/extension.c:2670 commands/foreigncmds.c:486
+#: commands/foreigncmds.c:495 commands/functioncmds.c:522
+#: commands/functioncmds.c:614 commands/functioncmds.c:622
+#: commands/functioncmds.c:630 commands/functioncmds.c:1700
+#: commands/functioncmds.c:1708 commands/sequence.c:1146
+#: commands/sequence.c:1154 commands/sequence.c:1162 commands/sequence.c:1170
+#: commands/sequence.c:1178 commands/sequence.c:1186 commands/sequence.c:1194
+#: commands/sequence.c:1202 commands/typecmds.c:297 commands/typecmds.c:1332
+#: commands/typecmds.c:1341 commands/typecmds.c:1349 commands/typecmds.c:1357
+#: commands/typecmds.c:1365 commands/user.c:135 commands/user.c:152
+#: commands/user.c:160 commands/user.c:168 commands/user.c:176
+#: commands/user.c:184 commands/user.c:192 commands/user.c:200
+#: commands/user.c:208 commands/user.c:216 commands/user.c:224
+#: commands/user.c:232 commands/user.c:496 commands/user.c:508
+#: commands/user.c:516 commands/user.c:524 commands/user.c:532
+#: commands/user.c:540 commands/user.c:548 commands/user.c:556
+#: commands/user.c:565 commands/user.c:573
 #, c-format
 msgid "conflicting or redundant options"
 msgstr "选项冲突或过多"
 
-#: catalog/aclchk.c:970
+#: catalog/aclchk.c:978
 #, c-format
 msgid "default privileges cannot be set for columns"
 msgstr "无法为列设置缺省权限"
 
-#: catalog/aclchk.c:1478 catalog/objectaddress.c:813 commands/analyze.c:384
-#: commands/copy.c:3934 commands/sequence.c:1457 commands/tablecmds.c:4769
-#: commands/tablecmds.c:4861 commands/tablecmds.c:4908
-#: commands/tablecmds.c:5010 commands/tablecmds.c:5054
-#: commands/tablecmds.c:5133 commands/tablecmds.c:5217
-#: commands/tablecmds.c:7159 commands/tablecmds.c:7376
-#: commands/tablecmds.c:7765 commands/trigger.c:604 parser/analyze.c:2046
-#: parser/parse_relation.c:2057 parser/parse_relation.c:2114
-#: parser/parse_target.c:896 parser/parse_type.c:123 utils/adt/acl.c:2838
-#: utils/adt/ruleutils.c:1614
+#: catalog/aclchk.c:1492 catalog/objectaddress.c:1042 commands/analyze.c:390
+#: commands/copy.c:4247 commands/sequence.c:1448 commands/tablecmds.c:4939
+#: commands/tablecmds.c:5034 commands/tablecmds.c:5084
+#: commands/tablecmds.c:5188 commands/tablecmds.c:5235
+#: commands/tablecmds.c:5319 commands/tablecmds.c:5407
+#: commands/tablecmds.c:7494 commands/tablecmds.c:7698
+#: commands/tablecmds.c:8090 commands/trigger.c:635 parser/analyze.c:1994
+#: parser/parse_relation.c:2358 parser/parse_relation.c:2420
+#: parser/parse_target.c:920 parser/parse_type.c:128 utils/adt/acl.c:2840
+#: utils/adt/ruleutils.c:1820
 #, c-format
 msgid "column \"%s\" of relation \"%s\" does not exist"
 msgstr "关系 \"%2$s\" 的 \"%1$s\" 字段不存在"
 
-#: catalog/aclchk.c:1743 catalog/objectaddress.c:648 commands/sequence.c:1046
-#: commands/tablecmds.c:210 commands/tablecmds.c:10356 utils/adt/acl.c:2074
-#: utils/adt/acl.c:2104 utils/adt/acl.c:2136 utils/adt/acl.c:2168
-#: utils/adt/acl.c:2196 utils/adt/acl.c:2226
+#: catalog/aclchk.c:1757 catalog/objectaddress.c:862 commands/sequence.c:1035
+#: commands/tablecmds.c:214 commands/tablecmds.c:11244 utils/adt/acl.c:2076
+#: utils/adt/acl.c:2106 utils/adt/acl.c:2138 utils/adt/acl.c:2170
+#: utils/adt/acl.c:2198 utils/adt/acl.c:2228
 #, c-format
 msgid "\"%s\" is not a sequence"
 msgstr "\"%s\" 不是一个序列"
 
-#: catalog/aclchk.c:1781
+#: catalog/aclchk.c:1795
 #, c-format
 msgid "sequence \"%s\" only supports USAGE, SELECT, and UPDATE privileges"
 msgstr "序列\"%s\"只支持权限USAGE, SELECT 和UPDATE"
 
-#: catalog/aclchk.c:1798
+#: catalog/aclchk.c:1812
 #, c-format
 msgid "invalid privilege type USAGE for table"
 msgstr "表的权限类型 USAGE 无效"
 
-#: catalog/aclchk.c:1963
+#: catalog/aclchk.c:1977
 #, c-format
 msgid "invalid privilege type %s for column"
 msgstr "列的权限类型%s无效"
 
-#: catalog/aclchk.c:1976
+#: catalog/aclchk.c:1990
 #, c-format
 msgid "sequence \"%s\" only supports SELECT column privileges"
 msgstr "序列\"%s\"只支持在列上的SELECT权限"
 
-#: catalog/aclchk.c:2560
+#: catalog/aclchk.c:2574
 #, c-format
 msgid "language \"%s\" is not trusted"
 msgstr "语言 \"%s\" 不可信"
 
-#: catalog/aclchk.c:2562
+#: catalog/aclchk.c:2576
 #, c-format
 msgid "Only superusers can use untrusted languages."
 msgstr "只有超级用户可以使用非信任语言."
 
-#: catalog/aclchk.c:3078
+#: catalog/aclchk.c:3092
 #, c-format
 msgid "cannot set privileges of array types"
 msgstr "不能设置数组类型的权限"
 
-#: catalog/aclchk.c:3079
+#: catalog/aclchk.c:3093
 #, c-format
 msgid "Set the privileges of the element type instead."
 msgstr "设置元素类型的权限."
 
-#: catalog/aclchk.c:3086 catalog/objectaddress.c:864 commands/typecmds.c:3128
+#: catalog/aclchk.c:3100 catalog/objectaddress.c:1094 commands/typecmds.c:3187
 #, c-format
 msgid "\"%s\" is not a domain"
 msgstr "\"%s\" 不是一个域"
 
-#: catalog/aclchk.c:3206
+#: catalog/aclchk.c:3220
 #, c-format
 msgid "unrecognized privilege type \"%s\""
 msgstr "未知的权限类型: \"%s\""
 
-#: catalog/aclchk.c:3255
+#: catalog/aclchk.c:3269
 #, c-format
 msgid "permission denied for column %s"
 msgstr "访问列 %s 的权限不够"
 
-#: catalog/aclchk.c:3257
+#: catalog/aclchk.c:3271
 #, c-format
 msgid "permission denied for relation %s"
 msgstr "对关系 %s 权限不够"
 
-#: catalog/aclchk.c:3259 commands/sequence.c:551 commands/sequence.c:765
-#: commands/sequence.c:807 commands/sequence.c:844 commands/sequence.c:1509
+#: catalog/aclchk.c:3273 commands/sequence.c:535 commands/sequence.c:748
+#: commands/sequence.c:790 commands/sequence.c:827 commands/sequence.c:1500
 #, c-format
 msgid "permission denied for sequence %s"
 msgstr "对于序列 %s, 权限不够"
 
-#: catalog/aclchk.c:3261
+#: catalog/aclchk.c:3275
 #, c-format
 msgid "permission denied for database %s"
 msgstr "对数据库 %s 权限不够"
 
-#: catalog/aclchk.c:3263
+#: catalog/aclchk.c:3277
 #, c-format
 msgid "permission denied for function %s"
 msgstr "对函数 %s 权限不够"
 
-#: catalog/aclchk.c:3265
+#: catalog/aclchk.c:3279
 #, c-format
 msgid "permission denied for operator %s"
 msgstr "对操作符 %s 权限不够"
 
-#: catalog/aclchk.c:3267
+#: catalog/aclchk.c:3281
 #, c-format
 msgid "permission denied for type %s"
 msgstr "对类型 %s 权限不够"
 
-#: catalog/aclchk.c:3269
+#: catalog/aclchk.c:3283
 #, c-format
 msgid "permission denied for language %s"
 msgstr "对语言 %s 权限不够"
 
-#: catalog/aclchk.c:3271
+#: catalog/aclchk.c:3285
 #, c-format
 msgid "permission denied for large object %s"
 msgstr "在大对象%s上的权限不够"
 
-#: catalog/aclchk.c:3273
+#: catalog/aclchk.c:3287
 #, c-format
 msgid "permission denied for schema %s"
 msgstr "对模式 %s 权限不够"
 
-#: catalog/aclchk.c:3275
+#: catalog/aclchk.c:3289
 #, c-format
 msgid "permission denied for operator class %s"
 msgstr "对操作符表 %s 权限不够"
 
-#: catalog/aclchk.c:3277
+#: catalog/aclchk.c:3291
 #, c-format
 msgid "permission denied for operator family %s"
 msgstr "对于操作符表%s的权限不够"
 
-#: catalog/aclchk.c:3279
+#: catalog/aclchk.c:3293
 #, c-format
 msgid "permission denied for collation %s"
 msgstr "对排序规则 %s 权限不够"
 
-#: catalog/aclchk.c:3281
+#: catalog/aclchk.c:3295
 #, c-format
 msgid "permission denied for conversion %s"
 msgstr "对编码转换 %s 权限不够"
 
-#: catalog/aclchk.c:3283
+#: catalog/aclchk.c:3297
 #, c-format
 msgid "permission denied for tablespace %s"
 msgstr "对表空间 %s 权限不够"
 
-#: catalog/aclchk.c:3285
+#: catalog/aclchk.c:3299
 #, c-format
 msgid "permission denied for text search dictionary %s"
 msgstr "访问文本搜索字典%s的权限不够"
 
-#: catalog/aclchk.c:3287
+#: catalog/aclchk.c:3301
 #, c-format
 msgid "permission denied for text search configuration %s"
 msgstr "访问文本搜索配置%s的权限不足"
 
-#: catalog/aclchk.c:3289
+#: catalog/aclchk.c:3303
 #, c-format
 msgid "permission denied for foreign-data wrapper %s"
 msgstr "访问外部数据封装器 %s 的权限不足"
 
-#: catalog/aclchk.c:3291
+#: catalog/aclchk.c:3305
 #, c-format
 msgid "permission denied for foreign server %s"
 msgstr "访问外部服务器%s的权限不足"
 
-#: catalog/aclchk.c:3293
+#: catalog/aclchk.c:3307
+#, c-format
+#| msgid "permission denied for sequence %s"
+msgid "permission denied for event trigger %s"
+msgstr "事件触发器 %s, 权限不够"
+
+#: catalog/aclchk.c:3309
 #, c-format
 msgid "permission denied for extension %s"
 msgstr "对扩展 %s 权限不够"
 
-#: catalog/aclchk.c:3299 catalog/aclchk.c:3301
+#: catalog/aclchk.c:3315 catalog/aclchk.c:3317
 #, c-format
 msgid "must be owner of relation %s"
 msgstr "必须是关系 %s 的属主"
 
-#: catalog/aclchk.c:3303
+#: catalog/aclchk.c:3319
 #, c-format
 msgid "must be owner of sequence %s"
 msgstr "必须是序列 %s 的属主"
 
-#: catalog/aclchk.c:3305
+#: catalog/aclchk.c:3321
 #, c-format
 msgid "must be owner of database %s"
 msgstr "必须是数据库 %s 的属主"
 
-#: catalog/aclchk.c:3307
+#: catalog/aclchk.c:3323
 #, c-format
 msgid "must be owner of function %s"
 msgstr "必须是函数 %s 的属主"
 
-#: catalog/aclchk.c:3309
+#: catalog/aclchk.c:3325
 #, c-format
 msgid "must be owner of operator %s"
 msgstr "必须是操作符 %s 的属主"
 
-#: catalog/aclchk.c:3311
+#: catalog/aclchk.c:3327
 #, c-format
 msgid "must be owner of type %s"
 msgstr "必须是类型 %s 的属主"
 
-#: catalog/aclchk.c:3313
+#: catalog/aclchk.c:3329
 #, c-format
 msgid "must be owner of language %s"
 msgstr "必须是语言 %s 的属主"
 
-#: catalog/aclchk.c:3315
+#: catalog/aclchk.c:3331
 #, c-format
 msgid "must be owner of large object %s"
 msgstr "必须是大对象%s的属主"
 
-#: catalog/aclchk.c:3317
+#: catalog/aclchk.c:3333
 #, c-format
 msgid "must be owner of schema %s"
 msgstr "必须是模式 %s 的属主"
 
-#: catalog/aclchk.c:3319
+#: catalog/aclchk.c:3335
 #, c-format
 msgid "must be owner of operator class %s"
 msgstr "必须是操作符表 %s 的属主"
 
-#: catalog/aclchk.c:3321
+#: catalog/aclchk.c:3337
 #, c-format
 msgid "must be owner of operator family %s"
 msgstr "必须是操作符集合 %s 的属主"
 
-#: catalog/aclchk.c:3323
+#: catalog/aclchk.c:3339
 #, c-format
 msgid "must be owner of collation %s"
 msgstr "必须是排序规则 %s 的属主"
 
-#: catalog/aclchk.c:3325
+#: catalog/aclchk.c:3341
 #, c-format
 msgid "must be owner of conversion %s"
 msgstr "必须是编码转换 %s 的属主"
 
-#: catalog/aclchk.c:3327
+#: catalog/aclchk.c:3343
 #, c-format
 msgid "must be owner of tablespace %s"
 msgstr "必须是表空间 %s 的属主"
 
 # describe.c:1549
-#: catalog/aclchk.c:3329
+#: catalog/aclchk.c:3345
 #, c-format
 msgid "must be owner of text search dictionary %s"
 msgstr "必须是文本搜寻字典%s的属主"
 
 # describe.c:97
-#: catalog/aclchk.c:3331
+#: catalog/aclchk.c:3347
 #, c-format
 msgid "must be owner of text search configuration %s"
 msgstr "必须是文本搜索配置%s的属主"
 
-#: catalog/aclchk.c:3333
+#: catalog/aclchk.c:3349
 #, c-format
 msgid "must be owner of foreign-data wrapper %s"
 msgstr "必须是外部数据封装器 %s 的属主"
 
-#: catalog/aclchk.c:3335
+#: catalog/aclchk.c:3351
 #, c-format
 msgid "must be owner of foreign server %s"
 msgstr "必须是外部服务器 %s 的属主"
 
-#: catalog/aclchk.c:3337
+#: catalog/aclchk.c:3353
+#, c-format
+#| msgid "must be owner of sequence %s"
+msgid "must be owner of event trigger %s"
+msgstr "必须是事件触发器 %s 的属主"
+
+#: catalog/aclchk.c:3355
 #, c-format
 msgid "must be owner of extension %s"
 msgstr "必须是扩展 %s 的属主"
 
-#: catalog/aclchk.c:3379
+#: catalog/aclchk.c:3397
 #, c-format
 msgid "permission denied for column \"%s\" of relation \"%s\""
 msgstr "访问关系\"%2$s\"的列\"%1$s\"的权限不够"
 
-#: catalog/aclchk.c:3419
+#: catalog/aclchk.c:3437
 #, c-format
 msgid "role with OID %u does not exist"
 msgstr "OID为%u的角色不存在"
 
-#: catalog/aclchk.c:3514 catalog/aclchk.c:3522
+#: catalog/aclchk.c:3536 catalog/aclchk.c:3544
 #, c-format
 msgid "attribute %d of relation with OID %u does not exist"
 msgstr "带有OID为%2$u的关系的属性%1$d不存在"
 
-#: catalog/aclchk.c:3595 catalog/aclchk.c:4507
+#: catalog/aclchk.c:3617 catalog/aclchk.c:4532
 #, c-format
 msgid "relation with OID %u does not exist"
 msgstr "OID 为 %u 的关系不存在"
 
-#: catalog/aclchk.c:3695 catalog/aclchk.c:4898
+#: catalog/aclchk.c:3717 catalog/aclchk.c:4950
 #, c-format
 msgid "database with OID %u does not exist"
 msgstr "OID 为 %u 的数据库不存在"
 
-#: catalog/aclchk.c:3749 catalog/aclchk.c:4585 tcop/fastpath.c:221
+#: catalog/aclchk.c:3771 catalog/aclchk.c:4610 tcop/fastpath.c:223
 #, c-format
 msgid "function with OID %u does not exist"
 msgstr "OID 为 %u 的函数不存在"
 
-#: catalog/aclchk.c:3803 catalog/aclchk.c:4611
+#: catalog/aclchk.c:3825 catalog/aclchk.c:4636
 #, c-format
 msgid "language with OID %u does not exist"
 msgstr "OID 为 %u 的语言不存在"
 
-#: catalog/aclchk.c:3964 catalog/aclchk.c:4683
+#: catalog/aclchk.c:3989 catalog/aclchk.c:4708
 #, c-format
 msgid "schema with OID %u does not exist"
 msgstr "OID 为 %u 的模式不存在"
 
-#: catalog/aclchk.c:4018 catalog/aclchk.c:4710
+#: catalog/aclchk.c:4043 catalog/aclchk.c:4735
 #, c-format
 msgid "tablespace with OID %u does not exist"
 msgstr "OID 为 %u 的表空间不存在"
 
-#: catalog/aclchk.c:4076 catalog/aclchk.c:4844 commands/foreigncmds.c:367
+#: catalog/aclchk.c:4101 catalog/aclchk.c:4869 commands/foreigncmds.c:302
 #, c-format
 msgid "foreign-data wrapper with OID %u does not exist"
 msgstr "带有OID为%u的外部数据封装器(foreign-data wrapper)不存在"
 
-#: catalog/aclchk.c:4137 catalog/aclchk.c:4871 commands/foreigncmds.c:466
+#: catalog/aclchk.c:4162 catalog/aclchk.c:4896 commands/foreigncmds.c:409
 #, c-format
 msgid "foreign server with OID %u does not exist"
 msgstr "带有OID为%u的外部服务器不存在"
 
-#: catalog/aclchk.c:4196 catalog/aclchk.c:4210 catalog/aclchk.c:4533
+#: catalog/aclchk.c:4221 catalog/aclchk.c:4235 catalog/aclchk.c:4558
 #, c-format
 msgid "type with OID %u does not exist"
 msgstr "OID 为 %u 的类型不存在"
 
-#: catalog/aclchk.c:4559
+#: catalog/aclchk.c:4584
 #, c-format
 msgid "operator with OID %u does not exist"
 msgstr "OID 为 %u 的操作符不存在"
 
-#: catalog/aclchk.c:4736
+#: catalog/aclchk.c:4761
 #, c-format
 msgid "operator class with OID %u does not exist"
 msgstr "OID 为 %u 的操作符表不存在"
 
-#: catalog/aclchk.c:4763
+#: catalog/aclchk.c:4788
 #, c-format
 msgid "operator family with OID %u does not exist"
 msgstr "OID 为 %u 的操作符表不存在"
 
-#: catalog/aclchk.c:4790
+#: catalog/aclchk.c:4815
 #, c-format
 msgid "text search dictionary with OID %u does not exist"
 msgstr "带有OID为%u的文本搜索字典不存在"
 
-#: catalog/aclchk.c:4817
+#: catalog/aclchk.c:4842
 #, c-format
 msgid "text search configuration with OID %u does not exist"
 msgstr "带有OID为%u的文本搜索配置不存在"
 
-#: catalog/aclchk.c:4924
+#: catalog/aclchk.c:4923 commands/event_trigger.c:509
+#, c-format
+#| msgid "language with OID %u does not exist"
+msgid "event trigger with OID %u does not exist"
+msgstr "OID 为 %u 的事件触发器不存在"
+
+#: catalog/aclchk.c:4976
 #, c-format
 msgid "collation with OID %u does not exist"
 msgstr "OID 为 %u 的排序规则不存在"
 
-#: catalog/aclchk.c:4950
+#: catalog/aclchk.c:5002
 #, c-format
 msgid "conversion with OID %u does not exist"
 msgstr "OID 为 %u 的编码转换不存在"
 
-#: catalog/aclchk.c:4991
+#: catalog/aclchk.c:5043
 #, c-format
 msgid "extension with OID %u does not exist"
 msgstr "OID 为 %u 的扩展不存在"
 
-#: catalog/catalog.c:77
-#, c-format
-msgid "invalid fork name"
-msgstr "无效分支名称"
-
-#: catalog/catalog.c:78
-#, c-format
-msgid "Valid fork names are \"main\", \"fsm\", and \"vm\"."
-msgstr "有效的分支名称是 \"main\", \"fsm\", 和 \"vm\"."
-
-#: catalog/dependency.c:605
+#: catalog/dependency.c:626
 #, c-format
 msgid "cannot drop %s because %s requires it"
 msgstr "无法删除 %s, 因为 %s 需要它"
 
-#: catalog/dependency.c:608
+#: catalog/dependency.c:629
 #, c-format
 msgid "You can drop %s instead."
 msgstr "您也可以删除 %s 代替."
 
-#: catalog/dependency.c:769 catalog/pg_shdepend.c:566
+#: catalog/dependency.c:790 catalog/pg_shdepend.c:573
 #, c-format
 msgid "cannot drop %s because it is required by the database system"
 msgstr "无法删除 %s, 因为它是数据库系统所需要的"
 
-#: catalog/dependency.c:885
+#: catalog/dependency.c:906
 #, c-format
 msgid "drop auto-cascades to %s"
 msgstr "自动递归删除 %s"
 
-#: catalog/dependency.c:897 catalog/dependency.c:906
+#: catalog/dependency.c:918 catalog/dependency.c:927
 #, c-format
 msgid "%s depends on %s"
 msgstr "%s 倚赖于 %s"
 
-#: catalog/dependency.c:918 catalog/dependency.c:927
+#: catalog/dependency.c:939 catalog/dependency.c:948
 #, c-format
 msgid "drop cascades to %s"
 msgstr "递归删除 %s"
 
-#: catalog/dependency.c:935 catalog/pg_shdepend.c:677
+#: catalog/dependency.c:956 catalog/pg_shdepend.c:684
 #, c-format
 msgid ""
 "\n"
@@ -2746,349 +3036,102 @@ msgstr[0] ""
 "\n"
 "%d个其它对象(相关列表参见服务器日志)"
 
-#: catalog/dependency.c:947
+#: catalog/dependency.c:968
 #, c-format
 msgid "cannot drop %s because other objects depend on it"
 msgstr "无法删除 %s 因为有其它对象倚赖它"
 
-#: catalog/dependency.c:949 catalog/dependency.c:950 catalog/dependency.c:956
-#: catalog/dependency.c:957 catalog/dependency.c:968 catalog/dependency.c:969
-#: catalog/objectaddress.c:555 commands/tablecmds.c:729 commands/user.c:960
-#: port/win32/security.c:51 storage/lmgr/deadlock.c:955
-#: storage/lmgr/proc.c:1140 utils/misc/guc.c:5440 utils/misc/guc.c:5775
-#: utils/misc/guc.c:8136 utils/misc/guc.c:8170 utils/misc/guc.c:8204
-#: utils/misc/guc.c:8238 utils/misc/guc.c:8273
-#, c-format
-msgid "%s"
-msgstr "%s"
-
-#: catalog/dependency.c:951 catalog/dependency.c:958
+#: catalog/dependency.c:972 catalog/dependency.c:979
 #, c-format
 msgid "Use DROP ... CASCADE to drop the dependent objects too."
 msgstr "使用 DROP .. CASCADE 把倚赖对象一并删除."
 
-#: catalog/dependency.c:955
+#: catalog/dependency.c:976
 #, c-format
 msgid "cannot drop desired object(s) because other objects depend on them"
 msgstr "无法删除希望的对象,因为有其它对象倚赖它"
 
 #. translator: %d always has a value larger than 1
-#: catalog/dependency.c:964
+#: catalog/dependency.c:985
 #, c-format
 msgid "drop cascades to %d other object"
 msgid_plural "drop cascades to %d other objects"
 msgstr[0] "串联删除%d个其它对象"
 
-#: catalog/dependency.c:2313
-#, c-format
-msgid " column %s"
-msgstr " 字段 %s"
-
-#: catalog/dependency.c:2319
-#, c-format
-msgid "function %s"
-msgstr "函数 %s"
-
-#: catalog/dependency.c:2324
-#, c-format
-msgid "type %s"
-msgstr "类型 %s"
-
-#: catalog/dependency.c:2354
-#, c-format
-msgid "cast from %s to %s"
-msgstr "%s 转换为 %s"
-
-#: catalog/dependency.c:2374
-#, c-format
-msgid "collation %s"
-msgstr "排序规则 %s"
-
-#: catalog/dependency.c:2398
-#, c-format
-msgid "constraint %s on %s"
-msgstr "在%2$s上的约束%1$s "
-
-#: catalog/dependency.c:2404
-#, c-format
-msgid "constraint %s"
-msgstr "约束 %s"
-
-#: catalog/dependency.c:2421
-#, c-format
-msgid "conversion %s"
-msgstr "编码转换 %s"
-
-#: catalog/dependency.c:2458
-#, c-format
-msgid "default for %s"
-msgstr "%s的缺省"
-
-#: catalog/dependency.c:2475
-#, c-format
-msgid "language %s"
-msgstr "语言 %s"
-
-#: catalog/dependency.c:2481
-#, c-format
-msgid "large object %u"
-msgstr "大对象 %u "
-
-#: catalog/dependency.c:2486
-#, c-format
-msgid "operator %s"
-msgstr "操作符 %s"
-
-#: catalog/dependency.c:2518
-#, c-format
-msgid "operator class %s for access method %s"
-msgstr "处理方法 %s 的操作符类 %s"
-
-#. translator: %d is the operator strategy (a number), the
-#. first two %s's are data type names, the third %s is the
-#. description of the operator family, and the last %s is the
-#. textual form of the operator with arguments.
-#: catalog/dependency.c:2568
-#, c-format
-msgid "operator %d (%s, %s) of %s: %s"
-msgstr "%5$s: %4$s中的操作符%1$d (%2$s,%3$s)"
-
-#. translator: %d is the function number, the first two %s's
-#. are data type names, the third %s is the description of the
-#. operator family, and the last %s is the textual form of the
-#. function with arguments.
-#: catalog/dependency.c:2618
-#, c-format
-msgid "function %d (%s, %s) of %s: %s"
-msgstr "%4$s: %5$s 的函数%1$d (%2$s, %3$s)"
-
-#: catalog/dependency.c:2658
-#, c-format
-msgid "rule %s on "
-msgstr "规则 %s 在 "
-
-#: catalog/dependency.c:2693
-#, c-format
-msgid "trigger %s on "
-msgstr "触发器 %s 在 "
-
-#: catalog/dependency.c:2710
-#, c-format
-msgid "schema %s"
-msgstr "模式 %s"
-
-#: catalog/dependency.c:2723
-#, c-format
-msgid "text search parser %s"
-msgstr "文本搜寻解析器 %s"
-
-# sql_help.h:301
-#: catalog/dependency.c:2738
-#, c-format
-msgid "text search dictionary %s"
-msgstr "文本搜寻字典 %s"
-
-# describe.c:1753
-#: catalog/dependency.c:2753
-#, c-format
-msgid "text search template %s"
-msgstr "文本搜寻模版 %s"
-
-#: catalog/dependency.c:2768
-#, c-format
-msgid "text search configuration %s"
-msgstr "文本搜寻配置 %s"
-
-#: catalog/dependency.c:2776
-#, c-format
-msgid "role %s"
-msgstr "角色 %s"
-
-#: catalog/dependency.c:2789
-#, c-format
-msgid "database %s"
-msgstr "数据库 %s"
-
-# describe.c:1342
-#: catalog/dependency.c:2801
-#, c-format
-msgid "tablespace %s"
-msgstr "表空间 %s"
-
-#: catalog/dependency.c:2810
-#, c-format
-msgid "foreign-data wrapper %s"
-msgstr "外部数据封装器 %s"
-
-#: catalog/dependency.c:2819
-#, c-format
-msgid "server %s"
-msgstr "服务器 %s"
-
-#: catalog/dependency.c:2844
-#, c-format
-msgid "user mapping for %s"
-msgstr "用于 %s 的用户映射"
-
-#: catalog/dependency.c:2878
-#, c-format
-msgid "default privileges on new relations belonging to role %s"
-msgstr "在新的关系上的缺省权限属于角色%s"
-
-#: catalog/dependency.c:2883
-#, c-format
-msgid "default privileges on new sequences belonging to role %s"
-msgstr "在新的序列上的缺省权限属于角色%s"
-
-#: catalog/dependency.c:2888
-#, c-format
-msgid "default privileges on new functions belonging to role %s"
-msgstr "在新的函数上的缺省权限属于角色%s"
-
-#: catalog/dependency.c:2893
-#, c-format
-msgid "default privileges on new types belonging to role %s"
-msgstr "在新类型上的缺省权限属于角色 %s"
-
-#: catalog/dependency.c:2899
-#, c-format
-msgid "default privileges belonging to role %s"
-msgstr "缺省权限属于角色%s"
-
-#: catalog/dependency.c:2907
-#, c-format
-msgid " in schema %s"
-msgstr "在模式%s中"
-
-#: catalog/dependency.c:2924
-#, c-format
-msgid "extension %s"
-msgstr "扩展 %s"
-
-#: catalog/dependency.c:2982
-#, c-format
-msgid "table %s"
-msgstr "表 %s"
-
-#: catalog/dependency.c:2986
-#, c-format
-msgid "index %s"
-msgstr "索引 %s"
-
-#: catalog/dependency.c:2990
-#, c-format
-msgid "sequence %s"
-msgstr "序列 %s"
-
-#: catalog/dependency.c:2994
-#, c-format
-msgid "uncataloged table %s"
-msgstr "未归类的表 %s"
-
-#: catalog/dependency.c:2998
-#, c-format
-msgid "toast table %s"
-msgstr "toast 表 %s"
-
-#: catalog/dependency.c:3002
-#, c-format
-msgid "view %s"
-msgstr "视图 %s"
-
-#: catalog/dependency.c:3006
-#, c-format
-msgid "composite type %s"
-msgstr "复合类型 %s"
-
-#: catalog/dependency.c:3010
-#, c-format
-msgid "foreign table %s"
-msgstr "外部表 %s"
-
-#: catalog/dependency.c:3015
-#, c-format
-msgid "relation %s"
-msgstr "关系 %s"
-
-#: catalog/dependency.c:3052
-#, c-format
-msgid "operator family %s for access method %s"
-msgstr "访问方法 %2$s 的操作符类 %1$s"
-
-#: catalog/heap.c:262
+#: catalog/heap.c:274
 #, c-format
 msgid "permission denied to create \"%s.%s\""
 msgstr "创建 \"%s.%s\" 权限不够"
 
-#: catalog/heap.c:264
+#: catalog/heap.c:276
 #, c-format
 msgid "System catalog modifications are currently disallowed."
 msgstr "系统表修改是不被同时允许的"
 
-#: catalog/heap.c:398 commands/tablecmds.c:1361 commands/tablecmds.c:1802
-#: commands/tablecmds.c:4409
+#: catalog/heap.c:411 commands/tablecmds.c:1402 commands/tablecmds.c:1844
+#: commands/tablecmds.c:4583
 #, c-format
 msgid "tables can have at most %d columns"
 msgstr "表最多可以有 %d 个字段"
 
-#: catalog/heap.c:415 commands/tablecmds.c:4670
+#: catalog/heap.c:428 commands/tablecmds.c:4839
 #, c-format
 msgid "column name \"%s\" conflicts with a system column name"
 msgstr "字段名 \"%s\" 与系统字段名冲突"
 
-#: catalog/heap.c:431
+#: catalog/heap.c:444
 #, c-format
 msgid "column name \"%s\" specified more than once"
 msgstr "字段名称\"%s\" 被定义多次"
 
-#: catalog/heap.c:481
+#: catalog/heap.c:494
 #, c-format
 msgid "column \"%s\" has type \"unknown\""
 msgstr "字段 \"%s\" 类型为 \"未知\""
 
-#: catalog/heap.c:482
+#: catalog/heap.c:495
 #, c-format
 msgid "Proceeding with relation creation anyway."
 msgstr "继续关系的创建."
 
-#: catalog/heap.c:495
+#: catalog/heap.c:508
 #, c-format
 msgid "column \"%s\" has pseudo-type %s"
 msgstr "字段 \"%s\" 有伪类型 %s"
 
-#: catalog/heap.c:525
+#: catalog/heap.c:538
 #, c-format
 msgid "composite type %s cannot be made a member of itself"
 msgstr "混合类型 %s 的成员不能为自身"
 
-#: catalog/heap.c:567 commands/createas.c:291
+#: catalog/heap.c:580 commands/createas.c:343
 #, c-format
 msgid "no collation was derived for column \"%s\" with collatable type %s"
 msgstr "没有来自列 \"%s\"的排序规则带有可排序类型 %s"
 
-#: catalog/heap.c:569 commands/createas.c:293 commands/indexcmds.c:1094
-#: commands/view.c:147 regex/regc_pg_locale.c:262 utils/adt/formatting.c:1522
-#: utils/adt/formatting.c:1574 utils/adt/formatting.c:1647
-#: utils/adt/formatting.c:1699 utils/adt/formatting.c:1784
-#: utils/adt/formatting.c:1848 utils/adt/like.c:212 utils/adt/selfuncs.c:5186
-#: utils/adt/varlena.c:1372
+#: catalog/heap.c:582 commands/createas.c:345 commands/indexcmds.c:1072
+#: commands/view.c:116 regex/regc_pg_locale.c:262 utils/adt/formatting.c:1510
+#: utils/adt/formatting.c:1562 utils/adt/formatting.c:1630
+#: utils/adt/formatting.c:1682 utils/adt/formatting.c:1751
+#: utils/adt/formatting.c:1815 utils/adt/like.c:212 utils/adt/selfuncs.c:5221
+#: utils/adt/varlena.c:1381
 #, c-format
 msgid "Use the COLLATE clause to set the collation explicitly."
 msgstr "使用COLLATE子句来显示设置排序规则."
 
-#: catalog/heap.c:1027 catalog/index.c:771 commands/tablecmds.c:2483
+#: catalog/heap.c:1055 catalog/index.c:778 commands/tablecmds.c:2549
 #, c-format
 msgid "relation \"%s\" already exists"
 msgstr "关系 \"%s\" 已经存在"
 
-#: catalog/heap.c:1043 catalog/pg_type.c:402 catalog/pg_type.c:706
-#: commands/typecmds.c:235 commands/typecmds.c:733 commands/typecmds.c:1084
-#: commands/typecmds.c:1276 commands/typecmds.c:2026
+#: catalog/heap.c:1071 catalog/pg_type.c:403 catalog/pg_type.c:706
+#: commands/typecmds.c:239 commands/typecmds.c:739 commands/typecmds.c:1090
+#: commands/typecmds.c:1308 commands/typecmds.c:2060
 #, c-format
 msgid "type \"%s\" already exists"
 msgstr "类型 \"%s\" 已经存在"
 
-#: catalog/heap.c:1044
+#: catalog/heap.c:1072
 #, c-format
 msgid ""
 "A relation has an associated type of the same name, so you must use a name "
@@ -3096,526 +3139,814 @@ msgid ""
 msgstr ""
 "关系和与它相关联的类型名称相同,所以不能使用与任何已存在类型名称相冲突的名称."
 
-#: catalog/heap.c:2171
+#: catalog/heap.c:2257
 #, c-format
 msgid "check constraint \"%s\" already exists"
 msgstr "检查约束 \"%s\" 已经存在"
 
-#: catalog/heap.c:2324 catalog/pg_constraint.c:648 commands/tablecmds.c:5542
+#: catalog/heap.c:2410 catalog/pg_constraint.c:650 commands/tablecmds.c:5734
 #, c-format
 msgid "constraint \"%s\" for relation \"%s\" already exists"
 msgstr "关系 \"%2$s\" 的约束 \"%1$s\" 已经存在"
 
-#: catalog/heap.c:2334
+#: catalog/heap.c:2420
 #, c-format
 msgid ""
 "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\""
 msgstr "关系\"%2$s\"上的约束\"%1$s\"与非继承约束相冲突"
 
-#: catalog/heap.c:2348
+#: catalog/heap.c:2434
 #, c-format
 msgid "merging constraint \"%s\" with inherited definition"
 msgstr "正在合并带有已继承定义的约束\"%s\" "
 
-#: catalog/heap.c:2440
+#: catalog/heap.c:2527
 #, c-format
 msgid "cannot use column references in default expression"
 msgstr "在默认的表达式中不能使用字段关联"
 
-#: catalog/heap.c:2448
+#: catalog/heap.c:2538
 #, c-format
 msgid "default expression must not return a set"
 msgstr "默认表达式不能返回一个组合"
 
-#: catalog/heap.c:2456
-#, c-format
-msgid "cannot use subquery in default expression"
-msgstr "在默认的表达式中不能使用子查询"
-
-#: catalog/heap.c:2460
-#, c-format
-msgid "cannot use aggregate function in default expression"
-msgstr "在默认的表达式中不能使用聚合函数"
-
-#: catalog/heap.c:2464
-#, c-format
-msgid "cannot use window function in default expression"
-msgstr "在缺省表达式中不能使用窗口函数"
-
-#: catalog/heap.c:2483 rewrite/rewriteHandler.c:1030
+#: catalog/heap.c:2557 rewrite/rewriteHandler.c:1066
 #, c-format
 msgid "column \"%s\" is of type %s but default expression is of type %s"
 msgstr "字段 \"%s\" 类型是 %s, 但默认表达式类型是 %s"
 
-#: catalog/heap.c:2488 commands/prepare.c:388 parser/parse_node.c:397
-#: parser/parse_target.c:490 parser/parse_target.c:736
-#: parser/parse_target.c:746 rewrite/rewriteHandler.c:1035
+#: catalog/heap.c:2562 commands/prepare.c:374 parser/parse_node.c:411
+#: parser/parse_target.c:509 parser/parse_target.c:758
+#: parser/parse_target.c:768 rewrite/rewriteHandler.c:1071
 #, c-format
 msgid "You will need to rewrite or cast the expression."
 msgstr "你需要重写或转换表达式"
 
-#: catalog/heap.c:2534
+#: catalog/heap.c:2609
 #, c-format
 msgid "only table \"%s\" can be referenced in check constraint"
 msgstr "在检查约束中只有表 \"%s\" 能被关联的"
 
-#: catalog/heap.c:2543 commands/typecmds.c:2909
-#, c-format
-msgid "cannot use subquery in check constraint"
-msgstr "在检查约束中不可以使用子查询"
-
-#: catalog/heap.c:2547 commands/typecmds.c:2913
-#, c-format
-msgid "cannot use aggregate function in check constraint"
-msgstr "在检查约束中不能使用聚合函数"
-
-#: catalog/heap.c:2551 commands/typecmds.c:2917
-#, c-format
-msgid "cannot use window function in check constraint"
-msgstr "在检查约束中不能使用窗口函数"
-
-#: catalog/heap.c:2790
+#: catalog/heap.c:2849
 #, c-format
 msgid "unsupported ON COMMIT and foreign key combination"
 msgstr "不支持ON COMMIT和外键一同使用"
 
-#: catalog/heap.c:2791
+#: catalog/heap.c:2850
 #, c-format
 msgid ""
 "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT "
 "setting."
 msgstr "表 \"%s\"引用表\"%s\",但是它们没有相同的ON COMMIT设置."
 
-#: catalog/heap.c:2796
+#: catalog/heap.c:2855
 #, c-format
 msgid "cannot truncate a table referenced in a foreign key constraint"
 msgstr "在一个外键约束中无法删除 (truncate) 一个表的关联"
 
-#: catalog/heap.c:2797
+#: catalog/heap.c:2856
 #, c-format
 msgid "Table \"%s\" references \"%s\"."
 msgstr "表\"%s\" 引用\"%s\"."
 
-#: catalog/heap.c:2799
+#: catalog/heap.c:2858
 #, c-format
 msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE."
 msgstr "同时截断表\"%s\" ,或者使用TRUNCATE ... CASCADE."
 
-#: catalog/index.c:201 parser/parse_utilcmd.c:1357 parser/parse_utilcmd.c:1443
+#: catalog/index.c:204 parser/parse_utilcmd.c:1393 parser/parse_utilcmd.c:1479
 #, c-format
 msgid "multiple primary keys for table \"%s\" are not allowed"
 msgstr "对表 \"%s\" 指定多个主键是不允许的"
 
-#: catalog/index.c:219
+#: catalog/index.c:222
 #, c-format
 msgid "primary keys cannot be expressions"
 msgstr "主键不能是表达式"
 
-#: catalog/index.c:732 catalog/index.c:1131
+#: catalog/index.c:739 catalog/index.c:1143
 #, c-format
 msgid "user-defined indexes on system catalog tables are not supported"
 msgstr "在系统表上用户定义的索引是不被支持的"
 
-#: catalog/index.c:742
+#: catalog/index.c:749
 #, c-format
 msgid "concurrent index creation on system catalog tables is not supported"
 msgstr "不支持在系统目录表上同时创建索引"
 
-#: catalog/index.c:760
+#: catalog/index.c:767
 #, c-format
 msgid "shared indexes cannot be created after initdb"
 msgstr "在 initdb 之后, 不能创建共享索引"
 
-#: catalog/index.c:1395
+#: catalog/index.c:1403
 #, c-format
 msgid "DROP INDEX CONCURRENTLY must be first action in transaction"
 msgstr "DROP INDEX CONCURRENTLY在一个事务当中必须是最先执行"
 
-#: catalog/index.c:1963
+#: catalog/index.c:1936
 #, c-format
 msgid "building index \"%s\" on table \"%s\""
 msgstr "为表 \"%2$s\" 建立索引\"%1$s\""
 
-#: catalog/index.c:3138
+#: catalog/index.c:3121
 #, c-format
 msgid "cannot reindex temporary tables of other sessions"
 msgstr "不能重新创建其他会话的临时表上的索引"
 
-#: catalog/namespace.c:244 catalog/namespace.c:434 catalog/namespace.c:528
-#: commands/trigger.c:4196
+#: catalog/namespace.c:247 catalog/namespace.c:445 catalog/namespace.c:539
+#: commands/trigger.c:4486
 #, c-format
 msgid "cross-database references are not implemented: \"%s.%s.%s\""
 msgstr "未实现跨数据库关联: \"%s.%s.%s\""
 
-#: catalog/namespace.c:296
+#: catalog/namespace.c:304
 #, c-format
 msgid "temporary tables cannot specify a schema name"
 msgstr "临时表不能指定模式名称"
 
-#: catalog/namespace.c:372
+#: catalog/namespace.c:383
 #, c-format
 msgid "could not obtain lock on relation \"%s.%s\""
 msgstr "无法在关系 \"%s.%s\" 上获得锁"
 
-#: catalog/namespace.c:377 commands/lockcmds.c:144
+#: catalog/namespace.c:388 commands/lockcmds.c:146
 #, c-format
 msgid "could not obtain lock on relation \"%s\""
 msgstr "无法在关系 \"%s\" 上获得锁"
 
-#: catalog/namespace.c:401 parser/parse_relation.c:849
+#: catalog/namespace.c:412 parser/parse_relation.c:964
 #, c-format
 msgid "relation \"%s.%s\" does not exist"
 msgstr "关系 \"%s.%s\" 不存在"
 
-#: catalog/namespace.c:406 parser/parse_relation.c:862
-#: parser/parse_relation.c:870 utils/adt/regproc.c:810
+#: catalog/namespace.c:417 parser/parse_relation.c:977
+#: parser/parse_relation.c:985 utils/adt/regproc.c:974
 #, c-format
 msgid "relation \"%s\" does not exist"
 msgstr "关系 \"%s\" 不存在"
 
-#: catalog/namespace.c:474 catalog/namespace.c:2805
+#: catalog/namespace.c:485 catalog/namespace.c:2849 commands/extension.c:1396
+#: commands/extension.c:1402
 #, c-format
 msgid "no schema has been selected to create in"
 msgstr "创建中没有选择模式"
 
-#: catalog/namespace.c:626 catalog/namespace.c:639
+#: catalog/namespace.c:637 catalog/namespace.c:650
 #, c-format
 msgid "cannot create relations in temporary schemas of other sessions"
 msgstr "不能在其他会话的临时方案上创建关系"
 
-#: catalog/namespace.c:630
+#: catalog/namespace.c:641
 #, c-format
 msgid "cannot create temporary relation in non-temporary schema"
 msgstr "不能在非临时方案上创建临时关系"
 
-#: catalog/namespace.c:645
+#: catalog/namespace.c:656
 #, c-format
 msgid "only temporary relations may be created in temporary schemas"
 msgstr "临时方案里只能创建临时关系"
 
-#: catalog/namespace.c:2122
+#: catalog/namespace.c:2151
 #, c-format
 msgid "text search parser \"%s\" does not exist"
 msgstr "文本搜索解析器 \"%s\" 不存在"
 
-#: catalog/namespace.c:2245
+#: catalog/namespace.c:2277
 #, c-format
 msgid "text search dictionary \"%s\" does not exist"
 msgstr "文本搜索字典 \"%s\" 不存在"
 
-#: catalog/namespace.c:2369
+#: catalog/namespace.c:2404
 #, c-format
 msgid "text search template \"%s\" does not exist"
 msgstr "文本搜索模版 \"%s\" 不存在"
 
-#: catalog/namespace.c:2492 commands/tsearchcmds.c:1654
-#: utils/cache/ts_cache.c:617
+#: catalog/namespace.c:2530 commands/tsearchcmds.c:1168
+#: utils/cache/ts_cache.c:616
 #, c-format
 msgid "text search configuration \"%s\" does not exist"
 msgstr "文本搜寻配置 \"%s\" 不存在"
 
-#: catalog/namespace.c:2605 parser/parse_expr.c:777 parser/parse_target.c:1086
+#: catalog/namespace.c:2643 parser/parse_expr.c:788 parser/parse_target.c:1110
 #, c-format
 msgid "cross-database references are not implemented: %s"
 msgstr "未实现跨数据库关联: %s"
 
-#: catalog/namespace.c:2611 parser/parse_expr.c:784 parser/parse_target.c:1093
-#: gram.y:12027 gram.y:13218
+#: catalog/namespace.c:2649 gram.y:12556 gram.y:13788 parser/parse_expr.c:795
+#: parser/parse_target.c:1117
 #, c-format
 msgid "improper qualified name (too many dotted names): %s"
 msgstr "不合适的条件名称 (名字中太多的点符号): %s"
 
-#: catalog/namespace.c:2739
+#: catalog/namespace.c:2783
 #, c-format
 msgid "%s is already in schema \"%s\""
 msgstr "在模式\"%2$s\"中已存在 %1$s了"
 
-#: catalog/namespace.c:2747
+#: catalog/namespace.c:2791
 #, c-format
 msgid "cannot move objects into or out of temporary schemas"
 msgstr "无法将对象移入或移出临时模式"
 
-#: catalog/namespace.c:2753
+#: catalog/namespace.c:2797
 #, c-format
 msgid "cannot move objects into or out of TOAST schema"
 msgstr "无法将对象移入或移出TOAST模式"
 
-#: catalog/namespace.c:2826 commands/schemacmds.c:189
-#: commands/schemacmds.c:258
+#: catalog/namespace.c:2870 commands/schemacmds.c:212
+#: commands/schemacmds.c:288 commands/tablecmds.c:708
 #, c-format
 msgid "schema \"%s\" does not exist"
 msgstr "模式 \"%s\" 不存在"
 
-#: catalog/namespace.c:2857
+#: catalog/namespace.c:2901
 #, c-format
 msgid "improper relation name (too many dotted names): %s"
 msgstr "不合适的关系名称 (名字中太多的点符号): %s"
 
-#: catalog/namespace.c:3274
+#: catalog/namespace.c:3342
 #, c-format
 msgid "collation \"%s\" for encoding \"%s\" does not exist"
 msgstr "编码 \"%2$s\" 中的排序规则 \"%1$s\" 不存在"
 
-#: catalog/namespace.c:3326
+#: catalog/namespace.c:3397
 #, c-format
 msgid "conversion \"%s\" does not exist"
 msgstr "编码转换 \"%s\" 不存在"
 
-#: catalog/namespace.c:3531
+#: catalog/namespace.c:3605
 #, c-format
 msgid "permission denied to create temporary tables in database \"%s\""
 msgstr "不允许在数据库 \"%s\" 中创建临时表"
 
-#: catalog/namespace.c:3547
+#: catalog/namespace.c:3621
 #, c-format
 msgid "cannot create temporary tables during recovery"
 msgstr "不能在恢复过程中创建临时表"
 
-#: catalog/namespace.c:3791 commands/tablespace.c:1168 commands/variable.c:60
-#: replication/syncrep.c:683 utils/misc/guc.c:8303
+#: catalog/namespace.c:3865 commands/tablespace.c:1113 commands/variable.c:61
+#: replication/syncrep.c:677 utils/misc/guc.c:9034
 #, c-format
 msgid "List syntax is invalid."
 msgstr "列表语法无效."
 
-#: catalog/objectaddress.c:526
+#: catalog/objectaddress.c:732
 msgid "database name cannot be qualified"
 msgstr "不能限定数据库名称"
 
-#: catalog/objectaddress.c:529 commands/extension.c:2419
+#: catalog/objectaddress.c:735 commands/extension.c:2423
 #, c-format
 msgid "extension name cannot be qualified"
 msgstr "扩展名不合格"
 
-#: catalog/objectaddress.c:532
+#: catalog/objectaddress.c:738
 msgid "tablespace name cannot be qualified"
 msgstr "不能限定表空间名称"
 
-#: catalog/objectaddress.c:535
+#: catalog/objectaddress.c:741
 msgid "role name cannot be qualified"
 msgstr "不能限定角色名称"
 
-#: catalog/objectaddress.c:538
+#: catalog/objectaddress.c:744
 msgid "schema name cannot be qualified"
 msgstr "不能限定模式名称"
 
-#: catalog/objectaddress.c:541
+#: catalog/objectaddress.c:747
 msgid "language name cannot be qualified"
 msgstr "不能限定language名称"
 
-#: catalog/objectaddress.c:544
+#: catalog/objectaddress.c:750
 msgid "foreign-data wrapper name cannot be qualified"
 msgstr "foreign-data包装器名无法限定"
 
-#: catalog/objectaddress.c:547
+#: catalog/objectaddress.c:753
 msgid "server name cannot be qualified"
 msgstr "无法限定服务器名"
 
-#: catalog/objectaddress.c:655 catalog/toasting.c:92 commands/indexcmds.c:374
-#: commands/lockcmds.c:92 commands/tablecmds.c:204 commands/tablecmds.c:1222
-#: commands/tablecmds.c:3966 commands/tablecmds.c:7279
-#: commands/tablecmds.c:10281
+#: catalog/objectaddress.c:756
+#| msgid "server name cannot be qualified"
+msgid "event trigger name cannot be qualified"
+msgstr "事件触发器命名无法确定"
+
+#: catalog/objectaddress.c:869 commands/lockcmds.c:94 commands/tablecmds.c:208
+#: commands/tablecmds.c:1263 commands/tablecmds.c:4130
+#: commands/tablecmds.c:7601
 #, c-format
 msgid "\"%s\" is not a table"
 msgstr "\"%s\" 不是一个表"
 
-#: catalog/objectaddress.c:662 commands/tablecmds.c:216
-#: commands/tablecmds.c:3981 commands/tablecmds.c:10361 commands/view.c:185
+#: catalog/objectaddress.c:876 commands/tablecmds.c:220
+#: commands/tablecmds.c:4154 commands/tablecmds.c:11249 commands/view.c:154
 #, c-format
 msgid "\"%s\" is not a view"
 msgstr "\"%s\" 不是一个视图"
 
-#: catalog/objectaddress.c:669 commands/tablecmds.c:234
-#: commands/tablecmds.c:3984 commands/tablecmds.c:10366
+#: catalog/objectaddress.c:883 commands/matview.c:171 commands/tablecmds.c:226
+#: commands/tablecmds.c:11254
+#, c-format
+#| msgid "\"%s\" is not a table or view"
+msgid "\"%s\" is not a materialized view"
+msgstr "\"%s\" 不是一个物化视图"
+
+#: catalog/objectaddress.c:890 commands/tablecmds.c:244
+#: commands/tablecmds.c:4157 commands/tablecmds.c:11259
 #, c-format
 msgid "\"%s\" is not a foreign table"
 msgstr "\"%s\" 不是一个外部表"
 
-#: catalog/objectaddress.c:800
+#: catalog/objectaddress.c:1028
 #, c-format
 msgid "column name must be qualified"
 msgstr "不能限定列名称"
 
-#: catalog/objectaddress.c:853 commands/functioncmds.c:130
-#: commands/tablecmds.c:226 commands/typecmds.c:3192 parser/parse_func.c:1583
-#: parser/parse_type.c:202 utils/adt/acl.c:4372 utils/adt/regproc.c:974
+#: catalog/objectaddress.c:1083 commands/functioncmds.c:126
+#: commands/tablecmds.c:236 commands/typecmds.c:3253 parser/parse_type.c:222
+#: parser/parse_type.c:251 parser/parse_type.c:795 utils/adt/acl.c:4374
+#: utils/adt/regproc.c:1165
 #, c-format
 msgid "type \"%s\" does not exist"
 msgstr "类型 \"%s\" 不存在"
 
-#: catalog/objectaddress.c:1003 catalog/pg_largeobject.c:196
-#: libpq/be-fsstubs.c:286
+#: catalog/objectaddress.c:1240 libpq/be-fsstubs.c:352
 #, c-format
 msgid "must be owner of large object %u"
 msgstr "必须是大对象%u的属主"
 
-#: catalog/objectaddress.c:1018 commands/functioncmds.c:1505
+#: catalog/objectaddress.c:1255 commands/functioncmds.c:1328
 #, c-format
 msgid "must be owner of type %s or type %s"
 msgstr "只能是类型 %s 或 %s 的所由者"
 
-#: catalog/objectaddress.c:1049 catalog/objectaddress.c:1065
+#: catalog/objectaddress.c:1286 catalog/objectaddress.c:1302
 #, c-format
 msgid "must be superuser"
 msgstr "必须是超级用户"
 
-#: catalog/objectaddress.c:1056
+#: catalog/objectaddress.c:1293
 #, c-format
 msgid "must have CREATEROLE privilege"
 msgstr "必须拥有CREATEROLE权限."
 
-#: catalog/pg_aggregate.c:101
+#: catalog/objectaddress.c:1539
+#, c-format
+msgid " column %s"
+msgstr " 字段 %s"
+
+#: catalog/objectaddress.c:1545
+#, c-format
+msgid "function %s"
+msgstr "函数 %s"
+
+#: catalog/objectaddress.c:1550
+#, c-format
+msgid "type %s"
+msgstr "类型 %s"
+
+#: catalog/objectaddress.c:1580
+#, c-format
+msgid "cast from %s to %s"
+msgstr "%s 转换为 %s"
+
+#: catalog/objectaddress.c:1600
+#, c-format
+msgid "collation %s"
+msgstr "排序规则 %s"
+
+#: catalog/objectaddress.c:1624
+#, c-format
+msgid "constraint %s on %s"
+msgstr "在%2$s上的约束%1$s "
+
+#: catalog/objectaddress.c:1630
+#, c-format
+msgid "constraint %s"
+msgstr "约束 %s"
+
+#: catalog/objectaddress.c:1647
+#, c-format
+msgid "conversion %s"
+msgstr "编码转换 %s"
+
+#: catalog/objectaddress.c:1684
+#, c-format
+msgid "default for %s"
+msgstr "%s的缺省"
+
+#: catalog/objectaddress.c:1701
+#, c-format
+msgid "language %s"
+msgstr "语言 %s"
+
+#: catalog/objectaddress.c:1707
+#, c-format
+msgid "large object %u"
+msgstr "大对象 %u "
+
+#: catalog/objectaddress.c:1712
+#, c-format
+msgid "operator %s"
+msgstr "操作符 %s"
+
+#: catalog/objectaddress.c:1744
+#, c-format
+msgid "operator class %s for access method %s"
+msgstr "处理方法 %s 的操作符类 %s"
+
+#. translator: %d is the operator strategy (a number), the
+#. first two %s's are data type names, the third %s is the
+#. description of the operator family, and the last %s is the
+#. textual form of the operator with arguments.
+#: catalog/objectaddress.c:1794
+#, c-format
+msgid "operator %d (%s, %s) of %s: %s"
+msgstr "%5$s: %4$s中的操作符%1$d (%2$s,%3$s)"
+
+#. translator: %d is the function number, the first two %s's
+#. are data type names, the third %s is the description of the
+#. operator family, and the last %s is the textual form of the
+#. function with arguments.
+#: catalog/objectaddress.c:1844
+#, c-format
+msgid "function %d (%s, %s) of %s: %s"
+msgstr "%4$s: %5$s 的函数%1$d (%2$s, %3$s)"
+
+#: catalog/objectaddress.c:1884
+#, c-format
+msgid "rule %s on "
+msgstr "规则 %s 在 "
+
+#: catalog/objectaddress.c:1919
+#, c-format
+msgid "trigger %s on "
+msgstr "触发器 %s 在 "
+
+#: catalog/objectaddress.c:1936
+#, c-format
+msgid "schema %s"
+msgstr "模式 %s"
+
+#: catalog/objectaddress.c:1949
+#, c-format
+msgid "text search parser %s"
+msgstr "文本搜寻解析器 %s"
+
+# sql_help.h:301
+#: catalog/objectaddress.c:1964
+#, c-format
+msgid "text search dictionary %s"
+msgstr "文本搜寻字典 %s"
+
+# describe.c:1753
+#: catalog/objectaddress.c:1979
+#, c-format
+msgid "text search template %s"
+msgstr "文本搜寻模版 %s"
+
+#: catalog/objectaddress.c:1994
+#, c-format
+msgid "text search configuration %s"
+msgstr "文本搜寻配置 %s"
+
+#: catalog/objectaddress.c:2002
+#, c-format
+msgid "role %s"
+msgstr "角色 %s"
+
+#: catalog/objectaddress.c:2015
+#, c-format
+msgid "database %s"
+msgstr "数据库 %s"
+
+# describe.c:1342
+#: catalog/objectaddress.c:2027
+#, c-format
+msgid "tablespace %s"
+msgstr "表空间 %s"
+
+#: catalog/objectaddress.c:2036
+#, c-format
+msgid "foreign-data wrapper %s"
+msgstr "外部数据封装器 %s"
+
+#: catalog/objectaddress.c:2045
+#, c-format
+msgid "server %s"
+msgstr "服务器 %s"
+
+#: catalog/objectaddress.c:2070
+#, c-format
+msgid "user mapping for %s"
+msgstr "用于 %s 的用户映射"
+
+#: catalog/objectaddress.c:2104
+#, c-format
+msgid "default privileges on new relations belonging to role %s"
+msgstr "在新的关系上的缺省权限属于角色%s"
+
+#: catalog/objectaddress.c:2109
+#, c-format
+msgid "default privileges on new sequences belonging to role %s"
+msgstr "在新的序列上的缺省权限属于角色%s"
+
+#: catalog/objectaddress.c:2114
+#, c-format
+msgid "default privileges on new functions belonging to role %s"
+msgstr "在新的函数上的缺省权限属于角色%s"
+
+#: catalog/objectaddress.c:2119
+#, c-format
+msgid "default privileges on new types belonging to role %s"
+msgstr "在新类型上的缺省权限属于角色 %s"
+
+#: catalog/objectaddress.c:2125
+#, c-format
+msgid "default privileges belonging to role %s"
+msgstr "缺省权限属于角色%s"
+
+#: catalog/objectaddress.c:2133
+#, c-format
+msgid " in schema %s"
+msgstr "在模式%s中"
+
+#: catalog/objectaddress.c:2150
+#, c-format
+msgid "extension %s"
+msgstr "扩展 %s"
+
+# describe.c:1549
+#: catalog/objectaddress.c:2163
+#, c-format
+#| msgid "List of event triggers"
+msgid "event trigger %s"
+msgstr "事件触发器%s"
+
+#: catalog/objectaddress.c:2223
+#, c-format
+msgid "table %s"
+msgstr "表 %s"
+
+#: catalog/objectaddress.c:2227
+#, c-format
+msgid "index %s"
+msgstr "索引 %s"
+
+#: catalog/objectaddress.c:2231
+#, c-format
+msgid "sequence %s"
+msgstr "序列 %s"
+
+#: catalog/objectaddress.c:2235
+#, c-format
+msgid "toast table %s"
+msgstr "toast 表 %s"
+
+#: catalog/objectaddress.c:2239
+#, c-format
+msgid "view %s"
+msgstr "视图 %s"
+
+#: catalog/objectaddress.c:2243
+#, c-format
+#| msgid "materialized view"
+msgid "materialized view %s"
+msgstr "物化视图 %s"
+
+#: catalog/objectaddress.c:2247
+#, c-format
+msgid "composite type %s"
+msgstr "复合类型 %s"
+
+#: catalog/objectaddress.c:2251
+#, c-format
+msgid "foreign table %s"
+msgstr "外部表 %s"
+
+#: catalog/objectaddress.c:2256
+#, c-format
+msgid "relation %s"
+msgstr "关系 %s"
+
+#: catalog/objectaddress.c:2293
+#, c-format
+msgid "operator family %s for access method %s"
+msgstr "访问方法 %2$s 的操作符类 %1$s"
+
+#: catalog/pg_aggregate.c:118
+#, c-format
+#| msgid "functions cannot have more than %d argument"
+#| msgid_plural "functions cannot have more than %d arguments"
+msgid "aggregates cannot have more than %d argument"
+msgid_plural "aggregates cannot have more than %d arguments"
+msgstr[0] "聚集函数的参数不能多于%d个"
+
+#: catalog/pg_aggregate.c:141 catalog/pg_aggregate.c:151
 #, c-format
 msgid "cannot determine transition data type"
 msgstr "无法确定转换数据类型"
 
-#: catalog/pg_aggregate.c:102
+#: catalog/pg_aggregate.c:142 catalog/pg_aggregate.c:152
 #, c-format
 msgid ""
 "An aggregate using a polymorphic transition type must have at least one "
 "polymorphic argument."
 msgstr "使用多态转换类型的聚合函数必须至少有一个多态的参数"
 
-#: catalog/pg_aggregate.c:125
+#: catalog/pg_aggregate.c:165
+#, c-format
+msgid "a variadic ordered-set aggregate must use VARIADIC type ANY"
+msgstr "一个可变有序集聚集必须使用可变类型ANY"
+
+#: catalog/pg_aggregate.c:191
+#, c-format
+msgid ""
+"a hypothetical-set aggregate must have direct arguments matching its "
+"aggregated arguments"
+msgstr "一个判定集聚集的直接参数必须与它的聚集参数相匹配"
+
+#: catalog/pg_aggregate.c:238 catalog/pg_aggregate.c:282
 #, c-format
 msgid "return type of transition function %s is not %s"
 msgstr "转换函数的返回类型 %s 不是 %s"
 
-#: catalog/pg_aggregate.c:145
+#: catalog/pg_aggregate.c:258 catalog/pg_aggregate.c:301
 #, c-format
 msgid ""
 "must not omit initial value when transition function is strict and "
 "transition type is not compatible with input type"
 msgstr "当转换函数是受限制的并且转换类型与输入类型不兼容时,不能忽略初始化值"
 
-#: catalog/pg_aggregate.c:176 catalog/pg_proc.c:240 catalog/pg_proc.c:247
+#: catalog/pg_aggregate.c:327
+#, c-format
+#| msgid "return type of transition function %s is not %s"
+msgid "return type of inverse transition function %s is not %s"
+msgstr "逆向转换函数的返回类型 %s 不是 %s"
+
+#: catalog/pg_aggregate.c:344 executor/nodeWindowAgg.c:2301
+#, c-format
+msgid ""
+"strictness of aggregate's forward and inverse transition functions must match"
+msgstr "聚集函数的正向和逆向转换函数必须匹配"
+
+#: catalog/pg_aggregate.c:388 catalog/pg_aggregate.c:464
+#, c-format
+msgid "final function with extra arguments must not be declared STRICT"
+msgstr "带参数的终止函数不能定义为STRICT"
+
+#: catalog/pg_aggregate.c:410 catalog/pg_proc.c:241 catalog/pg_proc.c:248
 #, c-format
 msgid "cannot determine result data type"
 msgstr "无法确定结构数据类型"
 
-#: catalog/pg_aggregate.c:177
+#: catalog/pg_aggregate.c:411
 #, c-format
 msgid ""
 "An aggregate returning a polymorphic type must have at least one polymorphic "
 "argument."
 msgstr "使用多态类型的聚合函数必须至少有一个多态的参数"
 
-#: catalog/pg_aggregate.c:189 catalog/pg_proc.c:253
+#: catalog/pg_aggregate.c:423 catalog/pg_proc.c:254
 #, c-format
 msgid "unsafe use of pseudo-type \"internal\""
 msgstr "使用伪类型\"internal\"的方式不安全"
 
-#: catalog/pg_aggregate.c:190 catalog/pg_proc.c:254
+#: catalog/pg_aggregate.c:424 catalog/pg_proc.c:255
 #, c-format
 msgid ""
 "A function returning \"internal\" must have at least one \"internal\" "
 "argument."
 msgstr "返回\"internal\"类型结果的函数必须至少有一个\"internal\" 类型的参数"
 
-#: catalog/pg_aggregate.c:198
+#: catalog/pg_aggregate.c:477
+#, c-format
+msgid ""
+"moving-aggregate implementation returns type %s, but plain implementation "
+"returns type %s"
+msgstr "moving-aggregate的实现返回类型为%s, 但是普通的实现返回类型为%s"
+
+#: catalog/pg_aggregate.c:488
 #, c-format
 msgid "sort operator can only be specified for single-argument aggregates"
 msgstr "只能为单一参数的聚合函数而定义排序操作符."
 
-#: catalog/pg_aggregate.c:353 commands/typecmds.c:1623
-#: commands/typecmds.c:1674 commands/typecmds.c:1705 commands/typecmds.c:1728
-#: commands/typecmds.c:1749 commands/typecmds.c:1776 commands/typecmds.c:1803
-#: commands/typecmds.c:1880 commands/typecmds.c:1922 parser/parse_func.c:288
-#: parser/parse_func.c:299 parser/parse_func.c:1562
+#: catalog/pg_aggregate.c:701 commands/typecmds.c:1657
+#: commands/typecmds.c:1708 commands/typecmds.c:1739 commands/typecmds.c:1762
+#: commands/typecmds.c:1783 commands/typecmds.c:1810 commands/typecmds.c:1837
+#: commands/typecmds.c:1914 commands/typecmds.c:1956 parser/parse_func.c:357
+#: parser/parse_func.c:386 parser/parse_func.c:411 parser/parse_func.c:425
+#: parser/parse_func.c:500 parser/parse_func.c:511 parser/parse_func.c:1907
 #, c-format
 msgid "function %s does not exist"
 msgstr "函数 %s 不存在"
 
-#: catalog/pg_aggregate.c:359
+#: catalog/pg_aggregate.c:707
 #, c-format
 msgid "function %s returns a set"
 msgstr "函数 %s 返回一个组合"
 
-#: catalog/pg_aggregate.c:384
+#: catalog/pg_aggregate.c:722
+#, c-format
+msgid "function %s must accept VARIADIC ANY to be used in this aggregate"
+msgstr "函数%s必须接受VARIADIC ANY类型,用于聚集函数中"
+
+#: catalog/pg_aggregate.c:746
 #, c-format
 msgid "function %s requires run-time type coercion"
 msgstr "函数 %s 需要运行时类型强制"
 
-#: catalog/pg_collation.c:76
+#: catalog/pg_collation.c:77
 #, c-format
 msgid "collation \"%s\" for encoding \"%s\" already exists"
 msgstr "编码 \"%2$s\" 的排序规则 \"%1$s\" 已经存在"
 
-#: catalog/pg_collation.c:90
+#: catalog/pg_collation.c:91
 #, c-format
 msgid "collation \"%s\" already exists"
 msgstr "排序规则 \"%s\" 已经存在"
 
-#: catalog/pg_constraint.c:657
+#: catalog/pg_constraint.c:659
 #, c-format
 msgid "constraint \"%s\" for domain %s already exists"
 msgstr "域 %2$s 的约束 \"%1$s\" 已经存在"
 
-#: catalog/pg_constraint.c:786
+#: catalog/pg_constraint.c:811
 #, c-format
 msgid "table \"%s\" has multiple constraints named \"%s\""
 msgstr "表 \"%s\" 有多个名为 \"%s\" 的约束"
 
-#: catalog/pg_constraint.c:798
+#: catalog/pg_constraint.c:823
 #, c-format
 msgid "constraint \"%s\" for table \"%s\" does not exist"
 msgstr "表 \"%2$s\" 的 \"%1$s\" 约束不存在"
 
-#: catalog/pg_constraint.c:844
+#: catalog/pg_constraint.c:869
 #, c-format
 msgid "domain \"%s\" has multiple constraints named \"%s\""
 msgstr "域 \"%s\" 有多个名为 \"%s\" 的约束"
 
-#: catalog/pg_constraint.c:856
+#: catalog/pg_constraint.c:881
 #, c-format
 msgid "constraint \"%s\" for domain \"%s\" does not exist"
 msgstr "域 \"%2$s\" 的 \"%1$s\" 约束不存在"
 
-#: catalog/pg_conversion.c:65
+#: catalog/pg_conversion.c:67
 #, c-format
 msgid "conversion \"%s\" already exists"
 msgstr "编码转换 \"%s\" 已经存在"
 
-#: catalog/pg_conversion.c:78
+#: catalog/pg_conversion.c:80
 #, c-format
 msgid "default conversion for %s to %s already exists"
 msgstr "默认的 %s 到 %s 的转换已经存在"
 
-#: catalog/pg_depend.c:164 commands/extension.c:2914
+#: catalog/pg_depend.c:165 commands/extension.c:2926
 #, c-format
 msgid "%s is already a member of extension \"%s\""
 msgstr "\"%s\" 已经是扩展\"%s\"的成员"
 
-#: catalog/pg_depend.c:323
+#: catalog/pg_depend.c:324
 #, c-format
 msgid "cannot remove dependency on %s because it is a system object"
 msgstr "无法删除在%s上的依赖关系,因为它是一个系统对象"
 
-#: catalog/pg_enum.c:112 catalog/pg_enum.c:198
+#: catalog/pg_enum.c:115 catalog/pg_enum.c:202
 #, c-format
 msgid "invalid enum label \"%s\""
 msgstr "无效的枚举类型标签 \"%s\""
 
-#: catalog/pg_enum.c:113 catalog/pg_enum.c:199
+#: catalog/pg_enum.c:116 catalog/pg_enum.c:203
 #, c-format
 msgid "Labels must be %d characters or less."
 msgstr "标签必需为 %d 个字符或更少"
 
-#: catalog/pg_enum.c:263
+#: catalog/pg_enum.c:231
+#, c-format
+#| msgid "relation \"%s\" already exists, skipping"
+msgid "enum label \"%s\" already exists, skipping"
+msgstr "枚举标签 \"%s\" 已经存在, 跳过"
+
+#: catalog/pg_enum.c:238
+#, c-format
+#| msgid "language \"%s\" already exists"
+msgid "enum label \"%s\" already exists"
+msgstr "枚举标签 \"%s\" 已经存在"
+
+#: catalog/pg_enum.c:293
 #, c-format
 msgid "\"%s\" is not an existing enum label"
 msgstr "枚举标签\"%s\" 不存在"
 
-#: catalog/pg_enum.c:324
+#: catalog/pg_enum.c:354
 #, c-format
 msgid "ALTER TYPE ADD BEFORE/AFTER is incompatible with binary upgrade"
 msgstr "ALTER TYPE ADD BEFORE/AFTER与二进制升级不兼容"
 
-#: catalog/pg_namespace.c:60 commands/schemacmds.c:195
+#: catalog/pg_namespace.c:61 commands/schemacmds.c:220
 #, c-format
 msgid "schema \"%s\" already exists"
 msgstr "模式 \"%s\" 已经存在"
 
-#: catalog/pg_operator.c:221 catalog/pg_operator.c:362
+#: catalog/pg_operator.c:222 catalog/pg_operator.c:362
 #, c-format
 msgid "\"%s\" is not a valid operator name"
 msgstr "\"%s\" 不是一个有效的操作符名称"
@@ -3670,111 +4001,117 @@ msgstr "只有布尔操作符可以进行散列操作"
 msgid "operator %s already exists"
 msgstr "操作符 %s 已经存在"
 
-#: catalog/pg_operator.c:614
+#: catalog/pg_operator.c:615
 #, c-format
 msgid "operator cannot be its own negator or sort operator"
 msgstr "操作符不能否定自己或者排序分类操作符"
 
-#: catalog/pg_proc.c:128 parser/parse_func.c:1607 parser/parse_func.c:1647
+#: catalog/pg_proc.c:129 parser/parse_func.c:1931 parser/parse_func.c:1971
 #, c-format
 msgid "functions cannot have more than %d argument"
 msgid_plural "functions cannot have more than %d arguments"
 msgstr[0] "函数的参数不能多于%d个"
 
-#: catalog/pg_proc.c:241
+#: catalog/pg_proc.c:242
 #, c-format
 msgid ""
 "A function returning a polymorphic type must have at least one polymorphic "
 "argument."
 msgstr "返回一个多态类型的函数必须至少有一个多态参数"
 
-#: catalog/pg_proc.c:248
+#: catalog/pg_proc.c:249
 #, c-format
-msgid "A function returning ANYRANGE must have at least one ANYRANGE argument."
-msgstr "返回ARYRANGE类型结果的函数必须至少有一个ANYRANGE 类型的参数."
+#| msgid ""
+#| "A function returning \"internal\" must have at least one \"internal\" "
+#| "argument."
+msgid ""
+"A function returning \"anyrange\" must have at least one \"anyrange\" "
+"argument."
+msgstr "返回\"anyrange\"类型结果的函数必须至少有一个\"anyrange\" 类型的参数"
 
-#: catalog/pg_proc.c:266
+#: catalog/pg_proc.c:267
 #, c-format
 msgid "\"%s\" is already an attribute of type %s"
 msgstr "\"%s\" 已经是类型 %s 的一个属性"
 
-#: catalog/pg_proc.c:392
+#: catalog/pg_proc.c:393
 #, c-format
 msgid "function \"%s\" already exists with same argument types"
 msgstr "带相同参数类型的函数 \"%s\" 已经存在"
 
-#: catalog/pg_proc.c:406 catalog/pg_proc.c:428
+#: catalog/pg_proc.c:407 catalog/pg_proc.c:430
 #, c-format
 msgid "cannot change return type of existing function"
 msgstr "不能改变已经存在的函数的返回值类型"
 
-#: catalog/pg_proc.c:407 catalog/pg_proc.c:430 catalog/pg_proc.c:472
-#: catalog/pg_proc.c:495 catalog/pg_proc.c:521
+#: catalog/pg_proc.c:408 catalog/pg_proc.c:432 catalog/pg_proc.c:475
+#: catalog/pg_proc.c:499 catalog/pg_proc.c:526
 #, c-format
-msgid "Use DROP FUNCTION first."
-msgstr "请先使用 DROP FUNCTION."
+#| msgid "Use DROP FUNCTION first."
+msgid "Use DROP FUNCTION %s first."
+msgstr "请先使用 DROP FUNCTION %s."
 
-#: catalog/pg_proc.c:429
+#: catalog/pg_proc.c:431
 #, c-format
 msgid "Row type defined by OUT parameters is different."
 msgstr "由OUT模式参数定义的记录类型不同"
 
-#: catalog/pg_proc.c:470
+#: catalog/pg_proc.c:473
 #, c-format
 msgid "cannot change name of input parameter \"%s\""
 msgstr "无法改变输入参数\"%s\"的名称"
 
-#: catalog/pg_proc.c:494
+#: catalog/pg_proc.c:498
 #, c-format
 msgid "cannot remove parameter defaults from existing function"
 msgstr "不能从已存在的函数种删除参数缺正值"
 
-#: catalog/pg_proc.c:520
+#: catalog/pg_proc.c:525
 #, c-format
 msgid "cannot change data type of existing parameter default value"
 msgstr "不能改变已经存在参数缺省值的数据类型"
 
-#: catalog/pg_proc.c:532
+#: catalog/pg_proc.c:538
 #, c-format
 msgid "function \"%s\" is an aggregate function"
 msgstr "函数\"%s\" 是一个聚合函数"
 
-#: catalog/pg_proc.c:537
+#: catalog/pg_proc.c:543
 #, c-format
 msgid "function \"%s\" is not an aggregate function"
 msgstr "函数 \"%s\" 不是一个聚合函数"
 
-#: catalog/pg_proc.c:545
+#: catalog/pg_proc.c:551
 #, c-format
 msgid "function \"%s\" is a window function"
 msgstr "函数\"%s\"是一个窗口函数"
 
-#: catalog/pg_proc.c:550
+#: catalog/pg_proc.c:556
 #, c-format
 msgid "function \"%s\" is not a window function"
 msgstr "函数 \"%s\" 不是一个窗口函数"
 
-#: catalog/pg_proc.c:728
+#: catalog/pg_proc.c:746
 #, c-format
 msgid "there is no built-in function named \"%s\""
 msgstr "没有名为 \"%s\" 的内建函数"
 
-#: catalog/pg_proc.c:820
+#: catalog/pg_proc.c:844
 #, c-format
 msgid "SQL functions cannot return type %s"
 msgstr "SQL 函数无法返回 %s 类型"
 
-#: catalog/pg_proc.c:835
+#: catalog/pg_proc.c:859
 #, c-format
 msgid "SQL functions cannot have arguments of type %s"
 msgstr "SQL 函数不能有 %s 类型的参数"
 
-#: catalog/pg_proc.c:921 executor/functions.c:1346
+#: catalog/pg_proc.c:945 executor/functions.c:1418
 #, c-format
 msgid "SQL function \"%s\""
 msgstr "SQL 函数 \"%s\""
 
-#: catalog/pg_shdepend.c:684
+#: catalog/pg_shdepend.c:691
 #, c-format
 msgid ""
 "\n"
@@ -3786,179 +4123,279 @@ msgstr[0] ""
 "\n"
 "对象在 %d 个其它数据库中"
 
-#: catalog/pg_shdepend.c:996
+#: catalog/pg_shdepend.c:1003
 #, c-format
 msgid "role %u was concurrently dropped"
 msgstr "角色%u被同时删除"
 
-#: catalog/pg_shdepend.c:1015
+#: catalog/pg_shdepend.c:1022
 #, c-format
 msgid "tablespace %u was concurrently dropped"
 msgstr "表空间 %u 被同时删除"
 
-#: catalog/pg_shdepend.c:1030
+#: catalog/pg_shdepend.c:1037
 #, c-format
 msgid "database %u was concurrently dropped"
 msgstr "数据库 %u 被同时删除"
 
-#: catalog/pg_shdepend.c:1074
+#: catalog/pg_shdepend.c:1081
 #, c-format
 msgid "owner of %s"
 msgstr "%s的属主"
 
-#: catalog/pg_shdepend.c:1076
+#: catalog/pg_shdepend.c:1083
 #, c-format
 msgid "privileges for %s"
 msgstr "%s的权限"
 
 #. translator: %s will always be "database %s"
-#: catalog/pg_shdepend.c:1084
+#: catalog/pg_shdepend.c:1091
 #, c-format
 msgid "%d object in %s"
 msgid_plural "%d objects in %s"
 msgstr[0] "在%2$s中的%1$d个对象"
 
-#: catalog/pg_shdepend.c:1195
+#: catalog/pg_shdepend.c:1202
 #, c-format
 msgid ""
 "cannot drop objects owned by %s because they are required by the database "
 "system"
 msgstr "无法删除由%s所拥有的对象, 因为数据库系统需要这些对象"
 
-#: catalog/pg_shdepend.c:1298
+#: catalog/pg_shdepend.c:1305
 #, c-format
 msgid ""
 "cannot reassign ownership of objects owned by %s because they are required "
 "by the database system"
 msgstr "无法再分配由%s所拥有的对象, 因为数据库系统需要这些对象"
 
-#: catalog/pg_type.c:243
+#: catalog/pg_type.c:244
 #, c-format
 msgid "invalid type internal size %d"
 msgstr "无效类型内部大小 %d"
 
-#: catalog/pg_type.c:259 catalog/pg_type.c:267 catalog/pg_type.c:275
-#: catalog/pg_type.c:284
+#: catalog/pg_type.c:260 catalog/pg_type.c:268 catalog/pg_type.c:276
+#: catalog/pg_type.c:285
 #, c-format
 msgid "alignment \"%c\" is invalid for passed-by-value type of size %d"
 msgstr "对齐方式 \"%c\"对于大小为%d的passed-by-value 类型是无效的"
 
-#: catalog/pg_type.c:291
+#: catalog/pg_type.c:292
 #, c-format
 msgid "internal size %d is invalid for passed-by-value type"
 msgstr "internal 大小 %d 对于 passed-by-value 类型是无效的"
 
-#: catalog/pg_type.c:300 catalog/pg_type.c:306
+#: catalog/pg_type.c:301 catalog/pg_type.c:307
 #, c-format
 msgid "alignment \"%c\" is invalid for variable-length type"
 msgstr "对齐方式 \"%c\"对于大小为可变长度的类型是无效的"
 
-#: catalog/pg_type.c:314
+#: catalog/pg_type.c:315
 #, c-format
 msgid "fixed-size types must have storage PLAIN"
 msgstr "固定大小类型必需有明确的存储"
 
-#: catalog/pg_type.c:771
+#: catalog/pg_type.c:773
 #, c-format
 msgid "could not form array type name for type \"%s\""
 msgstr "无法为类型\"%s\"来形成数组类型名称"
 
-#: catalog/toasting.c:143
+#: catalog/toasting.c:104 commands/indexcmds.c:380 commands/tablecmds.c:4139
+#: commands/tablecmds.c:11137
+#, c-format
+#| msgid "\"%s\" is not a table or view"
+msgid "\"%s\" is not a table or materialized view"
+msgstr "\"%s\" 不是一个表或物化视图"
+
+#: catalog/toasting.c:157
 #, c-format
 msgid "shared tables cannot be toasted after initdb"
 msgstr "在 initdb 之后, 不可以 toasted 共享表"
 
-#: commands/aggregatecmds.c:103
+#: commands/aggregatecmds.c:148
+#, c-format
+msgid "only ordered-set aggregates can be hypothetical"
+msgstr "只有有序集聚焦函数可用被用于判定"
+
+#: commands/aggregatecmds.c:171
 #, c-format
 msgid "aggregate attribute \"%s\" not recognized"
 msgstr "聚集属性 \"%s\" 不被认可"
 
-#: commands/aggregatecmds.c:113
+#: commands/aggregatecmds.c:181
 #, c-format
 msgid "aggregate stype must be specified"
 msgstr "聚集 stype 必须指定"
 
-#: commands/aggregatecmds.c:117
+#: commands/aggregatecmds.c:185
 #, c-format
 msgid "aggregate sfunc must be specified"
 msgstr "聚集 sfunc 必须指定"
 
-#: commands/aggregatecmds.c:134
+#: commands/aggregatecmds.c:197
 #, c-format
-msgid "aggregate input type must be specified"
-msgstr "必须指定聚合函数的输入参数类型"
+#| msgid "aggregate sfunc must be specified"
+msgid "aggregate msfunc must be specified when mstype is specified"
+msgstr "当mstype指定了的时候, 聚集 sfunc 必须指定"
 
-#: commands/aggregatecmds.c:159
+#: commands/aggregatecmds.c:201
 #, c-format
-msgid "basetype is redundant with aggregate input type specification"
-msgstr "如果带有聚合函数输入类型定义,那么基类型定义就是冗余的."
+#| msgid "aggregate sfunc must be specified"
+msgid "aggregate minvfunc must be specified when mstype is specified"
+msgstr "当mstype指定了的时候, 聚集 minvfunc 必须指定"
 
-#: commands/aggregatecmds.c:191
+#: commands/aggregatecmds.c:208
 #, c-format
-msgid "aggregate transition data type cannot be %s"
-msgstr "聚集转换数据类型不能为 %s"
+#| msgid "aggregate sfunc must be specified"
+msgid "aggregate msfunc must not be specified without mstype"
+msgstr "当mstype没被指定时, 聚集 msfunc 也不能指定"
 
-#: commands/aggregatecmds.c:243 commands/functioncmds.c:1090
+#: commands/aggregatecmds.c:212
 #, c-format
-msgid "function %s already exists in schema \"%s\""
-msgstr "在模式 \"%2$s\" 中函数 %1$s 已经存在"
+#| msgid "aggregate sfunc must be specified"
+msgid "aggregate minvfunc must not be specified without mstype"
+msgstr "没有mstype, 就不能指定聚集minvfunc"
 
-#: commands/alter.c:386
+#: commands/aggregatecmds.c:216
 #, c-format
-msgid "must be superuser to set schema of %s"
-msgstr "只有超级用户能设置%s的模式"
+#| msgid "aggregate sfunc must be specified"
+msgid "aggregate mfinalfunc must not be specified without mstype"
+msgstr "没有mstype, 就不能指定聚集 mfinalfunc"
 
-#: commands/alter.c:414
+#: commands/aggregatecmds.c:220
 #, c-format
-msgid "%s already exists in schema \"%s\""
-msgstr "在于模式\"%2$s\"中已存在类型%1$s"
+#| msgid "aggregate stype must be specified"
+msgid "aggregate msspace must not be specified without mstype"
+msgstr "没有指定mstype,就不能指定聚集msspace"
 
-#: commands/analyze.c:154
+#: commands/aggregatecmds.c:224
 #, c-format
-msgid "skipping analyze of \"%s\" --- lock not available"
-msgstr "跳过对 \"%s\"的分析 --- 锁无法得到"
+#| msgid "aggregate sfunc must be specified"
+msgid "aggregate minitcond must not be specified without mstype"
+msgstr "没有指定mstype,就不能指定minitcond"
 
-#: commands/analyze.c:171
+#: commands/aggregatecmds.c:244
 #, c-format
-msgid "skipping \"%s\" --- only superuser can analyze it"
-msgstr "忽ç\95¥ \"%s\" --- å\8fªæ\9c\89è¶\85级ç\94¨æ\88·è\83½å¤\9få\88\86æ\9e\90å®\83"
+msgid "aggregate input type must be specified"
+msgstr "å¿\85é¡»æ\8c\87å®\9aè\81\9aå\90\88å\87½æ\95°ç\9a\84è¾\93å\85¥å\8f\82æ\95°ç±»å\9e\8b"
 
-#: commands/analyze.c:175
+#: commands/aggregatecmds.c:274
 #, c-format
-msgid "skipping \"%s\" --- only superuser or database owner can analyze it"
-msgstr "忽ç\95¥ \"%s\" --- å\8fªæ\9c\89è¶\85级ç\94¨æ\88·æ\88\96æ\95°æ\8d®åº\93ç\9a\84å±\9e主è\83½å¤\9få\88\86æ\9e\90å®\83"
+msgid "basetype is redundant with aggregate input type specification"
+msgstr "å¦\82æ\9e\9c带æ\9c\89è\81\9aå\90\88å\87½æ\95°è¾\93å\85¥ç±»å\9e\8bå®\9aä¹\89ï¼\8cé\82£ä¹\88å\9fºç±»å\9e\8bå®\9aä¹\89å°±æ\98¯å\86\97ä½\99ç\9a\84."
 
-#: commands/analyze.c:179
+#: commands/aggregatecmds.c:315 commands/aggregatecmds.c:335
 #, c-format
-msgid "skipping \"%s\" --- only table or database owner can analyze it"
-msgstr "忽略 \"%s\" --- 只有表或数据库的属主能够分析它"
+msgid "aggregate transition data type cannot be %s"
+msgstr "聚集转换数据类型不能为 %s"
 
-#: commands/analyze.c:238
+#: commands/alter.c:79 commands/event_trigger.c:194
 #, c-format
-msgid "skipping \"%s\" --- cannot analyze this foreign table"
-msgstr "忽略 \"%s\" --- 无法分析该外部表"
+#| msgid "server \"%s\" already exists"
+msgid "event trigger \"%s\" already exists"
+msgstr "事件触发器 \"%s\" 已经存在"
 
-#: commands/analyze.c:249
+#: commands/alter.c:82 commands/foreigncmds.c:544
 #, c-format
-msgid "skipping \"%s\" --- cannot analyze non-tables or special system tables"
-msgstr "忽ç\95¥ \"%s\" --- æ\97 æ³\95å\88\86æ\9e\90é\9d\9e表æ\88\96ç\89¹æ®\8aç\9a\84ç³»ç»\9f表"
+msgid "foreign-data wrapper \"%s\" already exists"
+msgstr "å¤\96é\83¨æ\95°æ\8d®å°\81è£\85å\99¨\"%s\"å·²ç»\8få­\98å\9c¨"
 
-#: commands/analyze.c:326
+#: commands/alter.c:85 commands/foreigncmds.c:838
 #, c-format
-msgid "analyzing \"%s.%s\" inheritance tree"
-msgstr "正在分析 \"%s.%s\"继承树"
-
-#: commands/analyze.c:331
+msgid "server \"%s\" already exists"
+msgstr "服务器 \"%s\" 已经存在"
+
+#: commands/alter.c:88 commands/proclang.c:356
+#, c-format
+msgid "language \"%s\" already exists"
+msgstr "语言 \"%s\" 已经存在"
+
+#: commands/alter.c:111
+#, c-format
+msgid "conversion \"%s\" already exists in schema \"%s\""
+msgstr "约束 \"%s\" 已经存在于模式 \"%s\" 中"
+
+#: commands/alter.c:115
+#, c-format
+#| msgid "text search parser \"%s\" already exists"
+msgid "text search parser \"%s\" already exists in schema \"%s\""
+msgstr "文本搜索解析器\"%s\"已存在于方案\"%s\"中"
+
+#: commands/alter.c:119
+#, c-format
+#| msgid "text search dictionary \"%s\" already exists"
+msgid "text search dictionary \"%s\" already exists in schema \"%s\""
+msgstr "文本搜索字典\"%s\" 已经存在于方案\"%s\"中"
+
+#: commands/alter.c:123
+#, c-format
+#| msgid "text search template \"%s\" already exists"
+msgid "text search template \"%s\" already exists in schema \"%s\""
+msgstr "文本搜索模板\"%s\" 已经存在于方案\"%s\"中"
+
+#: commands/alter.c:127
+#, c-format
+#| msgid "text search configuration \"%s\" already exists"
+msgid "text search configuration \"%s\" already exists in schema \"%s\""
+msgstr "文本搜索配置\"%s\"已存在于方案\"%s\"中"
+
+#: commands/alter.c:201
+#, c-format
+#| msgid "must be superuser to examine \"%s\""
+msgid "must be superuser to rename %s"
+msgstr "必须为超级用户才能进行重命名\"%s\" "
+
+#: commands/alter.c:585
+#, c-format
+msgid "must be superuser to set schema of %s"
+msgstr "只有超级用户能设置%s的模式"
+
+#: commands/analyze.c:157
+#, c-format
+msgid "skipping analyze of \"%s\" --- lock not available"
+msgstr "跳过对 \"%s\"的分析 --- 锁无法得到"
+
+#: commands/analyze.c:174
+#, c-format
+msgid "skipping \"%s\" --- only superuser can analyze it"
+msgstr "忽略 \"%s\" --- 只有超级用户能够分析它"
+
+#: commands/analyze.c:178
+#, c-format
+msgid "skipping \"%s\" --- only superuser or database owner can analyze it"
+msgstr "忽略 \"%s\" --- 只有超级用户或数据库的属主能够分析它"
+
+#: commands/analyze.c:182
+#, c-format
+msgid "skipping \"%s\" --- only table or database owner can analyze it"
+msgstr "忽略 \"%s\" --- 只有表或数据库的属主能够分析它"
+
+#: commands/analyze.c:242
+#, c-format
+msgid "skipping \"%s\" --- cannot analyze this foreign table"
+msgstr "忽略 \"%s\" --- 无法分析该外部表"
+
+#: commands/analyze.c:253
+#, c-format
+msgid "skipping \"%s\" --- cannot analyze non-tables or special system tables"
+msgstr "忽略 \"%s\" --- 无法分析非表或特殊的系统表"
+
+#: commands/analyze.c:332
+#, c-format
+msgid "analyzing \"%s.%s\" inheritance tree"
+msgstr "正在分析 \"%s.%s\"继承树"
+
+#: commands/analyze.c:337
 #, c-format
 msgid "analyzing \"%s.%s\""
 msgstr "正在分析 \"%s.%s\""
 
-#: commands/analyze.c:647
+#: commands/analyze.c:657
 #, c-format
 msgid "automatic analyze of table \"%s.%s.%s\" system usage: %s"
 msgstr "自动分析表 \"%s.%s.%s\"的系统使用情况: %s"
 
-#: commands/analyze.c:1289
+#: commands/analyze.c:1300
 #, c-format
 msgid ""
 "\"%s\": scanned %d of %u pages, containing %.0f live rows and %.0f dead "
@@ -3967,21 +4404,21 @@ msgstr ""
 "\"%1$s\": 已经扫描了%3$u页的%2$d, 包含%4$.0f可用的记录和%5$.0f不能用的记录; "
 "在示例中有%6$d条记录,估算所有记录为%7$.0f ."
 
-#: commands/analyze.c:1553 executor/execQual.c:2837
+#: commands/analyze.c:1564 executor/execQual.c:2904
 msgid "could not convert row type"
 msgstr "无法转换记录类型"
 
-#: commands/async.c:546
+#: commands/async.c:545
 #, c-format
 msgid "channel name cannot be empty"
 msgstr "通道名称不能为空"
 
-#: commands/async.c:551
+#: commands/async.c:550
 #, c-format
 msgid "channel name too long"
 msgstr "通道名称太长"
 
-#: commands/async.c:558
+#: commands/async.c:557
 #, c-format
 msgid "payload string too long"
 msgstr "流量负载字符串太长"
@@ -3992,99 +4429,99 @@ msgid ""
 "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY"
 msgstr "无法在一个已经执行了LISTEN或UNLISTEN、NOTIFY操作的事务上执行PREPARE"
 
-#: commands/async.c:847
+#: commands/async.c:845
 #, c-format
 msgid "too many notifications in the NOTIFY queue"
 msgstr "在NOTIFY队列中的通知太多了"
 
-#: commands/async.c:1426
+#: commands/async.c:1418
 #, c-format
 msgid "NOTIFY queue is %.0f%% full"
 msgstr "NOTIFY队列达到了%.0f%%的容量"
 
-#: commands/async.c:1428
+#: commands/async.c:1420
 #, c-format
 msgid ""
 "The server process with PID %d is among those with the oldest transactions."
 msgstr "带有PID为%d的服务器进程在那些带有最老事务的进程中。"
 
-#: commands/async.c:1431
+#: commands/async.c:1423
 #, c-format
 msgid ""
 "The NOTIFY queue cannot be emptied until that process ends its current "
 "transaction."
 msgstr "在进程结束它所处理的当前事务前, NOTIFY队列不能为空."
 
-#: commands/cluster.c:124 commands/cluster.c:362
+#: commands/cluster.c:126 commands/cluster.c:363
 #, c-format
 msgid "cannot cluster temporary tables of other sessions"
 msgstr "无法为其它会话的临时表建簇"
 
-#: commands/cluster.c:154
+#: commands/cluster.c:156
 #, c-format
 msgid "there is no previously clustered index for table \"%s\""
 msgstr "在表 \"%s\" 中未找到先前建簇的索引"
 
-#: commands/cluster.c:168 commands/tablecmds.c:8436
+#: commands/cluster.c:170 commands/tablecmds.c:8795 commands/tablecmds.c:10461
 #, c-format
 msgid "index \"%s\" for table \"%s\" does not exist"
 msgstr "表 \"%2$s\" 的 \"%1$s\" 索引不存在"
 
-#: commands/cluster.c:351
+#: commands/cluster.c:352
 #, c-format
 msgid "cannot cluster a shared catalog"
 msgstr "无法在共享目录视图上进行聚簇操作"
 
-#: commands/cluster.c:366
+#: commands/cluster.c:367
 #, c-format
 msgid "cannot vacuum temporary tables of other sessions"
 msgstr "无法对其它会话的临时表进行清理操作"
 
-#: commands/cluster.c:416
+#: commands/cluster.c:430 commands/tablecmds.c:10471
 #, c-format
 msgid "\"%s\" is not an index for table \"%s\""
 msgstr "对于表 \"%2$s\" \"%1$s\" 不是一个索引"
 
-#: commands/cluster.c:424
+#: commands/cluster.c:438
 #, c-format
 msgid ""
 "cannot cluster on index \"%s\" because access method does not support "
 "clustering"
 msgstr "无法在索引\"%s\"进行聚簇操作,因为访问方法不支持进行聚簇操作"
 
-#: commands/cluster.c:436
+#: commands/cluster.c:450
 #, c-format
 msgid "cannot cluster on partial index \"%s\""
 msgstr "无法在部分索引 \"%s\"上进行聚簇操作"
 
-#: commands/cluster.c:450
+#: commands/cluster.c:464
 #, c-format
 msgid "cannot cluster on invalid index \"%s\""
 msgstr "无法在无效索引\"%s\"进行聚簇操作"
 
-#: commands/cluster.c:881
+#: commands/cluster.c:920
 #, c-format
 msgid "clustering \"%s.%s\" using index scan on \"%s\""
 msgstr "簇 \"%s.%s\" 正在 \"%s\"进行索引扫描"
 
-#: commands/cluster.c:887
+#: commands/cluster.c:926
 #, c-format
 msgid "clustering \"%s.%s\" using sequential scan and sort"
 msgstr "簇 \"%s.%s\"正在进行顺序扫描和排序"
 
-#: commands/cluster.c:892 commands/vacuumlazy.c:405
+#: commands/cluster.c:931 commands/vacuumlazy.c:445
 #, c-format
 msgid "vacuuming \"%s.%s\""
 msgstr "正在清理 (vacuum)  \"%s.%s\""
 
-#: commands/cluster.c:1052
+#: commands/cluster.c:1090
 #, c-format
 msgid ""
 "\"%s\": found %.0f removable, %.0f nonremovable row versions in %u pages"
 msgstr ""
 "\"%1$s\": 在%4$u个页中找到%2$.0f个可删除行版本,%3$.0f不可删除的行版本."
 
-#: commands/cluster.c:1056
+#: commands/cluster.c:1094
 #, c-format
 msgid ""
 "%.0f dead row versions cannot be removed yet.\n"
@@ -4093,123 +4530,128 @@ msgstr ""
 "%.0f 死行版本号仍不能移除.\n"
 "%s."
 
-#: commands/collationcmds.c:81
+#: commands/collationcmds.c:79
 #, c-format
 msgid "collation attribute \"%s\" not recognized"
 msgstr "无法识别排序规则属性 \"%s\""
 
-#: commands/collationcmds.c:126
+#: commands/collationcmds.c:124
 #, c-format
 msgid "parameter \"lc_collate\" must be specified"
 msgstr "参数\"lc_collate\" 必须指定"
 
-#: commands/collationcmds.c:131
+#: commands/collationcmds.c:129
 #, c-format
 msgid "parameter \"lc_ctype\" must be specified"
 msgstr "参数\"lc_ctype\"必须指定"
 
-#: commands/collationcmds.c:176 commands/collationcmds.c:355
+#: commands/collationcmds.c:163
 #, c-format
 msgid "collation \"%s\" for encoding \"%s\" already exists in schema \"%s\""
 msgstr "在模式\"%3$s\"中已经存在对应于编码\"%2$s\"的排序规则\"%1$s\""
 
-#: commands/collationcmds.c:188 commands/collationcmds.c:367
+#: commands/collationcmds.c:174
 #, c-format
 msgid "collation \"%s\" already exists in schema \"%s\""
 msgstr "在模式\"%2$s\"中已经存在排序规则\"%1$s\""
 
-#: commands/comment.c:61 commands/dbcommands.c:791 commands/dbcommands.c:947
-#: commands/dbcommands.c:1046 commands/dbcommands.c:1219
-#: commands/dbcommands.c:1404 commands/dbcommands.c:1489
-#: commands/dbcommands.c:1917 utils/init/postinit.c:717
-#: utils/init/postinit.c:785 utils/init/postinit.c:802
+#: commands/comment.c:62 commands/dbcommands.c:775 commands/dbcommands.c:939
+#: commands/dbcommands.c:1042 commands/dbcommands.c:1234
+#: commands/dbcommands.c:1423 commands/dbcommands.c:1518
+#: commands/dbcommands.c:1935 utils/init/postinit.c:794
+#: utils/init/postinit.c:862 utils/init/postinit.c:879
 #, c-format
 msgid "database \"%s\" does not exist"
 msgstr "数据库 \"%s\" 不存在"
 
-#: commands/comment.c:98 commands/seclabel.c:112 parser/parse_utilcmd.c:652
+#: commands/comment.c:101 commands/seclabel.c:114 parser/parse_utilcmd.c:686
 #, c-format
-msgid "\"%s\" is not a table, view, composite type, or foreign table"
-msgstr "\"%s\" 不是一个表,视图,组合类型或者外部表"
+#| msgid "\"%s\" is not a table, view, composite type, or foreign table"
+msgid ""
+"\"%s\" is not a table, view, materialized view, composite type, or foreign "
+"table"
+msgstr "\"%s\" 不是一个表,物化视图,组合类型或者外部表"
 
-#: commands/constraint.c:60 utils/adt/ri_triggers.c:3080
+#: commands/constraint.c:60 utils/adt/ri_triggers.c:2699
 #, c-format
 msgid "function \"%s\" was not called by trigger manager"
 msgstr "函数 \"%s\" 没有被触发器管理器调用"
 
-#: commands/constraint.c:67 utils/adt/ri_triggers.c:3089
+#: commands/constraint.c:67 utils/adt/ri_triggers.c:2708
 #, c-format
 msgid "function \"%s\" must be fired AFTER ROW"
 msgstr "函数 \"%s\"必须为AFTER ROW触发"
 
-#: commands/constraint.c:81 utils/adt/ri_triggers.c:3110
+#: commands/constraint.c:81
 #, c-format
 msgid "function \"%s\" must be fired for INSERT or UPDATE"
 msgstr "函数 \"%s\"必须为INSERT或UPDATE操作触发"
 
-#: commands/conversioncmds.c:69
+#: commands/conversioncmds.c:67
 #, c-format
 msgid "source encoding \"%s\" does not exist"
 msgstr "源编码 \"%s\" 不存在"
 
-#: commands/conversioncmds.c:76
+#: commands/conversioncmds.c:74
 #, c-format
 msgid "destination encoding \"%s\" does not exist"
 msgstr "目标编码 \"%s\" 不存在"
 
-#: commands/conversioncmds.c:90
+#: commands/conversioncmds.c:88
 #, c-format
 msgid "encoding conversion function %s must return type \"void\""
 msgstr "编码转换函数%s必须返回类型\"void\""
 
-#: commands/conversioncmds.c:148
-#, c-format
-msgid "conversion \"%s\" already exists in schema \"%s\""
-msgstr "约束 \"%s\" 已经存在于模式 \"%s\" 中"
-
-#: commands/copy.c:347 commands/copy.c:359 commands/copy.c:393
-#: commands/copy.c:403
+#: commands/copy.c:360 commands/copy.c:372 commands/copy.c:406
+#: commands/copy.c:416
 #, c-format
 msgid "COPY BINARY is not supported to stdout or from stdin"
 msgstr "COPOY BINARY 不支持输出到标准输出或来自标准输入"
 
-#: commands/copy.c:481
+#: commands/copy.c:514
+#, c-format
+#| msgid "could not write to COPY file: %m"
+msgid "could not write to COPY program: %m"
+msgstr "无法写入 COPY 程序: %m"
+
+#: commands/copy.c:519
 #, c-format
 msgid "could not write to COPY file: %m"
 msgstr "无法写入 COPY 文件: %m"
 
-#: commands/copy.c:493
+#: commands/copy.c:532
 #, c-format
 msgid "connection lost during COPY to stdout"
 msgstr "COPY 到标准输出的过程中联接中断"
 
-#: commands/copy.c:534
+#: commands/copy.c:573
 #, c-format
 msgid "could not read from COPY file: %m"
 msgstr "无法从COPY命令中文件进行读操作: %m"
 
-#: commands/copy.c:550 commands/copy.c:569 commands/copy.c:573
-#: tcop/fastpath.c:291 tcop/postgres.c:349 tcop/postgres.c:385
+#: commands/copy.c:589 commands/copy.c:608 commands/copy.c:612
+#: tcop/fastpath.c:293 tcop/postgres.c:342 tcop/postgres.c:378
 #, c-format
 msgid "unexpected EOF on client connection with an open transaction"
 msgstr "在客户端连接上的已打开事务中出现意外 EOF"
 
-#: commands/copy.c:585
+#: commands/copy.c:624
 #, c-format
 msgid "COPY from stdin failed: %s"
 msgstr "从标准输入上 COPY 失败: %s"
 
-#: commands/copy.c:601
+#: commands/copy.c:640
 #, c-format
 msgid "unexpected message type 0x%02X during COPY from stdin"
 msgstr "意外的信息类型 0x%02X, 在标准输入上 COPY 的过程中"
 
-#: commands/copy.c:753
+#: commands/copy.c:794
 #, c-format
-msgid "must be superuser to COPY to or from a file"
-msgstr "必须成为超级用户才能 COPY 到文件或从文件 COPY"
+#| msgid "must be superuser to COPY to or from a file"
+msgid "must be superuser to COPY to or from an external program"
+msgstr "必须成为超级用户才能 COPY 到外部程序或者从外部程序进行COPY"
 
-#: commands/copy.c:754
+#: commands/copy.c:795 commands/copy.c:801
 #, c-format
 msgid ""
 "Anyone can COPY to stdout or from stdin. psql's \\copy command also works "
@@ -4218,1781 +4660,1941 @@ msgstr ""
 "任何人可以 COPY 到标准输出或来自标准输入的 COPY. 任何人也可以使用 Psql 的 "
 "\\copy 命令."
 
-#: commands/copy.c:884
+#: commands/copy.c:800
+#, c-format
+msgid "must be superuser to COPY to or from a file"
+msgstr "必须成为超级用户才能 COPY 到文件或从文件 COPY"
+
+#: commands/copy.c:936
 #, c-format
 msgid "COPY format \"%s\" not recognized"
 msgstr "没有识别COPY命令的格式\"%s\""
 
-#: commands/copy.c:947 commands/copy.c:961
+#: commands/copy.c:1007 commands/copy.c:1021 commands/copy.c:1035
+#: commands/copy.c:1055
 #, c-format
 msgid "argument to option \"%s\" must be a list of column names"
 msgstr "选项 \"%s\"的参数必须是一个包含列名的列表"
 
-#: commands/copy.c:974
+#: commands/copy.c:1068
 #, c-format
 msgid "argument to option \"%s\" must be a valid encoding name"
 msgstr "选项 \"%s\"的参数必须是一个有效的编码名"
 
-#: commands/copy.c:980
+#: commands/copy.c:1074
 #, c-format
 msgid "option \"%s\" not recognized"
 msgstr "未识别选项\"%s\""
 
-#: commands/copy.c:991
+#: commands/copy.c:1085
 #, c-format
 msgid "cannot specify DELIMITER in BINARY mode"
 msgstr "在 BINARY 模式中你不能指定 DELIMITER"
 
-#: commands/copy.c:996
+#: commands/copy.c:1090
 #, c-format
 msgid "cannot specify NULL in BINARY mode"
 msgstr "在 BINARY 模式中你不能指定 NULL"
 
-#: commands/copy.c:1018
+#: commands/copy.c:1112
 #, c-format
 msgid "COPY delimiter must be a single one-byte character"
 msgstr "COPY命令中 的分隔符必需是单字节字符"
 
-#: commands/copy.c:1025
+#: commands/copy.c:1119
 #, c-format
 msgid "COPY delimiter cannot be newline or carriage return"
 msgstr "COPY 命令中的分隔符不能使新行或回车符"
 
-#: commands/copy.c:1031
+#: commands/copy.c:1125
 #, c-format
 msgid "COPY null representation cannot use newline or carriage return"
 msgstr "在COPY命令中空表达式中不能使用新行或换行回车."
 
-#: commands/copy.c:1048
+#: commands/copy.c:1142
 #, c-format
 msgid "COPY delimiter cannot be \"%s\""
 msgstr "COPY命令中的分隔符不能为\"%s\""
 
-#: commands/copy.c:1054
+#: commands/copy.c:1148
 #, c-format
 msgid "COPY HEADER available only in CSV mode"
 msgstr "只在CSV 模式中才能使用COPY HEADER命令"
 
-#: commands/copy.c:1060
+#: commands/copy.c:1154
 #, c-format
 msgid "COPY quote available only in CSV mode"
 msgstr "只有在CSV模式中才能在COPY命令中使用引号"
 
-#: commands/copy.c:1065
+#: commands/copy.c:1159
 #, c-format
 msgid "COPY quote must be a single one-byte character"
 msgstr "在COPY命令中的引号必须是单字节字符"
 
-#: commands/copy.c:1070
+#: commands/copy.c:1164
 #, c-format
 msgid "COPY delimiter and quote must be different"
 msgstr "COPY命令中的分隔符和引号不能一样."
 
-#: commands/copy.c:1076
+#: commands/copy.c:1170
 #, c-format
 msgid "COPY escape available only in CSV mode"
 msgstr "COPY 转义 (escape) 只在 CSV 模式中有效"
 
-#: commands/copy.c:1081
+#: commands/copy.c:1175
 #, c-format
 msgid "COPY escape must be a single one-byte character"
 msgstr "在COPY命令中的转义字符必须是单个单字节字符"
 
-#: commands/copy.c:1087
+#: commands/copy.c:1181
 #, c-format
 msgid "COPY force quote available only in CSV mode"
 msgstr "只有在CSV模式中才能在COPY命令中进行强制引用操作"
 
-#: commands/copy.c:1091
+#: commands/copy.c:1185
 #, c-format
 msgid "COPY force quote only available using COPY TO"
 msgstr "只有使用COPY TO命令时, COPY强制引用操作才有效"
 
-#: commands/copy.c:1097
+#: commands/copy.c:1191
 #, c-format
 msgid "COPY force not null available only in CSV mode"
 msgstr "只有在CSV模式中强制不为空的COPY命令才有效"
 
-#: commands/copy.c:1101
+#: commands/copy.c:1195
 #, c-format
 msgid "COPY force not null only available using COPY FROM"
 msgstr "只有在使用COPY FROM命令时,在COPY命令中的强制不可为空的操作才有效"
 
-#: commands/copy.c:1107
+#: commands/copy.c:1201
+#, c-format
+#| msgid "COPY force not null available only in CSV mode"
+msgid "COPY force null available only in CSV mode"
+msgstr "只有在CSV模式中强制为空的COPY命令才有效"
+
+#: commands/copy.c:1206
+#, c-format
+#| msgid "COPY force not null only available using COPY FROM"
+msgid "COPY force null only available using COPY FROM"
+msgstr "只有在使用COPY FROM命令时,在COPY命令中的强制为空的操作才有效"
+
+#: commands/copy.c:1212
 #, c-format
 msgid "COPY delimiter must not appear in the NULL specification"
 msgstr "COPY分隔符不能出现NULL定义中"
 
-#: commands/copy.c:1114
+#: commands/copy.c:1219
 #, c-format
 msgid "CSV quote character must not appear in the NULL specification"
 msgstr "CSV引用字符不能出现在NULL定义中."
 
-#: commands/copy.c:1176
+#: commands/copy.c:1281
 #, c-format
 msgid "table \"%s\" does not have OIDs"
 msgstr "表 \"%s\" 没有 OID"
 
-#: commands/copy.c:1193
+#: commands/copy.c:1298
 #, c-format
 msgid "COPY (SELECT) WITH OIDS is not supported"
 msgstr "不支持使用COPY (SELECT) WITH OIDS"
 
-#: commands/copy.c:1219
+#: commands/copy.c:1324
 #, c-format
 msgid "COPY (SELECT INTO) is not supported"
 msgstr "不支持使用COPY (SELECT INTO)命令."
 
-#: commands/copy.c:1282
+#: commands/copy.c:1387
 #, c-format
 msgid "FORCE QUOTE column \"%s\" not referenced by COPY"
 msgstr "COPY命令没有引用FORCE QUOTE的列\"%s\" ."
 
-#: commands/copy.c:1304
+#: commands/copy.c:1409
 #, c-format
 msgid "FORCE NOT NULL column \"%s\" not referenced by COPY"
 msgstr "COPY命令没有引用FORCE NOT NULL的列\"%s\" ."
 
-#: commands/copy.c:1368
+#: commands/copy.c:1431
+#, c-format
+#| msgid "FORCE NOT NULL column \"%s\" not referenced by COPY"
+msgid "FORCE NULL column \"%s\" not referenced by COPY"
+msgstr "COPY命令没有引用FORCE NULL的列\"%s\" ."
+
+#: commands/copy.c:1495
+#, c-format
+#| msgid "could not close pipe to external command: %s\n"
+msgid "could not close pipe to external command: %m"
+msgstr "无法为外部命令: %m关闭管道"
+
+#: commands/copy.c:1498
+#, c-format
+msgid "program \"%s\" failed"
+msgstr "程序\"%s\"失败"
+
+#: commands/copy.c:1547
 #, c-format
 msgid "cannot copy from view \"%s\""
 msgstr "不可以从视图 \"%s\" 拷贝"
 
-#: commands/copy.c:1370 commands/copy.c:1376
+#: commands/copy.c:1549 commands/copy.c:1555 commands/copy.c:1561
 #, c-format
 msgid "Try the COPY (SELECT ...) TO variant."
 msgstr "尝试不同形式的COPY (SELECT ...) TO命令"
 
-#: commands/copy.c:1374
+#: commands/copy.c:1553
+#, c-format
+#| msgid "cannot copy from view \"%s\""
+msgid "cannot copy from materialized view \"%s\""
+msgstr "不可以从物化视图 \"%s\" 拷贝"
+
+#: commands/copy.c:1559
 #, c-format
 msgid "cannot copy from foreign table \"%s\""
 msgstr "不可以从外部表 \"%s\" 拷贝"
 
-#: commands/copy.c:1380
+#: commands/copy.c:1565
 #, c-format
 msgid "cannot copy from sequence \"%s\""
 msgstr "不可以从序列 \"%s\" 拷贝"
 
-#: commands/copy.c:1385
+#: commands/copy.c:1570
 #, c-format
 msgid "cannot copy from non-table relation \"%s\""
 msgstr "不可以从非表关系 \"%s\" 拷贝"
 
-#: commands/copy.c:1409
+#: commands/copy.c:1593 commands/copy.c:2616
+#, c-format
+#| msgid "could not execute command \"%s\": %s\n"
+msgid "could not execute command \"%s\": %m"
+msgstr "无法执行命令 \"%s\": %m"
+
+#: commands/copy.c:1608
 #, c-format
 msgid "relative path not allowed for COPY to file"
 msgstr "COPY 到文件不允许相对路径"
 
-#: commands/copy.c:1419
+#: commands/copy.c:1616
 #, c-format
 msgid "could not open file \"%s\" for writing: %m"
 msgstr "为了写入, 无法打开文件 \"%s\": %m"
 
-#: commands/copy.c:1426 commands/copy.c:2347
+#: commands/copy.c:1623 commands/copy.c:2634
 #, c-format
 msgid "\"%s\" is a directory"
 msgstr "\"%s\" 是一个目录"
 
-#: commands/copy.c:1750
+#: commands/copy.c:1948
 #, c-format
 msgid "COPY %s, line %d, column %s"
 msgstr "COPY %s, 行 %d, 列 %s"
 
-#: commands/copy.c:1754 commands/copy.c:1799
+#: commands/copy.c:1952 commands/copy.c:1999
 #, c-format
 msgid "COPY %s, line %d"
 msgstr "COPY %s, 行 %d"
 
-#: commands/copy.c:1765
+#: commands/copy.c:1963
 #, c-format
 msgid "COPY %s, line %d, column %s: \"%s\""
 msgstr "COPY %s, 行 %d, 列 %s: \"%s\""
 
-#: commands/copy.c:1773
+#: commands/copy.c:1971
 #, c-format
 msgid "COPY %s, line %d, column %s: null input"
 msgstr "COPY %s, 行 %d, 列 %s: 空的输入"
 
-#: commands/copy.c:1785
+#: commands/copy.c:1993
 #, c-format
 msgid "COPY %s, line %d: \"%s\""
 msgstr "COPY %s, 行 %d: \"%s\""
 
-#: commands/copy.c:1876
+#: commands/copy.c:2077
 #, c-format
 msgid "cannot copy to view \"%s\""
 msgstr "不可以拷贝到视图 \"%s\""
 
-#: commands/copy.c:1881
+#: commands/copy.c:2082
+#, c-format
+#| msgid "cannot copy to view \"%s\""
+msgid "cannot copy to materialized view \"%s\""
+msgstr "不可以拷贝到物化视图 \"%s\""
+
+#: commands/copy.c:2087
 #, c-format
 msgid "cannot copy to foreign table \"%s\""
 msgstr "不可以拷贝到外部表 \"%s\""
 
-#: commands/copy.c:1886
+#: commands/copy.c:2092
 #, c-format
 msgid "cannot copy to sequence \"%s\""
 msgstr "不可以拷贝到序列 \"%s\""
 
-#: commands/copy.c:1891
+#: commands/copy.c:2097
 #, c-format
 msgid "cannot copy to non-table relation \"%s\""
 msgstr "不可以拷贝到非表关系 \"%s\""
 
-#: commands/copy.c:2340 utils/adt/genfile.c:122
+#: commands/copy.c:2160
+#, c-format
+msgid "cannot perform FREEZE because of prior transaction activity"
+msgstr "由于前一个事务是活动的,无法执行FREEZE操作"
+
+#: commands/copy.c:2166
+#, c-format
+msgid ""
+"cannot perform FREEZE because the table was not created or truncated in the "
+"current subtransaction"
+msgstr "当前子事务中,因为表未建或被截短,无法执行FREEZE操作"
+
+#: commands/copy.c:2627 utils/adt/genfile.c:123
 #, c-format
 msgid "could not open file \"%s\" for reading: %m"
 msgstr "为了读取, 无法打开文件 \"%s\": %m"
 
-#: commands/copy.c:2366
+#: commands/copy.c:2654
 #, c-format
 msgid "COPY file signature not recognized"
 msgstr "文件签字不被认可"
 
-#: commands/copy.c:2371
+#: commands/copy.c:2659
 #, c-format
 msgid "invalid COPY file header (missing flags)"
 msgstr "无效的 COPY 文件头 (缺少标志)"
 
-#: commands/copy.c:2377
+#: commands/copy.c:2665
 #, c-format
 msgid "unrecognized critical flags in COPY file header"
 msgstr "在 COPY 文件头有不认可的危险标志"
 
-#: commands/copy.c:2383
+#: commands/copy.c:2671
 #, c-format
 msgid "invalid COPY file header (missing length)"
 msgstr "无效的 COPY 文件头 (缺少长度)"
 
-#: commands/copy.c:2390
+#: commands/copy.c:2678
 #, c-format
 msgid "invalid COPY file header (wrong length)"
 msgstr "无效的 COPY 文件头 (错误长度)"
 
-#: commands/copy.c:2523 commands/copy.c:3205 commands/copy.c:3435
+#: commands/copy.c:2811 commands/copy.c:3518 commands/copy.c:3748
 #, c-format
 msgid "extra data after last expected column"
 msgstr "最后期望字段后有额外数据"
 
-#: commands/copy.c:2533
+#: commands/copy.c:2821
 #, c-format
 msgid "missing data for OID column"
 msgstr "OID列丢失数据"
 
-#: commands/copy.c:2539
+#: commands/copy.c:2827
 #, c-format
 msgid "null OID in COPY data"
 msgstr "在 COPY 数据中没有 OID"
 
-#: commands/copy.c:2549 commands/copy.c:2648
+#: commands/copy.c:2837 commands/copy.c:2960
 #, c-format
 msgid "invalid OID in COPY data"
 msgstr "在 COPY 数据中无效的 OID"
 
-#: commands/copy.c:2564
+#: commands/copy.c:2852
 #, c-format
 msgid "missing data for column \"%s\""
 msgstr "字段 \"%s\" 缺少数据"
 
-#: commands/copy.c:2623
+#: commands/copy.c:2935
 #, c-format
 msgid "received copy data after EOF marker"
 msgstr "在EOF标志后收到了复制数据"
 
-#: commands/copy.c:2630
+#: commands/copy.c:2942
 #, c-format
 msgid "row field count is %d, expected %d"
 msgstr "元组字段计数是 %d, 期望计数是 %d"
 
-#: commands/copy.c:2969 commands/copy.c:2986
+#: commands/copy.c:3282 commands/copy.c:3299
 #, c-format
 msgid "literal carriage return found in data"
 msgstr "在数据中找到了文字的回车换行符"
 
-#: commands/copy.c:2970 commands/copy.c:2987
+#: commands/copy.c:3283 commands/copy.c:3300
 #, c-format
 msgid "unquoted carriage return found in data"
 msgstr "在数据中找到了未用引号引起来的回车换行符"
 
-#: commands/copy.c:2972 commands/copy.c:2989
+#: commands/copy.c:3285 commands/copy.c:3302
 #, c-format
 msgid "Use \"\\r\" to represent carriage return."
 msgstr "使用\"\\r\"来代表换行回车"
 
-#: commands/copy.c:2973 commands/copy.c:2990
+#: commands/copy.c:3286 commands/copy.c:3303
 #, c-format
 msgid "Use quoted CSV field to represent carriage return."
 msgstr "使用以引号引起来的CSV字段代表换行回车."
 
-#: commands/copy.c:3002
+#: commands/copy.c:3315
 #, c-format
 msgid "literal newline found in data"
 msgstr "在数据中找到了文字形式的新行"
 
-#: commands/copy.c:3003
+#: commands/copy.c:3316
 #, c-format
 msgid "unquoted newline found in data"
 msgstr "在数据中找到了未用引号引起来的新行"
 
-#: commands/copy.c:3005
+#: commands/copy.c:3318
 #, c-format
 msgid "Use \"\\n\" to represent newline."
 msgstr "使用 \"\\n\" 表示新行."
 
-#: commands/copy.c:3006
+#: commands/copy.c:3319
 #, c-format
 msgid "Use quoted CSV field to represent newline."
 msgstr "使用用引号因起来的CSV字段来表示新行."
 
-#: commands/copy.c:3052 commands/copy.c:3088
+#: commands/copy.c:3365 commands/copy.c:3401
 #, c-format
 msgid "end-of-copy marker does not match previous newline style"
 msgstr "end-of-copy标示不匹配先前的新数据行的风格."
 
-#: commands/copy.c:3061 commands/copy.c:3077
+#: commands/copy.c:3374 commands/copy.c:3390
 #, c-format
 msgid "end-of-copy marker corrupt"
 msgstr "copy命令结束标记损坏"
 
-#: commands/copy.c:3519
+#: commands/copy.c:3832
 #, c-format
 msgid "unterminated CSV quoted field"
 msgstr "CSV 引号域没有结束"
 
-#: commands/copy.c:3596 commands/copy.c:3615
+#: commands/copy.c:3909 commands/copy.c:3928
 #, c-format
 msgid "unexpected EOF in COPY data"
 msgstr "在 COPY 数据中意外的 EOF"
 
-#: commands/copy.c:3605
+#: commands/copy.c:3918
 #, c-format
 msgid "invalid field size"
 msgstr "无效字段尺寸"
 
-#: commands/copy.c:3628
+#: commands/copy.c:3941
 #, c-format
 msgid "incorrect binary data format"
 msgstr "不正确的二进制数据格式"
 
-#: commands/copy.c:3939 commands/indexcmds.c:1007 commands/tablecmds.c:1386
-#: commands/tablecmds.c:2185 parser/parse_expr.c:766
+#: commands/copy.c:4252 commands/indexcmds.c:993 commands/tablecmds.c:1427
+#: commands/tablecmds.c:2237 parser/parse_relation.c:2889
 #: utils/adt/tsvector_op.c:1417
 #, c-format
 msgid "column \"%s\" does not exist"
 msgstr "字段 \"%s\" 不存在"
 
-#: commands/copy.c:3946 commands/tablecmds.c:1412 commands/trigger.c:613
-#: parser/parse_target.c:912 parser/parse_target.c:923
+#: commands/copy.c:4259 commands/tablecmds.c:1453 commands/trigger.c:644
+#: parser/parse_target.c:936 parser/parse_target.c:947
 #, c-format
 msgid "column \"%s\" specified more than once"
 msgstr "字段 \"%s\" 被指定多次"
 
-#: commands/createas.c:301
+#: commands/createas.c:353
 #, c-format
-msgid "CREATE TABLE AS specifies too many column names"
-msgstr "CREATE TABLE AS 指定了太多的字段名字"
+#| msgid "too many column aliases specified for function %s"
+msgid "too many column names were specified"
+msgstr "指定了太多的列名"
 
-#: commands/dbcommands.c:199
+#: commands/dbcommands.c:203
 #, c-format
 msgid "LOCATION is not supported anymore"
 msgstr "不再支持 LOCATION"
 
-#: commands/dbcommands.c:200
+#: commands/dbcommands.c:204
 #, c-format
 msgid "Consider using tablespaces instead."
 msgstr "考虑使用表空间代替."
 
-#: commands/dbcommands.c:223 utils/adt/ascii.c:144
+#: commands/dbcommands.c:227 utils/adt/ascii.c:144
 #, c-format
 msgid "%d is not a valid encoding code"
 msgstr "%d 是一个无效编码"
 
-#: commands/dbcommands.c:233 utils/adt/ascii.c:126
+#: commands/dbcommands.c:237 utils/adt/ascii.c:126
 #, c-format
 msgid "%s is not a valid encoding name"
 msgstr "%s 是一个无效编码名字"
 
 # fe-connect.c:2558
-#: commands/dbcommands.c:251 commands/dbcommands.c:1385 commands/user.c:259
-#: commands/user.c:599
+#: commands/dbcommands.c:255 commands/dbcommands.c:1404 commands/user.c:260
+#: commands/user.c:601
 #, c-format
 msgid "invalid connection limit: %d"
 msgstr "无效的连接限制:%d"
 
-#: commands/dbcommands.c:270
+#: commands/dbcommands.c:274
 #, c-format
 msgid "permission denied to create database"
 msgstr "创建数据库权限不够"
 
-#: commands/dbcommands.c:293
+#: commands/dbcommands.c:297
 #, c-format
 msgid "template database \"%s\" does not exist"
 msgstr "template 数据库 \"%s\" 不存在"
 
-#: commands/dbcommands.c:305
+#: commands/dbcommands.c:309
 #, c-format
 msgid "permission denied to copy database \"%s\""
 msgstr "拷贝数据库 \"%s\" 权限不够"
 
-#: commands/dbcommands.c:321
+#: commands/dbcommands.c:325
 #, c-format
 msgid "invalid server encoding %d"
 msgstr "无效服务器编码 %d"
 
-#: commands/dbcommands.c:327 commands/dbcommands.c:332
+#: commands/dbcommands.c:331 commands/dbcommands.c:336
 #, c-format
 msgid "invalid locale name: \"%s\""
 msgstr "无效的语言环境名称: \"%s\""
 
-#: commands/dbcommands.c:352
+#: commands/dbcommands.c:356
 #, c-format
 msgid ""
 "new encoding (%s) is incompatible with the encoding of the template database "
 "(%s)"
 msgstr "新的编码(%s)与模板数据库(%s)的编码不兼容"
 
-#: commands/dbcommands.c:355
+#: commands/dbcommands.c:359
 #, c-format
 msgid ""
 "Use the same encoding as in the template database, or use template0 as "
 "template."
 msgstr "在模版数据库中使用同一编码,或者使用template0作为模版."
 
-#: commands/dbcommands.c:360
+#: commands/dbcommands.c:364
 #, c-format
 msgid ""
 "new collation (%s) is incompatible with the collation of the template "
 "database (%s)"
 msgstr "新的排序规则(%s)与模版数据库(%s)中的排序规则不兼容"
 
-#: commands/dbcommands.c:362
+#: commands/dbcommands.c:366
 #, c-format
 msgid ""
 "Use the same collation as in the template database, or use template0 as "
 "template."
 msgstr "在模版数据库中使用同一排序规则,或者使用template0作为模版."
 
-#: commands/dbcommands.c:367
+#: commands/dbcommands.c:371
 #, c-format
 msgid ""
 "new LC_CTYPE (%s) is incompatible with the LC_CTYPE of the template database "
 "(%s)"
 msgstr "新的LC_CTYPE (%s)与模版数据库(%s)中的LC_CTYPE不兼容."
 
-#: commands/dbcommands.c:369
+#: commands/dbcommands.c:373
 #, c-format
 msgid ""
 "Use the same LC_CTYPE as in the template database, or use template0 as "
 "template."
 msgstr "在模版数据库中使用同一LC_CTYPE,或者使用template0作为模版."
 
-#: commands/dbcommands.c:391 commands/dbcommands.c:1092
+#: commands/dbcommands.c:395 commands/dbcommands.c:1088
 #, c-format
 msgid "pg_global cannot be used as default tablespace"
 msgstr "pg_global不能作为缺省表空间使用"
 
-#: commands/dbcommands.c:417
+#: commands/dbcommands.c:421
 #, c-format
 msgid "cannot assign new default tablespace \"%s\""
 msgstr "无法分配新的默认表空间 \"%s\""
 
-#: commands/dbcommands.c:419
+#: commands/dbcommands.c:423
 #, c-format
 msgid ""
 "There is a conflict because database \"%s\" already has some tables in this "
 "tablespace."
 msgstr "此处有冲突, 因为数据库 \"%s\" 已经有一些表在此表空间中."
 
-#: commands/dbcommands.c:439 commands/dbcommands.c:967
+#: commands/dbcommands.c:443 commands/dbcommands.c:959
 #, c-format
 msgid "database \"%s\" already exists"
 msgstr "数据库 \"%s\" 已经存在"
 
-#: commands/dbcommands.c:453
+#: commands/dbcommands.c:457
 #, c-format
 msgid "source database \"%s\" is being accessed by other users"
 msgstr "其他用户正在使用源数据库 \"%s\""
 
-#: commands/dbcommands.c:722 commands/dbcommands.c:737
+#: commands/dbcommands.c:704 commands/dbcommands.c:719
 #, c-format
 msgid "encoding \"%s\" does not match locale \"%s\""
 msgstr "编码 \"%s\"与本地化环境\"%s\"不匹配"
 
-#: commands/dbcommands.c:725
+#: commands/dbcommands.c:707
 #, c-format
 msgid "The chosen LC_CTYPE setting requires encoding \"%s\"."
 msgstr "所选择的LC_CTYPE设置需要编码\"%s\"."
 
-#: commands/dbcommands.c:740
+#: commands/dbcommands.c:722
 #, c-format
 msgid "The chosen LC_COLLATE setting requires encoding \"%s\"."
 msgstr "所选择的 LC_COLLATE设置需要编码\"%s\"."
 
-#: commands/dbcommands.c:798
+#: commands/dbcommands.c:782
 #, c-format
 msgid "database \"%s\" does not exist, skipping"
 msgstr "数据库 \"%s\" 不存在,跳过"
 
-#: commands/dbcommands.c:829
+#: commands/dbcommands.c:806
 #, c-format
 msgid "cannot drop a template database"
 msgstr "无法删除模板数据库"
 
-#: commands/dbcommands.c:835
+#: commands/dbcommands.c:812
 #, c-format
 msgid "cannot drop the currently open database"
 msgstr "无法删除当前使用的数据库"
 
-#: commands/dbcommands.c:846 commands/dbcommands.c:989
-#: commands/dbcommands.c:1114
+#: commands/dbcommands.c:822
+#, c-format
+#| msgid "variable \"%s\" is hidden by a local variable"
+msgid "database \"%s\" is used by a logical replication slot"
+msgstr "数据库\"%s\"被一个逻辑复制槽使用"
+
+#: commands/dbcommands.c:824
+#, c-format
+#| msgid "There is %d other session using the database."
+#| msgid_plural "There are %d other sessions using the database."
+msgid "There is %d slot, %d of them active."
+msgid_plural "There are %d slots, %d of them active."
+msgstr[0] "有%d个槽,其中%d个是活动的."
+
+#: commands/dbcommands.c:838 commands/dbcommands.c:981
+#: commands/dbcommands.c:1110
 #, c-format
 msgid "database \"%s\" is being accessed by other users"
 msgstr "其他用户正在使用数据库 \"%s\""
 
-#: commands/dbcommands.c:958
+#: commands/dbcommands.c:950
 #, c-format
 msgid "permission denied to rename database"
 msgstr "重命名数据库权限不够"
 
-#: commands/dbcommands.c:978
+#: commands/dbcommands.c:970
 #, c-format
 msgid "current database cannot be renamed"
 msgstr "不能对当前数据库进行改名"
 
-#: commands/dbcommands.c:1070
+#: commands/dbcommands.c:1066
 #, c-format
 msgid "cannot change the tablespace of the currently open database"
 msgstr "无法改变当前已打开数据库的表空间"
 
-#: commands/dbcommands.c:1154
+#: commands/dbcommands.c:1169
 #, c-format
 msgid "some relations of database \"%s\" are already in tablespace \"%s\""
 msgstr "在表空间 \"%2$s\"中已经存储了数据库\"%1$s\"中的一些关系了"
 
-#: commands/dbcommands.c:1156
+#: commands/dbcommands.c:1171
 #, c-format
 msgid ""
 "You must move them back to the database's default tablespace before using "
 "this command."
 msgstr "在使用这条命令前,您必须把它们移动回数据库的缺省表空间"
 
-#: commands/dbcommands.c:1284 commands/dbcommands.c:1763
-#: commands/dbcommands.c:1978 commands/dbcommands.c:2026
-#: commands/tablespace.c:589
+#: commands/dbcommands.c:1302 commands/dbcommands.c:1790
+#: commands/dbcommands.c:1996 commands/dbcommands.c:2044
+#: commands/tablespace.c:604
 #, c-format
 msgid "some useless files may be left behind in old database directory \"%s\""
 msgstr "在原先的数据库目录\"%s\"可能留下了一些无用的文件"
 
-#: commands/dbcommands.c:1528
+#: commands/dbcommands.c:1558
 #, c-format
 msgid "permission denied to change owner of database"
 msgstr "改变数据库属主的权限不够"
 
-#: commands/dbcommands.c:1861
+#: commands/dbcommands.c:1879
 #, c-format
 msgid ""
 "There are %d other session(s) and %d prepared transaction(s) using the "
 "database."
 msgstr "这里有%d个其它的会话和%d个已准备好的事务正在使用数据库."
 
-#: commands/dbcommands.c:1864
+#: commands/dbcommands.c:1882
 #, c-format
 msgid "There is %d other session using the database."
 msgid_plural "There are %d other sessions using the database."
 msgstr[0] "那里有%d个其它会话正在使用数据库."
 
-#: commands/dbcommands.c:1869
+#: commands/dbcommands.c:1887
 #, c-format
 msgid "There is %d prepared transaction using the database."
 msgid_plural "There are %d prepared transactions using the database."
 msgstr[0] "那里有%d个已准备好的事务正在使用数据库."
 
-#: commands/define.c:54 commands/define.c:209 commands/define.c:241
-#: commands/define.c:269
+#: commands/define.c:54 commands/define.c:228 commands/define.c:260
+#: commands/define.c:288
 #, c-format
 msgid "%s requires a parameter"
 msgstr "%s 需要一个参数"
 
-#: commands/define.c:95 commands/define.c:106 commands/define.c:176
-#: commands/define.c:194
+#: commands/define.c:90 commands/define.c:101 commands/define.c:195
+#: commands/define.c:213
 #, c-format
 msgid "%s requires a numeric value"
 msgstr "%s 需要一个数字值"
 
-#: commands/define.c:162
+#: commands/define.c:157
 #, c-format
 msgid "%s requires a Boolean value"
 msgstr "%s 需要一个布尔值"
 
-#: commands/define.c:223
+#: commands/define.c:171 commands/define.c:180 commands/define.c:297
+#, c-format
+msgid "%s requires an integer value"
+msgstr "%s 需要一个整数值"
+
+#: commands/define.c:242
 #, c-format
 msgid "argument of %s must be a name"
 msgstr "%s 的参数必须是一个名字"
 
-#: commands/define.c:253
+#: commands/define.c:272
 #, c-format
 msgid "argument of %s must be a type name"
 msgstr "%s 的参数必需是一个类型名"
 
-#: commands/define.c:278
-#, c-format
-msgid "%s requires an integer value"
-msgstr "%s 需要一个整数值"
-
-#: commands/define.c:299
+#: commands/define.c:318
 #, c-format
 msgid "invalid argument for %s: \"%s\""
 msgstr "%s 的无效参数: \"%s\""
 
-#: commands/dropcmds.c:100 commands/functioncmds.c:1076
-#: commands/functioncmds.c:1139 commands/functioncmds.c:1291
-#: utils/adt/ruleutils.c:1730
+#: commands/dropcmds.c:112 commands/functioncmds.c:1110
+#: utils/adt/ruleutils.c:1936
 #, c-format
 msgid "\"%s\" is an aggregate function"
 msgstr "\"%s\" 是一个聚合函数"
 
-#: commands/dropcmds.c:102
+#: commands/dropcmds.c:114
 #, c-format
 msgid "Use DROP AGGREGATE to drop aggregate functions."
 msgstr "使用 DROP AGGREGATE 删除一个聚合函数."
 
-#: commands/dropcmds.c:143 commands/tablecmds.c:227
+#: commands/dropcmds.c:165 commands/sequence.c:400 commands/tablecmds.c:2318
+#: commands/tablecmds.c:2499 commands/tablecmds.c:10625 tcop/utility.c:1006
+#, c-format
+msgid "relation \"%s\" does not exist, skipping"
+msgstr "关系 \"%s\" 不存在,忽略"
+
+#: commands/dropcmds.c:195 commands/dropcmds.c:288 commands/tablecmds.c:713
+#, c-format
+msgid "schema \"%s\" does not exist, skipping"
+msgstr "模式 \"%s\" 不存在"
+
+#: commands/dropcmds.c:237 commands/dropcmds.c:269 commands/tablecmds.c:237
 #, c-format
 msgid "type \"%s\" does not exist, skipping"
 msgstr "类型 \"%s\" 不存在"
 
-#: commands/dropcmds.c:147
+#: commands/dropcmds.c:276
 #, c-format
 msgid "collation \"%s\" does not exist, skipping"
 msgstr "排序规则 \"%s\" 不存在,跳过"
 
-#: commands/dropcmds.c:151
+#: commands/dropcmds.c:283
 #, c-format
 msgid "conversion \"%s\" does not exist, skipping"
 msgstr "编码转换 \"%s\" 不存在,跳过"
 
-#: commands/dropcmds.c:155
-#, c-format
-msgid "schema \"%s\" does not exist, skipping"
-msgstr "模式 \"%s\" 不存在"
-
-#: commands/dropcmds.c:159
+#: commands/dropcmds.c:294
 #, c-format
 msgid "text search parser \"%s\" does not exist, skipping"
 msgstr "文本搜索解析器\"%s\"不存在,跳过"
 
-#: commands/dropcmds.c:163
+#: commands/dropcmds.c:301
 #, c-format
 msgid "text search dictionary \"%s\" does not exist, skipping"
 msgstr "文本搜索字典 \"%s\" 不存在,跳过"
 
-#: commands/dropcmds.c:167
+#: commands/dropcmds.c:308
 #, c-format
 msgid "text search template \"%s\" does not exist, skipping"
 msgstr "文本搜索模板\"%s\"不存在,跳过"
 
-#: commands/dropcmds.c:171
+#: commands/dropcmds.c:315
 #, c-format
 msgid "text search configuration \"%s\" does not exist, skipping"
 msgstr "文本搜寻配置 \"%s\"不存在,跳过"
 
-#: commands/dropcmds.c:175
+#: commands/dropcmds.c:320
 #, c-format
 msgid "extension \"%s\" does not exist, skipping"
 msgstr "扩展 \"%s\" 不存在,跳过"
 
-#: commands/dropcmds.c:179
+#: commands/dropcmds.c:327
 #, c-format
 msgid "function %s(%s) does not exist, skipping"
 msgstr "函数 %s(%s) 不存在,跳过"
 
-#: commands/dropcmds.c:184
+#: commands/dropcmds.c:336
 #, c-format
 msgid "aggregate %s(%s) does not exist, skipping"
 msgstr "聚合函数 %s(%s) 不存在,跳过"
 
-#: commands/dropcmds.c:189
+#: commands/dropcmds.c:345
 #, c-format
 msgid "operator %s does not exist, skipping"
 msgstr "操作符 %s不存在,跳过"
 
-#: commands/dropcmds.c:193
+#: commands/dropcmds.c:350
 #, c-format
 msgid "language \"%s\" does not exist, skipping"
 msgstr "语言 \"%s\" 不存在"
 
-#: commands/dropcmds.c:197
+#: commands/dropcmds.c:359
 #, c-format
 msgid "cast from type %s to type %s does not exist, skipping"
 msgstr "从类型 %s 到类型 %s 的类型转换不存在,跳过"
 
-#: commands/dropcmds.c:204
+#: commands/dropcmds.c:368
 #, c-format
-msgid "trigger \"%s\" for table \"%s\" does not exist, skipping"
-msgstr "表 \"%2$s\" 的 \"%1$s\" 触发器不存在"
+#| msgid "rule \"%s\" for relation \"%s\" does not exist, skipping"
+msgid "trigger \"%s\" for relation \"%s\" does not exist, skipping"
+msgstr "关系 \"%2$s\"的触发器\"%1$s\"不存在,跳过"
+
+#: commands/dropcmds.c:375
+#, c-format
+#| msgid "server \"%s\" does not exist, skipping"
+msgid "event trigger \"%s\" does not exist, skipping"
+msgstr "事件触发器 \"%s\"不存在,跳过 "
 
-#: commands/dropcmds.c:210
+#: commands/dropcmds.c:381
 #, c-format
 msgid "rule \"%s\" for relation \"%s\" does not exist, skipping"
 msgstr "关系 \"%2$s\"的规则\"%1$s\"不存在,跳过"
 
-#: commands/dropcmds.c:216
+#: commands/dropcmds.c:388
 #, c-format
 msgid "foreign-data wrapper \"%s\" does not exist, skipping"
 msgstr "外部数据封装器\"%s\" 不存在,跳过"
 
-#: commands/dropcmds.c:220
+#: commands/dropcmds.c:392
 #, c-format
 msgid "server \"%s\" does not exist, skipping"
 msgstr "服务器 \"%s\"不存在,跳过 "
 
-#: commands/dropcmds.c:224
+#: commands/dropcmds.c:398
 #, c-format
 msgid "operator class \"%s\" does not exist for access method \"%s\", skipping"
 msgstr "处理方法 \"%2$s\" 的操作符类 \"%1$s\" 不存在, 跳过"
 
-#: commands/dropcmds.c:229
+#: commands/dropcmds.c:406
 #, c-format
 msgid ""
 "operator family \"%s\" does not exist for access method \"%s\", skipping"
 msgstr "访问方法\"%2$s\"的操作符表 \"%1$s\" 不存在, 跳过"
 
-#: commands/explain.c:158
+#: commands/event_trigger.c:149
+#, c-format
+#| msgid "permission denied to create extension \"%s\""
+msgid "permission denied to create event trigger \"%s\""
+msgstr "创建事件触发器 \"%s\" 权限不够"
+
+#: commands/event_trigger.c:151
+#, c-format
+#| msgid "Must be superuser to create a foreign-data wrapper."
+msgid "Must be superuser to create an event trigger."
+msgstr "只有超级用户能创建事件触发器."
+
+#: commands/event_trigger.c:159
+#, c-format
+#| msgid "unrecognized reset target: \"%s\""
+msgid "unrecognized event name \"%s\""
+msgstr "无法识别的事件名:\"%s\""
+
+#: commands/event_trigger.c:176
+#, c-format
+#| msgid "unrecognized file format \"%d\"\n"
+msgid "unrecognized filter variable \"%s\""
+msgstr "不可识别的过滤器变量 \"%s\""
+
+#: commands/event_trigger.c:203
+#, c-format
+#| msgid "function %s must return type \"trigger\""
+msgid "function \"%s\" must return type \"event_trigger\""
+msgstr "函数 %s 必需返回 \"event_trigger\" 类型"
+
+#: commands/event_trigger.c:228
+#, c-format
+#| msgid "interval units \"%s\" not recognized"
+msgid "filter value \"%s\" not recognized for filter variable \"%s\""
+msgstr "过滤器变量 \"%2$s\"中的过滤器值\"%1$s\"不能识别"
+
+#. translator: %s represents an SQL statement name
+#: commands/event_trigger.c:234
+#, c-format
+#| msgid "collations are not supported by type %s"
+msgid "event triggers are not supported for %s"
+msgstr "事件触发器在%s中不被支持"
+
+#: commands/event_trigger.c:289
+#, c-format
+#| msgid "table name \"%s\" specified more than once"
+msgid "filter variable \"%s\" specified more than once"
+msgstr "过滤器变量 \"%s\" 被指定多次"
+
+#: commands/event_trigger.c:437 commands/event_trigger.c:480
+#: commands/event_trigger.c:571
+#, c-format
+#| msgid "server \"%s\" does not exist"
+msgid "event trigger \"%s\" does not exist"
+msgstr "过滤器变量\"%s\" 不存在"
+
+#: commands/event_trigger.c:539
+#, c-format
+#| msgid "permission denied to change owner of foreign-data wrapper \"%s\""
+msgid "permission denied to change owner of event trigger \"%s\""
+msgstr "修改事件触发器的 \"%s\" 的属主权限不够"
+
+#: commands/event_trigger.c:541
+#, c-format
+#| msgid "The owner of a foreign-data wrapper must be a superuser."
+msgid "The owner of an event trigger must be a superuser."
+msgstr "事件触发器的属主必须是超级用户."
+
+#: commands/event_trigger.c:1219
+#, c-format
+#| msgid "%s is not allowed in a non-volatile function"
+msgid "%s can only be called in a sql_drop event trigger function"
+msgstr "%s只能在sql_drop事件触发器函数中被调用"
+
+#: commands/event_trigger.c:1226 commands/extension.c:1646
+#: commands/extension.c:1755 commands/extension.c:1948 commands/prepare.c:702
+#: executor/execQual.c:1739 executor/execQual.c:1764 executor/execQual.c:2139
+#: executor/execQual.c:5315 executor/functions.c:1018 foreign/foreign.c:421
+#: replication/logical/logicalfuncs.c:310 replication/slotfuncs.c:173
+#: replication/walsender.c:2746 utils/adt/jsonfuncs.c:1386
+#: utils/adt/jsonfuncs.c:1518 utils/adt/jsonfuncs.c:1708
+#: utils/adt/jsonfuncs.c:1837 utils/adt/jsonfuncs.c:2601
+#: utils/fmgr/funcapi.c:61 utils/mmgr/portalmem.c:986
+#, c-format
+msgid "set-valued function called in context that cannot accept a set"
+msgstr "在不能接受使用集合的环境中调用set-valued函数"
+
+#: commands/event_trigger.c:1230 commands/extension.c:1650
+#: commands/extension.c:1759 commands/extension.c:1952 commands/prepare.c:706
+#: foreign/foreign.c:426 replication/logical/logicalfuncs.c:314
+#: replication/slotfuncs.c:177 replication/walsender.c:2750
+#: utils/mmgr/portalmem.c:990
+#, c-format
+msgid "materialize mode required, but it is not allowed in this context"
+msgstr "要求使用物化模式,但是在这种环境下不允许使用."
+
+#: commands/explain.c:169
 #, c-format
 msgid "unrecognized value for EXPLAIN option \"%s\": \"%s\""
 msgstr "用于EXPLAIN选项\"%s\"的值无效:\"%s\""
 
-#: commands/explain.c:164
+#: commands/explain.c:175
 #, c-format
 msgid "unrecognized EXPLAIN option \"%s\""
 msgstr "无法识别的EXPLAIN选项\"%s\""
 
-#: commands/explain.c:171
+#: commands/explain.c:182
 #, c-format
 msgid "EXPLAIN option BUFFERS requires ANALYZE"
 msgstr "在EXPLAIN命令中BUFFERS和ANALYZE选项需要一起使用"
 
-#: commands/explain.c:180
+#: commands/explain.c:191
 #, c-format
 msgid "EXPLAIN option TIMING requires ANALYZE"
 msgstr "在EXPLAIN命令中的TIMING选项需要ANALYZE"
 
-#: commands/extension.c:146 commands/extension.c:2620
+#: commands/extension.c:148 commands/extension.c:2628
 #, c-format
 msgid "extension \"%s\" does not exist"
 msgstr "扩展 \"%s\" 不存在"
 
-#: commands/extension.c:245 commands/extension.c:254 commands/extension.c:266
-#: commands/extension.c:276
+#: commands/extension.c:247 commands/extension.c:256 commands/extension.c:268
+#: commands/extension.c:278
 #, c-format
 msgid "invalid extension name: \"%s\""
 msgstr "无效扩展名: \"%s\""
 
-#: commands/extension.c:246
+#: commands/extension.c:248
 #, c-format
 msgid "Extension names must not be empty."
 msgstr "扩展名不能为空."
 
-#: commands/extension.c:255
+#: commands/extension.c:257
 #, c-format
 msgid "Extension names must not contain \"--\"."
 msgstr "扩展名不能包含\"--\"."
 
-#: commands/extension.c:267
+#: commands/extension.c:269
 #, c-format
 msgid "Extension names must not begin or end with \"-\"."
 msgstr "扩展名不能以 \"-\"作为开始或结束符."
 
-#: commands/extension.c:277
+#: commands/extension.c:279
 #, c-format
 msgid "Extension names must not contain directory separator characters."
 msgstr "扩展名不能包含目录分隔符."
 
-#: commands/extension.c:292 commands/extension.c:301 commands/extension.c:310
-#: commands/extension.c:320
+#: commands/extension.c:294 commands/extension.c:303 commands/extension.c:312
+#: commands/extension.c:322
 #, c-format
 msgid "invalid extension version name: \"%s\""
 msgstr "无效的扩展版本名: \"%s\""
 
-#: commands/extension.c:293
+#: commands/extension.c:295
 #, c-format
 msgid "Version names must not be empty."
 msgstr "版本名不能为空."
 
-#: commands/extension.c:302
+#: commands/extension.c:304
 #, c-format
 msgid "Version names must not contain \"--\"."
 msgstr "版本名不能包含\"--\"."
 
-#: commands/extension.c:311
+#: commands/extension.c:313
 #, c-format
 msgid "Version names must not begin or end with \"-\"."
 msgstr "版本名不能以 \"-\"作为开始或结束符."
 
-#: commands/extension.c:321
+#: commands/extension.c:323
 #, c-format
 msgid "Version names must not contain directory separator characters."
 msgstr "版本名不能包含目录分隔符."
 
-#: commands/extension.c:471
+#: commands/extension.c:473
 #, c-format
 msgid "could not open extension control file \"%s\": %m"
 msgstr "无法打开扩展控制文件 \"%s\": %m"
 
-#: commands/extension.c:493 commands/extension.c:503
+#: commands/extension.c:495 commands/extension.c:505
 #, c-format
 msgid "parameter \"%s\" cannot be set in a secondary extension control file"
 msgstr "第二扩展控制文件中, 无法设置参数 \"%s\""
 
-#: commands/extension.c:542
+#: commands/extension.c:544
 #, c-format
 msgid "\"%s\" is not a valid encoding name"
 msgstr "\"%s\" 是一个无效编码名"
 
-#: commands/extension.c:556
+#: commands/extension.c:558
 #, c-format
 msgid "parameter \"%s\" must be a list of extension names"
 msgstr "参数 \"%s\"必须是一个包含扩展名的列表"
 
-#: commands/extension.c:563
+#: commands/extension.c:565
 #, c-format
 msgid "unrecognized parameter \"%s\" in file \"%s\""
 msgstr "文件\"%2$s\"中出现未识别的参数 \"%1$s\""
 
-#: commands/extension.c:572
+#: commands/extension.c:574
 #, c-format
 msgid "parameter \"schema\" cannot be specified when \"relocatable\" is true"
 msgstr "当\"relocatable\"为真时,参数\"schema\"不允许被指定"
 
-#: commands/extension.c:724
+#: commands/extension.c:722
 #, c-format
 msgid ""
 "transaction control statements are not allowed within an extension script"
 msgstr "扩展脚本中不允许出现事务控制语句"
 
-#: commands/extension.c:792
+#: commands/extension.c:790
 #, c-format
 msgid "permission denied to create extension \"%s\""
 msgstr "创建扩展 \"%s\" 权限不够"
 
-#: commands/extension.c:794
+#: commands/extension.c:792
 #, c-format
 msgid "Must be superuser to create this extension."
 msgstr "只有超级用户能创建扩展."
 
-#: commands/extension.c:798
+#: commands/extension.c:796
 #, c-format
 msgid "permission denied to update extension \"%s\""
 msgstr "更新扩展 \"%s\" 权限不够"
 
-#: commands/extension.c:800
+#: commands/extension.c:798
 #, c-format
 msgid "Must be superuser to update this extension."
 msgstr "只有超级用户能更新扩展."
 
-#: commands/extension.c:1082
+#: commands/extension.c:1080
 #, c-format
 msgid ""
 "extension \"%s\" has no update path from version \"%s\" to version \"%s\""
 msgstr "扩展 \"%s\" 没有从版本\"%s\"到版本\"%s\"的更新路径"
 
-#: commands/extension.c:1209
+#: commands/extension.c:1207
 #, c-format
 msgid "extension \"%s\" already exists, skipping"
 msgstr "扩展 \"%s\" 已经存在,跳过"
 
-#: commands/extension.c:1216
+#: commands/extension.c:1214
 #, c-format
 msgid "extension \"%s\" already exists"
 msgstr "扩展 \"%s\" 已经存在"
 
-#: commands/extension.c:1227
+#: commands/extension.c:1225
 #, c-format
 msgid "nested CREATE EXTENSION is not supported"
 msgstr "不支持嵌套的CREATE EXTENSION"
 
-#: commands/extension.c:1282 commands/extension.c:2680
+#: commands/extension.c:1280 commands/extension.c:2688
 #, c-format
 msgid "version to install must be specified"
 msgstr "必须指定安装版本"
 
-#: commands/extension.c:1299
+#: commands/extension.c:1297
 #, c-format
 msgid "FROM version must be different from installation target version \"%s\""
 msgstr "FROM 版本与安装的目标版本 \"%s\" 必须不同"
 
-#: commands/extension.c:1354
+#: commands/extension.c:1352
 #, c-format
 msgid "extension \"%s\" must be installed in schema \"%s\""
 msgstr "扩展\"%s\"已经安装到模式\"%s\"中了"
 
-#: commands/extension.c:1433 commands/extension.c:2821
+#: commands/extension.c:1436 commands/extension.c:2831
 #, c-format
 msgid "required extension \"%s\" is not installed"
 msgstr "所需要的扩展\"%s\"没被安装"
 
-#: commands/extension.c:1594
+#: commands/extension.c:1598
 #, c-format
 msgid "cannot drop extension \"%s\" because it is being modified"
 msgstr "无法删除扩展\"%s\",因为它正被修改中"
 
-#: commands/extension.c:1642 commands/extension.c:1751
-#: commands/extension.c:1944 commands/prepare.c:716 executor/execQual.c:1716
-#: executor/execQual.c:1741 executor/execQual.c:2102 executor/execQual.c:5232
-#: executor/functions.c:969 foreign/foreign.c:373 replication/walsender.c:1509
-#: utils/fmgr/funcapi.c:60 utils/mmgr/portalmem.c:986
-#, c-format
-msgid "set-valued function called in context that cannot accept a set"
-msgstr "在不能接受使用集合的环境中调用set-valued函数"
-
-#: commands/extension.c:1646 commands/extension.c:1755
-#: commands/extension.c:1948 commands/prepare.c:720 foreign/foreign.c:378
-#: replication/walsender.c:1513 utils/mmgr/portalmem.c:990
-#, c-format
-msgid "materialize mode required, but it is not allowed in this context"
-msgstr "要求使用物化模式,但是在这种环境下不允许使用."
-
-#: commands/extension.c:2065
+#: commands/extension.c:2069
 #, c-format
 msgid ""
 "pg_extension_config_dump() can only be called from an SQL script executed by "
 "CREATE EXTENSION"
 msgstr "pg_extension_config_dump() 只能在执行 CREATE EXTENSION的SQL脚本里调用"
 
-#: commands/extension.c:2077
+#: commands/extension.c:2081
 #, c-format
 msgid "OID %u does not refer to a table"
 msgstr "OID %u没有引用任何表"
 
-#: commands/extension.c:2082
+#: commands/extension.c:2086
 #, c-format
 msgid "table \"%s\" is not a member of the extension being created"
 msgstr "表\"%s\"不是被创建的任何一个扩展的成员"
 
-#: commands/extension.c:2446
+#: commands/extension.c:2450
 #, c-format
 msgid ""
 "cannot move extension \"%s\" into schema \"%s\" because the extension "
 "contains the schema"
 msgstr "不能将扩展 \"%s\" 转移到模式 \"%s\" 里,因为该扩展已经拥有该模式"
 
-#: commands/extension.c:2486 commands/extension.c:2549
+#: commands/extension.c:2490 commands/extension.c:2553
 #, c-format
 msgid "extension \"%s\" does not support SET SCHEMA"
 msgstr "扩展 \"%s\" 不支持SET SCHEMA操作"
 
-#: commands/extension.c:2551
+#: commands/extension.c:2555
 #, c-format
 msgid "%s is not in the extension's schema \"%s\""
 msgstr "扩展模式\"%2$s\"中不存在%1$s"
 
-#: commands/extension.c:2600
+#: commands/extension.c:2608
 #, c-format
 msgid "nested ALTER EXTENSION is not supported"
 msgstr "不支持使用嵌套的ALTER  EXTENSION"
 
-#: commands/extension.c:2691
+#: commands/extension.c:2699
 #, c-format
 msgid "version \"%s\" of extension \"%s\" is already installed"
 msgstr "扩展\"%2$s\"的版本\"%1$s\"已经安装"
 
-#: commands/extension.c:2926
+#: commands/extension.c:2938
 #, c-format
 msgid ""
 "cannot add schema \"%s\" to extension \"%s\" because the schema contains the "
 "extension"
 msgstr "无法为扩展\"%2$s\"添加模式\"%1$s\",因为该模式已经包含此扩展"
 
-#: commands/extension.c:2944
+#: commands/extension.c:2956
 #, c-format
 msgid "%s is not a member of extension \"%s\""
-msgstr ""
+msgstr "%s不是扩展的成员\"%s\""
 
-#: commands/foreigncmds.c:134 commands/foreigncmds.c:143
+#: commands/foreigncmds.c:138 commands/foreigncmds.c:147
 #, c-format
 msgid "option \"%s\" not found"
 msgstr "没有找到选项 \"%s\" "
 
-#: commands/foreigncmds.c:153
+#: commands/foreigncmds.c:157
 #, c-format
 msgid "option \"%s\" provided more than once"
 msgstr "选项 \"%s\" 被提供了多次"
 
-#: commands/foreigncmds.c:218 commands/foreigncmds.c:340
-#: commands/foreigncmds.c:711 foreign/foreign.c:548
-#, c-format
-msgid "foreign-data wrapper \"%s\" does not exist"
-msgstr "外部数据封装器 \"%s\" 不存在"
-
-#: commands/foreigncmds.c:224 commands/foreigncmds.c:601
-#, c-format
-msgid "foreign-data wrapper \"%s\" already exists"
-msgstr "外部数据封装器\"%s\"已经存在"
-
-#: commands/foreigncmds.c:256 commands/foreigncmds.c:441
-#: commands/foreigncmds.c:994 commands/foreigncmds.c:1328
-#: foreign/foreign.c:569
-#, c-format
-msgid "server \"%s\" does not exist"
-msgstr "服务器\"%s\" 不存在"
-
-#: commands/foreigncmds.c:262 commands/foreigncmds.c:889
-#, c-format
-msgid "server \"%s\" already exists"
-msgstr "服务器 \"%s\" 已经存在"
-
-#: commands/foreigncmds.c:296 commands/foreigncmds.c:304
+#: commands/foreigncmds.c:223 commands/foreigncmds.c:231
 #, c-format
 msgid "permission denied to change owner of foreign-data wrapper \"%s\""
 msgstr "修改外部数据封装器的 \"%s\" 的属主权限不够"
 
-#: commands/foreigncmds.c:298
+#: commands/foreigncmds.c:225
 #, c-format
 msgid "Must be superuser to change owner of a foreign-data wrapper."
 msgstr "只有超级用户可以更改外部数据封装器的属主"
 
-#: commands/foreigncmds.c:306
+#: commands/foreigncmds.c:233
 #, c-format
 msgid "The owner of a foreign-data wrapper must be a superuser."
 msgstr "外部数据封装器的属主必须是超级用户."
 
-#: commands/foreigncmds.c:493
+#: commands/foreigncmds.c:271 commands/foreigncmds.c:655 foreign/foreign.c:600
+#, c-format
+msgid "foreign-data wrapper \"%s\" does not exist"
+msgstr "外部数据封装器 \"%s\" 不存在"
+
+#: commands/foreigncmds.c:380 commands/foreigncmds.c:944
+#: commands/foreigncmds.c:1285 foreign/foreign.c:621
+#, c-format
+msgid "server \"%s\" does not exist"
+msgstr "服务器\"%s\" 不存在"
+
+#: commands/foreigncmds.c:436
 #, c-format
 msgid "function %s must return type \"fdw_handler\""
 msgstr "函数 %s 必须返回 \"fdw_handler\" 类型"
 
-#: commands/foreigncmds.c:588
+#: commands/foreigncmds.c:531
 #, c-format
 msgid "permission denied to create foreign-data wrapper \"%s\""
 msgstr "创建外部数据封装器\"%s\"失败"
 
-#: commands/foreigncmds.c:590
+#: commands/foreigncmds.c:533
 #, c-format
 msgid "Must be superuser to create a foreign-data wrapper."
 msgstr "只有超级用户能创建外部数据封装器"
 
-#: commands/foreigncmds.c:701
+#: commands/foreigncmds.c:645
 #, c-format
 msgid "permission denied to alter foreign-data wrapper \"%s\""
 msgstr "不允许修改外部数据封装器\"%s\""
 
-#: commands/foreigncmds.c:703
+#: commands/foreigncmds.c:647
 #, c-format
 msgid "Must be superuser to alter a foreign-data wrapper."
 msgstr "只有超级用户才能修改一个外部数据封装器."
 
-#: commands/foreigncmds.c:734
+#: commands/foreigncmds.c:678
 #, c-format
 msgid ""
 "changing the foreign-data wrapper handler can change behavior of existing "
 "foreign tables"
 msgstr "改变外部数据封装器可能会改变现存的外部表的行为"
 
-#: commands/foreigncmds.c:748
+#: commands/foreigncmds.c:693
 #, c-format
 msgid ""
 "changing the foreign-data wrapper validator can cause the options for "
 "dependent objects to become invalid"
 msgstr "改变外部数据封装器的验证能够使所它依赖对象的选项变为无效"
 
-#: commands/foreigncmds.c:1152
+#: commands/foreigncmds.c:1106
 #, c-format
 msgid "user mapping \"%s\" already exists for server %s"
 msgstr "对于服务器%2$s,用户映射\"%1$s\"已存在 "
 
-#: commands/foreigncmds.c:1239 commands/foreigncmds.c:1344
+#: commands/foreigncmds.c:1194 commands/foreigncmds.c:1301
 #, c-format
 msgid "user mapping \"%s\" does not exist for the server"
 msgstr "对于服务器来说,用户映射\"%s\"不存在"
 
-#: commands/foreigncmds.c:1331
+#: commands/foreigncmds.c:1288
 #, c-format
 msgid "server does not exist, skipping"
 msgstr "服务器不存在,跳过"
 
-#: commands/foreigncmds.c:1349
+#: commands/foreigncmds.c:1306
 #, c-format
 msgid "user mapping \"%s\" does not exist for the server, skipping"
 msgstr "用户映射\"%s\"对于服务器来说不存在,跳过"
 
-#: commands/functioncmds.c:102
+#: commands/functioncmds.c:98
 #, c-format
 msgid "SQL function cannot return shell type %s"
 msgstr "SQL 函数不能返回 shell 类型 %s"
 
-#: commands/functioncmds.c:107
+#: commands/functioncmds.c:103
 #, c-format
 msgid "return type %s is only a shell"
 msgstr "返回类型 %s 只是一个 shell"
 
-#: commands/functioncmds.c:136 parser/parse_type.c:284
+#: commands/functioncmds.c:132 parser/parse_type.c:333
 #, c-format
 msgid "type modifier cannot be specified for shell type \"%s\""
 msgstr "不能为shell类型\"%s\"指定类型修改器"
 
-#: commands/functioncmds.c:142
+#: commands/functioncmds.c:138
 #, c-format
 msgid "type \"%s\" is not yet defined"
 msgstr "类型 \"%s\" 仍没被定义"
 
-#: commands/functioncmds.c:143
+#: commands/functioncmds.c:139
 #, c-format
 msgid "Creating a shell type definition."
 msgstr "创建一个 shell 类型定义."
 
-#: commands/functioncmds.c:227
+#: commands/functioncmds.c:236
 #, c-format
 msgid "SQL function cannot accept shell type %s"
 msgstr "SQL 函数不能接收 shell 类型 %s"
 
-#: commands/functioncmds.c:232
+#: commands/functioncmds.c:242
+#, c-format
+#| msgid "SQL function cannot accept shell type %s"
+msgid "aggregate cannot accept shell type %s"
+msgstr "聚集函数不能接收 shell 类型 %s"
+
+#: commands/functioncmds.c:247
 #, c-format
 msgid "argument type %s is only a shell"
 msgstr "参数类型 %s 只是一个 shell"
 
-#: commands/functioncmds.c:242
+#: commands/functioncmds.c:257
 #, c-format
 msgid "type %s does not exist"
 msgstr "类型 %s 不存在"
 
-#: commands/functioncmds.c:254
+#: commands/functioncmds.c:271
+#, c-format
+#| msgid "aggregates cannot use named arguments"
+msgid "aggregates cannot accept set arguments"
+msgstr "聚合函数不能接受集合类型参数"
+
+#: commands/functioncmds.c:275
 #, c-format
 msgid "functions cannot accept set arguments"
 msgstr "函数不能接收设定参数"
 
-#: commands/functioncmds.c:263
+#: commands/functioncmds.c:285
 #, c-format
 msgid "VARIADIC parameter must be the last input parameter"
 msgstr "参数VARIADIC必须是最后一个输入参数"
 
-#: commands/functioncmds.c:290
+#: commands/functioncmds.c:313
 #, c-format
 msgid "VARIADIC parameter must be an array"
 msgstr "参数VARIADIC必须是一个数组"
 
-#: commands/functioncmds.c:330
+#: commands/functioncmds.c:353
 #, c-format
 msgid "parameter name \"%s\" used more than once"
 msgstr "多次使用参数名称 \"%s\""
 
-#: commands/functioncmds.c:345
+#: commands/functioncmds.c:368
 #, c-format
 msgid "only input parameters can have default values"
 msgstr "只有输入参数才能有缺省值"
 
-#: commands/functioncmds.c:358
+#: commands/functioncmds.c:383
 #, c-format
 msgid "cannot use table references in parameter default value"
 msgstr "在参数缺省值中不能使用表引用"
 
-#: commands/functioncmds.c:374
-#, c-format
-msgid "cannot use subquery in parameter default value"
-msgstr "在参数缺省值中不能使用自查询"
-
-#: commands/functioncmds.c:378
-#, c-format
-msgid "cannot use aggregate function in parameter default value"
-msgstr "在参数的缺省值中不能使用聚合函数"
-
-#: commands/functioncmds.c:382
-#, c-format
-msgid "cannot use window function in parameter default value"
-msgstr "在参数的缺省值中不能使用窗口函数"
-
-#: commands/functioncmds.c:392
+#: commands/functioncmds.c:407
 #, c-format
 msgid "input parameters after one with a default value must also have defaults"
 msgstr "在带有缺省值参数后面的输入参数必须也带有缺省值."
 
-#: commands/functioncmds.c:642
+#: commands/functioncmds.c:657
 #, c-format
 msgid "no function body specified"
 msgstr "没有指定函数体"
 
-#: commands/functioncmds.c:652
+#: commands/functioncmds.c:667
 #, c-format
 msgid "no language specified"
 msgstr "没有指定语言"
 
-#: commands/functioncmds.c:675 commands/functioncmds.c:1330
+#: commands/functioncmds.c:690 commands/functioncmds.c:1149
 #, c-format
 msgid "COST must be positive"
 msgstr "COST必需为正数"
 
-#: commands/functioncmds.c:683 commands/functioncmds.c:1338
+#: commands/functioncmds.c:698 commands/functioncmds.c:1157
 #, c-format
 msgid "ROWS must be positive"
 msgstr "ROWS必需为正数"
 
-#: commands/functioncmds.c:722
+#: commands/functioncmds.c:737
 #, c-format
 msgid "unrecognized function attribute \"%s\" ignored"
 msgstr "忽略未认可的函数属性 \"%s\""
 
-#: commands/functioncmds.c:773
+#: commands/functioncmds.c:788
 #, c-format
 msgid "only one AS item needed for language \"%s\""
 msgstr "对于 \"%s\" 语言只能要求一个 AS 项目"
 
-#: commands/functioncmds.c:861 commands/functioncmds.c:1969
-#: commands/proclang.c:554 commands/proclang.c:591 commands/proclang.c:705
+#: commands/functioncmds.c:877 commands/functioncmds.c:1734
+#: commands/proclang.c:553
 #, c-format
 msgid "language \"%s\" does not exist"
 msgstr "语言 \"%s\" 不存在"
 
-#: commands/functioncmds.c:863 commands/functioncmds.c:1971
+#: commands/functioncmds.c:879 commands/functioncmds.c:1736
 #, c-format
 msgid "Use CREATE LANGUAGE to load the language into the database."
 msgstr "使用CREATE LANGUAGE向数据库加载语言."
 
-#: commands/functioncmds.c:898 commands/functioncmds.c:1321
+#: commands/functioncmds.c:914 commands/functioncmds.c:1140
 #, c-format
 msgid "only superuser can define a leakproof function"
 msgstr "只有超级用户才能定义一个密封函数"
 
-#: commands/functioncmds.c:920
+#: commands/functioncmds.c:940
 #, c-format
 msgid "function result type must be %s because of OUT parameters"
 msgstr "因为OUT参数,函数的结果类型必须是%s"
 
-#: commands/functioncmds.c:933
+#: commands/functioncmds.c:953
 #, c-format
 msgid "function result type must be specified"
 msgstr "必须指定函数返回结果的类型"
 
-#: commands/functioncmds.c:968 commands/functioncmds.c:1342
+#: commands/functioncmds.c:988 commands/functioncmds.c:1161
 #, c-format
 msgid "ROWS is not applicable when function does not return a set"
 msgstr "当转换函数不返回一个组合时,不适用ROWS"
 
-#: commands/functioncmds.c:1078
-#, c-format
-msgid "Use ALTER AGGREGATE to rename aggregate functions."
-msgstr "使用 ALTER AGGREGATE 对聚合函数重命名."
-
-#: commands/functioncmds.c:1141
-#, c-format
-msgid "Use ALTER AGGREGATE to change owner of aggregate functions."
-msgstr "使用 ALTER AGGREGATE 改变聚合函数的属主."
-
-#: commands/functioncmds.c:1491
+#: commands/functioncmds.c:1314
 #, c-format
 msgid "source data type %s is a pseudo-type"
 msgstr "源数据类型 %s 是一个伪类型"
 
-#: commands/functioncmds.c:1497
+#: commands/functioncmds.c:1320
 #, c-format
 msgid "target data type %s is a pseudo-type"
 msgstr "目标数据类型 %s 是一个伪类型"
 
-#: commands/functioncmds.c:1521
+#: commands/functioncmds.c:1344
 #, c-format
 msgid "cast will be ignored because the source data type is a domain"
 msgstr "转换将被忽略,因为源数据类型是一个域"
 
-#: commands/functioncmds.c:1526
+#: commands/functioncmds.c:1349
 #, c-format
 msgid "cast will be ignored because the target data type is a domain"
 msgstr "转换将被忽略,因为目标数据类型是一个域"
 
-#: commands/functioncmds.c:1553
+#: commands/functioncmds.c:1376
 #, c-format
 msgid "cast function must take one to three arguments"
 msgstr "类型转换函数只能带一到三个参数"
 
-#: commands/functioncmds.c:1557
+#: commands/functioncmds.c:1380
 #, c-format
 msgid ""
 "argument of cast function must match or be binary-coercible from source data "
 "type"
 msgstr "功能指派函数的参数必须匹配或者是或者从源数据类型以二进制方式强制转换的"
 
-#: commands/functioncmds.c:1561
+#: commands/functioncmds.c:1384
 #, c-format
 msgid "second argument of cast function must be type integer"
 msgstr "类型转换函数的第二个参数必须为整型"
 
-#: commands/functioncmds.c:1565
+#: commands/functioncmds.c:1388
 #, c-format
 msgid "third argument of cast function must be type boolean"
 msgstr "类型转换函数的第三个参数必须为布尔类型"
 
-#: commands/functioncmds.c:1569
+#: commands/functioncmds.c:1392
 #, c-format
 msgid ""
 "return data type of cast function must match or be binary-coercible to "
 "target data type"
 msgstr "功能指派函数的返回数据类型必须匹配或者强制二进制方式转换的目标数据类型"
 
-#: commands/functioncmds.c:1580
+#: commands/functioncmds.c:1403
 #, c-format
 msgid "cast function must not be volatile"
 msgstr "类型转换函数不能为易失的 (volatile)"
 
-#: commands/functioncmds.c:1585
+#: commands/functioncmds.c:1408
 #, c-format
 msgid "cast function must not be an aggregate function"
 msgstr "转换函数不能是一个聚合函数"
 
-#: commands/functioncmds.c:1589
+#: commands/functioncmds.c:1412
 #, c-format
 msgid "cast function must not be a window function"
 msgstr "功能转换函数不能使窗口函数"
 
-#: commands/functioncmds.c:1593
+#: commands/functioncmds.c:1416
 #, c-format
 msgid "cast function must not return a set"
 msgstr "转换函数不能返回一个组合"
 
-#: commands/functioncmds.c:1619
+#: commands/functioncmds.c:1442
 #, c-format
 msgid "must be superuser to create a cast WITHOUT FUNCTION"
 msgstr "只有超级用户能创建一个非函数的类型转换"
 
-#: commands/functioncmds.c:1634
+#: commands/functioncmds.c:1457
 #, c-format
 msgid "source and target data types are not physically compatible"
 msgstr "源数据类型和目标数据类型不相容"
 
-#: commands/functioncmds.c:1649
+#: commands/functioncmds.c:1472
 #, c-format
 msgid "composite data types are not binary-compatible"
 msgstr "组合数据类型不是二进制兼容"
 
-#: commands/functioncmds.c:1655
+#: commands/functioncmds.c:1478
 #, c-format
 msgid "enum data types are not binary-compatible"
 msgstr "枚举数据类型不是二进制兼容"
 
-#: commands/functioncmds.c:1661
+#: commands/functioncmds.c:1484
 #, c-format
 msgid "array data types are not binary-compatible"
 msgstr "数组数据类型不是二进制兼容的"
 
-#: commands/functioncmds.c:1678
+#: commands/functioncmds.c:1501
 #, c-format
 msgid "domain data types must not be marked binary-compatible"
 msgstr "域数据类型不能标为二进制兼容"
 
-#: commands/functioncmds.c:1688
+#: commands/functioncmds.c:1511
 #, c-format
 msgid "source data type and target data type are the same"
 msgstr "源数据类型和目标数据类型相同"
 
-#: commands/functioncmds.c:1721
+#: commands/functioncmds.c:1544
 #, c-format
 msgid "cast from type %s to type %s already exists"
 msgstr "类型 %s 到 %s 的转换已经存在"
 
-#: commands/functioncmds.c:1795
+#: commands/functioncmds.c:1619
 #, c-format
 msgid "cast from type %s to type %s does not exist"
 msgstr "类型 %s 到类型 %s 的转换不存在"
 
-#: commands/functioncmds.c:1883
+#: commands/functioncmds.c:1668
 #, c-format
-msgid "function \"%s\" already exists in schema \"%s\""
-msgstr "在模式 \"%2$s\" 中函数 \"%1$s\" 已经存在"
+msgid "function %s already exists in schema \"%s\""
+msgstr "在模式 \"%2$s\" 中函数 %1$s 已经存在"
 
-#: commands/functioncmds.c:1956
+#: commands/functioncmds.c:1721
 #, c-format
 msgid "no inline code specified"
 msgstr "没有指定内联代码"
 
-#: commands/functioncmds.c:2001
+#: commands/functioncmds.c:1766
 #, c-format
 msgid "language \"%s\" does not support inline code execution"
 msgstr "语言 \"%s\" 不支持执行内联代码"
 
-#: commands/indexcmds.c:159 commands/indexcmds.c:480
-#: commands/opclasscmds.c:369 commands/opclasscmds.c:788
-#: commands/opclasscmds.c:2121
+#: commands/indexcmds.c:159 commands/indexcmds.c:486
+#: commands/opclasscmds.c:370 commands/opclasscmds.c:790
+#: commands/opclasscmds.c:1749
 #, c-format
 msgid "access method \"%s\" does not exist"
 msgstr "访问方式 \"%s\" 不存在"
 
-#: commands/indexcmds.c:337
+#: commands/indexcmds.c:340
 #, c-format
 msgid "must specify at least one column"
 msgstr "必需至少指定一个字段"
 
-#: commands/indexcmds.c:341
+#: commands/indexcmds.c:344
 #, c-format
 msgid "cannot use more than %d columns in an index"
 msgstr "在一个索引中不能使用超过 %d 个字段"
 
-#: commands/indexcmds.c:369
+#: commands/indexcmds.c:375
 #, c-format
 msgid "cannot create index on foreign table \"%s\""
 msgstr "外部表\"%s\"上无法创建索引"
 
-#: commands/indexcmds.c:384
+#: commands/indexcmds.c:390
 #, c-format
 msgid "cannot create indexes on temporary tables of other sessions"
 msgstr "不能在其他会话的临时表上创建索引"
 
-#: commands/indexcmds.c:439 commands/tablecmds.c:509 commands/tablecmds.c:8691
+#: commands/indexcmds.c:445 commands/tablecmds.c:525 commands/tablecmds.c:9101
 #, c-format
 msgid "only shared relations can be placed in pg_global tablespace"
 msgstr "在pg_global表空间中只能放置共享关系"
 
-#: commands/indexcmds.c:472
+#: commands/indexcmds.c:478
 #, c-format
 msgid "substituting access method \"gist\" for obsolete method \"rtree\""
 msgstr "将已作废的方法\"rtree\"替换为访问方法\"gist\" "
 
-#: commands/indexcmds.c:489
+#: commands/indexcmds.c:495
 #, c-format
 msgid "access method \"%s\" does not support unique indexes"
 msgstr "存取方法 \"%s\" 不支持唯一索引"
 
-#: commands/indexcmds.c:494
+#: commands/indexcmds.c:500
 #, c-format
 msgid "access method \"%s\" does not support multicolumn indexes"
 msgstr "存取方法 \"%s\" 不支持多字段索引"
 
-#: commands/indexcmds.c:499
+#: commands/indexcmds.c:505
 #, c-format
 msgid "access method \"%s\" does not support exclusion constraints"
 msgstr "访问方法 \"%s\" 不支持排他约束"
 
-#: commands/indexcmds.c:578
+#: commands/indexcmds.c:584
 #, c-format
 msgid "%s %s will create implicit index \"%s\" for table \"%s\""
 msgstr "%1$s %2$s 将要为表 \"%4$s\" 创建隐含索引 \"%3$s\""
 
-#: commands/indexcmds.c:923
-#, c-format
-msgid "cannot use subquery in index predicate"
-msgstr "索引声明中不能使用子查询"
-
-#: commands/indexcmds.c:927
-#, c-format
-msgid "cannot use aggregate in index predicate"
-msgstr "索引声明中不能使用聚合函数"
-
-#: commands/indexcmds.c:936
+#: commands/indexcmds.c:922
 #, c-format
 msgid "functions in index predicate must be marked IMMUTABLE"
 msgstr "索引声明中函数必需标记为 IMMUTABLE"
 
-#: commands/indexcmds.c:1002 parser/parse_utilcmd.c:1761
+#: commands/indexcmds.c:988 parser/parse_utilcmd.c:1797
 #, c-format
 msgid "column \"%s\" named in key does not exist"
 msgstr "在键字中命名的字段 \"%s\" 不存在"
 
-#: commands/indexcmds.c:1055
-#, c-format
-msgid "cannot use subquery in index expression"
-msgstr "索引表达式中不能使用子查询"
-
-#: commands/indexcmds.c:1059
-#, c-format
-msgid "cannot use aggregate function in index expression"
-msgstr "索引表达式中不能使用聚合函数"
-
-#: commands/indexcmds.c:1070
+#: commands/indexcmds.c:1048
 #, c-format
 msgid "functions in index expression must be marked IMMUTABLE"
 msgstr "索引表达式中函数必需标记为 IMMUTABLE"
 
-#: commands/indexcmds.c:1093
+#: commands/indexcmds.c:1071
 #, c-format
 msgid "could not determine which collation to use for index expression"
 msgstr "索引表达式上无法确定使用哪个排序规则"
 
-#: commands/indexcmds.c:1101 commands/typecmds.c:776 parser/parse_expr.c:2171
-#: parser/parse_type.c:498 parser/parse_utilcmd.c:2621 utils/adt/misc.c:518
+#: commands/indexcmds.c:1079 commands/typecmds.c:782 parser/parse_expr.c:2278
+#: parser/parse_type.c:546 parser/parse_utilcmd.c:2648 utils/adt/misc.c:520
 #, c-format
 msgid "collations are not supported by type %s"
 msgstr "类型%s不能使用排序规则"
 
-#: commands/indexcmds.c:1139
+#: commands/indexcmds.c:1117
 #, c-format
 msgid "operator %s is not commutative"
 msgstr "操作符%s不是可交换的"
 
-#: commands/indexcmds.c:1141
+#: commands/indexcmds.c:1119
 #, c-format
 msgid "Only commutative operators can be used in exclusion constraints."
 msgstr "只有可交换操作符能够在排他约束中使用."
 
-#: commands/indexcmds.c:1167
+#: commands/indexcmds.c:1145
 #, c-format
 msgid "operator %s is not a member of operator family \"%s\""
 msgstr "操作符%s不是操作符表\"%s\"的成员"
 
-#: commands/indexcmds.c:1170
+#: commands/indexcmds.c:1148
 #, c-format
 msgid ""
 "The exclusion operator must be related to the index operator class for the "
 "constraint."
 msgstr "排他操作符必须和用于约束的索引操作符级别相关联"
 
-#: commands/indexcmds.c:1205
+#: commands/indexcmds.c:1183
 #, c-format
 msgid "access method \"%s\" does not support ASC/DESC options"
 msgstr "访问方法 \"%s\" 不支持ASC/DESC选项"
 
-#: commands/indexcmds.c:1210
+#: commands/indexcmds.c:1188
 #, c-format
 msgid "access method \"%s\" does not support NULLS FIRST/LAST options"
 msgstr "访问方法 \"%s\" 不支持NULLS FIRST/LAST选项"
 
-#: commands/indexcmds.c:1266 commands/typecmds.c:1853
+#: commands/indexcmds.c:1244 commands/typecmds.c:1887
 #, c-format
 msgid "data type %s has no default operator class for access method \"%s\""
 msgstr "对访问方法 \"%2$s\" 数据类型 %1$s 没有默认的操作符表"
 
-#: commands/indexcmds.c:1268
+#: commands/indexcmds.c:1246
 #, c-format
 msgid ""
 "You must specify an operator class for the index or define a default "
 "operator class for the data type."
 msgstr "你必须指定一个操作符表给索引或定义一个默认的操作符表给数据类型."
 
-#: commands/indexcmds.c:1297 commands/indexcmds.c:1305
-#: commands/opclasscmds.c:212
+#: commands/indexcmds.c:1275 commands/indexcmds.c:1283
+#: commands/opclasscmds.c:214
 #, c-format
 msgid "operator class \"%s\" does not exist for access method \"%s\""
 msgstr "处理方法 \"%s\" 的操作符类 \"%s\" 不存在"
 
-#: commands/indexcmds.c:1318 commands/typecmds.c:1841
+#: commands/indexcmds.c:1296 commands/typecmds.c:1875
 #, c-format
 msgid "operator class \"%s\" does not accept data type %s"
 msgstr "操作符表 \"%s\" 不能处理数据类型 %s"
 
-#: commands/indexcmds.c:1408
+#: commands/indexcmds.c:1386
 #, c-format
 msgid "there are multiple default operator classes for data type %s"
 msgstr "数据类型 %s 有多个默认的操作符表"
 
-#: commands/indexcmds.c:1780
+#: commands/indexcmds.c:1762
 #, c-format
 msgid "table \"%s\" has no indexes"
 msgstr "表 \"%s\" 没有索引"
 
-#: commands/indexcmds.c:1808
+#: commands/indexcmds.c:1792
 #, c-format
 msgid "can only reindex the currently open database"
 msgstr "只能在当前打开的数据库上重建索引"
 
-#: commands/indexcmds.c:1893
+#: commands/indexcmds.c:1881
 #, c-format
 msgid "table \"%s.%s\" was reindexed"
 msgstr "表 \"%s.%s\" 已被重新索引"
 
-#: commands/opclasscmds.c:136 commands/opclasscmds.c:1757
-#: commands/opclasscmds.c:1768 commands/opclasscmds.c:2002
-#: commands/opclasscmds.c:2013
+#: commands/matview.c:178
+#, c-format
+msgid "CONCURRENTLY cannot be used when the materialized view is not populated"
+msgstr "CONCURRENTLY 不能用于物化视图未被产生之前"
+
+#: commands/matview.c:184
+#, c-format
+#| msgid "INSERT (-d, -D) and OID (-o) options cannot be used together\n"
+msgid "CONCURRENTLY and WITH NO DATA options cannot be used together"
+msgstr "CONCURRENTLY 和 WITH NO DATA 两个选项不能同时使用"
+
+#: commands/matview.c:591
+#, c-format
+msgid "new data for \"%s\" contains duplicate rows without any null columns"
+msgstr "新数据 \"%s\" 包含重复的记录行,这些记录不带任何非空列"
+
+#: commands/matview.c:593
+#, c-format
+msgid "Row: %s"
+msgstr "行: %s"
+
+# describe.c:933
+#: commands/matview.c:681
+#, c-format
+#| msgid "Unlogged materialized view \"%s.%s\""
+msgid "cannot refresh materialized view \"%s\" concurrently"
+msgstr "不能同时刷新物化视图 \"%s\""
+
+#: commands/matview.c:683
+#, c-format
+msgid ""
+"Create a unique index with no WHERE clause on one or more columns of the "
+"materialized view."
+msgstr "在物化视图的一个或多个列上创建不带WHERE子句的唯一索引."
+
+#: commands/opclasscmds.c:135
 #, c-format
 msgid "operator family \"%s\" does not exist for access method \"%s\""
 msgstr "访问方法\"%2$s\"的操作符表 \"%1$s\" 不存在"
 
-#: commands/opclasscmds.c:271
+#: commands/opclasscmds.c:273
 #, c-format
 msgid "operator family \"%s\" for access method \"%s\" already exists"
 msgstr "访问方法 \"%2$s\" 操作符表 \"%1$s\" 已经存在"
 
-#: commands/opclasscmds.c:408
+#: commands/opclasscmds.c:409
 #, c-format
 msgid "must be superuser to create an operator class"
 msgstr "只有超级用户能创建一个操作符表"
 
-#: commands/opclasscmds.c:479 commands/opclasscmds.c:862
-#: commands/opclasscmds.c:992
+#: commands/opclasscmds.c:480 commands/opclasscmds.c:866
+#: commands/opclasscmds.c:996
 #, c-format
 msgid "invalid operator number %d, must be between 1 and %d"
 msgstr "无效的操作符号 %d, 必需在 1 到 %d 之间"
 
-#: commands/opclasscmds.c:530 commands/opclasscmds.c:913
-#: commands/opclasscmds.c:1007
+#: commands/opclasscmds.c:531 commands/opclasscmds.c:917
+#: commands/opclasscmds.c:1011
 #, c-format
 msgid "invalid procedure number %d, must be between 1 and %d"
 msgstr "无效的过程号 %d, 必需在 1 到 %d 之间"
 
-#: commands/opclasscmds.c:560
+#: commands/opclasscmds.c:561
 #, c-format
 msgid "storage type specified more than once"
 msgstr "存储类型指定了多次"
 
-#: commands/opclasscmds.c:587
+#: commands/opclasscmds.c:588
 #, c-format
 msgid ""
 "storage type cannot be different from data type for access method \"%s\""
 msgstr "存储类型应该和用于访问方法 \"%s\" 数据类型一样"
 
-#: commands/opclasscmds.c:603
+#: commands/opclasscmds.c:604
 #, c-format
 msgid "operator class \"%s\" for access method \"%s\" already exists"
 msgstr "访问方法 \"%2$s\" 操作符表 \"%1$s\" 已经存在"
 
-#: commands/opclasscmds.c:631
+#: commands/opclasscmds.c:632
 #, c-format
 msgid "could not make operator class \"%s\" be default for type %s"
 msgstr "无法把操作符表 \"%s\" 设置为类型 %s 的默认操作符表"
 
-#: commands/opclasscmds.c:634
+#: commands/opclasscmds.c:635
 #, c-format
 msgid "Operator class \"%s\" already is the default."
 msgstr "操作符表 \"%s\" 已经是默认的了."
 
-#: commands/opclasscmds.c:758
+#: commands/opclasscmds.c:760
 #, c-format
 msgid "must be superuser to create an operator family"
 msgstr "只有超级用户能创建一个操作符表"
 
-#: commands/opclasscmds.c:814
+#: commands/opclasscmds.c:816
 #, c-format
 msgid "must be superuser to alter an operator family"
 msgstr "只有超级用户能修改一个操作符表"
 
-#: commands/opclasscmds.c:878
+#: commands/opclasscmds.c:882
 #, c-format
 msgid "operator argument types must be specified in ALTER OPERATOR FAMILY"
 msgstr "在ALTER OPERATOR FAMILY中必须指定操作符参数类型"
 
-#: commands/opclasscmds.c:942
+#: commands/opclasscmds.c:946
 #, c-format
 msgid "STORAGE cannot be specified in ALTER OPERATOR FAMILY"
 msgstr "在ALTER OPERATOR FAMILY中无法指定参数STORAGE"
 
-#: commands/opclasscmds.c:1058
+#: commands/opclasscmds.c:1062
 #, c-format
 msgid "one or two argument types must be specified"
 msgstr "必须指定一个或两个参数类型"
 
-#: commands/opclasscmds.c:1084
+#: commands/opclasscmds.c:1088
 #, c-format
 msgid "index operators must be binary"
 msgstr "索引操作符必须为二进制"
 
-#: commands/opclasscmds.c:1109
+#: commands/opclasscmds.c:1113
 #, c-format
 msgid "access method \"%s\" does not support ordering operators"
 msgstr "访问方法 \"%s\" 不支持排序操作符"
 
-#: commands/opclasscmds.c:1122
+#: commands/opclasscmds.c:1126
 #, c-format
 msgid "index search operators must return boolean"
 msgstr "索引搜索操作符必须返回布尔值"
 
-#: commands/opclasscmds.c:1164
+#: commands/opclasscmds.c:1168
 #, c-format
 msgid "btree comparison procedures must have two arguments"
 msgstr "B树比较过程必须有两个参数"
 
-#: commands/opclasscmds.c:1168
+#: commands/opclasscmds.c:1172
 #, c-format
 msgid "btree comparison procedures must return integer"
 msgstr "B树比较过程必须返回整数"
 
-#: commands/opclasscmds.c:1185
+#: commands/opclasscmds.c:1189
 #, c-format
 msgid "btree sort support procedures must accept type \"internal\""
 msgstr "B树排序支持过程必须接受\"internal\"类型"
 
-#: commands/opclasscmds.c:1189
+#: commands/opclasscmds.c:1193
 #, c-format
 msgid "btree sort support procedures must return void"
 msgstr "B树排序支持过程必须返回void"
 
-#: commands/opclasscmds.c:1201
+#: commands/opclasscmds.c:1205
 #, c-format
 msgid "hash procedures must have one argument"
 msgstr "哈希存储过程必须有一个参数"
 
-#: commands/opclasscmds.c:1205
+#: commands/opclasscmds.c:1209
 #, c-format
 msgid "hash procedures must return integer"
 msgstr "哈希存储过程必须返回整数"
 
-#: commands/opclasscmds.c:1229
+#: commands/opclasscmds.c:1233
 #, c-format
 msgid "associated data types must be specified for index support procedure"
 msgstr "必须为索引支持的存储过程指定相关联的数据类型"
 
-#: commands/opclasscmds.c:1254
+#: commands/opclasscmds.c:1258
 #, c-format
 msgid "procedure number %d for (%s,%s) appears more than once"
 msgstr "对于(%2$s,%3$s)的存储过程号%1$d出现了多次 "
 
-#: commands/opclasscmds.c:1261
+#: commands/opclasscmds.c:1265
 #, c-format
 msgid "operator number %d for (%s,%s) appears more than once"
 msgstr "对于(%2$s,%3$s)操作符号%1$d出现过多次"
 
-#: commands/opclasscmds.c:1310
+#: commands/opclasscmds.c:1314
 #, c-format
 msgid "operator %d(%s,%s) already exists in operator family \"%s\""
 msgstr "在操作符表\"%4$s\"中已存在操作符 %1$d(%2$s,%3$s)"
 
-#: commands/opclasscmds.c:1423
+#: commands/opclasscmds.c:1430
 #, c-format
 msgid "function %d(%s,%s) already exists in operator family \"%s\""
 msgstr "在操作符表\"%4$s\"中已存在函数 %1$d(%2$s,%3$s)"
 
-#: commands/opclasscmds.c:1510
+#: commands/opclasscmds.c:1520
 #, c-format
 msgid "operator %d(%s,%s) does not exist in operator family \"%s\""
 msgstr "在操作符表\"%4$s\"中不存在操作符 %1$d(%2$s,%3$s)"
 
-#: commands/opclasscmds.c:1550
+#: commands/opclasscmds.c:1560
 #, c-format
 msgid "function %d(%s,%s) does not exist in operator family \"%s\""
 msgstr "在操作符表\"%4$s\"中不存在函数 %1$d(%2$s,%3$s)"
 
-#: commands/opclasscmds.c:1697
+#: commands/opclasscmds.c:1705
 #, c-format
 msgid ""
 "operator class \"%s\" for access method \"%s\" already exists in schema \"%s"
 "\""
 msgstr "访问方法 \"%s\" 的操作符表 \"%s\" 已经在模式 \"%s\" 存在了"
 
-#: commands/opclasscmds.c:1786
+#: commands/opclasscmds.c:1728
 #, c-format
 msgid ""
 "operator family \"%s\" for access method \"%s\" already exists in schema \"%s"
 "\""
 msgstr "对于访问方法 \"%2$s\" 的操作符表 \"%1$s\" 已经在模式 \"%3$s\" 存在了"
 
-#: commands/operatorcmds.c:99
+#: commands/operatorcmds.c:97
 #, c-format
 msgid "=> is deprecated as an operator name"
 msgstr "=>做为操作符名称已被废弃"
 
-#: commands/operatorcmds.c:100
+#: commands/operatorcmds.c:98
 #, c-format
 msgid ""
 "This name may be disallowed altogether in future versions of PostgreSQL."
 msgstr "在将来的PostgreSQL版本中不允许使用这个名称."
 
-#: commands/operatorcmds.c:121 commands/operatorcmds.c:129
+#: commands/operatorcmds.c:119 commands/operatorcmds.c:127
 #, c-format
 msgid "SETOF type not allowed for operator argument"
 msgstr "不允许将SETOF类型用于操作符参数"
 
-#: commands/operatorcmds.c:157
+#: commands/operatorcmds.c:155
 #, c-format
 msgid "operator attribute \"%s\" not recognized"
 msgstr "操作符属性 \"%s\" 不被认可"
 
-#: commands/operatorcmds.c:167
+#: commands/operatorcmds.c:165
 #, c-format
 msgid "operator procedure must be specified"
 msgstr "必须指定操作符过程"
 
-#: commands/operatorcmds.c:178
+#: commands/operatorcmds.c:176
 #, c-format
 msgid "at least one of leftarg or rightarg must be specified"
 msgstr "必须至少指定一个左参数 (leftarg) 或右参数 (rightarg)"
 
-#: commands/operatorcmds.c:246
+#: commands/operatorcmds.c:244
 #, c-format
 msgid "restriction estimator function %s must return type \"float8\""
 msgstr "限制估算函数 %s 必需返回类型\"float8\""
 
-#: commands/operatorcmds.c:285
+#: commands/operatorcmds.c:283
 #, c-format
 msgid "join estimator function %s must return type \"float8\""
 msgstr "连接估算函数 %s 必需返回类型\"float8\""
@@ -6004,17 +6606,17 @@ msgid "invalid cursor name: must not be empty"
 msgstr "无效的游标名称: 不能为空"
 
 #: commands/portalcmds.c:168 commands/portalcmds.c:222
-#: executor/execCurrent.c:67 utils/adt/xml.c:2387 utils/adt/xml.c:2551
+#: executor/execCurrent.c:67 utils/adt/xml.c:2386 utils/adt/xml.c:2553
 #, c-format
 msgid "cursor \"%s\" does not exist"
 msgstr "游标 \"%s\" 不存在"
 
-#: commands/portalcmds.c:340 tcop/pquery.c:739 tcop/pquery.c:1402
+#: commands/portalcmds.c:341 tcop/pquery.c:740 tcop/pquery.c:1404
 #, c-format
 msgid "portal \"%s\" cannot be run"
 msgstr "入口 \"%s\" 不可以运行"
 
-#: commands/portalcmds.c:413
+#: commands/portalcmds.c:411
 #, c-format
 msgid "could not reposition held cursor"
 msgstr "无法定位游标"
@@ -6024,7 +6626,7 @@ msgstr "无法定位游标"
 msgid "invalid statement name: must not be empty"
 msgstr "无效的语句名称: 不能为空"
 
-#: commands/prepare.c:129 parser/parse_param.c:303 tcop/postgres.c:1297
+#: commands/prepare.c:129 parser/parse_param.c:304 tcop/postgres.c:1296
 #, c-format
 msgid "could not determine data type of parameter $%d"
 msgstr "无法确定参数 $%d 的数据类型"
@@ -6049,1930 +6651,2027 @@ msgstr "准备好的语句 \"%s\" 参数个数错误"
 msgid "Expected %d parameters but got %d."
 msgstr "预计 %d 个参数, 但得到了 %d 个."
 
-#: commands/prepare.c:363
-#, c-format
-msgid "cannot use subquery in EXECUTE parameter"
-msgstr "在 EXECUTE 参数中不可以使用子查询"
-
-#: commands/prepare.c:367
-#, c-format
-msgid "cannot use aggregate function in EXECUTE parameter"
-msgstr "在 EXECUTE 参数中不可以使用聚合函数"
-
-#: commands/prepare.c:371
-#, c-format
-msgid "cannot use window function in EXECUTE parameter"
-msgstr "在EXECUTE参数中不能使用窗口函数"
-
-#: commands/prepare.c:384
+#: commands/prepare.c:370
 #, c-format
 msgid "parameter $%d of type %s cannot be coerced to the expected type %s"
 msgstr "类型 %2$s 的参数 $%1$d 不能强制到预计 (expected) 类型 %3$s"
 
-#: commands/prepare.c:479
+#: commands/prepare.c:465
 #, c-format
 msgid "prepared statement \"%s\" already exists"
 msgstr "准备好的语句 \"%s\" 已经存在"
 
-#: commands/prepare.c:518
+#: commands/prepare.c:504
 #, c-format
 msgid "prepared statement \"%s\" does not exist"
 msgstr "准备好的语句 \"%s\" 不存在"
 
-#: commands/proclang.c:88
+#: commands/proclang.c:86
 #, c-format
 msgid "using pg_pltemplate information instead of CREATE LANGUAGE parameters"
 msgstr "使用pg_pltemplate信息,而不是CREATE LANGUAGE的参数"
 
-#: commands/proclang.c:98
+#: commands/proclang.c:96
 #, c-format
 msgid "must be superuser to create procedural language \"%s\""
 msgstr "只有有超级用户权限的用户才能创建过程语言\"%s\""
 
-#: commands/proclang.c:118 commands/proclang.c:280
+#: commands/proclang.c:116 commands/proclang.c:278
 #, c-format
 msgid "function %s must return type \"language_handler\""
 msgstr "函数 %s 必须返回 \"language_handler\" 类型"
 
-#: commands/proclang.c:244
+#: commands/proclang.c:242
 #, c-format
 msgid "unsupported language \"%s\""
 msgstr "不支持语言 \"%s\""
 
-#: commands/proclang.c:246
+#: commands/proclang.c:244
 #, c-format
 msgid "The supported languages are listed in the pg_pltemplate system catalog."
 msgstr "在pg_pltemplate系统目录视图中列出了所支持的语言."
 
-#: commands/proclang.c:254
+#: commands/proclang.c:252
 #, c-format
 msgid "must be superuser to create custom procedural language"
 msgstr "只有有超级用户权限的用户才能创建过程语言"
 
-#: commands/proclang.c:273
+#: commands/proclang.c:271
 #, c-format
 msgid ""
 "changing return type of function %s from \"opaque\" to \"language_handler\""
 msgstr "函数 %s 的返回类型 \"opaque\" 改变成 \"language_handler\""
 
-#: commands/proclang.c:358 commands/proclang.c:560
-#, c-format
-msgid "language \"%s\" already exists"
-msgstr "语言 \"%s\" 已经存在"
-
-#: commands/schemacmds.c:81 commands/schemacmds.c:211
+#: commands/schemacmds.c:84 commands/schemacmds.c:236
 #, c-format
 msgid "unacceptable schema name \"%s\""
 msgstr "不可访问的模式名字 \"%s\""
 
-#: commands/schemacmds.c:82 commands/schemacmds.c:212
+#: commands/schemacmds.c:85 commands/schemacmds.c:237
 #, c-format
 msgid "The prefix \"pg_\" is reserved for system schemas."
 msgstr "前缀 \"pg_\" 是保留给系统模式的."
 
-#: commands/seclabel.c:57
+#: commands/schemacmds.c:99
+#, c-format
+#| msgid "relation \"%s\" already exists, skipping"
+msgid "schema \"%s\" already exists, skipping"
+msgstr "模式 \"%s\" 已存在, 跳过"
+
+#: commands/seclabel.c:58
 #, c-format
 msgid "no security label providers have been loaded"
 msgstr "没有安全标签提供者被加载"
 
-#: commands/seclabel.c:61
+#: commands/seclabel.c:62
 #, c-format
 msgid ""
 "must specify provider when multiple security label providers have been loaded"
 msgstr "当多个安全提供者已经加载时,必须指定提供者"
 
-#: commands/seclabel.c:79
+#: commands/seclabel.c:80
 #, c-format
 msgid "security label provider \"%s\" is not loaded"
 msgstr "安装标签提供者\"%s\"没有加载"
 
-#: commands/sequence.c:124
+#: commands/sequence.c:123
 #, c-format
 msgid "unlogged sequences are not supported"
 msgstr "非事务日志型序列不被支持"
 
-#: commands/sequence.c:419 commands/tablecmds.c:2264 commands/tablecmds.c:2436
-#: commands/tablecmds.c:9788 parser/parse_utilcmd.c:2321 tcop/utility.c:756
-#, c-format
-msgid "relation \"%s\" does not exist, skipping"
-msgstr "关系 \"%s\" 不存在,忽略"
-
-#: commands/sequence.c:634
+#: commands/sequence.c:618
 #, c-format
 msgid "nextval: reached maximum value of sequence \"%s\" (%s)"
 msgstr "nextval: 达到序列 \"%s\" 的最大值了 (%s)"
 
-#: commands/sequence.c:657
+#: commands/sequence.c:641
 #, c-format
 msgid "nextval: reached minimum value of sequence \"%s\" (%s)"
 msgstr "nextval: 达到序列 \"%s\" 的最小值了 (%s)"
 
-#: commands/sequence.c:771
+#: commands/sequence.c:754
 #, c-format
 msgid "currval of sequence \"%s\" is not yet defined in this session"
 msgstr "在此会话中序列 \"%s\" 的 currval 仍没被定义"
 
-#: commands/sequence.c:790 commands/sequence.c:796
+#: commands/sequence.c:773 commands/sequence.c:779
 #, c-format
 msgid "lastval is not yet defined in this session"
 msgstr "在这个会话中还没有定义lastval "
 
-#: commands/sequence.c:865
+#: commands/sequence.c:848
 #, c-format
 msgid "setval: value %s is out of bounds for sequence \"%s\" (%s..%s)"
 msgstr "setval: 值 %s 超出序列 \"%s\" 的范围 (%s..%s)"
 
-#: commands/sequence.c:1028 lib/stringinfo.c:266 libpq/auth.c:1018
-#: libpq/auth.c:1378 libpq/auth.c:1446 libpq/auth.c:1848
-#: postmaster/postmaster.c:1921 postmaster/postmaster.c:1952
-#: postmaster/postmaster.c:3250 postmaster/postmaster.c:3934
-#: postmaster/postmaster.c:4020 postmaster/postmaster.c:4643
-#: storage/buffer/buf_init.c:154 storage/buffer/localbuf.c:393
-#: storage/file/fd.c:369 storage/file/fd.c:752 storage/file/fd.c:870
-#: storage/ipc/procarray.c:845 storage/ipc/procarray.c:1285
-#: storage/ipc/procarray.c:1292 storage/ipc/procarray.c:1611
-#: storage/ipc/procarray.c:2080 utils/adt/formatting.c:1531
-#: utils/adt/formatting.c:1656 utils/adt/formatting.c:1793
-#: utils/adt/regexp.c:209 utils/adt/varlena.c:3527 utils/adt/varlena.c:3548
-#: utils/fmgr/dfmgr.c:224 utils/hash/dynahash.c:373 utils/hash/dynahash.c:450
-#: utils/hash/dynahash.c:964 utils/init/miscinit.c:150
-#: utils/init/miscinit.c:171 utils/init/miscinit.c:181 utils/mb/mbutils.c:374
-#: utils/mb/mbutils.c:675 utils/misc/guc.c:3362 utils/misc/guc.c:3378
-#: utils/misc/guc.c:3391 utils/misc/tzparser.c:455 utils/mmgr/aset.c:416
-#: utils/mmgr/aset.c:587 utils/mmgr/aset.c:765 utils/mmgr/aset.c:966
-#, c-format
-msgid "out of memory"
-msgstr "内存用尽"
-
-#: commands/sequence.c:1234
+#: commands/sequence.c:1224
 #, c-format
 msgid "INCREMENT must not be zero"
 msgstr "INCREMENT 不必为零"
 
-#: commands/sequence.c:1290
+#: commands/sequence.c:1280
 #, c-format
 msgid "MINVALUE (%s) must be less than MAXVALUE (%s)"
 msgstr "MINVALUE (%s) 必需小于 MAXVALUE (%s)"
 
-#: commands/sequence.c:1315
+#: commands/sequence.c:1305
 #, c-format
 msgid "START value (%s) cannot be less than MINVALUE (%s)"
 msgstr "START 值 (%s) 不能小于 MINVALUE (%s)"
 
-#: commands/sequence.c:1327
+#: commands/sequence.c:1317
 #, c-format
 msgid "START value (%s) cannot be greater than MAXVALUE (%s)"
 msgstr "START 值 (%s) 不能大于 MAXVALUE (%s)"
 
-#: commands/sequence.c:1357
+#: commands/sequence.c:1347
 #, c-format
 msgid "RESTART value (%s) cannot be less than MINVALUE (%s)"
 msgstr "RESTART值 (%s) 不能小于 MINVALUE (%s)"
 
-#: commands/sequence.c:1369
+#: commands/sequence.c:1359
 #, c-format
 msgid "RESTART value (%s) cannot be greater than MAXVALUE (%s)"
 msgstr "RESTART 值 (%s) 不能大于 MAXVALUE (%s)"
 
-#: commands/sequence.c:1384
+#: commands/sequence.c:1374
 #, c-format
 msgid "CACHE (%s) must be greater than zero"
 msgstr "CACHE (%s) 必须大于零"
 
-#: commands/sequence.c:1416
+#: commands/sequence.c:1406
 #, c-format
 msgid "invalid OWNED BY option"
 msgstr "无效的OWNED BY选项"
 
-#: commands/sequence.c:1417
+#: commands/sequence.c:1407
 #, c-format
 msgid "Specify OWNED BY table.column or OWNED BY NONE."
 msgstr "指定OWNED BY 表.列 or OWNED BY NONE."
 
-#: commands/sequence.c:1439 commands/tablecmds.c:5740
+#: commands/sequence.c:1430
 #, c-format
-msgid "referenced relation \"%s\" is not a table"
-msgstr "关联的关系 \"%s\" 不是一个表"
+#| msgid "referenced relation \"%s\" is not a table"
+msgid "referenced relation \"%s\" is not a table or foreign table"
+msgstr "关联的关系 \"%s\" 不是一个表或外部参照表"
 
-#: commands/sequence.c:1446
+#: commands/sequence.c:1437
 #, c-format
 msgid "sequence must have same owner as table it is linked to"
 msgstr "序列的属主必须和与它相链接的表的属主相同."
 
-#: commands/sequence.c:1450
+#: commands/sequence.c:1441
 #, c-format
 msgid "sequence must be in same schema as table it is linked to"
 msgstr "序列必须和与它相链接的表存放在同一个模式"
 
-#: commands/tablecmds.c:202
+#: commands/tablecmds.c:206
 #, c-format
 msgid "table \"%s\" does not exist"
 msgstr "表 \"%s\" 不存在"
 
-#: commands/tablecmds.c:203
+#: commands/tablecmds.c:207
 #, c-format
 msgid "table \"%s\" does not exist, skipping"
 msgstr "表 \"%s\" 不存在"
 
-#: commands/tablecmds.c:205
+#: commands/tablecmds.c:209
 msgid "Use DROP TABLE to remove a table."
 msgstr "请使用 DROP TABLE 删除一个表."
 
-#: commands/tablecmds.c:208
+#: commands/tablecmds.c:212
 #, c-format
 msgid "sequence \"%s\" does not exist"
 msgstr "序列 \"%s\" 不存在"
 
-#: commands/tablecmds.c:209
+#: commands/tablecmds.c:213
 #, c-format
 msgid "sequence \"%s\" does not exist, skipping"
 msgstr "序列 \"%s\" 不存在"
 
-#: commands/tablecmds.c:211
+#: commands/tablecmds.c:215
 msgid "Use DROP SEQUENCE to remove a sequence."
 msgstr "请使用 DROP SEQUENCE 删除一个序列."
 
-#: commands/tablecmds.c:214
+#: commands/tablecmds.c:218
 #, c-format
 msgid "view \"%s\" does not exist"
 msgstr "视图 \"%s\" 不存在"
 
-#: commands/tablecmds.c:215
+#: commands/tablecmds.c:219
 #, c-format
 msgid "view \"%s\" does not exist, skipping"
 msgstr "视图 \"%s\" 不存在"
 
-#: commands/tablecmds.c:217
+#: commands/tablecmds.c:221
 msgid "Use DROP VIEW to remove a view."
 msgstr "请使用 DROP VIEW 删除一个视图."
 
-#: commands/tablecmds.c:220 parser/parse_utilcmd.c:1512
+#: commands/tablecmds.c:224
+#, c-format
+#| msgid "view \"%s\" does not exist"
+msgid "materialized view \"%s\" does not exist"
+msgstr "物化视图 \"%s\" 不存在"
+
+#: commands/tablecmds.c:225
+#, c-format
+#| msgid "view \"%s\" does not exist, skipping"
+msgid "materialized view \"%s\" does not exist, skipping"
+msgstr "物化视图 \"%s\" 不存在,跳过"
+
+#: commands/tablecmds.c:227
+#| msgid "Use DROP VIEW to remove a view."
+msgid "Use DROP MATERIALIZED VIEW to remove a materialized view."
+msgstr "请使用 DROP MATERIALIZED VIEW 删除一个物化视图."
+
+#: commands/tablecmds.c:230 parser/parse_utilcmd.c:1548
 #, c-format
 msgid "index \"%s\" does not exist"
 msgstr "索引 \"%s\" 不存在"
 
-#: commands/tablecmds.c:221
+#: commands/tablecmds.c:231
 #, c-format
 msgid "index \"%s\" does not exist, skipping"
 msgstr "索引 \"%s\" 不存在"
 
-#: commands/tablecmds.c:223
+#: commands/tablecmds.c:233
 msgid "Use DROP INDEX to remove an index."
 msgstr "请使用 DROP INDEX 删除一个索引."
 
-#: commands/tablecmds.c:228
+#: commands/tablecmds.c:238
 #, c-format
 msgid "\"%s\" is not a type"
 msgstr "\"%s\" 不是一个类型"
 
-#: commands/tablecmds.c:229
+#: commands/tablecmds.c:239
 msgid "Use DROP TYPE to remove a type."
 msgstr "请使用 DROP TYPE 删除一个类型."
 
-#: commands/tablecmds.c:232 commands/tablecmds.c:7751
-#: commands/tablecmds.c:9723
+#: commands/tablecmds.c:242 commands/tablecmds.c:8076
+#: commands/tablecmds.c:10557
 #, c-format
 msgid "foreign table \"%s\" does not exist"
 msgstr "外部表 \"%s\" 不存在"
 
-#: commands/tablecmds.c:233
+#: commands/tablecmds.c:243
 #, c-format
 msgid "foreign table \"%s\" does not exist, skipping"
 msgstr "外部表 \"%s\" 不存在, 跳过"
 
-#: commands/tablecmds.c:235
+#: commands/tablecmds.c:245
 msgid "Use DROP FOREIGN TABLE to remove a foreign table."
 msgstr "请使用 DROP FOREIGN TABLE 删除一个外部表."
 
-#: commands/tablecmds.c:453
+#: commands/tablecmds.c:469
 #, c-format
 msgid "ON COMMIT can only be used on temporary tables"
 msgstr "ON COMMIT 只能被用于临时表"
 
-#: commands/tablecmds.c:457
+#: commands/tablecmds.c:473 parser/parse_utilcmd.c:521
+#: parser/parse_utilcmd.c:532 parser/parse_utilcmd.c:549
+#: parser/parse_utilcmd.c:611
 #, c-format
-msgid "constraints on foreign tables are not supported"
-msgstr "不支持在外部表上使用约束"
+#| msgid "collations are not supported by type %s"
+msgid "constraints are not supported on foreign tables"
+msgstr "外部表不支持使用约束"
 
-#: commands/tablecmds.c:477
+#: commands/tablecmds.c:493
 #, c-format
 msgid "cannot create temporary table within security-restricted operation"
 msgstr "不能在安全限制的操作中创建临时表"
 
-#: commands/tablecmds.c:583 commands/tablecmds.c:4489
-#, c-format
-msgid "default values on foreign tables are not supported"
-msgstr "外部表中不支持使用缺省值"
-
-#: commands/tablecmds.c:755
+#: commands/tablecmds.c:789
 #, c-format
 msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects"
 msgstr "DROP INDEX CONCURRENTLY不支持同时删除多个对象"
 
-#: commands/tablecmds.c:759
+#: commands/tablecmds.c:793
 #, c-format
 msgid "DROP INDEX CONCURRENTLY does not support CASCADE"
 msgstr "DROP INDEX CONCURRENTLY 不支持级联操作"
 
-#: commands/tablecmds.c:900 commands/tablecmds.c:1235
-#: commands/tablecmds.c:2081 commands/tablecmds.c:3948
-#: commands/tablecmds.c:5746 commands/tablecmds.c:10317 commands/trigger.c:194
-#: commands/trigger.c:1085 commands/trigger.c:1191 rewrite/rewriteDefine.c:266
-#: tcop/utility.c:104
+#: commands/tablecmds.c:938 commands/tablecmds.c:1276
+#: commands/tablecmds.c:2133 commands/tablecmds.c:4112
+#: commands/tablecmds.c:5942 commands/tablecmds.c:11170
+#: commands/tablecmds.c:11205 commands/trigger.c:232 commands/trigger.c:1118
+#: commands/trigger.c:1226 rewrite/rewriteDefine.c:271
+#: rewrite/rewriteDefine.c:887
 #, c-format
 msgid "permission denied: \"%s\" is a system catalog"
 msgstr "权限不够: \"%s\" 是一个系统表"
 
-#: commands/tablecmds.c:1014
+#: commands/tablecmds.c:1052
 #, c-format
 msgid "truncate cascades to table \"%s\""
 msgstr "级联截断表\"%s\""
 
-#: commands/tablecmds.c:1245
+#: commands/tablecmds.c:1286
 #, c-format
 msgid "cannot truncate temporary tables of other sessions"
 msgstr "不能缩短其他会话的临时表"
 
-#: commands/tablecmds.c:1450 parser/parse_utilcmd.c:1724
+#: commands/tablecmds.c:1491 parser/parse_utilcmd.c:1760
 #, c-format
 msgid "inherited relation \"%s\" is not a table"
 msgstr "继承关系 \"%s\" 不是一个表"
 
-#: commands/tablecmds.c:1457 commands/tablecmds.c:8923
+#: commands/tablecmds.c:1498 commands/tablecmds.c:9531
 #, c-format
 msgid "cannot inherit from temporary relation \"%s\""
 msgstr "不能从临时关系 \"%s\" 继承"
 
-#: commands/tablecmds.c:1465 commands/tablecmds.c:8931
-#, fuzzy, c-format
+#: commands/tablecmds.c:1506 commands/tablecmds.c:9539
+#, c-format
 msgid "cannot inherit from temporary relation of another session"
-msgstr "不能从临时关系 \"%s\" 继承"
+msgstr "不能从另一个会话的临时关系继承"
 
-#: commands/tablecmds.c:1481 commands/tablecmds.c:8965
+#: commands/tablecmds.c:1522 commands/tablecmds.c:9573
 #, c-format
 msgid "relation \"%s\" would be inherited from more than once"
 msgstr "关系 \"%s\" 将被继承多次"
 
-#: commands/tablecmds.c:1529
+#: commands/tablecmds.c:1570
 #, c-format
 msgid "merging multiple inherited definitions of column \"%s\""
 msgstr "合并属性 \"%s\" 的多个继承定义"
 
-#: commands/tablecmds.c:1537
+#: commands/tablecmds.c:1578
 #, c-format
 msgid "inherited column \"%s\" has a type conflict"
 msgstr "继承属性 \"%s\" 类型冲突"
 
-#: commands/tablecmds.c:1539 commands/tablecmds.c:1560
-#: commands/tablecmds.c:1747 commands/tablecmds.c:1769
-#: parser/parse_coerce.c:1591 parser/parse_coerce.c:1611
-#: parser/parse_coerce.c:1631 parser/parse_coerce.c:1676
-#: parser/parse_coerce.c:1713 parser/parse_param.c:217
+#: commands/tablecmds.c:1580 commands/tablecmds.c:1601
+#: commands/tablecmds.c:1789 commands/tablecmds.c:1811
+#: parser/parse_coerce.c:1592 parser/parse_coerce.c:1612
+#: parser/parse_coerce.c:1632 parser/parse_coerce.c:1677
+#: parser/parse_coerce.c:1714 parser/parse_param.c:218
 #, c-format
 msgid "%s versus %s"
 msgstr "%s 对 %s"
 
-#: commands/tablecmds.c:1546
+#: commands/tablecmds.c:1587
 #, c-format
 msgid "inherited column \"%s\" has a collation conflict"
 msgstr "继承列 \"%s\" 出现排序规则冲突"
 
-#: commands/tablecmds.c:1548 commands/tablecmds.c:1757
-#: commands/tablecmds.c:4362
+#: commands/tablecmds.c:1589 commands/tablecmds.c:1799
+#: commands/tablecmds.c:4536
 #, c-format
 msgid "\"%s\" versus \"%s\""
 msgstr "\"%s\" 对 \"%s\""
 
-#: commands/tablecmds.c:1558
+#: commands/tablecmds.c:1599
 #, c-format
 msgid "inherited column \"%s\" has a storage parameter conflict"
 msgstr "继承列 \"%s\" 有一个存储参数冲突"
 
-#: commands/tablecmds.c:1670 parser/parse_utilcmd.c:818
-#: parser/parse_utilcmd.c:1159 parser/parse_utilcmd.c:1235
+#: commands/tablecmds.c:1712 parser/parse_utilcmd.c:853
+#: parser/parse_utilcmd.c:1195 parser/parse_utilcmd.c:1271
 #, c-format
 msgid "cannot convert whole-row table reference"
 msgstr "无法转换整行表引用"
 
-#: commands/tablecmds.c:1671 parser/parse_utilcmd.c:819
+#: commands/tablecmds.c:1713 parser/parse_utilcmd.c:854
 #, c-format
 msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"."
 msgstr "约束\"%s\"包含到表\"%s\"的整行引用."
 
-#: commands/tablecmds.c:1737
+#: commands/tablecmds.c:1779
 #, c-format
 msgid "merging column \"%s\" with inherited definition"
 msgstr "合并属性 \"%s\" 连同继承定义"
 
-#: commands/tablecmds.c:1745
+#: commands/tablecmds.c:1787
 #, c-format
 msgid "column \"%s\" has a type conflict"
 msgstr "属性 \"%s\" 类型冲突"
 
-#: commands/tablecmds.c:1755
+#: commands/tablecmds.c:1797
 #, c-format
 msgid "column \"%s\" has a collation conflict"
 msgstr "列 \"%s\" 出现排序规则冲突"
 
-#: commands/tablecmds.c:1767
+#: commands/tablecmds.c:1809
 #, c-format
 msgid "column \"%s\" has a storage parameter conflict"
 msgstr "列 \"%s\" 带有一个冲突的存储参数"
 
-#: commands/tablecmds.c:1819
+#: commands/tablecmds.c:1861
 #, c-format
 msgid "column \"%s\" inherits conflicting default values"
 msgstr "属性 \"%s\" 继承与默认值冲突"
 
-#: commands/tablecmds.c:1821
+#: commands/tablecmds.c:1863
 #, c-format
 msgid "To resolve the conflict, specify a default explicitly."
 msgstr "要解决冲突, 指定明确的默认值"
 
-#: commands/tablecmds.c:1868
+#: commands/tablecmds.c:1910
 #, c-format
 msgid ""
 "check constraint name \"%s\" appears multiple times but with different "
 "expressions"
 msgstr "检查约束名称\"%s\"出现多次,但是带有不同的表达式"
 
-#: commands/tablecmds.c:2053
+#: commands/tablecmds.c:2104
 #, c-format
 msgid "cannot rename column of typed table"
 msgstr "无法重新命名已确定类型表(typed table)的列"
 
-#: commands/tablecmds.c:2069
+#: commands/tablecmds.c:2121
 #, c-format
-msgid "\"%s\" is not a table, view, composite type, index, or foreign table"
-msgstr "\"%s\" 不是一个表,视图,组合类型,索引或者外部表"
+#| msgid "\"%s\" is not a table, view, composite type, index, or foreign table"
+msgid ""
+"\"%s\" is not a table, view, materialized view, composite type, index, or "
+"foreign table"
+msgstr "\"%s\" 不是一个表,视图,物化视图,组合类型,索引或者外部表"
 
-#: commands/tablecmds.c:2161
+#: commands/tablecmds.c:2213
 #, c-format
 msgid "inherited column \"%s\" must be renamed in child tables too"
 msgstr "在子表中继承属性 \"%s\" 也必需重命名"
 
-#: commands/tablecmds.c:2193
+#: commands/tablecmds.c:2245
 #, c-format
 msgid "cannot rename system column \"%s\""
 msgstr "不能对系统字段 \"%s\" 重命名"
 
-#: commands/tablecmds.c:2208
+#: commands/tablecmds.c:2260
 #, c-format
 msgid "cannot rename inherited column \"%s\""
 msgstr "不能对继承字段 \"%s\" 重命名"
 
-#: commands/tablecmds.c:2350
+#: commands/tablecmds.c:2407
 #, c-format
 msgid "inherited constraint \"%s\" must be renamed in child tables too"
 msgstr "继承约束 \"%s\" 在子表中也必须重命名"
 
-#: commands/tablecmds.c:2357
+#: commands/tablecmds.c:2414
 #, c-format
 msgid "cannot rename inherited constraint \"%s\""
 msgstr "无法重命名约束\"%s\""
 
 #. translator: first %s is a SQL command, eg ALTER TABLE
-#: commands/tablecmds.c:2559
+#: commands/tablecmds.c:2628
 #, c-format
 msgid ""
 "cannot %s \"%s\" because it is being used by active queries in this session"
 msgstr "无法%s \"%s\"  因为它正在被这个会话中的活动查询使用"
 
 #. translator: first %s is a SQL command, eg ALTER TABLE
-#: commands/tablecmds.c:2568
+#: commands/tablecmds.c:2637
 #, c-format
 msgid "cannot %s \"%s\" because it has pending trigger events"
 msgstr "无法%s \"%s\"因为它有一个待发生的触发器事件"
 
-#: commands/tablecmds.c:3467
+#: commands/tablecmds.c:3607
 #, c-format
 msgid "cannot rewrite system relation \"%s\""
 msgstr "不能改写系统关系 \"%s\""
 
-#: commands/tablecmds.c:3477
+#: commands/tablecmds.c:3613
+#, c-format
+#| msgid "could not convert table \"%s\" to a view because it has child tables"
+msgid "cannot rewrite table \"%s\" used as a catalog table"
+msgstr "无法重写表\"%s\",以用作一个目录表"
+
+#: commands/tablecmds.c:3623
 #, c-format
 msgid "cannot rewrite temporary tables of other sessions"
 msgstr "不能改写其他会话的临时表"
 
-#: commands/tablecmds.c:3703
+#: commands/tablecmds.c:3854
 #, c-format
 msgid "rewriting table \"%s\""
 msgstr "重写表 \"%s\""
 
-#: commands/tablecmds.c:3707
+#: commands/tablecmds.c:3858
 #, c-format
 msgid "verifying table \"%s\""
 msgstr "校验表\"%s\""
 
-#: commands/tablecmds.c:3814
+#: commands/tablecmds.c:3972
 #, c-format
 msgid "column \"%s\" contains null values"
 msgstr "字段 \"%s\" 包含空值"
 
-#: commands/tablecmds.c:3828 commands/tablecmds.c:6645
+#: commands/tablecmds.c:3987 commands/tablecmds.c:6985
 #, c-format
 msgid "check constraint \"%s\" is violated by some row"
 msgstr "一些行违反了检查约束 \"%s\""
 
-#: commands/tablecmds.c:3969
-#, c-format
-msgid "\"%s\" is not a table or index"
-msgstr "\"%s\" 不是一个表或索引"
-
-#: commands/tablecmds.c:3972 commands/trigger.c:188 commands/trigger.c:1079
-#: commands/trigger.c:1183 rewrite/rewriteDefine.c:260
+#: commands/tablecmds.c:4133 commands/trigger.c:226
+#: rewrite/rewriteDefine.c:265 rewrite/rewriteDefine.c:882
 #, c-format
 msgid "\"%s\" is not a table or view"
 msgstr "\"%s\" 不是一个视图或视图"
 
-#: commands/tablecmds.c:3975
+#: commands/tablecmds.c:4136
+#, c-format
+#| msgid "\"%s\" is not a table, view, sequence, or foreign table"
+msgid "\"%s\" is not a table, view, materialized view, or index"
+msgstr "\"%s\" 不是表,视图,物化视图,或者索引"
+
+#: commands/tablecmds.c:4142
+#, c-format
+#| msgid "\"%s\" is not a table or index"
+msgid "\"%s\" is not a table, materialized view, or index"
+msgstr "\"%s\" 不是一个表,物化视图或索引"
+
+#: commands/tablecmds.c:4145
 #, c-format
 msgid "\"%s\" is not a table or foreign table"
 msgstr "\"%s\" 不是表或外部表"
 
-#: commands/tablecmds.c:3978
+#: commands/tablecmds.c:4148
 #, c-format
 msgid "\"%s\" is not a table, composite type, or foreign table"
 msgstr "\"%s\" 不是一个表,组合类型或者外部表"
 
-#: commands/tablecmds.c:3988
+#: commands/tablecmds.c:4151
+#, c-format
+#| msgid "\"%s\" is not a table, view, composite type, or foreign table"
+msgid ""
+"\"%s\" is not a table, materialized view, composite type, or foreign table"
+msgstr "\"%s\" 不是一个表,物化视图,组合类型或者外部表"
+
+#: commands/tablecmds.c:4161
 #, c-format
 msgid "\"%s\" is of the wrong type"
 msgstr "\"%s\" 是一个错误类型"
 
-#: commands/tablecmds.c:4137 commands/tablecmds.c:4144
+#: commands/tablecmds.c:4311 commands/tablecmds.c:4318
 #, c-format
 msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it"
 msgstr "不能修改类型 \"%s\", 因为列 \"%s.%s\"正在使用它"
 
-#: commands/tablecmds.c:4151
+#: commands/tablecmds.c:4325
 #, c-format
 msgid ""
 "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type"
 msgstr "无法修改外部表\"%s\" ,因为列\"%s.%s\"使用它的行类型"
 
-#: commands/tablecmds.c:4158
+#: commands/tablecmds.c:4332
 #, c-format
 msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type"
 msgstr "无法修改表\"%s\" ,因为列\"%s.%s\"使用它的行类型"
 
-#: commands/tablecmds.c:4220
+#: commands/tablecmds.c:4394
 #, c-format
 msgid "cannot alter type \"%s\" because it is the type of a typed table"
 msgstr "无法修改已确定类型表(typed table)中列的类型\"%s\""
 
-#: commands/tablecmds.c:4222
+#: commands/tablecmds.c:4396
 #, c-format
 msgid "Use ALTER ... CASCADE to alter the typed tables too."
 msgstr "使用ALTER .. CASCADE 把类型表一并修改."
 
-#: commands/tablecmds.c:4266
+#: commands/tablecmds.c:4440
 #, c-format
 msgid "type %s is not a composite type"
 msgstr "类型 %s 不是复合类型"
 
-#: commands/tablecmds.c:4292
+#: commands/tablecmds.c:4466
 #, c-format
 msgid "cannot add column to typed table"
 msgstr "无法为已确定类型表(typed table)添加列"
 
-#: commands/tablecmds.c:4354 commands/tablecmds.c:9119
+#: commands/tablecmds.c:4528 commands/tablecmds.c:9727
 #, c-format
 msgid "child table \"%s\" has different type for column \"%s\""
 msgstr "子表 \"%s\" 的字段 \"%s\" 有不同的类型"
 
-#: commands/tablecmds.c:4360 commands/tablecmds.c:9126
+#: commands/tablecmds.c:4534 commands/tablecmds.c:9734
 #, c-format
 msgid "child table \"%s\" has different collation for column \"%s\""
 msgstr "子表 \"%s\" 的字段 \"%s\" 有不同的排序规则"
 
-#: commands/tablecmds.c:4370
+#: commands/tablecmds.c:4544
 #, c-format
 msgid "child table \"%s\" has a conflicting \"%s\" column"
 msgstr "子表\"%s\"有一个冲突列\"%s\""
 
-#: commands/tablecmds.c:4382
+#: commands/tablecmds.c:4556
 #, c-format
 msgid "merging definition of column \"%s\" for child \"%s\""
 msgstr "合并子表 \"%2$s\" 的字段 \"%1$s\" 定义"
 
-#: commands/tablecmds.c:4608
+#: commands/tablecmds.c:4777
 #, c-format
 msgid "column must be added to child tables too"
 msgstr "属性也必需加入到子表中"
 
-#: commands/tablecmds.c:4675
+#: commands/tablecmds.c:4844
 #, c-format
 msgid "column \"%s\" of relation \"%s\" already exists"
 msgstr "关系 \"%s\" 的属性 \"%s\" 已经存在"
 
-#: commands/tablecmds.c:4778 commands/tablecmds.c:4870
-#: commands/tablecmds.c:4915 commands/tablecmds.c:5017
-#: commands/tablecmds.c:5061 commands/tablecmds.c:5140
-#: commands/tablecmds.c:7168 commands/tablecmds.c:7773
+#: commands/tablecmds.c:4948 commands/tablecmds.c:5043
+#: commands/tablecmds.c:5091 commands/tablecmds.c:5195
+#: commands/tablecmds.c:5242 commands/tablecmds.c:5326
+#: commands/tablecmds.c:7503 commands/tablecmds.c:8098
 #, c-format
 msgid "cannot alter system column \"%s\""
 msgstr "不能更改系统字段 \"%s\""
 
-#: commands/tablecmds.c:4814
+#: commands/tablecmds.c:4984
 #, c-format
 msgid "column \"%s\" is in a primary key"
 msgstr "字段 \"%s\" 是一个主键"
 
-#: commands/tablecmds.c:4964
+#: commands/tablecmds.c:5142
 #, c-format
-msgid "\"%s\" is not a table, index, or foreign table"
-msgstr "\"%s\"不是表,索引或外部表"
+#| msgid "\"%s\" is not a table, index, or foreign table"
+msgid "\"%s\" is not a table, materialized view, index, or foreign table"
+msgstr "\"%s\"不是表,物化视图, 索引或外部表"
 
-#: commands/tablecmds.c:4991
+#: commands/tablecmds.c:5169
 #, c-format
 msgid "statistics target %d is too low"
 msgstr "目标统计 %d 太低"
 
-#: commands/tablecmds.c:4999
+#: commands/tablecmds.c:5177
 #, c-format
 msgid "lowering statistics target to %d"
 msgstr "降低目标统计到 %d"
 
-#: commands/tablecmds.c:5121
+#: commands/tablecmds.c:5307
 #, c-format
 msgid "invalid storage type \"%s\""
 msgstr "无效存储类型 \"%s\""
 
-#: commands/tablecmds.c:5152
+#: commands/tablecmds.c:5338
 #, c-format
 msgid "column data type %s can only have storage PLAIN"
 msgstr "字段数据类型 %s 只能存储为明文 (PLAIN)"
 
-#: commands/tablecmds.c:5182
+#: commands/tablecmds.c:5372
 #, c-format
 msgid "cannot drop column from typed table"
 msgstr "无法从已确定类型表(typed table)中删除列"
 
-#: commands/tablecmds.c:5223
+#: commands/tablecmds.c:5413
 #, c-format
 msgid "column \"%s\" of relation \"%s\" does not exist, skipping"
 msgstr "关系 \"%2$s\" 的 列\"%1$s\"不存在"
 
-#: commands/tablecmds.c:5236
+#: commands/tablecmds.c:5426
 #, c-format
 msgid "cannot drop system column \"%s\""
 msgstr "不能删除系统字段 \"%s\""
 
-#: commands/tablecmds.c:5243
+#: commands/tablecmds.c:5433
 #, c-format
 msgid "cannot drop inherited column \"%s\""
 msgstr "不能删除继承字段 \"%s\""
 
-#: commands/tablecmds.c:5472
+#: commands/tablecmds.c:5663
 #, c-format
 msgid ""
 "ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index \"%s\" to \"%s\""
 msgstr ""
 "ALTER TABLE / ADD CONSTRAINT USING INDEX 会把索引 \"%s\" 重命名为 \"%s\""
 
-#: commands/tablecmds.c:5673
+#: commands/tablecmds.c:5866
 #, c-format
 msgid "constraint must be added to child tables too"
 msgstr "必须也要对子表加上约束"
 
-#: commands/tablecmds.c:5763
+#: commands/tablecmds.c:5936
+#, c-format
+msgid "referenced relation \"%s\" is not a table"
+msgstr "关联的关系 \"%s\" 不是一个表"
+
+#: commands/tablecmds.c:5959
 #, c-format
 msgid "constraints on permanent tables may reference only permanent tables"
 msgstr "永久表上的约束只能引用永久表"
 
-#: commands/tablecmds.c:5770
+#: commands/tablecmds.c:5966
 #, c-format
 msgid ""
 "constraints on unlogged tables may reference only permanent or unlogged "
 "tables"
 msgstr "无事务日志的表上的约束只能引用持久表或者无事务日志的表"
 
-#: commands/tablecmds.c:5776
+#: commands/tablecmds.c:5972
 #, c-format
 msgid "constraints on temporary tables may reference only temporary tables"
 msgstr "临时表上的约束只能引用临时表"
 
-#: commands/tablecmds.c:5780
-#, fuzzy, c-format
+#: commands/tablecmds.c:5976
+#, c-format
 msgid ""
 "constraints on temporary tables must involve temporary tables of this session"
-msgstr "临时表上的约束只能引用临时表"
+msgstr "临时表上的约束只能引用该会话里的临时表"
 
-#: commands/tablecmds.c:5841
+#: commands/tablecmds.c:6037
 #, c-format
 msgid "number of referencing and referenced columns for foreign key disagree"
 msgstr "外键的关联数和关联字段不一致"
 
-#: commands/tablecmds.c:5948
+#: commands/tablecmds.c:6144
 #, c-format
 msgid "foreign key constraint \"%s\" cannot be implemented"
 msgstr "无法实现外键约束 \"%s\""
 
-#: commands/tablecmds.c:5951
+#: commands/tablecmds.c:6147
 #, c-format
 msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s."
 msgstr "关键字段 \"%s\" 和 \"%s\" 为混和类型: %s 和 %s."
 
-#: commands/tablecmds.c:6143 commands/tablecmds.c:7007
-#: commands/tablecmds.c:7063
+#: commands/tablecmds.c:6347 commands/tablecmds.c:6470
+#: commands/tablecmds.c:7342 commands/tablecmds.c:7398
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" does not exist"
 msgstr "关系 \"%2$s\" 的 约束\"%1$s\" 不存在"
 
-#: commands/tablecmds.c:6150
+#: commands/tablecmds.c:6353
+#, c-format
+#| msgid ""
+#| "constraint \"%s\" of relation \"%s\" is not a foreign key or check "
+#| "constraint"
+msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint"
+msgstr "关系 \"%2$s\" 的 约束\"%1$s\"不是外键约束"
+
+#: commands/tablecmds.c:6477
 #, c-format
 msgid ""
 "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint"
 msgstr "关系 \"%2$s\" 的 约束\"%1$s\"不是外键,也不是check约束"
 
-#: commands/tablecmds.c:6219
+#: commands/tablecmds.c:6546
 #, c-format
 msgid "constraint must be validated on child tables too"
 msgstr "子表上的约束也必须进行验证"
 
-#: commands/tablecmds.c:6277
+#: commands/tablecmds.c:6608
 #, c-format
 msgid "column \"%s\" referenced in foreign key constraint does not exist"
 msgstr "在外键约束中的关联字段 \"%s\" 不存在"
 
-#: commands/tablecmds.c:6282
+#: commands/tablecmds.c:6613
 #, c-format
 msgid "cannot have more than %d keys in a foreign key"
 msgstr "在一个外键中不能超过 %d 个键"
 
-#: commands/tablecmds.c:6347
+#: commands/tablecmds.c:6678
 #, c-format
 msgid "cannot use a deferrable primary key for referenced table \"%s\""
 msgstr "无法为被引用的表\"%s\"使用可延迟的主键"
 
-#: commands/tablecmds.c:6364
+#: commands/tablecmds.c:6695
 #, c-format
 msgid "there is no primary key for referenced table \"%s\""
 msgstr "关联表 \"%s\" 没有主键"
 
-#: commands/tablecmds.c:6516
+#: commands/tablecmds.c:6760
+#, c-format
+msgid "foreign key referenced-columns list must not contain duplicates"
+msgstr "外键参照列的列表不能有重复值"
+
+#: commands/tablecmds.c:6854
 #, c-format
 msgid "cannot use a deferrable unique constraint for referenced table \"%s\""
 msgstr "无法为被引用的表\"%s\"使用可延迟的唯一性约束"
 
-#: commands/tablecmds.c:6521
+#: commands/tablecmds.c:6859
 #, c-format
 msgid ""
 "there is no unique constraint matching given keys for referenced table \"%s\""
 msgstr "没有唯一约束与关联表 \"%s\" 给定的键值匹配"
 
-#: commands/tablecmds.c:6675
+#: commands/tablecmds.c:7018
 #, c-format
 msgid "validating foreign key constraint \"%s\""
 msgstr "正验证外键约束 \"%s\""
 
-#: commands/tablecmds.c:6969
+#: commands/tablecmds.c:7314
 #, c-format
 msgid "cannot drop inherited constraint \"%s\" of relation \"%s\""
 msgstr "不能删除关系\"%2$s\"的继承约束\"%1$s\""
 
-#: commands/tablecmds.c:7013
+#: commands/tablecmds.c:7348
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping"
 msgstr "关系 \"%2$s\" 的 约束\"%1$s\" 不存在"
 
-#: commands/tablecmds.c:7152
+#: commands/tablecmds.c:7487
 #, c-format
 msgid "cannot alter column type of typed table"
 msgstr "无法修改已确定类型表(typed table)中列的类型"
 
-#: commands/tablecmds.c:7175
+#: commands/tablecmds.c:7510
 #, c-format
 msgid "cannot alter inherited column \"%s\""
 msgstr "不能修改继承字段 \"%s\""
 
-#: commands/tablecmds.c:7221
+#: commands/tablecmds.c:7557
 #, c-format
 msgid "transform expression must not return a set"
 msgstr "转换表达式不能返回一个组合"
 
-#: commands/tablecmds.c:7227
-#, c-format
-msgid "cannot use subquery in transform expression"
-msgstr "在转换表达式中不能使用子查询"
-
-#: commands/tablecmds.c:7231
-#, c-format
-msgid "cannot use aggregate function in transform expression"
-msgstr "转换表达式中不能使用聚合函数"
-
-#: commands/tablecmds.c:7235
-#, c-format
-msgid "cannot use window function in transform expression"
-msgstr "在转换表达式中不能使用窗口函数"
-
-#: commands/tablecmds.c:7254
+#: commands/tablecmds.c:7576
 #, c-format
 msgid "column \"%s\" cannot be cast automatically to type %s"
 msgstr "字段 \"%s\" 不能自动转换成类型 %s"
 
-#: commands/tablecmds.c:7256
+#: commands/tablecmds.c:7578
 #, c-format
 msgid "Specify a USING expression to perform the conversion."
 msgstr "指定一个USING表达式来执行转换"
 
-#: commands/tablecmds.c:7305
+#: commands/tablecmds.c:7627
 #, c-format
 msgid "type of inherited column \"%s\" must be changed in child tables too"
 msgstr "在子表中继承字段 \"%s\" 的类型也必需改变"
 
-#: commands/tablecmds.c:7386
+#: commands/tablecmds.c:7708
 #, c-format
 msgid "cannot alter type of column \"%s\" twice"
 msgstr "不能更改字段 \"%s\" 的类型两遍"
 
-#: commands/tablecmds.c:7422
+#: commands/tablecmds.c:7744
 #, c-format
 msgid "default for column \"%s\" cannot be cast automatically to type %s"
 msgstr "字段 \"%s\" 的默认值不能转换成类型 %s"
 
-#: commands/tablecmds.c:7548
+#: commands/tablecmds.c:7870
 #, c-format
 msgid "cannot alter type of a column used by a view or rule"
 msgstr "不能使用视图或规则改变一个字段的类型"
 
-#: commands/tablecmds.c:7549 commands/tablecmds.c:7568
+#: commands/tablecmds.c:7871 commands/tablecmds.c:7890
 #, c-format
 msgid "%s depends on column \"%s\""
 msgstr "%s 倚赖于字段 \"%s\""
 
-#: commands/tablecmds.c:7567
+#: commands/tablecmds.c:7889
 #, c-format
 msgid "cannot alter type of a column used in a trigger definition"
 msgstr "无法更改触发器定义中的列类型"
 
-#: commands/tablecmds.c:8110
+#: commands/tablecmds.c:8465
 #, c-format
 msgid "cannot change owner of index \"%s\""
 msgstr "无法改变索引\"%s\" 的属主"
 
-#: commands/tablecmds.c:8112
+#: commands/tablecmds.c:8467
 #, c-format
 msgid "Change the ownership of the index's table, instead."
 msgstr "可以改变索引表的所有权"
 
-#: commands/tablecmds.c:8128
+#: commands/tablecmds.c:8483
 #, c-format
 msgid "cannot change owner of sequence \"%s\""
 msgstr "无法改变序列 \"%s\"的属主"
 
-#: commands/tablecmds.c:8130 commands/tablecmds.c:9807
+#: commands/tablecmds.c:8485 commands/tablecmds.c:10644
 #, c-format
 msgid "Sequence \"%s\" is linked to table \"%s\"."
 msgstr "序列 \"%s\"已链接到表\"%s\"."
 
-#: commands/tablecmds.c:8142 commands/tablecmds.c:10387
+#: commands/tablecmds.c:8497 commands/tablecmds.c:11280
 #, c-format
 msgid "Use ALTER TYPE instead."
 msgstr "请使用ALTER TYPE"
 
-#: commands/tablecmds.c:8151 commands/tablecmds.c:10404
+#: commands/tablecmds.c:8506
 #, c-format
 msgid "\"%s\" is not a table, view, sequence, or foreign table"
 msgstr "\"%s\" 不是表,视图,序列或者外部表"
 
-#: commands/tablecmds.c:8479
+#: commands/tablecmds.c:8842
 #, c-format
 msgid "cannot have multiple SET TABLESPACE subcommands"
 msgstr "无法执行多个SET TABLESPACE子命令"
 
-#: commands/tablecmds.c:8548
+#: commands/tablecmds.c:8915
+#, c-format
+#| msgid "\"%s\" is not a table, index, or TOAST table"
+msgid "\"%s\" is not a table, view, materialized view, index, or TOAST table"
+msgstr "\"%s\"不是表,视图, 物化视图, 索引或TOAST表"
+
+#: commands/tablecmds.c:8948 commands/view.c:474
 #, c-format
-msgid "\"%s\" is not a table, index, or TOAST table"
-msgstr "\"%s\"不是表,索引或TOAST表"
+msgid "WITH CHECK OPTION is supported only on automatically updatable views"
+msgstr "WITH CHECK OPTION只能用于自动更新视图上"
 
-#: commands/tablecmds.c:8684
+#: commands/tablecmds.c:9094
 #, c-format
 msgid "cannot move system relation \"%s\""
 msgstr "不能删除系统关系 \"%s\""
 
-#: commands/tablecmds.c:8700
+#: commands/tablecmds.c:9110
 #, c-format
 msgid "cannot move temporary tables of other sessions"
 msgstr "不能在其他会话中删除临时表"
 
-#: commands/tablecmds.c:8892
+#: commands/tablecmds.c:9238
+#, c-format
+msgid "only tables, indexes, and materialized views exist in tablespaces"
+msgstr "只有表、索引以及物化视图存在于表空间当中"
+
+#: commands/tablecmds.c:9250
+#, c-format
+#| msgid "cannot move objects into or out of temporary schemas"
+msgid "cannot move relations in to or out of pg_global tablespace"
+msgstr "无法将关系移入或移出表空间pg_global"
+
+#: commands/tablecmds.c:9341
+#, c-format
+#| msgid "inherited relation \"%s\" is not a table"
+msgid "aborting because lock on relation \"%s\".\"%s\" is not available"
+msgstr "由于关系\"%s\".\"%s\"上的锁无法得到而放弃"
+
+# describe.c:1542
+#: commands/tablecmds.c:9357
+#, c-format
+#| msgid "No matching relations found.\n"
+msgid "no matching relations in tablespace \"%s\" found"
+msgstr "表空间\"%s\"中没有找到符合的关系"
+
+#: commands/tablecmds.c:9418 storage/buffer/bufmgr.c:501
+#, c-format
+#| msgid "invalid page header in block %u of relation %s"
+msgid "invalid page in block %u of relation %s"
+msgstr "关系 \"%2$s\" 中的块 %1$u 存在无效的页"
+
+#: commands/tablecmds.c:9500
 #, c-format
 msgid "cannot change inheritance of typed table"
 msgstr "无法改变已确定类型表(typed table)的继承性"
 
-#: commands/tablecmds.c:8938
-#, fuzzy, c-format
+#: commands/tablecmds.c:9546
+#, c-format
 msgid "cannot inherit to temporary relation of another session"
-msgstr "不能改写其他会话的临时表"
+msgstr "无法继承来自另一会话中的临时关系"
 
-#: commands/tablecmds.c:8992
+#: commands/tablecmds.c:9600
 #, c-format
 msgid "circular inheritance not allowed"
 msgstr "不允许循环继承"
 
-#: commands/tablecmds.c:8993
+#: commands/tablecmds.c:9601
 #, c-format
 msgid "\"%s\" is already a child of \"%s\"."
 msgstr "\"%s\" 已经是 \"%s\"的子表了."
 
-#: commands/tablecmds.c:9001
+#: commands/tablecmds.c:9609
 #, c-format
 msgid "table \"%s\" without OIDs cannot inherit from table \"%s\" with OIDs"
 msgstr "不带有OIDs的表\"%s\"无法从带有OIDs的表\"%s\"继承。"
 
-#: commands/tablecmds.c:9137
+#: commands/tablecmds.c:9745
 #, c-format
 msgid "column \"%s\" in child table must be marked NOT NULL"
 msgstr "在子表中的列\"%s\"必须标识为NOT NULL"
 
-#: commands/tablecmds.c:9153
+#: commands/tablecmds.c:9761
 #, c-format
 msgid "child table is missing column \"%s\""
 msgstr "在子表中没有列\"%s\""
 
-#: commands/tablecmds.c:9236
+#: commands/tablecmds.c:9844
 #, c-format
 msgid "child table \"%s\" has different definition for check constraint \"%s\""
 msgstr "子表 \"%s\" 对于检查约束\"%s\"有不同的定义"
 
-#: commands/tablecmds.c:9244
+#: commands/tablecmds.c:9852
 #, c-format
 msgid ""
 "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s"
 "\""
 msgstr "约束 \"%s\" 与子表中的非继承约束 \"%s\"相冲突"
 
-#: commands/tablecmds.c:9268
+#: commands/tablecmds.c:9876
 #, c-format
 msgid "child table is missing constraint \"%s\""
 msgstr "子表丢失约束\"%s\""
 
-#: commands/tablecmds.c:9348
+#: commands/tablecmds.c:9956
 #, c-format
 msgid "relation \"%s\" is not a parent of relation \"%s\""
 msgstr "关系 \"%s\" 不是关系\"%s\"的父表"
 
-#: commands/tablecmds.c:9565
+#: commands/tablecmds.c:10182
 #, c-format
 msgid "typed tables cannot inherit"
 msgstr "类型表不能继承"
 
-#: commands/tablecmds.c:9596
+#: commands/tablecmds.c:10213
 #, c-format
 msgid "table is missing column \"%s\""
 msgstr "表中没有列\"%s\""
 
-#: commands/tablecmds.c:9606
+#: commands/tablecmds.c:10223
 #, c-format
 msgid "table has column \"%s\" where type requires \"%s\""
 msgstr "表中含有列\"%s\",需要类型\"%s\""
 
-#: commands/tablecmds.c:9615
+#: commands/tablecmds.c:10232
 #, c-format
 msgid "table \"%s\" has different type for column \"%s\""
 msgstr "表\"%s\"中的列\"%s\"带有不同的类型"
 
-#: commands/tablecmds.c:9628
+#: commands/tablecmds.c:10245
 #, c-format
 msgid "table has extra column \"%s\""
 msgstr "表含有多余的列\"%s\""
 
-#: commands/tablecmds.c:9675
+#: commands/tablecmds.c:10295
 #, c-format
 msgid "\"%s\" is not a typed table"
 msgstr "\"%s\" 不是一个类型表"
 
-#: commands/tablecmds.c:9806
+#: commands/tablecmds.c:10478
+#, c-format
+#| msgid "cannot use subquery in index predicate"
+msgid "cannot use non-unique index \"%s\" as replica identity"
+msgstr "不能将非唯一索引\"%s\"用作复制标识"
+
+#: commands/tablecmds.c:10484
+#, c-format
+msgid "cannot use non-immediate index \"%s\" as replica identity"
+msgstr "不能把非立即索引\"%s\"用作复制标识"
+
+#: commands/tablecmds.c:10490
+#, c-format
+#| msgid "cannot use subquery in index predicate"
+msgid "cannot use expression index \"%s\" as replica identity"
+msgstr "不能将表达式索引\"%s\"用作复制标识"
+
+#: commands/tablecmds.c:10496
+#, c-format
+#| msgid "cannot cluster on partial index \"%s\""
+msgid "cannot use partial index \"%s\" as replica identity"
+msgstr "不能将局部索引\"%s\"用作复制标识"
+
+#: commands/tablecmds.c:10502
+#, c-format
+#| msgid "cannot cluster on invalid index \"%s\""
+msgid "cannot use invalid index \"%s\" as replica identity"
+msgstr "不能将无效索引\"%s\"用作复制标识"
+
+#: commands/tablecmds.c:10520
+#, c-format
+msgid ""
+"index \"%s\" cannot be used as replica identity because column \"%s\" is "
+"nullable"
+msgstr "索引 \"%s\" 不能用于复制标识,因为列\"%s\"非空"
+
+#: commands/tablecmds.c:10643
 #, c-format
 msgid "cannot move an owned sequence into another schema"
 msgstr "无法将已分配的序列移动到另一个模式中"
 
-#: commands/tablecmds.c:9897
+#: commands/tablecmds.c:10739
 #, c-format
 msgid "relation \"%s\" already exists in schema \"%s\""
 msgstr "在模式\"%2$s\"中已经存在关系\"%1$s\""
 
-#: commands/tablecmds.c:10371
+#: commands/tablecmds.c:11264
 #, c-format
 msgid "\"%s\" is not a composite type"
 msgstr "\"%s\" 不是组合类型"
 
-#: commands/tablecmds.c:10392
-#, c-format
-msgid "\"%s\" is a foreign table"
-msgstr "\"%s\" 是一个外部表"
-
-#: commands/tablecmds.c:10393
+#: commands/tablecmds.c:11294
 #, c-format
-msgid "Use ALTER FOREIGN TABLE instead."
-msgstr "请使用 ALTER FOREIGN TABLE 命令代替."
+#| msgid "\"%s\" is not a table, view, sequence, or foreign table"
+msgid ""
+"\"%s\" is not a table, view, materialized view, sequence, or foreign table"
+msgstr "\"%s\" 不是表,视图,物化视图,序列或者外部表"
 
-#: commands/tablespace.c:154 commands/tablespace.c:171
-#: commands/tablespace.c:182 commands/tablespace.c:190
-#: commands/tablespace.c:608 storage/file/copydir.c:61
+#: commands/tablespace.c:160 commands/tablespace.c:177
+#: commands/tablespace.c:188 commands/tablespace.c:196
+#: commands/tablespace.c:623 replication/slot.c:930 storage/file/copydir.c:47
 #, c-format
 msgid "could not create directory \"%s\": %m"
 msgstr "无法创建目录 \"%s\": %m"
 
-#: commands/tablespace.c:201
+#: commands/tablespace.c:207
 #, c-format
 msgid "could not stat directory \"%s\": %m"
 msgstr "无法取目录 \"%s\" 状态: %m"
 
-#: commands/tablespace.c:210
+#: commands/tablespace.c:216
 #, c-format
 msgid "\"%s\" exists but is not a directory"
 msgstr "\"%s\" 存在, 但不是一个目录"
 
-#: commands/tablespace.c:240
+#: commands/tablespace.c:247
 #, c-format
 msgid "permission denied to create tablespace \"%s\""
 msgstr "创建表空间 \"%s\" 权限不够"
 
-#: commands/tablespace.c:242
+#: commands/tablespace.c:249
 #, c-format
 msgid "Must be superuser to create a tablespace."
 msgstr "只有超级用户能创建表空间"
 
-#: commands/tablespace.c:258
+#: commands/tablespace.c:265
 #, c-format
 msgid "tablespace location cannot contain single quotes"
 msgstr "表空间路径不能包含单引号"
 
-#: commands/tablespace.c:268
+#: commands/tablespace.c:275
 #, c-format
 msgid "tablespace location must be an absolute path"
 msgstr "表空间路径必须为绝对路径"
 
-#: commands/tablespace.c:279
+#: commands/tablespace.c:286
 #, c-format
 msgid "tablespace location \"%s\" is too long"
 msgstr "表空间路径 \"%s\" 太长"
 
-#: commands/tablespace.c:289 commands/tablespace.c:858
+#: commands/tablespace.c:296 commands/tablespace.c:894
 #, c-format
 msgid "unacceptable tablespace name \"%s\""
 msgstr "不可访问的表空间名字 \"%s\""
 
-#: commands/tablespace.c:291 commands/tablespace.c:859
+#: commands/tablespace.c:298 commands/tablespace.c:895
 #, c-format
 msgid "The prefix \"pg_\" is reserved for system tablespaces."
 msgstr "前缀 \"pg_\" 是保留给系统表空间的."
 
-#: commands/tablespace.c:301 commands/tablespace.c:871
+#: commands/tablespace.c:308 commands/tablespace.c:907
 #, c-format
 msgid "tablespace \"%s\" already exists"
 msgstr "表空间 \"%s\" 已经存在"
 
-#: commands/tablespace.c:371 commands/tablespace.c:534
-#: replication/basebackup.c:151 replication/basebackup.c:851
-#: utils/adt/misc.c:370
+#: commands/tablespace.c:386 commands/tablespace.c:551
+#: replication/basebackup.c:222 replication/basebackup.c:1064
+#: utils/adt/misc.c:365
 #, c-format
 msgid "tablespaces are not supported on this platform"
 msgstr "在此平台上不支持表空间"
 
-#: commands/tablespace.c:409 commands/tablespace.c:842
-#: commands/tablespace.c:909 commands/tablespace.c:1014
-#: commands/tablespace.c:1080 commands/tablespace.c:1218
-#: commands/tablespace.c:1418
+#: commands/tablespace.c:426 commands/tablespace.c:877
+#: commands/tablespace.c:956 commands/tablespace.c:1025
+#: commands/tablespace.c:1158 commands/tablespace.c:1358
 #, c-format
 msgid "tablespace \"%s\" does not exist"
 msgstr "表空间 \"%s\" 不存在"
 
-#: commands/tablespace.c:415
+#: commands/tablespace.c:432
 #, c-format
 msgid "tablespace \"%s\" does not exist, skipping"
 msgstr "表空间 \"%s\" 不存在,跳过"
 
-#: commands/tablespace.c:491
+#: commands/tablespace.c:508
 #, c-format
 msgid "tablespace \"%s\" is not empty"
 msgstr "表空间 \"%s\" 不是空的"
 
-#: commands/tablespace.c:565
+#: commands/tablespace.c:582
 #, c-format
 msgid "directory \"%s\" does not exist"
 msgstr "目录 \"%s\" 不存在"
 
-#: commands/tablespace.c:566
+#: commands/tablespace.c:583
 #, c-format
 msgid "Create this directory for the tablespace before restarting the server."
 msgstr "在重新启动服务器前为这个表空间创建该目录."
 
-#: commands/tablespace.c:571
+#: commands/tablespace.c:588
 #, c-format
 msgid "could not set permissions on directory \"%s\": %m"
 msgstr "无法为目录 \"%s\" 的设置权限: %m"
 
-#: commands/tablespace.c:603
+#: commands/tablespace.c:618
 #, c-format
 msgid "directory \"%s\" already in use as a tablespace"
 msgstr "目录 \"%s\" 以一个表空间的形式正在使用"
 
-#: commands/tablespace.c:618 commands/tablespace.c:779
+#: commands/tablespace.c:642 commands/tablespace.c:764
+#: commands/tablespace.c:777 commands/tablespace.c:801
+#, c-format
+msgid "could not remove directory \"%s\": %m"
+msgstr "无法删除目录 \"%s\": %m"
+
+#: commands/tablespace.c:650 commands/tablespace.c:812
 #, c-format
 msgid "could not remove symbolic link \"%s\": %m"
 msgstr "无法删除符号链接 \"%s\": %m"
 
-#: commands/tablespace.c:628
+#: commands/tablespace.c:661
 #, c-format
 msgid "could not create symbolic link \"%s\": %m"
 msgstr "无法创建符号链接 \"%s\": %m"
 
-#: commands/tablespace.c:694 commands/tablespace.c:704
-#: postmaster/postmaster.c:1177 replication/basebackup.c:260
-#: replication/basebackup.c:557 storage/file/copydir.c:67
-#: storage/file/copydir.c:106 storage/file/fd.c:1664 utils/adt/genfile.c:353
-#: utils/adt/misc.c:270 utils/misc/tzparser.c:323
+#: commands/tablespace.c:725 commands/tablespace.c:735
+#: postmaster/postmaster.c:1284 replication/basebackup.c:349
+#: replication/basebackup.c:667 storage/file/copydir.c:53
+#: storage/file/copydir.c:96 storage/file/fd.c:1951 storage/ipc/dsm.c:300
+#: utils/adt/genfile.c:354 utils/adt/misc.c:267 utils/misc/tzparser.c:339
 #, c-format
 msgid "could not open directory \"%s\": %m"
 msgstr "无法打开目录 \"%s\": %m"
 
-#: commands/tablespace.c:734 commands/tablespace.c:747
-#: commands/tablespace.c:771
-#, c-format
-msgid "could not remove directory \"%s\": %m"
-msgstr "无法删除目录 \"%s\": %m"
-
-#: commands/tablespace.c:1085
+#: commands/tablespace.c:1030
 #, c-format
 msgid "Tablespace \"%s\" does not exist."
 msgstr "表空间 \"%s\" 不存在."
 
-#: commands/tablespace.c:1517
+#: commands/tablespace.c:1457
 #, c-format
 msgid "directories for tablespace %u could not be removed"
 msgstr "表空间 %u 的目录不能被移除"
 
-#: commands/tablespace.c:1519
+#: commands/tablespace.c:1459
 #, c-format
 msgid "You can remove the directories manually if necessary."
 msgstr "如有必要您可以手动移除这些目录."
 
-#: commands/trigger.c:161
+#: commands/trigger.c:175
 #, c-format
 msgid "\"%s\" is a table"
 msgstr "\"%s\" 是一个表"
 
-#: commands/trigger.c:163
+#: commands/trigger.c:177
 #, c-format
 msgid "Tables cannot have INSTEAD OF triggers."
 msgstr "表不能使用INSTEAD OF触发器."
 
-#: commands/trigger.c:174 commands/trigger.c:181
+#: commands/trigger.c:188 commands/trigger.c:195
 #, c-format
 msgid "\"%s\" is a view"
 msgstr "\"%s\" 是一个视图"
 
-#: commands/trigger.c:176
+#: commands/trigger.c:190
 #, c-format
 msgid "Views cannot have row-level BEFORE or AFTER triggers."
 msgstr "视图不能使用行级 BEFORE 或 AFTER 触发器."
 
-#: commands/trigger.c:183
+#: commands/trigger.c:197
 #, c-format
 msgid "Views cannot have TRUNCATE triggers."
 msgstr "视图不能使用 TRUNCATE 触发器."
 
-#: commands/trigger.c:239
+#: commands/trigger.c:205 commands/trigger.c:212 commands/trigger.c:219
+#, c-format
+msgid "\"%s\" is a foreign table"
+msgstr "\"%s\" 是一个外部表"
+
+#: commands/trigger.c:207
+#, c-format
+#| msgid "Tables cannot have INSTEAD OF triggers."
+msgid "Foreign tables cannot have INSTEAD OF triggers."
+msgstr "外部表不能使用INSTEAD OF触发器."
+
+#: commands/trigger.c:214
+#, c-format
+#| msgid "Views cannot have TRUNCATE triggers."
+msgid "Foreign tables cannot have TRUNCATE triggers."
+msgstr "外部表不能使用 TRUNCATE 触发器."
+
+#: commands/trigger.c:221
+#, c-format
+#| msgid "Tables cannot have INSTEAD OF triggers."
+msgid "Foreign tables cannot have constraint triggers."
+msgstr "外部表不能使用约束触发器."
+
+#: commands/trigger.c:284
 #, c-format
 msgid "TRUNCATE FOR EACH ROW triggers are not supported"
 msgstr "不支持使用TRUNCATE FOR EACH ROW触发器"
 
-#: commands/trigger.c:247
+#: commands/trigger.c:292
 #, c-format
 msgid "INSTEAD OF triggers must be FOR EACH ROW"
 msgstr "INSTEAD OF 触发器必须使用 FOR EACH ROW"
 
-#: commands/trigger.c:251
+#: commands/trigger.c:296
 #, c-format
 msgid "INSTEAD OF triggers cannot have WHEN conditions"
 msgstr "INSTEAD OF 触发器不能使用 WHEN 条件子句"
 
-#: commands/trigger.c:255
+#: commands/trigger.c:300
 #, c-format
 msgid "INSTEAD OF triggers cannot have column lists"
 msgstr "INSTEAD OF 触发器不能带有字段列表"
 
-#: commands/trigger.c:299
-#, c-format
-msgid "cannot use subquery in trigger WHEN condition"
-msgstr "在触发器的WHEN条件中无法使用子查询"
-
-#: commands/trigger.c:303
-#, c-format
-msgid "cannot use aggregate function in trigger WHEN condition"
-msgstr "在触发器的WHEN条件中无法使用聚合函数"
-
-#: commands/trigger.c:307
-#, c-format
-msgid "cannot use window function in trigger WHEN condition"
-msgstr "在触发器的WHEN条件中无法使用窗口函数"
-
-#: commands/trigger.c:329 commands/trigger.c:342
+#: commands/trigger.c:359 commands/trigger.c:372
 #, c-format
 msgid "statement trigger's WHEN condition cannot reference column values"
 msgstr "语句级触发器的WHEN条件中不能引用列的值。"
 
-#: commands/trigger.c:334
+#: commands/trigger.c:364
 #, c-format
 msgid "INSERT trigger's WHEN condition cannot reference OLD values"
 msgstr "在INSERT触发器的WHEN条件中不能引用OLD值。"
 
-#: commands/trigger.c:347
+#: commands/trigger.c:377
 #, c-format
 msgid "DELETE trigger's WHEN condition cannot reference NEW values"
 msgstr "在DELETE触发器的WHEN条件中不能引用NEW值。"
 
-#: commands/trigger.c:352
+#: commands/trigger.c:382
 #, c-format
 msgid "BEFORE trigger's WHEN condition cannot reference NEW system columns"
 msgstr "BEFORE类型触发器的WHERE条件不能引用NEW系统列"
 
-#: commands/trigger.c:397
+#: commands/trigger.c:427
 #, c-format
 msgid "changing return type of function %s from \"opaque\" to \"trigger\""
 msgstr "改变函数 %s 的返回类型 \"opaque\" 为 \"trigger\""
 
-#: commands/trigger.c:404
+#: commands/trigger.c:434
 #, c-format
 msgid "function %s must return type \"trigger\""
 msgstr "函数 %s 必需返回 \"trigger\" 类型"
 
-#: commands/trigger.c:515 commands/trigger.c:1259
+#: commands/trigger.c:546 commands/trigger.c:1295
 #, c-format
 msgid "trigger \"%s\" for relation \"%s\" already exists"
 msgstr "对于关系 \"%2$s\" 的 \"%1$s\" 触发器已经存在"
 
-#: commands/trigger.c:800
+#: commands/trigger.c:831
 msgid "Found referenced table's UPDATE trigger."
 msgstr "找到被引用表的UPDATE触发器"
 
-#: commands/trigger.c:801
+#: commands/trigger.c:832
 msgid "Found referenced table's DELETE trigger."
 msgstr "找到被引用表的DELETE触发器"
 
-#: commands/trigger.c:802
+#: commands/trigger.c:833
 msgid "Found referencing table's trigger."
 msgstr "找到正在引用表的触发器"
 
-#: commands/trigger.c:911 commands/trigger.c:927
+#: commands/trigger.c:942 commands/trigger.c:958
 #, c-format
 msgid "ignoring incomplete trigger group for constraint \"%s\" %s"
 msgstr "对于\"%s\" %s,忽略未完成的触发器组"
 
-#: commands/trigger.c:939
+#: commands/trigger.c:970
 #, c-format
 msgid "converting trigger group into constraint \"%s\" %s"
 msgstr "正在将触发器组转换为约束\"%s\" %s"
 
-#: commands/trigger.c:1150 commands/trigger.c:1302 commands/trigger.c:1413
+#: commands/trigger.c:1112 commands/trigger.c:1217
+#, c-format
+#| msgid "\"%s\" is not a table, index, or foreign table"
+msgid "\"%s\" is not a table, view, or foreign table"
+msgstr "\"%s\"不是表,视图或外部表"
+
+#: commands/trigger.c:1183 commands/trigger.c:1343 commands/trigger.c:1459
 #, c-format
 msgid "trigger \"%s\" for table \"%s\" does not exist"
 msgstr "表 \"%2$s\" 的 \"%1$s\" 触发器不存在"
 
-#: commands/trigger.c:1381
+#: commands/trigger.c:1424
 #, c-format
 msgid "permission denied: \"%s\" is a system trigger"
 msgstr "权限不够: \"%s\" 是一个系统触发器"
 
-#: commands/trigger.c:1874
+#: commands/trigger.c:1920
 #, c-format
 msgid "trigger function %u returned null value"
 msgstr "触发器函数 %u 返回了空值"
 
-#: commands/trigger.c:1933 commands/trigger.c:2132 commands/trigger.c:2316
-#: commands/trigger.c:2558
+#: commands/trigger.c:1979 commands/trigger.c:2178 commands/trigger.c:2382
+#: commands/trigger.c:2664
 #, c-format
 msgid "BEFORE STATEMENT trigger cannot return a value"
 msgstr "BEFORE STATEMENT 触发器不能返回一个值"
 
-#: commands/trigger.c:2620 executor/execMain.c:1883
-#: executor/nodeLockRows.c:138 executor/nodeModifyTable.c:367
-#: executor/nodeModifyTable.c:583
+#: commands/trigger.c:2726 executor/nodeModifyTable.c:434
+#: executor/nodeModifyTable.c:712
+#, c-format
+msgid ""
+"tuple to be updated was already modified by an operation triggered by the "
+"current command"
+msgstr "待更新元组值已经被当前命令触发的操作修改了"
+
+#: commands/trigger.c:2727 executor/nodeModifyTable.c:435
+#: executor/nodeModifyTable.c:713
+#, c-format
+msgid ""
+"Consider using an AFTER trigger instead of a BEFORE trigger to propagate "
+"changes to other rows."
+msgstr "考虑使用AFTER触发器代替BEFORE触发器,来改变其它行的值."
+
+#: commands/trigger.c:2741 executor/execMain.c:2059
+#: executor/nodeLockRows.c:165 executor/nodeModifyTable.c:447
+#: executor/nodeModifyTable.c:725
 #, c-format
 msgid "could not serialize access due to concurrent update"
 msgstr "由于同步更新而无法串行访问"
 
-#: commands/trigger.c:4247
+#: commands/trigger.c:4538
 #, c-format
 msgid "constraint \"%s\" is not deferrable"
 msgstr "约束 \"%s\" 不可展缓"
 
-#: commands/trigger.c:4270
+#: commands/trigger.c:4561
 #, c-format
 msgid "constraint \"%s\" does not exist"
 msgstr "约束 \"%s\" 不存在"
 
-#: commands/tsearchcmds.c:113 commands/tsearchcmds.c:912
+#: commands/tsearchcmds.c:114 commands/tsearchcmds.c:671
 #, c-format
 msgid "function %s should return type %s"
 msgstr "函数%s应该返回类型%s的值"
 
-#: commands/tsearchcmds.c:185
+#: commands/tsearchcmds.c:186
 #, c-format
 msgid "must be superuser to create text search parsers"
 msgstr "只有超级用户能创建文本搜索解析器"
 
-#: commands/tsearchcmds.c:233
+#: commands/tsearchcmds.c:234
 #, c-format
 msgid "text search parser parameter \"%s\" not recognized"
 msgstr "未识别文本搜索参数\"%s\""
 
-#: commands/tsearchcmds.c:243
+#: commands/tsearchcmds.c:244
 #, c-format
 msgid "text search parser start method is required"
 msgstr "需要使用文本搜索解析器的start方法"
 
-#: commands/tsearchcmds.c:248
+#: commands/tsearchcmds.c:249
 #, c-format
 msgid "text search parser gettoken method is required"
 msgstr "需要使用文本搜索解析器的gettoken方法"
 
-#: commands/tsearchcmds.c:253
+#: commands/tsearchcmds.c:254
 #, c-format
 msgid "text search parser end method is required"
 msgstr "需要使用文本搜索解析器的end方法"
 
-#: commands/tsearchcmds.c:258
+#: commands/tsearchcmds.c:259
 #, c-format
 msgid "text search parser lextypes method is required"
 msgstr "需要使用文本搜索解析器的lextypes方法"
 
-#: commands/tsearchcmds.c:319
-#, c-format
-msgid "must be superuser to rename text search parsers"
-msgstr "只有超级用户可以重新命名文本搜索解析器"
-
-#: commands/tsearchcmds.c:337
-#, c-format
-msgid "text search parser \"%s\" already exists"
-msgstr "文本搜索解析器\"%s\"已存在"
-
-#: commands/tsearchcmds.c:463
+#: commands/tsearchcmds.c:376
 #, c-format
 msgid "text search template \"%s\" does not accept options"
 msgstr "文本搜索模板 \"%s\"不接受使用选项"
 
 # describe.c:1753
-#: commands/tsearchcmds.c:536
+#: commands/tsearchcmds.c:449
 #, c-format
 msgid "text search template is required"
 msgstr "要求使用文本搜寻模板"
 
-#: commands/tsearchcmds.c:605
-#, c-format
-msgid "text search dictionary \"%s\" already exists"
-msgstr "文本搜索字典\"%s\" 已经存在"
-
-#: commands/tsearchcmds.c:976
+#: commands/tsearchcmds.c:735
 #, c-format
 msgid "must be superuser to create text search templates"
 msgstr "只有超级用户能创建文本搜索模板"
 
-#: commands/tsearchcmds.c:1013
+#: commands/tsearchcmds.c:772
 #, c-format
 msgid "text search template parameter \"%s\" not recognized"
 msgstr "未识别文本搜索模板参数\"%s\""
 
-#: commands/tsearchcmds.c:1023
+#: commands/tsearchcmds.c:782
 #, c-format
 msgid "text search template lexize method is required"
 msgstr "要求使用文本搜索模板词汇方法"
 
-#: commands/tsearchcmds.c:1062
-#, c-format
-msgid "must be superuser to rename text search templates"
-msgstr "只有超级用户可以重新命名文本搜索模板"
-
-#: commands/tsearchcmds.c:1081
-#, c-format
-msgid "text search template \"%s\" already exists"
-msgstr "文本搜索模板\"%s\" 已经存在"
-
-#: commands/tsearchcmds.c:1318
+#: commands/tsearchcmds.c:988
 #, c-format
 msgid "text search configuration parameter \"%s\" not recognized"
 msgstr "未识别文本搜索配置参数\"%s\""
 
-#: commands/tsearchcmds.c:1325
+#: commands/tsearchcmds.c:995
 #, c-format
 msgid "cannot specify both PARSER and COPY options"
 msgstr "不能同时指定PARSER和COPY选项"
 
-#: commands/tsearchcmds.c:1353
+#: commands/tsearchcmds.c:1023
 #, c-format
 msgid "text search parser is required"
 msgstr "需要使用文本搜索解析器"
 
-#: commands/tsearchcmds.c:1463
-#, c-format
-msgid "text search configuration \"%s\" already exists"
-msgstr "文本搜索配置\"%s\"已存在"
-
-#: commands/tsearchcmds.c:1726
+#: commands/tsearchcmds.c:1247
 #, c-format
 msgid "token type \"%s\" does not exist"
 msgstr "符号类型 \"%s\" 不存在"
 
-#: commands/tsearchcmds.c:1948
+#: commands/tsearchcmds.c:1469
 #, c-format
 msgid "mapping for token type \"%s\" does not exist"
 msgstr "符号类型\"%s\"的映射不存在"
 
-#: commands/tsearchcmds.c:1954
+#: commands/tsearchcmds.c:1475
 #, c-format
 msgid "mapping for token type \"%s\" does not exist, skipping"
 msgstr "符号类型\"%s\"的映射不存在, 跳过"
 
-#: commands/tsearchcmds.c:2107 commands/tsearchcmds.c:2218
+#: commands/tsearchcmds.c:1628 commands/tsearchcmds.c:1739
 #, c-format
 msgid "invalid parameter list format: \"%s\""
 msgstr "无效参数列表格式: \"%s\""
 
-#: commands/typecmds.c:180
+#: commands/typecmds.c:184
 #, c-format
 msgid "must be superuser to create a base type"
 msgstr "只有超级用户能创建基类型"
 
-#: commands/typecmds.c:286 commands/typecmds.c:1339
+#: commands/typecmds.c:290 commands/typecmds.c:1371
 #, c-format
 msgid "type attribute \"%s\" not recognized"
 msgstr "类型属性 \"%s\" 不被认可"
 
-#: commands/typecmds.c:340
+#: commands/typecmds.c:344
 #, c-format
 msgid "invalid type category \"%s\": must be simple ASCII"
 msgstr "无效的类型目录 \"%s\": 必须是简单ASCII"
 
-#: commands/typecmds.c:359
+#: commands/typecmds.c:363
 #, c-format
 msgid "array element type cannot be %s"
 msgstr "排列元素类型不能为 %s"
 
-#: commands/typecmds.c:391
+#: commands/typecmds.c:395
 #, c-format
 msgid "alignment \"%s\" not recognized"
 msgstr "alignment \"%s\" 不被认可"
 
-#: commands/typecmds.c:408
+#: commands/typecmds.c:412
 #, c-format
 msgid "storage \"%s\" not recognized"
 msgstr "存储 \"%s\" 不被认可"
 
-#: commands/typecmds.c:419
+#: commands/typecmds.c:423
 #, c-format
 msgid "type input function must be specified"
 msgstr "类型输入函数必需指定"
 
-#: commands/typecmds.c:423
+#: commands/typecmds.c:427
 #, c-format
 msgid "type output function must be specified"
 msgstr "类型输出函数必需指定"
 
-#: commands/typecmds.c:428
+#: commands/typecmds.c:432
 #, c-format
 msgid ""
 "type modifier output function is useless without a type modifier input "
 "function"
 msgstr "如果没有类型修改器的输入函数,那么类型修改器的输出函数没有用"
 
-#: commands/typecmds.c:451
+#: commands/typecmds.c:455
 #, c-format
 msgid "changing return type of function %s from \"opaque\" to %s"
 msgstr "改变函数 %s 的返回类型 \"opaque\" 为 %s"
 
-#: commands/typecmds.c:458
+#: commands/typecmds.c:462
 #, c-format
 msgid "type input function %s must return type %s"
 msgstr "类型输入函数 %s 必需返回类型 %s"
 
-#: commands/typecmds.c:468
+#: commands/typecmds.c:472
 #, c-format
 msgid "changing return type of function %s from \"opaque\" to \"cstring\""
 msgstr "改变函数 %s 的返回类型 \"opaque\" 为 \"cstring\""
 
-#: commands/typecmds.c:475
+#: commands/typecmds.c:479
 #, c-format
 msgid "type output function %s must return type \"cstring\""
 msgstr "类型输出函数 %s 必需返回类型 \"cstring\""
 
-#: commands/typecmds.c:484
+#: commands/typecmds.c:488
 #, c-format
 msgid "type receive function %s must return type %s"
 msgstr "类型接收函数 %s 必需返回类型 %s"
 
-#: commands/typecmds.c:493
+#: commands/typecmds.c:497
 #, c-format
 msgid "type send function %s must return type \"bytea\""
 msgstr "类型发送函数 %s 必需返回类型 \"bytea\""
 
-#: commands/typecmds.c:756
+#: commands/typecmds.c:762
 #, c-format
 msgid "\"%s\" is not a valid base type for a domain"
 msgstr "对于一个域, \"%s\" 不是一个有效的基本类型"
 
-#: commands/typecmds.c:842
+#: commands/typecmds.c:848
 #, c-format
 msgid "multiple default expressions"
 msgstr "多遍默认表达式"
 
-#: commands/typecmds.c:906 commands/typecmds.c:915
+#: commands/typecmds.c:910 commands/typecmds.c:919
 #, c-format
 msgid "conflicting NULL/NOT NULL constraints"
 msgstr "NULL/NOT NULL 约束冲突"
 
-#: commands/typecmds.c:931
+#: commands/typecmds.c:935
 #, c-format
-msgid "CHECK constraints for domains cannot be marked NO INHERIT"
-msgstr "域的CHECK约束不能标为NO INHERIT(不可继承)"
+#| msgid "CHECK constraints for domains cannot be marked NO INHERIT"
+msgid "check constraints for domains cannot be marked NO INHERIT"
+msgstr "域的CHECK约束不能标为NO INHERIT"
 
-#: commands/typecmds.c:940 commands/typecmds.c:2397
+#: commands/typecmds.c:944 commands/typecmds.c:2453
 #, c-format
 msgid "unique constraints not possible for domains"
 msgstr "唯一约束对于域不可用"
 
-#: commands/typecmds.c:946 commands/typecmds.c:2403
+#: commands/typecmds.c:950 commands/typecmds.c:2459
 #, c-format
 msgid "primary key constraints not possible for domains"
 msgstr "不可为域使用主键约束"
 
-#: commands/typecmds.c:952 commands/typecmds.c:2409
+#: commands/typecmds.c:956 commands/typecmds.c:2465
 #, c-format
 msgid "exclusion constraints not possible for domains"
 msgstr "排他约束对于域不可用"
 
-#: commands/typecmds.c:958 commands/typecmds.c:2415
+#: commands/typecmds.c:962 commands/typecmds.c:2471
 #, c-format
 msgid "foreign key constraints not possible for domains"
 msgstr "外键约束对于域不可用"
 
-#: commands/typecmds.c:967 commands/typecmds.c:2424
+#: commands/typecmds.c:971 commands/typecmds.c:2480
 #, c-format
 msgid "specifying constraint deferrability not supported for domains"
 msgstr "所指定的约束延迟对域不支持"
 
-#: commands/typecmds.c:1211 utils/cache/typcache.c:1064
+#: commands/typecmds.c:1243 utils/cache/typcache.c:1071
 #, c-format
 msgid "%s is not an enum"
 msgstr "%s 不是枚举"
 
-#: commands/typecmds.c:1347
+#: commands/typecmds.c:1379
 #, c-format
 msgid "type attribute \"subtype\" is required"
 msgstr "类型属性 \"subtype\" 不是必需的"
 
-#: commands/typecmds.c:1352
+#: commands/typecmds.c:1384
 #, c-format
 msgid "range subtype cannot be %s"
 msgstr "范围子类型不能为 %s"
 
-#: commands/typecmds.c:1371
+#: commands/typecmds.c:1403
 #, c-format
 msgid "range collation specified but subtype does not support collation"
 msgstr "已指定了范围排序规则但是子类型并不支持排序"
 
-#: commands/typecmds.c:1605
+#: commands/typecmds.c:1639
 #, c-format
 msgid "changing argument type of function %s from \"opaque\" to \"cstring\""
 msgstr "改变函数 %s 的参数类型 \"opaque\" 为 \"cstring\""
 
-#: commands/typecmds.c:1656
+#: commands/typecmds.c:1690
 #, c-format
 msgid "changing argument type of function %s from \"opaque\" to %s"
 msgstr "改变函数 %s 的参数类型 \"opaque\" 为 %s"
 
-#: commands/typecmds.c:1755
+#: commands/typecmds.c:1789
 #, c-format
 msgid "typmod_in function %s must return type \"integer\""
 msgstr "typmod_in类型函数 %s 必需返回 \"trigger\" 类型"
 
-#: commands/typecmds.c:1782
+#: commands/typecmds.c:1816
 #, c-format
 msgid "typmod_out function %s must return type \"cstring\""
 msgstr "typmod_out类型函数 %s 必需返回类型 \"cstring\""
 
-#: commands/typecmds.c:1809
+#: commands/typecmds.c:1843
 #, c-format
 msgid "type analyze function %s must return type \"boolean\""
 msgstr "类型 analyze 函数 %s 必需返回类型 \"boolean\""
 
-#: commands/typecmds.c:1855
+#: commands/typecmds.c:1889
 #, c-format
 msgid ""
 "You must specify an operator class for the range type or define a default "
 "operator class for the subtype."
 msgstr "你必须为范围类型指定一个操作符类或者为子类型定义一个默认的操作符类."
 
-#: commands/typecmds.c:1886
+#: commands/typecmds.c:1920
 #, c-format
 msgid "range canonical function %s must return range type"
 msgstr "范围的标准函数%s必须返回范围类型"
 
-#: commands/typecmds.c:1892
+#: commands/typecmds.c:1926
 #, c-format
 msgid "range canonical function %s must be immutable"
 msgstr "范围的标准函数%s必须是不可变的"
 
-#: commands/typecmds.c:1928
+#: commands/typecmds.c:1962
 #, c-format
 msgid "range subtype diff function %s must return type double precision"
 msgstr "范围子类型的diff函数%s必须返回double precision(双精浮点)类型"
 
-#: commands/typecmds.c:1934
+#: commands/typecmds.c:1968
 #, c-format
 msgid "range subtype diff function %s must be immutable"
 msgstr "范围的子类型diff函数%s必须是不可变的"
 
-#: commands/typecmds.c:2240
+#: commands/typecmds.c:2287
 #, c-format
 msgid "column \"%s\" of table \"%s\" contains null values"
 msgstr "表 \"%2$s\" 的字段 \"%1$s\" 包含空值"
 
-#: commands/typecmds.c:2342 commands/typecmds.c:2516
+#: commands/typecmds.c:2396 commands/typecmds.c:2574
 #, c-format
 msgid "constraint \"%s\" of domain \"%s\" does not exist"
 msgstr "域 \"%2$s\" 的 约束\"%1$s\" 不存在"
 
-#: commands/typecmds.c:2346
+#: commands/typecmds.c:2400
 #, c-format
 msgid "constraint \"%s\" of domain \"%s\" does not exist, skipping"
 msgstr "域 \"%2$s\" 的 约束\"%1$s\" 不存在, 跳过"
 
-#: commands/typecmds.c:2522
+#: commands/typecmds.c:2580
 #, c-format
 msgid "constraint \"%s\" of domain \"%s\" is not a check constraint"
 msgstr "域 \"%2$s\" 的 约束\"%1$s\" 不是一个check约束"
 
-#: commands/typecmds.c:2609
+#: commands/typecmds.c:2684
 #, c-format
 msgid ""
 "column \"%s\" of table \"%s\" contains values that violate the new constraint"
 msgstr "表 \"%2$s\" 的字段 \"%1$s\" 包含的值违反了新约束"
 
-#: commands/typecmds.c:2811 commands/typecmds.c:3206 commands/typecmds.c:3356
+#: commands/typecmds.c:2897 commands/typecmds.c:3267 commands/typecmds.c:3425
 #, c-format
 msgid "%s is not a domain"
 msgstr "%s 不是一个域"
 
-#: commands/typecmds.c:2844
+#: commands/typecmds.c:2930
 #, c-format
 msgid "constraint \"%s\" for domain \"%s\" already exists"
 msgstr "域 \"%2$s\" 的约束 \"%1$s\" 已经存在"
 
-#: commands/typecmds.c:2892 commands/typecmds.c:2901
+#: commands/typecmds.c:2980
 #, c-format
 msgid "cannot use table references in domain check constraint"
 msgstr "在域检查约束中不可以使用表关联"
 
-#: commands/typecmds.c:3140 commands/typecmds.c:3218 commands/typecmds.c:3462
+#: commands/typecmds.c:3199 commands/typecmds.c:3279 commands/typecmds.c:3533
 #, c-format
 msgid "%s is a table's row type"
 msgstr "%s 是一个表的记录类型"
 
-#: commands/typecmds.c:3142 commands/typecmds.c:3220 commands/typecmds.c:3464
+#: commands/typecmds.c:3201 commands/typecmds.c:3281 commands/typecmds.c:3535
 #, c-format
 msgid "Use ALTER TABLE instead."
 msgstr "请使用 ALTER TABLE命令代替."
 
-#: commands/typecmds.c:3149 commands/typecmds.c:3227 commands/typecmds.c:3381
+#: commands/typecmds.c:3208 commands/typecmds.c:3288 commands/typecmds.c:3452
 #, c-format
 msgid "cannot alter array type %s"
 msgstr "不能更改数组类型%s"
 
-#: commands/typecmds.c:3151 commands/typecmds.c:3229 commands/typecmds.c:3383
+#: commands/typecmds.c:3210 commands/typecmds.c:3290 commands/typecmds.c:3454
 #, c-format
 msgid "You can alter type %s, which will alter the array type as well."
 msgstr "您能够修改类型%s, 因而也能修改数组类型"
 
-#: commands/typecmds.c:3448
+#: commands/typecmds.c:3519
 #, c-format
 msgid "type \"%s\" already exists in schema \"%s\""
 msgstr "在于模式\"%2$s\"中已存在类型\"%1$s\""
 
-#: commands/user.c:144
+#: commands/user.c:145
 #, c-format
 msgid "SYSID can no longer be specified"
 msgstr "不能再指定SYSID"
 
-#: commands/user.c:276
+#: commands/user.c:277
 #, c-format
 msgid "must be superuser to create superusers"
 msgstr "只有超级用户能创建另一个超级用户"
 
-#: commands/user.c:283
+#: commands/user.c:284
 #, c-format
 msgid "must be superuser to create replication users"
 msgstr "只有超级用户能创建复制用户"
 
-#: commands/user.c:290
+#: commands/user.c:291
 #, c-format
 msgid "permission denied to create role"
 msgstr "创建角色的权限不够"
 
-#: commands/user.c:297 commands/user.c:1091
+#: commands/user.c:298 commands/user.c:1119
 #, c-format
 msgid "role name \"%s\" is reserved"
 msgstr "角色名称 \"%s\" 被保留了"
 
-#: commands/user.c:310 commands/user.c:1085
+#: commands/user.c:311 commands/user.c:1113
 #, c-format
 msgid "role \"%s\" already exists"
 msgstr "角色\"%s\" 已经存在"
 
-#: commands/user.c:616 commands/user.c:818 commands/user.c:898
-#: commands/user.c:1060 commands/variable.c:855 commands/variable.c:927
-#: utils/adt/acl.c:5088 utils/init/miscinit.c:432
+#: commands/user.c:618 commands/user.c:827 commands/user.c:933
+#: commands/user.c:1088 commands/variable.c:797 commands/variable.c:869
+#: utils/adt/acl.c:5121 utils/init/miscinit.c:362
 #, c-format
 msgid "role \"%s\" does not exist"
 msgstr "角色 \"%s\" 不存在"
 
-#: commands/user.c:629 commands/user.c:835 commands/user.c:1325
-#: commands/user.c:1462
+#: commands/user.c:631 commands/user.c:846 commands/user.c:1357
+#: commands/user.c:1503
 #, c-format
 msgid "must be superuser to alter superusers"
 msgstr "只有超级用户能修改超级用户"
 
-#: commands/user.c:636
+#: commands/user.c:638
 #, c-format
 msgid "must be superuser to alter replication users"
 msgstr "只有超级用户能修改复制用户"
 
-#: commands/user.c:652 commands/user.c:843
+#: commands/user.c:654 commands/user.c:854
 #, c-format
 msgid "permission denied"
 msgstr "权限不够"
 
-#: commands/user.c:871
+#: commands/user.c:884
+#, c-format
+#| msgid "must be superuser to alter an operator family"
+msgid "must be superuser to alter settings globally"
+msgstr "只有超级用户可以做全局的alter settings操作"
+
+#: commands/user.c:906
 #, c-format
 msgid "permission denied to drop role"
 msgstr "删除角色的权限不够"
 
-#: commands/user.c:903
+#: commands/user.c:938
 #, c-format
 msgid "role \"%s\" does not exist, skipping"
 msgstr "角色 \"%s\" 不存在"
 
-#: commands/user.c:915 commands/user.c:919
+#: commands/user.c:950 commands/user.c:954
 #, c-format
 msgid "current user cannot be dropped"
 msgstr "当前用户不能被删除"
 
-#: commands/user.c:923
+#: commands/user.c:958
 #, c-format
 msgid "session user cannot be dropped"
 msgstr "会话用户不能被删除"
 
-#: commands/user.c:934
+#: commands/user.c:969
 #, c-format
 msgid "must be superuser to drop superusers"
 msgstr "只有超级用户可以删除超级用户"
 
-#: commands/user.c:957
+#: commands/user.c:985
 #, c-format
 msgid "role \"%s\" cannot be dropped because some objects depend on it"
 msgstr "无法删除\"%s\"因为有其它对象倚赖它"
 
-#: commands/user.c:1075
+#: commands/user.c:1103
 #, c-format
 msgid "session user cannot be renamed"
 msgstr "无法重命名会话用户"
 
-#: commands/user.c:1079
+#: commands/user.c:1107
 #, c-format
 msgid "current user cannot be renamed"
 msgstr "无法重新命名当前用户"
 
-#: commands/user.c:1102
+#: commands/user.c:1130
 #, c-format
 msgid "must be superuser to rename superusers"
 msgstr "只有超级用户可以对超级用户重命名"
 
-#: commands/user.c:1109
+#: commands/user.c:1137
 #, c-format
 msgid "permission denied to rename role"
 msgstr "重命名角色的权限不够"
 
-#: commands/user.c:1130
+#: commands/user.c:1158
 #, c-format
 msgid "MD5 password cleared because of role rename"
 msgstr "由于对角色重命名, 需要清除以MD5方式加密的口令"
 
-#: commands/user.c:1186
+#: commands/user.c:1218
 #, c-format
 msgid "column names cannot be included in GRANT/REVOKE ROLE"
 msgstr "在GRANT/REVOKE ROLE中不能包含列名"
 
-#: commands/user.c:1224
+#: commands/user.c:1256
 #, c-format
 msgid "permission denied to drop objects"
 msgstr "删除对象的权限不足"
 
-#: commands/user.c:1251 commands/user.c:1260
+#: commands/user.c:1283 commands/user.c:1292
 #, c-format
 msgid "permission denied to reassign objects"
 msgstr "重新分配对象的权限不足"
 
-#: commands/user.c:1333 commands/user.c:1470
+#: commands/user.c:1365 commands/user.c:1511
 #, c-format
 msgid "must have admin option on role \"%s\""
 msgstr "在角色\"%s\"上必须有admin选项"
 
-#: commands/user.c:1341
+#: commands/user.c:1382
 #, c-format
 msgid "must be superuser to set grantor"
 msgstr "只有超级用户能设置授权者"
 
-#: commands/user.c:1366
+#: commands/user.c:1407
 #, c-format
 msgid "role \"%s\" is a member of role \"%s\""
 msgstr "角色\"%s\" 是角色\"%s\"的成员"
 
-#: commands/user.c:1381
+#: commands/user.c:1422
 #, c-format
 msgid "role \"%s\" is already a member of role \"%s\""
 msgstr "角色\"%s\" 已经是角色\"%s\"的成员"
 
-#: commands/user.c:1492
+#: commands/user.c:1533
 #, c-format
 msgid "role \"%s\" is not a member of role \"%s\""
 msgstr "角色 \"%s\"不是角色 \"%s\"的成员"
 
-#: commands/vacuum.c:431
+#: commands/vacuum.c:468
 #, c-format
 msgid "oldest xmin is far in the past"
 msgstr "最旧的xmin"
 
-#: commands/vacuum.c:432
+#: commands/vacuum.c:469
 #, c-format
 msgid "Close open transactions soon to avoid wraparound problems."
 msgstr "立即关闭已打开的事物, 以避免 wraparound 问题."
 
-#: commands/vacuum.c:829
+#: commands/vacuum.c:501
+#, c-format
+#| msgid "oldest xmin is far in the past"
+msgid "oldest multixact is far in the past"
+msgstr "最旧的multixact远在过去"
+
+#: commands/vacuum.c:502
+#, c-format
+#| msgid "Close open transactions soon to avoid wraparound problems."
+msgid ""
+"Close open transactions with multixacts soon to avoid wraparound problems."
+msgstr "立即关闭已打开的事务, 以避免重叠问题."
+
+#: commands/vacuum.c:1064
 #, c-format
 msgid "some databases have not been vacuumed in over 2 billion transactions"
 msgstr "一些数据库在超过 20 亿笔事物后没有做清理 (vacuum)."
 
-#: commands/vacuum.c:830
+#: commands/vacuum.c:1065
 #, c-format
 msgid "You might have already suffered transaction-wraparound data loss."
 msgstr "您可能已经遇到了由于事务重叠而造成的数据丢失."
 
-#: commands/vacuum.c:937
+#: commands/vacuum.c:1182
 #, c-format
 msgid "skipping vacuum of \"%s\" --- lock not available"
 msgstr "跳过对 \"%s\" 的压缩处理 --- 无法获取相应锁"
 
-#: commands/vacuum.c:963
+#: commands/vacuum.c:1208
 #, c-format
 msgid "skipping \"%s\" --- only superuser can vacuum it"
 msgstr "忽略 \"%s\" --- 只有超级用户能够清理 (vacuum)"
 
-#: commands/vacuum.c:967
+#: commands/vacuum.c:1212
 #, c-format
 msgid "skipping \"%s\" --- only superuser or database owner can vacuum it"
 msgstr "忽略 \"%s\" --- 只有超级用户或数据库属主能够清理 (vacuum)"
 
-#: commands/vacuum.c:971
+#: commands/vacuum.c:1216
 #, c-format
 msgid "skipping \"%s\" --- only table or database owner can vacuum it"
 msgstr "忽略 \"%s\" --- 只有表或数据库属主能够清理 (vacuum)"
 
-#: commands/vacuum.c:988
+#: commands/vacuum.c:1234
 #, c-format
 msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables"
 msgstr "忽略 \"%s\" --- 无法清理 (vacuum) 非表或者特殊的系统表"
 
-#: commands/vacuumlazy.c:308
+#: commands/vacuumlazy.c:346
 #, c-format
+#| msgid ""
+#| "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n"
+#| "pages: %d removed, %d remain\n"
+#| "tuples: %.0f removed, %.0f remain\n"
+#| "buffer usage: %d hits, %d misses, %d dirtied\n"
+#| "avg read rate: %.3f MiB/s, avg write rate: %.3f MiB/s\n"
+#| "system usage: %s"
 msgid ""
 "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n"
 "pages: %d removed, %d remain\n"
-"tuples: %.0f removed, %.0f remain\n"
+"tuples: %.0f removed, %.0f remain, %.0f are dead but not yet removable\n"
 "buffer usage: %d hits, %d misses, %d dirtied\n"
-"avg read rate: %.3f MiB/s, avg write rate: %.3f MiB/s\n"
+"avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n"
 "system usage: %s"
 msgstr ""
 "自动清理表\"%s.%s.%s\": 索引扫描: %d\n"
 "页:已删除%d页, %d页保留\n"
-"元组: 已删除%.0f,%.0f保留\n"
+"元组: 已删除%.0f,%.0f保留, %.0f已死,但还未被删除\n"
 "缓冲使用:命中%d, %d丢失, %d脏页\n"
-"平均读效率:%.3f MiB/s, 平均写效率: %.3f MiB/s\n"
+"平均读效率:%.3f MB/s, 平均写效率: %.3f MB/s\n"
 "系统使用情况: %s "
 
-#: commands/vacuumlazy.c:639
+#: commands/vacuumlazy.c:680
 #, c-format
 msgid "relation \"%s\" page %u is uninitialized --- fixing"
 msgstr "关系 \"%s\" 页 %u 没有初始化 --- 修复"
 
-#: commands/vacuumlazy.c:1005
+#: commands/vacuumlazy.c:1092
 #, c-format
 msgid "\"%s\": removed %.0f row versions in %u pages"
 msgstr "\"%1$s\": 在%3$u页中已删除%2$.0f行版本号"
 
-#: commands/vacuumlazy.c:1010
+#: commands/vacuumlazy.c:1097
 #, c-format
 msgid ""
 "\"%s\": found %.0f removable, %.0f nonremovable row versions in %u out of %u "
@@ -7980,7 +8679,7 @@ msgid ""
 msgstr ""
 "\"%1$s\": 在超出%5$u页的%4$u中找到可删除版本号%2$.0f, 不可删除的版本号%3$.0f"
 
-#: commands/vacuumlazy.c:1014
+#: commands/vacuumlazy.c:1101
 #, c-format
 msgid ""
 "%.0f dead row versions cannot be removed yet.\n"
@@ -7993,28 +8692,28 @@ msgstr ""
 "%u页当前完全是空的.\n"
 "%s."
 
-#: commands/vacuumlazy.c:1077
+#: commands/vacuumlazy.c:1172
 #, c-format
 msgid "\"%s\": removed %d row versions in %d pages"
 msgstr "\"%1$s\": 在%3$d个页中已删除%2$d记录版本"
 
-#: commands/vacuumlazy.c:1080 commands/vacuumlazy.c:1216
-#: commands/vacuumlazy.c:1393
+#: commands/vacuumlazy.c:1175 commands/vacuumlazy.c:1342
+#: commands/vacuumlazy.c:1514
 #, c-format
 msgid "%s."
 msgstr "%s"
 
-#: commands/vacuumlazy.c:1213
+#: commands/vacuumlazy.c:1339
 #, c-format
 msgid "scanned index \"%s\" to remove %d row versions"
 msgstr "扫描索引\"%s\"来删除%d记录版本"
 
-#: commands/vacuumlazy.c:1257
+#: commands/vacuumlazy.c:1385
 #, c-format
 msgid "index \"%s\" now contains %.0f row versions in %u pages"
 msgstr "索引\"%1$s\"在%3$u个页中包含了行版本号%2$.0f"
 
-#: commands/vacuumlazy.c:1261
+#: commands/vacuumlazy.c:1389
 #, c-format
 msgid ""
 "%.0f index row versions were removed.\n"
@@ -8025,160 +8724,176 @@ msgstr ""
 "%u个索引页已经被删除,%u当前可重用.\n"
 "%s."
 
-#: commands/vacuumlazy.c:1321
+#: commands/vacuumlazy.c:1446
 #, c-format
-msgid ""
-"automatic vacuum of table \"%s.%s.%s\": cannot (re)acquire exclusive lock "
-"for truncate scan"
-msgstr ""
+msgid "\"%s\": stopping truncate due to conflicting lock request"
+msgstr "\"%s\":由于与锁请求相冲突,停止截断操作"
 
-#: commands/vacuumlazy.c:1390
+#: commands/vacuumlazy.c:1511
 #, c-format
 msgid "\"%s\": truncated %u to %u pages"
 msgstr "\"%s\": 将%u截断到%u pages"
 
-#: commands/vacuumlazy.c:1445
+#: commands/vacuumlazy.c:1567
 #, c-format
 msgid "\"%s\": suspending truncate due to conflicting lock request"
-msgstr ""
+msgstr "\"%s\":由于与锁请求相冲突,暂停截断操作"
 
-#: commands/variable.c:161 utils/misc/guc.c:8327
+#: commands/variable.c:162 utils/misc/guc.c:9058
 #, c-format
 msgid "Unrecognized key word: \"%s\"."
 msgstr "未知的关键字: \"%s\"."
 
-#: commands/variable.c:173
+#: commands/variable.c:174
 #, c-format
 msgid "Conflicting \"datestyle\" specifications."
 msgstr "\"datestyle\" 规范冲突."
 
-#: commands/variable.c:312
+#: commands/variable.c:296
 #, c-format
 msgid "Cannot specify months in time zone interval."
 msgstr "在 time zone interval中无法指定月."
 
-#: commands/variable.c:318
+#: commands/variable.c:302
 #, c-format
 msgid "Cannot specify days in time zone interval."
 msgstr "在 time zone interval中无法指定天."
 
-#: commands/variable.c:362 commands/variable.c:485
+#: commands/variable.c:344 commands/variable.c:426
 #, c-format
 msgid "time zone \"%s\" appears to use leap seconds"
 msgstr "时区 \"%s\" 看上去使用了闰秒"
 
-#: commands/variable.c:364 commands/variable.c:487
+#: commands/variable.c:346 commands/variable.c:428
 #, c-format
 msgid "PostgreSQL does not support leap seconds."
 msgstr "PostgreSQL 不支持闰秒"
 
-#: commands/variable.c:551
+#: commands/variable.c:355
+#, c-format
+#| msgid "time zone displacement out of range"
+msgid "UTC timezone offset is out of range."
+msgstr "UTC时区偏移已超出范围"
+
+#: commands/variable.c:493
 #, c-format
 msgid "cannot set transaction read-write mode inside a read-only transaction"
 msgstr "不能在一个只读事物里面设置读写模式"
 
-#: commands/variable.c:558
+#: commands/variable.c:500
 #, c-format
 msgid "transaction read-write mode must be set before any query"
 msgstr "执行任意查询前必须设置事务的读写模式"
 
-#: commands/variable.c:565
+#: commands/variable.c:507
 #, c-format
 msgid "cannot set transaction read-write mode during recovery"
 msgstr "在恢复操作期间不能设置事务的读写模式"
 
-#: commands/variable.c:614
+#: commands/variable.c:556
 #, c-format
 msgid "SET TRANSACTION ISOLATION LEVEL must be called before any query"
 msgstr "SET TRANSACTION ISOLATION LEVEL 必须在任何查询之前调用"
 
-#: commands/variable.c:621
+#: commands/variable.c:563
 #, c-format
 msgid "SET TRANSACTION ISOLATION LEVEL must not be called in a subtransaction"
 msgstr "SET TRANSACTION ISOLATION LEVEL 不能在子事物中调用"
 
-#: commands/variable.c:628 storage/lmgr/predicate.c:1582
+#: commands/variable.c:570 storage/lmgr/predicate.c:1588
 #, c-format
 msgid "cannot use serializable mode in a hot standby"
 msgstr "热备过程中无法使用可串行化模式"
 
-#: commands/variable.c:629
+#: commands/variable.c:571
 #, c-format
 msgid "You can use REPEATABLE READ instead."
 msgstr "您必须使用REPEATABLE READ来代替"
 
-#: commands/variable.c:677
+#: commands/variable.c:619
 #, c-format
 msgid ""
 "SET TRANSACTION [NOT] DEFERRABLE cannot be called within a subtransaction"
 msgstr "SET TRANSACTION [NOT] DEFERRABLE 不能在子事物中调用"
 
-#: commands/variable.c:683
+#: commands/variable.c:625
 #, c-format
 msgid "SET TRANSACTION [NOT] DEFERRABLE must be called before any query"
 msgstr "SET TRANSACTION [NOT] DEFERRABLE 必须在任何查询之前调用"
 
-#: commands/variable.c:765
+#: commands/variable.c:707
 #, c-format
 msgid "Conversion between %s and %s is not supported."
 msgstr "不支持 %s 和 %s 之间的编码转换."
 
-#: commands/variable.c:772
+#: commands/variable.c:714
 #, c-format
 msgid "Cannot change \"client_encoding\" now."
 msgstr "现在无法改变 \"client_encoding\" 值."
 
-#: commands/variable.c:942
+#: commands/variable.c:884
 #, c-format
 msgid "permission denied to set role \"%s\""
 msgstr "设置角色\"%s\"的权限不足"
 
-#: commands/view.c:145
+#: commands/view.c:54
+#, c-format
+#| msgid "invalid value for \"buffering\" option"
+msgid "invalid value for \"check_option\" option"
+msgstr " \"check_option\" 选项的值无效"
+
+#: commands/view.c:55
+#, c-format
+#| msgid "Valid values are \"on\", \"off\", and \"auto\"."
+msgid "Valid values are \"local\" and \"cascaded\"."
+msgstr "有效值为 \"local\" 和 \"cascaded\"."
+
+#: commands/view.c:114
 #, c-format
 msgid "could not determine which collation to use for view column \"%s\""
 msgstr "视图中的列\"%s\"无法确定使用哪种排序规则"
 
-#: commands/view.c:160
+#: commands/view.c:129
 #, c-format
 msgid "view must have at least one column"
 msgstr "视图必需至少有一个字段"
 
-#: commands/view.c:292 commands/view.c:304
+#: commands/view.c:260 commands/view.c:272
 #, c-format
 msgid "cannot drop columns from view"
 msgstr "无法从视图中删除列"
 
-#: commands/view.c:309
+#: commands/view.c:277
 #, c-format
 msgid "cannot change name of view column \"%s\" to \"%s\""
 msgstr "不能将视图字段的名称从\"%s\"改成\"%s\""
 
-#: commands/view.c:317
+#: commands/view.c:285
 #, c-format
 msgid "cannot change data type of view column \"%s\" from %s to %s"
 msgstr "不可以将视图字段 \"%s\" 的数据类型从%s改为%s"
 
-#: commands/view.c:450
+#: commands/view.c:420
 #, c-format
 msgid "views must not contain SELECT INTO"
 msgstr "视力中不能包含SELECT INTO"
 
-#: commands/view.c:463
+#: commands/view.c:433
 #, c-format
 msgid "views must not contain data-modifying statements in WITH"
 msgstr "视图不能包含修改数据的WITH子句"
 
-#: commands/view.c:491
+#: commands/view.c:504
 #, c-format
 msgid "CREATE VIEW specifies more column names than columns"
 msgstr "CREATE VIEW 指定的字段名比实际字段多"
 
-#: commands/view.c:499
+#: commands/view.c:512
 #, c-format
 msgid "views cannot be unlogged because they do not have storage"
 msgstr "视图无法取消事务日志,因为它们没有相应存储"
 
-#: commands/view.c:513
+#: commands/view.c:526
 #, c-format
 msgid "view \"%s\" will be a temporary view"
 msgstr "视图\"%s\" 将是一个临时视图."
@@ -8214,402 +8929,469 @@ msgstr "没有在记录上对游标\"%s\"进行定位"
 msgid "cursor \"%s\" is not a simply updatable scan of table \"%s\""
 msgstr "游标\"%s\"不对表\"%s\"进行可更新扫描"
 
-#: executor/execCurrent.c:231 executor/execQual.c:1136
+#: executor/execCurrent.c:231 executor/execQual.c:1160
 #, c-format
 msgid ""
 "type of parameter %d (%s) does not match that when preparing the plan (%s)"
 msgstr "第%d个参数(%s)的类型与正在执行计划(%s)中的不匹配"
 
-#: executor/execCurrent.c:243 executor/execQual.c:1148
+#: executor/execCurrent.c:243 executor/execQual.c:1172
 #, c-format
 msgid "no value found for parameter %d"
 msgstr "没有找到参数 %d 的值"
 
-#: executor/execMain.c:947
+#: executor/execMain.c:955
 #, c-format
 msgid "cannot change sequence \"%s\""
 msgstr "不可以改变序列 \"%s\""
 
-#: executor/execMain.c:953
+#: executor/execMain.c:961
 #, c-format
 msgid "cannot change TOAST relation \"%s\""
 msgstr "不可以改变 TOAST 关系 \"%s\""
 
-#: executor/execMain.c:963
+#: executor/execMain.c:979 rewrite/rewriteHandler.c:2512
 #, c-format
 msgid "cannot insert into view \"%s\""
 msgstr "无法插入到视图\"%s\""
 
-#: executor/execMain.c:965
+#: executor/execMain.c:981 rewrite/rewriteHandler.c:2515
 #, c-format
 msgid ""
-"You need an unconditional ON INSERT DO INSTEAD rule or an INSTEAD OF INSERT "
-"trigger."
+"To enable inserting into the view, provide an INSTEAD OF INSERT trigger or "
+"an unconditional ON INSERT DO INSTEAD rule."
 msgstr ""
-"你需要一个无条件的 ON INSERT DO INSTEAD 规则或者INSTEAD OF INSERT触发器."
+"启用向视图插入操作, 要提供INSTEAD OF INSERT触发器或者提供一个无条件的 ON "
+"INSERT DO INSTEAD 规则."
 
-#: executor/execMain.c:971
+#: executor/execMain.c:987 rewrite/rewriteHandler.c:2520
 #, c-format
 msgid "cannot update view \"%s\""
 msgstr "无法更新视图\"%s\""
 
-#: executor/execMain.c:973
+#: executor/execMain.c:989 rewrite/rewriteHandler.c:2523
 #, c-format
 msgid ""
-"You need an unconditional ON UPDATE DO INSTEAD rule or an INSTEAD OF UPDATE "
-"trigger."
+"To enable updating the view, provide an INSTEAD OF UPDATE trigger or an "
+"unconditional ON UPDATE DO INSTEAD rule."
 msgstr ""
-"你需要一个无条件的 ON UPDATE DO INSTEAD 规则或者INSTEAD OF UPDATE触发器."
+"启用对视图的更新操作, 需要提供INSTEAD OF UPDATE触发器或者一个无条件的 ON "
+"UPDATE DO INSTEAD 规则."
 
-#: executor/execMain.c:979
+#: executor/execMain.c:995 rewrite/rewriteHandler.c:2528
 #, c-format
 msgid "cannot delete from view \"%s\""
 msgstr "无法删除视图\"%s\""
 
-#: executor/execMain.c:981
+#: executor/execMain.c:997 rewrite/rewriteHandler.c:2531
 #, c-format
 msgid ""
-"You need an unconditional ON DELETE DO INSTEAD rule or an INSTEAD OF DELETE "
-"trigger."
+"To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an "
+"unconditional ON DELETE DO INSTEAD rule."
 msgstr ""
-"你需要一个无条件的 ON DELETE DO INSTEAD 规则或者INSTEAD OF DELETE触发器."
+"启用从视图删除数据, 需要提供一个INSTEAD OF DELETE 触发器或者一个无条件的 ON "
+"DELETE DO INSTEAD 规则."
+
+# describe.c:933
+#: executor/execMain.c:1008
+#, c-format
+#| msgid "Unlogged materialized view \"%s.%s\""
+msgid "cannot change materialized view \"%s\""
+msgstr "不能改变物化视图 \"%s\""
+
+#: executor/execMain.c:1020
+#, c-format
+#| msgid "cannot copy to foreign table \"%s\""
+msgid "cannot insert into foreign table \"%s\""
+msgstr "不能插值到外部表 \"%s\""
+
+#: executor/execMain.c:1026
+#, c-format
+#| msgid "foreign table \"%s\" does not exist"
+msgid "foreign table \"%s\" does not allow inserts"
+msgstr "外部表 \"%s\" 不允许插入操作"
 
-#: executor/execMain.c:991
+#: executor/execMain.c:1033
 #, c-format
-msgid "cannot change foreign table \"%s\""
-msgstr "无法改变外部表 \"%s\""
+#| msgid "cannot change foreign table \"%s\""
+msgid "cannot update foreign table \"%s\""
+msgstr "无法更新外部表 \"%s\""
 
-#: executor/execMain.c:997
+#: executor/execMain.c:1039
+#, c-format
+#| msgid "foreign table \"%s\" does not exist"
+msgid "foreign table \"%s\" does not allow updates"
+msgstr "外部表 \"%s\" 不允许更新"
+
+#: executor/execMain.c:1046
+#, c-format
+#| msgid "cannot copy from foreign table \"%s\""
+msgid "cannot delete from foreign table \"%s\""
+msgstr "不能从外部表 \"%s\" 删除数据"
+
+#: executor/execMain.c:1052
+#, c-format
+#| msgid "foreign table \"%s\" does not exist"
+msgid "foreign table \"%s\" does not allow deletes"
+msgstr "外部表 \"%s\" 不允许删除数据"
+
+#: executor/execMain.c:1063
 #, c-format
 msgid "cannot change relation \"%s\""
 msgstr "无法改变关系 \"%s\""
 
-#: executor/execMain.c:1021
+#: executor/execMain.c:1087
 #, c-format
 msgid "cannot lock rows in sequence \"%s\""
 msgstr "无法锁定序列\"%s\"中的行"
 
-#: executor/execMain.c:1028
+#: executor/execMain.c:1094
 #, c-format
 msgid "cannot lock rows in TOAST relation \"%s\""
 msgstr "无法锁定TOAST 关系 \"%s\"中的行"
 
-#: executor/execMain.c:1035
+#: executor/execMain.c:1101
 #, c-format
 msgid "cannot lock rows in view \"%s\""
 msgstr "无法锁定 \"%s\" 中的行"
 
-#: executor/execMain.c:1042
+#: executor/execMain.c:1109
+#, c-format
+#| msgid "cannot lock rows in view \"%s\""
+msgid "cannot lock rows in materialized view \"%s\""
+msgstr "无法锁定物化视图 \"%s\" 中的行"
+
+#: executor/execMain.c:1116
 #, c-format
 msgid "cannot lock rows in foreign table \"%s\""
 msgstr "无法锁定外部表 \"%s\"中的行"
 
-#: executor/execMain.c:1048
+#: executor/execMain.c:1122
 #, c-format
 msgid "cannot lock rows in relation \"%s\""
 msgstr "无法锁定关系 \"%s\"中的行"
 
-#: executor/execMain.c:1524
+#: executor/execMain.c:1607
 #, c-format
 msgid "null value in column \"%s\" violates not-null constraint"
 msgstr "在字段 \"%s\" 中空值违反了非空约束"
 
-#: executor/execMain.c:1526 executor/execMain.c:1540
+#: executor/execMain.c:1609 executor/execMain.c:1626 executor/execMain.c:1673
 #, c-format
 msgid "Failing row contains %s."
 msgstr "失败, 行包含%s."
 
-#: executor/execMain.c:1538
+#: executor/execMain.c:1624
 #, c-format
 msgid "new row for relation \"%s\" violates check constraint \"%s\""
 msgstr "关系 \"%s\" 的新列违反了检查约束 \"%s\""
 
-#: executor/execQual.c:303 executor/execQual.c:331 executor/execQual.c:3090
-#: utils/adt/array_userfuncs.c:430 utils/adt/arrayfuncs.c:227
-#: utils/adt/arrayfuncs.c:506 utils/adt/arrayfuncs.c:1241
-#: utils/adt/arrayfuncs.c:2914 utils/adt/arrayfuncs.c:4939
+#: executor/execMain.c:1671
+#, c-format
+msgid "new row violates WITH CHECK OPTION for view \"%s\""
+msgstr "新行 违反了  视图 \"%s\"的WITH CHECK OPTION"
+
+#: executor/execQual.c:306 executor/execQual.c:334 executor/execQual.c:3157
+#: utils/adt/array_userfuncs.c:430 utils/adt/arrayfuncs.c:233
+#: utils/adt/arrayfuncs.c:512 utils/adt/arrayfuncs.c:1247
+#: utils/adt/arrayfuncs.c:2933 utils/adt/arrayfuncs.c:4958
 #, c-format
 msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)"
 msgstr "数组的维数(%d)超过最大允许值(%d)"
 
-#: executor/execQual.c:316 executor/execQual.c:344
+#: executor/execQual.c:319 executor/execQual.c:347
 #, c-format
 msgid "array subscript in assignment must not be null"
 msgstr "在分配中的数组下标不能为空"
 
-#: executor/execQual.c:639 executor/execQual.c:4008
+#: executor/execQual.c:642 executor/execQual.c:4078
 #, c-format
 msgid "attribute %d has wrong type"
 msgstr "属性%d的类型错误"
 
-#: executor/execQual.c:640 executor/execQual.c:4009
+#: executor/execQual.c:643 executor/execQual.c:4079
 #, c-format
 msgid "Table has type %s, but query expects %s."
 msgstr "表具有类型%s,但是查询期望类型%s."
 
-#: executor/execQual.c:843 executor/execQual.c:860 executor/execQual.c:1024
-#: executor/nodeModifyTable.c:83 executor/nodeModifyTable.c:93
-#: executor/nodeModifyTable.c:110 executor/nodeModifyTable.c:118
+#: executor/execQual.c:836 executor/execQual.c:853 executor/execQual.c:1050
+#: executor/nodeModifyTable.c:85 executor/nodeModifyTable.c:95
+#: executor/nodeModifyTable.c:112 executor/nodeModifyTable.c:120
 #, c-format
 msgid "table row type and query-specified row type do not match"
 msgstr "表记录类型和查询指定记录不匹配"
 
-#: executor/execQual.c:844
+#: executor/execQual.c:837
 #, c-format
 msgid "Table row contains %d attribute, but query expects %d."
 msgid_plural "Table row contains %d attributes, but query expects %d."
 msgstr[0] "在表记录中包含%d个属性, 但是查询期望%d个属性"
 
-#: executor/execQual.c:861 executor/nodeModifyTable.c:94
+#: executor/execQual.c:854 executor/nodeModifyTable.c:96
 #, c-format
 msgid "Table has type %s at ordinal position %d, but query expects %s."
 msgstr "表在位置%2$d具有类型%1$s,但是查询期望类型%3$s."
 
-#: executor/execQual.c:1025 executor/execQual.c:1622
+#: executor/execQual.c:1051 executor/execQual.c:1647
 #, c-format
 msgid "Physical storage mismatch on dropped attribute at ordinal position %d."
 msgstr "在顺序位置%d上已删除属性与物理存储上的不匹配."
 
-#: executor/execQual.c:1301 parser/parse_func.c:91 parser/parse_func.c:323
-#: parser/parse_func.c:642
+#: executor/execQual.c:1326 parser/parse_func.c:114 parser/parse_func.c:535
+#: parser/parse_func.c:887
 #, c-format
 msgid "cannot pass more than %d argument to a function"
 msgid_plural "cannot pass more than %d arguments to a function"
 msgstr[0] "向函数传递的参数不多于%d个"
 
-#: executor/execQual.c:1490
+#: executor/execQual.c:1515
 #, c-format
 msgid "functions and operators can take at most one set argument"
 msgstr "函数和操作符最多带一组参数"
 
-#: executor/execQual.c:1540
+#: executor/execQual.c:1565
 #, c-format
 msgid ""
 "function returning setof record called in context that cannot accept type "
 "record"
 msgstr "调用用于返回setof记录的函数的环境不能接受使用记录类型"
 
-#: executor/execQual.c:1595 executor/execQual.c:1611 executor/execQual.c:1621
+#: executor/execQual.c:1620 executor/execQual.c:1636 executor/execQual.c:1646
 #, c-format
 msgid "function return row and query-specified return row do not match"
 msgstr "指定查询返回记录和实际函数返回记录不匹配"
 
-#: executor/execQual.c:1596
+#: executor/execQual.c:1621
 #, c-format
 msgid "Returned row contains %d attribute, but query expects %d."
 msgid_plural "Returned row contains %d attributes, but query expects %d."
 msgstr[0] "在所返回的记录中包含了%d个属性,但是查询期望有%d个属性"
 
-#: executor/execQual.c:1612
+#: executor/execQual.c:1637
 #, c-format
 msgid "Returned type %s at ordinal position %d, but query expects %s."
 msgstr "在顺序位置%2$d的返回类型是%1$s, 但是查询期望使用类型%3$s."
 
-#: executor/execQual.c:1848 executor/execQual.c:2273
+#: executor/execQual.c:1879 executor/execQual.c:2310
 #, c-format
 msgid "table-function protocol for materialize mode was not followed"
 msgstr "没有跟随针对物化模式的表函数协议"
 
-#: executor/execQual.c:1868 executor/execQual.c:2280
+#: executor/execQual.c:1899 executor/execQual.c:2317
 #, c-format
 msgid "unrecognized table-function returnMode: %d"
 msgstr "未认可的表函数返回模式 (returnMode): %d"
 
-#: executor/execQual.c:2190
+#: executor/execQual.c:2227
 #, c-format
 msgid "function returning set of rows cannot return null value"
 msgstr "函数返回值为多列时不能返回空值"
 
-#: executor/execQual.c:2247
+#: executor/execQual.c:2284
 #, c-format
 msgid "rows returned by function are not all of the same row type"
 msgstr "函数返回的记录不完全属于相同的记录类型"
 
-#: executor/execQual.c:2438
+#: executor/execQual.c:2499
 #, c-format
 msgid "IS DISTINCT FROM does not support set arguments"
 msgstr "IS DISTINCT FROM 不支持一组参数"
 
-#: executor/execQual.c:2515
+#: executor/execQual.c:2576
 #, c-format
 msgid "op ANY/ALL (array) does not support set arguments"
 msgstr "操作符 ANY/ALL (数组) 不支持设置参数"
 
-#: executor/execQual.c:3068
+#: executor/execQual.c:3135
 #, c-format
 msgid "cannot merge incompatible arrays"
 msgstr "无法合并不兼容的排列"
 
-#: executor/execQual.c:3069
+#: executor/execQual.c:3136
 #, c-format
 msgid ""
 "Array with element type %s cannot be included in ARRAY construct with "
 "element type %s."
 msgstr "元素类型为 %s 的 ARRAY 结构中不能包含带有元素类型为 %s 的数组."
 
-#: executor/execQual.c:3110 executor/execQual.c:3137
-#: utils/adt/arrayfuncs.c:541
+#: executor/execQual.c:3177 executor/execQual.c:3204
+#: utils/adt/arrayfuncs.c:547
 #, c-format
 msgid ""
 "multidimensional arrays must have array expressions with matching dimensions"
 msgstr "多维数组必须有符合维度的数组表达式"
 
-#: executor/execQual.c:3652
+#: executor/execQual.c:3719
 #, c-format
 msgid "NULLIF does not support set arguments"
 msgstr "NULLIF 不支持一组参数"
 
-#: executor/execQual.c:3882 utils/adt/domains.c:127
+#: executor/execQual.c:3949 utils/adt/domains.c:131
 #, c-format
 msgid "domain %s does not allow null values"
 msgstr "域 %s 不允许空值"
 
-#: executor/execQual.c:3911 utils/adt/domains.c:163
+#: executor/execQual.c:3979 utils/adt/domains.c:168
 #, c-format
 msgid "value for domain %s violates check constraint \"%s\""
 msgstr "域 %s 的值违反了检查约束 \"%s\""
 
-#: executor/execQual.c:4404 optimizer/util/clauses.c:570
-#: parser/parse_agg.c:162
+#: executor/execQual.c:4337
+#, c-format
+#| msgid "pointer to pointer is not supported for this data type"
+msgid "WHERE CURRENT OF is not supported for this table type"
+msgstr "这种表类型不能使用WHERE CURRENT OF"
+
+#: executor/execQual.c:4484 parser/parse_agg.c:434 parser/parse_agg.c:464
 #, c-format
 msgid "aggregate function calls cannot be nested"
 msgstr "不允许嵌套调用聚合函数"
 
-#: executor/execQual.c:4442 optimizer/util/clauses.c:644
-#: parser/parse_agg.c:209
+#: executor/execQual.c:4524 parser/parse_agg.c:565
 #, c-format
 msgid "window function calls cannot be nested"
 msgstr "不允许嵌套调用窗口函数"
 
-#: executor/execQual.c:4654
+#: executor/execQual.c:4736
 #, c-format
 msgid "target type is not an array"
 msgstr "目标类型不是一个数组"
 
-#: executor/execQual.c:4768
+#: executor/execQual.c:4851
 #, c-format
 msgid "ROW() column has type %s instead of type %s"
 msgstr "ROW() 列类型 %s 替换为 %s"
 
-#: executor/execQual.c:4903 utils/adt/arrayfuncs.c:3377
-#: utils/adt/rowtypes.c:950
+#: executor/execQual.c:4986 utils/adt/arrayfuncs.c:3396
+#: utils/adt/rowtypes.c:921
 #, c-format
 msgid "could not identify a comparison function for type %s"
 msgstr "无法为类型 %s 确认一个比对函数"
 
-#: executor/execUtils.c:1307
+#: executor/execUtils.c:844
+#, c-format
+#| msgid "Materialized view \"%s.%s\""
+msgid "materialized view \"%s\" has not been populated"
+msgstr "物化视图 \"%s\"未被初始化"
+
+#: executor/execUtils.c:846
+#, c-format
+msgid "Use the REFRESH MATERIALIZED VIEW command."
+msgstr "使用命令 REFRESH MATERIALIZED VIEW."
+
+#: executor/execUtils.c:1324
 #, c-format
 msgid "could not create exclusion constraint \"%s\""
 msgstr "无法创建排他约束\"%s\""
 
-#: executor/execUtils.c:1309
+#: executor/execUtils.c:1326
 #, c-format
 msgid "Key %s conflicts with key %s."
 msgstr "键%s与另外一个键%s冲突"
 
-#: executor/execUtils.c:1314
+#: executor/execUtils.c:1333
 #, c-format
 msgid "conflicting key value violates exclusion constraint \"%s\""
 msgstr "互相冲突的键值违反排他约束\"%s\""
 
-#: executor/execUtils.c:1316
+#: executor/execUtils.c:1335
 #, c-format
 msgid "Key %s conflicts with existing key %s."
 msgstr "键%s与已存在的键%s冲突"
 
-#: executor/functions.c:207
+#: executor/functions.c:225
 #, c-format
 msgid "could not determine actual type of argument declared %s"
 msgstr "无法确定声明为 %s 的参数的实际类型"
 
 #. translator: %s is a SQL statement name
-#: executor/functions.c:480
+#: executor/functions.c:506
 #, c-format
 msgid "%s is not allowed in a SQL function"
 msgstr "%s 不允许在一个 SQL 函数中"
 
 #. translator: %s is a SQL statement name
-#: executor/functions.c:487 executor/spi.c:1269 executor/spi.c:1982
+#: executor/functions.c:513 executor/spi.c:1343 executor/spi.c:2129
 #, c-format
 msgid "%s is not allowed in a non-volatile function"
 msgstr "%s 在一个 non-valatile 函数中是不允许的"
 
-#: executor/functions.c:592
+#: executor/functions.c:638
 #, c-format
 msgid ""
 "could not determine actual result type for function declared to return type "
 "%s"
 msgstr "无法确定实际结果类型为函数声明返回类型 %s"
 
-#: executor/functions.c:1330
+#: executor/functions.c:1402
 #, c-format
 msgid "SQL function \"%s\" statement %d"
 msgstr "SQL 函数 \"%s\" 语句 %d"
 
-#: executor/functions.c:1356
+#: executor/functions.c:1428
 #, c-format
 msgid "SQL function \"%s\" during startup"
 msgstr "SQL 函数 \"%s\" 在启动的时候"
 
-#: executor/functions.c:1515 executor/functions.c:1552
-#: executor/functions.c:1564 executor/functions.c:1677
-#: executor/functions.c:1710 executor/functions.c:1740
+#: executor/functions.c:1587 executor/functions.c:1624
+#: executor/functions.c:1636 executor/functions.c:1749
+#: executor/functions.c:1782 executor/functions.c:1812
 #, c-format
 msgid "return type mismatch in function declared to return %s"
 msgstr "函数返回类型和声明类型 %s 不匹配"
 
-#: executor/functions.c:1517
+#: executor/functions.c:1589
 #, c-format
 msgid ""
 "Function's final statement must be SELECT or INSERT/UPDATE/DELETE RETURNING."
 msgstr "函数的最后语句必须是 SELECT 或 INSERT/UPDATE/DELETE RETURNING."
 
-#: executor/functions.c:1554
+#: executor/functions.c:1626
 #, c-format
 msgid "Final statement must return exactly one column."
 msgstr "最终的语句必须返回一列."
 
-#: executor/functions.c:1566
+#: executor/functions.c:1638
 #, c-format
 msgid "Actual return type is %s."
 msgstr "实际返回类型是 %s."
 
-#: executor/functions.c:1679
+#: executor/functions.c:1751
 #, c-format
 msgid "Final statement returns too many columns."
 msgstr "最终的语句的返回列太多."
 
-#: executor/functions.c:1712
+#: executor/functions.c:1784
 #, c-format
 msgid "Final statement returns %s instead of %s at column %d."
 msgstr "最终语句在第 %3$d 列返回 %1$s 而不是 %2$s"
 
-#: executor/functions.c:1742
+#: executor/functions.c:1814
 #, c-format
 msgid "Final statement returns too few columns."
 msgstr "最终的语句返回的列太少."
 
-#: executor/functions.c:1791
+#: executor/functions.c:1863
 #, c-format
 msgid "return type %s is not supported for SQL functions"
 msgstr "SQL 函数不支持返回类型 %s"
 
-#: executor/nodeAgg.c:1734 executor/nodeWindowAgg.c:1851
+#: executor/nodeAgg.c:1865 executor/nodeWindowAgg.c:2285
 #, c-format
 msgid "aggregate %u needs to have compatible input type and transition type"
 msgstr "聚集 %u 需要有兼容的输入类型和转换类型"
 
-#: executor/nodeHashjoin.c:822 executor/nodeHashjoin.c:852
+#: executor/nodeHashjoin.c:823 executor/nodeHashjoin.c:853
 #, c-format
 msgid "could not rewind hash-join temporary file: %m"
 msgstr "无法卷回 (rewind) 散列联接 (hash-join) 临时文件: %m"
 
-#: executor/nodeHashjoin.c:887 executor/nodeHashjoin.c:893
+#: executor/nodeHashjoin.c:888 executor/nodeHashjoin.c:894
 #, c-format
 msgid "could not write to hash-join temporary file: %m"
 msgstr "无法写入散列联接 (hash-join) 临时文件: %m"
 
-#: executor/nodeHashjoin.c:927 executor/nodeHashjoin.c:937
+#: executor/nodeHashjoin.c:928 executor/nodeHashjoin.c:938
 #, c-format
 msgid "could not read from hash-join temporary file: %m"
 msgstr "无法从散列联接 (hash-join) 临时文件读取: %m"
@@ -8634,2240 +9416,2840 @@ msgstr "RIGHT JOIN 只支持可合并联结条件"
 msgid "FULL JOIN is only supported with merge-joinable join conditions"
 msgstr "只有在合并连接查询条件中才支持FULL JOIN"
 
-#: executor/nodeModifyTable.c:84
+#: executor/nodeModifyTable.c:86
 #, c-format
 msgid "Query has too many columns."
 msgstr "查询中的列太多了"
 
-#: executor/nodeModifyTable.c:111
+#: executor/nodeModifyTable.c:113
 #, c-format
 msgid "Query provides a value for a dropped column at ordinal position %d."
 msgstr "在顺序位置%d上查询为已删除的列提供了一个值"
 
-#: executor/nodeModifyTable.c:119
+#: executor/nodeModifyTable.c:121
 #, c-format
 msgid "Query has too few columns."
 msgstr "查询中的列太少了"
 
-#: executor/nodeSubplan.c:302 executor/nodeSubplan.c:341
-#: executor/nodeSubplan.c:968
+#: executor/nodeSubplan.c:304 executor/nodeSubplan.c:343
+#: executor/nodeSubplan.c:970
 #, c-format
 msgid "more than one row returned by a subquery used as an expression"
 msgstr "作为一个表达式使用的子查询返回了多列"
 
-#: executor/nodeWindowAgg.c:1238
+#: executor/nodeWindowAgg.c:353
+#, c-format
+#| msgid "cast function must not return a set"
+msgid "moving-aggregate transition function must not return null"
+msgstr "移动聚合转换函数不能返回null值"
+
+#: executor/nodeWindowAgg.c:1609
 #, c-format
 msgid "frame starting offset must not be null"
 msgstr "框架(frame)的启动偏移量不能为空"
 
-#: executor/nodeWindowAgg.c:1251
+#: executor/nodeWindowAgg.c:1622
 #, c-format
 msgid "frame starting offset must not be negative"
 msgstr "框架(frame)的启动偏移量不能为负数"
 
-#: executor/nodeWindowAgg.c:1264
+#: executor/nodeWindowAgg.c:1635
 #, c-format
 msgid "frame ending offset must not be null"
 msgstr "框架(frame)的结束偏移量不能为空"
 
-#: executor/nodeWindowAgg.c:1277
+#: executor/nodeWindowAgg.c:1648
 #, c-format
 msgid "frame ending offset must not be negative"
 msgstr "框架(frame)的结束偏移量不能为负数"
 
-#: executor/spi.c:211
+#: executor/spi.c:213
 #, c-format
 msgid "transaction left non-empty SPI stack"
 msgstr "事物剩下非空的 SPI 栈"
 
-#: executor/spi.c:212 executor/spi.c:276
+#: executor/spi.c:214 executor/spi.c:278
 #, c-format
 msgid "Check for missing \"SPI_finish\" calls."
 msgstr "检查是否缺少 \"SPI_finish\" 调用."
 
-#: executor/spi.c:275
+#: executor/spi.c:277
 #, c-format
 msgid "subtransaction left non-empty SPI stack"
 msgstr "子事物剩下非空的 SPI 栈"
 
-#: executor/spi.c:1145
+#: executor/spi.c:1207
 #, c-format
 msgid "cannot open multi-query plan as cursor"
 msgstr "无法作为游标打开多条查询规划"
 
 #. translator: %s is name of a SQL command, eg INSERT
-#: executor/spi.c:1150
+#: executor/spi.c:1212
 #, c-format
 msgid "cannot open %s query as cursor"
 msgstr "无法以游标的形式打开查询%s"
 
-#: executor/spi.c:1246 parser/analyze.c:2205
+#: executor/spi.c:1320
 #, c-format
 msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported"
 msgstr "不支持DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE "
 
-#: executor/spi.c:1247 parser/analyze.c:2206
+#: executor/spi.c:1321 parser/analyze.c:2128
 #, c-format
 msgid "Scrollable cursors must be READ ONLY."
 msgstr "可滚动游标必须为只读."
 
-#: executor/spi.c:2266
+#: executor/spi.c:2419
 #, c-format
 msgid "SQL statement \"%s\""
 msgstr "SQL 语句 \"%s\""
 
-#: foreign/foreign.c:188
+#: foreign/foreign.c:192
 #, c-format
 msgid "user mapping not found for \"%s\""
 msgstr "没有找到对于\"%s\"的用户映射"
 
-#: foreign/foreign.c:344
+#: foreign/foreign.c:348
 #, c-format
 msgid "foreign-data wrapper \"%s\" has no handler"
 msgstr "外部数据封装器 \"%s\"没有处理函数"
 
-#: foreign/foreign.c:521
+#: foreign/foreign.c:573
 #, c-format
 msgid "invalid option \"%s\""
 msgstr "无效选项 \"%s\""
 
-#: foreign/foreign.c:522
+#: foreign/foreign.c:574
 #, c-format
 msgid "Valid options in this context are: %s"
 msgstr "这个环境中有效选项是:%s"
 
-#: lib/stringinfo.c:267
+#: gram.y:956
 #, c-format
-msgid "Cannot enlarge string buffer containing %d bytes by %d more bytes."
-msgstr "无法为包含%d字节的字符串缓冲区扩大%d个更多字节."
+msgid "unrecognized role option \"%s\""
+msgstr "无法识别的角色选项\"%s\""
 
-#: libpq/auth.c:257
+#: gram.y:1238 gram.y:1253
 #, c-format
-msgid "authentication failed for user \"%s\": host rejected"
-msgstr "用户 \"%s\" 认证失败: 主机拒绝"
+msgid "CREATE SCHEMA IF NOT EXISTS cannot include schema elements"
+msgstr "CREATE SCHEMA IF NOT EXISTS不能包含方案(schema)元素"
 
-#: libpq/auth.c:260
+#: gram.y:1398
 #, c-format
-msgid "Kerberos 5 authentication failed for user \"%s\""
-msgstr "用户 \"%s\" Kerberos5 认证失败"
+msgid "current database cannot be changed"
+msgstr "不能改变当前使用的数据库"
 
-#: libpq/auth.c:263
+#: gram.y:1522 gram.y:1537
 #, c-format
-msgid "\"trust\" authentication failed for user \"%s\""
-msgstr "用户 \"%s\" \"trust\" 认证失败"
+msgid "time zone interval must be HOUR or HOUR TO MINUTE"
+msgstr "时区间隔必须为 HOUR 或者 HOUR TO MINUTE"
 
-#: libpq/auth.c:266
+#: gram.y:1542 gram.y:10351 gram.y:12688
 #, c-format
-msgid "Ident authentication failed for user \"%s\""
-msgstr "用户 \"%s\" Ident 认证失败"
+msgid "interval precision specified twice"
+msgstr "两次指定间隔精度"
 
-#: libpq/auth.c:269
+#: gram.y:2511 gram.y:2540
 #, c-format
-msgid "Peer authentication failed for user \"%s\""
-msgstr "对用户\"%s\"的对等认证失败"
+msgid "STDIN/STDOUT not allowed with PROGRAM"
+msgstr "STDIN/STDOUT 不允许与PROGRAM一起使用"
 
-#: libpq/auth.c:273
+#: gram.y:2802 gram.y:2809 gram.y:9589 gram.y:9597
 #, c-format
-msgid "password authentication failed for user \"%s\""
-msgstr "用户 \"%s\" Password 认证失败"
+msgid "GLOBAL is deprecated in temporary table creation"
+msgstr "GLOBAL在临时表中的创建中已经被废弃使用"
 
-#: libpq/auth.c:278
+#: gram.y:3248 utils/adt/ri_triggers.c:310 utils/adt/ri_triggers.c:367
+#: utils/adt/ri_triggers.c:786 utils/adt/ri_triggers.c:1009
+#: utils/adt/ri_triggers.c:1165 utils/adt/ri_triggers.c:1346
+#: utils/adt/ri_triggers.c:1511 utils/adt/ri_triggers.c:1687
+#: utils/adt/ri_triggers.c:1867 utils/adt/ri_triggers.c:2058
+#: utils/adt/ri_triggers.c:2116 utils/adt/ri_triggers.c:2221
+#: utils/adt/ri_triggers.c:2386
 #, c-format
-msgid "GSSAPI authentication failed for user \"%s\""
-msgstr "对于用户\"%s\"的GSSAPI 认证失败"
+msgid "MATCH PARTIAL not yet implemented"
+msgstr "MATCH PARTIAL 仍未实现"
 
-#: libpq/auth.c:281
+#: gram.y:4482
+msgid "duplicate trigger events specified"
+msgstr "重复指定触发器事件"
+
+#: gram.y:4577 parser/parse_utilcmd.c:2569 parser/parse_utilcmd.c:2595
 #, c-format
-msgid "SSPI authentication failed for user \"%s\""
-msgstr "对于用户 \"%s\" 的 SSPI 认证失败"
+msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE"
+msgstr "约束声明 INITIALLY DEFERRED 必须为 DEFERRABLE"
 
-#: libpq/auth.c:284
+#: gram.y:4584
 #, c-format
-msgid "PAM authentication failed for user \"%s\""
-msgstr "ç\94¨æ\88· \"%s\" è®¤è¯\81 PAM å¤±è´¥"
+msgid "conflicting constraint properties"
+msgstr "约æ\9d\9få±\9eæ\80§å\86²çª\81"
 
-#: libpq/auth.c:287
+#: gram.y:4716
 #, c-format
-msgid "LDAP authentication failed for user \"%s\""
-msgstr "对于用户 \"%s\"的LDAP认证失败"
+msgid "CREATE ASSERTION is not yet implemented"
+msgstr "CREATE ASSERTION 仍未实现"
 
-#: libpq/auth.c:290
+#: gram.y:4732
 #, c-format
-msgid "certificate authentication failed for user \"%s\""
-msgstr "用户 \"%s\" 的认证失败"
+msgid "DROP ASSERTION is not yet implemented"
+msgstr "DROP ASSERTION 仍未实现"
 
-#: libpq/auth.c:293
+#: gram.y:5078
 #, c-format
-msgid "RADIUS authentication failed for user \"%s\""
-msgstr "用户 \"%s\" 的RADIUS认证失败"
+msgid "RECHECK is no longer required"
+msgstr "不再需要RECHECK选项了"
 
-#: libpq/auth.c:296
+# describe.c:289
+#: gram.y:5079
 #, c-format
-msgid "authentication failed for user \"%s\": invalid authentication method"
-msgstr "用户 \"%s\" 认证失败: 无效的认证方式"
+msgid "Update your data type."
+msgstr "更改您的数据类型"
 
-#: libpq/auth.c:352
+#: gram.y:6540
 #, c-format
-msgid "connection requires a valid client certificate"
-msgstr "连接中需要一个有效的客户端认证"
+#| msgid "aggregates cannot use named arguments"
+msgid "aggregates cannot have output arguments"
+msgstr "聚合函数不能使用输出参数"
 
-#: libpq/auth.c:394
+#: gram.y:6846 utils/adt/regproc.c:738 utils/adt/regproc.c:779
 #, c-format
-msgid ""
-"pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s"
-msgstr "pg_hba.conf中的记录拒绝来自主机\"%s\",用户 \"%s\",%s的复制连接"
+msgid "missing argument"
+msgstr "缺少参数"
 
-#: libpq/auth.c:396 libpq/auth.c:412 libpq/auth.c:460 libpq/auth.c:478
-msgid "SSL off"
-msgstr "SSL 关闭"
+#: gram.y:6847 utils/adt/regproc.c:739 utils/adt/regproc.c:780
+#, c-format
+msgid "Use NONE to denote the missing argument of a unary operator."
+msgstr "使用 NONE 表示一元操作符缺少的参数."
 
-#: libpq/auth.c:396 libpq/auth.c:412 libpq/auth.c:460 libpq/auth.c:478
-msgid "SSL on"
-msgstr "SSL 开启"
+#: gram.y:8236 gram.y:8254
+#, c-format
+#| msgid "WITH CHECK OPTION is not implemented"
+msgid "WITH CHECK OPTION not supported on recursive views"
+msgstr "递归视图不能使用WITH CHECK OPTION"
 
-#: libpq/auth.c:400
+#: gram.y:9234
 #, c-format
-msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\""
-msgstr "pg_hba.conf 记录拒绝来自主机\"%s\", 用户\"%s\"的复制连接"
+msgid "number of columns does not match number of values"
+msgstr "列的数量与值的数量不匹配"
 
-#: libpq/auth.c:409
+#: gram.y:9693
 #, c-format
-msgid ""
-"pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s"
-"\", %s"
-msgstr ""
-"pg_hba.conf 记录拒绝来自主机\"%s\", 用户\"%s\", 数据库\"%s\", %s的复制连接"
+msgid "LIMIT #,# syntax is not supported"
+msgstr "不支持 LIMIT #,# 语法"
 
-#: libpq/auth.c:416
+#: gram.y:9694
 #, c-format
-msgid ""
-"pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\""
-msgstr "pg_hba.conf 记录拒绝来自主机\"%s\", 用户\"%s\", 数据库\"%s\"的复制连接"
+msgid "Use separate LIMIT and OFFSET clauses."
+msgstr "LIMIT和OFFSET子句要分隔开"
 
-#: libpq/auth.c:445
+#: gram.y:9882 gram.y:9907
 #, c-format
-msgid "Client IP address resolved to \"%s\", forward lookup matches."
-msgstr "客户端IP地址解析为 \"%s\", 与转发查找结果相匹配."
+msgid "VALUES in FROM must have an alias"
+msgstr "FROM中的VALUES子句必须有一个别名"
 
-#: libpq/auth.c:447
+#: gram.y:9883 gram.y:9908
 #, c-format
-msgid "Client IP address resolved to \"%s\", forward lookup not checked."
-msgstr "客户端IP地址解析为 \"%s\", 转发查找结果没有检查."
+msgid "For example, FROM (VALUES ...) [AS] foo."
+msgstr "例如, FROM (SELECT ...) [AS] foo."
 
-#: libpq/auth.c:449
+#: gram.y:9888 gram.y:9913
 #, c-format
-msgid "Client IP address resolved to \"%s\", forward lookup does not match."
-msgstr "客户端IP地址解析为 \"%s\", 与转发查找结果不匹配."
+msgid "subquery in FROM must have an alias"
+msgstr "FROM 中的子查询必须有一个别名"
 
-#: libpq/auth.c:458
+#: gram.y:9889 gram.y:9914
 #, c-format
-msgid ""
-"no pg_hba.conf entry for replication connection from host \"%s\", user \"%s"
-"\", %s"
-msgstr "没有来自主机 \"%s\", 用户\"%s\", %s的复制连接的pg_hba.conf记录"
+msgid "For example, FROM (SELECT ...) [AS] foo."
+msgstr "例如, FROM (SELECT ...) [AS] foo."
 
-#: libpq/auth.c:465
+#: gram.y:10477
 #, c-format
-msgid ""
-"no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\""
-msgstr "没有来自主机 \"%s\", 用户\"%s\"的复制连接的pg_hba.conf记录"
+msgid "precision for type float must be at least 1 bit"
+msgstr "浮点类型的精确度必须至少 1 位"
 
-#: libpq/auth.c:475
+#: gram.y:10486
 #, c-format
-msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s"
-msgstr ""
-"没有用于主机 \"%s\", 用户 \"%s\", 数据库 \"%s\", %s 的 pg_hba.conf 记录"
+msgid "precision for type float must be less than 54 bits"
+msgstr "浮点类型的精确度必须小于 54 位"
 
-#: libpq/auth.c:483
+#: gram.y:10952
 #, c-format
-msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\""
-msgstr "没有用于主机 \"%s\", 用户 \"%s\", 数据库 \"%s\" 的 pg_hba.conf 记录"
+msgid "wrong number of parameters on left side of OVERLAPS expression"
+msgstr "OVERLAPS 表达式左边的参数个数不对"
 
-#: libpq/auth.c:535 libpq/hba.c:1180
+#: gram.y:10957
 #, c-format
-msgid ""
-"MD5 authentication is not supported when \"db_user_namespace\" is enabled"
-msgstr "当启用 \"db_user_namespace\" 时不支持 MD5 认证"
+msgid "wrong number of parameters on right side of OVERLAPS expression"
+msgstr "OVERLAPS 表达式右边的参数个数不对"
 
-#: libpq/auth.c:659
+#: gram.y:11141
 #, c-format
-msgid "expected password response, got message type %d"
-msgstr "æ\9c\9fæ\9c\9bå¾\97å\88°å\8f£ä»¤å\9b\9eåº\94,ä½\86æ\98¯å¾\97å\88°äº\86æ¶\88æ\81¯ç±»å\9e\8b%d."
+msgid "UNIQUE predicate is not yet implemented"
+msgstr "没æ\9c\89å®\9eç\8e°UNIQUEè°\93è¯\8d"
 
-#: libpq/auth.c:687
+#: gram.y:11428
 #, c-format
-msgid "invalid password packet size"
-msgstr "无效的口令包尺寸"
+#| msgid "multiple ORDER BY clauses not allowed"
+msgid "cannot use multiple ORDER BY clauses with WITHIN GROUP"
+msgstr "WITHIN GROUP不允许多个 ORDER BY 子句"
 
-#: libpq/auth.c:691
+#: gram.y:11433
 #, c-format
-msgid "received password packet"
-msgstr "接收到口令包"
+msgid "cannot use DISTINCT with WITHIN GROUP"
+msgstr "不能将 DISTINCT 和 WITHIN GROUP混在一起使用"
 
-#: libpq/auth.c:749
+#: gram.y:11438
 #, c-format
-msgid "Kerberos initialization returned error %d"
-msgstr "Kerberos 初始化返回错误 %d"
+msgid "cannot use VARIADIC with WITHIN GROUP"
+msgstr "不能将 VARIADIC 和 WITHIN GROUP在一起混用"
 
-#: libpq/auth.c:759
+#: gram.y:11944
 #, c-format
-msgid "Kerberos keytab resolving returned error %d"
-msgstr "Kerberos keytab 解析返回错误 %d"
+msgid "RANGE PRECEDING is only supported with UNBOUNDED"
+msgstr "UNBOUNDED不支持RANGE PRECEDING"
 
-#: libpq/auth.c:783
+#: gram.y:11950
 #, c-format
-msgid "Kerberos sname_to_principal(\"%s\", \"%s\") returned error %d"
-msgstr "Kerberos sname_to_principal(\"%s\", \"%s\") 返回错误 %d"
+msgid "RANGE FOLLOWING is only supported with UNBOUNDED"
+msgstr "UNBOUNDED不支持RANGE FOLLOWING"
 
-#: libpq/auth.c:828
+#: gram.y:11977 gram.y:12000
 #, c-format
-msgid "Kerberos recvauth returned error %d"
-msgstr "Kerberos recvauth 返回错误 %d"
+msgid "frame start cannot be UNBOUNDED FOLLOWING"
+msgstr "框架的起始位置不能被执行UNBOUNDED FOLLOWING操作."
 
-#: libpq/auth.c:851
+#: gram.y:11982
 #, c-format
-msgid "Kerberos unparse_name returned error %d"
-msgstr "Kerberos unparse_name 返回错误 %d"
+msgid "frame starting from following row cannot end with current row"
+msgstr "从后面记录启动的窗口框架(frame)不能以当前记录结束"
 
-#: libpq/auth.c:999
+#: gram.y:12005
 #, c-format
-msgid "GSSAPI is not supported in protocol version 2"
-msgstr "在协议版本2中不支持使用GSSAPI"
+msgid "frame end cannot be UNBOUNDED PRECEDING"
+msgstr "框架的结束位置不能被执行UNBOUNDED FOLLOWING操作."
 
-#: libpq/auth.c:1054
+#: gram.y:12011
 #, c-format
-msgid "expected GSS response, got message type %d"
-msgstr "期望GSS回应,但是得到了信息类型%d"
-
-#: libpq/auth.c:1117
-msgid "accepting GSS security context failed"
-msgstr "接收GSS安全环境失败"
-
-#: libpq/auth.c:1143
-msgid "retrieving GSS user name failed"
-msgstr "获取GSS用户名失败"
+msgid "frame starting from current row cannot have preceding rows"
+msgstr "从当前记录启动的窗口框架(frame)不能拥有正在处理的记录"
 
-#: libpq/auth.c:1260
+#: gram.y:12018
 #, c-format
-msgid "SSPI is not supported in protocol version 2"
-msgstr "在协议版本2中不支持使用SSPI"
+msgid "frame starting from following row cannot have preceding rows"
+msgstr "从后面记录启动的窗口框架(frame)不能拥有正在处理的记录"
 
-#: libpq/auth.c:1275
-msgid "could not acquire SSPI credentials"
-msgstr "无法获得同等 (peer) 证书: %m"
+#: gram.y:12657
+#, c-format
+msgid "type modifier cannot have parameter name"
+msgstr "类型修改器不能有参数名称"
 
-#: libpq/auth.c:1292
+#: gram.y:12663
 #, c-format
-msgid "expected SSPI response, got message type %d"
-msgstr "期望SSPI回应,但是得到了消息类型%d"
+#| msgid "type modifier cannot have parameter name"
+msgid "type modifier cannot have ORDER BY"
+msgstr "类型修改器不能有ORDER BY"
 
-#: libpq/auth.c:1364
-msgid "could not accept SSPI security context"
-msgstr "无法访问SSPI安全环境"
+#: gram.y:13284 gram.y:13459
+msgid "improper use of \"*\""
+msgstr "对\"*\"的使用不正确"
 
-#: libpq/auth.c:1426
-msgid "could not get token from SSPI security context"
-msgstr "无法从SSPI安全环境中获取令牌(token)"
+#: gram.y:13422 gram.y:13439 tsearch/spell.c:518 tsearch/spell.c:535
+#: tsearch/spell.c:552 tsearch/spell.c:569 tsearch/spell.c:591
+#, c-format
+msgid "syntax error"
+msgstr "语法错误"
 
-#: libpq/auth.c:1670
+#: gram.y:13523
 #, c-format
-msgid "could not create socket for Ident connection: %m"
-msgstr "无法为 Ident 联接创建套接字: %m"
+msgid ""
+"an ordered-set aggregate with a VARIADIC direct argument must have one "
+"VARIADIC aggregated argument of the same data type"
+msgstr "带可变直接参数的有序集聚集函数必须有一个 相同类型的VARIADIC 聚集参数 "
 
-#: libpq/auth.c:1685
+#: gram.y:13560
 #, c-format
-msgid "could not bind to local address \"%s\": %m"
-msgstr "无法绑定到本地地址 \"%s\": %m"
+msgid "multiple ORDER BY clauses not allowed"
+msgstr "不允许多个 ORDER BY 子句"
 
-#: libpq/auth.c:1697
+#: gram.y:13571
 #, c-format
-msgid "could not connect to Ident server at address \"%s\", port %s: %m"
-msgstr "无法联接到地址为 \"%s\", 端口为 %s 的 Ident 服务器: %m"
+msgid "multiple OFFSET clauses not allowed"
+msgstr "不允许多个 OFFSET 子句"
 
-#: libpq/auth.c:1717
+#: gram.y:13580
 #, c-format
-msgid "could not send query to Ident server at address \"%s\", port %s: %m"
-msgstr "无法发送查询到地址为 \"%s\", 端口为 %s 的 Ident 服务器: %m"
+msgid "multiple LIMIT clauses not allowed"
+msgstr "不允许多个 LIMIT 子句"
 
-#: libpq/auth.c:1732
+#: gram.y:13589
 #, c-format
-msgid ""
-"could not receive response from Ident server at address \"%s\", port %s: %m"
-msgstr "无法从地址为 \"%s\", 端口为 %s 的 Ident 服务器接收应答: %m"
+msgid "multiple WITH clauses not allowed"
+msgstr "不允许使用多个WITH子句"
 
-#: libpq/auth.c:1742
+#: gram.y:13729
 #, c-format
-msgid "invalidly formatted response from Ident server: \"%s\""
-msgstr "从 Ident 服务器接收的无效格式应答: \"%s\""
+msgid "OUT and INOUT arguments aren't allowed in TABLE functions"
+msgstr "在TABLE函数中不允许使用OUT或INOUT模式的参数"
 
-# fe-auth.c:640
-#: libpq/auth.c:1781
+#: gram.y:13830
 #, c-format
-msgid "peer authentication is not supported on this platform"
-msgstr "对等认证在这个平台上不支持"
+msgid "multiple COLLATE clauses not allowed"
+msgstr "不允许多个 COLLATE 子句"
 
-#: libpq/auth.c:1785
+#. translator: %s is CHECK, UNIQUE, or similar
+#: gram.y:13868 gram.y:13881
 #, c-format
-msgid "could not get peer credentials: %m"
-msgstr "无法获得同等 (peer) 证书: %m"
+msgid "%s constraints cannot be marked DEFERRABLE"
+msgstr "%s约束不能标为DEFERRABLE"
 
-#: libpq/auth.c:1794
+#. translator: %s is CHECK, UNIQUE, or similar
+#: gram.y:13894
 #, c-format
-msgid "local user with ID %d does not exist"
-msgstr "ID 为 %d 的本地用户不存在"
+msgid "%s constraints cannot be marked NOT VALID"
+msgstr "%s约束不能标为NOT VALID"
 
-#: libpq/auth.c:1877 libpq/auth.c:2149 libpq/auth.c:2509
+#. translator: %s is CHECK, UNIQUE, or similar
+#: gram.y:13907
 #, c-format
-msgid "empty password returned by client"
-msgstr "客户端返回了空口令"
+msgid "%s constraints cannot be marked NO INHERIT"
+msgstr "%s约束不能标为NO INHERIT"
 
-#: libpq/auth.c:1887
+#: guc-file.l:263
 #, c-format
-msgid "error from underlying PAM layer: %s"
-msgstr "æ\9d¥è\87ª PAM å±\82ä¸\8bé\9d¢ç\9a\84é\94\99误: %s"
+msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %u"
+msgstr "æ\9cªè®¤å\8f¯ç\9a\84é\85\8dç½®å\8f\82æ\95° \"%s\", æ\96\87ä»¶\"%s\", è¡\8c%u"
 
-#: libpq/auth.c:1956
+#: guc-file.l:299 utils/misc/guc.c:5650 utils/misc/guc.c:5833
+#: utils/misc/guc.c:5919 utils/misc/guc.c:6005 utils/misc/guc.c:6109
+#: utils/misc/guc.c:6200
 #, c-format
-msgid "could not create PAM authenticator: %s"
-msgstr "无法创建 PAM 类型器: %s"
+msgid "parameter \"%s\" cannot be changed without restarting the server"
+msgstr "在没有启动服务器的情况下,不能改变参数 \"%s\" "
 
-#: libpq/auth.c:1967
+#: guc-file.l:327
 #, c-format
-msgid "pam_set_item(PAM_USER) failed: %s"
-msgstr "pam_set_item(PAM_USER) 失败: %s"
+msgid "parameter \"%s\" removed from configuration file, reset to default"
+msgstr "参数\"%s\"已从配置文件中删除,重新设置为缺省"
 
-#: libpq/auth.c:1978
+#: guc-file.l:389
 #, c-format
-msgid "pam_set_item(PAM_CONV) failed: %s"
-msgstr "pam_set_item(PAM_CONV) 失败: %s"
+msgid "parameter \"%s\" changed to \"%s\""
+msgstr "参数 \"%s\"被改为\"%s\""
 
-#: libpq/auth.c:1989
+#: guc-file.l:424
 #, c-format
-msgid "pam_authenticate failed: %s"
-msgstr "pam_authenticate 失败: %s"
+msgid "configuration file \"%s\" contains errors"
+msgstr "配置文件 \"%s\" 有错"
 
-#: libpq/auth.c:2000
+#: guc-file.l:429
 #, c-format
-msgid "pam_acct_mgmt failed: %s"
-msgstr "pam_acct_mgmt 失败: %s"
+msgid ""
+"configuration file \"%s\" contains errors; unaffected changes were applied"
+msgstr "配置文件 \"%s\" 有错; 使用了不受影响的内容变动"
 
-#: libpq/auth.c:2011
+#: guc-file.l:434
 #, c-format
-msgid "could not release PAM authenticator: %s"
-msgstr "无法释放 PAM 类型器: %s"
+msgid "configuration file \"%s\" contains errors; no changes were applied"
+msgstr "配置文件 \"%s\" 有错; 没有内容变动"
 
-#: libpq/auth.c:2044 libpq/auth.c:2048
+#: guc-file.l:504
 #, c-format
-msgid "could not initialize LDAP: error code %d"
-msgstr "无法初始化LDAP: 错误代码%d"
+msgid ""
+"could not open configuration file \"%s\": maximum nesting depth exceeded"
+msgstr "无法打开配置文件 \"%s\": 已超过最大的嵌套深度"
 
-#: libpq/auth.c:2058
+#: guc-file.l:517 libpq/hba.c:1789
 #, c-format
-msgid "could not set LDAP protocol version: error code %d"
-msgstr "无法设置LDAP协议版本: 错误代码 %d"
+msgid "could not open configuration file \"%s\": %m"
+msgstr "无法打开配置文件 \"%s\": %m"
 
-#: libpq/auth.c:2087
+#: guc-file.l:524
 #, c-format
-msgid "could not load wldap32.dll"
-msgstr "无法加载wldap32.dll"
+msgid "skipping missing configuration file \"%s\""
+msgstr "忽略丢失的配置文件\"%s\""
 
-#: libpq/auth.c:2095
+#: guc-file.l:763
 #, c-format
-msgid "could not load function _ldap_start_tls_sA in wldap32.dll"
-msgstr "无法加载在wldap32.dll中的函数_ldap_start_tls_sA"
+msgid "syntax error in file \"%s\" line %u, near end of line"
+msgstr "在文件 \"%s\" 第 %u 行, 行尾附近语法错误"
 
-#: libpq/auth.c:2096
+#: guc-file.l:768
 #, c-format
-msgid "LDAP over SSL is not supported on this platform."
-msgstr "å\9c¨æ­¤å¹³å\8f°ä¸\8aä¸\8dæ\94¯æ\8c\81å\9c¨SSLè¿\9eæ\8e¥ä¸\8aç\9a\84LDAP"
+msgid "syntax error in file \"%s\" line %u, near token \"%s\""
+msgstr "å\9c¨æ\96\87ä»¶ \"%s\" ç¬¬ %u è¡\8c, è®°å\8f· \"%s\" é\99\84è¿\91语æ³\95é\94\99误"
 
-#: libpq/auth.c:2111
+#: guc-file.l:784
 #, c-format
-msgid "could not start LDAP TLS session: error code %d"
-msgstr "无法启动LDAP TLS会话: 错误码 %d"
+msgid "too many syntax errors found, abandoning file \"%s\""
+msgstr "发现太多的语法错误, 放弃文件 \"%s\""
 
-#: libpq/auth.c:2133
+#: guc-file.l:829
 #, c-format
-msgid "LDAP server not specified"
-msgstr "没有指定LDAP服务器"
+#| msgid "could not open configuration file \"%s\": %m"
+msgid "could not open configuration directory \"%s\": %m"
+msgstr "无法打开配置文件目录 \"%s\": %m"
 
-#: libpq/auth.c:2185
+#: lib/stringinfo.c:259
 #, c-format
-msgid "invalid character in user name for LDAP authentication"
-msgstr "在需要进行LDAP认证的用户名中出现无效字符"
+msgid "Cannot enlarge string buffer containing %d bytes by %d more bytes."
+msgstr "无法为包含%d字节的字符串缓冲区扩大%d个更多字节."
 
-#: libpq/auth.c:2200
+#: libpq/auth.c:235
 #, c-format
-msgid ""
-"could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": "
-"error code %d"
-msgstr ""
-"无法在服务器\"%2$s\"上为ldapbinddn\"%1$s\"执行初始化LDAP绑定: 错误代码%3$d"
+msgid "authentication failed for user \"%s\": host rejected"
+msgstr "用户 \"%s\" 认证失败: 主机拒绝"
 
-#: libpq/auth.c:2225
+#: libpq/auth.c:238
 #, c-format
-msgid "could not search LDAP for filter \"%s\" on server \"%s\": error code %d"
-msgstr "无法在服务器\"%2$s\"上为过滤器\"%1$s\"进行的搜索LDAP:错误代码%3$d"
+msgid "\"trust\" authentication failed for user \"%s\""
+msgstr "用户 \"%s\" \"trust\" 认证失败"
 
-#: libpq/auth.c:2235
+#: libpq/auth.c:241
 #, c-format
-msgid "LDAP search failed for filter \"%s\" on server \"%s\": no such user"
-msgstr "在服务器\"%2$s\"上为过滤器\"%1$s\"进行的LDAP搜索失败:没有此用户"
+msgid "Ident authentication failed for user \"%s\""
+msgstr "用户 \"%s\" Ident 认证失败"
 
-#: libpq/auth.c:2239
+#: libpq/auth.c:244
 #, c-format
-msgid ""
-"LDAP search failed for filter \"%s\" on server \"%s\": user is not unique "
-"(%ld matches)"
-msgstr ""
-"在服务器\"%2$s\"上的为过滤器\"%1$s\"进行的LDAP搜索失败:用户不是唯一的(找"
-"到%3$ld个匹配)"
+msgid "Peer authentication failed for user \"%s\""
+msgstr "对用户\"%s\"的对等认证失败"
 
-#: libpq/auth.c:2256
+#: libpq/auth.c:248
 #, c-format
-msgid ""
-"could not get dn for the first entry matching \"%s\" on server \"%s\": %s"
-msgstr "无法为在服务器\"%2$s\"上第一个与\"%1$s\"匹配的项获取dn: %3$s"
+msgid "password authentication failed for user \"%s\""
+msgstr "用户 \"%s\" Password 认证失败"
 
-#: libpq/auth.c:2276
+#: libpq/auth.c:253
 #, c-format
-msgid "could not unbind after searching for user \"%s\" on server \"%s\": %s"
-msgstr "å\9c¨æ\9c\8då\8a¡å\99¨ \"%2$s\"ä¸\8aæ\90\9cç´¢ç\94¨æ\88·\"%1$s\"å\90\8eæ\97 æ³\95è§£é\99¤ç»\91å®\9a:%3$s"
+msgid "GSSAPI authentication failed for user \"%s\""
+msgstr "对äº\8eç\94¨æ\88·\"%s\"ç\9a\84GSSAPI è®¤è¯\81失败"
 
-#: libpq/auth.c:2313
+#: libpq/auth.c:256
 #, c-format
-msgid "LDAP login failed for user \"%s\" on server \"%s\": error code %d"
-msgstr "用户 \"%s\" 在服务器 \"%s\" 进行LDAP登录失败:错误代码 %d"
+msgid "SSPI authentication failed for user \"%s\""
+msgstr "对于用户 \"%s\" 的 SSPI 认证失败"
 
-#: libpq/auth.c:2341
+#: libpq/auth.c:259
 #, c-format
-msgid ""
-"certificate authentication failed for user \"%s\": client certificate "
-"contains no user name"
-msgstr "用户\"%s\"的认证鉴权失败: 客户端认证没有包含用户名"
+msgid "PAM authentication failed for user \"%s\""
+msgstr "用户 \"%s\" 认证 PAM 失败"
 
-#: libpq/auth.c:2465
+#: libpq/auth.c:262
 #, c-format
-msgid "RADIUS server not specified"
-msgstr "没有指定RADIUS服务器"
+msgid "LDAP authentication failed for user \"%s\""
+msgstr "对于用户 \"%s\"的LDAP认证失败"
 
-#: libpq/auth.c:2472
+#: libpq/auth.c:265
 #, c-format
-msgid "RADIUS secret not specified"
-msgstr "没有指定RADIUS机密(secret) "
+msgid "certificate authentication failed for user \"%s\""
+msgstr "用户 \"%s\" 的认证失败"
 
-#: libpq/auth.c:2488 libpq/hba.c:1543
+#: libpq/auth.c:268
 #, c-format
-msgid "could not translate RADIUS server name \"%s\" to address: %s"
-msgstr "无法将RADIUS服务器名称 \"%s\" 翻译为相应地址:%s"
+msgid "RADIUS authentication failed for user \"%s\""
+msgstr "用户 \"%s\" 的RADIUS认证失败"
 
-#: libpq/auth.c:2516
+#: libpq/auth.c:271
 #, c-format
-msgid ""
-"RADIUS authentication does not support passwords longer than 16 characters"
-msgstr "RADIUS认证不支持长度超过16个字符的口令"
+msgid "authentication failed for user \"%s\": invalid authentication method"
+msgstr "用户 \"%s\" 认证失败: 无效的认证方式"
 
-#: libpq/auth.c:2527
+#: libpq/auth.c:275
 #, c-format
-msgid "could not generate random encryption vector"
-msgstr "无法产生随机加密向量"
+msgid "Connection matched pg_hba.conf line %d: \"%s\""
+msgstr "与Connection相匹配的文件行位于 pg_hba.conf %d: \"%s\""
 
-#: libpq/auth.c:2550
+#: libpq/auth.c:337
 #, c-format
-msgid "could not perform MD5 encryption of password"
-msgstr "无法执行口令的MD5加密"
+msgid "connection requires a valid client certificate"
+msgstr "连接中需要一个有效的客户端认证"
 
-#: libpq/auth.c:2572
+#: libpq/auth.c:379
 #, c-format
-msgid "could not create RADIUS socket: %m"
-msgstr "无法创建RADIUS套接字: %m"
+msgid ""
+"pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s"
+msgstr "pg_hba.conf中的记录拒绝来自主机\"%s\",用户 \"%s\",%s的复制连接"
 
-#: libpq/auth.c:2593
-#, c-format
-msgid "could not bind local RADIUS socket: %m"
-msgstr "无法绑定本地RADIUS套接字: %m"
+#: libpq/auth.c:381 libpq/auth.c:397 libpq/auth.c:455 libpq/auth.c:473
+msgid "SSL off"
+msgstr "SSL 关闭"
 
-#: libpq/auth.c:2603
-#, c-format
-msgid "could not send RADIUS packet: %m"
-msgstr "无法发送RADIUS包: %m"
+#: libpq/auth.c:381 libpq/auth.c:397 libpq/auth.c:455 libpq/auth.c:473
+msgid "SSL on"
+msgstr "SSL 开启"
 
-#: libpq/auth.c:2632 libpq/auth.c:2657
+#: libpq/auth.c:385
 #, c-format
-msgid "timeout waiting for RADIUS response"
-msgstr "在等待RADIUS回应包时超时"
+msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\""
+msgstr "pg_hba.conf 记录拒绝来自主机\"%s\", 用户\"%s\"的复制连接"
 
-#: libpq/auth.c:2650
+#: libpq/auth.c:394
 #, c-format
-msgid "could not check status on RADIUS socket: %m"
-msgstr "无法在RADIUS套接字上检查状态: %m"
+msgid ""
+"pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s"
+"\", %s"
+msgstr ""
+"pg_hba.conf 记录拒绝来自主机\"%s\", 用户\"%s\", 数据库\"%s\", %s的复制连接"
 
-#: libpq/auth.c:2679
+#: libpq/auth.c:401
 #, c-format
-msgid "could not read RADIUS response: %m"
-msgstr "无法读取RADIUS回应包: %m"
+msgid ""
+"pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\""
+msgstr "pg_hba.conf 记录拒绝来自主机\"%s\", 用户\"%s\", 数据库\"%s\"的复制连接"
 
-#: libpq/auth.c:2691 libpq/auth.c:2695
+#: libpq/auth.c:430
 #, c-format
-msgid "RADIUS response was sent from incorrect port: %d"
-msgstr "RADIUS回应数据包是从不正确的端口中发出的: %d"
+msgid "Client IP address resolved to \"%s\", forward lookup matches."
+msgstr "客户端IP地址解析为 \"%s\", 与转发查找结果相匹配."
 
-#: libpq/auth.c:2704
+#: libpq/auth.c:433
 #, c-format
-msgid "RADIUS response too short: %d"
-msgstr "RADIUS回应包的长度太短:%d"
+msgid "Client IP address resolved to \"%s\", forward lookup not checked."
+msgstr "客户端IP地址解析为 \"%s\", 转发查找结果没有检查."
 
-#: libpq/auth.c:2711
+#: libpq/auth.c:436
 #, c-format
-msgid "RADIUS response has corrupt length: %d (actual length %d)"
-msgstr "RADIUS回应包的长度不正确:%i(实际长度是%d)"
+msgid "Client IP address resolved to \"%s\", forward lookup does not match."
+msgstr "客户端IP地址解析为 \"%s\", 与转发查找结果不匹配."
 
-#: libpq/auth.c:2719
+# fe-misc.c:702
+#: libpq/auth.c:439
 #, c-format
-msgid "RADIUS response is to a different request: %d (should be %d)"
-msgstr "RADIUS回应包发送到了一个不同的请求上:%d (应该是%d)"
+#| msgid "could not translate host name \"%s\" to address: %s"
+msgid "Could not translate client host name \"%s\" to IP address: %s."
+msgstr "无法解析主机名 \"%s\" 对应的IP地址: %s."
 
-#: libpq/auth.c:2744
+# fe-connect.c:1283
+#: libpq/auth.c:444
 #, c-format
-msgid "could not perform MD5 encryption of received packet"
-msgstr "无法执行所接收数据包的MD5加密"
+#| msgid "could not get client address from socket: %s\n"
+msgid "Could not resolve client IP address to a host name: %s."
+msgstr "无法解析客户端地址主机名: %s."
 
-#: libpq/auth.c:2753
+#: libpq/auth.c:453
 #, c-format
-msgid "RADIUS response has incorrect MD5 signature"
-msgstr "RADIUS回应包带有不正确的MD5签名"
+msgid ""
+"no pg_hba.conf entry for replication connection from host \"%s\", user \"%s"
+"\", %s"
+msgstr "没有来自主机 \"%s\", 用户\"%s\", %s的复制连接的pg_hba.conf记录"
 
-#: libpq/auth.c:2770
+#: libpq/auth.c:460
 #, c-format
-msgid "RADIUS response has invalid code (%d) for user \"%s\""
-msgstr "对于用户\"%2$s\"来说RADIUS回应包带有无效编码(%1$d) "
+msgid ""
+"no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\""
+msgstr "没有来自主机 \"%s\", 用户\"%s\"的复制连接的pg_hba.conf记录"
 
-#: libpq/be-fsstubs.c:132 libpq/be-fsstubs.c:162 libpq/be-fsstubs.c:188
-#: libpq/be-fsstubs.c:224 libpq/be-fsstubs.c:271 libpq/be-fsstubs.c:518
+#: libpq/auth.c:470
 #, c-format
-msgid "invalid large-object descriptor: %d"
-msgstr "无效的大对象描述符: %d"
+msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s"
+msgstr ""
+"没有用于主机 \"%s\", 用户 \"%s\", 数据库 \"%s\", %s 的 pg_hba.conf 记录"
 
-#: libpq/be-fsstubs.c:172 libpq/be-fsstubs.c:204 libpq/be-fsstubs.c:528
+#: libpq/auth.c:478
 #, c-format
-msgid "permission denied for large object %u"
-msgstr "访问大对象%u的权限不够"
+msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\""
+msgstr "没有用于主机 \"%s\", 用户 \"%s\", 数据库 \"%s\" 的 pg_hba.conf 记录"
 
-#: libpq/be-fsstubs.c:193
+#: libpq/auth.c:521 libpq/hba.c:1212
 #, c-format
-msgid "large object descriptor %d was not opened for writing"
-msgstr "无法打开大对象描述符%d进行写操作"
+msgid ""
+"MD5 authentication is not supported when \"db_user_namespace\" is enabled"
+msgstr "当启用 \"db_user_namespace\" 时不支持 MD5 认证"
 
-#: libpq/be-fsstubs.c:391
+#: libpq/auth.c:645
 #, c-format
-msgid "must be superuser to use server-side lo_import()"
-msgstr "必须是超级用户才可以使用服务器端的 lo_import()"
+msgid "expected password response, got message type %d"
+msgstr "期望得到口令回应,但是得到了消息类型%d."
 
-#: libpq/be-fsstubs.c:392
+#: libpq/auth.c:673
 #, c-format
-msgid "Anyone can use the client-side lo_import() provided by libpq."
-msgstr "任何人都可以使用 libpq 提供的客户端 lo_import()."
+msgid "invalid password packet size"
+msgstr "无效的口令包尺寸"
 
-#: libpq/be-fsstubs.c:405
+#: libpq/auth.c:677
 #, c-format
-msgid "could not open server file \"%s\": %m"
-msgstr "æ\97 æ³\95æ\89\93å¼\80æ\9c\8då\8a¡å\99¨æ\96\87ä»¶ \"%s\": %m"
+msgid "received password packet"
+msgstr "æ\8e¥æ\94¶å\88°å\8f£ä»¤å\8c\85"
 
-#: libpq/be-fsstubs.c:427
+#: libpq/auth.c:804
 #, c-format
-msgid "could not read server file \"%s\": %m"
-msgstr "无法读取服务器文件 \"%s\": %m"
+msgid "GSSAPI is not supported in protocol version 2"
+msgstr "在协议版本2中不支持使用GSSAPI"
 
-#: libpq/be-fsstubs.c:457
+#: libpq/auth.c:859
 #, c-format
-msgid "must be superuser to use server-side lo_export()"
-msgstr "必须是超级用户才可以使用服务器端的 lo_export()"
+msgid "expected GSS response, got message type %d"
+msgstr "期望GSS回应,但是得到了信息类型%d"
 
-#: libpq/be-fsstubs.c:458
-#, c-format
-msgid "Anyone can use the client-side lo_export() provided by libpq."
-msgstr "任何人都可以使用 libpq 提供的客户端 lo_export()."
+#: libpq/auth.c:918
+msgid "accepting GSS security context failed"
+msgstr "接收GSS安全环境失败"
 
-#: libpq/be-fsstubs.c:483
-#, c-format
-msgid "could not create server file \"%s\": %m"
-msgstr "无法创建服务器文件 \"%s\": %m"
+#: libpq/auth.c:944
+msgid "retrieving GSS user name failed"
+msgstr "获取GSS用户名失败"
 
-#: libpq/be-fsstubs.c:495
+#: libpq/auth.c:1061
 #, c-format
-msgid "could not write server file \"%s\": %m"
-msgstr "无法写入服务器文件 \"%s\": %m"
+msgid "SSPI is not supported in protocol version 2"
+msgstr "在协议版本2中不支持使用SSPI"
 
-#: libpq/be-secure.c:284 libpq/be-secure.c:379
+#: libpq/auth.c:1076
+msgid "could not acquire SSPI credentials"
+msgstr "无法获得SSPI证书"
+
+#: libpq/auth.c:1093
 #, c-format
-msgid "SSL error: %s"
-msgstr "SSL 错误: %s"
+msgid "expected SSPI response, got message type %d"
+msgstr "期望SSPI回应,但是得到了消息类型%d"
+
+#: libpq/auth.c:1165
+msgid "could not accept SSPI security context"
+msgstr "无法访问SSPI安全环境"
+
+#: libpq/auth.c:1227
+msgid "could not get token from SSPI security context"
+msgstr "无法从SSPI安全环境中获取令牌(token)"
 
-#: libpq/be-secure.c:293 libpq/be-secure.c:388 libpq/be-secure.c:939
+#: libpq/auth.c:1470
 #, c-format
-msgid "unrecognized SSL error code: %d"
-msgstr "æ\9cªç\9f¥ç\9a\84 SSL é\94\99误ç \81: %d"
+msgid "could not create socket for Ident connection: %m"
+msgstr "æ\97 æ³\95为 Ident è\81\94æ\8e¥å\88\9b建å¥\97æ\8e¥å­\97: %m"
 
-#: libpq/be-secure.c:332 libpq/be-secure.c:336 libpq/be-secure.c:346
+#: libpq/auth.c:1485
 #, c-format
-msgid "SSL renegotiation failure"
-msgstr "SSL 协商失败"
+msgid "could not bind to local address \"%s\": %m"
+msgstr "无法绑定到本地地址 \"%s\": %m"
 
-#: libpq/be-secure.c:340
+#: libpq/auth.c:1497
 #, c-format
-msgid "SSL failed to send renegotiation request"
-msgstr "发送 SSL 协商响应失败"
+msgid "could not connect to Ident server at address \"%s\", port %s: %m"
+msgstr "无法联接到地址为 \"%s\", 端口为 %s 的 Ident 服务器: %m"
 
-#: libpq/be-secure.c:737
+#: libpq/auth.c:1517
 #, c-format
-msgid "could not create SSL context: %s"
-msgstr "æ\97 æ³\95å\88\9b建 SSL ç\8e¯å¢\83: %s"
+msgid "could not send query to Ident server at address \"%s\", port %s: %m"
+msgstr "æ\97 æ³\95å\8f\91é\80\81æ\9f¥è¯¢å\88°å\9c°å\9d\80为 \"%s\", ç«¯å\8f£ä¸º %s ç\9a\84 Ident æ\9c\8då\8a¡å\99¨: %m"
 
-#: libpq/be-secure.c:753
+#: libpq/auth.c:1532
 #, c-format
-msgid "could not load server certificate file \"%s\": %s"
-msgstr "无法装载服务器认证文件 \"%s\": %s"
+msgid ""
+"could not receive response from Ident server at address \"%s\", port %s: %m"
+msgstr "无法从地址为 \"%s\", 端口为 %s 的 Ident 服务器接收应答: %m"
 
-#: libpq/be-secure.c:759
+#: libpq/auth.c:1542
 #, c-format
-msgid "could not access private key file \"%s\": %m"
-msgstr "无法处理私钥文件 \"%s\": %m"
+msgid "invalidly formatted response from Ident server: \"%s\""
+msgstr "从 Ident 服务器接收的无效格式应答: \"%s\""
 
-#: libpq/be-secure.c:774
+# fe-auth.c:640
+#: libpq/auth.c:1580
 #, c-format
-msgid "private key file \"%s\" has group or world access"
-msgstr "私钥文件\"%s\"具有由所在组或全局范围访问的权限"
+msgid "peer authentication is not supported on this platform"
+msgstr "对等认证在这个平台上不支持"
 
-#: libpq/be-secure.c:776
+#: libpq/auth.c:1584
 #, c-format
-msgid "Permissions should be u=rw (0600) or less."
-msgstr "æ\9d\83é\99\90åº\94该为u=rw (0600)æ\88\96è\80\85æ\9b´å°\91"
+msgid "could not get peer credentials: %m"
+msgstr "æ\97 æ³\95è\8e·å¾\97å\90\8cç­\89 (peer) è¯\81书: %m"
 
-#: libpq/be-secure.c:783
+#: libpq/auth.c:1593
 #, c-format
-msgid "could not load private key file \"%s\": %s"
-msgstr "无法装载私钥文件 \"%s\": %s"
+#| msgid "could not set session user to \"%s\": %s"
+msgid "could not to look up local user ID %ld: %s"
+msgstr "无法查找本地用户 ID %ld: %s"
 
-#: libpq/be-secure.c:788
+#: libpq/auth.c:1676 libpq/auth.c:1947 libpq/auth.c:2304
 #, c-format
-msgid "check of private key failed: %s"
-msgstr "检查私钥失败: %s"
+msgid "empty password returned by client"
+msgstr "客户端返回了空口令"
 
-#: libpq/be-secure.c:808
+#: libpq/auth.c:1686
 #, c-format
-msgid "could not load root certificate file \"%s\": %s"
-msgstr "æ\97 æ³\95è£\85载根 (root) è®¤è¯\81æ\96\87ä»¶ \"%s\": %s"
+msgid "error from underlying PAM layer: %s"
+msgstr "æ\9d¥è\87ª PAM å±\82ä¸\8bé\9d¢ç\9a\84é\94\99误: %s"
 
-#: libpq/be-secure.c:832
+#: libpq/auth.c:1755
 #, c-format
-msgid "SSL certificate revocation list file \"%s\" ignored"
-msgstr "忽略SSL认证撤销列表文件 \"%s\""
+msgid "could not create PAM authenticator: %s"
+msgstr "无法创建 PAM 类型器: %s"
 
-#: libpq/be-secure.c:834
+#: libpq/auth.c:1766
 #, c-format
-msgid "SSL library does not support certificate revocation lists."
-msgstr "SSL库不支持认证撤销列表"
+msgid "pam_set_item(PAM_USER) failed: %s"
+msgstr "pam_set_item(PAM_USER) 失败: %s"
 
-#: libpq/be-secure.c:839
+#: libpq/auth.c:1777
 #, c-format
-msgid "could not load SSL certificate revocation list file \"%s\": %s"
-msgstr "无法装载根 (root)证书取消列表文件 \"%s\": %s"
+msgid "pam_set_item(PAM_CONV) failed: %s"
+msgstr "pam_set_item(PAM_CONV) 失败: %s"
 
-#: libpq/be-secure.c:884
+#: libpq/auth.c:1788
 #, c-format
-msgid "could not initialize SSL connection: %s"
-msgstr "æ\97 æ³\95å\88\9då§\8bå\8c\96 SSL è\81\94æ\8e¥: %s"
+msgid "pam_authenticate failed: %s"
+msgstr "pam_authenticate å¤±è´¥: %s"
 
-#: libpq/be-secure.c:893
+#: libpq/auth.c:1799
 #, c-format
-msgid "could not set SSL socket: %s"
-msgstr "无法创建 SSL 套接字: %s"
+msgid "pam_acct_mgmt failed: %s"
+msgstr "pam_acct_mgmt 失败: %s"
 
-#: libpq/be-secure.c:919
+#: libpq/auth.c:1810
 #, c-format
-msgid "could not accept SSL connection: %m"
-msgstr "无法访问 SSL 联接: %m"
+msgid "could not release PAM authenticator: %s"
+msgstr "无法释放 PAM 类型器: %s"
 
-#: libpq/be-secure.c:923 libpq/be-secure.c:934
+#: libpq/auth.c:1843
 #, c-format
-msgid "could not accept SSL connection: EOF detected"
-msgstr "无法访问 SSL 联接: 发现 EOF"
+#| msgid "could not initialize LDAP: error code %d"
+msgid "could not initialize LDAP: %m"
+msgstr "无法初始化LDAP: %m"
 
-#: libpq/be-secure.c:928
+#: libpq/auth.c:1846
 #, c-format
-msgid "could not accept SSL connection: %s"
-msgstr "无法访问 SSL 联接: %s"
+msgid "could not initialize LDAP: error code %d"
+msgstr "无法初始化LDAP: 错误代码%d"
 
-#: libpq/be-secure.c:984
+#: libpq/auth.c:1856
 #, c-format
-msgid "SSL certificate's common name contains embedded null"
-msgstr "在SSL认证的普通名称中包含嵌入的空值"
+#| msgid "could not set LDAP protocol version: error code %d"
+msgid "could not set LDAP protocol version: %s"
+msgstr "无法设置LDAP协议版本: %s"
 
-#: libpq/be-secure.c:995
+#: libpq/auth.c:1885
 #, c-format
-msgid "SSL connection from \"%s\""
-msgstr "æ\9d¥è\87ª \"%s\" ç\9a\84 SSL è\81\94æ\8e¥"
+msgid "could not load wldap32.dll"
+msgstr "æ\97 æ³\95å\8a è½½wldap32.dll"
 
-#: libpq/be-secure.c:1046
-msgid "no SSL error reported"
-msgstr "没有报告SSL错误"
+#: libpq/auth.c:1893
+#, c-format
+msgid "could not load function _ldap_start_tls_sA in wldap32.dll"
+msgstr "无法加载在wldap32.dll中的函数_ldap_start_tls_sA"
 
-#: libpq/be-secure.c:1050
+#: libpq/auth.c:1894
 #, c-format
-msgid "SSL error code %lu"
-msgstr "SSL错误代码 %lu"
+msgid "LDAP over SSL is not supported on this platform."
+msgstr "在此平台上不支持在SSL连接上的LDAP"
 
-#: libpq/hba.c:181
+#: libpq/auth.c:1909
 #, c-format
-msgid "authentication file token too long, skipping: \"%s\""
-msgstr "认证文件标记 (token) 太长, 忽略: \"%s\""
+#| msgid "could not start LDAP TLS session: error code %d"
+msgid "could not start LDAP TLS session: %s"
+msgstr "无法启动LDAP TLS会话: %s"
 
-#: libpq/hba.c:326
+#: libpq/auth.c:1931
 #, c-format
-msgid "could not open secondary authentication file \"@%s\" as \"%s\": %m"
-msgstr "æ\97 æ³\95æ\89\93å¼\80次认è¯\81æ\96\87ä»¶ \"@%s\" ä¸º \"%s\": %m"
+msgid "LDAP server not specified"
+msgstr "没æ\9c\89æ\8c\87å®\9aLDAPæ\9c\8då\8a¡å\99¨"
 
-# fe-misc.c:702
-#: libpq/hba.c:595
+#: libpq/auth.c:1984
 #, c-format
-msgid "could not translate host name \"%s\" to address: %s"
-msgstr "无法解释主机名 \"%s\" 到地址: %s"
+msgid "invalid character in user name for LDAP authentication"
+msgstr "在需要进行LDAP认证的用户名中出现无效字符"
 
-#. translator: the second %s is a list of auth methods
-#: libpq/hba.c:746
+#: libpq/auth.c:1999
 #, c-format
+#| msgid ""
+#| "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s"
+#| "\": error code %d"
 msgid ""
-"authentication option \"%s\" is only valid for authentication methods %s"
-msgstr "认证选项\"%s\"只对认证方法%s有效"
+"could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": "
+"%s"
+msgstr "无法在服务器\"%2$s\"上为ldapbinddn\"%1$s\"执行初始化LDAP绑定: %3$s"
 
-#: libpq/hba.c:748 libpq/hba.c:764 libpq/hba.c:795 libpq/hba.c:841
-#: libpq/hba.c:854 libpq/hba.c:876 libpq/hba.c:885 libpq/hba.c:908
-#: libpq/hba.c:920 libpq/hba.c:939 libpq/hba.c:960 libpq/hba.c:971
-#: libpq/hba.c:1026 libpq/hba.c:1044 libpq/hba.c:1056 libpq/hba.c:1073
-#: libpq/hba.c:1083 libpq/hba.c:1097 libpq/hba.c:1113 libpq/hba.c:1128
-#: libpq/hba.c:1139 libpq/hba.c:1181 libpq/hba.c:1213 libpq/hba.c:1224
-#: libpq/hba.c:1244 libpq/hba.c:1255 libpq/hba.c:1266 libpq/hba.c:1283
-#: libpq/hba.c:1308 libpq/hba.c:1345 libpq/hba.c:1355 libpq/hba.c:1408
-#: libpq/hba.c:1420 libpq/hba.c:1433 libpq/hba.c:1467 libpq/hba.c:1545
-#: libpq/hba.c:1563 libpq/hba.c:1584 tsearch/ts_locale.c:182
+#: libpq/auth.c:2023
 #, c-format
-msgid "line %d of configuration file \"%s\""
-msgstr "配置文件\"%2$s\"的第%1$d行"
+#| msgid ""
+#| "could not search LDAP for filter \"%s\" on server \"%s\": error code %d"
+msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s"
+msgstr "无法在服务器\"%2$s\"上为过滤器\"%1$s\"进行的搜索LDAP:%3$s"
 
-# fe-auth.c:640
-#: libpq/hba.c:762
+#: libpq/auth.c:2034
 #, c-format
-msgid "authentication method \"%s\" requires argument \"%s\" to be set"
-msgstr "在认证方法\"%s\"需要设置参数\"%s\" "
+#| msgid "server \"%s\" does not exist"
+msgid "LDAP user \"%s\" does not exist"
+msgstr "LDAP用户\"%s\" 不存在"
 
-#: libpq/hba.c:783
+#: libpq/auth.c:2035
 #, c-format
-msgid "missing entry in file \"%s\" at end of line %d"
-msgstr "在 \"%s\" 文件的第 %d 行末尾缺少记录"
+#| msgid "LDAP search failed for filter \"%s\" on server \"%s\": no such user"
+msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries."
+msgstr "在服务器\"%2$s\"上为过滤器\"%1$s\"进行的LDAP搜索无结果."
 
-#: libpq/hba.c:794
+#: libpq/auth.c:2039
 #, c-format
-msgid "multiple values in ident field"
-msgstr "识别字段出现多个值"
+#| msgid "function %s is not unique"
+msgid "LDAP user \"%s\" is not unique"
+msgstr "LDAP用户\"%s\" 不是唯一的"
 
-#: libpq/hba.c:839
+#: libpq/auth.c:2040
 #, c-format
-msgid "multiple values specified for connection type"
-msgstr "连接类型指定了多个值"
+#| msgid "LDAP search failed for filter \"%s\" on server \"%s\": no such user"
+msgid "LDAP search for filter \"%s\" on server \"%s\" returned %d entry."
+msgid_plural ""
+"LDAP search for filter \"%s\" on server \"%s\" returned %d entries."
+msgstr[0] "在服务器\"%2$s\"上为过滤器\"%1$s\"进行的LDAP搜索返回%3$d条结果."
 
-#: libpq/hba.c:840
+#: libpq/auth.c:2058
 #, c-format
-msgid "Specify exactly one connection type per line."
-msgstr "每行精确指定一个连接类型."
+msgid ""
+"could not get dn for the first entry matching \"%s\" on server \"%s\": %s"
+msgstr "无法为在服务器\"%2$s\"上第一个与\"%1$s\"匹配的项获取dn: %3$s"
 
-# input.c:213
-#: libpq/hba.c:853
+#: libpq/auth.c:2078
 #, c-format
-msgid "local connections are not supported by this build"
-msgstr "这个版本编译不支持本地连接"
+msgid "could not unbind after searching for user \"%s\" on server \"%s\": %s"
+msgstr "在服务器 \"%2$s\"上搜索用户\"%1$s\"后无法解除绑定:%3$s"
 
-#: libpq/hba.c:874
+#: libpq/auth.c:2108
 #, c-format
-msgid "hostssl requires SSL to be turned on"
-msgstr "hostssl 要求开启 SSL开关"
+#| msgid "LDAP login failed for user \"%s\" on server \"%s\": error code %d"
+msgid "LDAP login failed for user \"%s\" on server \"%s\": %s"
+msgstr "用户 \"%s\" 在服务器 \"%s\" 进行LDAP登录失败:%s"
 
-#: libpq/hba.c:875
+#: libpq/auth.c:2136
 #, c-format
-msgid "Set ssl = on in postgresql.conf."
-msgstr "在postgresql.conf配置文件中设置 ssl 开关为 on."
+msgid ""
+"certificate authentication failed for user \"%s\": client certificate "
+"contains no user name"
+msgstr "用户\"%s\"的认证鉴权失败: 客户端认证没有包含用户名"
 
-# input.c:213
-#: libpq/hba.c:883
+#: libpq/auth.c:2260
 #, c-format
-msgid "hostssl is not supported by this build"
-msgstr "这个版本的编译安装不支持使用hostssl"
+msgid "RADIUS server not specified"
+msgstr "没有指定RADIUS服务器"
 
-#: libpq/hba.c:884
+#: libpq/auth.c:2267
 #, c-format
-msgid "Compile with --with-openssl to use SSL connections."
-msgstr "为了使用SSL连接,在编译时需要带有 --with-openssl选项"
+msgid "RADIUS secret not specified"
+msgstr "没有指定RADIUS机密(secret) "
 
-# fe-connect.c:2558
-#: libpq/hba.c:906
+#: libpq/auth.c:2283 libpq/hba.c:1609
 #, c-format
-msgid "invalid connection type \"%s\""
-msgstr "æ\97 æ\95\88è¿\9eæ\8e¥ç±»å\9e\8b\"%s\""
+msgid "could not translate RADIUS server name \"%s\" to address: %s"
+msgstr "æ\97 æ³\95å°\86RADIUSæ\9c\8då\8a¡å\99¨å\90\8dç§° \"%s\" ç¿»è¯\91为ç\9b¸åº\94å\9c°å\9d\80:%s"
 
-#: libpq/hba.c:919
+#: libpq/auth.c:2311
 #, c-format
-msgid "end-of-line before database specification"
-msgstr "在数据库定义前面出现行结束符"
+msgid ""
+"RADIUS authentication does not support passwords longer than 16 characters"
+msgstr "RADIUS认证不支持长度超过16个字符的口令"
 
-#: libpq/hba.c:938
+#: libpq/auth.c:2322
 #, c-format
-msgid "end-of-line before role specification"
-msgstr "在角色定义前面出现行结束符"
+msgid "could not generate random encryption vector"
+msgstr "无法产生随机加密向量"
 
-#: libpq/hba.c:959
+#: libpq/auth.c:2345
 #, c-format
-msgid "end-of-line before IP address specification"
-msgstr "在IP地址定义前面出现行结束符"
+msgid "could not perform MD5 encryption of password"
+msgstr "无法执行口令的MD5加密"
 
-#: libpq/hba.c:969
+#: libpq/auth.c:2367
 #, c-format
-msgid "multiple values specified for host address"
-msgstr "主机地址指定了多个值"
+msgid "could not create RADIUS socket: %m"
+msgstr "无法创建RADIUS套接字: %m"
 
-#: libpq/hba.c:970
+#: libpq/auth.c:2388
 #, c-format
-msgid "Specify one address range per line."
-msgstr "æ¯\8fè¡\8cæ\8c\87å®\9aä¸\80个å\9c°å\9d\80è\8c\83å\9b´."
+msgid "could not bind local RADIUS socket: %m"
+msgstr "æ\97 æ³\95ç»\91å®\9aæ\9c¬å\9c°RADIUSå¥\97æ\8e¥å­\97: %m"
 
-#: libpq/hba.c:1024
+#: libpq/auth.c:2398
 #, c-format
-msgid "invalid IP address \"%s\": %s"
-msgstr "IP地址无效\"%s\": %s"
+msgid "could not send RADIUS packet: %m"
+msgstr "无法发送RADIUS包: %m"
 
-#: libpq/hba.c:1042
+#: libpq/auth.c:2427 libpq/auth.c:2452
 #, c-format
-msgid "specifying both host name and CIDR mask is invalid: \"%s\""
-msgstr "指定主机名,同时 CIDR 掩码: \"%s\"值无效"
+msgid "timeout waiting for RADIUS response"
+msgstr "在等待RADIUS回应包时超时"
 
-#: libpq/hba.c:1054
+#: libpq/auth.c:2445
 #, c-format
-msgid "invalid CIDR mask in address \"%s\""
-msgstr "在地址\"%s\"中的CIDR掩码无效"
+msgid "could not check status on RADIUS socket: %m"
+msgstr "无法在RADIUS套接字上检查状态: %m"
 
-#: libpq/hba.c:1071
+#: libpq/auth.c:2474
 #, c-format
-msgid "end-of-line before netmask specification"
-msgstr "在网络掩码定义前的行结束符"
+msgid "could not read RADIUS response: %m"
+msgstr "无法读取RADIUS回应包: %m"
 
-#: libpq/hba.c:1072
+#: libpq/auth.c:2486 libpq/auth.c:2490
 #, c-format
-msgid ""
-"Specify an address range in CIDR notation, or provide a separate netmask."
-msgstr "使用CIDR 符号指定地址范围, 或者提供独立的网络掩码."
+msgid "RADIUS response was sent from incorrect port: %d"
+msgstr "RADIUS回应数据包是从不正确的端口中发出的: %d"
 
-#: libpq/hba.c:1082
+#: libpq/auth.c:2499
 #, c-format
-msgid "multiple values specified for netmask"
-msgstr "网络掩码指定了多个值"
+msgid "RADIUS response too short: %d"
+msgstr "RADIUS回应包的长度太短:%d"
 
-#: libpq/hba.c:1095
+#: libpq/auth.c:2506
 #, c-format
-msgid "invalid IP mask \"%s\": %s"
-msgstr "无效IP地址掩码\"%s\": %s"
+msgid "RADIUS response has corrupt length: %d (actual length %d)"
+msgstr "RADIUS回应包的长度不正确:%d(实际长度是%d)"
 
-#: libpq/hba.c:1112
+#: libpq/auth.c:2514
 #, c-format
-msgid "IP address and mask do not match"
-msgstr "IP地址与掩码不匹配"
+msgid "RADIUS response is to a different request: %d (should be %d)"
+msgstr "RADIUS回应包发送到了一个不同的请求上:%d (应该是%d)"
 
-#: libpq/hba.c:1127
+#: libpq/auth.c:2539
 #, c-format
-msgid "end-of-line before authentication method"
-msgstr "在认证方法前面出现行结束符"
+msgid "could not perform MD5 encryption of received packet"
+msgstr "无法执行所接收数据包的MD5加密"
 
-#: libpq/hba.c:1137
+#: libpq/auth.c:2548
 #, c-format
-msgid "multiple values specified for authentication type"
-msgstr "认证类型指定了多个值"
+msgid "RADIUS response has incorrect MD5 signature"
+msgstr "RADIUS回应包带有不正确的MD5签名"
 
-#: libpq/hba.c:1138
+#: libpq/auth.c:2565
 #, c-format
-msgid "Specify exactly one authentication type per line."
-msgstr "每行精确指定一个认证类型."
+msgid "RADIUS response has invalid code (%d) for user \"%s\""
+msgstr "对于用户\"%2$s\"来说RADIUS回应包带有无效编码(%1$d) "
 
-#: libpq/hba.c:1211
+#: libpq/be-fsstubs.c:134 libpq/be-fsstubs.c:165 libpq/be-fsstubs.c:199
+#: libpq/be-fsstubs.c:239 libpq/be-fsstubs.c:264 libpq/be-fsstubs.c:312
+#: libpq/be-fsstubs.c:335 libpq/be-fsstubs.c:583
 #, c-format
-msgid "invalid authentication method \"%s\""
-msgstr "无效认证方法\"%s\""
+msgid "invalid large-object descriptor: %d"
+msgstr "无效的大对象描述符: %d"
 
-# fe-auth.c:640
-#: libpq/hba.c:1222
+#: libpq/be-fsstubs.c:180 libpq/be-fsstubs.c:218 libpq/be-fsstubs.c:602
+#: libpq/be-fsstubs.c:790
 #, c-format
-msgid "invalid authentication method \"%s\": not supported by this build"
-msgstr "è¿\99个ç\89\88æ\9c¬ç\9a\84ç¼\96è¯\91å®\89è£\85ä¸\8dæ\94¯æ\8c\81æ\97 æ\95\88ç\9a\84认è¯\81æ\96¹æ³\95\"%s\""
+msgid "permission denied for large object %u"
+msgstr "访é\97®å¤§å¯¹è±¡%uç\9a\84æ\9d\83é\99\90ä¸\8då¤\9f"
 
-#: libpq/hba.c:1243
+#: libpq/be-fsstubs.c:205 libpq/be-fsstubs.c:589
 #, c-format
-msgid "krb5 authentication is not supported on local sockets"
-msgstr "在本地套接字上不支持krb5认证"
+msgid "large object descriptor %d was not opened for writing"
+msgstr "无法打开大对象描述符%d进行写操作"
 
-#: libpq/hba.c:1254
+#: libpq/be-fsstubs.c:247
 #, c-format
-msgid "gssapi authentication is not supported on local sockets"
-msgstr "在本地套接字上不支持gssapi认证"
+msgid "lo_lseek result out of range for large-object descriptor %d"
+msgstr "lo_lseek的结果超出了大对象的描述符 %d所在范围"
 
-#: libpq/hba.c:1265
+#: libpq/be-fsstubs.c:320
 #, c-format
-msgid "peer authentication is only supported on local sockets"
-msgstr "对等认证只支持在本地套接字的情形下使用"
+#| msgid "invalid large-object descriptor: %d"
+msgid "lo_tell result out of range for large-object descriptor %d"
+msgstr "lo_tell 产生的结果超出了大对象描述符%d的有效范围"
 
-#: libpq/hba.c:1282
+#: libpq/be-fsstubs.c:457
 #, c-format
-msgid "cert authentication is only supported on hostssl connections"
-msgstr "å\8fªæ\9c\89å\9c¨hostsslè¿\9eæ\8e¥ä¸\8aæ\89\8dæ\94¯æ\8c\81cert认è¯\81"
+msgid "must be superuser to use server-side lo_import()"
+msgstr "å¿\85é¡»æ\98¯è¶\85级ç\94¨æ\88·æ\89\8då\8f¯ä»¥ä½¿ç\94¨æ\9c\8då\8a¡å\99¨ç«¯ç\9a\84 lo_import()"
 
-#: libpq/hba.c:1307
+#: libpq/be-fsstubs.c:458
 #, c-format
-msgid "authentication option not in name=value format: %s"
-msgstr "认证选项的格式不是名称=值:%s"
+msgid "Anyone can use the client-side lo_import() provided by libpq."
+msgstr "任何人都可以使用 libpq 提供的客户端 lo_import()."
 
-#: libpq/hba.c:1344
+#: libpq/be-fsstubs.c:471
 #, c-format
-msgid ""
-"cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, or ldapsearchattribute "
-"together with ldapprefix"
-msgstr ""
-"无法和ldapprefix一同使用ldapbasedn, ldapbinddn, ldapbindpasswd或"
-"ldapsearchattribute"
+msgid "could not open server file \"%s\": %m"
+msgstr "无法打开服务器文件 \"%s\": %m"
 
-# fe-auth.c:640
-#: libpq/hba.c:1354
+#: libpq/be-fsstubs.c:493
 #, c-format
-msgid ""
-"authentication method \"ldap\" requires argument \"ldapbasedn\", \"ldapprefix"
-"\", or \"ldapsuffix\" to be set"
-msgstr ""
-"在认证方法\"ldap\"中需要设置参数 \"ldapbasedn\", \"ldapprefix\"或\"ldapsuffix"
-"\""
+msgid "could not read server file \"%s\": %m"
+msgstr "无法读取服务器文件 \"%s\": %m"
 
-#: libpq/hba.c:1394
-msgid "ident, peer, krb5, gssapi, sspi, and cert"
-msgstr "ident, peer, krb5, gssapi, sspi和cert"
+#: libpq/be-fsstubs.c:523
+#, c-format
+msgid "must be superuser to use server-side lo_export()"
+msgstr "必须是超级用户才可以使用服务器端的 lo_export()"
 
-#: libpq/hba.c:1407
+#: libpq/be-fsstubs.c:524
 #, c-format
-msgid "clientcert can only be configured for \"hostssl\" rows"
-msgstr "只能为\"hostssl\" 记录配置clientcert "
+msgid "Anyone can use the client-side lo_export() provided by libpq."
+msgstr "任何人都可以使用 libpq 提供的客户端 lo_export()."
 
-#: libpq/hba.c:1418
+#: libpq/be-fsstubs.c:549
 #, c-format
-msgid ""
-"client certificates can only be checked if a root certificate store is "
-"available"
-msgstr "只有在根认证有效的情况下才能检查客户端认证"
+msgid "could not create server file \"%s\": %m"
+msgstr "无法创建服务器文件 \"%s\": %m"
 
-#: libpq/hba.c:1419
+#: libpq/be-fsstubs.c:561
 #, c-format
-msgid "Make sure the configuration parameter \"ssl_ca_file\" is set."
-msgstr "确保配置参数\"ssl_ca_file\"已经设置."
+msgid "could not write server file \"%s\": %m"
+msgstr "无法写入服务器文件 \"%s\": %m"
 
-#: libpq/hba.c:1432
+#: libpq/be-fsstubs.c:815
 #, c-format
-msgid "clientcert can not be set to 0 when using \"cert\" authentication"
-msgstr "当使用\"cert\"认证时clientcert不能设置为0"
+#| msgid "large object %u does not exist"
+msgid "large object read request is too large"
+msgstr "大对象读请求太大"
 
-#: libpq/hba.c:1466
+#: libpq/be-fsstubs.c:857 utils/adt/genfile.c:187 utils/adt/genfile.c:232
 #, c-format
-msgid "invalid LDAP port number: \"%s\""
-msgstr "æ\97 æ\95\88LDAP端å\8f£å\8f·: \"%s\""
+msgid "requested length cannot be negative"
+msgstr "æ\89\80请æ±\82ç\9a\84é\95¿åº¦ä¸\8dè\83½æ\98¯è´\9fæ\95°"
 
-#: libpq/hba.c:1512 libpq/hba.c:1520
-msgid "krb5, gssapi, and sspi"
-msgstr "krb5, gssapi, 和sspi"
+#: libpq/be-secure.c:296 libpq/be-secure.c:418
+#, c-format
+msgid "SSL error: %s"
+msgstr "SSL 错误: %s"
 
-#: libpq/hba.c:1562
+#: libpq/be-secure.c:305 libpq/be-secure.c:427 libpq/be-secure.c:1046
 #, c-format
-msgid "invalid RADIUS port number: \"%s\""
-msgstr "æ\97 æ\95\88RADIUS端å\8f£å\8f·: \"%s\""
+msgid "unrecognized SSL error code: %d"
+msgstr "æ\9cªç\9f¥ç\9a\84 SSL é\94\99误ç \81: %d"
 
-#: libpq/hba.c:1582
+#: libpq/be-secure.c:365
 #, c-format
-msgid "unrecognized authentication option name: \"%s\""
-msgstr "未知认证选项名称:\"%s\""
+#| msgid "SSL failed to send renegotiation request"
+msgid "SSL failure during renegotiation start"
+msgstr "再协商开始时SSL失败"
 
-#: libpq/hba.c:1721 guc-file.l:430
+#: libpq/be-secure.c:380
 #, c-format
-msgid "could not open configuration file \"%s\": %m"
-msgstr "无法打开配置文件 \"%s\": %m"
+#| msgid "SSL failed to send renegotiation request"
+msgid "SSL handshake failure on renegotiation, retrying"
+msgstr "再协商阶段SSL握手失败,重试"
 
-#: libpq/hba.c:1771
+#: libpq/be-secure.c:384
 #, c-format
-msgid "configuration file \"%s\" contains no entries"
-msgstr "配置文件 \"%s\" 没有配置项"
+msgid "could not complete SSL handshake on renegotiation, too many failures"
+msgstr "在再次协商阶段无法完成 SSL 握手 , 因为其间出现了太多的失败"
 
-#: libpq/hba.c:1878
+#: libpq/be-secure.c:453
 #, c-format
-msgid "invalid regular expression \"%s\": %s"
-msgstr "无效的正则表达式\"%s\": %s"
+#| msgid "SSL failed to send renegotiation request"
+msgid "SSL failed to renegotiate connection before limit expired"
+msgstr "限制过期前,SSL未能再协商好连接"
 
-#: libpq/hba.c:1901
+#: libpq/be-secure.c:793
 #, c-format
-msgid "regular expression match for \"%s\" failed: %s"
-msgstr "正则表达式匹配\"%s\"失败:%s"
+#| msgid "%s: unrecognized section name: \"%s\"\n"
+msgid "ECDH: unrecognized curve name: %s"
+msgstr "ECDH: 无法识别的曲线名: %s"
 
-#: libpq/hba.c:1919
+# fe-connect.c:891
+#: libpq/be-secure.c:798
 #, c-format
-msgid ""
-"regular expression \"%s\" has no subexpressions as requested by "
-"backreference in \"%s\""
-msgstr "正则表达式\"%s\"没有在\"%s\"中的后项引用所要求的子表达式."
+#| msgid "could not create socket: %s\n"
+msgid "ECDH: could not create key"
+msgstr "ECDH: 无法创建键"
 
-#: libpq/hba.c:2018
+#: libpq/be-secure.c:835
 #, c-format
-msgid "provided user name (%s) and authenticated user name (%s) do not match"
-msgstr "æ\89\80æ\8f\90ä¾\9bç\9a\84ç\94¨æ\88·å\90\8d(%s)å\92\8c被认è¯\81ç\9a\84ç\94¨æ\88·å\90\8d(%s) ä¸\8då\8c¹é\85\8d"
+msgid "could not create SSL context: %s"
+msgstr "æ\97 æ³\95å\88\9b建 SSL ç\8e¯å¢\83: %s"
 
-#: libpq/hba.c:2039
+#: libpq/be-secure.c:851
 #, c-format
-msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\""
-msgstr "对于以\"%3$s\"身份认证为的用户\"%2$s\",在用户映射\"%1$s\"中没有匹配"
+msgid "could not load server certificate file \"%s\": %s"
+msgstr "无法装载服务器认证文件 \"%s\": %s"
 
-#: libpq/hba.c:2069
+#: libpq/be-secure.c:857
 #, c-format
-msgid "could not open usermap file \"%s\": %m"
-msgstr "无法打开用户映射文件\"%s\": %m"
+msgid "could not access private key file \"%s\": %m"
+msgstr "无法处理私钥文件 \"%s\": %m"
 
-#: libpq/pqcomm.c:306
+#: libpq/be-secure.c:872
 #, c-format
-msgid "could not translate host name \"%s\", service \"%s\" to address: %s"
-msgstr "无法解析主机名 \"%s\", 服务 \"%s\" 到地址: %s"
+msgid "private key file \"%s\" has group or world access"
+msgstr "私钥文件\"%s\"具有由所在组或全局范围访问的权限"
 
-#: libpq/pqcomm.c:310
+#: libpq/be-secure.c:874
 #, c-format
-msgid "could not translate service \"%s\" to address: %s"
-msgstr "æ\97 æ³\95è§£æ\9e\90æ\9c\8då\8a¡ \"%s\" å\88°å\9c°å\9d\80: %s"
+msgid "Permissions should be u=rw (0600) or less."
+msgstr "æ\9d\83é\99\90åº\94该为u=rw (0600)æ\88\96è\80\85æ\9b´å°\91"
 
-#: libpq/pqcomm.c:337
+#: libpq/be-secure.c:881
 #, c-format
-msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded"
-msgstr "无法绑定所有需要的地址:超过最大数量MAXLISTEN (%d)"
+msgid "could not load private key file \"%s\": %s"
+msgstr "无法装载私钥文件 \"%s\": %s"
 
-#: libpq/pqcomm.c:346
-msgid "IPv4"
-msgstr "IPv4"
+#: libpq/be-secure.c:886
+#, c-format
+msgid "check of private key failed: %s"
+msgstr "检查私钥失败: %s"
 
-#: libpq/pqcomm.c:350
-msgid "IPv6"
-msgstr "IPv6"
+#: libpq/be-secure.c:915
+#, c-format
+msgid "could not load root certificate file \"%s\": %s"
+msgstr "无法装载根 (root) 认证文件 \"%s\": %s"
 
-#: libpq/pqcomm.c:355
-msgid "Unix"
-msgstr "Unix"
+#: libpq/be-secure.c:939
+#, c-format
+msgid "SSL certificate revocation list file \"%s\" ignored"
+msgstr "忽略SSL认证撤销列表文件 \"%s\""
 
-#: libpq/pqcomm.c:360
+#: libpq/be-secure.c:941
 #, c-format
-msgid "unrecognized address family %d"
-msgstr "不认可的地址族 %d"
+msgid "SSL library does not support certificate revocation lists."
+msgstr "SSL库不支持认证撤销列表"
 
-#. translator: %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:371
+#: libpq/be-secure.c:946
 #, c-format
-msgid "could not create %s socket: %m"
-msgstr "无法创建 %s 套接字: %m"
+msgid "could not load SSL certificate revocation list file \"%s\": %s"
+msgstr "无法装载根 (root)证书取消列表文件 \"%s\": %s"
 
-#: libpq/pqcomm.c:396
+#: libpq/be-secure.c:991
 #, c-format
-msgid "setsockopt(SO_REUSEADDR) failed: %m"
-msgstr "setsockopt(SO_REUSEADDR) 失败: %m"
+msgid "could not initialize SSL connection: %s"
+msgstr "无法初始化 SSL 联接: %s"
 
-#: libpq/pqcomm.c:411
+#: libpq/be-secure.c:1000
 #, c-format
-msgid "setsockopt(IPV6_V6ONLY) failed: %m"
-msgstr "setsockopt(IPV6_V6ONLY) 失败: %m"
+msgid "could not set SSL socket: %s"
+msgstr "无法创建 SSL 套接字: %s"
 
-#. translator: %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:430
+#: libpq/be-secure.c:1026
 #, c-format
-msgid "could not bind %s socket: %m"
-msgstr "无法绑定 %s 套接字: %m"
+msgid "could not accept SSL connection: %m"
+msgstr "无法访问 SSL 联接: %m"
 
-#: libpq/pqcomm.c:433
+#: libpq/be-secure.c:1030 libpq/be-secure.c:1041
 #, c-format
-msgid ""
-"Is another postmaster already running on port %d? If not, remove socket file "
-"\"%s\" and retry."
-msgstr ""
-"是否有其它 postmaster 已经在端口 %d 上运行了? 如果没有, 删除套接字文件 \"%s"
-"\" 然后再重试."
+msgid "could not accept SSL connection: EOF detected"
+msgstr "无法访问 SSL 联接: 发现 EOF"
 
-#: libpq/pqcomm.c:436
+#: libpq/be-secure.c:1035
 #, c-format
-msgid ""
-"Is another postmaster already running on port %d? If not, wait a few seconds "
-"and retry."
-msgstr ""
-"是否有其它 postmaster 已经在端口 %d 上运行了? 如果没有, 请等待几秒钟后然后再"
-"重试."
+msgid "could not accept SSL connection: %s"
+msgstr "无法访问 SSL 联接: %s"
 
-#. translator: %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:469
+#: libpq/be-secure.c:1091
 #, c-format
-msgid "could not listen on %s socket: %m"
-msgstr "无法在 %s 套接字上监听: %m"
+msgid "SSL certificate's common name contains embedded null"
+msgstr "在SSL认证的普通名称中包含嵌入的空值"
 
-#: libpq/pqcomm.c:499
+#: libpq/be-secure.c:1102
 #, c-format
-msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)"
-msgstr "Unix域的套接字路径 \"%s\" 超长(最大为%d字节)"
+msgid "SSL connection from \"%s\""
+msgstr "来自 \"%s\" 的 SSL 联接"
+
+#: libpq/be-secure.c:1153
+msgid "no SSL error reported"
+msgstr "没有报告SSL错误"
 
-#: libpq/pqcomm.c:562
+#: libpq/be-secure.c:1157
 #, c-format
-msgid "group \"%s\" does not exist"
-msgstr "组 \"%s\" 不存在"
+msgid "SSL error code %lu"
+msgstr "SSL错误代码 %lu"
 
-#: libpq/pqcomm.c:572
+#: libpq/crypt.c:67
 #, c-format
-msgid "could not set group of file \"%s\": %m"
-msgstr "无法设置文件 \"%s\" 的组: %m"
+#| msgid "record \"%s\" is not assigned yet"
+msgid "User \"%s\" has no password assigned."
+msgstr "用户 \"%s\" 没有分配密码."
 
-#: libpq/pqcomm.c:583
+#: libpq/crypt.c:160
 #, c-format
-msgid "could not set permissions of file \"%s\": %m"
-msgstr "无法设置文件 \"%s\" 的权限: %m"
+#| msgid "record \"%s\" has no field \"%s\""
+msgid "User \"%s\" has an expired password."
+msgstr "User \"%s\" 密码过期."
 
-#: libpq/pqcomm.c:613
+#: libpq/hba.c:188
 #, c-format
-msgid "could not accept new connection: %m"
-msgstr "无法访问新联接: %m"
+msgid "authentication file token too long, skipping: \"%s\""
+msgstr "认证文件标记 (token) 太长, 忽略: \"%s\""
 
-#: libpq/pqcomm.c:781
+#: libpq/hba.c:332
 #, c-format
-msgid "could not set socket to non-blocking mode: %m"
-msgstr "无法将套接字设置为非阻塞模式: %m"
+msgid "could not open secondary authentication file \"@%s\" as \"%s\": %m"
+msgstr "无法打开次认证文件 \"@%s\" 为 \"%s\": %m"
 
-#: libpq/pqcomm.c:787
+#: libpq/hba.c:409
 #, c-format
-msgid "could not set socket to blocking mode: %m"
-msgstr "无法将套接字设置为阻塞模式: %m"
+#| msgid "authentication file token too long, skipping: \"%s\""
+msgid "authentication file line too long"
+msgstr "认证文件文本行太长"
 
-#: libpq/pqcomm.c:839 libpq/pqcomm.c:929
+#: libpq/hba.c:410 libpq/hba.c:787 libpq/hba.c:803 libpq/hba.c:833
+#: libpq/hba.c:879 libpq/hba.c:892 libpq/hba.c:914 libpq/hba.c:923
+#: libpq/hba.c:946 libpq/hba.c:958 libpq/hba.c:977 libpq/hba.c:998
+#: libpq/hba.c:1009 libpq/hba.c:1064 libpq/hba.c:1082 libpq/hba.c:1094
+#: libpq/hba.c:1111 libpq/hba.c:1121 libpq/hba.c:1135 libpq/hba.c:1151
+#: libpq/hba.c:1166 libpq/hba.c:1177 libpq/hba.c:1213 libpq/hba.c:1245
+#: libpq/hba.c:1256 libpq/hba.c:1276 libpq/hba.c:1287 libpq/hba.c:1304
+#: libpq/hba.c:1329 libpq/hba.c:1366 libpq/hba.c:1376 libpq/hba.c:1432
+#: libpq/hba.c:1444 libpq/hba.c:1457 libpq/hba.c:1540 libpq/hba.c:1611
+#: libpq/hba.c:1629 libpq/hba.c:1650 tsearch/ts_locale.c:182
 #, c-format
-msgid "could not receive data from client: %m"
-msgstr "无法从客户端获得数据: %m"
+msgid "line %d of configuration file \"%s\""
+msgstr "配置文件\"%2$s\"的第%1$d行"
 
-#: libpq/pqcomm.c:1080
+#. translator: the second %s is a list of auth methods
+#: libpq/hba.c:785
 #, c-format
-msgid "unexpected EOF within message length word"
-msgstr "在信息长度字里有意外的 EOF"
+msgid ""
+"authentication option \"%s\" is only valid for authentication methods %s"
+msgstr "认证选项\"%s\"只对认证方法%s有效"
 
-#: libpq/pqcomm.c:1091
+# fe-auth.c:640
+#: libpq/hba.c:801
 #, c-format
-msgid "invalid message length"
-msgstr "无效的信息长度"
+msgid "authentication method \"%s\" requires argument \"%s\" to be set"
+msgstr "在认证方法\"%s\"需要设置参数\"%s\" "
 
-#: libpq/pqcomm.c:1113 libpq/pqcomm.c:1123
+#: libpq/hba.c:822
 #, c-format
-msgid "incomplete message from client"
-msgstr "从客户端过来的不完整信息"
+msgid "missing entry in file \"%s\" at end of line %d"
+msgstr "在 \"%s\" 文件的第 %d 行末尾缺少记录"
 
-#: libpq/pqcomm.c:1253
+#: libpq/hba.c:832
 #, c-format
-msgid "could not send data to client: %m"
-msgstr "无法发送数据给客户端: %m"
+msgid "multiple values in ident field"
+msgstr "识别字段出现多个值"
 
-#: libpq/pqformat.c:436
+#: libpq/hba.c:877
 #, c-format
-msgid "no data left in message"
-msgstr "信息中已经没有数据了"
+msgid "multiple values specified for connection type"
+msgstr "连接类型指定了多个值"
 
-#: libpq/pqformat.c:556 libpq/pqformat.c:574 libpq/pqformat.c:595
-#: utils/adt/arrayfuncs.c:1410 utils/adt/rowtypes.c:572
+#: libpq/hba.c:878
 #, c-format
-msgid "insufficient data left in message"
-msgstr "信息中剩下的数据不够"
+msgid "Specify exactly one connection type per line."
+msgstr "每行精确指定一个连接类型."
 
-#: libpq/pqformat.c:636
+# input.c:213
+#: libpq/hba.c:891
 #, c-format
-msgid "invalid string in message"
-msgstr "信息中的无效字串"
+msgid "local connections are not supported by this build"
+msgstr "这个版本编译不支持本地连接"
 
-#: libpq/pqformat.c:652
+#: libpq/hba.c:912
 #, c-format
-msgid "invalid message format"
-msgstr "无效的信息格式"
+msgid "hostssl requires SSL to be turned on"
+msgstr "hostssl 要求开启 SSL开关"
 
-#: main/main.c:233
+#: libpq/hba.c:913
 #, c-format
-msgid "%s: setsysinfo failed: %s\n"
-msgstr "%s: setsysinfo 失败: %s\n"
+msgid "Set ssl = on in postgresql.conf."
+msgstr "在postgresql.conf配置文件中设置 ssl 开关为 on."
 
-#: main/main.c:255
+# input.c:213
+#: libpq/hba.c:921
 #, c-format
-msgid "%s: WSAStartup failed: %d\n"
-msgstr "%s: WSAStartup 失败: %d\n"
+msgid "hostssl is not supported by this build"
+msgstr "这个版本的编译安装不支持使用hostssl"
 
-#: main/main.c:274
+#: libpq/hba.c:922
 #, c-format
-msgid ""
-"%s is the PostgreSQL server.\n"
-"\n"
-msgstr ""
-"%s 是 PostgreSQL 服务器.\n"
-"\n"
+msgid "Compile with --with-openssl to use SSL connections."
+msgstr "为了使用SSL连接,在编译时需要带有 --with-openssl选项"
 
-#: main/main.c:275
+# fe-connect.c:2558
+#: libpq/hba.c:944
 #, c-format
-msgid ""
-"Usage:\n"
-"  %s [OPTION]...\n"
-"\n"
-msgstr ""
-"用法:\n"
-"  %s [选项]...\n"
-"\n"
+msgid "invalid connection type \"%s\""
+msgstr "无效连接类型\"%s\""
 
-#: main/main.c:276
+#: libpq/hba.c:957
 #, c-format
-msgid "Options:\n"
-msgstr "选项:\n"
+msgid "end-of-line before database specification"
+msgstr "在数据库定义前面出现行结束符"
 
-#: main/main.c:278
+#: libpq/hba.c:976
 #, c-format
-msgid "  -A 1|0             enable/disable run-time assert checking\n"
-msgstr "  -A 1|0             打开/关闭运行时断言检查\n"
+msgid "end-of-line before role specification"
+msgstr "在角色定义前面出现行结束符"
 
-#: main/main.c:280
+#: libpq/hba.c:997
 #, c-format
-msgid "  -B NBUFFERS        number of shared buffers\n"
-msgstr "  -B NBUFFERS        共享缓冲区的数量\n"
+msgid "end-of-line before IP address specification"
+msgstr "在IP地址定义前面出现行结束符"
 
-#: main/main.c:281
+#: libpq/hba.c:1007
 #, c-format
-msgid "  -c NAME=VALUE      set run-time parameter\n"
-msgstr "  -c NAME=VALUE      设置运行时参数\n"
+msgid "multiple values specified for host address"
+msgstr "主机地址指定了多个值"
 
-#: main/main.c:282
+#: libpq/hba.c:1008
 #, c-format
-msgid "  -C NAME            print value of run-time parameter, then exit\n"
-msgstr "  -C NAME            打印运行时参数, 然后退出\n"
+msgid "Specify one address range per line."
+msgstr "每行指定一个地址范围."
 
-#: main/main.c:283
+#: libpq/hba.c:1062
 #, c-format
-msgid "  -d 1-5             debugging level\n"
-msgstr "  -d 1-5             调试级别\n"
+msgid "invalid IP address \"%s\": %s"
+msgstr "IP地址无效\"%s\": %s"
 
-#: main/main.c:284
+#: libpq/hba.c:1080
 #, c-format
-msgid "  -D DATADIR         database directory\n"
-msgstr "  -D DATADIR         数据库目录\n"
+msgid "specifying both host name and CIDR mask is invalid: \"%s\""
+msgstr "指定主机名,同时 CIDR 掩码: \"%s\"值无效"
 
-#: main/main.c:285
+#: libpq/hba.c:1092
 #, c-format
-msgid "  -e                 use European date input format (DMY)\n"
-msgstr "  -e                 使用欧洲日期输入格式 (DMY)\n"
+msgid "invalid CIDR mask in address \"%s\""
+msgstr "在地址\"%s\"中的CIDR掩码无效"
 
-#: main/main.c:286
+#: libpq/hba.c:1109
 #, c-format
-msgid "  -F                 turn fsync off\n"
-msgstr "  -F                关闭 fsync\n"
+msgid "end-of-line before netmask specification"
+msgstr "在网络掩码定义前的行结束符"
 
-#: main/main.c:287
+#: libpq/hba.c:1110
 #, c-format
-msgid "  -h HOSTNAME        host name or IP address to listen on\n"
-msgstr "  -h HOSTNAME        侦听的主机名或者 IP 地址\n"
+msgid ""
+"Specify an address range in CIDR notation, or provide a separate netmask."
+msgstr "使用CIDR 符号指定地址范围, 或者提供独立的网络掩码."
 
-#: main/main.c:288
+#: libpq/hba.c:1120
 #, c-format
-msgid "  -i                 enable TCP/IP connections\n"
-msgstr "  -i                 打开 TCP/IP 连接\n"
+msgid "multiple values specified for netmask"
+msgstr "网络掩码指定了多个值"
 
-#: main/main.c:289
+#: libpq/hba.c:1133
 #, c-format
-msgid "  -k DIRECTORY       Unix-domain socket location\n"
-msgstr "  -k DIRECTORY       Unix 域套接字的目录位置\n"
+msgid "invalid IP mask \"%s\": %s"
+msgstr "无效IP地址掩码\"%s\": %s"
 
-#: main/main.c:291
+#: libpq/hba.c:1150
 #, c-format
-msgid "  -l                 enable SSL connections\n"
-msgstr "  -l                  开启 SSL 连接\n"
+msgid "IP address and mask do not match"
+msgstr "IP地址与掩码不匹配"
 
-#: main/main.c:293
+#: libpq/hba.c:1165
 #, c-format
-msgid "  -N MAX-CONNECT     maximum number of allowed connections\n"
-msgstr "  -N MAX-CONNECT     允许建立的最大连接数目\n"
+msgid "end-of-line before authentication method"
+msgstr "在认证方法前面出现行结束符"
 
-#: main/main.c:294
+#: libpq/hba.c:1175
 #, c-format
-msgid ""
-"  -o OPTIONS         pass \"OPTIONS\" to each server process (obsolete)\n"
-msgstr ""
-"  -o OPTIONS          把 \"OPTIONS\" 传递给每一个后端服务器进程(已作废)\n"
+msgid "multiple values specified for authentication type"
+msgstr "认证类型指定了多个值"
 
-#: main/main.c:295
+#: libpq/hba.c:1176
 #, c-format
-msgid "  -p PORT            port number to listen on\n"
-msgstr "  -p PORT            监听的端口号\n"
+msgid "Specify exactly one authentication type per line."
+msgstr "每行精确指定一个认证类型."
 
-#: main/main.c:296
+#: libpq/hba.c:1243
 #, c-format
-msgid "  -s                 show statistics after each query\n"
-msgstr "  -s                 每个查询后显示统计信息\n"
+msgid "invalid authentication method \"%s\""
+msgstr "无效认证方法\"%s\""
 
-#: main/main.c:297
+# fe-auth.c:640
+#: libpq/hba.c:1254
 #, c-format
-msgid "  -S WORK-MEM        set amount of memory for sorts (in kB)\n"
-msgstr "  -S WORK-MEM        设置排序内存数量 (单位为 kB)\n"
+msgid "invalid authentication method \"%s\": not supported by this build"
+msgstr "这个版本的编译安装不支持无效的认证方法\"%s\""
 
-#: main/main.c:298
+#: libpq/hba.c:1275
 #, c-format
-msgid "  -V, --version      output version information, then exit\n"
-msgstr "  -V, --version      输出版本信息,然后退出\n"
+msgid "gssapi authentication is not supported on local sockets"
+msgstr "在本地套接字上不支持gssapi认证"
 
-#: main/main.c:299
+#: libpq/hba.c:1286
 #, c-format
-msgid "  --NAME=VALUE       set run-time parameter\n"
-msgstr "  --NAME=VALUE       设置运行时参数\n"
+msgid "peer authentication is only supported on local sockets"
+msgstr "对等认证只支持在本地套接字的情形下使用"
 
-#: main/main.c:300
+#: libpq/hba.c:1303
 #, c-format
-msgid "  --describe-config  describe configuration parameters, then exit\n"
-msgstr "  --describe-config  描述配置参数, 然后退出\n"
+msgid "cert authentication is only supported on hostssl connections"
+msgstr "只有在hostssl连接上才支持cert认证"
 
-#: main/main.c:301
+#: libpq/hba.c:1328
 #, c-format
-msgid "  -?, --help         show this help, then exit\n"
-msgstr "  -?, --help         显示帮助信息,然后退出\n"
+msgid "authentication option not in name=value format: %s"
+msgstr "认证选项的格式不是名称=值:%s"
 
-#: main/main.c:303
+#: libpq/hba.c:1365
 #, c-format
+#| msgid ""
+#| "cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, or ldapsearchattribute "
+#| "together with ldapprefix"
 msgid ""
-"\n"
-"Developer options:\n"
+"cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, or "
+"ldapurl together with ldapprefix"
 msgstr ""
-"\n"
-"开发人员选项:\n"
+"无法和ldapprefix一同使用ldapbasedn, ldapbinddn, ldapbindpasswd, "
+"ldapsearchattribute或ldapurl"
 
-#: main/main.c:304
+# fe-auth.c:640
+#: libpq/hba.c:1375
 #, c-format
-msgid "  -f s|i|n|m|h       forbid use of some plan types\n"
-msgstr "  -f s|i|n|m|h       禁止一些计划类型的使用\n"
+msgid ""
+"authentication method \"ldap\" requires argument \"ldapbasedn\", \"ldapprefix"
+"\", or \"ldapsuffix\" to be set"
+msgstr ""
+"在认证方法\"ldap\"中需要设置参数 \"ldapbasedn\", \"ldapprefix\"或\"ldapsuffix"
+"\""
+
+#: libpq/hba.c:1418
+#| msgid "ident, peer, krb5, gssapi, sspi, and cert"
+msgid "ident, peer, gssapi, sspi, and cert"
+msgstr "ident, peer, gssapi, sspi和cert"
+
+#: libpq/hba.c:1431
+#, c-format
+msgid "clientcert can only be configured for \"hostssl\" rows"
+msgstr "只能为\"hostssl\" 记录配置clientcert "
 
-#: main/main.c:305
+#: libpq/hba.c:1442
 #, c-format
 msgid ""
-"  -n                 do not reinitialize shared memory after abnormal exit\n"
-msgstr "  -n                 在异常退出之后不再重新初始化共享内存\n"
+"client certificates can only be checked if a root certificate store is "
+"available"
+msgstr "只有在根认证有效的情况下才能检查客户端认证"
 
-#: main/main.c:306
+#: libpq/hba.c:1443
 #, c-format
-msgid "  -O                 allow system table structure changes\n"
-msgstr "  -O                  允许改变系统表结构\n"
+msgid "Make sure the configuration parameter \"ssl_ca_file\" is set."
+msgstr "确保配置参数\"ssl_ca_file\"已经设置."
 
-#: main/main.c:307
+#: libpq/hba.c:1456
 #, c-format
-msgid "  -P                 disable system indexes\n"
-msgstr "  -P                 关闭系统索引\n"
+msgid "clientcert can not be set to 0 when using \"cert\" authentication"
+msgstr "当使用\"cert\"认证时clientcert不能设置为0"
 
-#: main/main.c:308
+# fe-lobj.c:400 fe-lobj.c:483
+#: libpq/hba.c:1483
 #, c-format
-msgid "  -t pa|pl|ex        show timings after each query\n"
-msgstr "  -t pa|pl|ex        每个查询后显示计时\n"
+#| msgid "could not open file \"%s\": %s"
+msgid "could not parse LDAP URL \"%s\": %s"
+msgstr "无法解析LDAP URL \"%s\": %s"
 
-#: main/main.c:309
+#: libpq/hba.c:1491
 #, c-format
-msgid ""
-"  -T                 send SIGSTOP to all backend processes if one dies\n"
-msgstr ""
-"  -T                 如果一个后端进程退出, 那么向所有后端进程发送 SIGSTOP\n"
+#| msgid "unsupported format code: %d"
+msgid "unsupported LDAP URL scheme: %s"
+msgstr "不支持的LDAP URL模式: %s"
 
-#: main/main.c:310
+#: libpq/hba.c:1507
 #, c-format
-msgid "  -W NUM             wait NUM seconds to allow attach from a debugger\n"
-msgstr "  -W NUM            等待 NUM 秒, 以便允许调试器加入调试\n"
+msgid "filters not supported in LDAP URLs"
+msgstr "LDAP的URL不支持过滤器"
 
-#: main/main.c:312
+#: libpq/hba.c:1515
 #, c-format
-msgid ""
-"\n"
-"Options for single-user mode:\n"
-msgstr ""
-"\n"
-"单用户模式的选项:\n"
+#| msgid "LDAP over SSL is not supported on this platform."
+msgid "LDAP URLs not supported on this platform"
+msgstr "LDAP URL不能用于此平台"
 
-# help.c:109
-#: main/main.c:313
+#: libpq/hba.c:1539
 #, c-format
-msgid ""
-"  --single           selects single-user mode (must be first argument)\n"
-msgstr "  --single           选择单用户模式(必须是第一个参数)\n"
+msgid "invalid LDAP port number: \"%s\""
+msgstr "无效LDAP端口号: \"%s\""
 
-# help.c:136
-#: main/main.c:314
+#: libpq/hba.c:1579 libpq/hba.c:1586
+#| msgid "krb5, gssapi, and sspi"
+msgid "gssapi and sspi"
+msgstr "gssapi, 和sspi"
+
+#: libpq/hba.c:1628
 #, c-format
-msgid "  DBNAME             database name (defaults to user name)\n"
-msgstr "  DBNAME             数据库名称(对用户名缺省)\n"
+msgid "invalid RADIUS port number: \"%s\""
+msgstr "无效RADIUS端口号: \"%s\""
 
-#: main/main.c:315
+#: libpq/hba.c:1648
 #, c-format
-msgid "  -d 0-5             override debugging level\n"
-msgstr "  -d 0-5             覆盖调试级别\n"
+msgid "unrecognized authentication option name: \"%s\""
+msgstr "未知认证选项名称:\"%s\""
 
-#: main/main.c:316
+#: libpq/hba.c:1839
 #, c-format
-msgid "  -E                 echo statement before execution\n"
-msgstr "  -E                 执行前显示语句\n"
+msgid "configuration file \"%s\" contains no entries"
+msgstr "配置文件 \"%s\" 没有配置项"
 
-#: main/main.c:317
+#: libpq/hba.c:1935
 #, c-format
-msgid ""
-"  -j                 do not use newline as interactive query delimiter\n"
-msgstr "  -j                 不使用新行作为交互查询的分隔符\n"
+msgid "invalid regular expression \"%s\": %s"
+msgstr "无效的正则表达式\"%s\": %s"
 
-#: main/main.c:318 main/main.c:323
+#: libpq/hba.c:1995
 #, c-format
-msgid "  -r FILENAME        send stdout and stderr to given file\n"
-msgstr "  -r FILENAME        把标准输出和标准错误发送到指定的文件中\n"
+msgid "regular expression match for \"%s\" failed: %s"
+msgstr "正则表达式匹配\"%s\"失败:%s"
 
-#: main/main.c:320
+#: libpq/hba.c:2012
 #, c-format
 msgid ""
-"\n"
-"Options for bootstrapping mode:\n"
-msgstr ""
-"\n"
-"引导模式的选项:\n"
+"regular expression \"%s\" has no subexpressions as requested by "
+"backreference in \"%s\""
+msgstr "正则表达式\"%s\"没有在\"%s\"中的后项引用所要求的子表达式."
 
-#: main/main.c:321
+#: libpq/hba.c:2108
 #, c-format
-msgid ""
-"  --boot             selects bootstrapping mode (must be first argument)\n"
-msgstr "  --boot             选择引导模式(必须是第一个参数)\n"
+msgid "provided user name (%s) and authenticated user name (%s) do not match"
+msgstr "所提供的用户名(%s)和被认证的用户名(%s) 不匹配"
 
-#: main/main.c:322
+#: libpq/hba.c:2128
 #, c-format
-msgid ""
-"  DBNAME             database name (mandatory argument in bootstrapping "
-"mode)\n"
-msgstr "  DBNAME             数据库名称(在引导模式中是必选参数)\n"
+msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\""
+msgstr "对于以\"%3$s\"身份认证为的用户\"%2$s\",在用户映射\"%1$s\"中没有匹配"
 
-#: main/main.c:324
+#: libpq/hba.c:2163
 #, c-format
-msgid "  -x NUM             internal use\n"
-msgstr "  -x NUM             内部使用\n"
+msgid "could not open usermap file \"%s\": %m"
+msgstr "无法打开用户映射文件\"%s\": %m"
 
-#: main/main.c:326
+#: libpq/pqcomm.c:314
 #, c-format
-msgid ""
-"\n"
-"Please read the documentation for the complete list of run-time\n"
-"configuration settings and how to set them on the command line or in\n"
-"the configuration file.\n"
-"\n"
-"Report bugs to <pgsql-bugs@postgresql.org>.\n"
-msgstr ""
-"\n"
-"请阅读文档获取运行时配置设置的完整列表\n"
-"以及如何在命令行或者在配置文件里设置它们的详细信息.\n"
-"\n"
-"请向 <pgsql-bugs@postgresql.org> 报告臭虫.\n"
+msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)"
+msgstr "Unix域的套接字路径 \"%s\" 超长(最大为%d字节)"
 
-#: main/main.c:340
+#: libpq/pqcomm.c:335
 #, c-format
-msgid ""
-"\"root\" execution of the PostgreSQL server is not permitted.\n"
-"The server must be started under an unprivileged user ID to prevent\n"
-"possible system security compromise.  See the documentation for\n"
-"more information on how to properly start the server.\n"
-msgstr ""
-"不允许 \"root\" 执行 PostgreSQL 服务器.\n"
-"服务器必须以一个非特权的用户身份启动以避免\n"
-"可能的系统安全性问题. 参阅文档获取更多\n"
-"有关如何正确启动服务器的信息.\n"
+msgid "could not translate host name \"%s\", service \"%s\" to address: %s"
+msgstr "无法解析主机名 \"%s\", 服务 \"%s\" 到地址: %s"
 
-#: main/main.c:357
+#: libpq/pqcomm.c:339
 #, c-format
-msgid "%s: real and effective user IDs must match\n"
-msgstr "%s: 真实和有效用户标识必须相互匹配\n"
+msgid "could not translate service \"%s\" to address: %s"
+msgstr "无法解析服务 \"%s\" 到地址: %s"
 
-#: main/main.c:364
+#: libpq/pqcomm.c:366
 #, c-format
-msgid ""
-"Execution of PostgreSQL by a user with administrative permissions is not\n"
-"permitted.\n"
-"The server must be started under an unprivileged user ID to prevent\n"
-"possible system security compromises.  See the documentation for\n"
-"more information on how to properly start the server.\n"
-msgstr ""
-"不允许管理员权限的用户运行 PostgreSQL 服务器.\n"
-"服务器必须以一个非特权的用户身份启动以避免\n"
-"可能的系统安全性问题. 参阅文档获取更多\n"
-"有关如何正确启动服务器的信息.\n"
+msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded"
+msgstr "无法绑定所有需要的地址:超过最大数量MAXLISTEN (%d)"
 
-#: main/main.c:385
-#, c-format
-msgid "%s: invalid effective UID: %d\n"
-msgstr "%s: 无效 UID: %d\n"
+#: libpq/pqcomm.c:375
+msgid "IPv4"
+msgstr "IPv4"
 
-#: main/main.c:398
-#, c-format
-msgid "%s: could not determine user name (GetUserName failed)\n"
-msgstr "%s: 无法确定用户名称 (GetUserName 失败)\n"
+#: libpq/pqcomm.c:379
+msgid "IPv6"
+msgstr "IPv6"
+
+#: libpq/pqcomm.c:384
+msgid "Unix"
+msgstr "Unix"
 
-#: nodes/nodeFuncs.c:115 nodes/nodeFuncs.c:141 parser/parse_coerce.c:1781
-#: parser/parse_coerce.c:1809 parser/parse_coerce.c:1885
-#: parser/parse_expr.c:1632 parser/parse_func.c:367 parser/parse_oper.c:947
+#: libpq/pqcomm.c:389
 #, c-format
-msgid "could not find array type for data type %s"
-msgstr "无法为数据类型 %s 找到数组类型"
+msgid "unrecognized address family %d"
+msgstr "不认可的地址族 %d"
 
-#: optimizer/path/joinrels.c:676
+#. translator: %s is IPv4, IPv6, or Unix
+#: libpq/pqcomm.c:400
 #, c-format
-msgid ""
-"FULL JOIN is only supported with merge-joinable or hash-joinable join "
-"conditions"
-msgstr "只有在合并连接或哈希连接的查询条件中才支持FULL JOIN"
+msgid "could not create %s socket: %m"
+msgstr "无法创建 %s 套接字: %m"
 
-#: optimizer/plan/initsplan.c:592
+#: libpq/pqcomm.c:425
 #, c-format
-msgid ""
-"SELECT FOR UPDATE/SHARE cannot be applied to the nullable side of an outer "
-"join"
-msgstr "SELECT FOR UPDATE/SHARE不适用于外连接中可为空的那一端."
+msgid "setsockopt(SO_REUSEADDR) failed: %m"
+msgstr "setsockopt(SO_REUSEADDR) 失败: %m"
 
-#: optimizer/plan/planner.c:1031 parser/analyze.c:1384 parser/analyze.c:1579
-#: parser/analyze.c:2285
+#: libpq/pqcomm.c:440
 #, c-format
-msgid "SELECT FOR UPDATE/SHARE is not allowed with UNION/INTERSECT/EXCEPT"
-msgstr "在SELECT FOR UPDATE/SHARE中不允许带有关键词UNION/INTERSECT/EXCEPT"
+msgid "setsockopt(IPV6_V6ONLY) failed: %m"
+msgstr "setsockopt(IPV6_V6ONLY) 失败: %m"
 
-#: optimizer/plan/planner.c:2359
+#. translator: %s is IPv4, IPv6, or Unix
+#: libpq/pqcomm.c:459
 #, c-format
-msgid "could not implement GROUP BY"
-msgstr "无法实现GROUP BY语句"
+msgid "could not bind %s socket: %m"
+msgstr "无法绑定 %s 套接字: %m"
 
-#: optimizer/plan/planner.c:2360 optimizer/plan/planner.c:2532
-#: optimizer/prep/prepunion.c:822
+#: libpq/pqcomm.c:462
 #, c-format
 msgid ""
-"Some of the datatypes only support hashing, while others only support "
-"sorting."
-msgstr "一些数据类型只支持哈希,同时另外一些数据类型只支持排序."
+"Is another postmaster already running on port %d? If not, remove socket file "
+"\"%s\" and retry."
+msgstr ""
+"是否有其它 postmaster 已经在端口 %d 上运行了? 如果没有, 删除套接字文件 \"%s"
+"\" 然后再重试."
 
-#: optimizer/plan/planner.c:2531
+#: libpq/pqcomm.c:465
 #, c-format
-msgid "could not implement DISTINCT"
-msgstr "无法实现DISTINCT语句"
+msgid ""
+"Is another postmaster already running on port %d? If not, wait a few seconds "
+"and retry."
+msgstr ""
+"是否有其它 postmaster 已经在端口 %d 上运行了? 如果没有, 请等待几秒钟后然后再"
+"重试."
 
-#: optimizer/plan/planner.c:3122
+#. translator: %s is IPv4, IPv6, or Unix
+#: libpq/pqcomm.c:498
 #, c-format
-msgid "could not implement window PARTITION BY"
-msgstr "æ\97 æ³\95å®\9eç\8e°ä¸\8eçª\97å\8f£å\87½æ\95°ä¸\80å\90\8c使ç\94¨PARTITION BYå­\90å\8f¥"
+msgid "could not listen on %s socket: %m"
+msgstr "æ\97 æ³\95å\9c¨ %s å¥\97æ\8e¥å­\97ä¸\8aç\9b\91å\90¬: %m"
 
-#: optimizer/plan/planner.c:3123
+#: libpq/pqcomm.c:588
 #, c-format
-msgid "Window partitioning columns must be of sortable datatypes."
-msgstr "çª\97å\8f£å\88\86å\8cºå\88\97å¿\85é¡»å±\9eäº\8eå\8f¯æ\8e\92åº\8fç\9a\84æ\95°æ\8d®ç±»å\9e\8b"
+msgid "group \"%s\" does not exist"
+msgstr "ç»\84 \"%s\" ä¸\8då­\98å\9c¨"
 
-#: optimizer/plan/planner.c:3127
+#: libpq/pqcomm.c:598
 #, c-format
-msgid "could not implement window ORDER BY"
-msgstr "无法实现与窗口函数一同使用ORDER BY 语句"
+msgid "could not set group of file \"%s\": %m"
+msgstr "无法设置文件 \"%s\" 的组: %m"
 
-#: optimizer/plan/planner.c:3128
+#: libpq/pqcomm.c:609
 #, c-format
-msgid "Window ordering columns must be of sortable datatypes."
-msgstr "窗口的排序列必须属于可排序的数据类型"
+msgid "could not set permissions of file \"%s\": %m"
+msgstr "无法设置文件 \"%s\" 的权限: %m"
 
-#: optimizer/plan/setrefs.c:255
+#: libpq/pqcomm.c:639
 #, c-format
-msgid "too many range table entries"
-msgstr "太多范围表"
+msgid "could not accept new connection: %m"
+msgstr "无法访问新联接: %m"
 
-#: optimizer/prep/prepunion.c:416
+#: libpq/pqcomm.c:811
 #, c-format
-msgid "could not implement recursive UNION"
-msgstr "无法实现递归UNION操作"
+#| msgid "could not set socket to non-blocking mode: %m"
+msgid "could not set socket to nonblocking mode: %m"
+msgstr "无法将套接字设为非阻塞模式: %m"
 
-#: optimizer/prep/prepunion.c:417
+#: libpq/pqcomm.c:817
 #, c-format
-msgid "All column datatypes must be hashable."
-msgstr "æ\89\80æ\9c\89å\88\97ç\9a\84æ\95°æ\8d®ç±»å\9e\8bå¿\85é¡»å\8f¯è¿\9bè¡\8cå\93\88å¸\8c计ç®\97."
+msgid "could not set socket to blocking mode: %m"
+msgstr "æ\97 æ³\95å°\86å¥\97æ\8e¥å­\97设置为é\98»å¡\9e模å¼\8f: %m"
 
-#. translator: %s is UNION, INTERSECT, or EXCEPT
-#: optimizer/prep/prepunion.c:821
+#: libpq/pqcomm.c:869 libpq/pqcomm.c:959
 #, c-format
-msgid "could not implement %s"
-msgstr "无法实现%s"
+msgid "could not receive data from client: %m"
+msgstr "无法从客户端获得数据: %m"
 
-#: optimizer/util/clauses.c:4358
+#: libpq/pqcomm.c:1110
 #, c-format
-msgid "SQL function \"%s\" during inlining"
-msgstr "SQL 函数 \"%s\" 在内联 (inlining) 期间"
+msgid "unexpected EOF within message length word"
+msgstr "在信息长度字里有意外的 EOF"
 
-#: optimizer/util/plancat.c:99
+#: libpq/pqcomm.c:1121
 #, c-format
-msgid "cannot access temporary or unlogged relations during recovery"
-msgstr "æ\97 æ³\95å\9c¨æ\81¢å¤\8dè¿\87ç¨\8b中访é\97®ä¸´æ\97¶å\85³ç³»æ\88\96é\9d\9eäº\8bå\8a¡æ\97¥å¿\97å\85³ç³»"
+msgid "invalid message length"
+msgstr "æ\97 æ\95\88ç\9a\84ä¿¡æ\81¯é\95¿åº¦"
 
-#: parser/analyze.c:621 parser/analyze.c:1129
+#: libpq/pqcomm.c:1143 libpq/pqcomm.c:1153
 #, c-format
-msgid "VALUES lists must all be the same length"
-msgstr "在VALUES列表中每个成员的长度必须相同"
+msgid "incomplete message from client"
+msgstr "从客户端过来的不完整信息"
 
-#: parser/analyze.c:663 parser/analyze.c:1262
+#: libpq/pqcomm.c:1283
 #, c-format
-msgid "VALUES must not contain table references"
-msgstr "在VALUES列表中不能包含对表的引用"
+msgid "could not send data to client: %m"
+msgstr "无法发送数据给客户端: %m"
 
-#: parser/analyze.c:677 parser/analyze.c:1276
+#: libpq/pqformat.c:436
 #, c-format
-msgid "VALUES must not contain OLD or NEW references"
-msgstr "在VALUES列表中不能包括对OLD或NEW的引用"
+msgid "no data left in message"
+msgstr "信息中已经没有数据了"
 
-#: parser/analyze.c:678 parser/analyze.c:1277
+#: libpq/pqformat.c:556 libpq/pqformat.c:574 libpq/pqformat.c:595
+#: utils/adt/arrayfuncs.c:1416 utils/adt/rowtypes.c:561
 #, c-format
-msgid "Use SELECT ... UNION ALL ... instead."
-msgstr "使ç\94¨SELECT ... UNION ALL ..."
+msgid "insufficient data left in message"
+msgstr "ä¿¡æ\81¯ä¸­å\89©ä¸\8bç\9a\84æ\95°æ\8d®ä¸\8då¤\9f"
 
-#: parser/analyze.c:783 parser/analyze.c:1289
+#: libpq/pqformat.c:636
 #, c-format
-msgid "cannot use aggregate function in VALUES"
-msgstr "在VALUES列表中不能使用聚合函数"
+msgid "invalid string in message"
+msgstr "信息中的无效字串"
 
-#: parser/analyze.c:789 parser/analyze.c:1295
+#: libpq/pqformat.c:652
 #, c-format
-msgid "cannot use window function in VALUES"
-msgstr "在VALUES列表中不能使用窗口函数"
+msgid "invalid message format"
+msgstr "无效的信息格式"
 
-#: parser/analyze.c:823
+#: main/main.c:262
 #, c-format
-msgid "INSERT has more expressions than target columns"
-msgstr "INSERT 的表达式多于指定的字段数"
+msgid "%s: setsysinfo failed: %s\n"
+msgstr "%s: setsysinfo 失败: %s\n"
 
-#: parser/analyze.c:841
+#: main/main.c:284
 #, c-format
-msgid "INSERT has more target columns than expressions"
-msgstr "INSERT 的指定字段数多于表达式"
+msgid "%s: WSAStartup failed: %d\n"
+msgstr "%s: WSAStartup 失败: %d\n"
 
-#: parser/analyze.c:845
+#: main/main.c:313
 #, c-format
 msgid ""
-"The insertion source is a row expression containing the same number of "
-"columns expected by the INSERT. Did you accidentally use extra parentheses?"
+"%s is the PostgreSQL server.\n"
+"\n"
 msgstr ""
-"插入源是一个行表达式,里边的列个数与INSERT期望值相同. 您是否偶尔使用了额外的"
-"父表达式?"
+"%s 是 PostgreSQL 服务器.\n"
+"\n"
 
-#: parser/analyze.c:952 parser/analyze.c:1359
+#: main/main.c:314
 #, c-format
-msgid "SELECT ... INTO is not allowed here"
-msgstr "这儿不允许使用SELECT ... INTO"
+msgid ""
+"Usage:\n"
+"  %s [OPTION]...\n"
+"\n"
+msgstr ""
+"用法:\n"
+"  %s [选项]...\n"
+"\n"
 
-#: parser/analyze.c:1143
+#: main/main.c:315
 #, c-format
-msgid "DEFAULT can only appear in a VALUES list within INSERT"
-msgstr "DEFAULT只能在INSERT语句中的VALUES列表中出现"
+msgid "Options:\n"
+msgstr "选项:\n"
 
-#: parser/analyze.c:1251 parser/analyze.c:2436
+#: main/main.c:317
 #, c-format
-msgid "SELECT FOR UPDATE/SHARE cannot be applied to VALUES"
-msgstr "SELECT FOR UPDATE/SHARE 不能适用于一个 VALUES"
+msgid "  -A 1|0             enable/disable run-time assert checking\n"
+msgstr "  -A 1|0             打开/关闭运行时断言检查\n"
 
-#: parser/analyze.c:1507
+#: main/main.c:319
 #, c-format
-msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause"
-msgstr "无效的UNION/INTERSECT/EXCEPT ORDER BY 子句"
+msgid "  -B NBUFFERS        number of shared buffers\n"
+msgstr "  -B NBUFFERS        共享缓冲区的数量\n"
 
-#: parser/analyze.c:1508
+#: main/main.c:320
 #, c-format
-msgid "Only result column names can be used, not expressions or functions."
-msgstr "无法使用表达式或函数,只有结果列的名称可以使用."
+msgid "  -c NAME=VALUE      set run-time parameter\n"
+msgstr "  -c NAME=VALUE      设置运行时参数\n"
 
-#: parser/analyze.c:1509
+#: main/main.c:321
 #, c-format
-msgid ""
-"Add the expression/function to every SELECT, or move the UNION into a FROM "
-"clause."
-msgstr "对每个SELECT语句增加表达式/函数, 或者将UNION移动到FROM子句中."
+msgid "  -C NAME            print value of run-time parameter, then exit\n"
+msgstr "  -C NAME            打印运行时参数, 然后退出\n"
 
-#: parser/analyze.c:1571
+#: main/main.c:322
 #, c-format
-msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT"
-msgstr "INTO 只允许在 UNION/INTERSECT/EXCEPT 的第一个 SELECT 上使用"
+msgid "  -d 1-5             debugging level\n"
+msgstr "  -d 1-5             调试级别\n"
 
-#: parser/analyze.c:1631
+#: main/main.c:323
 #, c-format
-msgid ""
-"UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of "
-"same query level"
-msgstr "UNION/INTERSECT/EXCEPT的成员语句不能参考相同查询层次的其它关系"
+msgid "  -D DATADIR         database directory\n"
+msgstr "  -D DATADIR         数据库目录\n"
 
-#: parser/analyze.c:1719
+#: main/main.c:324
 #, c-format
-msgid "each %s query must have the same number of columns"
-msgstr "每一个 %s 查询必须有相同的字段个数"
+msgid "  -e                 use European date input format (DMY)\n"
+msgstr "  -e                 使用欧洲日期输入格式 (DMY)\n"
 
-#: parser/analyze.c:1995
+#: main/main.c:325
 #, c-format
-msgid "cannot use aggregate function in UPDATE"
-msgstr "在UPDATE语句中不能以使用聚合函数"
+msgid "  -F                 turn fsync off\n"
+msgstr "  -F                关闭 fsync\n"
 
-#: parser/analyze.c:2001
+#: main/main.c:326
 #, c-format
-msgid "cannot use window function in UPDATE"
-msgstr "在UPDATE语句中不能以使用窗口函数"
+msgid "  -h HOSTNAME        host name or IP address to listen on\n"
+msgstr "  -h HOSTNAME        侦听的主机名或者 IP 地址\n"
 
-#: parser/analyze.c:2110
+#: main/main.c:327
 #, c-format
-msgid "cannot use aggregate function in RETURNING"
-msgstr "在RETURNING子句中不能使用聚合函数"
+msgid "  -i                 enable TCP/IP connections\n"
+msgstr "  -i                 打开 TCP/IP 连接\n"
 
-#: parser/analyze.c:2116
+#: main/main.c:328
 #, c-format
-msgid "cannot use window function in RETURNING"
-msgstr "无法在RETURNING子句中使用窗口函数"
+msgid "  -k DIRECTORY       Unix-domain socket location\n"
+msgstr "  -k DIRECTORY       Unix 域套接字的目录位置\n"
 
-#: parser/analyze.c:2135
+#: main/main.c:330
 #, c-format
-msgid "RETURNING cannot contain references to other relations"
-msgstr "RETURNING关键词的后面不能包含对其它关系的引用"
+msgid "  -l                 enable SSL connections\n"
+msgstr "  -l                  开启 SSL 连接\n"
 
-#: parser/analyze.c:2174
+#: main/main.c:332
 #, c-format
-msgid "cannot specify both SCROLL and NO SCROLL"
-msgstr "不可同时指定 SCROLL 和 NO SCROLL"
+msgid "  -N MAX-CONNECT     maximum number of allowed connections\n"
+msgstr "  -N MAX-CONNECT     允许建立的最大连接数目\n"
 
-#: parser/analyze.c:2192
+#: main/main.c:333
 #, c-format
-msgid "DECLARE CURSOR must not contain data-modifying statements in WITH"
-msgstr "DECLARE CURSOR不能在WITH子句中包含修改数据的操作"
+msgid ""
+"  -o OPTIONS         pass \"OPTIONS\" to each server process (obsolete)\n"
+msgstr ""
+"  -o OPTIONS          把 \"OPTIONS\" 传递给每一个后端服务器进程(已作废)\n"
 
-#: parser/analyze.c:2198
+#: main/main.c:334
 #, c-format
-msgid "DECLARE CURSOR WITH HOLD ... FOR UPDATE/SHARE is not supported"
-msgstr "不支持DECLARE CURSOR WITH HOLD ... FOR UPDATE/SHARE"
+msgid "  -p PORT            port number to listen on\n"
+msgstr "  -p PORT            监听的端口号\n"
 
-#: parser/analyze.c:2199
+#: main/main.c:335
 #, c-format
-msgid "Holdable cursors must be READ ONLY."
-msgstr "可保持游标必须为只读."
+msgid "  -s                 show statistics after each query\n"
+msgstr "  -s                 每个查询后显示统计信息\n"
 
-#: parser/analyze.c:2212
+#: main/main.c:336
 #, c-format
-msgid "DECLARE INSENSITIVE CURSOR ... FOR UPDATE/SHARE is not supported"
-msgstr "不支持DECLARE INSENSITIVE CURSOR ... FOR UPDATE/SHARE"
+msgid "  -S WORK-MEM        set amount of memory for sorts (in kB)\n"
+msgstr "  -S WORK-MEM        设置排序内存数量 (单位为 kB)\n"
 
-#: parser/analyze.c:2213
+#: main/main.c:337
 #, c-format
-msgid "Insensitive cursors must be READ ONLY."
-msgstr "非敏感游标必须为只读模式(READ ONLY)."
+msgid "  -V, --version      output version information, then exit\n"
+msgstr "  -V, --version      输出版本信息,然后退出\n"
 
-#: parser/analyze.c:2289
+#: main/main.c:338
 #, c-format
-msgid "SELECT FOR UPDATE/SHARE is not allowed with DISTINCT clause"
-msgstr "SELECT FOR UPDATE/SHARE  不允许带 DISTINCT 子句"
+msgid "  --NAME=VALUE       set run-time parameter\n"
+msgstr "  --NAME=VALUE       设置运行时参数\n"
 
-#: parser/analyze.c:2293
+#: main/main.c:339
 #, c-format
-msgid "SELECT FOR UPDATE/SHARE is not allowed with GROUP BY clause"
-msgstr "SELECT FOR UPDATE/SHARE不允许带有GROUP BY子句"
+msgid "  --describe-config  describe configuration parameters, then exit\n"
+msgstr "  --describe-config  描述配置参数, 然后退出\n"
 
-#: parser/analyze.c:2297
+#: main/main.c:340
 #, c-format
-msgid "SELECT FOR UPDATE/SHARE is not allowed with HAVING clause"
-msgstr "SELECT FOR UPDATE/SHARE不允许带有HAVING子句"
+msgid "  -?, --help         show this help, then exit\n"
+msgstr "  -?, --help         显示帮助信息,然后退出\n"
 
-#: parser/analyze.c:2301
+#: main/main.c:342
 #, c-format
-msgid "SELECT FOR UPDATE/SHARE is not allowed with aggregate functions"
-msgstr "SELECT FOR UPDATE/SHARE不允许带聚合函数"
+msgid ""
+"\n"
+"Developer options:\n"
+msgstr ""
+"\n"
+"开发人员选项:\n"
 
-#: parser/analyze.c:2305
+#: main/main.c:343
 #, c-format
-msgid "SELECT FOR UPDATE/SHARE is not allowed with window functions"
-msgstr "SELECT FOR UPDATE/SHARE不允许带有窗口函数"
+msgid "  -f s|i|n|m|h       forbid use of some plan types\n"
+msgstr "  -f s|i|n|m|h       禁止一些计划类型的使用\n"
 
-#: parser/analyze.c:2309
+#: main/main.c:344
 #, c-format
 msgid ""
-"SELECT FOR UPDATE/SHARE is not allowed with set-returning functions in the "
-"target list"
-msgstr "在目标列表中,不允许SELECT FOR UPDATE/SHARE带有返回集合的函数"
+"  -n                 do not reinitialize shared memory after abnormal exit\n"
+msgstr "  -n                 在异常退出之后不再重新初始化共享内存\n"
 
-#: parser/analyze.c:2388
+#: main/main.c:345
 #, c-format
-msgid "SELECT FOR UPDATE/SHARE must specify unqualified relation names"
-msgstr "在SELECT FOR UPDATE/SHARE 语句中必须指定非限定的关系名称"
+msgid "  -O                 allow system table structure changes\n"
+msgstr "  -O                  允许改变系统表结构\n"
 
-#: parser/analyze.c:2405
+#: main/main.c:346
 #, c-format
-msgid "SELECT FOR UPDATE/SHARE cannot be used with foreign table \"%s\""
-msgstr "SELECT FOR UPDATE/SHARE 不能用于外部表\"%s\""
+msgid "  -P                 disable system indexes\n"
+msgstr "  -P                 关闭系统索引\n"
 
-#: parser/analyze.c:2424
+#: main/main.c:347
 #, c-format
-msgid "SELECT FOR UPDATE/SHARE cannot be applied to a join"
-msgstr "SELECT FOR UPDATE/SHARE 不能适用于一个联合 (join)"
+msgid "  -t pa|pl|ex        show timings after each query\n"
+msgstr "  -t pa|pl|ex        每个查询后显示计时\n"
 
-#: parser/analyze.c:2430
+#: main/main.c:348
 #, c-format
-msgid "SELECT FOR UPDATE/SHARE cannot be applied to a function"
-msgstr "SELECT FOR UPDATE/SHARE不适用于一个函数"
+msgid ""
+"  -T                 send SIGSTOP to all backend processes if one dies\n"
+msgstr ""
+"  -T                 如果一个后端进程退出, 那么向所有后端进程发送 SIGSTOP\n"
 
-#: parser/analyze.c:2442
+#: main/main.c:349
 #, c-format
-msgid "SELECT FOR UPDATE/SHARE cannot be applied to a WITH query"
-msgstr "SELECT FOR UPDATE/SHARE 不能适用于WITH查询"
+msgid "  -W NUM             wait NUM seconds to allow attach from a debugger\n"
+msgstr "  -W NUM            等待 NUM 秒, 以便允许调试器加入调试\n"
 
-#: parser/analyze.c:2456
+#: main/main.c:351
 #, c-format
-msgid "relation \"%s\" in FOR UPDATE/SHARE clause not found in FROM clause"
-msgstr "在FROM子句中的FOR UPDATE/SHARE子句中没有找到关系 \"%s\""
+msgid ""
+"\n"
+"Options for single-user mode:\n"
+msgstr ""
+"\n"
+"单用户模式的选项:\n"
 
-#: parser/parse_agg.c:129 parser/parse_oper.c:218
+# help.c:109
+#: main/main.c:352
 #, c-format
-msgid "could not identify an ordering operator for type %s"
-msgstr "无法为类型%s识别顺序操作符"
+msgid ""
+"  --single           selects single-user mode (must be first argument)\n"
+msgstr "  --single           选择单用户模式(必须是第一个参数)\n"
 
-#: parser/parse_agg.c:131
+# help.c:136
+#: main/main.c:353
 #, c-format
-msgid "Aggregates with DISTINCT must be able to sort their inputs."
-msgstr "带有DISTINCT关键字的聚合函数必须能够对它们的输入进行排序"
+msgid "  DBNAME             database name (defaults to user name)\n"
+msgstr "  DBNAME             数据库名称(对用户名缺省)\n"
 
-#: parser/parse_agg.c:172
+#: main/main.c:354
 #, c-format
-msgid "aggregate function calls cannot contain window function calls"
-msgstr "对于聚合函数调用不能包含窗口函数的调用"
+msgid "  -d 0-5             override debugging level\n"
+msgstr "  -d 0-5             覆盖调试级别\n"
 
-#: parser/parse_agg.c:243 parser/parse_clause.c:1630
+#: main/main.c:355
 #, c-format
-msgid "window \"%s\" does not exist"
-msgstr "窗口\"%s\"不存在"
+msgid "  -E                 echo statement before execution\n"
+msgstr "  -E                 执行前显示语句\n"
 
-#: parser/parse_agg.c:334
+#: main/main.c:356
 #, c-format
-msgid "aggregates not allowed in WHERE clause"
-msgstr "聚合函数不允许在 WHERE 子句中"
+msgid ""
+"  -j                 do not use newline as interactive query delimiter\n"
+msgstr "  -j                 不使用新行作为交互查询的分隔符\n"
 
-#: parser/parse_agg.c:340
+#: main/main.c:357 main/main.c:362
 #, c-format
-msgid "aggregates not allowed in JOIN conditions"
-msgstr "聚合函数不允许在 JOIN 条件中"
+msgid "  -r FILENAME        send stdout and stderr to given file\n"
+msgstr "  -r FILENAME        把标准输出和标准错误发送到指定的文件中\n"
 
-#: parser/parse_agg.c:361
+#: main/main.c:359
 #, c-format
-msgid "aggregates not allowed in GROUP BY clause"
-msgstr "聚合函数不允许在 GROUP BY 子句中"
+msgid ""
+"\n"
+"Options for bootstrapping mode:\n"
+msgstr ""
+"\n"
+"引导模式的选项:\n"
 
-#: parser/parse_agg.c:431
+#: main/main.c:360
 #, c-format
-msgid "aggregate functions not allowed in a recursive query's recursive term"
-msgstr "在递归查询的递归术语中不允许使用聚合函数"
+msgid ""
+"  --boot             selects bootstrapping mode (must be first argument)\n"
+msgstr "  --boot             选择引导模式(必须是第一个参数)\n"
 
-#: parser/parse_agg.c:456
+#: main/main.c:361
 #, c-format
-msgid "window functions not allowed in WHERE clause"
-msgstr "在WHERE子句中不允许出现窗口函数"
+msgid ""
+"  DBNAME             database name (mandatory argument in bootstrapping "
+"mode)\n"
+msgstr "  DBNAME             数据库名称(在引导模式中是必选参数)\n"
 
-#: parser/parse_agg.c:462
+#: main/main.c:363
 #, c-format
-msgid "window functions not allowed in JOIN conditions"
-msgstr "在 JOIN 条件中不允许出现窗口函数"
+msgid "  -x NUM             internal use\n"
+msgstr "  -x NUM             内部使用\n"
 
-#: parser/parse_agg.c:468
+#: main/main.c:365
 #, c-format
-msgid "window functions not allowed in HAVING clause"
-msgstr "在HAVING子句中不允许出现窗口函数"
+msgid ""
+"\n"
+"Please read the documentation for the complete list of run-time\n"
+"configuration settings and how to set them on the command line or in\n"
+"the configuration file.\n"
+"\n"
+"Report bugs to <pgsql-bugs@postgresql.org>.\n"
+msgstr ""
+"\n"
+"请阅读文档获取运行时配置设置的完整列表\n"
+"以及如何在命令行或者在配置文件里设置它们的详细信息.\n"
+"\n"
+"请向 <pgsql-bugs@postgresql.org> 报告臭虫.\n"
 
-#: parser/parse_agg.c:481
+#: main/main.c:379
 #, c-format
-msgid "window functions not allowed in GROUP BY clause"
-msgstr "在GROUP BY子句中不允许出现窗口函数"
+msgid ""
+"\"root\" execution of the PostgreSQL server is not permitted.\n"
+"The server must be started under an unprivileged user ID to prevent\n"
+"possible system security compromise.  See the documentation for\n"
+"more information on how to properly start the server.\n"
+msgstr ""
+"不允许 \"root\" 执行 PostgreSQL 服务器.\n"
+"服务器必须以一个非特权的用户身份启动以避免\n"
+"可能的系统安全性问题. 参阅文档获取更多\n"
+"有关如何正确启动服务器的信息.\n"
 
-#: parser/parse_agg.c:500 parser/parse_agg.c:513
+#: main/main.c:396
 #, c-format
-msgid "window functions not allowed in window definition"
-msgstr "在窗口定义中不允许出现窗口定义"
+msgid "%s: real and effective user IDs must match\n"
+msgstr "%s: 真实和有效用户标识必须相互匹配\n"
 
-#: parser/parse_agg.c:671
+#: main/main.c:403
 #, c-format
 msgid ""
-"column \"%s.%s\" must appear in the GROUP BY clause or be used in an "
-"aggregate function"
-msgstr "字段 \"%s.%s\" 必须出现在 GROUP BY 子句中或者在聚合函数中使用"
+"Execution of PostgreSQL by a user with administrative permissions is not\n"
+"permitted.\n"
+"The server must be started under an unprivileged user ID to prevent\n"
+"possible system security compromises.  See the documentation for\n"
+"more information on how to properly start the server.\n"
+msgstr ""
+"不允许管理员权限的用户运行 PostgreSQL 服务器.\n"
+"服务器必须以一个非特权的用户身份启动以避免\n"
+"可能的系统安全性问题. 参阅文档获取更多\n"
+"有关如何正确启动服务器的信息.\n"
 
-#: parser/parse_agg.c:677
+#: nodes/nodeFuncs.c:115 nodes/nodeFuncs.c:141 parser/parse_coerce.c:1782
+#: parser/parse_coerce.c:1810 parser/parse_coerce.c:1886
+#: parser/parse_expr.c:1739 parser/parse_func.c:590 parser/parse_oper.c:948
 #, c-format
-msgid "subquery uses ungrouped column \"%s.%s\" from outer query"
-msgstr "子查询使用了外层查询中的非分组列 \"%s.%s\" "
+msgid "could not find array type for data type %s"
+msgstr "无法为数据类型 %s 找到数组类型"
 
-#: parser/parse_clause.c:420
+#: optimizer/path/joinrels.c:722
 #, c-format
-msgid "JOIN/ON clause refers to \"%s\", which is not part of JOIN"
-msgstr "JOIN/ON子句引用的\"%s\"不属于JOIN操作的一部分"
+msgid ""
+"FULL JOIN is only supported with merge-joinable or hash-joinable join "
+"conditions"
+msgstr "只有在合并连接或哈希连接的查询条件中才支持FULL JOIN"
 
-#: parser/parse_clause.c:517
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: optimizer/plan/initsplan.c:1079
 #, c-format
-msgid "subquery in FROM cannot refer to other relations of same query level"
-msgstr "在FROM子句中的子查询无法参考相同查询级别中的关系"
+#| msgid ""
+#| "SELECT FOR UPDATE/SHARE cannot be applied to the nullable side of an "
+#| "outer join"
+msgid "%s cannot be applied to the nullable side of an outer join"
+msgstr "%s 不能用于外连接中的空值一边"
 
-#: parser/parse_clause.c:573
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: optimizer/plan/planner.c:1158 parser/analyze.c:1330 parser/analyze.c:1528
+#: parser/analyze.c:2287
 #, c-format
-msgid ""
-"function expression in FROM cannot refer to other relations of same query "
-"level"
-msgstr "在FROM子句中的函数表达式无法参考相同查询级别中的关系"
+#| msgid "SELECT FOR UPDATE/SHARE is not allowed with UNION/INTERSECT/EXCEPT"
+msgid "%s is not allowed with UNION/INTERSECT/EXCEPT"
+msgstr "%s不允许使用UNION/INTERSECT/EXCEPT"
 
-#: parser/parse_clause.c:586
+#: optimizer/plan/planner.c:2723
 #, c-format
-msgid "cannot use aggregate function in function expression in FROM"
-msgstr "不能在 FROM 中的函数表达式中使用聚合函数"
+msgid "could not implement GROUP BY"
+msgstr "无法实现GROUP BY语句"
 
-#: parser/parse_clause.c:593
+#: optimizer/plan/planner.c:2724 optimizer/plan/planner.c:2892
+#: optimizer/prep/prepunion.c:825
 #, c-format
-msgid "cannot use window function in function expression in FROM"
-msgstr "不能在FROM中的函数表达式中使用窗口函数"
+msgid ""
+"Some of the datatypes only support hashing, while others only support "
+"sorting."
+msgstr "一些数据类型只支持哈希,同时另外一些数据类型只支持排序."
 
-#: parser/parse_clause.c:870
+#: optimizer/plan/planner.c:2891
 #, c-format
-msgid "column name \"%s\" appears more than once in USING clause"
-msgstr "在 USING 子句中字段名 \"%s\" 出现多次"
+msgid "could not implement DISTINCT"
+msgstr "无法实现DISTINCT语句"
 
-#: parser/parse_clause.c:885
+#: optimizer/plan/planner.c:3497
 #, c-format
-msgid "common column name \"%s\" appears more than once in left table"
-msgstr "共同的字段名 \"%s\" 在左边的表中出现了多次"
+msgid "could not implement window PARTITION BY"
+msgstr "无法实现与窗口函数一同使用PARTITION BY子句"
 
-#: parser/parse_clause.c:894
+#: optimizer/plan/planner.c:3498
 #, c-format
-msgid "column \"%s\" specified in USING clause does not exist in left table"
-msgstr "USING 子句中指定的字段 \"%s\" 在左边的表中不存在"
+msgid "Window partitioning columns must be of sortable datatypes."
+msgstr "窗口分区列必须属于可排序的数据类型"
 
-#: parser/parse_clause.c:908
+#: optimizer/plan/planner.c:3502
 #, c-format
-msgid "common column name \"%s\" appears more than once in right table"
-msgstr "共同的字段名 \"%s\" 在右边的表中出现了多次"
+msgid "could not implement window ORDER BY"
+msgstr "无法实现与窗口函数一同使用ORDER BY 语句"
 
-#: parser/parse_clause.c:917
+#: optimizer/plan/planner.c:3503
 #, c-format
-msgid "column \"%s\" specified in USING clause does not exist in right table"
-msgstr "USING 子句中指定的字段 \"%s\" 在右边的表中不存在"
+msgid "Window ordering columns must be of sortable datatypes."
+msgstr "窗口的排序列必须属于可排序的数据类型"
 
-#: parser/parse_clause.c:974
+#: optimizer/plan/setrefs.c:402
 #, c-format
-msgid "column alias list for \"%s\" has too many entries"
-msgstr "\"%s\" 的字段别名列表有太多记录"
+msgid "too many range table entries"
+msgstr "太多范围表"
 
-#. translator: %s is name of a SQL construct, eg LIMIT
-#: parser/parse_clause.c:1221
+#: optimizer/prep/prepunion.c:419
 #, c-format
-msgid "argument of %s must not contain variables"
-msgstr "%s 的参数不能包含变量"
+msgid "could not implement recursive UNION"
+msgstr "无法实现递归UNION操作"
 
-#. translator: %s is name of a SQL construct, eg LIMIT
-#: parser/parse_clause.c:1232
+#: optimizer/prep/prepunion.c:420
 #, c-format
-msgid "argument of %s must not contain aggregate functions"
-msgstr "%s 的参数一定不能包含聚合函数"
+msgid "All column datatypes must be hashable."
+msgstr "所有列的数据类型必须可进行哈希计算."
 
-#. translator: %s is name of a SQL construct, eg LIMIT
-#: parser/parse_clause.c:1243
+#. translator: %s is UNION, INTERSECT, or EXCEPT
+#: optimizer/prep/prepunion.c:824
 #, c-format
-msgid "argument of %s must not contain window functions"
-msgstr "%s 的参数一定不能包含窗口函数"
+msgid "could not implement %s"
+msgstr "无法实现%s"
 
-#. translator: first %s is name of a SQL construct, eg ORDER BY
-#: parser/parse_clause.c:1360
+#: optimizer/util/clauses.c:4529
 #, c-format
-msgid "%s \"%s\" is ambiguous"
-msgstr "%s \"%s\" 是不明确的"
+msgid "SQL function \"%s\" during inlining"
+msgstr "SQL 函数 \"%s\" 在内联 (inlining) 期间"
 
-#. translator: %s is name of a SQL construct, eg ORDER BY
-#: parser/parse_clause.c:1384
+#: optimizer/util/plancat.c:104
 #, c-format
-msgid "non-integer constant in %s"
-msgstr "在 %s 中的非整数常量"
+msgid "cannot access temporary or unlogged relations during recovery"
+msgstr "无法在恢复过程中访问临时关系或非事务日志关系"
 
-#. translator: %s is name of a SQL construct, eg ORDER BY
-#: parser/parse_clause.c:1402
+#: parser/analyze.c:627 parser/analyze.c:1102
 #, c-format
-msgid "%s position %d is not in select list"
-msgstr "%s 位置%d不在select列表中."
+msgid "VALUES lists must all be the same length"
+msgstr "在VALUES列表中每个成员的长度必须相同"
 
-#: parser/parse_clause.c:1618
+#: parser/analyze.c:794
 #, c-format
-msgid "window \"%s\" is already defined"
-msgstr "已经定义窗口\"%s\""
+msgid "INSERT has more expressions than target columns"
+msgstr "INSERT 的表达式多于指定的字段数"
 
-#: parser/parse_clause.c:1672
+#: parser/analyze.c:812
 #, c-format
-msgid "cannot override PARTITION BY clause of window \"%s\""
-msgstr "无法覆盖窗口\"%s\"的PARTITION BY子句"
+msgid "INSERT has more target columns than expressions"
+msgstr "INSERT 的指定字段数多于表达式"
 
-#: parser/parse_clause.c:1684
+#: parser/analyze.c:816
 #, c-format
-msgid "cannot override ORDER BY clause of window \"%s\""
-msgstr "无法覆盖窗口 \"%s\"的ORDER BY子句"
+msgid ""
+"The insertion source is a row expression containing the same number of "
+"columns expected by the INSERT. Did you accidentally use extra parentheses?"
+msgstr ""
+"插入源是一个行表达式,里边的列个数与INSERT期望值相同. 您是否偶尔使用了额外的"
+"父表达式?"
 
-#: parser/parse_clause.c:1706
+#: parser/analyze.c:924 parser/analyze.c:1303
 #, c-format
-msgid "cannot override frame clause of window \"%s\""
-msgstr "无法覆盖窗口\"%s\"的框架(frame)子句"
+msgid "SELECT ... INTO is not allowed here"
+msgstr "这儿不允许使用SELECT ... INTO"
 
-#: parser/parse_clause.c:1772
+#: parser/analyze.c:1116
 #, c-format
-msgid ""
-"in an aggregate with DISTINCT, ORDER BY expressions must appear in argument "
-"list"
-msgstr ""
-"在带有DISTINCT子句的聚合函数中,ORDER BY子句后面的表达式必须在参数列表中出现"
+msgid "DEFAULT can only appear in a VALUES list within INSERT"
+msgstr "DEFAULT只能在INSERT语句中的VALUES列表中出现"
 
-#: parser/parse_clause.c:1773
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: parser/analyze.c:1235 parser/analyze.c:2459
 #, c-format
-msgid "for SELECT DISTINCT, ORDER BY expressions must appear in select list"
-msgstr "在查询列表中必须出现SELECT DISTINCT, ORDER BY表达式"
+#| msgid "SELECT FOR UPDATE/SHARE cannot be applied to VALUES"
+msgid "%s cannot be applied to VALUES"
+msgstr "%s 不能用于 VALUES"
 
-#: parser/parse_clause.c:1859 parser/parse_clause.c:1891
+#: parser/analyze.c:1456
 #, c-format
-msgid "SELECT DISTINCT ON expressions must match initial ORDER BY expressions"
-msgstr "表达式SELECT DISTINCT ON必须匹配初始化的ORDER BY表达式"
+msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause"
+msgstr "无效的UNION/INTERSECT/EXCEPT ORDER BY 子句"
 
-#: parser/parse_clause.c:2013
+#: parser/analyze.c:1457
 #, c-format
-msgid "operator %s is not a valid ordering operator"
-msgstr "æ\93\8dä½\9c符%sä¸\8dæ\97¶æ\9c\89æ\95\88ç\9a\84æ\8e\92åº\8fæ\93\8dä½\9c符"
+msgid "Only result column names can be used, not expressions or functions."
+msgstr "æ\97 æ³\95使ç\94¨è¡¨è¾¾å¼\8fæ\88\96å\87½æ\95°ï¼\8cå\8fªæ\9c\89ç»\93æ\9e\9cå\88\97ç\9a\84å\90\8dç§°å\8f¯ä»¥ä½¿ç\94¨."
 
-#: parser/parse_clause.c:2015
+#: parser/analyze.c:1458
 #, c-format
 msgid ""
-"Ordering operators must be \"<\" or \">\" members of btree operator families."
-msgstr "顺序操作符必须是btree操作符家族的成员\"<\"或\">\"."
+"Add the expression/function to every SELECT, or move the UNION into a FROM "
+"clause."
+msgstr "对每个SELECT语句增加表达式/函数, 或者将UNION移动到FROM子句中."
 
-#: parser/parse_coerce.c:932 parser/parse_coerce.c:962
-#: parser/parse_coerce.c:980 parser/parse_coerce.c:995
-#: parser/parse_expr.c:1666 parser/parse_expr.c:2140 parser/parse_target.c:830
+#: parser/analyze.c:1518
 #, c-format
-msgid "cannot cast type %s to %s"
-msgstr "无法把类型 %s 转换为 %s"
+msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT"
+msgstr "INTO 只允许在 UNION/INTERSECT/EXCEPT 的第一个 SELECT 上使用"
 
-#: parser/parse_coerce.c:965
+#: parser/analyze.c:1582
 #, c-format
-msgid "Input has too few columns."
-msgstr "输入字段太少"
+msgid ""
+"UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of "
+"same query level"
+msgstr "UNION/INTERSECT/EXCEPT的成员语句不能参考相同查询层次的其它关系"
 
-#: parser/parse_coerce.c:983
+#: parser/analyze.c:1671
 #, c-format
-msgid "Cannot cast type %s to %s in column %d."
-msgstr "不能把第 %3$d 个字段的类型 %1$s 转换为 %2$s."
+msgid "each %s query must have the same number of columns"
+msgstr "每一个 %s 查询必须有相同的字段个数"
 
-#: parser/parse_coerce.c:998
+#: parser/analyze.c:2051
+#, c-format
+#| msgid "view must have at least one column"
+msgid "RETURNING must have at least one column"
+msgstr "RETURNING 必须至少有一列"
+
+#: parser/analyze.c:2088
+#, c-format
+msgid "cannot specify both SCROLL and NO SCROLL"
+msgstr "不可同时指定 SCROLL 和 NO SCROLL"
+
+#: parser/analyze.c:2106
+#, c-format
+msgid "DECLARE CURSOR must not contain data-modifying statements in WITH"
+msgstr "DECLARE CURSOR不能在WITH子句中包含修改数据的操作"
+
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: parser/analyze.c:2114
+#, c-format
+#| msgid "DECLARE CURSOR WITH HOLD ... FOR UPDATE/SHARE is not supported"
+msgid "DECLARE CURSOR WITH HOLD ... %s is not supported"
+msgstr "DECLARE CURSOR WITH HOLD ... %s不能使用"
+
+#: parser/analyze.c:2117
+#, c-format
+msgid "Holdable cursors must be READ ONLY."
+msgstr "可保持游标必须为只读."
+
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: parser/analyze.c:2125
+#, c-format
+#| msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported"
+msgid "DECLARE SCROLL CURSOR ... %s is not supported"
+msgstr "DECLARE SCROLL CURSOR ... %s不能使用"
+
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: parser/analyze.c:2136
+#, c-format
+#| msgid "DECLARE INSENSITIVE CURSOR ... FOR UPDATE/SHARE is not supported"
+msgid "DECLARE INSENSITIVE CURSOR ... %s is not supported"
+msgstr "DECLARE INSENSITIVE CURSOR ... %s不能使用"
+
+#: parser/analyze.c:2139
+#, c-format
+msgid "Insensitive cursors must be READ ONLY."
+msgstr "非敏感游标必须为只读模式(READ ONLY)."
+
+#: parser/analyze.c:2205
+#, c-format
+#| msgid "views must not contain data-modifying statements in WITH"
+msgid "materialized views must not use data-modifying statements in WITH"
+msgstr "物化视图不能包含修改数据的WITH子句"
+
+#: parser/analyze.c:2215
+#, c-format
+#| msgid "Sets the tablespace(s) to use for temporary tables and sort files."
+msgid "materialized views must not use temporary tables or views"
+msgstr "物化视图不能使用临时表或视图"
+
+#: parser/analyze.c:2225
+#, c-format
+msgid "materialized views may not be defined using bound parameters"
+msgstr "物化视图在绑定参数里可能没被定义"
+
+#: parser/analyze.c:2237
+#, c-format
+#| msgid "materialized view"
+msgid "materialized views cannot be UNLOGGED"
+msgstr "物化视图不能使用UNLOGGED"
+
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: parser/analyze.c:2294
+#, c-format
+#| msgid "SELECT FOR UPDATE/SHARE is not allowed with DISTINCT clause"
+msgid "%s is not allowed with DISTINCT clause"
+msgstr "%s不能用于DISTINCT子句中"
+
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: parser/analyze.c:2301
+#, c-format
+#| msgid "aggregates not allowed in GROUP BY clause"
+msgid "%s is not allowed with GROUP BY clause"
+msgstr "%s不能用于GROUP BY子句中"
+
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: parser/analyze.c:2308
+#, c-format
+#| msgid "window functions not allowed in HAVING clause"
+msgid "%s is not allowed with HAVING clause"
+msgstr "%s不能用于HAVING子句中"
+
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: parser/analyze.c:2315
+#, c-format
+#| msgid "%s is not allowed in a SQL function"
+msgid "%s is not allowed with aggregate functions"
+msgstr "%s不能用于聚合函数中"
+
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: parser/analyze.c:2322
+#, c-format
+#| msgid "%s is not allowed in a SQL function"
+msgid "%s is not allowed with window functions"
+msgstr "%s不能用于窗口函数中"
+
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: parser/analyze.c:2329
+#, c-format
+#| msgid ""
+#| "SELECT FOR UPDATE/SHARE is not allowed with set-returning functions in "
+#| "the target list"
+msgid "%s is not allowed with set-returning functions in the target list"
+msgstr "%s不能用于目标列表中的返回集合的函数中"
+
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: parser/analyze.c:2408
+#, c-format
+#| msgid "SELECT FOR UPDATE/SHARE must specify unqualified relation names"
+msgid "%s must specify unqualified relation names"
+msgstr "%s 必须指定不合格的关系名"
+
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: parser/analyze.c:2441
+#, c-format
+#| msgid "SELECT FOR UPDATE/SHARE cannot be applied to a join"
+msgid "%s cannot be applied to a join"
+msgstr "%s 不能用于连接(join)操作"
+
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: parser/analyze.c:2450
+#, c-format
+#| msgid "SELECT FOR UPDATE/SHARE cannot be applied to a function"
+msgid "%s cannot be applied to a function"
+msgstr "%s不能用于函数"
+
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: parser/analyze.c:2468
+#, c-format
+#| msgid "SELECT FOR UPDATE/SHARE cannot be applied to a WITH query"
+msgid "%s cannot be applied to a WITH query"
+msgstr "%s 不能用于WITH查询"
+
+#. translator: %s is a SQL row locking clause such as FOR UPDATE
+#: parser/analyze.c:2485
+#, c-format
+#| msgid "relation \"%s\" in FOR UPDATE/SHARE clause not found in FROM clause"
+msgid "relation \"%s\" in %s clause not found in FROM clause"
+msgstr "子句%2$s中的关系 \"%1$s\" 在FROM子句中无法找到"
+
+#: parser/parse_agg.c:201 parser/parse_oper.c:219
+#, c-format
+msgid "could not identify an ordering operator for type %s"
+msgstr "无法为类型%s识别顺序操作符"
+
+#: parser/parse_agg.c:203
+#, c-format
+msgid "Aggregates with DISTINCT must be able to sort their inputs."
+msgstr "带有DISTINCT关键字的聚合函数必须能够对它们的输入进行排序"
+
+#: parser/parse_agg.c:254
+#| msgid "aggregates not allowed in JOIN conditions"
+msgid "aggregate functions are not allowed in JOIN conditions"
+msgstr "聚合函数不允许出现在 JOIN 条件中"
+
+#: parser/parse_agg.c:260
+#| msgid ""
+#| "aggregate functions not allowed in a recursive query's recursive term"
+msgid ""
+"aggregate functions are not allowed in FROM clause of their own query level"
+msgstr "聚合函数不允许出现在它们自己查询级别的FROM子句中"
+
+#: parser/parse_agg.c:263
+#| msgid "cannot use aggregate function in function expression in FROM"
+msgid "aggregate functions are not allowed in functions in FROM"
+msgstr "聚合函数不允许出现在FROM子句中的函数里"
+
+#: parser/parse_agg.c:281
+#| msgid "window functions not allowed in window definition"
+msgid "aggregate functions are not allowed in window RANGE"
+msgstr "在聚合函数不允许出现在窗口范围子句里"
+
+#: parser/parse_agg.c:284
+#| msgid "window functions not allowed in window definition"
+msgid "aggregate functions are not allowed in window ROWS"
+msgstr "聚合函数不允许出现在窗口ROWS子句里"
+
+#: parser/parse_agg.c:315
+#| msgid "cannot use aggregate function in check constraint"
+msgid "aggregate functions are not allowed in check constraints"
+msgstr "聚合函数不允许出现在check约束中"
+
+#: parser/parse_agg.c:319
+#| msgid ""
+#| "aggregate functions not allowed in a recursive query's recursive term"
+msgid "aggregate functions are not allowed in DEFAULT expressions"
+msgstr "聚合函数不允许出现在DEFAULT表达式中"
+
+#: parser/parse_agg.c:322
+#| msgid "cannot use aggregate function in index expression"
+msgid "aggregate functions are not allowed in index expressions"
+msgstr "聚合函数不允许出现在索引表达式中"
+
+#: parser/parse_agg.c:325
+#| msgid ""
+#| "aggregate functions not allowed in a recursive query's recursive term"
+msgid "aggregate functions are not allowed in index predicates"
+msgstr "聚合函数不允许出现在索引判定子句当中"
+
+#: parser/parse_agg.c:328
+#| msgid "cannot use aggregate function in transform expression"
+msgid "aggregate functions are not allowed in transform expressions"
+msgstr "聚合函数不允许出现在转换表达式中"
+
+#: parser/parse_agg.c:331
+#| msgid "cannot use aggregate function in EXECUTE parameter"
+msgid "aggregate functions are not allowed in EXECUTE parameters"
+msgstr "聚合函数不允许出现在EXECUTE参数中"
+
+#: parser/parse_agg.c:334
+#| msgid "cannot use aggregate function in trigger WHEN condition"
+msgid "aggregate functions are not allowed in trigger WHEN conditions"
+msgstr "聚合函数不允许出现在触发器WHEN条件中"
+
+#. translator: %s is name of a SQL construct, eg GROUP BY
+#: parser/parse_agg.c:354 parser/parse_clause.c:1407
+#, c-format
+#| msgid "aggregate function calls cannot be nested"
+msgid "aggregate functions are not allowed in %s"
+msgstr "聚合函数不允许出现在%s中"
+
+#: parser/parse_agg.c:457
+#, c-format
+msgid ""
+"outer-level aggregate cannot contain a lower-level variable in its direct "
+"arguments"
+msgstr "outer-level 聚集函数在其直接参数里不能包含更低级别的变量"
+
+#: parser/parse_agg.c:514
+#, c-format
+msgid "aggregate function calls cannot contain window function calls"
+msgstr "对于聚合函数调用不能包含窗口函数的调用"
+
+#: parser/parse_agg.c:591
+#| msgid "window functions not allowed in JOIN conditions"
+msgid "window functions are not allowed in JOIN conditions"
+msgstr "窗口函数不允许出现在JOIN条件中"
+
+#: parser/parse_agg.c:598
+#| msgid "window functions not allowed in JOIN conditions"
+msgid "window functions are not allowed in functions in FROM"
+msgstr "窗口函数不允许出现在FROM的函数中"
+
+#: parser/parse_agg.c:613
+#| msgid "window functions not allowed in window definition"
+msgid "window functions are not allowed in window definitions"
+msgstr "窗口函数不允许出现在窗口定义中"
+
+#: parser/parse_agg.c:644
+#| msgid "window functions not allowed in JOIN conditions"
+msgid "window functions are not allowed in check constraints"
+msgstr "窗口函数不允许出现在check约束中"
+
+#: parser/parse_agg.c:648
+#| msgid "window functions not allowed in JOIN conditions"
+msgid "window functions are not allowed in DEFAULT expressions"
+msgstr "窗口函数不允许出现在DEFAULT表达式中"
+
+#: parser/parse_agg.c:651
+#| msgid "window functions not allowed in window definition"
+msgid "window functions are not allowed in index expressions"
+msgstr "在窗口函数不允许出现在索引表达式中"
+
+#: parser/parse_agg.c:654
+#| msgid "window functions not allowed in window definition"
+msgid "window functions are not allowed in index predicates"
+msgstr "在窗口函数不允许出现在索引判定子句中"
+
+#: parser/parse_agg.c:657
+#| msgid "window functions not allowed in window definition"
+msgid "window functions are not allowed in transform expressions"
+msgstr "窗口函数不允许出现在转换表达式中"
+
+#: parser/parse_agg.c:660
+#| msgid "window functions not allowed in WHERE clause"
+msgid "window functions are not allowed in EXECUTE parameters"
+msgstr "窗口函数不允许出现在EXECUTE参数中"
+
+#: parser/parse_agg.c:663
+#| msgid "window functions not allowed in JOIN conditions"
+msgid "window functions are not allowed in trigger WHEN conditions"
+msgstr "窗口函数不允许出现在触发器WHEN条件中"
+
+#. translator: %s is name of a SQL construct, eg GROUP BY
+#: parser/parse_agg.c:683 parser/parse_clause.c:1416
+#, c-format
+#| msgid "window functions not allowed in WHERE clause"
+msgid "window functions are not allowed in %s"
+msgstr "窗口函数不允许出现在%s中"
+
+#: parser/parse_agg.c:717 parser/parse_clause.c:1827
+#, c-format
+msgid "window \"%s\" does not exist"
+msgstr "窗口\"%s\"不存在"
+
+#: parser/parse_agg.c:879
+#, c-format
+#| msgid ""
+#| "aggregate functions not allowed in a recursive query's recursive term"
+msgid ""
+"aggregate functions are not allowed in a recursive query's recursive term"
+msgstr "聚合函数不允许出现在递归查询的递归项中"
+
+#: parser/parse_agg.c:1057
+#, c-format
+msgid ""
+"column \"%s.%s\" must appear in the GROUP BY clause or be used in an "
+"aggregate function"
+msgstr "字段 \"%s.%s\" 必须出现在 GROUP BY 子句中或者在聚合函数中使用"
+
+#: parser/parse_agg.c:1060
+#, c-format
+msgid ""
+"Direct arguments of an ordered-set aggregate must use only grouped columns."
+msgstr "有序聚集函数的直接参数必须使用分组列."
+
+#: parser/parse_agg.c:1065
+#, c-format
+msgid "subquery uses ungrouped column \"%s.%s\" from outer query"
+msgstr "子查询使用了外层查询中的非分组列 \"%s.%s\" "
+
+#: parser/parse_clause.c:636
+#, c-format
+#| msgid ""
+#| "a column definition list is only allowed for functions returning \"record"
+#| "\""
+msgid "multiple column definition lists are not allowed for the same function"
+msgstr "多列定义列表不允许了现在相同的函数中"
+
+#: parser/parse_clause.c:669
+#, c-format
+msgid ""
+"ROWS FROM() with multiple functions cannot have a column definition list"
+msgstr "带多函数的ROWS FROM() 不能带有列定义列表"
+
+#: parser/parse_clause.c:670
+#, c-format
+msgid ""
+"Put a separate column definition list for each function inside ROWS FROM()."
+msgstr "在ROWS FROM()里为每个函数放置独立的列定义列表."
+
+#: parser/parse_clause.c:676
+#, c-format
+#| msgid "INSTEAD OF triggers cannot have column lists"
+msgid "UNNEST() with multiple arguments cannot have a column definition list"
+msgstr "带多个参数的UNNEST()  不能带有列定义列表"
+
+#: parser/parse_clause.c:677
+#, c-format
+msgid ""
+"Use separate UNNEST() calls inside ROWS FROM(), and attach a column "
+"definition list to each one."
+msgstr "在ROWS FROM()里使用独立的UNNEST()调用, 并为每个调用附上一个列定义列表."
+
+#: parser/parse_clause.c:684
+#, c-format
+msgid "WITH ORDINALITY cannot be used with a column definition list"
+msgstr "WITH ORDINALITY 不能使用列定义列表"
+
+#: parser/parse_clause.c:685
+#, c-format
+msgid "Put the column definition list inside ROWS FROM()."
+msgstr "在 ROWS FROM()时旋转列定义列表."
+
+#: parser/parse_clause.c:967
+#, c-format
+msgid "column name \"%s\" appears more than once in USING clause"
+msgstr "在 USING 子句中字段名 \"%s\" 出现多次"
+
+#: parser/parse_clause.c:982
+#, c-format
+msgid "common column name \"%s\" appears more than once in left table"
+msgstr "共同的字段名 \"%s\" 在左边的表中出现了多次"
+
+#: parser/parse_clause.c:991
+#, c-format
+msgid "column \"%s\" specified in USING clause does not exist in left table"
+msgstr "USING 子句中指定的字段 \"%s\" 在左边的表中不存在"
+
+#: parser/parse_clause.c:1005
+#, c-format
+msgid "common column name \"%s\" appears more than once in right table"
+msgstr "共同的字段名 \"%s\" 在右边的表中出现了多次"
+
+#: parser/parse_clause.c:1014
+#, c-format
+msgid "column \"%s\" specified in USING clause does not exist in right table"
+msgstr "USING 子句中指定的字段 \"%s\" 在右边的表中不存在"
+
+#: parser/parse_clause.c:1068
+#, c-format
+msgid "column alias list for \"%s\" has too many entries"
+msgstr "\"%s\" 的字段别名列表有太多记录"
+
+#. translator: %s is name of a SQL construct, eg LIMIT
+#: parser/parse_clause.c:1377
+#, c-format
+msgid "argument of %s must not contain variables"
+msgstr "%s 的参数不能包含变量"
+
+#. translator: first %s is name of a SQL construct, eg ORDER BY
+#: parser/parse_clause.c:1542
+#, c-format
+msgid "%s \"%s\" is ambiguous"
+msgstr "%s \"%s\" 是不明确的"
+
+#. translator: %s is name of a SQL construct, eg ORDER BY
+#: parser/parse_clause.c:1571
+#, c-format
+msgid "non-integer constant in %s"
+msgstr "在 %s 中的非整数常量"
+
+#. translator: %s is name of a SQL construct, eg ORDER BY
+#: parser/parse_clause.c:1593
+#, c-format
+msgid "%s position %d is not in select list"
+msgstr "%s 位置%d不在select列表中."
+
+#: parser/parse_clause.c:1815
+#, c-format
+msgid "window \"%s\" is already defined"
+msgstr "已经定义窗口\"%s\""
+
+#: parser/parse_clause.c:1876
+#, c-format
+msgid "cannot override PARTITION BY clause of window \"%s\""
+msgstr "无法覆盖窗口\"%s\"的PARTITION BY子句"
+
+#: parser/parse_clause.c:1888
+#, c-format
+msgid "cannot override ORDER BY clause of window \"%s\""
+msgstr "无法覆盖窗口 \"%s\"的ORDER BY子句"
+
+#: parser/parse_clause.c:1918 parser/parse_clause.c:1924
+#, c-format
+#| msgid "cannot drop extension \"%s\" because it is being modified"
+msgid "cannot copy window \"%s\" because it has a frame clause"
+msgstr "因为已有frame子句,无法复制窗口\"%s\""
+
+#: parser/parse_clause.c:1926
+#, c-format
+msgid "Omit the parentheses in this OVER clause."
+msgstr "在这个 OVER 子句里忽略其父语句."
+
+#: parser/parse_clause.c:1992
+#, c-format
+msgid ""
+"in an aggregate with DISTINCT, ORDER BY expressions must appear in argument "
+"list"
+msgstr ""
+"在带有DISTINCT子句的聚合函数中,ORDER BY子句后面的表达式必须在参数列表中出现"
+
+#: parser/parse_clause.c:1993
+#, c-format
+msgid "for SELECT DISTINCT, ORDER BY expressions must appear in select list"
+msgstr "在查询列表中必须出现SELECT DISTINCT, ORDER BY表达式"
+
+#: parser/parse_clause.c:2026
+#, c-format
+#| msgid "Aggregates with DISTINCT must be able to sort their inputs."
+msgid "an aggregate with DISTINCT must have at least one argument"
+msgstr "带有DISTINCT关键字的聚合函数必须至少有一个参数"
+
+#: parser/parse_clause.c:2027
+#, c-format
+#| msgid "view must have at least one column"
+msgid "SELECT DISTINCT must have at least one column"
+msgstr "SELECT DISTINCT 至少拥有一列"
+
+#: parser/parse_clause.c:2093 parser/parse_clause.c:2125
+#, c-format
+msgid "SELECT DISTINCT ON expressions must match initial ORDER BY expressions"
+msgstr "表达式SELECT DISTINCT ON必须匹配初始化的ORDER BY表达式"
+
+#: parser/parse_clause.c:2253
+#, c-format
+msgid "operator %s is not a valid ordering operator"
+msgstr "操作符%s不时有效的排序操作符"
+
+#: parser/parse_clause.c:2255
+#, c-format
+msgid ""
+"Ordering operators must be \"<\" or \">\" members of btree operator families."
+msgstr "顺序操作符必须是btree操作符家族的成员\"<\"或\">\"."
+
+#: parser/parse_coerce.c:933 parser/parse_coerce.c:963
+#: parser/parse_coerce.c:981 parser/parse_coerce.c:996
+#: parser/parse_expr.c:1773 parser/parse_expr.c:2247 parser/parse_target.c:854
+#, c-format
+msgid "cannot cast type %s to %s"
+msgstr "无法把类型 %s 转换为 %s"
+
+#: parser/parse_coerce.c:966
+#, c-format
+msgid "Input has too few columns."
+msgstr "输入字段太少"
+
+#: parser/parse_coerce.c:984
+#, c-format
+msgid "Cannot cast type %s to %s in column %d."
+msgstr "不能把第 %3$d 个字段的类型 %1$s 转换为 %2$s."
+
+#: parser/parse_coerce.c:999
 #, c-format
 msgid "Input has too many columns."
 msgstr "输入字段太多"
 
 #. translator: first %s is name of a SQL construct, eg WHERE
-#: parser/parse_coerce.c:1041
+#: parser/parse_coerce.c:1042
 #, c-format
 msgid "argument of %s must be type boolean, not type %s"
 msgstr "%s 的参数必需是布尔类型, 而不是 %s 类型"
 
 #. translator: %s is name of a SQL construct, eg WHERE
 #. translator: %s is name of a SQL construct, eg LIMIT
-#: parser/parse_coerce.c:1051 parser/parse_coerce.c:1100
+#: parser/parse_coerce.c:1052 parser/parse_coerce.c:1101
 #, c-format
 msgid "argument of %s must not return a set"
 msgstr "%s 的参数不能返回一个组合"
 
 #. translator: first %s is name of a SQL construct, eg LIMIT
-#: parser/parse_coerce.c:1088
+#: parser/parse_coerce.c:1089
 #, c-format
 msgid "argument of %s must be type %s, not type %s"
 msgstr "%s 的参数必需是类型%s, 而不是类型%s "
 
 #. translator: first %s is name of a SQL construct, eg CASE
-#: parser/parse_coerce.c:1221
+#: parser/parse_coerce.c:1222
 #, c-format
 msgid "%s types %s and %s cannot be matched"
 msgstr "%s 的类型 %s 和 %s 不匹配"
 
 #. translator: first %s is name of a SQL construct, eg CASE
-#: parser/parse_coerce.c:1288
+#: parser/parse_coerce.c:1289
 #, c-format
 msgid "%s could not convert type %s to %s"
 msgstr "%s 无法转换类型 %s 为 %s"
 
-#: parser/parse_coerce.c:1590
+#: parser/parse_coerce.c:1591
 #, c-format
 msgid "arguments declared \"anyelement\" are not all alike"
 msgstr "参数声明的 \"anyelement\" 不全相同"
 
-#: parser/parse_coerce.c:1610
+#: parser/parse_coerce.c:1611
 #, c-format
 msgid "arguments declared \"anyarray\" are not all alike"
 msgstr "参数声明的 \"anyarray\" 不全相同"
 
-#: parser/parse_coerce.c:1630
+#: parser/parse_coerce.c:1631
 #, c-format
 msgid "arguments declared \"anyrange\" are not all alike"
 msgstr "声明为 \"anyarray\" 的参数不全相同"
 
-#: parser/parse_coerce.c:1659 parser/parse_coerce.c:1870
-#: parser/parse_coerce.c:1904
+#: parser/parse_coerce.c:1660 parser/parse_coerce.c:1871
+#: parser/parse_coerce.c:1905
 #, c-format
 msgid "argument declared \"anyarray\" is not an array but type %s"
 msgstr "参数声明的 \"anyarray\" 不是一个数组, 但是类型为 %s"
 
-#: parser/parse_coerce.c:1675
+#: parser/parse_coerce.c:1676
 #, c-format
 msgid ""
 "argument declared \"anyarray\" is not consistent with argument declared "
 "\"anyelement\""
 msgstr "参数声明的 \"anyarray\" 和参数声明的 \"anyelement\" 不一致"
 
-#: parser/parse_coerce.c:1696 parser/parse_coerce.c:1917
+#: parser/parse_coerce.c:1697 parser/parse_coerce.c:1918
 #, c-format
-msgid "argument declared \"anyrange\" is not a range but type %s"
-msgstr "声明为 \"anyarray\" 的参数不是一个范围, 类型为 %s"
+#| msgid "argument declared \"anyrange\" is not a range but type %s"
+msgid "argument declared \"anyrange\" is not a range type but type %s"
+msgstr "声明为 \"anyarray\" 的参数的类型不是范围类型, 其类型为 %s"
 
-#: parser/parse_coerce.c:1712
+#: parser/parse_coerce.c:1713
 #, c-format
 msgid ""
 "argument declared \"anyrange\" is not consistent with argument declared "
 "\"anyelement\""
 msgstr "声明为 \"anyarray\" 的参数和声明为 \"anyelement\"的参数 不一致"
 
-#: parser/parse_coerce.c:1732
+#: parser/parse_coerce.c:1733
 #, c-format
 msgid "could not determine polymorphic type because input has type \"unknown\""
 msgstr "无法确定多态类型, 因为输入类型为 \"unknown\""
 
-#: parser/parse_coerce.c:1742
+#: parser/parse_coerce.c:1743
 #, c-format
 msgid "type matched to anynonarray is an array type: %s"
 msgstr "与anynonarray匹配的类型是一个数组类型:%s"
 
-#: parser/parse_coerce.c:1752
+#: parser/parse_coerce.c:1753
 #, c-format
 msgid "type matched to anyenum is not an enum type: %s"
 msgstr "匹配anyenum的类型不是枚举类型:%s"
 
-#: parser/parse_coerce.c:1792 parser/parse_coerce.c:1822
+#: parser/parse_coerce.c:1793 parser/parse_coerce.c:1823
 #, c-format
 msgid "could not find range type for data type %s"
 msgstr "无法为数据类型 %s 找到范围类型"
 
-#: parser/parse_collate.c:214 parser/parse_collate.c:538
+#: parser/parse_collate.c:228 parser/parse_collate.c:475
+#: parser/parse_collate.c:984
 #, c-format
 msgid "collation mismatch between implicit collations \"%s\" and \"%s\""
 msgstr "排序名:\"%s\" 和 \"%s\"之间的排序规则不匹配"
 
-#: parser/parse_collate.c:217 parser/parse_collate.c:541
+#: parser/parse_collate.c:231 parser/parse_collate.c:478
+#: parser/parse_collate.c:987
 #, c-format
 msgid ""
 "You can choose the collation by applying the COLLATE clause to one or both "
 "expressions."
 msgstr "通过对一个或两个表达式应用 COLLATE 子句来选择排序规则."
 
-#: parser/parse_collate.c:763
+#: parser/parse_collate.c:832
 #, c-format
 msgid "collation mismatch between explicit collations \"%s\" and \"%s\""
 msgstr "排序名:\"%s\" 和 \"%s\"之间的排序规则不匹配"
@@ -10983,468 +12365,574 @@ msgstr "在递归查询中没有实现FOR UPDATE/SHARE "
 msgid "recursive reference to query \"%s\" must not appear more than once"
 msgstr "对查询\"%s\"的递归引用不能出现多次"
 
-#: parser/parse_expr.c:366 parser/parse_expr.c:759
+#: parser/parse_expr.c:389 parser/parse_relation.c:2875
 #, c-format
 msgid "column %s.%s does not exist"
 msgstr "字段 %s.%s 不存在"
 
-#: parser/parse_expr.c:378
+#: parser/parse_expr.c:401
 #, c-format
 msgid "column \"%s\" not found in data type %s"
 msgstr "在数据类型 %2$s 中未找到字段 \"%1$s\""
 
-#: parser/parse_expr.c:384
+#: parser/parse_expr.c:407
 #, c-format
 msgid "could not identify column \"%s\" in record data type"
 msgstr "在记录数据类型中无法确认字段 \"%s\""
 
-#: parser/parse_expr.c:390
+#: parser/parse_expr.c:413
 #, c-format
 msgid "column notation .%s applied to type %s, which is not a composite type"
 msgstr "将列符号.%s应用到类型%s(这个类型不是组合类型)"
 
-#: parser/parse_expr.c:420 parser/parse_target.c:618
+#: parser/parse_expr.c:443 parser/parse_target.c:640
 #, c-format
 msgid "row expansion via \"*\" is not supported here"
 msgstr "不支持通过\"*\"实现的记录扩展"
 
-#: parser/parse_expr.c:743 parser/parse_relation.c:485
-#: parser/parse_relation.c:565 parser/parse_target.c:1065
+#: parser/parse_expr.c:766 parser/parse_relation.c:561
+#: parser/parse_relation.c:652 parser/parse_target.c:1089
 #, c-format
 msgid "column reference \"%s\" is ambiguous"
 msgstr "字段关联 \"%s\" 是不明确的"
 
-#: parser/parse_expr.c:811 parser/parse_param.c:109 parser/parse_param.c:141
-#: parser/parse_param.c:198 parser/parse_param.c:297
+#: parser/parse_expr.c:822 parser/parse_param.c:110 parser/parse_param.c:142
+#: parser/parse_param.c:199 parser/parse_param.c:298
 #, c-format
 msgid "there is no parameter $%d"
 msgstr "没有参数 $%d"
 
-#: parser/parse_expr.c:1023
+#: parser/parse_expr.c:1034
 #, c-format
 msgid "NULLIF requires = operator to yield boolean"
 msgstr "在NULLIF操作中需要等号操作符来产生布尔类型的返回值"
 
-#: parser/parse_expr.c:1202
-#, c-format
-msgid "arguments of row IN must all be row expressions"
-msgstr "记录IN的参数必须都是记录表达式"
+#: parser/parse_expr.c:1469
+msgid "cannot use subquery in check constraint"
+msgstr "在检查约束中不可以使用子查询"
+
+#: parser/parse_expr.c:1473
+#| msgid "cannot use subquery in index expression"
+msgid "cannot use subquery in DEFAULT expression"
+msgstr "DEFAULT表达式中不能使用子查询"
+
+#: parser/parse_expr.c:1476
+msgid "cannot use subquery in index expression"
+msgstr "索引表达式中不能使用子查询"
+
+#: parser/parse_expr.c:1479
+msgid "cannot use subquery in index predicate"
+msgstr "索引声明中不能使用子查询"
+
+#: parser/parse_expr.c:1482
+msgid "cannot use subquery in transform expression"
+msgstr "在转换表达式中不能使用子查询"
+
+#: parser/parse_expr.c:1485
+msgid "cannot use subquery in EXECUTE parameter"
+msgstr "在 EXECUTE 参数中不可以使用子查询"
 
-#: parser/parse_expr.c:1438
+#: parser/parse_expr.c:1488
+msgid "cannot use subquery in trigger WHEN condition"
+msgstr "在触发器的WHEN条件中无法使用子查询"
+
+#: parser/parse_expr.c:1545
 #, c-format
 msgid "subquery must return a column"
 msgstr "子查询必须返回一个字段"
 
-#: parser/parse_expr.c:1445
+#: parser/parse_expr.c:1552
 #, c-format
 msgid "subquery must return only one column"
 msgstr "子查询必须只能返回一个字段"
 
-#: parser/parse_expr.c:1505
+#: parser/parse_expr.c:1612
 #, c-format
 msgid "subquery has too many columns"
 msgstr "子查询有太多的字段"
 
-#: parser/parse_expr.c:1510
+#: parser/parse_expr.c:1617
 #, c-format
 msgid "subquery has too few columns"
 msgstr "子查询字段太少"
 
-#: parser/parse_expr.c:1606
+#: parser/parse_expr.c:1713
 #, c-format
 msgid "cannot determine type of empty array"
 msgstr "无法确定空数组的类型"
 
-#: parser/parse_expr.c:1607
+#: parser/parse_expr.c:1714
 #, c-format
 msgid "Explicitly cast to the desired type, for example ARRAY[]::integer[]."
 msgstr "显式地将值指派为期望类型,例如ARRAY[]::integer[]."
 
-#: parser/parse_expr.c:1621
+#: parser/parse_expr.c:1728
 #, c-format
 msgid "could not find element type for data type %s"
 msgstr "无法为数据类型%s找到成员类型"
 
-#: parser/parse_expr.c:1847
+#: parser/parse_expr.c:1954
 #, c-format
 msgid "unnamed XML attribute value must be a column reference"
 msgstr "未命名的XML属性值必须是一个列引用"
 
-#: parser/parse_expr.c:1848
+#: parser/parse_expr.c:1955
 #, c-format
 msgid "unnamed XML element value must be a column reference"
 msgstr "未命名的XML成员值必须是一个列引用"
 
-#: parser/parse_expr.c:1863
+#: parser/parse_expr.c:1970
 #, c-format
 msgid "XML attribute name \"%s\" appears more than once"
 msgstr "XML属性名称\"%s\"出现多次"
 
-#: parser/parse_expr.c:1970
+#: parser/parse_expr.c:2077
 #, c-format
 msgid "cannot cast XMLSERIALIZE result to %s"
 msgstr "无法把XMLSERIALIZE强制转换为%s"
 
-#: parser/parse_expr.c:2213 parser/parse_expr.c:2413
+#: parser/parse_expr.c:2320 parser/parse_expr.c:2520
 #, c-format
 msgid "unequal number of entries in row expressions"
 msgstr "在记录表达式中,项的数量不相等"
 
-#: parser/parse_expr.c:2223
+#: parser/parse_expr.c:2330
 #, c-format
 msgid "cannot compare rows of zero length"
 msgstr "无法比较零长度的记录"
 
-#: parser/parse_expr.c:2248
+#: parser/parse_expr.c:2355
 #, c-format
 msgid "row comparison operator must yield type boolean, not type %s"
 msgstr "行比较操作符必需返回布尔类型, 而不是类型%s"
 
-#: parser/parse_expr.c:2255
+#: parser/parse_expr.c:2362
 #, c-format
 msgid "row comparison operator must not return a set"
 msgstr "行比较操作符不能返回一个集合"
 
-#: parser/parse_expr.c:2314 parser/parse_expr.c:2359
+#: parser/parse_expr.c:2421 parser/parse_expr.c:2466
 #, c-format
 msgid "could not determine interpretation of row comparison operator %s"
 msgstr "无法确定行比较操作符%s的说明"
 
-#: parser/parse_expr.c:2316
+#: parser/parse_expr.c:2423
 #, c-format
 msgid ""
 "Row comparison operators must be associated with btree operator families."
 msgstr "记录比较表达式必须与btree操作符相关联."
 
-#: parser/parse_expr.c:2361
+#: parser/parse_expr.c:2468
 #, c-format
 msgid "There are multiple equally-plausible candidates."
 msgstr "有多个相等的类似候选."
 
-#: parser/parse_expr.c:2453
+#: parser/parse_expr.c:2560
 #, c-format
 msgid "IS DISTINCT FROM requires = operator to yield boolean"
 msgstr "IS DISTINCT FROM操作中需要等号来产生布尔类型的值"
 
-#: parser/parse_func.c:147
+#: parser/parse_func.c:173
 #, c-format
 msgid "argument name \"%s\" used more than once"
 msgstr "参数名称\"%s\"被使用多次"
 
-#: parser/parse_func.c:158
+#: parser/parse_func.c:184
 #, c-format
 msgid "positional argument cannot follow named argument"
 msgstr "已确定位置的参数不能在已命名参数的后面"
 
-#: parser/parse_func.c:236
+#: parser/parse_func.c:263
 #, c-format
 msgid "%s(*) specified, but %s is not an aggregate function"
 msgstr "指定了 %s(*), 但是 %s 不是一个聚合函数"
 
-#: parser/parse_func.c:243
+#: parser/parse_func.c:270
 #, c-format
 msgid "DISTINCT specified, but %s is not an aggregate function"
 msgstr "指定了 DISTINCT, 但是 %s 不是一个聚合函数"
 
-#: parser/parse_func.c:249
+#: parser/parse_func.c:276
+#, c-format
+#| msgid "DISTINCT specified, but %s is not an aggregate function"
+msgid "WITHIN GROUP specified, but %s is not an aggregate function"
+msgstr "指定了 WITHIN GROUP , 但是 %s 不是一个聚合函数"
+
+#: parser/parse_func.c:282
 #, c-format
 msgid "ORDER BY specified, but %s is not an aggregate function"
 msgstr "指定了ORDER BY语句, 但是%s不是一个聚合函数"
 
-#: parser/parse_func.c:255
+#: parser/parse_func.c:288
+#, c-format
+#| msgid "DISTINCT specified, but %s is not an aggregate function"
+msgid "FILTER specified, but %s is not an aggregate function"
+msgstr "FILTER指定了, 但是 %s 不是一个聚合函数"
+
+#: parser/parse_func.c:294
 #, c-format
 msgid ""
 "OVER specified, but %s is not a window function nor an aggregate function"
 msgstr "指定了OVER关键字,但是%s不是窗口函数或聚合函数"
 
-#: parser/parse_func.c:277
+#: parser/parse_func.c:324
 #, c-format
-msgid "function %s is not unique"
-msgstr "函数 %s 不是唯一的"
+msgid "WITHIN GROUP is required for ordered-set aggregate %s"
+msgstr "WITHIN GROUP在有序聚集函数 %s中是必需的"
+
+#: parser/parse_func.c:330
+#, c-format
+msgid "OVER is not supported for ordered-set aggregate %s"
+msgstr "OVER不能用于有序聚集函数 %s中"
 
-#: parser/parse_func.c:280
+#: parser/parse_func.c:361 parser/parse_func.c:390
 #, c-format
 msgid ""
-"Could not choose a best candidate function. You might need to add explicit "
-"type casts."
-msgstr "无法选择最佳候选函数. 你也许需要增加明确的类型转换."
+"There is an ordered-set aggregate %s, but it requires %d direct arguments, "
+"not %d."
+msgstr "存在有序聚集函数 %s, 它需要 %d 个直接参数, 不是 %d个."
 
-#: parser/parse_func.c:291
+#: parser/parse_func.c:415
 #, c-format
 msgid ""
-"No aggregate function matches the given name and argument types. Perhaps you "
-"misplaced ORDER BY; ORDER BY must appear after all regular arguments of the "
-"aggregate."
+"To use the hypothetical-set aggregate %s, the number of hypothetical direct "
+"arguments (here %d) must match the number of ordering columns (here %d)."
 msgstr ""
-"没有匹配指定名称和参数类型的函数. 您可能将ORDER BY子句放在了不正确的位置;"
-"ORDER BY子句必须出现在所有聚合函数的常规参数的后面."
+"使用判定集聚集函数 %s, 直接参数的个数 (这里是 %d) 必须与有序列的数目相匹配 "
+"(这里是 %d)."
 
-#: parser/parse_func.c:302
+#: parser/parse_func.c:429
 #, c-format
 msgid ""
-"No function matches the given name and argument types. You might need to add "
-"explicit type casts."
-msgstr "没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换."
+"There is an ordered-set aggregate %s, but it requires at least %d direct "
+"arguments."
+msgstr "存在有序集聚集函数%s, 它至少需要%d个直接参数."
 
-#: parser/parse_func.c:412 parser/parse_func.c:478
+#: parser/parse_func.c:448
 #, c-format
-msgid "%s(*) must be used to call a parameterless aggregate function"
-msgstr "%s(*)必须用来调用没有参数的聚合函数"
+msgid "%s is not an ordered-set aggregate, so it cannot have WITHIN GROUP"
+msgstr "%s 不是有序集聚集函数, 因此它不能使用 WITHIN GROUP"
 
-#: parser/parse_func.c:419
+#: parser/parse_func.c:461
 #, c-format
-msgid "aggregates cannot return sets"
-msgstr "聚合函数可以不返回集合"
+#| msgid "window function call requires an OVER clause"
+msgid "window function %s requires an OVER clause"
+msgstr "窗口函数 %s需要一个OVER子句"
 
-#: parser/parse_func.c:431
+#: parser/parse_func.c:468
 #, c-format
-msgid "aggregates cannot use named arguments"
-msgstr "聚合函数不能使用已命名的参数"
+#| msgid "window function calls cannot be nested"
+msgid "window function %s cannot have WITHIN GROUP"
+msgstr "窗口函数%s不能使用WITHIN GROUP子句"
 
-#: parser/parse_func.c:450
+#: parser/parse_func.c:489
 #, c-format
-msgid "window function call requires an OVER clause"
-msgstr "å\9c¨çª\97å\8f£å\87½æ\95°è°\83ç\94¨ä¸­é\9c\80è¦\81使ç\94¨OVERå­\90å\8f¥"
+msgid "function %s is not unique"
+msgstr "å\87½æ\95° %s ä¸\8dæ\98¯å\94¯ä¸\80ç\9a\84"
 
-#: parser/parse_func.c:468
+#: parser/parse_func.c:492
+#, c-format
+msgid ""
+"Could not choose a best candidate function. You might need to add explicit "
+"type casts."
+msgstr "无法选择最佳候选函数. 你也许需要增加明确的类型转换."
+
+#: parser/parse_func.c:503
+#, c-format
+msgid ""
+"No aggregate function matches the given name and argument types. Perhaps you "
+"misplaced ORDER BY; ORDER BY must appear after all regular arguments of the "
+"aggregate."
+msgstr ""
+"没有匹配指定名称和参数类型的函数. 您可能将ORDER BY子句放在了不正确的位置;"
+"ORDER BY子句必须出现在所有聚合函数的常规参数的后面."
+
+#: parser/parse_func.c:514
+#, c-format
+msgid ""
+"No function matches the given name and argument types. You might need to add "
+"explicit type casts."
+msgstr "没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换."
+
+#: parser/parse_func.c:616
+#, c-format
+#| msgid "VARIADIC parameter must be an array"
+msgid "VARIADIC argument must be an array"
+msgstr "参数VARIADIC 必须是一个数组"
+
+#: parser/parse_func.c:661 parser/parse_func.c:725
+#, c-format
+msgid "%s(*) must be used to call a parameterless aggregate function"
+msgstr "%s(*)必须用来调用没有参数的聚合函数"
+
+#: parser/parse_func.c:668
+#, c-format
+msgid "aggregates cannot return sets"
+msgstr "聚合函数可以不返回集合"
+
+#: parser/parse_func.c:683
+#, c-format
+msgid "aggregates cannot use named arguments"
+msgstr "聚合函数不能使用已命名的参数"
+
+#: parser/parse_func.c:715
 #, c-format
 msgid "DISTINCT is not implemented for window functions"
 msgstr "对于窗口函数,没有实现DISTINCT"
 
-#: parser/parse_func.c:488
+#: parser/parse_func.c:735
 #, c-format
 msgid "aggregate ORDER BY is not implemented for window functions"
 msgstr "对于窗口函数,没有实现在按照聚合函数进行ORDER BY操作的功能"
 
-#: parser/parse_func.c:494
+#: parser/parse_func.c:744
 #, c-format
-msgid "window functions cannot return sets"
-msgstr "窗口函数不能返回集合"
+#| msgid "DISTINCT is not implemented for window functions"
+msgid "FILTER is not implemented for non-aggregate window functions"
+msgstr "FILTER在非聚合窗口函数里并未被实现"
 
-#: parser/parse_func.c:505
+#: parser/parse_func.c:750
 #, c-format
-msgid "window functions cannot use named arguments"
-msgstr "窗口函数不能使用已命名参数"
+msgid "window functions cannot return sets"
+msgstr "窗口函数不能返回集合"
 
-#: parser/parse_func.c:1670
+#: parser/parse_func.c:1994
 #, c-format
 msgid "aggregate %s(*) does not exist"
 msgstr "聚合函数 %s(*) 不存在"
 
-#: parser/parse_func.c:1675
+#: parser/parse_func.c:1999
 #, c-format
 msgid "aggregate %s does not exist"
 msgstr "聚合函数 %s(*) 不存在"
 
-#: parser/parse_func.c:1694
+#: parser/parse_func.c:2018
 #, c-format
 msgid "function %s is not an aggregate"
 msgstr "函数 \"%s\" 不是一个聚合函数"
 
-#: parser/parse_node.c:83
+#: parser/parse_node.c:84
 #, c-format
 msgid "target lists can have at most %d entries"
 msgstr "目标列表最多可以有 %d 个字段"
 
-#: parser/parse_node.c:240
+#: parser/parse_node.c:253
 #, c-format
 msgid "cannot subscript type %s because it is not an array"
 msgstr "无法下标类型 %s, 因为它不是一个数组"
 
-#: parser/parse_node.c:342 parser/parse_node.c:369
+#: parser/parse_node.c:356 parser/parse_node.c:383
 #, c-format
 msgid "array subscript must have type integer"
 msgstr "数组下标必须为整数类型"
 
-#: parser/parse_node.c:393
+#: parser/parse_node.c:407
 #, c-format
 msgid "array assignment requires type %s but expression is of type %s"
 msgstr "数组分配要求类型%s,但是表达式属于类型%s"
 
-#: parser/parse_oper.c:123 parser/parse_oper.c:717 utils/adt/regproc.c:464
-#: utils/adt/regproc.c:484 utils/adt/regproc.c:643
+#: parser/parse_oper.c:124 parser/parse_oper.c:718 utils/adt/regproc.c:547
+#: utils/adt/regproc.c:567 utils/adt/regproc.c:751
 #, c-format
 msgid "operator does not exist: %s"
 msgstr "操作符不存在: %s"
 
-#: parser/parse_oper.c:220
+#: parser/parse_oper.c:221
 #, c-format
 msgid "Use an explicit ordering operator or modify the query."
 msgstr "使用显式操作符或修改查询"
 
-#: parser/parse_oper.c:224 utils/adt/arrayfuncs.c:3175
-#: utils/adt/arrayfuncs.c:3694 utils/adt/rowtypes.c:1185
+#: parser/parse_oper.c:225 utils/adt/arrayfuncs.c:3194
+#: utils/adt/arrayfuncs.c:3713 utils/adt/arrayfuncs.c:5266
+#: utils/adt/rowtypes.c:1159
 #, c-format
 msgid "could not identify an equality operator for type %s"
 msgstr "无法为类型%s识别等于操作符"
 
-#: parser/parse_oper.c:475
+#: parser/parse_oper.c:476
 #, c-format
 msgid "operator requires run-time type coercion: %s"
 msgstr "操作符需要运行时类型强制: %s"
 
-#: parser/parse_oper.c:709
+#: parser/parse_oper.c:710
 #, c-format
 msgid "operator is not unique: %s"
 msgstr "操作符不是唯一的: %s"
 
-#: parser/parse_oper.c:711
+#: parser/parse_oper.c:712
 #, c-format
 msgid ""
 "Could not choose a best candidate operator. You might need to add explicit "
 "type casts."
 msgstr "无法选择最佳候选操作符. 您也许需要增加显式的类型转换."
 
-#: parser/parse_oper.c:719
+#: parser/parse_oper.c:720
 #, c-format
 msgid ""
 "No operator matches the given name and argument type(s). You might need to "
 "add explicit type casts."
 msgstr "没有匹配指定名称和参数类型的操作符. 您也许需要增加明确的类型转换."
 
-#: parser/parse_oper.c:778 parser/parse_oper.c:892
+#: parser/parse_oper.c:779 parser/parse_oper.c:893
 #, c-format
 msgid "operator is only a shell: %s"
 msgstr "操作符只是一个shell: %s"
 
-#: parser/parse_oper.c:880
+#: parser/parse_oper.c:881
 #, c-format
 msgid "op ANY/ALL (array) requires array on right side"
 msgstr "操作符ANY/ALL (array)要求数组在右边"
 
-#: parser/parse_oper.c:922
+#: parser/parse_oper.c:923
 #, c-format
 msgid "op ANY/ALL (array) requires operator to yield boolean"
 msgstr "操作ANY/ALL (array)需要产生布尔值的操作符."
 
-#: parser/parse_oper.c:927
+#: parser/parse_oper.c:928
 #, c-format
 msgid "op ANY/ALL (array) requires operator not to return a set"
 msgstr "操作ANY/ALL (array)需要不返回集合的操作符"
 
-#: parser/parse_param.c:215
+#: parser/parse_param.c:216
 #, c-format
 msgid "inconsistent types deduced for parameter $%d"
 msgstr "对于参数$%d,推断出不一致的类型"
 
-#: parser/parse_relation.c:147
+#: parser/parse_relation.c:172
 #, c-format
 msgid "table reference \"%s\" is ambiguous"
 msgstr "表关联 \"%s\" 是不明确的"
 
-#: parser/parse_relation.c:183
+#: parser/parse_relation.c:216
 #, c-format
 msgid "table reference %u is ambiguous"
 msgstr "表关联 %u 是不明确的"
 
-#: parser/parse_relation.c:350
+#: parser/parse_relation.c:395
 #, c-format
 msgid "table name \"%s\" specified more than once"
 msgstr "表名 \"%s\" 被指定多次"
 
-#: parser/parse_relation.c:768 parser/parse_relation.c:1059
-#: parser/parse_relation.c:1446
+#: parser/parse_relation.c:422 parser/parse_relation.c:2839
 #, c-format
-msgid "table \"%s\" has %d columns available but %d columns specified"
-msgstr "表 \"%s\" 有 %d 个有效字段, 但指定了 %d 个字段"
+msgid "invalid reference to FROM-clause entry for table \"%s\""
+msgstr "对于表 \"%s\"的FROM子句项的引用无效 "
+
+#: parser/parse_relation.c:425 parser/parse_relation.c:2844
+#, c-format
+msgid ""
+"There is an entry for table \"%s\", but it cannot be referenced from this "
+"part of the query."
+msgstr "这里有一个对于表\"%s\"的项,但是不能从查询的这个部分中引用."
+
+#: parser/parse_relation.c:427
+#, c-format
+msgid "The combining JOIN type must be INNER or LEFT for a LATERAL reference."
+msgstr "在LATERAL引用里,组合的JOIN必须是INNER或LEFT JOIN类型."
+
+#: parser/parse_relation.c:591
+#, c-format
+#| msgid "column \"%s\" referenced in foreign key constraint does not exist"
+msgid "system column \"%s\" reference in check constraint is invalid"
+msgstr "check约束中的系统列\"%s\"参照是无效的"
 
-#: parser/parse_relation.c:798
+#: parser/parse_relation.c:892 parser/parse_relation.c:1169
+#: parser/parse_relation.c:1663
 #, c-format
-msgid "too many column aliases specified for function %s"
-msgstr "为函数 %s 指定了太多的字段别名"
+msgid "table \"%s\" has %d columns available but %d columns specified"
+msgstr "表 \"%s\" 有 %d 个有效字段, 但指定了 %d 个字段"
 
-#: parser/parse_relation.c:864
+#: parser/parse_relation.c:979
 #, c-format
 msgid ""
 "There is a WITH item named \"%s\", but it cannot be referenced from this "
 "part of the query."
 msgstr "这里有一个名称为\"%s\"的WITH成员,但是不能从查询的这个部分引用它."
 
-#: parser/parse_relation.c:866
+#: parser/parse_relation.c:981
 #, c-format
 msgid ""
 "Use WITH RECURSIVE, or re-order the WITH items to remove forward references."
 msgstr "使用WITH RECURSIVE或重新排序WITH成员来删除前向引用."
 
-#: parser/parse_relation.c:1139
+#: parser/parse_relation.c:1287
 #, c-format
 msgid ""
 "a column definition list is only allowed for functions returning \"record\""
 msgstr "一个字段定义列表只允许返回 \"record\" 的函数"
 
-#: parser/parse_relation.c:1147
+#: parser/parse_relation.c:1296
 #, c-format
 msgid "a column definition list is required for functions returning \"record\""
 msgstr "一个字段定义列表需要返回 \"record\" 的函数"
 
-#: parser/parse_relation.c:1198
+#: parser/parse_relation.c:1375
 #, c-format
 msgid "function \"%s\" in FROM has unsupported return type %s"
 msgstr "FROM 中的函数 \"%s\" 不支持返回类型 %s"
 
-#: parser/parse_relation.c:1272
+#: parser/parse_relation.c:1495
 #, c-format
 msgid "VALUES lists \"%s\" have %d columns available but %d columns specified"
 msgstr "VALUES列表\"%s\"中有%d列有效, 但指定了%d个列."
 
-#: parser/parse_relation.c:1328
+#: parser/parse_relation.c:1548
 #, c-format
 msgid "joins can have at most %d columns"
 msgstr "连接最多可以有 %d 个字段"
 
-#: parser/parse_relation.c:1419
+#: parser/parse_relation.c:1636
 #, c-format
 msgid "WITH query \"%s\" does not have a RETURNING clause"
 msgstr "WITH 查询 \"%s\" 没有RETURNING子句"
 
-#: parser/parse_relation.c:2101
+#: parser/parse_relation.c:2468 parser/parse_relation.c:2623
 #, c-format
 msgid "column %d of relation \"%s\" does not exist"
 msgstr "在关系\"%2$s\"中的列 %1$d 不存在"
 
-#: parser/parse_relation.c:2485
-#, c-format
-msgid "invalid reference to FROM-clause entry for table \"%s\""
-msgstr "对于表 \"%s\"的FROM子句项的引用无效 "
-
-#: parser/parse_relation.c:2488
+#: parser/parse_relation.c:2842
 #, c-format
 msgid "Perhaps you meant to reference the table alias \"%s\"."
 msgstr "可能您是要引用表的化名 \"%s\"."
 
-#: parser/parse_relation.c:2490
-#, c-format
-msgid ""
-"There is an entry for table \"%s\", but it cannot be referenced from this "
-"part of the query."
-msgstr "这里有一个对于表\"%s\"的项,但是不能从查询的这个部分中引用."
-
-#: parser/parse_relation.c:2496
+#: parser/parse_relation.c:2850
 #, c-format
 msgid "missing FROM-clause entry for table \"%s\""
 msgstr "对于表\"%s\",丢失FROM子句项"
 
-#: parser/parse_target.c:383 parser/parse_target.c:671
+#: parser/parse_relation.c:2890
+#, c-format
+#| msgid ""
+#| "There is an entry for table \"%s\", but it cannot be referenced from this "
+#| "part of the query."
+msgid ""
+"There is a column named \"%s\" in table \"%s\", but it cannot be referenced "
+"from this part of the query."
+msgstr ""
+"表\"%2$s\"中存在一列,名为\"%1$s\", 但是这个表名并不能从这部分查询里引用."
+
+#: parser/parse_target.c:402 parser/parse_target.c:693
 #, c-format
 msgid "cannot assign to system column \"%s\""
 msgstr "不能指定系统字段名 \"%s\""
 
-#: parser/parse_target.c:411
+#: parser/parse_target.c:430
 #, c-format
 msgid "cannot set an array element to DEFAULT"
 msgstr "不能设置一个数组元素为 DEFAULT"
 
-#: parser/parse_target.c:416
+#: parser/parse_target.c:435
 #, c-format
 msgid "cannot set a subfield to DEFAULT"
 msgstr "不能设置子字段为 DEFAULT"
 
-#: parser/parse_target.c:485
+#: parser/parse_target.c:504
 #, c-format
 msgid "column \"%s\" is of type %s but expression is of type %s"
 msgstr "字段 \"%s\" 的类型为 %s, 但表达式的类型为 %s"
 
-#: parser/parse_target.c:655
+#: parser/parse_target.c:677
 #, c-format
 msgid ""
 "cannot assign to field \"%s\" of column \"%s\" because its type %s is not a "
@@ -11452,7 +12940,7 @@ msgid ""
 msgstr ""
 "无法指定列 \"%2$s\" 的字段 \"%1$s\", 因为它的类型 %3$s 不是一个复合类型"
 
-#: parser/parse_target.c:664
+#: parser/parse_target.c:686
 #, c-format
 msgid ""
 "cannot assign to field \"%s\" of column \"%s\" because there is no such "
@@ -11460,291 +12948,288 @@ msgid ""
 msgstr ""
 "无法给字段 \"%2$s\" 的数据域 \"%1$s\" 赋值, 因为在数据类型 %3$s 中没有此列"
 
-#: parser/parse_target.c:731
+#: parser/parse_target.c:753
 #, c-format
 msgid ""
 "array assignment to \"%s\" requires type %s but expression is of type %s"
 msgstr "将数组分配给\"%s\" 时需要类型%s,但是表达式属于类型%s"
 
-#: parser/parse_target.c:741
+#: parser/parse_target.c:763
 #, c-format
 msgid "subfield \"%s\" is of type %s but expression is of type %s"
 msgstr "子字段 \"%s\" 的类型为 %s, 但表达式的类型为 %s"
 
-#: parser/parse_target.c:1127
+#: parser/parse_target.c:1179
 #, c-format
 msgid "SELECT * with no tables specified is not valid"
 msgstr "SELECT * 没有指定表是无效的"
 
-#: parser/parse_type.c:83
+#: parser/parse_type.c:84
 #, c-format
 msgid "improper %%TYPE reference (too few dotted names): %s"
 msgstr "不合适的 %%TYPE 关联 (名字中点符号太少): %s"
 
-#: parser/parse_type.c:105
+#: parser/parse_type.c:106
 #, c-format
 msgid "improper %%TYPE reference (too many dotted names): %s"
 msgstr "不合适的 %%TYPE 关联 (名字中太多点符号): %s"
 
-#: parser/parse_type.c:133
+#: parser/parse_type.c:141
 #, c-format
 msgid "type reference %s converted to %s"
 msgstr "类型关联 %s 转换为 %s"
 
-#: parser/parse_type.c:208 utils/cache/typcache.c:196
+#: parser/parse_type.c:257 parser/parse_type.c:805 utils/cache/typcache.c:198
 #, c-format
 msgid "type \"%s\" is only a shell"
 msgstr "类型 \"%s\" 只是一个 shell"
 
-#: parser/parse_type.c:293
+#: parser/parse_type.c:342
 #, c-format
 msgid "type modifier is not allowed for type \"%s\""
 msgstr "对于类型\"%s\"不允许使用类型修改器"
 
-#: parser/parse_type.c:336
+#: parser/parse_type.c:384
 #, c-format
 msgid "type modifiers must be simple constants or identifiers"
 msgstr "类型修改器必须是简单的常量或标示符."
 
-#: parser/parse_type.c:647 parser/parse_type.c:746
+#: parser/parse_type.c:695 parser/parse_type.c:819
 #, c-format
 msgid "invalid type name \"%s\""
 msgstr "无效的类型名字 \"%s\""
 
-#: parser/parse_utilcmd.c:175
+#: parser/parse_utilcmd.c:177
 #, c-format
 msgid "relation \"%s\" already exists, skipping"
 msgstr "关系 \"%s\" 已经存在, 跳过"
 
-#: parser/parse_utilcmd.c:334
+#: parser/parse_utilcmd.c:342
 #, c-format
 msgid "array of serial is not implemented"
 msgstr "未实现序号数组"
 
-#: parser/parse_utilcmd.c:382
+#: parser/parse_utilcmd.c:390
 #, c-format
 msgid "%s will create implicit sequence \"%s\" for serial column \"%s.%s\""
 msgstr "%1$s 将为 serial 字段 \"%3$s.%4$s\" 创建隐含序列 \"%2$s\""
 
-#: parser/parse_utilcmd.c:483 parser/parse_utilcmd.c:495
+#: parser/parse_utilcmd.c:484 parser/parse_utilcmd.c:496
 #, c-format
 msgid ""
 "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\""
 msgstr "表 \"%2$s\" 的字段 \"%1$s\" 声明 NULL/NOT NULL 冲突"
 
-#: parser/parse_utilcmd.c:507
+#: parser/parse_utilcmd.c:508
 #, c-format
 msgid "multiple default values specified for column \"%s\" of table \"%s\""
 msgstr "对表 \"%2$s\" 的字段 \"%1$s\" 指定了多遍默认值"
 
-#: parser/parse_utilcmd.c:1160 parser/parse_utilcmd.c:1236
+#: parser/parse_utilcmd.c:675
+#, c-format
+#| msgid "\"%s\" is not a table or foreign table"
+msgid "LIKE is not supported for creating foreign tables"
+msgstr "LIKE不能用于创建外部表"
+
+#: parser/parse_utilcmd.c:1196 parser/parse_utilcmd.c:1272
 #, c-format
 msgid "Index \"%s\" contains a whole-row table reference."
 msgstr "索引 \"%s\" 包含一个整行表引用."
 
-#: parser/parse_utilcmd.c:1503
+#: parser/parse_utilcmd.c:1539
 #, c-format
 msgid "cannot use an existing index in CREATE TABLE"
 msgstr " CREATE TABLE语句不能使用一个已存在的索引"
 
-#: parser/parse_utilcmd.c:1523
+#: parser/parse_utilcmd.c:1559
 #, c-format
 msgid "index \"%s\" is already associated with a constraint"
 msgstr "index \"%s\"与某个约束已经关联"
 
-#: parser/parse_utilcmd.c:1531
+#: parser/parse_utilcmd.c:1567
 #, c-format
 msgid "index \"%s\" does not belong to table \"%s\""
 msgstr "索引 \"%s\" 不属于表\"%s\""
 
-#: parser/parse_utilcmd.c:1538
+#: parser/parse_utilcmd.c:1574
 #, c-format
 msgid "index \"%s\" is not valid"
 msgstr "索引 \"%s\" 无效"
 
-#: parser/parse_utilcmd.c:1544
+#: parser/parse_utilcmd.c:1580
 #, c-format
 msgid "\"%s\" is not a unique index"
 msgstr "\"%s\" 不是唯一索引"
 
-#: parser/parse_utilcmd.c:1545 parser/parse_utilcmd.c:1552
-#: parser/parse_utilcmd.c:1559 parser/parse_utilcmd.c:1629
+#: parser/parse_utilcmd.c:1581 parser/parse_utilcmd.c:1588
+#: parser/parse_utilcmd.c:1595 parser/parse_utilcmd.c:1665
 #, c-format
 msgid "Cannot create a primary key or unique constraint using such an index."
 msgstr "无法使用该索引创建主键或唯一约束."
 
-#: parser/parse_utilcmd.c:1551
+#: parser/parse_utilcmd.c:1587
 #, c-format
 msgid "index \"%s\" contains expressions"
 msgstr "索引 \"%s\" 含有表达式"
 
-#: parser/parse_utilcmd.c:1558
+#: parser/parse_utilcmd.c:1594
 #, c-format
 msgid "\"%s\" is a partial index"
 msgstr "\"%s\" 是一个部分索引"
 
-#: parser/parse_utilcmd.c:1570
+#: parser/parse_utilcmd.c:1606
 #, c-format
 msgid "\"%s\" is a deferrable index"
 msgstr "\"%s\" 不是一个延迟索引"
 
-#: parser/parse_utilcmd.c:1571
+#: parser/parse_utilcmd.c:1607
 #, c-format
 msgid "Cannot create a non-deferrable constraint using a deferrable index."
 msgstr "无法为使用可延迟索引的约束创建非可延迟约束"
 
-#: parser/parse_utilcmd.c:1628
+#: parser/parse_utilcmd.c:1664
 #, c-format
 msgid "index \"%s\" does not have default sorting behavior"
 msgstr "索引 \"%s\"没有缺省的排序行为"
 
-#: parser/parse_utilcmd.c:1773
+#: parser/parse_utilcmd.c:1809
 #, c-format
 msgid "column \"%s\" appears twice in primary key constraint"
 msgstr "在主键约束中字段 \"%s\" 出现了两次"
 
-#: parser/parse_utilcmd.c:1779
+#: parser/parse_utilcmd.c:1815
 #, c-format
 msgid "column \"%s\" appears twice in unique constraint"
 msgstr "字段 \"%s\" 在唯一约束中出现两次"
 
-#: parser/parse_utilcmd.c:1944
+#: parser/parse_utilcmd.c:1981
 #, c-format
 msgid "index expression cannot return a set"
 msgstr "索引表达式不能返回一个集合"
 
-#: parser/parse_utilcmd.c:1954
+#: parser/parse_utilcmd.c:1992
 #, c-format
 msgid ""
 "index expressions and predicates can refer only to the table being indexed"
 msgstr "索引表达式和声明只能指向要建索引的表"
 
-#: parser/parse_utilcmd.c:2051
-#, c-format
-msgid "rule WHERE condition cannot contain references to other relations"
-msgstr "规则的WHERE条件不能包含到其它关系的引用"
-
-#: parser/parse_utilcmd.c:2057
+#: parser/parse_utilcmd.c:2035
 #, c-format
-msgid "cannot use aggregate function in rule WHERE condition"
-msgstr "在检查约束中不能使用聚合函数"
+#| msgid "multidimensional arrays are not supported"
+msgid "rules on materialized views are not supported"
+msgstr "物化视图不能使用规则(rules)"
 
-#: parser/parse_utilcmd.c:2061
+#: parser/parse_utilcmd.c:2096
 #, c-format
-msgid "cannot use window function in rule WHERE condition"
-msgstr "在检查约束中不能使用窗口函数"
+msgid "rule WHERE condition cannot contain references to other relations"
+msgstr "规则的WHERE条件不能包含到其它关系的引用"
 
-#: parser/parse_utilcmd.c:2133
+#: parser/parse_utilcmd.c:2168
 #, c-format
 msgid ""
 "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE "
 "actions"
 msgstr "带有WHERE 条件的规则只允许有操作 SELECT, INSERT, UPDATE, 或者 DELETE "
 
-#: parser/parse_utilcmd.c:2151 parser/parse_utilcmd.c:2250
-#: rewrite/rewriteHandler.c:442 rewrite/rewriteManip.c:1040
+#: parser/parse_utilcmd.c:2186 parser/parse_utilcmd.c:2285
+#: rewrite/rewriteHandler.c:469 rewrite/rewriteManip.c:968
 #, c-format
 msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented"
 msgstr "条件工具语句 UNION/INTERSECT/EXCEPT 没有实现"
 
-#: parser/parse_utilcmd.c:2169
+#: parser/parse_utilcmd.c:2204
 #, c-format
 msgid "ON SELECT rule cannot use OLD"
 msgstr "规则ON SELECT不能使用关键词OLD"
 
-#: parser/parse_utilcmd.c:2173
+#: parser/parse_utilcmd.c:2208
 #, c-format
 msgid "ON SELECT rule cannot use NEW"
 msgstr "规则ON SELECT不能使用关键词NEW"
 
-#: parser/parse_utilcmd.c:2182
+#: parser/parse_utilcmd.c:2217
 #, c-format
 msgid "ON INSERT rule cannot use OLD"
 msgstr "规则ON INSERT不能使用关键词OLD"
 
-#: parser/parse_utilcmd.c:2188
+#: parser/parse_utilcmd.c:2223
 #, c-format
 msgid "ON DELETE rule cannot use NEW"
 msgstr "规则ON DELETE不能使用关键词NEW"
 
-#: parser/parse_utilcmd.c:2216
+#: parser/parse_utilcmd.c:2251
 #, c-format
 msgid "cannot refer to OLD within WITH query"
 msgstr "WITH查询中无法引用OLD"
 
-#: parser/parse_utilcmd.c:2223
+#: parser/parse_utilcmd.c:2258
 #, c-format
 msgid "cannot refer to NEW within WITH query"
 msgstr "WITH 查询无法引用NEW"
 
-#: parser/parse_utilcmd.c:2514
+#: parser/parse_utilcmd.c:2541
 #, c-format
 msgid "misplaced DEFERRABLE clause"
 msgstr "DEFERRABLE 子句位置错误"
 
-#: parser/parse_utilcmd.c:2519 parser/parse_utilcmd.c:2534
+#: parser/parse_utilcmd.c:2546 parser/parse_utilcmd.c:2561
 #, c-format
 msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed"
 msgstr "不允许多个 DEFERRABLE/NOT DEFERRABLE 子句"
 
-#: parser/parse_utilcmd.c:2529
+#: parser/parse_utilcmd.c:2556
 #, c-format
 msgid "misplaced NOT DEFERRABLE clause"
 msgstr "NOT DEFERRABLE 子句位置错误"
 
-#: parser/parse_utilcmd.c:2542 parser/parse_utilcmd.c:2568 gram.y:4237
-#, c-format
-msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE"
-msgstr "约束声明 INITIALLY DEFERRED 必须为 DEFERRABLE"
-
-#: parser/parse_utilcmd.c:2550
+#: parser/parse_utilcmd.c:2577
 #, c-format
 msgid "misplaced INITIALLY DEFERRED clause"
 msgstr "INITIALLY DEFERRED 子句位置错误"
 
-#: parser/parse_utilcmd.c:2555 parser/parse_utilcmd.c:2581
+#: parser/parse_utilcmd.c:2582 parser/parse_utilcmd.c:2608
 #, c-format
 msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed"
 msgstr "不允许多个 INITIALLY IMMEDIATE/DEFERRED 子句"
 
-#: parser/parse_utilcmd.c:2576
+#: parser/parse_utilcmd.c:2603
 #, c-format
 msgid "misplaced INITIALLY IMMEDIATE clause"
 msgstr "INITIALLY IMMEDIATE 子句位置错误"
 
-#: parser/parse_utilcmd.c:2767
+#: parser/parse_utilcmd.c:2794
 #, c-format
 msgid ""
 "CREATE specifies a schema (%s) different from the one being created (%s)"
 msgstr "CREATE 指定的模式 (%s) 和将要创建的 (%s) 不同"
 
-#: parser/scansup.c:190
+#: parser/scansup.c:194
 #, c-format
 msgid "identifier \"%s\" will be truncated to \"%s\""
 msgstr "标识符\"%s\"将会被截断为\"%s\""
 
-#: port/pg_latch.c:334 port/unix_latch.c:334
+#: port/pg_latch.c:336 port/unix_latch.c:336
 #, c-format
 msgid "poll() failed: %m"
 msgstr "poll()失败: %m"
 
-#: port/pg_latch.c:421 port/unix_latch.c:421
-#: replication/libpqwalreceiver/libpqwalreceiver.c:233
+#: port/pg_latch.c:423 port/unix_latch.c:423
+#: replication/libpqwalreceiver/libpqwalreceiver.c:363
 #, c-format
 msgid "select() failed: %m"
 msgstr "执行select()失败: %m"
 
-#: port/pg_sema.c:111 port/sysv_sema.c:111
+#: port/pg_sema.c:113 port/sysv_sema.c:113
 #, c-format
 msgid "could not create semaphores: %m"
 msgstr "无法创建信号量: %m"
 
-#: port/pg_sema.c:112 port/sysv_sema.c:112
+#: port/pg_sema.c:114 port/sysv_sema.c:114
 #, c-format
 msgid "Failed system call was semget(%lu, %d, 0%o)."
 msgstr "semget(%lu, %d, 0%o) 系统调用失败."
 
-#: port/pg_sema.c:116 port/sysv_sema.c:116
+#: port/pg_sema.c:118 port/sysv_sema.c:118
 #, c-format
 msgid ""
 "This error does *not* mean that you have run out of disk space.  It occurs "
@@ -11762,7 +13247,7 @@ msgstr ""
 "max_connections来减少它所消耗的信号灯总数.\n"
 "在PostgreSQL文档中包含了更多关于如何配置PostgreSQL的信息。"
 
-#: port/pg_sema.c:143 port/sysv_sema.c:143
+#: port/pg_sema.c:148 port/sysv_sema.c:148
 #, c-format
 msgid ""
 "You possibly need to raise your kernel's SEMVMX value to be at least %d.  "
@@ -11770,76 +13255,126 @@ msgid ""
 msgstr ""
 "你可能需要增加内核的 SEMVMX 值至少为 %d. 详细信息请查找 PostgreSQL 文档."
 
-#: port/pg_shmem.c:144 port/sysv_shmem.c:144
+#: port/pg_shmem.c:141 port/sysv_shmem.c:141
 #, c-format
 msgid "could not create shared memory segment: %m"
 msgstr "无法创建共享内存段: %m"
 
-#: port/pg_shmem.c:145 port/sysv_shmem.c:145
+#: port/pg_shmem.c:142 port/sysv_shmem.c:142
 #, c-format
-msgid "Failed system call was shmget(key=%lu, size=%lu, 0%o)."
-msgstr "系统调用shmget(key=%lu, size=%lu, 0%o) 执行失败."
+#| msgid "Failed system call was shmget(key=%lu, size=%lu, 0%o)."
+msgid "Failed system call was shmget(key=%lu, size=%zu, 0%o)."
+msgstr "系统调用shmget(key=%lu, size=%zu, 0%o) 执行失败."
 
-#: port/pg_shmem.c:149 port/sysv_shmem.c:149
+#: port/pg_shmem.c:146 port/sysv_shmem.c:146
 #, c-format
+#| msgid ""
+#| "This error usually means that PostgreSQL's request for a shared memory "
+#| "segment exceeded available memory or swap space, or exceeded your "
+#| "kernel's SHMALL parameter.  You can either reduce the request size or "
+#| "reconfigure the kernel with larger SHMALL.  To reduce the request size "
+#| "(currently %lu bytes), reduce PostgreSQL's shared memory usage, perhaps "
+#| "by reducing shared_buffers or max_connections.\n"
+#| "The PostgreSQL documentation contains more information about shared "
+#| "memory configuration."
 msgid ""
 "This error usually means that PostgreSQL's request for a shared memory "
-"segment exceeded your kernel's SHMMAX parameter.  You can either reduce the "
-"request size or reconfigure the kernel with larger SHMMAX.  To reduce the "
-"request size (currently %lu bytes), reduce PostgreSQL's shared memory usage, "
-"perhaps by reducing shared_buffers or max_connections.\n"
-"If the request size is already small, it's possible that it is less than "
-"your kernel's SHMMIN parameter, in which case raising the request size or "
-"reconfiguring SHMMIN is called for.\n"
+"segment exceeded your kernel's SHMMAX parameter, or possibly that it is less "
+"than your kernel's SHMMIN parameter.\n"
 "The PostgreSQL documentation contains more information about shared memory "
 "configuration."
 msgstr ""
-"这个错误通常表示PostgreSQL所请求的共享内存段大小超过了操作系统内核的参数"
-"SHMMAX. 解决方法可以是减少所请求共享内存的大小或者增大SHMMAX参数的值.为了减少"
-"所请求的共享内存大小(当前是%lu字节), 需要减少PostgreSQL的参数shared_buffers和"
-"参数max_connections.\n"
-"如果所请求的共享内存已经很小了,那么可能的原因是所请求的大小小于内核参数"
-"SHMMIN,在这种情况下需要增大所请求的共享内存或者重新配置SHMMIN.\n"
-"更多关于配置共享内存的信息包含在PostgreSQL文档中."
+"这个错误通常表示PostgreSQL所请求的共享内存段超过了内核中的SHMMAX参数值,或者"
+"小于内核中的SHMMIN参数值。\n"
+"PostgreSQL文档包含了关于如何配置共享内存的更多信息."
 
-#: port/pg_shmem.c:162 port/sysv_shmem.c:162
+#: port/pg_shmem.c:153 port/sysv_shmem.c:153
 #, c-format
+#| msgid ""
+#| "This error usually means that PostgreSQL's request for a shared memory "
+#| "segment exceeded available memory or swap space, or exceeded your "
+#| "kernel's SHMALL parameter.  You can either reduce the request size or "
+#| "reconfigure the kernel with larger SHMALL.  To reduce the request size "
+#| "(currently %lu bytes), reduce PostgreSQL's shared memory usage, perhaps "
+#| "by reducing shared_buffers or max_connections.\n"
+#| "The PostgreSQL documentation contains more information about shared "
+#| "memory configuration."
 msgid ""
 "This error usually means that PostgreSQL's request for a shared memory "
-"segment exceeded available memory or swap space, or exceeded your kernel's "
-"SHMALL parameter.  You can either reduce the request size or reconfigure the "
-"kernel with larger SHMALL.  To reduce the request size (currently %lu "
-"bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing "
-"shared_buffers or max_connections.\n"
+"segment exceeded your kernel's SHMALL parameter.  You might need to "
+"reconfigure the kernel with larger SHMALL.\n"
 "The PostgreSQL documentation contains more information about shared memory "
 "configuration."
 msgstr ""
-"这个错误通常表示PostgreSQL所请求的共享内存段超过了可用内存总量或者交换空间,"
-"或者超过了内核中设定的SHMALL参数值。您可以减小所请求的值或者重新将内核中的"
-"SHMALL参数配置一个较大的值 为减少所请求空间的大小(当前是%lu字节),请减少参数"
-"shared_buffers和参数max_connections.\n"
+"这个错误通常表示PostgreSQL所请求的共享内存段超过了内核中设定的SHMALL参数值。"
+"您可以重新配置内核, 使用更大的SHMALL参数值.\n"
 "PostgreSQL文档包含了关于如何配置共享内存的更多信息."
 
-#: port/pg_shmem.c:173 port/sysv_shmem.c:173
+#: port/pg_shmem.c:159 port/sysv_shmem.c:159
 #, c-format
+#| msgid ""
+#| "This error does *not* mean that you have run out of disk space.  It "
+#| "occurs either if all available shared memory IDs have been taken, in "
+#| "which case you need to raise the SHMMNI parameter in your kernel, or "
+#| "because the system's overall limit for shared memory has been reached.  "
+#| "If you cannot increase the shared memory limit, reduce PostgreSQL's "
+#| "shared memory request (currently %lu bytes), perhaps by reducing "
+#| "shared_buffers or max_connections.\n"
+#| "The PostgreSQL documentation contains more information about shared "
+#| "memory configuration."
 msgid ""
 "This error does *not* mean that you have run out of disk space.  It occurs "
 "either if all available shared memory IDs have been taken, in which case you "
 "need to raise the SHMMNI parameter in your kernel, or because the system's "
-"overall limit for shared memory has been reached.  If you cannot increase "
-"the shared memory limit, reduce PostgreSQL's shared memory request "
-"(currently %lu bytes), perhaps by reducing shared_buffers or "
-"max_connections.\n"
+"overall limit for shared memory has been reached.\n"
 "The PostgreSQL documentation contains more information about shared memory "
 "configuration."
 msgstr ""
 "这个错误不表示您系统上磁盘空间已经用尽.原因既有可能是系统上所有的有效共享内存"
 "ID不存在了,这样需要在内核中升高SHMMNI参数的值,或者是因为已到达系统最大的共"
-"享内存限制.如果无法增加共享内存的上限值,请通过减少参数shared_buffers和参数"
-"max_connections来减少PostgreSQL占有的共享内存(当前是%lu字节).\n"
+"享内存限制.如果无法增加共享内存的上限值.\n"
 "在PostgreSQL文档中包含了关于如何配置共享内存的更多信息."
 
-#: port/pg_shmem.c:436 port/sysv_shmem.c:436
+#: port/pg_shmem.c:340 port/sysv_shmem.c:340
+#, c-format
+#| msgid "tablespaces are not supported on this platform"
+msgid "huge TLB pages not supported on this platform"
+msgstr "在此平台上不支持巨型的TLB页"
+
+#: port/pg_shmem.c:390 port/sysv_shmem.c:390
+#, c-format
+#| msgid "could not create shared memory segment: %m"
+msgid "could not map anonymous shared memory: %m"
+msgstr "无法映射匿名共享内存: %m"
+
+#: port/pg_shmem.c:392 port/sysv_shmem.c:392
+#, c-format
+#| msgid ""
+#| "This error usually means that PostgreSQL's request for a shared memory "
+#| "segment exceeded available memory or swap space, or exceeded your "
+#| "kernel's SHMALL parameter.  You can either reduce the request size or "
+#| "reconfigure the kernel with larger SHMALL.  To reduce the request size "
+#| "(currently %lu bytes), reduce PostgreSQL's shared memory usage, perhaps "
+#| "by reducing shared_buffers or max_connections.\n"
+#| "The PostgreSQL documentation contains more information about shared "
+#| "memory configuration."
+msgid ""
+"This error usually means that PostgreSQL's request for a shared memory "
+"segment exceeded available memory, swap space, or huge pages. To reduce the "
+"request size (currently %zu bytes), reduce PostgreSQL's shared memory usage, "
+"perhaps by reducing shared_buffers or max_connections."
+msgstr ""
+"这个错误通常表示PostgreSQL所请求的共享内存段超过了可用内存总量或者交换空间或"
+"者巨型页大小。为减少所请求空间的大小(当前是%zu字节),减少PostgreSQL文档包含了"
+"关于如何配置共享内存的更多信息."
+
+#: port/pg_shmem.c:439 port/sysv_shmem.c:439 port/win32_shmem.c:136
+#, c-format
+#| msgid "not supported on this platform\n"
+msgid "huge pages not supported on this platform"
+msgstr "此平台不支持巨型页"
+
+#: port/pg_shmem.c:553 port/sysv_shmem.c:553
 #, c-format
 msgid "could not stat data directory \"%s\": %m"
 msgstr "无法取目录 \"%s\" 状态: %m"
@@ -11886,17 +13421,17 @@ msgstr "无法获取管理员组的 SID: 错误码 %lu\n"
 msgid "could not get SID for PowerUsers group: error code %lu\n"
 msgstr "无法获取PowerUsers组的 SID: 错误码 %lu\n"
 
-#: port/win32/signal.c:189
+#: port/win32/signal.c:193
 #, c-format
 msgid "could not create signal listener pipe for PID %d: error code %lu"
 msgstr "无法为进程PID %d 创建信号监听管道: 错误码为 %lu"
 
-#: port/win32/signal.c:269 port/win32/signal.c:301
+#: port/win32/signal.c:273 port/win32/signal.c:305
 #, c-format
 msgid "could not create signal listener pipe: error code %lu; retrying\n"
 msgstr "无法创建信号监听管道: 错误码 %lu; 重试\n"
 
-#: port/win32/signal.c:312
+#: port/win32/signal.c:316
 #, c-format
 msgid "could not create signal dispatch thread: error code %lu\n"
 msgstr "无法创建信号分发线程: 错误码 %lu\n"
@@ -11921,415 +13456,518 @@ msgstr "无法对信号灯(semaphore)解锁: 错误代码 %lu"
 msgid "could not try-lock semaphore: error code %lu"
 msgstr "无法进行锁定信号灯(semaphore)的尝试: 错误代码 %lu"
 
-#: port/win32_shmem.c:168 port/win32_shmem.c:203 port/win32_shmem.c:224
+#: port/win32_shmem.c:175 port/win32_shmem.c:210 port/win32_shmem.c:231
 #, c-format
 msgid "could not create shared memory segment: error code %lu"
 msgstr "无法创建共享内存段: 错误码%lu"
 
-#: port/win32_shmem.c:169
+#: port/win32_shmem.c:176
 #, c-format
-msgid "Failed system call was CreateFileMapping(size=%lu, name=%s)."
-msgstr "系统调用CreateFileMapping(size=%lu, name=%s)执行失败."
+#| msgid "Failed system call was CreateFileMapping(size=%lu, name=%s)."
+msgid "Failed system call was CreateFileMapping(size=%zu, name=%s)."
+msgstr "系统调用CreateFileMapping(size=%zu, name=%s)执行失败."
 
-#: port/win32_shmem.c:193
+#: port/win32_shmem.c:200
 #, c-format
 msgid "pre-existing shared memory block is still in use"
 msgstr "已存在的共享内存块仍在使用中"
 
-#: port/win32_shmem.c:194
+#: port/win32_shmem.c:201
 #, c-format
 msgid ""
 "Check if there are any old server processes still running, and terminate "
 "them."
 msgstr "检查原先的服务器进程是否仍在运行,如果是的话请终止这些进程."
 
-#: port/win32_shmem.c:204
+#: port/win32_shmem.c:211
 #, c-format
 msgid "Failed system call was DuplicateHandle."
 msgstr "系统调用DuplicateHandle执行失败"
 
-#: port/win32_shmem.c:225
+#: port/win32_shmem.c:232
 #, c-format
 msgid "Failed system call was MapViewOfFileEx."
 msgstr "系统调用MapViewOfFileEx执行失败."
 
-#: postmaster/autovacuum.c:362
+#: postmaster/autovacuum.c:380
 #, c-format
 msgid "could not fork autovacuum launcher process: %m"
 msgstr "无法派生autovacuum启动进程: %m"
 
-#: postmaster/autovacuum.c:407
+#: postmaster/autovacuum.c:425
 #, c-format
 msgid "autovacuum launcher started"
 msgstr "已启动autovacuum"
 
-#: postmaster/autovacuum.c:767
+#: postmaster/autovacuum.c:790
 #, c-format
 msgid "autovacuum launcher shutting down"
 msgstr "正在关闭autovacuum启动进程"
 
-#: postmaster/autovacuum.c:1420
+#: postmaster/autovacuum.c:1453
 #, c-format
 msgid "could not fork autovacuum worker process: %m"
 msgstr "无法派生autovacuum工作进程: %m"
 
-#: postmaster/autovacuum.c:1638
+#: postmaster/autovacuum.c:1672
 #, c-format
 msgid "autovacuum: processing database \"%s\""
 msgstr "autovacuum: 正在处理数据库 \"%s\""
 
-#: postmaster/autovacuum.c:2041
+#: postmaster/autovacuum.c:2076
 #, c-format
 msgid "autovacuum: dropping orphan temp table \"%s\".\"%s\" in database \"%s\""
 msgstr "autovacuum: 正在数据库\"%3$s\"中删除遗留的临时表\"%1$s\".\"%2$s\""
 
-#: postmaster/autovacuum.c:2053
+#: postmaster/autovacuum.c:2088
 #, c-format
 msgid "autovacuum: found orphan temp table \"%s\".\"%s\" in database \"%s\""
 msgstr "autovacuum: 在数据库\"%3$s\"中找到遗留的临时表\"%1$s\".\"%2$s\""
 
-#: postmaster/autovacuum.c:2323
+#: postmaster/autovacuum.c:2353
 #, c-format
 msgid "automatic vacuum of table \"%s.%s.%s\""
 msgstr "对表\"%s.%s.%s\"进行自动清理"
 
-#: postmaster/autovacuum.c:2326
+#: postmaster/autovacuum.c:2356
 #, c-format
 msgid "automatic analyze of table \"%s.%s.%s\""
 msgstr "对表\"%s.%s.%s\"进行自动分析"
 
-#: postmaster/autovacuum.c:2812
+#: postmaster/autovacuum.c:2889
 #, c-format
 msgid "autovacuum not started because of misconfiguration"
 msgstr "因为配制错误,而无法启动autovacuum"
 
-#: postmaster/autovacuum.c:2813
+#: postmaster/autovacuum.c:2890
 #, c-format
 msgid "Enable the \"track_counts\" option."
 msgstr "启用选项\"track_counts\" "
 
-#: postmaster/checkpointer.c:485
+#: postmaster/bgworker.c:323 postmaster/bgworker.c:732
+#, c-format
+msgid "registering background worker \"%s\""
+msgstr "注册后台工作进程 \"%s\""
+
+#: postmaster/bgworker.c:352
+#, c-format
+msgid "unregistering background worker \"%s\""
+msgstr "注销后台工作进程 \"%s\""
+
+#: postmaster/bgworker.c:454
+#, c-format
+msgid ""
+"background worker \"%s\": must attach to shared memory in order to request a "
+"database connection"
+msgstr "后台工作进程 \"%s\": 必须关联到共享内存,以用于请求一个数据库连接 "
+
+#: postmaster/bgworker.c:463
+#, c-format
+msgid ""
+"background worker \"%s\": cannot request database access if starting at "
+"postmaster start"
+msgstr ""
+"后台工作进程 \"%s\": 如果是在postmaster启动时启动,则无法请求数据库访问 "
+
+#: postmaster/bgworker.c:477
+#, c-format
+#| msgid "%s: invalid status interval \"%s\"\n"
+msgid "background worker \"%s\": invalid restart interval"
+msgstr "后台工作进程 \"%s\": 无效的重启时间间隔"
+
+#: postmaster/bgworker.c:522
+#, c-format
+#| msgid "terminating connection due to administrator command"
+msgid "terminating background worker \"%s\" due to administrator command"
+msgstr "由于管理员命令中断后台工作进程\"%s\""
+
+#: postmaster/bgworker.c:739
+#, c-format
+msgid ""
+"background worker \"%s\": must be registered in shared_preload_libraries"
+msgstr "后台工作进程 \"%s\": 必须注册于库 shared_preload_libraries中"
+
+#: postmaster/bgworker.c:751
+#, c-format
+msgid ""
+"background worker \"%s\": only dynamic background workers can request "
+"notification"
+msgstr "后台工作进程 \"%s\": 只有动态工作进程可以请求通知"
+
+#: postmaster/bgworker.c:766
+#, c-format
+#| msgid "too many arguments"
+msgid "too many background workers"
+msgstr "太多后台工作进程"
+
+#: postmaster/bgworker.c:767
+#, c-format
+msgid "Up to %d background worker can be registered with the current settings."
+msgid_plural ""
+"Up to %d background workers can be registered with the current settings."
+msgstr[0] "当前设置里最多可以注册%d个后台工作进程."
+
+#: postmaster/bgworker.c:771
+#, c-format
+#| msgid ""
+#| "Consider increasing the configuration parameter \"checkpoint_segments\"."
+msgid ""
+"Consider increasing the configuration parameter \"max_worker_processes\"."
+msgstr "考虑增大配置参数 \"max_worker_processes\"的值."
+
+#: postmaster/checkpointer.c:481
 #, c-format
 msgid "checkpoints are occurring too frequently (%d second apart)"
 msgid_plural "checkpoints are occurring too frequently (%d seconds apart)"
 msgstr[0] "检查点事件发生过于频繁(%d 秒间隔)"
 
-#: postmaster/checkpointer.c:489
+#: postmaster/checkpointer.c:485
 #, c-format
 msgid ""
 "Consider increasing the configuration parameter \"checkpoint_segments\"."
 msgstr "认为增加配置参数 \"checkpoint_segments\"."
 
-#: postmaster/checkpointer.c:634
+#: postmaster/checkpointer.c:630
 #, c-format
 msgid "transaction log switch forced (archive_timeout=%d)"
 msgstr "强制切换事务日志 (archive_timeout=%d)"
 
-#: postmaster/checkpointer.c:1090
+#: postmaster/checkpointer.c:1083
 #, c-format
 msgid "checkpoint request failed"
 msgstr "检查点请求失败"
 
-#: postmaster/checkpointer.c:1091
+#: postmaster/checkpointer.c:1084
 #, c-format
 msgid "Consult recent messages in the server log for details."
 msgstr "详细信息请参考服务器日志."
 
-#: postmaster/checkpointer.c:1287
+#: postmaster/checkpointer.c:1280
 #, c-format
 msgid "compacted fsync request queue from %d entries to %d entries"
 msgstr "将fsync请求队列从%d压缩至%d项"
 
-#: postmaster/pgarch.c:164
+#: postmaster/pgarch.c:154
 #, c-format
 msgid "could not fork archiver: %m"
 msgstr "无法 fork archiver: %m"
 
-#: postmaster/pgarch.c:490
+#: postmaster/pgarch.c:481
 #, c-format
 msgid "archive_mode enabled, yet archive_command is not set"
 msgstr "已启用归档模式参数archive_mode,但是还没有设置参数archive_command is"
 
-#: postmaster/pgarch.c:505
+#: postmaster/pgarch.c:509
 #, c-format
-msgid "transaction log file \"%s\" could not be archived: too many failures"
-msgstr "事务日志文件 \"%s\" 无法归档: 失败次数太多"
+#| msgid "transaction log file \"%s\" could not be archived: too many failures"
+msgid ""
+"archiving transaction log file \"%s\" failed too many times, will try again "
+"later"
+msgstr "归档事务日志文件 \"%s\" 多次失败, 将会重试"
 
-#: postmaster/pgarch.c:608
+#: postmaster/pgarch.c:612
 #, c-format
 msgid "archive command failed with exit code %d"
 msgstr "归档命令执行失败,退出代码为 %d"
 
-#: postmaster/pgarch.c:610 postmaster/pgarch.c:620 postmaster/pgarch.c:627
-#: postmaster/pgarch.c:633 postmaster/pgarch.c:642
+#: postmaster/pgarch.c:614 postmaster/pgarch.c:624 postmaster/pgarch.c:631
+#: postmaster/pgarch.c:637 postmaster/pgarch.c:646
 #, c-format
 msgid "The failed archive command was: %s"
 msgstr "执行失败的归档命令是: %s"
 
-#: postmaster/pgarch.c:617
+#: postmaster/pgarch.c:621
 #, c-format
 msgid "archive command was terminated by exception 0x%X"
 msgstr "归档命令被异常 0x%X 终止"
 
-#: postmaster/pgarch.c:619 postmaster/postmaster.c:2883
+#: postmaster/pgarch.c:623 postmaster/postmaster.c:3303
 #, c-format
 msgid ""
 "See C include file \"ntstatus.h\" for a description of the hexadecimal value."
 msgstr "关于对16进制值的描述, 参见C语言的引用文件 \"ntstatus.h\" "
 
-#: postmaster/pgarch.c:624
+#: postmaster/pgarch.c:628
 #, c-format
 msgid "archive command was terminated by signal %d: %s"
 msgstr "归档命令被信号%d终止:%s"
 
-#: postmaster/pgarch.c:631
+#: postmaster/pgarch.c:635
 #, c-format
 msgid "archive command was terminated by signal %d"
 msgstr "归档命令被信号%d终止"
 
-#: postmaster/pgarch.c:640
+#: postmaster/pgarch.c:644
 #, c-format
 msgid "archive command exited with unrecognized status %d"
 msgstr "归档命令已退出, 未知状态 %d"
 
-#: postmaster/pgarch.c:652
+#: postmaster/pgarch.c:656
 #, c-format
 msgid "archived transaction log file \"%s\""
 msgstr "归档事务日志文件 \"%s\""
 
-#: postmaster/pgarch.c:701
+#: postmaster/pgarch.c:705
 #, c-format
 msgid "could not open archive status directory \"%s\": %m"
 msgstr "无法打开归档状态目录 \"%s\": %m"
 
-#: postmaster/pgstat.c:333
+#: postmaster/pgstat.c:354
 #, c-format
 msgid "could not resolve \"localhost\": %s"
 msgstr "无法解析 \"localhost\": %s"
 
-#: postmaster/pgstat.c:356
+#: postmaster/pgstat.c:377
 #, c-format
 msgid "trying another address for the statistics collector"
 msgstr "为统计信息收集器尝试另一个地址"
 
-#: postmaster/pgstat.c:365
+#: postmaster/pgstat.c:386
 #, c-format
 msgid "could not create socket for statistics collector: %m"
 msgstr "无法为统计收集器创建套接字: %m"
 
-#: postmaster/pgstat.c:377
+#: postmaster/pgstat.c:398
 #, c-format
 msgid "could not bind socket for statistics collector: %m"
 msgstr "无法绑定统计收集器的套接字: %m"
 
-#: postmaster/pgstat.c:388
+#: postmaster/pgstat.c:409
 #, c-format
 msgid "could not get address of socket for statistics collector: %m"
 msgstr "无法获得统计收集器的套接字地址: %m"
 
-#: postmaster/pgstat.c:404
+#: postmaster/pgstat.c:425
 #, c-format
 msgid "could not connect socket for statistics collector: %m"
 msgstr "无法联接统计收集器的套接字: %m"
 
-#: postmaster/pgstat.c:425
+#: postmaster/pgstat.c:446
 #, c-format
 msgid "could not send test message on socket for statistics collector: %m"
 msgstr "无法为统计收集器在套接字上发送测试信息: %m"
 
-#: postmaster/pgstat.c:451
+#: postmaster/pgstat.c:472
 #, c-format
 msgid "select() failed in statistics collector: %m"
 msgstr "在统计收集器中 select() 失败: %m"
 
-#: postmaster/pgstat.c:466
+#: postmaster/pgstat.c:487
 #, c-format
 msgid "test message did not get through on socket for statistics collector"
-msgstr "统计收集器的测试信息没有通过套接字: %m"
+msgstr "统计收集器的测试消息没有通过套接字"
 
-#: postmaster/pgstat.c:481
+#: postmaster/pgstat.c:502
 #, c-format
 msgid "could not receive test message on socket for statistics collector: %m"
 msgstr "无法为统计收集器在套接字上接收测试信息: %m"
 
-#: postmaster/pgstat.c:491
+#: postmaster/pgstat.c:512
 #, c-format
 msgid "incorrect test message transmission on socket for statistics collector"
-msgstr "统计收集器在套接字上不正确的测试信息 transmission: %m"
+msgstr "统计收集器在套接字上不正确的测试消息传输"
 
-#: postmaster/pgstat.c:514
+#: postmaster/pgstat.c:535
 #, c-format
 msgid "could not set statistics collector socket to nonblocking mode: %m"
 msgstr "无法把统计收集器的套接字设置为非阻塞模式: %m"
 
-#: postmaster/pgstat.c:524
+#: postmaster/pgstat.c:545
 #, c-format
 msgid "disabling statistics collector for lack of working socket"
 msgstr "当缺乏可用套接字时取消统计收集器"
 
-#: postmaster/pgstat.c:626
+#: postmaster/pgstat.c:692
 #, c-format
 msgid "could not fork statistics collector: %m"
 msgstr "无法派生 (fork) 统计收集器: %m"
 
-#: postmaster/pgstat.c:1162 postmaster/pgstat.c:1186 postmaster/pgstat.c:1217
+#: postmaster/pgstat.c:1233 postmaster/pgstat.c:1257 postmaster/pgstat.c:1290
 #, c-format
 msgid "must be superuser to reset statistics counters"
 msgstr "必须为超级用户才可以重置统计计数器"
 
-#: postmaster/pgstat.c:1193
+#: postmaster/pgstat.c:1266
 #, c-format
 msgid "unrecognized reset target: \"%s\""
 msgstr "未识别的重置目标:\"%s\""
 
-#: postmaster/pgstat.c:1194
+#: postmaster/pgstat.c:1267
 #, c-format
-msgid "Target must be \"bgwriter\"."
-msgstr "目标必须是\"bgwriter\"."
+#| msgid "Target must be \"bgwriter\"."
+msgid "Target must be \"archiver\" or \"bgwriter\"."
+msgstr "目标必须是\"archiver\"或\"bgwriter\"."
 
-#: postmaster/pgstat.c:3139
+#: postmaster/pgstat.c:3280
 #, c-format
 msgid "could not read statistics message: %m"
 msgstr "无法读取统计信息: %m"
 
-#: postmaster/pgstat.c:3456
+#: postmaster/pgstat.c:3613 postmaster/pgstat.c:3790
 #, c-format
 msgid "could not open temporary statistics file \"%s\": %m"
 msgstr "无法打开临时统计文件 \"%s\": %m"
 
-#: postmaster/pgstat.c:3533
+#: postmaster/pgstat.c:3681 postmaster/pgstat.c:3835
 #, c-format
 msgid "could not write temporary statistics file \"%s\": %m"
 msgstr "无法写临时统计文件 \"%s\": %m"
 
-#: postmaster/pgstat.c:3542
+#: postmaster/pgstat.c:3690 postmaster/pgstat.c:3844
 #, c-format
 msgid "could not close temporary statistics file \"%s\": %m"
 msgstr "无法关闭临时统计文件 \"%s\": %m"
 
-#: postmaster/pgstat.c:3550
+#: postmaster/pgstat.c:3698 postmaster/pgstat.c:3852
 #, c-format
 msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m"
 msgstr "无法把临时统计文件 \"%s\" 重命名为 \"%s\": %m"
 
-#: postmaster/pgstat.c:3656 postmaster/pgstat.c:3885
+#: postmaster/pgstat.c:3935 postmaster/pgstat.c:4120 postmaster/pgstat.c:4275
 #, c-format
 msgid "could not open statistics file \"%s\": %m"
 msgstr "无法打开统计文件 \"%s\": %m"
 
-#: postmaster/pgstat.c:3668 postmaster/pgstat.c:3678 postmaster/pgstat.c:3700
-#: postmaster/pgstat.c:3715 postmaster/pgstat.c:3778 postmaster/pgstat.c:3796
-#: postmaster/pgstat.c:3812 postmaster/pgstat.c:3830 postmaster/pgstat.c:3846
-#: postmaster/pgstat.c:3897 postmaster/pgstat.c:3908
+#: postmaster/pgstat.c:3947 postmaster/pgstat.c:3957 postmaster/pgstat.c:3967
+#: postmaster/pgstat.c:3988 postmaster/pgstat.c:4003 postmaster/pgstat.c:4061
+#: postmaster/pgstat.c:4132 postmaster/pgstat.c:4152 postmaster/pgstat.c:4170
+#: postmaster/pgstat.c:4186 postmaster/pgstat.c:4204 postmaster/pgstat.c:4220
+#: postmaster/pgstat.c:4287 postmaster/pgstat.c:4299 postmaster/pgstat.c:4311
+#: postmaster/pgstat.c:4336 postmaster/pgstat.c:4358
 #, c-format
 msgid "corrupted statistics file \"%s\""
 msgstr "统计文件损坏\"%s\""
 
-#: postmaster/pgstat.c:4210
+#: postmaster/pgstat.c:4785
 #, c-format
 msgid "database hash table corrupted during cleanup --- abort"
 msgstr "清理过程中数据库散列表毁坏 --- 终止"
 
-#: postmaster/postmaster.c:592
+#: postmaster/postmaster.c:650
 #, c-format
 msgid "%s: invalid argument for option -f: \"%s\"\n"
 msgstr "%s: 选项-f的参数无效: \"%s\"\n"
 
-#: postmaster/postmaster.c:678
+#: postmaster/postmaster.c:736
 #, c-format
 msgid "%s: invalid argument for option -t: \"%s\"\n"
 msgstr "%s: -t选项的参数无效: \"%s\"\n"
 
-#: postmaster/postmaster.c:729
+#: postmaster/postmaster.c:787
 #, c-format
 msgid "%s: invalid argument: \"%s\"\n"
 msgstr "%s: 无效参数: \"%s\"\n"
 
-#: postmaster/postmaster.c:764
+#: postmaster/postmaster.c:822
 #, c-format
 msgid "%s: superuser_reserved_connections must be less than max_connections\n"
 msgstr "%s: 超级用户保留联接数必须小于最大联接数\n"
 
-#: postmaster/postmaster.c:769
+#: postmaster/postmaster.c:827
 #, c-format
 msgid "%s: max_wal_senders must be less than max_connections\n"
 msgstr "%s: max_wal_senders必须小于最大连接数\n"
 
-#: postmaster/postmaster.c:774
+#: postmaster/postmaster.c:832
 #, c-format
+#| msgid ""
+#| "WAL archival (archive_mode=on) requires wal_level \"archive\" or "
+#| "\"hot_standby\""
 msgid ""
-"WAL archival (archive_mode=on) requires wal_level \"archive\" or "
-"\"hot_standby\""
+"WAL archival (archive_mode=on) requires wal_level \"archive\", \"hot_standby"
+"\", or \"logical\""
 msgstr ""
-"WAL归档的设置(archive_mode=on)要求wal_level设置为\"archive\"或\"hot_standby\""
+"WAL归档的设置(archive_mode=on)要求wal_level设置为\"archive\"或\"hot_standby"
+"\"或\"logical\""
 
-#: postmaster/postmaster.c:777
+#: postmaster/postmaster.c:835
 #, c-format
+#| msgid ""
+#| "WAL streaming (max_wal_senders > 0) requires wal_level \"archive\" or "
+#| "\"hot_standby\""
 msgid ""
-"WAL streaming (max_wal_senders > 0) requires wal_level \"archive\" or "
-"\"hot_standby\""
+"WAL streaming (max_wal_senders > 0) requires wal_level \"archive\", "
+"\"hot_standby\", or \"logical\""
 msgstr ""
 "WAL 流复制的设置(max_wal_senders > 0)要求将wal_level设置为\"archive\"或"
-"\"hot_standby\""
+"\"hot_standby\"或\"logical\""
 
-#: postmaster/postmaster.c:785
+#: postmaster/postmaster.c:843
 #, c-format
 msgid "%s: invalid datetoken tables, please fix\n"
 msgstr "%s: 无效的 datetoken 表, 请修复\n"
 
-#: postmaster/postmaster.c:861
+#: postmaster/postmaster.c:925 postmaster/postmaster.c:1023
+#: utils/init/miscinit.c:1188
 #, c-format
-msgid "invalid list syntax for \"listen_addresses\""
-msgstr "无效的 \"listen_addresses\" 语法"
+msgid "invalid list syntax in parameter \"%s\""
+msgstr "在参数\"%s\"中列表语法无效"
 
-#: postmaster/postmaster.c:891
+#: postmaster/postmaster.c:956
 #, c-format
 msgid "could not create listen socket for \"%s\""
 msgstr "无法为 \"%s\" 创建监听套接字"
 
 # fe-connect.c:891
-#: postmaster/postmaster.c:897
+#: postmaster/postmaster.c:962
 #, c-format
 msgid "could not create any TCP/IP sockets"
 msgstr "无法创建TCP/IP套接字"
 
-#: postmaster/postmaster.c:948
+#: postmaster/postmaster.c:1045
 #, c-format
-msgid "could not create Unix-domain socket"
-msgstr "无法创建 Unix-domain 套接字"
+#| msgid "could not create Unix-domain socket"
+msgid "could not create Unix-domain socket in directory \"%s\""
+msgstr "在目录\"%s\"下不能创建Unix域的网络套接字"
 
-#: postmaster/postmaster.c:956
+#: postmaster/postmaster.c:1051
+#, c-format
+#| msgid "could not create Unix-domain socket"
+msgid "could not create any Unix-domain sockets"
+msgstr "无法创建 Unix域 套接字"
+
+#: postmaster/postmaster.c:1063
 #, c-format
 msgid "no socket created for listening"
 msgstr "没有为监听创建套接字"
 
 # fe-lobj.c:412
-#: postmaster/postmaster.c:1001
+#: postmaster/postmaster.c:1103
 #, c-format
 msgid "could not create I/O completion port for child queue"
 msgstr "无法为子队列创建I/O完成端口"
 
-#: postmaster/postmaster.c:1031
+#: postmaster/postmaster.c:1132
 #, c-format
 msgid "%s: could not change permissions of external PID file \"%s\": %s\n"
 msgstr "%s: 无法改变外部PID文件 \"%s\" 的权限: %s\n"
 
-#: postmaster/postmaster.c:1035
+#: postmaster/postmaster.c:1136
 #, c-format
 msgid "%s: could not write external PID file \"%s\": %s\n"
 msgstr "%s: 无法写入外部 PID 文件 \"%s\": %s\n"
 
-#: postmaster/postmaster.c:1103 utils/init/postinit.c:197
+#: postmaster/postmaster.c:1160
+#, c-format
+msgid "ending log output to stderr"
+msgstr "终止日志输出到标准错误输出设备"
+
+#: postmaster/postmaster.c:1161
+#, c-format
+msgid "Future log output will go to log destination \"%s\"."
+msgstr "后续的日志输出将进入到目标日志 \"%s\"."
+
+#: postmaster/postmaster.c:1187 utils/init/postinit.c:199
 #, c-format
 msgid "could not load pg_hba.conf"
 msgstr "无法加载pg_hba.conf"
 
-#: postmaster/postmaster.c:1156
+#: postmaster/postmaster.c:1263
 #, c-format
 msgid "%s: could not locate matching postgres executable"
 msgstr "%s: 无法找到匹配的 postgres 执行文件"
 
-#: postmaster/postmaster.c:1179 utils/misc/tzparser.c:325
+#: postmaster/postmaster.c:1286 utils/misc/tzparser.c:341
 #, c-format
 msgid ""
 "This may indicate an incomplete PostgreSQL installation, or that the file "
@@ -12338,42 +13976,42 @@ msgstr ""
 "这可能表示PostgreSQL安装未完成,或者文件\"%s\"已经从正确的位置移动到另外的位"
 "置了."
 
-#: postmaster/postmaster.c:1207
+#: postmaster/postmaster.c:1314
 #, c-format
 msgid "data directory \"%s\" does not exist"
 msgstr "数据目录 \"%s\" 不存在"
 
-#: postmaster/postmaster.c:1212
+#: postmaster/postmaster.c:1319
 #, c-format
 msgid "could not read permissions of directory \"%s\": %m"
 msgstr "没有读取目录 \"%s\" 的权限: %m"
 
-#: postmaster/postmaster.c:1220
+#: postmaster/postmaster.c:1327
 #, c-format
 msgid "specified data directory \"%s\" is not a directory"
 msgstr "所指定的数据目录 \"%s\"不是一个目录."
 
-#: postmaster/postmaster.c:1236
+#: postmaster/postmaster.c:1343
 #, c-format
 msgid "data directory \"%s\" has wrong ownership"
 msgstr "data目录 \"%s\"的所有者权限错误."
 
-#: postmaster/postmaster.c:1238
+#: postmaster/postmaster.c:1345
 #, c-format
 msgid "The server must be started by the user that owns the data directory."
 msgstr "服务器必须由拥有data目录的用户启动"
 
-#: postmaster/postmaster.c:1258
+#: postmaster/postmaster.c:1365
 #, c-format
 msgid "data directory \"%s\" has group or world access"
 msgstr "组或其他用户都可以访问数据目录 \"%s\""
 
-#: postmaster/postmaster.c:1260
+#: postmaster/postmaster.c:1367
 #, c-format
 msgid "Permissions should be u=rwx (0700)."
 msgstr "权限应该为 u=rwx (0700)."
 
-#: postmaster/postmaster.c:1271
+#: postmaster/postmaster.c:1378
 #, c-format
 msgid ""
 "%s: could not find the database system\n"
@@ -12384,367 +14022,410 @@ msgstr ""
 "预期在目录 \"%s\" 找到,\n"
 "但是无法打开文件 \"%s\": %s\n"
 
-#: postmaster/postmaster.c:1343
+#: postmaster/postmaster.c:1552
 #, c-format
 msgid "select() failed in postmaster: %m"
 msgstr "postmaster select() 失败: %m"
 
-#: postmaster/postmaster.c:1510 postmaster/postmaster.c:1541
+#: postmaster/postmaster.c:1747 postmaster/postmaster.c:1778
 #, c-format
 msgid "incomplete startup packet"
 msgstr "不完整的启动包"
 
-#: postmaster/postmaster.c:1522
+#: postmaster/postmaster.c:1759
 #, c-format
 msgid "invalid length of startup packet"
 msgstr "无效的启动包长度"
 
-#: postmaster/postmaster.c:1579
+#: postmaster/postmaster.c:1816
 #, c-format
 msgid "failed to send SSL negotiation response: %m"
 msgstr "发送 SSL 协商响应失败: %m"
 
-#: postmaster/postmaster.c:1608
+#: postmaster/postmaster.c:1845
 #, c-format
 msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u"
 msgstr "不支持的前端协议 %u.%u: 服务端支持 %u.0 到 %u.%u"
 
-#: postmaster/postmaster.c:1659
+#: postmaster/postmaster.c:1908
+#, c-format
+#| msgid "invalid value for boolean option \"replication\""
+msgid "invalid value for parameter \"replication\""
+msgstr "\"replication\"参数值无效"
+
+#: postmaster/postmaster.c:1909
 #, c-format
-msgid "invalid value for boolean option \"replication\""
-msgstr "布尔选项\"replication\"的值无效"
+msgid "Valid values are: false, 0, true, 1, database."
+msgstr "有效值为: false, 0, true, 1, database."
 
-#: postmaster/postmaster.c:1679
+#: postmaster/postmaster.c:1929
 #, c-format
 msgid "invalid startup packet layout: expected terminator as last byte"
 msgstr "无效的启动包格式: 预计结束符为最后一个字节"
 
-#: postmaster/postmaster.c:1707
+#: postmaster/postmaster.c:1957
 #, c-format
 msgid "no PostgreSQL user name specified in startup packet"
 msgstr "在启动包中没有指定 PostgreSQL 用户名"
 
-#: postmaster/postmaster.c:1764
+#: postmaster/postmaster.c:2016
 #, c-format
 msgid "the database system is starting up"
 msgstr "数据库系统启动中"
 
-#: postmaster/postmaster.c:1769
+#: postmaster/postmaster.c:2021
 #, c-format
 msgid "the database system is shutting down"
 msgstr "数据库系统停止中"
 
-#: postmaster/postmaster.c:1774
+#: postmaster/postmaster.c:2026
 #, c-format
 msgid "the database system is in recovery mode"
 msgstr "数据库系统在恢复模式中"
 
-#: postmaster/postmaster.c:1779 storage/ipc/procarray.c:277
-#: storage/ipc/sinvaladt.c:304 storage/lmgr/proc.c:336
+#: postmaster/postmaster.c:2031 storage/ipc/procarray.c:286
+#: storage/ipc/sinvaladt.c:305 storage/lmgr/proc.c:339
 #, c-format
 msgid "sorry, too many clients already"
 msgstr "对不起, 已经有太多的客户"
 
-#: postmaster/postmaster.c:1841
+#: postmaster/postmaster.c:2093
 #, c-format
 msgid "wrong key in cancel request for process %d"
 msgstr "对于进程 %d,在取消请求中的键值错误"
 
-#: postmaster/postmaster.c:1849
+#: postmaster/postmaster.c:2101
 #, c-format
 msgid "PID %d in cancel request did not match any process"
 msgstr "没有进程与取消请求中的PID %d 相匹配"
 
-#: postmaster/postmaster.c:2069
+#: postmaster/postmaster.c:2321
 #, c-format
 msgid "received SIGHUP, reloading configuration files"
 msgstr "接收到 SIGHUP, 重载配置文件"
 
-#: postmaster/postmaster.c:2094
+#: postmaster/postmaster.c:2347
 #, c-format
 msgid "pg_hba.conf not reloaded"
 msgstr "没有重新加载pg_hba.conf"
 
-#: postmaster/postmaster.c:2137
+#: postmaster/postmaster.c:2351
+#, c-format
+#| msgid "pg_hba.conf not reloaded"
+msgid "pg_ident.conf not reloaded"
+msgstr "pg_ident.conf 没有重新加载"
+
+#: postmaster/postmaster.c:2392
 #, c-format
 msgid "received smart shutdown request"
 msgstr "接到到智能 (smart) 停止请求"
 
-#: postmaster/postmaster.c:2187
+#: postmaster/postmaster.c:2445
 #, c-format
 msgid "received fast shutdown request"
 msgstr "接收到快速 (fast) 停止请求"
 
-#: postmaster/postmaster.c:2211
+#: postmaster/postmaster.c:2471
 #, c-format
 msgid "aborting any active transactions"
 msgstr "中断任何激活事务"
 
-#: postmaster/postmaster.c:2240
+#: postmaster/postmaster.c:2505
 #, c-format
 msgid "received immediate shutdown request"
 msgstr "接收到立即 (immediate) 停止请求"
 
-#: postmaster/postmaster.c:2330 postmaster/postmaster.c:2351
+#: postmaster/postmaster.c:2569 postmaster/postmaster.c:2590
 msgid "startup process"
 msgstr "启动进程"
 
-#: postmaster/postmaster.c:2333
+#: postmaster/postmaster.c:2572
 #, c-format
 msgid "aborting startup due to startup process failure"
 msgstr "由于启动进程失败, 终止启动"
 
-#: postmaster/postmaster.c:2378
-#, c-format
-msgid ""
-"terminating all walsender processes to force cascaded standby(s) to update "
-"timeline and reconnect"
-msgstr "终止所有walsender进程,以强制所有的备用节点更新时间线并重新连接"
-
-#: postmaster/postmaster.c:2408
+#: postmaster/postmaster.c:2630
 #, c-format
 msgid "database system is ready to accept connections"
 msgstr "数据库系统准备接受连接"
 
-#: postmaster/postmaster.c:2423
+#: postmaster/postmaster.c:2645
 msgid "background writer process"
 msgstr "后台写入进程"
 
-#: postmaster/postmaster.c:2477
+#: postmaster/postmaster.c:2699
 msgid "checkpointer process"
 msgstr "检查点(checkpointer)进程"
 
-#: postmaster/postmaster.c:2493
+#: postmaster/postmaster.c:2715
 msgid "WAL writer process"
 msgstr "WAL写入进程"
 
-#: postmaster/postmaster.c:2507
+#: postmaster/postmaster.c:2729
 msgid "WAL receiver process"
 msgstr "WAL接收进程"
 
-#: postmaster/postmaster.c:2522
+#: postmaster/postmaster.c:2744
 msgid "autovacuum launcher process"
 msgstr "autovacuum启动进程"
 
-#: postmaster/postmaster.c:2537
+#: postmaster/postmaster.c:2759
 msgid "archiver process"
 msgstr "归档进程"
 
-#: postmaster/postmaster.c:2553
+#: postmaster/postmaster.c:2775
 msgid "statistics collector process"
 msgstr "统计收集器进程"
 
-#: postmaster/postmaster.c:2567
+#: postmaster/postmaster.c:2789
 msgid "system logger process"
 msgstr "系统日志进程"
 
-#: postmaster/postmaster.c:2602 postmaster/postmaster.c:2621
-#: postmaster/postmaster.c:2628 postmaster/postmaster.c:2646
+#: postmaster/postmaster.c:2851
+#| msgid "server process"
+msgid "worker process"
+msgstr "工作进程"
+
+#: postmaster/postmaster.c:2937 postmaster/postmaster.c:2957
+#: postmaster/postmaster.c:2964 postmaster/postmaster.c:2982
 msgid "server process"
 msgstr "服务器进程"
 
-#: postmaster/postmaster.c:2682
+#: postmaster/postmaster.c:3036
 #, c-format
 msgid "terminating any other active server processes"
 msgstr "中断任何其它已激活的服务器进程"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:2871
+#: postmaster/postmaster.c:3291
 #, c-format
 msgid "%s (PID %d) exited with exit code %d"
 msgstr "%s (PID %d) 已退出, 退出代码 %d"
 
-#: postmaster/postmaster.c:2873 postmaster/postmaster.c:2884
-#: postmaster/postmaster.c:2895 postmaster/postmaster.c:2904
-#: postmaster/postmaster.c:2914
+#: postmaster/postmaster.c:3293 postmaster/postmaster.c:3304
+#: postmaster/postmaster.c:3315 postmaster/postmaster.c:3324
+#: postmaster/postmaster.c:3334
 #, c-format
 msgid "Failed process was running: %s"
 msgstr "失败进程:%s正在运行"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:2881
+#: postmaster/postmaster.c:3301
 #, c-format
 msgid "%s (PID %d) was terminated by exception 0x%X"
 msgstr "%s (PID %d) 被异常 0x%X 终止"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:2891
+#: postmaster/postmaster.c:3311
 #, c-format
 msgid "%s (PID %d) was terminated by signal %d: %s"
 msgstr "%s (PID %d) 被信号 %d 中断: %s"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:2902
+#: postmaster/postmaster.c:3322
 #, c-format
 msgid "%s (PID %d) was terminated by signal %d"
 msgstr "%s (PID %d) 被信号 %d 中断"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:2912
+#: postmaster/postmaster.c:3332
 #, c-format
 msgid "%s (PID %d) exited with unrecognized status %d"
 msgstr "%s (PID %d) 已退出, 意外状态 %d"
 
-#: postmaster/postmaster.c:3096
+#: postmaster/postmaster.c:3520
 #, c-format
 msgid "abnormal database system shutdown"
 msgstr "数据库系统异常关闭"
 
-#: postmaster/postmaster.c:3135
+#: postmaster/postmaster.c:3559
 #, c-format
 msgid "all server processes terminated; reinitializing"
 msgstr "所有的服务器进程被中止; 重新初始化"
 
-#: postmaster/postmaster.c:3318
+#: postmaster/postmaster.c:3811
 #, c-format
 msgid "could not fork new process for connection: %m"
 msgstr "无法为联接派生新进程: %m"
 
-#: postmaster/postmaster.c:3360
+#: postmaster/postmaster.c:3853
 msgid "could not fork new process for connection: "
 msgstr "无法为联接派生新进程: "
 
-#: postmaster/postmaster.c:3474
+#: postmaster/postmaster.c:3960
 #, c-format
 msgid "connection received: host=%s port=%s"
 msgstr "已接收到连接: 主机=%s 端口=%s"
 
-#: postmaster/postmaster.c:3479
+#: postmaster/postmaster.c:3965
 #, c-format
 msgid "connection received: host=%s"
 msgstr "已接收到连接: 主机=%s"
 
-#: postmaster/postmaster.c:3748
+#: postmaster/postmaster.c:4255
 #, c-format
 msgid "could not execute server process \"%s\": %m"
 msgstr "无法执行服务器进程 \"%s\": %m"
 
-#: postmaster/postmaster.c:4272
+#: postmaster/postmaster.c:4804
 #, c-format
 msgid "database system is ready to accept read only connections"
 msgstr "数据库系统准备接受只读请求的连接"
 
-#: postmaster/postmaster.c:4542
+#: postmaster/postmaster.c:5117
 #, c-format
 msgid "could not fork startup process: %m"
 msgstr "无法派生启动进程: %m"
 
-#: postmaster/postmaster.c:4546
+#: postmaster/postmaster.c:5121
 #, c-format
 msgid "could not fork background writer process: %m"
 msgstr "无法 fork 后台写入进程: %m"
 
-#: postmaster/postmaster.c:4550
+#: postmaster/postmaster.c:5125
 #, c-format
 msgid "could not fork checkpointer process: %m"
 msgstr "无法派生检查点进程: %m"
 
-#: postmaster/postmaster.c:4554
+#: postmaster/postmaster.c:5129
 #, c-format
 msgid "could not fork WAL writer process: %m"
 msgstr "无法派生WAL写入进程: %m"
 
-#: postmaster/postmaster.c:4558
+#: postmaster/postmaster.c:5133
 #, c-format
 msgid "could not fork WAL receiver process: %m"
 msgstr "无法派生WAL接收进程: %m"
 
-#: postmaster/postmaster.c:4562
+#: postmaster/postmaster.c:5137
 #, c-format
 msgid "could not fork process: %m"
 msgstr "无法派生进程: %m"
 
-#: postmaster/postmaster.c:4851
+#: postmaster/postmaster.c:5299
+#, c-format
+msgid "database connection requirement not indicated during registration"
+msgstr "在注册阶段没有指定需要的数据库连接"
+
+#: postmaster/postmaster.c:5306
+#, c-format
+#| msgid "invalid XML processing instruction"
+msgid "invalid processing mode in background worker"
+msgstr "后台工作进程中的无效处理模式"
+
+#: postmaster/postmaster.c:5358
+#, c-format
+#| msgid "background writer process"
+msgid "starting background worker process \"%s\""
+msgstr "启动后台工作进程\"%s\""
+
+#: postmaster/postmaster.c:5369
+#, c-format
+#| msgid "could not fork WAL writer process: %m"
+msgid "could not fork worker process: %m"
+msgstr "无法创建工作进程:%m"
+
+#: postmaster/postmaster.c:5758
 #, c-format
 msgid "could not duplicate socket %d for use in backend: error code %d"
 msgstr "无法为后端使用复制套接字 %d: 错误码为 %d"
 
-#: postmaster/postmaster.c:4883
+#: postmaster/postmaster.c:5790
 #, c-format
 msgid "could not create inherited socket: error code %d\n"
 msgstr "无法创建继承套接字: 错误码为 %d\n"
 
-#: postmaster/postmaster.c:4912 postmaster/postmaster.c:4919
+#: postmaster/postmaster.c:5819 postmaster/postmaster.c:5826
 #, c-format
 msgid "could not read from backend variables file \"%s\": %s\n"
 msgstr "无法从后端可变 (variables) 文件 \"%s\" 读取: %s\n"
 
-#: postmaster/postmaster.c:4928
+#: postmaster/postmaster.c:5835
 #, c-format
 msgid "could not remove file \"%s\": %s\n"
 msgstr "无法删除文件 \"%s\": %s\n"
 
-#: postmaster/postmaster.c:4945
+#: postmaster/postmaster.c:5852
 #, c-format
 msgid "could not map view of backend variables: error code %lu\n"
 msgstr "无法映射后端变量视图: 错误码为 %lu\n"
 
-#: postmaster/postmaster.c:4954
+#: postmaster/postmaster.c:5861
 #, c-format
 msgid "could not unmap view of backend variables: error code %lu\n"
 msgstr "无法取消后端变量视图的映射: 错误码为 %lu\n"
 
-#: postmaster/postmaster.c:4961
+#: postmaster/postmaster.c:5868
 #, c-format
 msgid "could not close handle to backend parameter variables: error code %lu\n"
 msgstr "无法关闭后端参数变量的句柄: 错误码为 %lu\n"
 
-#: postmaster/postmaster.c:5111
+#: postmaster/postmaster.c:6027
 #, c-format
 msgid "could not read exit code for process\n"
 msgstr "无法为进程读取退出代码\n"
 
-#: postmaster/postmaster.c:5116
+#: postmaster/postmaster.c:6032
 #, c-format
 msgid "could not post child completion status\n"
 msgstr "无法传递子队列的结束状态\n"
 
-#: postmaster/syslogger.c:467 postmaster/syslogger.c:1054
+#: postmaster/syslogger.c:463 postmaster/syslogger.c:1064
 #, c-format
 msgid "could not read from logger pipe: %m"
 msgstr "无法从日志管道读取: %m"
 
-#: postmaster/syslogger.c:516
+#: postmaster/syslogger.c:512
 #, c-format
 msgid "logger shutting down"
 msgstr "日志正在关闭"
 
-#: postmaster/syslogger.c:560 postmaster/syslogger.c:574
+#: postmaster/syslogger.c:556 postmaster/syslogger.c:570
 #, c-format
 msgid "could not create pipe for syslog: %m"
 msgstr "无法为统计日志 (syslog) 创建管道: %m"
 
-#: postmaster/syslogger.c:610
+#: postmaster/syslogger.c:606
 #, c-format
 msgid "could not fork system logger: %m"
 msgstr "无法派生 (fork) 系统日志: %m"
 
-#: postmaster/syslogger.c:641
+#: postmaster/syslogger.c:643
+#, c-format
+msgid "redirecting log output to logging collector process"
+msgstr "日志输出重定向到日志收集进程"
+
+#: postmaster/syslogger.c:644
+#, c-format
+msgid "Future log output will appear in directory \"%s\"."
+msgstr "后续的日志输出将出现在目录 \"%s\"中."
+
+#: postmaster/syslogger.c:652
 #, c-format
 msgid "could not redirect stdout: %m"
 msgstr "无法重定向到标准输出 (stdout) : %m"
 
-#: postmaster/syslogger.c:646 postmaster/syslogger.c:664
+#: postmaster/syslogger.c:657 postmaster/syslogger.c:674
 #, c-format
 msgid "could not redirect stderr: %m"
 msgstr "无法重定向到标准错误 (stderr) : %m"
 
-#: postmaster/syslogger.c:1009
+#: postmaster/syslogger.c:1019
 #, c-format
 msgid "could not write to log file: %s\n"
 msgstr "无法写入日志文件: %s\n"
 
-#: postmaster/syslogger.c:1149
+#: postmaster/syslogger.c:1159
 #, c-format
 msgid "could not open log file \"%s\": %m"
 msgstr "无法打开事务日志文件 \"%s\": %m"
 
-#: postmaster/syslogger.c:1211 postmaster/syslogger.c:1255
+#: postmaster/syslogger.c:1221 postmaster/syslogger.c:1265
 #, c-format
 msgid "disabling automatic rotation (use SIGHUP to re-enable)"
 msgstr "取消自动轮寻 (使用 SIGHUP re-enable)"
@@ -12754,571 +14435,1234 @@ msgstr "取消自动轮寻 (使用 SIGHUP re-enable)"
 msgid "could not determine which collation to use for regular expression"
 msgstr "无法确定正规表达式中使用何种排序规则"
 
-#: replication/basebackup.c:124 replication/basebackup.c:831
-#: utils/adt/misc.c:358
+#: repl_gram.y:247 repl_gram.y:274
+#, c-format
+#| msgid "invalid field size"
+msgid "invalid timeline %u"
+msgstr "无效时间线%u"
+
+#: repl_scanner.l:118
+msgid "invalid streaming start location"
+msgstr "无效的流起始位置"
+
+#: repl_scanner.l:169 scan.l:661
+msgid "unterminated quoted string"
+msgstr "未结束的引用字符串"
+
+#: repl_scanner.l:179
+#, c-format
+msgid "syntax error: unexpected character \"%s\""
+msgstr "语法错误: 遇到意外字符\"%s\""
+
+#: replication/basebackup.c:184 replication/basebackup.c:1044
+#: utils/adt/misc.c:353
 #, c-format
 msgid "could not read symbolic link \"%s\": %m"
 msgstr "无法读取符号链接 \"%s\": %m"
 
-#: replication/basebackup.c:131 replication/basebackup.c:835
-#: utils/adt/misc.c:362
+#: replication/basebackup.c:191 replication/basebackup.c:1048
+#: utils/adt/misc.c:357
 #, c-format
 msgid "symbolic link \"%s\" target is too long"
 msgstr "符号链接 \"%s\" 目标超长"
 
-#: replication/basebackup.c:192
+#: replication/basebackup.c:284
 #, c-format
 msgid "could not stat control file \"%s\": %m"
 msgstr "无法统计控制文件 \"%s\": %m"
 
-#: replication/basebackup.c:311 replication/basebackup.c:328
-#: replication/basebackup.c:336
-#, fuzzy, c-format
-msgid "could not find WAL file %s"
-msgstr "无法 fsync 文件 \"%s\": %m"
+#: replication/basebackup.c:396
+#, c-format
+msgid "could not find any WAL files"
+msgstr "无法找到任何WAL文件"
+
+#: replication/basebackup.c:409 replication/basebackup.c:423
+#: replication/basebackup.c:432
+#, c-format
+msgid "could not find WAL file \"%s\""
+msgstr "找不到WAL文件\"%s\""
 
-#: replication/basebackup.c:375 replication/basebackup.c:398
-#, fuzzy, c-format
+#: replication/basebackup.c:471 replication/basebackup.c:496
+#, c-format
 msgid "unexpected WAL file size \"%s\""
-msgstr "意外的消息类型\"%c\""
+msgstr "意外的WAL文件大小\"%s\""
 
-#: replication/basebackup.c:386 replication/basebackup.c:985
+#: replication/basebackup.c:482 replication/basebackup.c:1186
 #, c-format
 msgid "base backup could not send data, aborting backup"
 msgstr "基础备份无法发送数据,终止备份"
 
-#: replication/basebackup.c:469 replication/basebackup.c:478
-#: replication/basebackup.c:487 replication/basebackup.c:496
-#: replication/basebackup.c:505
+#: replication/basebackup.c:569 replication/basebackup.c:578
+#: replication/basebackup.c:587 replication/basebackup.c:596
+#: replication/basebackup.c:605 replication/basebackup.c:616
 #, c-format
 msgid "duplicate option \"%s\""
 msgstr "重复选项 \"%s\""
 
-#: replication/basebackup.c:767
+#: replication/basebackup.c:622 utils/misc/guc.c:5409
 #, c-format
-msgid "shutdown requested, aborting active base backup"
-msgstr "发送了关闭请求, 正终止正在执行的基础备份"
+msgid "%d is outside the valid range for parameter \"%s\" (%d .. %d)"
+msgstr "%d 超出了参数 \"%s\" (%d .. %d) 的有效范围"
 
-#: replication/basebackup.c:785
+#: replication/basebackup.c:879 replication/basebackup.c:972
 #, c-format
 msgid "could not stat file or directory \"%s\": %m"
 msgstr "无法统计文件或目录\"%s\": %m"
 
-#: replication/basebackup.c:885
+#: replication/basebackup.c:1122
 #, c-format
 msgid "skipping special file \"%s\""
 msgstr "跳过特殊文件 \"%s\""
 
-#: replication/basebackup.c:975
+#: replication/basebackup.c:1176
 #, c-format
 msgid "archive member \"%s\" too large for tar format"
 msgstr "在 tar 格式中归档成员\"%s\"太大"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:101
+#: replication/libpqwalreceiver/libpqwalreceiver.c:106
 #, c-format
 msgid "could not connect to the primary server: %s"
 msgstr "无法连接到主用服务器:%s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:113
+#: replication/libpqwalreceiver/libpqwalreceiver.c:130
 #, c-format
 msgid ""
 "could not receive database system identifier and timeline ID from the "
 "primary server: %s"
 msgstr "无法从主用服务器接收数据库系统标识符和时间线ID:%s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:124
+#: replication/libpqwalreceiver/libpqwalreceiver.c:141
+#: replication/libpqwalreceiver/libpqwalreceiver.c:294
 #, c-format
 msgid "invalid response from primary server"
 msgstr "来自主用服务器的回应无效"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:125
+#: replication/libpqwalreceiver/libpqwalreceiver.c:142
 #, c-format
-msgid "Expected 1 tuple with 3 fields, got %d tuples with %d fields."
-msgstr ""
-"期望得到带有3个字段的一条记录,但是现在得到了%d条记录,每条带有%d个字段."
+#| msgid ""
+#| "%s: could not identify system: got %d rows and %d fields, expected %d "
+#| "rows and %d fields\n"
+msgid ""
+"Could not identify system: got %d rows and %d fields, expected %d rows and "
+"%d or more fields."
+msgstr "无法识别系统: 得到 %d 行和 %d 列, 期望值为: %d 行和 %d 列."
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:140
+#: replication/libpqwalreceiver/libpqwalreceiver.c:158
 #, c-format
 msgid "database system identifier differs between the primary and standby"
 msgstr "在主用服务器和备用服务器之间,数据库系统标识符是不一样的。"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:141
+#: replication/libpqwalreceiver/libpqwalreceiver.c:159
 #, c-format
 msgid "The primary's identifier is %s, the standby's identifier is %s."
 msgstr "主用服务器的标识符是%s,备用服务器的标识符是%s。"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:153
-#, c-format
-msgid "timeline %u of the primary does not match recovery target timeline %u"
-msgstr "主用服务器的时间线%u与恢复目标的时间线%u不匹配"
-
-#: replication/libpqwalreceiver/libpqwalreceiver.c:165
+#: replication/libpqwalreceiver/libpqwalreceiver.c:201
 #, c-format
 msgid "could not start WAL streaming: %s"
 msgstr "无法启动WAL流复制: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:171
+# fe-misc.c:702
+#: replication/libpqwalreceiver/libpqwalreceiver.c:219
+#, c-format
+#| msgid "could not send data to server: %s\n"
+msgid "could not send end-of-streaming message to primary: %s"
+msgstr "无法向主服务器:%s发送流终止的消息"
+
+# fe-exec.c:1371
+#: replication/libpqwalreceiver/libpqwalreceiver.c:241
+#, c-format
+#| msgid "unexpected result status for \\watch\n"
+msgid "unexpected result set after end-of-streaming"
+msgstr "流结束时出现意外的结果集"
+
+#: replication/libpqwalreceiver/libpqwalreceiver.c:253
 #, c-format
-msgid "streaming replication successfully connected to primary"
-msgstr "流复制成功连接到主服务器"
+#| msgid "error reading large object %u: %s"
+msgid "error reading result of streaming command: %s"
+msgstr "读流命令的结果时出错: %s"
+
+# fe-exec.c:1371
+#: replication/libpqwalreceiver/libpqwalreceiver.c:260
+#, c-format
+#| msgid "unexpected PQresultStatus: %d\n"
+msgid "unexpected result after CommandComplete: %s"
+msgstr "CommandComplete %s结束后出现意外结果"
+
+#: replication/libpqwalreceiver/libpqwalreceiver.c:283
+#, c-format
+#| msgid ""
+#| "could not receive database system identifier and timeline ID from the "
+#| "primary server: %s"
+msgid "could not receive timeline history file from the primary server: %s"
+msgstr "无法从主服务器:%s接收历史时间线"
+
+#: replication/libpqwalreceiver/libpqwalreceiver.c:295
+#, c-format
+#| msgid "Expected 1 tuple with 3 fields, got %d tuples with %d fields."
+msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields."
+msgstr ""
+"期望得到带有两个字段的一条记录,但是现在得到了%d条记录,每条带有%d个字段."
 
 # fe-misc.c:450 fe-misc.c:642 fe-misc.c:798
-#: replication/libpqwalreceiver/libpqwalreceiver.c:193
+#: replication/libpqwalreceiver/libpqwalreceiver.c:323
 #, c-format
 msgid "socket not open"
 msgstr "套接字未打开"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:367
-#: replication/libpqwalreceiver/libpqwalreceiver.c:388
-#: replication/libpqwalreceiver/libpqwalreceiver.c:393
+#: replication/libpqwalreceiver/libpqwalreceiver.c:496
+#: replication/libpqwalreceiver/libpqwalreceiver.c:519
+#: replication/libpqwalreceiver/libpqwalreceiver.c:525
 #, c-format
 msgid "could not receive data from WAL stream: %s"
 msgstr "无法从WAL流中获得数据: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:384
-#, c-format
-msgid "replication terminated by primary server"
-msgstr "复制由主用服务器终止"
-
 # fe-misc.c:702
-#: replication/libpqwalreceiver/libpqwalreceiver.c:415
+#: replication/libpqwalreceiver/libpqwalreceiver.c:544
 #, c-format
 msgid "could not send data to WAL stream: %s"
 msgstr "无法向WAL流:%s发送数据"
 
-#: replication/syncrep.c:208
+#: replication/logical/logical.c:81
 #, c-format
-msgid ""
-"canceling the wait for synchronous replication and terminating connection "
-"due to administrator command"
-msgstr "取消等待同步复制,听从管理员命令终断连接"
+msgid "logical decoding requires wal_level >= logical"
+msgstr "逻辑解码要求wal_level >= logical"
 
-#: replication/syncrep.c:209 replication/syncrep.c:226
+#: replication/logical/logical.c:86
 #, c-format
-msgid ""
-"The transaction has already committed locally, but might not have been "
-"replicated to the standby."
-msgstr "事务已经在本地提交, 但有可能还没完成到备用节点的复制."
+#| msgid "cannot restore large objects without a database connection\n"
+msgid "logical decoding requires a database connection"
+msgstr "逻辑解码需要一个数据库连接"
 
-#: replication/syncrep.c:225
+#: replication/logical/logical.c:104
 #, c-format
-msgid "canceling wait for synchronous replication due to user request"
-msgstr "听从用户请求,取消等待同步复制"
+#| msgid "pg_xlogfile_name() cannot be executed during recovery."
+msgid "logical decoding cannot be used while in recovery"
+msgstr "逻辑解码不能用于恢复操作"
 
-#: replication/syncrep.c:356
+#: replication/logical/logical.c:221 replication/logical/logical.c:372
 #, c-format
-msgid "standby \"%s\" now has synchronous standby priority %u"
-msgstr "备用节点 \"%s\" 现在拥有同步备用优先级: %u"
+msgid "cannot use physical replication slot for logical decoding"
+msgstr "逻辑解码不能使用物理复制槽"
 
-#: replication/syncrep.c:462
+#: replication/logical/logical.c:226 replication/logical/logical.c:377
 #, c-format
-msgid "standby \"%s\" is now the synchronous standby with priority %u"
-msgstr "备用节点 \"%s\" 现在是拥有同步备用优先级: %u的备用节点"
+#| msgid "function \"%s\" was not called by trigger manager"
+msgid "replication slot \"%s\" was not created in this database"
+msgstr "复制槽\"%s\"不能用于此数据库"
 
-#: replication/walreceiver.c:150
+#: replication/logical/logical.c:233
 #, c-format
-msgid "terminating walreceiver process due to administrator command"
-msgstr "由于管理员命令中断walreceiver进程"
+msgid ""
+"cannot create logical replication slot in transaction that has performed "
+"writes"
+msgstr "已经执行了写操作的事务里,不能创建逻辑复制槽"
 
-#: replication/walreceiver.c:306
+#: replication/logical/logical.c:413
 #, c-format
-msgid "cannot continue WAL streaming, recovery has already ended"
-msgstr "无法继续进行WAL流复制操作,恢复已经结束"
+#| msgid "%s: could not find suitable encoding for locale \"%s\"\n"
+msgid "starting logical decoding for slot \"%s\""
+msgstr "开始为槽\"%s\"进行逻辑解码"
 
-#: replication/walsender.c:270 replication/walsender.c:521
-#: replication/walsender.c:579
+#: replication/logical/logical.c:415
 #, c-format
-msgid "unexpected EOF on standby connection"
-msgstr "在备用服务器连接上的出现意外的EOF"
+msgid "streaming transactions committing after %X/%X, reading WAL from %X/%X"
+msgstr "流事务在%X/%X后提交,从%X/%X位置读"
 
-#: replication/walsender.c:276
+#: replication/logical/logical.c:550
 #, c-format
-msgid "invalid standby handshake message type %d"
-msgstr "无效的备用握手消息类型 %d"
+msgid ""
+"slot \"%s\", output plugin \"%s\", in the %s callback, associated LSN %X/%X"
+msgstr "槽 \"%s\", 输出插件 \"%s\", 在 %s 回调, 关联的 LSN 地址为%X/%X"
 
-#: replication/walsender.c:399 replication/walsender.c:1150
+#: replication/logical/logical.c:557
 #, c-format
-msgid ""
-"terminating walsender process to force cascaded standby to update timeline "
-"and reconnect"
-msgstr "终止walsender进程,以强制级联的备用节点更新时间线并重新连接"
+msgid "slot \"%s\", output plugin \"%s\", in the %s callback"
+msgstr "槽 \"%s\", 输出插件 \"%s\", 在 %s 回调"
 
-#: replication/walsender.c:493
+#: replication/logical/logicalfuncs.c:190 replication/walsender.c:2123
 #, c-format
-msgid "invalid standby query string: %s"
-msgstr "无效的备用服务器查询字符串:%s"
+#| msgid ""
+#| "could not read from log file %u, segment %u, offset %u, length %lu: %m"
+msgid "could not read from log segment %s, offset %u, length %lu: %m"
+msgstr "无法在日志段%s,偏移量为%u, 长度为%lu的位置上进行读操作: %m"
 
-#: replication/walsender.c:550
+#: replication/logical/logicalfuncs.c:209 replication/slotfuncs.c:32
 #, c-format
-msgid "invalid standby message type \"%c\""
-msgstr "无效的备用节点消息类型 \"%c\""
+#| msgid "must be superuser or replication role to start walsender"
+msgid "must be superuser or replication role to use replication slots"
+msgstr "只有超级用户或者拥有复制角色的用户才能使用复制槽"
 
-#: replication/walsender.c:601
+#: replication/logical/logicalfuncs.c:339
 #, c-format
-msgid "unexpected message type \"%c\""
-msgstr "意外的消息类型\"%c\""
+#| msgid "ACL arrays must be one-dimensional"
+msgid "array must be one-dimensional"
+msgstr "数组必须是一维的"
 
-#: replication/walsender.c:796
+#: replication/logical/logicalfuncs.c:345
 #, c-format
-msgid "standby \"%s\" has now caught up with primary"
-msgstr "备用节点 \"%s\" 现在遇上了主节点"
+#| msgid "typmod array must not contain nulls"
+msgid "array must not contain nulls"
+msgstr "数组不能包含空值"
 
-#: replication/walsender.c:871
+#: replication/logical/logicalfuncs.c:361 utils/adt/json.c:2158
 #, c-format
-msgid "terminating walsender process due to replication timeout"
-msgstr "由于复制超时, 中断walreceiver进程"
+#| msgid "each %s query must have the same number of columns"
+msgid "array must have even number of elements"
+msgstr "数组必须包含偶数个元素"
 
-#: replication/walsender.c:938
+#: replication/logical/logicalfuncs.c:404
 #, c-format
 msgid ""
-"number of requested standby connections exceeds max_wal_senders (currently "
-"%d)"
-msgstr "所要求的备用服务器连接数超过了参数max_wal_senders的值(当前设置为%d)"
+"logical decoding output plugin \"%s\" produces binary output, but \"%s\" "
+"expects textual data"
+msgstr "逻辑解码输出插件 \"%s\" 产生二进制输出,但是\"%s\"希望产生文本数据"
 
-#: replication/walsender.c:1055
+#: replication/logical/reorderbuffer.c:2100
 #, c-format
-msgid "could not read from log file %u, segment %u, offset %u, length %lu: %m"
-msgstr "无法从日志文件%u中段为%u,偏移量为%u, 长度为%lu的位置上进行读操作: %m"
+#| msgid "could not write to file \"%s\": %m"
+msgid "could not write to data file for XID %u: %m"
+msgstr "无法将XID %u:%m写入数据文件"
 
-#: rewrite/rewriteDefine.c:107 rewrite/rewriteDefine.c:771
+#: replication/logical/reorderbuffer.c:2196
+#: replication/logical/reorderbuffer.c:2216
 #, c-format
-msgid "rule \"%s\" for relation \"%s\" already exists"
-msgstr "关系 \"%2$s\" 的规则 \"%1$s\" 已经存在"
+#| msgid "could not read from control file: %m"
+msgid "could not read from reorderbuffer spill file: %m"
+msgstr "无法读取重排缓冲的溢出文件:%m"
 
-#: rewrite/rewriteDefine.c:290
+#: replication/logical/reorderbuffer.c:2200
+#: replication/logical/reorderbuffer.c:2220
 #, c-format
-msgid "rule actions on OLD are not implemented"
-msgstr "在 OLD 上的规则动作没有实现"
+#| msgid "could not read block %u in file \"%s\": read only %d of %d bytes"
+msgid ""
+"could not read from reorderbuffer spill file: read %d instead of %u bytes"
+msgstr "无法读取重排缓冲的溢出文件, 读到了%d字节,而不是%u字节"
 
-#: rewrite/rewriteDefine.c:291
+#: replication/logical/reorderbuffer.c:2826
 #, c-format
-msgid "Use views or triggers instead."
-msgstr "请使用视图或触发器代替."
+#| msgid "could not read block %u in file \"%s\": read only %d of %d bytes"
+msgid "could not read from file \"%s\": read %d instead of %d bytes"
+msgstr "无法读文件\"%s\": 读到了%d字节,而不是%d字节"
 
-#: rewrite/rewriteDefine.c:295
+#: replication/logical/snapbuild.c:601
+#, c-format
+msgid "exported logical decoding snapshot: \"%s\" with %u transaction ID"
+msgid_plural ""
+"exported logical decoding snapshot: \"%s\" with %u transaction IDs"
+msgstr[0] "导出逻辑解码快照: \"%s\" 带有 %u 个事务 ID"
+
+#: replication/logical/snapbuild.c:904 replication/logical/snapbuild.c:1269
+#: replication/logical/snapbuild.c:1800
+#, c-format
+msgid "logical decoding found consistent point at %X/%X"
+msgstr "在 %X/%X处,逻辑解码发现一致点"
+
+#: replication/logical/snapbuild.c:906
+#, c-format
+#| msgid "The source transaction %u is not running anymore."
+msgid "Transaction ID %u finished; no more running transactions."
+msgstr "事务ID %u已结束;已没有正运行的事务."
+
+#: replication/logical/snapbuild.c:1271
+#, c-format
+#| msgid "%s cannot run inside a subtransaction"
+msgid "There are no running transactions."
+msgstr "没有正运行的事务."
+
+#: replication/logical/snapbuild.c:1333
+#, c-format
+msgid "logical decoding found initial starting point at %X/%X"
+msgstr "逻辑解码在 %X/%X发现初始化的起始点"
+
+#: replication/logical/snapbuild.c:1335
+#, c-format
+msgid "%u transaction needs to finish."
+msgid_plural "%u transactions need to finish."
+msgstr[0] "有%u笔事务需要结束."
+
+#: replication/logical/snapbuild.c:1674 replication/logical/snapbuild.c:1700
+#: replication/logical/snapbuild.c:1714 replication/logical/snapbuild.c:1728
+#, c-format
+#| msgid "could not read file \"%s\": %m"
+msgid "could not read file \"%s\", read %d of %d: %m"
+msgstr "无法读取文件 \"%1$s\", 从%3$d:%4$m中读取了%2$d"
+
+#: replication/logical/snapbuild.c:1680
+#, c-format
+#| msgid "archive file \"%s\" has wrong size: %lu instead of %lu"
+msgid "snapbuild state file \"%s\" has wrong magic %u instead of %u"
+msgstr "快照构建状态文件 \"%s\" 带有错误的 magic值 %u , 正确的应该是 %u"
+
+#: replication/logical/snapbuild.c:1685
+#, c-format
+#| msgid "archive file \"%s\" has wrong size: %lu instead of %lu"
+msgid "snapbuild state file \"%s\" has unsupported version %u instead of %u"
+msgstr "快照构建状态文件 \"%s\" 的版本号%u不支持,正确的应该是%u"
+
+#: replication/logical/snapbuild.c:1741
+#, c-format
+msgid "snapbuild state file %s: checksum mismatch, is %u, should be %u"
+msgstr "快照构建状态文件 %s: 校验和不匹配, 结果为 %u, 正确值应该是 %u"
+
+#: replication/logical/snapbuild.c:1802
+#, c-format
+msgid "Logical decoding will begin using saved snapshot."
+msgstr "逻辑解码将从使用已存的快照开始."
+
+#: replication/logical/snapbuild.c:1875
+#, c-format
+#| msgid "%s: could not parse file mode\n"
+msgid "could not parse file name \"%s\""
+msgstr "无法解析文件名 \"%s\""
+
+#: replication/slot.c:173
+#, c-format
+#| msgid "tablespace location \"%s\" is too long"
+msgid "replication slot name \"%s\" is too short"
+msgstr "复制槽名 \"%s\" 太短"
+
+#: replication/slot.c:182
+#, c-format
+#| msgid "tablespace location \"%s\" is too long"
+msgid "replication slot name \"%s\" is too long"
+msgstr "复制槽名 \"%s\" 太长"
+
+#: replication/slot.c:195
+#, c-format
+#| msgid "relation mapping file \"%s\" contains invalid data"
+msgid "replication slot name \"%s\" contains invalid character"
+msgstr "复制槽名 \"%s\"中包含无效的数据"
+
+#: replication/slot.c:197
+#, c-format
+msgid ""
+"Replication slot names may only contain letters, numbers, and the underscore "
+"character."
+msgstr "复制槽的名字只能包含字母、数字或下划线三类字符."
+
+#: replication/slot.c:244
+#, c-format
+#| msgid "relation \"%s\" already exists"
+msgid "replication slot \"%s\" already exists"
+msgstr "复制槽名 \"%s\" 已经存在"
+
+#: replication/slot.c:254
+#, c-format
+msgid "all replication slots are in use"
+msgstr "所有的复制槽都在使用中"
+
+#: replication/slot.c:255
+#, c-format
+msgid "Free one or increase max_replication_slots."
+msgstr "释放一个槽或者增大max_replication_slots的值."
+
+#: replication/slot.c:347
+#, c-format
+#| msgid "relation \"%s\" does not exist"
+msgid "replication slot \"%s\" does not exist"
+msgstr "复制槽名 \"%s\" 不存在"
+
+#: replication/slot.c:351
+#, c-format
+#| msgid "relation \"%s\" already exists"
+msgid "replication slot \"%s\" is already active"
+msgstr "复制槽名 \"%s\" 已经是活动的"
+
+#: replication/slot.c:499 replication/slot.c:873 replication/slot.c:1218
+#, c-format
+#| msgid "could not remove directory \"%s\": %m"
+msgid "could not remove directory \"%s\""
+msgstr "无法删除目录 \"%s\""
+
+#: replication/slot.c:774
+#, c-format
+msgid "replication slots can only be used if max_replication_slots > 0"
+msgstr "复制槽只有当 max_replication_slots > 0时才能使用"
+
+#: replication/slot.c:779
+#, c-format
+msgid "replication slots can only be used if wal_level >= archive"
+msgstr "复制槽只有当 wal_level >= archive时才能使用"
+
+#: replication/slot.c:1150 replication/slot.c:1188
+#, c-format
+#| msgid "could not read file \"%s\": %m"
+msgid "could not read file \"%s\", read %d of %u: %m"
+msgstr "无法读取文件 \"%s\", 读到了%d字节,从%u:%m处"
+
+#: replication/slot.c:1159
+#, c-format
+#| msgid "archive file \"%s\" has wrong size: %lu instead of %lu"
+msgid "replication slot file \"%s\" has wrong magic %u instead of %u"
+msgstr "复制槽文件\"%s\"出现错误的magic值%u,正确的应该是%u"
+
+#: replication/slot.c:1166
+#, c-format
+#| msgid "rule \"%s\" has unsupported event type %d"
+msgid "replication slot file \"%s\" has unsupported version %u"
+msgstr "复制槽文件 \"%s\" 的版本号%u不被支持"
+
+#: replication/slot.c:1173
+#, c-format
+msgid "replication slot file \"%s\" has corrupted length %u"
+msgstr "复制槽文件 \"%s\" 的长度 %u已损坏"
+
+#: replication/slot.c:1203
+#, c-format
+msgid "replication slot file %s: checksum mismatch, is %u, should be %u"
+msgstr "复制槽文件 %s: 校验和不匹配, 值为 %u, 正确值应该是 %u"
+
+#: replication/slot.c:1256
+#, c-format
+#| msgid "%s: replication stream was terminated before stop point\n"
+msgid "too many replication slots active before shutdown"
+msgstr "关闭前有太多活动的复制槽"
+
+#: replication/slot.c:1257
+#, c-format
+msgid "Increase max_replication_slots and try again."
+msgstr "增大 max_replication_slots的值再重试."
+
+#: replication/syncrep.c:208
+#, c-format
+msgid ""
+"canceling the wait for synchronous replication and terminating connection "
+"due to administrator command"
+msgstr "取消等待同步复制,听从管理员命令终断连接"
+
+#: replication/syncrep.c:209 replication/syncrep.c:226
+#, c-format
+msgid ""
+"The transaction has already committed locally, but might not have been "
+"replicated to the standby."
+msgstr "事务已经在本地提交, 但有可能还没完成到备用节点的复制."
+
+#: replication/syncrep.c:225
+#, c-format
+msgid "canceling wait for synchronous replication due to user request"
+msgstr "听从用户请求,取消等待同步复制"
+
+#: replication/syncrep.c:355
+#, c-format
+msgid "standby \"%s\" now has synchronous standby priority %u"
+msgstr "备用节点 \"%s\" 现在拥有同步备用优先级: %u"
+
+#: replication/syncrep.c:457
+#, c-format
+msgid "standby \"%s\" is now the synchronous standby with priority %u"
+msgstr "备用节点 \"%s\" 现在是拥有同步备用优先级: %u的备用节点"
+
+#: replication/walreceiver.c:167
+#, c-format
+msgid "terminating walreceiver process due to administrator command"
+msgstr "由于管理员命令中断walreceiver进程"
+
+#: replication/walreceiver.c:332
+#, c-format
+#| msgid ""
+#| "timeline %u of the primary does not match recovery target timeline %u"
+msgid "highest timeline %u of the primary is behind recovery timeline %u"
+msgstr "主服务器上的最高时间线%u还在恢复时间线%u的后边"
+
+#: replication/walreceiver.c:367
+#, c-format
+#| msgid "%s: starting log streaming at %X/%X (timeline %u)\n"
+msgid "started streaming WAL from primary at %X/%X on timeline %u"
+msgstr "在时间点: %X/%X (时间安排%u)启动日志的流操作"
+
+#: replication/walreceiver.c:372
+#, c-format
+#| msgid "%s: starting log streaming at %X/%X (timeline %u)\n"
+msgid "restarted WAL streaming at %X/%X on timeline %u"
+msgstr "在%X/%X处时间线%u上重启WAL流操作"
+
+#: replication/walreceiver.c:406
+#, c-format
+msgid "cannot continue WAL streaming, recovery has already ended"
+msgstr "无法继续进行WAL流复制操作,恢复已经结束"
+
+#: replication/walreceiver.c:443
+#, c-format
+msgid "replication terminated by primary server"
+msgstr "复制由主用服务器终止"
+
+#: replication/walreceiver.c:444
+#, c-format
+#| msgid "%s: switched to timeline %u at %X/%X\n"
+msgid "End of WAL reached on timeline %u at %X/%X."
+msgstr "WAL结束时,到了时间线%u和地址%X/%X."
+
+#: replication/walreceiver.c:491
+#, c-format
+#| msgid "terminating walsender process due to replication timeout"
+msgid "terminating walreceiver due to timeout"
+msgstr "由于超时, 中止walreceiver进程"
+
+#: replication/walreceiver.c:531
+#, c-format
+msgid "primary server contains no more WAL on requested timeline %u"
+msgstr "主服务器 在时间点 %u不再有WAL"
+
+#: replication/walreceiver.c:546 replication/walreceiver.c:903
+#, c-format
+#| msgid "could not close log file %u, segment %u: %m"
+msgid "could not close log segment %s: %m"
+msgstr "无法关闭日志段%s: %m"
+
+#: replication/walreceiver.c:668
+#, c-format
+msgid "fetching timeline history file for timeline %u from primary server"
+msgstr "从主服务器的时间点%u获取时间点历史文件"
+
+#: replication/walreceiver.c:954
+#, c-format
+#| msgid ""
+#| "could not write to log file %u, segment %u at offset %u, length %lu: %m"
+msgid "could not write to log segment %s at offset %u, length %lu: %m"
+msgstr "无法在偏移量 %2$u,长度 %3$lu写入日志文件%1$s, 段:%4$m"
+
+#: replication/walsender.c:469
+#, c-format
+#| msgid "could not seek to end of file \"%s\": %m"
+msgid "could not seek to beginning of file \"%s\": %m"
+msgstr "无法查找到文件\"%s\"的起始位置: %m"
+
+#: replication/walsender.c:520
+#, c-format
+msgid "cannot use a logical replication slot for physical replication"
+msgstr "物理复制操作不能使用逻辑复制槽"
+
+#: replication/walsender.c:583
+#, c-format
+#| msgid "%s: starting timeline %u is not present in the server\n"
+msgid ""
+"requested starting point %X/%X on timeline %u is not in this server's history"
+msgstr "请求的起始点%X/%X, 时间线%u,不在该服务器的时间线历史记录里"
+
+#: replication/walsender.c:587
+#, c-format
+#| msgid "%s: switched to timeline %u at %X/%X\n"
+msgid "This server's history forked from timeline %u at %X/%X."
+msgstr "服务器的历史时间线在时间线%u,地址%X/%X处产生了分支."
+
+#: replication/walsender.c:632
+#, c-format
+msgid ""
+"requested starting point %X/%X is ahead of the WAL flush position of this "
+"server %X/%X"
+msgstr "请求的起始点 %X/%X 位于该服务器的WAL刷新位置%X/%X之前"
+
+#: replication/walsender.c:947
+#, c-format
+#| msgid "terminating walsender process due to replication timeout"
+msgid "terminating walsender process after promotion"
+msgstr "在提升后, 中断walreceiver进程"
+
+#: replication/walsender.c:1362 replication/walsender.c:1412
+#: replication/walsender.c:1461
+#, c-format
+msgid "unexpected EOF on standby connection"
+msgstr "在备用服务器连接上的出现意外的EOF"
+
+#: replication/walsender.c:1381
+#, c-format
+#| msgid "unexpected message type \"%c\""
+msgid "unexpected standby message type \"%c\", after receiving CopyDone"
+msgstr "在接收CopyDone后出现意外的消息类型\"%c\""
+
+#: replication/walsender.c:1429
+#, c-format
+msgid "invalid standby message type \"%c\""
+msgstr "无效的备用节点消息类型 \"%c\""
+
+#: replication/walsender.c:1483
+#, c-format
+msgid "unexpected message type \"%c\""
+msgstr "意外的消息类型\"%c\""
+
+#: replication/walsender.c:1770
+#, c-format
+msgid "terminating walsender process due to replication timeout"
+msgstr "由于复制超时, 中断walreceiver进程"
+
+#: replication/walsender.c:1863
+#, c-format
+msgid "standby \"%s\" has now caught up with primary"
+msgstr "备用节点 \"%s\" 现在遇上了主节点"
+
+#: replication/walsender.c:1967
+#, c-format
+msgid ""
+"number of requested standby connections exceeds max_wal_senders (currently "
+"%d)"
+msgstr "所要求的备用服务器连接数超过了参数max_wal_senders的值(当前设置为%d)"
+
+#: rewrite/rewriteDefine.c:111 rewrite/rewriteDefine.c:942
+#, c-format
+msgid "rule \"%s\" for relation \"%s\" already exists"
+msgstr "关系 \"%2$s\" 的规则 \"%1$s\" 已经存在"
+
+#: rewrite/rewriteDefine.c:295
+#, c-format
+msgid "rule actions on OLD are not implemented"
+msgstr "在 OLD 上的规则动作没有实现"
+
+#: rewrite/rewriteDefine.c:296
+#, c-format
+msgid "Use views or triggers instead."
+msgstr "请使用视图或触发器代替."
+
+#: rewrite/rewriteDefine.c:300
 #, c-format
 msgid "rule actions on NEW are not implemented"
 msgstr "在 NEW 上的规则动作没有实现"
 
-#: rewrite/rewriteDefine.c:296
+#: rewrite/rewriteDefine.c:301
 #, c-format
 msgid "Use triggers instead."
 msgstr "请使用触发器代替."
 
-#: rewrite/rewriteDefine.c:309
+#: rewrite/rewriteDefine.c:314
 #, c-format
 msgid "INSTEAD NOTHING rules on SELECT are not implemented"
 msgstr "在 SELECT 上的 INSTEAD NOTHING 规则没有实现"
 
-#: rewrite/rewriteDefine.c:310
+#: rewrite/rewriteDefine.c:315
 #, c-format
 msgid "Use views instead."
 msgstr "请使用视图代替."
 
-#: rewrite/rewriteDefine.c:318
+#: rewrite/rewriteDefine.c:323
 #, c-format
 msgid "multiple actions for rules on SELECT are not implemented"
 msgstr "在 SELECT 上的多动作规则没有实现"
 
-#: rewrite/rewriteDefine.c:329
+#: rewrite/rewriteDefine.c:334
 #, c-format
 msgid "rules on SELECT must have action INSTEAD SELECT"
 msgstr "在 SELECT 上的规则必须有 INSTEAD SELECT 动作"
 
-#: rewrite/rewriteDefine.c:337
+#: rewrite/rewriteDefine.c:342
 #, c-format
 msgid "rules on SELECT must not contain data-modifying statements in WITH"
 msgstr "SELECT上的规则: 不能在WITH子句中包含数据修改操作"
 
-#: rewrite/rewriteDefine.c:345
+#: rewrite/rewriteDefine.c:350
 #, c-format
 msgid "event qualifications are not implemented for rules on SELECT"
 msgstr "在 SELECT 上规则的事件条件没有实现"
 
-#: rewrite/rewriteDefine.c:370
+#: rewrite/rewriteDefine.c:377
 #, c-format
 msgid "\"%s\" is already a view"
 msgstr "\"%s\" 已经是一个视图了"
 
-#: rewrite/rewriteDefine.c:394
+#: rewrite/rewriteDefine.c:401
 #, c-format
 msgid "view rule for \"%s\" must be named \"%s\""
 msgstr "用于 \"%s\" 的视图规则必须命名为 \"%s\""
 
-#: rewrite/rewriteDefine.c:419
+#: rewrite/rewriteDefine.c:429
 #, c-format
 msgid "could not convert table \"%s\" to a view because it is not empty"
 msgstr "无法把表 \"%s\" 转化为视图, 因为它不是空的"
 
-#: rewrite/rewriteDefine.c:426
+#: rewrite/rewriteDefine.c:437
 #, c-format
 msgid "could not convert table \"%s\" to a view because it has triggers"
 msgstr "无法把表 \"%s\" 转换为视图, 因为它有触发器"
 
-#: rewrite/rewriteDefine.c:428
+#: rewrite/rewriteDefine.c:439
 #, c-format
 msgid ""
 "In particular, the table cannot be involved in any foreign key relationships."
 msgstr "特别是在任何外键关系中不能涉及表"
 
-#: rewrite/rewriteDefine.c:433
+#: rewrite/rewriteDefine.c:444
 #, c-format
 msgid "could not convert table \"%s\" to a view because it has indexes"
 msgstr "无法把表 \"%s\" 转换为视图, 因为它有索引"
 
-#: rewrite/rewriteDefine.c:439
+#: rewrite/rewriteDefine.c:450
 #, c-format
 msgid "could not convert table \"%s\" to a view because it has child tables"
 msgstr "无法把表 \"%s\" 转换为视图, 因为它有子表"
 
-#: rewrite/rewriteDefine.c:466
+#: rewrite/rewriteDefine.c:477
 #, c-format
 msgid "cannot have multiple RETURNING lists in a rule"
 msgstr "在一个规则中不能有多个RETURNING列表"
 
-#: rewrite/rewriteDefine.c:471
+#: rewrite/rewriteDefine.c:482
 #, c-format
 msgid "RETURNING lists are not supported in conditional rules"
 msgstr "在条件规则中不支持RETURNING列表"
 
-#: rewrite/rewriteDefine.c:475
+#: rewrite/rewriteDefine.c:486
 #, c-format
 msgid "RETURNING lists are not supported in non-INSTEAD rules"
 msgstr "在非INSTEAD规则中不支持RETURNING列表"
 
-#: rewrite/rewriteDefine.c:554
+#: rewrite/rewriteDefine.c:649
 #, c-format
 msgid "SELECT rule's target list has too many entries"
 msgstr "SELECT 规则的目标列表的记录太多"
 
-#: rewrite/rewriteDefine.c:555
+#: rewrite/rewriteDefine.c:650
 #, c-format
 msgid "RETURNING list has too many entries"
 msgstr "RETURNING列表中的项太多."
 
-#: rewrite/rewriteDefine.c:571
+#: rewrite/rewriteDefine.c:666
 #, c-format
 msgid "cannot convert relation containing dropped columns to view"
 msgstr "无法转换包含已删除字段的关系为视图"
 
-#: rewrite/rewriteDefine.c:576
+#: rewrite/rewriteDefine.c:672
 #, c-format
-msgid "SELECT rule's target entry %d has different column name from \"%s\""
-msgstr "SELECT 规则的目标记录 %d 的字段名和 \"%s\" 不同"
+#| msgid "SELECT rule's target entry %d has different column name from \"%s\""
+msgid ""
+"SELECT rule's target entry %d has different column name from column \"%s\""
+msgstr "SELECT 规则的目标记录 %d 的字段名和字段 \"%s\" 不同"
+
+#: rewrite/rewriteDefine.c:674
+#, c-format
+#| msgid "SELECT rule's target entry %d has different column name from \"%s\""
+msgid "SELECT target entry is named \"%s\"."
+msgstr "SELECT 目标项命名为\"%s\","
 
-#: rewrite/rewriteDefine.c:582
+#: rewrite/rewriteDefine.c:683
 #, c-format
 msgid "SELECT rule's target entry %d has different type from column \"%s\""
 msgstr "SELECT 规则的目标记录 %d 和字段 \"%s\" 的类型不同"
 
-#: rewrite/rewriteDefine.c:584
+#: rewrite/rewriteDefine.c:685
 #, c-format
 msgid "RETURNING list's entry %d has different type from column \"%s\""
 msgstr "RETURNING列表中的第%d项与列\"%s\"的类型不同"
 
-#: rewrite/rewriteDefine.c:599
+#: rewrite/rewriteDefine.c:688 rewrite/rewriteDefine.c:712
+#, c-format
+#| msgid "SELECT rule's target entry %d has different type from column \"%s\""
+msgid "SELECT target entry has type %s, but column has type %s."
+msgstr "SELECT 目标项类型为%s, 但其列类型为%s."
+
+#: rewrite/rewriteDefine.c:691 rewrite/rewriteDefine.c:716
+#, c-format
+#| msgid "RETURNING list's entry %d has different type from column \"%s\""
+msgid "RETURNING list entry has type %s, but column has type %s."
+msgstr "RETURNING列表项类型为%s, 但是其列类型为%s."
+
+#: rewrite/rewriteDefine.c:707
 #, c-format
 msgid "SELECT rule's target entry %d has different size from column \"%s\""
 msgstr "SELECT 规则的目标记录 %d 与字段 \"%s\" 的大小不同"
 
-#: rewrite/rewriteDefine.c:601
+#: rewrite/rewriteDefine.c:709
 #, c-format
 msgid "RETURNING list's entry %d has different size from column \"%s\""
 msgstr "在RETURNING列表中的第%d项的大小与列 \"%s\"不同"
 
-#: rewrite/rewriteDefine.c:609
+#: rewrite/rewriteDefine.c:726
 #, c-format
 msgid "SELECT rule's target list has too few entries"
 msgstr "SELECT 规则的目标列表记录数太少"
 
-#: rewrite/rewriteDefine.c:610
+#: rewrite/rewriteDefine.c:727
 #, c-format
 msgid "RETURNING list has too few entries"
 msgstr "RETURNING 列表后面的项太少"
 
-#: rewrite/rewriteDefine.c:702 rewrite/rewriteDefine.c:764
-#: rewrite/rewriteSupport.c:116
+#: rewrite/rewriteDefine.c:819 rewrite/rewriteDefine.c:933
+#: rewrite/rewriteSupport.c:112
 #, c-format
 msgid "rule \"%s\" for relation \"%s\" does not exist"
 msgstr "关系 \"%2$s\" 的 \"%1$s\" 规则不存在"
 
-#: rewrite/rewriteHandler.c:485
+#: rewrite/rewriteDefine.c:952
+#, c-format
+#| msgid "multiple OFFSET clauses not allowed"
+msgid "renaming an ON SELECT rule is not allowed"
+msgstr "不允许重命名一个ON SELECT规则"
+
+#: rewrite/rewriteHandler.c:512
 #, c-format
 msgid ""
 "WITH query name \"%s\" appears in both a rule action and the query being "
 "rewritten"
 msgstr "WITH 查询名 \"%s\" 看起来好像在某规则行为和查询重写里同时出现"
 
-#: rewrite/rewriteHandler.c:543
+#: rewrite/rewriteHandler.c:572
 #, c-format
 msgid "cannot have RETURNING lists in multiple rules"
 msgstr "无法在多个规则中拥有RETURNING列表"
 
-#: rewrite/rewriteHandler.c:874 rewrite/rewriteHandler.c:892
+#: rewrite/rewriteHandler.c:910 rewrite/rewriteHandler.c:928
 #, c-format
 msgid "multiple assignments to same column \"%s\""
 msgstr "对同一列\"%s\"进行了多次分配"
 
-#: rewrite/rewriteHandler.c:1628 rewrite/rewriteHandler.c:2023
+#: rewrite/rewriteHandler.c:1698 rewrite/rewriteHandler.c:3129
 #, c-format
 msgid "infinite recursion detected in rules for relation \"%s\""
 msgstr "在关系 \"%s\" 的规则中发现无限循环"
 
-#: rewrite/rewriteHandler.c:1884
+#: rewrite/rewriteHandler.c:1995
+msgid "Junk view columns are not updatable."
+msgstr "废弃视图列不可更新."
+
+#: rewrite/rewriteHandler.c:2000
+msgid ""
+"View columns that are not columns of their base relation are not updatable."
+msgstr "不属于基础关系的列的那些视图列不能用于更新操作."
+
+#: rewrite/rewriteHandler.c:2003
+msgid "View columns that refer to system columns are not updatable."
+msgstr "引用系统列的视图列不能用于更新操作."
+
+#: rewrite/rewriteHandler.c:2006
+#| msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"."
+msgid "View columns that return whole-row references are not updatable."
+msgstr "返回整行引用的视图列不能更新"
+
+#: rewrite/rewriteHandler.c:2064
+msgid "Views containing DISTINCT are not automatically updatable."
+msgstr "包含DISTINCT的视图列不能自动更新."
+
+#: rewrite/rewriteHandler.c:2067
+msgid "Views containing GROUP BY are not automatically updatable."
+msgstr "包含 GROUP BY 的视图列不能自动更新."
+
+#: rewrite/rewriteHandler.c:2070
+msgid "Views containing HAVING are not automatically updatable."
+msgstr "包含 HAVING 的视图列不能自动更新."
+
+#: rewrite/rewriteHandler.c:2073
+msgid ""
+"Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable."
+msgstr "包含 UNION, INTERSECT, 或 EXCEPT 不能用于自动更新."
+
+#: rewrite/rewriteHandler.c:2076
+msgid "Views containing WITH are not automatically updatable."
+msgstr "包含 WITH 的视图不能自动更新."
+
+#: rewrite/rewriteHandler.c:2079
+msgid "Views containing LIMIT or OFFSET are not automatically updatable."
+msgstr "包含 LIMIT 或 OFFSET 的视图不能自动更新."
+
+#: rewrite/rewriteHandler.c:2091
+msgid "Views that return aggregate functions are not automatically updatable."
+msgstr "返回聚集函数的视图不能自动更新."
+
+#: rewrite/rewriteHandler.c:2094
+msgid "Views that return window functions are not automatically updatable."
+msgstr "返回窗口函数的视图不能自动更新."
+
+#: rewrite/rewriteHandler.c:2097
+msgid ""
+"Views that return set-returning functions are not automatically updatable."
+msgstr "返回自返回函数的视图不能自动更新."
+
+#: rewrite/rewriteHandler.c:2104 rewrite/rewriteHandler.c:2108
+#: rewrite/rewriteHandler.c:2115
+msgid ""
+"Views that do not select from a single table or view are not automatically "
+"updatable."
+msgstr "不来自单表或单视图的视图不能自动更新."
+
+#: rewrite/rewriteHandler.c:2139
+msgid "Views that have no updatable columns are not automatically updatable."
+msgstr "没有更新列的视图不能自动更新."
+
+#: rewrite/rewriteHandler.c:2576
+#, c-format
+#| msgid "cannot insert into view \"%s\""
+msgid "cannot insert into column \"%s\" of view \"%s\""
+msgstr "无法插入列\"%s\"到视图\"%s\""
+
+#: rewrite/rewriteHandler.c:2584
+#, c-format
+#| msgid "could not update column \"%s\" of table \"%s\": %s"
+msgid "cannot update column \"%s\" of view \"%s\""
+msgstr "无法更新视图 \"%2$s\" 的字段 \"%1$s\""
+
+#: rewrite/rewriteHandler.c:2952
 #, c-format
 msgid ""
 "DO INSTEAD NOTHING rules are not supported for data-modifying statements in "
 "WITH"
 msgstr "DO INSTEAD NOTHING规则不支持在WITH子句中执行数据修改操作"
 
-#: rewrite/rewriteHandler.c:1898
+#: rewrite/rewriteHandler.c:2966
 #, c-format
 msgid ""
 "conditional DO INSTEAD rules are not supported for data-modifying statements "
 "in WITH"
 msgstr "DO INSTEAD 条件规则不支持在WITH子句中执行数据修改操作"
 
-#: rewrite/rewriteHandler.c:1902
+#: rewrite/rewriteHandler.c:2970
 #, c-format
 msgid "DO ALSO rules are not supported for data-modifying statements in WITH"
 msgstr "DO ALSO 规则不支持在WITH子句中执行数据修改操作"
 
-#: rewrite/rewriteHandler.c:1907
+#: rewrite/rewriteHandler.c:2975
 #, c-format
 msgid ""
 "multi-statement DO INSTEAD rules are not supported for data-modifying "
 "statements in WITH"
 msgstr "多语句 DO INSTEAD 规则不支持在WITH子句中执行数据修改操作"
 
-#: rewrite/rewriteHandler.c:2061
+#: rewrite/rewriteHandler.c:3166
 #, c-format
 msgid "cannot perform INSERT RETURNING on relation \"%s\""
 msgstr "无法在关系\"%s\"上执行INSERT RETURNING "
 
-#: rewrite/rewriteHandler.c:2063
+#: rewrite/rewriteHandler.c:3168
 #, c-format
 msgid ""
 "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause."
 msgstr "您需要一个无条件, 且带有RETURNING子句的ON INSERT DO INSTEAD的规则."
 
-#: rewrite/rewriteHandler.c:2068
+#: rewrite/rewriteHandler.c:3173
 #, c-format
 msgid "cannot perform UPDATE RETURNING on relation \"%s\""
 msgstr "无法在关系\"%s\"执行UPDATE RETURNING"
 
-#: rewrite/rewriteHandler.c:2070
+#: rewrite/rewriteHandler.c:3175
 #, c-format
 msgid ""
 "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause."
 msgstr "您需要一个无条件的 ON UPDATE DO INSTEAD 规则."
 
-#: rewrite/rewriteHandler.c:2075
+#: rewrite/rewriteHandler.c:3180
 #, c-format
 msgid "cannot perform DELETE RETURNING on relation \"%s\""
 msgstr "无法在关系 \"%s\"上执行DELETE RETURNING"
 
-#: rewrite/rewriteHandler.c:2077
+#: rewrite/rewriteHandler.c:3182
 #, c-format
 msgid ""
 "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause."
 msgstr "您需要一个无条件, 且带有RETURNING子句的ON DELETE DO INSTEAD 规则."
 
-#: rewrite/rewriteHandler.c:2141
+#: rewrite/rewriteHandler.c:3246
 #, c-format
 msgid ""
 "WITH cannot be used in a query that is rewritten by rules into multiple "
 "queries"
 msgstr "WITH 不能用于按规则可重写为多个查询的查询语句中"
 
-#: rewrite/rewriteManip.c:1028
+#: rewrite/rewriteManip.c:956
 #, c-format
 msgid "conditional utility statements are not implemented"
 msgstr "条件工具语句没有实现"
 
-#: rewrite/rewriteManip.c:1193
+#: rewrite/rewriteManip.c:1121
 #, c-format
 msgid "WHERE CURRENT OF on a view is not implemented"
 msgstr "未实现在视图上的WHERE CURRENT OF操作"
 
-#: rewrite/rewriteSupport.c:158
+#: rewrite/rewriteSupport.c:154
 #, c-format
 msgid "rule \"%s\" does not exist"
 msgstr "规则 \"%s\" 不存在"
 
-#: rewrite/rewriteSupport.c:171
+#: rewrite/rewriteSupport.c:167
 #, c-format
 msgid "there are multiple rules named \"%s\""
 msgstr "有多条规则的名字是 \"%s\""
 
-#: rewrite/rewriteSupport.c:172
+#: rewrite/rewriteSupport.c:168
 #, c-format
 msgid "Specify a relation name as well as a rule name."
 msgstr "指定一个关系名称, 和规则名称一样."
 
-#: snowball/dict_snowball.c:180
-#, c-format
-msgid "no Snowball stemmer available for language \"%s\" and encoding \"%s\""
-msgstr "对于语言\"%s\" 和编码\"%s\"来说,没有有效的Snowball stemmer "
+#: scan.l:426
+msgid "unterminated /* comment"
+msgstr "/* 注释没有结束"
 
-#: snowball/dict_snowball.c:203 tsearch/dict_ispell.c:73
-#: tsearch/dict_simple.c:48
-#, c-format
-msgid "multiple StopWords parameters"
-msgstr "多个 StopWords参数"
+#: scan.l:455
+msgid "unterminated bit string literal"
+msgstr "未结束的bit字符串常量"
 
-#: snowball/dict_snowball.c:212
-#, c-format
-msgid "multiple Language parameters"
-msgstr "多语言参数"
+#: scan.l:476
+msgid "unterminated hexadecimal string literal"
+msgstr "未结束的16进制字符串常量"
 
-#: snowball/dict_snowball.c:219
+#: scan.l:526
 #, c-format
-msgid "unrecognized Snowball parameter: \"%s\""
-msgstr "未识别Snowball参数: \"%s\""
+msgid "unsafe use of string constant with Unicode escapes"
+msgstr "这种使用带有Unicode转义字符的字符串常量的方法不安全."
 
-#: snowball/dict_snowball.c:227
+#: scan.l:527
 #, c-format
-msgid "missing Language parameter"
-msgstr "缺少语言参数"
+msgid ""
+"String constants with Unicode escapes cannot be used when "
+"standard_conforming_strings is off."
+msgstr ""
+"当参数standard_conforming_strings处于关闭状态时,无法使用带有Unicode转义字符"
+"的字符串常量."
 
-#: storage/buffer/bufmgr.c:136 storage/buffer/bufmgr.c:241
-#, c-format
-msgid "cannot access temporary tables of other sessions"
-msgstr "无法访问其它会话的临时表"
+#: scan.l:571 scan.l:767
+msgid "invalid Unicode escape character"
+msgstr "无效Unicode转义字符"
 
-#: storage/buffer/bufmgr.c:378
+#: scan.l:596 scan.l:604 scan.l:612 scan.l:613 scan.l:614 scan.l:1297
+#: scan.l:1324 scan.l:1328 scan.l:1366 scan.l:1370 scan.l:1392
+msgid "invalid Unicode surrogate pair"
+msgstr "无效的Unicode代理项对(surrogate pair)"
+
+#: scan.l:618
 #, c-format
-msgid "unexpected data beyond EOF in block %u of relation %s"
+msgid "invalid Unicode escape"
+msgstr "无效的Unicode转义字符"
+
+#: scan.l:619
+#, c-format
+msgid "Unicode escapes must be \\uXXXX or \\UXXXXXXXX."
+msgstr "Unicode转义字符必须是\\uXXXX或\\UXXXXXXXX."
+
+#: scan.l:630
+#, c-format
+msgid "unsafe use of \\' in a string literal"
+msgstr "在字符串常量中使用\\不安全"
+
+#: scan.l:631
+#, c-format
+msgid ""
+"Use '' to write quotes in strings. \\' is insecure in client-only encodings."
+msgstr "使用''在字符串中表示引号,在只有客户端使用的编码中使用\\'不安全."
+
+#: scan.l:706
+msgid "unterminated dollar-quoted string"
+msgstr "未结束的用$符号引用的字符串"
+
+#: scan.l:723 scan.l:747 scan.l:762
+msgid "zero-length delimited identifier"
+msgstr "长度为0的分隔标示符"
+
+#: scan.l:782
+msgid "unterminated quoted identifier"
+msgstr "未结束的引用标识符"
+
+#: scan.l:886
+msgid "operator too long"
+msgstr "操作符太长"
+
+#. translator: %s is typically the translation of "syntax error"
+#: scan.l:1044
+#, c-format
+msgid "%s at end of input"
+msgstr "%s 在输入的末尾"
+
+#. translator: first %s is typically the translation of "syntax error"
+#: scan.l:1052
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "%s 在 \"%s\" 或附近的"
+
+#: scan.l:1213 scan.l:1245
+msgid ""
+"Unicode escape values cannot be used for code point values above 007F when "
+"the server encoding is not UTF8"
+msgstr "当服务器的编码不是UTF8时,无法为在007F以上的码点值使用Unicode转义值."
+
+#: scan.l:1241 scan.l:1384
+msgid "invalid Unicode escape value"
+msgstr "无效的Unicode转义值"
+
+#: scan.l:1440
+#, c-format
+msgid "nonstandard use of \\' in a string literal"
+msgstr "在字符串常量中以不标准的方法使用\\'"
+
+#: scan.l:1441
+#, c-format
+msgid ""
+"Use '' to write quotes in strings, or use the escape string syntax (E'...')."
+msgstr "使用''或者转义字符串语法(E'...')将字符串引起来."
+
+#: scan.l:1450
+#, c-format
+msgid "nonstandard use of \\\\ in a string literal"
+msgstr "在字符串常量中以不标准的方法使用\\\\ "
+
+#: scan.l:1451
+#, c-format
+msgid "Use the escape string syntax for backslashes, e.g., E'\\\\'."
+msgstr "为反斜线使用转移字符串语法,例如.,E'\\\\'."
+
+#: scan.l:1465
+#, c-format
+msgid "nonstandard use of escape in a string literal"
+msgstr "在字符串常量中以不标准的方法使用转义字符"
+
+#: scan.l:1466
+#, c-format
+msgid "Use the escape string syntax for escapes, e.g., E'\\r\\n'."
+msgstr "对转移字符使用转义字符串语法,例如 E'\\r\\n'."
+
+#: snowball/dict_snowball.c:180
+#, c-format
+msgid "no Snowball stemmer available for language \"%s\" and encoding \"%s\""
+msgstr "对于语言\"%s\" 和编码\"%s\"来说,没有有效的Snowball stemmer "
+
+#: snowball/dict_snowball.c:203 tsearch/dict_ispell.c:73
+#: tsearch/dict_simple.c:48
+#, c-format
+msgid "multiple StopWords parameters"
+msgstr "多个 StopWords参数"
+
+#: snowball/dict_snowball.c:212
+#, c-format
+msgid "multiple Language parameters"
+msgstr "多语言参数"
+
+#: snowball/dict_snowball.c:219
+#, c-format
+msgid "unrecognized Snowball parameter: \"%s\""
+msgstr "未识别Snowball参数: \"%s\""
+
+#: snowball/dict_snowball.c:227
+#, c-format
+msgid "missing Language parameter"
+msgstr "缺少语言参数"
+
+#: storage/buffer/bufmgr.c:139 storage/buffer/bufmgr.c:252
+#, c-format
+msgid "cannot access temporary tables of other sessions"
+msgstr "无法访问其它会话的临时表"
+
+#: storage/buffer/bufmgr.c:401
+#, c-format
+msgid "unexpected data beyond EOF in block %u of relation %s"
 msgstr "关系 \"%2$s\" 的块 %1$u 中的EOF后面出现未期望的数据"
 
-#: storage/buffer/bufmgr.c:380
+#: storage/buffer/bufmgr.c:403
 #, c-format
 msgid ""
 "This has been seen to occur with buggy kernels; consider updating your "
 "system."
 msgstr "这是由于内核缺陷所致;请考虑更新您的操作系统."
 
-#: storage/buffer/bufmgr.c:466
-#, c-format
-msgid "invalid page header in block %u of relation %s; zeroing out page"
-msgstr "关系 \"%2$s\" 中的块 %1$u 无效的页头;正在对页进行清零操作"
-
-#: storage/buffer/bufmgr.c:474
+#: storage/buffer/bufmgr.c:493
 #, c-format
-msgid "invalid page header in block %u of relation %s"
-msgstr "关系 \"%2$s\" 中的块 %1$u 无效的页头"
+#| msgid "invalid page header in block %u of relation %s; zeroing out page"
+msgid "invalid page in block %u of relation %s; zeroing out page"
+msgstr "关系 \"%2$s\" 中的块 %1$u 无效的页;正在对页进行清零操作"
 
-#: storage/buffer/bufmgr.c:2909
+#: storage/buffer/bufmgr.c:3178
 #, c-format
 msgid "could not write block %u of %s"
 msgstr "无法写入%2$s的块%1$u"
 
-#: storage/buffer/bufmgr.c:2911
+#: storage/buffer/bufmgr.c:3180
 #, c-format
 msgid "Multiple failures --- write error might be permanent."
 msgstr "多次失败 --- 写错误可能是永久性的"
 
-#: storage/buffer/bufmgr.c:2932 storage/buffer/bufmgr.c:2951
+#: storage/buffer/bufmgr.c:3201 storage/buffer/bufmgr.c:3220
 #, c-format
 msgid "writing block %u of relation %s"
 msgstr "写入关系%2$s的块%1$u"
@@ -13329,94 +15673,215 @@ msgid "no empty local buffer available"
 msgstr "没有可用的本地缓冲区"
 
 # fe-misc.c:389 fe-misc.c:423 fe-misc.c:838
-#: storage/file/fd.c:416
+#: storage/file/fd.c:505
 #, c-format
 msgid "getrlimit failed: %m"
 msgstr "函数getrlimit执行失败: %m"
 
-#: storage/file/fd.c:506
+#: storage/file/fd.c:595
 #, c-format
 msgid "insufficient file descriptors available to start server process"
 msgstr "启动服务器进程的有效文件描述符不足"
 
-#: storage/file/fd.c:507
+#: storage/file/fd.c:596
 #, c-format
 msgid "System allows %d, we need at least %d."
 msgstr "系统允许 %d, 我们至少需要 %d."
 
-#: storage/file/fd.c:548 storage/file/fd.c:1509 storage/file/fd.c:1625
+#: storage/file/fd.c:637 storage/file/fd.c:1671 storage/file/fd.c:1764
+#: storage/file/fd.c:1912
 #, c-format
 msgid "out of file descriptors: %m; release and retry"
 msgstr "超出文件描述符: %m; 释放再重试"
 
-#: storage/file/fd.c:1108
+#: storage/file/fd.c:1211
 #, c-format
 msgid "temporary file: path \"%s\", size %lu"
 msgstr "临时文件: 路径 \"%s\", 大小%lu"
 
-#: storage/file/fd.c:1257
+#: storage/file/fd.c:1360
 #, c-format
 msgid "temporary file size exceeds temp_file_limit (%dkB)"
 msgstr "临时文件大小超过最大允许值temp_file_limit(%dkB)"
 
-#: storage/file/fd.c:1684
+#: storage/file/fd.c:1647 storage/file/fd.c:1697
+#, c-format
+msgid "exceeded maxAllocatedDescs (%d) while trying to open file \"%s\""
+msgstr "试图打开文件 \"%2$s\"超出了最大描述符范围值 (%1$d)"
+
+#: storage/file/fd.c:1737
+#, c-format
+msgid "exceeded maxAllocatedDescs (%d) while trying to execute command \"%s\""
+msgstr "试图执行命令 \"%2$s\"时,超出了最大描述符范围值 (%1$d)"
+
+#: storage/file/fd.c:1888
+#, c-format
+msgid "exceeded maxAllocatedDescs (%d) while trying to open directory \"%s\""
+msgstr "试图打开目录 \"%2$s\"时,超出了最大描述符范围值 (%1$d)"
+
+#: storage/file/fd.c:1961
 #, c-format
 msgid "could not read directory \"%s\": %m"
 msgstr "无法读取目录 \"%s\": %m"
 
-#: storage/ipc/shmem.c:190 storage/lmgr/lock.c:848 storage/lmgr/lock.c:876
-#: storage/lmgr/lock.c:2486 storage/lmgr/lock.c:3122 storage/lmgr/lock.c:3600
-#: storage/lmgr/lock.c:3665 storage/lmgr/lock.c:3954
-#: storage/lmgr/predicate.c:2317 storage/lmgr/predicate.c:2332
-#: storage/lmgr/predicate.c:3728 storage/lmgr/predicate.c:4872
-#: storage/lmgr/proc.c:205 utils/hash/dynahash.c:960
+#: storage/ipc/dsm.c:363
+#, c-format
+msgid "dynamic shared memory control segment is corrupt"
+msgstr "动态共享内存控制段被毁坏"
+
+#: storage/ipc/dsm.c:410
+#, c-format
+msgid "dynamic shared memory is disabled"
+msgstr "动态共享内存被禁用"
+
+#: storage/ipc/dsm.c:411
+#, c-format
+msgid "Set dynamic_shared_memory_type to a value other than \"none\"."
+msgstr "设置 dynamic_shared_memory_type  的值为非 \"none\"."
+
+#: storage/ipc/dsm.c:431
+#, c-format
+msgid "dynamic shared memory control segment is not valid"
+msgstr "动态共享内存控制段无效"
+
+#: storage/ipc/dsm.c:501
+#, c-format
+#| msgid "could not create shared memory segment: %m"
+msgid "too many dynamic shared memory segments"
+msgstr "太多动态共享内存段"
+
+#: storage/ipc/dsm_impl.c:261 storage/ipc/dsm_impl.c:361
+#: storage/ipc/dsm_impl.c:533 storage/ipc/dsm_impl.c:648
+#: storage/ipc/dsm_impl.c:811 storage/ipc/dsm_impl.c:953
+#, c-format
+#| msgid "could not create shared memory segment: %m"
+msgid "could not unmap shared memory segment \"%s\": %m"
+msgstr "无法解除映射共享内存段 \"%s\": %m"
+
+#: storage/ipc/dsm_impl.c:271 storage/ipc/dsm_impl.c:543
+#: storage/ipc/dsm_impl.c:658 storage/ipc/dsm_impl.c:821
+#, c-format
+#| msgid "could not create shared memory segment: %m"
+msgid "could not remove shared memory segment \"%s\": %m"
+msgstr "无法删除共享内存段 \"%s\": %m"
+
+#: storage/ipc/dsm_impl.c:292 storage/ipc/dsm_impl.c:721
+#: storage/ipc/dsm_impl.c:835
+#, c-format
+#| msgid "could not create shared memory segment: %m"
+msgid "could not open shared memory segment \"%s\": %m"
+msgstr "无法打开共享内存段 \"%s\": %m"
+
+#: storage/ipc/dsm_impl.c:316 storage/ipc/dsm_impl.c:559
+#: storage/ipc/dsm_impl.c:766 storage/ipc/dsm_impl.c:859
+#, c-format
+#| msgid "could not create shared memory segment: %m"
+msgid "could not stat shared memory segment \"%s\": %m"
+msgstr "无法统计共享内存段 \"%s\": %m"
+
+#: storage/ipc/dsm_impl.c:335 storage/ipc/dsm_impl.c:878
+#: storage/ipc/dsm_impl.c:926
+#, c-format
+#| msgid "could not create shared memory segment: %m"
+msgid "could not resize shared memory segment \"%s\" to %zu bytes: %m"
+msgstr "无法重新设置共享内存段\"%s\"的大小为%zu字节: %m"
+
+#: storage/ipc/dsm_impl.c:385 storage/ipc/dsm_impl.c:580
+#: storage/ipc/dsm_impl.c:742 storage/ipc/dsm_impl.c:977
+#, c-format
+#| msgid "could not create shared memory segment: %m"
+msgid "could not map shared memory segment \"%s\": %m"
+msgstr "无法映射共享内存段 \"%s\": %m"
+
+#: storage/ipc/dsm_impl.c:515
+#, c-format
+#| msgid "could not create shared memory segment: %m"
+msgid "could not get shared memory segment: %m"
+msgstr "无法得到共享内存段: %m"
+
+#: storage/ipc/dsm_impl.c:694
+#, c-format
+#| msgid "could not create shared memory segment: %m"
+msgid "could not create shared memory segment \"%s\": %m"
+msgstr "无法创建共享内存段\"%s\": %m"
+
+#: storage/ipc/dsm_impl.c:1018
+#, c-format
+#| msgid "could not truncate file \"%s\": %m"
+msgid "could not duplicate handle for \"%s\": %m"
+msgstr "无法复制句柄 \"%s\": %m"
+
+#: storage/ipc/shm_toc.c:108 storage/ipc/shm_toc.c:189 storage/ipc/shmem.c:205
+#: storage/lmgr/lock.c:872 storage/lmgr/lock.c:906 storage/lmgr/lock.c:2601
+#: storage/lmgr/lock.c:3713 storage/lmgr/lock.c:3778 storage/lmgr/lock.c:4068
+#: storage/lmgr/predicate.c:2323 storage/lmgr/predicate.c:2338
+#: storage/lmgr/predicate.c:3731 storage/lmgr/predicate.c:4874
+#: storage/lmgr/proc.c:198 utils/hash/dynahash.c:966
 #, c-format
 msgid "out of shared memory"
 msgstr "共享内存用尽"
 
-#: storage/ipc/shmem.c:346 storage/ipc/shmem.c:399
+#: storage/ipc/shmem.c:361 storage/ipc/shmem.c:412
 #, c-format
+#| msgid ""
+#| "not enough shared memory for data structure \"%s\" (%lu bytes requested)"
 msgid ""
-"not enough shared memory for data structure \"%s\" (%lu bytes requested)"
-msgstr "没有足够的共享内存提供给数据结构\"%s\" (需要%lu个字节)"
+"not enough shared memory for data structure \"%s\" (%zu bytes requested)"
+msgstr "没有足够的共享内存提供给数据结构\"%s\" (需要%zu个字节)"
 
-#: storage/ipc/shmem.c:365
+#: storage/ipc/shmem.c:380
 #, c-format
 msgid "could not create ShmemIndex entry for data structure \"%s\""
 msgstr "无法为数据结构\"%s\"创建ShmemIndex项"
 
-#: storage/ipc/shmem.c:380
+#: storage/ipc/shmem.c:395
 #, c-format
+#| msgid ""
+#| "ShmemIndex entry size is wrong for data structure \"%s\": expected %lu, "
+#| "actual %lu"
 msgid ""
-"ShmemIndex entry size is wrong for data structure \"%s\": expected %lu, "
-"actual %lu"
+"ShmemIndex entry size is wrong for data structure \"%s\": expected %zu, "
+"actual %zu"
 msgstr ""
-"对于数据结构\"%s\"来说ShmemIndex项的大小错误:所期望的值是%lu,实际的值是%lu"
+"对于数据结构\"%s\"来说ShmemIndex项的大小错误:所期望的值是%zu,实的值是%zu"
 
-#: storage/ipc/shmem.c:427 storage/ipc/shmem.c:446
+#: storage/ipc/shmem.c:440 storage/ipc/shmem.c:459
 #, c-format
 msgid "requested shared memory size overflows size_t"
 msgstr "所要求的共享内存大小超过size_t"
 
-#: storage/ipc/standby.c:494 tcop/postgres.c:2919
+#: storage/ipc/standby.c:499 tcop/postgres.c:2952
 #, c-format
 msgid "canceling statement due to conflict with recovery"
 msgstr "由于与恢复操作冲突,正在取消语句命令"
 
-#: storage/ipc/standby.c:495 tcop/postgres.c:2215
+#: storage/ipc/standby.c:500 tcop/postgres.c:2216
 #, c-format
 msgid "User transaction caused buffer deadlock with recovery."
 msgstr "用户事务造成了恢复操作期间缓冲区的死锁"
 
-#: storage/large_object/inv_api.c:551 storage/large_object/inv_api.c:748
+#: storage/large_object/inv_api.c:203
+#, c-format
+msgid "pg_largeobject entry for OID %u, page %d has invalid data field size %d"
+msgstr "pg_largeobject 的 OID为 %u, 页号 %d , 数据域的大小 %d为无效值"
+
+#: storage/large_object/inv_api.c:284
+#, c-format
+#| msgid "invalid OID for large object (%u)\n"
+msgid "invalid flags for opening a large object: %d"
+msgstr "打开大对象的无效标记: %d"
+
+#: storage/large_object/inv_api.c:436
 #, c-format
-msgid "large object %u was not opened for writing"
-msgstr "大对象%u无法打开来进行写操作"
+#| msgid "invalid escape string"
+msgid "invalid whence setting: %d"
+msgstr "无效的根源设置: %d"
 
-#: storage/large_object/inv_api.c:558 storage/large_object/inv_api.c:755
+#: storage/large_object/inv_api.c:591
 #, c-format
-msgid "large object %u was already dropped"
-msgstr "大对象%u已经被删除"
+#| msgid "invalid large-object descriptor: %d"
+msgid "invalid large object write request size: %d"
+msgstr "无效的大对象写请求大小: %d"
 
 #: storage/lmgr/deadlock.c:925
 #, c-format
@@ -13438,138 +15903,179 @@ msgstr "检测到死锁"
 msgid "See server log for query details."
 msgstr "详细信息请查看服务器日志."
 
-#: storage/lmgr/lmgr.c:675
+#: storage/lmgr/lmgr.c:599
+#, c-format
+#| msgid "writing block %u of relation %s"
+msgid "while updating tuple (%u,%u) in relation \"%s\""
+msgstr "当更新关系\"%3$s\"的元组(%1$u, %2$u)时"
+
+#: storage/lmgr/lmgr.c:602
+#, c-format
+#| msgid "writing block %u of relation %s"
+msgid "while deleting tuple (%u,%u) in relation \"%s\""
+msgstr "当删除关系\"%3$s\"的元组(%1$u, %2$u)时"
+
+#: storage/lmgr/lmgr.c:605
+#, c-format
+#| msgid "writing block %u of relation %s"
+msgid "while locking tuple (%u,%u) in relation \"%s\""
+msgstr "当锁定关系\"%3$s\"的元组(%1$u, %2$u)时"
+
+#: storage/lmgr/lmgr.c:608
+#, c-format
+msgid "while locking updated version (%u,%u) of tuple in relation \"%s\""
+msgstr "在锁定关系\"%3$s\"中的元组的更新版本 (%1$u,%2$u) 时"
+
+#: storage/lmgr/lmgr.c:611
+#, c-format
+msgid "while inserting index tuple (%u,%u) in relation \"%s\""
+msgstr "在往关系\"%3$s\"中插入索引元组 (%1$u,%2$u) 时"
+
+#: storage/lmgr/lmgr.c:614
+#, c-format
+msgid "while checking uniqueness of tuple (%u,%u) in relation \"%s\""
+msgstr "在检查关系\"%3$s\"中元组(%1$u, %2$u)的唯一性时"
+
+#: storage/lmgr/lmgr.c:617
+#, c-format
+msgid "while rechecking updated tuple (%u,%u) in relation \"%s\""
+msgstr "重新检查关系 \"%3$s\"中已更新的元组(%1$u, %2$u)时"
+
+#: storage/lmgr/lmgr.c:620
+#, c-format
+msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\""
+msgstr "在检查关系\"%3$s\"中的元组(%1$u, %2$u)的排它性依赖时"
+
+#: storage/lmgr/lmgr.c:840
 #, c-format
 msgid "relation %u of database %u"
 msgstr "数据库%2$u的关系%1$u"
 
-#: storage/lmgr/lmgr.c:681
+#: storage/lmgr/lmgr.c:846
 #, c-format
 msgid "extension of relation %u of database %u"
 msgstr "数据库%2$u的关系%1$u的扩展"
 
-#: storage/lmgr/lmgr.c:687
+#: storage/lmgr/lmgr.c:852
 #, c-format
 msgid "page %u of relation %u of database %u"
 msgstr "数据库%3$u的关系%2$u的页%1$u"
 
-#: storage/lmgr/lmgr.c:694
+#: storage/lmgr/lmgr.c:859
 #, c-format
 msgid "tuple (%u,%u) of relation %u of database %u"
 msgstr "数据库%4$u的关系%3$u中的元组(%1$u,%2$u)"
 
-#: storage/lmgr/lmgr.c:702
+#: storage/lmgr/lmgr.c:867
 #, c-format
 msgid "transaction %u"
 msgstr "事务 %u"
 
 # sql_help.h:101
 # sql_help.h:413
-#: storage/lmgr/lmgr.c:707
+#: storage/lmgr/lmgr.c:872
 #, c-format
 msgid "virtual transaction %d/%u"
 msgstr "虚拟事务 %d/%u"
 
-#: storage/lmgr/lmgr.c:713
+#: storage/lmgr/lmgr.c:878
 #, c-format
 msgid "object %u of class %u of database %u"
 msgstr "数据库%3$u的类%2$u的对象%1$u"
 
-#: storage/lmgr/lmgr.c:721
+#: storage/lmgr/lmgr.c:886
 #, c-format
 msgid "user lock [%u,%u,%u]"
 msgstr "用户锁[%u,%u,%u]"
 
-#: storage/lmgr/lmgr.c:728
+#: storage/lmgr/lmgr.c:893
 #, c-format
 msgid "advisory lock [%u,%u,%u,%u]"
 msgstr "建议锁 [%u,%u,%u,%u]"
 
-#: storage/lmgr/lmgr.c:736
+#: storage/lmgr/lmgr.c:901
 #, c-format
 msgid "unrecognized locktag type %d"
 msgstr "未知的locktag 类型  %d"
 
-#: storage/lmgr/lock.c:706
+#: storage/lmgr/lock.c:721
 #, c-format
 msgid ""
 "cannot acquire lock mode %s on database objects while recovery is in progress"
 msgstr "在恢复操作的过程中不能在数据库对象上获取锁模式%s"
 
-#: storage/lmgr/lock.c:708
+#: storage/lmgr/lock.c:723
 #, c-format
 msgid ""
 "Only RowExclusiveLock or less can be acquired on database objects during "
 "recovery."
 msgstr "在恢复操作期间只有在数据对象上获取RowExclusiveLock或者更低级别的锁。"
 
-#: storage/lmgr/lock.c:849 storage/lmgr/lock.c:877 storage/lmgr/lock.c:2487
-#: storage/lmgr/lock.c:3601 storage/lmgr/lock.c:3666 storage/lmgr/lock.c:3955
+#: storage/lmgr/lock.c:873 storage/lmgr/lock.c:907 storage/lmgr/lock.c:2602
+#: storage/lmgr/lock.c:3714 storage/lmgr/lock.c:3779 storage/lmgr/lock.c:4069
 #, c-format
 msgid "You might need to increase max_locks_per_transaction."
 msgstr "您可能需要增加参数max_locks_per_transaction."
 
-#: storage/lmgr/lock.c:2918 storage/lmgr/lock.c:3031
+#: storage/lmgr/lock.c:3039 storage/lmgr/lock.c:3151
 #, c-format
 msgid ""
 "cannot PREPARE while holding both session-level and transaction-level locks "
 "on the same object"
 msgstr "在一个对象上同时拥有会话级和事务级锁时,无法执行PREPARE"
 
-#: storage/lmgr/lock.c:3123
-#, c-format
-msgid "Not enough memory for reassigning the prepared transaction's locks."
-msgstr "没有足够的内存用于为已准备好事务分配锁"
-
-#: storage/lmgr/predicate.c:668
+#: storage/lmgr/predicate.c:674
 #, c-format
 msgid "not enough elements in RWConflictPool to record a read/write conflict"
 msgstr "RWConflictPool(读写冲突池)没有足够的元素来记录读/写冲突"
 
-#: storage/lmgr/predicate.c:669 storage/lmgr/predicate.c:697
+#: storage/lmgr/predicate.c:675 storage/lmgr/predicate.c:703
 #, c-format
 msgid ""
 "You might need to run fewer transactions at a time or increase "
 "max_connections."
 msgstr "您可能需要每次执行更少的事务,要么增大max_connections值."
 
-#: storage/lmgr/predicate.c:696
+#: storage/lmgr/predicate.c:702
 #, c-format
 msgid ""
 "not enough elements in RWConflictPool to record a potential read/write "
 "conflict"
 msgstr "RWConflictPool(读写冲突池)没有足够的元素来记录可能的读/写冲突"
 
-#: storage/lmgr/predicate.c:901
+#: storage/lmgr/predicate.c:907
 #, c-format
 msgid "memory for serializable conflict tracking is nearly exhausted"
 msgstr "串行化冲突跟踪所需要的内存几乎耗尽"
 
-#: storage/lmgr/predicate.c:902
+#: storage/lmgr/predicate.c:908
 #, c-format
 msgid ""
 "There might be an idle transaction or a forgotten prepared transaction "
 "causing this."
 msgstr "可能是由于空闲事务或者一个忘了准备的事务导致此问题."
 
-#: storage/lmgr/predicate.c:1184 storage/lmgr/predicate.c:1256
+#: storage/lmgr/predicate.c:1190 storage/lmgr/predicate.c:1262
 #, c-format
+#| msgid ""
+#| "not enough shared memory for elements of data structure \"%s\" (%lu bytes "
+#| "requested)"
 msgid ""
-"not enough shared memory for elements of data structure \"%s\" (%lu bytes "
+"not enough shared memory for elements of data structure \"%s\" (%zu bytes "
 "requested)"
-msgstr "没有足够的共享内存供数据结构\"%s\"使用 (它需要%lu个字节)"
+msgstr "没有足够的共享内存供数据结构\"%s\"使用 (它需要%zu个字节)"
 
-#: storage/lmgr/predicate.c:1544
+#: storage/lmgr/predicate.c:1550
 #, c-format
 msgid "deferrable snapshot was unsafe; trying a new one"
 msgstr "可延缓的快照不安全;请尝试使用新的快照"
 
-#: storage/lmgr/predicate.c:1583
+#: storage/lmgr/predicate.c:1589
 #, c-format
 msgid "\"default_transaction_isolation\" is set to \"serializable\"."
 msgstr "\"default_transaction_isolation\"被设置为\"可串行化\"."
 
-#: storage/lmgr/predicate.c:1584
+#: storage/lmgr/predicate.c:1590
 #, c-format
 msgid ""
 "You can use \"SET default_transaction_isolation = 'repeatable read'\" to "
@@ -13578,62 +16084,62 @@ msgstr ""
 "您可以使用 \"SET default_transaction_isolation = 'repeatable read'\"来改变缺"
 "省值."
 
-#: storage/lmgr/predicate.c:1623
+#: storage/lmgr/predicate.c:1629
 #, c-format
 msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE"
 msgstr "快照导入事务不能是可延缓的只读事务"
 
-#: storage/lmgr/predicate.c:1693 utils/time/snapmgr.c:282
+#: storage/lmgr/predicate.c:1699 utils/time/snapmgr.c:398
 #, c-format
 msgid "could not import the requested snapshot"
 msgstr "无法导入请求的快照"
 
-#: storage/lmgr/predicate.c:1694 utils/time/snapmgr.c:283
+#: storage/lmgr/predicate.c:1700 utils/time/snapmgr.c:399
 #, c-format
 msgid "The source transaction %u is not running anymore."
 msgstr "源事务 %u 不再运行."
 
-#: storage/lmgr/predicate.c:2318 storage/lmgr/predicate.c:2333
-#: storage/lmgr/predicate.c:3729
+#: storage/lmgr/predicate.c:2324 storage/lmgr/predicate.c:2339
+#: storage/lmgr/predicate.c:3732
 #, c-format
 msgid "You might need to increase max_pred_locks_per_transaction."
 msgstr "您可能需要增大参数max_pred_locks_per_transaction的值."
 
-#: storage/lmgr/predicate.c:3883 storage/lmgr/predicate.c:3972
-#: storage/lmgr/predicate.c:3980 storage/lmgr/predicate.c:4019
-#: storage/lmgr/predicate.c:4258 storage/lmgr/predicate.c:4596
-#: storage/lmgr/predicate.c:4608 storage/lmgr/predicate.c:4650
-#: storage/lmgr/predicate.c:4688
+#: storage/lmgr/predicate.c:3886 storage/lmgr/predicate.c:3975
+#: storage/lmgr/predicate.c:3983 storage/lmgr/predicate.c:4022
+#: storage/lmgr/predicate.c:4261 storage/lmgr/predicate.c:4598
+#: storage/lmgr/predicate.c:4610 storage/lmgr/predicate.c:4652
+#: storage/lmgr/predicate.c:4690
 #, c-format
 msgid ""
 "could not serialize access due to read/write dependencies among transactions"
 msgstr "由于多个事务间的读/写依赖而无法串行访问"
 
-#: storage/lmgr/predicate.c:3885 storage/lmgr/predicate.c:3974
-#: storage/lmgr/predicate.c:3982 storage/lmgr/predicate.c:4021
-#: storage/lmgr/predicate.c:4260 storage/lmgr/predicate.c:4598
-#: storage/lmgr/predicate.c:4610 storage/lmgr/predicate.c:4652
-#: storage/lmgr/predicate.c:4690
+#: storage/lmgr/predicate.c:3888 storage/lmgr/predicate.c:3977
+#: storage/lmgr/predicate.c:3985 storage/lmgr/predicate.c:4024
+#: storage/lmgr/predicate.c:4263 storage/lmgr/predicate.c:4600
+#: storage/lmgr/predicate.c:4612 storage/lmgr/predicate.c:4654
+#: storage/lmgr/predicate.c:4692
 #, c-format
 msgid "The transaction might succeed if retried."
 msgstr "该事务如果重试,有可能成功."
 
-#: storage/lmgr/proc.c:1128
+#: storage/lmgr/proc.c:1172
 #, c-format
 msgid "Process %d waits for %s on %s."
 msgstr "进程%1$d等待在%3$s上的%2$s"
 
-#: storage/lmgr/proc.c:1138
+#: storage/lmgr/proc.c:1182
 #, c-format
 msgid "sending cancel to blocking autovacuum PID %d"
 msgstr "向阻塞的自动清理(autovacuum)进程%d发送取消(cancel)请求"
 
-#: storage/lmgr/proc.c:1150 utils/adt/misc.c:134
+#: storage/lmgr/proc.c:1194 utils/adt/misc.c:136
 #, c-format
 msgid "could not send signal to process %d: %m"
 msgstr "无法发送信号到进程 %d: %m"
 
-#: storage/lmgr/proc.c:1184
+#: storage/lmgr/proc.c:1293
 #, c-format
 msgid ""
 "process %d avoided deadlock for %s on %s by rearranging queue order after "
@@ -13641,190 +16147,190 @@ msgid ""
 msgstr ""
 "进程%1$d在%4$ld.%5$03d ms通过重新安排序列顺序来避免在%3$s上的%2$s的死锁"
 
-#: storage/lmgr/proc.c:1196
+#: storage/lmgr/proc.c:1308
 #, c-format
 msgid ""
 "process %d detected deadlock while waiting for %s on %s after %ld.%03d ms"
 msgstr "进程%1$d在%4$ld.%5$03d ms等待在%3$s上的%2$s同时监测到死锁"
 
-#: storage/lmgr/proc.c:1202
+#: storage/lmgr/proc.c:1317
 #, c-format
 msgid "process %d still waiting for %s on %s after %ld.%03d ms"
 msgstr "进程%1$d在%4$ld.%5$03d ms仍然等待在%3$s上的%2$s"
 
-#: storage/lmgr/proc.c:1206
+#: storage/lmgr/proc.c:1324
 #, c-format
 msgid "process %d acquired %s on %s after %ld.%03d ms"
 msgstr "进程%1$d在%4$ld.%5$03d ms后获取在%3$s上的%2$s"
 
-#: storage/lmgr/proc.c:1222
+#: storage/lmgr/proc.c:1340
 #, c-format
 msgid "process %d failed to acquire %s on %s after %ld.%03d ms"
 msgstr "进程%1$d在%4$ld.%5$03d ms后获取在%3$s上的%2$s失败"
 
-#: storage/page/bufpage.c:142 storage/page/bufpage.c:389
-#: storage/page/bufpage.c:622 storage/page/bufpage.c:752
+#: storage/page/bufpage.c:144
+#, c-format
+msgid "page verification failed, calculated checksum %u but expected %u"
+msgstr "页校验失败,计算出的校验和为%u,但期望值是%u"
+
+#: storage/page/bufpage.c:200 storage/page/bufpage.c:459
+#: storage/page/bufpage.c:691 storage/page/bufpage.c:823
 #, c-format
 msgid "corrupted page pointers: lower = %u, upper = %u, special = %u"
 msgstr "已损坏的页指针:低位=%u, 高位=%u, 特定=%u"
 
-#: storage/page/bufpage.c:432
+#: storage/page/bufpage.c:503
 #, c-format
 msgid "corrupted item pointer: %u"
 msgstr "已损坏的成员指针: %u"
 
-#: storage/page/bufpage.c:443 storage/page/bufpage.c:804
+#: storage/page/bufpage.c:514 storage/page/bufpage.c:874
 #, c-format
 msgid "corrupted item lengths: total %u, available space %u"
 msgstr "已损坏的成员长度: 总长度%u,可有效使用的空间%u"
 
-#: storage/page/bufpage.c:641 storage/page/bufpage.c:777
+#: storage/page/bufpage.c:710 storage/page/bufpage.c:847
 #, c-format
 msgid "corrupted item pointer: offset = %u, size = %u"
 msgstr "已损坏的成员指针: 偏移量 = %u, 大小 = %u"
 
-#: storage/smgr/md.c:419 storage/smgr/md.c:890
+#: storage/smgr/md.c:426 storage/smgr/md.c:897
 #, c-format
 msgid "could not truncate file \"%s\": %m"
 msgstr "无法截断文件 \"%s\": %m"
 
-#: storage/smgr/md.c:486
+#: storage/smgr/md.c:493
 #, c-format
 msgid "cannot extend file \"%s\" beyond %u blocks"
 msgstr "扩展文件\"%s\"的大小不能超过%u个数据块"
 
-#: storage/smgr/md.c:508 storage/smgr/md.c:669 storage/smgr/md.c:744
+#: storage/smgr/md.c:515 storage/smgr/md.c:676 storage/smgr/md.c:751
 #, c-format
 msgid "could not seek to block %u in file \"%s\": %m"
 msgstr "无法在文件\"%2$s\"中查找到数据块%1$u: %3$m"
 
-#: storage/smgr/md.c:516
+#: storage/smgr/md.c:523
 #, c-format
 msgid "could not extend file \"%s\": %m"
 msgstr "无法扩展文件 \"%s\": %m"
 
-#: storage/smgr/md.c:518 storage/smgr/md.c:525 storage/smgr/md.c:771
+#: storage/smgr/md.c:525 storage/smgr/md.c:532 storage/smgr/md.c:778
 #, c-format
 msgid "Check free disk space."
 msgstr "检查空闲磁盘控件."
 
-#: storage/smgr/md.c:522
+#: storage/smgr/md.c:529
 #, c-format
 msgid "could not extend file \"%s\": wrote only %d of %d bytes at block %u"
 msgstr "无法扩展文件\"%1$s\": 只能在块%4$u上写%3$d字节的%2$d"
 
-#: storage/smgr/md.c:687
+#: storage/smgr/md.c:694
 #, c-format
 msgid "could not read block %u in file \"%s\": %m"
 msgstr "无法在文件\"%2$s\"中读取块%1$u: %3$m"
 
-#: storage/smgr/md.c:703
+#: storage/smgr/md.c:710
 #, c-format
 msgid "could not read block %u in file \"%s\": read only %d of %d bytes"
 msgstr "无法读取文件\"%2$s\"的块%1$u:只读取了%4$d字节的%3$d"
 
-#: storage/smgr/md.c:762
+#: storage/smgr/md.c:769
 #, c-format
 msgid "could not write block %u in file \"%s\": %m"
 msgstr "无法在文件 \"%2$s\"中写入块%1$u: %3$m"
 
-#: storage/smgr/md.c:767
+#: storage/smgr/md.c:774
 #, c-format
 msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes"
 msgstr "无法对文件\"%2$s\"写操作数据块%1$u: 只写了%4$d字节的%3$d"
 
-#: storage/smgr/md.c:866
+#: storage/smgr/md.c:873
 #, c-format
 msgid "could not truncate file \"%s\" to %u blocks: it's only %u blocks now"
 msgstr "无法将文件\"%s\"截断到%u个数据块;它现在只有%u个数据块"
 
-#: storage/smgr/md.c:915
+#: storage/smgr/md.c:922
 #, c-format
 msgid "could not truncate file \"%s\" to %u blocks: %m"
 msgstr "无法将文件\"%s\"截断到%u个数据块: %m"
 
-#: storage/smgr/md.c:1195
+#: storage/smgr/md.c:1202
 #, c-format
 msgid "could not fsync file \"%s\" but retrying: %m"
 msgstr "无法对文件\"%s\"进行fsync操作但是正在重新尝试: %m"
 
-#: storage/smgr/md.c:1358
+#: storage/smgr/md.c:1365
 #, c-format
 msgid "could not forward fsync request because request queue is full"
 msgstr "请求队列已满,无法转发fsync请求"
 
-#: storage/smgr/md.c:1755
+#: storage/smgr/md.c:1760
 #, c-format
 msgid "could not open file \"%s\" (target block %u): %m"
 msgstr "无法打开文件\"%s\"(目标数据块%u): %m"
 
-#: storage/smgr/md.c:1777
-#, c-format
-msgid "could not seek to end of file \"%s\": %m"
-msgstr "无法查找到文件\"%s\"的末端: %m"
-
-#: tcop/fastpath.c:109 tcop/fastpath.c:498 tcop/fastpath.c:628
+#: tcop/fastpath.c:111 tcop/fastpath.c:502 tcop/fastpath.c:632
 #, c-format
 msgid "invalid argument size %d in function call message"
 msgstr "在函数调用信息中, 参数大小 %d 是无效的"
 
-#: tcop/fastpath.c:302 tcop/postgres.c:360 tcop/postgres.c:396
+#: tcop/fastpath.c:304 tcop/postgres.c:353 tcop/postgres.c:389
 #, c-format
 msgid "unexpected EOF on client connection"
 msgstr "在客户端联接上的意外 EOF"
 
-#: tcop/fastpath.c:316 tcop/postgres.c:945 tcop/postgres.c:1255
-#: tcop/postgres.c:1513 tcop/postgres.c:1916 tcop/postgres.c:2283
-#: tcop/postgres.c:2358
+#: tcop/fastpath.c:318 tcop/postgres.c:944 tcop/postgres.c:1254
+#: tcop/postgres.c:1512 tcop/postgres.c:1917 tcop/postgres.c:2284
+#: tcop/postgres.c:2359
 #, c-format
 msgid ""
 "current transaction is aborted, commands ignored until end of transaction "
 "block"
 msgstr "当前事务被终止, 事务块结束之前的查询被忽略"
 
-#: tcop/fastpath.c:344
+#: tcop/fastpath.c:346
 #, c-format
 msgid "fastpath function call: \"%s\" (OID %u)"
 msgstr "快捷路径函数调用: \"%s\" (OID %u)"
 
-#: tcop/fastpath.c:424 tcop/postgres.c:1115 tcop/postgres.c:1380
-#: tcop/postgres.c:1757 tcop/postgres.c:1974
+#: tcop/fastpath.c:428 tcop/postgres.c:1114 tcop/postgres.c:1379
+#: tcop/postgres.c:1758 tcop/postgres.c:1975
 #, c-format
 msgid "duration: %s ms"
 msgstr "执行时间: %s ms"
 
-#: tcop/fastpath.c:428
+#: tcop/fastpath.c:432
 #, c-format
 msgid "duration: %s ms  fastpath function call: \"%s\" (OID %u)"
 msgstr "持续时间: %s ms  快速路经的函数调用: \"%s\" (OID %u)"
 
-#: tcop/fastpath.c:466 tcop/fastpath.c:593
+#: tcop/fastpath.c:470 tcop/fastpath.c:597
 #, c-format
 msgid "function call message contains %d arguments but function requires %d"
 msgstr "函数调用信息包含 %d 个参数, 但函数需要 %d 个"
 
-#: tcop/fastpath.c:474
+#: tcop/fastpath.c:478
 #, c-format
 msgid "function call message contains %d argument formats but %d arguments"
 msgstr "函数调用信息为包含 %d 个参数的格式, 但给定了 %d 个参数"
 
-#: tcop/fastpath.c:561 tcop/fastpath.c:644
+#: tcop/fastpath.c:565 tcop/fastpath.c:648
 #, c-format
 msgid "incorrect binary data format in function argument %d"
 msgstr "函数参数 %d 为不正确的二进制数据格式"
 
-#: tcop/postgres.c:424 tcop/postgres.c:436 tcop/postgres.c:447
-#: tcop/postgres.c:459 tcop/postgres.c:4184
+#: tcop/postgres.c:417 tcop/postgres.c:429 tcop/postgres.c:440
+#: tcop/postgres.c:452 tcop/postgres.c:4254
 #, c-format
 msgid "invalid frontend message type %d"
 msgstr "无效前端信息类型 %d"
 
-#: tcop/postgres.c:886
+#: tcop/postgres.c:885
 #, c-format
 msgid "statement: %s"
 msgstr "语句: %s"
 
-#: tcop/postgres.c:1120
+#: tcop/postgres.c:1119
 #, c-format
 msgid "duration: %s ms  statement: %s"
 msgstr "执行时间: %s ms 语句: %s"
@@ -13842,123 +16348,123 @@ msgstr "执行时间: %s ms 语句: %s"
 # common.c:170
 # copy.c:530
 # copy.c:575
-#: tcop/postgres.c:1170
+#: tcop/postgres.c:1169
 #, c-format
 msgid "parse %s: %s"
 msgstr "解析 %s: %s"
 
-#: tcop/postgres.c:1228
+#: tcop/postgres.c:1227
 #, c-format
 msgid "cannot insert multiple commands into a prepared statement"
 msgstr "无法插入多条命令到一个准备好的语句中"
 
-#: tcop/postgres.c:1385
+#: tcop/postgres.c:1384
 #, c-format
 msgid "duration: %s ms  parse %s: %s"
 msgstr "执行时间: %s ms  解析 %s: %s"
 
-#: tcop/postgres.c:1430
+#: tcop/postgres.c:1429
 #, c-format
 msgid "bind %s to %s"
 msgstr "将%s绑定到%s"
 
-#: tcop/postgres.c:1449 tcop/postgres.c:2264
+#: tcop/postgres.c:1448 tcop/postgres.c:2265
 #, c-format
 msgid "unnamed prepared statement does not exist"
 msgstr "未命名的准备语句不存在"
 
-#: tcop/postgres.c:1491
+#: tcop/postgres.c:1490
 #, c-format
 msgid "bind message has %d parameter formats but %d parameters"
 msgstr "绑定信息有%d个参数格式,但是实际上有%d个参数"
 
-#: tcop/postgres.c:1497
+#: tcop/postgres.c:1496
 #, c-format
 msgid ""
 "bind message supplies %d parameters, but prepared statement \"%s\" requires "
 "%d"
 msgstr "绑定消息提供了%d个参数,但是已准备好语句\"%s\" 要求%d个参数"
 
-#: tcop/postgres.c:1664
+#: tcop/postgres.c:1665
 #, c-format
 msgid "incorrect binary data format in bind parameter %d"
 msgstr "在绑定参数%d中出现不正确的二进制数据"
 
-#: tcop/postgres.c:1762
+#: tcop/postgres.c:1763
 #, c-format
 msgid "duration: %s ms  bind %s%s%s: %s"
 msgstr "执行时间: %s ms 绑定%s%s%s: %s"
 
-#: tcop/postgres.c:1810 tcop/postgres.c:2344
+#: tcop/postgres.c:1811 tcop/postgres.c:2345
 #, c-format
 msgid "portal \"%s\" does not exist"
 msgstr "入口 \"%s\" 不存在"
 
-#: tcop/postgres.c:1895
+#: tcop/postgres.c:1896
 #, c-format
 msgid "%s %s%s%s: %s"
 msgstr "%s %s%s%s: %s"
 
-#: tcop/postgres.c:1897 tcop/postgres.c:1982
+#: tcop/postgres.c:1898 tcop/postgres.c:1983
 msgid "execute fetch from"
 msgstr "执行FETCH操作"
 
-#: tcop/postgres.c:1898 tcop/postgres.c:1983
+#: tcop/postgres.c:1899 tcop/postgres.c:1984
 msgid "execute"
 msgstr "执行"
 
-#: tcop/postgres.c:1979
+#: tcop/postgres.c:1980
 #, c-format
 msgid "duration: %s ms  %s %s%s%s: %s"
 msgstr "执行时间: %s ms %s%s%s%s: %s"
 
-#: tcop/postgres.c:2105
+#: tcop/postgres.c:2106
 #, c-format
 msgid "prepare: %s"
 msgstr "准备: %s"
 
-#: tcop/postgres.c:2168
+#: tcop/postgres.c:2169
 #, c-format
 msgid "parameters: %s"
 msgstr "参数: %s"
 
-#: tcop/postgres.c:2187
+#: tcop/postgres.c:2188
 #, c-format
 msgid "abort reason: recovery conflict"
 msgstr "中断原因:与恢复操作相冲突"
 
-#: tcop/postgres.c:2203
+#: tcop/postgres.c:2204
 #, c-format
 msgid "User was holding shared buffer pin for too long."
 msgstr "用户所持有共享缓存锁的时间太长了."
 
-#: tcop/postgres.c:2206
+#: tcop/postgres.c:2207
 #, c-format
 msgid "User was holding a relation lock for too long."
 msgstr "用户对一个关系正在持有的锁的时间太长了."
 
-#: tcop/postgres.c:2209
+#: tcop/postgres.c:2210
 #, c-format
 msgid "User was or might have been using tablespace that must be dropped."
 msgstr "用户正在使用一个必须被删除的表空间"
 
-#: tcop/postgres.c:2212
+#: tcop/postgres.c:2213
 #, c-format
 msgid "User query might have needed to see row versions that must be removed."
 msgstr "用户查询可能需要看到而必须被删除的行版本号"
 
 # large_obj.c:36
-#: tcop/postgres.c:2218
+#: tcop/postgres.c:2219
 #, c-format
 msgid "User was connected to a database that must be dropped."
 msgstr "用户连接到必须被删除的数据库"
 
-#: tcop/postgres.c:2540
+#: tcop/postgres.c:2548
 #, c-format
 msgid "terminating connection because of crash of another server process"
 msgstr "中断联接, 因为其它服务器进程崩溃"
 
-#: tcop/postgres.c:2541
+#: tcop/postgres.c:2549
 #, c-format
 msgid ""
 "The postmaster has commanded this server process to roll back the current "
@@ -13968,72 +16474,78 @@ msgstr ""
 "Postmaster 命令此服务器进程回滚当前事物并退出, 因为其它服务器进程不正常的退出"
 "可能毁坏了共享内存."
 
-#: tcop/postgres.c:2545 tcop/postgres.c:2914
+#: tcop/postgres.c:2553 tcop/postgres.c:2947
 #, c-format
 msgid ""
 "In a moment you should be able to reconnect to the database and repeat your "
 "command."
 msgstr "一会儿你将可以重联接数据库并且重复你的命令."
 
-#: tcop/postgres.c:2658
+#: tcop/postgres.c:2666
 #, c-format
 msgid "floating-point exception"
 msgstr "浮点异常"
 
-#: tcop/postgres.c:2659
+#: tcop/postgres.c:2667
 #, c-format
 msgid ""
 "An invalid floating-point operation was signaled. This probably means an out-"
 "of-range result or an invalid operation, such as division by zero."
 msgstr "无效的浮点数操作.这表示结果越界或者进行了无效的操作,例如除零."
 
-#: tcop/postgres.c:2833
+#: tcop/postgres.c:2851
 #, c-format
 msgid "terminating autovacuum process due to administrator command"
 msgstr "由于管理员命令中断autovacuum进程"
 
-#: tcop/postgres.c:2839 tcop/postgres.c:2849 tcop/postgres.c:2912
+#: tcop/postgres.c:2857 tcop/postgres.c:2867 tcop/postgres.c:2945
 #, c-format
 msgid "terminating connection due to conflict with recovery"
 msgstr "由于与恢复操作相冲突而中断连接"
 
-#: tcop/postgres.c:2855
+#: tcop/postgres.c:2873
 #, c-format
 msgid "terminating connection due to administrator command"
 msgstr "由于管理员命令中断联接"
 
 # common.c:298
-#: tcop/postgres.c:2867
+#: tcop/postgres.c:2885
 #, c-format
 msgid "connection to client lost"
 msgstr "丢失了到客户端的连接"
 
-#: tcop/postgres.c:2882
+#: tcop/postgres.c:2900
 #, c-format
 msgid "canceling authentication due to timeout"
 msgstr "由于超时,正在取消认证鉴权命令"
 
-#: tcop/postgres.c:2891
+#: tcop/postgres.c:2915
+#, c-format
+#| msgid "canceling statement due to statement timeout"
+msgid "canceling statement due to lock timeout"
+msgstr "由于锁超时,取消语句操作"
+
+#: tcop/postgres.c:2924
 #, c-format
 msgid "canceling statement due to statement timeout"
 msgstr "由于语句执行超时,正在取消查询命令"
 
-#: tcop/postgres.c:2900
+#: tcop/postgres.c:2933
 #, c-format
 msgid "canceling autovacuum task"
 msgstr "正在取消自动清理任务"
 
-#: tcop/postgres.c:2935
+#: tcop/postgres.c:2968
 #, c-format
 msgid "canceling statement due to user request"
 msgstr "由于用户请求而正在取消查询"
 
-#: tcop/postgres.c:3063 tcop/postgres.c:3085
+#: tcop/postgres.c:3096 tcop/postgres.c:3118
 #, c-format
 msgid "stack depth limit exceeded"
 msgstr "堆栈深度超过限制"
 
-#: tcop/postgres.c:3064 tcop/postgres.c:3086
+#: tcop/postgres.c:3097 tcop/postgres.c:3119
 #, c-format
 msgid ""
 "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), "
@@ -14042,94 +16554,105 @@ msgstr ""
 "在确定了平台的堆栈深度限制是足够大后,增加配置参数 \"max_stack_depth\"的值(当"
 "前值为%dkB)."
 
-#: tcop/postgres.c:3102
+#: tcop/postgres.c:3135
 #, c-format
 msgid "\"max_stack_depth\" must not exceed %ldkB."
 msgstr "\"max_stack_depth\"不能超过%ldkB."
 
-#: tcop/postgres.c:3104
+#: tcop/postgres.c:3137
 #, c-format
 msgid ""
 "Increase the platform's stack depth limit via \"ulimit -s\" or local "
 "equivalent."
 msgstr "通过命令\"ulimit -s\"或本地相同的命令来增加平台的堆栈深度限制."
 
-#: tcop/postgres.c:3467
+#: tcop/postgres.c:3501
 #, c-format
 msgid "invalid command-line argument for server process: %s"
 msgstr "服务器进程:%s的无效命令行参数"
 
-#: tcop/postgres.c:3468 tcop/postgres.c:3474
+#: tcop/postgres.c:3502 tcop/postgres.c:3508
 #, c-format
 msgid "Try \"%s --help\" for more information."
 msgstr "请用 \"%s --help\" 获取更多的信息."
 
-#: tcop/postgres.c:3472
+#: tcop/postgres.c:3506
 #, c-format
 msgid "%s: invalid command-line argument: %s"
 msgstr "%s: 无效的命令行参数:%s"
 
-#: tcop/postgres.c:3559
+#: tcop/postgres.c:3585
 #, c-format
 msgid "%s: no database nor user name specified"
 msgstr "%s: 没有指定数据库, 也没有指定用户名"
 
-#: tcop/postgres.c:4094
+#: tcop/postgres.c:4162
 #, c-format
 msgid "invalid CLOSE message subtype %d"
 msgstr "无效的 CLOSE 信息子类型 %d"
 
-#: tcop/postgres.c:4127
+#: tcop/postgres.c:4197
 #, c-format
 msgid "invalid DESCRIBE message subtype %d"
 msgstr "无效的 DESCRIBE 信息子类型 %d"
 
-#: tcop/postgres.c:4361
+#: tcop/postgres.c:4275
+#, c-format
+#| msgid "cast function must not be an aggregate function"
+msgid "fastpath function calls not supported in a replication connection"
+msgstr "复制连接不能使用fastpath函数调用"
+
+#: tcop/postgres.c:4279
+#, c-format
+msgid "extended query protocol not supported in a replication connection"
+msgstr "扩展的查询协议在复制连接里不支持"
+
+#: tcop/postgres.c:4449
 #, c-format
 msgid ""
 "disconnection: session time: %d:%02d:%02d.%03d user=%s database=%s host=%s%s"
 "%s"
 msgstr "断开连接: 会话时间: %d:%02d:%02d.%03d user=%s database=%s host=%s%s%s"
 
-#: tcop/pquery.c:661
+#: tcop/pquery.c:662
 #, c-format
 msgid "bind message has %d result formats but query has %d columns"
 msgstr "绑定信息有%d个结果格式,但是在查询中有%d列."
 
-#: tcop/pquery.c:970
+#: tcop/pquery.c:972
 #, c-format
 msgid "cursor can only scan forward"
 msgstr "游标能够只向前扫描"
 
-#: tcop/pquery.c:971
+#: tcop/pquery.c:973
 #, c-format
 msgid "Declare it with SCROLL option to enable backward scan."
 msgstr "带 SCROLL 选项声明允许向后扫描"
 
 #. translator: %s is name of a SQL command, eg CREATE
-#: tcop/utility.c:254
+#: tcop/utility.c:227
 #, c-format
 msgid "cannot execute %s in a read-only transaction"
 msgstr "不能在一个只读模式的事务中执行%s"
 
 #. translator: %s is name of a SQL command, eg CREATE
-#: tcop/utility.c:273
+#: tcop/utility.c:246
 #, c-format
 msgid "cannot execute %s during recovery"
 msgstr "无法在恢复期间执行%s"
 
 #. translator: %s is name of a SQL command, eg PREPARE
-#: tcop/utility.c:291
+#: tcop/utility.c:264
 #, c-format
 msgid "cannot execute %s within security-restricted operation"
 msgstr "无法在安全限制操作中执行%s"
 
-#: tcop/utility.c:1119
+#: tcop/utility.c:728
 #, c-format
 msgid "must be superuser to do CHECKPOINT"
 msgstr "只有超级用户可以做 CHECKPOINT"
 
-#: tsearch/dict_ispell.c:51 tsearch/dict_thesaurus.c:614
+#: tsearch/dict_ispell.c:51 tsearch/dict_thesaurus.c:623
 #, c-format
 msgid "multiple DictFile parameters"
 msgstr "多个DictFile参数"
@@ -14149,7 +16672,7 @@ msgstr "未识别的Ispell参数: \"%s\""
 msgid "missing AffFile parameter"
 msgstr "丢失AffFile参数"
 
-#: tsearch/dict_ispell.c:101 tsearch/dict_thesaurus.c:638
+#: tsearch/dict_ispell.c:101 tsearch/dict_thesaurus.c:647
 #, c-format
 msgid "missing DictFile parameter"
 msgstr "丢失DictFile参数"
@@ -14179,69 +16702,75 @@ msgstr "丢失同义词参数"
 msgid "could not open synonym file \"%s\": %m"
 msgstr "无法打开synonym文件 \"%s\": %m"
 
-#: tsearch/dict_thesaurus.c:179
+#: tsearch/dict_thesaurus.c:178
 #, c-format
 msgid "could not open thesaurus file \"%s\": %m"
 msgstr "无法打开同义词词典文件 \"%s\": %m"
 
-#: tsearch/dict_thesaurus.c:212
+#: tsearch/dict_thesaurus.c:211
 #, c-format
 msgid "unexpected delimiter"
 msgstr "意外出现的分隔符"
 
-#: tsearch/dict_thesaurus.c:262 tsearch/dict_thesaurus.c:278
+#: tsearch/dict_thesaurus.c:261 tsearch/dict_thesaurus.c:277
 #, c-format
 msgid "unexpected end of line or lexeme"
 msgstr "意外出现的行或词汇末尾"
 
-#: tsearch/dict_thesaurus.c:287
+#: tsearch/dict_thesaurus.c:286
 #, c-format
 msgid "unexpected end of line"
 msgstr "意外的输入末尾"
 
-#: tsearch/dict_thesaurus.c:411
+#: tsearch/dict_thesaurus.c:296
+#, c-format
+#| msgid "too many levels in nested structure/union definition"
+msgid "too many lexemes in thesaurus entry"
+msgstr "辞典项里有大多的语义"
+
+#: tsearch/dict_thesaurus.c:420
 #, c-format
 msgid ""
 "thesaurus sample word \"%s\" isn't recognized by subdictionary (rule %d)"
 msgstr "(规则 %2$d)子字典没有识别同义词字典样例词\"%1$s\" "
 
-#: tsearch/dict_thesaurus.c:417
+#: tsearch/dict_thesaurus.c:426
 #, c-format
 msgid "thesaurus sample word \"%s\" is a stop word (rule %d)"
 msgstr "(规则 %2$d)同义词字典样例词\"%1$s\"是一个终止词. "
 
-#: tsearch/dict_thesaurus.c:420
+#: tsearch/dict_thesaurus.c:429
 #, c-format
 msgid "Use \"?\" to represent a stop word within a sample phrase."
 msgstr "在示例短语中使用\"?\" 来代表一个结束词."
 
-#: tsearch/dict_thesaurus.c:566
+#: tsearch/dict_thesaurus.c:575
 #, c-format
 msgid "thesaurus substitute word \"%s\" is a stop word (rule %d)"
 msgstr "(规则 %2$d)同义词字典替代词\"%1$s\"是一个终止词. "
 
-#: tsearch/dict_thesaurus.c:573
+#: tsearch/dict_thesaurus.c:582
 #, c-format
 msgid ""
 "thesaurus substitute word \"%s\" isn't recognized by subdictionary (rule %d)"
 msgstr "(规则 %2$d)子字典没有识别同义词字典替代词\"%1$s\""
 
-#: tsearch/dict_thesaurus.c:585
+#: tsearch/dict_thesaurus.c:594
 #, c-format
 msgid "thesaurus substitute phrase is empty (rule %d)"
 msgstr "(规则 %d)同义词字典替代短语是空的"
 
-#: tsearch/dict_thesaurus.c:623
+#: tsearch/dict_thesaurus.c:632
 #, c-format
 msgid "multiple Dictionary parameters"
 msgstr "多个字典参数"
 
-#: tsearch/dict_thesaurus.c:630
+#: tsearch/dict_thesaurus.c:639
 #, c-format
 msgid "unrecognized Thesaurus parameter: \"%s\""
 msgstr "未识别的同义词字典参数 \"%s\""
 
-#: tsearch/dict_thesaurus.c:642
+#: tsearch/dict_thesaurus.c:651
 #, c-format
 msgid "missing Dictionary parameter"
 msgstr "丢失字典参数"
@@ -14251,38 +16780,32 @@ msgstr "丢失字典参数"
 msgid "could not open dictionary file \"%s\": %m"
 msgstr "无法打开字典文件 \"%s\": %m"
 
-#: tsearch/spell.c:439 utils/adt/regexp.c:194
+#: tsearch/spell.c:439 utils/adt/regexp.c:204
 #, c-format
 msgid "invalid regular expression: %s"
 msgstr "无效的正则表达式: %s"
 
-#: tsearch/spell.c:518 tsearch/spell.c:535 tsearch/spell.c:552
-#: tsearch/spell.c:569 tsearch/spell.c:591 gram.y:12896 gram.y:12913
-#, c-format
-msgid "syntax error"
-msgstr "语法错误"
-
-#: tsearch/spell.c:596 tsearch/spell.c:842 tsearch/spell.c:862
+#: tsearch/spell.c:596
 #, c-format
 msgid "multibyte flag character is not allowed"
 msgstr "不允许使用多字节标志字符"
 
-#: tsearch/spell.c:629 tsearch/spell.c:687 tsearch/spell.c:780
+#: tsearch/spell.c:632 tsearch/spell.c:690 tsearch/spell.c:787
 #, c-format
 msgid "could not open affix file \"%s\": %m"
 msgstr "无法打开affix文件 \"%s\": %m"
 
-#: tsearch/spell.c:675
+#: tsearch/spell.c:678
 #, c-format
 msgid "Ispell dictionary supports only default flag value"
 msgstr "Ispell 字典只支持缺省标记值"
 
-#: tsearch/spell.c:873
+#: tsearch/spell.c:901
 #, c-format
-msgid "wrong affix file format for flag"
-msgstr "对于标志的词缀文件格式错误"
+msgid "affix file contains both old-style and new-style commands"
+msgstr "附加文件同时包含老式和新式命令"
 
-#: tsearch/to_tsany.c:163 utils/adt/tsvector.c:269 utils/adt/tsvector_op.c:530
+#: tsearch/to_tsany.c:163 utils/adt/tsvector.c:270 utils/adt/tsvector_op.c:530
 #, c-format
 msgid "string is too long for tsvector (%d bytes, max %d bytes)"
 msgstr "字符串对于tsvector来说太长了(当前 %d字节, 最大允许值是%d字节)"
@@ -14292,7 +16815,7 @@ msgstr "字符串对于tsvector来说太长了(当前 %d字节, 最大允许值
 msgid "line %d of configuration file \"%s\": \"%s\""
 msgstr "配置文件\"%2$s\"的第%1$d行: \"%3$s\""
 
-#: tsearch/ts_locale.c:302
+#: tsearch/ts_locale.c:299
 #, c-format
 msgid "conversion from wchar_t to server encoding failed: %m"
 msgstr "从wchar_t转换到服务器编码失败: %m"
@@ -14315,7 +16838,7 @@ msgstr "超出%d个字符长度的词被忽略."
 msgid "invalid text search configuration file name \"%s\""
 msgstr "无效的文本搜索配置文件名\"%s\""
 
-#: tsearch/ts_utils.c:89
+#: tsearch/ts_utils.c:83
 #, c-format
 msgid "could not open stop-word file \"%s\": %m"
 msgstr "无法打开stop-word 文件 \"%s\": %m"
@@ -14325,138 +16848,138 @@ msgstr "无法打开stop-word 文件 \"%s\": %m"
 msgid "text search parser does not support headline creation"
 msgstr "文本搜索解析器不支持标题创建"
 
-#: tsearch/wparser_def.c:2551
+#: tsearch/wparser_def.c:2555
 #, c-format
 msgid "unrecognized headline parameter: \"%s\""
 msgstr "未识别的标题参数: \"%s\""
 
-#: tsearch/wparser_def.c:2560
+#: tsearch/wparser_def.c:2564
 #, c-format
 msgid "MinWords should be less than MaxWords"
 msgstr "MinWords的值应该小于MaxWords的值"
 
-#: tsearch/wparser_def.c:2564
+#: tsearch/wparser_def.c:2568
 #, c-format
 msgid "MinWords should be positive"
 msgstr "MinWord应该是正数."
 
-#: tsearch/wparser_def.c:2568
+#: tsearch/wparser_def.c:2572
 #, c-format
 msgid "ShortWord should be >= 0"
 msgstr "ShortWord应该大于等于0"
 
-#: tsearch/wparser_def.c:2572
+#: tsearch/wparser_def.c:2576
 #, c-format
 msgid "MaxFragments should be >= 0"
 msgstr "MaxFragments应该大于等于0"
 
-#: utils/adt/acl.c:168 utils/adt/name.c:91
+#: utils/adt/acl.c:170 utils/adt/name.c:91
 #, c-format
 msgid "identifier too long"
 msgstr "标识符太长"
 
-#: utils/adt/acl.c:169 utils/adt/name.c:92
+#: utils/adt/acl.c:171 utils/adt/name.c:92
 #, c-format
 msgid "Identifier must be less than %d characters."
 msgstr "标识符必须小于 %d 个字符."
 
-#: utils/adt/acl.c:255
+#: utils/adt/acl.c:257
 #, c-format
 msgid "unrecognized key word: \"%s\""
 msgstr "未知的键值: \"%s\""
 
-#: utils/adt/acl.c:256
+#: utils/adt/acl.c:258
 #, c-format
 msgid "ACL key word must be \"group\" or \"user\"."
 msgstr "ACL 键值必须为 \"group\" 或者 \"user\"."
 
-#: utils/adt/acl.c:261
+#: utils/adt/acl.c:263
 #, c-format
 msgid "missing name"
 msgstr "缺少名字"
 
-#: utils/adt/acl.c:262
+#: utils/adt/acl.c:264
 #, c-format
 msgid "A name must follow the \"group\" or \"user\" key word."
 msgstr "一个名字必须为 \"group\" 或者 \"user\" 键值."
 
-#: utils/adt/acl.c:268
+#: utils/adt/acl.c:270
 #, c-format
 msgid "missing \"=\" sign"
 msgstr "缺少 \"=\" 符号"
 
-#: utils/adt/acl.c:321
+#: utils/adt/acl.c:323
 #, c-format
 msgid "invalid mode character: must be one of \"%s\""
 msgstr "无效的模式字符: 必须是 \"%s\" 其中的一个"
 
-#: utils/adt/acl.c:343
+#: utils/adt/acl.c:345
 #, c-format
 msgid "a name must follow the \"/\" sign"
 msgstr "名字必须再 \"/\" 符号后"
 
-#: utils/adt/acl.c:351
+#: utils/adt/acl.c:353
 #, c-format
 msgid "defaulting grantor to user ID %u"
 msgstr "缺省将授权者身份给予用户ID %u"
 
-#: utils/adt/acl.c:542
+#: utils/adt/acl.c:544
 #, c-format
 msgid "ACL array contains wrong data type"
 msgstr "ACL数组包含错误数据类型"
 
-#: utils/adt/acl.c:546
+#: utils/adt/acl.c:548
 #, c-format
 msgid "ACL arrays must be one-dimensional"
 msgstr "ACL数组必须是一维数组"
 
-#: utils/adt/acl.c:550
+#: utils/adt/acl.c:552
 #, c-format
 msgid "ACL arrays must not contain null values"
 msgstr "ACL数组不能包含空值"
 
-#: utils/adt/acl.c:574
+#: utils/adt/acl.c:576
 #, c-format
 msgid "extra garbage at the end of the ACL specification"
 msgstr "在ACL定义的结束部分的多余的无用部分"
 
-#: utils/adt/acl.c:1194
+#: utils/adt/acl.c:1196
 #, c-format
 msgid "grant options cannot be granted back to your own grantor"
 msgstr "不能将grant选项授予您自己的授予者 "
 
-#: utils/adt/acl.c:1255
+#: utils/adt/acl.c:1257
 #, c-format
 msgid "dependent privileges exist"
 msgstr "存在依赖权限"
 
-#: utils/adt/acl.c:1256
+#: utils/adt/acl.c:1258
 #, c-format
 msgid "Use CASCADE to revoke them too."
 msgstr "使用CASCADE回收这些权限"
 
-#: utils/adt/acl.c:1535
+#: utils/adt/acl.c:1537
 #, c-format
 msgid "aclinsert is no longer supported"
 msgstr "不再支持 aclinsert"
 
-#: utils/adt/acl.c:1545
+#: utils/adt/acl.c:1547
 #, c-format
 msgid "aclremove is no longer supported"
 msgstr "不再支持 aclremove"
 
-#: utils/adt/acl.c:1631 utils/adt/acl.c:1685
+#: utils/adt/acl.c:1633 utils/adt/acl.c:1687
 #, c-format
 msgid "unrecognized privilege type: \"%s\""
 msgstr "未知的权限类型: \"%s\""
 
-#: utils/adt/acl.c:3425 utils/adt/regproc.c:118 utils/adt/regproc.c:139
-#: utils/adt/regproc.c:289
+#: utils/adt/acl.c:3427 utils/adt/regproc.c:122 utils/adt/regproc.c:143
+#: utils/adt/regproc.c:318
 #, c-format
 msgid "function \"%s\" does not exist"
 msgstr "函数 \"%s\" 不存在"
 
-#: utils/adt/acl.c:4874
+#: utils/adt/acl.c:4881
 #, c-format
 msgid "must be member of role \"%s\""
 msgstr "必须是角色\"%s\"的成员"
@@ -14472,15 +16995,15 @@ msgid "neither input type is an array"
 msgstr "没有输入类型是数组"
 
 #: utils/adt/array_userfuncs.c:103 utils/adt/array_userfuncs.c:113
-#: utils/adt/arrayfuncs.c:1275 utils/adt/float.c:1162 utils/adt/float.c:1221
-#: utils/adt/float.c:2772 utils/adt/float.c:2788 utils/adt/int.c:623
+#: utils/adt/arrayfuncs.c:1281 utils/adt/float.c:1161 utils/adt/float.c:1220
+#: utils/adt/float.c:2771 utils/adt/float.c:2787 utils/adt/int.c:623
 #: utils/adt/int.c:652 utils/adt/int.c:673 utils/adt/int.c:704
 #: utils/adt/int.c:737 utils/adt/int.c:759 utils/adt/int.c:907
 #: utils/adt/int.c:928 utils/adt/int.c:955 utils/adt/int.c:995
 #: utils/adt/int.c:1016 utils/adt/int.c:1043 utils/adt/int.c:1076
-#: utils/adt/int.c:1159 utils/adt/int8.c:1247 utils/adt/numeric.c:2300
-#: utils/adt/numeric.c:2309 utils/adt/varbit.c:1145 utils/adt/varbit.c:1537
-#: utils/adt/varlena.c:1004 utils/adt/varlena.c:2027
+#: utils/adt/int.c:1159 utils/adt/int8.c:1298 utils/adt/numeric.c:2289
+#: utils/adt/numeric.c:2298 utils/adt/varbit.c:1173 utils/adt/varbit.c:1565
+#: utils/adt/varlena.c:1013 utils/adt/varlena.c:2036
 #, c-format
 msgid "integer out of range"
 msgstr "整数超出范围"
@@ -14520,175 +17043,183 @@ msgstr "带有不同成员维度的数组对于串联操作不兼容"
 msgid "Arrays with differing dimensions are not compatible for concatenation."
 msgstr "带有不同维度的数组对于串联操作不兼容."
 
-#: utils/adt/array_userfuncs.c:426 utils/adt/arrayfuncs.c:1237
-#: utils/adt/arrayfuncs.c:2910 utils/adt/arrayfuncs.c:4935
+#: utils/adt/array_userfuncs.c:426 utils/adt/arrayfuncs.c:1243
+#: utils/adt/arrayfuncs.c:2929 utils/adt/arrayfuncs.c:4954
 #, c-format
 msgid "invalid number of dimensions: %d"
 msgstr "无效的大小值: %d"
 
-#: utils/adt/array_userfuncs.c:487
+#: utils/adt/array_userfuncs.c:487 utils/adt/json.c:1675 utils/adt/json.c:1770
+#: utils/adt/json.c:1799
 #, c-format
 msgid "could not determine input data type"
 msgstr "无法确定输入数据类型"
 
-#: utils/adt/arrayfuncs.c:234 utils/adt/arrayfuncs.c:246
+#: utils/adt/arrayfuncs.c:240 utils/adt/arrayfuncs.c:252
 #, c-format
 msgid "missing dimension value"
 msgstr "缺少大小值"
 
-#: utils/adt/arrayfuncs.c:256
+#: utils/adt/arrayfuncs.c:262
 #, c-format
 msgid "missing \"]\" in array dimensions"
 msgstr "数组声明缺少 ']'"
 
-#: utils/adt/arrayfuncs.c:264 utils/adt/arrayfuncs.c:2435
-#: utils/adt/arrayfuncs.c:2463 utils/adt/arrayfuncs.c:2478
+#: utils/adt/arrayfuncs.c:270 utils/adt/arrayfuncs.c:2454
+#: utils/adt/arrayfuncs.c:2482 utils/adt/arrayfuncs.c:2497
 #, c-format
 msgid "upper bound cannot be less than lower bound"
 msgstr "上限不能小于底限"
 
-#: utils/adt/arrayfuncs.c:276 utils/adt/arrayfuncs.c:302
+#: utils/adt/arrayfuncs.c:282 utils/adt/arrayfuncs.c:308
 #, c-format
 msgid "array value must start with \"{\" or dimension information"
 msgstr "数组值必须以 \"{\" 开始或者维数信息"
 
-#: utils/adt/arrayfuncs.c:290
+#: utils/adt/arrayfuncs.c:296
 #, c-format
 msgid "missing assignment operator"
 msgstr "缺少指定的操作符"
 
-#: utils/adt/arrayfuncs.c:307 utils/adt/arrayfuncs.c:313
+#: utils/adt/arrayfuncs.c:313 utils/adt/arrayfuncs.c:319
 #, c-format
 msgid "array dimensions incompatible with array literal"
 msgstr "数组维数与数组值不兼容"
 
-#: utils/adt/arrayfuncs.c:443 utils/adt/arrayfuncs.c:458
-#: utils/adt/arrayfuncs.c:467 utils/adt/arrayfuncs.c:481
-#: utils/adt/arrayfuncs.c:501 utils/adt/arrayfuncs.c:529
-#: utils/adt/arrayfuncs.c:534 utils/adt/arrayfuncs.c:574
-#: utils/adt/arrayfuncs.c:595 utils/adt/arrayfuncs.c:614
-#: utils/adt/arrayfuncs.c:724 utils/adt/arrayfuncs.c:733
-#: utils/adt/arrayfuncs.c:763 utils/adt/arrayfuncs.c:778
-#: utils/adt/arrayfuncs.c:831
+#: utils/adt/arrayfuncs.c:449 utils/adt/arrayfuncs.c:464
+#: utils/adt/arrayfuncs.c:473 utils/adt/arrayfuncs.c:487
+#: utils/adt/arrayfuncs.c:507 utils/adt/arrayfuncs.c:535
+#: utils/adt/arrayfuncs.c:540 utils/adt/arrayfuncs.c:580
+#: utils/adt/arrayfuncs.c:601 utils/adt/arrayfuncs.c:620
+#: utils/adt/arrayfuncs.c:730 utils/adt/arrayfuncs.c:739
+#: utils/adt/arrayfuncs.c:769 utils/adt/arrayfuncs.c:784
+#: utils/adt/arrayfuncs.c:837
 #, c-format
 msgid "malformed array literal: \"%s\""
 msgstr "有缺陷的数组常量:\"%s\""
 
-#: utils/adt/arrayfuncs.c:870 utils/adt/arrayfuncs.c:1472
-#: utils/adt/arrayfuncs.c:2794 utils/adt/arrayfuncs.c:2942
-#: utils/adt/arrayfuncs.c:5035 utils/adt/arrayutils.c:93
-#: utils/adt/arrayutils.c:102 utils/adt/arrayutils.c:109
+#: utils/adt/arrayfuncs.c:876 utils/adt/arrayfuncs.c:1478
+#: utils/adt/arrayfuncs.c:2813 utils/adt/arrayfuncs.c:2961
+#: utils/adt/arrayfuncs.c:5054 utils/adt/arrayfuncs.c:5386
+#: utils/adt/arrayutils.c:93 utils/adt/arrayutils.c:102
+#: utils/adt/arrayutils.c:109
 #, c-format
 msgid "array size exceeds the maximum allowed (%d)"
 msgstr "数组的大小超过了最大允许值(%d)"
 
-#: utils/adt/arrayfuncs.c:1248
+#: utils/adt/arrayfuncs.c:1254
 #, c-format
 msgid "invalid array flags"
 msgstr "无效的数组标记"
 
-#: utils/adt/arrayfuncs.c:1256
+#: utils/adt/arrayfuncs.c:1262
 #, c-format
 msgid "wrong element type"
 msgstr "错误的元素类型"
 
-#: utils/adt/arrayfuncs.c:1306 utils/adt/rangetypes.c:325
-#: utils/cache/lsyscache.c:2528
+#: utils/adt/arrayfuncs.c:1312 utils/adt/rangetypes.c:325
+#: utils/cache/lsyscache.c:2549
 #, c-format
 msgid "no binary input function available for type %s"
 msgstr "没有类型 %s 的有效二进制输入函数"
 
-#: utils/adt/arrayfuncs.c:1446
+#: utils/adt/arrayfuncs.c:1452
 #, c-format
 msgid "improper binary format in array element %d"
 msgstr "数组元素 %d 为不正确的二进制格式"
 
-#: utils/adt/arrayfuncs.c:1528 utils/adt/rangetypes.c:330
-#: utils/cache/lsyscache.c:2561
+#: utils/adt/arrayfuncs.c:1534 utils/adt/rangetypes.c:330
+#: utils/cache/lsyscache.c:2582
 #, c-format
 msgid "no binary output function available for type %s"
 msgstr "没有类型 %s 的有效二进制输出函数"
 
-#: utils/adt/arrayfuncs.c:1902
+#: utils/adt/arrayfuncs.c:1921
 #, c-format
 msgid "slices of fixed-length arrays not implemented"
 msgstr "没有实现固定长度数组的部分"
 
-#: utils/adt/arrayfuncs.c:2075 utils/adt/arrayfuncs.c:2097
-#: utils/adt/arrayfuncs.c:2131 utils/adt/arrayfuncs.c:2417
-#: utils/adt/arrayfuncs.c:4915 utils/adt/arrayfuncs.c:4947
-#: utils/adt/arrayfuncs.c:4964
+#: utils/adt/arrayfuncs.c:2094 utils/adt/arrayfuncs.c:2116
+#: utils/adt/arrayfuncs.c:2150 utils/adt/arrayfuncs.c:2436
+#: utils/adt/arrayfuncs.c:4934 utils/adt/arrayfuncs.c:4966
+#: utils/adt/arrayfuncs.c:4983 utils/adt/json.c:2171 utils/adt/json.c:2246
 #, c-format
 msgid "wrong number of array subscripts"
 msgstr "错误的数组下标"
 
-#: utils/adt/arrayfuncs.c:2080 utils/adt/arrayfuncs.c:2173
-#: utils/adt/arrayfuncs.c:2468
+#: utils/adt/arrayfuncs.c:2099 utils/adt/arrayfuncs.c:2192
+#: utils/adt/arrayfuncs.c:2487
 #, c-format
 msgid "array subscript out of range"
 msgstr "数组下标超出范围"
 
-#: utils/adt/arrayfuncs.c:2085
+#: utils/adt/arrayfuncs.c:2104
 #, c-format
 msgid "cannot assign null value to an element of a fixed-length array"
 msgstr "无法将空值分配给固定长度数组的成员"
 
-#: utils/adt/arrayfuncs.c:2371
+#: utils/adt/arrayfuncs.c:2390
 #, c-format
 msgid "updates on slices of fixed-length arrays not implemented"
 msgstr "没有实现在固定长度数组部分上的更新操作"
 
-#: utils/adt/arrayfuncs.c:2407 utils/adt/arrayfuncs.c:2494
+#: utils/adt/arrayfuncs.c:2426 utils/adt/arrayfuncs.c:2513
 #, c-format
 msgid "source array too small"
 msgstr "源数组太小"
 
-#: utils/adt/arrayfuncs.c:3049
+#: utils/adt/arrayfuncs.c:3068
 #, c-format
 msgid "null array element not allowed in this context"
 msgstr "不支持空数组元素"
 
-#: utils/adt/arrayfuncs.c:3152 utils/adt/arrayfuncs.c:3360
-#: utils/adt/arrayfuncs.c:3677
+#: utils/adt/arrayfuncs.c:3171 utils/adt/arrayfuncs.c:3379
+#: utils/adt/arrayfuncs.c:3696
 #, c-format
 msgid "cannot compare arrays of different element types"
 msgstr "无法比较不同元素类型的数组"
 
-#: utils/adt/arrayfuncs.c:3562 utils/adt/rangetypes.c:1201
+#: utils/adt/arrayfuncs.c:3581 utils/adt/rangetypes.c:1212
 #, c-format
 msgid "could not identify a hash function for type %s"
 msgstr "无法为类型 %s 确认一个哈希函数"
 
-#: utils/adt/arrayfuncs.c:4813 utils/adt/arrayfuncs.c:4853
+#: utils/adt/arrayfuncs.c:4832 utils/adt/arrayfuncs.c:4872
 #, c-format
 msgid "dimension array or low bound array cannot be null"
 msgstr "维度数组或低界数组不能为空(null)"
 
-#: utils/adt/arrayfuncs.c:4916 utils/adt/arrayfuncs.c:4948
+#: utils/adt/arrayfuncs.c:4935 utils/adt/arrayfuncs.c:4967
 #, c-format
 msgid "Dimension array must be one dimensional."
 msgstr "维度数组必须是一维"
 
-#: utils/adt/arrayfuncs.c:4921 utils/adt/arrayfuncs.c:4953
+#: utils/adt/arrayfuncs.c:4940 utils/adt/arrayfuncs.c:4972
 #, c-format
 msgid "wrong range of array subscripts"
 msgstr "无效的数组下标范围"
 
-#: utils/adt/arrayfuncs.c:4922 utils/adt/arrayfuncs.c:4954
+#: utils/adt/arrayfuncs.c:4941 utils/adt/arrayfuncs.c:4973
 #, c-format
 msgid "Lower bound of dimension array must be one."
 msgstr "维度数组的低界必须是1"
 
-#: utils/adt/arrayfuncs.c:4927 utils/adt/arrayfuncs.c:4959
+#: utils/adt/arrayfuncs.c:4946 utils/adt/arrayfuncs.c:4978
 #, c-format
 msgid "dimension values cannot be null"
 msgstr "维度值不能为空"
 
-#: utils/adt/arrayfuncs.c:4965
+#: utils/adt/arrayfuncs.c:4984
 #, c-format
 msgid "Low bound array has different size than dimensions array."
 msgstr "低界数组的大小与多维数组不同"
 
+#: utils/adt/arrayfuncs.c:5251
+#, c-format
+#| msgid "multidimensional arrays are not supported"
+msgid "removing elements from multidimensional arrays is not supported"
+msgstr "不支持多维数组中删除元素的操作"
+
 #: utils/adt/arrayutils.c:209
 #, c-format
 msgid "typmod array must be type cstring[]"
@@ -14719,15 +17250,15 @@ msgstr "无效的布尔类型输入语法: \"%s\""
 msgid "invalid input syntax for type money: \"%s\""
 msgstr "无效的货币类型输入语法: \"%s\""
 
-#: utils/adt/cash.c:609 utils/adt/cash.c:659 utils/adt/cash.c:710
-#: utils/adt/cash.c:759 utils/adt/cash.c:811 utils/adt/cash.c:861
-#: utils/adt/float.c:789 utils/adt/float.c:853 utils/adt/float.c:2531
-#: utils/adt/float.c:2594 utils/adt/geo_ops.c:4130 utils/adt/int.c:719
+#: utils/adt/cash.c:607 utils/adt/cash.c:657 utils/adt/cash.c:708
+#: utils/adt/cash.c:757 utils/adt/cash.c:809 utils/adt/cash.c:859
+#: utils/adt/float.c:788 utils/adt/float.c:852 utils/adt/float.c:2530
+#: utils/adt/float.c:2593 utils/adt/geo_ops.c:4115 utils/adt/int.c:719
 #: utils/adt/int.c:861 utils/adt/int.c:969 utils/adt/int.c:1058
 #: utils/adt/int.c:1097 utils/adt/int.c:1125 utils/adt/int8.c:597
-#: utils/adt/int8.c:657 utils/adt/int8.c:846 utils/adt/int8.c:954
-#: utils/adt/int8.c:1043 utils/adt/int8.c:1151 utils/adt/numeric.c:4554
-#: utils/adt/numeric.c:4837 utils/adt/timestamp.c:2976
+#: utils/adt/int8.c:657 utils/adt/int8.c:897 utils/adt/int8.c:1005
+#: utils/adt/int8.c:1094 utils/adt/int8.c:1202 utils/adt/numeric.c:4946
+#: utils/adt/numeric.c:5229 utils/adt/timestamp.c:3357
 #, c-format
 msgid "division by zero"
 msgstr "除以零"
@@ -14737,7 +17268,7 @@ msgstr "除以零"
 msgid "\"char\" out of range"
 msgstr "\"char\" 超出范围"
 
-#: utils/adt/date.c:68 utils/adt/timestamp.c:93 utils/adt/varbit.c:52
+#: utils/adt/date.c:68 utils/adt/timestamp.c:102 utils/adt/varbit.c:52
 #: utils/adt/varchar.c:44
 #, c-format
 msgid "invalid type modifier"
@@ -14753,130 +17284,166 @@ msgstr "TIME(%d)%s 精确度不能为负数"
 msgid "TIME(%d)%s precision reduced to maximum allowed, %d"
 msgstr "TIME(%d)%s精度减少到最大允许值,%d"
 
-#: utils/adt/date.c:144 utils/adt/datetime.c:1188 utils/adt/datetime.c:1930
+#: utils/adt/date.c:142 utils/adt/datetime.c:1208 utils/adt/datetime.c:2079
 #, c-format
 msgid "date/time value \"current\" is no longer supported"
 msgstr "日期/时间值 \"current\" 不再被支持了"
 
-#: utils/adt/date.c:169 utils/adt/formatting.c:3328
+#: utils/adt/date.c:167 utils/adt/formatting.c:3411
 #, c-format
 msgid "date out of range: \"%s\""
 msgstr "时间戳超出范围: \"%s\""
 
-#: utils/adt/date.c:219 utils/adt/xml.c:2025
+#: utils/adt/date.c:217 utils/adt/json.c:1412 utils/adt/xml.c:2024
 #, c-format
 msgid "date out of range"
 msgstr "日期超出范围"
 
-#: utils/adt/date.c:383
+#: utils/adt/date.c:259 utils/adt/timestamp.c:600
+#, c-format
+#| msgid "date/time field value out of range: \"%s\""
+msgid "date field value out of range: %d-%02d-%02d"
+msgstr "日期字段值超出范围: %d-%02d-%02d"
+
+#: utils/adt/date.c:265 utils/adt/timestamp.c:606
+#, c-format
+#| msgid "date out of range: \"%s\""
+msgid "date out of range: %d-%02d-%02d"
+msgstr "日期超出范围: %d-%02d-%02d"
+
+#: utils/adt/date.c:418
 #, c-format
 msgid "cannot subtract infinite dates"
 msgstr "无法减去无限大的日期"
 
-#: utils/adt/date.c:440 utils/adt/date.c:477
+#: utils/adt/date.c:475 utils/adt/date.c:512
 #, c-format
 msgid "date out of range for timestamp"
 msgstr "日期超出了时间戳的范围"
 
-#: utils/adt/date.c:936 utils/adt/date.c:982 utils/adt/date.c:1549
-#: utils/adt/date.c:1585 utils/adt/date.c:2457 utils/adt/formatting.c:3204
-#: utils/adt/formatting.c:3236 utils/adt/formatting.c:3304
-#: utils/adt/nabstime.c:481 utils/adt/nabstime.c:524 utils/adt/nabstime.c:554
-#: utils/adt/nabstime.c:597 utils/adt/timestamp.c:226
-#: utils/adt/timestamp.c:269 utils/adt/timestamp.c:502
-#: utils/adt/timestamp.c:541 utils/adt/timestamp.c:2631
-#: utils/adt/timestamp.c:2652 utils/adt/timestamp.c:2665
-#: utils/adt/timestamp.c:2674 utils/adt/timestamp.c:2731
-#: utils/adt/timestamp.c:2754 utils/adt/timestamp.c:2767
-#: utils/adt/timestamp.c:2778 utils/adt/timestamp.c:3214
-#: utils/adt/timestamp.c:3343 utils/adt/timestamp.c:3384
-#: utils/adt/timestamp.c:3472 utils/adt/timestamp.c:3518
-#: utils/adt/timestamp.c:3629 utils/adt/timestamp.c:3942
-#: utils/adt/timestamp.c:4081 utils/adt/timestamp.c:4091
-#: utils/adt/timestamp.c:4153 utils/adt/timestamp.c:4293
-#: utils/adt/timestamp.c:4303 utils/adt/timestamp.c:4518
-#: utils/adt/timestamp.c:4597 utils/adt/timestamp.c:4604
-#: utils/adt/timestamp.c:4630 utils/adt/timestamp.c:4634
-#: utils/adt/timestamp.c:4691 utils/adt/xml.c:2047 utils/adt/xml.c:2054
-#: utils/adt/xml.c:2074 utils/adt/xml.c:2081
+#: utils/adt/date.c:971 utils/adt/date.c:1017 utils/adt/date.c:1617
+#: utils/adt/date.c:1653 utils/adt/date.c:2525 utils/adt/formatting.c:3287
+#: utils/adt/formatting.c:3319 utils/adt/formatting.c:3387
+#: utils/adt/json.c:1437 utils/adt/json.c:1444 utils/adt/json.c:1464
+#: utils/adt/json.c:1471 utils/adt/nabstime.c:455 utils/adt/nabstime.c:498
+#: utils/adt/nabstime.c:528 utils/adt/nabstime.c:571 utils/adt/timestamp.c:232
+#: utils/adt/timestamp.c:275 utils/adt/timestamp.c:724
+#: utils/adt/timestamp.c:753 utils/adt/timestamp.c:792
+#: utils/adt/timestamp.c:2946 utils/adt/timestamp.c:2967
+#: utils/adt/timestamp.c:2980 utils/adt/timestamp.c:2989
+#: utils/adt/timestamp.c:3046 utils/adt/timestamp.c:3069
+#: utils/adt/timestamp.c:3082 utils/adt/timestamp.c:3093
+#: utils/adt/timestamp.c:3618 utils/adt/timestamp.c:3747
+#: utils/adt/timestamp.c:3788 utils/adt/timestamp.c:3876
+#: utils/adt/timestamp.c:3922 utils/adt/timestamp.c:4033
+#: utils/adt/timestamp.c:4357 utils/adt/timestamp.c:4496
+#: utils/adt/timestamp.c:4506 utils/adt/timestamp.c:4568
+#: utils/adt/timestamp.c:4708 utils/adt/timestamp.c:4718
+#: utils/adt/timestamp.c:4932 utils/adt/timestamp.c:4946
+#: utils/adt/timestamp.c:5025 utils/adt/timestamp.c:5032
+#: utils/adt/timestamp.c:5058 utils/adt/timestamp.c:5062
+#: utils/adt/timestamp.c:5131 utils/adt/xml.c:2046 utils/adt/xml.c:2053
+#: utils/adt/xml.c:2073 utils/adt/xml.c:2080
 #, c-format
 msgid "timestamp out of range"
 msgstr "时间戳超出范围"
 
-#: utils/adt/date.c:1008
+#: utils/adt/date.c:1043
 #, c-format
 msgid "cannot convert reserved abstime value to date"
 msgstr "不能转换保留 abstime 值为 date"
 
-#: utils/adt/date.c:1162 utils/adt/date.c:1169 utils/adt/date.c:1947
-#: utils/adt/date.c:1954
+#: utils/adt/date.c:1197 utils/adt/date.c:1204 utils/adt/date.c:2015
+#: utils/adt/date.c:2022
 #, c-format
 msgid "time out of range"
 msgstr "时间超出范围"
 
-#: utils/adt/date.c:1825 utils/adt/date.c:1842
+#: utils/adt/date.c:1265 utils/adt/timestamp.c:625
+#, c-format
+#| msgid "date/time field value out of range: \"%s\""
+msgid "time field value out of range: %d:%02d:%02g"
+msgstr "日期/时间值超出范围:  %d:%02d:%02g"
+
+#: utils/adt/date.c:1893 utils/adt/date.c:1910
 #, c-format
 msgid "\"time\" units \"%s\" not recognized"
 msgstr "\"time\" 单位 \"%s\" 不被认可"
 
-#: utils/adt/date.c:1963
+#: utils/adt/date.c:2031
 #, c-format
 msgid "time zone displacement out of range"
 msgstr "时间区域置换超出范围"
 
-#: utils/adt/date.c:2587 utils/adt/date.c:2604
+#: utils/adt/date.c:2655 utils/adt/date.c:2672
 #, c-format
 msgid "\"time with time zone\" units \"%s\" not recognized"
 msgstr "\"time with time zone\" 单位 \"%s\" 不被认可"
 
-#: utils/adt/date.c:2662 utils/adt/datetime.c:930 utils/adt/datetime.c:1659
-#: utils/adt/timestamp.c:4530 utils/adt/timestamp.c:4702
+#: utils/adt/date.c:2745 utils/adt/datetime.c:925 utils/adt/datetime.c:1805
+#: utils/adt/datetime.c:4566 utils/adt/timestamp.c:539
+#: utils/adt/timestamp.c:566 utils/adt/timestamp.c:4958
+#: utils/adt/timestamp.c:5142
 #, c-format
 msgid "time zone \"%s\" not recognized"
 msgstr "时区 \"%s\" 不被认可"
 
-#: utils/adt/date.c:2702
+#: utils/adt/date.c:2785 utils/adt/timestamp.c:4983 utils/adt/timestamp.c:5168
+#, c-format
+#| msgid "interval time zone \"%s\" must not specify month"
+msgid "interval time zone \"%s\" must not include months or days"
+msgstr "间隔时区\"%s\"不能包含月或天"
+
+#: utils/adt/datetime.c:1680
 #, c-format
-msgid "\"interval\" time zone \"%s\" not valid"
-msgstr "\"interval\" 时间区域 \"%s\" 无效"
+#| msgid "time zone abbreviation \"%s\" is multiply defined"
+msgid "time zone abbreviation \"%s\" is not used in time zone \"%s\""
+msgstr "时区缩写\"%s\"不能用于时区\"%s\""
 
-#: utils/adt/datetime.c:3533 utils/adt/datetime.c:3540
+#: utils/adt/datetime.c:3766 utils/adt/datetime.c:3773
 #, c-format
 msgid "date/time field value out of range: \"%s\""
 msgstr "日期/时间值超出范围: \"%s\""
 
-#: utils/adt/datetime.c:3542
+#: utils/adt/datetime.c:3775
 #, c-format
 msgid "Perhaps you need a different \"datestyle\" setting."
 msgstr "也许你需要不同的 \"datesytle\" 设置."
 
-#: utils/adt/datetime.c:3547
+#: utils/adt/datetime.c:3780
 #, c-format
 msgid "interval field value out of range: \"%s\""
 msgstr "间隔字段超出范围: \"%s\""
 
-#: utils/adt/datetime.c:3553
+#: utils/adt/datetime.c:3786
 #, c-format
 msgid "time zone displacement out of range: \"%s\""
 msgstr "时间区域置换超出范围: \"%s\""
 
 #. translator: first %s is inet or cidr
-#: utils/adt/datetime.c:3560 utils/adt/network.c:107
+#: utils/adt/datetime.c:3793 utils/adt/network.c:58
 #, c-format
 msgid "invalid input syntax for type %s: \"%s\""
 msgstr "无效的类型 %s 输入语法: \"%s\""
 
+#: utils/adt/datetime.c:4568
+#, c-format
+msgid ""
+"This time zone name appears in the configuration file for time zone "
+"abbreviation \"%s\"."
+msgstr "缩写时区 \"%s\"对应的时区名出现在配置文件中."
+
 #: utils/adt/datum.c:80 utils/adt/datum.c:92
 #, c-format
 msgid "invalid Datum pointer"
 msgstr "无效的 Datum 指针"
 
-#: utils/adt/dbsize.c:106
+#: utils/adt/dbsize.c:108
 #, c-format
 msgid "could not open tablespace directory \"%s\": %m"
 msgstr "无法打开表空间目录 \"%s\": %m"
 
-#: utils/adt/domains.c:79
+#: utils/adt/domains.c:83
 #, c-format
 msgid "type %s is not a domain"
 msgstr "类型%s不是一个域"
@@ -14911,30 +17478,30 @@ msgstr "无效符号"
 msgid "invalid end sequence"
 msgstr "无效的结束顺序"
 
-#: utils/adt/encode.c:441 utils/adt/encode.c:506 utils/adt/varlena.c:246
-#: utils/adt/varlena.c:287
+#: utils/adt/encode.c:441 utils/adt/encode.c:506 utils/adt/varlena.c:255
+#: utils/adt/varlena.c:296
 #, c-format
 msgid "invalid input syntax for type bytea"
 msgstr "无效的 bytea 类型输入语法"
 
-#: utils/adt/enum.c:47 utils/adt/enum.c:57 utils/adt/enum.c:112
-#: utils/adt/enum.c:122
+#: utils/adt/enum.c:48 utils/adt/enum.c:58 utils/adt/enum.c:113
+#: utils/adt/enum.c:123
 #, c-format
 msgid "invalid input value for enum %s: \"%s\""
 msgstr "对于枚举%s的输入值无效: \"%s\""
 
-#: utils/adt/enum.c:84 utils/adt/enum.c:147 utils/adt/enum.c:197
+#: utils/adt/enum.c:85 utils/adt/enum.c:148 utils/adt/enum.c:198
 #, c-format
 msgid "invalid internal value for enum: %u"
 msgstr "对于枚举的无效内部值: %u"
 
-#: utils/adt/enum.c:356 utils/adt/enum.c:385 utils/adt/enum.c:425
-#: utils/adt/enum.c:445
+#: utils/adt/enum.c:357 utils/adt/enum.c:386 utils/adt/enum.c:426
+#: utils/adt/enum.c:446
 #, c-format
 msgid "could not determine actual enum type"
 msgstr "无法确定实际的枚举类型"
 
-#: utils/adt/enum.c:364 utils/adt/enum.c:393
+#: utils/adt/enum.c:365 utils/adt/enum.c:394
 #, c-format
 msgid "enum %s contains no values"
 msgstr "枚举 \"%s\" 没有值"
@@ -14949,458 +17516,461 @@ msgstr "值超出范围: 上溢"
 msgid "value out of range: underflow"
 msgstr "值超出范围: 下溢"
 
-#: utils/adt/float.c:207 utils/adt/float.c:260 utils/adt/float.c:311
+#: utils/adt/float.c:218 utils/adt/float.c:292 utils/adt/float.c:316
 #, c-format
 msgid "invalid input syntax for type real: \"%s\""
 msgstr "无效的实数类型输入语法: \"%s\""
 
-#: utils/adt/float.c:254
+#: utils/adt/float.c:286
 #, c-format
 msgid "\"%s\" is out of range for type real"
 msgstr "\"%s\" 超出实数类型的范围"
 
-#: utils/adt/float.c:412 utils/adt/float.c:465 utils/adt/float.c:516
-#: utils/adt/numeric.c:4016 utils/adt/numeric.c:4042
+#: utils/adt/float.c:417 utils/adt/float.c:491 utils/adt/float.c:515
+#: utils/adt/numeric.c:4408 utils/adt/numeric.c:4434
 #, c-format
 msgid "invalid input syntax for type double precision: \"%s\""
 msgstr "无效的双精度类型输入语法: \"%s\""
 
-#: utils/adt/float.c:459
+#: utils/adt/float.c:485
 #, c-format
 msgid "\"%s\" is out of range for type double precision"
 msgstr "\"%s\" 超出双精度类型的范围"
 
-#: utils/adt/float.c:1180 utils/adt/float.c:1238 utils/adt/int.c:349
+#: utils/adt/float.c:1179 utils/adt/float.c:1237 utils/adt/int.c:349
 #: utils/adt/int.c:775 utils/adt/int.c:804 utils/adt/int.c:825
 #: utils/adt/int.c:845 utils/adt/int.c:879 utils/adt/int.c:1174
-#: utils/adt/int8.c:1272 utils/adt/numeric.c:2401 utils/adt/numeric.c:2412
+#: utils/adt/int8.c:1323 utils/adt/numeric.c:2386 utils/adt/numeric.c:2395
 #, c-format
 msgid "smallint out of range"
 msgstr "smallint 超出范围"
 
-#: utils/adt/float.c:1364 utils/adt/numeric.c:5230
+#: utils/adt/float.c:1363 utils/adt/numeric.c:5622
 #, c-format
 msgid "cannot take square root of a negative number"
 msgstr "无法为负数做平方根"
 
-#: utils/adt/float.c:1406 utils/adt/numeric.c:2213
+#: utils/adt/float.c:1405 utils/adt/numeric.c:2206
 #, c-format
 msgid "zero raised to a negative power is undefined"
 msgstr "被提升到负乘方的最低点没有定义."
 
-#: utils/adt/float.c:1410 utils/adt/numeric.c:2219
+#: utils/adt/float.c:1409 utils/adt/numeric.c:2212
 #, c-format
 msgid "a negative number raised to a non-integer power yields a complex result"
 msgstr "被升为非整数的平方的负数产生了一个复杂结果."
 
-#: utils/adt/float.c:1476 utils/adt/float.c:1506 utils/adt/numeric.c:5448
+#: utils/adt/float.c:1475 utils/adt/float.c:1505 utils/adt/numeric.c:5840
 #, c-format
 msgid "cannot take logarithm of zero"
 msgstr "无法取零的对数"
 
-#: utils/adt/float.c:1480 utils/adt/float.c:1510 utils/adt/numeric.c:5452
+#: utils/adt/float.c:1479 utils/adt/float.c:1509 utils/adt/numeric.c:5844
 #, c-format
 msgid "cannot take logarithm of a negative number"
 msgstr "无法取负数的对数"
 
-#: utils/adt/float.c:1537 utils/adt/float.c:1558 utils/adt/float.c:1579
-#: utils/adt/float.c:1601 utils/adt/float.c:1622 utils/adt/float.c:1643
-#: utils/adt/float.c:1665 utils/adt/float.c:1686
+#: utils/adt/float.c:1536 utils/adt/float.c:1557 utils/adt/float.c:1578
+#: utils/adt/float.c:1600 utils/adt/float.c:1621 utils/adt/float.c:1642
+#: utils/adt/float.c:1664 utils/adt/float.c:1685
 #, c-format
 msgid "input is out of range"
 msgstr "输入超出范围"
 
-#: utils/adt/float.c:2748 utils/adt/numeric.c:1218
+#: utils/adt/float.c:2747 utils/adt/numeric.c:1259
 #, c-format
 msgid "count must be greater than zero"
 msgstr "总数必须大于零"
 
-#: utils/adt/float.c:2753 utils/adt/numeric.c:1225
+#: utils/adt/float.c:2752 utils/adt/numeric.c:1266
 #, c-format
 msgid "operand, lower bound, and upper bound cannot be NaN"
 msgstr "操作数,下限和上限不能是NaN"
 
-#: utils/adt/float.c:2759
+#: utils/adt/float.c:2758
 #, c-format
 msgid "lower and upper bounds must be finite"
 msgstr "地位和高位边界必须是有限的."
 
-#: utils/adt/float.c:2797 utils/adt/numeric.c:1238
+#: utils/adt/float.c:2796 utils/adt/numeric.c:1279
 #, c-format
 msgid "lower bound cannot equal upper bound"
 msgstr "下限不能等于上限"
 
-#: utils/adt/formatting.c:492
+#: utils/adt/formatting.c:485
 #, c-format
 msgid "invalid format specification for an interval value"
 msgstr "间隔值的格式定义无效"
 
-#: utils/adt/formatting.c:493
+#: utils/adt/formatting.c:486
 #, c-format
 msgid "Intervals are not tied to specific calendar dates."
 msgstr "间隔没有与特定的日历的日期相联系"
 
-#: utils/adt/formatting.c:1061
+#: utils/adt/formatting.c:1055
 #, c-format
 msgid "\"EEEE\" must be the last pattern used"
 msgstr "\"EEEE\"必须是所使用的最后一个模式"
 
-#: utils/adt/formatting.c:1069
+#: utils/adt/formatting.c:1063
 #, c-format
 msgid "\"9\" must be ahead of \"PR\""
 msgstr "\"9\" 必须在 \"PR\" 之前"
 
-#: utils/adt/formatting.c:1085
+#: utils/adt/formatting.c:1079
 #, c-format
 msgid "\"0\" must be ahead of \"PR\""
 msgstr "\"0\" 必须在 \"PR\" 之前"
 
-#: utils/adt/formatting.c:1112
+#: utils/adt/formatting.c:1106
 #, c-format
 msgid "multiple decimal points"
 msgstr "多个小数点"
 
-#: utils/adt/formatting.c:1116 utils/adt/formatting.c:1199
+#: utils/adt/formatting.c:1110 utils/adt/formatting.c:1193
 #, c-format
 msgid "cannot use \"V\" and decimal point together"
 msgstr "不能 \"V\" 和小数点一起使用"
 
-#: utils/adt/formatting.c:1128
+#: utils/adt/formatting.c:1122
 #, c-format
 msgid "cannot use \"S\" twice"
 msgstr "无法两次使用 \"S\" "
 
-#: utils/adt/formatting.c:1132
+#: utils/adt/formatting.c:1126
 #, c-format
 msgid "cannot use \"S\" and \"PL\"/\"MI\"/\"SG\"/\"PR\" together"
 msgstr "\"S\" 不可以和 \"PL\"/\"MI\"/\"SG\"/\"PR\" 一起使用"
 
-#: utils/adt/formatting.c:1152
+#: utils/adt/formatting.c:1146
 #, c-format
 msgid "cannot use \"S\" and \"MI\" together"
 msgstr "\"S\" 不可以和 \"MI\" 一起使用"
 
-#: utils/adt/formatting.c:1162
+#: utils/adt/formatting.c:1156
 #, c-format
 msgid "cannot use \"S\" and \"PL\" together"
 msgstr "\"S\" 不可以和 \"PL\" 一起使用"
 
-#: utils/adt/formatting.c:1172
+#: utils/adt/formatting.c:1166
 #, c-format
 msgid "cannot use \"S\" and \"SG\" together"
 msgstr "\"S\" 不可以和 \"SG\" 一起使用"
 
-#: utils/adt/formatting.c:1181
+#: utils/adt/formatting.c:1175
 #, c-format
 msgid "cannot use \"PR\" and \"S\"/\"PL\"/\"MI\"/\"SG\" together"
 msgstr "\"PR\" 不可以和 \"S\"/\"PL\"/\"MI\"/\"SG\" 一起使用"
 
-#: utils/adt/formatting.c:1207
+#: utils/adt/formatting.c:1201
 #, c-format
 msgid "cannot use \"EEEE\" twice"
 msgstr "无法两次使用 \"EEEE\""
 
-#: utils/adt/formatting.c:1213
+#: utils/adt/formatting.c:1207
 #, c-format
 msgid "\"EEEE\" is incompatible with other formats"
 msgstr "\"EEEE\"与其它格式不兼容"
 
-#: utils/adt/formatting.c:1214
+#: utils/adt/formatting.c:1208
 #, c-format
 msgid ""
 "\"EEEE\" may only be used together with digit and decimal point patterns."
 msgstr "\"EEEE\"只能与数字和小数模式一同使用"
 
-#: utils/adt/formatting.c:1414
+#: utils/adt/formatting.c:1408
 #, c-format
 msgid "\"%s\" is not a number"
 msgstr "\"%s\" 不是一个数字"
 
-#: utils/adt/formatting.c:1521 utils/adt/formatting.c:1573
+#: utils/adt/formatting.c:1509 utils/adt/formatting.c:1561
 #, c-format
 msgid "could not determine which collation to use for lower() function"
 msgstr "无法确定函数lower()使用哪个排序规则"
 
-#: utils/adt/formatting.c:1646 utils/adt/formatting.c:1698
+#: utils/adt/formatting.c:1629 utils/adt/formatting.c:1681
 #, c-format
 msgid "could not determine which collation to use for upper() function"
 msgstr "无法确定函数upper()使用哪个排序规则"
 
-#: utils/adt/formatting.c:1783 utils/adt/formatting.c:1847
+#: utils/adt/formatting.c:1750 utils/adt/formatting.c:1814
 #, c-format
 msgid "could not determine which collation to use for initcap() function"
 msgstr "无法确定函数initcap()使用哪个排序规则"
 
 # fe-connect.c:2558
-#: utils/adt/formatting.c:2056
+#: utils/adt/formatting.c:2118
 #, c-format
 msgid "invalid combination of date conventions"
 msgstr "无效的日期约定格式组合"
 
-#: utils/adt/formatting.c:2057
+#: utils/adt/formatting.c:2119
 #, c-format
 msgid ""
 "Do not mix Gregorian and ISO week date conventions in a formatting template."
 msgstr "在格式模板中不要混用Gregorian和ISO周日期转换. "
 
-#: utils/adt/formatting.c:2074
+#: utils/adt/formatting.c:2136
 #, c-format
 msgid "conflicting values for \"%s\" field in formatting string"
 msgstr "在格式化字符串中对于\"%s\"字段的值冲突"
 
-#: utils/adt/formatting.c:2076
+#: utils/adt/formatting.c:2138
 #, c-format
 msgid "This value contradicts a previous setting for the same field type."
 msgstr "这个值与先前设定的同一字段类型相抵触"
 
-#: utils/adt/formatting.c:2137
+#: utils/adt/formatting.c:2199
 #, c-format
 msgid "source string too short for \"%s\" formatting field"
 msgstr "对于\"%s\" 格式化字段的源字符串太短"
 
-#: utils/adt/formatting.c:2139
+#: utils/adt/formatting.c:2201
 #, c-format
 msgid "Field requires %d characters, but only %d remain."
 msgstr "字段要求有%d个字符,但是这里只有%d个"
 
-#: utils/adt/formatting.c:2142 utils/adt/formatting.c:2156
+#: utils/adt/formatting.c:2204 utils/adt/formatting.c:2218
 #, c-format
 msgid ""
 "If your source string is not fixed-width, try using the \"FM\" modifier."
 msgstr "如果源字符串不是固定长度,请尝试使用\"FM\"修改器."
 
-#: utils/adt/formatting.c:2152 utils/adt/formatting.c:2165
-#: utils/adt/formatting.c:2295
+#: utils/adt/formatting.c:2214 utils/adt/formatting.c:2227
+#: utils/adt/formatting.c:2357
 #, c-format
 msgid "invalid value \"%s\" for \"%s\""
 msgstr "\"%s\"的值\"%s\"无效"
 
-#: utils/adt/formatting.c:2154
+#: utils/adt/formatting.c:2216
 #, c-format
 msgid "Field requires %d characters, but only %d could be parsed."
 msgstr "字段要求%d个字符, 但是只能解析%d个字符."
 
-#: utils/adt/formatting.c:2167
+#: utils/adt/formatting.c:2229
 #, c-format
 msgid "Value must be an integer."
 msgstr "值必须是一个整数"
 
-#: utils/adt/formatting.c:2172
+#: utils/adt/formatting.c:2234
 #, c-format
 msgid "value for \"%s\" in source string is out of range"
 msgstr "在源字符串中\"%s\"的值超出了范围"
 
-#: utils/adt/formatting.c:2174
+#: utils/adt/formatting.c:2236
 #, c-format
 msgid "Value must be in the range %d to %d."
 msgstr "值必须是在范围%d到%d之间."
 
-#: utils/adt/formatting.c:2297
+#: utils/adt/formatting.c:2359
 #, c-format
 msgid "The given value did not match any of the allowed values for this field."
 msgstr "给定的值与这个字段所允许的值不匹配."
 
-#: utils/adt/formatting.c:2853
+#: utils/adt/formatting.c:2932
 #, c-format
-msgid "\"TZ\"/\"tz\" format patterns are not supported in to_date"
-msgstr "在to_date中不支持\"TZ\"/\"tz\"的格式模式"
+#| msgid "\"TZ\"/\"tz\" format patterns are not supported in to_date"
+msgid "\"TZ\"/\"tz\"/\"OF\" format patterns are not supported in to_date"
+msgstr "在to_date中不支持\"TZ\"/\"tz\"/\"OF\"的格式模式"
 
-#: utils/adt/formatting.c:2957
+#: utils/adt/formatting.c:3040
 #, c-format
 msgid "invalid input string for \"Y,YYY\""
 msgstr "对于\"Y,YYY\", 所输入的字符串无效"
 
-#: utils/adt/formatting.c:3460
+#: utils/adt/formatting.c:3543
 #, c-format
 msgid "hour \"%d\" is invalid for the 12-hour clock"
 msgstr "对于12小时制的钟表,小时数\"%d\"无效"
 
-#: utils/adt/formatting.c:3462
+#: utils/adt/formatting.c:3545
 #, c-format
 msgid "Use the 24-hour clock, or give an hour between 1 and 12."
 msgstr "使用24小时制的钟表,或者将小时数限定在1到12之间."
 
-#: utils/adt/formatting.c:3500
-#, c-format
-msgid "inconsistent use of year %04d and \"BC\""
-msgstr "年份%04d和\"BC\"的使用不一致"
-
-#: utils/adt/formatting.c:3547
+#: utils/adt/formatting.c:3640
 #, c-format
 msgid "cannot calculate day of year without year information"
 msgstr "没有年份信息无法计算年的天数"
 
-#: utils/adt/formatting.c:4409
+#: utils/adt/formatting.c:4490
 #, c-format
 msgid "\"EEEE\" not supported for input"
 msgstr "不支持为输入使用\"EEEE\""
 
-#: utils/adt/formatting.c:4421
+#: utils/adt/formatting.c:4502
 #, c-format
 msgid "\"RN\" not supported for input"
 msgstr "不支持为输入使用\"RN\""
 
-#: utils/adt/genfile.c:60
+#: utils/adt/genfile.c:61
 #, c-format
 msgid "reference to parent directory (\"..\") not allowed"
 msgstr "不允许引用源目录(\"..\") "
 
-#: utils/adt/genfile.c:71
+#: utils/adt/genfile.c:72
 #, c-format
 msgid "absolute path not allowed"
 msgstr "不允许使用绝对路径"
 
-#: utils/adt/genfile.c:76
+#: utils/adt/genfile.c:77
 #, c-format
 msgid "path must be in or below the current directory"
 msgstr "路径必须在当前目录或其子目录下"
 
-#: utils/adt/genfile.c:117 utils/adt/oracle_compat.c:184
+#: utils/adt/genfile.c:118 utils/adt/oracle_compat.c:184
 #: utils/adt/oracle_compat.c:282 utils/adt/oracle_compat.c:758
-#: utils/adt/oracle_compat.c:1048
+#: utils/adt/oracle_compat.c:1059
 #, c-format
 msgid "requested length too large"
 msgstr "请求长度太大"
 
-#: utils/adt/genfile.c:129
+#: utils/adt/genfile.c:130
 #, c-format
 msgid "could not seek in file \"%s\": %m"
 msgstr "无法在文件\"%s\"进行查找: %m"
 
-#: utils/adt/genfile.c:179 utils/adt/genfile.c:203 utils/adt/genfile.c:224
-#: utils/adt/genfile.c:248
+#: utils/adt/genfile.c:180 utils/adt/genfile.c:204 utils/adt/genfile.c:225
+#: utils/adt/genfile.c:249
 #, c-format
 msgid "must be superuser to read files"
 msgstr "只有超级用户能对文件进行读操作"
 
-#: utils/adt/genfile.c:186 utils/adt/genfile.c:231
-#, c-format
-msgid "requested length cannot be negative"
-msgstr "所请求的长度不能是负数"
-
-#: utils/adt/genfile.c:272
+#: utils/adt/genfile.c:273
 #, c-format
 msgid "must be superuser to get file information"
 msgstr "只有超级用户才能获取文件信息"
 
-#: utils/adt/genfile.c:336
+#: utils/adt/genfile.c:337
 #, c-format
 msgid "must be superuser to get directory listings"
 msgstr "只有超级用户才能获取目录列表"
 
-#: utils/adt/geo_ops.c:294 utils/adt/geo_ops.c:4251 utils/adt/geo_ops.c:5172
+#: utils/adt/geo_ops.c:299 utils/adt/geo_ops.c:1398 utils/adt/geo_ops.c:3460
+#: utils/adt/geo_ops.c:4236 utils/adt/geo_ops.c:5165
 #, c-format
 msgid "too many points requested"
 msgstr "要求了太多的点"
 
-#: utils/adt/geo_ops.c:317
+#: utils/adt/geo_ops.c:322
 #, c-format
 msgid "could not format \"path\" value"
 msgstr "无法格式化 \"path\" 值"
 
-#: utils/adt/geo_ops.c:392
+#: utils/adt/geo_ops.c:397
 #, c-format
 msgid "invalid input syntax for type box: \"%s\""
 msgstr "无效的 box 类型输入语法: \"%s\""
 
-#: utils/adt/geo_ops.c:956
+#: utils/adt/geo_ops.c:992
 #, c-format
-msgid "invalid input syntax for type line: \"%s\""
-msgstr "无效的 line 类型输入语法: \"%s\""
+msgid "invalid line specification: must be two distinct points"
+msgstr "无效的线规格: 必须是两个不同的点"
 
-#: utils/adt/geo_ops.c:963 utils/adt/geo_ops.c:1030 utils/adt/geo_ops.c:1045
-#: utils/adt/geo_ops.c:1057
+#: utils/adt/geo_ops.c:1001
 #, c-format
-msgid "type \"line\" not yet implemented"
-msgstr "类型 \"line\" 没有实现"
+#| msgid "interval specification not allowed here"
+msgid "invalid line specification: A and B cannot both be zero"
+msgstr "无效的行规格: A和B不能同时为0"
+
+#: utils/adt/geo_ops.c:1006
+#, c-format
+msgid "invalid input syntax for type line: \"%s\""
+msgstr "无效的 line 类型输入语法: \"%s\""
 
-#: utils/adt/geo_ops.c:1411 utils/adt/geo_ops.c:1434
+#: utils/adt/geo_ops.c:1378 utils/adt/geo_ops.c:1409
 #, c-format
 msgid "invalid input syntax for type path: \"%s\""
 msgstr "无效的 path 类型输入语法: \"%s\""
 
-#: utils/adt/geo_ops.c:1473
+#: utils/adt/geo_ops.c:1448
 #, c-format
 msgid "invalid number of points in external \"path\" value"
 msgstr "在外部 \"path\" 值中的点数量无效."
 
-#: utils/adt/geo_ops.c:1816
+#: utils/adt/geo_ops.c:1791
 #, c-format
 msgid "invalid input syntax for type point: \"%s\""
 msgstr "无效的 point 类型输入语法: \"%s\""
 
-#: utils/adt/geo_ops.c:2044
+#: utils/adt/geo_ops.c:2019
 #, c-format
 msgid "invalid input syntax for type lseg: \"%s\""
 msgstr "无效的 lseg 类型输入语法: \"%s\""
 
-#: utils/adt/geo_ops.c:2648
+#: utils/adt/geo_ops.c:2623
 #, c-format
 msgid "function \"dist_lb\" not implemented"
 msgstr "函数 \"dist_lb\" 没有实现"
 
-#: utils/adt/geo_ops.c:3161
+#: utils/adt/geo_ops.c:3035
+#, c-format
+#| msgid "function \"close_lb\" not implemented"
+msgid "function \"close_sl\" not implemented"
+msgstr "函数 \"close_sl\" 没有实现"
+
+#: utils/adt/geo_ops.c:3137
 #, c-format
 msgid "function \"close_lb\" not implemented"
 msgstr "函数 \"close_lb\" 没有实现"
 
-#: utils/adt/geo_ops.c:3450
+#: utils/adt/geo_ops.c:3426
 #, c-format
 msgid "cannot create bounding box for empty polygon"
 msgstr "无法为空多边形创建 bounding box"
 
-#: utils/adt/geo_ops.c:3474 utils/adt/geo_ops.c:3486
+#: utils/adt/geo_ops.c:3451 utils/adt/geo_ops.c:3471
 #, c-format
 msgid "invalid input syntax for type polygon: \"%s\""
 msgstr "无效的 polygon 类型输入语法: \"%s\""
 
-#: utils/adt/geo_ops.c:3526
+#: utils/adt/geo_ops.c:3511
 #, c-format
 msgid "invalid number of points in external \"polygon\" value"
 msgstr "在外部\"polygon\" 值中的点数量无效."
 
-#: utils/adt/geo_ops.c:4049
+#: utils/adt/geo_ops.c:4034
 #, c-format
 msgid "function \"poly_distance\" not implemented"
 msgstr "函数 \"poly_distance\" 没有实现"
 
-#: utils/adt/geo_ops.c:4363
+#: utils/adt/geo_ops.c:4348
 #, c-format
 msgid "function \"path_center\" not implemented"
 msgstr "函数 \"path_center\" 没有实现"
 
-#: utils/adt/geo_ops.c:4380
+#: utils/adt/geo_ops.c:4365
 #, c-format
 msgid "open path cannot be converted to polygon"
 msgstr "打开的路径不能转换为多态型"
 
-#: utils/adt/geo_ops.c:4549 utils/adt/geo_ops.c:4559 utils/adt/geo_ops.c:4574
-#: utils/adt/geo_ops.c:4580
+#: utils/adt/geo_ops.c:4542 utils/adt/geo_ops.c:4552 utils/adt/geo_ops.c:4567
+#: utils/adt/geo_ops.c:4573
 #, c-format
 msgid "invalid input syntax for type circle: \"%s\""
 msgstr "无效的 circle 类型输入语法: \"%s\""
 
-#: utils/adt/geo_ops.c:4602 utils/adt/geo_ops.c:4610
+#: utils/adt/geo_ops.c:4595 utils/adt/geo_ops.c:4603
 #, c-format
 msgid "could not format \"circle\" value"
 msgstr "无法格式化 \"circle\" 的值"
 
-#: utils/adt/geo_ops.c:4637
+#: utils/adt/geo_ops.c:4630
 #, c-format
 msgid "invalid radius in external \"circle\" value"
 msgstr "在外部\"circle\" 值中的半径无效"
 
-#: utils/adt/geo_ops.c:5158
+#: utils/adt/geo_ops.c:5151
 #, c-format
 msgid "cannot convert circle with radius zero to polygon"
 msgstr "无法将半径为0的圆转换为多边类型"
 
-#: utils/adt/geo_ops.c:5163
+#: utils/adt/geo_ops.c:5156
 #, c-format
 msgid "must request at least 2 points"
 msgstr "必须要求至少两个点."
 
-#: utils/adt/geo_ops.c:5207 utils/adt/geo_ops.c:5230
+#: utils/adt/geo_ops.c:5200
 #, c-format
 msgid "cannot convert empty polygon to circle"
 msgstr "无法转换空的多边形到圆形"
@@ -15420,8 +17990,8 @@ msgstr "无效的int2vector数据"
 msgid "oidvector has too many elements"
 msgstr "oidvector 有太多元素"
 
-#: utils/adt/int.c:1362 utils/adt/int8.c:1409 utils/adt/timestamp.c:4789
-#: utils/adt/timestamp.c:4870
+#: utils/adt/int.c:1362 utils/adt/int8.c:1460 utils/adt/timestamp.c:5229
+#: utils/adt/timestamp.c:5310
 #, c-format
 msgid "step size cannot equal zero"
 msgstr "单步执行大小不能等于0"
@@ -15439,359 +18009,583 @@ msgstr "值 \"%s\" 超出 bigint 类型范围"
 
 #: utils/adt/int8.c:500 utils/adt/int8.c:529 utils/adt/int8.c:550
 #: utils/adt/int8.c:581 utils/adt/int8.c:615 utils/adt/int8.c:640
-#: utils/adt/int8.c:697 utils/adt/int8.c:714 utils/adt/int8.c:783
-#: utils/adt/int8.c:804 utils/adt/int8.c:831 utils/adt/int8.c:864
-#: utils/adt/int8.c:892 utils/adt/int8.c:913 utils/adt/int8.c:940
-#: utils/adt/int8.c:980 utils/adt/int8.c:1001 utils/adt/int8.c:1028
-#: utils/adt/int8.c:1061 utils/adt/int8.c:1089 utils/adt/int8.c:1110
-#: utils/adt/int8.c:1137 utils/adt/int8.c:1310 utils/adt/int8.c:1349
-#: utils/adt/numeric.c:2353 utils/adt/varbit.c:1617
+#: utils/adt/int8.c:697 utils/adt/int8.c:714 utils/adt/int8.c:741
+#: utils/adt/int8.c:758 utils/adt/int8.c:834 utils/adt/int8.c:855
+#: utils/adt/int8.c:882 utils/adt/int8.c:915 utils/adt/int8.c:943
+#: utils/adt/int8.c:964 utils/adt/int8.c:991 utils/adt/int8.c:1031
+#: utils/adt/int8.c:1052 utils/adt/int8.c:1079 utils/adt/int8.c:1112
+#: utils/adt/int8.c:1140 utils/adt/int8.c:1161 utils/adt/int8.c:1188
+#: utils/adt/int8.c:1361 utils/adt/int8.c:1400 utils/adt/numeric.c:2341
+#: utils/adt/varbit.c:1645
 #, c-format
 msgid "bigint out of range"
 msgstr "bigint 超出范围"
 
-#: utils/adt/int8.c:1366
+#: utils/adt/int8.c:1417
 #, c-format
 msgid "OID out of range"
 msgstr "OID 超出范围"
 
-#: utils/adt/json.c:444 utils/adt/json.c:482 utils/adt/json.c:494
-#: utils/adt/json.c:613 utils/adt/json.c:627 utils/adt/json.c:638
-#: utils/adt/json.c:646 utils/adt/json.c:654 utils/adt/json.c:662
-#: utils/adt/json.c:670 utils/adt/json.c:678 utils/adt/json.c:686
-#: utils/adt/json.c:717
+#: utils/adt/json.c:695 utils/adt/json.c:735 utils/adt/json.c:750
+#: utils/adt/json.c:761 utils/adt/json.c:771 utils/adt/json.c:807
+#: utils/adt/json.c:819 utils/adt/json.c:850 utils/adt/json.c:868
+#: utils/adt/json.c:880 utils/adt/json.c:892 utils/adt/json.c:1031
+#: utils/adt/json.c:1045 utils/adt/json.c:1056 utils/adt/json.c:1064
+#: utils/adt/json.c:1072 utils/adt/json.c:1080 utils/adt/json.c:1088
+#: utils/adt/json.c:1096 utils/adt/json.c:1104 utils/adt/json.c:1112
+#: utils/adt/json.c:1142
 #, c-format
 msgid "invalid input syntax for type json"
 msgstr "json类型使用了无效的输入语法"
 
-#: utils/adt/json.c:445
+#: utils/adt/json.c:696
 #, c-format
 msgid "Character with value 0x%02x must be escaped."
 msgstr "值为 0x%02x 的字符必须进行转义处理."
 
-#: utils/adt/json.c:483
+#: utils/adt/json.c:736
 #, c-format
 msgid "\"\\u\" must be followed by four hexadecimal digits."
 msgstr "\"\\u\" 后必须紧跟有效的十六进制数数字"
 
-#: utils/adt/json.c:495
+#: utils/adt/json.c:751
+#, c-format
+msgid "Unicode high surrogate must not follow a high surrogate."
+msgstr "Unicode 的高位代理项不能紧随另一个高位代理项."
+
+#: utils/adt/json.c:762 utils/adt/json.c:772 utils/adt/json.c:820
+#: utils/adt/json.c:881 utils/adt/json.c:893
+#, c-format
+msgid "Unicode low surrogate must follow a high surrogate."
+msgstr "Unicode 代位代理项必须紧随一个高位代理项."
+
+#: utils/adt/json.c:808
+#, c-format
+#| msgid ""
+#| "Unicode escape values cannot be used for code point values above 007F "
+#| "when the server encoding is not UTF8"
+msgid ""
+"Unicode escape values cannot be used for code point values above 007F when "
+"the server encoding is not UTF8."
+msgstr "当服务器的编码不是UTF8时,Unicode转义值就不能用作007F以上的码点值."
+
+#: utils/adt/json.c:851 utils/adt/json.c:869
 #, c-format
 msgid "Escape sequence \"\\%s\" is invalid."
 msgstr "转义序列 \"\\%s\" 无效."
 
-#: utils/adt/json.c:614
+#: utils/adt/json.c:1032
 #, c-format
 msgid "The input string ended unexpectedly."
 msgstr "输入字符串意外终止."
 
-#: utils/adt/json.c:628
+#: utils/adt/json.c:1046
 #, c-format
 msgid "Expected end of input, but found \"%s\"."
 msgstr "期望输入结束,结果发现是\"%s\"."
 
-#: utils/adt/json.c:639
+#: utils/adt/json.c:1057
 #, c-format
 msgid "Expected JSON value, but found \"%s\"."
 msgstr "期望 是JSON值, 但结果发现是\"%s\"."
 
-#: utils/adt/json.c:647
+#: utils/adt/json.c:1065 utils/adt/json.c:1113
+#, c-format
+msgid "Expected string, but found \"%s\"."
+msgstr "期望是字符串, 但发现结果是\"%s\"."
+
+#: utils/adt/json.c:1073
 #, c-format
 msgid "Expected array element or \"]\", but found \"%s\"."
 msgstr "期望为数组元素或者\"]\",但发现结果是\"%s\"."
 
-#: utils/adt/json.c:655
+#: utils/adt/json.c:1081
 #, c-format
 msgid "Expected \",\" or \"]\", but found \"%s\"."
 msgstr "期望是\",\" 或 \"]\",但发现结果是\"%s\"."
 
-#: utils/adt/json.c:663
+#: utils/adt/json.c:1089
 #, c-format
 msgid "Expected string or \"}\", but found \"%s\"."
 msgstr "期望是字符串或\"}\",但发现结果是\"%s\"."
 
-#: utils/adt/json.c:671
+#: utils/adt/json.c:1097
 #, c-format
 msgid "Expected \":\", but found \"%s\"."
 msgstr "期望得到 \":\",但发现结果是\"%s\"."
 
-#: utils/adt/json.c:679
+#: utils/adt/json.c:1105
 #, c-format
 msgid "Expected \",\" or \"}\", but found \"%s\"."
 msgstr "期望是 \",\" 或 \"}\",但发现结果是\"%s\"."
 
-#: utils/adt/json.c:687
-#, c-format
-msgid "Expected string, but found \"%s\"."
-msgstr "期望是字符串, 但发现结果是\"%s\"."
-
-#: utils/adt/json.c:718
+#: utils/adt/json.c:1143
 #, c-format
 msgid "Token \"%s\" is invalid."
 msgstr "令牌 \"%s\" 无效."
 
-#: utils/adt/json.c:790
+#: utils/adt/json.c:1215
 #, c-format
 msgid "JSON data, line %d: %s%s%s"
 msgstr "JSON数据, 行 %d: %s%s%s"
 
-#: utils/adt/like.c:211 utils/adt/selfuncs.c:5185
+#: utils/adt/json.c:1360
 #, c-format
-msgid "could not determine which collation to use for ILIKE"
-msgstr "无法确定ILIKE使用哪种排序规则"
+msgid "key value must be scalar, not array, composite, or json"
+msgstr "键值必须是标量,不能是数组、复合值或json值"
 
-#: utils/adt/like_match.c:104 utils/adt/like_match.c:164
+#: utils/adt/json.c:1413
 #, c-format
-msgid "LIKE pattern must not end with escape character"
-msgstr "LIKE模式不能以转义字符结束"
+#| msgid "XML does not support infinite date values."
+msgid "JSON does not support infinite date values."
+msgstr "JSON不支持无限日期值."
 
-#: utils/adt/like_match.c:289 utils/adt/regexp.c:683
+#: utils/adt/json.c:1438 utils/adt/json.c:1465
 #, c-format
-msgid "invalid escape string"
-msgstr "无效的逃逸字符串"
+#| msgid "XML does not support infinite timestamp values."
+msgid "JSON does not support infinite timestamp values."
+msgstr "JSON不支持无限时戳值."
 
-#: utils/adt/like_match.c:290 utils/adt/regexp.c:684
+#: utils/adt/json.c:1930 utils/adt/json.c:1948 utils/adt/json.c:2023
+#: utils/adt/json.c:2044 utils/adt/json.c:2103
 #, c-format
-msgid "Escape string must be empty or one character."
-msgstr "逃逸字符串必须为空或者一个字符."
+#| msgid "could not determine data type of parameter $%d"
+msgid "could not determine data type for argument %d"
+msgstr "无法确定参数 %d 的数据类型"
 
-#: utils/adt/mac.c:65
+#: utils/adt/json.c:1935
 #, c-format
-msgid "invalid input syntax for type macaddr: \"%s\""
-msgstr "无效的 macaddr 类型输入语法: \"%s\""
+#| msgid "frame ending offset must not be null"
+msgid "field name must not be null"
+msgstr "字段名不能为空"
 
-#: utils/adt/mac.c:72
+#: utils/adt/json.c:1998
 #, c-format
-msgid "invalid octet value in \"macaddr\" value: \"%s\""
+#| msgid "each %s query must have the same number of columns"
+msgid "argument list must have even number of elements"
+msgstr "参数列表的元素个数必须为偶数"
+
+#: utils/adt/json.c:1999
+#, c-format
+msgid ""
+"The arguments of json_build_object() must consist of alternating keys and "
+"values."
+msgstr "json_build_object()的参数必须包含可替代的键和对应的值."
+
+#: utils/adt/json.c:2029
+#, c-format
+#| msgid "dimension values cannot be null"
+msgid "argument %d cannot be null"
+msgstr "参数%d不能为空"
+
+#: utils/adt/json.c:2030
+#, c-format
+msgid "Object keys should be text."
+msgstr "对象的键必须是文本"
+
+#: utils/adt/json.c:2165
+#, c-format
+#| msgid "view must have at least one column"
+msgid "array must have two columns"
+msgstr "数组必须有两列"
+
+#: utils/adt/json.c:2189 utils/adt/json.c:2273
+#, c-format
+#| msgid "null array element not allowed in this context"
+msgid "null value not allowed for object key"
+msgstr "空值不能用于对象的键当中"
+
+#: utils/adt/json.c:2262
+#, c-format
+#| msgid "mismatched parentheses"
+msgid "mismatched array dimensions"
+msgstr "不匹配的数组维数"
+
+#: utils/adt/jsonb.c:202
+#, c-format
+#| msgid "bit string too long for type bit varying(%d)"
+msgid "string too long to represent as jsonb string"
+msgstr "用于描述jsonb字符串的字符串太长了"
+
+#: utils/adt/jsonb.c:203
+#, c-format
+msgid ""
+"Due to an implementation restriction, jsonb strings cannot exceed %d bytes."
+msgstr "因为实现方面的限制,jsonb字符串不能超过%d个字节."
+
+#: utils/adt/jsonb_util.c:622
+#, c-format
+#| msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)"
+msgid "number of jsonb object pairs exceeds the maximum allowed (%zu)"
+msgstr "jsonb对象结对的数目超过了最大允许值(%zu)"
+
+#: utils/adt/jsonb_util.c:663
+#, c-format
+#| msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)"
+msgid "number of jsonb array elements exceeds the maximum allowed (%zu)"
+msgstr "jsonb数组元素的数目超过了最大允许值(%zu)"
+
+#: utils/adt/jsonb_util.c:1490 utils/adt/jsonb_util.c:1510
+#, c-format
+#| msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)"
+msgid "total size of jsonb array elements exceeds the maximum of %u bytes"
+msgstr "jsonb数组的元素的总大小超过了最大值%u字节"
+
+#: utils/adt/jsonb_util.c:1571 utils/adt/jsonb_util.c:1606
+#: utils/adt/jsonb_util.c:1626
+#, c-format
+msgid "total size of jsonb object elements exceeds the maximum of %u bytes"
+msgstr "jsonb对象元素的总大小不能超过最大 %u 字节"
+
+#: utils/adt/jsonfuncs.c:263 utils/adt/jsonfuncs.c:428
+#: utils/adt/jsonfuncs.c:1968 utils/adt/jsonfuncs.c:2405
+#: utils/adt/jsonfuncs.c:2911
+#, c-format
+#| msgid "cannot cast type %s to %s"
+msgid "cannot call %s on a scalar"
+msgstr "无法在标量上调用%s"
+
+#: utils/adt/jsonfuncs.c:268 utils/adt/jsonfuncs.c:415
+#: utils/adt/jsonfuncs.c:2394
+#, c-format
+#| msgid "cannot accept a value of type anyarray"
+msgid "cannot call %s on an array"
+msgstr "无法在数组上调用%s"
+
+#: utils/adt/jsonfuncs.c:1276 utils/adt/jsonfuncs.c:1311
+#, c-format
+#| msgid "cannot set an array element to DEFAULT"
+msgid "cannot get array length of a scalar"
+msgstr "无法得到一个标题的数组长度"
+
+#: utils/adt/jsonfuncs.c:1280 utils/adt/jsonfuncs.c:1299
+#, c-format
+#| msgid "cannot accept a value of type anynonarray"
+msgid "cannot get array length of a non-array"
+msgstr "无法从一个非数组里得到数组的长度"
+
+#: utils/adt/jsonfuncs.c:1376
+#, c-format
+msgid "cannot call %s on a non-object"
+msgstr "不能在非对象上调用 %s "
+
+#: utils/adt/jsonfuncs.c:1394 utils/adt/jsonfuncs.c:2081
+#: utils/adt/jsonfuncs.c:2614
+#, c-format
+msgid ""
+"function returning record called in context that cannot accept type record"
+msgstr "返回值类型是记录的函数在不接受使用记录类型的环境中调用"
+
+#: utils/adt/jsonfuncs.c:1637
+#, c-format
+msgid "cannot deconstruct an array as an object"
+msgstr "不能将一个数组析构为一个对象"
+
+#: utils/adt/jsonfuncs.c:1649
+#, c-format
+#| msgid "cannot convert NaN to smallint"
+msgid "cannot deconstruct a scalar"
+msgstr "无法析构一个标量"
+
+#: utils/adt/jsonfuncs.c:1695
+#, c-format
+#| msgid "cannot export a snapshot from a subtransaction"
+msgid "cannot extract elements from a scalar"
+msgstr "无法从标题值时提取元素"
+
+#: utils/adt/jsonfuncs.c:1699
+#, c-format
+#| msgid "could not extract bytes from encoded string"
+msgid "cannot extract elements from an object"
+msgstr "无法从一个对象里提取元素"
+
+#: utils/adt/jsonfuncs.c:1955 utils/adt/jsonfuncs.c:2710
+#, c-format
+#| msgid "cannot accept a value of type anynonarray"
+msgid "cannot call %s on a non-array"
+msgstr "非数组上不能调用%s"
+
+#: utils/adt/jsonfuncs.c:2042 utils/adt/jsonfuncs.c:2590
+#, c-format
+#| msgid "argument of %s must be a type name"
+msgid "first argument of %s must be a row type"
+msgstr "%s 的第一个参数必需是一个行类型"
+
+#: utils/adt/jsonfuncs.c:2083
+#, c-format
+msgid ""
+"Try calling the function in the FROM clause using a column definition list."
+msgstr "试图在FROM子句时在,使用列定义列表调用该函数."
+
+#: utils/adt/jsonfuncs.c:2726 utils/adt/jsonfuncs.c:2893
+#, c-format
+#| msgid "argument of %s must be a name"
+msgid "argument of %s must be an array of objects"
+msgstr "%s 的参数必须是一个对象数组"
+
+#: utils/adt/jsonfuncs.c:2750
+#, c-format
+msgid "cannot call %s on an object"
+msgstr "不能在一个对象上调用%s"
+
+#: utils/adt/like.c:211 utils/adt/selfuncs.c:5220
+#, c-format
+msgid "could not determine which collation to use for ILIKE"
+msgstr "无法确定ILIKE使用哪种排序规则"
+
+#: utils/adt/like_match.c:104 utils/adt/like_match.c:164
+#, c-format
+msgid "LIKE pattern must not end with escape character"
+msgstr "LIKE模式不能以转义字符结束"
+
+#: utils/adt/like_match.c:289 utils/adt/regexp.c:694
+#, c-format
+msgid "invalid escape string"
+msgstr "无效的逃逸字符串"
+
+#: utils/adt/like_match.c:290 utils/adt/regexp.c:695
+#, c-format
+msgid "Escape string must be empty or one character."
+msgstr "逃逸字符串必须为空或者一个字符."
+
+#: utils/adt/mac.c:65
+#, c-format
+msgid "invalid input syntax for type macaddr: \"%s\""
+msgstr "无效的 macaddr 类型输入语法: \"%s\""
+
+#: utils/adt/mac.c:72
+#, c-format
+msgid "invalid octet value in \"macaddr\" value: \"%s\""
 msgstr "在 \"macaddr\" 值中的无效八位值: \"%s\""
 
-#: utils/adt/misc.c:109
+#: utils/adt/misc.c:111
 #, c-format
 msgid "PID %d is not a PostgreSQL server process"
 msgstr "PID %d 不是 PostgreSQL 服务器进程"
 
-#: utils/adt/misc.c:152
+#: utils/adt/misc.c:154
 #, c-format
 msgid ""
 "must be superuser or have the same role to cancel queries running in other "
 "server processes"
 msgstr "只有超级用户或拥有相同角色的用户可以取消其他服务器进程中的查询"
 
-#: utils/adt/misc.c:169
+#: utils/adt/misc.c:171
 #, c-format
 msgid ""
 "must be superuser or have the same role to terminate other server processes"
 msgstr "只有超级用户或拥有相同角色的用户可以终止其他服务器进程"
 
-#: utils/adt/misc.c:183
+#: utils/adt/misc.c:185
 #, c-format
 msgid "must be superuser to signal the postmaster"
 msgstr "只有超级用户可以发送信号到postmaster进程"
 
-#: utils/adt/misc.c:188
+#: utils/adt/misc.c:190
 #, c-format
 msgid "failed to send signal to postmaster: %m"
 msgstr "无法发送信号到postmaster进程: %m"
 
-#: utils/adt/misc.c:205
+#: utils/adt/misc.c:207
 #, c-format
 msgid "must be superuser to rotate log files"
 msgstr "只有超级用户能切换日志文件"
 
-#: utils/adt/misc.c:210
+#: utils/adt/misc.c:212
 #, c-format
 msgid "rotation not possible because log collection not active"
 msgstr "日志切换无法进行,因为没有激活日志收集功能"
 
-#: utils/adt/misc.c:252
+#: utils/adt/misc.c:249
 #, c-format
 msgid "global tablespace never has databases"
 msgstr "全局表空间没有数据库"
 
-#: utils/adt/misc.c:273
+#: utils/adt/misc.c:270
 #, c-format
 msgid "%u is not a tablespace OID"
 msgstr "%u 不是一个表空间 OID"
 
-#: utils/adt/misc.c:463
+#: utils/adt/misc.c:465
 msgid "unreserved"
 msgstr "未保留"
 
-#: utils/adt/misc.c:467
+#: utils/adt/misc.c:469
 msgid "unreserved (cannot be function or type name)"
 msgstr "未保留(不能是函数或者类型名称)"
 
-#: utils/adt/misc.c:471
+#: utils/adt/misc.c:473
 msgid "reserved (can be function or type name)"
 msgstr "已保留(可以是函数或类型名称)"
 
-#: utils/adt/misc.c:475
+#: utils/adt/misc.c:477
 msgid "reserved"
 msgstr "已保留"
 
-#: utils/adt/nabstime.c:161
+#: utils/adt/nabstime.c:136
 #, c-format
 msgid "invalid time zone name: \"%s\""
 msgstr "无效时区名字: \"%s\""
 
-#: utils/adt/nabstime.c:507 utils/adt/nabstime.c:580
+#: utils/adt/nabstime.c:481 utils/adt/nabstime.c:554
 #, c-format
 msgid "cannot convert abstime \"invalid\" to timestamp"
 msgstr "无法把 abstime \"invalid\" 转换为 timestamp."
 
-#: utils/adt/nabstime.c:807
+#: utils/adt/nabstime.c:781
 #, c-format
 msgid "invalid status in external \"tinterval\" value"
 msgstr "无效的外部 \"tinterval\" 值状态"
 
-#: utils/adt/nabstime.c:881
+#: utils/adt/nabstime.c:855
 #, c-format
 msgid "cannot convert reltime \"invalid\" to interval"
 msgstr "无法把 reltime \"invalid\" 转换为 interval"
 
-#: utils/adt/nabstime.c:1576
+#: utils/adt/nabstime.c:1550
 #, c-format
 msgid "invalid input syntax for type tinterval: \"%s\""
 msgstr "无效的 tinterval 类型输入语法: \"%s\""
 
-#: utils/adt/network.c:118
+#: utils/adt/network.c:69
 #, c-format
 msgid "invalid cidr value: \"%s\""
 msgstr "无效的 cidr 值: \"%s\""
 
-#: utils/adt/network.c:119 utils/adt/network.c:249
+#: utils/adt/network.c:70 utils/adt/network.c:200
 #, c-format
 msgid "Value has bits set to right of mask."
 msgstr "这个值带有的bit集合,在掩码的右边."
 
-#: utils/adt/network.c:160 utils/adt/network.c:614 utils/adt/network.c:639
-#: utils/adt/network.c:664
+#: utils/adt/network.c:111 utils/adt/network.c:580 utils/adt/network.c:605
+#: utils/adt/network.c:630
 #, c-format
 msgid "could not format inet value: %m"
 msgstr "无法格式化 inet 值: %m"
 
 #. translator: %s is inet or cidr
-#: utils/adt/network.c:217
+#: utils/adt/network.c:168
 #, c-format
 msgid "invalid address family in external \"%s\" value"
 msgstr "在外部\"%s\"值中的地址族无效"
 
 #. translator: %s is inet or cidr
-#: utils/adt/network.c:224
+#: utils/adt/network.c:175
 #, c-format
 msgid "invalid bits in external \"%s\" value"
 msgstr "在外部\"%s\"值中的bit无效"
 
 #. translator: %s is inet or cidr
-#: utils/adt/network.c:233
+#: utils/adt/network.c:184
 #, c-format
 msgid "invalid length in external \"%s\" value"
 msgstr "在外部\"%s\"值中的长度无效"
 
-#: utils/adt/network.c:248
+#: utils/adt/network.c:199
 #, c-format
 msgid "invalid external \"cidr\" value"
 msgstr "无效的外部 \"cidr\" 值"
 
-#: utils/adt/network.c:370 utils/adt/network.c:397
+#: utils/adt/network.c:321 utils/adt/network.c:348
 #, c-format
 msgid "invalid mask length: %d"
 msgstr "无效掩码长度: %d"
 
-#: utils/adt/network.c:682
+#: utils/adt/network.c:648
 #, c-format
 msgid "could not format cidr value: %m"
 msgstr "无法格式化cidr值: %m"
 
-#: utils/adt/network.c:1255
+#: utils/adt/network.c:1264
 #, c-format
 msgid "cannot AND inet values of different sizes"
 msgstr "无法为不同大小的inet类型值进行与 (AND) 位运算"
 
-#: utils/adt/network.c:1287
+#: utils/adt/network.c:1296
 #, c-format
 msgid "cannot OR inet values of different sizes"
 msgstr "无法为不同大小的inet类型值进行或 (OR) 运算"
 
-#: utils/adt/network.c:1348 utils/adt/network.c:1424
+#: utils/adt/network.c:1357 utils/adt/network.c:1433
 #, c-format
 msgid "result is out of range"
 msgstr "结果超出范围"
 
-#: utils/adt/network.c:1389
+#: utils/adt/network.c:1398
 #, c-format
 msgid "cannot subtract inet values of different sizes"
 msgstr "无法为不同大小的inet类型值进行减法运算"
 
-#: utils/adt/numeric.c:474 utils/adt/numeric.c:501 utils/adt/numeric.c:3322
-#: utils/adt/numeric.c:3345 utils/adt/numeric.c:3369 utils/adt/numeric.c:3376
+#: utils/adt/numeric.c:485 utils/adt/numeric.c:512 utils/adt/numeric.c:3689
+#: utils/adt/numeric.c:3712 utils/adt/numeric.c:3736 utils/adt/numeric.c:3743
 #, c-format
 msgid "invalid input syntax for type numeric: \"%s\""
 msgstr "无效的数字类型输入语法: \"%s\""
 
-#: utils/adt/numeric.c:654
+#: utils/adt/numeric.c:702
 #, c-format
 msgid "invalid length in external \"numeric\" value"
 msgstr "无效的外部 \"numeric\" 值长度"
 
-#: utils/adt/numeric.c:665
+#: utils/adt/numeric.c:713
 #, c-format
 msgid "invalid sign in external \"numeric\" value"
 msgstr "无效的外部 \"numeric\" 值符号"
 
-#: utils/adt/numeric.c:675
+#: utils/adt/numeric.c:723
 #, c-format
 msgid "invalid digit in external \"numeric\" value"
 msgstr "无效的外部 \"numeric\" 值位数"
 
-#: utils/adt/numeric.c:861 utils/adt/numeric.c:875
+#: utils/adt/numeric.c:906 utils/adt/numeric.c:920
 #, c-format
 msgid "NUMERIC precision %d must be between 1 and %d"
 msgstr "NUMERIC %d 的精度必须在 1 和 %d 之间"
 
-#: utils/adt/numeric.c:866
+#: utils/adt/numeric.c:911
 #, c-format
 msgid "NUMERIC scale %d must be between 0 and precision %d"
 msgstr "NUMERIC 数值范围 %d 必须在 0 和精度 %d 之间"
 
 # fe-exec.c:2055
-#: utils/adt/numeric.c:884
+#: utils/adt/numeric.c:929
 #, c-format
 msgid "invalid NUMERIC type modifier"
 msgstr "无效的NUMERIC类型修改器"
 
-#: utils/adt/numeric.c:1928 utils/adt/numeric.c:3801
+#: utils/adt/numeric.c:1936 utils/adt/numeric.c:4186 utils/adt/numeric.c:6155
 #, c-format
 msgid "value overflows numeric format"
 msgstr "值溢出数字格式"
 
-#: utils/adt/numeric.c:2276
+#: utils/adt/numeric.c:2267
 #, c-format
 msgid "cannot convert NaN to integer"
 msgstr "无法转化 NaN 为整数"
 
-#: utils/adt/numeric.c:2344
+#: utils/adt/numeric.c:2333
 #, c-format
 msgid "cannot convert NaN to bigint"
 msgstr "无法转换 NaN 为 bigint"
 
-#: utils/adt/numeric.c:2392
+#: utils/adt/numeric.c:2378
 #, c-format
 msgid "cannot convert NaN to smallint"
 msgstr "无法转换 NaN 为 smallint"
 
-#: utils/adt/numeric.c:3871
+#: utils/adt/numeric.c:4256
 #, c-format
 msgid "numeric field overflow"
 msgstr "数字字段溢出"
 
-#: utils/adt/numeric.c:3872
+#: utils/adt/numeric.c:4257
 #, c-format
 msgid ""
 "A field with precision %d, scale %d must round to an absolute value less "
 "than %s%d."
 msgstr "精度为%d,范围是%d的字段必须四舍五入到小于%s%d的绝对值."
 
-#: utils/adt/numeric.c:5320
+#: utils/adt/numeric.c:5712
 #, c-format
 msgid "argument for function \"exp\" too big"
 msgstr "对于函数 \"exp\" 参数太大"
@@ -15831,52 +18625,70 @@ msgstr "无效的oidvector数据"
 msgid "requested character too large"
 msgstr "所请求的字符太大"
 
-#: utils/adt/oracle_compat.c:941 utils/adt/oracle_compat.c:995
+#: utils/adt/oracle_compat.c:945 utils/adt/oracle_compat.c:1007
 #, c-format
 msgid "requested character too large for encoding: %d"
 msgstr "对于编码来说所要求的字符太大了: %d"
 
-#: utils/adt/oracle_compat.c:988
+#: utils/adt/oracle_compat.c:986
+#, c-format
+#| msgid "requested character too large for encoding: %d"
+msgid "requested character not valid for encoding: %d"
+msgstr "请求的字符对于编码:%d是无效的"
+
+#: utils/adt/oracle_compat.c:1000
 #, c-format
 msgid "null character not permitted"
 msgstr "不允许使用空字符"
 
-#: utils/adt/pg_locale.c:967
+#: utils/adt/orderedsetaggs.c:423 utils/adt/orderedsetaggs.c:528
+#: utils/adt/orderedsetaggs.c:667
+#, c-format
+msgid "percentile value %g is not between 0 and 1"
+msgstr "百分比值 %g 不在0和1之间"
+
+#: utils/adt/pg_locale.c:1039
 #, c-format
 msgid "could not create locale \"%s\": %m"
 msgstr "无法创建本地化环境 \"%s\": %m"
 
-#: utils/adt/pg_locale.c:970
+#: utils/adt/pg_locale.c:1042
 #, c-format
 msgid ""
 "The operating system could not find any locale data for the locale name \"%s"
 "\"."
 msgstr "操作系统无法找到本地化名 \"%s\"对应的任何本地化数据."
 
-#: utils/adt/pg_locale.c:1057
+#: utils/adt/pg_locale.c:1129
 #, c-format
 msgid ""
 "collations with different collate and ctype values are not supported on this "
 "platform"
 msgstr "在此平台上不支持带有不同collate和ctype值的排序规则"
 
-#: utils/adt/pg_locale.c:1072
+#: utils/adt/pg_locale.c:1144
 #, c-format
 msgid "nondefault collations are not supported on this platform"
 msgstr "在这个平台上不支持使用非缺省的排序规则"
 
-#: utils/adt/pg_locale.c:1243
+#: utils/adt/pg_locale.c:1315
 #, c-format
 msgid "invalid multibyte character for locale"
 msgstr "无效的多字节字符, 对于 locale"
 
-#: utils/adt/pg_locale.c:1244
+#: utils/adt/pg_locale.c:1316
 #, c-format
 msgid ""
 "The server's LC_CTYPE locale is probably incompatible with the database "
 "encoding."
 msgstr "服务器本地 LC_CTYPE 可能与数据库编码不兼容."
 
+#: utils/adt/pg_lsn.c:44 utils/adt/pg_lsn.c:49
+#, c-format
+#| msgid "invalid input syntax for type line: \"%s\""
+msgid "invalid input syntax for type pg_lsn: \"%s\""
+msgstr "类型 pg_lsn: \"%s\"使用了无效的输入语法"
+
 #: utils/adt/pseudotypes.c:95
 #, c-format
 msgid "cannot accept a value of type any"
@@ -15914,266 +18726,258 @@ msgstr "无法显示一个 trigger 类型值"
 
 #: utils/adt/pseudotypes.c:303
 #, c-format
+#| msgid "cannot accept a value of type trigger"
+msgid "cannot accept a value of type event_trigger"
+msgstr "无法接受一个 事件触发器的 类型值"
+
+#: utils/adt/pseudotypes.c:316
+#, c-format
+#| msgid "cannot display a value of type trigger"
+msgid "cannot display a value of type event_trigger"
+msgstr "无法显示一个 事件触发器的 类型值"
+
+#: utils/adt/pseudotypes.c:330
+#, c-format
 msgid "cannot accept a value of type language_handler"
 msgstr "无法接受一个 language_handler 类型值"
 
-#: utils/adt/pseudotypes.c:316
+#: utils/adt/pseudotypes.c:343
 #, c-format
 msgid "cannot display a value of type language_handler"
 msgstr "无法显示一个 language_handler 类型值"
 
-#: utils/adt/pseudotypes.c:330
+#: utils/adt/pseudotypes.c:357
 #, c-format
 msgid "cannot accept a value of type fdw_handler"
 msgstr "无法接受一个 fdw_handler 类型值"
 
-#: utils/adt/pseudotypes.c:343
+#: utils/adt/pseudotypes.c:370
 #, c-format
 msgid "cannot display a value of type fdw_handler"
 msgstr "无法显示一个 fdw_handler 类型值"
 
-#: utils/adt/pseudotypes.c:357
+#: utils/adt/pseudotypes.c:384
 #, c-format
 msgid "cannot accept a value of type internal"
 msgstr "无法接受一个 internal 类型值"
 
-#: utils/adt/pseudotypes.c:370
+#: utils/adt/pseudotypes.c:397
 #, c-format
 msgid "cannot display a value of type internal"
 msgstr "无法显示一个 internal 类型值"
 
-#: utils/adt/pseudotypes.c:384
+#: utils/adt/pseudotypes.c:411
 #, c-format
 msgid "cannot accept a value of type opaque"
 msgstr "无法接受一个 opaque 类型值"
 
-#: utils/adt/pseudotypes.c:397
+#: utils/adt/pseudotypes.c:424
 #, c-format
 msgid "cannot display a value of type opaque"
 msgstr "无法显示一个 opaque 类型值"
 
-#: utils/adt/pseudotypes.c:411
+#: utils/adt/pseudotypes.c:438
 #, c-format
 msgid "cannot accept a value of type anyelement"
 msgstr "无法接受一个 anyelement 类型值"
 
-#: utils/adt/pseudotypes.c:424
+#: utils/adt/pseudotypes.c:451
 #, c-format
 msgid "cannot display a value of type anyelement"
 msgstr "无法显示一个 anyelement 类型值"
 
-#: utils/adt/pseudotypes.c:437
+#: utils/adt/pseudotypes.c:464
 #, c-format
 msgid "cannot accept a value of type anynonarray"
 msgstr "无法接受一个anynonarray类型值"
 
-#: utils/adt/pseudotypes.c:450
+#: utils/adt/pseudotypes.c:477
 #, c-format
 msgid "cannot display a value of type anynonarray"
 msgstr "无法显示一个anynonarray类型的值"
 
-#: utils/adt/pseudotypes.c:463
+#: utils/adt/pseudotypes.c:490
 #, c-format
 msgid "cannot accept a value of a shell type"
 msgstr "无法接受一个shell类型的值"
 
-#: utils/adt/pseudotypes.c:476
+#: utils/adt/pseudotypes.c:503
 #, c-format
 msgid "cannot display a value of a shell type"
 msgstr "无法显示一个shell类型值"
 
-#: utils/adt/pseudotypes.c:498 utils/adt/pseudotypes.c:522
+#: utils/adt/pseudotypes.c:525 utils/adt/pseudotypes.c:549
 #, c-format
 msgid "cannot accept a value of type pg_node_tree"
 msgstr "无法接受一个 pg_node_tree类型值"
 
 #: utils/adt/rangetypes.c:396
 #, c-format
-msgid "range constructor flags argument must not be NULL"
-msgstr "范围构造器的开关参数不能为NULL"
+#| msgid "range constructor flags argument must not be NULL"
+msgid "range constructor flags argument must not be null"
+msgstr "范围构造器的参数不能为NULL"
 
-#: utils/adt/rangetypes.c:978
+#: utils/adt/rangetypes.c:983
 #, c-format
 msgid "result of range difference would not be contiguous"
 msgstr "距离差结果不能是连续的"
 
-#: utils/adt/rangetypes.c:1039
+#: utils/adt/rangetypes.c:1044
 #, c-format
 msgid "result of range union would not be contiguous"
 msgstr "范围并的结果不能是连续的"
 
-#: utils/adt/rangetypes.c:1508
+#: utils/adt/rangetypes.c:1502
 #, c-format
 msgid "range lower bound must be less than or equal to range upper bound"
 msgstr "范围下限必须小于或等于其上限"
 
-#: utils/adt/rangetypes.c:1891 utils/adt/rangetypes.c:1904
-#: utils/adt/rangetypes.c:1918
+#: utils/adt/rangetypes.c:1885 utils/adt/rangetypes.c:1898
+#: utils/adt/rangetypes.c:1912
 #, c-format
 msgid "invalid range bound flags"
 msgstr "无效的范围边界标记"
 
-#: utils/adt/rangetypes.c:1892 utils/adt/rangetypes.c:1905
-#: utils/adt/rangetypes.c:1919
+#: utils/adt/rangetypes.c:1886 utils/adt/rangetypes.c:1899
+#: utils/adt/rangetypes.c:1913
 #, c-format
 msgid "Valid values are \"[]\", \"[)\", \"(]\", and \"()\"."
 msgstr "有效值为\"[]\", \"[)\", \"(]\", 和 \"()\"."
 
-#: utils/adt/rangetypes.c:1984 utils/adt/rangetypes.c:2001
-#: utils/adt/rangetypes.c:2014 utils/adt/rangetypes.c:2032
-#: utils/adt/rangetypes.c:2043 utils/adt/rangetypes.c:2087
-#: utils/adt/rangetypes.c:2095
+#: utils/adt/rangetypes.c:1978 utils/adt/rangetypes.c:1995
+#: utils/adt/rangetypes.c:2008 utils/adt/rangetypes.c:2026
+#: utils/adt/rangetypes.c:2037 utils/adt/rangetypes.c:2081
+#: utils/adt/rangetypes.c:2089
 #, c-format
 msgid "malformed range literal: \"%s\""
 msgstr "有缺陷的范围字串:\"%s\""
 
-#: utils/adt/rangetypes.c:1986
+#: utils/adt/rangetypes.c:1980
 #, c-format
-msgid "Junk after \"empty\" keyword."
-msgstr "\"empty\" 关键字后有垃圾字符."
+#| msgid "Junk after \"empty\" keyword."
+msgid "Junk after \"empty\" key word."
+msgstr "\"empty\" 关键字后有Junk标识."
 
-#: utils/adt/rangetypes.c:2003
+#: utils/adt/rangetypes.c:1997
 #, c-format
 msgid "Missing left parenthesis or bracket."
 msgstr "缺少一个左大括弧或左方括弧."
 
-#: utils/adt/rangetypes.c:2016
+#: utils/adt/rangetypes.c:2010
 #, c-format
 msgid "Missing comma after lower bound."
 msgstr "下界后缺少逗号."
 
-#: utils/adt/rangetypes.c:2034
+#: utils/adt/rangetypes.c:2028
 #, c-format
 msgid "Too many commas."
 msgstr "太多逗号."
 
-#: utils/adt/rangetypes.c:2045
+#: utils/adt/rangetypes.c:2039
 #, c-format
 msgid "Junk after right parenthesis or bracket."
 msgstr "右大括号或右中括弧后的内容无用."
 
-#: utils/adt/rangetypes.c:2089 utils/adt/rangetypes.c:2097
-#: utils/adt/rowtypes.c:205 utils/adt/rowtypes.c:213
+#: utils/adt/rangetypes.c:2083 utils/adt/rangetypes.c:2091
+#: utils/adt/rowtypes.c:208 utils/adt/rowtypes.c:216
 #, c-format
 msgid "Unexpected end of input."
 msgstr "意外的输入末尾"
 
-#: utils/adt/regexp.c:274 utils/adt/regexp.c:1223 utils/adt/varlena.c:2919
+#: utils/adt/regexp.c:285 utils/adt/regexp.c:1234 utils/adt/varlena.c:3042
 #, c-format
 msgid "regular expression failed: %s"
 msgstr "正则表达式失败: %s"
 
-#: utils/adt/regexp.c:411
+#: utils/adt/regexp.c:422
 #, c-format
 msgid "invalid regexp option: \"%c\""
 msgstr "无效的正则表达式选项: \"%c\""
 
-#: utils/adt/regexp.c:883
+#: utils/adt/regexp.c:894
 #, c-format
 msgid "regexp_split does not support the global option"
 msgstr "regexp_split 不支持全局选项"
 
-#: utils/adt/regproc.c:123 utils/adt/regproc.c:143
+#: utils/adt/regproc.c:127 utils/adt/regproc.c:147
 #, c-format
 msgid "more than one function named \"%s\""
 msgstr "多个函数名为 \"%s\""
 
-#: utils/adt/regproc.c:468 utils/adt/regproc.c:488
+#: utils/adt/regproc.c:551 utils/adt/regproc.c:571
 #, c-format
 msgid "more than one operator named %s"
 msgstr "多个操作符名为 %s"
 
-#: utils/adt/regproc.c:630 gram.y:6386
-#, c-format
-msgid "missing argument"
-msgstr "缺少参数"
-
-#: utils/adt/regproc.c:631 gram.y:6387
-#, c-format
-msgid "Use NONE to denote the missing argument of a unary operator."
-msgstr "使用 NONE 表示一元操作符缺少的参数."
-
-#: utils/adt/regproc.c:635 utils/adt/regproc.c:1488 utils/adt/ruleutils.c:6044
-#: utils/adt/ruleutils.c:6099 utils/adt/ruleutils.c:6136
+#: utils/adt/regproc.c:743 utils/adt/regproc.c:784 utils/adt/regproc.c:1702
+#: utils/adt/ruleutils.c:7626 utils/adt/ruleutils.c:7749
 #, c-format
 msgid "too many arguments"
 msgstr "太多参数"
 
-#: utils/adt/regproc.c:636
+#: utils/adt/regproc.c:744 utils/adt/regproc.c:785
 #, c-format
 msgid "Provide two argument types for operator."
 msgstr "为操作符提供两个参数类型."
 
-#: utils/adt/regproc.c:1323 utils/adt/regproc.c:1328 utils/adt/varlena.c:2304
-#: utils/adt/varlena.c:2309
+#: utils/adt/regproc.c:1537 utils/adt/regproc.c:1542 utils/adt/varlena.c:2313
+#: utils/adt/varlena.c:2318
 #, c-format
 msgid "invalid name syntax"
 msgstr "无效的名字语法"
 
-#: utils/adt/regproc.c:1386
+#: utils/adt/regproc.c:1600
 #, c-format
 msgid "expected a left parenthesis"
 msgstr "需要一个左括弧"
 
-#: utils/adt/regproc.c:1402
+#: utils/adt/regproc.c:1616
 #, c-format
 msgid "expected a right parenthesis"
 msgstr "需要一个右括弧"
 
-#: utils/adt/regproc.c:1421
+#: utils/adt/regproc.c:1635
 #, c-format
 msgid "expected a type name"
 msgstr "需要一个类型名字"
 
-#: utils/adt/regproc.c:1453
+#: utils/adt/regproc.c:1667
 #, c-format
 msgid "improper type name"
 msgstr "不正确的类型名字"
 
-#: utils/adt/ri_triggers.c:375 utils/adt/ri_triggers.c:435
-#: utils/adt/ri_triggers.c:598 utils/adt/ri_triggers.c:838
-#: utils/adt/ri_triggers.c:1026 utils/adt/ri_triggers.c:1188
-#: utils/adt/ri_triggers.c:1376 utils/adt/ri_triggers.c:1547
-#: utils/adt/ri_triggers.c:1730 utils/adt/ri_triggers.c:1901
-#: utils/adt/ri_triggers.c:2117 utils/adt/ri_triggers.c:2299
-#: utils/adt/ri_triggers.c:2502 utils/adt/ri_triggers.c:2550
-#: utils/adt/ri_triggers.c:2595 utils/adt/ri_triggers.c:2757 gram.y:2969
-#, c-format
-msgid "MATCH PARTIAL not yet implemented"
-msgstr "MATCH PARTIAL 仍未实现"
-
-#: utils/adt/ri_triggers.c:409 utils/adt/ri_triggers.c:2841
-#: utils/adt/ri_triggers.c:3536 utils/adt/ri_triggers.c:3568
+#: utils/adt/ri_triggers.c:339 utils/adt/ri_triggers.c:2474
+#: utils/adt/ri_triggers.c:3227
 #, c-format
 msgid "insert or update on table \"%s\" violates foreign key constraint \"%s\""
 msgstr "插入或更新表 \"%s\" 违反外键约束 \"%s\""
 
-#: utils/adt/ri_triggers.c:412 utils/adt/ri_triggers.c:2844
+#: utils/adt/ri_triggers.c:342 utils/adt/ri_triggers.c:2477
 #, c-format
 msgid "MATCH FULL does not allow mixing of null and nonnull key values."
 msgstr "MATCH FULL 不允许空和非空键值的混合."
 
-#: utils/adt/ri_triggers.c:3097
+#: utils/adt/ri_triggers.c:2716
 #, c-format
 msgid "function \"%s\" must be fired for INSERT"
 msgstr "函数 \"%s\"必须为INSERT操作触发"
 
-#: utils/adt/ri_triggers.c:3103
+#: utils/adt/ri_triggers.c:2722
 #, c-format
 msgid "function \"%s\" must be fired for UPDATE"
 msgstr "函数 \"%s\"必须为UPDATE操作触发"
 
-#: utils/adt/ri_triggers.c:3117
+#: utils/adt/ri_triggers.c:2728
 #, c-format
 msgid "function \"%s\" must be fired for DELETE"
 msgstr "函数 \"%s\"必须为DELETE操作触发"
 
-#: utils/adt/ri_triggers.c:3146
+#: utils/adt/ri_triggers.c:2751
 #, c-format
 msgid "no pg_constraint entry for trigger \"%s\" on table \"%s\""
 msgstr "在pg_constraint上没有对于表 \"%2$s\" 上的触发器 \"%1$s\" 的项"
 
-#: utils/adt/ri_triggers.c:3148
+#: utils/adt/ri_triggers.c:2753
 #, c-format
 msgid ""
 "Remove this referential integrity trigger and its mates, then do ALTER TABLE "
@@ -16182,7 +18986,7 @@ msgstr ""
 "删除这个参照完整性触发器和与它相关的对象,然后执行ALTER TABLE ADD CONSTRAINT"
 "操作."
 
-#: utils/adt/ri_triggers.c:3503
+#: utils/adt/ri_triggers.c:3177
 #, c-format
 msgid ""
 "referential integrity query on \"%s\" from constraint \"%s\" on \"%s\" gave "
@@ -16190,229 +18994,258 @@ msgid ""
 msgstr ""
 "从在\"%3$s\"的约束\"%2$s\"中在\"%1$s\"上执行的参照完整性查询得出非期待结果."
 
-#: utils/adt/ri_triggers.c:3507
+#: utils/adt/ri_triggers.c:3181
 #, c-format
 msgid "This is most likely due to a rule having rewritten the query."
 msgstr "这很可能是由于规则正在重写查询"
 
-#: utils/adt/ri_triggers.c:3538
-#, c-format
-msgid "No rows were found in \"%s\"."
-msgstr "在 \"%s\" 没有发现行."
-
-#: utils/adt/ri_triggers.c:3570
+#: utils/adt/ri_triggers.c:3230
 #, c-format
 msgid "Key (%s)=(%s) is not present in table \"%s\"."
 msgstr "键值对(%s)=(%s)没有在表\"%s\"中出现."
 
-#: utils/adt/ri_triggers.c:3576
+#: utils/adt/ri_triggers.c:3237
 #, c-format
 msgid ""
 "update or delete on table \"%s\" violates foreign key constraint \"%s\" on "
 "table \"%s\""
 msgstr "在 \"%1$s\" 上的更新或删除操作违反了在 \"%3$s\" 上的外键约束 \"%2$s\""
 
-#: utils/adt/ri_triggers.c:3579
+#: utils/adt/ri_triggers.c:3241
 #, c-format
 msgid "Key (%s)=(%s) is still referenced from table \"%s\"."
 msgstr "键值对(%s)=(%s)仍然是从表\"%s\"引用的."
 
-#: utils/adt/rowtypes.c:99 utils/adt/rowtypes.c:488
+#: utils/adt/rowtypes.c:102 utils/adt/rowtypes.c:477
 #, c-format
 msgid "input of anonymous composite types is not implemented"
 msgstr "匿名复合类型输入仍未实现"
 
-#: utils/adt/rowtypes.c:152 utils/adt/rowtypes.c:180 utils/adt/rowtypes.c:203
-#: utils/adt/rowtypes.c:211 utils/adt/rowtypes.c:263 utils/adt/rowtypes.c:271
+#: utils/adt/rowtypes.c:155 utils/adt/rowtypes.c:183 utils/adt/rowtypes.c:206
+#: utils/adt/rowtypes.c:214 utils/adt/rowtypes.c:266 utils/adt/rowtypes.c:274
 #, c-format
 msgid "malformed record literal: \"%s\""
 msgstr "有缺陷的记录常量: \"%s\""
 
-#: utils/adt/rowtypes.c:153
+#: utils/adt/rowtypes.c:156
 #, c-format
 msgid "Missing left parenthesis."
 msgstr "缺少一个左括弧"
 
-#: utils/adt/rowtypes.c:181
+#: utils/adt/rowtypes.c:184
 #, c-format
 msgid "Too few columns."
 msgstr "字段太少."
 
-#: utils/adt/rowtypes.c:264
+#: utils/adt/rowtypes.c:267
 #, c-format
 msgid "Too many columns."
 msgstr "太多字段."
 
-#: utils/adt/rowtypes.c:272
+#: utils/adt/rowtypes.c:275
 #, c-format
 msgid "Junk after right parenthesis."
 msgstr "右括号后的内容无用."
 
-#: utils/adt/rowtypes.c:537
+#: utils/adt/rowtypes.c:526
 #, c-format
 msgid "wrong number of columns: %d, expected %d"
 msgstr "错误的字段个数: %d, 期望为 %d"
 
-#: utils/adt/rowtypes.c:564
+#: utils/adt/rowtypes.c:553
 #, c-format
 msgid "wrong data type: %u, expected %u"
 msgstr "错误的数据类型: %u, 期望为 %u"
 
-#: utils/adt/rowtypes.c:625
+#: utils/adt/rowtypes.c:614
 #, c-format
 msgid "improper binary format in record column %d"
 msgstr "在记录字段 %d 为不正确的二进制格式"
 
-#: utils/adt/rowtypes.c:925 utils/adt/rowtypes.c:1160
+#: utils/adt/rowtypes.c:896 utils/adt/rowtypes.c:1134
+#: utils/adt/rowtypes.c:1388 utils/adt/rowtypes.c:1665
 #, c-format
 msgid "cannot compare dissimilar column types %s and %s at record column %d"
 msgstr "在记录列%3$d上不能对不相似的列类型%1$s和%2$s进行比较"
 
-#: utils/adt/rowtypes.c:1011 utils/adt/rowtypes.c:1231
+#: utils/adt/rowtypes.c:985 utils/adt/rowtypes.c:1205
+#: utils/adt/rowtypes.c:1521 utils/adt/rowtypes.c:1761
 #, c-format
 msgid "cannot compare record types with different numbers of columns"
 msgstr "无法比较不同元素类型的数组"
 
-#: utils/adt/ruleutils.c:2478
+#: utils/adt/ruleutils.c:3999
 #, c-format
 msgid "rule \"%s\" has unsupported event type %d"
 msgstr "规则 \"%s\" 不支持事件类型 %d"
 
-#: utils/adt/selfuncs.c:5170
+#: utils/adt/selfuncs.c:5205
 #, c-format
 msgid "case insensitive matching not supported on type bytea"
 msgstr "在类型bytea上不支持对不区分大小写的匹配"
 
-#: utils/adt/selfuncs.c:5273
+#: utils/adt/selfuncs.c:5308
 #, c-format
 msgid "regular-expression matching not supported on type bytea"
 msgstr "在 bytea 类型上不支持正则表达式匹配"
 
-#: utils/adt/tid.c:70 utils/adt/tid.c:78 utils/adt/tid.c:86
+#: utils/adt/tid.c:71 utils/adt/tid.c:79 utils/adt/tid.c:87
 #, c-format
 msgid "invalid input syntax for type tid: \"%s\""
 msgstr "无效的 tid 类型输入语法: \"%s\""
 
-#: utils/adt/timestamp.c:98
+#: utils/adt/timestamp.c:107
 #, c-format
 msgid "TIMESTAMP(%d)%s precision must not be negative"
 msgstr "TIMESTAMP(%d)%s 精确度不能为负数"
 
-#: utils/adt/timestamp.c:104
+#: utils/adt/timestamp.c:113
 #, c-format
 msgid "TIMESTAMP(%d)%s precision reduced to maximum allowed, %d"
 msgstr "将TIMESTAMP(%d)%s减少到最大允许值,%d"
 
-#: utils/adt/timestamp.c:172 utils/adt/timestamp.c:446
+#: utils/adt/timestamp.c:178 utils/adt/timestamp.c:452
 #, c-format
 msgid "timestamp out of range: \"%s\""
 msgstr "时间戳超出范围: \"%s\""
 
-#: utils/adt/timestamp.c:190 utils/adt/timestamp.c:464
-#: utils/adt/timestamp.c:674
+#: utils/adt/timestamp.c:196 utils/adt/timestamp.c:470
+#: utils/adt/timestamp.c:925
 #, c-format
 msgid "date/time value \"%s\" is no longer supported"
 msgstr "日期/时间值 \"%s\" 不再被支持"
 
-#: utils/adt/timestamp.c:260
+#: utils/adt/timestamp.c:266
 #, c-format
 msgid "timestamp cannot be NaN"
 msgstr "时间戳不能是NaN"
 
-#: utils/adt/timestamp.c:381
+#: utils/adt/timestamp.c:387
 #, c-format
 msgid "timestamp(%d) precision must be between %d and %d"
 msgstr "timestamp(%d) 的精确度必需在 %d 到 %d 之间"
 
-#: utils/adt/timestamp.c:668 utils/adt/timestamp.c:3209
-#: utils/adt/timestamp.c:3338 utils/adt/timestamp.c:3722
+#: utils/adt/timestamp.c:520
+#, c-format
+#| msgid "invalid input syntax for type numeric: \"%s\""
+msgid "invalid input syntax for numeric time zone: \"%s\""
+msgstr "数字时区使用了无效的输入语法: \"%s\""
+
+#: utils/adt/timestamp.c:522
+#, c-format
+msgid "Numeric time zones must have \"-\" or \"+\" as first character."
+msgstr "数字时区必须是以\"-\" or \"+\" 作为第一个字符."
+
+#: utils/adt/timestamp.c:535
+#, c-format
+#| msgid "time zone displacement out of range"
+msgid "numeric time zone \"%s\" out of range"
+msgstr "数字时区\"%s\"超出范围"
+
+#: utils/adt/timestamp.c:638 utils/adt/timestamp.c:648
+#, c-format
+#| msgid "timestamp out of range: \"%s\""
+msgid "timestamp out of range: %d-%02d-%02d %d:%02d:%02g"
+msgstr "时间戳超出范围:%d-%02d-%02d %d:%02d:%02g"
+
+#: utils/adt/timestamp.c:919 utils/adt/timestamp.c:1490
+#: utils/adt/timestamp.c:1993 utils/adt/timestamp.c:3133
+#: utils/adt/timestamp.c:3138 utils/adt/timestamp.c:3143
+#: utils/adt/timestamp.c:3193 utils/adt/timestamp.c:3200
+#: utils/adt/timestamp.c:3207 utils/adt/timestamp.c:3227
+#: utils/adt/timestamp.c:3234 utils/adt/timestamp.c:3241
+#: utils/adt/timestamp.c:3270 utils/adt/timestamp.c:3277
+#: utils/adt/timestamp.c:3322 utils/adt/timestamp.c:3613
+#: utils/adt/timestamp.c:3742 utils/adt/timestamp.c:4133
 #, c-format
 msgid "interval out of range"
 msgstr "interval 超出范围"
 
-#: utils/adt/timestamp.c:809 utils/adt/timestamp.c:842
+#: utils/adt/timestamp.c:1060 utils/adt/timestamp.c:1093
 #, c-format
 msgid "invalid INTERVAL type modifier"
 msgstr "无效的INTERVAL类型修改器"
 
-#: utils/adt/timestamp.c:825
+#: utils/adt/timestamp.c:1076
 #, c-format
 msgid "INTERVAL(%d) precision must not be negative"
 msgstr "INTERVAL(%d) 的精确度不能为负数"
 
-#: utils/adt/timestamp.c:831
+#: utils/adt/timestamp.c:1082
 #, c-format
 msgid "INTERVAL(%d) precision reduced to maximum allowed, %d"
 msgstr "将INTERVAL(%d)减少到最大允许值,%d"
 
-#: utils/adt/timestamp.c:1183
+#: utils/adt/timestamp.c:1434
 #, c-format
 msgid "interval(%d) precision must be between %d and %d"
 msgstr "interval(%d) 的精确度必需在 %d 到 %d 之间"
 
-#: utils/adt/timestamp.c:2407
+#: utils/adt/timestamp.c:2722
 #, c-format
 msgid "cannot subtract infinite timestamps"
 msgstr "无法减去无限长的时间戳"
 
-#: utils/adt/timestamp.c:3464 utils/adt/timestamp.c:4059
-#: utils/adt/timestamp.c:4099
+#: utils/adt/timestamp.c:3868 utils/adt/timestamp.c:4474
+#: utils/adt/timestamp.c:4514
 #, c-format
 msgid "timestamp units \"%s\" not supported"
 msgstr "不支持时间戳单位 \"%s\""
 
-#: utils/adt/timestamp.c:3478 utils/adt/timestamp.c:4109
+#: utils/adt/timestamp.c:3882 utils/adt/timestamp.c:4524
 #, c-format
 msgid "timestamp units \"%s\" not recognized"
 msgstr "时间戳单位 \"%s\" 不被认可"
 
-#: utils/adt/timestamp.c:3618 utils/adt/timestamp.c:4270
-#: utils/adt/timestamp.c:4311
+#: utils/adt/timestamp.c:4022 utils/adt/timestamp.c:4685
+#: utils/adt/timestamp.c:4726
 #, c-format
 msgid "timestamp with time zone units \"%s\" not supported"
 msgstr "不支持带时区的时间戳单位 \"%s\""
 
-#: utils/adt/timestamp.c:3635 utils/adt/timestamp.c:4320
+#: utils/adt/timestamp.c:4039 utils/adt/timestamp.c:4735
 #, c-format
 msgid "timestamp with time zone units \"%s\" not recognized"
 msgstr "带时区的时间戳单位 \"%s\" 不被认可"
 
-#: utils/adt/timestamp.c:3715 utils/adt/timestamp.c:4426
+#: utils/adt/timestamp.c:4120
+#, c-format
+msgid ""
+"interval units \"%s\" not supported because months usually have fractional "
+"weeks"
+msgstr "时间间隔的单位 \"%s\"不支持使用,因为月以周来计算时,通常带有分数值"
+
+#: utils/adt/timestamp.c:4126 utils/adt/timestamp.c:4841
 #, c-format
 msgid "interval units \"%s\" not supported"
 msgstr "不支持 \"%s\" 的 interval 单位"
 
-#: utils/adt/timestamp.c:3731 utils/adt/timestamp.c:4453
+#: utils/adt/timestamp.c:4142 utils/adt/timestamp.c:4868
 #, c-format
 msgid "interval units \"%s\" not recognized"
 msgstr "interval 单位 \"%s\" 不被认可"
 
-#: utils/adt/timestamp.c:4523 utils/adt/timestamp.c:4695
+#: utils/adt/timestamp.c:4951 utils/adt/timestamp.c:5135
 #, c-format
 msgid "could not convert to time zone \"%s\""
 msgstr "无法转换到时间区域\"%s\""
 
-#: utils/adt/timestamp.c:4555 utils/adt/timestamp.c:4728
-#, c-format
-msgid "interval time zone \"%s\" must not specify month"
-msgstr "时区 \"%s\" 间隔不可以指定月份"
-
-#: utils/adt/trigfuncs.c:41
+#: utils/adt/trigfuncs.c:42
 #, c-format
 msgid "suppress_redundant_updates_trigger: must be called as trigger"
 msgstr "suppress_redundant_updates_trigger:必须以触发器的形式调用"
 
-#: utils/adt/trigfuncs.c:47
+#: utils/adt/trigfuncs.c:48
 #, c-format
 msgid "suppress_redundant_updates_trigger: must be called on update"
 msgstr "suppress_redundant_updates_trigger: 必须在更新操作上调用"
 
-#: utils/adt/trigfuncs.c:53
+#: utils/adt/trigfuncs.c:54
 #, c-format
 msgid "suppress_redundant_updates_trigger: must be called before update"
 msgstr "suppress_redundant_updates_trigger: 必须在更新操作前调用"
 
-#: utils/adt/trigfuncs.c:59
+#: utils/adt/trigfuncs.c:60
 #, c-format
 msgid "suppress_redundant_updates_trigger: must be called for each row"
 msgstr "suppress_redundant_updates_trigger: 必须为每条记录调用"
@@ -16422,7 +19255,7 @@ msgstr "suppress_redundant_updates_trigger: 必须为每条记录调用"
 msgid "gtsvector_in not implemented"
 msgstr "没有实现gtsvector_in"
 
-#: utils/adt/tsquery.c:154 utils/adt/tsquery.c:390
+#: utils/adt/tsquery.c:154 utils/adt/tsquery.c:389
 #: utils/adt/tsvector_parser.c:133
 #, c-format
 msgid "syntax error in tsquery: \"%s\""
@@ -16433,26 +19266,32 @@ msgstr "在tsquery中的语法错误:\"%s\""
 msgid "no operand in tsquery: \"%s\""
 msgstr "在tsquery中没有操作数:\"%s\""
 
-#: utils/adt/tsquery.c:248
+#: utils/adt/tsquery.c:247
 #, c-format
 msgid "value is too big in tsquery: \"%s\""
 msgstr "在tsquery中的值太大了:\"%s\""
 
-#: utils/adt/tsquery.c:253
+#: utils/adt/tsquery.c:252
 #, c-format
 msgid "operand is too long in tsquery: \"%s\""
 msgstr "在tsquery中操作数太长了: \"%s\""
 
-#: utils/adt/tsquery.c:281
+#: utils/adt/tsquery.c:280
 #, c-format
 msgid "word is too long in tsquery: \"%s\""
 msgstr "在tsquery中的词太长了:\"%s\" "
 
-#: utils/adt/tsquery.c:510
+#: utils/adt/tsquery.c:509
 #, c-format
 msgid "text-search query doesn't contain lexemes: \"%s\""
 msgstr "文本搜索查询没有包含词汇单位:\"%s\""
 
+#: utils/adt/tsquery.c:520 utils/adt/tsquery_util.c:340
+#, c-format
+#| msgid "requested length too large"
+msgid "tsquery is too large"
+msgstr "tsquery查询太大"
+
 #: utils/adt/tsquery_cleanup.c:284
 #, c-format
 msgid ""
@@ -16460,7 +19299,7 @@ msgid ""
 "ignored"
 msgstr "文本搜索查询只包含结束词或者不包含词汇单位, 被忽略"
 
-#: utils/adt/tsquery_rewrite.c:295
+#: utils/adt/tsquery_rewrite.c:293
 #, c-format
 msgid "ts_rewrite query must return two tsquery columns"
 msgstr "ts_rewrite查询必须返回两个tsquery字段的记录"
@@ -16480,17 +19319,17 @@ msgstr "权重数组太短了."
 msgid "array of weight must not contain nulls"
 msgstr "权重数组不能包含空值"
 
-#: utils/adt/tsrank.c:422 utils/adt/tsrank.c:748
+#: utils/adt/tsrank.c:422 utils/adt/tsrank.c:749
 #, c-format
 msgid "weight out of range"
 msgstr "权重 超出范围"
 
-#: utils/adt/tsvector.c:212
+#: utils/adt/tsvector.c:213
 #, c-format
 msgid "word is too long (%ld bytes, max %ld bytes)"
 msgstr "词太长了(%ld字节, 最大 %ld 字节)"
 
-#: utils/adt/tsvector.c:219
+#: utils/adt/tsvector.c:220
 #, c-format
 msgid "string is too long for tsvector (%ld bytes, max %ld bytes)"
 msgstr "字符串对于tsvector来说太长了(当前 %ld字节, 最大允许值是%ld字节)"
@@ -16565,59 +19404,65 @@ msgstr "类型 %s 的长度至少为 1"
 msgid "length for type %s cannot exceed %d"
 msgstr "类型 %s 的长度不能超过 %d"
 
-#: utils/adt/varbit.c:167 utils/adt/varbit.c:310 utils/adt/varbit.c:367
+#: utils/adt/varbit.c:163 utils/adt/varbit.c:475 utils/adt/varbit.c:973
+#, c-format
+#| msgid "array size exceeds the maximum allowed (%d)"
+msgid "bit string length exceeds the maximum allowed (%d)"
+msgstr "位字符串长度超过了最大允许值(%d)"
+
+#: utils/adt/varbit.c:177 utils/adt/varbit.c:320 utils/adt/varbit.c:377
 #, c-format
 msgid "bit string length %d does not match type bit(%d)"
 msgstr "bit字符串的长度(%d)与bit类型(%d)不匹配."
 
-#: utils/adt/varbit.c:189 utils/adt/varbit.c:491
+#: utils/adt/varbit.c:199 utils/adt/varbit.c:511
 #, c-format
 msgid "\"%c\" is not a valid binary digit"
 msgstr "\"%c\" 不是一个有效的二进制数"
 
-#: utils/adt/varbit.c:214 utils/adt/varbit.c:516
+#: utils/adt/varbit.c:224 utils/adt/varbit.c:536
 #, c-format
 msgid "\"%c\" is not a valid hexadecimal digit"
 msgstr "\"%c\" 不是一个有效的十六进制数"
 
-#: utils/adt/varbit.c:301 utils/adt/varbit.c:604
+#: utils/adt/varbit.c:311 utils/adt/varbit.c:627
 #, c-format
 msgid "invalid length in external bit string"
 msgstr "无效的外部位串长度"
 
-#: utils/adt/varbit.c:469 utils/adt/varbit.c:613 utils/adt/varbit.c:708
+#: utils/adt/varbit.c:489 utils/adt/varbit.c:636 utils/adt/varbit.c:731
 #, c-format
 msgid "bit string too long for type bit varying(%d)"
 msgstr "bit字符串对于可变bit类型(%d)来说太长了."
 
-#: utils/adt/varbit.c:1038 utils/adt/varbit.c:1140 utils/adt/varlena.c:791
-#: utils/adt/varlena.c:855 utils/adt/varlena.c:999 utils/adt/varlena.c:1955
-#: utils/adt/varlena.c:2022
+#: utils/adt/varbit.c:1066 utils/adt/varbit.c:1168 utils/adt/varlena.c:800
+#: utils/adt/varlena.c:864 utils/adt/varlena.c:1008 utils/adt/varlena.c:1964
+#: utils/adt/varlena.c:2031
 #, c-format
 msgid "negative substring length not allowed"
 msgstr "不允许子串长度为负数"
 
-#: utils/adt/varbit.c:1198
+#: utils/adt/varbit.c:1226
 #, c-format
 msgid "cannot AND bit strings of different sizes"
 msgstr "无法为不同大小的字符串进行与 (AND) 位运算"
 
-#: utils/adt/varbit.c:1240
+#: utils/adt/varbit.c:1268
 #, c-format
 msgid "cannot OR bit strings of different sizes"
 msgstr "无法为不同大小的字符串进行或 (OR) 位运算"
 
-#: utils/adt/varbit.c:1287
+#: utils/adt/varbit.c:1315
 #, c-format
 msgid "cannot XOR bit strings of different sizes"
 msgstr "无法为不同大小的字符串进行异或 (XOR) 位运算"
 
-#: utils/adt/varbit.c:1765 utils/adt/varbit.c:1823
+#: utils/adt/varbit.c:1793 utils/adt/varbit.c:1851
 #, c-format
 msgid "bit index %d out of valid range (0..%d)"
 msgstr "比特索引 %d 超出有效范围 (0..%d)"
 
-#: utils/adt/varbit.c:1774 utils/adt/varlena.c:2222
+#: utils/adt/varbit.c:1802 utils/adt/varlena.c:2231
 #, c-format
 msgid "new bit must be 0 or 1"
 msgstr "新的位必须为 0 或 1"
@@ -16632,59 +19477,68 @@ msgstr "对于字符类型来说这个值太长了(%d)"
 msgid "value too long for type character varying(%d)"
 msgstr "对于可变字符类型来说,值太长了(%d)"
 
-#: utils/adt/varlena.c:1371
+#: utils/adt/varlena.c:1380
 #, c-format
 msgid "could not determine which collation to use for string comparison"
 msgstr "无法确定字符串比较中使用哪种排序规则"
 
-#: utils/adt/varlena.c:1417 utils/adt/varlena.c:1430
+#: utils/adt/varlena.c:1426 utils/adt/varlena.c:1439
 #, c-format
 msgid "could not convert string to UTF-16: error code %lu"
 msgstr "无法将字符串转换为UTF-16编码: 错误码 %lu"
 
-#: utils/adt/varlena.c:1445
+#: utils/adt/varlena.c:1454
 #, c-format
 msgid "could not compare Unicode strings: %m"
 msgstr "无法比较Unicode类型字符串: %m"
 
-#: utils/adt/varlena.c:2100 utils/adt/varlena.c:2131 utils/adt/varlena.c:2167
-#: utils/adt/varlena.c:2210
+#: utils/adt/varlena.c:2109 utils/adt/varlena.c:2140 utils/adt/varlena.c:2176
+#: utils/adt/varlena.c:2219
 #, c-format
 msgid "index %d out of valid range, 0..%d"
 msgstr "索引 %d 超出有效范围, 0..%d"
 
-#: utils/adt/varlena.c:3012
+#: utils/adt/varlena.c:3138
 #, c-format
 msgid "field position must be greater than zero"
 msgstr "字段的位置必须大于0"
 
-#: utils/adt/varlena.c:3881 utils/adt/varlena.c:3942
-#, c-format
-msgid "unterminated conversion specifier"
-msgstr "未结束的转换标识符"
-
-# fe-exec.c:2130
-#: utils/adt/varlena.c:3905 utils/adt/varlena.c:3921
+#: utils/adt/varlena.c:4017
 #, c-format
-msgid "argument number is out of range"
-msgstr "参数号超出了范围"
+#| msgid "unterminated conversion specifier"
+msgid "unterminated format specifier"
+msgstr "未结束的格式标识器"
 
-#: utils/adt/varlena.c:3948
+#: utils/adt/varlena.c:4149 utils/adt/varlena.c:4269
 #, c-format
-msgid "conversion specifies argument 0, but arguments are numbered from 1"
-msgstr "转换指定了参数 0, 但参数值序号从 1开始记起"
+#| msgid "unrecognized conversion specifier \"%c\""
+msgid "unrecognized conversion type specifier \"%c\""
+msgstr "不能识别的转换类型标识符 \"%c\""
 
-#: utils/adt/varlena.c:3955
+#: utils/adt/varlena.c:4161 utils/adt/varlena.c:4218
 #, c-format
 msgid "too few arguments for format"
 msgstr "格式化的参数太少"
 
-#: utils/adt/varlena.c:3976
+#: utils/adt/varlena.c:4312 utils/adt/varlena.c:4495
+#, c-format
+#| msgid "input is out of range"
+msgid "number is out of range"
+msgstr "数字超出范围"
+
+#: utils/adt/varlena.c:4376 utils/adt/varlena.c:4404
+#, c-format
+#| msgid "conversion specifies argument 0, but arguments are numbered from 1"
+msgid "format specifies argument 0, but arguments are numbered from 1"
+msgstr "格式指定了参数 0, 但参数值序号从 1开始记起"
+
+#: utils/adt/varlena.c:4397
 #, c-format
-msgid "unrecognized conversion specifier \"%c\""
-msgstr "不能识别的转换标识符 \"%c\""
+#| msgid "third argument of cast function must be type boolean"
+msgid "width argument position must be ended by \"$\""
+msgstr "width参数位置必须以\"$\"结束"
 
-#: utils/adt/varlena.c:4005
+#: utils/adt/varlena.c:4442
 #, c-format
 msgid "null values cannot be formatted as an SQL identifier"
 msgstr "null值不能格式化为SQL标识符"
@@ -16699,74 +19553,74 @@ msgstr "ntile的参数必须大于零"
 msgid "argument of nth_value must be greater than zero"
 msgstr "nth_value的参数必须大于零"
 
-#: utils/adt/xml.c:169
+#: utils/adt/xml.c:170
 #, c-format
 msgid "unsupported XML feature"
 msgstr "不支持的XML特性"
 
-#: utils/adt/xml.c:170
+#: utils/adt/xml.c:171
 #, c-format
 msgid "This functionality requires the server to be built with libxml support."
 msgstr "这个功能是需要在创建服务器时带有对libxml的支持才能实现 "
 
-#: utils/adt/xml.c:171
+#: utils/adt/xml.c:172
 #, c-format
 msgid "You need to rebuild PostgreSQL using --with-libxml."
 msgstr "您需要使用--with-libxml选项重新生成PostgreSQL"
 
-#: utils/adt/xml.c:190 utils/mb/mbutils.c:515
+#: utils/adt/xml.c:191 utils/mb/mbutils.c:523
 #, c-format
 msgid "invalid encoding name \"%s\""
 msgstr "无效的编码名称 \"%s\""
 
 # command.c:122
-#: utils/adt/xml.c:436 utils/adt/xml.c:441
+#: utils/adt/xml.c:434 utils/adt/xml.c:439
 #, c-format
 msgid "invalid XML comment"
 msgstr "无效的XML注释"
 
-#: utils/adt/xml.c:570
+#: utils/adt/xml.c:568
 #, c-format
 msgid "not an XML document"
 msgstr "不是一个XML文档"
 
-#: utils/adt/xml.c:729 utils/adt/xml.c:752
+#: utils/adt/xml.c:727 utils/adt/xml.c:750
 #, c-format
 msgid "invalid XML processing instruction"
 msgstr "无效的XML处理命令"
 
-#: utils/adt/xml.c:730
+#: utils/adt/xml.c:728
 #, c-format
 msgid "XML processing instruction target name cannot be \"%s\"."
 msgstr "XML处理命令目标名称不能是\"%s\"."
 
-#: utils/adt/xml.c:753
+#: utils/adt/xml.c:751
 #, c-format
 msgid "XML processing instruction cannot contain \"?>\"."
 msgstr "XML处理命令不能包含\"?>\"."
 
-#: utils/adt/xml.c:832
+#: utils/adt/xml.c:830
 #, c-format
 msgid "xmlvalidate is not implemented"
 msgstr "没有实现xmlvalidate"
 
-#: utils/adt/xml.c:911
+#: utils/adt/xml.c:909
 #, c-format
 msgid "could not initialize XML library"
 msgstr "无法初始化XML库"
 
-#: utils/adt/xml.c:912
+#: utils/adt/xml.c:910
 #, c-format
 msgid ""
 "libxml2 has incompatible char type: sizeof(char)=%u, sizeof(xmlChar)=%u."
 msgstr "libxml2具有不兼容的字符类型: sizeof(char)=%u, sizeof(xmlChar)=%u. "
 
-#: utils/adt/xml.c:998
+#: utils/adt/xml.c:996
 #, c-format
 msgid "could not set up XML error handler"
 msgstr "无法设置XML错误处理函数"
 
-#: utils/adt/xml.c:999
+#: utils/adt/xml.c:997
 #, c-format
 msgid ""
 "This probably indicates that the version of libxml2 being used is not "
@@ -16774,159 +19628,159 @@ msgid ""
 msgstr ""
 "这可能意味着正使用的libxml2版本与PostgreSQL编译 时使用的libxml2头文件不兼容"
 
-#: utils/adt/xml.c:1733
+#: utils/adt/xml.c:1732
 msgid "Invalid character value."
 msgstr "无效的字符值"
 
-#: utils/adt/xml.c:1736
+#: utils/adt/xml.c:1735
 msgid "Space required."
 msgstr "要求空格"
 
-#: utils/adt/xml.c:1739
+#: utils/adt/xml.c:1738
 msgid "standalone accepts only 'yes' or 'no'."
 msgstr "单机只接受'yes'或'no'."
 
-#: utils/adt/xml.c:1742
+#: utils/adt/xml.c:1741
 msgid "Malformed declaration: missing version."
 msgstr "有缺陷的声明: 丢失版本."
 
-#: utils/adt/xml.c:1745
+#: utils/adt/xml.c:1744
 msgid "Missing encoding in text declaration."
 msgstr "在文本声明中丢失编码"
 
-#: utils/adt/xml.c:1748
+#: utils/adt/xml.c:1747
 msgid "Parsing XML declaration: '?>' expected."
 msgstr "正在解析XML声明: 期望'?>' "
 
-#: utils/adt/xml.c:1751
+#: utils/adt/xml.c:1750
 #, c-format
 msgid "Unrecognized libxml error code: %d."
 msgstr "未知的libxml错误码: %d"
 
-#: utils/adt/xml.c:2026
+#: utils/adt/xml.c:2025
 #, c-format
 msgid "XML does not support infinite date values."
 msgstr "XML不支持无限日期值"
 
-#: utils/adt/xml.c:2048 utils/adt/xml.c:2075
+#: utils/adt/xml.c:2047 utils/adt/xml.c:2074
 #, c-format
 msgid "XML does not support infinite timestamp values."
 msgstr "XML不支持无限时间戳值"
 
-#: utils/adt/xml.c:2466
+#: utils/adt/xml.c:2465
 #, c-format
 msgid "invalid query"
 msgstr "无效的查询"
 
-#: utils/adt/xml.c:3776
+#: utils/adt/xml.c:3778
 #, c-format
 msgid "invalid array for XML namespace mapping"
 msgstr "对于XML命名空间映射的无效数组"
 
-#: utils/adt/xml.c:3777
+#: utils/adt/xml.c:3779
 #, c-format
 msgid ""
 "The array must be two-dimensional with length of the second axis equal to 2."
 msgstr "数组必须是第二个坐标轴等于2的两维数组"
 
-#: utils/adt/xml.c:3801
+#: utils/adt/xml.c:3803
 #, c-format
 msgid "empty XPath expression"
 msgstr "空的XPath表达式"
 
-#: utils/adt/xml.c:3850
+#: utils/adt/xml.c:3852
 #, c-format
 msgid "neither namespace name nor URI may be null"
 msgstr "URI或者命名空间名称不可为空."
 
 # fe-misc.c:702
-#: utils/adt/xml.c:3857
+#: utils/adt/xml.c:3859
 #, c-format
 msgid "could not register XML namespace with name \"%s\" and URI \"%s\""
 msgstr "无法以名称\"%s\"和URI\"%s\"来注册XML命名空间"
 
-#: utils/cache/lsyscache.c:2457 utils/cache/lsyscache.c:2490
-#: utils/cache/lsyscache.c:2523 utils/cache/lsyscache.c:2556
+#: utils/cache/lsyscache.c:2478 utils/cache/lsyscache.c:2511
+#: utils/cache/lsyscache.c:2544 utils/cache/lsyscache.c:2577
 #, c-format
 msgid "type %s is only a shell"
 msgstr "类型 %s 只是一个 shell"
 
-#: utils/cache/lsyscache.c:2462
+#: utils/cache/lsyscache.c:2483
 #, c-format
 msgid "no input function available for type %s"
 msgstr "没有有效的 %s 类型输入函数"
 
-#: utils/cache/lsyscache.c:2495
+#: utils/cache/lsyscache.c:2516
 #, c-format
 msgid "no output function available for type %s"
 msgstr "没有有效的 %s 类型输出函数"
 
-#: utils/cache/plancache.c:669
+#: utils/cache/plancache.c:698
 #, c-format
 msgid "cached plan must not change result type"
 msgstr "已缓冲的计划不能改变结果类型"
 
-#: utils/cache/relcache.c:4340
+#: utils/cache/relcache.c:4828
 #, c-format
 msgid "could not create relation-cache initialization file \"%s\": %m"
 msgstr "无法创建 relation-cache 初始化文件 \"%s\": %m"
 
-#: utils/cache/relcache.c:4342
+#: utils/cache/relcache.c:4830
 #, c-format
 msgid "Continuing anyway, but there's something wrong."
 msgstr "仍继续, 但肯定有些错误存在."
 
-#: utils/cache/relcache.c:4556
+#: utils/cache/relcache.c:5044
 #, c-format
 msgid "could not remove cache file \"%s\": %m"
 msgstr "无法删除缓存文件 \"%s\": %m"
 
-#: utils/cache/relmapper.c:453
+#: utils/cache/relmapper.c:506
 #, c-format
 msgid "cannot PREPARE a transaction that modified relation mapping"
 msgstr "不支持对修改关系映射的事务进行PREPARE操作"
 
-#: utils/cache/relmapper.c:595 utils/cache/relmapper.c:701
+#: utils/cache/relmapper.c:649 utils/cache/relmapper.c:749
 #, c-format
 msgid "could not open relation mapping file \"%s\": %m"
 msgstr "无法打开关系映射文件 \"%s\": %m"
 
-#: utils/cache/relmapper.c:608
+#: utils/cache/relmapper.c:662
 #, c-format
 msgid "could not read relation mapping file \"%s\": %m"
 msgstr "无法读取关系映射文件 \"%s\": %m"
 
-#: utils/cache/relmapper.c:618
+#: utils/cache/relmapper.c:672
 #, c-format
 msgid "relation mapping file \"%s\" contains invalid data"
 msgstr "在关系映射文件\"%s\"中包含无效的数据"
 
-#: utils/cache/relmapper.c:628
+#: utils/cache/relmapper.c:682
 #, c-format
 msgid "relation mapping file \"%s\" contains incorrect checksum"
 msgstr "在关系映射文件\"%s\"中包含不正确的检验和"
 
-#: utils/cache/relmapper.c:740
+#: utils/cache/relmapper.c:788
 #, c-format
 msgid "could not write to relation mapping file \"%s\": %m"
 msgstr "无法对关系映射文件 \"%s\" 进行写操作: %m"
 
-#: utils/cache/relmapper.c:753
+#: utils/cache/relmapper.c:801
 #, c-format
 msgid "could not fsync relation mapping file \"%s\": %m"
 msgstr "无法将关系映射文件\"%s\"的内容刷新到磁盘: %m"
 
-#: utils/cache/relmapper.c:759
+#: utils/cache/relmapper.c:807
 #, c-format
 msgid "could not close relation mapping file \"%s\": %m"
 msgstr "无法关闭关系映射文件\"%s\": %m"
 
-#: utils/cache/typcache.c:697
+#: utils/cache/typcache.c:704
 #, c-format
 msgid "type %s is not composite"
 msgstr "类型 %s 不是复合类型"
 
-#: utils/cache/typcache.c:711
+#: utils/cache/typcache.c:718
 #, c-format
 msgid "record type has not been registered"
 msgstr "记录类型没有注册"
@@ -16941,96 +19795,101 @@ msgstr "TRAP: ExceptionalCondition: 错误参数\n"
 msgid "TRAP: %s(\"%s\", File: \"%s\", Line: %d)\n"
 msgstr "TRAP: %s(\"%s\", 文件: \"%s\", 行数: %d)\n"
 
-#: utils/error/elog.c:1546
+#: utils/error/elog.c:320 utils/error/elog.c:1291
+#, c-format
+msgid "error occurred at %s:%d before error message processing is available\n"
+msgstr "能得到错误消息处理之前, 错误出现在%s:%d\n"
+
+#: utils/error/elog.c:1807
 #, c-format
 msgid "could not reopen file \"%s\" as stderr: %m"
 msgstr "无法作为标准错误重新打开文件 \"%s\": %m"
 
-#: utils/error/elog.c:1559
+#: utils/error/elog.c:1820
 #, c-format
 msgid "could not reopen file \"%s\" as stdout: %m"
 msgstr "无法作为标准输出重新打开文件 \"%s\": %m"
 
-#: utils/error/elog.c:1948 utils/error/elog.c:1958 utils/error/elog.c:1968
+#: utils/error/elog.c:2295 utils/error/elog.c:2312 utils/error/elog.c:2328
 msgid "[unknown]"
 msgstr "[未知]"
 
-#: utils/error/elog.c:2316 utils/error/elog.c:2615 utils/error/elog.c:2693
+#: utils/error/elog.c:2766 utils/error/elog.c:3065 utils/error/elog.c:3173
 msgid "missing error text"
 msgstr "缺少错误信息"
 
-#: utils/error/elog.c:2319 utils/error/elog.c:2322 utils/error/elog.c:2696
-#: utils/error/elog.c:2699
+#: utils/error/elog.c:2769 utils/error/elog.c:2772 utils/error/elog.c:3176
+#: utils/error/elog.c:3179
 #, c-format
 msgid " at character %d"
 msgstr " 第 %d 个字符处"
 
-#: utils/error/elog.c:2332 utils/error/elog.c:2339
+#: utils/error/elog.c:2782 utils/error/elog.c:2789
 msgid "DETAIL:  "
 msgstr "详细信息:  "
 
-#: utils/error/elog.c:2346
+#: utils/error/elog.c:2796
 msgid "HINT:  "
 msgstr "提示:  "
 
-#: utils/error/elog.c:2353
+#: utils/error/elog.c:2803
 msgid "QUERY:  "
 msgstr "查询:  "
 
-#: utils/error/elog.c:2360
+#: utils/error/elog.c:2810
 msgid "CONTEXT:  "
 msgstr "上下文:  "
 
-#: utils/error/elog.c:2370
+#: utils/error/elog.c:2820
 #, c-format
 msgid "LOCATION:  %s, %s:%d\n"
 msgstr "位置:  %s, %s:%d\n"
 
-#: utils/error/elog.c:2377
+#: utils/error/elog.c:2827
 #, c-format
 msgid "LOCATION:  %s:%d\n"
 msgstr "位置:  %s:%d\n"
 
-#: utils/error/elog.c:2391
+#: utils/error/elog.c:2841
 msgid "STATEMENT:  "
 msgstr "语句:  "
 
 #. translator: This string will be truncated at 47
 #. characters expanded.
-#: utils/error/elog.c:2808
+#: utils/error/elog.c:3294
 #, c-format
 msgid "operating system error %d"
 msgstr "操作系统错误 %d"
 
-#: utils/error/elog.c:2831
+#: utils/error/elog.c:3489
 msgid "DEBUG"
 msgstr "调试"
 
-#: utils/error/elog.c:2835
+#: utils/error/elog.c:3493
 msgid "LOG"
 msgstr "日志"
 
-#: utils/error/elog.c:2838
+#: utils/error/elog.c:3496
 msgid "INFO"
 msgstr "信息"
 
-#: utils/error/elog.c:2841
+#: utils/error/elog.c:3499
 msgid "NOTICE"
 msgstr "注意"
 
-#: utils/error/elog.c:2844
+#: utils/error/elog.c:3502
 msgid "WARNING"
 msgstr "警告"
 
-#: utils/error/elog.c:2847
+#: utils/error/elog.c:3505
 msgid "ERROR"
 msgstr "错误"
 
-#: utils/error/elog.c:2850
+#: utils/error/elog.c:3508
 msgid "FATAL"
 msgstr "致命错误"
 
-#: utils/error/elog.c:2853
+#: utils/error/elog.c:3511
 msgid "PANIC"
 msgstr "比致命错误还过分的错误"
 
@@ -17103,42 +19962,47 @@ msgstr "Magic块带有未期望的长度或者填充的方式不同."
 msgid "incompatible library \"%s\": magic block mismatch"
 msgstr "不兼容的库\"%s\": 魔法块不匹配"
 
-#: utils/fmgr/dfmgr.c:545
+#: utils/fmgr/dfmgr.c:543
 #, c-format
 msgid "access to library \"%s\" is not allowed"
 msgstr "不允许对库 \"%s\"进行访问"
 
-#: utils/fmgr/dfmgr.c:572
+#: utils/fmgr/dfmgr.c:569
 #, c-format
 msgid "invalid macro name in dynamic library path: %s"
 msgstr "动态库路径中无效的宏名字: %s"
 
-#: utils/fmgr/dfmgr.c:617
+#: utils/fmgr/dfmgr.c:609
 #, c-format
 msgid "zero-length component in parameter \"dynamic_library_path\""
 msgstr "在参数\"dynamic_library_path\"的组件长度为零"
 
-#: utils/fmgr/dfmgr.c:636
+#: utils/fmgr/dfmgr.c:628
 #, c-format
 msgid "component in parameter \"dynamic_library_path\" is not an absolute path"
 msgstr "在参数\"dynamic_library_path\"中的组成部分不是绝对路径."
 
-#: utils/fmgr/fmgr.c:271
+#: utils/fmgr/fmgr.c:272
 #, c-format
 msgid "internal function \"%s\" is not in internal lookup table"
 msgstr "内部函数 \"%s\" 不在内部查找表中"
 
-#: utils/fmgr/fmgr.c:481
+#: utils/fmgr/fmgr.c:479
 #, c-format
 msgid "unrecognized API version %d reported by info function \"%s\""
 msgstr "信息函数\"%2$s\"报告无法识别的API版本%1$d."
 
-#: utils/fmgr/fmgr.c:852 utils/fmgr/fmgr.c:2113
+#: utils/fmgr/fmgr.c:850 utils/fmgr/fmgr.c:2111
 #, c-format
 msgid "function %u has too many arguments (%d, maximum is %d)"
 msgstr "函数 %u 参数太多 (%d, 最大个数为 %d)"
 
-#: utils/fmgr/funcapi.c:354
+#: utils/fmgr/fmgr.c:2532
+#, c-format
+msgid "language validation function %u called for language %u instead of %u"
+msgstr "语言校验函数 %u 调用的目标语言是 %u ,而不是 %u"
+
+#: utils/fmgr/funcapi.c:355
 #, c-format
 msgid ""
 "could not determine actual result type for function \"%s\" declared to "
@@ -17160,82 +20024,96 @@ msgstr "没有提供字段别名"
 msgid "could not determine row description for function returning record"
 msgstr "无法确定函数返回记录的行描述"
 
-#: utils/init/miscinit.c:115
+#: utils/init/miscinit.c:116
 #, c-format
 msgid "could not change directory to \"%s\": %m"
 msgstr "无法跳转到目录 \"%s\" 中: %m"
 
-#: utils/init/miscinit.c:381 utils/misc/guc.c:5293
+#: utils/init/miscinit.c:311 utils/misc/guc.c:5761
 #, c-format
 msgid "cannot set parameter \"%s\" within security-restricted operation"
 msgstr "无法在对安全有严格限制的操作中设置参数\"%s\" "
 
-#: utils/init/miscinit.c:460
+#: utils/init/miscinit.c:390
 #, c-format
 msgid "role \"%s\" is not permitted to log in"
 msgstr "不允许角色\"%s\" 进行登录"
 
-#: utils/init/miscinit.c:478
+#: utils/init/miscinit.c:408
 #, c-format
 msgid "too many connections for role \"%s\""
 msgstr "由角色\"%s\"发起的连接太多了"
 
-#: utils/init/miscinit.c:538
+#: utils/init/miscinit.c:468
 #, c-format
 msgid "permission denied to set session authorization"
 msgstr "设置会话认证权限不允许"
 
-#: utils/init/miscinit.c:618
+#: utils/init/miscinit.c:548
 #, c-format
 msgid "invalid role OID: %u"
 msgstr "无效的角色OID:%u"
 
-#: utils/init/miscinit.c:742
+#: utils/init/miscinit.c:675
 #, c-format
 msgid "could not create lock file \"%s\": %m"
 msgstr "无法创建锁文件 \"%s\": %m"
 
-#: utils/init/miscinit.c:756
+#: utils/init/miscinit.c:689
 #, c-format
 msgid "could not open lock file \"%s\": %m"
 msgstr "无法打开锁文件 \"%s\": %m"
 
-#: utils/init/miscinit.c:762
+#: utils/init/miscinit.c:695
 #, c-format
 msgid "could not read lock file \"%s\": %m"
 msgstr "无法读取锁文件 \"%s\": %m"
 
-#: utils/init/miscinit.c:810
+#: utils/init/miscinit.c:703
+#, c-format
+#| msgid "%s: the PID file \"%s\" is empty\n"
+msgid "lock file \"%s\" is empty"
+msgstr "锁文件 \"%s\" 为空"
+
+#: utils/init/miscinit.c:704
+#, c-format
+msgid ""
+"Either another server is starting, or the lock file is the remnant of a "
+"previous server startup crash."
+msgstr ""
+"或者另一个服务正在启动,或者锁文件是因为前一次服务器启动崩溃时产生导致的."
+
+#: utils/init/miscinit.c:751
 #, c-format
 msgid "lock file \"%s\" already exists"
 msgstr "锁文件 \"%s\" 已经存在"
 
-#: utils/init/miscinit.c:814
+#: utils/init/miscinit.c:755
 #, c-format
 msgid "Is another postgres (PID %d) running in data directory \"%s\"?"
 msgstr "是否其它 postgres (PID %d) 运行在数据目录 \"%s\"?"
 
-#: utils/init/miscinit.c:816
+#: utils/init/miscinit.c:757
 #, c-format
 msgid "Is another postmaster (PID %d) running in data directory \"%s\"?"
 msgstr "是否其它 postmaster (PID %d) 运行在数据目录 \"%s\"?"
 
-#: utils/init/miscinit.c:819
+#: utils/init/miscinit.c:760
 #, c-format
 msgid "Is another postgres (PID %d) using socket file \"%s\"?"
 msgstr "是否其它 postgres (PID %d) 使用套接字文件 \"%s\"?"
 
-#: utils/init/miscinit.c:821
+#: utils/init/miscinit.c:762
 #, c-format
 msgid "Is another postmaster (PID %d) using socket file \"%s\"?"
 msgstr "是否其它 postmaster (PID %d) 使用套接字文件 \"%s\"?"
 
-#: utils/init/miscinit.c:857
+#: utils/init/miscinit.c:798
 #, c-format
 msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use"
 msgstr "先前存在的共享内存块 (key %lu, ID %lu) 仍在使用中"
 
-#: utils/init/miscinit.c:860
+#: utils/init/miscinit.c:801
 #, c-format
 msgid ""
 "If you're sure there are no old server processes still running, remove the "
@@ -17243,113 +20121,138 @@ msgid ""
 msgstr ""
 "如果你确认没有旧的服务器进程在运行, 删除共享内存块,或者只删除文件 \"%s\"."
 
-#: utils/init/miscinit.c:876
+#: utils/init/miscinit.c:817
 #, c-format
 msgid "could not remove old lock file \"%s\": %m"
 msgstr "无法删除旧的锁文件 \"%s\": %m"
 
-#: utils/init/miscinit.c:878
+#: utils/init/miscinit.c:819
 #, c-format
 msgid ""
 "The file seems accidentally left over, but it could not be removed. Please "
 "remove the file by hand and try again."
 msgstr "文件像是意外留下的, 但是不能删除它. 请手工删除此文件, 然后再重试一次."
 
-#: utils/init/miscinit.c:919 utils/init/miscinit.c:930
-#: utils/init/miscinit.c:940
+#: utils/init/miscinit.c:855 utils/init/miscinit.c:866
+#: utils/init/miscinit.c:876
 #, c-format
 msgid "could not write lock file \"%s\": %m"
 msgstr "无法写入锁文件 \"%s\": %m"
 
-#: utils/init/miscinit.c:1047 utils/misc/guc.c:7649
+#: utils/init/miscinit.c:1001 utils/misc/guc.c:8381
 #, c-format
 msgid "could not read from file \"%s\": %m"
 msgstr "无法读取文件 \"%s\": %m"
 
-#: utils/init/miscinit.c:1147 utils/init/miscinit.c:1160
+#: utils/init/miscinit.c:1115 utils/init/miscinit.c:1128
 #, c-format
 msgid "\"%s\" is not a valid data directory"
 msgstr "\"%s\" 不是一个有效的数据目录"
 
-#: utils/init/miscinit.c:1149
+#: utils/init/miscinit.c:1117
 #, c-format
 msgid "File \"%s\" is missing."
 msgstr "文件 \"%s\" 丢失."
 
-#: utils/init/miscinit.c:1162
+#: utils/init/miscinit.c:1130
 #, c-format
 msgid "File \"%s\" does not contain valid data."
 msgstr "文件 \"%s\" 没有包含有效数据."
 
-#: utils/init/miscinit.c:1164
+#: utils/init/miscinit.c:1132
 #, c-format
 msgid "You might need to initdb."
 msgstr "您需要初始化数据库 (initdb)."
 
-#: utils/init/miscinit.c:1172
+#: utils/init/miscinit.c:1140
 #, c-format
 msgid ""
 "The data directory was initialized by PostgreSQL version %ld.%ld, which is "
 "not compatible with this version %s."
 msgstr "数据目录是以 PostgreSQL 版本 %ld.%ld 初始化的, 它于当前版本 %s 不兼容."
 
-#: utils/init/miscinit.c:1220
-#, c-format
-msgid "invalid list syntax in parameter \"%s\""
-msgstr "在参数\"%s\"中列表语法无效"
-
-#: utils/init/miscinit.c:1257
+#: utils/init/miscinit.c:1211
 #, c-format
 msgid "loaded library \"%s\""
 msgstr "已加载的库 \"%s\""
 
-#: utils/init/postinit.c:225
+#: utils/init/postinit.c:237
+#, c-format
+#| msgid "replication connection authorized: user=%s"
+msgid ""
+"replication connection authorized: user=%s SSL enabled (protocol=%s, cipher="
+"%s, compression=%s)"
+msgstr ""
+"复制连接已经授权: user =%s SSL 已启用 (protocol=%s, cipher=%s, compression="
+"%s)"
+
+# help.c:48
+#: utils/init/postinit.c:239 utils/init/postinit.c:253
+msgid "off"
+msgstr "关闭"
+
+# help.c:48
+#: utils/init/postinit.c:239 utils/init/postinit.c:253
+msgid "on"
+msgstr "开启"
+
+#: utils/init/postinit.c:243
 #, c-format
 msgid "replication connection authorized: user=%s"
 msgstr "复制连接已经授权: 用户=%s"
 
-#: utils/init/postinit.c:229
+#: utils/init/postinit.c:251
+#, c-format
+#| msgid "connection authorized: user=%s database=%s"
+msgid ""
+"connection authorized: user=%s database=%s SSL enabled (protocol=%s, cipher="
+"%s, compression=%s)"
+msgstr ""
+"连接授权: user=%s database=%s SSL 启用 (protocol=%s, cipher=%s, compression="
+"%s)"
+
+#: utils/init/postinit.c:257
 #, c-format
 msgid "connection authorized: user=%s database=%s"
 msgstr "联接认证: 主机=%s 数据库=%s"
 
-#: utils/init/postinit.c:260
+#: utils/init/postinit.c:289
 #, c-format
 msgid "database \"%s\" has disappeared from pg_database"
 msgstr "关于数据库\"%s\"的记录在系统目录视图pg_database中不存在"
 
-#: utils/init/postinit.c:262
+#: utils/init/postinit.c:291
 #, c-format
 msgid "Database OID %u now seems to belong to \"%s\"."
 msgstr "数据库OID%u现在属于\"%s\"."
 
-#: utils/init/postinit.c:282
+#: utils/init/postinit.c:311
 #, c-format
 msgid "database \"%s\" is not currently accepting connections"
 msgstr "数据库 \"%s\" 当前不接受联接"
 
-#: utils/init/postinit.c:295
+#: utils/init/postinit.c:324
 #, c-format
 msgid "permission denied for database \"%s\""
 msgstr "访问数据库\"%s\"的权限不够"
 
-#: utils/init/postinit.c:296
+#: utils/init/postinit.c:325
 #, c-format
 msgid "User does not have CONNECT privilege."
 msgstr "用户没有CONNECT权限."
 
 # command.c:981
-#: utils/init/postinit.c:313
+#: utils/init/postinit.c:342
 #, c-format
 msgid "too many connections for database \"%s\""
 msgstr "到数据库 \"%s\"的连接太多了"
 
-#: utils/init/postinit.c:335 utils/init/postinit.c:342
+#: utils/init/postinit.c:364 utils/init/postinit.c:371
 #, c-format
 msgid "database locale is incompatible with operating system"
 msgstr "数据库所使用的语言环境和操作系统的不兼容"
 
-#: utils/init/postinit.c:336
+#: utils/init/postinit.c:365
 #, c-format
 msgid ""
 "The database was initialized with LC_COLLATE \"%s\",  which is not "
@@ -17357,13 +20260,13 @@ msgid ""
 msgstr ""
 "数据库集群是以 LC_COLLATE \"%s\"来初始化的,这个排序规则无法由setlocale()识别"
 
-#: utils/init/postinit.c:338 utils/init/postinit.c:345
+#: utils/init/postinit.c:367 utils/init/postinit.c:374
 #, c-format
 msgid ""
 "Recreate the database with another locale or install the missing locale."
 msgstr "以另外一种语言环境重新创建数据库,或者安装丢失的语言环境."
 
-#: utils/init/postinit.c:343
+#: utils/init/postinit.c:372
 #, c-format
 msgid ""
 "The database was initialized with LC_CTYPE \"%s\",  which is not recognized "
@@ -17372,64 +20275,64 @@ msgstr ""
 "数据库集群是带 LC_CTYPE \"%s\" 初始化的, 但此 LC_CTYPE 是不被 setlocale() 认"
 "可的."
 
-#: utils/init/postinit.c:608
+#: utils/init/postinit.c:667
 #, c-format
 msgid "no roles are defined in this database system"
 msgstr "当前数据库系统中没有定义角色"
 
-#: utils/init/postinit.c:609
+#: utils/init/postinit.c:668
 #, c-format
 msgid "You should immediately run CREATE USER \"%s\" SUPERUSER;."
 msgstr "您应该立即运行 CREATE USER \"%s\" SUPERUSER;."
 
-#: utils/init/postinit.c:632
+#: utils/init/postinit.c:704
 #, c-format
 msgid "new replication connections are not allowed during database shutdown"
 msgstr "在数据库服务器关闭期间不允许接受新的复制连接"
 
-#: utils/init/postinit.c:636
+#: utils/init/postinit.c:708
 #, c-format
 msgid "must be superuser to connect during database shutdown"
 msgstr "只有超级用户才能在数据库关闭期间连接数据库"
 
-#: utils/init/postinit.c:646
+#: utils/init/postinit.c:718
 #, c-format
 msgid "must be superuser to connect in binary upgrade mode"
 msgstr "只有超级用户才能以二进制升级模式进行连接"
 
-#: utils/init/postinit.c:660
+#: utils/init/postinit.c:732
 #, c-format
 msgid ""
 "remaining connection slots are reserved for non-replication superuser "
 "connections"
 msgstr "已保留的连接位置为执行非复制请求的超级用户预留"
 
-#: utils/init/postinit.c:674
+#: utils/init/postinit.c:742
 #, c-format
 msgid "must be superuser or replication role to start walsender"
 msgstr "只有超级用户或者拥有复制角色的用户才能启动 walsender"
 
-#: utils/init/postinit.c:734
+#: utils/init/postinit.c:811
 #, c-format
 msgid "database %u does not exist"
 msgstr "数据库%u不存在"
 
-#: utils/init/postinit.c:786
+#: utils/init/postinit.c:863
 #, c-format
 msgid "It seems to have just been dropped or renamed."
 msgstr "它已经被删除或者改名了."
 
-#: utils/init/postinit.c:804
+#: utils/init/postinit.c:881
 #, c-format
 msgid "The database subdirectory \"%s\" is missing."
 msgstr "数据库子目录 \"%s\" 丢失."
 
-#: utils/init/postinit.c:809
+#: utils/init/postinit.c:886
 #, c-format
 msgid "could not access directory \"%s\": %m"
 msgstr "无法访问目录 \"%s\": %m"
 
-#: utils/mb/conv.c:509
+#: utils/mb/conv.c:519
 #, c-format
 msgid "invalid encoding number: %d"
 msgstr "无效编码编号: %d"
@@ -17446,303 +20349,317 @@ msgstr " ISO 8859 字符集出现非期望的编码ID%d"
 msgid "unexpected encoding ID %d for WIN character sets"
 msgstr "WIN字符集出现非期望的编码ID%d"
 
-#: utils/mb/encnames.c:485
+#: utils/mb/encnames.c:496
 #, c-format
 msgid "encoding name too long"
 msgstr "编码名字太长"
 
-#: utils/mb/mbutils.c:281
+#: utils/mb/mbutils.c:307
 #, c-format
 msgid "conversion between %s and %s is not supported"
 msgstr "不支持 %s 和 %s 之间的编码转换"
 
-#: utils/mb/mbutils.c:351
+#: utils/mb/mbutils.c:366
 #, c-format
 msgid ""
 "default conversion function for encoding \"%s\" to \"%s\" does not exist"
 msgstr "默认的 \"%s\" 到 \"%s\" 的编码转换函数不存在"
 
-#: utils/mb/mbutils.c:375 utils/mb/mbutils.c:676
+#: utils/mb/mbutils.c:377 utils/mb/mbutils.c:710
 #, c-format
 msgid "String of %d bytes is too long for encoding conversion."
 msgstr "对于编码转化来说带有%d个字节的字符串太长."
 
-#: utils/mb/mbutils.c:462
+#: utils/mb/mbutils.c:464
 #, c-format
 msgid "invalid source encoding name \"%s\""
 msgstr "无效的源编码名称 \"%s\""
 
-#: utils/mb/mbutils.c:467
+#: utils/mb/mbutils.c:469
 #, c-format
 msgid "invalid destination encoding name \"%s\""
 msgstr "无效的目标编码名称 \"%s\""
 
-#: utils/mb/mbutils.c:589
+#: utils/mb/mbutils.c:609
 #, c-format
 msgid "invalid byte value for encoding \"%s\": 0x%02x"
 msgstr "对于编码\"%s\"的字节值无效: 0x%02x"
 
-#: utils/mb/wchar.c:2013
+#: utils/mb/mbutils.c:951
+#, c-format
+msgid "bind_textdomain_codeset failed"
+msgstr "操作bind_textdomain_codeset 失败了"
+
+#: utils/mb/wchar.c:2009
 #, c-format
 msgid "invalid byte sequence for encoding \"%s\": %s"
 msgstr "无效的 \"%s\" 编码字节顺序: %s"
 
-#: utils/mb/wchar.c:2046
+#: utils/mb/wchar.c:2042
 #, c-format
 msgid ""
 "character with byte sequence %s in encoding \"%s\" has no equivalent in "
 "encoding \"%s\""
 msgstr "编码\"%2$s\"的字符0x%1$s在编码\"%3$s\"没有相对应值"
 
-#: utils/misc/guc.c:529
+#: utils/misc/guc.c:552
 msgid "Ungrouped"
 msgstr "取消组"
 
-#: utils/misc/guc.c:531
+#: utils/misc/guc.c:554
 msgid "File Locations"
 msgstr "文件位置"
 
-#: utils/misc/guc.c:533
+#: utils/misc/guc.c:556
 msgid "Connections and Authentication"
 msgstr "联接和认证"
 
-#: utils/misc/guc.c:535
+#: utils/misc/guc.c:558
 msgid "Connections and Authentication / Connection Settings"
 msgstr "联接和认证 / 联接设置"
 
-#: utils/misc/guc.c:537
+#: utils/misc/guc.c:560
 msgid "Connections and Authentication / Security and Authentication"
 msgstr "联接和认证 / 安全和认证"
 
-#: utils/misc/guc.c:539
+#: utils/misc/guc.c:562
 msgid "Resource Usage"
 msgstr "资源使用"
 
-#: utils/misc/guc.c:541
+#: utils/misc/guc.c:564
 msgid "Resource Usage / Memory"
 msgstr "资源使用 / 内存"
 
-#: utils/misc/guc.c:543
+#: utils/misc/guc.c:566
 msgid "Resource Usage / Disk"
 msgstr "资源使用/磁盘"
 
-#: utils/misc/guc.c:545
+#: utils/misc/guc.c:568
 msgid "Resource Usage / Kernel Resources"
 msgstr "资源使用 / 内核资源"
 
-#: utils/misc/guc.c:547
+#: utils/misc/guc.c:570
 msgid "Resource Usage / Cost-Based Vacuum Delay"
 msgstr "资源使用 / 基于开销的Vacuum延迟"
 
-#: utils/misc/guc.c:549
+#: utils/misc/guc.c:572
 msgid "Resource Usage / Background Writer"
 msgstr "资源使用 / 后台写入进程"
 
-#: utils/misc/guc.c:551
+#: utils/misc/guc.c:574
 msgid "Resource Usage / Asynchronous Behavior"
 msgstr "资源使用 / 异步系统行为"
 
-#: utils/misc/guc.c:553
+#: utils/misc/guc.c:576
 msgid "Write-Ahead Log"
 msgstr "Write-Ahead 日志"
 
-#: utils/misc/guc.c:555
+#: utils/misc/guc.c:578
 msgid "Write-Ahead Log / Settings"
 msgstr "Write-Ahead 日志 / 设置"
 
-#: utils/misc/guc.c:557
+#: utils/misc/guc.c:580
 msgid "Write-Ahead Log / Checkpoints"
 msgstr "Write-Ahead 日志 / Checkpoints"
 
-#: utils/misc/guc.c:559
+#: utils/misc/guc.c:582
 msgid "Write-Ahead Log / Archiving"
 msgstr "Write-Ahead 日志 / 归档"
 
-#: utils/misc/guc.c:561
+#: utils/misc/guc.c:584
 msgid "Replication"
 msgstr "复制"
 
-#: utils/misc/guc.c:563
+#: utils/misc/guc.c:586
 msgid "Replication / Sending Servers"
 msgstr "复制/发送服务器"
 
-#: utils/misc/guc.c:565
+#: utils/misc/guc.c:588
 msgid "Replication / Master Server"
 msgstr "复制/主服务器"
 
-#: utils/misc/guc.c:567
+#: utils/misc/guc.c:590
 msgid "Replication / Standby Servers"
 msgstr "复制 / 备用服务器"
 
-#: utils/misc/guc.c:569
+#: utils/misc/guc.c:592
 msgid "Query Tuning"
 msgstr "查询调整"
 
-#: utils/misc/guc.c:571
+#: utils/misc/guc.c:594
 msgid "Query Tuning / Planner Method Configuration"
 msgstr "查询调整 / 规划器方法配置"
 
-#: utils/misc/guc.c:573
+#: utils/misc/guc.c:596
 msgid "Query Tuning / Planner Cost Constants"
 msgstr "查询调整 / Planner Cost Constants"
 
-#: utils/misc/guc.c:575
+#: utils/misc/guc.c:598
 msgid "Query Tuning / Genetic Query Optimizer"
 msgstr "查询调整 / 基因查询优化"
 
-#: utils/misc/guc.c:577
+#: utils/misc/guc.c:600
 msgid "Query Tuning / Other Planner Options"
 msgstr "查询调整 / 其它规划器选项"
 
-#: utils/misc/guc.c:579
+#: utils/misc/guc.c:602
 msgid "Reporting and Logging"
 msgstr "报告和日志"
 
-#: utils/misc/guc.c:581
+#: utils/misc/guc.c:604
 msgid "Reporting and Logging / Where to Log"
 msgstr "报告和日志 / 日志位置"
 
-#: utils/misc/guc.c:583
+#: utils/misc/guc.c:606
 msgid "Reporting and Logging / When to Log"
 msgstr "报告和日志 / 日志时间"
 
-#: utils/misc/guc.c:585
+#: utils/misc/guc.c:608
 msgid "Reporting and Logging / What to Log"
 msgstr "报告和日志 / 日志内容"
 
-#: utils/misc/guc.c:587
+#: utils/misc/guc.c:610
 msgid "Statistics"
 msgstr "统计信息"
 
-#: utils/misc/guc.c:589
+#: utils/misc/guc.c:612
 msgid "Statistics / Monitoring"
 msgstr "统计信息 / 监控"
 
-#: utils/misc/guc.c:591
+#: utils/misc/guc.c:614
 msgid "Statistics / Query and Index Statistics Collector"
 msgstr "统计信息 / 查询和索引统计收集器"
 
-#: utils/misc/guc.c:593
+#: utils/misc/guc.c:616
 msgid "Autovacuum"
 msgstr "Autovacuum"
 
-#: utils/misc/guc.c:595
+#: utils/misc/guc.c:618
 msgid "Client Connection Defaults"
 msgstr "客户端联接默认"
 
-#: utils/misc/guc.c:597
+#: utils/misc/guc.c:620
 msgid "Client Connection Defaults / Statement Behavior"
 msgstr "客户端联接默认 / 语句动作"
 
-#: utils/misc/guc.c:599
+#: utils/misc/guc.c:622
 msgid "Client Connection Defaults / Locale and Formatting"
 msgstr "客户端联接默认 / 本地化和格式化"
 
-#: utils/misc/guc.c:601
+#: utils/misc/guc.c:624
+#| msgid "Client Connection Defaults / Locale and Formatting"
+msgid "Client Connection Defaults / Shared Library Preloading"
+msgstr "客户端联接默认 / 共享库预先加载"
+
+#: utils/misc/guc.c:626
 msgid "Client Connection Defaults / Other Defaults"
 msgstr "客户端联接默认 / 其它默认"
 
-#: utils/misc/guc.c:603
+#: utils/misc/guc.c:628
 msgid "Lock Management"
 msgstr "锁管理"
 
-#: utils/misc/guc.c:605
+#: utils/misc/guc.c:630
 msgid "Version and Platform Compatibility"
 msgstr "版本和平台兼容性"
 
-#: utils/misc/guc.c:607
+#: utils/misc/guc.c:632
 msgid "Version and Platform Compatibility / Previous PostgreSQL Versions"
 msgstr "版本和平台兼容性 / 上一个 PostgreSQL 版本"
 
-#: utils/misc/guc.c:609
+#: utils/misc/guc.c:634
 msgid "Version and Platform Compatibility / Other Platforms and Clients"
 msgstr "版本和平台兼容性 / 其它平台和客户端"
 
-#: utils/misc/guc.c:611
+#: utils/misc/guc.c:636
 msgid "Error Handling"
 msgstr "错误处理"
 
-#: utils/misc/guc.c:613
+#: utils/misc/guc.c:638
 msgid "Preset Options"
 msgstr "预置选项"
 
-#: utils/misc/guc.c:615
+#: utils/misc/guc.c:640
 msgid "Customized Options"
 msgstr "定制选项"
 
-#: utils/misc/guc.c:617
+#: utils/misc/guc.c:642
 msgid "Developer Options"
 msgstr "开发人员选项"
 
-#: utils/misc/guc.c:671
+#: utils/misc/guc.c:696
 msgid "Enables the planner's use of sequential-scan plans."
 msgstr "启用查询计划器的顺序扫描计划."
 
-#: utils/misc/guc.c:680
+#: utils/misc/guc.c:705
 msgid "Enables the planner's use of index-scan plans."
 msgstr "启用查询计划器的索引扫描计划."
 
-#: utils/misc/guc.c:689
+#: utils/misc/guc.c:714
 msgid "Enables the planner's use of index-only-scan plans."
 msgstr "启用查询计划器的仅索引扫描计划."
 
-#: utils/misc/guc.c:698
+#: utils/misc/guc.c:723
 msgid "Enables the planner's use of bitmap-scan plans."
 msgstr "启用查询计划器的位图扫描计划."
 
-#: utils/misc/guc.c:707
+#: utils/misc/guc.c:732
 msgid "Enables the planner's use of TID scan plans."
 msgstr "启用查询计划器的TID扫描计划."
 
-#: utils/misc/guc.c:716
+#: utils/misc/guc.c:741
 msgid "Enables the planner's use of explicit sort steps."
 msgstr "启用查询计划器的显式排序步骤."
 
-#: utils/misc/guc.c:725
+#: utils/misc/guc.c:750
 msgid "Enables the planner's use of hashed aggregation plans."
 msgstr "启用查询计划器的哈希聚合计划."
 
-#: utils/misc/guc.c:734
+#: utils/misc/guc.c:759
 msgid "Enables the planner's use of materialization."
 msgstr "启用查询计划器的实体化使用."
 
-#: utils/misc/guc.c:743
+#: utils/misc/guc.c:768
 msgid "Enables the planner's use of nested-loop join plans."
 msgstr "启用查询计划器的嵌套循环连接计划."
 
-#: utils/misc/guc.c:752
+#: utils/misc/guc.c:777
 msgid "Enables the planner's use of merge join plans."
 msgstr "启用查询计划器的合并连接计划."
 
-#: utils/misc/guc.c:761
+#: utils/misc/guc.c:786
 msgid "Enables the planner's use of hash join plans."
 msgstr "启用查询计划器的哈希连接计划."
 
-#: utils/misc/guc.c:770
+#: utils/misc/guc.c:795
 msgid "Enables genetic query optimization."
 msgstr "启用基因查询优化."
 
-#: utils/misc/guc.c:771
+#: utils/misc/guc.c:796
 msgid "This algorithm attempts to do planning without exhaustive searching."
 msgstr "算法企图执行不带有无穷搜索的计划."
 
-#: utils/misc/guc.c:781
+#: utils/misc/guc.c:806
 msgid "Shows whether the current user is a superuser."
 msgstr "显示当前用户是否是超级用户."
 
-#: utils/misc/guc.c:791
+#: utils/misc/guc.c:816
 msgid "Enables advertising the server via Bonjour."
 msgstr "启用通过Bonjour的方式来宣布数据库服务器在网络中的存在."
 
-#: utils/misc/guc.c:800
+#: utils/misc/guc.c:825
 msgid "Enables SSL connections."
 msgstr "启用 SSL 联接."
 
-#: utils/misc/guc.c:809
+#: utils/misc/guc.c:834
+msgid "Give priority to server ciphersuite order."
+msgstr "为服务器密码组的顺序提供优先."
+
+#: utils/misc/guc.c:843
 msgid "Forces synchronization of updates to disk."
 msgstr "强制和磁盘同步更新"
 
-#: utils/misc/guc.c:810
+#: utils/misc/guc.c:844
 msgid ""
 "The server will use the fsync() system call in several places to make sure "
 "that updates are physically written to disk. This insures that a database "
@@ -17752,11 +20669,35 @@ msgstr ""
 "服务器将在多个位置使用系统调用fsync()来确定更新操作已经将数据写入磁盘.这将确"
 "保在操作系统或硬件崩溃后数据库集群将恢复到一个一致性状态. "
 
-#: utils/misc/guc.c:821
+#: utils/misc/guc.c:855
+#| msgid "Continues processing past damaged page headers."
+msgid "Continues processing after a checksum failure."
+msgstr "校验失败后继续处理."
+
+#: utils/misc/guc.c:856
+#| msgid ""
+#| "Detection of a damaged page header normally causes PostgreSQL to report "
+#| "an error, aborting the current transaction. Setting zero_damaged_pages to "
+#| "true causes the system to instead report a warning, zero out the damaged "
+#| "page, and continue processing. This behavior will destroy data, namely "
+#| "all the rows on the damaged page."
+msgid ""
+"Detection of a checksum failure normally causes PostgreSQL to report an "
+"error, aborting the current transaction. Setting ignore_checksum_failure to "
+"true causes the system to ignore the failure (but still report a warning), "
+"and continue processing. This behavior could cause crashes or other serious "
+"problems. Only has an effect if checksums are enabled."
+msgstr ""
+"发现校验失败通常会使PostgreSQL报告一个错误, 并中止当前事务.将参数"
+"zero_damaged_pages设置为true可以使系统忽略失败(只报告一个警告信息),并且能够"
+"继续处理当前事务.这种情况将导致系统崩溃或者其它严重问题,这也只有在启用校验时"
+"才有效."
+
+#: utils/misc/guc.c:870
 msgid "Continues processing past damaged page headers."
 msgstr "继续处理已损坏的页头."
 
-#: utils/misc/guc.c:822
+#: utils/misc/guc.c:871
 msgid ""
 "Detection of a damaged page header normally causes PostgreSQL to report an "
 "error, aborting the current transaction. Setting zero_damaged_pages to true "
@@ -17769,11 +20710,11 @@ msgstr ""
 "并且能够继续处理当前事务.这种情况将使毁坏数据,因为这样通常会使所有的记录在已"
 "损坏的页上存放."
 
-#: utils/misc/guc.c:835
+#: utils/misc/guc.c:884
 msgid "Writes full pages to WAL when first modified after a checkpoint."
 msgstr "在检查点事件发生后发生第一次修改数据时,把所有的页写到WAL文件中"
 
-#: utils/misc/guc.c:836
+#: utils/misc/guc.c:885
 msgid ""
 "A page write in process during an operating system crash might be only "
 "partially written to disk.  During recovery, the row changes stored in WAL "
@@ -17784,121 +20725,150 @@ msgstr ""
 "文件中所保存的已改变记录不足以进行恢复.当对WAL发生检查点事件后进行第一次修改"
 "操作时这个选项可以写入页。这样将允许进行完全恢复."
 
-#: utils/misc/guc.c:848
+#: utils/misc/guc.c:898
+#| msgid "Writes full pages to WAL when first modified after a checkpoint."
+msgid ""
+"Writes full pages to WAL when first modified after a checkpoint, even for a "
+"non-critical modifications."
+msgstr ""
+"在检查点事件发生后发生第一次修改数据甚至是非关键修改时,把所有的页写到WAL文件"
+"中"
+
+#: utils/misc/guc.c:908
 msgid "Logs each checkpoint."
 msgstr "记录每一个检查点事件"
 
-#: utils/misc/guc.c:857
+#: utils/misc/guc.c:917
 msgid "Logs each successful connection."
 msgstr "记录每一个成功的联接."
 
-#: utils/misc/guc.c:866
+#: utils/misc/guc.c:926
 msgid "Logs end of a session, including duration."
 msgstr "对会话的结束时间和整个会话的持续时间进行日志记录"
 
-#: utils/misc/guc.c:875
+#: utils/misc/guc.c:935
 msgid "Turns on various assertion checks."
 msgstr "打开各种判断检查."
 
-#: utils/misc/guc.c:876
+#: utils/misc/guc.c:936
 msgid "This is a debugging aid."
 msgstr "这是一个出错帮助."
 
-#: utils/misc/guc.c:890
+#: utils/misc/guc.c:950
 msgid "Terminate session on any error."
 msgstr "只要遇错即终止会话."
 
-#: utils/misc/guc.c:899
+#: utils/misc/guc.c:959
 msgid "Reinitialize server after backend crash."
 msgstr "后端服务器崩溃时重新初始化服务器."
 
-#: utils/misc/guc.c:909
+#: utils/misc/guc.c:969
 msgid "Logs the duration of each completed SQL statement."
 msgstr "记录每一条完成了的 SQL 语句过程."
 
-#: utils/misc/guc.c:918
+#: utils/misc/guc.c:978
 msgid "Logs each query's parse tree."
 msgstr "对每个查询的分析树进行日志记录"
 
-#: utils/misc/guc.c:927
+#: utils/misc/guc.c:987
 msgid "Logs each query's rewritten parse tree."
 msgstr "对每个查询的重写分析树进行日志记录"
 
-#: utils/misc/guc.c:936
+#: utils/misc/guc.c:996
 msgid "Logs each query's execution plan."
 msgstr "记录每一个查询的执行计划"
 
-#: utils/misc/guc.c:945
+#: utils/misc/guc.c:1005
 msgid "Indents parse and plan tree displays."
 msgstr "显示缩进的解析和计划树"
 
-#: utils/misc/guc.c:954
+#: utils/misc/guc.c:1014
 msgid "Writes parser performance statistics to the server log."
 msgstr "把分析器性能统计信息写入到服务器日志中."
 
-#: utils/misc/guc.c:963
+#: utils/misc/guc.c:1023
 msgid "Writes planner performance statistics to the server log."
 msgstr "把规划器性能统计信息写入到服务器日志中."
 
-#: utils/misc/guc.c:972
+#: utils/misc/guc.c:1032
 msgid "Writes executor performance statistics to the server log."
 msgstr "把执行器 (executor) 性能统计信息写入到服务器日志中."
 
-#: utils/misc/guc.c:981
+#: utils/misc/guc.c:1041
 msgid "Writes cumulative performance statistics to the server log."
 msgstr "把 cumulative 性能统计信息写入到服务器日志中."
 
-#: utils/misc/guc.c:991 utils/misc/guc.c:1065 utils/misc/guc.c:1075
-#: utils/misc/guc.c:1085 utils/misc/guc.c:1095 utils/misc/guc.c:1831
-#: utils/misc/guc.c:1841
-msgid "No description available."
-msgstr "没有可用的描述"
+#: utils/misc/guc.c:1051
+msgid ""
+"Logs system resource usage statistics (memory and CPU) on various B-tree "
+"operations."
+msgstr "基于可变的B-树操作的日志系统资源使用统计 (内存和CPU) ."
 
-#: utils/misc/guc.c:1003
+#: utils/misc/guc.c:1063
 msgid "Collects information about executing commands."
 msgstr "收集执行命令的统计信息."
 
-#: utils/misc/guc.c:1004
+#: utils/misc/guc.c:1064
 msgid ""
 "Enables the collection of information on the currently executing command of "
 "each session, along with the time at which that command began execution."
 msgstr "在每个会话当前正在执行的命令上启用信息收集, 并带有命令开始执行的时间."
 
-#: utils/misc/guc.c:1014
+#: utils/misc/guc.c:1074
 msgid "Collects statistics on database activity."
 msgstr "在数据库上正在执行的事务上收集统计信息."
 
-#: utils/misc/guc.c:1023
+#: utils/misc/guc.c:1083
 msgid "Collects timing statistics for database I/O activity."
 msgstr "为数据库I/O活动进行时间统计."
 
-#: utils/misc/guc.c:1033
+#: utils/misc/guc.c:1093
 msgid "Updates the process title to show the active SQL command."
 msgstr "更新进程标题来显示处于活动状态的SQL命令"
 
-#: utils/misc/guc.c:1034
+#: utils/misc/guc.c:1094
 msgid ""
 "Enables updating of the process title every time a new SQL command is "
 "received by the server."
 msgstr "每一次服务器开始运行新的SQL命令时启用进程标题的更新."
 
-#: utils/misc/guc.c:1043
+#: utils/misc/guc.c:1103
 msgid "Starts the autovacuum subprocess."
 msgstr "启动autovacuum子进程."
 
-#: utils/misc/guc.c:1053
+#: utils/misc/guc.c:1113
 msgid "Generates debugging output for LISTEN and NOTIFY."
 msgstr "为 LISTEN 和 NOTIFY 生成出错信息."
 
-#: utils/misc/guc.c:1107
+#: utils/misc/guc.c:1125
+#| msgid "Emit information about resource usage in sorting."
+msgid "Emits information about lock usage."
+msgstr "发出有关锁使用的信息."
+
+#: utils/misc/guc.c:1135
+#| msgid "Emit information about resource usage in sorting."
+msgid "Emits information about user lock usage."
+msgstr "发出有关用户锁使用情况的信息."
+
+#: utils/misc/guc.c:1145
+#| msgid "Emit information about resource usage in sorting."
+msgid "Emits information about lightweight lock usage."
+msgstr "发出有关轻量锁使用的相关信息."
+
+#: utils/misc/guc.c:1155
+msgid ""
+"Dumps information about all current locks when a deadlock timeout occurs."
+msgstr "输出死锁超时发生时所有当前锁的相关信息."
+
+#: utils/misc/guc.c:1167
 msgid "Logs long lock waits."
 msgstr "对长时间的锁等待记日志"
 
-#: utils/misc/guc.c:1117
+#: utils/misc/guc.c:1177
 msgid "Logs the host name in the connection logs."
 msgstr "在联接日志中记录主机名."
 
-#: utils/misc/guc.c:1118
+#: utils/misc/guc.c:1178
 msgid ""
 "By default, connection logs only show the IP address of the connecting host. "
 "If you want them to show the host name you can turn this on, but depending "
@@ -17908,15 +20878,15 @@ msgstr ""
 "在缺省情况下,连接日志只显示每个正在连接主机的IP地址.如果想要显示主机名,那么"
 "必须把它打开,但是这取决于主机名解析的设置,这在性能上不会有影响."
 
-#: utils/misc/guc.c:1129
+#: utils/misc/guc.c:1189
 msgid "Causes subtables to be included by default in various commands."
 msgstr "使子表在不同的命令中被缺省包含"
 
-#: utils/misc/guc.c:1138
+#: utils/misc/guc.c:1198
 msgid "Encrypt passwords."
 msgstr "加密口令."
 
-#: utils/misc/guc.c:1139
+#: utils/misc/guc.c:1199
 msgid ""
 "When a password is specified in CREATE USER or ALTER USER without writing "
 "either ENCRYPTED or UNENCRYPTED, this parameter determines whether the "
@@ -17925,11 +20895,11 @@ msgstr ""
 "当在 CREATE USER 或者 ALTER USER 语句中指定的口令没有用 ENCRYPTED 或者 "
 "UNENCRYPTED, 此参数确定口令是否加密."
 
-#: utils/misc/guc.c:1149
+#: utils/misc/guc.c:1209
 msgid "Treats \"expr=NULL\" as \"expr IS NULL\"."
 msgstr "\"expr=NULL\" 看作为 \"expr IS NULL\"."
 
-#: utils/misc/guc.c:1150
+#: utils/misc/guc.c:1210
 msgid ""
 "When turned on, expressions of the form expr = NULL (or NULL = expr) are "
 "treated as expr IS NULL, that is, they return true if expr evaluates to the "
@@ -17940,48 +20910,48 @@ msgstr ""
 "行处理, 那就是说,如果expr计算为空值那么会返回true,否则返回为false。表达式"
 "expr = NULL的正确行为应该是永远返回为空(未知)"
 
-#: utils/misc/guc.c:1162
+#: utils/misc/guc.c:1222
 msgid "Enables per-database user names."
 msgstr "启用每个数据库的用户名"
 
-#: utils/misc/guc.c:1172
+#: utils/misc/guc.c:1232
 msgid "This parameter doesn't do anything."
 msgstr "这个参数不做任何事情."
 
-#: utils/misc/guc.c:1173
+#: utils/misc/guc.c:1233
 msgid ""
 "It's just here so that we won't choke on SET AUTOCOMMIT TO ON from 7.3-"
 "vintage clients."
 msgstr "只是这里我们不能从7.3版本的客户端中阻止运行SET AUTOCOMMIT TO ON."
 
-#: utils/misc/guc.c:1182
+#: utils/misc/guc.c:1242
 msgid "Sets the default read-only status of new transactions."
 msgstr "为新事物设置默认的只读状态."
 
-#: utils/misc/guc.c:1191
+#: utils/misc/guc.c:1251
 msgid "Sets the current transaction's read-only status."
 msgstr "设置当前事务的只读状态."
 
-#: utils/misc/guc.c:1201
+#: utils/misc/guc.c:1261
 msgid "Sets the default deferrable status of new transactions."
 msgstr "为新事物设置默认的可延迟状态."
 
-#: utils/misc/guc.c:1210
+#: utils/misc/guc.c:1270
 msgid ""
 "Whether to defer a read-only serializable transaction until it can be "
 "executed with no possible serialization failures."
 msgstr ""
 "是否要延期执行一个只读可串行化事务,直到执行时不会出现任何可串行化失败."
 
-#: utils/misc/guc.c:1220
+#: utils/misc/guc.c:1280
 msgid "Check function bodies during CREATE FUNCTION."
 msgstr "在创建函数过程中检查函数体."
 
-#: utils/misc/guc.c:1229
+#: utils/misc/guc.c:1289
 msgid "Enable input of NULL elements in arrays."
 msgstr "在数组中启用空值成员输入"
 
-#: utils/misc/guc.c:1230
+#: utils/misc/guc.c:1290
 msgid ""
 "When turned on, unquoted NULL in an array input value means a null value; "
 "otherwise it is taken literally."
@@ -17989,130 +20959,135 @@ msgstr ""
 "当打开这个选项的时候,在数组输入值中没有引用的NULL表示空值;否则是按照字面上的"
 "含义进行解释."
 
-#: utils/misc/guc.c:1240
+#: utils/misc/guc.c:1300
 msgid "Create new tables with OIDs by default."
 msgstr "缺省下使用OIDs来创建表."
 
-#: utils/misc/guc.c:1249
+#: utils/misc/guc.c:1309
 msgid ""
 "Start a subprocess to capture stderr output and/or csvlogs into log files."
 msgstr "启动一个子进程用来捕获stderr输出或csvlogs,写到到日志文件中."
 
-#: utils/misc/guc.c:1258
+#: utils/misc/guc.c:1318
 msgid "Truncate existing log files of same name during log rotation."
 msgstr "在日志切换期间截断相同名称的日志文件"
 
-#: utils/misc/guc.c:1269
+#: utils/misc/guc.c:1329
 msgid "Emit information about resource usage in sorting."
 msgstr "发出在排序中关于资源使用的信息."
 
-#: utils/misc/guc.c:1283
+#: utils/misc/guc.c:1343
 msgid "Generate debugging output for synchronized scanning."
 msgstr "为同步扫描生成调试信息."
 
-#: utils/misc/guc.c:1298
+#: utils/misc/guc.c:1358
 msgid "Enable bounded sorting using heap sort."
 msgstr "使用堆排序来启用有界排序."
 
-#: utils/misc/guc.c:1311
+#: utils/misc/guc.c:1371
 msgid "Emit WAL-related debugging output."
 msgstr "发出与WAL相关的调试信息输出"
 
-#: utils/misc/guc.c:1323
+#: utils/misc/guc.c:1383
 msgid "Datetimes are integer based."
 msgstr "日期时间类型值是基于整数类型的"
 
-#: utils/misc/guc.c:1338
+#: utils/misc/guc.c:1398
 msgid ""
 "Sets whether Kerberos and GSSAPI user names should be treated as case-"
 "insensitive."
 msgstr "设置 Kerberos和GSSAPI的用户名是否应该区分大小写."
 
-#: utils/misc/guc.c:1348
+#: utils/misc/guc.c:1408
 msgid "Warn about backslash escapes in ordinary string literals."
 msgstr "在顺序字符串文字中关于反斜线转义的警告"
 
-#: utils/misc/guc.c:1358
+#: utils/misc/guc.c:1418
 msgid "Causes '...' strings to treat backslashes literally."
 msgstr "使字符串'...' 按照字面含义处理反斜线"
 
-#: utils/misc/guc.c:1369
+#: utils/misc/guc.c:1429
 msgid "Enable synchronized sequential scans."
 msgstr "启用同步序列扫描"
 
-#: utils/misc/guc.c:1379
+#: utils/misc/guc.c:1439
 msgid "Allows archiving of WAL files using archive_command."
 msgstr "允许使用archive_command参数对WAL文件进行归档."
 
-#: utils/misc/guc.c:1389
+#: utils/misc/guc.c:1449
 msgid "Allows connections and queries during recovery."
 msgstr "允许在恢复期间进行连接和查询."
 
-#: utils/misc/guc.c:1399
+#: utils/misc/guc.c:1459
 msgid ""
 "Allows feedback from a hot standby to the primary that will avoid query "
 "conflicts."
 msgstr "允许来自热备节点到主节点的响应,以避免查询冲突."
 
-#: utils/misc/guc.c:1409
+#: utils/misc/guc.c:1469
 msgid "Allows modifications of the structure of system tables."
 msgstr "允许修改系统表的结构."
 
-#: utils/misc/guc.c:1420
+#: utils/misc/guc.c:1480
 msgid "Disables reading from system indexes."
 msgstr "禁止从系统索引中进行读操作"
 
-#: utils/misc/guc.c:1421
+#: utils/misc/guc.c:1481
 msgid ""
 "It does not prevent updating the indexes, so it is safe to use.  The worst "
 "consequence is slowness."
 msgstr "这不能防止更新索引,所以应该安全的使用。最糟糕的结果是使系统性能变慢."
 
-#: utils/misc/guc.c:1432
+#: utils/misc/guc.c:1492
 msgid ""
 "Enables backward compatibility mode for privilege checks on large objects."
 msgstr "为在大对象上的权限检查启用向后兼容模式."
 
-#: utils/misc/guc.c:1433
+#: utils/misc/guc.c:1493
 msgid ""
 "Skips privilege checks when reading or modifying large objects, for "
 "compatibility with PostgreSQL releases prior to 9.0."
 msgstr ""
 "为了与9.0版本之前的PostgreSQL相兼容,在读取或修改大对象时候不进行权限检查"
 
-#: utils/misc/guc.c:1443
+#: utils/misc/guc.c:1503
 msgid "When generating SQL fragments, quote all identifiers."
 msgstr "在生成SQL片段时,对所有标识符加引号括起来."
 
-#: utils/misc/guc.c:1462
+#: utils/misc/guc.c:1513
+#| msgid "Shows whether the current user is a superuser."
+msgid "Shows whether data checksums are turned on for this cluster."
+msgstr "显示当前簇是否开启数据校验和."
+
+#: utils/misc/guc.c:1533
 msgid ""
 "Forces a switch to the next xlog file if a new file has not been started "
 "within N seconds."
 msgstr "如果新的文件没有在N秒内启动,那么强制切换到下一个xlog文件."
 
-#: utils/misc/guc.c:1473
+#: utils/misc/guc.c:1544
 msgid "Waits N seconds on connection startup after authentication."
 msgstr "完成认证后,在启动的连接上等待N秒"
 
-#: utils/misc/guc.c:1474 utils/misc/guc.c:1934
+#: utils/misc/guc.c:1545 utils/misc/guc.c:2047
 msgid "This allows attaching a debugger to the process."
 msgstr "允许将调试器添加到进程"
 
-#: utils/misc/guc.c:1483
+#: utils/misc/guc.c:1554
 msgid "Sets the default statistics target."
 msgstr "设置默认统计对象."
 
-#: utils/misc/guc.c:1484
+#: utils/misc/guc.c:1555
 msgid ""
 "This applies to table columns that have not had a column-specific target set "
 "via ALTER TABLE SET STATISTICS."
 msgstr "在没有通过ALTER TABLE SET STATISTICS产生列定义目标集合的列上使用."
 
-#: utils/misc/guc.c:1493
+#: utils/misc/guc.c:1564
 msgid "Sets the FROM-list size beyond which subqueries are not collapsed."
 msgstr "所设置的FROM列表大小超过子查询所允许的最大长度"
 
-#: utils/misc/guc.c:1495
+#: utils/misc/guc.c:1566
 msgid ""
 "The planner will merge subqueries into upper queries if the resulting FROM "
 "list would have no more than this many items."
@@ -18120,11 +21095,11 @@ msgstr ""
 "如果所产生的FROM列表成员不超过上层查询的相应的数量,那么计划器会把子查询合并到"
 "上层查询中."
 
-#: utils/misc/guc.c:1505
+#: utils/misc/guc.c:1576
 msgid "Sets the FROM-list size beyond which JOIN constructs are not flattened."
 msgstr "设置的FROM列表大小超过没有展平的JOIN结构大小."
 
-#: utils/misc/guc.c:1507
+#: utils/misc/guc.c:1578
 msgid ""
 "The planner will flatten explicit JOIN constructs into lists of FROM items "
 "whenever a list of no more than this many items would result."
@@ -18132,73 +21107,80 @@ msgstr ""
 "无论什么时候产生不超过这个数量的成员,计划器都将显式的JOIN结构展平到FROM子句后"
 "面的成员列表中."
 
-#: utils/misc/guc.c:1517
+#: utils/misc/guc.c:1588
 msgid "Sets the threshold of FROM items beyond which GEQO is used."
 msgstr "设置超过GEQO使用的FROM列表成员数量门限值."
 
-#: utils/misc/guc.c:1526
+#: utils/misc/guc.c:1597
 msgid "GEQO: effort is used to set the default for other GEQO parameters."
 msgstr "GEQO: 为其它GEQO参数设置缺省值"
 
-#: utils/misc/guc.c:1535
+#: utils/misc/guc.c:1606
 msgid "GEQO: number of individuals in the population."
 msgstr "GEQO: 人群 (population) 个体 (individual) 数"
 
-#: utils/misc/guc.c:1536 utils/misc/guc.c:1545
+#: utils/misc/guc.c:1607 utils/misc/guc.c:1616
 msgid "Zero selects a suitable default value."
 msgstr "没有选择出一个合适的缺省值"
 
-#: utils/misc/guc.c:1544
+#: utils/misc/guc.c:1615
 msgid "GEQO: number of iterations of the algorithm."
 msgstr "GEQO: 算法的迭代次数"
 
-#: utils/misc/guc.c:1555
+#: utils/misc/guc.c:1626
 msgid "Sets the time to wait on a lock before checking for deadlock."
 msgstr "在检查死锁前设置在一个锁上的等待时间."
 
-#: utils/misc/guc.c:1566
+#: utils/misc/guc.c:1637
 msgid ""
 "Sets the maximum delay before canceling queries when a hot standby server is "
 "processing archived WAL data."
 msgstr "当热备服务器在处理已归档的WAL数据时,在取消查询请求前设置最大的延迟."
 
-#: utils/misc/guc.c:1577
+#: utils/misc/guc.c:1648
 msgid ""
 "Sets the maximum delay before canceling queries when a hot standby server is "
 "processing streamed WAL data."
 msgstr ""
 "当热备服务器在处理通过流复制的WAL数据时,在取消查询请求前设置最大的延迟."
 
-#: utils/misc/guc.c:1588
+#: utils/misc/guc.c:1659
 msgid ""
 "Sets the maximum interval between WAL receiver status reports to the primary."
 msgstr "为WAL接受进程的状态报告(向主节点)设置最大时间间隔."
 
-#: utils/misc/guc.c:1599
+#: utils/misc/guc.c:1670
+#| msgid ""
+#| "Sets the maximum interval between WAL receiver status reports to the "
+#| "primary."
+msgid "Sets the maximum wait time to receive data from the primary."
+msgstr "设置从主节点上接收数据的最大等待时间."
+
+#: utils/misc/guc.c:1681
 msgid "Sets the maximum number of concurrent connections."
 msgstr "设置并发联接的最大个数."
 
-#: utils/misc/guc.c:1609
+#: utils/misc/guc.c:1691
 msgid "Sets the number of connection slots reserved for superusers."
 msgstr "设置为超级用户保留的联接数."
 
-#: utils/misc/guc.c:1623
+#: utils/misc/guc.c:1705
 msgid "Sets the number of shared memory buffers used by the server."
 msgstr "设置服务器使用的共享内存缓冲区的数量."
 
-#: utils/misc/guc.c:1634
+#: utils/misc/guc.c:1716
 msgid "Sets the maximum number of temporary buffers used by each session."
 msgstr "设置每个会话可使用的临时缓冲区的最大数量."
 
-#: utils/misc/guc.c:1645
+#: utils/misc/guc.c:1727
 msgid "Sets the TCP port the server listens on."
 msgstr "设置服务器监听的 TCP 端口号."
 
-#: utils/misc/guc.c:1655
+#: utils/misc/guc.c:1737
 msgid "Sets the access permissions of the Unix-domain socket."
 msgstr "设置 Unix-domain 套接字的访问权限."
 
-#: utils/misc/guc.c:1656
+#: utils/misc/guc.c:1738
 msgid ""
 "Unix-domain sockets use the usual Unix file system permission set. The "
 "parameter value is expected to be a numeric mode specification in the form "
@@ -18208,11 +21190,11 @@ msgstr ""
 "Unix-domain 套接字使用普通的Unix文件许可集合.参数值应该是数值模式定义, 它的形"
 "式应该是系统调用chmod和umask可接受的.(为了使用习惯上以0开头的八进制格式数值)"
 
-#: utils/misc/guc.c:1670
+#: utils/misc/guc.c:1752
 msgid "Sets the file permissions for log files."
 msgstr "设置日志文件的文件访问权限."
 
-#: utils/misc/guc.c:1671
+#: utils/misc/guc.c:1753
 msgid ""
 "The parameter value is expected to be a numeric mode specification in the "
 "form accepted by the chmod and umask system calls. (To use the customary "
@@ -18221,101 +21203,129 @@ msgstr ""
 "参数值期望使用数值模式来指定, 它的形式应该是系统调用chmod和umask可接受的.(为"
 "了使用习惯上以0开头的八进制格式数值)"
 
-#: utils/misc/guc.c:1684
+#: utils/misc/guc.c:1766
 msgid "Sets the maximum memory to be used for query workspaces."
 msgstr "设置查询工作空间使用的最大内存数."
 
-#: utils/misc/guc.c:1685
+#: utils/misc/guc.c:1767
 msgid ""
 "This much memory can be used by each internal sort operation and hash table "
 "before switching to temporary disk files."
 msgstr ""
 "这些内存将可以由每一个内部排序操作和转换到临时磁盘文件之前的散列表来使用"
 
-#: utils/misc/guc.c:1697
+#: utils/misc/guc.c:1779
 msgid "Sets the maximum memory to be used for maintenance operations."
 msgstr "设置维护操作使用的最大内存数."
 
-#: utils/misc/guc.c:1698
+#: utils/misc/guc.c:1780
 msgid "This includes operations such as VACUUM and CREATE INDEX."
 msgstr "此处动作包括 VACUUM 和 CREATE INDEX."
 
-#: utils/misc/guc.c:1713
+#: utils/misc/guc.c:1795
 msgid "Sets the maximum stack depth, in kilobytes."
 msgstr "设置最大的堆栈深度,单位是千字节."
 
-#: utils/misc/guc.c:1724
+#: utils/misc/guc.c:1806
 msgid "Limits the total size of all temporary files used by each session."
 msgstr "为每个会话可使用的所有临时文件限制最大大小."
 
-#: utils/misc/guc.c:1725
+#: utils/misc/guc.c:1807
 msgid "-1 means no limit."
 msgstr "-1 意指没有限制."
 
-#: utils/misc/guc.c:1735
+#: utils/misc/guc.c:1817
 msgid "Vacuum cost for a page found in the buffer cache."
 msgstr "在缓冲区缓存中找到对于一个页进行清理的开销."
 
-#: utils/misc/guc.c:1745
+#: utils/misc/guc.c:1827
 msgid "Vacuum cost for a page not found in the buffer cache."
 msgstr "在缓冲区缓存中没有找到对于一个页进行清理的开销."
 
-#: utils/misc/guc.c:1755
+#: utils/misc/guc.c:1837
 msgid "Vacuum cost for a page dirtied by vacuum."
 msgstr "由vacuum进程对脏页进行清理的开销."
 
-#: utils/misc/guc.c:1765
+#: utils/misc/guc.c:1847
 msgid "Vacuum cost amount available before napping."
 msgstr "在暂停前可用的清理开销总量."
 
-#: utils/misc/guc.c:1775
+#: utils/misc/guc.c:1857
 msgid "Vacuum cost delay in milliseconds."
 msgstr "Vacuum开销延迟是以毫秒为单位"
 
-#: utils/misc/guc.c:1786
+#: utils/misc/guc.c:1868
 msgid "Vacuum cost delay in milliseconds, for autovacuum."
 msgstr "对于autovacuum来说,Vacuum开销延迟是以毫秒为单位"
 
-#: utils/misc/guc.c:1797
+#: utils/misc/guc.c:1879
 msgid "Vacuum cost amount available before napping, for autovacuum."
 msgstr "对于autovacuum进程,在暂停前前进行清理有效开销总量."
 
-#: utils/misc/guc.c:1807
+#: utils/misc/guc.c:1889
 msgid ""
 "Sets the maximum number of simultaneously open files for each server process."
 msgstr "设置每一个服务器进程同时打开文件的最大个数."
 
-#: utils/misc/guc.c:1820
+#: utils/misc/guc.c:1902
 msgid "Sets the maximum number of simultaneously prepared transactions."
 msgstr "设置同步的已准备好事务的最大个数."
 
-#: utils/misc/guc.c:1853
+#: utils/misc/guc.c:1913
+#| msgid "Sets the maximum number of locks per transaction."
+msgid "Sets the minimum OID of tables for tracking locks."
+msgstr "设置跟踪锁的表的最小OID."
+
+#: utils/misc/guc.c:1914
+msgid "Is used to avoid output on system tables."
+msgstr "用于避免输出到系统表."
+
+#: utils/misc/guc.c:1923
+msgid "Sets the OID of the table with unconditionally lock tracing."
+msgstr "设置无条件锁追踪的表的OID."
+
+#: utils/misc/guc.c:1935
 msgid "Sets the maximum allowed duration of any statement."
 msgstr "设置任何语句执行时间的最大值 (单位毫秒)."
 
-#: utils/misc/guc.c:1854
+#: utils/misc/guc.c:1936 utils/misc/guc.c:1947
 msgid "A value of 0 turns off the timeout."
 msgstr "值为 0 的时候关闭超时."
 
-#: utils/misc/guc.c:1864
+#: utils/misc/guc.c:1946
+#| msgid "Sets the maximum allowed duration of any statement."
+msgid "Sets the maximum allowed duration of any wait for a lock."
+msgstr "等待锁的的最长时间值."
+
+#: utils/misc/guc.c:1957
 msgid "Minimum age at which VACUUM should freeze a table row."
 msgstr "VACUUM应该冻结一行记录的最小时间."
 
-#: utils/misc/guc.c:1874
+#: utils/misc/guc.c:1967
 msgid "Age at which VACUUM should scan whole table to freeze tuples."
 msgstr "这是VACUUM应该扫描整个表来冻结元组的时候."
 
-#: utils/misc/guc.c:1884
+#: utils/misc/guc.c:1977
+#| msgid "Minimum age at which VACUUM should freeze a table row."
+msgid "Minimum age at which VACUUM should freeze a MultiXactId in a table row."
+msgstr "VACUUM用于冻结表中某行对应的MultiXactId的最小时间范围."
+
+#: utils/misc/guc.c:1987
+#| msgid "Age at which VACUUM should scan whole table to freeze tuples."
+msgid "Multixact age at which VACUUM should scan whole table to freeze tuples."
+msgstr "这是VACUUM应该扫描整个表来冻结元组的事务时间范围."
+
+#: utils/misc/guc.c:1997
 msgid ""
 "Number of transactions by which VACUUM and HOT cleanup should be deferred, "
 "if any."
 msgstr "VACUUM和热清理操作应该延迟的事务数量."
 
-#: utils/misc/guc.c:1897
+#: utils/misc/guc.c:2010
 msgid "Sets the maximum number of locks per transaction."
 msgstr "设置每一个事物锁的最大个数."
 
-#: utils/misc/guc.c:1898
+#: utils/misc/guc.c:2011
 msgid ""
 "The shared lock table is sized on the assumption that at most "
 "max_locks_per_transaction * max_connections distinct objects will need to be "
@@ -18324,11 +21334,11 @@ msgstr ""
 "持有共享锁表的大小是基于最多max_locks_per_transaction * max_connections个不同"
 "对象需要在任何时刻被锁定的假设来指定的."
 
-#: utils/misc/guc.c:1909
+#: utils/misc/guc.c:2022
 msgid "Sets the maximum number of predicate locks per transaction."
 msgstr "设置每一个事物的断言锁的最大个数."
 
-#: utils/misc/guc.c:1910
+#: utils/misc/guc.c:2023
 msgid ""
 "The shared predicate lock table is sized on the assumption that at most "
 "max_pred_locks_per_transaction * max_connections distinct objects will need "
@@ -18337,33 +21347,33 @@ msgstr ""
 "共享断言锁表的大小是基于最多max_locks_per_transaction * max_connections个不同"
 "对象需要在任何时刻被锁定的假设来指定的."
 
-#: utils/misc/guc.c:1921
+#: utils/misc/guc.c:2034
 msgid "Sets the maximum allowed time to complete client authentication."
 msgstr "设置完成客户端认证的需要等待的最长时间"
 
-#: utils/misc/guc.c:1933
+#: utils/misc/guc.c:2046
 msgid "Waits N seconds on connection startup before authentication."
 msgstr "在认证前在连接启动上需要等待N秒"
 
-#: utils/misc/guc.c:1944
+#: utils/misc/guc.c:2057
 msgid "Sets the number of WAL files held for standby servers."
 msgstr "设置用于备用服务器而持有WAL文件的数量."
 
-#: utils/misc/guc.c:1954
+#: utils/misc/guc.c:2067
 msgid ""
 "Sets the maximum distance in log segments between automatic WAL checkpoints."
 msgstr "在自动WAL检查点之间设置log段中的最大距离."
 
-#: utils/misc/guc.c:1964
+#: utils/misc/guc.c:2077
 msgid "Sets the maximum time between automatic WAL checkpoints."
 msgstr "设置两次自动WAL检查点事件之间需要等待的最大时间"
 
-#: utils/misc/guc.c:1975
+#: utils/misc/guc.c:2088
 msgid ""
 "Enables warnings if checkpoint segments are filled more frequently than this."
 msgstr "如果检查点段的填充频度超过了最大值,启用警告功能。"
 
-#: utils/misc/guc.c:1977
+#: utils/misc/guc.c:2090
 msgid ""
 "Write a message to the server log if checkpoints caused by the filling of "
 "checkpoint segment files happens more frequently than this number of "
@@ -18372,38 +21382,43 @@ msgstr ""
 "如果检查点事件是由于填充检查点段比这个数量的秒数更加频繁所引起,那么会向服务"
 "器日志写一条消息. 如果把参数设置为0,那么可以关掉警告功能."
 
-#: utils/misc/guc.c:1989
+#: utils/misc/guc.c:2102
 msgid "Sets the number of disk-page buffers in shared memory for WAL."
 msgstr "为 WAL 设置共享内存中磁盘页缓冲区的个数."
 
-#: utils/misc/guc.c:2000
+#: utils/misc/guc.c:2113
 msgid "WAL writer sleep time between WAL flushes."
 msgstr "WAL写进程在两次刷新WAL缓存内容之间的睡眠时间"
 
-#: utils/misc/guc.c:2012
+#: utils/misc/guc.c:2125
 msgid "Sets the maximum number of simultaneously running WAL sender processes."
 msgstr "设置同时运行的WAL发送进程最大数量"
 
-#: utils/misc/guc.c:2022
+#: utils/misc/guc.c:2136
+#| msgid "Sets the maximum number of simultaneously prepared transactions."
+msgid "Sets the maximum number of simultaneously defined replication slots."
+msgstr "设置同步的已定义复制槽的最大数."
+
+#: utils/misc/guc.c:2146
 msgid "Sets the maximum time to wait for WAL replication."
 msgstr "设置最大时间,等待WAL复制."
 
-#: utils/misc/guc.c:2033
+#: utils/misc/guc.c:2157
 msgid ""
 "Sets the delay in microseconds between transaction commit and flushing WAL "
 "to disk."
 msgstr "设置事物提交和刷新 WAL 到磁盘间的延迟时间, 单位微秒."
 
-#: utils/misc/guc.c:2044
+#: utils/misc/guc.c:2169
 msgid ""
 "Sets the minimum concurrent open transactions before performing commit_delay."
 msgstr "在执行commit_delay前,设置最少的可同步打开事务的数量."
 
-#: utils/misc/guc.c:2055
+#: utils/misc/guc.c:2180
 msgid "Sets the number of digits displayed for floating-point values."
 msgstr "设置浮点数显示的位数."
 
-#: utils/misc/guc.c:2056
+#: utils/misc/guc.c:2181
 msgid ""
 "This affects real, double precision, and geometric data types. The parameter "
 "value is added to the standard number of digits (FLT_DIG or DBL_DIG as "
@@ -18412,128 +21427,145 @@ msgstr ""
 "这将影响实数,双精度类型和几何数据类型.参数被加到位数的标准数量(视情况而定,可"
 "能是FLT_DIG或DBL_DIG)"
 
-#: utils/misc/guc.c:2067
+#: utils/misc/guc.c:2192
 msgid "Sets the minimum execution time above which statements will be logged."
 msgstr "设置最小执行时间,执行时间大于等于这个值的语句都将被记录."
 
-#: utils/misc/guc.c:2069
+#: utils/misc/guc.c:2194
 msgid "Zero prints all queries. -1 turns this feature off."
 msgstr ""
 "如果值设置为0,那么打印出所有查询. 如果设置为-1,那么将把这个功能特性关闭"
 
-#: utils/misc/guc.c:2079
+#: utils/misc/guc.c:2204
 msgid ""
 "Sets the minimum execution time above which autovacuum actions will be "
 "logged."
 msgstr ""
 "设置最小执行时间,如果autovacuum操作时间大于等于这个值,那么将记录这些操作."
 
-#: utils/misc/guc.c:2081
+#: utils/misc/guc.c:2206
 msgid "Zero prints all actions. -1 turns autovacuum logging off."
 msgstr "0表示打印出所有的操作.-1表示关闭对autovacuum的日志记录功能"
 
-#: utils/misc/guc.c:2091
+#: utils/misc/guc.c:2216
 msgid "Background writer sleep time between rounds."
 msgstr "后台写入进程 (Background writer) 两次运行之间的休眠时间."
 
-#: utils/misc/guc.c:2102
+#: utils/misc/guc.c:2227
 msgid "Background writer maximum number of LRU pages to flush per round."
 msgstr "后台写入进程 (Background writer) 每次可刷新LRU页的最大数量"
 
-#: utils/misc/guc.c:2118
+#: utils/misc/guc.c:2243
 msgid ""
 "Number of simultaneous requests that can be handled efficiently by the disk "
 "subsystem."
 msgstr "可以由磁盘子系统有效处理的并发请求数量."
 
-#: utils/misc/guc.c:2119
+#: utils/misc/guc.c:2244
 msgid ""
 "For RAID arrays, this should be approximately the number of drive spindles "
 "in the array."
 msgstr "对于RAID磁盘阵列来说,同步可处理的请求与磁盘阵列中磁盘数量应该相近."
 
-#: utils/misc/guc.c:2132
+#: utils/misc/guc.c:2259
+#| msgid "Sets the maximum number of concurrent connections."
+msgid "Maximum number of concurrent worker processes."
+msgstr "最大并发工作进程数."
+
+#: utils/misc/guc.c:2269
 msgid "Automatic log file rotation will occur after N minutes."
 msgstr "在N分钟后将会产生自动日志文件切换."
 
-#: utils/misc/guc.c:2143
+#: utils/misc/guc.c:2280
 msgid "Automatic log file rotation will occur after N kilobytes."
 msgstr "当写入了N千字节会发生自动日志文件切换"
 
-#: utils/misc/guc.c:2154
+#: utils/misc/guc.c:2291
 msgid "Shows the maximum number of function arguments."
 msgstr "显示函数参数的最大个数."
 
-#: utils/misc/guc.c:2165
+#: utils/misc/guc.c:2302
 msgid "Shows the maximum number of index keys."
 msgstr "显示索引键值的最大个数."
 
-#: utils/misc/guc.c:2176
+#: utils/misc/guc.c:2313
 msgid "Shows the maximum identifier length."
 msgstr "显示标识符最大长度"
 
-#: utils/misc/guc.c:2187
+#: utils/misc/guc.c:2324
 msgid "Shows the size of a disk block."
 msgstr "显示一个磁盘块的大小"
 
-#: utils/misc/guc.c:2198
+#: utils/misc/guc.c:2335
 msgid "Shows the number of pages per disk file."
 msgstr "显示在每个磁盘文件中页的数量."
 
-#: utils/misc/guc.c:2209
+#: utils/misc/guc.c:2346
 msgid "Shows the block size in the write ahead log."
 msgstr "显示预写日志中的块大小."
 
-#: utils/misc/guc.c:2220
+#: utils/misc/guc.c:2357
 msgid "Shows the number of pages per write ahead log segment."
 msgstr "显示每个预写日志段中页的数量."
 
-#: utils/misc/guc.c:2233
+#: utils/misc/guc.c:2370
 msgid "Time to sleep between autovacuum runs."
 msgstr "两次运行autovacuum进程的休眠时间"
 
-#: utils/misc/guc.c:2243
+#: utils/misc/guc.c:2380
 msgid "Minimum number of tuple updates or deletes prior to vacuum."
 msgstr "设置激活清理操作所需要最小数量的更新或删除元组."
 
-#: utils/misc/guc.c:2252
+#: utils/misc/guc.c:2389
 msgid "Minimum number of tuple inserts, updates, or deletes prior to analyze."
 msgstr "分析前可插入,更新或删除元组的最小数量"
 
-#: utils/misc/guc.c:2262
+#: utils/misc/guc.c:2399
 msgid ""
 "Age at which to autovacuum a table to prevent transaction ID wraparound."
 msgstr "这是应该自动清理一张表以避免事务ID重叠的时间段."
 
-#: utils/misc/guc.c:2273
+#: utils/misc/guc.c:2410
+#| msgid ""
+#| "Age at which to autovacuum a table to prevent transaction ID wraparound."
+msgid ""
+"Multixact age at which to autovacuum a table to prevent multixact wraparound."
+msgstr "自动清理一张表以避免事务ID重叠的时间范围."
+
+#: utils/misc/guc.c:2420
 msgid ""
 "Sets the maximum number of simultaneously running autovacuum worker "
 "processes."
 msgstr "设置最大可同时运行的autovacuum工作进程数量"
 
-#: utils/misc/guc.c:2283
+#: utils/misc/guc.c:2430
+#| msgid "Sets the maximum memory to be used for query workspaces."
+msgid "Sets the maximum memory to be used by each autovacuum worker process."
+msgstr "设置每个自动清理(autovacuum)工作进程要使用的最大内存数."
+
+#: utils/misc/guc.c:2441
 msgid "Time between issuing TCP keepalives."
 msgstr "启动TCP存活定时器的间隔"
 
-#: utils/misc/guc.c:2284 utils/misc/guc.c:2295
+#: utils/misc/guc.c:2442 utils/misc/guc.c:2453
 msgid "A value of 0 uses the system default."
 msgstr "值为0的时候表示系统缺省值"
 
-#: utils/misc/guc.c:2294
+#: utils/misc/guc.c:2452
 msgid "Time between TCP keepalive retransmits."
 msgstr "在两次TCP存活启动器重新传送之间需要花费的时间"
 
-#: utils/misc/guc.c:2305
+#: utils/misc/guc.c:2463
 msgid ""
 "Set the amount of traffic to send and receive before renegotiating the "
 "encryption keys."
 msgstr "在重新设定加密键之前设定需要进行发送和接收的流量总和"
 
-#: utils/misc/guc.c:2316
+#: utils/misc/guc.c:2474
 msgid "Maximum number of TCP keepalive retransmits."
 msgstr "设置每一个事物锁的最大个数."
 
-#: utils/misc/guc.c:2317
+#: utils/misc/guc.c:2475
 msgid ""
 "This controls the number of consecutive keepalive retransmits that can be "
 "lost before a connection is considered dead. A value of 0 uses the system "
@@ -18542,99 +21574,99 @@ msgstr ""
 "用于控制连续存活器再次传输数量,这些存活器重在连接被认为断开前会丢失.值0用于"
 "表示系统缺省."
 
-#: utils/misc/guc.c:2328
+#: utils/misc/guc.c:2486
 msgid "Sets the maximum allowed result for exact search by GIN."
 msgstr "设置由GIN进行的精确搜索所允许的最大允许结果."
 
-#: utils/misc/guc.c:2339
+#: utils/misc/guc.c:2497
 msgid "Sets the planner's assumption about the size of the disk cache."
 msgstr "设置关于计划器对磁盘缓冲大小的假设."
 
-#: utils/misc/guc.c:2340
+#: utils/misc/guc.c:2498
 msgid ""
 "That is, the portion of the kernel's disk cache that will be used for "
 "PostgreSQL data files. This is measured in disk pages, which are normally 8 "
 "kB each."
 msgstr "将要用于存储PostgreSQL数据文件的内核磁盘缓冲部分,以8K大小的页为单位."
 
-#: utils/misc/guc.c:2353
+#: utils/misc/guc.c:2511
 msgid "Shows the server version as an integer."
 msgstr "以整数的形式显示服务器版本信息."
 
-#: utils/misc/guc.c:2364
+#: utils/misc/guc.c:2522
 msgid "Log the use of temporary files larger than this number of kilobytes."
 msgstr "记录对超过这个数量(以千字节为单位)的临时文件的使用."
 
-#: utils/misc/guc.c:2365
+#: utils/misc/guc.c:2523
 msgid "Zero logs all files. The default is -1 (turning this feature off)."
 msgstr "如果设置为0,打印所有查询. 默认值为 -1 (表示关闭此功能)."
 
-#: utils/misc/guc.c:2375
+#: utils/misc/guc.c:2533
 msgid "Sets the size reserved for pg_stat_activity.query, in bytes."
 msgstr "设置为pg_stat_activity.query所保留的空间大小,以字节为单位."
 
-#: utils/misc/guc.c:2394
+#: utils/misc/guc.c:2557
 msgid ""
 "Sets the planner's estimate of the cost of a sequentially fetched disk page."
 msgstr "设置计划器对顺序获取磁盘页的开销估算"
 
-#: utils/misc/guc.c:2404
+#: utils/misc/guc.c:2567
 msgid ""
 "Sets the planner's estimate of the cost of a nonsequentially fetched disk "
 "page."
 msgstr "设置计划器对非顺序获取磁盘页的开销估算."
 
-#: utils/misc/guc.c:2414
+#: utils/misc/guc.c:2577
 msgid "Sets the planner's estimate of the cost of processing each tuple (row)."
 msgstr "设置计划器对处理每个元组(也就是记录)的开销估算"
 
-#: utils/misc/guc.c:2424
+#: utils/misc/guc.c:2587
 msgid ""
 "Sets the planner's estimate of the cost of processing each index entry "
 "during an index scan."
 msgstr "设置计划器在索引扫描期间对处理每个索引项的开销估算."
 
-#: utils/misc/guc.c:2434
+#: utils/misc/guc.c:2597
 msgid ""
 "Sets the planner's estimate of the cost of processing each operator or "
 "function call."
 msgstr "设置计划器对处理每个操作符和函数调用的开销估算."
 
-#: utils/misc/guc.c:2445
+#: utils/misc/guc.c:2608
 msgid ""
 "Sets the planner's estimate of the fraction of a cursor's rows that will be "
 "retrieved."
 msgstr "设置计划器对于通过游标取回记录部分的估算."
 
-#: utils/misc/guc.c:2456
+#: utils/misc/guc.c:2619
 msgid "GEQO: selective pressure within the population."
 msgstr "GEQO: 在总体中的选择性压力"
 
-#: utils/misc/guc.c:2466
+#: utils/misc/guc.c:2629
 msgid "GEQO: seed for random path selection."
 msgstr "GEQO:用于随机路径选择的种子."
 
-#: utils/misc/guc.c:2476
+#: utils/misc/guc.c:2639
 msgid "Multiple of the average buffer usage to free per round."
 msgstr "每一次释放平均缓冲区使用量的倍数大小"
 
-#: utils/misc/guc.c:2486
+#: utils/misc/guc.c:2649
 msgid "Sets the seed for random-number generation."
 msgstr "设置生成随机数的种子."
 
-#: utils/misc/guc.c:2497
+#: utils/misc/guc.c:2660
 msgid ""
 "Number of tuple updates or deletes prior to vacuum as a fraction of "
 "reltuples."
 msgstr "在清理前需要插入,删除或更新元组的数量,这个数量是作为表大小的百分比"
 
-#: utils/misc/guc.c:2506
+#: utils/misc/guc.c:2669
 msgid ""
 "Number of tuple inserts, updates, or deletes prior to analyze as a fraction "
 "of reltuples."
 msgstr "在分析前插入,更新或删除元组的数量,这个数量以表大小的百分比的形式出现"
 
-#: utils/misc/guc.c:2516
+#: utils/misc/guc.c:2679
 msgid ""
 "Time spent flushing dirty buffers during checkpoint, as fraction of "
 "checkpoint interval."
@@ -18642,51 +21674,51 @@ msgstr ""
 "在检查点事件期间花费在将缓冲区中脏页刷新到磁盘的时间, 这个时间作为检查点间隔"
 "的百分比。"
 
-#: utils/misc/guc.c:2535
+#: utils/misc/guc.c:2698
 msgid "Sets the shell command that will be called to archive a WAL file."
 msgstr "设置用于对WAL文件进行归档的shell命令"
 
-#: utils/misc/guc.c:2545
+#: utils/misc/guc.c:2708
 msgid "Sets the client's character set encoding."
 msgstr "设置客户端编码"
 
-#: utils/misc/guc.c:2556
+#: utils/misc/guc.c:2719
 msgid "Controls information prefixed to each log line."
 msgstr "将控制信息作为每条日志文本的前缀"
 
-#: utils/misc/guc.c:2557
+#: utils/misc/guc.c:2720
 msgid "If blank, no prefix is used."
 msgstr "如果是空的,那么不使用前缀"
 
-#: utils/misc/guc.c:2566
+#: utils/misc/guc.c:2729
 msgid "Sets the time zone to use in log messages."
 msgstr "设置在日志消息中使用的时间区域"
 
-#: utils/misc/guc.c:2576
+#: utils/misc/guc.c:2739
 msgid "Sets the display format for date and time values."
 msgstr "设置日期和时间值的显示格式."
 
-#: utils/misc/guc.c:2577
+#: utils/misc/guc.c:2740
 msgid "Also controls interpretation of ambiguous date inputs."
 msgstr "控制对模糊日期输入的解释."
 
-#: utils/misc/guc.c:2588
+#: utils/misc/guc.c:2751
 msgid "Sets the default tablespace to create tables and indexes in."
 msgstr "设置用于创建表和索引的缺省表空间."
 
-#: utils/misc/guc.c:2589
+#: utils/misc/guc.c:2752
 msgid "An empty string selects the database's default tablespace."
 msgstr "使用空字符串表示数据库的缺省表空间."
 
-#: utils/misc/guc.c:2599
+#: utils/misc/guc.c:2762
 msgid "Sets the tablespace(s) to use for temporary tables and sort files."
 msgstr "将表空间设置为用于存放临时表和排序文件"
 
-#: utils/misc/guc.c:2610
+#: utils/misc/guc.c:2773
 msgid "Sets the path for dynamically loadable modules."
 msgstr "设置动态加载摸组的路径."
 
-#: utils/misc/guc.c:2611
+#: utils/misc/guc.c:2774
 msgid ""
 "If a dynamically loadable module needs to be opened and the specified name "
 "does not have a directory component (i.e., the name does not contain a "
@@ -18695,75 +21727,76 @@ msgstr ""
 "如果一个动态加载模块需要打开并且指定名字没有路径 (例如, 名字中没包含斜杠), 系"
 "统将在此路径中查找指定的文件."
 
-#: utils/misc/guc.c:2624
+#: utils/misc/guc.c:2787
 msgid "Sets the location of the Kerberos server key file."
 msgstr "设置 Kerberos 服务器密钥文件位置."
 
-#: utils/misc/guc.c:2635
-msgid "Sets the name of the Kerberos service."
-msgstr "设置Kerberos服务的名称"
-
-#: utils/misc/guc.c:2645
+#: utils/misc/guc.c:2798
 msgid "Sets the Bonjour service name."
 msgstr "设置Bonjour服务名称."
 
-#: utils/misc/guc.c:2657
+#: utils/misc/guc.c:2810
 msgid "Shows the collation order locale."
 msgstr "显示排序规则顺序的语言环境"
 
-#: utils/misc/guc.c:2668
+#: utils/misc/guc.c:2821
 msgid "Shows the character classification and case conversion locale."
 msgstr "显示字符分类和按条件转换的语言环境."
 
-#: utils/misc/guc.c:2679
+#: utils/misc/guc.c:2832
 msgid "Sets the language in which messages are displayed."
 msgstr "设置信息显示语言."
 
-#: utils/misc/guc.c:2689
+#: utils/misc/guc.c:2842
 msgid "Sets the locale for formatting monetary amounts."
 msgstr "为货币数量格式设置 locale."
 
-#: utils/misc/guc.c:2699
+#: utils/misc/guc.c:2852
 msgid "Sets the locale for formatting numbers."
 msgstr "为数字格式设置 locale"
 
-#: utils/misc/guc.c:2709
+#: utils/misc/guc.c:2862
 msgid "Sets the locale for formatting date and time values."
 msgstr "为日期和时间值格式设置 locale"
 
-#: utils/misc/guc.c:2719
+#: utils/misc/guc.c:2872
+msgid "Lists shared libraries to preload into each backend."
+msgstr "列出预先加载到每个后台进程的共享库."
+
+#: utils/misc/guc.c:2883
 msgid "Lists shared libraries to preload into server."
 msgstr "列出预装入服务器的共享库."
 
-#: utils/misc/guc.c:2730
-msgid "Lists shared libraries to preload into each backend."
-msgstr "列出预先加载到每个后台进程的共享库."
+#: utils/misc/guc.c:2894
+#| msgid "Lists shared libraries to preload into each backend."
+msgid "Lists unprivileged shared libraries to preload into each backend."
+msgstr "列出预先加载到每个后台进程的非优先的共享库."
 
-#: utils/misc/guc.c:2741
+#: utils/misc/guc.c:2905
 msgid "Sets the schema search order for names that are not schema-qualified."
 msgstr "为不是模式限定的名称设置模式搜索顺序"
 
-#: utils/misc/guc.c:2753
+#: utils/misc/guc.c:2917
 msgid "Sets the server (database) character set encoding."
 msgstr "设置服务器 (数据库) 字符编码."
 
-#: utils/misc/guc.c:2765
+#: utils/misc/guc.c:2929
 msgid "Shows the server version."
 msgstr "显示服务器版本信息."
 
-#: utils/misc/guc.c:2777
+#: utils/misc/guc.c:2941
 msgid "Sets the current role."
 msgstr "设置当前的角色"
 
-#: utils/misc/guc.c:2789
+#: utils/misc/guc.c:2953
 msgid "Sets the session user name."
 msgstr "设置会话用户名称."
 
-#: utils/misc/guc.c:2800
+#: utils/misc/guc.c:2964
 msgid "Sets the destination for server log output."
 msgstr "设置服务器日志输出目标."
 
-#: utils/misc/guc.c:2801
+#: utils/misc/guc.c:2965
 msgid ""
 "Valid values are combinations of \"stderr\", \"syslog\", \"csvlog\", and "
 "\"eventlog\", depending on the platform."
@@ -18771,207 +21804,221 @@ msgstr ""
 "有效值为 \"stderr\", \"syslog\", \"csvlog\", and \"eventlog\" 的组合, 这取决"
 "于平台的种类."
 
-#: utils/misc/guc.c:2812
+#: utils/misc/guc.c:2976
 msgid "Sets the destination directory for log files."
 msgstr "设置日志文件目的目录."
 
-#: utils/misc/guc.c:2813
+#: utils/misc/guc.c:2977
 msgid "Can be specified as relative to the data directory or as absolute path."
 msgstr "可以指定为data目录的相对目录或绝对目录."
 
-#: utils/misc/guc.c:2823
+#: utils/misc/guc.c:2987
 msgid "Sets the file name pattern for log files."
 msgstr "设置日志文件的文件名字模式."
 
-#: utils/misc/guc.c:2834
+#: utils/misc/guc.c:2998
 msgid "Sets the program name used to identify PostgreSQL messages in syslog."
 msgstr "设置在系统日志 (syslog) 中确认 PostgreSQL 信息的程序名."
 
-#: utils/misc/guc.c:2845
+#: utils/misc/guc.c:3009
 msgid ""
 "Sets the application name used to identify PostgreSQL messages in the event "
 "log."
 msgstr "设置在事件日志 (syslog) 中用于标识 PostgreSQL 消息的程序名."
 
-#: utils/misc/guc.c:2856
+#: utils/misc/guc.c:3020
 msgid "Sets the time zone for displaying and interpreting time stamps."
 msgstr "设置显示和解释时间戳的时区."
 
-#: utils/misc/guc.c:2866
+#: utils/misc/guc.c:3030
 msgid "Selects a file of time zone abbreviations."
 msgstr "选择时间区域缩写的文件"
 
-#: utils/misc/guc.c:2876
+#: utils/misc/guc.c:3040
 msgid "Sets the current transaction's isolation level."
 msgstr "设置当前事物的隔离级别."
 
-#: utils/misc/guc.c:2887
+#: utils/misc/guc.c:3051
 msgid "Sets the owning group of the Unix-domain socket."
 msgstr "设置 Unix-domain 套接字的属组."
 
-#: utils/misc/guc.c:2888
+#: utils/misc/guc.c:3052
 msgid ""
 "The owning user of the socket is always the user that starts the server."
 msgstr "套接字的属主用户也是起动服务的用户."
 
-#: utils/misc/guc.c:2898
-msgid "Sets the directory where the Unix-domain socket will be created."
-msgstr "设置创建 Unix-domain 套接字的目录."
+#: utils/misc/guc.c:3062
+#| msgid "Sets the directory where the Unix-domain socket will be created."
+msgid "Sets the directories where Unix-domain sockets will be created."
+msgstr "设置用于创建Unix-domain套接字的目录."
 
-#: utils/misc/guc.c:2909
+#: utils/misc/guc.c:3077
 msgid "Sets the host name or IP address(es) to listen to."
 msgstr "设置监听的主机名或 IP 地址."
 
-#: utils/misc/guc.c:2920
+#: utils/misc/guc.c:3092
 msgid "Sets the server's data directory."
 msgstr "设置服务器的数据目录"
 
-#: utils/misc/guc.c:2931
+#: utils/misc/guc.c:3103
 msgid "Sets the server's main configuration file."
 msgstr "设置服务器的主配置文件"
 
-#: utils/misc/guc.c:2942
+#: utils/misc/guc.c:3114
 msgid "Sets the server's \"hba\" configuration file."
 msgstr "设置服务器的 \"hba\" 配置文件"
 
-#: utils/misc/guc.c:2953
+#: utils/misc/guc.c:3125
 msgid "Sets the server's \"ident\" configuration file."
 msgstr "设置服务器的 \"ident\" 配置文件"
 
-#: utils/misc/guc.c:2964
+#: utils/misc/guc.c:3136
 msgid "Writes the postmaster PID to the specified file."
 msgstr "把 postmaster PID 写到指定文件."
 
-#: utils/misc/guc.c:2975
+#: utils/misc/guc.c:3147
 msgid "Location of the SSL server certificate file."
 msgstr "SSL服务器证书文件的位置"
 
-#: utils/misc/guc.c:2985
+#: utils/misc/guc.c:3157
 msgid "Location of the SSL server private key file."
 msgstr "SSL服务器私钥文件的位置."
 
-#: utils/misc/guc.c:2995
+#: utils/misc/guc.c:3167
 msgid "Location of the SSL certificate authority file."
 msgstr "SSL证书授权文件的位置."
 
-#: utils/misc/guc.c:3005
+#: utils/misc/guc.c:3177
 msgid "Location of the SSL certificate revocation list file."
 msgstr "SSL证书撤销列表文件的位置."
 
-#: utils/misc/guc.c:3015
+#: utils/misc/guc.c:3187
 msgid "Writes temporary statistics files to the specified directory."
 msgstr "将临时统计信息文件写到指定的目录"
 
-#: utils/misc/guc.c:3026
+#: utils/misc/guc.c:3198
 msgid "List of names of potential synchronous standbys."
 msgstr "可能的同步备用节点的名称列表."
 
 # describe.c:97
-#: utils/misc/guc.c:3037
+#: utils/misc/guc.c:3209
 msgid "Sets default text search configuration."
 msgstr "设置缺省文本搜索配置"
 
-#: utils/misc/guc.c:3047
+#: utils/misc/guc.c:3219
 msgid "Sets the list of allowed SSL ciphers."
 msgstr "设置日志信息的冗长."
 
-#: utils/misc/guc.c:3062
+#: utils/misc/guc.c:3234
+#| msgid "Sets the current role."
+msgid "Sets the curve to use for ECDH."
+msgstr "设置该曲线,用于ECDH."
+
+#: utils/misc/guc.c:3249
 msgid "Sets the application name to be reported in statistics and logs."
 msgstr "设置在统计和日志中出现的应用程序名称."
 
-#: utils/misc/guc.c:3082
+#: utils/misc/guc.c:3269
 msgid "Sets whether \"\\'\" is allowed in string literals."
 msgstr "在字符串常量中设置是否允许使用\"\\'\""
 
-#: utils/misc/guc.c:3092
+#: utils/misc/guc.c:3279
 msgid "Sets the output format for bytea."
 msgstr "设置bytea类型数据的输出格式"
 
-#: utils/misc/guc.c:3102
+#: utils/misc/guc.c:3289
 msgid "Sets the message levels that are sent to the client."
 msgstr "设置发送到客户端的信息级别."
 
-#: utils/misc/guc.c:3103 utils/misc/guc.c:3156 utils/misc/guc.c:3167
-#: utils/misc/guc.c:3223
+#: utils/misc/guc.c:3290 utils/misc/guc.c:3343 utils/misc/guc.c:3354
+#: utils/misc/guc.c:3410
 msgid ""
 "Each level includes all the levels that follow it. The later the level, the "
 "fewer messages are sent."
 msgstr "每一层都包含在这一层后面的层次, 对于越往后的层次,就会发送越少的消息."
 
-#: utils/misc/guc.c:3113
+#: utils/misc/guc.c:3300
 msgid "Enables the planner to use constraints to optimize queries."
 msgstr "使计划器可以使用约束来优化查询."
 
-#: utils/misc/guc.c:3114
+#: utils/misc/guc.c:3301
 msgid ""
 "Table scans will be skipped if their constraints guarantee that no rows "
 "match the query."
 msgstr "如果约束能够确保没有列符合查询条件,那么将跳过表扫描."
 
-#: utils/misc/guc.c:3124
+#: utils/misc/guc.c:3311
 msgid "Sets the transaction isolation level of each new transaction."
 msgstr "设置每一个新事物的隔离 (isolation) 级别."
 
-#: utils/misc/guc.c:3134
+#: utils/misc/guc.c:3321
 msgid "Sets the display format for interval values."
 msgstr "设置时间间隔值的显示格式."
 
-#: utils/misc/guc.c:3145
+#: utils/misc/guc.c:3332
 msgid "Sets the verbosity of logged messages."
 msgstr "设置日志信息的冗长."
 
-#: utils/misc/guc.c:3155
+#: utils/misc/guc.c:3342
 msgid "Sets the message levels that are logged."
 msgstr "设置日志记录的信息级别."
 
-#: utils/misc/guc.c:3166
+#: utils/misc/guc.c:3353
 msgid ""
 "Causes all statements generating error at or above this level to be logged."
 msgstr "在此级别或以上级别, 所有语句产生的错误将被记录."
 
-#: utils/misc/guc.c:3177
+#: utils/misc/guc.c:3364
 msgid "Sets the type of statements logged."
 msgstr "设置记录语句的类型."
 
-#: utils/misc/guc.c:3187
+#: utils/misc/guc.c:3374
 msgid "Sets the syslog \"facility\" to be used when syslog enabled."
 msgstr "当启用系统日志 (syslog), 设置系统日志使用 \"facility\"."
 
-#: utils/misc/guc.c:3202
+#: utils/misc/guc.c:3389
 msgid "Sets the session's behavior for triggers and rewrite rules."
 msgstr "为触发器和重写规则设置会话的行为"
 
-#: utils/misc/guc.c:3212
+#: utils/misc/guc.c:3399
 msgid "Sets the current transaction's synchronization level."
 msgstr "设置当前事物的同步级别."
 
-#: utils/misc/guc.c:3222
+#: utils/misc/guc.c:3409
 msgid "Enables logging of recovery-related debugging information."
 msgstr "启用日志功能,对与恢复操作相关的调试信息进行记录."
 
-#: utils/misc/guc.c:3238
+#: utils/misc/guc.c:3425
 msgid "Collects function-level statistics on database activity."
 msgstr "在数据库运行的事务中收集函数级别统计信息."
 
-#: utils/misc/guc.c:3248
+#: utils/misc/guc.c:3435
 msgid "Set the level of information written to the WAL."
 msgstr "设置写入WAL文件的信息的内容详细级别"
 
-#: utils/misc/guc.c:3258
+#: utils/misc/guc.c:3445
+msgid "Selects the dynamic shared memory implementation used."
+msgstr "选择过去的动态共享内存实现."
+
+#: utils/misc/guc.c:3455
 msgid "Selects the method used for forcing WAL updates to disk."
 msgstr "选择用于强制将WAL缓冲区的内容更新到磁盘的方法."
 
-#: utils/misc/guc.c:3268
+#: utils/misc/guc.c:3465
 msgid "Sets how binary values are to be encoded in XML."
 msgstr "设置在XML中如何对二进制的值进行编码."
 
-#: utils/misc/guc.c:3278
+#: utils/misc/guc.c:3475
 msgid ""
 "Sets whether XML data in implicit parsing and serialization operations is to "
 "be considered as documents or content fragments."
 msgstr "设置在隐式分析和串行操作中的XML数据是否被当作文档或者内容片断."
 
-#: utils/misc/guc.c:4092
+#: utils/misc/guc.c:3486
+msgid "Use of huge pages on Linux."
+msgstr "使用Linux上的超大(huge)页"
+
+#: utils/misc/guc.c:4301
 #, c-format
 msgid ""
 "%s does not know where to find the server configuration file.\n"
@@ -18981,12 +22028,12 @@ msgstr ""
 "%s 不知道在哪里可以找到数据库系统配置文件.\n"
 "你必须通过 --config-file 或 -D 选项指定或者通过设置 PGDATA 环境变量.\n"
 
-#: utils/misc/guc.c:4111
+#: utils/misc/guc.c:4320
 #, c-format
 msgid "%s cannot access the server configuration file \"%s\": %s\n"
 msgstr "%s 无法处理服务器的配置文件 \"%s\": %s\n"
 
-#: utils/misc/guc.c:4132
+#: utils/misc/guc.c:4348
 #, c-format
 msgid ""
 "%s does not know where to find the database system data.\n"
@@ -18997,7 +22044,7 @@ msgstr ""
 "可以在 \"%s\" 中指定 \"data_directory\", 或者通过 -D 选项指定或者通过设置 "
 "PGDATA 环境变量.\n"
 
-#: utils/misc/guc.c:4172
+#: utils/misc/guc.c:4396
 #, c-format
 msgid ""
 "%s does not know where to find the \"hba\" configuration file.\n"
@@ -19008,7 +22055,7 @@ msgstr ""
 "可以在 \"%s\" 中指定 \"hba_file\", 或者通过 -D 选项指定或者通过设置PGDATA 环"
 "境变量.\n"
 
-#: utils/misc/guc.c:4195
+#: utils/misc/guc.c:4419
 #, c-format
 msgid ""
 "%s does not know where to find the \"ident\" configuration file.\n"
@@ -19019,119 +22066,115 @@ msgstr ""
 "可以在 \"%s\" 中指定 \"ident_file\", 或者通过 -D 选项指定或者通过设置PGDATA "
 "环境变量.\n"
 
-#: utils/misc/guc.c:4787 utils/misc/guc.c:4951
+#: utils/misc/guc.c:5011 utils/misc/guc.c:5191
 msgid "Value exceeds integer range."
 msgstr "值已超过整数范围"
 
-#: utils/misc/guc.c:4806
-msgid "Valid units for this parameter are \"kB\", \"MB\", and \"GB\"."
-msgstr "这个参数的有效单位是\"kB\", \"MB\", 和\"GB\"."
+#: utils/misc/guc.c:5030
+#| msgid "Valid units for this parameter are \"kB\", \"MB\", and \"GB\"."
+msgid "Valid units for this parameter are \"kB\", \"MB\", \"GB\", and \"TB\"."
+msgstr "这个参数的有效单位是\"kB\", \"MB\", \"GB\"和\"TB\"."
 
-#: utils/misc/guc.c:4865
+#: utils/misc/guc.c:5105
 msgid ""
 "Valid units for this parameter are \"ms\", \"s\", \"min\", \"h\", and \"d\"."
 msgstr "这个参数可使用的有效单元是\"ms\", \"s\", \"min\", \"h\", 和\"d\"."
 
-#: utils/misc/guc.c:5158 utils/misc/guc.c:5940 utils/misc/guc.c:5992
-#: utils/misc/guc.c:6725 utils/misc/guc.c:6884 utils/misc/guc.c:8053
+#: utils/misc/guc.c:5399 utils/misc/guc.c:5524 utils/misc/guc.c:6767
+#: utils/misc/guc.c:8964 utils/misc/guc.c:8998
+#, c-format
+msgid "invalid value for parameter \"%s\": \"%s\""
+msgstr "参数 \"%s\" 的值无效: \"%s\""
+
+#: utils/misc/guc.c:5437
+#, c-format
+msgid "parameter \"%s\" requires a numeric value"
+msgstr "参数 \"%s\" 需要一个数字值"
+
+#: utils/misc/guc.c:5446
+#, c-format
+msgid "%g is outside the valid range for parameter \"%s\" (%g .. %g)"
+msgstr "%g 超出了参数 \"%s\" (%g .. %g) 的有效范围"
+
+#: utils/misc/guc.c:5612 utils/misc/guc.c:6334 utils/misc/guc.c:6386
+#: utils/misc/guc.c:6749 utils/misc/guc.c:7446 utils/misc/guc.c:7605
+#: utils/misc/guc.c:8784
 #, c-format
 msgid "unrecognized configuration parameter \"%s\""
 msgstr "未认可的配置参数 \"%s\""
 
-#: utils/misc/guc.c:5173
+#: utils/misc/guc.c:5627 utils/misc/guc.c:6760
 #, c-format
 msgid "parameter \"%s\" cannot be changed"
 msgstr "参数 \"%s\" 不可以改变"
 
-#: utils/misc/guc.c:5196 utils/misc/guc.c:5372 utils/misc/guc.c:5476
-#: utils/misc/guc.c:5577 utils/misc/guc.c:5698 utils/misc/guc.c:5806
-#: guc-file.l:227
-#, c-format
-msgid "parameter \"%s\" cannot be changed without restarting the server"
-msgstr "在没有启动服务器的情况下,不能改变参数 \"%s\" "
-
-#: utils/misc/guc.c:5206
+#: utils/misc/guc.c:5660
 #, c-format
 msgid "parameter \"%s\" cannot be changed now"
 msgstr "参数 \"%s\" 现在不能改变"
 
-#: utils/misc/guc.c:5237
+#: utils/misc/guc.c:5705
 #, c-format
 msgid "parameter \"%s\" cannot be set after connection start"
 msgstr "联接启动后, 参数 \"%s\" 不能设置"
 
-#: utils/misc/guc.c:5247 utils/misc/guc.c:8069
+#: utils/misc/guc.c:5715 utils/misc/guc.c:8800
 #, c-format
 msgid "permission denied to set parameter \"%s\""
 msgstr "设置参数 \"%s\" 权限不允许"
 
-#: utils/misc/guc.c:5285
+#: utils/misc/guc.c:5753
 #, c-format
 msgid "cannot set parameter \"%s\" within security-definer function"
 msgstr "无法在安全定义者操作中设置参数\"%s\" "
 
-#: utils/misc/guc.c:5438 utils/misc/guc.c:5773 utils/misc/guc.c:8233
-#: utils/misc/guc.c:8267
-#, c-format
-msgid "invalid value for parameter \"%s\": \"%s\""
-msgstr "参数 \"%s\" 的值无效: \"%s\""
-
-#: utils/misc/guc.c:5447
-#, c-format
-msgid "%d is outside the valid range for parameter \"%s\" (%d .. %d)"
-msgstr "%d 超出了参数 \"%s\" (%d .. %d) 的有效范围"
-
-#: utils/misc/guc.c:5540
-#, c-format
-msgid "parameter \"%s\" requires a numeric value"
-msgstr "参数 \"%s\" 需要一个数字值"
-
-#: utils/misc/guc.c:5548
-#, c-format
-msgid "%g is outside the valid range for parameter \"%s\" (%g .. %g)"
-msgstr "%g 超出了参数 \"%s\" (%g .. %g) 的有效范围"
-
-#: utils/misc/guc.c:5948 utils/misc/guc.c:5996 utils/misc/guc.c:6888
+#: utils/misc/guc.c:6342 utils/misc/guc.c:6390 utils/misc/guc.c:7609
 #, c-format
 msgid "must be superuser to examine \"%s\""
 msgstr "检查 \"%s\" 必须为超级用户"
 
-#: utils/misc/guc.c:6062
+#: utils/misc/guc.c:6456
 #, c-format
 msgid "SET %s takes only one argument"
 msgstr "SET %s 只能带一个参数"
 
-#: utils/misc/guc.c:6233
+#: utils/misc/guc.c:6713
+#, c-format
+#| msgid "must be superuser to get file information"
+msgid "must be superuser to execute ALTER SYSTEM command"
+msgstr "只有超级用户才能执行命令ALTER SYSTEM"
+
+#: utils/misc/guc.c:6946
 #, c-format
 msgid "SET LOCAL TRANSACTION SNAPSHOT is not implemented"
 msgstr "SET LOCAL TRANSACTION SNAPSHOT没有实现"
 
-#: utils/misc/guc.c:6313
+#: utils/misc/guc.c:7034
 #, c-format
 msgid "SET requires parameter name"
 msgstr "SET 需要参数名字"
 
-#: utils/misc/guc.c:6427
+#: utils/misc/guc.c:7148
 #, c-format
 msgid "attempt to redefine parameter \"%s\""
 msgstr "尝试重新定义参数 \"%s\""
 
-#: utils/misc/guc.c:7772
+#: utils/misc/guc.c:8504
 #, c-format
 msgid "could not parse setting for parameter \"%s\""
 msgstr "无法分析参数 \"%s\" 的设置"
 
-#: utils/misc/guc.c:8131 utils/misc/guc.c:8165
+#: utils/misc/guc.c:8862 utils/misc/guc.c:8896
 #, c-format
 msgid "invalid value for parameter \"%s\": %d"
 msgstr "参数 \"%s\" 的值无效: %d"
 
-#: utils/misc/guc.c:8199
+#: utils/misc/guc.c:8930
 #, c-format
 msgid "invalid value for parameter \"%s\": %g"
 msgstr "参数 \"%s\" 的值无效: %g"
 
-#: utils/misc/guc.c:8389
+#: utils/misc/guc.c:9120
 #, c-format
 msgid ""
 "\"temp_buffers\" cannot be changed after any temporary tables have been "
@@ -19139,34 +22182,34 @@ msgid ""
 msgstr ""
 "在当前会话中,如果有任何临时表被访问,就不能改变\"temp_buffers\"中的内容."
 
-#: utils/misc/guc.c:8401
+#: utils/misc/guc.c:9132
 #, c-format
 msgid "SET AUTOCOMMIT TO OFF is no longer supported"
 msgstr "SET AUTOCOMMIT TO OFF 不再被支持"
 
-#: utils/misc/guc.c:8413
+#: utils/misc/guc.c:9144
 #, c-format
 msgid "assertion checking is not supported by this build"
 msgstr "这个版本的安装不支持使用断言检查"
 
 # input.c:213
-#: utils/misc/guc.c:8426
+#: utils/misc/guc.c:9157
 #, c-format
 msgid "Bonjour is not supported by this build"
 msgstr "这个版本的安装不支持使用Bonjour "
 
 # input.c:213
-#: utils/misc/guc.c:8439
+#: utils/misc/guc.c:9170
 #, c-format
 msgid "SSL is not supported by this build"
 msgstr "这个版本的安装不支持使用SSL"
 
-#: utils/misc/guc.c:8451
+#: utils/misc/guc.c:9182
 #, c-format
 msgid "Cannot enable parameter when \"log_statement_stats\" is true."
 msgstr "当 \"log_statement_stats\" 为 true 时, 不能启动参数."
 
-#: utils/misc/guc.c:8463
+#: utils/misc/guc.c:9194
 #, c-format
 msgid ""
 "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", "
@@ -19180,6 +22223,12 @@ msgstr ""
 msgid "internal error: unrecognized run-time parameter type\n"
 msgstr "内部错误: 未知的运行时参数类型\n"
 
+#: utils/misc/timeout.c:422
+#, c-format
+#| msgid "cannot move system relation \"%s\""
+msgid "cannot add more timeout reasons"
+msgstr "无法添加更多的超时原因"
+
 #: utils/misc/tzparser.c:61
 #, c-format
 msgid ""
@@ -19187,84 +22236,78 @@ msgid ""
 "zone file \"%s\", line %d"
 msgstr "在时区文件\"%3$s\"的第%4$d行中时区缩写\"%1$s\"太长了(最大允许%2$d字符)"
 
-#: utils/misc/tzparser.c:68
-#, c-format
-msgid ""
-"time zone offset %d is not a multiple of 900 sec (15 min) in time zone file "
-"\"%s\", line %d"
-msgstr "在时区文件 \"%2$s\"中的第%3$d行中时区偏移%1$d不是900秒(15分钟)的倍数."
-
-#: utils/misc/tzparser.c:80
+#: utils/misc/tzparser.c:73
 #, c-format
 msgid "time zone offset %d is out of range in time zone file \"%s\", line %d"
 msgstr "时区文件\"%2$s\"的第%3$d行中的时区偏移%1$d超出范围."
 
-#: utils/misc/tzparser.c:115
+#: utils/misc/tzparser.c:112
 #, c-format
 msgid "missing time zone abbreviation in time zone file \"%s\", line %d"
 msgstr "在时区文件\"%s\"的第%d行中丢失时区缩写"
 
-#: utils/misc/tzparser.c:124
+#: utils/misc/tzparser.c:121
 #, c-format
 msgid "missing time zone offset in time zone file \"%s\", line %d"
 msgstr "在时间区域文件\"%s\"的第%d行中,丢失时区偏移量"
 
-#: utils/misc/tzparser.c:131
+#: utils/misc/tzparser.c:133
 #, c-format
 msgid "invalid number for time zone offset in time zone file \"%s\", line %d"
 msgstr "在时区文件\"%s\"的第%d行中,时区偏移量的数量无效"
 
-#: utils/misc/tzparser.c:154
+#: utils/misc/tzparser.c:169
 #, c-format
 msgid "invalid syntax in time zone file \"%s\", line %d"
 msgstr "在时间区域文件\"%s\"的第%d行中语法错误"
 
-#: utils/misc/tzparser.c:218
+#: utils/misc/tzparser.c:237
 #, c-format
 msgid "time zone abbreviation \"%s\" is multiply defined"
 msgstr "多次定义时间区缩写\"%s\" "
 
-#: utils/misc/tzparser.c:220
+#: utils/misc/tzparser.c:239
 #, c-format
 msgid ""
 "Entry in time zone file \"%s\", line %d, conflicts with entry in file \"%s"
 "\", line %d."
 msgstr "在时区文件\"%s\"中第%d行的项, 与在文件\"%s\"第%d行中的项相冲突."
 
-#: utils/misc/tzparser.c:285
+#: utils/misc/tzparser.c:301
 #, c-format
 msgid "invalid time zone file name \"%s\""
 msgstr "无效时区文件名称 \"%s\""
 
-#: utils/misc/tzparser.c:298
+#: utils/misc/tzparser.c:314
 #, c-format
 msgid "time zone file recursion limit exceeded in file \"%s\""
 msgstr "在文件\"%s\"中已超过了对时区文件递归限制"
 
-#: utils/misc/tzparser.c:337 utils/misc/tzparser.c:350
+#: utils/misc/tzparser.c:353 utils/misc/tzparser.c:366
 #, c-format
 msgid "could not read time zone file \"%s\": %m"
 msgstr "无法读取时间区域文件 \"%s\": %m"
 
-#: utils/misc/tzparser.c:360
+#: utils/misc/tzparser.c:376
 #, c-format
 msgid "line is too long in time zone file \"%s\", line %d"
 msgstr "在时间区域文件\"%s\"的第%d行中文本太长了."
 
-#: utils/misc/tzparser.c:383
+#: utils/misc/tzparser.c:399
 #, c-format
 msgid "@INCLUDE without file name in time zone file \"%s\", line %d"
 msgstr "在时间区域文件\"%s\"中的第%d行中,@INCLUDE没有带文件名 "
 
-#: utils/mmgr/aset.c:417
+#: utils/mmgr/aset.c:500
 #, c-format
 msgid "Failed while creating memory context \"%s\"."
 msgstr "创建内存上下文 \"%s\" 失败."
 
-#: utils/mmgr/aset.c:588 utils/mmgr/aset.c:766 utils/mmgr/aset.c:967
+#: utils/mmgr/aset.c:679 utils/mmgr/aset.c:873 utils/mmgr/aset.c:1115
 #, c-format
-msgid "Failed on request of size %lu."
-msgstr "分配内存 %lu 大小失败."
+#| msgid "Failed on request of size %lu."
+msgid "Failed on request of size %zu."
+msgstr "无法请求大小 %zu."
 
 #: utils/mmgr/portalmem.c:208
 #, c-format
@@ -19286,45 +22329,65 @@ msgstr "不能删除处于活动状态的portal \"%s\""
 msgid "cannot PREPARE a transaction that has created a cursor WITH HOLD"
 msgstr "无法对一个已经创建带有WITH HOLD游标的事务执行PREPARE操作."
 
-#: utils/sort/logtape.c:215
-#, c-format
-msgid "Perhaps out of disk space?"
-msgstr "可能超出磁盘空间?"
-
-#: utils/sort/logtape.c:232
+#: utils/sort/logtape.c:229
 #, c-format
 msgid "could not read block %ld of temporary file: %m"
 msgstr "无法读取临时文件块 %ld: %m"
 
-#: utils/sort/tuplesort.c:3089
+#: utils/sort/tuplesort.c:3255
 #, c-format
 msgid "could not create unique index \"%s\""
 msgstr "无法创建唯一索引\"%s\""
 
-#: utils/sort/tuplesort.c:3091
+#: utils/sort/tuplesort.c:3257
 #, c-format
 msgid "Key %s is duplicated."
 msgstr "键值%s重复了"
 
-#: utils/time/snapmgr.c:774
+#: utils/sort/tuplestore.c:506 utils/sort/tuplestore.c:516
+#: utils/sort/tuplestore.c:843 utils/sort/tuplestore.c:947
+#: utils/sort/tuplestore.c:1011 utils/sort/tuplestore.c:1028
+#: utils/sort/tuplestore.c:1230 utils/sort/tuplestore.c:1295
+#: utils/sort/tuplestore.c:1304
+#, c-format
+#| msgid "could not seek in two-phase state file: %m"
+msgid "could not seek in tuplestore temporary file: %m"
+msgstr "无法在元组存储临时文件中定位: %m"
+
+#: utils/sort/tuplestore.c:1451 utils/sort/tuplestore.c:1524
+#: utils/sort/tuplestore.c:1530
+#, c-format
+#| msgid "could not read from hash-join temporary file: %m"
+msgid "could not read from tuplestore temporary file: %m"
+msgstr "无法从元组存储临时文件读取: %m"
+
+#: utils/sort/tuplestore.c:1492 utils/sort/tuplestore.c:1497
+#: utils/sort/tuplestore.c:1503
+#, c-format
+#| msgid "could not write to hash-join temporary file: %m"
+msgid "could not write to tuplestore temporary file: %m"
+msgstr "无法写入元组存储临时文件: %m"
+
+#: utils/time/snapmgr.c:890
 #, c-format
 msgid "cannot export a snapshot from a subtransaction"
 msgstr "子事务中无法导出一个快照"
 
-#: utils/time/snapmgr.c:924 utils/time/snapmgr.c:929 utils/time/snapmgr.c:934
-#: utils/time/snapmgr.c:949 utils/time/snapmgr.c:954 utils/time/snapmgr.c:959
-#: utils/time/snapmgr.c:1058 utils/time/snapmgr.c:1074
-#: utils/time/snapmgr.c:1099
+#: utils/time/snapmgr.c:1040 utils/time/snapmgr.c:1045
+#: utils/time/snapmgr.c:1050 utils/time/snapmgr.c:1065
+#: utils/time/snapmgr.c:1070 utils/time/snapmgr.c:1075
+#: utils/time/snapmgr.c:1174 utils/time/snapmgr.c:1190
+#: utils/time/snapmgr.c:1215
 #, c-format
 msgid "invalid snapshot data in file \"%s\""
 msgstr "文件 \"%s\" 中存在无效快照数据"
 
-#: utils/time/snapmgr.c:996
+#: utils/time/snapmgr.c:1112
 #, c-format
 msgid "SET TRANSACTION SNAPSHOT must be called before any query"
 msgstr "SET TRANSACTION SNAPSHOT 必须在任何查询之前调用"
 
-#: utils/time/snapmgr.c:1005
+#: utils/time/snapmgr.c:1121
 #, c-format
 msgid ""
 "a snapshot-importing transaction must have isolation level SERIALIZABLE or "
@@ -19332,433 +22395,41 @@ msgid ""
 msgstr ""
 "一个snapshot-importing事务的隔离级只能是SERIALIZABLE或者REPEATABLE READ"
 
-#: utils/time/snapmgr.c:1014 utils/time/snapmgr.c:1023
+#: utils/time/snapmgr.c:1130 utils/time/snapmgr.c:1139
 #, c-format
 msgid "invalid snapshot identifier: \"%s\""
 msgstr "无效快照标识符: \"%s\""
 
-#: utils/time/snapmgr.c:1112
+#: utils/time/snapmgr.c:1228
 #, c-format
 msgid ""
 "a serializable transaction cannot import a snapshot from a non-serializable "
 "transaction"
 msgstr "一个可串行化事务不能从非可串行化事务中导入一个快照"
 
-#: utils/time/snapmgr.c:1116
+#: utils/time/snapmgr.c:1232
 #, c-format
 msgid ""
 "a non-read-only serializable transaction cannot import a snapshot from a "
 "read-only transaction"
 msgstr "非只读可串行化事务无法导入来自只读事务的快照"
 
-#: utils/time/snapmgr.c:1131
+#: utils/time/snapmgr.c:1247
 #, c-format
 msgid "cannot import a snapshot from a different database"
 msgstr "无法导入来自不同数据库的快照"
 
-#: gram.y:914
-#, c-format
-msgid "unrecognized role option \"%s\""
-msgstr "无法识别的角色选项\"%s\""
-
-#: gram.y:1304
-#, c-format
-msgid "current database cannot be changed"
-msgstr "不能改变当前使用的数据库"
-
-#: gram.y:1431 gram.y:1446
-#, c-format
-msgid "time zone interval must be HOUR or HOUR TO MINUTE"
-msgstr "时区间隔必须为 HOUR 或者 HOUR TO MINUTE"
-
-#: gram.y:1451 gram.y:9648 gram.y:12152
-#, c-format
-msgid "interval precision specified twice"
-msgstr "两次指定间隔精度"
-
-#: gram.y:2525 gram.y:2532 gram.y:8958 gram.y:8966
-#, c-format
-msgid "GLOBAL is deprecated in temporary table creation"
-msgstr "GLOBAL在临时表中的创建中已经被废弃使用"
-
-#: gram.y:4142
-msgid "duplicate trigger events specified"
-msgstr "重复指定触发器事件"
-
-#: gram.y:4244
-#, c-format
-msgid "conflicting constraint properties"
-msgstr "约束属性冲突"
-
-#: gram.y:4308
-#, c-format
-msgid "CREATE ASSERTION is not yet implemented"
-msgstr "CREATE ASSERTION 仍未实现"
-
-#: gram.y:4324
-#, c-format
-msgid "DROP ASSERTION is not yet implemented"
-msgstr "DROP ASSERTION 仍未实现"
-
-#: gram.y:4667
-#, c-format
-msgid "RECHECK is no longer required"
-msgstr "不再需要RECHECK选项了"
-
-# describe.c:289
-#: gram.y:4668
-#, c-format
-msgid "Update your data type."
-msgstr "更改您的数据类型"
-
-#: gram.y:7672 gram.y:7678 gram.y:7684
-#, c-format
-msgid "WITH CHECK OPTION is not implemented"
-msgstr "未实现WITH CHECK OPTION"
-
-#: gram.y:8605
-#, c-format
-msgid "number of columns does not match number of values"
-msgstr "列的数量与值的数量不匹配"
-
-#: gram.y:9062
-#, c-format
-msgid "LIMIT #,# syntax is not supported"
-msgstr "不支持 LIMIT #,# 语法"
-
-#: gram.y:9063
-#, c-format
-msgid "Use separate LIMIT and OFFSET clauses."
-msgstr "LIMIT和OFFSET子句要分隔开"
-
-#: gram.y:9281
-#, c-format
-msgid "VALUES in FROM must have an alias"
-msgstr "FROM中的VALUES子句必须有一个别名"
-
-#: gram.y:9282
-#, c-format
-msgid "For example, FROM (VALUES ...) [AS] foo."
-msgstr "例如, FROM (SELECT ...) [AS] foo."
-
-#: gram.y:9287
-#, c-format
-msgid "subquery in FROM must have an alias"
-msgstr "FROM 中的子查询必须有一个别名"
-
-#: gram.y:9288
-#, c-format
-msgid "For example, FROM (SELECT ...) [AS] foo."
-msgstr "例如, FROM (SELECT ...) [AS] foo."
-
-#: gram.y:9774
-#, c-format
-msgid "precision for type float must be at least 1 bit"
-msgstr "浮点类型的精确度必须至少 1 位"
-
-#: gram.y:9783
-#, c-format
-msgid "precision for type float must be less than 54 bits"
-msgstr "浮点类型的精确度必须小于 54 位"
-
-#: gram.y:10497
-#, c-format
-msgid "UNIQUE predicate is not yet implemented"
-msgstr "没有实现UNIQUE谓词"
-
-#: gram.y:11419
-#, c-format
-msgid "RANGE PRECEDING is only supported with UNBOUNDED"
-msgstr "UNBOUNDED不支持RANGE PRECEDING"
-
-#: gram.y:11425
-#, c-format
-msgid "RANGE FOLLOWING is only supported with UNBOUNDED"
-msgstr "UNBOUNDED不支持RANGE FOLLOWING"
-
-#: gram.y:11452 gram.y:11475
-#, c-format
-msgid "frame start cannot be UNBOUNDED FOLLOWING"
-msgstr "框架的起始位置不能被执行UNBOUNDED FOLLOWING操作."
-
-#: gram.y:11457
-#, c-format
-msgid "frame starting from following row cannot end with current row"
-msgstr "从后面记录启动的窗口框架(frame)不能以当前记录结束"
-
-#: gram.y:11480
-#, c-format
-msgid "frame end cannot be UNBOUNDED PRECEDING"
-msgstr "框架的结束位置不能被执行UNBOUNDED FOLLOWING操作."
-
-#: gram.y:11486
-#, c-format
-msgid "frame starting from current row cannot have preceding rows"
-msgstr "从当前记录启动的窗口框架(frame)不能拥有正在处理的记录"
-
-#: gram.y:11493
-#, c-format
-msgid "frame starting from following row cannot have preceding rows"
-msgstr "从后面记录启动的窗口框架(frame)不能拥有正在处理的记录"
-
-#: gram.y:12127
-#, c-format
-msgid "type modifier cannot have parameter name"
-msgstr "类型修改器不能有参数名称"
-
-#: gram.y:12725 gram.y:12933
-msgid "improper use of \"*\""
-msgstr "对\"*\"的使用不正确"
-
-#: gram.y:12864
-#, c-format
-msgid "wrong number of parameters on left side of OVERLAPS expression"
-msgstr "OVERLAPS 表达式左边的参数个数不对"
-
-#: gram.y:12871
-#, c-format
-msgid "wrong number of parameters on right side of OVERLAPS expression"
-msgstr "OVERLAPS 表达式右边的参数个数不对"
-
-#: gram.y:12984
-#, c-format
-msgid "multiple ORDER BY clauses not allowed"
-msgstr "不允许多个 ORDER BY 子句"
-
-#: gram.y:12995
-#, c-format
-msgid "multiple OFFSET clauses not allowed"
-msgstr "不允许多个 OFFSET 子句"
-
-#: gram.y:13004
-#, c-format
-msgid "multiple LIMIT clauses not allowed"
-msgstr "不允许多个 LIMIT 子句"
-
-#: gram.y:13013
-#, c-format
-msgid "multiple WITH clauses not allowed"
-msgstr "不允许使用多个WITH子句"
-
-#: gram.y:13159
-#, c-format
-msgid "OUT and INOUT arguments aren't allowed in TABLE functions"
-msgstr "在TABLE函数中不允许使用OUT或INOUT模式的参数"
-
-#: gram.y:13260
-#, c-format
-msgid "multiple COLLATE clauses not allowed"
-msgstr "不允许多个 COLLATE 子句"
+#~ msgid "Perhaps out of disk space?"
+#~ msgstr "可能超出磁盘空间?"
 
-#. translator: %s is CHECK, UNIQUE, or similar
-#: gram.y:13298 gram.y:13311
-#, c-format
-msgid "%s constraints cannot be marked DEFERRABLE"
-msgstr "%s约束不能标为DEFERRABLE"
+#~ msgid ""
+#~ "time zone offset %d is not a multiple of 900 sec (15 min) in time zone "
+#~ "file \"%s\", line %d"
+#~ msgstr ""
+#~ "在时区文件 \"%2$s\"中的第%3$d行中时区偏移%1$d不是900秒(15分钟)的倍数."
 
-#. translator: %s is CHECK, UNIQUE, or similar
-#: gram.y:13324
-#, c-format
-msgid "%s constraints cannot be marked NOT VALID"
-msgstr "%s约束不能标为NOT VALID"
-
-#. translator: %s is CHECK, UNIQUE, or similar
-#: gram.y:13337
-#, c-format
-msgid "%s constraints cannot be marked NO INHERIT"
-msgstr "%s约束不能标为NO INHERIT"
-
-#: guc-file.l:192
-#, c-format
-msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %u"
-msgstr "未认可的配置参数 \"%s\", 文件\"%s\", 行%u"
-
-#: guc-file.l:255
-#, c-format
-msgid "parameter \"%s\" removed from configuration file, reset to default"
-msgstr "参数\"%s\"已从配置文件中删除,重新设置为缺省"
-
-#: guc-file.l:317
-#, c-format
-msgid "parameter \"%s\" changed to \"%s\""
-msgstr "参数 \"%s\"被改为\"%s\""
-
-#: guc-file.l:351
-#, c-format
-msgid "configuration file \"%s\" contains errors"
-msgstr "配置文件 \"%s\" 有错"
-
-#: guc-file.l:356
-#, c-format
-msgid ""
-"configuration file \"%s\" contains errors; unaffected changes were applied"
-msgstr "配置文件 \"%s\" 有错; 使用了不受影响的内容变动"
-
-#: guc-file.l:361
-#, c-format
-msgid "configuration file \"%s\" contains errors; no changes were applied"
-msgstr "配置文件 \"%s\" 有错; 没有内容变动"
-
-#: guc-file.l:393
-#, c-format
-msgid ""
-"could not open configuration file \"%s\": maximum nesting depth exceeded"
-msgstr "无法打开配置文件 \"%s\": 已超过最大的嵌套深度"
-
-#: guc-file.l:436
-#, c-format
-msgid "skipping missing configuration file \"%s\""
-msgstr "忽略丢失的配置文件\"%s\""
-
-#: guc-file.l:627
-#, c-format
-msgid "syntax error in file \"%s\" line %u, near end of line"
-msgstr "在文件 \"%s\" 第 %u 行, 行尾附近语法错误"
-
-#: guc-file.l:632
-#, c-format
-msgid "syntax error in file \"%s\" line %u, near token \"%s\""
-msgstr "在文件 \"%s\" 第 %u 行, 记号 \"%s\" 附近语法错误"
-
-#: guc-file.l:648
-#, c-format
-msgid "too many syntax errors found, abandoning file \"%s\""
-msgstr "发现太多的语法错误, 放弃文件 \"%s\""
-
-#: repl_scanner.l:76
-msgid "invalid streaming start location"
-msgstr "无效的流起始位置"
-
-#: repl_scanner.l:97 scan.l:630
-msgid "unterminated quoted string"
-msgstr "未结束的引用字符串"
-
-#: repl_scanner.l:107
-#, c-format
-msgid "syntax error: unexpected character \"%s\""
-msgstr "语法错误: 遇到意外字符\"%s\""
+#~ msgid "Sets the name of the Kerberos service."
+#~ msgstr "设置Kerberos服务的名称"
 
-#: scan.l:412
-msgid "unterminated /* comment"
-msgstr "/* 注释没有结束"
-
-#: scan.l:441
-msgid "unterminated bit string literal"
-msgstr "未结束的bit字符串常量"
-
-#: scan.l:462
-msgid "unterminated hexadecimal string literal"
-msgstr "未结束的16进制字符串常量"
-
-#: scan.l:512
-#, c-format
-msgid "unsafe use of string constant with Unicode escapes"
-msgstr "这种使用带有Unicode转义字符的字符串常量的方法不安全."
-
-#: scan.l:513
-#, c-format
-msgid ""
-"String constants with Unicode escapes cannot be used when "
-"standard_conforming_strings is off."
-msgstr ""
-"当参数standard_conforming_strings处于关闭状态时,无法使用带有Unicode转义字符"
-"的字符串常量."
-
-#: scan.l:565 scan.l:573 scan.l:581 scan.l:582 scan.l:583 scan.l:1239
-#: scan.l:1266 scan.l:1270 scan.l:1308 scan.l:1312 scan.l:1334
-msgid "invalid Unicode surrogate pair"
-msgstr "无效的Unicode代理项对(surrogate pair)"
-
-#: scan.l:587
-#, c-format
-msgid "invalid Unicode escape"
-msgstr "无效的Unicode转义字符"
-
-#: scan.l:588
-#, c-format
-msgid "Unicode escapes must be \\uXXXX or \\UXXXXXXXX."
-msgstr "Unicode转义字符必须是\\uXXXX或\\UXXXXXXXX."
-
-#: scan.l:599
-#, c-format
-msgid "unsafe use of \\' in a string literal"
-msgstr "在字符串常量中使用\\不安全"
-
-#: scan.l:600
-#, c-format
-msgid ""
-"Use '' to write quotes in strings. \\' is insecure in client-only encodings."
-msgstr "使用''在字符串中表示引号,在只有客户端使用的编码中使用\\'不安全."
-
-#: scan.l:675
-msgid "unterminated dollar-quoted string"
-msgstr "未结束的用$符号引用的字符串"
-
-#: scan.l:692 scan.l:704 scan.l:718
-msgid "zero-length delimited identifier"
-msgstr "长度为0的分隔标示符"
-
-#: scan.l:731
-msgid "unterminated quoted identifier"
-msgstr "未结束的引用标识符"
-
-#: scan.l:835
-msgid "operator too long"
-msgstr "操作符太长"
-
-#. translator: %s is typically the translation of "syntax error"
-#: scan.l:993
-#, c-format
-msgid "%s at end of input"
-msgstr "%s 在输入的末尾"
-
-#. translator: first %s is typically the translation of "syntax error"
-#: scan.l:1001
-#, c-format
-msgid "%s at or near \"%s\""
-msgstr "%s 在 \"%s\" 或附近的"
-
-#: scan.l:1162 scan.l:1194
-msgid ""
-"Unicode escape values cannot be used for code point values above 007F when "
-"the server encoding is not UTF8"
-msgstr "当服务器的编码不是UTF8时,无法为在007F以上的码点值使用Unicode转义值."
-
-#: scan.l:1190 scan.l:1326
-msgid "invalid Unicode escape value"
-msgstr "无效的Unicode转义值"
-
-#: scan.l:1215
-msgid "invalid Unicode escape character"
-msgstr "无效Unicode转义字符"
-
-#: scan.l:1382
-#, c-format
-msgid "nonstandard use of \\' in a string literal"
-msgstr "在字符串常量中以不标准的方法使用\\'"
-
-#: scan.l:1383
-#, c-format
-msgid ""
-"Use '' to write quotes in strings, or use the escape string syntax (E'...')."
-msgstr "使用''或者转义字符串语法(E'...')将字符串引起来."
-
-#: scan.l:1392
-#, c-format
-msgid "nonstandard use of \\\\ in a string literal"
-msgstr "在字符串常量中以不标准的方法使用\\\\ "
-
-#: scan.l:1393
-#, c-format
-msgid "Use the escape string syntax for backslashes, e.g., E'\\\\'."
-msgstr "为反斜线使用转移字符串语法,例如.,E'\\\\'."
-
-#: scan.l:1407
-#, c-format
-msgid "nonstandard use of escape in a string literal"
-msgstr "在字符串常量中以不标准的方法使用转义字符"
-
-#: scan.l:1408
-#, c-format
-msgid "Use the escape string syntax for escapes, e.g., E'\\r\\n'."
-msgstr "对转移字符使用转义字符串语法,例如 E'\\r\\n'."
+#~ msgid "No description available."
+#~ msgstr "没有可用的描述"
index 58c6550048cca18362c3fe763a183b68356abcc2..6612239a93c5465a745f457e53c0d09b0c561da6 100644 (file)
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psql (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2013-09-02 00:25+0000\n"
-"PO-Revision-Date: 2013-09-02 16:48+0800\n"
+"POT-Creation-Date: 2014-11-22 21:11+0000\n"
+"PO-Revision-Date: 2014-11-28 16:08+0800\n"
 "Last-Translator: Xiong He <iihero@qq.com>\n"
 "Language-Team: Chinese (Simplified)\n"
 "Language: zh_CN\n"
@@ -15,140 +15,151 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Poedit 1.5.4\n"
 
-# command.c:681
-# common.c:85
-# common.c:99
-# mainloop.c:71
-#: ../../common/fe_memutils.c:33 ../../common/fe_memutils.c:60
-#: ../../common/fe_memutils.c:83 command.c:1130 input.c:204 mainloop.c:72
-#: mainloop.c:234 tab-complete.c:3827
-#, c-format
-msgid "out of memory\n"
-msgstr "记忆体用尽\n"
-
-# common.c:78
-#: ../../common/fe_memutils.c:77
-#, c-format
-#| msgid "pg_strdup: cannot duplicate null pointer (internal error)\n"
-msgid "cannot duplicate null pointer (internal error)\n"
-msgstr "无法复制空指针 (内部错误)\n"
-
 # command.c:240
-#: ../../port/exec.c:127 ../../port/exec.c:241 ../../port/exec.c:284
+#: ../../common/exec.c:127 ../../common/exec.c:241 ../../common/exec.c:284
 #, c-format
 msgid "could not identify current directory: %s"
-msgstr "æ\97 æ³\95è¯\86å\88«ç\9b®å\89\8dç\9a\84ç\9b®å½\95ï¼\9a%s"
+msgstr "无法识别目前目录:%s"
 
 # command.c:122
-#: ../../port/exec.c:146
+#: ../../common/exec.c:146
 #, c-format
 msgid "invalid binary \"%s\""
 msgstr "无效的二进制码 \"%s\""
 
 # command.c:1103
-#: ../../port/exec.c:195
+#: ../../common/exec.c:195
 #, c-format
 msgid "could not read binary \"%s\""
 msgstr "无法读取二进制码 \"%s\""
 
-#: ../../port/exec.c:202
+#: ../../common/exec.c:202
 #, c-format
 msgid "could not find a \"%s\" to execute"
 msgstr "未能找到一个 \"%s\" 来执行"
 
-#: ../../port/exec.c:257 ../../port/exec.c:293
+#: ../../common/exec.c:257 ../../common/exec.c:293
 #, c-format
-#| msgid "could not change directory to \"%s\": %m"
 msgid "could not change directory to \"%s\": %s"
 msgstr "无法跳转到目录 \"%s\" 中: %s"
 
 # command.c:1103
-#: ../../port/exec.c:272
+#: ../../common/exec.c:272
 #, c-format
 msgid "could not read symbolic link \"%s\""
 msgstr "无法读取符号连结 \"%s\""
 
-#: ../../port/exec.c:523
+#: ../../common/exec.c:523
 #, c-format
-#| msgid "query failed: %s"
 msgid "pclose failed: %s"
 msgstr "pclose调用失败: %s"
 
-#: ../../port/wait_error.c:47
+# command.c:681
+# common.c:85
+# common.c:99
+# mainloop.c:71
+#: ../../common/fe_memutils.c:33 ../../common/fe_memutils.c:60
+#: ../../common/fe_memutils.c:83 input.c:205 mainloop.c:72 mainloop.c:234
+#, c-format
+msgid "out of memory\n"
+msgstr "记忆体用尽\n"
+
+# common.c:78
+#: ../../common/fe_memutils.c:77
+#, c-format
+msgid "cannot duplicate null pointer (internal error)\n"
+msgstr "无法复制空指针 (内部错误)\n"
+
+#: ../../common/username.c:45
+#, c-format
+#| msgid "could not load private key file \"%s\": %s"
+msgid "could not look up effective user ID %ld: %s"
+msgstr "无法找到有效的用户ID %ld: %s"
+
+#: ../../common/username.c:47 command.c:276
+#| msgid "server \"%s\" does not exist"
+msgid "user does not exist"
+msgstr "用户不存在"
+
+#: ../../common/username.c:61
+#, c-format
+msgid "user name lookup failure: %s"
+msgstr "用户名查找失败: %s"
+
+#: ../../common/wait_error.c:47
 #, c-format
-#| msgid "could not execute plan"
 msgid "command not executable"
 msgstr "无法执行命令"
 
-#: ../../port/wait_error.c:51
+#: ../../common/wait_error.c:51
 #, c-format
-#| msgid "case not found"
 msgid "command not found"
 msgstr "没有找到命令"
 
-#: ../../port/wait_error.c:56
+#: ../../common/wait_error.c:56
 #, c-format
 msgid "child process exited with exit code %d"
 msgstr "子进程结束,结束代码 %d"
 
-#: ../../port/wait_error.c:63
+#: ../../common/wait_error.c:63
 #, c-format
 msgid "child process was terminated by exception 0x%X"
 msgstr "子进程被例外(exception) 0x%X 终止"
 
-#: ../../port/wait_error.c:73
+#: ../../common/wait_error.c:73
 #, c-format
 msgid "child process was terminated by signal %s"
 msgstr "子进程被信号 %s 终止"
 
-#: ../../port/wait_error.c:77
+#: ../../common/wait_error.c:77
 #, c-format
 msgid "child process was terminated by signal %d"
 msgstr "子进程被信号 %d 终止"
 
-#: ../../port/wait_error.c:82
+#: ../../common/wait_error.c:82
 #, c-format
 msgid "child process exited with unrecognized status %d"
 msgstr "子进程结束,不明状态代码 %d"
 
 # command.c:120
-#: command.c:115
+#: command.c:117
 #, c-format
 msgid "Invalid command \\%s. Try \\? for help.\n"
 msgstr "无效的命令 \\%s,用 \\? 显示说明。\n"
 
 # command.c:122
-#: command.c:117
+#: command.c:119
 #, c-format
 msgid "invalid command \\%s\n"
 msgstr "无效的命令 \\%s\n"
 
 # command.c:131
-#: command.c:128
+#: command.c:130
 #, c-format
 msgid "\\%s: extra argument \"%s\" ignored\n"
 msgstr "\\%s:忽略多余的参数 \"%s\" \n"
 
 # command.c:240
-#: command.c:270
+#: command.c:274
 #, c-format
-msgid "could not get home directory: %s\n"
-msgstr "无法取得 home 目录:%s\n"
+#| msgid "could not get home directory: %s\n"
+msgid "could not get home directory for user ID %ld: %s\n"
+msgstr "无法得到用户ID %ld: %s对应的home 目录\n"
 
 # command.c:256
-#: command.c:286
+#: command.c:292
 #, c-format
 msgid "\\%s: could not change directory to \"%s\": %s\n"
 msgstr "\\%s: 无法切换目录至 \"%s\": %s\n"
 
 # common.c:636
 # common.c:871
-#: command.c:307 common.c:446 common.c:851
+#: command.c:308 common.c:446 common.c:886
 #, c-format
 msgid "You are currently not connected to a database.\n"
 msgstr "你目前没有与资料库连线。\n"
 
-#: command.c:314
+#: command.c:315
 #, c-format
 msgid ""
 "You are connected to database \"%s\" as user \"%s\" via socket in \"%s\" at "
@@ -157,7 +168,7 @@ msgstr ""
 "以用户 \"%2$s\" 的身份,通过套接字\"%3$s\"在端口\"%4$s\"连接到数据库 \"%1$s"
 "\"\n"
 
-#: command.c:317
+#: command.c:318
 #, c-format
 msgid ""
 "You are connected to database \"%s\" as user \"%s\" on host \"%s\" at port "
@@ -167,28 +178,28 @@ msgstr ""
 
 # command.c:370
 # command.c:760
-#: command.c:516 command.c:586 command.c:1382
+#: command.c:517 command.c:587 command.c:1382
 #, c-format
 msgid "no query buffer\n"
 msgstr "没有查询缓存区\n"
 
-#: command.c:549 command.c:2826
+#: command.c:550 command.c:2978
 #, c-format
 msgid "invalid line number: %s\n"
 msgstr "无效行号: %s\n"
 
 # describe.c:117
-#: command.c:580
+#: command.c:581
 #, c-format
 msgid "The server (version %d.%d) does not support editing function source.\n"
 msgstr "服务器(版本%d.%d)不支持编辑函数源码.\n"
 
-#: command.c:660
+#: command.c:661
 msgid "No changes"
 msgstr "没有发生"
 
 # command.c:433
-#: command.c:714
+#: command.c:715
 #, c-format
 msgid "%s: invalid encoding name or conversion procedure not found\n"
 msgstr "%s:无效的编码名称或找不到转换程序\n"
@@ -200,14 +211,14 @@ msgstr "%s:无效的编码名称或找不到转换程序\n"
 # command.c:612
 # command.c:740
 # command.c:771
-#: command.c:810 command.c:860 command.c:874 command.c:891 command.c:998
-#: command.c:1048 command.c:1158 command.c:1362 command.c:1393
+#: command.c:812 command.c:862 command.c:876 command.c:893 command.c:1000
+#: command.c:1159 command.c:1362 command.c:1393
 #, c-format
 msgid "\\%s: missing required argument\n"
 msgstr "\\%s:缺少所需参数\n"
 
 # command.c:598
-#: command.c:923
+#: command.c:925
 msgid "Query buffer is empty."
 msgstr "查询缓存区是空的。"
 
@@ -215,42 +226,43 @@ msgstr "查询缓存区是空的。"
 # command.c:939
 # startup.c:187
 # startup.c:205
-#: command.c:933
+#: command.c:935
 msgid "Enter new password: "
 msgstr "输入新的密码:"
 
-#: command.c:934
+#: command.c:936
 msgid "Enter it again: "
 msgstr "再次键入:"
 
-#: command.c:938
+#: command.c:940
 #, c-format
 msgid "Passwords didn't match.\n"
 msgstr "Passwords didn't match.\n"
 
-#: command.c:956
+#: command.c:958
 #, c-format
 msgid "Password encryption failed.\n"
 msgstr "密码加密失败.\n"
 
 # startup.c:502
-#: command.c:1027 command.c:1139 command.c:1367
+#: command.c:1029 command.c:1140 command.c:1367
 #, c-format
 msgid "\\%s: error while setting variable\n"
 msgstr "\\%s: 设定变量值时出错\n"
 
 # command.c:632
-#: command.c:1068
+#: command.c:1087
 msgid "Query buffer reset (cleared)."
 msgstr "查询缓存区重置(清空)。"
 
 # command.c:646
-#: command.c:1092
+#: command.c:1099
 #, c-format
-msgid "Wrote history to file \"%s/%s\".\n"
-msgstr "书写历程到档案 \"%s/%s\".\n"
+#| msgid "Wrote history to file \"%s/%s\".\n"
+msgid "Wrote history to file \"%s\".\n"
+msgstr "写入历史到文件 \"%s\".\n"
 
-#: command.c:1163
+#: command.c:1164
 #, c-format
 msgid "\\%s: environment variable name must not contain \"=\"\n"
 msgstr "\\%s: 环境变量不能包含 \"=\"\n"
@@ -290,10 +302,10 @@ msgstr "停止计时功能."
 # common.c:170
 # copy.c:530
 # copy.c:575
-#: command.c:1410 command.c:1430 command.c:2027 command.c:2034 command.c:2043
-#: command.c:2053 command.c:2062 command.c:2076 command.c:2093 command.c:2152
-#: common.c:74 copy.c:342 copy.c:395 copy.c:410 psqlscan.l:1674
-#: psqlscan.l:1685 psqlscan.l:1695
+#: command.c:1410 command.c:1430 command.c:2018 command.c:2021 command.c:2024
+#: command.c:2030 command.c:2032 command.c:2040 command.c:2050 command.c:2059
+#: command.c:2073 command.c:2090 command.c:2149 common.c:74 copy.c:333
+#: copy.c:393 copy.c:408 psqlscan.l:1677 psqlscan.l:1688 psqlscan.l:1698
 #, c-format
 msgid "%s: %s\n"
 msgstr "%s: %s\n"
@@ -307,7 +319,7 @@ msgstr "+ opt(%d) = |%s|\n"
 # command.c:939
 # startup.c:187
 # startup.c:205
-#: command.c:1535 startup.c:185
+#: command.c:1535 startup.c:184
 msgid "Password: "
 msgstr "口令:"
 
@@ -315,12 +327,12 @@ msgstr "口令:"
 # command.c:939
 # startup.c:187
 # startup.c:205
-#: command.c:1542 startup.c:188 startup.c:190
+#: command.c:1540 startup.c:186
 #, c-format
 msgid "Password for user %s: "
 msgstr "用户 %s 的口令:"
 
-#: command.c:1587
+#: command.c:1585
 #, c-format
 msgid ""
 "All connection parameters must be supplied because no database connection "
@@ -332,27 +344,27 @@ msgstr "没有可用的数据库连接,所以必须提供所有的连接参数
 # common.c:605
 # common.c:660
 # common.c:903
-#: command.c:1673 command.c:2860 common.c:120 common.c:413 common.c:478
-#: common.c:894 common.c:919 common.c:1016 copy.c:504 copy.c:691
-#: large_obj.c:158 large_obj.c:193 large_obj.c:255 psqlscan.l:1946
+#: command.c:1671 command.c:3012 common.c:120 common.c:413 common.c:478
+#: common.c:929 common.c:954 common.c:1051 copy.c:492 copy.c:695
+#: large_obj.c:158 large_obj.c:193 large_obj.c:255 psqlscan.l:1949
 #, c-format
 msgid "%s"
 msgstr "%s"
 
 # command.c:957
-#: command.c:1677
+#: command.c:1675
 #, c-format
 msgid "Previous connection kept\n"
 msgstr "保留上一次连线\n"
 
 # command.c:969
-#: command.c:1681
+#: command.c:1679
 #, c-format
 msgid "\\connect: %s"
 msgstr "\\连线:%s"
 
 # command.c:981
-#: command.c:1714
+#: command.c:1712
 #, c-format
 msgid ""
 "You are now connected to database \"%s\" as user \"%s\" via socket in \"%s\" "
@@ -362,7 +374,7 @@ msgstr ""
 "\".\n"
 
 # command.c:981
-#: command.c:1717
+#: command.c:1715
 #, c-format
 msgid ""
 "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" at "
@@ -371,21 +383,18 @@ msgstr ""
 "您现在已经连线到数据库 \"%s\", 用户 \"%s\",主机 \"%s\",端口号 \"%s\".\n"
 
 # command.c:981
-#: command.c:1721
+#: command.c:1719
 #, c-format
 msgid "You are now connected to database \"%s\" as user \"%s\".\n"
 msgstr "您现在已经连线到数据库 \"%s\",用户 \"%s\".\n"
 
-#: command.c:1755
+#: command.c:1753
 #, c-format
 msgid "%s (%s, server %s)\n"
 msgstr "%s (%s, 服务器 %s)\n"
 
-#: command.c:1763
+#: command.c:1761
 #, c-format
-#| msgid ""
-#| "WARNING: %s version %d.%d, server version %d.%d.\n"
-#| "         Some psql features might not work.\n"
 msgid ""
 "WARNING: %s major version %d.%d, server major version %d.%d.\n"
 "         Some psql features might not work.\n"
@@ -394,18 +403,29 @@ msgstr ""
 "     一些psql功能可能无法工作.\n"
 
 # startup.c:652
-#: command.c:1793
+#: command.c:1791
 #, c-format
-msgid "SSL connection (cipher: %s, bits: %d)\n"
-msgstr "SSL连接 (加密:%s,二进制位: %d)\n"
+#| msgid "SSL connection (cipher: %s, bits: %d)\n"
+msgid "SSL connection (protocol: %s, cipher: %s, bits: %d, compression: %s)\n"
+msgstr "SSL连接 (协议: %s, 加密:%s,二进制位: %d, 压缩比: %s)\n"
+
+# help.c:48
+#: command.c:1793 help.c:46
+msgid "off"
+msgstr "关闭"
+
+# help.c:48
+#: command.c:1793 help.c:46
+msgid "on"
+msgstr "开启"
 
 # startup.c:652
-#: command.c:1803
+#: command.c:1802
 #, c-format
 msgid "SSL connection (unknown cipher)\n"
 msgstr "SSL连接 (未知加密)\n"
 
-#: command.c:1824
+#: command.c:1823
 #, c-format
 msgid ""
 "WARNING: Console code page (%u) differs from Windows code page (%u)\n"
@@ -416,7 +436,7 @@ msgstr ""
 "         8-bit 字元可能无法正常工作。查阅 psql 参考\n"
 "         页 \"Windows 用户注意事项\" 的详细说明。\n"
 
-#: command.c:1908
+#: command.c:1907
 #, c-format
 msgid ""
 "environment variable PSQL_EDITOR_LINENUMBER_ARG must be set to specify a "
@@ -424,31 +444,31 @@ msgid ""
 msgstr "必须设置环境变量 PSQL_EDITOR_LINENUMBER_ARG,用于指定行号\n"
 
 # command.c:1103
-#: command.c:1945
+#: command.c:1936
 #, c-format
 msgid "could not start editor \"%s\"\n"
 msgstr "无法启动编辑器 \"%s\"\n"
 
 # command.c:1105
-#: command.c:1947
+#: command.c:1938
 #, c-format
 msgid "could not start /bin/sh\n"
 msgstr "无法启动 /bin/sh\n"
 
 # command.c:1148
-#: command.c:1985
+#: command.c:1976
 #, c-format
 msgid "could not locate temporary directory: %s\n"
 msgstr "找不到暂存目录:%s\n"
 
 # command.c:1148
-#: command.c:2012
+#: command.c:2003
 #, c-format
 msgid "could not open temporary file \"%s\": %s\n"
 msgstr "无法开启暂存档 \"%s\": %s\n"
 
 # command.c:1340
-#: command.c:2274
+#: command.c:2271
 #, c-format
 msgid ""
 "\\pset: allowed formats are unaligned, aligned, wrapped, html, latex, troff-"
@@ -456,186 +476,211 @@ msgid ""
 msgstr ""
 "\\pset:可以使用的格式有unaligned, aligned, wrapped, html, latex, troff-ms\n"
 
-# command.c:1345
-#: command.c:2279
-#, c-format
-msgid "Output format is %s.\n"
-msgstr "输出格式是 %s。\n"
-
-#: command.c:2295
+#: command.c:2290
 #, c-format
 msgid "\\pset: allowed line styles are ascii, old-ascii, unicode\n"
 msgstr "\\pset: 所允许使用的文本风格是ASCII, OLD-ASCII, UNICODE\n"
 
-# command.c:1355
-#: command.c:2300
+# command.c:1493
+#: command.c:2432 command.c:2583
 #, c-format
-msgid "Line style is %s.\n"
-msgstr "文本的风格是%s. \n"
+msgid "\\pset: unknown option: %s\n"
+msgstr "\\pset: 不明选项: %s\n"
 
 # command.c:1355
-#: command.c:2311
+#: command.c:2450
 #, c-format
 msgid "Border style is %d.\n"
 msgstr "边界风格是 %d。\n"
 
+#: command.c:2456
+#, c-format
+#| msgid "Target width is %d.\n"
+msgid "Target width is unset.\n"
+msgstr "目标宽度未设置.\n"
+
+#: command.c:2458
+#, c-format
+msgid "Target width is %d.\n"
+msgstr "目标宽度为 %d.\n"
+
 # command.c:1364
-#: command.c:2326
+#: command.c:2465
 #, c-format
 msgid "Expanded display is on.\n"
 msgstr "扩展显示已打开。\n"
 
 # command.c:1364
-#: command.c:2328
+#: command.c:2467
 #, c-format
 msgid "Expanded display is used automatically.\n"
 msgstr "扩展显示已自动打开。\n"
 
 # command.c:1365
-#: command.c:2330
+#: command.c:2469
 #, c-format
 msgid "Expanded display is off.\n"
 msgstr "扩展显示已关闭。\n"
 
-#: command.c:2344
-msgid "Showing locale-adjusted numeric output."
-msgstr "显示语言环境调整后的数字输出。"
+# command.c:1389
+#: command.c:2476 command.c:2484
+#, c-format
+msgid "Field separator is zero byte.\n"
+msgstr "栏位分隔符号是0字节\n"
+
+# command.c:1389
+#: command.c:2478
+#, c-format
+msgid "Field separator is \"%s\".\n"
+msgstr "栏位分隔符号是 \"%s\"。\n"
+
+# command.c:1485
+#: command.c:2491
+#, c-format
+#| msgid "Default footer is on."
+msgid "Default footer is on.\n"
+msgstr "打开预设步进器(Footer).\n"
+
+# command.c:1487
+#: command.c:2493
+#, c-format
+#| msgid "Default footer is off."
+msgid "Default footer is off.\n"
+msgstr "关闭预设步进器(Footer)。\n"
 
-#: command.c:2346
-msgid "Locale-adjusted numeric output is off."
-msgstr "语言环境调整后的数值输出关闭。"
+# command.c:1345
+#: command.c:2499
+#, c-format
+msgid "Output format is %s.\n"
+msgstr "输出格式是 %s。\n"
+
+# command.c:1355
+#: command.c:2505
+#, c-format
+msgid "Line style is %s.\n"
+msgstr "文本的风格是%s. \n"
 
 # command.c:1377
-#: command.c:2359
+#: command.c:2512
 #, c-format
 msgid "Null display is \"%s\".\n"
 msgstr " \"%s\" 是空值显示。\n"
 
-# command.c:1389
-#: command.c:2374 command.c:2386
+#: command.c:2520
 #, c-format
-msgid "Field separator is zero byte.\n"
-msgstr "栏位分隔符号是0字节\n"
+#| msgid "Locale-adjusted numeric output is off."
+msgid "Locale-adjusted numeric output is on.\n"
+msgstr "语言环境调整后的数值输出开启。\n"
 
-# command.c:1389
-#: command.c:2376
+#: command.c:2522
 #, c-format
-msgid "Field separator is \"%s\".\n"
-msgstr "栏位分隔符号是 \"%s\"。\n"
+#| msgid "Locale-adjusted numeric output is off."
+msgid "Locale-adjusted numeric output is off.\n"
+msgstr "语言环境调整后的数值输出关闭。\n"
+
+# command.c:1470
+#: command.c:2529
+#, c-format
+#| msgid "Pager is used for long output."
+msgid "Pager is used for long output.\n"
+msgstr "显示大量资料时使用分页器。\n"
+
+# command.c:1472
+#: command.c:2531
+#, c-format
+#| msgid "Pager is always used."
+msgid "Pager is always used.\n"
+msgstr "总是使用分页器。\n"
+
+# command.c:1474
+#: command.c:2533
+#, c-format
+#| msgid "Pager usage is off."
+msgid "Pager usage is off.\n"
+msgstr "不使用分页器。\n"
 
 # command.c:1405
-#: command.c:2401 command.c:2415
+#: command.c:2540 command.c:2550
 #, c-format
 msgid "Record separator is zero byte.\n"
 msgstr "记录分隔符号是 0字节。\n"
 
 # command.c:1403
-#: command.c:2403
+#: command.c:2542
 #, c-format
-msgid "Record separator is <newline>."
-msgstr "记录分隔符号是 <newline>。"
+#| msgid "Record separator is <newline>."
+msgid "Record separator is <newline>.\n"
+msgstr "记录分隔符号是 <newline>。\n"
 
 # command.c:1405
-#: command.c:2405
+#: command.c:2544
 #, c-format
 msgid "Record separator is \"%s\".\n"
 msgstr "记录分隔符号是 \"%s\"。\n"
 
-# command.c:1416
-#: command.c:2428
-msgid "Showing only tuples."
-msgstr "只显示 Tuples。"
+# command.c:1452
+#: command.c:2557
+#, c-format
+#| msgid "Table attribute is \"%s\".\n"
+msgid "Table attributes are \"%s\".\n"
+msgstr "表属性是 \"%s\".\n"
 
-# command.c:1418
-#: command.c:2430
-msgid "Tuples only is off."
-msgstr "关闭只显示 Tuples。"
+# command.c:1454
+#: command.c:2560
+#, c-format
+msgid "Table attributes unset.\n"
+msgstr "未设置资料表属性。\n"
 
 # command.c:1434
-#: command.c:2446
+#: command.c:2567
 #, c-format
 msgid "Title is \"%s\".\n"
 msgstr "标题是 \"%s\"。\n"
 
 # command.c:1436
-#: command.c:2448
+#: command.c:2569
 #, c-format
 msgid "Title is unset.\n"
 msgstr "无标题。\n"
 
-# command.c:1452
-#: command.c:2464
-#, c-format
-msgid "Table attribute is \"%s\".\n"
-msgstr "资料表属性是 \"%s\"。\n"
-
-# command.c:1454
-#: command.c:2466
-#, c-format
-msgid "Table attributes unset.\n"
-msgstr "未设置资料表属性。\n"
-
-# command.c:1470
-#: command.c:2487
-msgid "Pager is used for long output."
-msgstr "显示大量资料时使用分页器。"
-
-# command.c:1472
-#: command.c:2489
-msgid "Pager is always used."
-msgstr "总是使用分页器。"
-
-# command.c:1474
-#: command.c:2491
-msgid "Pager usage is off."
-msgstr "不使用分页器。"
-
-# command.c:1485
-#: command.c:2505
-msgid "Default footer is on."
-msgstr "打开预设步进器(Footer)。"
-
-# command.c:1487
-#: command.c:2507
-msgid "Default footer is off."
-msgstr "关闭预设步进器(Footer)。"
-
-#: command.c:2518
+# command.c:1418
+#: command.c:2576
 #, c-format
-msgid "Target width is %d.\n"
-msgstr "目标宽度为 %d.\n"
+#| msgid "Tuples only is off."
+msgid "Tuples only is on.\n"
+msgstr "开启只显示 Tuples。\n"
 
-# command.c:1493
-#: command.c:2523
+# command.c:1418
+#: command.c:2578
 #, c-format
-msgid "\\pset: unknown option: %s\n"
-msgstr "\\pset: 不明选项: %s\n"
+#| msgid "Tuples only is off."
+msgid "Tuples only is off.\n"
+msgstr "关闭只显示 Tuples。\n"
 
 # command.c:1532
-#: command.c:2577
+#: command.c:2729
 #, c-format
 msgid "\\!: failed\n"
 msgstr "\\!:失败\n"
 
-#: command.c:2597 command.c:2656
+#: command.c:2749 command.c:2808
 #, c-format
 msgid "\\watch cannot be used with an empty query\n"
 msgstr "\\watch命令不能用于空查询\n"
 
-#: command.c:2619
+#: command.c:2771
 #, c-format
 msgid "Watch every %lds\t%s"
 msgstr "Watch命令每%lds\t%s调用一次"
 
-#: command.c:2663
+#: command.c:2815
 #, c-format
 msgid "\\watch cannot be used with COPY\n"
 msgstr "\\watch不能用于COPY命令中\n"
 
 # fe-exec.c:1371
-#: command.c:2669
+#: command.c:2821
 #, c-format
-#| msgid "unexpected PQresultStatus: %d\n"
 msgid "unexpected result status for \\watch\n"
 msgstr "\\Watch出现意外的结果状态\n"
 
@@ -664,12 +709,12 @@ msgid "Succeeded.\n"
 msgstr "完成。\n"
 
 # fe-exec.c:1371
-#: common.c:403 common.c:683 common.c:816
+#: common.c:403 common.c:683 common.c:851
 #, c-format
 msgid "unexpected PQresultStatus: %d\n"
 msgstr "意外的 PQresultStatus: %d\n"
 
-#: common.c:452 common.c:459 common.c:877
+#: common.c:452 common.c:459 common.c:912
 #, c-format
 msgid ""
 "********* QUERY **********\n"
@@ -700,25 +745,22 @@ msgstr "收到来自伺服器 \"%s\" 进程 PID %d 非同步通知。\n"
 
 #: common.c:578
 #, c-format
-#| msgid "%s: no data returned from server\n"
 msgid "no rows returned for \\gset\n"
 msgstr "\\gset没有记录行返回\n"
 
 #: common.c:583
 #, c-format
-#| msgid "more than one operator named %s"
 msgid "more than one row returned for \\gset\n"
 msgstr "\\gset返回超过1个记录行\n"
 
 # startup.c:502
-#: common.c:611
+#: common.c:609
 #, c-format
-#| msgid "%s: could not set variable \"%s\"\n"
 msgid "could not set variable \"%s\"\n"
 msgstr "无法设定变量 \"%s\"\n"
 
 # common.c:879
-#: common.c:859
+#: common.c:894
 #, c-format
 msgid ""
 "***(Single step mode: verify command)"
@@ -733,7 +775,7 @@ msgstr ""
 "***(按 Enter 键继续或键入 x 来取消)********************\n"
 
 # describe.c:117
-#: common.c:910
+#: common.c:945
 #, c-format
 msgid ""
 "The server (version %d.%d) does not support savepoints for "
@@ -741,70 +783,74 @@ msgid ""
 msgstr "服务器(版本 %d.%d)不支持保存点(Savepoint)ON_ERROR_ROLLBACK。\n"
 
 # large_obj.c:58
-#: common.c:1004
+#: common.c:1039
 #, c-format
 msgid "unexpected transaction status (%d)\n"
 msgstr "意外的事务状态值 (%d)\n"
 
 # common.c:930
-#: common.c:1032
+#: common.c:1067
 #, c-format
 msgid "Time: %.3f ms\n"
 msgstr "时间:%.3f ms\n"
 
 # copy.c:122
-#: copy.c:100
+#: copy.c:98
 #, c-format
 msgid "\\copy: arguments required\n"
 msgstr "\\copy:需要参数\n"
 
 # copy.c:408
-#: copy.c:255
+#: copy.c:253
 #, c-format
 msgid "\\copy: parse error at \"%s\"\n"
 msgstr "\\copy:在 \"%s\" 发生解读错误\n"
 
 # copy.c:410
-#: copy.c:257
+#: copy.c:255
 #, c-format
 msgid "\\copy: parse error at end of line\n"
 msgstr "\\copy:在行尾发生解读错误\n"
 
-#: copy.c:339
+#: copy.c:330
 #, c-format
-#| msgid "%s: could not execute command \"%s\": %s\n"
 msgid "could not execute command \"%s\": %s\n"
 msgstr "无法执行命令 \"%s\": %s\n"
 
+#: copy.c:346
+#, c-format
+#| msgid "could not stat file \"%s\": %m"
+msgid "could not stat file \"%s\": %s\n"
+msgstr "无法取文件 \"%s\":%s 的状态\n"
+
 # copy.c:541
-#: copy.c:355
+#: copy.c:350
 #, c-format
 msgid "%s: cannot copy from/to a directory\n"
 msgstr "%s:无法从目录复制或复制到目录\n"
 
-#: copy.c:389
+#: copy.c:387
 #, c-format
-#| msgid "could not close compression stream: %s\n"
 msgid "could not close pipe to external command: %s\n"
 msgstr "无法为外部命令: %s关闭管道\n"
 
 # command.c:1103
-#: copy.c:457 copy.c:467
+#: copy.c:455 copy.c:466
 #, c-format
 msgid "could not write COPY data: %s\n"
 msgstr "无法写入 COPY 资料:%s\n"
 
-#: copy.c:474
+#: copy.c:473
 #, c-format
 msgid "COPY data transfer failed: %s"
 msgstr "COPY 资料转换失败:%s"
 
-#: copy.c:544
+#: copy.c:534
 msgid "canceled by user"
 msgstr "依用户取消"
 
 # copy.c:668
-#: copy.c:554
+#: copy.c:544
 msgid ""
 "Enter data to be copied followed by a newline.\n"
 "End with a backslash and a period on a line by itself."
@@ -816,7 +862,7 @@ msgstr ""
 msgid "aborted because of read failure"
 msgstr "因读取失败已被中止"
 
-#: copy.c:687
+#: copy.c:691
 msgid "trying to exit copy mode"
 msgstr "正在尝试退出"
 
@@ -829,11 +875,11 @@ msgstr "正在尝试退出"
 # describe.c:1476
 # describe.c:1585
 # describe.c:1633
-#: describe.c:71 describe.c:247 describe.c:478 describe.c:605 describe.c:737
-#: describe.c:822 describe.c:891 describe.c:2666 describe.c:2870
-#: describe.c:2959 describe.c:3197 describe.c:3333 describe.c:3560
-#: describe.c:3632 describe.c:3643 describe.c:3702 describe.c:4110
-#: describe.c:4189
+#: describe.c:71 describe.c:259 describe.c:491 describe.c:615 describe.c:758
+#: describe.c:844 describe.c:914 describe.c:2759 describe.c:2964
+#: describe.c:3054 describe.c:3299 describe.c:3436 describe.c:3665
+#: describe.c:3737 describe.c:3748 describe.c:3807 describe.c:4215
+#: describe.c:4294
 msgid "Schema"
 msgstr "架构模式"
 
@@ -849,22 +895,23 @@ msgstr "架构模式"
 # describe.c:1586
 # describe.c:1634
 # describe.c:1727
-#: describe.c:72 describe.c:149 describe.c:157 describe.c:248 describe.c:479
-#: describe.c:606 describe.c:656 describe.c:738 describe.c:892 describe.c:2667
-#: describe.c:2792 describe.c:2871 describe.c:2960 describe.c:3038
-#: describe.c:3198 describe.c:3261 describe.c:3334 describe.c:3561
-#: describe.c:3633 describe.c:3644 describe.c:3703 describe.c:3892
-#: describe.c:3973 describe.c:4187
+#: describe.c:72 describe.c:156 describe.c:164 describe.c:260 describe.c:492
+#: describe.c:616 describe.c:677 describe.c:759 describe.c:915 describe.c:2760
+#: describe.c:2886 describe.c:2965 describe.c:3055 describe.c:3134
+#: describe.c:3300 describe.c:3364 describe.c:3437 describe.c:3666
+#: describe.c:3738 describe.c:3749 describe.c:3808 describe.c:3997
+#: describe.c:4078 describe.c:4292
 msgid "Name"
 msgstr "名称"
 
 # describe.c:177
-#: describe.c:73 describe.c:260 describe.c:306 describe.c:323
+#: describe.c:73 describe.c:272 describe.c:318 describe.c:335
 msgid "Result data type"
 msgstr "结果资料型别"
 
 # describe.c:178
-#: describe.c:87 describe.c:91 describe.c:261 describe.c:307 describe.c:324
+#: describe.c:81 describe.c:94 describe.c:98 describe.c:273 describe.c:319
+#: describe.c:336
 msgid "Argument data types"
 msgstr "参数资料型别"
 
@@ -878,24 +925,24 @@ msgstr "参数资料型别"
 # describe.c:1488
 # describe.c:1733
 # large_obj.c:256
-#: describe.c:98 describe.c:170 describe.c:353 describe.c:521 describe.c:610
-#: describe.c:681 describe.c:894 describe.c:1442 describe.c:2471
-#: describe.c:2700 describe.c:2823 describe.c:2897 describe.c:2969
-#: describe.c:3047 describe.c:3114 describe.c:3205 describe.c:3270
-#: describe.c:3335 describe.c:3471 describe.c:3510 describe.c:3577
-#: describe.c:3636 describe.c:3645 describe.c:3704 describe.c:3918
-#: describe.c:3995 describe.c:4124 describe.c:4190 large_obj.c:291
+#: describe.c:105 describe.c:182 describe.c:365 describe.c:534 describe.c:631
+#: describe.c:702 describe.c:917 describe.c:1486 describe.c:2564
+#: describe.c:2793 describe.c:2917 describe.c:2991 describe.c:3064
+#: describe.c:3147 describe.c:3215 describe.c:3307 describe.c:3373
+#: describe.c:3438 describe.c:3574 describe.c:3614 describe.c:3682
+#: describe.c:3741 describe.c:3750 describe.c:3809 describe.c:4023
+#: describe.c:4100 describe.c:4229 describe.c:4295 large_obj.c:291
 #: large_obj.c:301
 msgid "Description"
 msgstr "描述"
 
 # describe.c:97
-#: describe.c:116
+#: describe.c:123
 msgid "List of aggregate functions"
 msgstr "聚集函数列表"
 
 # describe.c:117
-#: describe.c:137
+#: describe.c:144
 #, c-format
 msgid "The server (version %d.%d) does not support tablespaces.\n"
 msgstr "服务器(版本%d.%d) 不支持使用表空间.\n"
@@ -905,48 +952,52 @@ msgstr "服务器(版本%d.%d) 不支持使用表空间.\n"
 # describe.c:362
 # describe.c:1478
 # describe.c:1727
-#: describe.c:150 describe.c:158 describe.c:350 describe.c:657 describe.c:821
-#: describe.c:2676 describe.c:2796 describe.c:3040 describe.c:3262
-#: describe.c:3893 describe.c:3974 large_obj.c:290
+#: describe.c:157 describe.c:165 describe.c:362 describe.c:678 describe.c:843
+#: describe.c:2769 describe.c:2890 describe.c:3136 describe.c:3365
+#: describe.c:3998 describe.c:4079 large_obj.c:290
 msgid "Owner"
 msgstr "拥有者"
 
 # describe.c:128
-#: describe.c:151 describe.c:159
+#: describe.c:158 describe.c:166
 msgid "Location"
 msgstr "所在地"
 
+#: describe.c:177 describe.c:2382
+msgid "Options"
+msgstr "选项"
+
 # describe.c:150
-#: describe.c:187
+#: describe.c:199
 msgid "List of tablespaces"
 msgstr "表空间列表"
 
-#: describe.c:224
+#: describe.c:236
 #, c-format
 msgid "\\df only takes [antwS+] as options\n"
 msgstr "\\df 只能将 [antwS+]作为选项\n"
 
-#: describe.c:230
+#: describe.c:242
 #, c-format
 msgid "\\df does not take a \"w\" option with server version %d.%d\n"
 msgstr "\\df 不能有带着服务器版本%d.%d 的选项\"w\" \n"
 
 #. translator: "agg" is short for "aggregate"
-#: describe.c:263 describe.c:309 describe.c:326
+#: describe.c:275 describe.c:321 describe.c:338
 msgid "agg"
 msgstr "agg"
 
-#: describe.c:264
+#: describe.c:276
 msgid "window"
 msgstr "窗口"
 
 # describe.c:575
-#: describe.c:265 describe.c:310 describe.c:327 describe.c:1005
+#: describe.c:277 describe.c:322 describe.c:339 describe.c:1028
 msgid "trigger"
 msgstr "触发器"
 
 # help.c:211
-#: describe.c:266 describe.c:311 describe.c:328
+#: describe.c:278 describe.c:323 describe.c:340
 msgid "normal"
 msgstr "常规"
 
@@ -954,108 +1005,112 @@ msgstr "常规"
 # describe.c:745
 # describe.c:1478
 # describe.c:1587
-#: describe.c:267 describe.c:312 describe.c:329 describe.c:744 describe.c:831
-#: describe.c:1411 describe.c:2675 describe.c:2872 describe.c:3992
+#: describe.c:279 describe.c:324 describe.c:341 describe.c:765 describe.c:853
+#: describe.c:1455 describe.c:2768 describe.c:2966 describe.c:4097
 msgid "Type"
 msgstr "型别"
 
 # sql_help.h:221
-#: describe.c:343
-#| msgid "define a cursor"
+#: describe.c:355
 msgid "definer"
 msgstr "定义者"
 
-#: describe.c:344
+#: describe.c:356
 msgid "invoker"
 msgstr "调用者"
 
-#: describe.c:345
+#: describe.c:357
 msgid "Security"
 msgstr "安全"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:346
+#: describe.c:358
 msgid "immutable"
 msgstr "不可改变"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:347
+#: describe.c:359
 msgid "stable"
 msgstr "稳定"
 
-#: describe.c:348
+#: describe.c:360
 msgid "volatile"
 msgstr "不稳定性"
 
-#: describe.c:349
+#: describe.c:361
 msgid "Volatility"
 msgstr "挥发性"
 
 # describe.c:186
-#: describe.c:351
+#: describe.c:363
 msgid "Language"
 msgstr "程序语言"
 
 # describe.c:187
-#: describe.c:352
+#: describe.c:364
 msgid "Source code"
 msgstr "原始程式"
 
 # describe.c:221
-#: describe.c:450
+#: describe.c:462
 msgid "List of functions"
 msgstr "函数列表"
 
 # describe.c:257
-#: describe.c:489
+#: describe.c:502
 msgid "Internal name"
 msgstr "内部名称"
 
 # describe.c:257
-#: describe.c:490 describe.c:673 describe.c:2692 describe.c:2696
+#: describe.c:503 describe.c:694 describe.c:2785 describe.c:2789
 msgid "Size"
 msgstr "大小"
 
-#: describe.c:511
+#: describe.c:524
 msgid "Elements"
 msgstr "成员"
 
 # describe.c:289
-#: describe.c:561
+#: describe.c:574
 msgid "List of data types"
 msgstr "资料型别列表"
 
 # describe.c:321
-#: describe.c:607
+#: describe.c:617
 msgid "Left arg type"
 msgstr "左参数型别"
 
 # describe.c:321
-#: describe.c:608
+#: describe.c:618
 msgid "Right arg type"
 msgstr "右参数型别"
 
 # describe.c:322
-#: describe.c:609
+#: describe.c:619
 msgid "Result type"
 msgstr "结果型别"
 
+# describe.c:1691
+#: describe.c:624 describe.c:3206 describe.c:3573
+msgid "Function"
+msgstr "函数"
+
 # describe.c:336
-#: describe.c:628
+#: describe.c:649
 msgid "List of operators"
 msgstr "运算子列表"
 
 # describe.c:365
-#: describe.c:658
+#: describe.c:679
 msgid "Encoding"
 msgstr "字元编码"
 
 # describe.c:128
-#: describe.c:663 describe.c:3199
+#: describe.c:684 describe.c:3301
 msgid "Collate"
 msgstr "校对规则"
 
@@ -1063,73 +1118,73 @@ msgstr "校对规则"
 # describe.c:745
 # describe.c:1478
 # describe.c:1587
-#: describe.c:664 describe.c:3200
+#: describe.c:685 describe.c:3302
 msgid "Ctype"
 msgstr "Ctype"
 
 # describe.c:1342
-#: describe.c:677
+#: describe.c:698
 msgid "Tablespace"
 msgstr "表空间"
 
 # describe.c:381
-#: describe.c:699
+#: describe.c:720
 msgid "List of databases"
 msgstr "资料库列表"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:739 describe.c:824 describe.c:2668
+#: describe.c:760 describe.c:846 describe.c:2761
 msgid "table"
 msgstr "资料表"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:740 describe.c:2669
+#: describe.c:761 describe.c:2762
 msgid "view"
 msgstr "视观表"
 
-#: describe.c:741 describe.c:2670
+#: describe.c:762 describe.c:2763
 msgid "materialized view"
 msgstr "物化视图"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:742 describe.c:826 describe.c:2672
+#: describe.c:763 describe.c:848 describe.c:2765
 msgid "sequence"
 msgstr "序列数"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:743 describe.c:2674
+#: describe.c:764 describe.c:2767
 msgid "foreign table"
 msgstr "所引用的外表"
 
 # sql_help.h:325
-#: describe.c:755
+#: describe.c:776
 msgid "Column access privileges"
 msgstr "列访问权限"
 
 # describe.c:133
 # describe.c:415
 # describe.c:1733
-#: describe.c:781 describe.c:4334 describe.c:4338
+#: describe.c:802 describe.c:4439 describe.c:4443
 msgid "Access privileges"
 msgstr "存取权限"
 
 # describe.c:117
-#: describe.c:809
+#: describe.c:831
 #, c-format
 msgid ""
 "The server (version %d.%d) does not support altering default privileges.\n"
 msgstr "服务器(版本%d.%d)不支持修改缺省权限.\n"
 
 # describe.c:498
-#: describe.c:828
+#: describe.c:850
 msgid "function"
 msgstr "函数"
 
@@ -1137,729 +1192,761 @@ msgstr "函数"
 # describe.c:745
 # describe.c:1478
 # describe.c:1587
-#: describe.c:830
+#: describe.c:852
 msgid "type"
 msgstr "类型Ctype"
 
 # sql_help.h:325
-#: describe.c:854
+#: describe.c:876
 msgid "Default access privileges"
 msgstr "缺省的访问权限"
 
 # describe.c:469
-#: describe.c:893
+#: describe.c:916
 msgid "Object"
 msgstr "物件"
 
-#: describe.c:907 sql_help.c:1447
+#: describe.c:930 sql_help.c:1595
 msgid "constraint"
 msgstr "约束"
 
-#: describe.c:934
+#: describe.c:957
 msgid "operator class"
 msgstr "操作符类"
 
 # sql_help.h:269
-#: describe.c:963
+#: describe.c:986
 msgid "operator family"
 msgstr "操作符家族"
 
 # describe.c:559
-#: describe.c:985
+#: describe.c:1008
 msgid "rule"
 msgstr "规则"
 
 # describe.c:593
-#: describe.c:1027
+#: describe.c:1050
 msgid "Object descriptions"
 msgstr "物件描述"
 
 # describe.c:641
-#: describe.c:1080
+#: describe.c:1104
 #, c-format
 msgid "Did not find any relation named \"%s\".\n"
 msgstr "没有找到任何名称为 \"%s\" 的关联。\n"
 
 # describe.c:728
-#: describe.c:1253
+#: describe.c:1295
 #, c-format
 msgid "Did not find any relation with OID %s.\n"
 msgstr "没有找到任何OID为 %s 的关联。\n"
 
 # describe.c:933
-#: describe.c:1355
+#: describe.c:1399
 #, c-format
 msgid "Unlogged table \"%s.%s\""
 msgstr "不记录日志的表 \"%s.%s\""
 
 # describe.c:859
-#: describe.c:1358
+#: describe.c:1402
 #, c-format
 msgid "Table \"%s.%s\""
 msgstr "资料表 \"%s.%s\""
 
 # describe.c:863
-#: describe.c:1362
+#: describe.c:1406
 #, c-format
 msgid "View \"%s.%s\""
 msgstr "视观表 \"%s.%s\""
 
 # describe.c:933
-#: describe.c:1367
+#: describe.c:1411
 #, c-format
-#| msgid "Unlogged table \"%s.%s\""
 msgid "Unlogged materialized view \"%s.%s\""
 msgstr "不记录日志的物化视图 \"%s.%s\""
 
-#: describe.c:1370
+#: describe.c:1414
 #, c-format
-#| msgid "analyzing \"%s.%s\""
 msgid "Materialized view \"%s.%s\""
 msgstr "物化视图 \"%s.%s\""
 
 # describe.c:867
-#: describe.c:1374
+#: describe.c:1418
 #, c-format
 msgid "Sequence \"%s.%s\""
 msgstr "序列数 \"%s.%s\""
 
 # describe.c:871
-#: describe.c:1379
+#: describe.c:1423
 #, c-format
 msgid "Unlogged index \"%s.%s\""
 msgstr "不记录日志的索引 \"%s.%s\""
 
 # describe.c:871
-#: describe.c:1382
+#: describe.c:1426
 #, c-format
 msgid "Index \"%s.%s\""
 msgstr "索引 \"%s.%s\""
 
 # describe.c:875
-#: describe.c:1387
+#: describe.c:1431
 #, c-format
 msgid "Special relation \"%s.%s\""
 msgstr "特殊关联 \"%s.%s\""
 
 # describe.c:879
-#: describe.c:1391
+#: describe.c:1435
 #, c-format
 msgid "TOAST table \"%s.%s\""
 msgstr "TOAST 资料表 \"%s.%s\""
 
 # describe.c:883
-#: describe.c:1395
+#: describe.c:1439
 #, c-format
 msgid "Composite type \"%s.%s\""
 msgstr "合成型别 \"%s.%s\""
 
 # describe.c:933
-#: describe.c:1399
+#: describe.c:1443
 #, c-format
 msgid "Foreign table \"%s.%s\""
 msgstr "引用的外部表 \"%s.%s\""
 
 # describe.c:744
-#: describe.c:1410
+#: describe.c:1454
 msgid "Column"
 msgstr "栏位"
 
 # describe.c:752
-#: describe.c:1419
+#: describe.c:1463
 msgid "Modifiers"
 msgstr "修饰词"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:1424
+#: describe.c:1468
 msgid "Value"
 msgstr "值"
 
 # describe.c:1636
-#: describe.c:1427
+#: describe.c:1471
 msgid "Definition"
 msgstr "定义"
 
-#: describe.c:1430 describe.c:3913 describe.c:3994 describe.c:4062
-#: describe.c:4123
+#: describe.c:1474 describe.c:4018 describe.c:4099 describe.c:4167
+#: describe.c:4228
 msgid "FDW Options"
 msgstr "FDW选项"
 
 # describe.c:1635
-#: describe.c:1434
+#: describe.c:1478
 msgid "Storage"
 msgstr "存储"
 
-#: describe.c:1437
+#: describe.c:1481
 msgid "Stats target"
 msgstr "统计目标"
 
-#: describe.c:1487
+#: describe.c:1531
 #, c-format
 msgid "collate %s"
 msgstr "校对%s"
 
-#: describe.c:1495
+#: describe.c:1539
 msgid "not null"
 msgstr "非空"
 
 # describe.c:1639
 #. translator: default values of column definitions
-#: describe.c:1505
+#: describe.c:1549
 #, c-format
 msgid "default %s"
 msgstr "缺省 %s"
 
 # describe.c:925
-#: describe.c:1613
+#: describe.c:1664
 msgid "primary key, "
 msgstr "主键(PK),"
 
 # describe.c:927
-#: describe.c:1615
+#: describe.c:1666
 msgid "unique, "
 msgstr "唯一的,"
 
 # describe.c:933
-#: describe.c:1621
+#: describe.c:1672
 #, c-format
 msgid "for table \"%s.%s\""
 msgstr "给资料表 \"%s.%s\""
 
 # describe.c:937
-#: describe.c:1625
+#: describe.c:1676
 #, c-format
 msgid ", predicate (%s)"
 msgstr ", 叙述 (%s)"
 
 # describe.c:940
-#: describe.c:1628
+#: describe.c:1679
 msgid ", clustered"
 msgstr ", 已丛集"
 
-#: describe.c:1631
+#: describe.c:1682
 msgid ", invalid"
 msgstr ", 无效的"
 
-#: describe.c:1634
+#: describe.c:1685
 msgid ", deferrable"
 msgstr ",可延迟"
 
-#: describe.c:1637
+#: describe.c:1688
 msgid ", initially deferred"
 msgstr ",开始被延迟"
 
-#: describe.c:1672
+#: describe.c:1691
+msgid ", replica identity"
+msgstr ",复制标识"
+
+#: describe.c:1726
 #, c-format
 msgid "Owned by: %s"
 msgstr "属于: %s"
 
 # describe.c:1138
-#: describe.c:1728
+#: describe.c:1786
 msgid "Indexes:"
 msgstr "索引:"
 
 # describe.c:1174
-#: describe.c:1809
+#: describe.c:1870
 msgid "Check constraints:"
 msgstr "检查约束限制"
 
 # describe.c:1189
-#: describe.c:1840
+#: describe.c:1901
 msgid "Foreign-key constraints:"
 msgstr "外部键(FK)限制:"
 
-#: describe.c:1871
+#: describe.c:1932
 msgid "Referenced by:"
 msgstr "由引用:"
 
 # describe.c:983
 # describe.c:1204
-#: describe.c:1953 describe.c:2003
+#: describe.c:2014 describe.c:2064
 msgid "Rules:"
 msgstr "规则:"
 
-#: describe.c:1956
+#: describe.c:2017
 msgid "Disabled rules:"
 msgstr "已停用规则:"
 
-#: describe.c:1959
+#: describe.c:2020
 msgid "Rules firing always:"
 msgstr "永远触发规则"
 
-#: describe.c:1962
+#: describe.c:2023
 msgid "Rules firing on replica only:"
 msgstr "只有在复制时触发规则:"
 
 # describe.c:977
-#: describe.c:1986
+#: describe.c:2047
 msgid "View definition:"
 msgstr "视图定义:"
 
 # describe.c:1223
-#: describe.c:2109
+#: describe.c:2182
 msgid "Triggers:"
 msgstr "触发器:"
 
-#: describe.c:2112
+#: describe.c:2186
+#| msgid "Disabled triggers:"
+msgid "Disabled user triggers:"
+msgstr "禁用用户触发器:"
+
+#: describe.c:2188
 msgid "Disabled triggers:"
 msgstr "停用触发器:"
 
-#: describe.c:2115
+#: describe.c:2191
+#| msgid "Disabled triggers:"
+msgid "Disabled internal triggers:"
+msgstr "禁用内部触发器:"
+
+#: describe.c:2194
 msgid "Triggers firing always:"
 msgstr "永远激活触发器"
 
-#: describe.c:2118
+#: describe.c:2197
 msgid "Triggers firing on replica only:"
 msgstr "只有在复制时激活触发器"
 
 # describe.c:1245
-#: describe.c:2197
+#: describe.c:2276
 msgid "Inherits"
 msgstr "继承"
 
-#: describe.c:2236
+#: describe.c:2315
 #, c-format
 msgid "Number of child tables: %d (Use \\d+ to list them.)"
 msgstr "子表的数量:%d(可以使用 \\d+ 来列出它们)"
 
-#: describe.c:2243
+#: describe.c:2322
 msgid "Child tables"
 msgstr "子表"
 
-#: describe.c:2265
+#: describe.c:2344
 #, c-format
 msgid "Typed table of type: %s"
 msgstr "类型的已确定类型表(typed table):%s"
 
-# describe.c:1259
-#: describe.c:2272
-msgid "Has OIDs"
-msgstr "有 OIDs"
-
-# describe.c:1262
-# describe.c:1638
-# describe.c:1692
-#: describe.c:2275 describe.c:2963 describe.c:3106
-msgid "no"
-msgstr "否"
-
-# describe.c:1262
-# describe.c:1637
-# describe.c:1694
-#: describe.c:2275 describe.c:2963 describe.c:3108
-msgid "yes"
-msgstr "是"
+# describe.c:1636
+#: describe.c:2358
+#| msgid "Replication"
+msgid "Replica Identity"
+msgstr "复制标识"
 
-#: describe.c:2288
-msgid "Options"
-msgstr "选项"
+# describe.c:1259
+#: describe.c:2371
+#| msgid "Has OIDs"
+msgid "Has OIDs: yes"
+msgstr "有 OIDs:yes"
 
 # describe.c:1342
-#: describe.c:2366
+#: describe.c:2460
 #, c-format
 msgid "Tablespace: \"%s\""
 msgstr "表空间:\"%s\""
 
 # describe.c:1342
-#: describe.c:2379
+#. translator: before this string there's an index description like
+#. '"foo_pkey" PRIMARY KEY, btree (a)'
+#: describe.c:2472
 #, c-format
 msgid ", tablespace \"%s\""
 msgstr ", 表空间 \"%s\""
 
 # describe.c:1431
-#: describe.c:2464
+#: describe.c:2557
 msgid "List of roles"
 msgstr "角色列表"
 
 # describe.c:1375
-#: describe.c:2466
+#: describe.c:2559
 msgid "Role name"
 msgstr "角色名称"
 
-#: describe.c:2467
+#: describe.c:2560
 msgid "Attributes"
 msgstr "属性"
 
-#: describe.c:2468
+#: describe.c:2561
 msgid "Member of"
 msgstr "成员属于"
 
 # describe.c:1377
-#: describe.c:2479
+#: describe.c:2572
 msgid "Superuser"
 msgstr "超级用户"
 
-#: describe.c:2482
+#: describe.c:2575
 msgid "No inheritance"
 msgstr "没有继承"
 
-#: describe.c:2485
+#: describe.c:2578
 msgid "Create role"
 msgstr "建立角色"
 
-#: describe.c:2488
+#: describe.c:2581
 msgid "Create DB"
 msgstr "建立 DB"
 
-#: describe.c:2491
+#: describe.c:2584
 msgid "Cannot login"
 msgstr "无法登录"
 
 # describe.c:1636
-#: describe.c:2495
+#: describe.c:2588
 msgid "Replication"
 msgstr "复制"
 
 # help.c:123
-#: describe.c:2504
+#: describe.c:2597
 msgid "No connections"
 msgstr "没有连接"
 
 # help.c:123
-#: describe.c:2506
+#: describe.c:2599
 #, c-format
 msgid "%d connection"
 msgid_plural "%d connections"
 msgstr[0] "%d个连接"
 
-#: describe.c:2516
+#: describe.c:2609
 msgid "Password valid until "
 msgstr "密码有效直至"
 
 # describe.c:1375
-#: describe.c:2572
-#, fuzzy
+#: describe.c:2665
 #| msgid "Role name"
 msgid "Role"
-msgstr "角色名称"
+msgstr "角色"
 
-#: describe.c:2573
-#| msgid "database %s"
+#: describe.c:2666
 msgid "Database"
 msgstr "数据库"
 
-#: describe.c:2574
+#: describe.c:2667
 msgid "Settings"
 msgstr "设置"
 
-#: describe.c:2584
+#: describe.c:2677
 #, c-format
 msgid "No per-database role settings support in this server version.\n"
 msgstr "在这个版本的服务器中不支持对每个数据库的角色进行设定.\n"
 
 # describe.c:1542
-#: describe.c:2595
+#: describe.c:2688
 #, c-format
 msgid "No matching settings found.\n"
 msgstr "没有找到所匹配的设置.\n"
 
 # describe.c:1544
-#: describe.c:2597
+#: describe.c:2690
 #, c-format
 msgid "No settings found.\n"
 msgstr "没有找到设置.\n"
 
 # describe.c:1549
-#: describe.c:2602
+#: describe.c:2695
 msgid "List of settings"
 msgstr "设置的列表"
 
 # describe.c:543
 # describe.c:1477
-#: describe.c:2671
+#: describe.c:2764
 msgid "index"
 msgstr "索引"
 
 # describe.c:1478
-#: describe.c:2673
+#: describe.c:2766
 msgid "special"
 msgstr "特殊"
 
 # describe.c:1483
-#: describe.c:2681 describe.c:4111
+#: describe.c:2774 describe.c:4216
 msgid "Table"
 msgstr "资料表"
 
 # describe.c:1542
-#: describe.c:2757
+#: describe.c:2850
 #, c-format
 msgid "No matching relations found.\n"
 msgstr "没有找到符合的关联。\n"
 
 # describe.c:1544
-#: describe.c:2759
+#: describe.c:2852
 #, c-format
 msgid "No relations found.\n"
 msgstr "找不到关联。\n"
 
 # describe.c:1549
-#: describe.c:2764
+#: describe.c:2857
 msgid "List of relations"
 msgstr "关联列表"
 
-#: describe.c:2800
+#: describe.c:2894
 msgid "Trusted"
 msgstr "信任"
 
 # describe.c:257
-#: describe.c:2808
+#: describe.c:2902
 msgid "Internal Language"
 msgstr "内部语言"
 
-#: describe.c:2809
+#: describe.c:2903
 msgid "Call Handler"
 msgstr "调用函数"
 
-#: describe.c:2810 describe.c:3900
+#: describe.c:2904 describe.c:4005
 msgid "Validator"
 msgstr "验证"
 
-#: describe.c:2813
+#: describe.c:2907
 msgid "Inline Handler"
 msgstr "内联函数"
 
 # describe.c:1431
-#: describe.c:2841
+#: describe.c:2935
 msgid "List of languages"
 msgstr "语言列表"
 
 # describe.c:1588
-#: describe.c:2885
+#: describe.c:2979
 msgid "Modifier"
 msgstr "修饰词"
 
-#: describe.c:2886
+#: describe.c:2980
 msgid "Check"
 msgstr "检查"
 
 # describe.c:1602
-#: describe.c:2928
+#: describe.c:3022
 msgid "List of domains"
 msgstr "共同值域列表"
 
 # describe.c:1635
-#: describe.c:2961
+#: describe.c:3056
 msgid "Source"
 msgstr "来源"
 
 # describe.c:1636
-#: describe.c:2962
+#: describe.c:3057
 msgid "Destination"
 msgstr "目的地"
 
+# describe.c:1262
+# describe.c:1638
+# describe.c:1692
+#: describe.c:3058 describe.c:3207
+msgid "no"
+msgstr "否"
+
+# describe.c:1262
+# describe.c:1637
+# describe.c:1694
+#: describe.c:3058 describe.c:3209
+msgid "yes"
+msgstr "是"
+
 # describe.c:1639
-#: describe.c:2964
+#: describe.c:3059
 msgid "Default?"
 msgstr "预设?"
 
 # describe.c:1653
-#: describe.c:3001
+#: describe.c:3096
 msgid "List of conversions"
 msgstr "字元编码转换列表"
 
-#: describe.c:3039
-#, fuzzy
+#: describe.c:3135
 #| msgid "event"
 msgid "Event"
-msgstr "事件"
+msgstr "Event"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:3041
-#| msgid "table"
+#: describe.c:3137
+#| msgid "Enabled"
+msgid "enabled"
+msgstr "启用"
+
+# describe.c:1636
+#: describe.c:3138
+#| msgid "Replication"
+msgid "replica"
+msgstr "replica"
+
+#: describe.c:3139
+msgid "always"
+msgstr "经常"
+
+# describe.c:415
+# describe.c:543
+# describe.c:1477
+#: describe.c:3140
+#| msgid "stable"
+msgid "disabled"
+msgstr "禁用"
+
+# describe.c:415
+# describe.c:543
+# describe.c:1477
+#: describe.c:3141
 msgid "Enabled"
 msgstr "使能"
 
-#: describe.c:3042
-#, fuzzy
+#: describe.c:3142
 #| msgid "Procedural Languages"
 msgid "Procedure"
-msgstr "过程语言"
+msgstr "过程"
 
-#: describe.c:3043
+#: describe.c:3143
 msgid "Tags"
 msgstr "标签"
 
 # describe.c:1549
-#: describe.c:3062
-#| msgid "List of settings"
+#: describe.c:3162
 msgid "List of event triggers"
 msgstr "事件触发器列表"
 
 # describe.c:1688
-#: describe.c:3103
+#: describe.c:3204
 msgid "Source type"
 msgstr "来源型别"
 
 # describe.c:1689
-#: describe.c:3104
+#: describe.c:3205
 msgid "Target type"
 msgstr "目标型别"
 
-# describe.c:1691
-#: describe.c:3105 describe.c:3470
-msgid "Function"
-msgstr "函数"
-
 # describe.c:1693
-#: describe.c:3107
+#: describe.c:3208
 msgid "in assignment"
 msgstr "在指派中"
 
 # describe.c:1695
-#: describe.c:3109
+#: describe.c:3210
 msgid "Implicit?"
 msgstr "隐含的?"
 
 # describe.c:1703
-#: describe.c:3160
+#: describe.c:3261
 msgid "List of casts"
 msgstr "型别转换列表"
 
 # describe.c:117
-#: describe.c:3185
+#: describe.c:3287
 #, c-format
 msgid "The server (version %d.%d) does not support collations.\n"
 msgstr "服务器(版本%d.%d)不支持排序校对。\n"
 
 # describe.c:1549
-#: describe.c:3235
+#: describe.c:3337
 msgid "List of collations"
 msgstr "校对列表"
 
 # describe.c:1753
-#: describe.c:3293
+#: describe.c:3396
 msgid "List of schemas"
 msgstr "架构模式列表"
 
 # describe.c:117
-#: describe.c:3316 describe.c:3549 describe.c:3617 describe.c:3685
+#: describe.c:3419 describe.c:3654 describe.c:3722 describe.c:3790
 #, c-format
 msgid "The server (version %d.%d) does not support full text search.\n"
 msgstr "服务器(版本%d.%d)不支持使用全文搜索.\n"
 
 # describe.c:150
-#: describe.c:3350
+#: describe.c:3453
 msgid "List of text search parsers"
 msgstr "文本剖析器列表"
 
 # describe.c:641
-#: describe.c:3393
+#: describe.c:3496
 #, c-format
 msgid "Did not find any text search parser named \"%s\".\n"
 msgstr "没有找到任何命名为 \"%s\" 的文本剖析器。\n"
 
-#: describe.c:3468
+#: describe.c:3571
 msgid "Start parse"
 msgstr "开始剖析"
 
-#: describe.c:3469
+#: describe.c:3572
 msgid "Method"
 msgstr "方法"
 
-#: describe.c:3473
+#: describe.c:3576
 msgid "Get next token"
 msgstr "取得下一个标志符"
 
-#: describe.c:3475
+#: describe.c:3578
 msgid "End parse"
 msgstr "结束剖析"
 
-#: describe.c:3477
+#: describe.c:3580
 msgid "Get headline"
 msgstr "取得首行"
 
-#: describe.c:3479
+#: describe.c:3582
 msgid "Get token types"
 msgstr "取得标志符型别"
 
-#: describe.c:3489
+#: describe.c:3592
 #, c-format
 msgid "Text search parser \"%s.%s\""
 msgstr "文本搜寻剖析器 \"%s.%s\""
 
-#: describe.c:3491
+#: describe.c:3594
 #, c-format
 msgid "Text search parser \"%s\""
 msgstr "文本搜寻剖析器 \"%s\""
 
 # describe.c:1375
-#: describe.c:3509
+#: describe.c:3613
 msgid "Token name"
 msgstr "标志名称"
 
-#: describe.c:3520
+#: describe.c:3624
 #, c-format
 msgid "Token types for parser \"%s.%s\""
 msgstr "标志符别型给剖析器 \"%s.%s\""
 
-#: describe.c:3522
+#: describe.c:3626
 #, c-format
 msgid "Token types for parser \"%s\""
 msgstr "标志符型别给剖析器 \"%s\""
 
-#: describe.c:3571
+#: describe.c:3676
 msgid "Template"
 msgstr "模版"
 
 # help.c:88
-#: describe.c:3572
+#: describe.c:3677
 msgid "Init options"
 msgstr "初始选项"
 
 # describe.c:1549
-#: describe.c:3594
+#: describe.c:3699
 msgid "List of text search dictionaries"
 msgstr "文本搜寻字典列表"
 
-#: describe.c:3634
+#: describe.c:3739
 msgid "Init"
 msgstr "初始化"
 
 # describe.c:257
-#: describe.c:3635
+#: describe.c:3740
 msgid "Lexize"
 msgstr "词汇"
 
 # describe.c:1753
-#: describe.c:3662
+#: describe.c:3767
 msgid "List of text search templates"
 msgstr "文本搜寻样式列表"
 
 # describe.c:97
-#: describe.c:3719
+#: describe.c:3824
 msgid "List of text search configurations"
 msgstr "文本搜寻组态列表"
 
 # describe.c:641
-#: describe.c:3763
+#: describe.c:3868
 #, c-format
 msgid "Did not find any text search configuration named \"%s\".\n"
 msgstr "没有找到任何命名为 \"%s\" 的文本搜寻组态。\n"
 
-#: describe.c:3829
+#: describe.c:3934
 msgid "Token"
 msgstr "标志符"
 
-#: describe.c:3830
+#: describe.c:3935
 msgid "Dictionaries"
 msgstr "字典"
 
-#: describe.c:3841
+#: describe.c:3946
 #, c-format
 msgid "Text search configuration \"%s.%s\""
 msgstr "文本搜寻组态 \"%s.%s\""
 
-#: describe.c:3844
+#: describe.c:3949
 #, c-format
 msgid "Text search configuration \"%s\""
 msgstr "文本搜寻组态 \"%s\""
 
 # describe.c:859
-#: describe.c:3848
+#: describe.c:3953
 #, c-format
 msgid ""
 "\n"
@@ -1869,7 +1956,7 @@ msgstr ""
 "剖析器:\"%s.%s\""
 
 # describe.c:1342
-#: describe.c:3851
+#: describe.c:3956
 #, c-format
 msgid ""
 "\n"
@@ -1879,147 +1966,142 @@ msgstr ""
 "剖析器:\"%s\""
 
 # describe.c:117
-#: describe.c:3883
+#: describe.c:3988
 #, c-format
 msgid "The server (version %d.%d) does not support foreign-data wrappers.\n"
 msgstr "服务器(版本%d.%d)不支持使用外部数据封装器。\n"
 
-#: describe.c:3897
+#: describe.c:4002
 msgid "Handler"
 msgstr "处理函数"
 
 # describe.c:289
-#: describe.c:3940
+#: describe.c:4045
 msgid "List of foreign-data wrappers"
 msgstr "外部数据封装器列表"
 
 # describe.c:117
-#: describe.c:3963
+#: describe.c:4068
 #, c-format
 msgid "The server (version %d.%d) does not support foreign servers.\n"
 msgstr "服务器(版本%d.%d)不支持使用外部服务器.\n"
 
-#: describe.c:3975
+#: describe.c:4080
 msgid "Foreign-data wrapper"
 msgstr "外部数据封装器"
 
-#: describe.c:3993 describe.c:4188
+#: describe.c:4098 describe.c:4293
 msgid "Version"
 msgstr "版本"
 
 # describe.c:1653
-#: describe.c:4019
+#: describe.c:4124
 msgid "List of foreign servers"
 msgstr "外部服务器列表"
 
 # describe.c:117
-#: describe.c:4042
+#: describe.c:4147
 #, c-format
 msgid "The server (version %d.%d) does not support user mappings.\n"
 msgstr "服务器(版本%d.%d)不支持使用用户映射。\n"
 
 # describe.c:1377
-#: describe.c:4051 describe.c:4112
+#: describe.c:4156 describe.c:4217
 msgid "Server"
 msgstr "服务器"
 
-#: describe.c:4052
+#: describe.c:4157
 msgid "User name"
 msgstr "用户名: "
 
 # describe.c:1602
-#: describe.c:4077
+#: describe.c:4182
 msgid "List of user mappings"
 msgstr "列出用户映射"
 
 # describe.c:117
-#: describe.c:4100
+#: describe.c:4205
 #, c-format
 msgid "The server (version %d.%d) does not support foreign tables.\n"
 msgstr "服务器(版本%d.%d)不支持使用引用表.\n"
 
 # describe.c:1653
-#: describe.c:4151
+#: describe.c:4256
 msgid "List of foreign tables"
 msgstr "引用表列表"
 
 # describe.c:117
-#: describe.c:4174 describe.c:4228
+#: describe.c:4279 describe.c:4333
 #, c-format
 msgid "The server (version %d.%d) does not support extensions.\n"
 msgstr "服务器(版本%d.%d) 不支持使用扩展.\n"
 
 # describe.c:1653
-#: describe.c:4205
+#: describe.c:4310
 msgid "List of installed extensions"
 msgstr "已安装扩展列表"
 
 # describe.c:641
-#: describe.c:4255
+#: describe.c:4360
 #, c-format
 msgid "Did not find any extension named \"%s\".\n"
 msgstr "没有找到任何名称为 \"%s\" 的扩展。\n"
 
 # describe.c:641
-#: describe.c:4258
+#: describe.c:4363
 #, c-format
 msgid "Did not find any extensions.\n"
 msgstr "没有找到任何扩展.\n"
 
 # describe.c:593
-#: describe.c:4302
+#: describe.c:4407
 msgid "Object Description"
 msgstr "对象描述"
 
-#: describe.c:4311
+#: describe.c:4416
 #, c-format
 msgid "Objects in extension \"%s\""
 msgstr "对象用于扩展 \"%s\""
 
-# help.c:48
-#: help.c:48
-msgid "off"
-msgstr "关闭"
-
-# help.c:48
-#: help.c:48
-msgid "on"
-msgstr "开启"
-
-# help.c:70
-#: help.c:70
+# command.c:953
+# common.c:216
+# common.c:605
+# common.c:660
+# common.c:903
+#: help.c:62
 #, c-format
-msgid "could not get current user name: %s\n"
-msgstr "无法取得目前的用户名称:%s\n"
+#| msgid "%s"
+msgid "%s\n"
+msgstr "%s\n"
 
 # help.c:83
-#: help.c:82
+#: help.c:67
 #, c-format
 msgid ""
 "psql is the PostgreSQL interactive terminal.\n"
 "\n"
 msgstr "psql是PostgreSQL 的交互式客户端工具。\n"
 
-#: help.c:83
+#: help.c:68
 #, c-format
 msgid "Usage:\n"
 msgstr "使用方法:\n"
 
 # help.c:86
-#: help.c:84
+#: help.c:69
 #, c-format
 msgid ""
 "  psql [OPTION]... [DBNAME [USERNAME]]\n"
 "\n"
 msgstr "  psql [选项]... [数据库名称 [用户名称]]\n"
 
-#: help.c:86
+#: help.c:71
 #, c-format
 msgid "General options:\n"
 msgstr "通用选项:\n"
 
 # help.c:94
-#: help.c:91
+#: help.c:76
 #, c-format
 msgid ""
 "  -c, --command=COMMAND    run only single command (SQL or internal) and "
@@ -2027,26 +2109,26 @@ msgid ""
 msgstr "  -c,--command=命令        执行单一命令(SQL或内部指令)然后结束\n"
 
 # help.c:93
-#: help.c:92
+#: help.c:77
 #, c-format
 msgid ""
 "  -d, --dbname=DBNAME      database name to connect to (default: \"%s\")\n"
 msgstr " -d, --dbname=数据库名称   指定要连接的数据库 (缺省:\"%s\")\n"
 
 # help.c:95
-#: help.c:93
+#: help.c:78
 #, c-format
 msgid "  -f, --file=FILENAME      execute commands from file, then exit\n"
 msgstr "  -f, --file=文件名      从文件中执行命令然后退出\n"
 
 # help.c:96
-#: help.c:94
+#: help.c:79
 #, c-format
 msgid "  -l, --list               list available databases, then exit\n"
 msgstr "  -l, --list             列出所有可用的数据库,然后退出\n"
 
 # help.c:97
-#: help.c:95
+#: help.c:80
 #, c-format
 msgid ""
 "  -v, --set=, --variable=NAME=VALUE\n"
@@ -2055,22 +2137,19 @@ msgstr ""
 "  -v, --set=, --variable=名称=值\n"
 "                           为psql变量(名称)设定值\n"
 
-#: help.c:97
+#: help.c:82
 #, c-format
 msgid "  -V, --version            output version information, then exit\n"
 msgstr "  -V, --version            输出版本信息, 然后退出\n"
 
 # help.c:98
-#: help.c:98
+#: help.c:83
 #, c-format
 msgid "  -X, --no-psqlrc          do not read startup file (~/.psqlrc)\n"
 msgstr "  -X, --no-psqlrc         不读取启动文档(~/.psqlrc)\n"
 
-#: help.c:99
+#: help.c:84
 #, c-format
-#| msgid ""
-#| "  -1 (\"one\"), --single-transaction\n"
-#| "                           execute command file as a single transaction\n"
 msgid ""
 "  -1 (\"one\"), --single-transaction\n"
 "                           execute as a single transaction (if non-"
@@ -2079,13 +2158,13 @@ msgstr ""
 "  -1 (\"one\"), --single-transaction\n"
 "                          作为一个单一事务来执行命令文件(如果是非交互型的)\n"
 
-#: help.c:101
+#: help.c:86
 #, c-format
 msgid "  -?, --help               show this help, then exit\n"
 msgstr "  -?, --help               显示此帮助, 然后退出\n"
 
 # help.c:102
-#: help.c:103
+#: help.c:88
 #, c-format
 msgid ""
 "\n"
@@ -2095,58 +2174,58 @@ msgstr ""
 "输入和输出选项:\n"
 
 # help.c:103
-#: help.c:104
+#: help.c:89
 #, c-format
 msgid "  -a, --echo-all           echo all input from script\n"
 msgstr "  -a, --echo-all          显示所有来自于脚本的输入\n"
 
 # help.c:104
-#: help.c:105
+#: help.c:90
 #, c-format
 msgid "  -e, --echo-queries       echo commands sent to server\n"
 msgstr "  -e, --echo-queries      显示发送给服务器的命令\n"
 
 # help.c:105
-#: help.c:106
+#: help.c:91
 #, c-format
 msgid ""
 "  -E, --echo-hidden        display queries that internal commands generate\n"
 msgstr " -E, --echo-hidden        显示内部命令产生的查询\n"
 
 # help.c:107
-#: help.c:107
+#: help.c:92
 #, c-format
 msgid "  -L, --log-file=FILENAME  send session log to file\n"
 msgstr "  -L, --log-file=文件名  将会话日志写入文件\n"
 
 # help.c:108
-#: help.c:108
+#: help.c:93
 #, c-format
 msgid ""
 "  -n, --no-readline        disable enhanced command line editing (readline)\n"
 msgstr "  -n, --no-readline       禁用增强命令行编辑功能(readline)\n"
 
 # help.c:107
-#: help.c:109
+#: help.c:94
 #, c-format
 msgid "  -o, --output=FILENAME    send query results to file (or |pipe)\n"
 msgstr "  -o, --output=FILENAME 将查询结果写入文件(或 |管道)\n"
 
 # help.c:106
-#: help.c:110
+#: help.c:95
 #, c-format
 msgid ""
 "  -q, --quiet              run quietly (no messages, only query output)\n"
 msgstr "  -q, --quiet             以沉默模式运行(不显示消息,只有查询结果)\n"
 
 # help.c:109
-#: help.c:111
+#: help.c:96
 #, c-format
 msgid "  -s, --single-step        single-step mode (confirm each query)\n"
 msgstr "  -s, --single-step       单步模式 (确认每个查询)\n"
 
 # help.c:110
-#: help.c:112
+#: help.c:97
 #, c-format
 msgid ""
 "  -S, --single-line        single-line mode (end of line terminates SQL "
@@ -2154,7 +2233,7 @@ msgid ""
 msgstr "  -S, --single-line        单行模式 (一行就是一条 SQL 命令)\n"
 
 # help.c:112
-#: help.c:114
+#: help.c:99
 #, c-format
 msgid ""
 "\n"
@@ -2164,29 +2243,33 @@ msgstr ""
 "输出格式选项 :\n"
 
 # help.c:113
-#: help.c:115
+#: help.c:100
 #, c-format
 msgid "  -A, --no-align           unaligned table output mode\n"
 msgstr " -A, --no-align           使用非对齐表格输出模式\n"
 
 # help.c:119
-#: help.c:116
+#: help.c:101
 #, c-format
+#| msgid ""
+#| "  -F, --field-separator=STRING\n"
+#| "                           set field separator (default: \"%s\")\n"
 msgid ""
 "  -F, --field-separator=STRING\n"
-"                           set field separator (default: \"%s\")\n"
+"                           field separator for unaligned output (default: "
+"\"%s\")\n"
 msgstr ""
-"  -F, --field-separator=字符串\n"
-"                      设字段分隔符(缺省:\"%s\")\n"
+"  -F, --field-separator=STRING\n"
+"             为字段设置分隔符,用于不整齐的输出(缺省:\"%s\")\n"
 
 # help.c:114
-#: help.c:119
+#: help.c:104
 #, c-format
 msgid "  -H, --html               HTML table output mode\n"
 msgstr "  -H, --html             HTML 表格输出模式\n"
 
 # help.c:118
-#: help.c:120
+#: help.c:105
 #, c-format
 msgid ""
 "  -P, --pset=VAR[=ARG]     set printing option VAR to ARG (see \\pset "
@@ -2195,23 +2278,27 @@ msgstr ""
 "  -P, --pset=变量[=参数]    设置将变量打印到参数的选项(查阅 \\pset 命令)\n"
 
 # help.c:121
-#: help.c:121
+#: help.c:106
 #, c-format
+#| msgid ""
+#| "  -R, --record-separator=STRING\n"
+#| "                           set record separator (default: newline)\n"
 msgid ""
 "  -R, --record-separator=STRING\n"
-"                           set record separator (default: newline)\n"
+"                           record separator for unaligned output (default: "
+"newline)\n"
 msgstr ""
-"  -R, --record-separator=字符串\n"
-"                        设定记录分隔符(缺省:换行符号)\n"
+"  -R, --record-separator=STRING\n"
+"             为不整齐的输出设置字录的分隔符(缺省:换行符号)\n"
 
 # help.c:115
-#: help.c:123
+#: help.c:108
 #, c-format
 msgid "  -t, --tuples-only        print rows only\n"
 msgstr "  -t, --tuples-only      只打印记录i\n"
 
 # help.c:116
-#: help.c:124
+#: help.c:109
 #, c-format
 msgid ""
 "  -T, --table-attr=TEXT    set HTML table tag attributes (e.g., width, "
@@ -2219,32 +2306,40 @@ msgid ""
 msgstr "  -T, --table-attr=文本   设定 HTML 表格标记属性(例如,宽度,边界)\n"
 
 # help.c:117
-#: help.c:125
+#: help.c:110
 #, c-format
 msgid "  -x, --expanded           turn on expanded table output\n"
 msgstr "  -x, --expanded           打开扩展表格输出\n"
 
 # help.c:119
-#: help.c:126
+#: help.c:111
 #, c-format
+#| msgid ""
+#| "  -z, --field-separator-zero\n"
+#| "                           set field separator to zero byte\n"
 msgid ""
 "  -z, --field-separator-zero\n"
-"                           set field separator to zero byte\n"
+"                           set field separator for unaligned output to zero "
+"byte\n"
 msgstr ""
 "  -z, --field-separator-zero\n"
-"                           设置字段分隔符为字节0\n"
+"                           为不整齐的输出设置字段分隔符为字节0\n"
 
 # help.c:121
-#: help.c:128
+#: help.c:113
 #, c-format
+#| msgid ""
+#| "  -0, --record-separator-zero\n"
+#| "                           set record separator to zero byte\n"
 msgid ""
 "  -0, --record-separator-zero\n"
-"                           set record separator to zero byte\n"
+"                           set record separator for unaligned output to zero "
+"byte\n"
 msgstr ""
 "  -0, --record-separator-zero\n"
-"                           设置记录分隔符为字节0\n"
+"                           为不整齐的输出设置记录分隔符为字节0\n"
 
-#: help.c:131
+#: help.c:116
 #, c-format
 msgid ""
 "\n"
@@ -2254,7 +2349,7 @@ msgstr ""
 "联接选项:\n"
 
 # help.c:126
-#: help.c:134
+#: help.c:119
 #, c-format
 msgid ""
 "  -h, --host=HOSTNAME      database server host or socket directory "
@@ -2263,28 +2358,28 @@ msgstr ""
 "  -h, --host=主机名        数据库服务器主机或socket目录(缺省:\"%s\")\n"
 
 # help.c:127
-#: help.c:135
+#: help.c:120
 msgid "local socket"
 msgstr "本地接口"
 
 # help.c:130
-#: help.c:138
+#: help.c:123
 #, c-format
 msgid "  -p, --port=PORT          database server port (default: \"%s\")\n"
 msgstr "  -p, --port=端口        数据库服务器的端口(缺省:\"%s\")\n"
 
 # help.c:136
-#: help.c:144
+#: help.c:129
 #, c-format
 msgid "  -U, --username=USERNAME  database user name (default: \"%s\")\n"
 msgstr "  -U, --username=用户名    指定数据库用户名(缺省:\"%s\")\n"
 
-#: help.c:145
+#: help.c:130
 #, c-format
 msgid "  -w, --no-password        never prompt for password\n"
 msgstr "  -w, --no-password       永远不提示输入口令\n"
 
-#: help.c:146
+#: help.c:131
 #, c-format
 msgid ""
 "  -W, --password           force password prompt (should happen "
@@ -2292,7 +2387,7 @@ msgid ""
 msgstr "  -W, --password           强制口令提示 (自动)\n"
 
 # help.c:140
-#: help.c:148
+#: help.c:133
 #, c-format
 msgid ""
 "\n"
@@ -2307,43 +2402,40 @@ msgstr ""
 "或者参考PostgreSQL文档中的psql章节.\n"
 "\n"
 
-#: help.c:151
+#: help.c:136
 #, c-format
 msgid "Report bugs to <pgsql-bugs@postgresql.org>.\n"
 msgstr "臭虫报告至 <pgsql-bugs@postgresql.org>.\n"
 
 # help.c:174
-#: help.c:172
+#: help.c:157
 #, c-format
 msgid "General\n"
 msgstr "一般性\n"
 
 # help.c:179
-#: help.c:173
+#: help.c:158
 #, c-format
 msgid ""
 "  \\copyright             show PostgreSQL usage and distribution terms\n"
 msgstr "  \\copyright            显示PostgreSQL的使用和发行许可条款\n"
 
 # help.c:194
-#: help.c:174
+#: help.c:159
 #, c-format
 msgid ""
 "  \\g [FILE] or ;         execute query (and send results to file or |pipe)\n"
 msgstr "  \\g [文件] or;     执行查询 (并把结果写入文件或 |管道)\n"
 
 # help.c:194
-#: help.c:175
+#: help.c:160
 #, c-format
-#| msgid ""
-#| "  \\g [FILE] or ;         execute query (and send results to file or |"
-#| "pipe)\n"
 msgid ""
 "  \\gset [PREFIX]         execute query and store results in psql variables\n"
 msgstr "  \\gset [PREFIX]     执行查询并把结果存到psql变量中\n"
 
 # help.c:182
-#: help.c:176
+#: help.c:161
 #, c-format
 msgid ""
 "  \\h [NAME]              help on syntax of SQL commands, * for all "
@@ -2351,24 +2443,24 @@ msgid ""
 msgstr "  \\h [名称]          SQL命令语法上的说明,用*显示全部命令的语法说明\n"
 
 # help.c:183
-#: help.c:177
+#: help.c:162
 #, c-format
 msgid "  \\q                     quit psql\n"
 msgstr "  \\q             退出 psql\n"
 
-#: help.c:178
+#: help.c:163
 #, c-format
 msgid "  \\watch [SEC]           execute query every SEC seconds\n"
 msgstr "  \\watch [SEC]          每隔SEC秒执行一次查询\n"
 
 # help.c:192
-#: help.c:181
+#: help.c:166
 #, c-format
 msgid "Query Buffer\n"
 msgstr "查询缓存区\n"
 
 # help.c:193
-#: help.c:182
+#: help.c:167
 #, c-format
 msgid ""
 "  \\e [FILE] [LINE]       edit the query buffer (or file) with external "
@@ -2376,44 +2468,44 @@ msgid ""
 msgstr "  \\e [FILE] [LINE]        使用外部编辑器编辑查询缓存区(或文件)\n"
 
 # help.c:193
-#: help.c:183
+#: help.c:168
 #, c-format
 msgid ""
 "  \\ef [FUNCNAME [LINE]]  edit function definition with external editor\n"
 msgstr "  \\ef [FUNCNAME [LINE]]   使用外部编辑器编辑函数定义\n"
 
 # help.c:195
-#: help.c:184
+#: help.c:169
 #, c-format
 msgid "  \\p                     show the contents of the query buffer\n"
 msgstr "  \\p                    显示查询缓存区的内容\n"
 
 # help.c:196
-#: help.c:185
+#: help.c:170
 #, c-format
 msgid "  \\r                     reset (clear) the query buffer\n"
 msgstr "  \\r                    重置(清除)查询缓存区\n"
 
 # help.c:198
-#: help.c:187
+#: help.c:172
 #, c-format
 msgid "  \\s [FILE]              display history or save it to file\n"
 msgstr "  \\s [文件]        显示历史记录或将历史记录保存在文件中\n"
 
 # help.c:200
-#: help.c:189
+#: help.c:174
 #, c-format
 msgid "  \\w FILE                write query buffer to file\n"
 msgstr "  \\w 文件          将查询缓存区的内容写入文件\n"
 
 # help.c:203
-#: help.c:192
+#: help.c:177
 #, c-format
 msgid "Input/Output\n"
 msgstr "输入/输出\n"
 
 # help.c:251
-#: help.c:193
+#: help.c:178
 #, c-format
 msgid ""
 "  \\copy ...              perform SQL COPY with data stream to the client "
@@ -2421,19 +2513,19 @@ msgid ""
 msgstr "  \\copy ...             执行 SQL COPY,将数据流发送到客户端主机\n"
 
 # help.c:204
-#: help.c:194
+#: help.c:179
 #, c-format
 msgid "  \\echo [STRING]         write string to standard output\n"
 msgstr "  \\echo [字符串]       将字符串写到标准输出\n"
 
 # help.c:205
-#: help.c:195
+#: help.c:180
 #, c-format
 msgid "  \\i FILE                execute commands from file\n"
 msgstr "  \\i 文件          从文件中执行命令\n"
 
 # help.c:206
-#: help.c:196
+#: help.c:181
 #, c-format
 msgid ""
 "  \\ir FILE               as \\i, but relative to location of current "
@@ -2441,289 +2533,286 @@ msgid ""
 msgstr "  \\ir FILE               与 \\i类似, 但是相对于当前脚本的位置\n"
 
 # help.c:206
-#: help.c:197
+#: help.c:182
 #, c-format
 msgid "  \\o [FILE]              send all query results to file or |pipe\n"
 msgstr "  \\o [文件]        将全部查询结果写入文件或 |管道\n"
 
 # help.c:207
-#: help.c:198
+#: help.c:183
 #, c-format
 msgid ""
 "  \\qecho [STRING]        write string to query output stream (see \\o)\n"
 msgstr "  \\qecho [字符串]      将字符串写到查询输出串流(参考 \\o)\n"
 
 # help.c:211
-#: help.c:201
+#: help.c:186
 #, c-format
 msgid "Informational\n"
 msgstr "资讯性\n"
 
-#: help.c:202
+#: help.c:187
 #, c-format
 msgid "  (options: S = show system objects, + = additional detail)\n"
 msgstr "  (选项: S = 显示系统对象, + = 其余的详细信息)\n"
 
 # help.c:226
-#: help.c:203
+#: help.c:188
 #, c-format
 msgid "  \\d[S+]                 list tables, views, and sequences\n"
 msgstr "  \\d[S+]          列出表,视图和序列\n"
 
 # help.c:212
-#: help.c:204
+#: help.c:189
 #, c-format
 msgid "  \\d[S+]  NAME           describe table, view, sequence, or index\n"
 msgstr "  \\d[S+]  名称      描述表,视图,序列,或索引\n"
 
 # help.c:215
-#: help.c:205
+#: help.c:190
 #, c-format
 msgid "  \\da[S]  [PATTERN]      list aggregates\n"
 msgstr "  \\da[S]  [模式]    列出聚合函数\n"
 
 # help.c:228
-#: help.c:206
+#: help.c:191
 #, c-format
 msgid "  \\db[+]  [PATTERN]      list tablespaces\n"
 msgstr "  \\db[+]  [模式]     列出表空间\n"
 
 # help.c:217
-#: help.c:207
+#: help.c:192
 #, c-format
 msgid "  \\dc[S+] [PATTERN]      list conversions\n"
 msgstr "  \\dc[S+] [PATTERN]      列表转换\n"
 
 # help.c:218
-#: help.c:208
+#: help.c:193
 #, c-format
 msgid "  \\dC[+]  [PATTERN]      list casts\n"
 msgstr "  \\dC[+]  [PATTERN]      列出类型强制转换\n"
 
 # help.c:219
-#: help.c:209
+#: help.c:194
 #, c-format
 msgid ""
 "  \\dd[S]  [PATTERN]      show object descriptions not displayed elsewhere\n"
 msgstr "  \\dd[S]  [PATTERN]      显示没有在别处显示的对象描述\n"
 
 # help.c:218
-#: help.c:210
+#: help.c:195
 #, c-format
 msgid "  \\ddp    [PATTERN]      list default privileges\n"
 msgstr "  \\ddp     [模式]    列出缺省权限\n"
 
 # help.c:220
-#: help.c:211
+#: help.c:196
 #, c-format
 msgid "  \\dD[S+] [PATTERN]      list domains\n"
 msgstr "  \\dD[S+] [PATTERN]      列出共同值域\n"
 
 # help.c:228
-#: help.c:212
+#: help.c:197
 #, c-format
 msgid "  \\det[+] [PATTERN]      list foreign tables\n"
 msgstr "  \\det[+] [PATTERN]      列出引用表\n"
 
 # help.c:228
-#: help.c:213
+#: help.c:198
 #, c-format
 msgid "  \\des[+] [PATTERN]      list foreign servers\n"
 msgstr "  \\des[+] [模式]    列出外部服务器\n"
 
 # help.c:228
-#: help.c:214
+#: help.c:199
 #, c-format
 msgid "  \\deu[+] [PATTERN]      list user mappings\n"
 msgstr "  \\deu[+] [模式]     列出用户映射\n"
 
 # help.c:222
-#: help.c:215
+#: help.c:200
 #, c-format
 msgid "  \\dew[+] [PATTERN]      list foreign-data wrappers\n"
 msgstr " \\dew[+] [模式]       列出外部数据封装器\n"
 
 # help.c:215
-#: help.c:216
+#: help.c:201
 #, c-format
 msgid ""
 "  \\df[antw][S+] [PATRN]  list [only agg/normal/trigger/window] functions\n"
 msgstr "   \\df[antw][S+] [模式]    列出[只包括 聚合/常规/触发器/窗口]函数 \n"
 
 # help.c:221
-#: help.c:217
+#: help.c:202
 #, c-format
 msgid "  \\dF[+]  [PATTERN]      list text search configurations\n"
 msgstr "  \\dF[+]  [模式]   列出文本搜索配置\n"
 
 # help.c:228
-#: help.c:218
+#: help.c:203
 #, c-format
 msgid "  \\dFd[+] [PATTERN]      list text search dictionaries\n"
 msgstr "  \\dFd[+] [模式]     列出文本搜寻字典\n"
 
 # help.c:228
-#: help.c:219
+#: help.c:204
 #, c-format
 msgid "  \\dFp[+] [PATTERN]      list text search parsers\n"
 msgstr " \\dFp[+] [模式]     列出文本搜索解析器\n"
 
 # help.c:228
-#: help.c:220
+#: help.c:205
 #, c-format
 msgid "  \\dFt[+] [PATTERN]      list text search templates\n"
 msgstr "  \\dFt[+] [模式]   列出文本搜索模版\n"
 
 # help.c:222
-#: help.c:221
+#: help.c:206
 #, c-format
 msgid "  \\dg[+]  [PATTERN]      list roles\n"
 msgstr "  \\dg[+]  [PATTERN]      列出角色\n"
 
 # help.c:220
-#: help.c:222
+#: help.c:207
 #, c-format
 msgid "  \\di[S+] [PATTERN]      list indexes\n"
 msgstr " \\di[S+] [模式]  列出索引\n"
 
 # help.c:225
-#: help.c:223
+#: help.c:208
 #, c-format
 msgid "  \\dl                    list large objects, same as \\lo_list\n"
 msgstr "  \\dl                   列出大对象, 功能与\\lo_list相同\n"
 
 # help.c:228
-#: help.c:224
+#: help.c:209
 #, c-format
 msgid "  \\dL[S+] [PATTERN]      list procedural languages\n"
 msgstr "  \\dL[S+] [PATTERN]      列出所有过程语言\n"
 
 # help.c:228
-#: help.c:225
+#: help.c:210
 #, c-format
-#| msgid "  \\dv[S+] [PATTERN]      list views\n"
 msgid "  \\dm[S+] [PATTERN]      list materialized views\n"
 msgstr "  \\dm[S+] [PATTERN]      列出所有物化视图\n"
 
 # help.c:228
-#: help.c:226
+#: help.c:211
 #, c-format
 msgid "  \\dn[S+] [PATTERN]      list schemas\n"
 msgstr "  \\dn[S+] [PATTERN]     列出所有模式\n"
 
 # help.c:224
-#: help.c:227
+#: help.c:212
 #, c-format
 msgid "  \\do[S]  [PATTERN]      list operators\n"
 msgstr "  \\do[S]  [模式]   列出运算符\n"
 
 # help.c:220
-#: help.c:228
+#: help.c:213
 #, c-format
 msgid "  \\dO[S+] [PATTERN]      list collations\n"
 msgstr "  \\dO[S+] [PATTERN]      列出所有校对规则\n"
 
 # help.c:226
-#: help.c:229
+#: help.c:214
 #, c-format
 msgid ""
 "  \\dp     [PATTERN]      list table, view, and sequence access privileges\n"
 msgstr "  \\dp     [模式]     列出表,视图和序列的访问权限\n"
 
-#: help.c:230
+#: help.c:215
 #, c-format
 msgid "  \\drds [PATRN1 [PATRN2]] list per-database role settings\n"
 msgstr "  \\drds [模式1 [模式2]] 列出每个数据库的角色设置\n"
 
 # help.c:228
-#: help.c:231
+#: help.c:216
 #, c-format
 msgid "  \\ds[S+] [PATTERN]      list sequences\n"
 msgstr "  \\ds[S+] [模式]    列出序列\n"
 
 # help.c:228
-#: help.c:232
+#: help.c:217
 #, c-format
 msgid "  \\dt[S+] [PATTERN]      list tables\n"
 msgstr "  \\dt[S+] [模式]     列出表\n"
 
 # help.c:220
-#: help.c:233
+#: help.c:218
 #, c-format
 msgid "  \\dT[S+] [PATTERN]      list data types\n"
 msgstr "  \\dT[S+] [模式]  列出数据类型\n"
 
 # help.c:228
-#: help.c:234
+#: help.c:219
 #, c-format
 msgid "  \\du[+]  [PATTERN]      list roles\n"
 msgstr "  \\du[+]  [PATTERN]      列出角色\n"
 
 # help.c:228
-#: help.c:235
+#: help.c:220
 #, c-format
 msgid "  \\dv[S+] [PATTERN]      list views\n"
 msgstr "  \\dv[S+] [模式]   列出视图\n"
 
 # help.c:228
-#: help.c:236
+#: help.c:221
 #, c-format
 msgid "  \\dE[S+] [PATTERN]      list foreign tables\n"
 msgstr "  \\dE[S+] [PATTERN]      列出引用表\n"
 
 # help.c:217
-#: help.c:237
+#: help.c:222
 #, c-format
 msgid "  \\dx[+]  [PATTERN]      list extensions\n"
 msgstr "  \\dx[+]  [PATTERN]      列出扩展\n"
 
 # help.c:218
-#: help.c:238
+#: help.c:223
 #, c-format
-#| msgid "  \\ddp    [PATTERN]      list default privileges\n"
 msgid "  \\dy     [PATTERN]      list event triggers\n"
 msgstr "  \\dy     [PATTERN]      列出所有事件触发器\n"
 
 # help.c:228
-#: help.c:239
+#: help.c:224
 #, c-format
-#| msgid "  \\dt[S+] [PATTERN]      list tables\n"
 msgid "  \\l[+]   [PATTERN]      list databases\n"
 msgstr "  \\l[+]   [PATTERN]      列出所有数据库\n"
 
 # help.c:193
-#: help.c:240
+#: help.c:225
 #, c-format
 msgid "  \\sf[+] FUNCNAME        show a function's definition\n"
 msgstr "  \\sf[+] FUNCNAME        显示函数定义\n"
 
 # help.c:218
-#: help.c:241
+#: help.c:226
 #, c-format
 msgid "  \\z      [PATTERN]      same as \\dp\n"
 msgstr "  \\z      [模式]    和\\dp的功能相同\n"
 
 # help.c:233
-#: help.c:244
+#: help.c:229
 #, c-format
 msgid "Formatting\n"
 msgstr "格式化\n"
 
 # help.c:234
-#: help.c:245
+#: help.c:230
 #, c-format
 msgid ""
 "  \\a                     toggle between unaligned and aligned output mode\n"
 msgstr "  \\a                  在非对齐模式和对齐模式之间切换\n"
 
 # help.c:235
-#: help.c:246
+#: help.c:231
 #, c-format
 msgid "  \\C [STRING]            set table title, or unset if none\n"
 msgstr "  \\C [字符串]        设置表的标题,或如果没有的标题就取消\n"
 
 # help.c:236
-#: help.c:247
+#: help.c:232
 #, c-format
 msgid ""
 "  \\f [STRING]            show or set field separator for unaligned query "
@@ -2731,16 +2820,22 @@ msgid ""
 msgstr "  \\f [字符串]         显示或设定非对齐模式查询输出的字段分隔符\n"
 
 # help.c:237
-#: help.c:248
+#: help.c:233
 #, c-format
 msgid "  \\H                     toggle HTML output mode (currently %s)\n"
 msgstr "  \\H                    切换HTML输出模式 (目前是 %s)\n"
 
 # help.c:239
-#: help.c:250
+#: help.c:235
 #, c-format
+#| msgid ""
+#| "  \\pset NAME [VALUE]     set table output option\n"
+#| "                         (NAME := {format|border|expanded|fieldsep|"
+#| "fieldsep_zero|footer|null|\n"
+#| "                         numericlocale|recordsep|recordsep_zero|"
+#| "tuples_only|title|tableattr|pager})\n"
 msgid ""
-"  \\pset NAME [VALUE]     set table output option\n"
+"  \\pset [NAME [VALUE]]   set table output option\n"
 "                         (NAME := {format|border|expanded|fieldsep|"
 "fieldsep_zero|footer|null|\n"
 "                         numericlocale|recordsep|recordsep_zero|tuples_only|"
@@ -2753,13 +2848,13 @@ msgstr ""
 "title|tableattr|pager})\n"
 
 # help.c:243
-#: help.c:253
+#: help.c:238
 #, c-format
 msgid "  \\t [on|off]            show only rows (currently %s)\n"
 msgstr "  \\t [开|关]       只显示记录 (目前是 %s)\n"
 
 # help.c:245
-#: help.c:255
+#: help.c:240
 #, c-format
 msgid ""
 "  \\T [STRING]            set HTML <table> tag attributes, or unset if none\n"
@@ -2767,19 +2862,19 @@ msgstr ""
 "  \\T [字符串]         设置HTML <表格>标签属性, 或者如果没有的话取消设置\n"
 
 # help.c:246
-#: help.c:256
+#: help.c:241
 #, c-format
 msgid "  \\x [on|off|auto]       toggle expanded output (currently %s)\n"
 msgstr "  \\x [on|off|auto]       切换扩展输出模式(目前是 %s)\n"
 
 # help.c:123
-#: help.c:260
+#: help.c:245
 #, c-format
 msgid "Connection\n"
 msgstr "连接\n"
 
 # help.c:175
-#: help.c:262
+#: help.c:247
 #, c-format
 msgid ""
 "  \\c[onnect] [DBNAME|- USER|- HOST|- PORT|-]\n"
@@ -2789,11 +2884,8 @@ msgstr ""
 "                 连接到新的数据库(目前是 \"%s\")\n"
 
 # help.c:175
-#: help.c:266
+#: help.c:251
 #, c-format
-#| msgid ""
-#| "  \\c[onnect] [DBNAME|- USER|- HOST|- PORT|-]\n"
-#| "                         connect to new database (currently \"%s\")\n"
 msgid ""
 "  \\c[onnect] [DBNAME|- USER|- HOST|- PORT|-]\n"
 "                         connect to new database (currently no connection)\n"
@@ -2802,66 +2894,66 @@ msgstr ""
 "                 连接到新的数据库(当前没有连接)\n"
 
 # help.c:180
-#: help.c:268
+#: help.c:253
 #, c-format
 msgid "  \\encoding [ENCODING]   show or set client encoding\n"
 msgstr "  \\encoding [编码名称] 显示或设定客户端编码\n"
 
-#: help.c:269
+#: help.c:254
 #, c-format
 msgid "  \\password [USERNAME]   securely change the password for a user\n"
 msgstr "  \\password [USERNAME]  安全地为用户改变口令\n"
 
-#: help.c:270
+#: help.c:255
 #, c-format
 msgid ""
 "  \\conninfo              display information about current connection\n"
 msgstr "  \\conninfo              显示当前连接的相关信息\n"
 
-#: help.c:273
+#: help.c:258
 #, c-format
 msgid "Operating System\n"
 msgstr "操作系统\n"
 
 # help.c:178
-#: help.c:274
+#: help.c:259
 #, c-format
 msgid "  \\cd [DIR]              change the current working directory\n"
 msgstr "  \\cd [目录]     改变目前的工作目录\n"
 
 # help.c:188
-#: help.c:275
+#: help.c:260
 #, c-format
 msgid "  \\setenv NAME [VALUE]   set or unset environment variable\n"
 msgstr "  \\setenv NAME [VALUE]   设置或清空环境变量\n"
 
 # help.c:186
-#: help.c:276
+#: help.c:261
 #, c-format
 msgid "  \\timing [on|off]       toggle timing of commands (currently %s)\n"
 msgstr " \\timing [开|关]       切换命令计时开关 (目前是 %s)\n"
 
 # help.c:189
-#: help.c:278
+#: help.c:263
 #, c-format
 msgid ""
 "  \\! [COMMAND]           execute command in shell or start interactive "
 "shell\n"
 msgstr "  \\! [命令]      在 shell中执行命令或启动一个交互式shell\n"
 
-#: help.c:281
+#: help.c:266
 #, c-format
 msgid "Variables\n"
 msgstr "变量\n"
 
 # help.c:188
-#: help.c:282
+#: help.c:267
 #, c-format
 msgid "  \\prompt [TEXT] NAME    prompt user to set internal variable\n"
 msgstr "  \\prompt [文本] 名称 提示用户设定内部变量\n"
 
 # help.c:184
-#: help.c:283
+#: help.c:268
 #, c-format
 msgid ""
 "  \\set [NAME [VALUE]]    set internal variable, or list all if no "
@@ -2869,19 +2961,19 @@ msgid ""
 msgstr "  \\set [名称 [值数]] 设定内部变量,若无参数则列出全部变量\n"
 
 # help.c:188
-#: help.c:284
+#: help.c:269
 #, c-format
 msgid "  \\unset NAME            unset (delete) internal variable\n"
 msgstr "  \\unset 名称    清空(删除)内部变量\n"
 
 # large_obj.c:264
-#: help.c:287
+#: help.c:272
 #, c-format
 msgid "Large Objects\n"
 msgstr "大对象\n"
 
 # help.c:252
-#: help.c:288
+#: help.c:273
 #, c-format
 msgid ""
 "  \\lo_export LOBOID FILE\n"
@@ -2895,12 +2987,12 @@ msgstr ""
 "  \\lo_unlink LOBOID   大对象运算\n"
 
 # help.c:285
-#: help.c:335
+#: help.c:320
 msgid "Available help:\n"
 msgstr "可用的说明:\n"
 
 # help.c:344
-#: help.c:419
+#: help.c:404
 #, c-format
 msgid ""
 "Command:     %s\n"
@@ -2916,7 +3008,7 @@ msgstr ""
 "\n"
 
 # help.c:357
-#: help.c:435
+#: help.c:420
 #, c-format
 msgid ""
 "No help available for \"%s\".\n"
@@ -2926,19 +3018,19 @@ msgstr ""
 "请尝试用不带参数的 \\h 来看一下是否有可使用的帮助信息.\n"
 
 # input.c:210
-#: input.c:193
+#: input.c:194
 #, c-format
 msgid "could not read from input file: %s\n"
 msgstr "无法从输入档案读取:%s\n"
 
 # input.c:210
-#: input.c:407
+#: input.c:451 input.c:490
 #, c-format
 msgid "could not save history to file \"%s\": %s\n"
 msgstr "无法将历史记录储存到 \"%s\":%s\n"
 
 # input.c:213
-#: input.c:412
+#: input.c:510
 #, c-format
 msgid "history is not supported by this installation\n"
 msgstr "这个安装不支援命令记录\n"
@@ -3004,47 +3096,47 @@ msgid_plural "(%lu rows)"
 msgstr[0] "(%lu 行记录)"
 
 # print.c:428
-#: print.c:1175
+#: print.c:1174
 #, c-format
 msgid "(No rows)\n"
 msgstr "(无资料列)\n"
 
-#: print.c:2239
+#: print.c:2238
 #, c-format
 msgid "Interrupted\n"
 msgstr "已中断\n"
 
-#: print.c:2305
+#: print.c:2304
 #, c-format
 msgid "Cannot add header to table content: column count of %d exceeded.\n"
 msgstr "无法对表的内容增加标题:已经超过%d列的数量.\n"
 
-#: print.c:2345
+#: print.c:2344
 #, c-format
 msgid "Cannot add cell to table content: total cell count of %d exceeded.\n"
 msgstr "无法对表的内容添加单元: 总共有%d个单元超过.\n"
 
-#: print.c:2571
+#: print.c:2570
 #, c-format
 msgid "invalid output format (internal error): %d"
 msgstr "无效的输出格式 (内部错误): %d"
 
-#: psqlscan.l:726
+#: psqlscan.l:727
 #, c-format
 msgid "skipping recursive expansion of variable \"%s\"\n"
 msgstr "跳过变量 \"%s\"的递归扩展\n"
 
-#: psqlscan.l:1601
+#: psqlscan.l:1604
 #, c-format
 msgid "unterminated quoted string\n"
 msgstr "未结束的引用字符串\n"
 
-#: psqlscan.l:1701
+#: psqlscan.l:1704
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: 内存溢出\n"
 
-#: psqlscan.l:1930
+#: psqlscan.l:1933
 #, c-format
 msgid "can't escape without active connection\n"
 msgstr "没有数据库连接时无法escape\n"
@@ -3061,404 +3153,438 @@ msgstr "没有数据库连接时无法escape\n"
 # describe.c:1586
 # describe.c:1634
 # describe.c:1727
-#: sql_help.c:26 sql_help.c:29 sql_help.c:32 sql_help.c:44 sql_help.c:46
-#: sql_help.c:48 sql_help.c:59 sql_help.c:61 sql_help.c:63 sql_help.c:87
-#: sql_help.c:91 sql_help.c:93 sql_help.c:95 sql_help.c:97 sql_help.c:100
-#: sql_help.c:102 sql_help.c:104 sql_help.c:197 sql_help.c:199 sql_help.c:200
-#: sql_help.c:202 sql_help.c:204 sql_help.c:207 sql_help.c:209 sql_help.c:211
-#: sql_help.c:213 sql_help.c:225 sql_help.c:226 sql_help.c:227 sql_help.c:229
-#: sql_help.c:268 sql_help.c:270 sql_help.c:272 sql_help.c:274 sql_help.c:322
-#: sql_help.c:327 sql_help.c:329 sql_help.c:360 sql_help.c:362 sql_help.c:365
-#: sql_help.c:367 sql_help.c:420 sql_help.c:425 sql_help.c:430 sql_help.c:435
-#: sql_help.c:473 sql_help.c:475 sql_help.c:477 sql_help.c:480 sql_help.c:490
-#: sql_help.c:492 sql_help.c:530 sql_help.c:532 sql_help.c:535 sql_help.c:537
-#: sql_help.c:562 sql_help.c:566 sql_help.c:579 sql_help.c:582 sql_help.c:585
-#: sql_help.c:605 sql_help.c:617 sql_help.c:625 sql_help.c:628 sql_help.c:631
-#: sql_help.c:661 sql_help.c:667 sql_help.c:669 sql_help.c:673 sql_help.c:676
-#: sql_help.c:679 sql_help.c:688 sql_help.c:699 sql_help.c:701 sql_help.c:718
-#: sql_help.c:727 sql_help.c:729 sql_help.c:731 sql_help.c:743 sql_help.c:747
-#: sql_help.c:749 sql_help.c:810 sql_help.c:812 sql_help.c:815 sql_help.c:818
-#: sql_help.c:820 sql_help.c:878 sql_help.c:880 sql_help.c:882 sql_help.c:885
-#: sql_help.c:906 sql_help.c:909 sql_help.c:912 sql_help.c:915 sql_help.c:919
-#: sql_help.c:921 sql_help.c:923 sql_help.c:925 sql_help.c:939 sql_help.c:942
-#: sql_help.c:944 sql_help.c:946 sql_help.c:956 sql_help.c:958 sql_help.c:968
-#: sql_help.c:970 sql_help.c:979 sql_help.c:1000 sql_help.c:1002
-#: sql_help.c:1004 sql_help.c:1007 sql_help.c:1009 sql_help.c:1011
-#: sql_help.c:1049 sql_help.c:1055 sql_help.c:1057 sql_help.c:1060
-#: sql_help.c:1062 sql_help.c:1064 sql_help.c:1091 sql_help.c:1094
-#: sql_help.c:1096 sql_help.c:1098 sql_help.c:1100 sql_help.c:1102
-#: sql_help.c:1105 sql_help.c:1145 sql_help.c:1336 sql_help.c:1344
-#: sql_help.c:1388 sql_help.c:1392 sql_help.c:1402 sql_help.c:1420
-#: sql_help.c:1443 sql_help.c:1461 sql_help.c:1489 sql_help.c:1548
-#: sql_help.c:1590 sql_help.c:1612 sql_help.c:1632 sql_help.c:1633
-#: sql_help.c:1668 sql_help.c:1688 sql_help.c:1710 sql_help.c:1738
-#: sql_help.c:1759 sql_help.c:1794 sql_help.c:1975 sql_help.c:1988
-#: sql_help.c:2005 sql_help.c:2021 sql_help.c:2044 sql_help.c:2095
-#: sql_help.c:2099 sql_help.c:2101 sql_help.c:2107 sql_help.c:2125
-#: sql_help.c:2152 sql_help.c:2186 sql_help.c:2198 sql_help.c:2207
-#: sql_help.c:2251 sql_help.c:2269 sql_help.c:2277 sql_help.c:2285
-#: sql_help.c:2293 sql_help.c:2301 sql_help.c:2309 sql_help.c:2317
-#: sql_help.c:2325 sql_help.c:2334 sql_help.c:2345 sql_help.c:2353
-#: sql_help.c:2361 sql_help.c:2369 sql_help.c:2377 sql_help.c:2387
-#: sql_help.c:2396 sql_help.c:2405 sql_help.c:2413 sql_help.c:2421
-#: sql_help.c:2430 sql_help.c:2438 sql_help.c:2446 sql_help.c:2454
-#: sql_help.c:2462 sql_help.c:2470 sql_help.c:2478 sql_help.c:2486
-#: sql_help.c:2494 sql_help.c:2502 sql_help.c:2511 sql_help.c:2519
-#: sql_help.c:2536 sql_help.c:2551 sql_help.c:2757 sql_help.c:2808
-#: sql_help.c:2836 sql_help.c:2844 sql_help.c:3214 sql_help.c:3262
-#: sql_help.c:3370
+#: sql_help.c:32 sql_help.c:35 sql_help.c:38 sql_help.c:60 sql_help.c:62
+#: sql_help.c:64 sql_help.c:75 sql_help.c:77 sql_help.c:79 sql_help.c:103
+#: sql_help.c:107 sql_help.c:109 sql_help.c:111 sql_help.c:113 sql_help.c:116
+#: sql_help.c:118 sql_help.c:120 sql_help.c:213 sql_help.c:215 sql_help.c:216
+#: sql_help.c:218 sql_help.c:220 sql_help.c:223 sql_help.c:225 sql_help.c:227
+#: sql_help.c:229 sql_help.c:241 sql_help.c:242 sql_help.c:243 sql_help.c:245
+#: sql_help.c:290 sql_help.c:292 sql_help.c:294 sql_help.c:296 sql_help.c:354
+#: sql_help.c:359 sql_help.c:361 sql_help.c:396 sql_help.c:398 sql_help.c:401
+#: sql_help.c:403 sql_help.c:460 sql_help.c:465 sql_help.c:470 sql_help.c:475
+#: sql_help.c:515 sql_help.c:517 sql_help.c:519 sql_help.c:522 sql_help.c:524
+#: sql_help.c:535 sql_help.c:537 sql_help.c:577 sql_help.c:579 sql_help.c:582
+#: sql_help.c:584 sql_help.c:586 sql_help.c:612 sql_help.c:616 sql_help.c:629
+#: sql_help.c:632 sql_help.c:635 sql_help.c:655 sql_help.c:667 sql_help.c:675
+#: sql_help.c:678 sql_help.c:681 sql_help.c:711 sql_help.c:717 sql_help.c:719
+#: sql_help.c:723 sql_help.c:726 sql_help.c:729 sql_help.c:738 sql_help.c:749
+#: sql_help.c:751 sql_help.c:768 sql_help.c:777 sql_help.c:779 sql_help.c:781
+#: sql_help.c:793 sql_help.c:797 sql_help.c:799 sql_help.c:878 sql_help.c:880
+#: sql_help.c:883 sql_help.c:886 sql_help.c:888 sql_help.c:890 sql_help.c:951
+#: sql_help.c:953 sql_help.c:955 sql_help.c:958 sql_help.c:979 sql_help.c:982
+#: sql_help.c:985 sql_help.c:988 sql_help.c:992 sql_help.c:994 sql_help.c:996
+#: sql_help.c:998 sql_help.c:1012 sql_help.c:1015 sql_help.c:1017
+#: sql_help.c:1019 sql_help.c:1029 sql_help.c:1031 sql_help.c:1041
+#: sql_help.c:1043 sql_help.c:1052 sql_help.c:1073 sql_help.c:1075
+#: sql_help.c:1077 sql_help.c:1080 sql_help.c:1082 sql_help.c:1084
+#: sql_help.c:1122 sql_help.c:1128 sql_help.c:1130 sql_help.c:1133
+#: sql_help.c:1135 sql_help.c:1137 sql_help.c:1164 sql_help.c:1167
+#: sql_help.c:1169 sql_help.c:1171 sql_help.c:1173 sql_help.c:1175
+#: sql_help.c:1178 sql_help.c:1218 sql_help.c:1456 sql_help.c:1472
+#: sql_help.c:1485 sql_help.c:1536 sql_help.c:1540 sql_help.c:1550
+#: sql_help.c:1568 sql_help.c:1591 sql_help.c:1609 sql_help.c:1637
+#: sql_help.c:1696 sql_help.c:1738 sql_help.c:1760 sql_help.c:1780
+#: sql_help.c:1781 sql_help.c:1816 sql_help.c:1836 sql_help.c:1858
+#: sql_help.c:1886 sql_help.c:1911 sql_help.c:1947 sql_help.c:2133
+#: sql_help.c:2146 sql_help.c:2163 sql_help.c:2179 sql_help.c:2202
+#: sql_help.c:2253 sql_help.c:2257 sql_help.c:2259 sql_help.c:2265
+#: sql_help.c:2283 sql_help.c:2310 sql_help.c:2345 sql_help.c:2357
+#: sql_help.c:2366 sql_help.c:2416 sql_help.c:2444 sql_help.c:2452
+#: sql_help.c:2460 sql_help.c:2468 sql_help.c:2476 sql_help.c:2484
+#: sql_help.c:2492 sql_help.c:2500 sql_help.c:2509 sql_help.c:2520
+#: sql_help.c:2528 sql_help.c:2536 sql_help.c:2544 sql_help.c:2552
+#: sql_help.c:2562 sql_help.c:2571 sql_help.c:2580 sql_help.c:2588
+#: sql_help.c:2596 sql_help.c:2605 sql_help.c:2613 sql_help.c:2621
+#: sql_help.c:2629 sql_help.c:2637 sql_help.c:2645 sql_help.c:2653
+#: sql_help.c:2661 sql_help.c:2669 sql_help.c:2677 sql_help.c:2686
+#: sql_help.c:2694 sql_help.c:2711 sql_help.c:2726 sql_help.c:2932
+#: sql_help.c:2983 sql_help.c:3011 sql_help.c:3019 sql_help.c:3417
+#: sql_help.c:3465 sql_help.c:3585
 msgid "name"
 msgstr "名称"
 
-# describe.c:1689
-#: sql_help.c:27 sql_help.c:30 sql_help.c:33 sql_help.c:290 sql_help.c:423
-#: sql_help.c:428 sql_help.c:433 sql_help.c:438 sql_help.c:1218
-#: sql_help.c:1551 sql_help.c:2252 sql_help.c:2337 sql_help.c:3061
-msgid "argtype"
-msgstr "参数类型"
-
-#: sql_help.c:28 sql_help.c:45 sql_help.c:60 sql_help.c:92 sql_help.c:212
-#: sql_help.c:230 sql_help.c:330 sql_help.c:366 sql_help.c:429 sql_help.c:462
-#: sql_help.c:474 sql_help.c:491 sql_help.c:536 sql_help.c:581 sql_help.c:627
-#: sql_help.c:668 sql_help.c:690 sql_help.c:700 sql_help.c:730 sql_help.c:750
-#: sql_help.c:819 sql_help.c:879 sql_help.c:922 sql_help.c:943 sql_help.c:957
-#: sql_help.c:969 sql_help.c:981 sql_help.c:1008 sql_help.c:1056
-#: sql_help.c:1099
+#: sql_help.c:33 sql_help.c:36 sql_help.c:39 sql_help.c:300 sql_help.c:1279
+#: sql_help.c:2417 sql_help.c:3234
+#| msgid "aggregates cannot return sets"
+msgid "aggregate_signature"
+msgstr "aggregate_signature"
+
+#: sql_help.c:34 sql_help.c:61 sql_help.c:76 sql_help.c:108 sql_help.c:228
+#: sql_help.c:246 sql_help.c:362 sql_help.c:402 sql_help.c:469 sql_help.c:502
+#: sql_help.c:516 sql_help.c:536 sql_help.c:583 sql_help.c:631 sql_help.c:677
+#: sql_help.c:718 sql_help.c:740 sql_help.c:750 sql_help.c:780 sql_help.c:800
+#: sql_help.c:887 sql_help.c:952 sql_help.c:995 sql_help.c:1016
+#: sql_help.c:1030 sql_help.c:1042 sql_help.c:1054 sql_help.c:1081
+#: sql_help.c:1129 sql_help.c:1172
 msgid "new_name"
 msgstr "新的名称"
 
-#: sql_help.c:31 sql_help.c:47 sql_help.c:62 sql_help.c:94 sql_help.c:210
-#: sql_help.c:228 sql_help.c:328 sql_help.c:391 sql_help.c:434 sql_help.c:493
-#: sql_help.c:502 sql_help.c:552 sql_help.c:565 sql_help.c:584 sql_help.c:630
-#: sql_help.c:702 sql_help.c:728 sql_help.c:748 sql_help.c:863 sql_help.c:881
-#: sql_help.c:924 sql_help.c:945 sql_help.c:1003 sql_help.c:1097
+#: sql_help.c:37 sql_help.c:63 sql_help.c:78 sql_help.c:110 sql_help.c:226
+#: sql_help.c:244 sql_help.c:360 sql_help.c:431 sql_help.c:474 sql_help.c:538
+#: sql_help.c:547 sql_help.c:602 sql_help.c:615 sql_help.c:634 sql_help.c:680
+#: sql_help.c:752 sql_help.c:778 sql_help.c:798 sql_help.c:935 sql_help.c:954
+#: sql_help.c:997 sql_help.c:1018 sql_help.c:1076 sql_help.c:1170
 msgid "new_owner"
 msgstr "新的属主"
 
-#: sql_help.c:34 sql_help.c:49 sql_help.c:64 sql_help.c:214 sql_help.c:271
-#: sql_help.c:368 sql_help.c:439 sql_help.c:538 sql_help.c:569 sql_help.c:587
-#: sql_help.c:633 sql_help.c:732 sql_help.c:821 sql_help.c:926 sql_help.c:947
-#: sql_help.c:959 sql_help.c:971 sql_help.c:1010 sql_help.c:1101
+#: sql_help.c:40 sql_help.c:65 sql_help.c:80 sql_help.c:230 sql_help.c:293
+#: sql_help.c:404 sql_help.c:479 sql_help.c:585 sql_help.c:619 sql_help.c:637
+#: sql_help.c:683 sql_help.c:782 sql_help.c:889 sql_help.c:999 sql_help.c:1020
+#: sql_help.c:1032 sql_help.c:1044 sql_help.c:1083 sql_help.c:1174
 msgid "new_schema"
 msgstr "新的模式"
 
-#: sql_help.c:88 sql_help.c:325 sql_help.c:389 sql_help.c:392 sql_help.c:662
-#: sql_help.c:745 sql_help.c:940 sql_help.c:1050 sql_help.c:1076
-#: sql_help.c:1293 sql_help.c:1299 sql_help.c:1492 sql_help.c:1516
-#: sql_help.c:1521 sql_help.c:1591 sql_help.c:1739 sql_help.c:1815
-#: sql_help.c:1990 sql_help.c:2153 sql_help.c:2175 sql_help.c:2570
+# describe.c:1174
+#: sql_help.c:41 sql_help.c:1326 sql_help.c:2418 sql_help.c:3253
+#| msgid "where constraint is:"
+msgid "where aggregate_signature is:"
+msgstr "其中 aggregate_signature 是:"
+
+#: sql_help.c:42 sql_help.c:45 sql_help.c:48 sql_help.c:310 sql_help.c:333
+#: sql_help.c:336 sql_help.c:339 sql_help.c:461 sql_help.c:466 sql_help.c:471
+#: sql_help.c:476 sql_help.c:1295 sql_help.c:1327 sql_help.c:1330
+#: sql_help.c:1333 sql_help.c:1457 sql_help.c:1473 sql_help.c:1476
+#: sql_help.c:1697 sql_help.c:2419 sql_help.c:2422 sql_help.c:2425
+#: sql_help.c:2510 sql_help.c:2870 sql_help.c:3149 sql_help.c:3240
+#: sql_help.c:3254 sql_help.c:3257 sql_help.c:3260
+msgid "argmode"
+msgstr "参数模式"
+
+# describe.c:480
+#: sql_help.c:43 sql_help.c:46 sql_help.c:49 sql_help.c:311 sql_help.c:334
+#: sql_help.c:337 sql_help.c:340 sql_help.c:462 sql_help.c:467 sql_help.c:472
+#: sql_help.c:477 sql_help.c:1296 sql_help.c:1328 sql_help.c:1331
+#: sql_help.c:1334 sql_help.c:1458 sql_help.c:1474 sql_help.c:1477
+#: sql_help.c:1698 sql_help.c:2420 sql_help.c:2423 sql_help.c:2426
+#: sql_help.c:2511 sql_help.c:3241 sql_help.c:3255 sql_help.c:3258
+#: sql_help.c:3261
+msgid "argname"
+msgstr "参数名称"
+
+# describe.c:1689
+#: sql_help.c:44 sql_help.c:47 sql_help.c:50 sql_help.c:312 sql_help.c:335
+#: sql_help.c:338 sql_help.c:341 sql_help.c:463 sql_help.c:468 sql_help.c:473
+#: sql_help.c:478 sql_help.c:1297 sql_help.c:1329 sql_help.c:1332
+#: sql_help.c:1335 sql_help.c:1699 sql_help.c:2421 sql_help.c:2424
+#: sql_help.c:2427 sql_help.c:2512 sql_help.c:3242 sql_help.c:3256
+#: sql_help.c:3259 sql_help.c:3262
+msgid "argtype"
+msgstr "参数类型"
+
+#: sql_help.c:104 sql_help.c:357 sql_help.c:425 sql_help.c:432 sql_help.c:712
+#: sql_help.c:795 sql_help.c:1013 sql_help.c:1123 sql_help.c:1149
+#: sql_help.c:1383 sql_help.c:1389 sql_help.c:1640 sql_help.c:1664
+#: sql_help.c:1669 sql_help.c:1739 sql_help.c:1887 sql_help.c:1968
+#: sql_help.c:2148 sql_help.c:2311 sql_help.c:2333 sql_help.c:2745
 msgid "option"
 msgstr "选项"
 
-#: sql_help.c:89 sql_help.c:663 sql_help.c:1051 sql_help.c:1592
-#: sql_help.c:1740 sql_help.c:2154
+#: sql_help.c:105 sql_help.c:713 sql_help.c:1124 sql_help.c:1740
+#: sql_help.c:1888 sql_help.c:2312
 msgid "where option can be:"
 msgstr "选项可以是"
 
-#: sql_help.c:90 sql_help.c:664 sql_help.c:1052 sql_help.c:1427
-#: sql_help.c:1741 sql_help.c:2155
+#: sql_help.c:106 sql_help.c:714 sql_help.c:1125 sql_help.c:1575
+#: sql_help.c:1889 sql_help.c:2313
 msgid "connlimit"
 msgstr "连接限制"
 
 # describe.c:1342
-#: sql_help.c:96 sql_help.c:553 sql_help.c:864
+#: sql_help.c:112 sql_help.c:526 sql_help.c:588 sql_help.c:603 sql_help.c:892
+#: sql_help.c:936
 msgid "new_tablespace"
 msgstr "新的表空间"
 
 # sql_help.h:366
-#: sql_help.c:98 sql_help.c:101 sql_help.c:103 sql_help.c:443 sql_help.c:445
-#: sql_help.c:446 sql_help.c:671 sql_help.c:675 sql_help.c:678 sql_help.c:1058
-#: sql_help.c:1061 sql_help.c:1063 sql_help.c:1559 sql_help.c:2861
-#: sql_help.c:3203
+#: sql_help.c:114 sql_help.c:117 sql_help.c:119 sql_help.c:483 sql_help.c:485
+#: sql_help.c:486 sql_help.c:721 sql_help.c:725 sql_help.c:728 sql_help.c:811
+#: sql_help.c:814 sql_help.c:1131 sql_help.c:1134 sql_help.c:1136
+#: sql_help.c:1707 sql_help.c:3036 sql_help.c:3406
 msgid "configuration_parameter"
 msgstr "配置参数"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:99 sql_help.c:326 sql_help.c:385 sql_help.c:390 sql_help.c:393
-#: sql_help.c:444 sql_help.c:479 sql_help.c:544 sql_help.c:550 sql_help.c:672
-#: sql_help.c:746 sql_help.c:840 sql_help.c:858 sql_help.c:884 sql_help.c:941
-#: sql_help.c:1059 sql_help.c:1077 sql_help.c:1493 sql_help.c:1517
-#: sql_help.c:1522 sql_help.c:1560 sql_help.c:1561 sql_help.c:1620
-#: sql_help.c:1652 sql_help.c:1816 sql_help.c:1890 sql_help.c:1898
-#: sql_help.c:1930 sql_help.c:1952 sql_help.c:1991 sql_help.c:2176
-#: sql_help.c:3204 sql_help.c:3205
+#: sql_help.c:115 sql_help.c:358 sql_help.c:421 sql_help.c:426 sql_help.c:433
+#: sql_help.c:484 sql_help.c:521 sql_help.c:594 sql_help.c:600 sql_help.c:722
+#: sql_help.c:796 sql_help.c:812 sql_help.c:813 sql_help.c:911 sql_help.c:930
+#: sql_help.c:957 sql_help.c:1014 sql_help.c:1132 sql_help.c:1150
+#: sql_help.c:1641 sql_help.c:1665 sql_help.c:1670 sql_help.c:1708
+#: sql_help.c:1709 sql_help.c:1768 sql_help.c:1800 sql_help.c:1969
+#: sql_help.c:2043 sql_help.c:2051 sql_help.c:2083 sql_help.c:2105
+#: sql_help.c:2122 sql_help.c:2149 sql_help.c:2334 sql_help.c:3407
+#: sql_help.c:3408
 msgid "value"
 msgstr "值"
 
-#: sql_help.c:161
+#: sql_help.c:177
 msgid "target_role"
 msgstr "目标角色"
 
-#: sql_help.c:162 sql_help.c:1476 sql_help.c:1776 sql_help.c:1781
-#: sql_help.c:2677 sql_help.c:2684 sql_help.c:2698 sql_help.c:2704
-#: sql_help.c:2956 sql_help.c:2963 sql_help.c:2977 sql_help.c:2983
+#: sql_help.c:178 sql_help.c:1624 sql_help.c:1929 sql_help.c:1934
+#: sql_help.c:2852 sql_help.c:2859 sql_help.c:2873 sql_help.c:2879
+#: sql_help.c:3131 sql_help.c:3138 sql_help.c:3152 sql_help.c:3158
 msgid "schema_name"
 msgstr "模式名称"
 
-#: sql_help.c:163
+#: sql_help.c:179
 msgid "abbreviated_grant_or_revoke"
 msgstr "简写形式的可授予或回收的权限"
 
-#: sql_help.c:164
+#: sql_help.c:180
 msgid "where abbreviated_grant_or_revoke is one of:"
 msgstr "简写形式的可授予或回收权限是下列内容之一"
 
 # describe.c:1375
-#: sql_help.c:165 sql_help.c:166 sql_help.c:167 sql_help.c:168 sql_help.c:169
-#: sql_help.c:170 sql_help.c:171 sql_help.c:172 sql_help.c:1595
-#: sql_help.c:1596 sql_help.c:1597 sql_help.c:1598 sql_help.c:1599
-#: sql_help.c:1744 sql_help.c:1745 sql_help.c:1746 sql_help.c:1747
-#: sql_help.c:1748 sql_help.c:2158 sql_help.c:2159 sql_help.c:2160
-#: sql_help.c:2161 sql_help.c:2162 sql_help.c:2678 sql_help.c:2682
-#: sql_help.c:2685 sql_help.c:2687 sql_help.c:2689 sql_help.c:2691
-#: sql_help.c:2693 sql_help.c:2699 sql_help.c:2701 sql_help.c:2703
-#: sql_help.c:2705 sql_help.c:2707 sql_help.c:2709 sql_help.c:2710
-#: sql_help.c:2711 sql_help.c:2957 sql_help.c:2961 sql_help.c:2964
-#: sql_help.c:2966 sql_help.c:2968 sql_help.c:2970 sql_help.c:2972
-#: sql_help.c:2978 sql_help.c:2980 sql_help.c:2982 sql_help.c:2984
-#: sql_help.c:2986 sql_help.c:2988 sql_help.c:2989 sql_help.c:2990
-#: sql_help.c:3224
+#: sql_help.c:181 sql_help.c:182 sql_help.c:183 sql_help.c:184 sql_help.c:185
+#: sql_help.c:186 sql_help.c:187 sql_help.c:188 sql_help.c:525 sql_help.c:587
+#: sql_help.c:891 sql_help.c:1743 sql_help.c:1744 sql_help.c:1745
+#: sql_help.c:1746 sql_help.c:1747 sql_help.c:1892 sql_help.c:1893
+#: sql_help.c:1894 sql_help.c:1895 sql_help.c:1896 sql_help.c:2316
+#: sql_help.c:2317 sql_help.c:2318 sql_help.c:2319 sql_help.c:2320
+#: sql_help.c:2853 sql_help.c:2857 sql_help.c:2860 sql_help.c:2862
+#: sql_help.c:2864 sql_help.c:2866 sql_help.c:2868 sql_help.c:2874
+#: sql_help.c:2876 sql_help.c:2878 sql_help.c:2880 sql_help.c:2882
+#: sql_help.c:2884 sql_help.c:2885 sql_help.c:2886 sql_help.c:3132
+#: sql_help.c:3136 sql_help.c:3139 sql_help.c:3141 sql_help.c:3143
+#: sql_help.c:3145 sql_help.c:3147 sql_help.c:3153 sql_help.c:3155
+#: sql_help.c:3157 sql_help.c:3159 sql_help.c:3161 sql_help.c:3163
+#: sql_help.c:3164 sql_help.c:3165 sql_help.c:3427
 msgid "role_name"
 msgstr "角色名称"
 
-#: sql_help.c:198 sql_help.c:378 sql_help.c:831 sql_help.c:833 sql_help.c:1093
-#: sql_help.c:1446 sql_help.c:1450 sql_help.c:1616 sql_help.c:1902
-#: sql_help.c:1912 sql_help.c:1934 sql_help.c:2725 sql_help.c:3108
-#: sql_help.c:3109 sql_help.c:3113 sql_help.c:3118 sql_help.c:3178
-#: sql_help.c:3179 sql_help.c:3184 sql_help.c:3189 sql_help.c:3314
-#: sql_help.c:3315 sql_help.c:3319 sql_help.c:3324 sql_help.c:3396
-#: sql_help.c:3398 sql_help.c:3429 sql_help.c:3471 sql_help.c:3472
-#: sql_help.c:3476 sql_help.c:3481
+#: sql_help.c:214 sql_help.c:414 sql_help.c:902 sql_help.c:904 sql_help.c:1166
+#: sql_help.c:1594 sql_help.c:1598 sql_help.c:1764 sql_help.c:2055
+#: sql_help.c:2065 sql_help.c:2087 sql_help.c:2900 sql_help.c:3303
+#: sql_help.c:3304 sql_help.c:3308 sql_help.c:3313 sql_help.c:3381
+#: sql_help.c:3382 sql_help.c:3387 sql_help.c:3392 sql_help.c:3521
+#: sql_help.c:3522 sql_help.c:3526 sql_help.c:3531 sql_help.c:3611
+#: sql_help.c:3613 sql_help.c:3644 sql_help.c:3690 sql_help.c:3691
+#: sql_help.c:3695 sql_help.c:3700
 msgid "expression"
 msgstr "表达式"
 
-#: sql_help.c:201
+#: sql_help.c:217
 msgid "domain_constraint"
 msgstr "域_约束"
 
-#: sql_help.c:203 sql_help.c:205 sql_help.c:208 sql_help.c:816 sql_help.c:846
-#: sql_help.c:847 sql_help.c:866 sql_help.c:1206 sql_help.c:1449
-#: sql_help.c:1524 sql_help.c:1901 sql_help.c:1911
+#: sql_help.c:219 sql_help.c:221 sql_help.c:224 sql_help.c:884 sql_help.c:917
+#: sql_help.c:918 sql_help.c:919 sql_help.c:939 sql_help.c:1285
+#: sql_help.c:1597 sql_help.c:1672 sql_help.c:2054 sql_help.c:2064
 msgid "constraint_name"
 msgstr "约束名称"
 
-#: sql_help.c:206 sql_help.c:817
+#: sql_help.c:222 sql_help.c:885
 msgid "new_constraint_name"
 msgstr "new_constraint_name(新约束名)"
 
-#: sql_help.c:269 sql_help.c:744
+#: sql_help.c:291 sql_help.c:794
 msgid "new_version"
 msgstr "新版本"
 
-#: sql_help.c:273 sql_help.c:275
+#: sql_help.c:295 sql_help.c:297
 msgid "member_object"
 msgstr "member_object"
 
-#: sql_help.c:276
+#: sql_help.c:298
 msgid "where member_object is:"
 msgstr "member_object的位置:"
 
-#: sql_help.c:277 sql_help.c:1199 sql_help.c:3052
-msgid "agg_name"
-msgstr "聚合函数名称"
-
-# describe.c:1689
-#: sql_help.c:278 sql_help.c:1200 sql_help.c:3053
-msgid "agg_type"
-msgstr "聚合函数操作数据的类型"
+#: sql_help.c:299 sql_help.c:1278 sql_help.c:3233
+#| msgid "agg_name"
+msgid "aggregate_name"
+msgstr "aggregate_name"
 
 # describe.c:1688
-#: sql_help.c:279 sql_help.c:1201 sql_help.c:1368 sql_help.c:1372
-#: sql_help.c:1374 sql_help.c:2260
+#: sql_help.c:301 sql_help.c:1280 sql_help.c:1516 sql_help.c:1520
+#: sql_help.c:1522 sql_help.c:2435
 msgid "source_type"
 msgstr "类型指派中的源数据类型"
 
 # describe.c:1689
-#: sql_help.c:280 sql_help.c:1202 sql_help.c:1369 sql_help.c:1373
-#: sql_help.c:1375 sql_help.c:2261
+#: sql_help.c:302 sql_help.c:1281 sql_help.c:1517 sql_help.c:1521
+#: sql_help.c:1523 sql_help.c:2436
 msgid "target_type"
 msgstr "类型指派中的目标数据类型"
 
 # describe.c:1375
-#: sql_help.c:281 sql_help.c:282 sql_help.c:283 sql_help.c:284 sql_help.c:285
-#: sql_help.c:286 sql_help.c:291 sql_help.c:295 sql_help.c:297 sql_help.c:299
-#: sql_help.c:300 sql_help.c:301 sql_help.c:302 sql_help.c:303 sql_help.c:304
-#: sql_help.c:305 sql_help.c:306 sql_help.c:307 sql_help.c:308 sql_help.c:309
-#: sql_help.c:1203 sql_help.c:1208 sql_help.c:1209 sql_help.c:1210
-#: sql_help.c:1211 sql_help.c:1212 sql_help.c:1213 sql_help.c:1214
-#: sql_help.c:1219 sql_help.c:1221 sql_help.c:1225 sql_help.c:1227
-#: sql_help.c:1229 sql_help.c:1230 sql_help.c:1233 sql_help.c:1234
-#: sql_help.c:1235 sql_help.c:1236 sql_help.c:1237 sql_help.c:1238
-#: sql_help.c:1239 sql_help.c:1240 sql_help.c:1241 sql_help.c:1244
-#: sql_help.c:1245 sql_help.c:3049 sql_help.c:3054 sql_help.c:3055
-#: sql_help.c:3056 sql_help.c:3057 sql_help.c:3063 sql_help.c:3064
-#: sql_help.c:3065 sql_help.c:3066 sql_help.c:3067 sql_help.c:3068
-#: sql_help.c:3069 sql_help.c:3070
+#: sql_help.c:303 sql_help.c:304 sql_help.c:305 sql_help.c:306 sql_help.c:307
+#: sql_help.c:308 sql_help.c:313 sql_help.c:317 sql_help.c:319 sql_help.c:321
+#: sql_help.c:322 sql_help.c:323 sql_help.c:324 sql_help.c:325 sql_help.c:326
+#: sql_help.c:327 sql_help.c:328 sql_help.c:329 sql_help.c:330 sql_help.c:331
+#: sql_help.c:1282 sql_help.c:1287 sql_help.c:1288 sql_help.c:1289
+#: sql_help.c:1290 sql_help.c:1291 sql_help.c:1292 sql_help.c:1293
+#: sql_help.c:1298 sql_help.c:1300 sql_help.c:1304 sql_help.c:1306
+#: sql_help.c:1308 sql_help.c:1309 sql_help.c:1312 sql_help.c:1313
+#: sql_help.c:1314 sql_help.c:1315 sql_help.c:1316 sql_help.c:1317
+#: sql_help.c:1318 sql_help.c:1319 sql_help.c:1320 sql_help.c:1323
+#: sql_help.c:1324 sql_help.c:3230 sql_help.c:3235 sql_help.c:3236
+#: sql_help.c:3237 sql_help.c:3238 sql_help.c:3244 sql_help.c:3245
+#: sql_help.c:3246 sql_help.c:3247 sql_help.c:3248 sql_help.c:3249
+#: sql_help.c:3250 sql_help.c:3251
 msgid "object_name"
 msgstr "对象_名称"
 
 # describe.c:498
-#: sql_help.c:287 sql_help.c:615 sql_help.c:1215 sql_help.c:1370
-#: sql_help.c:1405 sql_help.c:1464 sql_help.c:1669 sql_help.c:1700
-#: sql_help.c:2049 sql_help.c:2694 sql_help.c:2973 sql_help.c:3058
-#: sql_help.c:3134 sql_help.c:3139 sql_help.c:3340 sql_help.c:3345
-#: sql_help.c:3497 sql_help.c:3502
+#: sql_help.c:309 sql_help.c:665 sql_help.c:1294 sql_help.c:1518
+#: sql_help.c:1553 sql_help.c:1612 sql_help.c:1817 sql_help.c:1848
+#: sql_help.c:2207 sql_help.c:2869 sql_help.c:3148 sql_help.c:3239
+#: sql_help.c:3329 sql_help.c:3333 sql_help.c:3337 sql_help.c:3340
+#: sql_help.c:3547 sql_help.c:3551 sql_help.c:3555 sql_help.c:3558
+#: sql_help.c:3716 sql_help.c:3720 sql_help.c:3724 sql_help.c:3727
 msgid "function_name"
 msgstr "函数名称"
 
-#: sql_help.c:288 sql_help.c:421 sql_help.c:426 sql_help.c:431 sql_help.c:436
-#: sql_help.c:1216 sql_help.c:1549 sql_help.c:2335 sql_help.c:2695
-#: sql_help.c:2974 sql_help.c:3059
-msgid "argmode"
-msgstr "参数模式"
-
-# describe.c:480
-#: sql_help.c:289 sql_help.c:422 sql_help.c:427 sql_help.c:432 sql_help.c:437
-#: sql_help.c:1217 sql_help.c:1550 sql_help.c:2336 sql_help.c:3060
-msgid "argname"
-msgstr "参数名称"
-
 # describe.c:512
-#: sql_help.c:292 sql_help.c:608 sql_help.c:1222 sql_help.c:1693
+#: sql_help.c:314 sql_help.c:658 sql_help.c:1301 sql_help.c:1841
 msgid "operator_name"
 msgstr "操作符名称"
 
 # describe.c:321
-#: sql_help.c:293 sql_help.c:563 sql_help.c:567 sql_help.c:1223
-#: sql_help.c:1670 sql_help.c:2378
+#: sql_help.c:315 sql_help.c:613 sql_help.c:617 sql_help.c:1302
+#: sql_help.c:1818 sql_help.c:2553
 msgid "left_type"
 msgstr "操作符左边操作数的类型"
 
 # describe.c:321
-#: sql_help.c:294 sql_help.c:564 sql_help.c:568 sql_help.c:1224
-#: sql_help.c:1671 sql_help.c:2379
+#: sql_help.c:316 sql_help.c:614 sql_help.c:618 sql_help.c:1303
+#: sql_help.c:1819 sql_help.c:2554
 msgid "right_type"
 msgstr "操作符右边操作数的类型"
 
-#: sql_help.c:296 sql_help.c:298 sql_help.c:580 sql_help.c:583 sql_help.c:586
-#: sql_help.c:606 sql_help.c:618 sql_help.c:626 sql_help.c:629 sql_help.c:632
-#: sql_help.c:1226 sql_help.c:1228 sql_help.c:1690 sql_help.c:1711
-#: sql_help.c:1917 sql_help.c:2388 sql_help.c:2397
+#: sql_help.c:318 sql_help.c:320 sql_help.c:630 sql_help.c:633 sql_help.c:636
+#: sql_help.c:656 sql_help.c:668 sql_help.c:676 sql_help.c:679 sql_help.c:682
+#: sql_help.c:1305 sql_help.c:1307 sql_help.c:1838 sql_help.c:1859
+#: sql_help.c:2070 sql_help.c:2563 sql_help.c:2572
 msgid "index_method"
 msgstr "访问索引的方法"
 
+#: sql_help.c:332
+msgid "and aggregate_signature is:"
+msgstr "aggregate_signature指的是:"
+
 # describe.c:498
-#: sql_help.c:323 sql_help.c:1490
+#: sql_help.c:355 sql_help.c:1638
 msgid "handler_function"
 msgstr "handler_function(处理_函数)"
 
 # describe.c:498
-#: sql_help.c:324 sql_help.c:1491
+#: sql_help.c:356 sql_help.c:1639
 msgid "validator_function"
 msgstr "validator_function(验证_函数)"
 
 # describe.c:128
-#: sql_help.c:361 sql_help.c:424 sql_help.c:531 sql_help.c:811 sql_help.c:1001
-#: sql_help.c:1908 sql_help.c:1909 sql_help.c:1925 sql_help.c:1926
+#: sql_help.c:397 sql_help.c:464 sql_help.c:578 sql_help.c:879 sql_help.c:1074
+#: sql_help.c:2061 sql_help.c:2062 sql_help.c:2078 sql_help.c:2079
 msgid "action"
 msgstr "操作"
 
 # describe.c:1375
-#: sql_help.c:363 sql_help.c:370 sql_help.c:374 sql_help.c:375 sql_help.c:377
-#: sql_help.c:379 sql_help.c:380 sql_help.c:381 sql_help.c:383 sql_help.c:386
-#: sql_help.c:388 sql_help.c:533 sql_help.c:540 sql_help.c:542 sql_help.c:545
-#: sql_help.c:547 sql_help.c:726 sql_help.c:813 sql_help.c:823 sql_help.c:827
-#: sql_help.c:828 sql_help.c:832 sql_help.c:834 sql_help.c:835 sql_help.c:836
-#: sql_help.c:838 sql_help.c:841 sql_help.c:843 sql_help.c:1092
-#: sql_help.c:1095 sql_help.c:1115 sql_help.c:1205 sql_help.c:1290
-#: sql_help.c:1295 sql_help.c:1309 sql_help.c:1310 sql_help.c:1514
-#: sql_help.c:1554 sql_help.c:1615 sql_help.c:1650 sql_help.c:1801
-#: sql_help.c:1881 sql_help.c:1894 sql_help.c:1913 sql_help.c:1915
-#: sql_help.c:1922 sql_help.c:1933 sql_help.c:1950 sql_help.c:2052
-#: sql_help.c:2187 sql_help.c:2679 sql_help.c:2680 sql_help.c:2724
-#: sql_help.c:2958 sql_help.c:2959 sql_help.c:3051 sql_help.c:3149
-#: sql_help.c:3355 sql_help.c:3395 sql_help.c:3397 sql_help.c:3414
-#: sql_help.c:3417 sql_help.c:3512
+#: sql_help.c:399 sql_help.c:406 sql_help.c:410 sql_help.c:411 sql_help.c:413
+#: sql_help.c:415 sql_help.c:416 sql_help.c:417 sql_help.c:419 sql_help.c:422
+#: sql_help.c:424 sql_help.c:580 sql_help.c:590 sql_help.c:592 sql_help.c:595
+#: sql_help.c:597 sql_help.c:776 sql_help.c:881 sql_help.c:894 sql_help.c:898
+#: sql_help.c:899 sql_help.c:903 sql_help.c:905 sql_help.c:906 sql_help.c:907
+#: sql_help.c:909 sql_help.c:912 sql_help.c:914 sql_help.c:1165
+#: sql_help.c:1168 sql_help.c:1188 sql_help.c:1284 sql_help.c:1380
+#: sql_help.c:1385 sql_help.c:1399 sql_help.c:1400 sql_help.c:1401
+#: sql_help.c:1662 sql_help.c:1702 sql_help.c:1763 sql_help.c:1798
+#: sql_help.c:1954 sql_help.c:2034 sql_help.c:2047 sql_help.c:2066
+#: sql_help.c:2068 sql_help.c:2075 sql_help.c:2086 sql_help.c:2103
+#: sql_help.c:2210 sql_help.c:2346 sql_help.c:2854 sql_help.c:2855
+#: sql_help.c:2899 sql_help.c:3133 sql_help.c:3134 sql_help.c:3232
+#: sql_help.c:3352 sql_help.c:3570 sql_help.c:3610 sql_help.c:3612
+#: sql_help.c:3629 sql_help.c:3632 sql_help.c:3739
 msgid "column_name"
 msgstr "列名称"
 
 # describe.c:1375
-#: sql_help.c:364 sql_help.c:534 sql_help.c:814
+#: sql_help.c:400 sql_help.c:581 sql_help.c:882
 msgid "new_column_name"
 msgstr "new_column_name(新列名)"
 
-#: sql_help.c:369 sql_help.c:440 sql_help.c:539 sql_help.c:822 sql_help.c:1014
+#: sql_help.c:405 sql_help.c:480 sql_help.c:589 sql_help.c:893 sql_help.c:1087
 msgid "where action is one of:"
 msgstr "操作可以是下列选项之一"
 
 # describe.c:526
-#: sql_help.c:371 sql_help.c:376 sql_help.c:824 sql_help.c:829 sql_help.c:1016
-#: sql_help.c:1020 sql_help.c:1444 sql_help.c:1515 sql_help.c:1689
-#: sql_help.c:1882 sql_help.c:2097 sql_help.c:2809
+#: sql_help.c:407 sql_help.c:412 sql_help.c:895 sql_help.c:900 sql_help.c:1089
+#: sql_help.c:1093 sql_help.c:1592 sql_help.c:1663 sql_help.c:1837
+#: sql_help.c:2035 sql_help.c:2255 sql_help.c:2984
 msgid "data_type"
 msgstr "数据_类型"
 
 # describe.c:128
-#: sql_help.c:372 sql_help.c:825 sql_help.c:830 sql_help.c:1017
-#: sql_help.c:1021 sql_help.c:1445 sql_help.c:1518 sql_help.c:1617
-#: sql_help.c:1883 sql_help.c:2098 sql_help.c:2104
+#: sql_help.c:408 sql_help.c:896 sql_help.c:901 sql_help.c:1090
+#: sql_help.c:1094 sql_help.c:1593 sql_help.c:1666 sql_help.c:1765
+#: sql_help.c:2036 sql_help.c:2256 sql_help.c:2262
 msgid "collation"
 msgstr "校对规则"
 
-#: sql_help.c:373 sql_help.c:826 sql_help.c:1519 sql_help.c:1884
-#: sql_help.c:1895
+#: sql_help.c:409 sql_help.c:897 sql_help.c:1667 sql_help.c:2037
+#: sql_help.c:2048
 msgid "column_constraint"
 msgstr "列约束"
 
-#: sql_help.c:382 sql_help.c:541 sql_help.c:837
+#: sql_help.c:418 sql_help.c:591 sql_help.c:908
 msgid "integer"
 msgstr "整数"
 
-#: sql_help.c:384 sql_help.c:387 sql_help.c:543 sql_help.c:546 sql_help.c:839
-#: sql_help.c:842
+#: sql_help.c:420 sql_help.c:423 sql_help.c:593 sql_help.c:596 sql_help.c:910
+#: sql_help.c:913
 msgid "attribute_option"
 msgstr "属性选项"
 
-#: sql_help.c:441 sql_help.c:1557
+# describe.c:575
+#: sql_help.c:427 sql_help.c:428 sql_help.c:429 sql_help.c:430 sql_help.c:920
+#: sql_help.c:921 sql_help.c:922 sql_help.c:923 sql_help.c:1321
+msgid "trigger_name"
+msgstr "触发器_名称"
+
+#: sql_help.c:481 sql_help.c:1705
 msgid "execution_cost"
 msgstr "执行函数的开销"
 
-#: sql_help.c:442 sql_help.c:1558
+#: sql_help.c:482 sql_help.c:1706
 msgid "result_rows"
 msgstr "返回记录的数量"
 
-#: sql_help.c:457 sql_help.c:459 sql_help.c:461
+#: sql_help.c:497 sql_help.c:499 sql_help.c:501
 msgid "group_name"
 msgstr "组名称"
 
-#: sql_help.c:458 sql_help.c:460 sql_help.c:1074 sql_help.c:1421
-#: sql_help.c:1777 sql_help.c:1779 sql_help.c:1782 sql_help.c:1783
-#: sql_help.c:1963 sql_help.c:2173 sql_help.c:2527 sql_help.c:3234
+#: sql_help.c:498 sql_help.c:500 sql_help.c:1147 sql_help.c:1569
+#: sql_help.c:1930 sql_help.c:1932 sql_help.c:1935 sql_help.c:1936
+#: sql_help.c:2119 sql_help.c:2331 sql_help.c:2702 sql_help.c:3437
 msgid "user_name"
 msgstr "用户名"
 
 # describe.c:1342
-#: sql_help.c:476 sql_help.c:1426 sql_help.c:1621 sql_help.c:1653
-#: sql_help.c:1891 sql_help.c:1899 sql_help.c:1931 sql_help.c:1953
-#: sql_help.c:1962 sql_help.c:2706 sql_help.c:2985
+#: sql_help.c:518 sql_help.c:1574 sql_help.c:1769 sql_help.c:1801
+#: sql_help.c:2044 sql_help.c:2052 sql_help.c:2084 sql_help.c:2106
+#: sql_help.c:2118 sql_help.c:2881 sql_help.c:3160
 msgid "tablespace_name"
 msgstr "表空间的名称"
 
-#: sql_help.c:478 sql_help.c:481 sql_help.c:549 sql_help.c:551 sql_help.c:857
-#: sql_help.c:859 sql_help.c:1619 sql_help.c:1651 sql_help.c:1889
-#: sql_help.c:1897 sql_help.c:1929 sql_help.c:1951
+#: sql_help.c:520 sql_help.c:523 sql_help.c:599 sql_help.c:601 sql_help.c:929
+#: sql_help.c:931 sql_help.c:1767 sql_help.c:1799 sql_help.c:2042
+#: sql_help.c:2050 sql_help.c:2082 sql_help.c:2104
 msgid "storage_parameter"
 msgstr "存储参数"
 
 # large_obj.c:264
-#: sql_help.c:501 sql_help.c:1220 sql_help.c:3062
+#: sql_help.c:546 sql_help.c:1299 sql_help.c:3243
 msgid "large_object_oid"
 msgstr "大对象的OID"
 
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:548 sql_help.c:856 sql_help.c:867 sql_help.c:1155
+#: sql_help.c:598 sql_help.c:928 sql_help.c:937 sql_help.c:940 sql_help.c:1228
 msgid "index_name"
 msgstr "索引名称"
 
-#: sql_help.c:607 sql_help.c:619 sql_help.c:1692
+#: sql_help.c:657 sql_help.c:669 sql_help.c:1840
 msgid "strategy_number"
 msgstr "访问索引所用方法的编号"
 
@@ -3466,22 +3592,22 @@ msgstr "访问索引所用方法的编号"
 # describe.c:745
 # describe.c:1478
 # describe.c:1587
-#: sql_help.c:609 sql_help.c:610 sql_help.c:613 sql_help.c:614 sql_help.c:620
-#: sql_help.c:621 sql_help.c:623 sql_help.c:624 sql_help.c:1694
-#: sql_help.c:1695 sql_help.c:1698 sql_help.c:1699
+#: sql_help.c:659 sql_help.c:660 sql_help.c:663 sql_help.c:664 sql_help.c:670
+#: sql_help.c:671 sql_help.c:673 sql_help.c:674 sql_help.c:1842
+#: sql_help.c:1843 sql_help.c:1846 sql_help.c:1847
 msgid "op_type"
 msgstr "操作数类型"
 
-#: sql_help.c:611 sql_help.c:1696
+#: sql_help.c:661 sql_help.c:1844
 msgid "sort_family_name"
 msgstr "sort_family_name(排序家族名)"
 
-#: sql_help.c:612 sql_help.c:622 sql_help.c:1697
+#: sql_help.c:662 sql_help.c:672 sql_help.c:1845
 msgid "support_number"
 msgstr "访问索引所使用函数的编号"
 
 # describe.c:1689
-#: sql_help.c:616 sql_help.c:1371 sql_help.c:1701
+#: sql_help.c:666 sql_help.c:1519 sql_help.c:1849
 msgid "argument_type"
 msgstr "参数类型"
 
@@ -3489,272 +3615,313 @@ msgstr "参数类型"
 # command.c:939
 # startup.c:187
 # startup.c:205
-#: sql_help.c:665 sql_help.c:1053 sql_help.c:1593 sql_help.c:1742
-#: sql_help.c:2156
+#: sql_help.c:715 sql_help.c:1126 sql_help.c:1741 sql_help.c:1890
+#: sql_help.c:2314
 msgid "password"
 msgstr "口令"
 
-#: sql_help.c:666 sql_help.c:1054 sql_help.c:1594 sql_help.c:1743
-#: sql_help.c:2157
+#: sql_help.c:716 sql_help.c:1127 sql_help.c:1742 sql_help.c:1891
+#: sql_help.c:2315
 msgid "timestamp"
 msgstr "时间戳"
 
-#: sql_help.c:670 sql_help.c:674 sql_help.c:677 sql_help.c:680 sql_help.c:2686
-#: sql_help.c:2965
+#: sql_help.c:720 sql_help.c:724 sql_help.c:727 sql_help.c:730 sql_help.c:2861
+#: sql_help.c:3140
 msgid "database_name"
 msgstr "数据库名称"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:689 sql_help.c:725 sql_help.c:980 sql_help.c:1114
-#: sql_help.c:1154 sql_help.c:1207 sql_help.c:1232 sql_help.c:1243
-#: sql_help.c:1289 sql_help.c:1294 sql_help.c:1513 sql_help.c:1613
-#: sql_help.c:1649 sql_help.c:1761 sql_help.c:1800 sql_help.c:1880
-#: sql_help.c:1892 sql_help.c:1949 sql_help.c:2046 sql_help.c:2221
-#: sql_help.c:2422 sql_help.c:2503 sql_help.c:2676 sql_help.c:2681
-#: sql_help.c:2723 sql_help.c:2955 sql_help.c:2960 sql_help.c:3050
-#: sql_help.c:3123 sql_help.c:3125 sql_help.c:3155 sql_help.c:3194
-#: sql_help.c:3329 sql_help.c:3331 sql_help.c:3361 sql_help.c:3393
-#: sql_help.c:3413 sql_help.c:3415 sql_help.c:3416 sql_help.c:3486
-#: sql_help.c:3488 sql_help.c:3518
+#: sql_help.c:739 sql_help.c:775 sql_help.c:1053 sql_help.c:1187
+#: sql_help.c:1227 sql_help.c:1286 sql_help.c:1311 sql_help.c:1322
+#: sql_help.c:1379 sql_help.c:1384 sql_help.c:1661 sql_help.c:1761
+#: sql_help.c:1797 sql_help.c:1913 sql_help.c:1953 sql_help.c:2033
+#: sql_help.c:2045 sql_help.c:2102 sql_help.c:2204 sql_help.c:2380
+#: sql_help.c:2597 sql_help.c:2678 sql_help.c:2851 sql_help.c:2856
+#: sql_help.c:2898 sql_help.c:3130 sql_help.c:3135 sql_help.c:3231
+#: sql_help.c:3318 sql_help.c:3320 sql_help.c:3358 sql_help.c:3397
+#: sql_help.c:3536 sql_help.c:3538 sql_help.c:3576 sql_help.c:3608
+#: sql_help.c:3628 sql_help.c:3630 sql_help.c:3631 sql_help.c:3705
+#: sql_help.c:3707 sql_help.c:3745
 msgid "table_name"
 msgstr "表名"
 
-#: sql_help.c:719 sql_help.c:1795
+#: sql_help.c:769 sql_help.c:1948
 msgid "increment"
 msgstr "增量"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:720 sql_help.c:1796
+#: sql_help.c:770 sql_help.c:1949
 msgid "minvalue"
 msgstr "最小值"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:721 sql_help.c:1797
+#: sql_help.c:771 sql_help.c:1950
 msgid "maxvalue"
 msgstr "最大值"
 
-#: sql_help.c:722 sql_help.c:1798 sql_help.c:3121 sql_help.c:3192
-#: sql_help.c:3327 sql_help.c:3433 sql_help.c:3484
+#: sql_help.c:772 sql_help.c:1951 sql_help.c:3316 sql_help.c:3395
+#: sql_help.c:3534 sql_help.c:3648 sql_help.c:3703
 msgid "start"
 msgstr "起始值"
 
-#: sql_help.c:723
+#: sql_help.c:773
 msgid "restart"
 msgstr "重新启动后的序列值"
 
-#: sql_help.c:724 sql_help.c:1799
+#: sql_help.c:774 sql_help.c:1952
 msgid "cache"
 msgstr "缓存"
 
-#: sql_help.c:844 sql_help.c:1885 sql_help.c:1896
+#: sql_help.c:915 sql_help.c:2038 sql_help.c:2049
 msgid "table_constraint"
 msgstr "表约束"
 
-#: sql_help.c:845
+#: sql_help.c:916
 msgid "table_constraint_using_index"
 msgstr "table_constraint_using_index(表约束使用索引)"
 
-# describe.c:575
-#: sql_help.c:848 sql_help.c:849 sql_help.c:850 sql_help.c:851 sql_help.c:1242
-msgid "trigger_name"
-msgstr "触发器_名称"
-
-#: sql_help.c:852 sql_help.c:853 sql_help.c:854 sql_help.c:855
+#: sql_help.c:924 sql_help.c:925 sql_help.c:926 sql_help.c:927
 msgid "rewrite_rule_name"
 msgstr "重写规则名称"
 
-#: sql_help.c:860 sql_help.c:861 sql_help.c:1888
+#: sql_help.c:932 sql_help.c:933 sql_help.c:2041
 msgid "parent_table"
 msgstr "父表"
 
-#: sql_help.c:862 sql_help.c:1893 sql_help.c:2708 sql_help.c:2987
+#: sql_help.c:934 sql_help.c:2046 sql_help.c:2883 sql_help.c:3162
 msgid "type_name"
 msgstr "类型名称"
 
-#: sql_help.c:865
+#: sql_help.c:938
 msgid "and table_constraint_using_index is:"
 msgstr "table_constraint_using_index 是:"
 
 # describe.c:1342
-#: sql_help.c:883 sql_help.c:886
+#: sql_help.c:956 sql_help.c:959 sql_help.c:2121
 msgid "tablespace_option"
 msgstr "表空间_选项"
 
-#: sql_help.c:907 sql_help.c:910 sql_help.c:916 sql_help.c:920
+#: sql_help.c:980 sql_help.c:983 sql_help.c:989 sql_help.c:993
 msgid "token_type"
 msgstr "符号类型"
 
-#: sql_help.c:908 sql_help.c:911
+#: sql_help.c:981 sql_help.c:984
 msgid "dictionary_name"
 msgstr "字典名称"
 
-#: sql_help.c:913 sql_help.c:917
+#: sql_help.c:986 sql_help.c:990
 msgid "old_dictionary"
 msgstr "旧的字典"
 
-#: sql_help.c:914 sql_help.c:918
+#: sql_help.c:987 sql_help.c:991
 msgid "new_dictionary"
 msgstr "新的字典"
 
-#: sql_help.c:1005 sql_help.c:1015 sql_help.c:1018 sql_help.c:1019
-#: sql_help.c:2096
+#: sql_help.c:1078 sql_help.c:1088 sql_help.c:1091 sql_help.c:1092
+#: sql_help.c:2254
 msgid "attribute_name"
 msgstr "属性_名称"
 
-#: sql_help.c:1006
+#: sql_help.c:1079
 msgid "new_attribute_name"
 msgstr "new_attribute_name(新属性名)"
 
-#: sql_help.c:1012
+#: sql_help.c:1085
 msgid "new_enum_value"
 msgstr "new_enum_value(新枚举名)"
 
-#: sql_help.c:1013
+#: sql_help.c:1086
 msgid "existing_enum_value"
 msgstr "existing_enum_value"
 
-#: sql_help.c:1075 sql_help.c:1520 sql_help.c:1811 sql_help.c:2174
-#: sql_help.c:2528 sql_help.c:2692 sql_help.c:2971
+#: sql_help.c:1148 sql_help.c:1668 sql_help.c:1964 sql_help.c:2332
+#: sql_help.c:2703 sql_help.c:2867 sql_help.c:3146
 msgid "server_name"
 msgstr "服务器名称"
 
 # help.c:88
-#: sql_help.c:1103 sql_help.c:1106 sql_help.c:2188
+#: sql_help.c:1176 sql_help.c:1179 sql_help.c:2347
 msgid "view_option_name"
 msgstr "view_option_name(视图选项名)"
 
 # help.c:88
-#: sql_help.c:1104 sql_help.c:2189
+#: sql_help.c:1177 sql_help.c:2348
 msgid "view_option_value"
 msgstr "view_option_value(视图选项值)"
 
-#: sql_help.c:1129 sql_help.c:3250 sql_help.c:3252 sql_help.c:3276
+#: sql_help.c:1202 sql_help.c:3453 sql_help.c:3455 sql_help.c:3479
 msgid "transaction_mode"
 msgstr "事务模式"
 
-#: sql_help.c:1130 sql_help.c:3253 sql_help.c:3277
+#: sql_help.c:1203 sql_help.c:3456 sql_help.c:3480
 msgid "where transaction_mode is one of:"
 msgstr "事务模式可以是下列选项之一:"
 
-#: sql_help.c:1204
+#: sql_help.c:1283
 msgid "relation_name"
 msgstr "relation_name(关系名)"
 
 # describe.c:1375
-#: sql_help.c:1231
+#: sql_help.c:1310
 msgid "rule_name"
 msgstr "规则_名称"
 
-#: sql_help.c:1246
+#: sql_help.c:1325
 msgid "text"
 msgstr "文本"
 
-#: sql_help.c:1261 sql_help.c:2818 sql_help.c:3005
+#: sql_help.c:1350 sql_help.c:2993 sql_help.c:3180
 msgid "transaction_id"
 msgstr "事务_ID"
 
 # describe.c:1375
-#: sql_help.c:1291 sql_help.c:1297 sql_help.c:2744
+#: sql_help.c:1381 sql_help.c:1387 sql_help.c:2919
 msgid "filename"
 msgstr "文件名"
 
-#: sql_help.c:1292 sql_help.c:1298 sql_help.c:1763 sql_help.c:1764
-#: sql_help.c:1765
+#: sql_help.c:1382 sql_help.c:1388 sql_help.c:1915 sql_help.c:1916
+#: sql_help.c:1917
 msgid "command"
 msgstr "命令"
 
-#: sql_help.c:1296 sql_help.c:1654 sql_help.c:1954 sql_help.c:2190
-#: sql_help.c:2208 sql_help.c:2726
+#: sql_help.c:1386 sql_help.c:1802 sql_help.c:2107 sql_help.c:2349
+#: sql_help.c:2367 sql_help.c:2901
 msgid "query"
 msgstr "查询"
 
-#: sql_help.c:1300 sql_help.c:2573
+#: sql_help.c:1390 sql_help.c:2748
 msgid "where option can be one of:"
 msgstr "选项可以是下列内容之一:"
 
 # help.c:211
-#: sql_help.c:1301
+#: sql_help.c:1391
 msgid "format_name"
 msgstr "格式_名称"
 
-#: sql_help.c:1302 sql_help.c:1303 sql_help.c:1306 sql_help.c:2574
-#: sql_help.c:2575 sql_help.c:2576 sql_help.c:2577 sql_help.c:2578
+#: sql_help.c:1392 sql_help.c:1393 sql_help.c:1396 sql_help.c:2749
+#: sql_help.c:2750 sql_help.c:2751 sql_help.c:2752 sql_help.c:2753
 msgid "boolean"
 msgstr "布尔"
 
-#: sql_help.c:1304
+#: sql_help.c:1394
 msgid "delimiter_character"
 msgstr "分隔字符"
 
-#: sql_help.c:1305
+#: sql_help.c:1395
 msgid "null_string"
 msgstr "空字符串"
 
-#: sql_help.c:1307
+#: sql_help.c:1397
 msgid "quote_character"
 msgstr "引用字符"
 
-#: sql_help.c:1308
+#: sql_help.c:1398
 msgid "escape_character"
 msgstr "转义字符"
 
 # describe.c:365
-#: sql_help.c:1311
+#: sql_help.c:1402
 msgid "encoding_name"
 msgstr "encoding_name(编码名)"
 
 # describe.c:526
-#: sql_help.c:1337
-msgid "input_data_type"
-msgstr "输入数据类型"
+#: sql_help.c:1459 sql_help.c:1475 sql_help.c:1478
+#| msgid "data_type"
+msgid "arg_data_type"
+msgstr "arg_data_type"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:1338 sql_help.c:1346
+#: sql_help.c:1460 sql_help.c:1479 sql_help.c:1487
 msgid "sfunc"
 msgstr "状态转换函数名称"
 
 # describe.c:526
-#: sql_help.c:1339 sql_help.c:1347
+#: sql_help.c:1461 sql_help.c:1480 sql_help.c:1488
 msgid "state_data_type"
 msgstr "状态值的数据类型"
 
+# describe.c:526
+#: sql_help.c:1462 sql_help.c:1481 sql_help.c:1489
+#| msgid "state_data_type"
+msgid "state_data_size"
+msgstr "state_data_size"
+
 # describe.c:498
-#: sql_help.c:1340 sql_help.c:1348
+#: sql_help.c:1463 sql_help.c:1482 sql_help.c:1490
 msgid "ffunc"
 msgstr "计算最终结果集的函数名称"
 
-#: sql_help.c:1341 sql_help.c:1349
+#: sql_help.c:1464 sql_help.c:1483 sql_help.c:1491
 msgid "initial_condition"
 msgstr "初始条件"
 
+# describe.c:415
+# describe.c:543
+# describe.c:1477
+#: sql_help.c:1465 sql_help.c:1492
+#| msgid "sfunc"
+msgid "msfunc"
+msgstr "msfunc"
+
+# describe.c:415
+# describe.c:543
+# describe.c:1477
+#: sql_help.c:1466 sql_help.c:1493
+#| msgid "minvalue"
+msgid "minvfunc"
+msgstr "minvfunc"
+
+# describe.c:526
+#: sql_help.c:1467 sql_help.c:1494
+#| msgid "state_data_type"
+msgid "mstate_data_type"
+msgstr "mstate_data_type"
+
+# describe.c:526
+#: sql_help.c:1468 sql_help.c:1495
+#| msgid "state_data_type"
+msgid "mstate_data_size"
+msgstr "mstate_data_size"
+
+# describe.c:498
+#: sql_help.c:1469 sql_help.c:1496
+#| msgid "ffunc"
+msgid "mffunc"
+msgstr "mffunc"
+
+#: sql_help.c:1470 sql_help.c:1497
+#| msgid "initial_condition"
+msgid "minitial_condition"
+msgstr "minitial_condition"
+
 # describe.c:512
-#: sql_help.c:1342 sql_help.c:1350
+#: sql_help.c:1471 sql_help.c:1498
 msgid "sort_operator"
 msgstr "排序_操作符"
 
-#: sql_help.c:1343
+#: sql_help.c:1484
 msgid "or the old syntax"
 msgstr "或者是旧的语法"
 
 # describe.c:1689
-#: sql_help.c:1345
+#: sql_help.c:1486
 msgid "base_type"
 msgstr "基础_类型"
 
 # help.c:127
-#: sql_help.c:1389
+#: sql_help.c:1537
 msgid "locale"
 msgstr "本地化语言"
 
-#: sql_help.c:1390 sql_help.c:1424
+#: sql_help.c:1538 sql_help.c:1572
 msgid "lc_collate"
 msgstr "排序规则"
 
@@ -3762,294 +3929,294 @@ msgstr "排序规则"
 # describe.c:745
 # describe.c:1478
 # describe.c:1587
-#: sql_help.c:1391 sql_help.c:1425
+#: sql_help.c:1539 sql_help.c:1573
 msgid "lc_ctype"
 msgstr "字符分类"
 
 # describe.c:1636
-#: sql_help.c:1393
+#: sql_help.c:1541
 msgid "existing_collation"
 msgstr "existing_collation(当前的本地化语言)"
 
 # describe.c:187
-#: sql_help.c:1403
+#: sql_help.c:1551
 msgid "source_encoding"
 msgstr "源_编码"
 
 # describe.c:365
-#: sql_help.c:1404
+#: sql_help.c:1552
 msgid "dest_encoding"
 msgstr "目的_编码"
 
-#: sql_help.c:1422 sql_help.c:1989
+#: sql_help.c:1570 sql_help.c:2147
 msgid "template"
 msgstr "模版"
 
 # describe.c:365
-#: sql_help.c:1423
+#: sql_help.c:1571
 msgid "encoding"
 msgstr "字符集编码"
 
 # describe.c:1174
-#: sql_help.c:1448
+#: sql_help.c:1596
 msgid "where constraint is:"
 msgstr "约束是:"
 
-#: sql_help.c:1462 sql_help.c:1760 sql_help.c:2045
+#: sql_help.c:1610 sql_help.c:1912 sql_help.c:2203
 msgid "event"
 msgstr "事件"
 
-#: sql_help.c:1463
+#: sql_help.c:1611
 msgid "filter_variable"
 msgstr "过滤器变量"
 
 # describe.c:498
-#: sql_help.c:1475
+#: sql_help.c:1623
 msgid "extension_name"
 msgstr "extension_name(扩展名)"
 
-#: sql_help.c:1477
+#: sql_help.c:1625
 msgid "version"
 msgstr "version(版本)"
 
-#: sql_help.c:1478
+#: sql_help.c:1626
 msgid "old_version"
 msgstr "老版本"
 
 # describe.c:1174
-#: sql_help.c:1523 sql_help.c:1900
+#: sql_help.c:1671 sql_help.c:2053
 msgid "where column_constraint is:"
 msgstr "列的约束是:"
 
 # describe.c:1639
-#: sql_help.c:1525 sql_help.c:1552 sql_help.c:1903
+#: sql_help.c:1673 sql_help.c:1700 sql_help.c:2056
 msgid "default_expr"
 msgstr "缺省_表达式"
 
 # describe.c:1689
-#: sql_help.c:1553
+#: sql_help.c:1701
 msgid "rettype"
 msgstr "返回类型"
 
-#: sql_help.c:1555
+#: sql_help.c:1703
 msgid "column_type"
 msgstr "列的类型"
 
-#: sql_help.c:1556 sql_help.c:2242 sql_help.c:2700 sql_help.c:2979
+#: sql_help.c:1704 sql_help.c:2401 sql_help.c:2875 sql_help.c:3154
 msgid "lang_name"
 msgstr "语言名称"
 
 # describe.c:977
-#: sql_help.c:1562
+#: sql_help.c:1710
 msgid "definition"
 msgstr "定义"
 
-#: sql_help.c:1563
+#: sql_help.c:1711
 msgid "obj_file"
 msgstr "目标文件"
 
-#: sql_help.c:1564
+#: sql_help.c:1712
 msgid "link_symbol"
 msgstr "链接_符号"
 
-#: sql_help.c:1565
+#: sql_help.c:1713
 msgid "attribute"
 msgstr "属性"
 
-#: sql_help.c:1600 sql_help.c:1749 sql_help.c:2163
+#: sql_help.c:1748 sql_help.c:1897 sql_help.c:2321
 msgid "uid"
 msgstr "uid"
 
-#: sql_help.c:1614
+#: sql_help.c:1762
 msgid "method"
 msgstr "方法"
 
-#: sql_help.c:1618 sql_help.c:1935
+#: sql_help.c:1766 sql_help.c:2088
 msgid "opclass"
 msgstr "操作符类型的名称"
 
 # describe.c:937
-#: sql_help.c:1622 sql_help.c:1921
+#: sql_help.c:1770 sql_help.c:2074
 msgid "predicate"
 msgstr "述词"
 
-#: sql_help.c:1634
+#: sql_help.c:1782
 msgid "call_handler"
 msgstr "调用函数"
 
-#: sql_help.c:1635
+#: sql_help.c:1783
 msgid "inline_handler"
 msgstr "匿名代码块"
 
 # describe.c:498
-#: sql_help.c:1636
+#: sql_help.c:1784
 msgid "valfunction"
 msgstr "验证函数"
 
-#: sql_help.c:1672
+#: sql_help.c:1820
 msgid "com_op"
 msgstr "交换操作符"
 
-#: sql_help.c:1673
+#: sql_help.c:1821
 msgid "neg_op"
 msgstr "取负操作符"
 
-#: sql_help.c:1674
+#: sql_help.c:1822
 msgid "res_proc"
 msgstr "限制选择性估算函数"
 
-#: sql_help.c:1675
+#: sql_help.c:1823
 msgid "join_proc"
 msgstr "连接选择性估算函数"
 
-#: sql_help.c:1691
+#: sql_help.c:1839
 msgid "family_name"
 msgstr "操作符群的名称"
 
 # describe.c:1635
-#: sql_help.c:1702
+#: sql_help.c:1850
 msgid "storage_type"
 msgstr "存储类型"
 
 # help.c:123
-#: sql_help.c:1762 sql_help.c:2048 sql_help.c:2224 sql_help.c:3112
-#: sql_help.c:3114 sql_help.c:3183 sql_help.c:3185 sql_help.c:3318
-#: sql_help.c:3320 sql_help.c:3400 sql_help.c:3475 sql_help.c:3477
+#: sql_help.c:1914 sql_help.c:2206 sql_help.c:2383 sql_help.c:3307
+#: sql_help.c:3309 sql_help.c:3386 sql_help.c:3388 sql_help.c:3525
+#: sql_help.c:3527 sql_help.c:3615 sql_help.c:3694 sql_help.c:3696
 msgid "condition"
 msgstr "条件"
 
-#: sql_help.c:1778 sql_help.c:1780
+#: sql_help.c:1918 sql_help.c:2209
+msgid "where event can be one of:"
+msgstr "事件可以下述之一:"
+
+#: sql_help.c:1931 sql_help.c:1933
 msgid "schema_element"
 msgstr "模式中对象"
 
-#: sql_help.c:1812
+#: sql_help.c:1965
 msgid "server_type"
 msgstr "服务器类型"
 
-#: sql_help.c:1813
+#: sql_help.c:1966
 msgid "server_version"
 msgstr "服务器版本"
 
-#: sql_help.c:1814 sql_help.c:2690 sql_help.c:2969
+#: sql_help.c:1967 sql_help.c:2865 sql_help.c:3144
 msgid "fdw_name"
 msgstr "外部数据封装器的名称"
 
 # describe.c:1688
-#: sql_help.c:1886
+#: sql_help.c:2039
 msgid "source_table"
 msgstr "源表"
 
 # help.c:88
-#: sql_help.c:1887
+#: sql_help.c:2040
 msgid "like_option"
 msgstr "like选项"
 
-#: sql_help.c:1904 sql_help.c:1905 sql_help.c:1914 sql_help.c:1916
-#: sql_help.c:1920
+#: sql_help.c:2057 sql_help.c:2058 sql_help.c:2067 sql_help.c:2069
+#: sql_help.c:2073
 msgid "index_parameters"
 msgstr "索引参数"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:1906 sql_help.c:1923
+#: sql_help.c:2059 sql_help.c:2076
 msgid "reftable"
 msgstr "所引用的表"
 
 # describe.c:744
-#: sql_help.c:1907 sql_help.c:1924
+#: sql_help.c:2060 sql_help.c:2077
 msgid "refcolumn"
 msgstr "所引用的列"
 
-#: sql_help.c:1910
+#: sql_help.c:2063
 msgid "and table_constraint is:"
 msgstr "表约束是:"
 
-#: sql_help.c:1918
+#: sql_help.c:2071
 msgid "exclude_element"
 msgstr "排除项"
 
 # describe.c:512
-#: sql_help.c:1919 sql_help.c:3119 sql_help.c:3190 sql_help.c:3325
-#: sql_help.c:3431 sql_help.c:3482
+#: sql_help.c:2072 sql_help.c:3314 sql_help.c:3393 sql_help.c:3532
+#: sql_help.c:3646 sql_help.c:3701
 msgid "operator"
 msgstr "运算子"
 
-#: sql_help.c:1927
+#: sql_help.c:2080
 msgid "and like_option is:"
 msgstr "like_选项是"
 
-#: sql_help.c:1928
+#: sql_help.c:2081
 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:"
 msgstr "在UNIQUE, PRIMARY KEY和EXCLUDE中的索引参数是:"
 
-#: sql_help.c:1932
+#: sql_help.c:2085
 msgid "exclude_element in an EXCLUDE constraint is:"
 msgstr "在EXCLUDE约束中的排除项是:"
 
-#: sql_help.c:1964
+#: sql_help.c:2120
 msgid "directory"
 msgstr "目录"
 
-#: sql_help.c:1976
+#: sql_help.c:2134
 msgid "parser_name"
 msgstr "解析器名称 "
 
-#: sql_help.c:1977
+#: sql_help.c:2135
 msgid "source_config"
 msgstr "已存在的文本搜索配置名称"
 
 # describe.c:498
-#: sql_help.c:2006
+#: sql_help.c:2164
 msgid "start_function"
 msgstr "启动_函数"
 
 # sql_help.h:249
-#: sql_help.c:2007
+#: sql_help.c:2165
 msgid "gettoken_function"
 msgstr "获取下一个符号函数的名称"
 
 # describe.c:498
-#: sql_help.c:2008
+#: sql_help.c:2166
 msgid "end_function"
 msgstr "结束_函数"
 
 # describe.c:498
-#: sql_help.c:2009
+#: sql_help.c:2167
 msgid "lextypes_function"
 msgstr "语义类型_函数"
 
 # describe.c:498
-#: sql_help.c:2010
+#: sql_help.c:2168
 msgid "headline_function"
 msgstr "标题_函数"
 
 # describe.c:498
-#: sql_help.c:2022
+#: sql_help.c:2180
 msgid "init_function"
 msgstr "初始化_函数"
 
 # describe.c:498
-#: sql_help.c:2023
+#: sql_help.c:2181
 msgid "lexize_function"
 msgstr "LEXIZE函数"
 
-#: sql_help.c:2047
+#: sql_help.c:2205
 msgid "referenced_table_name"
 msgstr "被引用表的名称"
 
-#: sql_help.c:2050
+#: sql_help.c:2208
 msgid "arguments"
 msgstr "参数"
 
-#: sql_help.c:2051
-msgid "where event can be one of:"
-msgstr "事件可以下述之一:"
-
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:2100 sql_help.c:3071
+#: sql_help.c:2258 sql_help.c:3252
 msgid "label"
 msgstr "标签"
 
@@ -4057,1082 +4224,1084 @@ msgstr "标签"
 # describe.c:745
 # describe.c:1478
 # describe.c:1587
-#: sql_help.c:2102
+#: sql_help.c:2260
 msgid "subtype"
 msgstr "子类型"
 
 # describe.c:512
-#: sql_help.c:2103
+#: sql_help.c:2261
 msgid "subtype_operator_class"
 msgstr "subtype_operator_class(子类型_操作符_类)"
 
 # describe.c:498
-#: sql_help.c:2105
+#: sql_help.c:2263
 msgid "canonical_function"
 msgstr "标准_函数"
 
 # describe.c:498
-#: sql_help.c:2106
+#: sql_help.c:2264
 msgid "subtype_diff_function"
 msgstr "subtype_diff_function(子类型_区分_函数)"
 
 # describe.c:498
-#: sql_help.c:2108
+#: sql_help.c:2266
 msgid "input_function"
 msgstr "输入_函数"
 
 # describe.c:498
-#: sql_help.c:2109
+#: sql_help.c:2267
 msgid "output_function"
 msgstr "输出_函数"
 
 # sql_help.h:249
-#: sql_help.c:2110
+#: sql_help.c:2268
 msgid "receive_function"
 msgstr "接收_函数"
 
 # describe.c:498
-#: sql_help.c:2111
+#: sql_help.c:2269
 msgid "send_function"
 msgstr "发送_函数"
 
-#: sql_help.c:2112
+#: sql_help.c:2270
 msgid "type_modifier_input_function"
 msgstr "类型修改器数组输入函数名称"
 
-#: sql_help.c:2113
+#: sql_help.c:2271
 msgid "type_modifier_output_function"
 msgstr "类型修改器输出函数名称"
 
 # describe.c:498
-#: sql_help.c:2114
+#: sql_help.c:2272
 msgid "analyze_function"
 msgstr "分析_函数"
 
-#: sql_help.c:2115
+#: sql_help.c:2273
 msgid "internallength"
 msgstr "内部长度"
 
 # describe.c:1693
-#: sql_help.c:2116
+#: sql_help.c:2274
 msgid "alignment"
 msgstr "顺序排列(alignment)"
 
 # describe.c:1635
-#: sql_help.c:2117
+#: sql_help.c:2275
 msgid "storage"
 msgstr "存储"
 
-#: sql_help.c:2118
+#: sql_help.c:2276
 msgid "like_type"
 msgstr "LIKE类型(like_type)"
 
-#: sql_help.c:2119
+#: sql_help.c:2277
 msgid "category"
 msgstr "类型"
 
-#: sql_help.c:2120
+#: sql_help.c:2278
 msgid "preferred"
 msgstr "优先"
 
 # describe.c:1639
-#: sql_help.c:2121
+#: sql_help.c:2279
 msgid "default"
 msgstr "缺省"
 
-#: sql_help.c:2122
+#: sql_help.c:2280
 msgid "element"
 msgstr "成员项"
 
-#: sql_help.c:2123
+#: sql_help.c:2281
 msgid "delimiter"
 msgstr "分隔符"
 
-#: sql_help.c:2124
+#: sql_help.c:2282
 msgid "collatable"
 msgstr "要校对的"
 
-#: sql_help.c:2220 sql_help.c:2722 sql_help.c:3107 sql_help.c:3177
-#: sql_help.c:3313 sql_help.c:3392 sql_help.c:3470
+#: sql_help.c:2379 sql_help.c:2897 sql_help.c:3302 sql_help.c:3380
+#: sql_help.c:3520 sql_help.c:3607 sql_help.c:3689
 msgid "with_query"
 msgstr "with查询语句(with_query)"
 
-#: sql_help.c:2222 sql_help.c:3126 sql_help.c:3129 sql_help.c:3132
-#: sql_help.c:3136 sql_help.c:3332 sql_help.c:3335 sql_help.c:3338
-#: sql_help.c:3342 sql_help.c:3394 sql_help.c:3489 sql_help.c:3492
-#: sql_help.c:3495 sql_help.c:3499
+#: sql_help.c:2381 sql_help.c:3321 sql_help.c:3324 sql_help.c:3327
+#: sql_help.c:3331 sql_help.c:3335 sql_help.c:3343 sql_help.c:3539
+#: sql_help.c:3542 sql_help.c:3545 sql_help.c:3549 sql_help.c:3553
+#: sql_help.c:3561 sql_help.c:3609 sql_help.c:3708 sql_help.c:3711
+#: sql_help.c:3714 sql_help.c:3718 sql_help.c:3722 sql_help.c:3730
 msgid "alias"
 msgstr "化名"
 
-#: sql_help.c:2223
+#: sql_help.c:2382
 msgid "using_list"
 msgstr "USING列表(using_list)"
 
-#: sql_help.c:2225 sql_help.c:2604 sql_help.c:2785 sql_help.c:3401
+#: sql_help.c:2384 sql_help.c:2779 sql_help.c:2960 sql_help.c:3616
 msgid "cursor_name"
 msgstr "游标名称"
 
-#: sql_help.c:2226 sql_help.c:2727 sql_help.c:3402
+#: sql_help.c:2385 sql_help.c:2902 sql_help.c:3617
 msgid "output_expression"
 msgstr "输出表达式"
 
-#: sql_help.c:2227 sql_help.c:2728 sql_help.c:3110 sql_help.c:3180
-#: sql_help.c:3316 sql_help.c:3403 sql_help.c:3473
+#: sql_help.c:2386 sql_help.c:2903 sql_help.c:3305 sql_help.c:3383
+#: sql_help.c:3523 sql_help.c:3618 sql_help.c:3692
 msgid "output_name"
 msgstr "输出名称"
 
-#: sql_help.c:2243
+#: sql_help.c:2402
 msgid "code"
 msgstr "编码"
 
-#: sql_help.c:2552
+#: sql_help.c:2727
 msgid "parameter"
 msgstr "参数"
 
-#: sql_help.c:2571 sql_help.c:2572 sql_help.c:2810
+#: sql_help.c:2746 sql_help.c:2747 sql_help.c:2985
 msgid "statement"
 msgstr "语句"
 
 # help.c:123
-#: sql_help.c:2603 sql_help.c:2784
+#: sql_help.c:2778 sql_help.c:2959
 msgid "direction"
 msgstr "方向"
 
-#: sql_help.c:2605 sql_help.c:2786
+#: sql_help.c:2780 sql_help.c:2961
 msgid "where direction can be empty or one of:"
 msgstr "方向可以为空或者是下列选项之一:"
 
-#: sql_help.c:2606 sql_help.c:2607 sql_help.c:2608 sql_help.c:2609
-#: sql_help.c:2610 sql_help.c:2787 sql_help.c:2788 sql_help.c:2789
-#: sql_help.c:2790 sql_help.c:2791 sql_help.c:3120 sql_help.c:3122
-#: sql_help.c:3191 sql_help.c:3193 sql_help.c:3326 sql_help.c:3328
-#: sql_help.c:3432 sql_help.c:3434 sql_help.c:3483 sql_help.c:3485
+#: sql_help.c:2781 sql_help.c:2782 sql_help.c:2783 sql_help.c:2784
+#: sql_help.c:2785 sql_help.c:2962 sql_help.c:2963 sql_help.c:2964
+#: sql_help.c:2965 sql_help.c:2966 sql_help.c:3315 sql_help.c:3317
+#: sql_help.c:3394 sql_help.c:3396 sql_help.c:3533 sql_help.c:3535
+#: sql_help.c:3647 sql_help.c:3649 sql_help.c:3702 sql_help.c:3704
 msgid "count"
 msgstr "查询所用返回记录的最大数量"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:2683 sql_help.c:2962
+#: sql_help.c:2858 sql_help.c:3137
 msgid "sequence_name"
 msgstr "序列名称"
 
 # describe.c:1375
-#: sql_help.c:2688 sql_help.c:2967
+#: sql_help.c:2863 sql_help.c:3142
 msgid "domain_name"
 msgstr "域_名称"
 
-#: sql_help.c:2696 sql_help.c:2975
+#: sql_help.c:2871 sql_help.c:3150
 msgid "arg_name"
 msgstr "参数名称"
 
 # describe.c:1689
-#: sql_help.c:2697 sql_help.c:2976
+#: sql_help.c:2872 sql_help.c:3151
 msgid "arg_type"
 msgstr "参数类型"
 
-#: sql_help.c:2702 sql_help.c:2981
+#: sql_help.c:2877 sql_help.c:3156
 msgid "loid"
 msgstr "loid"
 
-#: sql_help.c:2736 sql_help.c:2799 sql_help.c:3378
+#: sql_help.c:2911 sql_help.c:2974 sql_help.c:3593
 msgid "channel"
 msgstr "通道"
 
-#: sql_help.c:2758
+#: sql_help.c:2933
 msgid "lockmode"
 msgstr "锁模式"
 
-#: sql_help.c:2759
+#: sql_help.c:2934
 msgid "where lockmode is one of:"
 msgstr "锁模式可以是下列选项之一:"
 
-#: sql_help.c:2800
+#: sql_help.c:2975
 msgid "payload"
 msgstr "消息中负载流量(payload)"
 
-#: sql_help.c:2826
+#: sql_help.c:3001
 msgid "old_role"
 msgstr "旧的角色"
 
-#: sql_help.c:2827
+#: sql_help.c:3002
 msgid "new_role"
 msgstr "新的角色"
 
 # sql_help.h:382
-#: sql_help.c:2852 sql_help.c:3013 sql_help.c:3021
+#: sql_help.c:3027 sql_help.c:3188 sql_help.c:3196
 msgid "savepoint_name"
 msgstr "保存点名称"
 
-#: sql_help.c:3048
+#: sql_help.c:3229
 msgid "provider"
 msgstr "provider(提供者)"
 
-#: sql_help.c:3111 sql_help.c:3142 sql_help.c:3144 sql_help.c:3182
-#: sql_help.c:3317 sql_help.c:3348 sql_help.c:3350 sql_help.c:3474
-#: sql_help.c:3505 sql_help.c:3507
+#: sql_help.c:3306 sql_help.c:3345 sql_help.c:3347 sql_help.c:3385
+#: sql_help.c:3524 sql_help.c:3563 sql_help.c:3565 sql_help.c:3693
+#: sql_help.c:3732 sql_help.c:3734
 msgid "from_item"
 msgstr "from列表中项"
 
-#: sql_help.c:3115 sql_help.c:3186 sql_help.c:3321 sql_help.c:3478
+#: sql_help.c:3310 sql_help.c:3389 sql_help.c:3528 sql_help.c:3697
 msgid "window_name"
 msgstr "窗口名称"
 
 # describe.c:977
-#: sql_help.c:3116 sql_help.c:3187 sql_help.c:3322 sql_help.c:3479
+#: sql_help.c:3311 sql_help.c:3390 sql_help.c:3529 sql_help.c:3698
 msgid "window_definition"
 msgstr "窗口定义"
 
-#: sql_help.c:3117 sql_help.c:3128 sql_help.c:3150 sql_help.c:3188
-#: sql_help.c:3323 sql_help.c:3334 sql_help.c:3356 sql_help.c:3480
-#: sql_help.c:3491 sql_help.c:3513
+#: sql_help.c:3312 sql_help.c:3323 sql_help.c:3353 sql_help.c:3391
+#: sql_help.c:3530 sql_help.c:3541 sql_help.c:3571 sql_help.c:3699
+#: sql_help.c:3710 sql_help.c:3740
 msgid "select"
 msgstr "查询"
 
-#: sql_help.c:3124 sql_help.c:3330 sql_help.c:3487
+#: sql_help.c:3319 sql_help.c:3537 sql_help.c:3706
 msgid "where from_item can be one of:"
 msgstr "from 列表中的项可以是下列内容之一"
 
-#: sql_help.c:3127 sql_help.c:3130 sql_help.c:3133 sql_help.c:3137
-#: sql_help.c:3333 sql_help.c:3336 sql_help.c:3339 sql_help.c:3343
-#: sql_help.c:3490 sql_help.c:3493 sql_help.c:3496 sql_help.c:3500
+#: sql_help.c:3322 sql_help.c:3325 sql_help.c:3328 sql_help.c:3332
+#: sql_help.c:3344 sql_help.c:3540 sql_help.c:3543 sql_help.c:3546
+#: sql_help.c:3550 sql_help.c:3562 sql_help.c:3709 sql_help.c:3712
+#: sql_help.c:3715 sql_help.c:3719 sql_help.c:3731
 msgid "column_alias"
 msgstr "列的化名"
 
-#: sql_help.c:3131 sql_help.c:3148 sql_help.c:3337 sql_help.c:3354
-#: sql_help.c:3494 sql_help.c:3511
+#: sql_help.c:3326 sql_help.c:3351 sql_help.c:3544 sql_help.c:3569
+#: sql_help.c:3713 sql_help.c:3738
 msgid "with_query_name"
 msgstr "WITH查询语句名称(with_query_name)"
 
-#: sql_help.c:3135 sql_help.c:3140 sql_help.c:3341 sql_help.c:3346
-#: sql_help.c:3498 sql_help.c:3503
+#: sql_help.c:3330 sql_help.c:3334 sql_help.c:3338 sql_help.c:3341
+#: sql_help.c:3548 sql_help.c:3552 sql_help.c:3556 sql_help.c:3559
+#: sql_help.c:3717 sql_help.c:3721 sql_help.c:3725 sql_help.c:3728
 msgid "argument"
 msgstr "参数"
 
 # describe.c:977
-#: sql_help.c:3138 sql_help.c:3141 sql_help.c:3344 sql_help.c:3347
-#: sql_help.c:3501 sql_help.c:3504
+#: sql_help.c:3336 sql_help.c:3339 sql_help.c:3342 sql_help.c:3554
+#: sql_help.c:3557 sql_help.c:3560 sql_help.c:3723 sql_help.c:3726
+#: sql_help.c:3729
 msgid "column_definition"
 msgstr "列定义"
 
-#: sql_help.c:3143 sql_help.c:3349 sql_help.c:3506
+#: sql_help.c:3346 sql_help.c:3564 sql_help.c:3733
 msgid "join_type"
 msgstr "连接操作的类型"
 
-#: sql_help.c:3145 sql_help.c:3351 sql_help.c:3508
+#: sql_help.c:3348 sql_help.c:3566 sql_help.c:3735
 msgid "join_condition"
 msgstr "用连接操作的条件"
 
-#: sql_help.c:3146 sql_help.c:3352 sql_help.c:3509
+#: sql_help.c:3349 sql_help.c:3567 sql_help.c:3736
 msgid "join_column"
 msgstr "用于连接操作的列"
 
-#: sql_help.c:3147 sql_help.c:3353 sql_help.c:3510
+#: sql_help.c:3350 sql_help.c:3568 sql_help.c:3737
 msgid "and with_query is:"
 msgstr "with查询语句是:"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:3151 sql_help.c:3357 sql_help.c:3514
+#: sql_help.c:3354 sql_help.c:3572 sql_help.c:3741
 msgid "values"
 msgstr "值"
 
-#: sql_help.c:3152 sql_help.c:3358 sql_help.c:3515
+#: sql_help.c:3355 sql_help.c:3573 sql_help.c:3742
 msgid "insert"
 msgstr "insert"
 
-#: sql_help.c:3153 sql_help.c:3359 sql_help.c:3516
+#: sql_help.c:3356 sql_help.c:3574 sql_help.c:3743
 msgid "update"
 msgstr "update"
 
-#: sql_help.c:3154 sql_help.c:3360 sql_help.c:3517
+#: sql_help.c:3357 sql_help.c:3575 sql_help.c:3744
 msgid "delete"
 msgstr "delete"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:3181
+#: sql_help.c:3384
 msgid "new_table"
 msgstr "新的表"
 
-#: sql_help.c:3206
+#: sql_help.c:3409
 msgid "timezone"
 msgstr "时间区域"
 
-#: sql_help.c:3251
+#: sql_help.c:3454
 msgid "snapshot_id"
 msgstr "snapshot_id"
 
-#: sql_help.c:3399
+#: sql_help.c:3614
 msgid "from_list"
 msgstr "from列表(from_list)"
 
-#: sql_help.c:3430
+#: sql_help.c:3645
 msgid "sort_expression"
 msgstr "排序表达式"
 
 # sql_help.h:25
 # sql_help.h:373
-#: sql_help.h:190 sql_help.h:885
+#: sql_help.h:191 sql_help.h:891
 msgid "abort the current transaction"
 msgstr "中止目前的交易"
 
 # sql_help.h:29
-#: sql_help.h:195
+#: sql_help.h:196
 msgid "change the definition of an aggregate function"
 msgstr "更改聚集函数的定义"
 
 # sql_help.h:45
-#: sql_help.h:200
+#: sql_help.h:201
 msgid "change the definition of a collation"
 msgstr "更改校对规则的定义"
 
 # sql_help.h:33
-#: sql_help.h:205
+#: sql_help.h:206
 msgid "change the definition of a conversion"
 msgstr "更改一个字元编码转换的定义"
 
 # sql_help.h:37
-#: sql_help.h:210
+#: sql_help.h:211
 msgid "change a database"
 msgstr "更改一个资料库"
 
 # sql_help.h:325
-#: sql_help.h:215
+#: sql_help.h:216
 msgid "define default access privileges"
 msgstr "定义缺省的访问权限"
 
 # sql_help.h:41
-#: sql_help.h:220
+#: sql_help.h:221
 msgid "change the definition of a domain"
 msgstr "更改共同值域的定义"
 
 # sql_help.h:85
-#: sql_help.h:225
-#| msgid "change the definition of a trigger"
+#: sql_help.h:226
 msgid "change the definition of an event trigger"
 msgstr "更改事件触发器的定义"
 
 # sql_help.h:33
-#: sql_help.h:230
+#: sql_help.h:231
 msgid "change the definition of an extension"
 msgstr "更改扩展的定义"
 
 # sql_help.h:85
-#: sql_help.h:235
+#: sql_help.h:236
 msgid "change the definition of a foreign-data wrapper"
 msgstr "更改外部数据封装器的定义"
 
 # sql_help.h:85
-#: sql_help.h:240
+#: sql_help.h:241
 msgid "change the definition of a foreign table"
 msgstr "更改外部表的定义"
 
 # sql_help.h:45
-#: sql_help.h:245
+#: sql_help.h:246
 msgid "change the definition of a function"
 msgstr "更改函数的定义"
 
-#: sql_help.h:250
+#: sql_help.h:251
 msgid "change role name or membership"
 msgstr "更改角色名称或会员"
 
 # sql_help.h:53
-#: sql_help.h:255
+#: sql_help.h:256
 msgid "change the definition of an index"
 msgstr "更改索引的定义"
 
 # sql_help.h:57
-#: sql_help.h:260
+#: sql_help.h:261
 msgid "change the definition of a procedural language"
 msgstr "更改程序语言的定义"
 
 # sql_help.h:77
-#: sql_help.h:265
+#: sql_help.h:266
 msgid "change the definition of a large object"
 msgstr "改变大对象的定义"
 
 # sql_help.h:53
-#: sql_help.h:270
-#| msgid "change the definition of a view"
+#: sql_help.h:271
 msgid "change the definition of a materialized view"
 msgstr "更改物化视图的定义"
 
 # sql_help.h:65
-#: sql_help.h:275
+#: sql_help.h:276
 msgid "change the definition of an operator"
 msgstr "更改运算子的定义"
 
 # sql_help.h:61
-#: sql_help.h:280
+#: sql_help.h:281
 msgid "change the definition of an operator class"
 msgstr "更改运算子类别的定义"
 
 # sql_help.h:65
-#: sql_help.h:285
+#: sql_help.h:286
 msgid "change the definition of an operator family"
 msgstr "更改一个运算子家族的识别"
 
 # sql_help.h:37
-#: sql_help.h:290 sql_help.h:355
+#: sql_help.h:291 sql_help.h:361
 msgid "change a database role"
 msgstr "变更资料库角色"
 
 # sql_help.h:77
-#: sql_help.h:295
-#| msgid "change the definition of a table"
+#: sql_help.h:296
 msgid "change the definition of a rule"
 msgstr "更改规则的定义"
 
 # sql_help.h:69
-#: sql_help.h:300
+#: sql_help.h:301
 msgid "change the definition of a schema"
 msgstr "更改架构模式的定义"
 
 # sql_help.h:73
-#: sql_help.h:305
+#: sql_help.h:306
 msgid "change the definition of a sequence generator"
 msgstr "更改序列数产生器的定义"
 
 # sql_help.h:85
-#: sql_help.h:310
+#: sql_help.h:311
 msgid "change the definition of a foreign server"
 msgstr "更改外部服务器的定义"
 
+# sql_help.h:366
+#: sql_help.h:316
+#| msgid "configuration_parameter"
+msgid "change a server configuration parameter"
+msgstr "改变服务器的配置参数"
+
 # sql_help.h:77
-#: sql_help.h:315
+#: sql_help.h:321
 msgid "change the definition of a table"
 msgstr "更改资料表的定义"
 
 # sql_help.h:81
-#: sql_help.h:320
+#: sql_help.h:326
 msgid "change the definition of a tablespace"
 msgstr "更改表空间的定义"
 
 # sql_help.h:33
-#: sql_help.h:325
+#: sql_help.h:331
 msgid "change the definition of a text search configuration"
 msgstr "更改一个文本搜寻组态的定义"
 
 # sql_help.h:45
-#: sql_help.h:330
+#: sql_help.h:336
 msgid "change the definition of a text search dictionary"
 msgstr "更改一个文本搜寻字典的定义"
 
 # sql_help.h:81
-#: sql_help.h:335
+#: sql_help.h:341
 msgid "change the definition of a text search parser"
 msgstr "更改一个文本搜寻剖析器的定义"
 
 # sql_help.h:69
-#: sql_help.h:340
+#: sql_help.h:346
 msgid "change the definition of a text search template"
 msgstr "更改一个文本搜寻模版的定义"
 
 # sql_help.h:85
-#: sql_help.h:345
+#: sql_help.h:351
 msgid "change the definition of a trigger"
 msgstr "更改触发器的定义"
 
 # sql_help.h:89
-#: sql_help.h:350
+#: sql_help.h:356
 msgid "change the definition of a type"
 msgstr "更改资料型别的定义"
 
 # sql_help.h:41
-#: sql_help.h:360
+#: sql_help.h:366
 msgid "change the definition of a user mapping"
 msgstr "更改用户映射的定义"
 
 # sql_help.h:53
-#: sql_help.h:365
+#: sql_help.h:371
 msgid "change the definition of a view"
 msgstr "更改视观表的定义"
 
 # sql_help.h:97
-#: sql_help.h:370
+#: sql_help.h:376
 msgid "collect statistics about a database"
 msgstr "关于资料库的收集统计"
 
 # sql_help.h:101
 # sql_help.h:413
-#: sql_help.h:375 sql_help.h:950
+#: sql_help.h:381 sql_help.h:956
 msgid "start a transaction block"
 msgstr "开始一个事物交易区块"
 
 # sql_help.h:105
-#: sql_help.h:380
+#: sql_help.h:386
 msgid "force a transaction log checkpoint"
 msgstr "强制事物交易日志检查点"
 
 # sql_help.h:109
-#: sql_help.h:385
+#: sql_help.h:391
 msgid "close a cursor"
 msgstr "关闭 cursor"
 
 # sql_help.h:113
-#: sql_help.h:390
+#: sql_help.h:396
 msgid "cluster a table according to an index"
 msgstr "丛集一个资料表根据一个索引"
 
 # sql_help.h:117
-#: sql_help.h:395
+#: sql_help.h:401
 msgid "define or change the comment of an object"
 msgstr "定义或更改一个物件的注解"
 
 # sql_help.h:121
 # sql_help.h:309
-#: sql_help.h:400 sql_help.h:790
+#: sql_help.h:406 sql_help.h:796
 msgid "commit the current transaction"
 msgstr "确认目前的事物交易"
 
-#: sql_help.h:405
+#: sql_help.h:411
 msgid "commit a transaction that was earlier prepared for two-phase commit"
 msgstr "提交一项事务交易这是两阶段提交的先前准备"
 
 # sql_help.h:125
-#: sql_help.h:410
+#: sql_help.h:416
 msgid "copy data between a file and a table"
 msgstr "在档案和资料表间复制资料"
 
 # sql_help.h:129
-#: sql_help.h:415
+#: sql_help.h:421
 msgid "define a new aggregate function"
 msgstr "定义一个新的聚集函数"
 
 # sql_help.h:133
-#: sql_help.h:420
+#: sql_help.h:426
 msgid "define a new cast"
 msgstr "建立新的型别转换"
 
 # sql_help.h:153
-#: sql_help.h:425
+#: sql_help.h:431
 msgid "define a new collation"
 msgstr "建立新的校对规则"
 
 # sql_help.h:141
-#: sql_help.h:430
+#: sql_help.h:436
 msgid "define a new encoding conversion"
 msgstr "定义一个新的字元编码转换"
 
 # sql_help.h:145
-#: sql_help.h:435
+#: sql_help.h:441
 msgid "create a new database"
 msgstr "建立新的资料库"
 
 # sql_help.h:149
-#: sql_help.h:440
+#: sql_help.h:446
 msgid "define a new domain"
 msgstr "建立新的共同值域"
 
 # sql_help.h:201
-#: sql_help.h:445
-#| msgid "define a new trigger"
+#: sql_help.h:451
 msgid "define a new event trigger"
 msgstr "定义新的事件触发器"
 
-#: sql_help.h:450
+#: sql_help.h:456
 msgid "install an extension"
 msgstr "安装一个扩展"
 
 # sql_help.h:205
-#: sql_help.h:455
+#: sql_help.h:461
 msgid "define a new foreign-data wrapper"
 msgstr "定义一个新的外部数据封装器"
 
 # sql_help.h:201
-#: sql_help.h:460
+#: sql_help.h:466
 msgid "define a new foreign table"
 msgstr "建立新的外部表"
 
 # sql_help.h:153
-#: sql_help.h:465
+#: sql_help.h:471
 msgid "define a new function"
 msgstr "建立新的函数"
 
 # sql_help.h:189
-#: sql_help.h:470 sql_help.h:505 sql_help.h:575
+#: sql_help.h:476 sql_help.h:511 sql_help.h:581
 msgid "define a new database role"
 msgstr "定义一个新资料库角色"
 
 # sql_help.h:161
-#: sql_help.h:475
+#: sql_help.h:481
 msgid "define a new index"
 msgstr "建立新的索引"
 
 # sql_help.h:165
-#: sql_help.h:480
+#: sql_help.h:486
 msgid "define a new procedural language"
 msgstr "建立新的程序语言"
 
 # sql_help.h:213
-#: sql_help.h:485
-#| msgid "define a new view"
+#: sql_help.h:491
 msgid "define a new materialized view"
 msgstr "建立新的物化视图"
 
 # sql_help.h:173
-#: sql_help.h:490
+#: sql_help.h:496
 msgid "define a new operator"
 msgstr "建立新的运算子"
 
 # sql_help.h:169
-#: sql_help.h:495
+#: sql_help.h:501
 msgid "define a new operator class"
 msgstr "建立新的运算子类别"
 
 # sql_help.h:173
-#: sql_help.h:500
+#: sql_help.h:506
 msgid "define a new operator family"
 msgstr "定义一个新的运算子家族"
 
 # sql_help.h:177
-#: sql_help.h:510
+#: sql_help.h:516
 msgid "define a new rewrite rule"
 msgstr "建立新的重写规则"
 
 # sql_help.h:181
-#: sql_help.h:515
+#: sql_help.h:521
 msgid "define a new schema"
 msgstr "建立新的架构模式"
 
 # sql_help.h:185
-#: sql_help.h:520
+#: sql_help.h:526
 msgid "define a new sequence generator"
 msgstr "建立新的序列数产生器"
 
 # sql_help.h:201
-#: sql_help.h:525
+#: sql_help.h:531
 msgid "define a new foreign server"
 msgstr "建立新的触发器"
 
 # sql_help.h:189
-#: sql_help.h:530
+#: sql_help.h:536
 msgid "define a new table"
 msgstr "建立新的资料表"
 
 # sql_help.h:193
 # sql_help.h:389
-#: sql_help.h:535 sql_help.h:915
+#: sql_help.h:541 sql_help.h:921
 msgid "define a new table from the results of a query"
 msgstr "以查询结果建立新的资料表"
 
 # sql_help.h:197
-#: sql_help.h:540
+#: sql_help.h:546
 msgid "define a new tablespace"
 msgstr "建立新的表空间"
 
 # sql_help.h:129
-#: sql_help.h:545
+#: sql_help.h:551
 msgid "define a new text search configuration"
 msgstr "定义一个新文本搜寻组态"
 
 # sql_help.h:129
-#: sql_help.h:550
+#: sql_help.h:556
 msgid "define a new text search dictionary"
 msgstr "定义一个新文本搜寻字典"
 
 # sql_help.h:197
-#: sql_help.h:555
+#: sql_help.h:561
 msgid "define a new text search parser"
 msgstr "定义一个新文本搜寻剖析器"
 
 # sql_help.h:181
-#: sql_help.h:560
+#: sql_help.h:566
 msgid "define a new text search template"
 msgstr "定义一个新文本搜寻模版"
 
 # sql_help.h:201
-#: sql_help.h:565
+#: sql_help.h:571
 msgid "define a new trigger"
 msgstr "建立新的触发器"
 
 # sql_help.h:205
-#: sql_help.h:570
+#: sql_help.h:576
 msgid "define a new data type"
 msgstr "建立新的资料型别"
 
-#: sql_help.h:580
+#: sql_help.h:586
 msgid "define a new mapping of a user to a foreign server"
 msgstr "将用户的新映射定义到一个外部服务器"
 
 # sql_help.h:213
-#: sql_help.h:585
+#: sql_help.h:591
 msgid "define a new view"
 msgstr "建立新的视观表"
 
 # sql_help.h:217
-#: sql_help.h:590
+#: sql_help.h:596
 msgid "deallocate a prepared statement"
 msgstr "释放一个已预备好的叙述区块"
 
 # sql_help.h:221
-#: sql_help.h:595
+#: sql_help.h:601
 msgid "define a cursor"
 msgstr "建立一个 cursor"
 
 # sql_help.h:225
-#: sql_help.h:600
+#: sql_help.h:606
 msgid "delete rows of a table"
 msgstr "删除资料表中的资料列"
 
-#: sql_help.h:605
+#: sql_help.h:611
 msgid "discard session state"
 msgstr "抛弃 session 状态"
 
-#: sql_help.h:610
+#: sql_help.h:616
 msgid "execute an anonymous code block"
 msgstr "执行一个匿名代码块"
 
 # sql_help.h:229
-#: sql_help.h:615
+#: sql_help.h:621
 msgid "remove an aggregate function"
 msgstr "移除一个聚集函数"
 
 # sql_help.h:233
-#: sql_help.h:620
+#: sql_help.h:626
 msgid "remove a cast"
 msgstr "移除一个型别转换"
 
 # sql_help.h:249
-#: sql_help.h:625
+#: sql_help.h:631
 msgid "remove a collation"
 msgstr "移除一个校对规则"
 
 # sql_help.h:237
-#: sql_help.h:630
+#: sql_help.h:636
 msgid "remove a conversion"
 msgstr "移除一个字元编码转换"
 
 # sql_help.h:241
-#: sql_help.h:635
+#: sql_help.h:641
 msgid "remove a database"
 msgstr "移除资料库"
 
 # sql_help.h:245
-#: sql_help.h:640
+#: sql_help.h:646
 msgid "remove a domain"
 msgstr "移除一个共同值域"
 
 # sql_help.h:293
-#: sql_help.h:645
-#| msgid "remove a trigger"
+#: sql_help.h:651
 msgid "remove an event trigger"
 msgstr "移除事件触发器"
 
 # sql_help.h:237
-#: sql_help.h:650
+#: sql_help.h:656
 msgid "remove an extension"
 msgstr "移除一个扩展"
 
 # sql_help.h:297
-#: sql_help.h:655
+#: sql_help.h:661
 msgid "remove a foreign-data wrapper"
 msgstr "删除一个外部数据封装器"
 
 # sql_help.h:285
-#: sql_help.h:660
+#: sql_help.h:666
 msgid "remove a foreign table"
 msgstr "移除外部引用表"
 
 # sql_help.h:249
-#: sql_help.h:665
+#: sql_help.h:671
 msgid "remove a function"
 msgstr "移除函数"
 
 # sql_help.h:241
-#: sql_help.h:670 sql_help.h:710 sql_help.h:775
+#: sql_help.h:676 sql_help.h:716 sql_help.h:781
 msgid "remove a database role"
 msgstr "移除一个资料库成员"
 
 # sql_help.h:257
-#: sql_help.h:675
+#: sql_help.h:681
 msgid "remove an index"
 msgstr "移除一个索引"
 
 # sql_help.h:261
-#: sql_help.h:680
+#: sql_help.h:686
 msgid "remove a procedural language"
 msgstr "移除一个程序语言"
 
 # sql_help.h:305
-#: sql_help.h:685
-#| msgid "remove a view"
+#: sql_help.h:691
 msgid "remove a materialized view"
 msgstr "移除一个物化视图"
 
 # sql_help.h:269
-#: sql_help.h:690
+#: sql_help.h:696
 msgid "remove an operator"
 msgstr "移除运算子"
 
 # sql_help.h:265
-#: sql_help.h:695
+#: sql_help.h:701
 msgid "remove an operator class"
 msgstr "移除一个运算子类别"
 
 # sql_help.h:269
-#: sql_help.h:700
+#: sql_help.h:706
 msgid "remove an operator family"
 msgstr "移除一个运算子家族"
 
-#: sql_help.h:705
+#: sql_help.h:711
 msgid "remove database objects owned by a database role"
 msgstr "依照一个资料库角色拥有的资料库物件来移除"
 
 # sql_help.h:273
-#: sql_help.h:715
+#: sql_help.h:721
 msgid "remove a rewrite rule"
 msgstr "移除一个重写规则"
 
 # sql_help.h:277
-#: sql_help.h:720
+#: sql_help.h:726
 msgid "remove a schema"
 msgstr "移除一个架构模式"
 
 # sql_help.h:281
-#: sql_help.h:725
+#: sql_help.h:731
 msgid "remove a sequence"
 msgstr "移除序列数"
 
 # sql_help.h:237
-#: sql_help.h:730
+#: sql_help.h:736
 msgid "remove a foreign server descriptor"
 msgstr "删除一个外部服务器描述符"
 
 # sql_help.h:285
-#: sql_help.h:735
+#: sql_help.h:741
 msgid "remove a table"
 msgstr "移除资料表"
 
 # sql_help.h:289
-#: sql_help.h:740
+#: sql_help.h:746
 msgid "remove a tablespace"
 msgstr "移除一个表空间"
 
 # sql_help.h:301
-#: sql_help.h:745
+#: sql_help.h:751
 msgid "remove a text search configuration"
 msgstr "移除一个文本搜寻组态"
 
 # sql_help.h:301
-#: sql_help.h:750
+#: sql_help.h:756
 msgid "remove a text search dictionary"
 msgstr "移除一个文本搜寻字典"
 
 # sql_help.h:289
-#: sql_help.h:755
+#: sql_help.h:761
 msgid "remove a text search parser"
 msgstr "移除一个文本搜寻剖析器"
 
 # sql_help.h:277
-#: sql_help.h:760
+#: sql_help.h:766
 msgid "remove a text search template"
 msgstr "移除一个文本搜寻模版"
 
 # sql_help.h:293
-#: sql_help.h:765
+#: sql_help.h:771
 msgid "remove a trigger"
 msgstr "移除触发器"
 
 # sql_help.h:297
-#: sql_help.h:770
+#: sql_help.h:776
 msgid "remove a data type"
 msgstr "移除资料型别"
 
-#: sql_help.h:780
+#: sql_help.h:786
 msgid "remove a user mapping for a foreign server"
 msgstr "为外部服务器删除用户映射"
 
 # sql_help.h:305
-#: sql_help.h:785
+#: sql_help.h:791
 msgid "remove a view"
 msgstr "移除一个视观表"
 
 # sql_help.h:313
-#: sql_help.h:795
+#: sql_help.h:801
 msgid "execute a prepared statement"
 msgstr "执行一个已准备好的叙述区块"
 
 # sql_help.h:317
-#: sql_help.h:800
+#: sql_help.h:806
 msgid "show the execution plan of a statement"
 msgstr "显示一个叙述区块的执行计划"
 
 # sql_help.h:321
-#: sql_help.h:805
+#: sql_help.h:811
 msgid "retrieve rows from a query using a cursor"
 msgstr "从使用 cursor 的查询读取资料"
 
 # sql_help.h:325
-#: sql_help.h:810
+#: sql_help.h:816
 msgid "define access privileges"
 msgstr "建立存取权限"
 
 # sql_help.h:329
-#: sql_help.h:815
+#: sql_help.h:821
 msgid "create new rows in a table"
 msgstr "在资料表中建立资料"
 
 # sql_help.h:333
-#: sql_help.h:820
+#: sql_help.h:826
 msgid "listen for a notification"
 msgstr "等待通知"
 
 # sql_help.h:337
-#: sql_help.h:825
+#: sql_help.h:831
 msgid "load a shared library file"
 msgstr "加载一个共享库文件"
 
 # sql_help.h:341
-#: sql_help.h:830
+#: sql_help.h:836
 msgid "lock a table"
 msgstr "锁住资料表"
 
 # sql_help.h:345
-#: sql_help.h:835
+#: sql_help.h:841
 msgid "position a cursor"
 msgstr "移动游标位置"
 
 # sql_help.h:349
-#: sql_help.h:840
+#: sql_help.h:846
 msgid "generate a notification"
 msgstr "产生通告"
 
 # sql_help.h:353
-#: sql_help.h:845
+#: sql_help.h:851
 msgid "prepare a statement for execution"
 msgstr "预先编译叙述以执行"
 
 # sql_help.h:25
 # sql_help.h:373
-#: sql_help.h:850
+#: sql_help.h:856
 msgid "prepare the current transaction for two-phase commit"
 msgstr "预备当前事务交易的二段式提交"
 
-#: sql_help.h:855
+#: sql_help.h:861
 msgid "change the ownership of database objects owned by a database role"
 msgstr "依照一个资料库角色拥有的的资料库物件来更变所有权"
 
-#: sql_help.h:860
+#: sql_help.h:866
 msgid "replace the contents of a materialized view"
 msgstr "替换物化视图的内容"
 
 # sql_help.h:357
-#: sql_help.h:865
+#: sql_help.h:871
 msgid "rebuild indexes"
 msgstr "重新建构索引"
 
 # sql_help.h:361
-#: sql_help.h:870
+#: sql_help.h:876
 msgid "destroy a previously defined savepoint"
 msgstr "删除先前建立的储存点(Savepoint)"
 
 # sql_help.h:365
-#: sql_help.h:875
+#: sql_help.h:881
 msgid "restore the value of a run-time parameter to the default value"
 msgstr "将执行时期参数还原成预设值"
 
 # sql_help.h:369
-#: sql_help.h:880
+#: sql_help.h:886
 msgid "remove access privileges"
 msgstr "移除存取权限"
 
-#: sql_help.h:890
+#: sql_help.h:896
 msgid "cancel a transaction that was earlier prepared for two-phase commit"
 msgstr "取消一个可以为两阶段提交容易配置的事务"
 
 # sql_help.h:377
-#: sql_help.h:895
+#: sql_help.h:901
 msgid "roll back to a savepoint"
 msgstr "还原至一个储存点(Savepoint)"
 
 # sql_help.h:381
-#: sql_help.h:900
+#: sql_help.h:906
 msgid "define a new savepoint within the current transaction"
 msgstr "在目前的事物交易中建立新的储存点(Savepoint)"
 
 # sql_help.h:117
-#: sql_help.h:905
+#: sql_help.h:911
 msgid "define or change a security label applied to an object"
 msgstr "定义或更改一个对象的安全标签"
 
 # sql_help.h:385
-#: sql_help.h:910 sql_help.h:955 sql_help.h:985
+#: sql_help.h:916 sql_help.h:961 sql_help.h:991
 msgid "retrieve rows from a table or view"
 msgstr "从资料表或视观表读取资料"
 
 # sql_help.h:393
-#: sql_help.h:920
+#: sql_help.h:926
 msgid "change a run-time parameter"
 msgstr "更改一个执行时期参数"
 
 # sql_help.h:397
-#: sql_help.h:925
+#: sql_help.h:931
 msgid "set constraint check timing for the current transaction"
 msgstr "为当前事务设定约束限制检查的时间模式"
 
 # sql_help.h:405
-#: sql_help.h:930
+#: sql_help.h:936
 msgid "set the current user identifier of the current session"
 msgstr "设置当前 session 的当前用户的身份标识"
 
 # sql_help.h:401
-#: sql_help.h:935
+#: sql_help.h:941
 msgid ""
 "set the session user identifier and the current user identifier of the "
 "current session"
 msgstr "设置会话用户标识符和当前会话的当前用户标识符"
 
 # sql_help.h:405
-#: sql_help.h:940
+#: sql_help.h:946
 msgid "set the characteristics of the current transaction"
 msgstr "设定目前事物交易属性"
 
 # sql_help.h:409
-#: sql_help.h:945
+#: sql_help.h:951
 msgid "show the value of a run-time parameter"
 msgstr "显示执行时期的参数值"
 
 # sql_help.h:425
-#: sql_help.h:960
+#: sql_help.h:966
 msgid "empty a table or set of tables"
 msgstr "空的资料表或资料表设置"
 
 # sql_help.h:421
-#: sql_help.h:965
+#: sql_help.h:971
 msgid "stop listening for a notification"
 msgstr "停止倾听通告"
 
 # sql_help.h:425
-#: sql_help.h:970
+#: sql_help.h:976
 msgid "update rows of a table"
 msgstr "更新资料表中的资料列"
 
 # sql_help.h:429
-#: sql_help.h:975
+#: sql_help.h:981
 msgid "garbage-collect and optionally analyze a database"
 msgstr "垃圾收集(GC)并选择性的分析资料库"
 
-#: sql_help.h:980
+#: sql_help.h:986
 msgid "compute a set of rows"
 msgstr "计算一个资料列的集合"
 
-#: startup.c:167
+#: startup.c:166
 #, c-format
-#| msgid "%s can only be used in transaction blocks"
 msgid "%s: -1 can only be used in non-interactive mode\n"
 msgstr "%s: -1 只能用于非交互模式下\n"
 
 # command.c:1148
-#: startup.c:269
+#: startup.c:266
 #, c-format
 msgid "%s: could not open log file \"%s\": %s\n"
 msgstr "%s:无法开启日志档 \"%s\":%s\n"
 
-#: startup.c:331
+#: startup.c:328
 #, c-format
 msgid ""
 "Type \"help\" for help.\n"
@@ -5142,37 +5311,42 @@ msgstr ""
 "\n"
 
 # startup.c:446
-#: startup.c:476
+#: startup.c:471
 #, c-format
 msgid "%s: could not set printing parameter \"%s\"\n"
 msgstr "%s:无法设定列印参数 \"%s\"\n"
 
 # startup.c:492
-#: startup.c:516
+#: startup.c:511
 #, c-format
 msgid "%s: could not delete variable \"%s\"\n"
 msgstr "%s:无法删除变数 \"%s\"\n"
 
 # startup.c:502
-#: startup.c:526
+#: startup.c:521
 #, c-format
 msgid "%s: could not set variable \"%s\"\n"
 msgstr "%s:无法设定变数 \"%s\"\n"
 
 # startup.c:533
 # startup.c:539
-#: startup.c:569 startup.c:575
+#: startup.c:564 startup.c:570
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "尝试 \"%s --help\" 以得到更多资讯。\n"
 
 # startup.c:557
-#: startup.c:592
+#: startup.c:587
 #, c-format
 msgid "%s: warning: extra command-line argument \"%s\" ignored\n"
 msgstr "%s:警告:忽略多余的命令列参数 \"%s\"\n"
 
-#: tab-complete.c:3962
+#: startup.c:609
+#, c-format
+msgid "%s: could not find own program executable\n"
+msgstr "%s: 无法找到执行文件\n"
+
+#: tab-complete.c:4110
 #, c-format
 msgid ""
 "tab completion query failed: %s\n"