v1.2.38 Fix for locale issues on non-en-US locales.

This commit is contained in:
Robin Davies
2024-08-19 00:27:28 -04:00
parent 6358682eb1
commit fa3d8815cd
16 changed files with 194 additions and 64 deletions
+25 -5
View File
@@ -19,14 +19,34 @@
#pragma once
#include <locale>
#include <memory>
#include <string>
namespace pipedal {
class Locale {
class Collator {
public:
static void setDefaultLocale();
using ptr = std::shared_ptr<Collator>;
virtual int Compare(const std::string &left, const std::string&right) = 0;
virtual ~Collator();
};
class Locale {
protected:
Locale() { }
public:
virtual ~Locale();
// no copy, no move
Locale(const Locale&) = delete;
Locale(Locale&&) = delete;
Locale&operator =(const Locale&) = delete;
Locale&operator =(Locale&&) = delete;
using ptr = std::shared_ptr<Locale>;
static const std::collate<char>& collation();
static ptr GetInstance();
virtual const std::string &CurrentLocale() const = 0;
virtual Collator::ptr GetCollator() = 0;
private:
static ptr g_instance;
};
}