国际化文件中,我们有时候需要在value的前后加上空格,怎么办呢?
1、文件内容中直接写空格,读取后会被trim掉,这种办法是不行的。
2、用“\ ”这种方式,前面的空格可以生效,但后面的空格会被转义,例如
operation.open = \ open \
假设页面使用是 i18n('operation.open') + 'abc'
那么展示出来就变成了 open \ 'abc',显然不是我想要的。
3、使用 如果读取的内容直接显示在html是可以的,但读取国际化文件时往往是通过java处理的,这么一来读取出来显示到页面上就直接显示为" "了,也不行。
4、使用unicode编码,空格对应的是\u0020,这种方式是可行的,无论是读取后的内容是在java中使用还是在js中使用都可以正常把空格展示出来。
5、当然,如果上述方案都不行,还有一种硬编码的方案,在拼接字符串中加入一个空格,例如:
i18n('operation.msg') + ' ' + i18n('operation.open') + ' ' + i18n('operation.result');
这种方式虽然可以解决问题,但不优雅。