Iphone iOS上变量值的本地化
我的资源文件夹中大约有72个html文件,我需要对它们进行本地化。现在我已经把它们译成了法语。文件选择取决于用户输入,因此文件名由变量创建。现在的问题是如何定位变量的值 例如,我在资源文件夹中有以下3个文件Iphone iOS上变量值的本地化,iphone,objective-c,ios4,localization,Iphone,Objective C,Ios4,Localization,我的资源文件夹中大约有72个html文件,我需要对它们进行本地化。现在我已经把它们译成了法语。文件选择取决于用户输入,因此文件名由变量创建。现在的问题是如何定位变量的值 例如,我在资源文件夹中有以下3个文件 aaa0.html bbb28.html ccc33.html 我在资源文件夹中也有这些法语文件 aaa0-French.html bbb28-French.html ccc33-French.html 这是我的代码,在没有本地化的情况下运行良好 如果用户输入导致选择AAAAA0.htm
如果用户输入导致选择AAAAA0.html,则globalString将为“AAAAA”,globalIndex将为“0”,getSign2将为“AAAAA0” 如果用户输入导致选择BBBBB28.html,则globalString将为“BBBBB”,globalIndex将为“28”,getSign2将为“BBBBB 28” 如果用户输入导致选择CCCCC33.html,则globalString将为“CCCCC”,globalIndex将为“33”,getSign2将为“CCCCC 33” 现在我已经有了一个可本地化的.string文件,我的.xib文件已经本地化(所有标签、图像和日期选择器等) 如果用户语言是法语,我想将getSign2的值从aaa0.html更改为AAAA0-French.html。同样,BBBB28.html和CCCC33.html应分别更改为BBBB28-French.html和CCCC33-French.html 我应该在localizable.string中添加什么来执行此操作?我应该在ViewController.m文件中做什么更改
我知道我可以用下面的方法
NSLocale *locale=[NSLocale currentLocale];
NSString *currentlocale =[locale displayNameForKey:NSLocaleIdentifier value:[locale localeIdentifier]];
NSLog(@"Complete Locale: %@",currentlocale);
if (currentocale==@"French") {
NSString *getSignNew=[getSign2 stringByAppendingString:@"-French"];
NSString *filePath=[[NSBundle mainBundle] pathForResource:getSignNew ofType:@"html" ];
}
但是这个方法检查ViewController.m文件中的条件,而我在localizable.string中完成了所有其他与本地化相关的编码。当我提交申请时会不会引起问题?如果这不是正确的解决方案,请告诉我如何解决此问题
请尽快回复
谢谢。本地化文件应放置在如下结构中:
Your.app/
English.lproj/
AAAAA0.html // English localized file
....
French.lproj/
AAAAA0.html // French localized file
...
zh_TW.lproj/
AAAAA0.html // Chinese localized file
...
然后将自动查找与当前区域设置匹配的正确文件。我复制了french.LPROJ文件夹中的所有法语文件,但它不会自动检测到它们。我有3.xib文件1。DatePickServiceWController.xib 2。第二,第三,第三。我已经本地化了所有3.xib文件。它在主目录中创建了一个french.lproj,其中包含datepickerviewcontroller.xib和localizable.string。但它也在包含second.xib和third.xib的classes文件夹下创建了french.lproj。为什么我有两个french.lproj文件夹。应该只有一个。有多个french.lproj文件夹是正常的吗。我复制了两个文件夹中的法语文件,但它没有读取。我正在读取第二个.m文件中的一个数组attributes.plist,并使用mainbundle。NSString*filePath=[[NSBundle mainBundle]路径用于资源:NSLocalizedString(@“attributes”和“”),类型为:NSLocalizedString(@“plist”,@“”)];对于attributes-french.plist来说效果很好,因为“attributes”不是一个变量,在我的localizable.string文件中,我使用的是“attributes”=“attributes french”;但同样的事情不适用于getSIgn2,因为它是一个变量,我尝试了pathForResource:NSLocalizedString(@“getSIgn2”,@“”)和pathForResource:NSLocalizedString(getSIgn2,@“”)。我如何修复它?@chits:No在另一个
.lproj
内部有一个.lproj
是不正常的。如果在Xcode中选择“本地化”,则应自动为您创建.lproj
文件。
Your.app/
English.lproj/
AAAAA0.html // English localized file
....
French.lproj/
AAAAA0.html // French localized file
...
zh_TW.lproj/
AAAAA0.html // Chinese localized file
...