kodi
LanguageResource.h
1 /*
2  * Copyright (C) 2014-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "addons/Resource.h"
12 #include "utils/Locale.h"
13 
14 #include <set>
15 
16 namespace ADDON
17 {
19 {
20 public:
21  explicit CLanguageResource(const AddonInfoPtr& addonInfo);
22 
23  bool IsInUse() const override;
24 
25  void OnPostInstall(bool update, bool modal) override;
26 
27  bool IsAllowed(const std::string &file) const override;
28 
29  const CLocale& GetLocale() const { return m_locale; }
30 
31  const std::string& GetGuiCharset() const { return m_charsetGui; }
32  bool ForceUnicodeFont() const { return m_forceUnicodeFont; }
33  const std::string& GetSubtitleCharset() const { return m_charsetSubtitle; }
34 
35  const std::string& GetDvdMenuLanguage() const { return m_dvdLanguageMenu; }
36  const std::string& GetDvdAudioLanguage() const { return m_dvdLanguageAudio; }
37  const std::string& GetDvdSubtitleLanguage() const { return m_dvdLanguageSubtitle; }
38 
39  const std::set<std::string>& GetSortTokens() const { return m_sortTokens; }
40 
41  static std::string GetAddonId(const std::string& locale);
42 
43  static bool FindLegacyLanguage(const std::string &locale, std::string &legacyLanguage);
44 
45 private:
46  CLocale m_locale;
47 
48  std::string m_charsetGui;
49  bool m_forceUnicodeFont;
50  std::string m_charsetSubtitle;
51 
52  std::string m_dvdLanguageMenu;
53  std::string m_dvdLanguageAudio;
54  std::string m_dvdLanguageSubtitle;
55 
56  std::set<std::string> m_sortTokens;
57 };
58 
59 }
Definition: LanguageResource.h:18
Definition: Resource.h:19
Definition: Addon.cpp:39
Class representing a full locale of the form [language[_territory][.codeset][@modifier]].
Definition: Locale.h:18