diff options
author | Zolnai Tamás <zolnaitamas2000@gmail.com> | 2013-04-20 09:20:31 +0200 |
---|---|---|
committer | Zolnai Tamás <zolnaitamas2000@gmail.com> | 2013-04-21 18:57:17 +0200 |
commit | 36b3bcefcf13996610239f95b1dce9f291bde95d (patch) | |
tree | 4796801ca25a41422381fce137fee5c21f3fef64 /l10ntools/source/helpmerge.cxx | |
parent | 8560c2df78072533007b84b31fc930b82191e9a3 (diff) |
Some changes in qtz handling
Executalbes, which work one language, generat qtz by own.
(stringex,helpex,treex,propex)
So these executables can generate qtz without po file
when use them with qtz, call them with "-m" flag without parameter.
Change-Id: I56c34db7151dc3ef0ce1c85ed607719e4cbb5e92
Diffstat (limited to 'l10ntools/source/helpmerge.cxx')
-rw-r--r-- | l10ntools/source/helpmerge.cxx | 83 |
1 files changed, 44 insertions, 39 deletions
diff --git a/l10ntools/source/helpmerge.cxx b/l10ntools/source/helpmerge.cxx index 71ad315a7b48..69bde372f75d 100644 --- a/l10ntools/source/helpmerge.cxx +++ b/l10ntools/source/helpmerge.cxx @@ -147,7 +147,7 @@ bool HelpParser::CreatePO( } bool HelpParser::Merge( const OString &rPOFile, const OString &rDestinationFile, - const OString& rLanguage , MergeDataFile& aMergeDataFile ) + const OString& rLanguage , MergeDataFile* pMergeDataFile ) { (void) rPOFile; @@ -159,12 +159,12 @@ bool HelpParser::Merge( const OString &rPOFile, const OString &rDestinationFile, //TODO: explicit BOM handling? XMLFile* xmlfile = ( aParser.Execute( sXmlFile, new XMLFile( OUString('0') ) ) ); - bool hasNoError = MergeSingleFile( xmlfile , aMergeDataFile , rLanguage , rDestinationFile ); + bool hasNoError = MergeSingleFile( xmlfile , pMergeDataFile , rLanguage , rDestinationFile ); delete xmlfile; return hasNoError; } -bool HelpParser::MergeSingleFile( XMLFile* file , MergeDataFile& aMergeDataFile , const OString& sLanguage , +bool HelpParser::MergeSingleFile( XMLFile* file , MergeDataFile* pMergeDataFile , const OString& sLanguage , OString const & sPath ) { file->Extract(); @@ -187,7 +187,7 @@ bool HelpParser::MergeSingleFile( XMLFile* file , MergeDataFile& aMergeDataFile pResData.sGId = pos->first; pResData.sFilename = sHelpFile; - ProcessHelp( aLangHM , sLanguage, &pResData , aMergeDataFile ); + ProcessHelp( aLangHM , sLanguage, &pResData , pMergeDataFile ); } file->Write(sPath); @@ -195,7 +195,7 @@ bool HelpParser::MergeSingleFile( XMLFile* file , MergeDataFile& aMergeDataFile } /* ProcessHelp Methode: search for en-US entry and replace it with the current language*/ -void HelpParser::ProcessHelp( LangHashMap* aLangHM , const OString& sCur , ResData *pResData , MergeDataFile& aMergeDataFile ){ +void HelpParser::ProcessHelp( LangHashMap* aLangHM , const OString& sCur , ResData *pResData , MergeDataFile* pMergeDataFile ){ XMLElement* pXMLElement = NULL; MergeEntrys *pEntrys = NULL; @@ -215,46 +215,51 @@ void HelpParser::ProcessHelp( LangHashMap* aLangHM , const OString& sCur , ResDa sLId = pXMLElement->GetOldref(); pResData->sId = sLId; - pEntrys = aMergeDataFile.GetMergeEntrys( pResData ); - if( pEntrys != NULL) + OString sNewText; + OUString sNewdata; + OUString sSourceText( + pXMLElement->ToOUString(). + replaceAll( + OUString("\n"), + OUString()). + replaceAll( + OUString("\t"), + OUString())); + // re-add spaces to the beginning of translated string, + // important for indentation of Basic code examples + sal_Int32 nPreSpaces = 0; + sal_Int32 nLen = sSourceText.getLength(); + while ( (nPreSpaces < nLen) && (*(sSourceText.getStr()+nPreSpaces) == ' ') ) + nPreSpaces++; + if( sCur == "qtz" ) { - OString sNewText; - OUString sSourceText( - pXMLElement->ToOUString(). - replaceAll( - OUString("\n"), - OUString()). - replaceAll( - OUString("\t"), - OUString())); - // re-add spaces to the beginning of translated string, - // important for indentation of Basic code examples - sal_Int32 nPreSpaces = 0; - sal_Int32 nLen = sSourceText.getLength(); - while ( (nPreSpaces < nLen) && (*(sSourceText.getStr()+nPreSpaces) == ' ') ) - nPreSpaces++; - pEntrys->GetText( sNewText, STRING_TYP_TEXT, sCur , true ); - OUString sNewdata; - OUString sTemp = OStringToOUString(sNewText, RTL_TEXTENCODING_UTF8); - if (helper::isWellFormedXML(OUStringToOString(XMLUtil::QuotHTML(sTemp),RTL_TEXTENCODING_UTF8))) - { - sNewdata = sSourceText.copy(0,nPreSpaces) + sTemp; - } - else - { - sNewdata = sSourceText; - } - if (!sNewdata.isEmpty()) + const OString sOriginText = OUStringToOString(sSourceText, RTL_TEXTENCODING_UTF8); + sNewText = MergeEntrys::GetQTZText(*pResData, sOriginText); + sNewdata = OStringToOUString(sNewText, RTL_TEXTENCODING_UTF8); + } + else if( pMergeDataFile ) + { + pEntrys = pMergeDataFile->GetMergeEntrys( pResData ); + if( pEntrys != NULL) { - if( pXMLElement != NULL ) + pEntrys->GetText( sNewText, STRING_TYP_TEXT, sCur , true ); + OUString sTemp = OStringToOUString(sNewText, RTL_TEXTENCODING_UTF8); + if (helper::isWellFormedXML(OUStringToOString(XMLUtil::QuotHTML(sTemp),RTL_TEXTENCODING_UTF8))) { - XMLData *data = new XMLData( sNewdata , NULL , true ); // Add new one - pXMLElement->RemoveAndDeleteAllChildren(); - pXMLElement->AddChild( data ); - aLangHM->erase( sCur ); + sNewdata = sSourceText.copy(0,nPreSpaces) + sTemp; } } } + if (!sNewdata.isEmpty()) + { + if( pXMLElement != NULL ) + { + XMLData *data = new XMLData( sNewdata , NULL , true ); // Add new one + pXMLElement->RemoveAndDeleteAllChildren(); + pXMLElement->AddChild( data ); + aLangHM->erase( sCur ); + } + } else if( pResData == NULL ) { fprintf(stdout,"Can't find GID=%s LID=%s TYP=%s\n", |