- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
与 friend 一起工作,我们正在深入研究排序,我们想使用 Intl.Collator 的最佳实践compare
以根据区域设置进行排序。
对于所有语言环境,这都按预期工作,其中语言的字符或文本优先于其他语言,但日语似乎不同。
function letterSort(lang, letters) {
letters.sort(new Intl.Collator(lang).compare);
return letters;
}
console.log('EN sort:');
console.log(letterSort('en', ['a', '手に', '大人', 'b', '学校', '#', '金魚', 'きんぎょ', 'キンギョ']));
// =>["#", "a", "b", "きんぎょ", "キンギョ", "大人", "学校", "手に", "金魚"]
console.log('ZH sort:');
console.log(letterSort('zh', ['a', '手に', '大人', 'b', '学校', '#', '金魚', 'きんぎょ', 'キンギョ']));
// => ["#", "大人", "金魚", "手に", "学校", "a", "b", "きんぎょ", "キンギョ"]
console.log('JP sort:');
console.log(letterSort('ja', ['a', '手に', '大人', 'b', '学校', '#', '金魚', 'きんぎょ', 'キンギョ']));
// => ["#", "a", "b", "きんぎょ", "キンギョ", "大人", "学校", "手に", "金魚"]
在上面的代码片段中,您会注意到英文和中文分别会优先显示各自的文本。然而,日本人没有。
经过一些挖掘,我发现有一个 ICU Project Demo似乎类似的命令已经完成并由 ICU 强制执行。看起来也像ordering in Japanese is a tough problem .
我的同事将此作为外卖发布,我觉得这篇文章有点触动它
ok I think I understand the problem better, basically Japanese has four valid character sets one of them being roman characters so sorting in Japanese will sort each character set within itself and not amongst each other. And roman characters come first of the four sets (cause unicode).
^ 这个解释对吗?或者有没有更好更合适的方式来订购日语,首先优先考虑日语字符(虽然听起来这是不好的做法,但我很惊讶日本人可以在各种结尾使用自己的语言)。这篇文章也详细讨论了这个问题,但我不确定是否有新发现的订购日语的方法
最佳答案
由于日语有四种有效的字符集,因此排序仅发生在每个字符集内,然后每个字符集以预定方式相对于另一个字符集排序:
注意:Romaji,就是罗马字符集。
你可以自己试试:
function letterSort(lang, letters) {
letters.sort(new Intl.Collator(lang).compare);
return letters;
}
const kanji = ['南', '北', '打'];
const hiragana = ['ぬ', 'ち', 'よ'];
const katakana = ['シ', 'イ', 'ホ'];
const romaji = ['a', 'c', 'b'];
console.log(letterSort('ja', [...kanji, ...hiragana, ...katakana, ...romaji]))
我们确实看到结果符合我们的预期:字符集首先相对于彼此对自身进行排序,而更精细的排序仅发生在每个字符集中。
关于javascript - Intl.Collator sorting Japanese - 为什么 collator 不优先考虑日文字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54543528/
我添加了模块 Ember 国际在我的应用程序中,因为 Ember -i18n 已弃用。 所以 yarn 运行良好,更新 package.json 和 yarn.lock(我摆脱了 package.lo
我检查了这个来源 https://formatjs.io/docs/react-intl#runtime-requirements , 并尝试添加此代码 import { NumberFormat }
我正在尝试使用 react-intl 进行语言翻译。当我使用这个时,它运行完美。但是当我将以下代码与 intl.formatMessage() 一起使用时,它不起作用并抛出一些错误。我不知道这有什么问
我正在使用 React-intl 来实现 UI Util 库的国际化。该库有一个名为 i18n 的文件夹,其中我放置了不同区域设置的 json 文件。如果该库的用户想要添加对其他区域设置的支持,他/她
我正在使用 React-intl 来实现 UI Util 库的国际化。该库有一个名为 i18n 的文件夹,其中我放置了不同区域设置的 json 文件。如果该库的用户想要添加对其他区域设置的支持,他/她
嗨,我最近尝试使用日期选择器进行 flutter ,但我没有找到任何文档或教程,所以我打开 flutter 画廊项目并尝试复制代码。按照我导入“package:intl/intl.dart”库的代码。
我在一个大型 React 项目中使用 React Intl 的 FormattedNumber,该项目具有多种不同语言的功能。 这是我制作的货币组件,以便我可以轻松地将格式化的货币插入到我的 View
目前正在使用中 babel-plugin-react-intl , 使用“id”、“description”和“defaultMessage”为每个组件创建单独的 json。我需要的是只创建一个 js
我有一个 monorepo,它公开了一个 TypeScript 模块,该模块由 React TypeScript 项目使用和使用。 当模块将任意 React 元素插入到虚拟 DOM 中时 - 一切都按
我正在尝试在我全新安装的 OS X 10.6.6 上安装 PHP 扩展 intl,使用它附带的 PHP 版本 (v5.3.3)。 我知道扩展需要 ICU,所以我用自制软件安装了它。我安装的 ICU 版
因为每个版本flutter_localizations来自 SDK 取决于 intl 0.17.0而 fstore 依赖于 intl ^0.16.1 , 禁止来自 SDK 的 flutter_loca
我想使用package:intl制作多国语言html页面。 我看过example / basic_example.dart,但找不到intl_helpers的message_lookup_by_lib
我有数据列表,我想从最早到最晚过滤它们 包含数据的列表如下所示: [{id: 73, startTime: 2022-12-13T15:30:57.244Z}, {id: 74, startTime:
我有数据列表,我想从最早到最晚过滤它们 包含数据的列表如下所示: [{id: 73, startTime: 2022-12-13T15:30:57.244Z}, {id: 74, startTime:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-2
我正在使用 PHP Intl 库来格式化日期、数字等。现在我必须在人类可读的字符串中显示时间跨度,例如: 1day, 1hour, 10 minutes, 14s 或者以紧凑的方式: 1d 1s 10
我希望 Intl.NumberFormat() 能够根据通用规则自动将单位从较小的单位转换为较大的单位。 IE。给定的数字应根据数字的大小在输出中转换为厘米、米和公里。 代码示例: const byt
我想知道是否有办法让我使用 Javascript 的 Intl.NumberFormat()用它创造一个平方米的值(value)。 比如说,我想用它来创建一个具有该功能的值,如 30 m²。页面上或任
我从 WordPress Site Health 看到这条消息。如何安装缺少的模块? The WordPress Hosting Team maintains a list of those modu
我在 Centos 7 上使用 Virtualmin 作为控制面板,我需要安装 php intl 扩展才能使用 prestashop。 我用了这个命令 yum --enablerepo=remi in
我是一名优秀的程序员,十分优秀!