Plural patch, per Marek (after much much talk).
authorguillaume <guillaume@a7884b65-44f6-0310-8a51-81a127f17b15>
Thu, 11 Jun 2009 15:25:13 +0000 (15:25 +0000)
committerguillaume <guillaume@a7884b65-44f6-0310-8a51-81a127f17b15>
Thu, 11 Jun 2009 15:25:13 +0000 (15:25 +0000)
git-svn-id: svn://svn.pgadmin.org/trunk/pgadmin3@7921 a7884b65-44f6-0310-8a51-81a127f17b15

35 files changed:
i18n/da_DK/pgadmin3.po
i18n/de_CH/pgadmin3.po
i18n/de_DE/pgadmin3.po
i18n/el_GR/pgadmin3.po
i18n/es_ES/pgadmin3.po
i18n/fi_FI/pgadmin3.po
i18n/fr_FR/pgadmin3.po
i18n/hr_HR/pgadmin3.po
i18n/hu_HU/pgadmin3.po
i18n/it_IT/pgadmin3.po
i18n/ja_JP/pgadmin3.po
i18n/ko_KR/pgadmin3.po
i18n/lt_LT/pgadmin3.po
i18n/lv_LV/pgadmin3.po
i18n/nb_NO/pgadmin3.po
i18n/nl_NL/pgadmin3.po
i18n/pl_PL/pgadmin3.po
i18n/pt_BR/pgadmin3.po
i18n/pt_PT/pgadmin3.po
i18n/ro_RO/pgadmin3.po
i18n/ru_RU/pgadmin3.po
i18n/sk_SK/pgadmin3.po
i18n/sl_SI/pgadmin3.po
i18n/sr_RS/pgadmin3.po
i18n/sv_SE/pgadmin3.po
i18n/tr_TR/pgadmin3.po
i18n/uk_UA/pgadmin3.po
i18n/vi_VN/pgadmin3.po
pgadmin/ctl/ctlSQLBox.cpp
pgadmin/db/pgQueryThread.cpp
pgadmin/frm/frmEditGrid.cpp
pgadmin/frm/frmExport.cpp
pgadmin/frm/frmQuery.cpp
pgadmin/slony/slNode.cpp
stringextract

index 2e64da15eb7b94739167a44f275a582b72df076b..0e0a79cc813c7166ced6ebcd9edb988c6d37627a 100644 (file)
@@ -13,6 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index 36c0298a30e9ead323dafe3f82a3c48da1b09f4f..3277ccf40c044f5667ed8a33dad54aee28c3515a 100644 (file)
@@ -14,6 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index c91fac52078ea21840d23a13d0721e3e0f04743c..953afd0851f37536b9b3d273fd4010859f89c5af 100644 (file)
@@ -14,6 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index 0105d595fa35a4f58c57d2a2bc0659132fe6aee5..1f643f92fc5fb5cde4952862ca9b51cd8135a689 100644 (file)
@@ -14,6 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index 23343d9e22a53d90ef1af70433b1089133860c87..e260fe0c71c72fe0cbf3a45b9f15e869e2fb7e52 100644 (file)
@@ -15,6 +15,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Poedit-Language: Spanish\n"
 "X-Poedit-Basepath: /home/dags/desarrollo/pgadmin3/pgadmin3\n"
 
index 46d7603a41d2535515b9e58471c0b9839dbefe1d..6fc933ca692938a0f47c0e586b00ed288c3917e7 100644 (file)
@@ -14,6 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Poedit-Language: Finnish\n"
 "X-Poedit-Country: FINLAND\n"
 "X-Poedit-Basepath: .\n"
index 2f1a9d522d4bf15d5e68be05360e37213b428439..8ae94563d44d050f70295df5d9194510c8ac35e3 100644 (file)
@@ -18,6 +18,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Generator: KBabel 1.11.2\n"
 
 #: src/frm/frmQuery.cpp:1269
index 707a73d8f2a713c8f801b3a31fe1ef5b012e6b93..0dadda658e09483ca7f3f2a46febd5b84f8526d3 100644 (file)
@@ -12,6 +12,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index 528d7c46d4b47a71bc04b3706d56ab7e2aa3dd2e..9d832db8c4b67338e0cb47a75aa5771e26128bf9 100644 (file)
@@ -14,6 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index f99e47585a7d74acd6d1de2e477acc60b80c329f..81116d11e42f764cff8cff825d06092a427de616 100644 (file)
@@ -14,6 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index abca57bcb83979d259ed4a9c82b0d6ec20f17cad..1870c811dd8051e86b5fa6e9c4784948d64a324e 100644 (file)
@@ -9,6 +9,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 "X-Poedit-Language: Japanese\n"
 "X-Poedit-Country: JAPAN\n"
 "X-Poedit-SourceCharset: utf-8\n"
