帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:argument  Nslocalizedstring  
NSLocalizedString with a Count Argument

  • 源代码名称:TTTLocalizedPluralString
  • 源代码网址:http://www.github.com/mattt/TTTLocalizedPluralString
  • TTTLocalizedPluralString源代码文档
  • TTTLocalizedPluralString源代码下载
  • Git URL:
    git://www.github.com/mattt/TTTLocalizedPluralString.git
  • Git Clone代码到本地:
    git clone http://www.github.com/mattt/TTTLocalizedPluralString
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/mattt/TTTLocalizedPluralString
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • TTTLocalizedPluralString

    带有计数参数的 NSLocalizedString

    基于 Mac OS X 7和 10.9 Mavericks,基础可以以根据多维和语法规则指定本地化字符串。 你可以在Foundation的本地化属性列表文件部分中找到有关它的更多信息。

    NSLocalizedString 及其相关 MACROS 使Mac和iOS应用程序的本地化相对简单且简单。 但是,当必须处理基于动态计数值的on更改的字符串时,它会降低。 在这种情况下,你可能已经看到了这样的代码:

    if (count == 1) {
     return NSLocalizedString(@"1 Person", nil);
    } else {
     return [NSStringstringWithFormat:NSLocalizedString(@"%d People", nil), count];
    }

    虽然对于英语来说这工作正常,但是在定位其他语言环境时你会遇到问题。 请考虑 Unicode语言复数规则中描述的一些示例:

    • 许多亚洲语言,如日语。韩语。泰语和简体中文,没有复数形式的名词
    • 阿拉伯语有几种形式,包括零,一,二,二,以及很少,很多,和其他的,用相当复杂的基 10 divmod操作确定奇偶性。

    幸运的是 TTTLocalizedPluralString 为你计算了所有这些。 你可以像 NSLocalizedString 一样使用它,只有在这种情况下,你还具有计数的参数。 下面是前面的示例,这次使用 TTTLocalizedPluralString

    return TTTLocalizedPluralString(count, @"Person", nil);

    这里宏指向确定当前区域性的复数规则的函数,然后为相应的值执行 NSBundle 本地化字符串查找。 在这种情况下,en.lproj/Localizable.strings 将有两个键用于: %d Person (plural rule: one)%d Person (plural rule: other) 其他本地化只需要该语言使用的密钥( 比如 。 1为日语,6为阿拉伯语) 。

    以下是复数规则的完整列表:

    • zero
    • one
    • two
    • few
    • many
    • other

    支持区域设置

    • 阿拉伯文( ar )
    • Catalan语( ca )
    • 中文( 简化) ( zh-Hans )
    • 中文( 繁体中文) ( zh-Hant )
    • 克罗地亚( cr )
    • 捷克语( cs )
    • 丹麦语( da )
    • 荷兰语( nl )
    • 英文( en )
    • 德语( de )
    • 完成( fi )
    • 希腊文( el )
    • 法语( fr )
    • 希伯来语( he )
    • 匈牙利( hu )
    • 印度尼西亚( id )
    • 意大利语( it )
    • 日语( ja )
    • 朝鲜语( ko )
    • Latvian ( lv )
    • 马来语( ms )
    • 挪威语 Nynorsk ( nn )
    • 波兰语( pl )
    • 葡萄牙语( pt )
    • 罗马尼亚( ro )
    • 俄语( ru )
    • 西班牙语( es )
    • Slovak ( sk )
    • 瑞典语( sv )
    • 泰语( th )
    • 土耳其语( tr )
    • 乌克兰语( uk )
    • 越南语( vi )

    联系人

    Mattt汤普森

    许可证

    TTTLocalizedPluralString在MIT许可证下可用。 有关详细信息,请参阅许可证文件。



    文章标签:argument  Nslocalizedstring  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语