-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[MFM]タイムスタンプ埋め込み構文 Syntax for timestamps #12294
Comments
これに関してはすでにMkTimeコンポーネントがあるのでなんとかなる |
misskey/packages/frontend/src/components/global/MkTime.vue Lines 44 to 54 in 28e394e
これを見る限り、未来の日付に対しては「未来」とだけ表示するようです。 イベントの開始時間告知は、投稿時点では未来の日時であることが多いので、未来に対する相対表記をどうするべきかは別途考える必要があると思われます。 |
未来の時刻の翻訳入れてpropsで出し分けすればなんとかなる |
世界中どこででも、10分後は10分後なので、相対表記は不要ではないかと思います。
これを例えばUTC, en-GBの人が表示すると、 |
そのような場面においては絶対表記との併用を前提としており、この場合単独で使用されることを想定していません。
MkTimeのコードをそのまま利用する場合、「
自然言語に寄り添うようなこの構文がどのような書式を受け入れるべきか議論する必要があります。 |
ローカライズを考えるとややこしいのでUNIXタイムスタンプだけでいいと思います |
|
マストドンなどと連合したときに読解不能になるのは申し訳ないのでISO 8601がよいと考えます。 |
「 |
エンジニア目線だとUNIXタイムスタンプがいいと思う人もいるかもしれませんがそもそもUNIXタイムスタンプは人間が読み書きする目的の表記方法ではないのでMFMでUNIXタイムスタンプを使うようにするのは一般向けには不親切な設計だと思います |
確かに外部ツールなしで現実的に書き込めるのはISO 8601の大きな利点ですね。 |
English(Regarding about how UNIX timestamp can be hard to read/write for the general public) Half of the general public doesn't even know what MFM is. They just use Misskey to socialize. I am a firm beliver that this timestamp function is not intended for the general public who make notes like "Heyy, let's meetup at 7:00 tomorrow😉" but instead, are for the Event Staff, Streamers, Notification bots, and creators alike who wants to display a common time worldwide. If there are anything vital to consider about this, it'll be what yuriha-chan said about parsing the timestamp to outside SNS': when MFM fails for non-misskey instances (e.g. Mastodon), the note would likely display the raw UNIX-timestamp, which would look like 日本語
一般人はMFMの大抵の構文さへ知らないし、そもそもこのtimestamp機能は「明日7時に集合なー」みたいなノートをする一般人向けのものではなく、全世界で共通の時刻を表示することを求めるとめる主催者さんや配信者さん、通知botといった、明らかに一般では無い方へ向けた機能だと我は思ひます。また、 ただ、yuriha-chanのいう通り、非Misskeyインスタンスでの表示がUNIX通秒になるのはあまり好ましくないのも事実です。これだと「世界中の人に共通した時刻を表示させる」といった大目的が失われてしまいます。むづかしいです... |
私なりに少し整理してみます。 UNIX通秒利点
欠点
ISO 8601 (yyyy'-'MM'-'dd'T'HH':'mm':'ssK)利点
欠点
|
そこまでやるなら #10628 の実装を進める形で解決するのがいいのでは |
(すでにあるんだ...) 私はそれでの解決が一番いいんじゃないかなと思いました。。。 そのほうがユーザーにとっては直感的じゃないかなと |
そのままUNIXTIMEが表示される |
Misskeyならunixtimeが解釈されて日時に変換されて表示される |
Summary
投稿において、イベントの開始・終了等の日付・時刻を記す際に「明日 23:34」「12月6日 午後11時34分」のように日付や年を明示的に指定しなかったり、日時がほぼ一意に指定されていても「2445年12月6日 23時34分45秒」のようにタイムゾーンを指定せずに投稿するケースがほとんどです。
日付やタイムゾーンが明確でない場合でも、同じ地域に住み同じ言語を話す人なら理解は容易です。しかし、海外在住者や異なる言語を第一言語とする人等は、投稿者の所在地或いは言語から推測する必要がある等の手間がかかり、投稿の言語を自力解読出来ない場合は機械翻訳に頼る必要があります。その結果、正確な日時を特定できないこともありえます。
Discordではそうした問題を解決するべく、
<t:15018964485>
→ のようにタイムスタンプを埋め込む機能が実装されているようです。https://discord.com/developers/docs/reference#message-formatting
年月日やタイムゾーンまでの詳細な指定をしない人を責めるつもりは一切ありません。
投稿時にタイムゾーンまで気にする人はほぼいないと言っても過言ではなく、私自身も例外ではありません。
そもそもタイムゾーンまで指定したところで、その投稿の言語を自力解読出来ない人に対する言葉の壁は依然として残されます。(極端な例: 「日本標準時 令和四百弐拾七年壱拾弐月六日 午後壱拾壱時参拾四分四拾五秒」等)
言葉の壁がなかったとしても、タイムゾーンを変換する必要があるかもしれません。
しかし、先述したDiscordの機能は閲覧者の言語及びタイムゾーンに合わせて表示するため、言葉の壁も手動変換の手間も取り払ってくれます。
そのため、同様の機能がMisskeyに追加されればいいなと思いました。
提案構文
$[timestamp.style=STYLE TIMESTAMP]
$[ts.s=STYLE TIMESTAMP]
TIMESTAMP: UNIX時刻 or ISO8601?
STYLE: スタイル(後述)(optional)
STYLEの提案書式
shortTime
,t
23:34
longTime
,T
23:34:45
shortDate
,d
2445/12/06
longDate
,D
2445年12月6日水曜日
shortGeneral
,g
2445/12/06 23:34
longGeneral
,G
2445/12/06 23:34:45
shortFull
,f
2445年12月6日 23:34
longFull
,F
2445年12月6日 23:34:45
sortable
,s
2445-12-06T23:34:45
yyyy'-'MM'-'dd'T'HH':'mm':'ss
iso8601
,i
2445-12-06T23:34:45+09:00
yyyy'-'MM'-'dd'T'HH':'mm':'ssK
shortRelative
,r
422年後
longRelative
,R
154160日0時間40分54秒後
利点
fn
系MFM構文のパース処理をある程度流用できる欠点
The text was updated successfully, but these errors were encountered: