135 lines
3.2 KiB
C++
135 lines
3.2 KiB
C++
#ifndef RM_LANGUAGE_H
|
|
#define RM_LANGUAGE_H
|
|
#if(LIVE_LANGUAGE_CHANGE)
|
|
#include <QObject>
|
|
#include <QList>
|
|
#include <QHash>
|
|
|
|
// 등록(append)하여 자동으로 변경되는 타입(Button,Label)과
|
|
// signal/slot 방식으로 처리 (TableWidget Header.. etc)
|
|
class RMLanguage : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
|
|
typedef enum
|
|
{
|
|
LANGUAGE_JP = 1 << 0, // 1
|
|
LANGUAGE_EN = 1 << 1, // 2
|
|
#if (RC_LANGUAGE == 0x0412)
|
|
LANGUAGE_KR = 1 << 2, // 4
|
|
#endif
|
|
} LANGUAGE_TYPE;
|
|
|
|
typedef enum
|
|
{
|
|
TITLE_TEXT = 1 << 8,
|
|
TOOLTIP_TEXT = 1 << 9,
|
|
} TEXT_TYPE;
|
|
|
|
explicit RMLanguage(QObject *parent = NULL);
|
|
|
|
static RMLanguage* instance()
|
|
{
|
|
static RMLanguage * _instance = NULL;
|
|
if ( _instance == 0 ) {
|
|
_instance = new RMLanguage();
|
|
}
|
|
return _instance;
|
|
}
|
|
static RMLanguage::LANGUAGE_TYPE systemLanguage();
|
|
static bool isAuto;
|
|
#if !(REMOVE_OLD_C)
|
|
static bool isJP() // 제거예정
|
|
{
|
|
#if (FIXED_ENGLISH)
|
|
return false;
|
|
#else
|
|
return (RMLanguage::instance()->language() == RMLanguage::LANGUAGE_JP);
|
|
#endif
|
|
}
|
|
#endif // #if !(REMOVE_OLD_C)
|
|
static QString languageTag()
|
|
{
|
|
#if (LANGUAGE_REMOVE_ENG)
|
|
return "";
|
|
#else // LANGUAGE_REMOVE_ENG
|
|
#if (FIXED_ENGLISH)
|
|
return "_en";
|
|
#else // FIXED_ENGLISH
|
|
#if (SUB_MODEL_BV5000 == 1 || RM_MODEL == 16 || SUPPORT_MULTI_LANGUAGE)
|
|
switch(RMLanguage::instance()->language()) {
|
|
case RMLanguage::LANGUAGE_EN:
|
|
return "_en";
|
|
case RMLanguage::LANGUAGE_JP:
|
|
return "_jp";
|
|
case RMLanguage::LANGUAGE_KR:
|
|
return "";
|
|
}
|
|
#else
|
|
return (RMLanguage::instance()->language() == RMLanguage::LANGUAGE_EN) ? "_en" : "";
|
|
#endif //SUB_MODEL_BV5000
|
|
#endif // FIXED_ENGLISH
|
|
#endif // LANGUAGE_REMOVE_ENG
|
|
return "";
|
|
}
|
|
|
|
#if (LIVE_LANGUAGE2)
|
|
void append(const char* key,RMLanguage::TEXT_TYPE type,QObject* control);
|
|
#else // LIVE_LANGUAGE2
|
|
void append(RMLanguage::LANGUAGE_TYPE language,RMLanguage::TEXT_TYPE type, QObject* control,QString str);
|
|
void appendENGToolTip(QObject* control,QString str)
|
|
{
|
|
#if (LANGUAGE_REMOVE_ENG)
|
|
Q_UNUSED(control)
|
|
Q_UNUSED(str)
|
|
#else
|
|
append(RMLanguage::LANGUAGE_EN,RMLanguage::TOOLTIP_TEXT,control,str);
|
|
#endif
|
|
}
|
|
#endif // LIVE_LANGUAGE2
|
|
|
|
|
|
void remove(QObject* control);
|
|
|
|
void setLanguage(RMLanguage::LANGUAGE_TYPE language);
|
|
RMLanguage::LANGUAGE_TYPE language()
|
|
{
|
|
#if (FIXED_ENGLISH)
|
|
return RMLanguage::LANGUAGE_EN;
|
|
#else
|
|
return _currentLanguage;
|
|
#endif
|
|
}
|
|
|
|
// 0:자동, 1:일본어, 2:영어, 3:한국어
|
|
int languageIndex() {
|
|
if(RMLanguage::isAuto) {
|
|
return 0;
|
|
}
|
|
switch (_currentLanguage) {
|
|
case LANGUAGE_JP:
|
|
return 2;
|
|
case LANGUAGE_EN:
|
|
return 3;
|
|
#if (RC_LANGUAGE == 0x0412)
|
|
case LANGUAGE_KR:
|
|
return 1;
|
|
#endif
|
|
}
|
|
return 0;
|
|
}
|
|
void refresh();
|
|
|
|
private:
|
|
RMLanguage::LANGUAGE_TYPE _currentLanguage;
|
|
|
|
QHash<qint64,QHash<int,QString>*>* _list;
|
|
signals:
|
|
void languageChange(RMLanguage::LANGUAGE_TYPE language);
|
|
|
|
};
|
|
|
|
#endif // LIVE_LANGUAGE_CHANGE
|
|
#endif // RM_LANGUAGE_H
|