index c35f862d687fbf87baa9111003922407308b9277..5ae107ac886cd3912991f74090b502f5b6e1bead 100644 (file)
@@ -9,6 +9,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 "X-Poedit-Language: Korean\n"
 "X-Poedit-Country: KOREA\n"
 "X-Poedit-SourceCharset: utf-8\n"
index 8550fa6c1e4b26f12e94b91562d8e2cad7c2bdb3..9565a85415101a40bdfe07820c7beb31442608d8 100644 (file)
@@ -14,6 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
+"100<10 || n%100>=20) ? 1 : 2);\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index 486ac5a640bee125f7baeeb894b74d502a7fa221..5d47ca47c0f296428148d33d7544162904ae2cad 100644 (file)
@@ -9,6 +9,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
+"2);\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index 86a953ac9a8fc058e8ba0bd6758af9e49a56b404..b867073a0e0bd8e52b39b45921790006b0edc969 100644 (file)
@@ -13,6 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index 30641fdd664d977f0d7c90be434ca2c3b93ec557..65a1492a4cd4d793827be707c23ffc23178cbf8c 100644 (file)
@@ -14,6 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Poedit-Language: Dutch\n"
 "X-Poedit-Country: NETHERLANDS\n"
 
index 78c8c2b7a0a63184bac8086a7fffe0a7a9e18558..9a31950ffaa5fea402e02d364f83b25217f7d598 100644 (file)
@@ -12,6 +12,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index 26522ab67697317efbcc6d1e2e30f71ee9f443d1..a6b87e1786117000036266e6987073b5d4a86aa7 100644 (file)
@@ -16,6 +16,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index 821d59a16e209c47fd609cb6c323bafdb03ebed1..9e422d1534491b81b3ada94832420e7cc300a61a 100644 (file)
@@ -13,6 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Poedit-Language: Portuguese\n"
 "X-Poedit-Country: PORTUGAL\n"
 
index 664c8fe337ed5f123bf71ccc9719680381c54479..2c9f53d98c6e411f985727a3a0913a63cd52ce51 100644 (file)
@@ -13,6 +13,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
+"20)) ? 1 : 2;\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index f1e1699001820f6884cf0a4a5e7b44b90e33ac24..18641d5b3cc457dd6d23056ec779887554e39229 100644 (file)
@@ -25,6 +25,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Poedit-Language: Russian\n"
 "X-Poedit-Country: RUSSIAN FEDERATION\n"
 "X-Poedit-SourceCharset: utf-8\n"
index 874593b4cc21cd54996d465e70bde888dc55d2d6..6ef44853ec03ea0ace23920aef1513a8e10ec644 100644 (file)
@@ -12,7 +12,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"org>\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 "X-Generator: KBabel 1.3.1\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
index 4f8430021d5f4be57cfdc6eb90db27cbd613bbd8..491bceeb716de38769f8f29c4c3abf0433c13741 100644 (file)
@@ -14,6 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
+"%100==4 ? 2 : 3);\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index 90bfd6b57879a0a204ef7b59146ef294396e040a..0d43e9a654603366058d8f74e1d595b02684d64e 100644 (file)
@@ -11,6 +11,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Poedit-Language: Serbo-Croatian\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
index eaac0683ddaf0ab9732499fc110319adbb9a3227..529db0d1d7e29000942cf1d0c1735e2469bf1188 100644 (file)
@@ -14,6 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index 90e6750392c51ac42fed4b7268aedff3f3d38269..5e060b7002df364beb65e8362de0878abecd548a 100644 (file)
@@ -15,6 +15,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index 0664d7a54cbdcb8b21ec9a28ce7a5baa03dda014..c8dd36a4f554b2cbc1d57d7be9b302dd1815e14e 100644 (file)
@@ -14,6 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index 0664d7a54cbdcb8b21ec9a28ce7a5baa03dda014..ffd6fbe40e4869b012836aef3d8a961405f26b81 100644 (file)
@@ -14,6 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 #: src/frm/frmQuery.cpp:1269 src/frm/frmQuery.cpp:1623
 #: pgadmin/frm/frmQuery.cpp:1866 pgadmin/frm/frmQuery.cpp:2283
