aboutsummaryrefslogtreecommitdiff
path: root/guilib/LocalizeStrings.h
diff options
context:
space:
mode:
authorAlTheKiller <AlTheKiller@svn>2009-09-23 01:49:50 +0000
committerAlTheKiller <AlTheKiller@svn>2009-09-23 01:49:50 +0000
commit45285e8a9300cd754a760560640b75b09f98035e (patch)
treead9f093885ad5c98e9dd4156674e7691c22ed0a2 /guilib/LocalizeStrings.h
step 3/4: Move linuxport to trunk. How'd I get roped into this?
git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk@23097 568bbfeb-2a22-0410-94d2-cc84cf5bfa90
Diffstat (limited to 'guilib/LocalizeStrings.h')
-rw-r--r--guilib/LocalizeStrings.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/guilib/LocalizeStrings.h b/guilib/LocalizeStrings.h
new file mode 100644
index 0000000000..0cb8eb731e
--- /dev/null
+++ b/guilib/LocalizeStrings.h
@@ -0,0 +1,72 @@
+/*!
+\file LocalizeStrings.h
+\brief
+*/
+
+#ifndef GUILIB_LOCALIZESTRINGS_H
+#define GUILIB_LOCALIZESTRINGS_H
+
+#pragma once
+
+/*
+ * Copyright (C) 2005-2008 Team XBMC
+ * http://www.xbmc.org
+ *
+ * This Program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with XBMC; see the file COPYING. If not, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ */
+
+#include "StdString.h"
+
+#include <map>
+
+/*!
+ \ingroup strings
+ \brief
+ */
+class CLocalizeStrings
+{
+public:
+ CLocalizeStrings(void);
+ virtual ~CLocalizeStrings(void);
+ bool Load(const CStdString& strFileName, const CStdString& strFallbackFileName="special://xbmc/language/english/strings.xml");
+ bool LoadSkinStrings(const CStdString& path, const CStdString& fallbackPath);
+ void ClearSkinStrings();
+ const CStdString& Get(uint32_t code) const;
+ void Clear();
+ uint32_t LoadBlock(const CStdString &id, const CStdString &path, const CStdString &fallbackPath);
+ void ClearBlock(const CStdString &id);
+protected:
+ void Clear(uint32_t start, uint32_t end);
+ bool LoadXML(const CStdString &filename, CStdString &encoding, CStdString &error, uint32_t offset = 0);
+ CStdString ToUTF8(const CStdString &encoding, const CStdString &str);
+ std::map<uint32_t, CStdString> m_strings;
+ typedef std::map<uint32_t, CStdString>::const_iterator ciStrings;
+ typedef std::map<uint32_t, CStdString>::iterator iStrings;
+
+ static const uint32_t block_start = 0xf000000;
+ static const uint32_t block_size = 4096;
+ std::map<CStdString, uint32_t> m_blocks;
+ typedef std::map<CStdString, uint32_t>::iterator iBlocks;
+};
+
+/*!
+ \ingroup strings
+ \brief
+ */
+extern CLocalizeStrings g_localizeStrings;
+extern CLocalizeStrings g_localizeStringsTemp;
+#endif