bonus-material-app/nativeplugins/Mpaas-Scan/ios/mPaas.framework/Headers/APLanguage.h

167 lines
7.0 KiB
Objective-C

//
// APLanguage.h
//
// Created by Jason Kaer on 15/7/2.
// Copyright (c) 2015年 Jason Kaer. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
/**
* 取当前语言版本的文本.
* @param bundle 文本在字符串表所在\c bundle名,通常为模块资源bundle名称.
* @param key 文本在字符串表中的key
* @param comment 当找不到\c key 对应的文本内容时, commont作为默认返回内容.同时 \c commont 也作为\c genstrings自动生成\c .strings文件时的注释.
*
* @return 当前语言版本的文本内容. 若字符串表中没有该\c key, 返回 \c comment .
*/
#undef __TEXT
#define __TEXT(bundle,key,comment) \
[APLanguageSetting localizedStringForKey:(key) defaultValue:(comment) inBundle:(bundle)]
/**
* 取当前语言版本的图片
*
* @param key 图片名在字符串表中的key
* @param comment \c genstrings自动生成\c .strings文件时的注释.
* @param bundle 匹配图片名时所用的字符串表所在的bundle名称
*
* @return 当前语言版本的UIImage对象, 若字符串表中没有该\c key, 返回名称为\c key的图片.
*/
#undef __IMAGE
#define __IMAGE(bundle,key,comment) \
[APLanguageSetting localizedImageForKey:(key) inBundle:(bundle)]
extern NSString *const APLanguageSettingDidChangeNotification; /**< 语言切换时的通知名*/
extern NSString *const APLanguageSettingInfoOldKey; /**< 语言切换时通知附加的userInfo中获取原语言名的key值*/
extern NSString *const APLanguageSettingInfoNewKey; /**< 语言切换时通知附加的userInfo中获取新语言名的key值*/
// Base
extern NSString *const APLanguageChineseSimplified; /**< 简体中文*/
extern NSString *const APLanguageChineseTranditional; /**< 繁体中文(台湾)*/
extern NSString *const APLanguageChineseHongKong; /**< 繁体中文(香港)*/
extern NSString *const APLanguageEnglish; /**< 英文*/
// More ....
extern NSString *const APLanguageKorea; /**< 韩语*/
extern NSString *const APLanguageJapanese; /**< 日本语*/
extern NSString *const APLanguageFrench; /**< 法语*/
extern NSString *const APLanguageSpanish; /**< 西班牙语*/
extern NSString *const APLanguagePortuguese; /**< 葡萄牙语*/
extern NSString *const APLanguageItalian; /**< 意大利语*/
extern NSString *const APLanguageGerman; /**< 德语*/
extern NSString *const APLanguageDutch; /**< 荷兰语*/
extern NSString *const APLanguageVietnamese; /**< 越南语*/
extern NSString *const APLanguageRussian; /**< 俄语*/
extern NSString *const APLanguageSwedish; /**< 瑞典语*/
extern NSString *const APLanguageDanish; /**< 丹麦语*/
extern NSString *const APLanguageFinnish; /**< 芬兰语*/
extern NSString *const APLanguageNorwegian; /**< 挪威语*/
extern NSString *const APLanguageTurkish; /**< 土耳其语*/
extern NSString *const APLanguageGreek; /**< 希腊语*/
extern NSString *const APLanguageIndonesian; /**< 印度尼西亚语*/
extern NSString *const APLanguageMalay; /**< 马来语*/
extern NSString *const APLanguageThai; /**< 泰国语*/
extern NSString *const APLanguageHindi; /**< 北印度语*/
extern NSString *const APLanguageHungarian; /**< 匈牙利语*/
extern NSString *const APLanguagePolish; /**< 波兰语*/
extern NSString *const APLanguageCzech; /**< 捷克语*/
extern NSString *const APLanguageSlovak; /**< 斯洛伐克语*/
extern NSString *const APLanguageUkrainian; /**< 乌克兰语*/
extern NSString *const APLanguageCroatian; /**< 克罗地亚人语*/
extern NSString *const APLanguageCatalan; /**< 加泰罗尼亚语*/
extern NSString *const APLanguageRomanian; /**< 罗马尼亚语*/
extern NSString *const APLanguageHebrew; /**< 希伯来语*/
extern NSString *const APLanguageArabic; /**< 阿拉伯语*/
@class APLanguage;
//////////////////////////////////////////////////////////////////////////
NS_INLINE CGRect MPRectForString(NSString * string, UIFont *font, CGRect boundingRect)
{
CGRect targetRect = boundingRect;
CGSize maxSize = boundingRect.size;
if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) {
// Greater than iOS7.
targetRect = [string boundingRectWithSize:maxSize
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:font}
context:nil];
}else{
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated"
CGSize size = [string sizeWithFont:font
constrainedToSize:maxSize
lineBreakMode:NSLineBreakByWordWrapping];
#pragma clang diagnostic pop
targetRect.size = size;
}
return targetRect;
}
@interface APLanguageSetting : NSObject
+ (APLanguageSetting *)sharedSetting;
+ (APLanguage *)currentLanguage;
+ (BOOL)setCurrentLanguage:(APLanguage *)lang;
+ (BOOL)setCurrentLanguageWithName:(NSString *)name;
+ (NSString *)localizedStringForKey:(NSString *)key
defaultValue:(NSString *)value
inBundle:(NSString *)bundleName;
+ (UIImage *)localizedImageForKey:(NSString *)key
inBundle:(NSString *)bundleName;
///App已经支持的语言列表,每个元素为支持的语言的名称, 如支持简体中文、英文: @[@"zh-Hans",@"en"]
+ (NSArray *)supportedLanguages;
///跟随系统语言,若不支持当前系统语言,默认设置成英文(\c APLanguageEnglish).
+ (BOOL)setSystemLanguage;
///是否当前语言环境是跟随系统语言的,跟随系统语言不一定与系统语言一致,如系统当前语言App不支持,会fallback到英文.
+ (BOOL)isFollowingSystemLanguage;
@end // APLanguageSetting
// 为了兼容性
@interface MPLanguageSetting : APLanguageSetting
@end
//////////////////////////////////////////////////////////////////////////
@interface APLanguage : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic, assign) BOOL isCurrentLanguage;
@property (nonatomic, strong, readonly) NSMutableDictionary *strings;
@property (nonatomic, strong, readonly) NSString *tableName;
+ (APLanguage *)languageWithData:(id)data;
+ (APLanguage *)languageWithName:(NSString *)name;
+ (APLanguage *)languageWithName:(NSString *)name
tableName:(NSString *)tableName;
- (NSString *)localizedStringForKey:(NSString *)key
defaultValue:(NSString *)value
inBundle:(NSString *)bundleName;
@end // APLanguage
//////////////////////////////////////////////////////////////////////////