mirror of
https://github.com/ONLYOFFICE/desktop-apps.git
synced 2026-02-10 18:05:16 +08:00
[win-linux] updatesvc: use singleton access for Translator
This commit is contained in:
@ -381,7 +381,7 @@ void CSvcManager::init()
|
||||
break;
|
||||
|
||||
case MSG_SetLanguage:
|
||||
Translator::setLanguage(params[1]);
|
||||
Translator::instance().setLanguage(params[1]);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@ -61,14 +61,23 @@ wstring StrToWStr(const string &str)
|
||||
}
|
||||
#endif
|
||||
|
||||
TranslationsMap Translator::translMap = TranslationsMap();
|
||||
tstring Translator::langName = _T("en");
|
||||
bool Translator::is_translations_valid = false;
|
||||
Translator::Translator() :
|
||||
langName(_T("en")),
|
||||
is_translations_valid(false)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
Translator& Translator::instance()
|
||||
{
|
||||
static Translator inst;
|
||||
return inst;
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
Translator::Translator(const tstring &lang, int resourceId)
|
||||
void Translator::init(const tstring &lang, int resourceId)
|
||||
#else
|
||||
Translator::Translator(const tstring &lang, const char *resourcePath)
|
||||
void Translator::init(const tstring &lang, const char *resourcePath)
|
||||
#endif
|
||||
{
|
||||
langName = lang;
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
# define tstring std::string
|
||||
#endif
|
||||
|
||||
#define _TR(str) Translator::tr(#str)
|
||||
#define _TR(str) Translator::instance().tr(#str)
|
||||
|
||||
using std::unordered_map;
|
||||
|
||||
@ -24,24 +24,29 @@ typedef unordered_map<tstring, LocaleMap> TranslationsMap;
|
||||
class Translator
|
||||
{
|
||||
public:
|
||||
#ifdef _WIN32
|
||||
Translator(const tstring &lang, int resourceId);
|
||||
#else
|
||||
Translator(const tstring &lang, const char *resourcePath);
|
||||
#endif
|
||||
~Translator();
|
||||
Translator(const Translator&) = delete;
|
||||
Translator& operator=(const Translator&) = delete;
|
||||
static Translator& instance();
|
||||
|
||||
static tstring tr(const char*);
|
||||
static void setLanguage(const tstring &lang);
|
||||
#ifdef _WIN32
|
||||
void init(const tstring &lang, int resourceId);
|
||||
#else
|
||||
void init(const tstring &lang, const char *resourcePath);
|
||||
#endif
|
||||
tstring tr(const char*);
|
||||
void setLanguage(const tstring &lang);
|
||||
|
||||
private:
|
||||
Translator();
|
||||
~Translator();
|
||||
|
||||
void parseTranslations();
|
||||
|
||||
static TranslationsMap translMap;
|
||||
TranslationsMap translMap;
|
||||
tstring translations,
|
||||
error_substr;
|
||||
static tstring langName;
|
||||
static bool is_translations_valid;
|
||||
tstring langName;
|
||||
bool is_translations_valid;
|
||||
|
||||
enum TokenType {
|
||||
TOKEN_BEGIN_DOCUMENT = 0,
|
||||
|
||||
@ -62,7 +62,7 @@ int main(int argc, char *argv[])
|
||||
if (NS_Utils::cmdArgContains("--log"))
|
||||
NS_Logger::AllowWriteLog();
|
||||
std::locale::global(std::locale(""));
|
||||
Translator lang(NS_Utils::GetAppLanguage(), "/langs/langs.isl");
|
||||
Translator::instance().init(NS_Utils::GetAppLanguage(), "/langs/langs.isl");
|
||||
CSocket socket(0, INSTANCE_SVC_PORT);
|
||||
if (!socket.isPrimaryInstance())
|
||||
return 0;
|
||||
|
||||
@ -102,7 +102,7 @@ int __cdecl _tmain (int argc, TCHAR *argv[])
|
||||
if (NS_Utils::cmdArgContains(_T("--log")))
|
||||
NS_Logger::AllowWriteLog();
|
||||
std::locale::global(std::locale(""));
|
||||
Translator lang(NS_Utils::GetAppLanguage().c_str(), IDT_TRANSLATIONS);
|
||||
Translator::instance().init(NS_Utils::GetAppLanguage().c_str(), IDT_TRANSLATIONS);
|
||||
CSocket socket(0, INSTANCE_SVC_PORT);
|
||||
if (!socket.isPrimaryInstance())
|
||||
return 0;
|
||||
@ -144,7 +144,7 @@ int __cdecl _tmain (int argc, TCHAR *argv[])
|
||||
}
|
||||
|
||||
std::locale::global(std::locale(""));
|
||||
Translator lang(NS_Utils::GetAppLanguage().c_str(), IDT_TRANSLATIONS);
|
||||
Translator::instance().init(NS_Utils::GetAppLanguage().c_str(), IDT_TRANSLATIONS);
|
||||
SERVICE_TABLE_ENTRY DispatchTable[] =
|
||||
{
|
||||
{(LPTSTR)SERVICE_NAME, (LPSERVICE_MAIN_FUNCTION)SvcMain},
|
||||
|
||||
Reference in New Issue
Block a user