6 files changed
+1613
assets/images/flag_jp.png
Binary files /dev/null and b/assets/images/flag_jp.png differ
lib/app.dart
+1
@@ -224,6 +224,7 @@ class App extends ConsumerWidget {
224
Locale('es'),
225
Locale('hi'),
226
Locale('it'),
227
+ Locale('ja'),
228
],
229
locale: localeCode != null ? Locale(localeCode) : null,
230
localeResolutionCallback: (locale, supportedLocales) {
lib/features/onboarding/screens/onboarding_language_screen.dart
+10
@@ -101,6 +101,16 @@ const _languages = [
101
shortText: 'Hi',
102
gradient: [Color(0xFFEC4899), Color(0xFFDB2777)],
103
),
104
+ _LanguageOption(
105
+ code: 'ja',
106
+ nativeName: '日本語',
107
+ englishName: 'Japanese',
108
+ flag: '🇯🇵',
109
+ flagAsset: 'assets/images/flag_jp.png',
110
+ countryCode: 'JP',
111
+ shortText: 'Ja',
112
+ gradient: [Color(0xFFF43F5E), Color(0xFFBE123C)],
113
+ ),
114
];
115
116
class OnboardingLanguageScreen extends ConsumerStatefulWidget {
lib/features/settings/views/settings_screen.dart
+1
@@ -316,6 +316,7 @@ class _LanguageSetting extends StatelessWidget {
316
317
static const _localeItems = <(String, String, String, String)>[
318
('en', 'English', 'assets/images/flag_us.png', '🇺🇸'),
319
+ ('ja', '日本語', 'assets/images/flag_jp.png', '🇯🇵'),
320
('it', 'Italiano', 'assets/images/flag_it.png', '🇮🇹'),
321
('es', 'Español', 'assets/images/flag_es.png', '🇪🇸'),
322
('zh', '中文', 'assets/images/flag_cn.png', '🇨🇳'),
lib/l10n/app_localizations.dart
+5
@@ -11,6 +11,7 @@ import 'app_localizations_en.dart';
11
import 'app_localizations_es.dart';
12
import 'app_localizations_hi.dart';
13
import 'app_localizations_it.dart';
14
+import 'app_localizations_ja.dart';
15
import 'app_localizations_zh.dart';
16
17
// ignore_for_file: type=lint
@@ -105,6 +106,7 @@ abstract class AppLocalizations {
106
Locale('es'),
107
Locale('hi'),
108
Locale('it'),
109
+ Locale('ja'),
110
Locale('zh'),
111
];
112
@@ -3114,6 +3116,7 @@ class _AppLocalizationsDelegate
3116
'es',
3117
'hi',
3118
'it',
3119
+ 'ja',
3120
'zh',
3121
].contains(locale.languageCode);
3122
@@ -3136,6 +3139,8 @@ AppLocalizations lookupAppLocalizations(Locale locale) {
3139
return AppLocalizationsHi();
3140
case 'it':
3141
return AppLocalizationsIt();
3142
+ case 'ja':
3143
+ return AppLocalizationsJa();
3144
case 'zh':
3145
return AppLocalizationsZh();
3146
}
lib/l10n/app_localizations_ja.dart
new
+1596
@@ -0,0 +1,1596 @@
1
+// ignore: unused_import
2
+import 'package:intl/intl.dart' as intl;
3
+import 'app_localizations.dart';
4
+
5
+// ignore_for_file: type=lint
6
+
7
+/// The translations for Japanese (`ja`).
8
+class AppLocalizationsJa extends AppLocalizations {
9
+ AppLocalizationsJa([String locale = 'ja']) : super(locale);
10
+
11
+ @override
12
+ String get app_name => 'LocalMind';
13
+
14
+ @override
15
+ String get app_tagline => 'ローカルAI。プライバシーを保護して、あなたのルールで。';
16
+
17
+ @override
18
+ String get app_version => '1.0.0';
19
+
20
+ @override
21
+ String get cancel => 'キャンセル';
22
+
23
+ @override
24
+ String get confirm => '確認';
25
+
26
+ @override
27
+ String get delete => '削除';
28
+
29
+ @override
30
+ String get save => '保存';
31
+
32
+ @override
33
+ String get retry => '再試行';
34
+
35
+ @override
36
+ String get close => '閉じる';
37
+
38
+ @override
39
+ String get done => '完了';
40
+
41
+ @override
42
+ String get continue_action => '続行';
43
+
44
+ @override
45
+ String get skip => 'スキップ';
46
+
47
+ @override
48
+ String get install => 'インストール';
49
+
50
+ @override
51
+ String get download => 'ダウンロード';
52
+
53
+ @override
54
+ String get resume => '再開';
55
+
56
+ @override
57
+ String get pause => '一時停止';
58
+
59
+ @override
60
+ String get stop => '停止';
61
+
62
+ @override
63
+ String get edit => '編集';
64
+
65
+ @override
66
+ String get preview => 'プレビュー';
67
+
68
+ @override
69
+ String get unload => 'アンロード';
70
+
71
+ @override
72
+ String get load => 'ロード';
73
+
74
+ @override
75
+ String get rename => '名前変更';
76
+
77
+ @override
78
+ String get pin => 'ピン留め';
79
+
80
+ @override
81
+ String get unpin => 'ピン留め解除';
82
+
83
+ @override
84
+ String get share => '共有';
85
+
86
+ @override
87
+ String get copy => 'コピー';
88
+
89
+ @override
90
+ String get copied => 'コピーしました!';
91
+
92
+ @override
93
+ String get copied_to_clipboard => 'クリップボードにコピーしました';
94
+
95
+ @override
96
+ String get select => '選択';
97
+
98
+ @override
99
+ String get active => 'アクティブ';
100
+
101
+ @override
102
+ String get all => 'すべて';
103
+
104
+ @override
105
+ String get none => 'なし';
106
+
107
+ @override
108
+ String get none_selected => '未選択';
109
+
110
+ @override
111
+ String get online => 'オンライン';
112
+
113
+ @override
114
+ String get offline => 'オフライン';
115
+
116
+ @override
117
+ String get error => 'エラー';
118
+
119
+ @override
120
+ String get unknown_error => '不明なエラー';
121
+
122
+ @override
123
+ String get not_now => '後で';
124
+
125
+ @override
126
+ String get enable => '有効にする';
127
+
128
+ @override
129
+ String get proceed_anyway => 'このまま続行';
130
+
131
+ @override
132
+ String get test_connection => '接続テスト';
133
+
134
+ @override
135
+ String get testing => 'テスト中...';
136
+
137
+ @override
138
+ String get connection_successful => '接続に成功しました!';
139
+
140
+ @override
141
+ String get connection_failed => '接続に失敗しました。設定を確認してください。';
142
+
143
+ @override
144
+ String get save_continue => '保存して続行';
145
+
146
+ @override
147
+ String get save_changes => '変更を保存';
148
+
149
+ @override
150
+ String get finish_setup => 'セットアップを完了';
151
+
152
+ @override
153
+ String get start_new_chat => '新しいチャットを開始';
154
+
155
+ @override
156
+ String get cannot_undo => 'この操作は取り消せません。';
157
+
158
+ @override
159
+ String get ram_warning => 'RAM警告';
160
+
161
+ @override
162
+ String get recommended => '推奨';
163
+
164
+ @override
165
+ String get may_be_large => 'このデバイスには大きすぎる可能性があります';
166
+
167
+ @override
168
+ String get calculating => '計算中...';
169
+
170
+ @override
171
+ String get download_failed => 'ダウンロード失敗';
172
+
173
+ @override
174
+ String get downloaded => 'ダウンロード済み';
175
+
176
+ @override
177
+ String get not_downloaded => '未ダウンロード';
178
+
179
+ @override
180
+ String get installed => 'インストール済み';
181
+
182
+ @override
183
+ String get not_installed => '未インストール';
184
+
185
+ @override
186
+ String get loading => '読み込み中...';
187
+
188
+ @override
189
+ String get thinking => '思考中';
190
+
191
+ @override
192
+ String get processing => '処理中...';
193
+
194
+ @override
195
+ String get initializing => '初期化中...';
196
+
197
+ @override
198
+ String get ready => '準備完了';
199
+
200
+ @override
201
+ String get preparing_app => 'アプリを準備中...';
202
+
203
+ @override
204
+ String get initializing_services => 'サービスを初期化中...';
205
+
206
+ @override
207
+ String get configuring_server => 'サーバーを構成中...';
208
+
209
+ @override
210
+ String get startup_failed => '起動に失敗しました';
211
+
212
+ @override
213
+ String get something_went_wrong => '問題が発生しました';
214
+
215
+ @override
216
+ String get delete_model_title => 'モデルを削除';
217
+
218
+ @override
219
+ String delete_model_body(String name) {
220
+ return '$name を削除してもよろしいですか?';
221
+ }
222
+
223
+ @override
224
+ String delete_model_body_with_size(String name, String size) {
225
+ return '$name を削除してもよろしいですか?これにより約 $size の空き容量が増えます。\n\n必要に応じて、このモデルは後で再ダウンロードできます。';
226
+ }
227
+
228
+ @override
229
+ String get delete_voice_title => '音声の削除';
230
+
231
+ @override
232
+ String delete_voice_body(String name, String size) {
233
+ return '$name を削除してもよろしいですか?これにより約 $size の空き容量が増えます。\n\n必要に応じて、この音声は後で再ダウンロードできます。';
234
+ }
235
+
236
+ @override
237
+ String get delete_server_title => 'サーバーの削除';
238
+
239
+ @override
240
+ String delete_server_body(String name) {
241
+ return '本当に「$name」を削除しますか?この操作は取り消せません。';
242
+ }
243
+
244
+ @override
245
+ String get delete_conversation_title => 'チャットを削除しますか?';
246
+
247
+ @override
248
+ String delete_conversation_body(String title) {
249
+ return '本当に「$title」を削除しますか?この操作は取り消せません。';
250
+ }
251
+
252
+ @override
253
+ String get delete_message_title => 'メッセージを削除しますか?';
254
+
255
+ @override
256
+ String delete_persona_title(String name) {
257
+ return '「$name」を削除しますか?';
258
+ }
259
+
260
+ @override
261
+ String get delete_persona_body => 'この操作は取り消せません。';
262
+
263
+ @override
264
+ String get clear_conversation_title => 'チャット履歴をクリアしますか?';
265
+
266
+ @override
267
+ String get clear_conversation_body => 'このチャット内のすべてのメッセージが削除されます。';
268
+
269
+ @override
270
+ String get clear => 'クリア';
271
+
272
+ @override
273
+ String label_completed(String label) {
274
+ return '$label が完了しました';
275
+ }
276
+
277
+ @override
278
+ String error_with_message(String error) {
279
+ return 'エラー: $error';
280
+ }
281
+
282
+ @override
283
+ String preview_failed(String error) {
284
+ return 'プレビューに失敗しました: $error';
285
+ }
286
+
287
+ @override
288
+ String loading_model(String modelId) {
289
+ return '$modelId を読み込み中...';
290
+ }
291
+
292
+ @override
293
+ String model_loaded(String modelId, String backend) {
294
+ return 'モデルを読み込みました: $modelId ($backend)';
295
+ }
296
+
297
+ @override
298
+ String get no_model_loaded =>
299
+ 'モデルが読み込まれていません。「ローカルモデルの管理」をタップしてモデルをダウンロードし、読み込んでください。';
300
+
301
+ @override
302
+ String loading_model_error(String error) {
303
+ return 'エラー: $error';
304
+ }
305
+
306
+ @override
307
+ String get delete_conversation => 'チャットを削除しますか?';
308
+
309
+ @override
310
+ String get nav_history => '履歴';
311
+
312
+ @override
313
+ String get nav_servers => 'サーバー';
314
+
315
+ @override
316
+ String get nav_local_models => 'ローカルモデル';
317
+
318
+ @override
319
+ String get nav_tts => '音声合成';
320
+
321
+ @override
322
+ String get nav_personas => 'ペルソナ';
323
+
324
+ @override
325
+ String get nav_settings => '設定';
326
+
327
+ @override
328
+ String get nav_new_chat => '新しいチャット';
329
+
330
+ @override
331
+ String get search_hint => 'チャットを検索...';
332
+
333
+ @override
334
+ String get no_server_selected => 'サーバーが選択されていません';
335
+
336
+ @override
337
+ String get switch_server => 'サーバー切り替え';
338
+
339
+ @override
340
+ String get switch_server_subtitle => '接続するサーバーを選択してください';
341
+
342
+ @override
343
+ String get manage_servers => 'サーバーの管理';
344
+
345
+ @override
346
+ String get open_source => 'オープンソース';
347
+
348
+ @override
349
+ String get open_source_desc =>
350
+ 'LocalMind はオープンソースです。GitHub で開発状況の確認や貢献ができます。';
351
+
352
+ @override
353
+ String get star_on_github => 'GitHub でスターを付ける';
354
+
355
+ @override
356
+ String get settings_title => '設定';
357
+
358
+ @override
359
+ String get settings_appearance => '外観';
360
+
361
+ @override
362
+ String get settings_language => '言語';
363
+
364
+ @override
365
+ String get language_system_default => 'システムデフォルト';
366
+
367
+ @override
368
+ String get settings_tts => '音声合成';
369
+
370
+ @override
371
+ String get settings_behavior => '動作';
372
+
373
+ @override
374
+ String get settings_on_device => 'ローカル推論';
375
+
376
+ @override
377
+ String get settings_default_server => 'デフォルトサーバー';
378
+
379
+ @override
380
+ String get settings_default_persona => 'デフォルトペルソナ';
381
+
382
+ @override
383
+ String get settings_privacy => 'プライバシー';
384
+
385
+ @override
386
+ String get settings_data_management => 'データ管理';
387
+
388
+ @override
389
+ String get settings_about => 'LocalMind について';
390
+
391
+ @override
392
+ String get theme => 'テーマ';
393
+
394
+ @override
395
+ String get theme_system => 'システム';
396
+
397
+ @override
398
+ String get theme_light => 'ライト';
399
+
400
+ @override
401
+ String get theme_dark => 'ダーク';
402
+
403
+ @override
404
+ String get theme_claude => 'Claude';
405
+
406
+ @override
407
+ String get font_size => 'フォントサイズ';
408
+
409
+ @override
410
+ String get font_size_desc => 'チャットのテキストサイズを調整します。';
411
+
412
+ @override
413
+ String get font_preview => 'これはテキストの表示サイズ確認用のプレビューです。';
414
+
415
+ @override
416
+ String get code_theme_dark => 'コードテーマ (ダーク)';
417
+
418
+ @override
419
+ String get code_theme_light => 'コードテーマ (ライト)';
420
+
421
+ @override
422
+ String get code_theme_desc => 'コードブロックのシンタックスハイライトテーマを選択します。';
423
+
424
+ @override
425
+ String get tts_engine => '音声合成エンジン';
426
+
427
+ @override
428
+ String get tts_engine_system => 'システム音声合成';
429
+
430
+ @override
431
+ String get tts_engine_kitten => 'Kitten TTS';
432
+
433
+ @override
434
+ String get voice => '音声';
435
+
436
+ @override
437
+ String get voice_female => '女性';
438
+
439
+ @override
440
+ String get voice_male => '男性';
441
+
442
+ @override
443
+ String get voice_other => 'その他';
444
+
445
+ @override
446
+ String get tts_speed => '読み上げ速度';
447
+
448
+ @override
449
+ String get tts_speed_desc => '再生速度を調整します。';
450
+
451
+ @override
452
+ String get manage_tts_models => '音声合成モデルの管理';
453
+
454
+ @override
455
+ String get manage_on_device_models => 'ローカルモデルの管理';
456
+
457
+ @override
458
+ String get enable_smart_reply => 'スマートリプライ';
459
+
460
+ @override
461
+ String get streaming_responses => 'ストリーミング応答';
462
+
463
+ @override
464
+ String get auto_generate_titles => 'タイトルの自動生成';
465
+
466
+ @override
467
+ String get send_on_enter => 'Enterキーで送信';
468
+
469
+ @override
470
+ String get show_system_messages => 'システムメッセージを表示';
471
+
472
+ @override
473
+ String get haptic_feedback => '触覚フィードバック';
474
+
475
+ @override
476
+ String get enable_mcp => 'MCPを有効化';
477
+
478
+ @override
479
+ String get new_chat_mcp_default => '新規チャットでMCPをデフォルトにする';
480
+
481
+ @override
482
+ String get show_data_indicator => 'データインジケーターを表示';
483
+
484
+ @override
485
+ String get privacy_info => '「LocalMindがあなたのデータを閲覧することはありません」';
486
+
487
+ @override
488
+ String get delete_all_conversations => 'すべてのチャット履歴を削除';
489
+
490
+ @override
491
+ String get reset_settings_defaults => '設定をデフォルトに戻す';
492
+
493
+ @override
494
+ String get chat_title => 'LocalMind';
495
+
496
+ @override
497
+ String get chat_parameters_tooltip => 'チャットパラメータ';
498
+
499
+ @override
500
+ String get change_persona => 'ペルソナを変更';
501
+
502
+ @override
503
+ String get set_persona => 'ペルソナを設定';
504
+
505
+ @override
506
+ String get remove_persona => 'ペルソナを削除';
507
+
508
+ @override
509
+ String get clear_conversation => '履歴をクリア';
510
+
511
+ @override
512
+ String get connection_error => '接続エラー。サーバーを確認してください。';
513
+
514
+ @override
515
+ String get disconnected => 'サーバーから切断されました。';
516
+
517
+ @override
518
+ String get configure => '構成';
519
+
520
+ @override
521
+ String get select_model => 'モデルを選択';
522
+
523
+ @override
524
+ String get select_persona => 'ペルソナを選択';
525
+
526
+ @override
527
+ String get start_conversation => 'チャットを開始しましょう';
528
+
529
+ @override
530
+ String get recent_chats => '最近のチャット';
531
+
532
+ @override
533
+ String get see_all => 'すべて見る';
534
+
535
+ @override
536
+ String get quick_write => '関数の作成をサポートして';
537
+
538
+ @override
539
+ String get quick_explain => 'このコードを説明して';
540
+
541
+ @override
542
+ String get quick_debug => 'デバッグして';
543
+
544
+ @override
545
+ String get quick_async => 'async/await はどう使えばいい?';
546
+
547
+ @override
548
+ String get history_missing_title => '履歴が見つかりません';
549
+
550
+ @override
551
+ String get history_missing_desc => 'このチャットのメッセージが削除されたか、履歴レコードが破損しています。';
552
+
553
+ @override
554
+ String get technical_details => '技術的な詳細';
555
+
556
+ @override
557
+ String get last_error => '最後のエラー:';
558
+
559
+ @override
560
+ String get copy_info => '情報をコピー';
561
+
562
+ @override
563
+ String get conversation_id => '会話ID';
564
+
565
+ @override
566
+ String get created_at => '作成日時';
567
+
568
+ @override
569
+ String get expected_messages => '期待されるメッセージ数';
570
+
571
+ @override
572
+ String get debug_dialog_desc => '同期の問題を特定するための診断情報。';
573
+
574
+ @override
575
+ String get chat_input_hint => '何でも質問してください';
576
+
577
+ @override
578
+ String get send_message_tooltip => 'メッセージを送信';
579
+
580
+ @override
581
+ String get stop_generation_tooltip => '生成を停止';
582
+
583
+ @override
584
+ String get attach_images_tooltip => '画像を添付';
585
+
586
+ @override
587
+ String tool_label(String toolCallId) {
588
+ return 'ツール: $toolCallId';
589
+ }
590
+
591
+ @override
592
+ String get tool_unknown => 'ツール: 不明';
593
+
594
+ @override
595
+ String get message_options => 'メッセージオプション';
596
+
597
+ @override
598
+ String get copy_markdown => 'Markdownとしてコピー';
599
+
600
+ @override
601
+ String get copied_markdown => 'Markdownとしてコピーしました';
602
+
603
+ @override
604
+ String get read_aloud => '読み上げる';
605
+
606
+ @override
607
+ String get stop_reading => '読み上げを停止';
608
+
609
+ @override
610
+ String get more => 'その他';
611
+
612
+ @override
613
+ String character_count(int length) {
614
+ return '$length 文字';
615
+ }
616
+
617
+ @override
618
+ String get edit_message => 'メッセージを編集';
619
+
620
+ @override
621
+ String get edit_message_desc => '保存すると、以下の応答が削除され、再生成されます。';
622
+
623
+ @override
624
+ String get save_regenerate => '保存して再生成';
625
+
626
+ @override
627
+ String get chat_settings_title => 'チャット設定';
628
+
629
+ @override
630
+ String get reset_defaults => 'デフォルトに戻す';
631
+
632
+ @override
633
+ String get parameters_tab => 'パラメータ';
634
+
635
+ @override
636
+ String get mcp_tab => 'MCP';
637
+
638
+ @override
639
+ String get temperature => '温度';
640
+
641
+ @override
642
+ String get temperature_desc => 'ランダム性を制御:高い=創造的、低い=集中';
643
+
644
+ @override
645
+ String get top_p => 'Top P';
646
+
647
+ @override
648
+ String get top_p_desc => '核サンプリングしきい値';
649
+
650
+ @override
651
+ String get max_tokens => '最大トークン数';
652
+
653
+ @override
654
+ String get max_tokens_desc => '応答制限';
655
+
656
+ @override
657
+ String get context_length => 'コンテキスト長';
658
+
659
+ @override
660
+ String get context_length_desc => '履歴ウィンドウ';
661
+
662
+ @override
663
+ String get mcp_disabled_warning => 'MCPはグローバルで無効化されています。設定画面から有効化して使用してください。';
664
+
665
+ @override
666
+ String get mcp_enable_chat => 'このチャットでMCPを有効化';
667
+
668
+ @override
669
+ String get auto_execute_tools => 'ツールの自動実行';
670
+
671
+ @override
672
+ String get beta_label => 'ベータ';
673
+
674
+ @override
675
+ String get experimental_label => '実験的';
676
+
677
+ @override
678
+ String get add_ephemeral_mcp => '一時的なMCPサーバーを追加';
679
+
680
+ @override
681
+ String get mcp_label_placeholder => 'ラベル';
682
+
683
+ @override
684
+ String get mcp_url_placeholder => 'URL (https://...)';
685
+
686
+ @override
687
+ String get active_integrations => '有効な統合';
688
+
689
+ @override
690
+ String get enable_notifications => '通知を有効にする';
691
+
692
+ @override
693
+ String get enable_notifications_desc => 'モデルのダウンロード完了時に通知を受け取ります。';
694
+
695
+ @override
696
+ String get chat_history_title => 'チャット履歴';
697
+
698
+ @override
699
+ String get conversation_just_now => 'たった今';
700
+
701
+ @override
702
+ String conversation_minutes_ago(int minutes) {
703
+ return '$minutes分前';
704
+ }
705
+
706
+ @override
707
+ String conversation_hours_ago(int hours) {
708
+ return '$hours時間前';
709
+ }
710
+
711
+ @override
712
+ String get conversation_yesterday => '昨日';
713
+
714
+ @override
715
+ String conversation_days_ago(int days) {
716
+ return '$days日前';
717
+ }
718
+
719
+ @override
720
+ String conversation_date(int month, int day, int year) {
721
+ return '$year/$month/$day';
722
+ }
723
+
724
+ @override
725
+ String get options_tooltip => 'オプション';
726
+
727
+ @override
728
+ String get no_results_found => '結果が見つかりません';
729
+
730
+ @override
731
+ String get no_conversations_yet => 'チャット履歴がまだありません';
732
+
733
+ @override
734
+ String get try_different_search => '別の検索ワードを試してください';
735
+
736
+ @override
737
+ String get start_new_conversation => '新しいチャットを開始する';
738
+
739
+ @override
740
+ String get rename_conversation => 'チャットの名前を変更';
741
+
742
+ @override
743
+ String get enter_new_title => '新しいタイトルを入力';
744
+
745
+ @override
746
+ String get pinned_section => 'ピン留め済み';
747
+
748
+ @override
749
+ String get today_section => '今日';
750
+
751
+ @override
752
+ String get yesterday_section => '昨日';
753
+
754
+ @override
755
+ String get previous_7_days => '過去 7 日間';
756
+
757
+ @override
758
+ String get previous_30_days => '過去 30 日間';
759
+
760
+ @override
761
+ String get older_section => '過去';
762
+
763
+ @override
764
+ String get onboarding_choose_language => '言語の選択';
765
+
766
+ @override
767
+ String get onboarding_choose_language_desc =>
768
+ '優先する言語を選択してください。この設定はいつでも変更できます。';
769
+
770
+ @override
771
+ String get onboarding_localmind => 'LOCALMIND';
772
+
773
+ @override
774
+ String get onboarding_connect_server => 'サーバーへの接続';
775
+
776
+ @override
777
+ String get onboarding_connect_desc =>
778
+ 'LM Studio、Ollama、またはOpenRouterに接続して、プライベートAI体験を開始しましょう。';
779
+
780
+ @override
781
+ String get onboarding_welcome => 'Welcome to LocalMind';
782
+
783
+ @override
784
+ String get server_type_on_device => 'ローカル';
785
+
786
+ @override
787
+ String get server_type_on_device_sub => 'サーバー不要';
788
+
789
+ @override
790
+ String get server_type_lm_studio => 'LM Studio';
791
+
792
+ @override
793
+ String get server_type_lm_studio_sub => 'ローカルAPI';
794
+
795
+ @override
796
+ String get server_type_ollama => 'Ollama';
797
+
798
+ @override
799
+ String get server_type_ollama_sub => 'CLIエンジン';
800
+
801
+ @override
802
+ String get server_type_openrouter => 'OpenRouter';
803
+
804
+ @override
805
+ String get server_type_openrouter_sub => '統合クラウド';
806
+
807
+ @override
808
+ String get ready_continue => '続行可能';
809
+
810
+ @override
811
+ String get waiting_selection => '選択待ち';
812
+
813
+ @override
814
+ String get setup_connection => '接続のセットアップ';
815
+
816
+ @override
817
+ String setup_connection_desc(String server) {
818
+ return 'チャットを開始するには、$server サーバーを構成してください。';
819
+ }
820
+
821
+ @override
822
+ String get server_name => 'サーバー名';
823
+
824
+ @override
825
+ String get name_required => '名前は必須です';
826
+
827
+ @override
828
+ String get name_max_50 => '最大50文字';
829
+
830
+ @override
831
+ String get host_label => 'ホスト / IPアドレス';
832
+
833
+ @override
834
+ String get host_required => 'ホストは必須です';
835
+
836
+ @override
837
+ String get port_label => 'ポート';
838
+
839
+ @override
840
+ String get port_required => 'ポートは必須です';
841
+
842
+ @override
843
+ String get port_invalid => '数値である必要があります';
844
+
845
+ @override
846
+ String get port_range => '有効なポート番号(1-65535)を入力してください';
847
+
848
+ @override
849
+ String get api_key_required => 'APIキー *';
850
+
851
+ @override
852
+ String get api_key_optional => 'APIキー(オプション)';
853
+
854
+ @override
855
+ String get api_key_required_openrouter => 'OpenRouterにはAPIキーが必要です';
856
+
857
+ @override
858
+ String get api_key_format => 'OpenRouterのAPIキーは sk- で始まります';
859
+
860
+ @override
861
+ String get my_server_hint => 'マイサーバー';
862
+
863
+ @override
864
+ String get name_length_validation => '名前は50文字以内にする必要があります';
865
+
866
+ @override
867
+ String get host_valid => '有効なホスト名またはIPアドレスを入力してください';
868
+
869
+ @override
870
+ String get api_key_hint_openrouter => 'sk-...';
871
+
872
+ @override
873
+ String get api_key_hint_generic => '認証が必要なサーバー用';
874
+
875
+ @override
876
+ String get update_server => 'サーバーを更新';
877
+
878
+ @override
879
+ String get save_server => 'サーバーを保存';
880
+
881
+ @override
882
+ String get server_updated => 'サーバーを更新しました';
883
+
884
+ @override
885
+ String get server_added => 'サーバーを追加しました';
886
+
887
+ @override
888
+ String get download_model_title => 'モデルのダウンロード';
889
+
890
+ @override
891
+ String get download_model_desc =>
892
+ 'ダウンロードするモデルを選択してください。\nモデルはデバイス上でローカルに実行されます。';
893
+
894
+ @override
895
+ String get on_device_android_only => 'ローカル推論は現在Androidのみで利用可能です。';
896
+
897
+ @override
898
+ String get total_ram => '合計 RAM';
899
+
900
+ @override
901
+ String get available => '利用可能';
902
+
903
+ @override
904
+ String ram_min_required(String fileSize) {
905
+ return '最低 $fileSize GB RAM';
906
+ }
907
+
908
+ @override
909
+ String download_progress(String percent, String speed) {
910
+ return '$percent% • $speed';
911
+ }
912
+
913
+ @override
914
+ String eta_label(String eta) {
915
+ return '残り時間: $eta';
916
+ }
917
+
918
+ @override
919
+ String paused_progress(String percent) {
920
+ return '一時停止中 - $percent%';
921
+ }
922
+
923
+ @override
924
+ String ram_warning_body_download(String ram, String totalMemory) {
925
+ return 'このモデルは少なくとも $ram GB のRAMを必要としますが、お使いのデバイスのRAMは $totalMemory です。正常に動作しないか、アプリがクラッシュする原因になる可能性があります。';
926
+ }
927
+
928
+ @override
929
+ String ram_warning_body_load(String availableRAM, String ram) {
930
+ return 'デバイスの利用可能RAMは $availableRAM ですが、このモデルは少なくとも $ram GB を推奨しています。ロードに失敗するか、不安定になる可能性があります。';
931
+ }
932
+
933
+ @override
934
+ String get choose_theme => 'テーマの選択';
935
+
936
+ @override
937
+ String get choose_theme_desc => 'アプリの外観をパーソナライズします。この設定は後からいつでも変更できます。';
938
+
939
+ @override
940
+ String get theme_card_system => 'システム';
941
+
942
+ @override
943
+ String get theme_card_system_sub => 'デバイスの設定に合わせる';
944
+
945
+ @override
946
+ String get theme_card_light => 'ライト';
947
+
948
+ @override
949
+ String get theme_card_light_sub => 'クリーンで明るい外観';
950
+
951
+ @override
952
+ String get theme_card_dark => 'ダーク';
953
+
954
+ @override
955
+ String get theme_card_dark_sub => '目に優しい外観';
956
+
957
+ @override
958
+ String get theme_card_claude => 'Claude';
959
+
960
+ @override
961
+ String get theme_card_claude_sub => '温かみのあるピーチ調のテーマ';
962
+
963
+ @override
964
+ String get stay_updated => '最新情報を維持';
965
+
966
+ @override
967
+ String get stay_updated_desc => 'AIモデルのダウンロード完了時や、長時間実行タスクの完了時に通知を受け取ります。';
968
+
969
+ @override
970
+ String get notification_benefit_downloads => 'モデルのダウンロード進捗';
971
+
972
+ @override
973
+ String get notification_benefit_completions => '生成の完了';
974
+
975
+ @override
976
+ String get notification_benefit_background => 'バックグラウンドタスクのステータス';
977
+
978
+ @override
979
+ String get allow_notifications => '通知を許可する';
980
+
981
+ @override
982
+ String get servers_title => 'サーバー';
983
+
984
+ @override
985
+ String get no_servers_yet => 'サーバーがありません';
986
+
987
+ @override
988
+ String get no_servers_desc => 'AIモデルとチャットを開始するには、最初のサーバーを追加してください。';
989
+
990
+ @override
991
+ String get add_server => 'サーバーを追加';
992
+
993
+ @override
994
+ String switched_to_server(String name) {
995
+ return '$name に切り替えました';
996
+ }
997
+
998
+ @override
999
+ String get edit_server => 'サーバーを編集';
1000
+
1001
+ @override
1002
+ String get add_server_title => 'サーバーを追加';
1003
+
1004
+ @override
1005
+ String get server_type_label => 'サーバータイプ';
1006
+
1007
+ @override
1008
+ String get server_icon_label => 'サーバーアイコン';
1009
+
1010
+ @override
1011
+ String get default_icon => 'デフォルトアイコン';
1012
+
1013
+ @override
1014
+ String get server_type_lm_studio_display => 'LM Studio';
1015
+
1016
+ @override
1017
+ String get server_type_openai_display => 'OpenAI 互換';
1018
+
1019
+ @override
1020
+ String get server_type_ollama_display => 'Ollama';
1021
+
1022
+ @override
1023
+ String get server_type_openrouter_display => 'OpenRouter';
1024
+
1025
+ @override
1026
+ String get server_type_on_device_display => 'ローカル';
1027
+
1028
+ @override
1029
+ String get server_address_openrouter => 'openrouter.ai';
1030
+
1031
+ @override
1032
+ String get server_address_on_device => 'ローカル推論';
1033
+
1034
+ @override
1035
+ String server_address_format(String host, String port) {
1036
+ return '$host:$port';
1037
+ }
1038
+
1039
+ @override
1040
+ String get default_badge => 'デフォルト';
1041
+
1042
+ @override
1043
+ String get set_as_default => 'デフォルトに設定';
1044
+
1045
+ @override
1046
+ String get select_icon => 'アイコンを選択';
1047
+
1048
+ @override
1049
+ String get select_icon_desc => 'サーバーのアイコンを選択してください';
1050
+
1051
+ @override
1052
+ String get search_icons_hint => 'アイコンを検索...';
1053
+
1054
+ @override
1055
+ String get server_icon_stack => 'サーバースタック';
1056
+
1057
+ @override
1058
+ String get server_icon_stack2 => 'サーバースタック 02';
1059
+
1060
+ @override
1061
+ String get server_icon_stack3 => 'サーバースタック 03';
1062
+
1063
+ @override
1064
+ String get server_icon_cloud => 'クラウド';
1065
+
1066
+ @override
1067
+ String get server_icon_cloud_server => 'クラウドサーバー';
1068
+
1069
+ @override
1070
+ String get server_icon_mcp => 'MCP サーバー';
1071
+
1072
+ @override
1073
+ String get server_icon_database => 'データベース';
1074
+
1075
+ @override
1076
+ String get server_icon_database1 => 'データベース 01';
1077
+
1078
+ @override
1079
+ String get server_icon_database2 => 'データベース 02';
1080
+
1081
+ @override
1082
+ String get server_icon_cpu => 'CPU';
1083
+
1084
+ @override
1085
+ String get server_icon_chip => 'チップ';
1086
+
1087
+ @override
1088
+ String get server_icon_chip2 => 'チップ 02';
1089
+
1090
+ @override
1091
+ String get server_icon_computer => 'コンピューター';
1092
+
1093
+ @override
1094
+ String get server_icon_laptop => 'ノートパソコン';
1095
+
1096
+ @override
1097
+ String get server_icon_terminal => 'コンピューターターミナル';
1098
+
1099
+ @override
1100
+ String get server_icon_code => 'コード';
1101
+
1102
+ @override
1103
+ String get server_icon_ai_brain => 'AI ブレイン';
1104
+
1105
+ @override
1106
+ String get server_icon_ai_brain2 => 'AI ブレイン 02';
1107
+
1108
+ @override
1109
+ String get server_icon_ai_cloud => 'AI クラウド';
1110
+
1111
+ @override
1112
+ String get server_icon_ai_network => 'AI ネットワーク';
1113
+
1114
+ @override
1115
+ String get server_icon_ai_chat => 'AI チャット';
1116
+
1117
+ @override
1118
+ String get server_icon_cellular => 'モバイルネットワーク';
1119
+
1120
+ @override
1121
+ String get server_icon_plug1 => 'プラグ 01';
1122
+
1123
+ @override
1124
+ String get server_icon_plug2 => 'プラグ 02';
1125
+
1126
+ @override
1127
+ String get server_icon_bot => 'ボット';
1128
+
1129
+ @override
1130
+ String get server_icon_bot2 => 'ボット 02';
1131
+
1132
+ @override
1133
+ String get server_icon_robotic => 'ロボット';
1134
+
1135
+ @override
1136
+ String get server_icon_rocket => 'ロケット';
1137
+
1138
+ @override
1139
+ String get server_icon_star => 'スター';
1140
+
1141
+ @override
1142
+ String get server_icon_settings1 => '設定 01';
1143
+
1144
+ @override
1145
+ String get server_icon_settings2 => '設定 02';
1146
+
1147
+ @override
1148
+ String get server_icon_home1 => 'ホーム 01';
1149
+
1150
+ @override
1151
+ String get server_icon_home2 => 'ホーム 02';
1152
+
1153
+ @override
1154
+ String get server_icon_folder1 => 'フォルダ 01';
1155
+
1156
+ @override
1157
+ String get server_icon_folder2 => 'フォルダ 02';
1158
+
1159
+ @override
1160
+ String get server_icon_file1 => 'ファイル 01';
1161
+
1162
+ @override
1163
+ String get server_icon_lock => 'ロック';
1164
+
1165
+ @override
1166
+ String get server_icon_key => 'キー 01';
1167
+
1168
+ @override
1169
+ String get server_icon_link => 'リンク 01';
1170
+
1171
+ @override
1172
+ String get server_icon_globe => '地球儀';
1173
+
1174
+ @override
1175
+ String get server_icon_api => 'API';
1176
+
1177
+ @override
1178
+ String get server_icon_arrow_right => '右矢印 01';
1179
+
1180
+ @override
1181
+ String get server_icon_check => 'チェックマーク';
1182
+
1183
+ @override
1184
+ String get server_icon_alert => '警告マーク';
1185
+
1186
+ @override
1187
+ String get server_icon_info => '情報マーク';
1188
+
1189
+ @override
1190
+ String get server_icon_zap => '稲妻マーク';
1191
+
1192
+ @override
1193
+ String get server_icon_cloud_upload => 'クラウドアップロード';
1194
+
1195
+ @override
1196
+ String get server_icon_cloud_download => 'クラウドダウンロード';
1197
+
1198
+ @override
1199
+ String get server_icon_refresh => '更新';
1200
+
1201
+ @override
1202
+ String get server_icon_hard_drive => 'ハードドライブ';
1203
+
1204
+ @override
1205
+ String get server_icon_drive => 'ドライブ';
1206
+
1207
+ @override
1208
+ String get personas_title => 'ペルソナ';
1209
+
1210
+ @override
1211
+ String get persona_category_general => '全般';
1212
+
1213
+ @override
1214
+ String get persona_category_coding => 'コーディング';
1215
+
1216
+ @override
1217
+ String get persona_category_education => '教育';
1218
+
1219
+ @override
1220
+ String get persona_category_creative => 'クリエイティブ';
1221
+
1222
+ @override
1223
+ String get persona_builtin_section => 'プリセット';
1224
+
1225
+ @override
1226
+ String get persona_my_section => 'マイペルソナ';
1227
+
1228
+ @override
1229
+ String get clone_edit => '複製して編集';
1230
+
1231
+ @override
1232
+ String get builtin_badge => 'プリセット';
1233
+
1234
+ @override
1235
+ String get no_personas_found => 'ペルソナが見つかりません';
1236
+
1237
+ @override
1238
+ String get no_personas_desc => '最初のペルソナを作成して、AIの動作をカスタマイズしましょう。';
1239
+
1240
+ @override
1241
+ String get edit_persona => 'ペルソナを編集';
1242
+
1243
+ @override
1244
+ String get create_persona => 'ペルソナを作成';
1245
+
1246
+ @override
1247
+ String get create_persona_button => '作成';
1248
+
1249
+ @override
1250
+ String get emoji_label => '絵文字';
1251
+
1252
+ @override
1253
+ String get name_label => '名前';
1254
+
1255
+ @override
1256
+ String get my_persona_hint => 'マイペルソナ';
1257
+
1258
+ @override
1259
+ String get category_label => 'カテゴリ';
1260
+
1261
+ @override
1262
+ String get description_optional => '説明(オプション)';
1263
+
1264
+ @override
1265
+ String get description_hint => 'このペルソナの役割について...';
1266
+
1267
+ @override
1268
+ String get system_prompt => 'システムプロンプト';
1269
+
1270
+ @override
1271
+ String character_count_max(int currentLen) {
1272
+ return '$currentLen/4000';
1273
+ }
1274
+
1275
+ @override
1276
+ String get no_prompt_placeholder => 'プロンプトがまだありません...';
1277
+
1278
+ @override
1279
+ String get prompt_hint => 'あなたは親切なアシスタントです...';
1280
+
1281
+ @override
1282
+ String get prompt_required => 'システムプロンプトは必須です';
1283
+
1284
+ @override
1285
+ String get prompt_max_chars => '最大4000文字';
1286
+
1287
+ @override
1288
+ String get advanced_settings => '詳細設定';
1289
+
1290
+ @override
1291
+ String get temperature_label => '温度(0.0-2.0)';
1292
+
1293
+ @override
1294
+ String get top_p_label => 'Top P(0.0-1.0)';
1295
+
1296
+ @override
1297
+ String get temp_hint => '0.7';
1298
+
1299
+ @override
1300
+ String get top_p_hint => '0.9';
1301
+
1302
+ @override
1303
+ String get range_0_2 => '0.0-2.0';
1304
+
1305
+ @override
1306
+ String get range_0_1 => '0.0-1.0';
1307
+
1308
+ @override
1309
+ String get persona_updated => 'ペルソナを更新しました';
1310
+
1311
+ @override
1312
+ String get persona_created => 'ペルソナを作成しました';
1313
+
1314
+ @override
1315
+ String get tts_models_title => '音声合成モデル';
1316
+
1317
+ @override
1318
+ String get always_available => 'いつでも利用可能';
1319
+
1320
+ @override
1321
+ String get tts_system_desc =>
1322
+ 'デバイスの内蔵音声合成エンジンを使用します。\nダウンロードは不要です。音声の選択はデバイスのシステム設定を使用します。';
1323
+
1324
+ @override
1325
+ String get downloading_status => 'ダウンロード中...';
1326
+
1327
+ @override
1328
+ String tts_kitten_desc(String size) {
1329
+ return '8つの表現力豊かな音声を備えた超高速ニューラル音声合成。\nダウンロードサイズ: $size。';
1330
+ }
1331
+
1332
+ @override
1333
+ String tts_piper_desc(String size) {
1334
+ return '2つの表現力豊かな音声を備えた高速オフラインPiper音声。\n音声ごとに $size のダウンロードが必要です。';
1335
+ }
1336
+
1337
+ @override
1338
+ String engine_spec(String sizeMb, String ramMb, int voiceCount) {
1339
+ return '$sizeMb MB · $ramMb MB RAM · $voiceCount 音声';
1340
+ }
1341
+
1342
+ @override
1343
+ String get on_device_models_title => 'ローカルモデル';
1344
+
1345
+ @override
1346
+ String get available_models => '利用可能なモデル';
1347
+
1348
+ @override
1349
+ String get device_memory => 'デバイスのメモリ';
1350
+
1351
+ @override
1352
+ String get ram_usage => 'RAM使用量';
1353
+
1354
+ @override
1355
+ String get memory_healthy => '正常';
1356
+
1357
+ @override
1358
+ String get memory_critical => '致命的';
1359
+
1360
+ @override
1361
+ String get memory_low => '警告';
1362
+
1363
+ @override
1364
+ String ram_used(String percent) {
1365
+ return '$percent% 使用中';
1366
+ }
1367
+
1368
+ @override
1369
+ String get available_ram => '空き RAM';
1370
+
1371
+ @override
1372
+ String get total_capacity => '合計容量';
1373
+
1374
+ @override
1375
+ String get loaded_status => 'ロード済み';
1376
+
1377
+ @override
1378
+ String get inference_backend => '推論バックエンド';
1379
+
1380
+ @override
1381
+ String get backend_ios_notice => 'iOSではCPUバックエンドのみ利用可能です。';
1382
+
1383
+ @override
1384
+ String get backend_cpu_desc => 'すべてのデバイスで動作します。互換性が最も高いです。';
1385
+
1386
+ @override
1387
+ String get backend_gpu_desc => 'OpenCL アクセラレーション。サポートされているデバイスで高速に動作します。';
1388
+
1389
+ @override
1390
+ String get backend_npu_desc => 'ベンダー NPU (Qualcomm/MediaTek)。最も高速な推論。';
1391
+
1392
+ @override
1393
+ String get select_model_title => 'モデルを選択';
1394
+
1395
+ @override
1396
+ String get refresh_models => 'モデルを更新';
1397
+
1398
+ @override
1399
+ String get search_models_hint => 'モデルを検索...';
1400
+
1401
+ @override
1402
+ String get no_server_connected => 'サーバーが接続されていません';
1403
+
1404
+ @override
1405
+ String get add_server_first => '利用可能なモデルを表示するには、まずサーバーを追加してください。';
1406
+
1407
+ @override
1408
+ String get failed_load_models => 'モデルの読み込みに失敗しました';
1409
+
1410
+ @override
1411
+ String get no_models_available => '利用可能なモデルはありません';
1412
+
1413
+ @override
1414
+ String no_models_match(String searchQuery) {
1415
+ return '「$searchQuery」に一致するモデルはありません';
1416
+ }
1417
+
1418
+ @override
1419
+ String model_load_failed(String error) {
1420
+ return 'モデルの読み込みに失敗しました: $error';
1421
+ }
1422
+
1423
+ @override
1424
+ String model_unloaded_ollama(String name) {
1425
+ return 'キープアライブ時間を経過すると $name がアンロードされます';
1426
+ }
1427
+
1428
+ @override
1429
+ String model_unloaded_success(String name) {
1430
+ return '$name を正常にアンロードしました';
1431
+ }
1432
+
1433
+ @override
1434
+ String model_unload_failed(String error) {
1435
+ return 'モデルのアンロードに失敗しました: $error';
1436
+ }
1437
+
1438
+ @override
1439
+ String get unload_from_server => 'サーバーからアンロード';
1440
+
1441
+ @override
1442
+ String context_chip(String ctx) {
1443
+ return '$ctx コンテキスト';
1444
+ }
1445
+
1446
+ @override
1447
+ String download_notification_title(String modelName) {
1448
+ return '$modelName をダウンロード中...';
1449
+ }
1450
+
1451
+ @override
1452
+ String get download_complete_notification => 'ダウンロード完了!';
1453
+
1454
+ @override
1455
+ String download_complete_body(String modelName) {
1456
+ return '$modelName のダウンロードが正常に完了しました。';
1457
+ }
1458
+
1459
+ @override
1460
+ String download_failed_notification(String error) {
1461
+ return 'ダウンロード失敗: $error';
1462
+ }
1463
+
1464
+ @override
1465
+ String download_failed_body(String modelName) {
1466
+ return '$modelName のダウンロードに失敗しました。';
1467
+ }
1468
+
1469
+ @override
1470
+ String get engine_name_system => 'システム音声合成';
1471
+
1472
+ @override
1473
+ String get engine_tagline_system => 'デバイス内蔵エンジン';
1474
+
1475
+ @override
1476
+ String get engine_name_kitten => 'Kitten TTS';
1477
+
1478
+ @override
1479
+ String get engine_tagline_kitten => '高速ニューラル音声合成';
1480
+
1481
+ @override
1482
+ String get engine_name_sherpa => 'Sherpa ONNX VITS';
1483
+
1484
+ @override
1485
+ String get engine_tagline_sherpa => 'オフライン Piper 音声';
1486
+
1487
+ @override
1488
+ String get voice_jasper => 'Jasper';
1489
+
1490
+ @override
1491
+ String get voice_bella => 'Bella';
1492
+
1493
+ @override
1494
+ String get voice_bruno => 'Bruno';
1495
+
1496
+ @override
1497
+ String get voice_luna => 'Luna';
1498
+
1499
+ @override
1500
+ String get voice_hugo => 'Hugo';
1501
+
1502
+ @override
1503
+ String get voice_rosie => 'Rosie';
1504
+
1505
+ @override
1506
+ String get voice_leo => 'Leo';
1507
+
1508
+ @override
1509
+ String get voice_kiki => 'Kiki';
1510
+
1511
+ @override
1512
+ String get voice_lessac => 'Lessac (米国)';
1513
+
1514
+ @override
1515
+ String get voice_ryan => 'Ryan (米国)';
1516
+
1517
+ @override
1518
+ String get model_qwen_3 => 'Qwen 3 0.6B';
1519
+
1520
+ @override
1521
+ String get model_qwen_3_desc => '最小の汎用チャットモデル。高速な応答と低メモリ使用が特徴です。';
1522
+
1523
+ @override
1524
+ String get model_license_apache => 'Apache-2.0';
1525
+
1526
+ @override
1527
+ String get model_qwen_25 => 'Qwen 2.5 1.5B Instruct';
1528
+
1529
+ @override
1530
+ String get model_qwen_25_desc => '品質とサイズのバランスが取れたモデル。一般的な会話に適しています。';
1531
+
1532
+ @override
1533
+ String get model_deepseek => 'DeepSeek R1 Distill Qwen 1.5B';
1534
+
1535
+ @override
1536
+ String get model_deepseek_desc => '推論・思考プロセス(CoT)モデル。論理的なタスクに最適です。';
1537
+
1538
+ @override
1539
+ String get model_license_mit => 'MIT';
1540
+
1541
+ @override
1542
+ String get model_gemma => 'Gemma 4 E2B Instruct';
1543
+
1544
+ @override
1545
+ String get model_gemma_desc => 'Googleのフラッグシップモデル。最高品質ですが、より多くのRAMが必要です。';
1546
+
1547
+ @override
1548
+ String export_header(String date) {
1549
+ return '*LocalMindからエクスポート — $date*';
1550
+ }
1551
+
1552
+ @override
1553
+ String get export_role_user => '## 👤 ユーザー';
1554
+
1555
+ @override
1556
+ String get export_role_assistant => '## 🤖 アシスタント';
1557
+
1558
+ @override
1559
+ String get export_role_system => '## ⚙️ システム';
1560
+
1561
+ @override
1562
+ String get export_role_tool => '## 🔧 ツール';
1563
+
1564
+ @override
1565
+ String get export_text_user => '[ユーザー]';
1566
+
1567
+ @override
1568
+ String get export_text_assistant => '[アシスタント]';
1569
+
1570
+ @override
1571
+ String get export_text_system => '[システム]';
1572
+
1573
+ @override
1574
+ String get export_text_tool => '[ツール]';
1575
+
1576
+ @override
1577
+ String get export_label_user => 'ユーザー';
1578
+
1579
+ @override
1580
+ String get export_label_assistant => 'アシスタント';
1581
+
1582
+ @override
1583
+ String get export_label_system => 'システム';
1584
+
1585
+ @override
1586
+ String get export_label_tool => 'ツール';
1587
+
1588
+ @override
1589
+ String get select_model_hint => 'モデルを選択してチャットを開始';
1590
+
1591
+ @override
1592
+ String get test_notification_title => 'テスト通知';
1593
+
1594
+ @override
1595
+ String get test_notification_body => 'これはモデルのダウンロード進捗用のテスト通知です。';
1596
+}