当前位置: 首页 > 面试题库 >

如何使用真正的多语言字符串制作应用程序?

孔和风
2023-03-14
问题内容

为不同语言制作字符串的最佳方法是什么?我有这个问题,我试图显示诸如“ month”,“ months”,“ year”,“
years”之类的字符串。目前,我正在使用三种我知道的语言:西班牙语,英语和波兰语。对于英语和西班牙语,这很简单。但举例来说,波兰语中的“年”可以变成“
lata”(在数字2-4之后)或“
lat”(在5以后的数字之后)。我正在考虑为此添加一个额外的字符串,并在其他语言中将其设为空。但是,这使我想到了我不知道的其他语言,这可能会有更多差异。如果我将来考虑添加更多语言,哪种情况下最好的方法是?


问题答案:

听起来像您想要一个ChoiceFormat,或者至少使用一个到一个MessageFormat

public static void main(String... args) {
    String[] formats = { 
        // NOTE - In a real app, you'd fetch the format strings from a language,
        // file, not hard-code them in your program. Obviously.
        "{0,number} {0,choice,0#years|1#year|1<years}", // english
        "{0,number} {0,choice,0#años|1#año|1<años}", // spanish
        "{0,number} {0,choice,1#[fewer than 2]|2#lata|4<lat}", // polish
        "{0,number} år", // swedish - singular and plural forms look the same!
    };
    int[] years = {0, 1, 2, 3, 4, 5, 6};
    for (int year : years) {
        for (String format : formats) {
            System.out.println(MessageFormat.format(format, year));
        }
        System.out.println();
    }
}

在您的程序中,您当然会format从字符串文件中获取字符串。



 类似资料:
  • 问题内容: 我用这个: 但是Python 3出现了错误(或者…也许我只是忘了包含一些东西): 谢谢。 问题答案: 在Python3中,文字字符串默认为unicode。 假设这是一个对象,只需使用 的Python2等效于Python3,因此您还可以编写: 若你宁可。

  • 本文向大家介绍Objective-C语言使用C字符串,包括了Objective-C语言使用C字符串的使用技巧和注意事项,需要的朋友参考一下 示例 转换NSString为const char使用-[NSString UTF8String]: -[NSString cStringUsingEncoding:]如果您的字符串使用非UTF-8编码,则也可以使用。 对于反向路径,请使用-[NSString

  • 问题内容: Go语言是否像Java一样对字符串使用写时复制?也就是说,如果我按值将字符串传递给方法并且从未更改,则它将分配内存并复制字符串(这将节省时间),或者仅引用单个副本。 问题答案: 它不是写时复制的,因为字符串是不可变的。但是共享一个字符串也不会复制基础内存区域。在Go中,字符串表示为(长度,数据)对。如果传递字符串,Go将复制长度和指针,但不复制所指向的数据。 有关更多信息,请参阅gol

  • 如果是使用MUI的安装程序,只需要重复使用!insertmacro MUI_LANGUAGE定义多种语言就可以了。例如: !insertmacro MUI_LANGUAGE "SimpChinese" !insertmacro MUI_LANGUAGE "English" 这样做了之后,安装程序会根据运行时操作系统的语言来选择显示语言。注意,第一个语言是默认语言,也就是操作系统语言与这里定义的所有

  • 主要内容:适用于字符串构造的规则,字符串操作在R中的单引号或双引号中写入的任何值都将被视为字符串。在R内部将每个字符串存储在双引号内,即使您使用单引号创建它们。 适用于字符串构造的规则 字符串开头和结尾的引号应为双引号或双引号,他们不能混合。 双引号可以插入到以单引号开始和结尾的字符串中。 单引号可以插入到以双引号开始和结尾的字符串中。 双引号不能插入到以双引号开始和结尾的字符串中。 单引号无法插入到以单引号开始和结尾的字符串中。 有效字符

  • 主要内容:定义字符串,字符串拼接符“+”,字符串实现基于 UTF-8 编码,定义多行字符串一个字符串是一个不可改变的字节序列,字符串可以包含任意的数据,但是通常是用来包含可读的文本,字符串是 UTF-8 字符的一个序列(当字符为 ASCII 码表上的字符时则占用 1 个字节,其它字符根据需要占用 2-4 个字节)。 UTF-8 是一种被广泛使用的编码格式,是文本文件的标准编码,其中包括 XML 和 JSON 在内也都使用该编码。由于该编码对占用字节长度的不定性,在Go语言中字符串也可能