[DEV] translate interface independent
This commit is contained in:
parent
82bef40c20
commit
d4c651047d
@ -1,2 +1,2 @@
|
|||||||
# etalsnart
|
# etranslate
|
||||||
[APACHE v2.0] runtime translation tool
|
[APACHE v2.0] runtime translation tool
|
||||||
|
1
authors.txt
Normal file
1
authors.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
MR Edouard DUPIN <yui.heero@gmail.com>
|
39
doxy_etranslate.py
Normal file
39
doxy_etranslate.py
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
import os
|
||||||
|
import doxy.module as module
|
||||||
|
import doxy.debug as debug
|
||||||
|
import doxy.tools as tools
|
||||||
|
|
||||||
|
def create(target, module_name):
|
||||||
|
my_module = module.Module(__file__, module_name)
|
||||||
|
my_module.set_version("version.txt")
|
||||||
|
my_module.set_title("E-translate: Ewol runtime translate tool")
|
||||||
|
my_module.set_website("http://atria-soft.github.io/" + module_name)
|
||||||
|
my_module.set_website_sources("http://github.com/atria-soft/" + module_name)
|
||||||
|
"""
|
||||||
|
my_module.add_path([
|
||||||
|
module_name,
|
||||||
|
"doc"
|
||||||
|
])
|
||||||
|
my_module.add_sample_path([
|
||||||
|
"sample"
|
||||||
|
])
|
||||||
|
"""
|
||||||
|
my_module.add_depend([
|
||||||
|
'elog',
|
||||||
|
'etk',
|
||||||
|
'ejson',
|
||||||
|
])
|
||||||
|
my_module.add_exclude_symbols([
|
||||||
|
'*operator<<*',
|
||||||
|
])
|
||||||
|
my_module.add_exclude_file([
|
||||||
|
'debug.hpp',
|
||||||
|
])
|
||||||
|
my_module.add_file_patterns([
|
||||||
|
'*.hpp',
|
||||||
|
'*.md',
|
||||||
|
'*.py',
|
||||||
|
])
|
||||||
|
return my_module
|
||||||
|
|
12
etranslate/debug.cpp
Normal file
12
etranslate/debug.cpp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
/** @file
|
||||||
|
* @author Edouard DUPIN
|
||||||
|
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||||
|
* @license APACHE v2.0 (see license file)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <etranslate/debug.hpp>
|
||||||
|
|
||||||
|
int32_t etranslate::getLogId() {
|
||||||
|
static int32_t g_val = elog::registerInstance("etranslate");
|
||||||
|
return g_val;
|
||||||
|
}
|
38
etranslate/debug.hpp
Normal file
38
etranslate/debug.hpp
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/** @file
|
||||||
|
* @author Edouard DUPIN
|
||||||
|
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||||
|
* @license APACHE v2.0 (see license file)
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <elog/log.hpp>
|
||||||
|
|
||||||
|
namespace etranslate {
|
||||||
|
int32_t getLogId();
|
||||||
|
};
|
||||||
|
#define ETRANSLATE_BASE(info,data) ELOG_BASE(etranslate::getLogId(),info,data)
|
||||||
|
|
||||||
|
#define ETRANSLATE_PRINT(data) ETRANSLATE_BASE(-1, data)
|
||||||
|
#define ETRANSLATE_CRITICAL(data) ETRANSLATE_BASE(1, data)
|
||||||
|
#define ETRANSLATE_ERROR(data) ETRANSLATE_BASE(2, data)
|
||||||
|
#define ETRANSLATE_WARNING(data) ETRANSLATE_BASE(3, data)
|
||||||
|
#ifdef DEBUG
|
||||||
|
#define ETRANSLATE_INFO(data) ETRANSLATE_BASE(4, data)
|
||||||
|
#define ETRANSLATE_DEBUG(data) ETRANSLATE_BASE(5, data)
|
||||||
|
#define ETRANSLATE_VERBOSE(data) ETRANSLATE_BASE(6, data)
|
||||||
|
#define ETRANSLATE_TODO(data) ETRANSLATE_BASE(4, "TODO : " << data)
|
||||||
|
#else
|
||||||
|
#define ETRANSLATE_INFO(data) do { } while(false)
|
||||||
|
#define ETRANSLATE_DEBUG(data) do { } while(false)
|
||||||
|
#define ETRANSLATE_VERBOSE(data) do { } while(false)
|
||||||
|
#define ETRANSLATE_TODO(data) do { } while(false)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define ETRANSLATE_ASSERT(cond,data) \
|
||||||
|
do { \
|
||||||
|
if (!(cond)) { \
|
||||||
|
ETRANSLATE_CRITICAL(data); \
|
||||||
|
assert(!#cond); \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
|
@ -4,8 +4,8 @@
|
|||||||
* @license APACHE v2.0 (see license file)
|
* @license APACHE v2.0 (see license file)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ewol/debug.hpp>
|
#include <etranslate/debug.hpp>
|
||||||
#include <ewol/translate.hpp>
|
#include <etranslate/etranslate.hpp>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <etk/os/FSNode.hpp>
|
#include <etk/os/FSNode.hpp>
|
||||||
#include <ejson/ejson.hpp>
|
#include <ejson/ejson.hpp>
|
||||||
@ -20,7 +20,7 @@ class LocalInstanceTranslation {
|
|||||||
std::map<std::string,std::string> m_translate;
|
std::map<std::string,std::string> m_translate;
|
||||||
public:
|
public:
|
||||||
LocalInstanceTranslation() :
|
LocalInstanceTranslation() :
|
||||||
m_major("ewol"),
|
m_major("etranslate"),
|
||||||
m_languageDefault("EN"),
|
m_languageDefault("EN"),
|
||||||
m_language(""),
|
m_language(""),
|
||||||
m_translateLoadad(false) {
|
m_translateLoadad(false) {
|
||||||
@ -36,7 +36,7 @@ class LocalInstanceTranslation {
|
|||||||
}
|
}
|
||||||
if (_major == true) {
|
if (_major == true) {
|
||||||
m_major = _lib;
|
m_major = _lib;
|
||||||
EWOL_INFO("Change major translation : '" << m_major << "'");
|
ETRANSLATE_INFO("Change major translation : '" << m_major << "'");
|
||||||
}
|
}
|
||||||
m_translateLoadad = false;
|
m_translateLoadad = false;
|
||||||
m_translate.clear();
|
m_translate.clear();
|
||||||
@ -55,7 +55,7 @@ class LocalInstanceTranslation {
|
|||||||
if (m_languageDefault == _lang) {
|
if (m_languageDefault == _lang) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
EWOL_INFO("Change default language translation : '" << _lang << "'");
|
ETRANSLATE_INFO("Change default language translation : '" << _lang << "'");
|
||||||
m_languageDefault = _lang;
|
m_languageDefault = _lang;
|
||||||
m_translateLoadad = false;
|
m_translateLoadad = false;
|
||||||
m_translate.clear();
|
m_translate.clear();
|
||||||
@ -73,27 +73,27 @@ class LocalInstanceTranslation {
|
|||||||
m_translateLoadad = false;
|
m_translateLoadad = false;
|
||||||
m_translate.clear();
|
m_translate.clear();
|
||||||
if (_lang == "EN") {
|
if (_lang == "EN") {
|
||||||
EWOL_INFO("Change language translation: '" << _lang << "'=English");
|
ETRANSLATE_INFO("Change language translation: '" << _lang << "'=English");
|
||||||
} else if (_lang == "FR") {
|
} else if (_lang == "FR") {
|
||||||
EWOL_INFO("Change language translation: '" << _lang << "'=French");
|
ETRANSLATE_INFO("Change language translation: '" << _lang << "'=French");
|
||||||
} else if (_lang == "DE") {
|
} else if (_lang == "DE") {
|
||||||
EWOL_INFO("Change language translation: '" << _lang << "'=German");
|
ETRANSLATE_INFO("Change language translation: '" << _lang << "'=German");
|
||||||
} else if (_lang == "SP") {
|
} else if (_lang == "SP") {
|
||||||
EWOL_INFO("Change language translation: '" << _lang << "'=Spanish");
|
ETRANSLATE_INFO("Change language translation: '" << _lang << "'=Spanish");
|
||||||
} else if (_lang == "JA") {
|
} else if (_lang == "JA") {
|
||||||
EWOL_INFO("Change language translation: '" << _lang << "'=Japanese");
|
ETRANSLATE_INFO("Change language translation: '" << _lang << "'=Japanese");
|
||||||
} else if (_lang == "IT") {
|
} else if (_lang == "IT") {
|
||||||
EWOL_INFO("Change language translation: '" << _lang << "'=Italian");
|
ETRANSLATE_INFO("Change language translation: '" << _lang << "'=Italian");
|
||||||
} else if (_lang == "KO") {
|
} else if (_lang == "KO") {
|
||||||
EWOL_INFO("Change language translation: '" << _lang << "'=Korean");
|
ETRANSLATE_INFO("Change language translation: '" << _lang << "'=Korean");
|
||||||
} else if (_lang == "RU") {
|
} else if (_lang == "RU") {
|
||||||
EWOL_INFO("Change language translation: '" << _lang << "'=Russian");
|
ETRANSLATE_INFO("Change language translation: '" << _lang << "'=Russian");
|
||||||
} else if (_lang == "PT") {
|
} else if (_lang == "PT") {
|
||||||
EWOL_INFO("Change language translation: '" << _lang << "'=Portuguese, Brazilian");
|
ETRANSLATE_INFO("Change language translation: '" << _lang << "'=Portuguese, Brazilian");
|
||||||
} else if (_lang == "ZH") {
|
} else if (_lang == "ZH") {
|
||||||
EWOL_INFO("Change language translation: '" << _lang << "'=Chinese");
|
ETRANSLATE_INFO("Change language translation: '" << _lang << "'=Chinese");
|
||||||
} else {
|
} else {
|
||||||
EWOL_INFO("Change language translation: '" << _lang << "'=Unknow");
|
ETRANSLATE_INFO("Change language translation: '" << _lang << "'=Unknow");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -103,7 +103,7 @@ class LocalInstanceTranslation {
|
|||||||
|
|
||||||
std::string get(const std::string& _instance) {
|
std::string get(const std::string& _instance) {
|
||||||
loadTranslation();
|
loadTranslation();
|
||||||
EWOL_VERBOSE("Request translate: '" << _instance << "'");
|
ETRANSLATE_VERBOSE("Request translate: '" << _instance << "'");
|
||||||
// find all iterance of '_T{' ... '}'
|
// find all iterance of '_T{' ... '}'
|
||||||
std::string out;
|
std::string out;
|
||||||
auto itOld = _instance.begin();
|
auto itOld = _instance.begin();
|
||||||
@ -114,7 +114,7 @@ class LocalInstanceTranslation {
|
|||||||
itOld = it;
|
itOld = it;
|
||||||
pos = _instance.find("}", pos);
|
pos = _instance.find("}", pos);
|
||||||
if (pos == std::string::npos) {
|
if (pos == std::string::npos) {
|
||||||
EWOL_WARNING("missing end translation '}' in: '" << _instance << "'");
|
ETRANSLATE_WARNING("missing end translation '}' in: '" << _instance << "'");
|
||||||
it = _instance.end();
|
it = _instance.end();
|
||||||
} else {
|
} else {
|
||||||
it = _instance.begin() + pos;
|
it = _instance.begin() + pos;
|
||||||
@ -122,7 +122,7 @@ class LocalInstanceTranslation {
|
|||||||
std::string basicEmptyValue = std::string(itOld, it);
|
std::string basicEmptyValue = std::string(itOld, it);
|
||||||
auto itTranslate = m_translate.find(basicEmptyValue);
|
auto itTranslate = m_translate.find(basicEmptyValue);
|
||||||
if (itTranslate == m_translate.end()) {
|
if (itTranslate == m_translate.end()) {
|
||||||
EWOL_DEBUG("Can not find tranlation : '" << _instance << "'");
|
ETRANSLATE_DEBUG("Can not find tranlation : '" << _instance << "'");
|
||||||
out += basicEmptyValue;
|
out += basicEmptyValue;
|
||||||
} else {
|
} else {
|
||||||
out += itTranslate->second;
|
out += itTranslate->second;
|
||||||
@ -137,7 +137,7 @@ class LocalInstanceTranslation {
|
|||||||
if (itOld != _instance.end()) {
|
if (itOld != _instance.end()) {
|
||||||
out.append(itOld, _instance.end());
|
out.append(itOld, _instance.end());
|
||||||
}
|
}
|
||||||
EWOL_VERBOSE(" translation: '" << out << "'");
|
ETRANSLATE_VERBOSE(" translation: '" << out << "'");
|
||||||
return out;
|
return out;
|
||||||
};
|
};
|
||||||
private:
|
private:
|
||||||
@ -145,7 +145,7 @@ class LocalInstanceTranslation {
|
|||||||
if (m_translateLoadad == true) {
|
if (m_translateLoadad == true) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
EWOL_VERBOSE("Load Translation MAJOR='" << m_major << "' LANG='" << m_language << "' default=" << m_languageDefault );
|
ETRANSLATE_VERBOSE("Load Translation MAJOR='" << m_major << "' LANG='" << m_language << "' default=" << m_languageDefault );
|
||||||
// start parse language for Major:
|
// start parse language for Major:
|
||||||
auto itMajor = m_listPath.find(m_major);
|
auto itMajor = m_listPath.find(m_major);
|
||||||
if (itMajor != m_listPath.end()) {
|
if (itMajor != m_listPath.end()) {
|
||||||
@ -212,33 +212,87 @@ static LocalInstanceTranslation& getInstanceTranslation() {
|
|||||||
static LocalInstanceTranslation g_val;
|
static LocalInstanceTranslation g_val;
|
||||||
return g_val;
|
return g_val;
|
||||||
}
|
}
|
||||||
|
static int32_t g_isInit = 0;
|
||||||
|
|
||||||
void ewol::translate::addPath(const std::string& _lib, const std::string& _path, bool _major) {
|
void etranslate::init(int _argc, const char** _argv) {
|
||||||
|
if (g_isInit > 0) {
|
||||||
|
g_isInit++;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ETRANSLATE_INFO("E-translate system init");
|
||||||
|
for (int32_t iii=0; iii<_argc ; ++iii) {
|
||||||
|
std::string data = _argv[iii];
|
||||||
|
if ( data == "-h"
|
||||||
|
|| data == "--help") {
|
||||||
|
ETRANSLATE_PRINT("e-translate - help : ");
|
||||||
|
ETRANSLATE_PRINT(" -h/--help: Dispplay this help");
|
||||||
|
} else if (etk::start_with(data, "--etranslate") == true) {
|
||||||
|
ETRANSLATE_ERROR("Can not parse the argument : '" << data << "'");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
g_isInit++;
|
||||||
|
}
|
||||||
|
|
||||||
|
void etranslate::unInit() {
|
||||||
|
if (g_isInit >= 1) {
|
||||||
|
g_isInit--;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (g_isInit == 1) {
|
||||||
|
ETRANSLATE_INFO("E-translate system un-init");
|
||||||
|
g_isInit--;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ETRANSLATE_ERROR("E-translate system un-init (already done before)");
|
||||||
|
}
|
||||||
|
|
||||||
|
void etranslate::addPath(const std::string& _lib, const std::string& _path, bool _major) {
|
||||||
|
if (g_isInit <= 0) {
|
||||||
|
ETRANSLATE_ERROR("E-translate system has not been init");
|
||||||
|
}
|
||||||
getInstanceTranslation().addPath(_lib, _path, _major);
|
getInstanceTranslation().addPath(_lib, _path, _major);
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::string& ewol::translate::getPaths(const std::string& _lib) {
|
const std::string& etranslate::getPaths(const std::string& _lib) {
|
||||||
|
if (g_isInit <= 0) {
|
||||||
|
ETRANSLATE_ERROR("E-translate system has not been init");
|
||||||
|
}
|
||||||
return getInstanceTranslation().getPaths(_lib);
|
return getInstanceTranslation().getPaths(_lib);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ewol::translate::setLanguageDefault(const std::string& _lang) {
|
void etranslate::setLanguageDefault(const std::string& _lang) {
|
||||||
|
if (g_isInit <= 0) {
|
||||||
|
ETRANSLATE_ERROR("E-translate system has not been init");
|
||||||
|
}
|
||||||
getInstanceTranslation().setLanguageDefault(_lang);
|
getInstanceTranslation().setLanguageDefault(_lang);
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::string& ewol::translate::getLanguageDefault() {
|
const std::string& etranslate::getLanguageDefault() {
|
||||||
|
if (g_isInit <= 0) {
|
||||||
|
ETRANSLATE_ERROR("E-translate system has not been init");
|
||||||
|
}
|
||||||
return getInstanceTranslation().getLanguageDefault();
|
return getInstanceTranslation().getLanguageDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ewol::translate::setLanguage(const std::string& _lang) {
|
void etranslate::setLanguage(const std::string& _lang) {
|
||||||
|
if (g_isInit <= 0) {
|
||||||
|
ETRANSLATE_ERROR("E-translate system has not been init");
|
||||||
|
}
|
||||||
getInstanceTranslation().setLanguage(_lang);
|
getInstanceTranslation().setLanguage(_lang);
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::string& ewol::translate::getLanguage() {
|
const std::string& etranslate::getLanguage() {
|
||||||
|
if (g_isInit <= 0) {
|
||||||
|
ETRANSLATE_ERROR("E-translate system has not been init");
|
||||||
|
}
|
||||||
return getInstanceTranslation().getLanguage();
|
return getInstanceTranslation().getLanguage();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ewol::translate::autoDetectLanguage() {
|
void etranslate::autoDetectLanguage() {
|
||||||
EWOL_VERBOSE("Auto-detect language of system");
|
if (g_isInit <= 0) {
|
||||||
|
ETRANSLATE_ERROR("E-translate system has not been init");
|
||||||
|
}
|
||||||
|
ETRANSLATE_VERBOSE("Auto-detect language of system");
|
||||||
std::string nonameLocalName;
|
std::string nonameLocalName;
|
||||||
std::string userLocalName;
|
std::string userLocalName;
|
||||||
std::string globalLocalName;
|
std::string globalLocalName;
|
||||||
@ -246,11 +300,11 @@ void ewol::translate::autoDetectLanguage() {
|
|||||||
nonameLocalName = std::locale(std::locale(), new std::ctype<char>).name();
|
nonameLocalName = std::locale(std::locale(), new std::ctype<char>).name();
|
||||||
userLocalName = std::locale("").name();
|
userLocalName = std::locale("").name();
|
||||||
globalLocalName = std::locale().name();
|
globalLocalName = std::locale().name();
|
||||||
EWOL_VERBOSE(" The default locale is '" << globalLocalName << "'");
|
ETRANSLATE_VERBOSE(" The default locale is '" << globalLocalName << "'");
|
||||||
EWOL_VERBOSE(" The user's locale is '" << userLocalName << "'");
|
ETRANSLATE_VERBOSE(" The user's locale is '" << userLocalName << "'");
|
||||||
EWOL_VERBOSE(" A nameless locale is '" << nonameLocalName << "'");
|
ETRANSLATE_VERBOSE(" A nameless locale is '" << nonameLocalName << "'");
|
||||||
} catch (std::runtime_error e) {
|
} catch (std::runtime_error e) {
|
||||||
EWOL_ERROR("Can not get Locals ==> set English ...");
|
ETRANSLATE_ERROR("Can not get Locals ==> set English ...");
|
||||||
nonameLocalName = "EN";
|
nonameLocalName = "EN";
|
||||||
userLocalName = "EN";
|
userLocalName = "EN";
|
||||||
globalLocalName = "EN";
|
globalLocalName = "EN";
|
||||||
@ -271,14 +325,14 @@ void ewol::translate::autoDetectLanguage() {
|
|||||||
}
|
}
|
||||||
lang = std::string(lang.begin(), lang.begin()+2);
|
lang = std::string(lang.begin(), lang.begin()+2);
|
||||||
lang = etk::toupper(lang);
|
lang = etk::toupper(lang);
|
||||||
EWOL_INFO("Select Language : '" << lang << "'");
|
ETRANSLATE_INFO("Select Language : '" << lang << "'");
|
||||||
getInstanceTranslation().setLanguage(lang);
|
getInstanceTranslation().setLanguage(lang);
|
||||||
return;
|
return;
|
||||||
// dead code ...
|
// dead code ...
|
||||||
#if defined(__TARGET_OS__Linux)
|
#if defined(__TARGET_OS__Linux)
|
||||||
char *s = getenv("LANG");
|
char *s = getenv("LANG");
|
||||||
if (s == nullptr || strlen(s) < 2) {
|
if (s == nullptr || strlen(s) < 2) {
|
||||||
EWOL_INFO("Try to determine system language FAIL ...");
|
ETRANSLATE_INFO("Try to determine system language FAIL ...");
|
||||||
} else {
|
} else {
|
||||||
std::string lang;
|
std::string lang;
|
||||||
lang += s[0];
|
lang += s[0];
|
||||||
@ -287,12 +341,12 @@ void ewol::translate::autoDetectLanguage() {
|
|||||||
getInstanceTranslation().setLanguage(lang);
|
getInstanceTranslation().setLanguage(lang);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
EWOL_INFO("Can not auto-detect language ...");
|
ETRANSLATE_INFO("Can not auto-detect language ...");
|
||||||
getInstanceTranslation().setLanguage("EN");
|
getInstanceTranslation().setLanguage("EN");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string ewol::translate::get(const std::string& _instance) {
|
std::string etranslate::get(const std::string& _instance) {
|
||||||
return getInstanceTranslation().get(_instance);
|
return getInstanceTranslation().get(_instance);
|
||||||
}
|
}
|
||||||
|
|
@ -22,7 +22,17 @@
|
|||||||
* Portuguese, Brazilian : "PT"
|
* Portuguese, Brazilian : "PT"
|
||||||
* Chinese : "ZH"
|
* Chinese : "ZH"
|
||||||
*/
|
*/
|
||||||
namespace etalsnart {
|
namespace etranslate {
|
||||||
|
/**
|
||||||
|
* @brief Initialize etranslate
|
||||||
|
* @param[in] _argc Number of argument list
|
||||||
|
* @param[in] _argv List of arguments
|
||||||
|
*/
|
||||||
|
void init(int _argc, const char** _argv);
|
||||||
|
/**
|
||||||
|
* @brief Un-Initialize etranslate
|
||||||
|
*/
|
||||||
|
void unInit();
|
||||||
/**
|
/**
|
||||||
* @brief Set the path folder of the translation files
|
* @brief Set the path folder of the translation files
|
||||||
* @param[in] _lib Library name that the path depend
|
* @param[in] _lib Library name that the path depend
|
||||||
@ -68,4 +78,4 @@ namespace etalsnart {
|
|||||||
std::string get(const std::string& _instance);
|
std::string get(const std::string& _instance);
|
||||||
};
|
};
|
||||||
// Here we define a simple macro to Translate all string simply:
|
// Here we define a simple macro to Translate all string simply:
|
||||||
#define TRANSLATE(a) etalsnart::get(a)
|
#define TRANSLATE(a) etranslate::get(a)
|
49
lutin_etranslate.py
Normal file
49
lutin_etranslate.py
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
import lutin.debug as debug
|
||||||
|
import lutin.tools as tools
|
||||||
|
|
||||||
|
|
||||||
|
def get_type():
|
||||||
|
return "LIBRARY"
|
||||||
|
|
||||||
|
def get_desc():
|
||||||
|
return "E-translate: Ewol runtime translate tool"
|
||||||
|
|
||||||
|
def get_licence():
|
||||||
|
return "APACHE-2"
|
||||||
|
|
||||||
|
def get_compagny_type():
|
||||||
|
return "com"
|
||||||
|
|
||||||
|
def get_compagny_name():
|
||||||
|
return "atria-soft"
|
||||||
|
|
||||||
|
def get_maintainer():
|
||||||
|
return "authors.txt"
|
||||||
|
|
||||||
|
def get_version():
|
||||||
|
return "version.txt"
|
||||||
|
|
||||||
|
def configure(target, my_module):
|
||||||
|
# add extra compilation flags:
|
||||||
|
my_module.add_extra_flags()
|
||||||
|
# add the file to compile:
|
||||||
|
my_module.add_src_file([
|
||||||
|
'etranslate/etranslate.cpp',
|
||||||
|
'etranslate/debug.cpp',
|
||||||
|
])
|
||||||
|
my_module.add_header_file([
|
||||||
|
'etranslate/etranslate.hpp',
|
||||||
|
])
|
||||||
|
|
||||||
|
# name of the dependency
|
||||||
|
my_module.add_depend([
|
||||||
|
'elog',
|
||||||
|
'etk',
|
||||||
|
'ejson',
|
||||||
|
])
|
||||||
|
|
||||||
|
my_module.add_path(".")
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
1
version.txt
Normal file
1
version.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
0.1-dev
|
Loading…
x
Reference in New Issue
Block a user