删除的找回删掉微信聊天记录录怎么才能找回

[ios开发]xcode4.5应用程序本地化
我们在开发一款APP的时候,总是会涉及应用程序国际化的事情,用ios里专业术语叫做本地化,其实都是一个意思,简而言之就是不同的语言,显示不同的应用名称、字符串名称、图片名称、等等,除了代码,ios几乎可以本地化所有类型的文件。
那么接下来我就记录下来ios如何快速本地化项目,【记住千万不要把说明文字直接以字符形式写到各个.m文件中,或是统一都编写成静态字符串,这些都是不利于本地化的,等以后需要维护时,项目需求不同语言版本时,会很费事】。
一、本地化应用程序名称
首先我创建了一个simple Application,应用程序默认语言是:english;APP名称默认为创建项目的名称。我们打开应用程序-info.plist清单文件:空白处右键,选择Show Raw Keys/Values,就会看到应用程序名实际为CFBundleDisplayName,如下图所示,【注意:CFbundleName并不是APP名称的属性,而是CFbundleDisplayName】
接下来,开始给APP添加一个chinese语言支持,选中项目-Project-Localization-Add,如下图:
弹出的界面让我们选择需要本地化的文件,infoPlist.strings是必不可少的,使用这个才能设置不同的APP名称,ViewController我们暂且先够选上,一会本地化xib的时候需要用到,如下图:
然后展开infoPlist.strings文件(Engilsh),里添加:CFBundleDisplayName=&Localized&,英文环境下会显示这个名称,chinese里添加:CFBundleDisplayName=&本地化&,这是中文环境下显示的名称,如下图:
保存一下,再次运行APP,然后切换一下系统语言,会发现APP显示我们设置的名称(如果发现没有改变,是因为缓存的缘故,尝试-Project-clean一下,然后设备中删除我们的demo,再来build)
二、本地化xib文件
选中要本地化的xib文件,在右边的属性检查器视图中会发现多了一个localization选项,勾选我们要本地化的语言,会发现这个xib变成了和infoPlist.strings一样的列表:xib(English)、xib(chinese),我们可以在各自的xib中创建不同语言所显示的界面,等到APP需要显示此xib时,系统会首先寻找当前语言下的xib文件,如下图所示:
三、本地化字符串
本地化字符串需要一个Localize.settings文件,在代码中需要输入字符串的地方使用NSLocalizeString宏来定义字符串。
原理:在代码中将加入的字符串加入NSLocalizeString宏中,启动程序时,系统将根据语言加载相应的文件得到其对应的字符串文件,这个字符串可以通过系统将NSLocalizedString中的宏生成名为&Localizable.strings&的文件,当然你可以自己去创建这个文件,然后手动是添加对应的字符串。
我们先手动创建这个文件:选中项目-new file - Resource-Stringfile
命名一定要是:Localizable
然后选中创建的Localizable.strings文件,在属性检查器的localization项点击-Localizae,我们先添加English的本地化,再添加chinese的本地化。
现在发现这个文件也变成了English和Chinese两个,那么我们在各自文件中写入:
继续在代码的viewdidload中,需要设置字符串的地方:
NSlocalizeString第一个参数是内容,第二个参数是在系统生成Localize.strings文件时,生成的注释,不需要的话可以设置为nil
看一下效果:
四、图片资源的本地化
我们可以向本地话字符串一样,把中英文图片的名字分别存到中英文对应的strings文件,然后通过NSLocalizedStringFromTable来获取图片名称。
选中要本地化的图片,在右边的Inspector中 Localization下,点击localize...
继续上一次一样的操作,添加English和chinese,我们发现这个图片资源也分成了english和chinese的版本,如下图:
继续要做的是给chinese的文件设置(替换成)其语言下的图片资源,如下:
保存-clean后运行看一下:
同样的avator.png图片资源,在不同的语言环境下,显示不一样的图片资源,很不错吧?
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'当前位置: →
→ ios应用程序语言本地化
ios应用程序语言本地化
& 作者及来源: 一梦浮生2012 - 博客园 &
&收藏到→_→:
摘要: ios应用程序语言本地化
"ios应用程序语言本地化"::
转自/blog/1303723& & & & & & & & & & & &
具体实现如下:
静态本地化&:&加载的文件,如xib文件,图像文件,还有实现名本地化
动态本地化:&显示的字符串本地化
一。先做准备:设置程序本地化
在xcode点击程序图标:点击info选项-&localizationn,点击&+&,选择要添加的语言,选择chinese(zh-hans)
你会在你工程目录下发现多了个文件夹,&zh-hans.lproj",x-code使用.lproj作为其本地化文件夹的扩展名。
二。设置xib文件本地化,&图像本地化的方法是一样道理的,可以根据用户的显示语言加载不同的xib文件
操作:点击xib文件,在ib窗口中选择选项选择&file inspecter",也就是第一个选项,选择&localization-&"+"选择添加的语言,
效果如下,原来的xib文件就会出现三角形,其下有两个文件,因为我的为storyboard,但效果是一样的。就可以实现将其本地化了,非常简单吧
三。设置名本地化,
&&&&& 设置名存储在的info.plist文件中,我们例子实际上为localize-info.plist,选择文件,并不需要对文件进行本地化,而是使"info.strings"本地化就可以了,在.plist,空白处右键,选择show raw keys/values,就会看到名实际为cfbundledisplayname,我们只需要在对应的 info.plist中添加以下代码就可以了
cfbundledisplayname&=&"localization";&&
cfbundledisplayname&=&"本地化";&&
四、加载的字符串本地化,
&&&&& 原理:在代码中将加入的字符串加入nslocalizestring宏中,启动程序时,系统将根据语言加载此文来自: 马开东博客
转载请注明出处 网址:
相应的文件得到其对应的字符串文件,这个字符串可以通过系统将nslocalizedstring中的宏生成名为&localizable.strings&的文件,当然你可以自己去创建这个文件,然后手动是添加对应的字符串。,
labelname.text&=&nslocalizedstring(@"name",&@"the&name&is&");&&
labelpassword.text&&=&nslocalizedstring(@"password:",@"the&password&is");&&
&nslocalizestring 第一个参数是内容,第二个参数将会转化为字符串文件里的注释。
转化方法如下 :先关闭项目,打开终端,进入到项目的目录,输入genstrings 文件名.m就可以将该文件中的宏转化为相应的字符串文件,
效果如下:会看到生成"localizable.strings",
打开文件,就可以交给翻译人员去翻译了
最后附上例子,/topics/download/df3a52-a876-c
&搜索此文相关文章:语言本地化此文来自: 马开东博客
网址: 站长QQ
ios应用程序语言本地化_博客园相关文章
博客园_总排行榜
博客园_最新
博客园_月排行榜
博客园_周排行榜
博客园_日排行榜3997人阅读
iOS / OC(245)
转自:http://blog.csdn.net/z/article/details/8288028
将您的应用程序国际化
App Store 中很多流行的应用程序有多种语言版本。虽然这些应用程序可能因为很多因素而变得流行,但是具有多种本地化版本,肯定是其中一个因素。越多的人可以理解并使用您的应用程序,潜在的买家也就越多。
若要让您的应用程序拥有多个语言版本,必须先将它国际化,然后将它本地化。国际化是整理本地化资源的一种技巧,以便应用程序在运行时,可以选择用户首选的资源集。本地化就是翻译应用程序所显示或读出(例如 VoiceOver)的文本。它还可以包括某个区域专用的额外图像和其他资源。(本地化也可以指将一组资源本地化为某个特定语言和区域设置——例如简体中文本地化。)
应用程序选择用户界面本地化语言的方法:在“设置”应用程序(“通用”&“多语言环境”&“语言”)中,iOS 设备用户选取想在应用程序用户界面和系统本身所显示的语言。应用程序将此偏好设置作为钥匙,来访问所请求的语言本地化资源。
若要了解国际化的所有方面,请参阅国际化编程主题。
本教程将教您进行的操作
在本教程中,您将会使 HelloWorld 应用程序国际化,以便其支持两种本地化语言:英文和简体中文。接下来您会将以下文本本地化:
注:本教程使用简体中文作为示例语言。如果不懂中文,您可以拷贝本教程中本地化文本项的中文字,然后将它们粘贴到项目中的合适位置。或者,如果您喜欢,可以在添加的本地化语言中,使用简体中文之外的某种语言。
在本教程中,您还将修改用户界面并配置国际化的布局约束。
本教程不会教您如何将本地化资源(例如图像文件或声音文件)添加到项目。若要了解如何将本地化资源添加到项目,请阅读国际化编程主题中的相应章节。
当您选择简体中文作为首选语言,然后启动国际化的 HelloWorld 后,该应用程序外观应该是这样的:
使用 Base Internationalization
“Base Internationalization”是 Xcode 4.5 推出的一项功能,使用该功能,本地化工程师(即翻译人员)不再需要为应用程序支持的每种语言修改串联图和 nib 文件。相反,一个应用程序只有一组串联图或 nib 文件会本地化为默认语言,这些串联图和 nib 文件称为Base Internationalization。当您将本地化语言添加到某个应用程序时,Xcode 会生成一个包含所有文本的字符串文件,这些文本包含每个串联图或 nib 文件显示的文本,或者作为辅助功能标签或提示的文本。Xcode
会以串联图的名称命名该文件,文件的扩展名为strings。因此,如果串联图的名称为&MyStoryboard.storyboard,所生成的字符串文件的名称就是&MyStoryboard.strings。
正如您将看到的,字符串文件将应用程序中的文本(值)与其他字符串(键)相关联。本地化工程师使用该键以帮助识别用户界面中的文本,然后翻译该文本。在“Base Internationalization”中构建应用程序的用户界面时,必须使用“Auto Layout”功能,以确保显示翻译字符串的对象,在其相邻视图更改时,适当地调整其相对位置和大小。
使用 Base Internationalization
注:在 Xcode 4.5 以前的版本中,开发者和本地化工程师必须为应用程序支持的每种语言修改串联图和 nib 文件。这项任务需要他们不仅要翻译串联图或 nib 文件中的可见或可听文本,还要在翻译完成后,调整视图的大小和位置。
添加本地化语言
创建 HelloWorld 时,Xcode 已自动将一个文件夹添加到了 Xcode 项目。此文件夹用于存放英文本地化的资源。稍后,当您请求某个“Base Internationalization”时,Xcode 会将另一个文件夹添加到项目。如果在 Finder 中查看项目文件,您将看到一个名为Base.lproj&的文件夹和另一个名为&en.lproj&的文件夹(用于英文本地化)。第一个文件夹中的是串联图文件;第二个文件夹中的是InfoPlist.strings&文件。(您将在中了解有关&InfoPlist.strings&文件的更多信息。)英语是项目的默认语言。如果想要添加其他的本地化语言,您必须在
Xcode 中添加它们。
将某种本地化语言添加到项目
在完成此项任务后,Xcode 会更新该项目导航器,以显示新的本地化语言。点按&MainStoryboard.storyboard&旁边的展示三角形,以显示这些文件的基本(英文)和简体中文本地化。
在项目导航器中,您可能注意到有两种类型的字符串文件。当您添加一种本地化语言时,Xcode 生成两种字符串文件。第一种是来自“Base Internationalization”的字符串文件 (MainStoryboard.strings)。该字符串文件包含一个或多个键-值对,它们由 Xcode 从串联图文件找到的文本自动生成。第二种字符串文件,是&InfoPlist.strings,您使用该文件将用户可见的应用程序属性(例如其名称)本地化。该文件开始内容为空。您将在接下来的部分了解有关这两种字符串文件的更多信息。
应用程序捆绑包中的本地化文件夹:应用程序就是捆绑包,而捆绑包即是结构化目录,内有可执行代码及其使用的资源。这些资源可以本地化或不加以本地化(所有语言都如此)。本地化的资源,放在名为&code.lproj&的捆绑包的文件夹中,而&code&可由以下组成:
这些约定的一个例外是&Base.lproj,它标识串联图或 nib 文件的 Base Internationalization。
关于字符串文件
字符串文件包含文本项,这些文本项已本地化为特定语言,并与用作键的任何字符串相匹配。该文件的扩展名为&strings。当应用程序在设备上运行时,它会从用户首选语言所属的字符串文件中,找出并显示这些字符串。(当然,该应用程序必须支持该语言的本地化。)在 iOS 中,国际化使用三种不同类型的字符串文件:
以下部分描述了,将应用程序国际化时如何配置各种类型的字符串文件。
所有字符串文件中的条目,具有以下基本格式:
/* Comment to localizers */
&Key& = &Value&;
该注释旨在通过澄清已本地化字符串的上下文,来帮助本地化工程师。注释(位于单独一行)之后是一个键、一个等号、一个值和一个表示终止的分号。值是一个总被引号括起来的字符串。键是通常被引号括起来的字符串,但也可以是声明为全局字符串的符号。
将串联图文本本地化
对于每种添加到应用程序项目的本地化语言,Xcode 从“Base-internationalization”串联图生成名为&StoryboardName.strings&的字符串文件,并将该文件写入该项目本地化语言(例如&zh-Hans.lproj)的文件夹。
检查简体中文的字符串文件
就 HelloWorld 应用程序而言,Xcode 从“Base Internationalization”生成以下字符串文件:
/* Class = &IBUITextField&; accessibilityHint = &Type your name&; ObjectID = &PzI-FE-QQF&; */
&PzI-FE-QQF.accessibilityHint& = &Type your name&;
/* Class = &IBUITextField&; placeholder = &Your Name&; ObjectID = &PzI-FE-QQF&; */
&PzI-FE-QQF.placeholder& = &Your Name&;
/* Class = &IBUIButton&; normalTitle = &Hello&; ObjectID = &fYK-eX-amY&; */
&fYK-eX-amY.normalTitle& = &Hello&;
对于串联图中的每个字符串,Xcode 将文本显示对象标识符的键、句点 (.) 和指定给该字符串的属性连接起来。值(等号后面的字符串)是“Base-internationalization”串联图中的可见或可听字符串。本地化工程师会翻译这些字符串。(每个条目的注释,会重复此信息,但会添加 Xcode 已知的对象类。)如果用户的首选语言与“Base
Internationalization”的语言不同,应用程序在运行时会将“Base-internationalization”串联图中的每个字符串,动态替换为当前本地化语言的&StoryboardName.strings&文件中相匹配的字符串。图
1-1&说明了此流程。
1-1&&将“Base Internationalization”中的字符串本地化
将字符串本地化为简体中文
HelloWorld 用户界面十分简单,仅有一个串联图、一个场景和三个字符串。用户界面更为复杂的应用程序,含有许多带文本的视图,因此有许多字符串需要本地化。Xcode 使用嵌入键中的对象 ID,帮助您识别显示文本的视图。选择串联图中的视图(例如,“Hello”按钮),然后打开“Identity”检查器。在此检查器的“Document”部分,查找对象 ID,并将其与字符串文件中的对象 ID 相匹配。
MainStoryboard.strings&文件的中文本地化内容,现在看起来应该是这样的:
/* Class = &IBUITextField&; accessibilityHint = &Type your name&; ObjectID = &PzI-FE-QQF&; */
&PzI-FE-QQF.accessibilityHint& = &键入您的姓名&;
/* Class = &IBUITextField&; placeholder = &Your Name&; ObjectID = &PzI-FE-QQF&; */
&PzI-FE-QQF.placeholder& = &您的姓名&;
/* Class = &IBUIButton&; normalTitle = &Hello&; ObjectID = &fYK-eX-amY&; */
&fYK-eX-amY.normalTitle& = &您好&;
将应用程序的名称本地化
将本地化语言添加到某个应用程序项目时,Xcode 在默认情况下,会创建一个名称为&InfoPlist.strings&的文件,并将其写入该文件系统的本地化文件夹(例如,zh-Hans.lproj)中。该文件(最开始内容为空)应该包含信息属性列表中用户可见的本地化字符串的键-值对;就
HelloWorld 应用程序而言,该属性列表在&HelloWorld-Info.plist&文件中。
最重要的用户可见属性,是应用程序的显示名称,现在您会将其本地化。InfoPlist.strings&文件中的键,是由框架声明的符号,可在信息属性列表中找到。
将应用程序名称本地化
不需要为原始的英文本地化编辑&InfoPlist.strings&文件,因为信息属性列表中用户可见的属性已经是英文的。
将代码显示的字符串本地化
应用程序的代码,经常在运行时创建和显示文本字符串。HelloWorld 项目的&changeGreeting:&方法,就是一个以编程方式生成文本的例子。
- (IBAction)changeGreeting:(id)sender {
self.userName = self.textField.
NSString *nameString = self.userN
if ([nameString length] == 0) {
nameString = @&World&;
NSString *greeting = [[NSString alloc] initWithFormat:@&Hello, %@&, nameString]; // programmatically created
self.label.text =
该方法从文本栏获取要显示的姓名,然后使用&NSString&类的&initWithFormat:&方法,将字符串“Hello, ”与该姓名连接起来。为了显示此文本,该方法将标签的&text&属性设定为构建的字符串。这里国际化的问题,在于必须将单词“Hello”翻译为该应用程序支持的每种本地化语言。为了将代码生成的字符串本地化,iOS
的国际化功能提供了字符串文件和&NSLocalizedString&宏。以下部分描述如何使用该文件和宏。
配置 Localizable.strings 文件
包含以编程方式显示的文本,其本地化字符串文件的惯用名称是&Localizable.strings。您将创建两个此类文件,一个用于英文,一个用于简体中文,然后将合适的键-值对添加到其中。
为每种本地化添加 Localizable.strings 文件
现在,有了两种本地化语言的&Localizable.strings&文件,是时候将键-值对添加到其中了。
将“Hello”字符串本地化
调用 NSLocalizedString 宏
NSLocalizedString&宏从&Localizable.strings&文件获取当前本地化语言的本地化字符串。在 HelloWorld 应用程序中,您要以此宏替换文本&@&Hello,
请求代码中的本地化字符串
该宏中的第一个参数,采用字符串文件中的一个键,第二个参数采用给本地化工程师的注释。该宏会返回与用户首选语言相对应的本地化语言中键的值。您可能想知道此示例将给本地化工程师的注释作为该宏的参数的原因;毕竟,您已经在&Localizable.strings&文件中,为英文和中文写了一则注释。
大型应用程序项目,通常使用名称为&genstrings&的命令行程序,从该程序在代码中找到的信息生成一个字符串文件(默认情况下,该文件名称为&Localizable.strings)。该实用工具查找&NSLocalizedString&宏的每次调用,提取键(也是初始值)和注释,并将这些项目写入字符串文件。然后,您可以将该字符串文件,添加到项目中的每种本地化语言中,并翻译这些值。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3776305次
积分:30014
积分:30014
排名:第139名
原创:20篇
转载:1017篇
评论:412条
(3)(10)(13)(10)(3)(2)(1)(4)(5)(10)(1)(7)(13)(6)(4)(3)(9)(10)(3)(13)(6)(22)(14)(13)(19)(26)(50)(9)(12)(13)(47)(22)(31)(29)(18)(26)(12)(6)(23)(5)(12)(4)(10)(12)(79)(44)(86)(12)(9)(7)(21)(6)(10)(14)(23)(30)(4)(1)(3)(5)(3)(9)(2)(16)(3)(17)(5)(5)(8)(2)(3)(3)(20)(10)(14)(3)xcode(2)
最近要做一个应用要实现本地化,因为使用的是xcode4,应用程序本地化的问题跟以前的版本还是有些不同,在网上找了些资料对于xcode4以上的版本资料还是相对较少,有些最后要通过手动创建文件,这样操作实在是太麻烦,所以经过一个下午的研究,总算是成功了一点点,还是庆幸一下。先给出结果。
具体实现如下:
静态本地化
加载的文件,如xib文件,图像文件,还有实现应用程序名本地化
动态本地化:
显示的字符串本地化
一。先做准备:设置程序本地化
在xcode点击程序图标:点击Info选项-&Localizationn,点击“+”,选择要添加的语言,简体中文选择Chinese(zh-Hans)
你会在你工程目录下发现多了个文件夹,“zh-Hans.lproj",x-code使用.lproj作为其本地化文件夹的扩展名。
二。设置xib文件本地化,
图像本地化的方法是一样道理的,可以根据用户的显示语言加载不同的xib文件
操作:点击xib文件,在IB窗口中选择选项选择“File Inspecter",也就是第一个选项,选择“Localization-&"+"选择添加的语言,
效果如下,原来的xib文件就会出现三角形,其下有两个文件,因为我的为storyboard,但效果是一样的。就可以实现将其本地化了,非常简单吧
三。设置应用程序名本地化,
设置应用程序名存储在应用程序的Info.plist文件中,我们例子实际上为Localize-Info.plist,选择文件,并不需要对文件进行本地化,而是使"Info.strings"本地化就可以了,在.plist,空白处右键,选择Show Raw Keys/Values,就会看到应用程序名实际为CFBundleDisplayName,我们只需要在对应的 Info.plist中添加以下代码就可以了
CFBundleDisplayName = "Localization";
CFBundleDisplayName = "本地化";
四、加载的字符串本地化,
原理:在代码中将加入的字符串加入NSLocalizeString宏中,启动程序时,系统将根据语言加载相应的文件得到其对应的字符串文件,这个字符串可以通过系统将NSLocalizedString中的宏生成名为“Localizable.strings”的文件,当然你可以自己去创建这个文件,然后手动是添加对应的字符串。,
labelName.text = NSLocalizedString(@"Name", @"The name is ");
labelPassword.text
= NSLocalizedString(@"Password:",@"The password is");
NSlocalizeString 第一个参数是内容,第二个参数将会转化为字符串文件里的注释。
转化方法如下 :先关闭项目,打开终端,进入到项目的目录,输入genStrings 文件名.m就可以将该文件中的宏转化为相应的字符串文件,
效果如下:会看到生成"Localizable.strings",
打开文件,就可以交给翻译人员去翻译了
最后附上例子,这是必须的
总算把截图搞上去了,分享一下。
下载次数: 119
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1743次
排名:千里之外
原创:11篇}

我要回帖

更多关于 微信聊天记录找回 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信