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;


Reply via email to