goldendict-ng/src/language.hh
shenleban tongying 618310f772
Some checks are pending
SonarCloud / Build and analyze (push) Waiting to run
clean: just use #pragma once
2024-11-06 22:53:04 -05:00

52 lines
1.8 KiB
C++

/* This file is (c) 2008-2012 Konstantin Isakov <ikm@goldendict.org>
* Part of GoldenDict. Licensed under GPLv3 or later, see the LICENSE file */
#pragma once
#include <QString>
#include "wstring_qt.hh"
/// Language-specific stuff - codes, names, ids etc.
namespace Language {
/// This identifies any language uniquely within the program. It also has
/// two special meanings - Unknown and Any.
using Id = quint32;
enum {
/// Value for Id which signifies that the language is unknown or unspecified.
Unknown = 0,
/// Value for Id which signifies that the language can be any, or all of them.
Any = 0xFFffFFff
};
/// Returns name in English for the given Id. If the Id is incorrect, or has
/// Unknown/Any values, returns empty string.
QString englishNameForId( Id );
/// Returns name for the given Id, translated to the current UI language.
/// If the Id is incorrect, or has Unknown/Any values, returns empty string.
QString localizedNameForId( Id );
/// Returns a two-letter code of a country which speaks the given language.
/// This is useful for picking up icons for languages. If there's no
/// corresponding country it the database, returns an empty strings.
QString countryCodeForId( Id );
/// Returns name for the given Id, translated to the current UI language, wish corresponding image tag.
/// If the Id is incorrect, or has Unknown/Any values, returns empty string.
QString localizedStringForId( Id );
QString languageForLocale( const QString & locale );
// All other functions are to be used from LangCoder, which is supposed to
// be migrated here over time.
struct BabylonLang
{
Id id;
const QString contryCode;
const QString englishName;
const char * localizedName;
};
BabylonLang getBabylonLangByIndex( int index );
quint32 findBlgLangIDByEnglishName( gd::wstring const & lang );
} // namespace Language