LibreOffice Module l10ntools (master) 1
lngmerge.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#ifndef INCLUDED_L10NTOOLS_INC_LNGMERGE_HXX
21#define INCLUDED_L10NTOOLS_INC_LNGMERGE_HXX
22
23#include <sal/config.h>
24
25#include <vector>
26
27#include "export.hxx"
28#include "po.hxx"
29
30#define LNG_OK 0x0000
31#define LNG_COULD_NOT_OPEN 0x0001
32
33
41{
42private:
43 std::vector<OString> mvLines;
44 OString sSource;
45 std::vector<OString> aLanguages;
46
47 static bool isNextGroup(OString &sGroup_out, std::string_view sLine_in);
48 static void ReadLine(std::string_view rLine_in,
49 OStringHashMap &rText_inout);
50 static void WritePO(PoOfstream &aPOStream, OStringHashMap &rText_inout,
51 const OString &rActFileName, const OString &rID);
52public:
53 LngParser(OString sLngFile);
54 ~LngParser();
55
56 void CreatePO( const OString &rPOFile );
57 void Merge(const OString &rPOFile, const OString &rDestinationFile,
58 std::string_view rLanguage );
59};
60
61#endif // INCLUDED_L10NTOOLS_INC_LNGMERGE_HXX
62
63/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
std::unordered_map< OString, OString > OStringHashMap
Definition: cfgmerge.hxx:33
Class for localization of *.ulf files.
Definition: lngmerge.hxx:41
void Merge(const OString &rPOFile, const OString &rDestinationFile, std::string_view rLanguage)
Definition: lngmerge.cxx:151
static void ReadLine(std::string_view rLine_in, OStringHashMap &rText_inout)
Definition: lngmerge.cxx:138
OString sSource
Definition: lngmerge.hxx:44
LngParser(OString sLngFile)
Definition: lngmerge.cxx:61
~LngParser()
Definition: lngmerge.cxx:88
std::vector< OString > aLanguages
Definition: lngmerge.hxx:45
std::vector< OString > mvLines
Definition: lngmerge.hxx:43
static void WritePO(PoOfstream &aPOStream, OStringHashMap &rText_inout, const OString &rActFileName, const OString &rID)
Definition: lngmerge.cxx:124
static bool isNextGroup(OString &sGroup_out, std::string_view sLine_in)
Definition: lngmerge.cxx:133
void CreatePO(const OString &rPOFile)
Definition: lngmerge.cxx:92
Interface to write po entry to files as output streams.
Definition: po.hxx:101