【发布时间】:2015-08-13 20:15:57
【问题描述】:
我收到一条错误消息:
[I18N] 硬编码字符串“Today - Sunny - 78/67”,应该使用@string 资源。
如何解决这个错误?
代码行是:android:text="Today - Sunny - 78/67"
【问题讨论】:
标签: android android-studio code-inspection
我收到一条错误消息:
[I18N] 硬编码字符串“Today - Sunny - 78/67”,应该使用@string 资源。
如何解决这个错误?
代码行是:android:text="Today - Sunny - 78/67"
【问题讨论】:
标签: android android-studio code-inspection
i18n 是国际化的缩写。 Android Studio 只是给您一个提示,即您设置文本的方式不允许您轻松翻译它。
相反,您应该将字符串放在 res/values 文件夹中的 strings.xml 文件中:
<resources>
<string name="my_string">Today - Sunny - 78/67</string>
</resources>
然后您可以像这样在 TextView 上引用该字符串:
android:text="@string/my_string"
这将允许您为西班牙语字符串创建另一个文件 res/values-es/strings.xml,您可以将翻译添加到:
<resources>
<string name="my_string">Hoy - Soleado - 78/67</string>
</resources>
如果用户的区域设置语言是西班牙语,那么该字符串将自动为您的 TextView 挑选。
【讨论】:
这意味着您不应在 XML 中显式编写文本。您应该使用 /Values/Strings.xml 来保存您的字符串值。
查看左侧的文件夹以获取值。该文件已经存在。你只需要添加你的字符串。
为了记录,这通常不会产生“我现在要崩溃了”类型的错误。这通常只是一个警告。
【讨论】:
您可以将鼠标放在问题线上并使用 android studio 热键 - alt+enter。之后你可以选择“提取字符串资源”
对不起,我的英语不好=)
【讨论】: