diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2003-04-29 15:47:57 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2003-04-29 15:47:57 +0000 |
commit | 18ad4b1542a90f7aa0972b62feeafd0b1bd5e3f2 (patch) | |
tree | eddd9ac68df6ce100360db2166e62888d3f162d3 | |
parent | 32fe3e0b42ba38bfe0ad09ecad879f491d333ba7 (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
-rw-r--r-- | transex3/source/cfgmerge.cxx | 32 |
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 ); |