1 #include "libfilezilla/translate.hpp"
2 #include "libfilezilla/string.hpp"
3 
4 namespace fz {
5 namespace {
default_translator(char const * const t)6 std::wstring default_translator(char const* const t)
7 {
8 	return fz::to_wstring(t);
9 }
10 
default_translator_pf(char const * const singular,char const * const plural,int64_t n)11 std::wstring default_translator_pf(char const* const singular, char const* const plural, int64_t n)
12 {
13 	return fz::to_wstring((n == 1) ? singular : plural);
14 }
15 
16 std::wstring(*translator)(char const* const) = default_translator;
17 std::wstring(*translator_pf)(char const* const singular, char const* const plural, int64_t n) = default_translator_pf;
18 }
19 
set_translators(std::wstring (* s)(char const * const t),std::wstring (* pf)(char const * const singular,char const * const plural,int64_t n))20 void set_translators(
21 	std::wstring(*s)(char const* const t),
22 	std::wstring(*pf)(char const* const singular, char const* const plural, int64_t n)
23 )
24 {
25 	translator = s ? s : default_translator;
26 	translator_pf = pf ? pf : default_translator_pf;
27 }
28 
translate(char const * const t)29 std::wstring translate(char const * const t)
30 {
31 	return translator(t);
32 }
33 
translate(char const * const singular,char const * const plural,int64_t n)34 std::wstring translate(char const * const singular, char const * const plural, int64_t n)
35 {
36 	return translator_pf(singular, plural, n);
37 }
38 }
39