You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ja...@apache.org on 2013/03/12 23:59:49 UTC

svn commit: r1455744 - in /openoffice/branches/l10n/main/l10ntools/source: gConPolex.l gHandler.cxx gL10nMem.cxx gL10nMem.hxx

Author: jani
Date: Tue Mar 12 22:59:49 2013
New Revision: 1455744

URL: http://svn.apache.org/r1455744
Log:
convert works.

Modified:
    openoffice/branches/l10n/main/l10ntools/source/gConPolex.l
    openoffice/branches/l10n/main/l10ntools/source/gHandler.cxx
    openoffice/branches/l10n/main/l10ntools/source/gL10nMem.cxx
    openoffice/branches/l10n/main/l10ntools/source/gL10nMem.hxx

Modified: openoffice/branches/l10n/main/l10ntools/source/gConPolex.l
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConPolex.l?rev=1455744&r1=1455743&r2=1455744&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConPolex.l (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConPolex.l Tue Mar 12 22:59:49 2013
@@ -89,6 +89,10 @@ SPACE [ \t]*
   LOCptr->setKey(yytext);
 }
 
+"#~".*\r*\n {
+  // special comment, just skip
+}
+
 
 {SPACE}[mM][sS][gG][iI][dD]{SPACE} {
   LOCptr->setMsgId(yytext);

Modified: openoffice/branches/l10n/main/l10ntools/source/gHandler.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gHandler.cxx?rev=1455744&r1=1455743&r2=1455744&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gHandler.cxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gHandler.cxx Tue Mar 12 22:59:49 2013
@@ -302,7 +302,7 @@ void handler::runConvert()
 
       // get converter and extract files
       convert_gen convertObj(mcMemory, sFilePath, *siSource);
-      convertObj.execute(true, false);
+      convertObj.execute(true, true);
     }
   }
 

Modified: openoffice/branches/l10n/main/l10ntools/source/gL10nMem.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gL10nMem.cxx?rev=1455744&r1=1455743&r2=1455744&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gL10nMem.cxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gL10nMem.cxx Tue Mar 12 22:59:49 2013
@@ -335,6 +335,24 @@ bool l10nMem_impl::needWrite(const std::
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
+bool l10nMem_impl::convFilterWarning(const std::string& sSourceFile,
+                                     const std::string& sKey,
+                                     const std::string& sOrgText)
+{
+  if (sOrgText == "-"               ||
+      sSourceFile == "basic.src"    ||
+      sSourceFile == "basmsg.src"   ||
+      sSourceFile == "svtmsg.src"   ||
+      sSourceFile == "testtool.src" ||
+      sSourceFile == "ttmsg.src"    )
+    return true;
+
+  return false;
+}
+
+
+
+/**********************   I M P L E M E N T A T I O N   **********************/
 void l10nMem_impl::convEntryKey(int                iLineNo,
                                const std::string& sSourceFile,
                                const std::string& sKey,
@@ -342,55 +360,58 @@ void l10nMem_impl::convEntryKey(int     
                                const std::string& sText,
                                bool               bIsFuzzy)
 {
-  int         i, iSize;
-  std::string sNewKey = sKey;
-
+  std::vector<int> ivEntryList;
+  int              i, iSize = mcDb.mcFileList.size();
 
-  // adjust miCurFileInx as needed
-  // same filename as last ?
-  if (sSourceFile != mcDb.mcFileList[mcDb.miCurFileInx].msPureName)
-  {
-    iSize = mcDb.mcFileList.size();
+  // filter out dummy messages, silently
+  if (convFilterWarning(sSourceFile, sKey, sOrgText))
+    return;
 
-    // match filename
-    for (i = 1; i < iSize && sSourceFile != mcDb.mcFileList[i].msPureName; ++i) ;
-    if (i == iSize)
+  // Find all matching file names
+  for (i = 1; i < iSize; ++i)
+    if (sSourceFile == mcDb.mcFileList[i].msPureName)
     {
-      showError("filename(" + sSourceFile + ") not found!", iLineNo);
-      return;
+      int j    = mcDb.mcFileList[i].miStart;
+      int iEnd = mcDb.mcFileList[i].miEnd;
+
+      for (; j <= iEnd; ++j)
+        ivEntryList.push_back(j);
     }
-    mcDb.miCurFileInx = i;
-  }
 
-  // Calculate possible entries
-  l10nMem_file_entry& curF = mcDb.mcFileList[mcDb.miCurFileInx];
-  i     = curF.miStart;
-  iSize = curF.miEnd;
+  // Did we find one or more files ?
+  iSize = ivEntryList.size();
+  if (!iSize)
+  {
+    showWarning("filename(" + sSourceFile + ") key(" + sKey +") lang(" +
+                mcDb.mcLangList[mcDb.miCurLangInx] + ") not found!", iLineNo);
+    return;
+  }
 
-  // Loop through possible en_US entries
-  for (; i <= iSize; ++i)
+  // Loop through all potential en_US entries
+  for (i = 0; i < iSize; ++i)
   {
-    l10nMem_enus_entry& curE = mcDb.mcENUSlist[i];
+    l10nMem_enus_entry& curE = mcDb.mcENUSlist[ivEntryList[i]];
 
     // The entry cannot be converted twice
     if (curE.meState != l10nMem::ENTRY_NORMAL)
       continue;
 
-    // The text must match
+    // The msgId must match
     if (sOrgText != curE.msText)
       continue;
 
-    // The keys must match
-    if (sNewKey != curE.msKey)
-      continue;
-
     // update language text
     l10nMem_lang_entry& curL = curE.mcLangList[mcDb.miCurLangInx];
-    curL.msText  = sText;
-    curL.mbFuzzy = bIsFuzzy;
-    curE.meState = l10nMem::ENTRY_CHANGED;
+
+    if (sText != curL.msText)
+    {
+      curL.msText  = sText;
+      curL.mbFuzzy = bIsFuzzy;
+      curE.meState = l10nMem::ENTRY_CHANGED;
+    }
     return;
   }
 
-  showError("key(" + sKey + ") with msgId(" + sOrgText + ") cannot be matched", iLineNo);
+  showWarning("key(" + sKey + ")  lang(" + mcDb.mcLangList[mcDb.miCurLangInx] +
+              ") with msgId(" + sOrgText + ") cannot be matched", iLineNo);
 }

Modified: openoffice/branches/l10n/main/l10ntools/source/gL10nMem.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gL10nMem.hxx?rev=1455744&r1=1455743&r2=1455744&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gL10nMem.hxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gL10nMem.hxx Tue Mar 12 22:59:49 2013
@@ -172,6 +172,9 @@ class l10nMem_impl
 
     void formatAndShowText(const std::string& sType, int iLineNo, const std::string& sText);
     bool needWrite        (const std::string sFileName, bool bForce);
+    bool convFilterWarning(const std::string& sSourceFile,
+                           const std::string& sKey,
+                           const std::string& sOrgText);
     void convEntryKey     (int                iLineNo,
                            const std::string& sSourceFile,
                            const std::string& sKey,