我之前问过similar question的Swift,我现在面临Android / Java中的同样问题。
Java中是否有一种方法可以将引号添加到字符串中?引号应根据用户的语言设置正确本地化(请参阅https://en.wikipedia.org/wiki/Quotation_mark)。文本在数据库中不带引号存储。我想在添加引号后在TextView
中显示字符串。
例如:
String quote = "To be or not to be..."
// one or more lines of code that add localized quotation marks
// to the beginning and the end of the string
mMyTextView.setText(stringWithQuotes);
对于法国用户:«成为或不成为......»
对于德国用户:“成为或不成为......”
对于英语(美国)用户:“成为或不成为...... ”
答案 0 :(得分:1)
我没试过,但您可以使用Locale.getDefault。您可以为每个具有不同引用的国家/地区创建枚举,并在枚举中提供该枚举。然后,只需要找到与枚举匹配的区域设置并替换指定区域设置的引号字符。
答案 1 :(得分:1)
我建议使用this Stack Overflow answer在HTML中创建文本,该文本具有处理区域设置中引号的必要机制。
然后,您可以使用this Stack Overflow answer转换HTML以便在TextView中显示。
答案 2 :(得分:0)
我最终使用了以下解决方案:
为了使不同类型的引号与我的app支持的语言环境保持同步,我为开始和结束标记创建了可翻译的字符串资源,例如:
<string name="left_quote">\u00ab</string>
<string name="right_quote">\u00bb</string>
用于法语引号,然后在代码中将它们添加到我的字符串中。非常简单易维护。