diff options
author | Zolnai Tamás <zolnaitamas2000@gmail.com> | 2013-03-15 15:42:05 +0100 |
---|---|---|
committer | Zolnai Tamás <zolnaitamas2000@gmail.com> | 2013-03-16 12:27:32 +0100 |
commit | 15a13bafccb96e6ab0cc5a23af6dd46715fa22c5 (patch) | |
tree | 91b93ddc0f731aec2d5b19f1895545550872a119 /l10ntools/source/lngmerge.cxx | |
parent | 516118b515fb577b1cc40e4b8d7dc06919b64675 (diff) |
Get rid of generating temporary sdf file
Working:
1. Localize add header to po files.
2. Executables append po entries to po files.
3. Localize delete entryless po files and empty directories
Plus a bunch of clean up.
Change-Id: I58e300eaee4cee948203cc9d3e642ca9462d0d26
Diffstat (limited to 'l10ntools/source/lngmerge.cxx')
-rw-r--r-- | l10ntools/source/lngmerge.cxx | 38 |
1 files changed, 13 insertions, 25 deletions
diff --git a/l10ntools/source/lngmerge.cxx b/l10ntools/source/lngmerge.cxx index 71f68effccdf..001ff83b2111 100644 --- a/l10ntools/source/lngmerge.cxx +++ b/l10ntools/source/lngmerge.cxx @@ -80,20 +80,15 @@ LngParser::~LngParser() delete pLines; } -sal_Bool LngParser::CreateSDF(const rtl::OString &rSDFFile, - const rtl::OString &rPrj, const rtl::OString &rRoot) +sal_Bool LngParser::CreatePO( const rtl::OString &rPOFile ) { Export::InitLanguages( false ); aLanguages = Export::GetLanguages(); - std::ofstream aSDFStream( - rSDFFile.getStr(), std::ios_base::out | std::ios_base::trunc); - if (!aSDFStream.is_open()) { - nError = SDF_COULD_NOT_OPEN; + PoOfstream aPOStream( rPOFile, PoOfstream::APP ); + if (!aPOStream.isOpen()) { + std::cerr << "Ulfex error: Can't open po file:" << rPOFile.getStr() << "\n"; } - nError = SDF_OK; - rtl::OString sActFileName( - common::pathnameToken(sSource.getStr(), rRoot.getStr())); size_t nPos = 0; sal_Bool bStart = true; @@ -113,16 +108,15 @@ sal_Bool LngParser::CreateSDF(const rtl::OString &rSDFFile, sID = sGroup; } else { - WriteSDF( aSDFStream , Text , rPrj , rRoot , sActFileName , sID ); + WritePO( aPOStream , Text , sSource , sID ); } } - aSDFStream.close(); + aPOStream.close(); return true; } -void LngParser::WriteSDF(std::ofstream &aSDFStream, - OStringHashMap &rText_inout, const rtl::OString &rPrj, - const rtl::OString &rRoot, const rtl::OString &rActFileName, +void LngParser::WritePO(PoOfstream &aPOStream, + OStringHashMap &rText_inout, const rtl::OString &rActFileName, const rtl::OString &rID) { @@ -135,15 +129,9 @@ void LngParser::WriteSDF(std::ofstream &aSDFStream, if ( sAct.isEmpty() && !sCur.isEmpty() ) sAct = rText_inout[ rtl::OString("en-US") ]; - rtl::OString sOutput( rPrj ); sOutput += "\t"; - if (rRoot.getLength()) - sOutput += rActFileName; - sOutput += "\t0\t"; - sOutput += "LngText\t"; - sOutput += rID; sOutput += "\t\t\t\t0\t"; - sOutput += sCur; sOutput += "\t"; - sOutput += sAct; sOutput += "\t\t\t\t"; - aSDFStream << sOutput.getStr() << '\n'; + Export::writePoEntry( + "Ulfex", aPOStream, rActFileName, "LngText", + rID, OString(), OString(), sAct); } } } @@ -173,7 +161,7 @@ void LngParser::ReadLine(const rtl::OString &rLine_in, } sal_Bool LngParser::Merge( - const rtl::OString &rSDFFile, + const rtl::OString &rPOFile, const rtl::OString &rDestinationFile) { Export::InitLanguages( true ); @@ -184,7 +172,7 @@ sal_Bool LngParser::Merge( } nError = LNG_OK; - MergeDataFile aMergeDataFile( rSDFFile, sSource, false, true ); + MergeDataFile aMergeDataFile( rPOFile, sSource, false, true ); rtl::OString sTmp( Export::sLanguages ); if( sTmp.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("ALL")) ) Export::SetLanguages( aMergeDataFile.GetLanguages() ); |