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;