summaryrefslogtreecommitdiff
path: root/transex3
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2003-04-29 15:47:57 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2003-04-29 15:47:57 +0000
commit18ad4b1542a90f7aa0972b62feeafd0b1bd5e3f2 (patch)
treeeddd9ac68df6ce100360db2166e62888d3f162d3 /transex3
parent32fe3e0b42ba38bfe0ad09ecad879f491d333ba7 (diff)
INTEGRATION: CWS mergem8 (1.23.2.1.14); FILE MERGED
2003/04/09 07:27:12 nf 1.23.2.1.14.2: #108734# dtd conform insertion of localized items in combination with empty but existing label 2003/04/07 12:26:45 nf 1.23.2.1.14.1: Fixes: #107095# for new ulf file format and #108524# to support x-no-translate
Diffstat (limited to 'transex3')
-rw-r--r--transex3/source/cfgmerge.cxx32
1 files changed, 27 insertions, 5 deletions
diff --git a/transex3/source/cfgmerge.cxx b/transex3/source/cfgmerge.cxx
index 7df3147044b4..e0efea8a2dfc 100644
--- a/transex3/source/cfgmerge.cxx
+++ b/transex3/source/cfgmerge.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: cfgmerge.cxx,v $
*
- * $Revision: 1.24 $
+ * $Revision: 1.25 $
*
- * last change: $Author: hr $ $Date: 2003-03-27 17:10:45 $
+ * last change: $Author: hr $ $Date: 2003-04-29 16:47:57 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -426,7 +426,7 @@ void CfgParser::AddText(
WorkOnText( rText, nLangIndex, rResTyp );
pStackData->sText[ nLangIndex ] = rText;
}
- else {
+ else if ( rIsoLang != NO_TRANSLATE_ISO ) {
ByteString sError( "Unknown language code: " );
sError += rIsoLang;
Error( sError );
@@ -459,13 +459,14 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken )
case CFG_TOKEN_TEMPLATE:
case CFG_TOKEN_CONFIGNAME:
case CFG_TOKEN_OORNAME:
+ case CFG_TOKEN_OORVALUE:
case CFG_TAG:
case ANYTOKEN:
case CFG_TEXT_START:
{
- if ( !IsTokenClosed( sToken )) {
- sTokenName = sToken.GetToken( 1, '<' ).GetToken( 0, '>' ).GetToken( 0, ' ' );
+ sTokenName = sToken.GetToken( 1, '<' ).GetToken( 0, '>' ).GetToken( 0, ' ' );
+ if ( !IsTokenClosed( sToken )) {
ByteString sSearch;
switch ( nToken ) {
case CFG_TOKEN_PACKAGE:
@@ -484,6 +485,9 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken )
sSearch = "oor:name=";
bLocalize = TRUE;
break;
+ case CFG_TOKEN_OORVALUE:
+ sSearch = "oor:value=";
+ break;
case CFG_TEXT_START: {
if ( sCurrentResTyp != sTokenName ) {
WorkOnRessourceEnd();
@@ -496,6 +500,9 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken )
ByteString sTemp = sToken.Copy( sToken.Search( "xml:lang=" ));
sCurrentIsoLang = sTemp.GetToken( 1, '\"' ).GetToken( 0, '\"' );
+ if ( sCurrentIsoLang == NO_TRANSLATE_ISO )
+ bLocalize = FALSE;
+
pStackData->sTextTag = sToken;
sCurrentText = "";
@@ -514,6 +521,15 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken )
( sTemp.Search( "CFG:LOCALIZED=\"TRUE\"" ) != STRING_NOTFOUND ));
}
}
+ else if ( sTokenName == "label" ) {
+ if ( sCurrentResTyp != sTokenName ) {
+ WorkOnRessourceEnd();
+ for ( ULONG i = 0; i < LANGUAGES; i++ )
+ if ( LANGUAGE_ALLOWED( i ))
+ pStackData->sText[ i ] = "";
+ }
+ sCurrentResTyp = sTokenName;
+ }
}
break;
case CFG_CLOSETAG:
@@ -535,6 +551,10 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken )
sCurrentText += sToken;
bOutput = FALSE;
break;
+
+ case CFG_TOKEN_NO_TRANSLATE:
+ bLocalize = FALSE;
+ break;
}
if ( sCurrentText.Len() && nToken != CFG_TEXTCHAR ) {
@@ -577,6 +597,8 @@ int CfgParser::Execute( int nToken, char * pToken )
return ExecuteAnalyzedToken( CFG_TOKEN_OORNAME, pToken );
else if ( sToken.Search( "oor:name=" ) != STRING_NOTFOUND )
return ExecuteAnalyzedToken( CFG_TOKEN_OORNAME, pToken );
+ else if ( sToken.Search( "oor:value=" ) != STRING_NOTFOUND )
+ return ExecuteAnalyzedToken( CFG_TOKEN_OORVALUE, pToken );
break;
}
return ExecuteAnalyzedToken( nToken, pToken );