diff options
author | Andras Timar <andras.timar@collabora.com> | 2013-11-17 10:58:20 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2013-11-17 11:03:36 +0100 |
commit | 4c530d3d18727567d3c5ec3721dc46866b34d2e0 (patch) | |
tree | 19c1a63eb6aa7376ae11fd6b36f88cb2a4563431 /l10ntools | |
parent | 5b328e8f28b131f4ee391c66b4ae58f8193a0050 (diff) |
good-bye stringex, you served well
It will be better to handle Android Impress Remote localization
independent of the big LibreOffice source tree. Instead of
stringex, we will use android2po, a 3rd party utility for conversion
strings.xml <-> pot/po.
Change-Id: I4eae53e4f8d94c55e5564d54c5e5c214bc9569d7
Diffstat (limited to 'l10ntools')
-rw-r--r-- | l10ntools/Executable_stringex.mk | 36 | ||||
-rw-r--r-- | l10ntools/Module_l10ntools.mk | 1 | ||||
-rw-r--r-- | l10ntools/inc/stringmerge.hxx | 41 | ||||
-rw-r--r-- | l10ntools/source/localize.cxx | 2 | ||||
-rw-r--r-- | l10ntools/source/stringex.cxx | 42 | ||||
-rw-r--r-- | l10ntools/source/stringmerge.cxx | 193 |
6 files changed, 0 insertions, 315 deletions
diff --git a/l10ntools/Executable_stringex.mk b/l10ntools/Executable_stringex.mk deleted file mode 100644 index 4f9edfde592a..000000000000 --- a/l10ntools/Executable_stringex.mk +++ /dev/null @@ -1,36 +0,0 @@ -# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- -# -# This file is part of the LibreOffice project. -# -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. -# - - -$(eval $(call gb_Executable_Executable,stringex)) - -$(eval $(call gb_Executable_set_include,stringex,\ - -I$(SRCDIR)/l10ntools/inc \ - $$(INCLUDE) \ -)) - -$(eval $(call gb_Executable_use_libraries,stringex,\ - sal \ -)) - -$(eval $(call gb_Executable_use_static_libraries,stringex,\ - transex \ -)) - -$(eval $(call gb_Executable_add_exception_objects,stringex,\ - l10ntools/source/stringmerge \ - l10ntools/source/stringex \ -)) - -$(eval $(call gb_Executable_use_externals,stringex,\ - boost_headers \ - libxml2 \ -)) - -# vim: set noet sw=4 ts=4: diff --git a/l10ntools/Module_l10ntools.mk b/l10ntools/Module_l10ntools.mk index 979725296ee7..d391ed7463c7 100644 --- a/l10ntools/Module_l10ntools.mk +++ b/l10ntools/Module_l10ntools.mk @@ -21,7 +21,6 @@ $(eval $(call gb_Module_add_targets_for_build,l10ntools,\ Executable_pocheck \ Executable_propex \ Executable_treex \ - Executable_stringex \ StaticLibrary_transex \ )) diff --git a/l10ntools/inc/stringmerge.hxx b/l10ntools/inc/stringmerge.hxx deleted file mode 100644 index 626da773d29a..000000000000 --- a/l10ntools/inc/stringmerge.hxx +++ /dev/null @@ -1,41 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#ifndef INCLUDED_L10NTOOLS_INC_STRINGMERGE_HXX -#define INCLUDED_L10NTOOLS_INC_STRINGMERGE_HXX - -#include <libxml/tree.h> -#include <rtl/string.hxx> -#include <vector> - -/** Class for Android strings.xml localization - - Parse strings.xml files, extract translatable strings - and merge translated strings. -*/ -class StringParser -{ -private: - xmlDocPtr m_pSource; - OString m_sLang; - bool m_bIsInitialized; - -public: - StringParser( - const OString& rInputFile, const OString& rLang ); - ~StringParser(); - - bool isInitialized() const { return m_bIsInitialized; } - void Extract( const OString& rPOFile ); - void Merge( - const OString &rMergeSrc, const OString &rDestinationFile ); -}; - -#endif // INCLUDED_L10NTOOLS_INC_STRINGMERGE_HXX -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/l10ntools/source/localize.cxx b/l10ntools/source/localize.cxx index 4b7afd7b92d1..5bd55b43d928 100644 --- a/l10ntools/source/localize.cxx +++ b/l10ntools/source/localize.cxx @@ -186,7 +186,6 @@ bool handleFile( { RTL_CONSTASCII_STRINGPARAM(".xcu"), "cfgex", false }, { RTL_CONSTASCII_STRINGPARAM(".xrm"), "xrmex", false }, { RTL_CONSTASCII_STRINGPARAM("description.xml"), "xrmex", true }, - { RTL_CONSTASCII_STRINGPARAM("strings.xml"), "stringex", true }, { RTL_CONSTASCII_STRINGPARAM(".xhp"), "helpex", false }, { RTL_CONSTASCII_STRINGPARAM(".properties"), "propex", false }, { RTL_CONSTASCII_STRINGPARAM(".ui"), "uiex", false }, @@ -270,7 +269,6 @@ void handleFilesOfDir( bool includeProject(const OString& rProject) { static const OString projects[] = { "accessibility", - "android", "avmedia", "basctl", "basic", diff --git a/l10ntools/source/stringex.cxx b/l10ntools/source/stringex.cxx deleted file mode 100644 index 1b507f82eca3..000000000000 --- a/l10ntools/source/stringex.cxx +++ /dev/null @@ -1,42 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#include <iostream> -#include "sal/main.h" - -#include "common.hxx" -#include "stringmerge.hxx" - -SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) -{ - common::HandledArgs aArgs; - if( !common::handleArguments(argc, argv, aArgs) ) - { - common::writeUsage("stringex","string.xml"); - return 1; - } - - StringParser aParser(aArgs.m_sInputFile, aArgs.m_sLanguage); - if( !aParser.isInitialized() ) - { - return 1; - } - - if( aArgs.m_bMergeMode ) - { - aParser.Merge( aArgs.m_sMergeSrc, aArgs.m_sOutputFile ); - } - else - { - aParser.Extract( aArgs.m_sOutputFile ); - } - return 0; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/l10ntools/source/stringmerge.cxx b/l10ntools/source/stringmerge.cxx deleted file mode 100644 index 7cc5d0100c7b..000000000000 --- a/l10ntools/source/stringmerge.cxx +++ /dev/null @@ -1,193 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#include <iostream> -#include <fstream> -#include <cassert> -#include <cstring> - -#include <libxml/tree.h> -#include <libxml/parser.h> -#include <libxml/xmlmemory.h> -#include <libxml/xmlstring.h> - -#include "export.hxx" -#include "helper.hxx" -#include "common.hxx" -#include "po.hxx" -#include "stringmerge.hxx" - -//Parse strings.xml file -StringParser::StringParser( - const OString& rInputFile, const OString& rLang ) - : m_pSource( 0 ) - , m_sLang( rLang ) - , m_bIsInitialized( false ) -{ - m_pSource = xmlParseFile( rInputFile.getStr() ); - if ( !m_pSource ) { - std::cerr - << "Stringx error: Cannot open source file: " - << rInputFile.getStr() << std::endl; - return; - } - if( !m_pSource->name ) - { - m_pSource->name = new char[strlen(rInputFile.getStr())+1]; - strcpy( m_pSource->name, rInputFile.getStr() ); - } - m_bIsInitialized = true; -} - -StringParser::~StringParser() -{ -} - -//Extract strings form source file -void StringParser::Extract( const OString& rPOFile ) -{ - assert( m_bIsInitialized ); - PoOfstream aPOStream( rPOFile, PoOfstream::APP ); - if( !aPOStream.isOpen() ) - { - std::cerr - << "stringex error: Cannot open po file for extract: " - << rPOFile.getStr() << std::endl; - return; - } - - xmlNodePtr pRootNode = xmlDocGetRootElement( m_pSource ); // <resource> - for( xmlNodePtr pCurrent = pRootNode->children->next; - pCurrent; pCurrent = pCurrent->next) - { - if (!xmlStrcmp(pCurrent->name, (const xmlChar*)("string"))) - { - xmlChar* pTranslatable = xmlGetProp(pCurrent, (const xmlChar*)("translatable")); - if (xmlStrcmp(pTranslatable, (const xmlChar*)("false"))) - { - xmlChar* pID = xmlGetProp(pCurrent, (const xmlChar*)("name")); - xmlChar* pText = xmlNodeGetContent(pCurrent); - const OString sTemp = - helper::unEscapeAll(helper::xmlStrToOString( pText ),"\\n""\\t""\\\"""\\\'","\n""\t""\"""\'"); - common::writePoEntry( - "Stringex", aPOStream, m_pSource->name, "string", - helper::xmlStrToOString( pID ), OString(), OString(), - sTemp); - - xmlFree( pID ); - xmlFree( pText ); - } - xmlFree( pTranslatable ); - } - } - - xmlFreeDoc( m_pSource ); - xmlCleanupParser(); - aPOStream.close(); - m_bIsInitialized = false; -} - -//Merge strings to localized strings.xml file -void StringParser::Merge( - const OString &rMergeSrc, const OString &rDestinationFile ) -{ - assert( m_bIsInitialized ); - - MergeDataFile* pMergeDataFile = 0; - if( m_sLang != "qtz" ) - { - 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; - delete pMergeDataFile; - return; - } - } - - xmlNodePtr pRootNode = xmlDocGetRootElement( m_pSource ); //<resource> - - for( xmlNodePtr pCurrent = pRootNode->children; - pCurrent; pCurrent = pCurrent->next) - { - if (!xmlStrcmp(pCurrent->name, (const xmlChar*)("string"))) - { - xmlChar* pID = xmlGetProp(pCurrent, (const xmlChar*)("name")); - ResData aResData( - helper::xmlStrToOString( pID ), - static_cast<OString>(m_pSource->name) ); - xmlFree( pID ); - aResData.sResTyp = "string"; - 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() ) - { - xmlNodeSetContent( - pCurrent, - xmlEncodeSpecialChars( NULL, - reinterpret_cast<const xmlChar*>( - sNewText.getStr() ))); - } - } - } - - for( xmlNodePtr pCurrent = pRootNode->children; pCurrent; ) - { - if (!xmlStrcmp(pCurrent->name, (const xmlChar*)("string"))) - { - xmlChar* pTranslatable = xmlGetProp(pCurrent, (const xmlChar*)("translatable")); - if (!xmlStrcmp(pTranslatable, (const xmlChar*)("false"))) - { - xmlNodePtr pNonTranslatable = pCurrent; - pCurrent = pCurrent->next; - xmlUnlinkNode( pNonTranslatable ); - xmlFreeNode( pNonTranslatable ); - } - else - { - pCurrent = pCurrent->next; - } - xmlFree( pTranslatable ); - } - else - { - pCurrent = pCurrent->next; - } - } - - delete pMergeDataFile; - xmlSaveFile( rDestinationFile.getStr(), m_pSource ); - xmlFreeDoc( m_pSource ); - xmlCleanupParser(); - m_bIsInitialized = false; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |