app的本地化 国际化
IOS篇
1. app name 多语言设置
注意:xcode 8 以后没有support Files 文件夹了,不用care,
只要配置文件名称填对就行 InfoPlist.strings , 在右边工具栏的localization 中选择对应的语言打勾就会
自动生成对应的子文件例如:InfoPlist.strings(English)
如果是自定义的文本命名: Localizable.strings
名称切勿填错了,否则无效果
申明方式
"Login"="登录";
程序内引用方式:
NSLocalizedString(@"Login",@“这是注释无影响可填写nil”);
参考链接:
浅谈Xcode8通过创建strings文件来实现app名称和内容的语言国际化
iOS项目的本地化处理(多国语言)
2. Appstore 多语言设置
https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide_zh_CN/Chapters/DisplayInMoreLanguages.html
内购的本地化
在应用客户端里,商品信息通过向AppStore发起SKProductsRequest获得
void IOSIAP::requestProducts(std::vector <std::string> &productIdentifiers)
{NSMutableSet *set = [NSMutableSet setWithCapacity:productIdentifiers.size()];std::vector <std::string>::iterator iterator;for (iterator = productIdentifiers.begin(); iterator != productIdentifiers.end(); iterator++) {[set addObject:[NSString stringWithUTF8String:(*iterator).c_str()]];}SKProductsRequest *productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:set];iAPProductsRequestDelegate *delegate = [[iAPProductsRequestDelegate alloc] init];delegate.iosiap = this;productsRequest.delegate = delegate;[productsRequest start];
}
- (void)productsRequest:(SKProductsRequest *)requestdidReceiveResponse:(SKProductsResponse *)response
{// release oldif (_iosiap->skProducts) {[(NSArray *)(_iosiap->skProducts) release];}// record new product_iosiap->skProducts = [response.products retain];for (int index = 0; index < [response.products count]; index++) {SKProduct *skProduct = [response.products objectAtIndex:index];// check is validbool isValid = true;for (NSString *invalidIdentifier in response.invalidProductIdentifiers) {NSLog(@"invalidIdentifier:%@", invalidIdentifier);if ([skProduct.productIdentifier isEqualToString:invalidIdentifier]) {isValid = false;break;}}IOSProduct *iosProduct = new IOSProduct;iosProduct->productIdentifier = std::string([skProduct.productIdentifier UTF8String]);iosProduct->localizedTitle = std::string([skProduct.localizedTitle UTF8String]);iosProduct->localizedDescription = std::string([skProduct.localizedDescription UTF8String]);// locale price to stringNSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];[formatter setFormatterBehavior:NSNumberFormatterBehavior10_4];[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];[formatter setLocale:skProduct.priceLocale];NSString *priceStr = [formatter stringFromNumber:skProduct.price];[formatter release];iosProduct->localizedPrice = std::string([priceStr UTF8String]);iosProduct->index = index;iosProduct->isValid = isValid;_iosiap->iOSProducts.push_back(iosProduct);}
}
注意:本地化的判断 根据用户手机登录的账号所对应的——应用市场的区域。
priceStr 是拼接好当地货币符号的价格描述
国际货币符号表
3. 官方提供的 app 内容的本地化方案
真的是非常方便!
https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPInternational/LocalizingYourApp/LocalizingYourApp.html#//apple_ref/doc/uid/10000171i-CH5-SW1
4. 本地化货币描述 和货币价格
(1)IOS渠道如何判断应该展示 什么货币? 根据用户登录的 APPID
(2)如果用户没有登录 APPID ? 那么根据下载游戏的时候记录的 APPID 来展示(猜测的)
(3)如何获得本地化的 商品描述? APPSTORE 后台自己配置的。获取商品列表的时候可以拿到。
当然,原生弹窗展示的信息,也是在后台配置的。
(4)需要关心汇率问题吗? 不用,苹果给予的商品列表是 转换了货币符号和价格的。也就是拿到直接展示即可
(5)如何测试国外的本地化是否真的做好了? APPID 是可以切换区域的,切换到其他国家去测呗!
app的本地化 国际化相关推荐
- 应用名称本地化/国际化
应用名称本地化,是指同一个App的名称,在不同的语言环境下(也就是手机设备的语言设置)显示不同的名称. 比如,微信在简体中文环境下App名称显示为"微信",在英语环境下显示为&qu ...
- iOS - 实现语言本地化/国际化
实现iOS语言本地化/国际化(图文详解) 前言 语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往一些应用程序需要提供给多个国家 ...
- 3分钟实现iOS语言本地化/国际化(图文详解)
为什么80%的码农都做不了架构师?>>> 原文 前言 语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往 ...
- iOS语言本地化/国际化宝典
语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往一些应用程序需要提供给多个国家的人群使用,或者一个国家有多种语言,这就要求应用 ...
- Strust2 本地化/国际化
一个关于本地化/国际化的例子 参考 点击打开链接(非常完善的例子) 点击打开链接(ActionSupport.getText()方法) 注意s:radio的修改 1 package test;imp ...
- struts国际化java_java框架篇---Struts2 本地化/国际化(i18n)
国际化(i18n)是规划和实施的产品和服务,使他们能很容易地适应特定的本地语言和文化的过程中,这个过程被称为本地化.国际化的过程有时也被称为翻译或本地化启用.国际化是缩写i18n,因为我和两端用n字打 ...
- 软件本地化(国际化)步骤
增加本地化代码实例 #define LOCALE_DIR "/usr/share/locale" #define LOCALE_DIR ""//如果设置当前目录 ...
- 在xcode上把你的app多语言国际化(NSLocalizedString)
1.到project->info->localizations 下面的加号,添加你需要的语言 千万不要删除 base 否虽然我不知道有什么用,我是删了整个storyboard没了,很 ...
- iOS开发 - App语言国际化
前言 语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往一些应用程序需要提供给多个国家的人群使用,或者一个国家有多种语言,这就要 ...
最新文章
- python可以做什么项目-Python可以做大项目吗?
- 正则表达式全部符号解释
- JavaScript中Ajax源码
- 【数据竞赛】2020年11月国内大数据竞赛信息-奖池5000万
- play 拦截器_编写Play 2的模块,第2部分:拦截器
- python matplotlib画图改变图标题和坐标轴标题的字体大小
- 新仓库无线AP手持连接故障
- python中的数据类型中int表示_python中的基本数据类型之 int bool str
- android 倒计时 动画下载,倒计时器app下载-倒计时器安卓最新版-幻想游戏网
- PowerDesigner注意事项
- Something about mvss
- 集成电路可测性设计DFT技术入门概论--MBIST技术报告
- 高德地图经纬度比较并返回范围内要求个数可用
- ubuntu重装显卡驱动全过程!所有选项的选择!
- Python实现简单的层次聚类算法以及可视化
- php json encode 参数,PHP json_encode函数的参数说明与用法
- 房地产前期投资阶段及启动阶段目标成本形成过程
- 2Wire_2700hg系列无线路由器功率增大方法!
- el-form和el-col响应式布局
- dz每个php模板页文件,dz模板引擎分析