summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--android/sdremote/Makefile8
-rw-r--r--l10ntools/inc/export.hxx1
-rw-r--r--l10ntools/inc/helpmerge.hxx6
-rwxr-xr-xl10ntools/inc/po.hxx1
-rw-r--r--l10ntools/source/common.cxx2
-rw-r--r--l10ntools/source/helpex.cxx22
-rw-r--r--l10ntools/source/helpmerge.cxx83
-rw-r--r--l10ntools/source/merge.cxx33
-rwxr-xr-xl10ntools/source/po.cxx89
-rw-r--r--l10ntools/source/propmerge.cxx46
-rw-r--r--l10ntools/source/stringmerge.cxx56
-rw-r--r--l10ntools/source/treemerge.cxx51
-rw-r--r--librelogo/CustomTarget_librelogo.mk27
-rw-r--r--solenv/gbuild/Dictionary.mk26
-rw-r--r--solenv/gbuild/ExtensionTarget.mk88
-rw-r--r--solenv/gbuild/HelpTarget.mk54
16 files changed, 356 insertions, 237 deletions
diff --git a/android/sdremote/Makefile b/android/sdremote/Makefile
index b8ea1e9088d3..26acfd8ae0bb 100644
--- a/android/sdremote/Makefile
+++ b/android/sdremote/Makefile
@@ -36,8 +36,10 @@ endef
define android_translation_rules
$(call android_get_po,$(1)):
mkdir -p res/values-$(1)
- echo $(SRCDIR)/translations/source/$(1)/android/sdremote/res/values.po > translations-$(1).db
- $(OUTDIR_FOR_BUILD)/bin/stringex -i res/values/strings.xml -o res/values-$(1)/strings.xml -m translations-$(1).db -l $(1)
+ $(if $(filter-out qtz,$(1)), \
+ echo $(SRCDIR)/translations/source/$(1)/android/sdremote/res/values.po > translations-$(1).db &&\
+ $(OUTDIR_FOR_BUILD)/bin/stringex -i res/values/strings.xml -o res/values-$(1)/strings.xml -m translations-$(1).db -l $(1), \
+ $(OUTDIR_FOR_BUILD)/bin/stringex -i res/values/strings.xml -o res/values-$(1)/strings.xml -m -l $(1))
endef
@@ -46,7 +48,7 @@ $(foreach lang,$(1),$(call android_translation_rules,$(lang)))
endef
define android_get_langlist
-$(foreach lang,$(filter-out en-US sat sid mai ast mni brx dgo qtz nso kok,$(WITH_LANG_LIST)),$(subst -,-r,$(lang)))
+$(foreach lang,$(filter-out en-US sat sid mai ast mni brx dgo nso kok,$(WITH_LANG_LIST)),$(subst -,-r,$(lang)))
endef
$(eval $(call android_translations_rules,$(call android_get_langlist)))
diff --git a/l10ntools/inc/export.hxx b/l10ntools/inc/export.hxx
index 2230569700b8..a1a2e8c9eea3 100644
--- a/l10ntools/inc/export.hxx
+++ b/l10ntools/inc/export.hxx
@@ -281,6 +281,7 @@ public:
bTitleFirst[ rId ] = true;
}
sal_Bool GetText( OString &rReturn, sal_uInt16 nTyp, const OString &nLangIndex, sal_Bool bDel = sal_False );
+ static OString GetQTZText(const ResData& rResData, const OString& rOrigText);
};
diff --git a/l10ntools/inc/helpmerge.hxx b/l10ntools/inc/helpmerge.hxx
index 1f9c90acd5aa..42b2401e45f2 100644
--- a/l10ntools/inc/helpmerge.hxx
+++ b/l10ntools/inc/helpmerge.hxx
@@ -49,12 +49,12 @@ public:
/// Method merges the String from the POfile into XMLfile. Both Strings must
/// point to existing files.
bool Merge( const OString &rPOFile_in, const OString &rDestinationFile_in ,
- const OString& sLanguage , MergeDataFile& aMergeDataFile );
+ const OString& sLanguage , MergeDataFile* pMergeDataFile );
private:
- bool MergeSingleFile( XMLFile* file , MergeDataFile& aMergeDataFile , const OString& sLanguage , OString const & sPath );
+ bool MergeSingleFile( XMLFile* file , MergeDataFile* pMergeDataFile , const OString& sLanguage , OString const & sPath );
- void ProcessHelp( LangHashMap* aLangHM , const OString& sCur , ResData *pResData , MergeDataFile& aMergeDataFile );
+ void ProcessHelp( LangHashMap* aLangHM , const OString& sCur , ResData *pResData , MergeDataFile* pMergeDataFile );
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/l10ntools/inc/po.hxx b/l10ntools/inc/po.hxx
index 26bbedf94623..603727d8583b 100755
--- a/l10ntools/inc/po.hxx
+++ b/l10ntools/inc/po.hxx
@@ -63,6 +63,7 @@ public:
OString getKeyId() const;
static bool IsInSameComp(const PoEntry& rPo1,const PoEntry& rPo2);
+ static OString genKeyId(const OString& rGenerator);
};
diff --git a/l10ntools/source/common.cxx b/l10ntools/source/common.cxx
index 304f44c224bf..b143a7c8e4cf 100644
--- a/l10ntools/source/common.cxx
+++ b/l10ntools/source/common.cxx
@@ -37,6 +37,7 @@ bool handleArguments(
else if ( OString( argv[ i ] ).toAsciiUpperCase() == "-M" )
{
nState = STATE_MERGESRC; // next token specifies the merge database
+ o_aHandledArgs.m_bMergeMode = true;
}
else if ( OString( argv[ i ] ).toAsciiUpperCase() == "-L" )
{
@@ -63,7 +64,6 @@ bool handleArguments(
case STATE_MERGESRC:
{
o_aHandledArgs.m_sMergeSrc = OString( argv[i] );
- o_aHandledArgs.m_bMergeMode = true;
}
break;
case STATE_LANGUAGES:
diff --git a/l10ntools/source/helpex.cxx b/l10ntools/source/helpex.cxx
index b1486553a67e..5c6156f95c86 100644
--- a/l10ntools/source/helpex.cxx
+++ b/l10ntools/source/helpex.cxx
@@ -40,7 +40,7 @@ void WriteUsage()
<< " Syntax: Helpex -[m]i FileIn -o FileOut [-m DataBase] [-l Lang]\n"
<< " FileIn + i: Source file (*.xhp)\n"
<< " FileIn + -mi: File including paths of source files"
- << " (only for merge)"
+ << " (only for merge)\n"
<< " FileOut: Destination file (*.*) or files (in case of -mi)\n"
<< " DataBase: Mergedata (*.po)\n"
<< " Lang: Restrict the handled languages; one element of\n"
@@ -79,8 +79,11 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) {
std::cerr << "Helpex error: cannot open input file\n";
return 1;
}
- MergeDataFile aMergeDataFile(
- aArgs.m_sMergeSrc, OString(), false, false );
+ MergeDataFile* pMergeDataFile = 0;
+ if( aArgs.m_sLanguage != "qtz")
+ {
+ pMergeDataFile = new MergeDataFile(aArgs.m_sMergeSrc, OString(), false, false );
+ }
std::string sTemp;
aInput >> sTemp;
while( !aInput.eof() )
@@ -91,23 +94,28 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) {
aArgs.m_sOutputFile +
sXhpFile.copy( sXhpFile.lastIndexOf("/") ));
if( !aParser.Merge( aArgs.m_sMergeSrc, sOutput,
- aArgs.m_sLanguage, aMergeDataFile ))
+ aArgs.m_sLanguage, pMergeDataFile ))
{
hasNoError = false;
}
aInput >> sTemp;
}
aInput.close();
+ delete pMergeDataFile;
}
else
{
HelpParser aParser( aArgs.m_sInputFile );
- MergeDataFile aMergeDataFile(
- aArgs.m_sMergeSrc, aArgs.m_sInputFile, false, false );
+ MergeDataFile* pMergeDataFile = 0;
+ if( aArgs.m_sLanguage != "qtz")
+ {
+ pMergeDataFile = new MergeDataFile(aArgs.m_sMergeSrc, aArgs.m_sInputFile, false, false );
+ }
hasNoError =
aParser.Merge(
aArgs.m_sMergeSrc, aArgs.m_sOutputFile,
- aArgs.m_sLanguage, aMergeDataFile );
+ aArgs.m_sLanguage, pMergeDataFile );
+ delete pMergeDataFile;
}
}
else
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",
diff --git a/l10ntools/source/merge.cxx b/l10ntools/source/merge.cxx
index 1555adb1d9eb..401cba5f347c 100644
--- a/l10ntools/source/merge.cxx
+++ b/l10ntools/source/merge.cxx
@@ -187,6 +187,14 @@ sal_Bool MergeEntrys::GetText( OString &rReturn,
}
+OString MergeEntrys::GetQTZText(const ResData& rResData, const OString& rOrigText)
+{
+ const OString sFilename = rResData.sFilename.copy(rResData.sFilename.lastIndexOf("/")+1);
+ const OString sKey =
+ PoEntry::genKeyId(sFilename + rResData.sGId + rResData.sId + rResData.sResTyp + rOrigText);
+ return sKey + "||" + rOrigText;
+}
+
//
// class MergeData
//
@@ -278,9 +286,6 @@ MergeDataFile::MergeDataFile(
OString sExText;
OString sExQHText;
OString sExTitle;
- OString sQTZText;
- OString sQTZQHText;
- OString sQTZTitle;
do
{
if( bInSameComp )
@@ -293,17 +298,14 @@ MergeDataFile::MergeDataFile(
case PoEntry::TTEXT:
sText = sTemp;
sExText = aActPo.getMsgId();
- sQTZText = aActPo.getKeyId();
break;
case PoEntry::TQUICKHELPTEXT:
sQHText = sTemp;
sExQHText = aActPo.getMsgId();
- sQTZQHText = aActPo.getKeyId();
break;
case PoEntry::TTITLE:
sTitle = sTemp;
sExTitle = aActPo.getMsgId();
- sQTZTitle = aActPo.getKeyId();
break;
}
if( !lcl_ReadPoChecked(aNextPo, aPoInput, sPoFileName) )
@@ -325,8 +327,8 @@ MergeDataFile::MergeDataFile(
InsertEntry(
aActPo.getResourceType(), aActPo.getGroupId(),
aActPo.getLocalId(), "qtz",
- sQTZText + "||" + sExText, sQTZQHText + "||" + sExQHText,
- sQTZTitle + "||" + sExTitle, aActPo.getSourceFile(),
+ sExText, sExQHText,
+ sExTitle, aActPo.getSourceFile(),
bCaseSensitive );
}
}
@@ -374,7 +376,6 @@ MergeData *MergeDataFile::GetMergeData( ResData *pResData , bool bCaseSensitive
return NULL;
}
-
MergeEntrys *MergeDataFile::GetMergeEntrys( ResData *pResData )
{
// search for requested MergeEntrys
@@ -418,7 +419,19 @@ void MergeDataFile::InsertEntry(
// insert the cur string
MergeEntrys *pMergeEntrys = pData->GetMergeEntries();
- pMergeEntrys->InsertEntry( nLANG , rTEXT, rQHTEXT, rTITLE );
+ if( nLANG =="qtz" )
+ {
+ const OString sTemp = rInFilename + rGID + rLID + rTYP;
+ pMergeEntrys->InsertEntry(
+ nLANG,
+ rTEXT.isEmpty()? rTEXT : PoEntry::genKeyId(sTemp + rTEXT) + "||" + rTEXT,
+ rQHTEXT.isEmpty()? rQHTEXT : PoEntry::genKeyId(sTemp + rQHTEXT) + "||" + rQHTEXT,
+ rTITLE.isEmpty()? rTITLE : PoEntry::genKeyId(sTemp + rTITLE) + "||" + rTITLE );
+ }
+ else
+ {
+ pMergeEntrys->InsertEntry( nLANG , rTEXT, rQHTEXT, rTITLE );
+ }
}
OString MergeDataFile::CreateKey(const OString& rTYP, const OString& rGID,
diff --git a/l10ntools/source/po.cxx b/l10ntools/source/po.cxx
index 34f3eeb10de7..030950a2fe42 100755
--- a/l10ntools/source/po.cxx
+++ b/l10ntools/source/po.cxx
@@ -222,28 +222,6 @@ void GenPoEntry::readFromFile(std::ifstream& rIFStream)
//Class PoEntry
-namespace
-{
- //Generate KeyId
- static OString lcl_GenKeyId(const OString& rGenerator)
- {
- boost::crc_32_type aCRC32;
- aCRC32.process_bytes(rGenerator.getStr(), rGenerator.getLength());
- sal_uInt32 nCRC = aCRC32.checksum();
- ///Use simple ASCII characters, exclude I, l, 1 and O, 0 to avoid confusing IDs
- static const OString sSymbols =
- "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789";
- char sKeyId[6];
- for( short nKeyInd = 0; nKeyInd < 5; ++nKeyInd )
- {
- sKeyId[nKeyInd] = sSymbols[(nCRC & 63) % sSymbols.getLength()];
- nCRC >>= 6;
- }
- sKeyId[5] = '\0';
- return OString(sKeyId);
- }
-}
-
//Default constructor
PoEntry::PoEntry()
: m_pGenPo( 0 )
@@ -290,8 +268,7 @@ PoEntry::PoEntry(
m_pGenPo->setMsgId(rText);
m_pGenPo->setExtractCom(
( !rHelpText.isEmpty() ? rHelpText + "\n" : OString( "" )) +
- lcl_GenKeyId(
- m_pGenPo->getReference() + sMsgCtxt + m_pGenPo->getMsgId() ) );
+ genKeyId( m_pGenPo->getReference() + rGroupId + rLocalId + rResType + rText ) );
m_bIsInitialized = true;
}
@@ -435,6 +412,25 @@ bool PoEntry::IsInSameComp(const PoEntry& rPo1,const PoEntry& rPo2)
rPo1.getResourceType() == rPo2.getResourceType() );
}
+OString PoEntry::genKeyId(const OString& rGenerator)
+{
+ boost::crc_32_type aCRC32;
+ aCRC32.process_bytes(rGenerator.getStr(), rGenerator.getLength());
+ sal_uInt32 nCRC = aCRC32.checksum();
+ ///Use simple ASCII characters, exclude I, l, 1 and O, 0 to avoid confusing IDs
+ static const OString sSymbols =
+ "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789";
+ char sKeyId[6];
+ for( short nKeyInd = 0; nKeyInd < 5; ++nKeyInd )
+ {
+ sKeyId[nKeyInd] = sSymbols[(nCRC & 63) % sSymbols.getLength()];
+ nCRC >>= 6;
+ }
+ sKeyId[5] = '\0';
+ return OString(sKeyId);
+}
+
+
//Class PoHeader
namespace
@@ -538,6 +534,26 @@ void PoOfstream::writeEntry( const PoEntry& rPoEntry )
//Class PoIfstream
+namespace
+{
+
+static bool lcl_CheckInputEntry(const GenPoEntry& rEntry)
+{
+ const OString sMsgCtxt = rEntry.getMsgCtxt();
+ const sal_Int32 nFirstEndLine = sMsgCtxt.indexOf('\n');
+ const sal_Int32 nLastEndLine = sMsgCtxt.lastIndexOf('\n');
+ const sal_Int32 nLastDot = sMsgCtxt.lastIndexOf('.');
+ const OString sType = sMsgCtxt.copy( nLastDot + 1 );
+ return !rEntry.getReference().isEmpty() &&
+ nFirstEndLine > 0 &&
+ (nLastEndLine == nFirstEndLine || nLastEndLine == sMsgCtxt.indexOf('\n',nFirstEndLine+1)) &&
+ nLastDot - nLastEndLine > 1 &&
+ (sType == "text" || sType == "quickhelptext" || sType == "title")&&
+ !rEntry.getMsgId().isEmpty();
+}
+
+}
+
PoIfstream::PoIfstream()
: m_aInPut()
, m_bEof( false )
@@ -592,31 +608,8 @@ void PoIfstream::readEntry( PoEntry& rPoEntry )
}
else
{
- const OString sMsgCtxt = aGenPo.getMsgCtxt();
- const sal_Int32 nFirstEndLine = sMsgCtxt.indexOf('\n');
- const sal_Int32 nLastEndLine = sMsgCtxt.lastIndexOf('\n');
- const sal_Int32 nLastDot = sMsgCtxt.lastIndexOf('.');
- const OString sType = sMsgCtxt.copy( nLastDot + 1 );
- if( !aGenPo.getReference().isEmpty() &&
- nFirstEndLine > 0 &&
- (nLastEndLine == nFirstEndLine ||
- nLastEndLine == sMsgCtxt.indexOf('\n',nFirstEndLine+1)) &&
- nLastDot - nLastEndLine > 1 &&
- (sType == "text" || sType == "quickhelptext" || sType == "title")&&
- !aGenPo.getMsgId().isEmpty() )
+ if( lcl_CheckInputEntry(aGenPo) )
{
- //Generate keyid if po file not includes it
- const OString sExtractCom = aGenPo.getExtractCom();
- if( sExtractCom.isEmpty() ||
- ( sExtractCom.getLength() != 4 &&
- sExtractCom.indexOf("\n") == -1 ) )
- {
- aGenPo.setExtractCom(
- ( !sExtractCom.isEmpty() ? sExtractCom + "\n" : OString( "" )) +
- lcl_GenKeyId(
- aGenPo.getReference() + sMsgCtxt +
- aGenPo.getMsgId() ) );
- }
if( rPoEntry.m_pGenPo )
{
*(rPoEntry.m_pGenPo) = aGenPo;
diff --git a/l10ntools/source/propmerge.cxx b/l10ntools/source/propmerge.cxx
index 386fa43f56ff..cdbe9d2243f8 100644
--- a/l10ntools/source/propmerge.cxx
+++ b/l10ntools/source/propmerge.cxx
@@ -166,19 +166,21 @@ void PropParser::Merge( const OString &rMergeSrc, const OString &rDestinationFil
return;
}
- MergeDataFile aMergeDataFile(
- rMergeSrc, m_sSource, false, m_sLang == "qtz" );
-
- const std::vector<OString> vLanguages = aMergeDataFile.GetLanguages();
- if( m_sLang != "qtz" && vLanguages.size()>=2 &&
- vLanguages[vLanguages[0]!="qtz" ? 0 : 1] != m_sLang )
+ MergeDataFile* pMergeDataFile = 0;
+ if( m_sLang != "qtz" )
{
- std::cerr
- << "Propex error: given language conflicts with "
- << "language of Mergedata file: "
- << m_sLang.getStr() << " - "
- << vLanguages[vLanguages[0]!="qtz" ? 0 : 1].getStr() << std::endl;
- return;
+ pMergeDataFile = new MergeDataFile( rMergeSrc, m_sSource, false, false );
+
+ const std::vector<OString> vLanguages = pMergeDataFile->GetLanguages();
+ if( vLanguages.size()>=1 && vLanguages[0] != m_sLang )
+ {
+ std::cerr
+ << "Propex error: given language conflicts with "
+ << "language of Mergedata file: "
+ << m_sLang.getStr() << " - "
+ << vLanguages[0].getStr() << std::endl;
+ return;
+ }
}
for( unsigned nIndex = 0; nIndex < m_vLines.size(); ++nIndex )
@@ -191,11 +193,22 @@ void PropParser::Merge( const OString &rMergeSrc, const OString &rDestinationFil
const OString sID( sLine.copy( 0, sLine.indexOf("=") ).trim() );
ResData aResData( sID, m_sSource );
aResData.sResTyp = "property";
- MergeEntrys* pEntrys = aMergeDataFile.GetMergeEntrys( &aResData );
- if( pEntrys )
+ OString sNewText;
+ if( m_sLang == "qtz" )
+ {
+ const OString sOriginText = lcl_ConvertToUTF8(sLine.copy( nEqualSign + 1 ).trim());
+ sNewText = MergeEntrys::GetQTZText(aResData, sOriginText);
+ }
+ else if( pMergeDataFile )
+ {
+ MergeEntrys* pEntrys = pMergeDataFile->GetMergeEntrys( &aResData );
+ if( pEntrys )
+ {
+ pEntrys->GetText( sNewText, STRING_TYP_TEXT, m_sLang );
+ }
+ }
+ if( !sNewText.isEmpty() )
{
- OString sNewText;
- pEntrys->GetText( sNewText, STRING_TYP_TEXT, m_sLang );
aDestination << OString(sID + "=").getStr();
lcl_PrintJavaStyle( sNewText, aDestination );
aDestination << std::endl;
@@ -211,6 +224,7 @@ void PropParser::Merge( const OString &rMergeSrc, const OString &rDestinationFil
}
}
aDestination.close();
+ delete pMergeDataFile;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/l10ntools/source/stringmerge.cxx b/l10ntools/source/stringmerge.cxx
index 40fe6c2439ce..6ceb4b7a401d 100644
--- a/l10ntools/source/stringmerge.cxx
+++ b/l10ntools/source/stringmerge.cxx
@@ -94,23 +94,21 @@ void StringParser::Merge(
{
assert( m_bIsInitialized );
- if( (m_sLang == "en-US") || (m_sLang == "qtz") )
+ MergeDataFile* pMergeDataFile = 0;
+ if( m_sLang != "qtz" )
{
- return;
- }
-
- MergeDataFile aMergeDataFile(
- rMergeSrc, static_cast<OString>( m_pSource->name ), false );
- const std::vector<OString> vLanguages = aMergeDataFile.GetLanguages();
- if( vLanguages.size()>=2 &&
- vLanguages[vLanguages[0]=="qtz" ? 1 : 0] != m_sLang )
- {
- std::cerr
- << "stringex error: given language conflicts with "
- << "language of Mergedata file: "
- << m_sLang.getStr() << " - "
- << vLanguages[vLanguages[0]=="qtz" ? 1 : 0].getStr() << std::endl;
- return;
+ pMergeDataFile = new MergeDataFile(
+ rMergeSrc, static_cast<OString>( m_pSource->name ), false, false );
+ const std::vector<OString> vLanguages = pMergeDataFile->GetLanguages();
+ if( vLanguages.size()>=1 && vLanguages[0] != m_sLang )
+ {
+ std::cerr
+ << "stringex error: given language conflicts with "
+ << "language of Mergedata file: "
+ << m_sLang.getStr() << " - "
+ << vLanguages[0].getStr() << std::endl;
+ return;
+ }
}
xmlNodePtr pRootNode = xmlDocGetRootElement( m_pSource ); //<resource>
@@ -126,13 +124,26 @@ void StringParser::Merge(
static_cast<OString>(m_pSource->name) );
xmlFree( pID );
aResData.sResTyp = "string";
- MergeEntrys* pEntrys =
- (&aMergeDataFile)->GetMergeEntrys( &aResData );
- if( pEntrys )
+ OString sNewText;
+ if( m_sLang == "qtz" )
+ {
+ xmlChar* pText = xmlNodeGetContent(pCurrent);
+ const OString sOriginText =
+ helper::unEscapeAll(helper::xmlStrToOString( pText ),"\\n""\\t","\n""\t");
+ xmlFree( pText );
+ sNewText = MergeEntrys::GetQTZText(aResData, sOriginText);
+ }
+ else if( pMergeDataFile )
+ {
+ MergeEntrys* pEntrys = pMergeDataFile->GetMergeEntrys( &aResData );
+ if( pEntrys )
+ {
+ pEntrys->GetText( sNewText, STRING_TYP_TEXT, m_sLang );
+ sNewText = helper::escapeAll(sNewText, "\n""\t""\'""\"","\\n""\\t""\\\'""\\\"");
+ }
+ }
+ if( !sNewText.isEmpty() )
{
- OString sNewText;
- pEntrys->GetText( sNewText, STRING_TYP_TEXT, m_sLang );
- sNewText = helper::escapeAll(sNewText, "\n""\t""\'""\"","\\n""\\t""\\\'""\\\"");
xmlNodeSetContent(
pCurrent,
xmlEncodeSpecialChars( NULL,
@@ -142,6 +153,7 @@ void StringParser::Merge(
}
}
+ delete pMergeDataFile;
xmlSaveFile( rDestinationFile.getStr(), m_pSource );
xmlFreeDoc( m_pSource );
xmlCleanupParser();
diff --git a/l10ntools/source/treemerge.cxx b/l10ntools/source/treemerge.cxx
index d80203df459a..2870a2e7b5b9 100644
--- a/l10ntools/source/treemerge.cxx
+++ b/l10ntools/source/treemerge.cxx
@@ -153,25 +153,39 @@ namespace
{
if( !xmlStrcmp(pCurrent->name, pNodeName) )
{
- if( pMergeDataFile )
+ if( rLang != "en-US" )
{
+ OString sNewText;
xmlChar* pID = xmlGetProp(pCurrent, (const xmlChar*)("id"));
ResData aResData(
helper::xmlStrToOString( pID ),
static_cast<OString>(io_pSource->name) );
xmlFree( pID );
aResData.sResTyp = helper::xmlStrToOString( pNodeName );
- MergeEntrys* pEntrys =
- pMergeDataFile->GetMergeEntrys( &aResData );
- if( pEntrys )
+ if( pMergeDataFile )
+ {
+ MergeEntrys* pEntrys =
+ pMergeDataFile->GetMergeEntrys( &aResData );
+ if( pEntrys )
+ {
+ pEntrys->GetText( sNewText, STRING_TYP_TEXT, rLang );
+ }
+ }
+ else if( rLang == "qtz" )
+ {
+ xmlChar* pText = xmlGetProp(pCurrent, (const xmlChar*)("title"));
+ const OString sOriginText = helper::xmlStrToOString(pText);
+ xmlFree( pText );
+ sNewText = MergeEntrys::GetQTZText(aResData, sOriginText);
+ }
+ if( !sNewText.isEmpty() )
{
- OString sNewText;
- pEntrys->GetText( sNewText, STRING_TYP_TEXT, rLang );
xmlSetProp(
pCurrent, (const xmlChar*)("title"),
(const xmlChar*)(sNewText.getStr()));
}
}
+
lcl_MergeLevel(
io_pSource, pCurrent, (const xmlChar *)("node"),
pMergeDataFile, rLang, rXhpRoot );
@@ -242,32 +256,27 @@ void TreeParser::Merge(
assert( m_bIsInitialized );
const xmlNodePtr pRootNode = xmlDocGetRootElement( m_pSource );
- if( m_sLang == "en-US" )
- {
- lcl_MergeLevel(
- m_pSource, pRootNode, (const xmlChar *)("help_section"),
- 0, m_sLang, rXhpRoot );
- }
- else
+ MergeDataFile* pMergeDataFile = 0;
+ if( m_sLang != "qtz" && m_sLang != "en-US" )
{
- MergeDataFile aMergeDataFile(
+ pMergeDataFile = new MergeDataFile(
rMergeSrc, static_cast<OString>( m_pSource->name ), false, false );
- const std::vector<OString> vLanguages = aMergeDataFile.GetLanguages();
- if( vLanguages.size()>=2 &&
- vLanguages[vLanguages[0]=="qtz" ? 1 : 0] != m_sLang )
+ const std::vector<OString> vLanguages = pMergeDataFile->GetLanguages();
+ if( vLanguages.size()>=1 && vLanguages[0] != m_sLang )
{
std::cerr
<< "Treex error: given language conflicts with "
<< "language of Mergedata file: "
<< m_sLang.getStr() << " - "
- << vLanguages[vLanguages[0]=="qtz" ? 1 : 0].getStr() << std::endl;
+ << vLanguages[0].getStr() << std::endl;
return;
}
- lcl_MergeLevel(
- m_pSource, pRootNode, (const xmlChar *)("help_section"),
- &aMergeDataFile, m_sLang, rXhpRoot );
}
+ lcl_MergeLevel(
+ m_pSource, pRootNode, (const xmlChar *)("help_section"),
+ pMergeDataFile, m_sLang, rXhpRoot );
+ delete pMergeDataFile;
xmlSaveFile( rDestinationFile.getStr(), m_pSource );
xmlFreeDoc( m_pSource );
xmlCleanupParser();
diff --git a/librelogo/CustomTarget_librelogo.mk b/librelogo/CustomTarget_librelogo.mk
index 92c8504a0551..6affb4a367fa 100644
--- a/librelogo/CustomTarget_librelogo.mk
+++ b/librelogo/CustomTarget_librelogo.mk
@@ -28,7 +28,7 @@ $(1) : $(2) \
endef
ifneq ($(strip $(gb_WITH_LANG)),)
-librelogo_LANGS := $(filter-out qtz,$(filter-out en-US,$(gb_WITH_LANG)))
+librelogo_LANGS := $(filter-out en-US,$(gb_WITH_LANG))
$(eval $(foreach lang,$(librelogo_LANGS),$(call librelogo_Properties_Properties,$(subst -,_,$(lang)),$(lang))))
endif
@@ -37,14 +37,23 @@ $(librelogo_DIR)/LibreLogo_%.properties : \
| $(librelogo_DIR)/.dir
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),PRP,1)
$(call gb_Helper_abbreviate_dirs, \
- MERGEINPUT=`$(gb_MKTEMP)` && \
- echo $(POFILE) > $${MERGEINPUT} && \
- $(call gb_Executable_get_command,propex) \
- -i $(SOURCE) \
- -o $@ \
- -m $${MERGEINPUT} \
- -l $(LANG) && \
- rm -rf $${MERGEINPUT} \
+ $(if $(filter-out qtz,$(LANG)), \
+ MERGEINPUT=`$(gb_MKTEMP)` && \
+ echo $(POFILE) > $${MERGEINPUT} && \
+ $(call gb_Executable_get_command,propex) \
+ -i $(SOURCE) \
+ -o $@ \
+ -m $${MERGEINPUT} \
+ -l $(LANG) && \
+ rm -rf $${MERGEINPUT} \
+ , \
+ $(call gb_Executable_get_command,propex) \
+ -i $(SOURCE) \
+ -o $@ \
+ -m \
+ -l $(LANG) \
+ ) \
)
+
# vim:set shiftwidth=4 tabstop=4 noexpandtab:
diff --git a/solenv/gbuild/Dictionary.mk b/solenv/gbuild/Dictionary.mk
index a7d458ffefdf..eb7ba2155512 100644
--- a/solenv/gbuild/Dictionary.mk
+++ b/solenv/gbuild/Dictionary.mk
@@ -59,14 +59,22 @@ gb_PropertiesTranslateTarget_DEPS := $(call gb_Executable_get_runtime_dependenci
define gb_PropertiesTranslateTarget__command
$(call gb_Output_announce,$(2),$(true),PRP,1)
-$(call gb_Helper_abbreviate_dirs,\
- MERGEINPUT=$(call var2file,$(shell $(gb_MKTEMP)),100,$(POFILE)) && \
- $(gb_PropertiesTranslateTarget_COMMAND) \
- -i $(PROPERTIES_FILE) \
- -l $(LANG) \
- -m $${MERGEINPUT} \
- -o $(1) && \
- rm -f $${MERGEINPUT} \
+$(call gb_Helper_abbreviate_dirs, \
+ $(if $(filter-out qtz,$(LANG)), \
+ MERGEINPUT=$(call var2file,$(shell $(gb_MKTEMP)),100,$(POFILE)) && \
+ $(gb_PropertiesTranslateTarget_COMMAND) \
+ -i $(PROPERTIES_FILE) \
+ -l $(LANG) \
+ -m $${MERGEINPUT} \
+ -o $(1) && \
+ rm -f $${MERGEINPUT} \
+ , \
+ $(gb_PropertiesTranslateTarget_COMMAND) \
+ -i $(PROPERTIES_FILE) \
+ -l $(LANG) \
+ -m \
+ -o $(1) \
+ ) \
)
endef
@@ -156,7 +164,7 @@ endef
# gb_DescriptionTranslateTarget__DescriptionTranslateTarget_onelang target pobase lang
define gb_DescriptionTranslateTarget__DescriptionTranslateTarget_onelang
-$(call gb_DescriptionTranslateTarget_get_target,$(1)) : POFILES += $(gb_POLOCATION)/$(3)/$(2).po
+$(call gb_DescriptionTranslateTarget_get_target,$(1)) : POFILES += $(if $(filter-out qtz,$(3)),$(gb_POLOCATION)/$(3)/$(2).po)
$(if $(filter-out qtz,$(3)),\
$(call gb_DescriptionTranslateTarget__DescriptionTranslateTarget_onelang_podeps,$(1),$(gb_POLOCATION)/$(3)/$(2).po))
diff --git a/solenv/gbuild/ExtensionTarget.mk b/solenv/gbuild/ExtensionTarget.mk
index 575007091438..547b8ecdd11e 100644
--- a/solenv/gbuild/ExtensionTarget.mk
+++ b/solenv/gbuild/ExtensionTarget.mk
@@ -217,24 +217,21 @@ endef
# localize .properties file
# source file is copied to $(WORKDIR)
define gb_ExtensionTarget_localize_properties
-ifneq ($(gb_TRANS_LANGS),)
-ifneq ($(ENABLE_RELEASE_BUILD),TRUE)
-$(call gb_ExtensionTarget_localize_properties_onelang,$(1),$(subst en_US,qtz,$(2)),$(3),qtz,$(firstword $(gb_TRANS_LANGS)))
-endif
-endif
-$(foreach lang,$(filter-out qtz,$(gb_ExtensionTarget_ALL_LANGS)),\
+$(foreach lang,$(gb_ExtensionTarget_ALL_LANGS),\
$(call gb_ExtensionTarget_localize_properties_onelang,$(1),$(subst en_US,$(subst -,_,$(lang)),$(2)),$(3),$(lang)))
endef
define gb_ExtensionTarget_localize_properties_onelang
$(call gb_ExtensionTarget_get_target,$(1)) : FILES += $(2)
ifneq ($(filter-out en-US,$(4)),)
+ifneq ($(filter-out qtz,$(4)),)
$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : \
POFILE := $(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po
$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : \
$(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po
$(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po :
endif
+endif
$(call gb_ExtensionTarget_get_target,$(1)) : $(call gb_ExtensionTarget_get_rootdir,$(1))/$(2)
$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) \
:| $(call gb_ExtensionTarget__get_preparation_target,$(1))
@@ -243,12 +240,19 @@ $(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : $(3) \
$$(call gb_Output_announce,$(2),$(true),PRP,3)
$$(call gb_Helper_abbreviate_dirs, \
mkdir -p $$(dir $$@) && \
- cp -f $$< $$@ )
- $(if $(filter-out en-US,$(4)), \
- MERGEINPUT=`$(gb_MKTEMP)` && \
- echo $$(POFILE) > $$$${MERGEINPUT} && \
- $(gb_ExtensionTarget_PROPMERGECOMMAND) -i $$< -o $$@ -m $$$${MERGEINPUT} -l $(4) && \
- rm -rf $$$${MERGEINPUT})
+ $(if $(filter qtz,$(4)), \
+ $(gb_ExtensionTarget_PROPMERGECOMMAND) -i $$< -o $$@ -m -l $(4) \
+ , \
+ $(if $(filter-out en-US,$(4)), \
+ MERGEINPUT=`$(gb_MKTEMP)` && \
+ echo $$(POFILE) > $$$${MERGEINPUT} && \
+ $(gb_ExtensionTarget_PROPMERGECOMMAND) -i $$< -o $$@ -m $$$${MERGEINPUT} -l $(4) && \
+ rm -rf $$$${MERGEINPUT} \
+ , \
+ cp -f $$< $$@ \
+ ) \
+ ) \
+ )
endef
@@ -262,7 +266,7 @@ endef
# (i.e., if $(4) is empty the en-US source file is $(2)/$(3), otherwise it
# is $(2)/$(4))
define gb_ExtensionTarget_add_helpfile
-$(foreach lang,$(filter-out qtz,$(gb_ExtensionTarget_ALL_LANGS)), \
+$(foreach lang,$(gb_ExtensionTarget_ALL_LANGS), \
$(call gb_ExtensionTarget__localize_helpfile_onelang,$(1),$(2),$(3),$(4),$(lang)) \
$(call gb_ExtensionTarget__add_compiled_help_dependency_onelang,$(1),$(lang)))
endef
@@ -276,7 +280,7 @@ endef
# $(4): relative path of source help.tree file
# $(5): relative path of localized xhp files (PlatformID included)
define gb_ExtensionTarget_add_helptreefile
-$(foreach lang,$(filter-out qtz,$(gb_ExtensionTarget_ALL_LANGS)), \
+$(foreach lang,$(gb_ExtensionTarget_ALL_LANGS), \
$(call gb_ExtensionTarget__localize_helptreefile_onelang,$(1),$(2),$(3),$(4),$(lang),$(5)) \
$(call gb_ExtensionTarget__add_compiled_help_dependency_onelang,$(1),$(lang)))
endef
@@ -309,12 +313,14 @@ $(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5).done : \
$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)-xhp.done : \
$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3)
ifneq ($(filter-out en-US,$(5)),)
+ifneq ($(filter-out qtz,$(5)),)
$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \
POFILE := $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3)))))
$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \
$(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3)))))
$(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3))))) :
endif
+endif
$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \
$(if $(filter-out en-US,$(5)),$(gb_ExtensionTarget_HELPEXDEPS)) | \
$(call gb_ExtensionTarget_get_workdir,$(1))/help/.dir
@@ -322,18 +328,26 @@ $(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \
$(2)/$(or $(4),$(3))
$$(call gb_Output_announce,$(1) $(3) $(5),$(true),XHP,3)
$$(call gb_Helper_abbreviate_dirs, \
- mkdir -p $$(dir $$@) && \
- $(if $(filter-out en-US,$(5)), \
- MERGEINPUT=`$(gb_MKTEMP)` && \
- echo $$(POFILE) > $$$${MERGEINPUT} && \
- $(gb_ExtensionTarget_HELPEXCOMMAND) -i $$< -o $$@ -l $(5) \
- -m $$$${MERGEINPUT} && \
- rm -rf $$$${MERGEINPUT}, \
- cp $$< $$@)) && \
- touch $(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)-xhp.done
+ mkdir -p $$(dir $$@) && \
+ $(if $(filter qtz,$(5)), \
+ $(gb_ExtensionTarget_HELPEXCOMMAND) -i $$< -o $$@ -l $(5) -m \
+ , \
+ $(if $(filter-out en-US,$(5)), \
+ MERGEINPUT=`$(gb_MKTEMP)` && \
+ echo $$(POFILE) > $$$${MERGEINPUT} && \
+ $(gb_ExtensionTarget_HELPEXCOMMAND) -i $$< -o $$@ -l $(5) \
+ -m $$$${MERGEINPUT} && \
+ rm -rf $$$${MERGEINPUT} \
+ , \
+ cp $$< $$@ \
+ ) \
+ ) && \
+ touch $(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)-xhp.done \
+ )
endef
+
# localize one help.tree for one language; the result is stored as
# help/$(4)/$(3) in the extension's workdir;
# $(1): extension identifier
@@ -349,12 +363,14 @@ define gb_ExtensionTarget__localize_helptreefile_onelang
$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5).done : \
$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3)
ifneq ($(filter-out en-US,$(5)),)
+ifneq ($(filter-out qtz,$(5)),)
$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \
POFILE := $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4))))
$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \
$(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4))))
$(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4)))) :
endif
+endif
$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \
$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)-xhp.done
$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \
@@ -365,15 +381,23 @@ $(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \
$$(call gb_Output_announce,$(1) $(3) $(5),$(true),TRE,3)
$$(call gb_Helper_abbreviate_dirs, \
mkdir -p $$(dir $$@) && \
- $(if $(filter-out en-US,$(5)), \
- MERGEINPUT=`$(gb_MKTEMP)` && \
- echo $$(POFILE) > $$$${MERGEINPUT} && \
- $(gb_ExtensionTarget_TREEXCOMMAND) -i $$< -o $$@ -l $(5) \
- -m $$$${MERGEINPUT} \
- -r $$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(6) && \
- rm -rf $$$${MERGEINPUT}, \
- $(gb_ExtensionTarget_TREEXCOMMAND) -i $$< -o $$@ -l $(5) \
- -r $$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(6) ))
+ $(if $(filter qtz,$(5)), \
+ $(gb_ExtensionTarget_TREEXCOMMAND) -i $$< -o $$@ -l $(5) -m \
+ -r $$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(6) \
+ , \
+ $(if $(filter-out en-US,$(5)), \
+ MERGEINPUT=`$(gb_MKTEMP)` && \
+ echo $$(POFILE) > $$$${MERGEINPUT} && \
+ $(gb_ExtensionTarget_TREEXCOMMAND) -i $$< -o $$@ -l $(5) \
+ -m $$$${MERGEINPUT} \
+ -r $$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(6) && \
+ rm -rf $$$${MERGEINPUT} \
+ , \
+ $(gb_ExtensionTarget_TREEXCOMMAND) -i $$< -o $$@ -l $(5) \
+ -r $$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(6) \
+ ) \
+ ) \
+ )
endef
diff --git a/solenv/gbuild/HelpTarget.mk b/solenv/gbuild/HelpTarget.mk
index 5606fc048d3d..9aa622e8fdd9 100644
--- a/solenv/gbuild/HelpTarget.mk
+++ b/solenv/gbuild/HelpTarget.mk
@@ -39,16 +39,26 @@ gb_HelpTranslatePartTarget_COMMAND := $(call gb_Executable_get_command,helpex)
define gb_HelpTranslatePartTarget__command
$(call gb_Output_announce,$(2),$(true),HPX,1)
HELPFILES=$(call var2file,$(shell $(gb_MKTEMP)),100,$(filter %.xhp,$(3))) && \
-POFILES=$(call var2file,$(shell $(gb_MKTEMP)),100,$(sort $(POFILES))) && \
-$(call gb_Helper_abbreviate_dirs,\
- $(gb_HelpTranslatePartTarget_COMMAND) \
- -l $(HELP_LANG) \
- -mi $${HELPFILES} \
- -m $${POFILES} \
- -o $(call gb_HelpTranslatePartTarget_get_workdir,$(2)) \
+$(call gb_Helper_abbreviate_dirs, \
+ $(if $(filter-out qtz,$(HELP_LANG)), \
+ POFILES=$(call var2file,$(shell $(gb_MKTEMP)),100,$(sort $(POFILES))) && \
+ $(gb_HelpTranslatePartTarget_COMMAND) \
+ -l $(HELP_LANG) \
+ -mi $${HELPFILES} \
+ -m $${POFILES} \
+ -o $(call gb_HelpTranslatePartTarget_get_workdir,$(2)) && \
+ rm -f $${POFILES} \
+ , \
+ $(gb_HelpTranslatePartTarget_COMMAND) \
+ -l $(HELP_LANG) \
+ -mi $${HELPFILES} \
+ -m \
+ -o $(call gb_HelpTranslatePartTarget_get_workdir,$(2)) \
+ ) \
) && \
touch $@ && \
-rm -f $${HELPFILES} $${POFILES}
+rm -f $${HELPFILES}
+
endef
$(dir $(call gb_HelpTranslatePartTarget_get_target,%)).dir :
@@ -177,16 +187,26 @@ gb_HelpTreeTarget_COMMAND := $(call gb_Executable_get_command,treex)
define gb_HelpTreeTarget__command
$(call gb_Output_announce,$(2),$(true),TRE,1)
-POFILES=$(call var2file,$(shell $(gb_MKTEMP)),100,$(POFILES)) && \
$(call gb_Helper_abbreviate_dirs,\
- $(gb_HelpTreeTarget_COMMAND) \
- -i $(HELP_TREE) \
- -l $(HELP_LANG) \
- -m $${POFILES} \
- -o $@ \
- -r $(HELP_TEXTDIR) \
-) && \
-rm -f $${POFILES}
+ $(if $(filter-out qtz,$(HELP_LANG)), \
+ POFILES=$(call var2file,$(shell $(gb_MKTEMP)),100,$(POFILES)) && \
+ $(gb_HelpTreeTarget_COMMAND) \
+ -i $(HELP_TREE) \
+ -l $(HELP_LANG) \
+ -m $${POFILES} \
+ -o $@ \
+ -r $(HELP_TEXTDIR) && \
+ rm -f $${POFILES} \
+ , \
+ $(gb_HelpTreeTarget_COMMAND) \
+ -i $(HELP_TREE) \
+ -l $(HELP_LANG) \
+ -m \
+ -o $@ \
+ -r $(HELP_TEXTDIR) \
+ ) \
+)
+
endef
$(dir $(call gb_HelpTreeTarget_get_target,%)).dir :