RULocalization.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. //
  2. // 本地化多语言
  3. // 多语言文件格式是plist,一个国家一个plist,各国家plist文件名见_initLocalContent(LanguageType lan)方法
  4. //
  5. #ifndef RULocalization_h
  6. #define RULocalization_h
  7. #include "cocos2d.h"
  8. #include "RUDefine.h"
  9. USING_NS_CC;
  10. NS_RU_BEGIN
  11. #define gLocalization(key) redutils::Localization::instance(key)
  12. class Localization{
  13. public:
  14. static Localization* instance(std::string key4Local);
  15. std::string getString(std::string valueKey);
  16. // 分组测试用
  17. void setGroup(int group);
  18. // mac工具debug专用
  19. void debugLanguage(LanguageType lan);
  20. private:
  21. Localization() = default;
  22. ~Localization() = default;
  23. void _initLocalContent();
  24. void _initLocalContent(LanguageType lan);
  25. std::string _getLocalFileName(std::string lanSuffix);
  26. private:
  27. static std::unordered_map<std::string, Localization*> _gLocalizations;
  28. std::string _localName; //实例在_gLocalizations中的key,也用作多语言文件的前缀
  29. int _group = 0;
  30. bool _isLoadContent = false;
  31. ValueMap _contentMap;
  32. };
  33. NS_RU_END
  34. #endif /* RULocalization_h */