当前位置: 首页 > news >正文

电子商务网站主要功能推广收款码平台有哪些

电子商务网站主要功能,推广收款码平台有哪些,如何做网络营销推广ppt,建站本BK项目已完成7788#xff0c;在项目的后期需要被翻译成多国语言版。为了适应全球多个国家使用多个存储。 应用本地化是分别对字符串、图片和 xib 或 storyboard 文件本地化#xff0c;而传统的做法是对 xib 上的字符串#xff08;包含UILabel和UIButton、UITextField等… BK项目已完成7788在项目的后期需要被翻译成多国语言版。为了适应全球多个国家使用多个存储。 应用本地化是分别对字符串、图片和 xib 或 storyboard 文件本地化而传统的做法是对 xib 上的字符串包含UILabel和UIButton、UITextField等关联一个变量通过NSLocalizedString这个函数去查找 Localizeable .strings 文件里的key值进行本地化操作或者是生成同一个xib文件的不同语言版本号。如 MainVC.xib(German) 和 MainVC.xib(English)。但这样做未免过于繁杂像人们常说的 tedious and useless. 还是先介绍一下本地化的一般流程                                           1伪本地化伪本地化是将字符串本地化为无意义语言的过程。即将须要翻译的字符串替换成其它如果已经是翻译过的“译文”能够用谷歌翻译替换一下或者是将全部元音字母替换成x。比如“Press here to continue” 会变成 “Prxss hxrx tx cxntxnxx”。这样做的目的是为了尽早发现问题。 2冻结UI  在应用开发的周期中必需要有一个明白的时间点来冻结UI。在此之后要坚决杜绝会影响本地化的资源变更。nib 文件能够在XCode中锁定。以防止改动可本地化的属性、不可本地化的属性或者是全部属性如图所看到的。然后将需要翻译的文本发给翻译人员或者是本地化服务提供商去翻译即可了。                                               3本地化将资源发给本地化服务提供商之后他们会发回翻译完毕的文件。依据翻译的文本进行本地化工作。 4版本号控制用版本号控制系统记录下你的每一次变更。 5測试不用怎么说必需要的步骤。 6a合并逻辑变更逻辑变更一般不会影响到nib文件和本地化的工作。多人协作的项目还是须要合并一些变更的逻辑的。 6b本地化变更假设你做了一些本地化变更比方改变了已本地化的文本那么就须要从头開始这个过程。并将这些变更发给本地化人员。能够重用之前的字符串翻译这么做会大大提高效率但仍然非常麻烦。所以应尽量避免在开发后期引入这类变更。 应用本地化的文章之前已经就有非常多大牛写过了。这里就不在赘述了直接贴出本人读过的认为还不错的文章 1、MJ 的应用程序本地化2013年写的对于XCode5有些操作界面已经不一样了但思想是不变的。 2、IOS应用国际化教程2014版,这个比較新并且是使用 storyboard 的。 3、RAYWENDERLICH 上的 Internationalization Tutorial for iOS [2014 Edition] 这上面的文章都非常不错非常值得一读强烈推荐。 另外。重点是要讲我在 github 上找到的一个类很棒优雅的代码一直感动到我眼泪哗哗直流~~ 这是github上的项目地址HERE 假设有找到很多其它更好的优秀代码请知会一声。 就像作者所说的那样                 下面是OHAutoNIBi18n.m类。做了一下小改动在不改变 frame 的情况下。对 UILabel、UIButton、UITextField 的字体大小做了一下自适应。 // // OHAutoNIBi18n.m // // Created by Olivier on 03/11/10. // Copyright 2010 FoodReporter. All rights reserved. //#import objc/runtime.h #import UIKit/UIKit.hstatic inline NSString* localizedString(NSString* aString);static inline void localizeUIBarButtonItem(UIBarButtonItem* bbi); static inline void localizeUIBarItem(UIBarItem* bi); static inline void localizeUIButton(UIButton* btn); static inline void localizeUILabel(UILabel* lbl); static inline void localizeUINavigationItem(UINavigationItem* ni); static inline void localizeUISearchBar(UISearchBar* sb); static inline void localizeUISegmentedControl(UISegmentedControl* sc); static inline void localizeUITextField(UITextField* tf); static inline void localizeUITextView(UITextView* tv); static inline void localizeUIViewController(UIViewController* vc);// ------------------------------------------------------------------------------------------------interface NSObject(OHAutoNIBi18n) -(void)localizeNibObject; endimplementation NSObject(OHAutoNIBi18n)#define LocalizeIfClass(Cls) if ([self isKindOfClass:[Cls class]]) localize##Cls((Cls*)self) -(void)localizeNibObject {LocalizeIfClass(UIBarButtonItem);else LocalizeIfClass(UIBarItem);else LocalizeIfClass(UIButton);else LocalizeIfClass(UILabel);else LocalizeIfClass(UINavigationItem);else LocalizeIfClass(UISearchBar);else LocalizeIfClass(UISegmentedControl);else LocalizeIfClass(UITextField);else LocalizeIfClass(UITextView);else LocalizeIfClass(UIViewController);if (self.isAccessibilityElement YES){self.accessibilityLabel localizedString(self.accessibilityLabel);self.accessibilityHint localizedString(self.accessibilityHint);}// Call the original awakeFromNib method[self localizeNibObject]; // this actually calls the original awakeFromNib (and not localizeNibObject) because we did some method swizzling }(void)load {// Autoload : swizzle -awakeFromNib with -localizeNibObject as soon as the app (and thus this class) is loadedMethod localizeNibObject class_getInstanceMethod([NSObject class], selector(localizeNibObject));Method awakeFromNib class_getInstanceMethod([NSObject class], selector(awakeFromNib));method_exchangeImplementations(awakeFromNib, localizeNibObject); }end/static inline NSString* localizedString(NSString* aString) {if (aString nil || [aString length] 0)return aString;// Dont translate strings starting with a digitif ([[NSCharacterSet decimalDigitCharacterSet] characterIsMember:[aString characterAtIndex:0]])return aString;#if OHAutoNIBi18n_DEBUG #warning Debug mode for i18n is activestatic NSString* const kNoTranslation $!;NSString* tr [[NSBundle mainBundle] localizedStringForKey:aString value:kNoTranslation table:nil];if ([tr isEqualToString:kNoTranslation]){if ([aString hasPrefix:.]){// strings in XIB starting with . are typically used as temporary placeholder for design// and will be replaced by code later, so dont warn about themreturn aString;}NSLog(No translation for string %,aString);tr [NSString stringWithFormat:$%$,aString];}return tr; #elsereturn [[NSBundle mainBundle] localizedStringForKey:aString value:nil table:nil]; #endif }// ------------------------------------------------------------------------------------------------static inline void localizeUIBarButtonItem(UIBarButtonItem* bbi) {localizeUIBarItem(bbi); /* inheritence */NSMutableSet* locTitles [[NSMutableSet alloc] initWithCapacity:[bbi.possibleTitles count]];for(NSString* str in bbi.possibleTitles) {[locTitles addObject:localizedString(str)];}bbi.possibleTitles [NSSet setWithSet:locTitles]; #if ! __has_feature(objc_arc)[locTitles release]; #endif }static inline void localizeUIBarItem(UIBarItem* bi) {bi.title localizedString(bi.title); }static inline void localizeUIButton(UIButton* btn) {NSString* title[4] {[btn titleForState:UIControlStateNormal],[btn titleForState:UIControlStateHighlighted],[btn titleForState:UIControlStateDisabled],[btn titleForState:UIControlStateSelected]};[btn.titleLabel setAdjustsFontSizeToFitWidth:YES];[btn setTitle:localizedString(title[0]) forState:UIControlStateNormal];if (title[1] [btn titleForState:UIControlStateHighlighted])[btn setTitle:localizedString(title[1]) forState:UIControlStateHighlighted];if (title[2] [btn titleForState:UIControlStateDisabled])[btn setTitle:localizedString(title[2]) forState:UIControlStateDisabled];if (title[3] [btn titleForState:UIControlStateSelected])[btn setTitle:localizedString(title[3]) forState:UIControlStateSelected]; }static inline void localizeUILabel(UILabel* lbl) {lbl.adjustsFontSizeToFitWidth YES; // lbl.minimumScaleFactor 6.0f;lbl.text localizedString(lbl.text); }static inline void localizeUINavigationItem(UINavigationItem* ni) {ni.title localizedString(ni.title);ni.prompt localizedString(ni.prompt); }static inline void localizeUISearchBar(UISearchBar* sb) {sb.placeholder localizedString(sb.placeholder);sb.prompt localizedString(sb.prompt);sb.text localizedString(sb.text);NSMutableArray* locScopesTitles [[NSMutableArray alloc] initWithCapacity:[sb.scopeButtonTitles count]];for(NSString* str in sb.scopeButtonTitles) {[locScopesTitles addObject:localizedString(str)];}sb.scopeButtonTitles [NSArray arrayWithArray:locScopesTitles]; #if ! __has_feature(objc_arc)[locScopesTitles release]; #endif }static inline void localizeUISegmentedControl(UISegmentedControl* sc) {NSUInteger n sc.numberOfSegments;for(NSUInteger idx 0; idxn; idx) {[sc setTitle:localizedString([sc titleForSegmentAtIndex:idx]) forSegmentAtIndex:idx];} }static inline void localizeUITextField(UITextField* tf) {tf.adjustsFontSizeToFitWidth YES;tf.text localizedString(tf.text);tf.placeholder localizedString(tf.placeholder); }static inline void localizeUITextView(UITextView* tv) {tv.text localizedString(tv.text); }static inline void localizeUIViewController(UIViewController* vc) {vc.title localizedString(vc.title); }tips:本地化的时候还须要注意 1、别忘了从右向左读的语言。 2、不要随便如果逗号就是千位分隔符以及句点就是小数点。在不同的语言中可能会有不同。 3、注意数字和日期的格式化输入和输出都须要进行格式化。 至此应用本地化的事儿就简单多了剩下的事情就交给翻译人员去吧~ 參考文章 Apple官方文档Localizing your APP Apple官方文档Internationalize Your App Apple官方文档 Data Formatting Guide Apple官方文档 Internationalization Programming Topics Apple官方文档 Internationalization and Localization 本地化协作工具https://www.transifex.com/product/                             https://crowdin.com/ 版权声明本文博客原创文章博客未经同意不得转载。 转载于:https://www.cnblogs.com/yxwkf/p/4615096.html
http://www.pierceye.com/news/887848/

