Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone iOS上变量值的本地化_Iphone_Objective C_Ios4_Localization - Fatal编程技术网

Iphone iOS上变量值的本地化

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

我的资源文件夹中大约有72个html文件,我需要对它们进行本地化。现在我已经把它们译成了法语。文件选择取决于用户输入,因此文件名由变量创建。现在的问题是如何定位变量的值

例如,我在资源文件夹中有以下3个文件

  • aaa0.html
  • bbb28.html
  • ccc33.html
  • 我在资源文件夹中也有这些法语文件

  • aaa0-French.html
  • bbb28-French.html
  • ccc33-French.html
  • 这是我的代码,在没有本地化的情况下运行良好



    如果用户输入导致选择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
        ...