Java 如何在i18n应用程序中使用@StringDef
Java 如何在i18n应用程序中使用@StringDef,java,android,internationalization,android-support-library,Java,Android,Internationalization,Android Support Library,@StringDef非常适合替换Enum @StringDef(Standard, Mini) public @interface Type; 但是,如果我的应用程序需要支持英语、法语和汉语怎么办 因此,标准可能是“标准”、“规范”和标准" 在三个不同的国家。在这种情况下,标准和迷你可能需要上下文来获得真正的价值 我们如何在i18n应用程序中仍然使用@StringDef。没有现成的解决方案 推荐的方法是将本地化字符串资源存储在不同的目录中(res/values XX/strings.xml,其
@StringDef
非常适合替换Enum
@StringDef(Standard, Mini)
public @interface Type;
但是,如果我的应用程序需要支持英语、法语和汉语怎么办
因此,标准可能是“标准”、“规范”和标准" 在三个不同的国家。在这种情况下,标准和迷你可能需要上下文来获得真正的价值
我们如何在i18n应用程序中仍然使用
@StringDef
。没有现成的解决方案
推荐的方法是将本地化字符串资源存储在不同的目录中(res/values XX/strings.xml
,其中XX
是en
,fr
等)
在这种方法中,您需要使用字符串id来获取本地化字符串。您可以尝试以下操作:
@IntDef({R.string.standard, R.string.mini})
@StringDef
的字符串与本地化字符串资源相匹配关于解决方案2,我不太了解。请您详细解释一下好吗?第一个解决方案很好!#2-我建议您可以编写一些util
StringHelper
来将@StringDef
项与R.string.xxx
资源相匹配,使用开关
或类似的方法。这不是首选项,但可能是选项:)