相关文章:

  • 做网站知道访客ip汝州文明建设网站
  • 吴江建设局网站打不开了网站备案信息地址
  • 长沙网站建设优化局域网网站架设软件
  • 重庆企业网站建设解决方案seo关键词怎么优化
  • 信誉好的大良网站建设做的好的ppt下载网站有哪些
  • 栖霞网站定制手机网站图片自适应代码
  • 企业网站管理中心网站海外推广
  • 书店商城网站设计万网虚拟主机做网站教程
  • 文化类网站是不是休闲娱乐类网站wordpress插件 ftp
  • 织梦系统网站吉林省建设安全厅官方网站
  • 网站推广网站关键词排名怎么做建站教程wp
  • 用织梦系统做网站产权网站建设需要掌握什么技术
  • 南宁seo平台费用安徽网站关键词优化排名
  • 李贤威 wordpress甘肃搜索引擎网络优化
  • 网站建设的步骤图片过程9377将军
  • 做彩票网站需要什么服务器wordpress slug
  • 个人空间网站建设太原做网页软件
  • 网站建站方式有哪些wordpress星座主题自适应
  • 如何为公司做网站算命 网站开发
  • 那些做软件的网站十大装潢公司上海
  • wordpress 仿站 主题公路建设网站
  • 接网站 建设网站建设业务员招聘
  • 江西工程建设信息网站服装公司网站建设
  • 什么店是做网站制作的dw网站结构图怎么做
  • 一个网站开发需要多久软件开发工时费用标准
  • 做网站 公司不懂英文怎么做英文的seo网站
  • 南宁企业门户网站建设价格连云港网站建设电话
  • 石林彝族网站建设网站活动页面设计
  • 网站建设流程表推广联盟有哪些平台
  • 制作网站深圳建大型门户网站