Author: jani
Date: Sat Sep 28 12:23:35 2013
New Revision: 1527180
URL: http://svn.apache.org/r1527180
Log:
update to make "convert" faster
1) only save modified .po files
2) corrected DELETE problem
Modified:
openoffice/branches/l10n40/main/l10ntools/source/gL10nMem.cxx
openoffice/branches/l10n40/main/l10ntools/source/gL10nMem.hxx
openoffice/branches/l10n40/main/l10ntools/source/gL10nMemDB.cxx
Modified: openoffice/branches/l10n40/main/l10ntools/source/gL10nMem.cxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/l10n40/main/l10ntools/source/gL10nMem.cxx?rev=1527180&r1=1527179&r2=1527180&view=diff
==============================================================================
--- openoffice/branches/l10n40/main/l10ntools/source/gL10nMem.cxx (original)
+++ openoffice/branches/l10n40/main/l10ntools/source/gL10nMem.cxx Sat Sep 28
12:23:35 2013
@@ -293,9 +293,14 @@ void l10nMem_impl::saveLanguages(l10nMem
// save all languages
for (iL = 1; iL < iLsize; ++iL)
{
+ // only save language file if modified
+ if (!mcDb.mcLangList[iL].mbChanged)
+ continue;
+
+ mcDb.mcLangList[iL].mbChanged = false;
convert_gen savePo(cMem, sTargetDir, sTargetDir, sFileName);
- savePo.startSave(mcDb.mcLangList[iL] + "/", sFileName);
+ savePo.startSave(mcDb.mcLangList[iL].msName + "/", sFileName);
for (iE = 1; iE < iEsize; ++iE)
{
l10nMem_enus_entry& cE = mcDb.mcENUSlist[iE];
@@ -628,7 +633,7 @@ void l10nMem_impl::convEntryKey(int
if (sMsgId == curE.msMsgId)
{
curENUSindex = ivEntryList[i];
- if (mcDb.mbStrictMode)
+ if (curE.meState == l10nMem::ENTRY_DELETED)
curE.meState = l10nMem::ENTRY_NORMAL;
break;
}
@@ -671,5 +676,6 @@ void l10nMem_impl::convEntryKey(int
curL.msMsgStr = sMsgStr;
curL.mbFuzzy = bIsFuzzy;
curE.meState = l10nMem::ENTRY_CHANGED;
+ mcDb.mcLangList[mcDb.miCurLangInx].mbChanged = true;
}
}
Modified: openoffice/branches/l10n40/main/l10ntools/source/gL10nMem.hxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/l10n40/main/l10ntools/source/gL10nMem.hxx?rev=1527180&r1=1527179&r2=1527180&view=diff
==============================================================================
--- openoffice/branches/l10n40/main/l10ntools/source/gL10nMem.hxx (original)
+++ openoffice/branches/l10n40/main/l10ntools/source/gL10nMem.hxx Sat Sep 28
12:23:35 2013
@@ -84,21 +84,34 @@ class l10nMem_file_entry
/******************** C L A S S D E F I N I T I O N ********************/
+class l10nMem_lang_list_entry
+{
+ public:
+ l10nMem_lang_list_entry(const std::string& sName);
+ ~l10nMem_lang_list_entry();
+
+ std::string msName; // language Name
+ bool mbChanged; // used for "convert", true if language is
modified
+};
+
+
+
+/******************** C L A S S D E F I N I T I O N ********************/
class l10nMem_db
{
public:
l10nMem_db();
~l10nMem_db();
- int miCurFileInx;
- int miCurLangInx;
- int miCurENUSinx;
- bool mbNeedWrite;
- bool mbConvertMode;
- bool mbStrictMode;
- std::vector<l10nMem_enus_entry> mcENUSlist;
- std::vector<l10nMem_file_entry> mcFileList;
- std::vector<std::string> mcLangList;
+ int miCurFileInx;
+ int miCurLangInx;
+ int miCurENUSinx;
+ bool mbNeedWrite;
+ bool mbConvertMode;
+ bool mbStrictMode;
+ std::vector<l10nMem_enus_entry> mcENUSlist;
+ std::vector<l10nMem_file_entry> mcFileList;
+ std::vector<l10nMem_lang_list_entry> mcLangList;
void loadENUSkey (int iLineNo,
Modified: openoffice/branches/l10n40/main/l10ntools/source/gL10nMemDB.cxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/l10n40/main/l10ntools/source/gL10nMemDB.cxx?rev=1527180&r1=1527179&r2=1527180&view=diff
==============================================================================
--- openoffice/branches/l10n40/main/l10ntools/source/gL10nMemDB.cxx (original)
+++ openoffice/branches/l10n40/main/l10ntools/source/gL10nMemDB.cxx Sat Sep 28
12:23:35 2013
@@ -112,6 +112,23 @@ l10nMem_file_entry::~l10nMem_file_entry(
/********************** I M P L E M E N T A T I O N **********************/
+l10nMem_lang_list_entry::l10nMem_lang_list_entry(const std::string& sName)
+ :
+ msName(sName),
+ mbChanged(false)
+{
+}
+
+
+
+/********************** I M P L E M E N T A T I O N **********************/
+l10nMem_lang_list_entry::~l10nMem_lang_list_entry()
+{
+}
+
+
+
+/********************** I M P L E M E N T A T I O N **********************/
l10nMem_db::l10nMem_db()
:
miCurFileInx(0),
@@ -122,7 +139,7 @@ l10nMem_db::l10nMem_db()
mbStrictMode(false)
{
mcFileList.push_back(l10nMem_file_entry("-genLang-", 0));
- mcLangList.push_back("-genLang-");
+ mcLangList.push_back(l10nMem_lang_list_entry("-genLang-"));
mcENUSlist.push_back(l10nMem_enus_entry("-genLang-", "-genLang-", 0, 0, 0,
l10nMem::ENTRY_DELETED));
}
@@ -169,7 +186,7 @@ void l10nMem_db::setLanguage(const std::
// check if language is already loaded
iSize = mcLangList.size();
- for (miCurLangInx = 0; miCurLangInx < iSize && mcLangList[miCurLangInx] !=
sLanguage; ++miCurLangInx) ;
+ for (miCurLangInx = 0; miCurLangInx < iSize &&
mcLangList[miCurLangInx].msName != sLanguage; ++miCurLangInx) ;
if (miCurLangInx < iSize)
{
if (bCreate)
@@ -421,7 +438,7 @@ bool l10nMem_db::getMergeLang(std::strin
}
else
{
- sLang = mcLangList[miCurLangInx];
+ sLang = mcLangList[miCurLangInx].msName;
sMsgStr = mcENUSlist[miCurENUSinx].mcLangText[miCurLangInx].msMsgStr;
}
return true;