我们在iO的VoiceOver上发现了数字" - $ 10"被读为"十美元"为了让VoiceOver选择它,我们需要将其格式化为$\u221210
或$−10
。
我们对来自Javascript i18n库的标准化语言环境格式感到兴奋,但看起来默认格式是上面的第一个示例,因此无法在VoiceOver中访问:
var number = -5; number.toLocaleString('en-CA', {style: 'currency', currency: 'CAD'});
// "-$5.00"
// needs to be "$−5.00"
var number = -5; number.toLocaleString('fr-CA', {style: 'currency', currency: 'CAD'});
// "-5,00 $"
// needs to be "−5,00 $"
这两个字符串都在VO中被读取为" 5美元"除非在事实之后用unicode减去符号替换破折号。事实上,我正在写一个函数来做到这一点,但它感觉很乱,特别是尝试和解释每个场景。此外,在英语中,我们需要转置$
和−
。更不用说当我们需要支持其他语言环境时会发生什么。有没有办法为localeString提供该选项,以便可以直接访问它?
我想知道是否有其他方法可以在大型代码库中更易于管理以确保数据可访问