summaryrefslogtreecommitdiff
path: root/l10ntools/source/helpmerge.cxx
diff options
context:
space:
mode:
authorZolnai Tamás <zolnaitamas2000@gmail.com>2013-04-20 09:20:31 +0200
committerZolnai Tamás <zolnaitamas2000@gmail.com>2013-04-21 18:57:17 +0200
commit36b3bcefcf13996610239f95b1dce9f291bde95d (patch)
tree4796801ca25a41422381fce137fee5c21f3fef64 /l10ntools/source/helpmerge.cxx
parent8560c2df78072533007b84b31fc930b82191e9a3 (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.cxx83
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",