index c64814cb2ffc558dc4694a6c2be73f17cf13ecff..5284dff8677313037b09e5930f009e03d75227dd 100644 (file)
@@ -192,7 +192,7 @@ bool ctlSQLBox::ReplaceAll(const wxString &find, const wxString &replace, bool w
     GotoPos(initialPos);
 
     wxString msg;
-    msg.Printf(_("%d replacements made."), count);
+    msg.Printf(wxPLURAL("%d replacement made.", "%d replacements made.", count), count);
     wxMessageBox(msg, _("Replace all"));
 
     if (count)
index 2901af108ac816d5e4592d2e59405147cee8b26b..274324451365c1f530864d4b7fefbcc404a6f2db 100644 (file)
@@ -145,14 +145,16 @@ int pgQueryThread::execute()
             insertedOid=PQoidValue(res);
             if (insertedOid && insertedOid != (OID)-1)
                 appendMessage(wxString::Format(_("Query inserted one row with OID %d.\n"), insertedOid));
-                       else
-                appendMessage(wxString::Format(_("Query result with %d rows will be returned.\n"), PQntuples(result)));
+            else
+                appendMessage(wxString::Format(wxPLURAL("Query result with %d row will be returned.\n", "Query result with %d rows will be returned.\n", 
+                    PQntuples(result)), PQntuples(result)));
             continue;
         }
         if (lastResult)
         {
             if (PQntuples(lastResult))
-                appendMessage(wxString::Format(_("Query result with %d rows discarded.\n"), PQntuples(lastResult)));
+                appendMessage(wxString::Format(wxPLURAL("Query result with %d row discarded.\n", "Query result with %d rows discarded.\n", 
+                    PQntuples(lastResult)), PQntuples(lastResult)));
             PQclear(lastResult);
         }
         lastResult=res;
index 7a078b757dd8318ee27ed4d6f6145fbd1c0ef0df..65c3930afd59cc0d80963e7941d917f6a05c9314 100644 (file)
@@ -387,7 +387,7 @@ void frmEditGrid::SetLimit(const int rowlimit)
         if (limit <= 0)
             cbLimit->SetValue(_("No limit"));
         else
-                cbLimit->SetValue(wxString::Format(_("%i rows"), limit));
+            cbLimit->SetValue(wxString::Format(wxPLURAL("%i row", "%i rows", limit), limit));
     }
 }
 
@@ -668,7 +668,9 @@ void frmEditGrid::OnCopy(wxCommandEvent &ev)
         {
             int copied;
             copied = sqlGrid->Copy();
-            SetStatusText(wxString::Format(_("Data from %d rows copied to clipboard."), copied));
+            SetStatusText(wxString::Format(
+                wxPLURAL("Data from %d row copied to clipboard.", "Data from %d rows copied to clipboard.", copied), 
+                copied));
         }
     }
 }
@@ -1062,10 +1064,7 @@ void frmEditGrid::OnDelete(wxCommandEvent& event)
         return;
 
     wxString prompt;
-    if (i == 1)
-        prompt.Printf(_("Are you sure you wish to delete the selected row?"));
-    else
-        prompt.Printf(_("Are you sure you wish to delete the %d selected rows?"), i);
+    prompt.Printf(wxPLURAL("Are you sure you wish to delete the selected row?", "Are you sure you wish to delete the %d selected rows?", i));
 
     wxMessageDialog msg(this, prompt, _("Delete rows?"), wxYES_NO | wxICON_QUESTION);
     if (msg.ShowModal() != wxID_YES)
@@ -1088,7 +1087,10 @@ void frmEditGrid::OnDelete(wxCommandEvent& event)
             i > 0 &&
             show_continue_message)
         {
-            wxMessageDialog msg(this, wxString::Format(_("There was an error deleting the previous record.\nAre you sure you wish to delete the remaining %d rows ?"), i), _("Delete more records ?"), wxYES_NO | wxICON_QUESTION);
+            wxMessageDialog msg(this, wxString::Format(wxPLURAL(
+                "There was an error deleting the previous record.\nAre you sure you wish to delete the remaining %d row?", 
+                "There was an error deleting the previous record.\nAre you sure you wish to delete the remaining %d rows?", 
+                i), i), _("Delete more records ?"), wxYES_NO | wxICON_QUESTION);
             if (msg.ShowModal() != wxID_YES)
                 break;
             else
@@ -1099,7 +1101,7 @@ void frmEditGrid::OnDelete(wxCommandEvent& event)
 
     sqlGrid->EndBatch();
 
-    SetStatusText(wxString::Format(_("%d rows."), sqlGrid->GetTable()->GetNumberStoredRows()), 0);
+    SetStatusText(wxString::Format(wxPLURAL("%d row.", "%d rows.", sqlGrid->GetTable()->GetNumberStoredRows()), sqlGrid->GetTable()->GetNumberStoredRows()), 0);
 }
 
 
@@ -1318,7 +1320,7 @@ void frmEditGrid::Go()
         toolsMenu->Enable(MNU_REMOVESORT, true);
         return;
     }
-    SetStatusText(wxString::Format(_("%d rows."), thread->DataSet()->NumRows()), 0);
+    SetStatusText(wxString::Format(wxPLURAL("%d row.", "%d rows.", thread->DataSet()->NumRows()), thread->DataSet()->NumRows()), 0);
 
     sqlGrid->BeginBatch();
 
@@ -3082,7 +3084,7 @@ wxWindow *editGridFilteredFactory::StartDialog(frmMain *form, pgObject *obj)
 
 editGridLimitedFactory::editGridLimitedFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar, int limit) : editGridFactoryBase(list)
 {
-    mnu->Append(id, wxString::Format(_("View Top %i Rows"), limit), _("View a limited number of rows in the selected object."));
+    mnu->Append(id, wxString::Format(wxPLURAL("View Top %i Row", "View Top %i Rows", limit), limit), _("View a limited number of rows in the selected object."));
     rowlimit = limit;
     context = false;
 }
index f62e16913bddfbe81a82f4234c5921995082c934..acca686529da3ecee06b6de44b78688807d3fa6b 100644 (file)
@@ -287,7 +287,10 @@ bool frmExport::Export(pgSet *set)
     file.Close();
 
     if (skipped)
-        wxLogError(_("Data export incomplete.\n\n%d row(s) contained characters that could not be converted to the local charset.\n\nPlease correct the data or try using UTF8 instead."), skipped);
+        wxLogError(wxPLURAL(
+            "Data export incomplete.\n\n%d row contained characters that could not be converted to the local charset.\n\nPlease correct the data or try using UTF8 instead.", 
+            "Data export incomplete.\n\n%d rows contained characters that could not be converted to the local charset.\n\nPlease correct the data or try using UTF8 instead.", 
+            skipped), skipped);
     else
         wxMessageBox(_("Data export completed successfully."), _("Export data"), wxICON_INFORMATION | wxOK);
 
index c7d9be755bf7c36e6ae476a64fc3050ce867b666..4a7badfb1e31201ab41dda4d49ac1972545a0c7a 100644 (file)
@@ -2106,9 +2106,13 @@ void frmQuery::OnQueryComplete(wxCommandEvent &ev)
             }
             else
             {
-                showMessage(wxString::Format(_("Query returned successfully: %d rows affected, %s ms execution time."),
+                showMessage(wxString::Format(
+                    wxPLURAL(
+                        "Query returned successfully: %d row affected, %s ms execution time.", 
+                        "Query returned successfully: %d rows affected, %s ms execution time.", 
+                        insertedCount),
                     insertedCount, elapsedQuery.ToString().c_str()),
-                    wxString::Format(_("%d rows affected."), insertedCount));
+                    wxString::Format(wxPLURAL("%d row affected.", "%d rows affected.", insertedCount), insertedCount));
             }
         }
         else
@@ -2167,7 +2171,7 @@ void frmQuery::OnQueryComplete(wxCommandEvent &ev)
 
         if (qi->toFile)
         {
-            SetStatusText(wxString::Format(_("%d rows."), rowsTotal), STATUSPOS_ROWS);
+            SetStatusText(wxString::Format(wxPLURAL("%d row.", "%d rows.", rowsTotal), rowsTotal), STATUSPOS_ROWS);
 
             if (rowsTotal)
             {
@@ -2192,11 +2196,13 @@ void frmQuery::OnQueryComplete(wxCommandEvent &ev)
             {
                 sqlResult->DisplayData(true);
 
-                showMessage(wxString::Format(_("%d rows retrieved."), sqlResult->NumRows()), _("OK."));
+                showMessage(wxString::Format(
+                    wxPLURAL("%d row retrieved.", "%d rows retrieved.", sqlResult->NumRows()), 
+                    sqlResult->NumRows()), _("OK."));
             }
             else
             {
-                SetStatusText(wxString::Format(_("Retrieving data: %d rows."), rowsTotal), STATUSPOS_MSGS);
+                SetStatusText(wxString::Format(wxPLURAL("Retrieving data: %d row.", "Retrieving data: %d rows.", rowsTotal), rowsTotal), STATUSPOS_MSGS);
                 wxTheApp->Yield(true);
 
                 sqlResult->DisplayData();
@@ -2207,9 +2213,9 @@ void frmQuery::OnQueryComplete(wxCommandEvent &ev)
                 msgResult->AppendText(str);
                 msgHistory->AppendText(str);
 
-                showMessage(wxString::Format(_("%ld rows retrieved."), sqlResult->NumRows()), _("OK."));
+                showMessage(wxString::Format(wxPLURAL("%ld row retrieved.", "%ld rows retrieved.", sqlResult->NumRows()), sqlResult->NumRows()), _("OK."));
             }
-            SetStatusText(wxString::Format(_("%d rows."), rowsTotal), STATUSPOS_ROWS);
+            SetStatusText(wxString::Format(wxPLURAL("%d row.", "%d rows.", rowsTotal), rowsTotal), STATUSPOS_ROWS);
         }
     }
 
