Si vous double-cliquez sur du texte anglais dans Chrome, le mot délimité par des espaces sur lequel vous avez cliqué est mis en surbrillance. Ce n'est pas surprenant. Cependant, l'autre jour, je cliquais en lisant du texte en japonais et j'ai remarqué que certains mots étaient mis en évidence aux limites des mots, même si le japonais n'a pas d'espaces. Voici un exemple de texte:
ど こ で 生 れ た か と ん と 見 当 が つ か ぬ。 何 で も 薄 暗 い じ め じ め し た 所 で ニ ャ ー ニ ャ ー 泣 い て い た 事 だ け は い し て
Par exemple, si vous cliquez sur 薄 暗 い, Chrome le mettra correctement en surbrillance comme un seul mot, même s'il ne s'agit pas d'une seule classe de caractères (il s'agit d'un mélange de kanji et d'hiragana). Tous les faits saillants ne sont pas corrects, mais ils ne semblent pas aléatoires.
Comment Chrome décide-t-il des éléments à mettre en évidence ici? J'ai essayé de rechercher le mot japonais dans la source Chrome, mais je n'ai trouvé que des tests pour un module expérimental qui ne semble pas actif dans ma version de Chrome.
la source
Réponses:
Il s'avère donc que la v8 possède un segmenteur de mots multilingue non standard et gère le japonais.
J'ai également fait un jsfiddle qui le montre.
La qualité n'est pas incroyable, mais je suis surpris que cela soit pris en charge.
la source
Sur la base des liens publiés par JonathonW , la réponse se résume essentiellement à: "Il y a une grande liste de mots japonais et des vérifications Chrome pour voir si vous double-cliquez sur un mot."
Plus précisément, la v8 utilise ICU pour effectuer un tas de choses liées au traitement de texte Unicode, y compris la décomposition du texte en mots . Le code de détection des limites de l'ICU comprend un "BreakIterator basé sur un dictionnaire" pour les langues qui n'ont pas d'espace, y compris le japonais, le chinois, le thaï, etc.
Et pour votre exemple spécifique de "薄 暗 い", vous pouvez trouver ce mot dans le dictionnaire combiné chinois-japonais expédié par ICU (ligne 255431). Il y a actuellement 315 671 mots chinois / japonais au total dans la liste. Vraisemblablement, si vous trouvez un mot que Chrome ne divise pas correctement, vous pouvez envoyer à ICU un patch pour ajouter ce mot.
la source