Add support for translations and update translations

This commit is contained in:
2012-02-26 14:24:04 +01:00
parent 4ea7efd178
commit 83d144ca3c
9 changed files with 654 additions and 558 deletions

View File

@@ -46,11 +46,14 @@ QColor wxUI::categoryColors[MAX_CATEGORY] = {QColor(0x00, 0x45, 0x86),
QColor(0x00, 0x84, 0xD1)};
wxUI::wxUI(KissCount* kiss, const QString& title)
: QFrame(0), _kiss(kiss), _signalMapper(this),
_curPanel(0), _locale(0), _needReload(false)
: QFrame(0), _language(SupportedLanguages::languages[SupportedLanguages::English].name),
_kiss(kiss), _signalMapper(this), _curPanel(0), _locale(0),
_needReload(false)
{
QPushButton* button;
SetLanguage("");
setWindowTitle(title);
connect(&_signalMapper, SIGNAL(mapped(int)), this, SLOT(OnButtonClicked(int)));
@@ -93,41 +96,60 @@ wxUI::~wxUI()
bool wxUI::SetLanguage(QString language)
{
bool res = true;
int i;
// if (_locale) delete _locale;
// _locale = 0;
if (_locale)
{
if (language == _language) return true;
}
// // load language if possible, fall back to english otherwise
// if(wxLocale::IsAvailable(language))
// {
// _locale = new wxLocale( language, wxLOCALE_CONV_ENCODING );
// #ifdef __WXGTK__
// _locale->AddCatalogLookupPathPrefix(wxT(LANG_ROOT));
// #endif
// _locale->AddCatalog(wxT("frenchpp"));
// _locale->AddCatalog(wxT("kisscount"));
if (language == "")
{
QLocale default_locale = QLocale::system();
// _language = (wxLanguage) language;
// }
for(i=0; i<SupportedLanguages::NB_SUPPORTED_LANGUAGES; i++)
{
if (default_locale.language() == SupportedLanguages::languages[i].language)
break;
}
if (i == SupportedLanguages::NB_SUPPORTED_LANGUAGES)
i = SupportedLanguages::English;
language = SupportedLanguages::languages[i].name;
}
else
{
for(i=0; i<SupportedLanguages::NB_SUPPORTED_LANGUAGES; i++)
{
if (language == SupportedLanguages::languages[i].name)
break;
}
if (i == SupportedLanguages::NB_SUPPORTED_LANGUAGES)
return false;
}
// if (_locale == 0 || !_locale->IsOk())
// {
// if (_locale) delete _locale;
// _locale = new wxLocale();
if (_locale)
{
delete _locale;
_kiss->removeTranslator(&_translator);
}
if (i != SupportedLanguages::English)
{
if (!_translator.load(SupportedLanguages::languages[i].filename, RESSOURCES_ROOT "po"))
{
i = SupportedLanguages::English;
_translator.load(SupportedLanguages::languages[i].filename, RESSOURCES_ROOT "po");
_language = SupportedLanguages::languages[i].name;
res = false;
}
// #ifdef __WXGTK__
// _locale->AddCatalogLookupPathPrefix(wxT(LANG_ROOT));
// #endif
_kiss->installTranslator(&_translator);
}
// _locale->AddCatalog(wxT("kisscount"));
// _language = wxLANGUAGE_ENGLISH;
// res = false;
// }
_language = SupportedLanguages::languages[i].language;
_language = language;
_locale = new QLocale(SupportedLanguages::languages[i].language);
QLocale::setDefault(*_locale);
months[0] = _("january");
months[1] = _("february");