feat: translate system interface to English

This commit is contained in:
2026-09-28 18:42:16 +09:00
parent e870bdfcbb
commit 1cf32705a7
74 changed files with 1232 additions and 1065 deletions
+89 -63
View File
@@ -27,159 +27,185 @@ export type Conversation = {
export const conversations: Conversation[] = [
{
id: 'design-review',
name: '青木 遥',
role: 'プロダクトデザイナー',
subject: '来週のレビュー、日程を決める',
name: 'Haruka Aoki',
role: 'Product designer',
subject: 'Schedule next week’s design review',
channels: ['Slack', 'Gmail'],
replyChannel: 'Slack',
updatedAt: '10:42',
deadline: '9月29日 17:00',
deadline: 'Sep 29, 17:00',
summary:
'新しい画面のレビュー依頼。資料はメールで届いていて、Slackで日程の返事を待っている。30分あればよい。',
nextStep: '資料を確認して、30分の候補日時を返す。',
'A request to review the new screens. The materials arrived by email, and Haruka is waiting on Slack to arrange a 30-minute review.',
nextStep: 'Review the materials and suggest a time for a 30-minute call.',
messages: [
{
id: 'aoki-1',
channel: 'Gmail',
time: '9月27日 16:20',
time: 'Sep 27, 16:20',
direction: 'in',
text: 'レビュー用の画面案を共有します。特に初回の導線について意見を聞きたいです。確認のお時間は30分ほどを想定しています。',
text: 'Sharing the screens for review. I would especially appreciate your thoughts on the first-time experience. The review should take about 30 minutes.',
},
{
id: 'aoki-2',
channel: 'Slack',
time: '9月28日 10:42',
time: 'Sep 28, 10:42',
direction: 'in',
text: '昨日メールしたレビューの件、来週どこかでお時間いただけますか? 9月29日17時までに候補をいただけると助かります。午後だとうれしいです。',
text: 'Could we find a time next week for the review I emailed yesterday? Please send a few options by September 29 at 17:00. An afternoon would be ideal.',
},
],
facts: [
{ text: 'レビューは30分を想定している。', sourceId: 'aoki-1' },
{ text: '今回の日程は午後を希望している。', sourceId: 'aoki-2' },
{
text: 'The review should take 30 minutes.',
sourceId: 'aoki-1',
},
{
text: 'An afternoon is preferred for this review.',
sourceId: 'aoki-2',
},
],
drafts: [
{
label: '短く',
text: '資料ありがとうございます。確認します! 来週の午後で、30分ほどお話しできればと思います。',
label: 'Brief',
text: 'Thanks for the materials! I will take a look. Let’s find 30 minutes one afternoon next week.',
},
{
label: '丁寧に',
text: '資料をご共有いただきありがとうございます。初回の導線を中心に確認いたします。来週の午後に30分ほどお時間をいただけますでしょうか。',
label: 'Polite',
text: 'Thank you for sharing the materials. I will focus on the first-time experience. Would you have 30 minutes one afternoon next week?',
},
{
label: 'まず受け取る',
text: 'ご連絡ありがとうございます。資料、受け取りました。日程を確認して9月29日17時までにお返事します。',
label: 'Acknowledge',
text: 'Thanks for getting in touch. I have the materials and will check my schedule and reply by September 29 at 17:00.',
},
],
scheduleOptions: ['10月5日(月)14:00–14:30', '10月6日(火)15:00–15:30'],
scheduleOptions: ['Mon, Oct 5, 14:00–14:30', 'Tue, Oct 6, 15:00–15:30'],
},
{
id: 'weekend-coffee',
name: '森 直人',
role: '友人',
subject: '久しぶりに、お茶でも',
name: 'Naoto Mori',
role: 'Friend',
subject: 'Catch up over coffee',
channels: ['LINE'],
replyChannel: 'LINE',
updatedAt: '昨日',
updatedAt: 'Yesterday',
summary:
'近くに来るのでお茶をしようという誘い。急ぎの返事は求められていない。',
nextStep: '会いたければ都合を返す。今決めなくてもよい。',
'An invitation to meet for coffee while Naoto is nearby. There is no rush to reply.',
nextStep:
'Share your availability if you would like to meet. You do not need to decide right now.',
messages: [
{
id: 'mori-1',
channel: 'LINE',
time: '9月27日 19:15',
time: 'Sep 27, 19:15',
direction: 'in',
text: '来週そっちの方に行くかも。時間合ったらお茶しない? 土曜の午後なら空いてる。急ぎじゃないので、予定わかったら!',
text: 'I might be in your area next week. Want to grab coffee if our schedules line up? Saturday afternoon works for me. No rush—let me know when you know!',
},
],
facts: [
{
text: 'Saturday afternoon is available this time.',
sourceId: 'mori-1',
},
],
facts: [{ text: '今回は土曜の午後が空いている。', sourceId: 'mori-1' }],
drafts: [
{
label: '短く',
text: 'いいね、久しぶりに会いたい! 土曜の午後で予定見てみるね。',
label: 'Brief',
text: 'Sounds good, it would be great to catch up! I will check Saturday afternoon.',
},
{
label: '丁寧に',
text: '誘ってくれてありがとう! ぜひお茶したいです。土曜の午後、都合を確認して連絡するね。',
label: 'Polite',
text: 'Thanks for the invitation! I would love to grab coffee. I will check my plans for Saturday afternoon and let you know.',
},
{
label: 'まず受け取る',
text: 'ありがとう! まだ予定が見えないので、わかったら連絡するね。',
label: 'Acknowledge',
text: 'Thanks! I am not sure about my schedule yet, but I will let you know.',
},
],
scheduleOptions: ['10月3日(土)14:00–15:00', '10月3日(土)16:00–17:00'],
scheduleOptions: ['Sat, Oct 3, 14:00–15:00', 'Sat, Oct 3, 16:00–17:00'],
},
{
id: 'estimate-check',
name: '藤井 理沙',
role: '制作パートナー',
subject: '見積もりの前提を確認する',
name: 'Risa Fujii',
role: 'Project partner',
subject: 'Confirm the scope for an estimate',
channels: ['Gmail'],
replyChannel: 'Gmail',
updatedAt: '9:10',
deadline: '9月30日 12:00',
deadline: 'Sep 30, 12:00',
summary:
'見積もりを進めるため、対象画面が3画面でよいか確認が届いている。回答期限は9月30日の正午。',
nextStep: '対象画面数を確認して返答する。未確認のまま確約しない。',
'Risa needs confirmation that the project covers three screens before preparing an estimate. Please reply by noon on September 30.',
nextStep:
'Confirm the number of screens before replying. Avoid committing before checking.',
messages: [
{
id: 'fujii-1',
channel: 'Gmail',
time: '9月28日 9:10',
time: 'Sep 28, 9:10',
direction: 'in',
text: '概算の作成にあたり、対象は一覧・詳細・設定の3画面という理解でよろしいでしょうか。9月30日正午までにご確認いただければ、同日中にお見積もりをお送りします。',
text: 'Before preparing an estimate, could you confirm that the scope is the list, detail, and settings screens? If you can confirm by noon on September 30, I can send the estimate the same day.',
},
],
facts: [
{ text: '対象画面数の確認後に概算を作成する予定。', sourceId: 'fujii-1' },
{
text: 'The estimate will be prepared after the screen count is confirmed.',
sourceId: 'fujii-1',
},
],
drafts: [
{
label: '短く',
text: 'ありがとうございます。対象の3画面について確認し、9月30日正午までにお返事します。',
label: 'Brief',
text: 'Thanks. I will check the three screens and reply by noon on September 30.',
},
{
label: '丁寧に',
text: 'ご確認ありがとうございます。一覧・詳細・設定の3画面で相違ないか確認のうえ、9月30日正午までに回答いたします。',
label: 'Polite',
text: 'Thank you for checking. I will confirm whether the list, detail, and settings screens cover the scope and reply by noon on September 30.',
},
{
label: 'まず受け取る',
text: 'ご連絡を受け取りました。対象範囲を確認して、改めてご連絡します。',
label: 'Acknowledge',
text: 'Thanks for your message. I will check the scope and get back to you.',
},
],
scheduleOptions: [],
},
{
id: 'reading-note',
name: '田辺 悠',
role: '勉強会の仲間',
subject: '前に話していた記事',
name: 'Yu Tanabe',
role: 'Study group friend',
subject: 'The article we talked about',
channels: ['Slack'],
replyChannel: 'Slack',
updatedAt: '金曜日',
updatedAt: 'Friday',
summary:
'前の勉強会で話題になった記事を共有してくれた。質問や返答の依頼はない。',
nextStep: '読む時間がなければ、返信せず閉じてよい。',
'Yu shared an article discussed at the last study group. There are no questions or requests for a reply.',
nextStep:
'If you do not have time to read it, you can close this without replying.',
messages: [
{
id: 'tanabe-1',
channel: 'Slack',
time: '9月25日 18:30',
time: 'Sep 25, 18:30',
direction: 'in',
text: '前に話していた、道具を増やさず仕事を進める話の記事を見つけたので共有! 時間あるときにどうぞ。返信不要です。',
text: 'Found the article we discussed about getting work done with fewer tools! Read it when you have time. No reply needed.',
},
],
facts: [
{ text: 'この共有への返信は不要と明記している。', sourceId: 'tanabe-1' },
{
text: 'This message explicitly says no reply is needed.',
sourceId: 'tanabe-1',
},
],
drafts: [
{ label: '短く', text: '共有ありがとう! あとで読んでみるね。' },
{
label: '丁寧に',
text: '覚えていてくれてありがとう。ちょうど気になっていた話なので、時間を取って読んでみます。',
label: 'Brief',
text: 'Thanks for sharing! I will read it later.',
},
{
label: 'Polite',
text: 'Thanks for remembering. I have been thinking about this topic, so I will set aside some time to read it.',
},
{
label: 'Acknowledge',
text: 'Thanks, got it!',
},
{ label: 'まず受け取る', text: 'ありがとう、受け取りました!' },
],
scheduleOptions: [],
},