#ifndef RM_LANGUAGE_H #define RM_LANGUAGE_H #if(LIVE_LANGUAGE_CHANGE) #include #include #include // 등록(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*>* _list; signals: void languageChange(RMLanguage::LANGUAGE_TYPE language); }; #endif // LIVE_LANGUAGE_CHANGE #endif // RM_LANGUAGE_H