养成良好的开发习惯
不要硬编码任何字符串,将所有字符串放入strings.xml中
字符串中的占位符
对于不必翻译的文本,如代码、某个值的占位符、特殊符号或名称等,使用<xliff:g>
占位符标记。使用占位符时,务必添加id属性来说明占位符用途;如果应用会替换该占位符的值,务必提供示例属性来说明预期用途。
三个例子:“30.5°”、“40分钟”、“(说明)”
- 不要使用
tv.setText(temp + "°");
、tv.setText(min + "分钟");
、tv.setText("(" + 说明 + ")");
这样的硬编码。 - 在strings.xml中定义字符串:
<!--对特殊符号使用Unicode编码-->
<string name="format_temperature">
<xliff:g id="temperature">%1.0f</xliff:g>\u00B0
</string>
<string name="format_time">
<xliff:g id="time">%d</xliff:g>分钟
</string>
<string name="format_description">
\u0028<xliff:g id="description">%s</xliff:g>\u0029
</string>
- 在代码中使用:
float temp = 30.5; int min = 40; String des = "说明"(不推荐这么写,仅示例);
tv.setText(context.getString(R.string.format_temperature, temp)); //30.5°
tv.setText(context.getString(R.string.format_time, min));//40分钟
tv.setText(context.getString(R.string.format_description, des));//(说明)