@@ -2296,7 +2302,9 @@ void frmQuery::completeQuery(bool done, bool explain, bool verbose)
         if (statusMsg.Last() == '.')
             statusMsg = statusMsg.Left(statusMsg.Length() - 1);
 
-        SetStatusText(wxString::Format(_("%s (%d asynchronous notifications received)."), statusMsg.c_str(), notifies), STATUSPOS_MSGS);
+        SetStatusText(wxString::Format(
+            wxPLURAL("%s (%d asynchronous notification received).", "%s (%d asynchronous notifications received).", notifies),
+            statusMsg.c_str(), notifies), STATUSPOS_MSGS);
     }
 
     msgResult->AppendText(wxT("\n"));
index 82d4e14357766e5e043da4a95a011200aac7dbc3..018f8956ec4201c7530fe1a5e3a0012d86bed08a 100644 (file)
@@ -108,7 +108,8 @@ bool slNode::CheckAcksAndContinue(wxFrame *frame)
     if (!l)
         return true;
 
-    wxMessageDialog dlg(frame, wxString::Format(_("There are %ld event acknowledgements outstanding.\nContinue anyway?"), l),
+    wxMessageDialog dlg(frame, wxString::Format(wxPLURAL("There are %ld event acknowledgement outstanding.\nContinue anyway?", 
+        "There are %ld event acknowledgements outstanding.\nContinue anyway?", l), l),
         _("Events pending"), wxYES_NO | wxNO_DEFAULT);
 
     return dlg.ShowModal() == wxID_YES;
index 4d91c184fa176f85913a0df26441dc1e55bcd0be..91a05be38e627a608c3705fa0bb9485fc7df3f23 100755 (executable)
 
 cp pgadmin3-release.pot pgadmin3.pot
 
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/ctl/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/frm/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/debugger/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/db/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/pgscript/exceptions/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/pgscript/expressions/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/pgscript/statements/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/pgscript/generators/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/pgscript/objects/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/pgscript/utilities/m_apm/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/pgscript/utilities/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/pgscript/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/agent/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/schema/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/utils/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/slony/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/dlg/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/gqb/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/ui/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/*.cpp
-xgettext -k_ -k__ -j -s -o pgadmin3.pot xtra/pgscript/bin/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/ctl/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/frm/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/debugger/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/db/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/pgscript/exceptions/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/pgscript/expressions/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/pgscript/statements/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/pgscript/generators/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/pgscript/objects/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/pgscript/utilities/m_apm/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/pgscript/utilities/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/pgscript/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/agent/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/schema/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/utils/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/slony/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/dlg/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/gqb/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/ui/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/*.cpp
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot xtra/pgscript/bin/*.cpp
 
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/ctl/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/frm/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/debugger/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/db/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/pgscript/exceptions/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/pgscript/expressions/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/pgscript/statements/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/pgscript/generators/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/pgscript/objects/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/pgscript/utilities/mapm-lib/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/pgscript/utilities/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/pgscript/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/agent/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/schema/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/utils/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/slony/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/dlg/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/gqb/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/*.h
-xgettext -k_ -k__ -j -s -o pgadmin3.pot pgadmin/include/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/ctl/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/frm/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/debugger/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/db/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/pgscript/exceptions/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/pgscript/expressions/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/pgscript/statements/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/pgscript/generators/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/pgscript/objects/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/pgscript/utilities/mapm-lib/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/pgscript/utilities/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/pgscript/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/agent/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/schema/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/utils/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/slony/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/dlg/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/gqb/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/*.h
+xgettext -k_ -k__ -kwxPLURAL:1,2 -j -s -o pgadmin3.pot pgadmin/include/*.h
 
 TMPDIR=`mktemp -d tmpwork` || exit 1
 echo "$TMPDIR"