代码之家  ›  专栏  ›  技术社区  ›  lbz

单数词或复数词的最佳实践?

  •  12
  • lbz  · 技术社区  · 6 年前

    这是关于一般的最佳实践,而不是针对单一语言、数据库或任何东西的特定实践

    在不同的语言中,事情可能会更加复杂!在法语中,当你有零乘积时,你会使用单数形式,而不是复数形式!(零产品)其他语言(汉语、日语)甚至可能没有这些语法差异,或者有两个以上不同的单词来表示产品的数量。(例如,复数和更大的复数)

    但是为了简单起见,让我们把重点放在既有单数词又有复数词的语言上。

    当建立一个新项目时,它也必须生成报告,你如何处理单数和复数单词?您是否在数据库中添加了两个单数和复数形式的名称字段?您是否在代码中添加了其他规则来将单词从单数转换为复数?你会用其他的技巧吗?

    7 回复  |  直到 13 年前
        1
  •  10
  •   Michael Krelin - hacker    15 年前

    我建议你看看 gettext 大体上 ngettext this part of the documentation . 它或多或少对所有语言都有实现,即使您选择的语言缺少这种支持,也没有什么能阻止您借用这些想法。

        2
  •  2
  •   ire_and_curses    15 年前

    在Perl中,这是由 Lingua::EN::Inflect

    看见 the paper

        4
  •  1
  •   Noon Silk    15 年前

    阅读并实现 this ; 完成后(几年内)再报告。就个人而言,我对(s)方法感到满意;)(当然,这并不适用于所有语言)。

        5
  •  1
  •   Steven R. Loomis    13 年前

    CLDR 现在有语言和语言的复数规则 ICU 有一个实现。

        6
  •  0
  •   MusiGenesis    15 年前
    Number of products:  1 
    Number of products:  4
    Number of products:  FILE_NOT_FOUND
    

    试图使用自然语言来报告定量数据实在是太麻烦了。

        7
  •  -4
  •   BigD    13 年前

    if( count > 1 ){
       suffix = 's';
    }