From 18ad4b1542a90f7aa0972b62feeafd0b1bd5e3f2 Mon Sep 17 00:00:00 2001
From: Jens-Heiner Rechtien
Date: Tue, 29 Apr 2003 15:47:57 +0000
Subject: 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
---
transex3/source/cfgmerge.cxx | 32 +++++++++++++++++++++++++++-----
1 file 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 );
--
cgit