a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync/* $Id$ */
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync/** @file
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync * VirtualBox API translation handling class
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync */
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync/*
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync * Copyright (C) 2014 Oracle Corporation
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync *
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync * available from http://www.virtualbox.org. This file is free software;
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync * you can redistribute it and/or modify it under the terms of the GNU
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync * General Public License (GPL) as published by the Free Software
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync */
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync#ifndef ____H_QMTRANSLATOR
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync#define ____H_QMTRANSLATOR
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsyncclass QMTranslator_Impl;
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync
cb702d6d593134e47854c00a7fa1156fe48a14ccvboxsyncclass QMTranslator
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync{
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsyncpublic:
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync QMTranslator();
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync virtual ~QMTranslator();
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync
cb702d6d593134e47854c00a7fa1156fe48a14ccvboxsync /* Gets translation from loaded QM file
cb702d6d593134e47854c00a7fa1156fe48a14ccvboxsync *
2b114c590cf5a19f8047cd7bde9c7e5ae00aa22bvboxsync * @param context QM context to look for translation
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync * @param source Source string in one-byte encoding
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync * @param disamb Disambiguationg comment, empty by default
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync *
2b114c590cf5a19f8047cd7bde9c7e5ae00aa22bvboxsync * @returns Pointer to a translation in UTF-8 encoding, empty string on failure */
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync const char *translate(const char *pszContext, const char *pszSource, const char *pszDisamb = "") const throw();
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync /* Loads and parses QM file
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync *
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync * @param filename The name of the file to load
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync *
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync * @returns VINF_SUCCESS if successful */
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync int load(const char *pszFilename) throw();
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsyncprivate:
2b114c590cf5a19f8047cd7bde9c7e5ae00aa22bvboxsync /* QMTranslator implementation.
2b114c590cf5a19f8047cd7bde9c7e5ae00aa22bvboxsync * To separate all the code from the interface */
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync QMTranslator_Impl *_impl;
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync /* If copying is required, please define the following operators */
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync void operator=(QMTranslator &);
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync QMTranslator(const QMTranslator &);
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync};
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync#endif /* !____H_QMTRANSLATOR */
a9a79301a7d78abffc51521473bbb5a1e08028c5vboxsync/* vi: set tabstop=4 shiftwidth=4 expandtab: */