養成良好的開發習慣
不要硬編碼任何字符串,將所有字符串放入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));//(說明)