OSDN Git Service

merge original branch.
[tortoisegit/TortoiseGitJp.git] / src / ResText / POFile.h
1 // TortoiseSVN - a Windows shell extension for easy version control\r
2 \r
3 // Copyright (C) 2003-2007 - TortoiseSVN\r
4 \r
5 // This program is free software; you can redistribute it and/or\r
6 // modify it under the terms of the GNU General Public License\r
7 // as published by the Free Software Foundation; either version 2\r
8 // of the License, or (at your option) any later version.\r
9 \r
10 // This program is distributed in the hope that it will be useful,\r
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 // GNU General Public License for more details.\r
14 \r
15 // You should have received a copy of the GNU General Public License\r
16 // along with this program; if not, write to the Free Software Foundation,\r
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\r
18 #pragma once\r
19 #include <string>\r
20 #include <map>\r
21 #include <set>\r
22 #include <vector>\r
23 \r
24 typedef struct tagResourceEntry\r
25 {\r
26         WORD                                            menuID;\r
27         std::vector<std::wstring>       translatorcomments;\r
28         std::vector<std::wstring>       automaticcomments;\r
29         std::set<DWORD>                         resourceIDs;\r
30         std::wstring                            flag;\r
31         std::wstring                            msgstr;\r
32 } RESOURCEENTRY, * LPRESOURCEENTRY;\r
33 \r
34 /**\r
35  * \ingroup ResText\r
36  * Class to handle po-files. Inherits from an std::map which assigns\r
37  * string IDs to additional information, including the translated strings.\r
38  *\r
39  * Provides methods to load and save a po-file with the translation information\r
40  * we need for ResText.\r
41  */\r
42 class CPOFile : public std::map<std::wstring, RESOURCEENTRY>\r
43 {\r
44 public:\r
45         CPOFile();\r
46         ~CPOFile(void);\r
47 \r
48         BOOL ParseFile(LPCTSTR szPath, BOOL bUpdateExisting = TRUE);\r
49         BOOL SaveFile(LPCTSTR szPath);\r
50         void SetQuiet(BOOL bQuiet = TRUE) {m_bQuiet = bQuiet;}\r
51 private:\r
52         BOOL m_bQuiet;\r
53 };\r