first commit
This commit is contained in:
134
project/fm_viewer/core/rm_language.h
Normal file
134
project/fm_viewer/core/rm_language.h
Normal file
@@ -0,0 +1,134 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user