「所要時間」ブロックの時間の換算比
-
気になったので調べてみました。
該当のブロックは post-time-to-read ブロックで実現されており、
換算比189 は attributes の averageReadingSpeed で設定されている値ですね。
https://github.com/WordPress/gutenberg/blob/106a1d24b66f72dfe841f460b25c0c9182a9e3a5/packages/block-library/src/post-time-to-read/block.json#L24この averageReadingSpeed によって文字数からの時間を算出していました。
たしかに言語設定で変えるようにはなっていませんが、私も同じく日本語であればどのくらいが適切なのかは正直わかりません。。言語毎に読む時間のお決まりがどこかにあればPRにして提案できるかもですね 🤔
以前はPHPの定数で定義されていましたが、blockのattributesで設定できるようにPRしてくれた方がいるようです(ありがたい)
https://github.com/WordPress/gutenberg/pull/71632そのため、以下のフィルターを設定することで設定値が変更できました。
ご参考まで。add_filter( 'register_block_type_args', function( $args, $block_type ) {
if ( 'core/post-time-to-read' !== $block_type ) {
return $args;
}
if ( isset( $args['attributes']['averageReadingSpeed'] ) ) {
$args['attributes']['averageReadingSpeed']['default'] = 189 * 2; # 読む速さをデフォルトの2倍に
}
return $args;
}, 10, 2 );「平均読書速度」が189である理由は、このドキュメントが参考にされています。
https://irisreading.com/average-reading-speed-in-various-languages/このリンクは、以前のTime to Readブロックのソースコード内にもありました。
https://github.com/WordPress/gutenberg/blob/332739046eda968dd3196f86c5f8a3246db67d2e/packages/block-library/src/post-time-to-read/edit.js#L21-L23それぞれのロケールに最適な「平均読書速度」は何であるかは一概には決められないため、必要に応じて、前述のフィルターを使ってデフォルト値を変えていただくのが良いかと思います。
なるほど、「平均」というのは、各国で想定されている読書速度(平均値)を踏まえて合算した後の平均、というものなのですね。とても参考になります。
各国の速度の数値が定義されているのでPRとして提出できそうですが、
例えばWordPressの言語設定を日本語に設定して、英語の文章を公開しても日本語での読書速度で算出される齟齬が生まれたり、
そもそも読書速度は年代や内容と読む環境によっても変わるものなので、カッチリ定義出来ないものという認識です。ざっくり平均を定義して、必要であればフィルターを使った数値変更ができる現状は理にかなっている実装の気はしています。
ytsuyuzakiさん、Aki Hamanoさん、ありがとうございます
フィルターフックで変えられるのであれば、フィルターで数値を変更するのが現実的ですかね。
抜粋の長さは言語毎に変えられる設定になっているので、所要時間についても、抜粋と同じような実装は考えられるかと思ったのですが。
抜粋の長さは言語毎に変えられる設定になっているので、所要時間についても、抜粋と同じような実装は考えられるかと思ったのですが。
技術的には可能です。このようなパラメータ値そのものを翻訳可能にして、ロケールに応じて適切な値を設定できるようにしているケースはいくつかあります。
所要時間は目安だと思ってますが、
言語を切り替えることで解決できるケースって、具体的にはどんなものがあるのでしょうか?
体感的な違いや、実際に「これは言語を変えたら楽になった」という例があれば聞いてみたいです。抜粋では、英語で55のところを、日本語で110にしていますね。
所要時間においても、Aki Hamanoさんが提示している https://irisreading.com/average-reading-speed-in-various-languages/ で言語による差があることが書かれています。ブログ読者は記載されている所要時間から、「自分は読むスピードが速いから、この時間よりは短いだろう」みたいな調整を読者自身でやることはあるでしょう。しかし、言語による差まで、ブログ読者側で考慮・調整するのは酷に思います。
また、ブログに記載されている時間が「言語の差は反映しない時間」というのは、おそらくブログ読者が想定していないであろうと思います。所要時間を読者が「日本語での時間(ブログ記事が書かれている言語での時間)」だと考えていれば、そもそも言語による差を考慮して時間調整しないと思われます。
もし、英語で書かれている記事を読者側で日本語に翻訳して読むのであれば、読者側で言語の差を考慮して所要時間を調整できるでしょうけど。ブログに記載されている時間が「日本語での時間」になっていれば、読者側は、所要時間を読者側の事情(自分が読むのが速いのか遅いのか)で調整すればOKとなります。
具体的な実装として、翻訳ファイルにデータを持つか、フィルターフックで変えるのか、どちらが良いかは私は判断材料を持っていないです。
フィルターフックで変えられるのであれば、ブログ運営側で対処できるので、現状で良いかと思います。とても読者目線で考えられており、素晴らしい視点だと思います。
言語による「読むスピード」の違いに着目されていますが、これまで同様の課題を意識している人が少なかったからこそ、その発想自体に大きな価値があると感じました。
実装方法については、まず「何を解決したいのか」「これは言語を変えたら楽になったから組み込みたい」を明確に定義することが重要になると思います。そのうえで、幅広く意見を募ったり問題提起を行ったりすることで、実装に向けた道筋が見えてくるのではないでしょうか。
本トピック内で議題を整理したり、Gutenberg のリポジトリで Issue を立てる、あるいは具体的に動く PR を送ることで、よりスムーズに話が進むと思います。
すでに抜粋における言語間の挙動変更が実装されているとのことですので、その処理を参考にしてみるのも一つの方法かもしれません。
このトピックに返信するにはログインが必要です。