RTL语言:逗号分隔的列表
RTL languages: comma-separated lists
我在应用程序中使用i18n的ICU消息格式。
一些字符串包含动态长度的逗号分隔列表。例如,字符串
"有三种宠物:一条狗,一条鱼,一只猫。"
可以通过以下消息生成:
"There are {count} pets: {list}"
其中count是列表的长度,list是单个字符串本身。(顺便说一句,如果这是一个真正的字符串,我将配置"宠物"每"计数",但让我们保持简单)。
在伪代码中,list变量可以这样生成: pets.join(', ');
我不喜欢最后一点。这似乎只对LTR语言有意义,而且可能只是LTR语言的一个子集。
我有两个问题:
- 逗号分隔的列表在其他语言中应该如何格式化,比如RTL语言?
- ICU消息格式是否以任何方式支持,或者它是否需要除ICU之外的系统来生成列表?
无论如何,这是一个JavaScript web应用程序,尽管这些问题的答案可能与语言无关。
列表格式是区域设置敏感的。并非所有语言都使用"ASCII逗号"或空格。ICU有一个ListFormatter:http://icu-project.org/apiref/icu4j/com/ibm/icu/text/ListFormatter.html
For JavaScript Closure有一个等价的https://github.com/google/closure-library/blob/master/closure/goog/labs/i18n/listformat.js
2019年7月更新
ECMAScript(终于)支持列表格式了:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ListFormat
它(仍然)没有得到很好的支持,但请给它一些时间
- 如何将逗号分隔的列表转换为<ul>列表
- 检查变量并将它们添加到逗号分隔的列表中
- 用于在列表中进行多重搜索的正则表达式,用逗号分隔
- jQuery查找元素,然后组成逗号分隔的列表
- 正则表达式用于逗号分隔浮点数的列表
- javascript 正则表达式验证列表以逗号分隔
- 如何从 JSON 响应中获取逗号分隔的列表
- jQuery 手机间隙:- 列表视图中的自动分隔器是否正常工作
- 使用复选框过滤 angularjs 中的数据,并在逗号分隔的列表中显示在文本框内
- 将空格分隔的类列表转换为 Jquery 选择器的有效方法
- 将逗号分隔列表转换为无序列表
- 如何制作正则表达式以匹配逗号分隔的列表,列表中最多包含 5 个项目
- 帆.js如何修改路由以插入逗号分隔的 ID 列表
- Regex替换逗号分隔列表中的单词
- 从我的查询中为JavaScript创建逗号分隔列表
- 如何阻止emacs缩进javascript逗号分隔列表的第二行(例如array或json) ?
- PHP/JS:删除分隔列表中的最后一个逗号
- 如何";逃逸;POST请求中逗号分隔列表中的逗号
- 正则表达式逗号分隔列表包含九位电话号码
- 将 JavaScript 数组转换为逗号分隔列表的简单方法