26 files changed
+4760
-1877
README.md
+3
@@ -8,6 +8,9 @@ LocalMind is a premium Flutter mobile application designed to provide a beautifu
8

9
10
<p align="center">
11
+ <a href="https://apps.apple.com/us/app/localmind-ollama-lm-studio/id6777025480">
12
+ <img src="docs/appstore_download_button.svg" width="200" />
13
+ </a>
14
<a href="https://play.google.com/store/apps/details?id=pro.momin.localmind">
15
<img src="docs/playstore_download_button.webp" width="200" />
16
</a>
docs/appstore_download_button.svg
new
+46
@@ -0,0 +1,46 @@
1
+<svg id="livetype" xmlns="http://www.w3.org/2000/svg" width="119.66407" height="40" viewBox="0 0 119.66407 40">
2
+ <title>Download_on_the_App_Store_Badge_US-UK_RGB_blk_4SVG_092917</title>
3
+ <g>
4
+ <g>
5
+ <g>
6
+ <path d="M110.13477,0H9.53468c-.3667,0-.729,0-1.09473.002-.30615.002-.60986.00781-.91895.0127A13.21476,13.21476,0,0,0,5.5171.19141a6.66509,6.66509,0,0,0-1.90088.627A6.43779,6.43779,0,0,0,1.99757,1.99707,6.25844,6.25844,0,0,0,.81935,3.61816a6.60119,6.60119,0,0,0-.625,1.90332,12.993,12.993,0,0,0-.1792,2.002C.00587,7.83008.00489,8.1377,0,8.44434V31.5586c.00489.3105.00587.6113.01515.9219a12.99232,12.99232,0,0,0,.1792,2.0019,6.58756,6.58756,0,0,0,.625,1.9043A6.20778,6.20778,0,0,0,1.99757,38.001a6.27445,6.27445,0,0,0,1.61865,1.1787,6.70082,6.70082,0,0,0,1.90088.6308,13.45514,13.45514,0,0,0,2.0039.1768c.30909.0068.6128.0107.91895.0107C8.80567,40,9.168,40,9.53468,40H110.13477c.3594,0,.7246,0,1.084-.002.3047,0,.6172-.0039.9219-.0107a13.279,13.279,0,0,0,2-.1768,6.80432,6.80432,0,0,0,1.9082-.6308,6.27742,6.27742,0,0,0,1.6172-1.1787,6.39482,6.39482,0,0,0,1.1816-1.6143,6.60413,6.60413,0,0,0,.6191-1.9043,13.50643,13.50643,0,0,0,.1856-2.0019c.0039-.3106.0039-.6114.0039-.9219.0078-.3633.0078-.7246.0078-1.0938V9.53613c0-.36621,0-.72949-.0078-1.09179,0-.30664,0-.61426-.0039-.9209a13.5071,13.5071,0,0,0-.1856-2.002,6.6177,6.6177,0,0,0-.6191-1.90332,6.46619,6.46619,0,0,0-2.7988-2.7998,6.76754,6.76754,0,0,0-1.9082-.627,13.04394,13.04394,0,0,0-2-.17676c-.3047-.00488-.6172-.01074-.9219-.01269-.3594-.002-.7246-.002-1.084-.002Z" style="fill: #a6a6a6"/>
7
+ <path d="M8.44483,39.125c-.30468,0-.602-.0039-.90429-.0107a12.68714,12.68714,0,0,1-1.86914-.1631,5.88381,5.88381,0,0,1-1.65674-.5479,5.40573,5.40573,0,0,1-1.397-1.0166,5.32082,5.32082,0,0,1-1.02051-1.3965,5.72186,5.72186,0,0,1-.543-1.6572,12.41351,12.41351,0,0,1-.1665-1.875c-.00634-.2109-.01464-.9131-.01464-.9131V8.44434S.88185,7.75293.8877,7.5498a12.37039,12.37039,0,0,1,.16553-1.87207,5.7555,5.7555,0,0,1,.54346-1.6621A5.37349,5.37349,0,0,1,2.61183,2.61768,5.56543,5.56543,0,0,1,4.01417,1.59521a5.82309,5.82309,0,0,1,1.65332-.54394A12.58589,12.58589,0,0,1,7.543.88721L8.44532.875H111.21387l.9131.0127a12.38493,12.38493,0,0,1,1.8584.16259,5.93833,5.93833,0,0,1,1.6709.54785,5.59374,5.59374,0,0,1,2.415,2.41993,5.76267,5.76267,0,0,1,.5352,1.64892,12.995,12.995,0,0,1,.1738,1.88721c.0029.2832.0029.5874.0029.89014.0079.375.0079.73193.0079,1.09179V30.4648c0,.3633,0,.7178-.0079,1.0752,0,.3252,0,.6231-.0039.9297a12.73126,12.73126,0,0,1-.1709,1.8535,5.739,5.739,0,0,1-.54,1.67,5.48029,5.48029,0,0,1-1.0156,1.3857,5.4129,5.4129,0,0,1-1.3994,1.0225,5.86168,5.86168,0,0,1-1.668.5498,12.54218,12.54218,0,0,1-1.8692.1631c-.2929.0068-.5996.0107-.8974.0107l-1.084.002Z"/>
8
+ </g>
9
+ <g id="_Group_" data-name="<Group>">
10
+ <g id="_Group_2" data-name="<Group>">
11
+ <g id="_Group_3" data-name="<Group>">
12
+ <path id="_Path_" data-name="<Path>" d="M24.76888,20.30068a4.94881,4.94881,0,0,1,2.35656-4.15206,5.06566,5.06566,0,0,0-3.99116-2.15768c-1.67924-.17626-3.30719,1.00483-4.1629,1.00483-.87227,0-2.18977-.98733-3.6085-.95814a5.31529,5.31529,0,0,0-4.47292,2.72787c-1.934,3.34842-.49141,8.26947,1.3612,10.97608.9269,1.32535,2.01018,2.8058,3.42763,2.7533,1.38706-.05753,1.9051-.88448,3.5794-.88448,1.65876,0,2.14479.88448,3.591.8511,1.48838-.02416,2.42613-1.33124,3.32051-2.66914a10.962,10.962,0,0,0,1.51842-3.09251A4.78205,4.78205,0,0,1,24.76888,20.30068Z" style="fill: #fff"/>
13
+ <path id="_Path_2" data-name="<Path>" d="M22.03725,12.21089a4.87248,4.87248,0,0,0,1.11452-3.49062,4.95746,4.95746,0,0,0-3.20758,1.65961,4.63634,4.63634,0,0,0-1.14371,3.36139A4.09905,4.09905,0,0,0,22.03725,12.21089Z" style="fill: #fff"/>
14
+ </g>
15
+ </g>
16
+ <g>
17
+ <path d="M42.30227,27.13965h-4.7334l-1.13672,3.35645H34.42727l4.4834-12.418h2.083l4.4834,12.418H43.438ZM38.0591,25.59082h3.752l-1.84961-5.44727h-.05176Z" style="fill: #fff"/>
18
+ <path d="M55.15969,25.96973c0,2.81348-1.50586,4.62109-3.77832,4.62109a3.0693,3.0693,0,0,1-2.84863-1.584h-.043v4.48438h-1.8584V21.44238H48.4302v1.50586h.03418a3.21162,3.21162,0,0,1,2.88281-1.60059C53.645,21.34766,55.15969,23.16406,55.15969,25.96973Zm-1.91016,0c0-1.833-.94727-3.03809-2.39258-3.03809-1.41992,0-2.375,1.23047-2.375,3.03809,0,1.82422.95508,3.0459,2.375,3.0459C52.30227,29.01563,53.24953,27.81934,53.24953,25.96973Z" style="fill: #fff"/>
19
+ <path d="M65.12453,25.96973c0,2.81348-1.50586,4.62109-3.77832,4.62109a3.0693,3.0693,0,0,1-2.84863-1.584h-.043v4.48438h-1.8584V21.44238H58.395v1.50586h.03418A3.21162,3.21162,0,0,1,61.312,21.34766C63.60988,21.34766,65.12453,23.16406,65.12453,25.96973Zm-1.91016,0c0-1.833-.94727-3.03809-2.39258-3.03809-1.41992,0-2.375,1.23047-2.375,3.03809,0,1.82422.95508,3.0459,2.375,3.0459C62.26711,29.01563,63.21438,27.81934,63.21438,25.96973Z" style="fill: #fff"/>
20
+ <path d="M71.71047,27.03613c.1377,1.23145,1.334,2.04,2.96875,2.04,1.56641,0,2.69336-.80859,2.69336-1.91895,0-.96387-.67969-1.541-2.28906-1.93652 l-1.60937-.3877c-2.28027-.55078-3.33887-1.61719-3.33887-3.34766,0-2.14258,1.86719-3.61426,4.51855-3.61426,2.624,0,4.42285,1.47168,4.4834,3.61426h-1.876c-.1123-1.23926-1.13672-1.9873-2.63379-1.9873s-2.52148.75684-2.52148,1.8584c0,.87793.6543,1.39453,2.25488,1.79l1.36816.33594c2.54785.60254,3.60645,1.626,3.60645,3.44238,0,2.32324-1.85059,3.77832-4.79395,3.77832-2.75391,0-4.61328-1.4209-4.7334-3.667Z" style="fill: #fff"/>
21
+ <path d="M83.34621,19.2998v2.14258h1.72168v1.47168H83.34621v4.99121c0,.77539.34473,1.13672,1.10156,1.13672a5.80752,5.80752,0,0,0,.61133-.043v1.46289a5.10351,5.10351,0,0,1-1.03223.08594c-1.833,0-2.54785-.68848-2.54785-2.44434V22.91406H80.16262V21.44238H81.479V19.2998Z" style="fill: #fff"/>
22
+ <path d="M86.065,25.96973c0-2.84863,1.67773-4.63867,4.29395-4.63867,2.625,0,4.29492,1.79,4.29492,4.63867,0,2.85645-1.66113,4.63867-4.29492,4.63867C87.72609,30.6084,86.065,28.82617,86.065,25.96973Zm6.69531,0c0-1.9541-.89551-3.10742-2.40137-3.10742s-2.40039,1.16211-2.40039,3.10742c0,1.96191.89453,3.10645,2.40039,3.10645S92.76027,27.93164,92.76027,25.96973Z" style="fill: #fff"/>
23
+ <path d="M96.18606,21.44238h1.77246v1.541h.043a2.1594,2.1594,0,0,1,2.17773-1.63574,2.86616,2.86616,0,0,1,.63672.06934v1.73828a2.59794,2.59794,0,0,0-.835-.1123,1.87264,1.87264,0,0,0-1.93652,2.083v5.37012h-1.8584Z" style="fill: #fff"/>
24
+ <path d="M109.3843,27.83691c-.25,1.64355-1.85059,2.77148-3.89844,2.77148-2.63379,0-4.26855-1.76465-4.26855-4.5957,0-2.83984,1.64355-4.68164,4.19043-4.68164,2.50488,0,4.08008,1.7207,4.08008,4.46582v.63672h-6.39453v.1123a2.358,2.358,0,0,0,2.43555,2.56445,2.04834,2.04834,0,0,0,2.09082-1.27344Zm-6.28223-2.70215h4.52637a2.1773,2.1773,0,0,0-2.2207-2.29785A2.292,2.292,0,0,0,103.10207,25.13477Z" style="fill: #fff"/>
25
+ </g>
26
+ </g>
27
+ </g>
28
+ <g id="_Group_4" data-name="<Group>">
29
+ <g>
30
+ <path d="M37.82619,8.731a2.63964,2.63964,0,0,1,2.80762,2.96484c0,1.90625-1.03027,3.002-2.80762,3.002H35.67092V8.731Zm-1.22852,5.123h1.125a1.87588,1.87588,0,0,0,1.96777-2.146,1.881,1.881,0,0,0-1.96777-2.13379h-1.125Z" style="fill: #fff"/>
31
+ <path d="M41.68068,12.44434a2.13323,2.13323,0,1,1,4.24707,0,2.13358,2.13358,0,1,1-4.24707,0Zm3.333,0c0-.97607-.43848-1.54687-1.208-1.54687-.77246,0-1.207.5708-1.207,1.54688,0,.98389.43457,1.55029,1.207,1.55029C44.57522,13.99463,45.01369,13.42432,45.01369,12.44434Z" style="fill: #fff"/>
32
+ <path d="M51.57326,14.69775h-.92187l-.93066-3.31641h-.07031l-.92676,3.31641h-.91309l-1.24121-4.50293h.90137l.80664,3.436h.06641l.92578-3.436h.85254l.92578,3.436h.07031l.80273-3.436h.88867Z" style="fill: #fff"/>
33
+ <path d="M53.85354,10.19482H54.709v.71533h.06641a1.348,1.348,0,0,1,1.34375-.80225,1.46456,1.46456,0,0,1,1.55859,1.6748v2.915h-.88867V12.00586c0-.72363-.31445-1.0835-.97168-1.0835a1.03294,1.03294,0,0,0-1.0752,1.14111v2.63428h-.88867Z" style="fill: #fff"/>
34
+ <path d="M59.09377,8.437h.88867v6.26074h-.88867Z" style="fill: #fff"/>
35
+ <path d="M61.21779,12.44434a2.13346,2.13346,0,1,1,4.24756,0,2.1338,2.1338,0,1,1-4.24756,0Zm3.333,0c0-.97607-.43848-1.54687-1.208-1.54687-.77246,0-1.207.5708-1.207,1.54688,0,.98389.43457,1.55029,1.207,1.55029C64.11232,13.99463,64.5508,13.42432,64.5508,12.44434Z" style="fill: #fff"/>
36
+ <path d="M66.4009,13.42432c0-.81055.60352-1.27783,1.6748-1.34424l1.21973-.07031v-.38867c0-.47559-.31445-.74414-.92187-.74414-.49609,0-.83984.18213-.93848.50049h-.86035c.09082-.77344.81836-1.26953,1.83984-1.26953,1.12891,0,1.76563.562,1.76563,1.51318v3.07666h-.85547v-.63281h-.07031a1.515,1.515,0,0,1-1.35254.707A1.36026,1.36026,0,0,1,66.4009,13.42432Zm2.89453-.38477v-.37646l-1.09961.07031c-.62012.0415-.90137.25244-.90137.64941,0,.40527.35156.64111.835.64111A1.0615,1.0615,0,0,0,69.29543,13.03955Z" style="fill: #fff"/>
37
+ <path d="M71.34816,12.44434c0-1.42285.73145-2.32422,1.86914-2.32422a1.484,1.484,0,0,1,1.38086.79h.06641V8.437h.88867v6.26074h-.85156v-.71143h-.07031a1.56284,1.56284,0,0,1-1.41406.78564C72.0718,14.772,71.34816,13.87061,71.34816,12.44434Zm.918,0c0,.95508.4502,1.52979,1.20313,1.52979.749,0,1.21191-.583,1.21191-1.52588,0-.93848-.46777-1.52979-1.21191-1.52979C72.72121,10.91846,72.26613,11.49707,72.26613,12.44434Z" style="fill: #fff"/>
38
+ <path d="M79.23,12.44434a2.13323,2.13323,0,1,1,4.24707,0,2.13358,2.13358,0,1,1-4.24707,0Zm3.333,0c0-.97607-.43848-1.54687-1.208-1.54687-.77246,0-1.207.5708-1.207,1.54688,0,.98389.43457,1.55029,1.207,1.55029C82.12453,13.99463,82.563,13.42432,82.563,12.44434Z" style="fill: #fff"/>
39
+ <path d="M84.66945,10.19482h.85547v.71533h.06641a1.348,1.348,0,0,1,1.34375-.80225,1.46456,1.46456,0,0,1,1.55859,1.6748v2.915H87.605V12.00586c0-.72363-.31445-1.0835-.97168-1.0835a1.03294,1.03294,0,0,0-1.0752,1.14111v2.63428h-.88867Z" style="fill: #fff"/>
40
+ <path d="M93.51516,9.07373v1.1416h.97559v.74854h-.97559V13.2793c0,.47168.19434.67822.63672.67822a2.96657,2.96657,0,0,0,.33887-.02051v.74023a2.9155,2.9155,0,0,1-.4834.04541c-.98828,0-1.38184-.34766-1.38184-1.21582v-2.543h-.71484v-.74854h.71484V9.07373Z" style="fill: #fff"/>
41
+ <path d="M95.70461,8.437h.88086v2.48145h.07031a1.3856,1.3856,0,0,1,1.373-.80664,1.48339,1.48339,0,0,1,1.55078,1.67871v2.90723H98.69v-2.688c0-.71924-.335-1.0835-.96289-1.0835a1.05194,1.05194,0,0,0-1.13379,1.1416v2.62988h-.88867Z" style="fill: #fff"/>
42
+ <path d="M104.76125,13.48193a1.828,1.828,0,0,1-1.95117,1.30273A2.04531,2.04531,0,0,1,100.73,12.46045a2.07685,2.07685,0,0,1,2.07617-2.35254c1.25293,0,2.00879.856,2.00879,2.27V12.688h-3.17969v.0498a1.1902,1.1902,0,0,0,1.19922,1.29,1.07934,1.07934,0,0,0,1.07129-.5459Zm-3.126-1.45117h2.27441a1.08647,1.08647,0,0,0-1.1084-1.1665A1.15162,1.15162,0,0,0,101.63527,12.03076Z" style="fill: #fff"/>
43
+ </g>
44
+ </g>
45
+ </g>
46
+</svg>
lib/features/chat/views/components/chat_bubble/attachment_list.dart
+3
-1
@@ -4,6 +4,7 @@ import 'package:localmind/core/theme/colors.dart';
4
import 'package:localmind/features/chat/views/components/image_preview_dialog.dart';
5
import 'package:localmind/features/chat/utils/attachment_helpers.dart';
6
import 'package:localmind/features/chat/views/components/audio_player_widget.dart';
7
+import 'package:localmind/l10n/app_localizations.dart';
8
9
class AttachmentList extends StatelessWidget {
10
const AttachmentList({super.key, required this.paths, required this.isUser});
@@ -34,8 +35,9 @@ class _AttachmentItem extends StatelessWidget {
35
final text = await AttachmentHelpers.readTextFile(path);
36
if (!context.mounted) return;
37
if (text == null) {
38
+ final l10n = AppLocalizations.of(context)!;
39
ScaffoldMessenger.of(context).showSnackBar(
38
- const SnackBar(content: Text('Could not read file')),
40
+ SnackBar(content: Text(l10n.could_not_read_file)),
41
);
42
return;
43
}
lib/features/models/components/model_list.dart
+3
-3
@@ -192,7 +192,7 @@ class _ModelListState extends ConsumerState<ModelList> {
192
Icon(Icons.cloud_off_rounded, size: 64, color: Colors.red[300]),
193
const SizedBox(height: 16),
194
Text(
195
- 'Server Offline',
195
+ l10n.server_offline,
196
style: TextStyle(
197
fontSize: 18,
198
fontWeight: FontWeight.bold,
@@ -201,7 +201,7 @@ class _ModelListState extends ConsumerState<ModelList> {
201
),
202
const SizedBox(height: 8),
203
Text(
204
- 'Could not establish a connection to the server. Please check if your server is running and the host/port settings are correct.',
204
+ l10n.could_not_establish_connection,
205
style: TextStyle(
206
fontSize: 13,
207
color: widget.isDark ? AppColors.darkMutedText : AppColors.lightMutedText,
@@ -215,7 +215,7 @@ class _ModelListState extends ConsumerState<ModelList> {
215
ref.invalidate(availableModelsProvider(widget.serverId));
216
},
217
icon: const Icon(Icons.refresh),
218
- label: const Text('Retry Connection'),
218
+ label: Text(l10n.retry_connection),
219
),
220
],
221
),
lib/features/models/components/model_tile.dart
+4
-3
@@ -187,6 +187,7 @@ class _ModelCapabilityIcons extends StatelessWidget {
187
188
@override
189
Widget build(BuildContext context) {
190
+ final l10n = AppLocalizations.of(context)!;
191
final color = isDark ? AppColors.darkMutedText : AppColors.lightMutedText;
192
193
return Row(
@@ -195,19 +196,19 @@ class _ModelCapabilityIcons extends StatelessWidget {
196
if (model.supportsVision)
197
_CapabilityIcon(
198
icon: LucideIcons.eye,
198
- tooltip: 'Vision',
199
+ tooltip: l10n.lm_studio_vision,
200
color: color,
201
),
202
if (model.supportsReasoning)
203
_CapabilityIcon(
204
icon: LucideIcons.brain,
204
- tooltip: 'Reasoning',
205
+ tooltip: l10n.lm_studio_reasoning,
206
color: color,
207
),
208
if (model.supportsToolUse)
209
_CapabilityIcon(
210
icon: LucideIcons.hammer,
210
- tooltip: 'Tool use',
211
+ tooltip: l10n.lm_studio_tool_use,
212
color: color,
213
),
214
],
lib/features/models/views/model_picker_sheet.dart
+2
-2
@@ -470,8 +470,8 @@ class __ContextLengthEditDialogState
470
autofocus: true,
471
keyboardType: TextInputType.number,
472
decoration: InputDecoration(
473
- labelText: 'Tokens',
474
- hintText: 'Enter context length...',
473
+ labelText: l10n.tokens_label,
474
+ hintText: l10n.enter_context_length,
475
border: OutlineInputBorder(
476
borderRadius: BorderRadius.circular(10),
477
),
lib/l10n/app_ar.arb
+221
-2
@@ -602,5 +602,224 @@
602
"tool_status_rejected": "Rejected",
603
"tool_status_running": "Running",
604
"tool_status_done": "Done",
605
- "tool_status_failed": "Failed"
606
-}
605
+ "tool_status_failed": "Failed",
606
+ "delete_builtin_persona_body": "هذه شخصية مدمجة. يمكنك استعادتها لاحقًا من الإعدادات.",
607
+ "restore_builtin_personas": "استعادة الشخصيات الافتراضية",
608
+ "restore_builtin_personas_desc": "إعادة إضافة أي شخصيات مدمجة قمت بحذفها",
609
+ "restore_builtin_personas_success": "تم استعادة الشخصيات الافتراضية",
610
+ "clear_personas": "مسح الشخصيات",
611
+ "enable_image_compression": "ضغط الصور قبل الإرسال",
612
+ "enable_image_compression_desc": "تغيير حجم الصور المرفقة وضغطها لتبقى عمليات التحميل ضمن حدود الخادم",
613
+ "image_compression_level": "درجة ضغط الصور",
614
+ "image_compression_level_desc": "الضغط العالي ينتج أحجام تحميل أصغر بجودة أقل",
615
+ "image_compression_level_low": "منخفض",
616
+ "image_compression_level_medium": "متوسط",
617
+ "image_compression_level_high": "مرتفع",
618
+ "sort_models_tooltip": "فرز النماذج",
619
+ "sort_by_favorites": "المفضلة أولاً",
620
+ "sort_by_name": "الاسم (أ-ي)",
621
+ "sort_by_size_smallest": "الحجم (الأصغر أولاً)",
622
+ "sort_by_size_largest": "الحجم (الأكبر أولاً)",
623
+ "sort_by_context_length": "طول السياق",
624
+ "bulk_ai_rename_progress": "إعادة تسمية {done}/{total}...",
625
+ "selected_count": "تم تحديد {count}",
626
+ "ai_rename_tooltip": "إعادة تسمية العناصر المحددة بواسطة الذكاء الاصطناعي",
627
+ "new_chat_in_folder_tooltip": "دردشة جديدة في هذا المجلد",
628
+ "total_tokens_count": "{count} من الرموز",
629
+ "smart_replies_use_persona": "استخدام الشخصية في الردود الذكية",
630
+ "smart_replies_use_persona_desc": "تتطابق الردود المقترحة مع نبرة الشخصية النشطة بدلاً من مساعد عام",
631
+ "keep_persona_on_new_chat": "الاحتفاظ بالشخصية عند بدء دردشة جديدة",
632
+ "keep_persona_on_new_chat_desc": "لا تقم بمسح الشخصية المحددة بعد بدء دردشة جديدة",
633
+ "role_swap_button_enabled": "إظهار زر تبديل الأدوار",
634
+ "role_swap_button_enabled_desc": "إظهار زر في مدخلات الدردشة لإرسال رسالتك كدور مساعد بدلاً من المستخدم، دون إنشاء رد",
635
+ "send_as_user_tooltip": "إرسال كمستخدم",
636
+ "send_as_assistant_tooltip": "إرسال كمساعد (بدون رد)",
637
+ "insert_without_generating_tooltip": "إدراج دون إنشاء رد",
638
+ "token_usage_title": "استخدام الرموز (Tokens)",
639
+ "total_tokens_label": "الرموز المستخدمة",
640
+ "usage_percent_label": "السياق المستخدم",
641
+ "export_choice_title": "تصدير",
642
+ "export_choice_body": "كيف ترغب في تصدير هذا؟",
643
+ "copy_to_clipboard": "نسخ إلى الحافظة",
644
+ "bulk_export_conversations_success": "تم تصدير {count} من المحادثات",
645
+ "bulk_ai_rename_confirm_title": "إعادة التسمية بالذكاء الاصطناعي؟",
646
+ "bulk_ai_rename_confirm_body": "سيؤدي هذا إلى جعل الذكاء الاصطناعي ينشئ عنوانًا جديدًا لكل من المحادثات المحددة الـ {count}، ليحل محل عناوينها الحالية. قد يستغرق هذا بعض الوقت ولا يمكن التراجع عنه.",
647
+ "sort_by_modified_date": "آخر تعديل",
648
+ "sort_by_created_date": "تاريخ الإنشاء",
649
+ "sort_title": "فرز",
650
+ "ai_user_response_enabled": "رسالة مستخدم بالذكاء الاصطناعي (اضغط مطولاً)",
651
+ "ai_user_response_enabled_desc": "اضغط مع الاستمرار على زر الإرسال لمدة 3 ثوانٍ ليقوم الذكاء الاصطناعي بكتابة وإرسال رسالتك التالية",
652
+ "ai_user_response_tooltip": "إنشاء رسالة مستخدم بالذكاء الاصطناعي",
653
+ "show_system_messages_desc": "عند عدم تحديد أي شخصية، أرسل مطالبة نظام المساعد الافتراضية مع كل طلب",
654
+ "show_system_messages_in_chat": "إظهار رسائل النظام في الدردشة",
655
+ "show_system_messages_in_chat_desc": "عرض رسائل النظام (على سبيل المثال من نسخة احتياطية مستوردة) كفقاعات مرئية في المحادثة",
656
+ "manage_personas": "إدارة الشخصيات",
657
+ "personas_combine_hint": "سيتم دمج الشخصيات المحددة",
658
+ "unload_all_models": "إلغاء تحميل جميع النماذج",
659
+ "loaded_models_count": "تم تحميل {count} نموذج",
660
+ "all_models_unloaded": "تم إلغاء تحميل جميع النماذج",
661
+ "branch_chat": "تفريع الدردشة",
662
+ "branch_chat_desc": "إنشاء دردشة جديدة بدءًا من هذه الرسالة",
663
+ "edit_assistant_message_desc": "تعديل محتوى رسالة المساعد",
664
+ "switch_to_model": "التبديل إلى النموذج {model}",
665
+ "model_favorite_toggle": "تبديل المفضلة",
666
+ "model_note_label": "ملاحظة",
667
+ "model_note_hint": "أضف ملاحظة خاصة لهذا النموذج...",
668
+ "unload_models_before_load": "إلغاء تحميل النماذج قبل التحميل الجديد",
669
+ "temp_chat_keyboard_incognito": "لوحة مفاتيح متخفية في الدردشة المؤقتة",
670
+ "temp_chat_keyboard_incognito_desc": "طلب عدم حفظ سجل الكتابة من لوحة مفاتيح النظام أثناء الدردشات المؤقتة",
671
+ "resume_last_chat": "استئناف الدردشة الأخيرة",
672
+ "resume_last_chat_desc": "افتح تلقائيًا آخر محادثة نشطة عند البدء",
673
+ "export_all_data": "تصدير جميع البيانات",
674
+ "import_all_data": "استيراد جميع البيانات",
675
+ "export_data_success": "تم تصدير البيانات بنجاح",
676
+ "import_data_success": "تم استيراد البيانات بنجاح",
677
+ "import_data_failed": "فشل استيراد البيانات",
678
+ "import_data_confirm": "سيؤدي هذا إلى استبدال جميع بياناتك الحالية بالبيانات المستوردة. هل تريد الاستمرار؟",
679
+ "import_settings_confirm": "سيؤدي هذا إلى استبدال إعداداتك الحالية بالإعدادات المستوردة. هل تريد الاستمرار؟",
680
+ "export_conversations": "تصدير المحادثات",
681
+ "import_conversations": "استيراد المحادثات",
682
+ "export_personas": "تصدير الشخصيات",
683
+ "import_personas": "استيراد الشخصيات",
684
+ "export_settings": "تصدير الإعدادات",
685
+ "import_settings": "استيراد الإعدادات",
686
+ "export_all_zip": "تصدير الكل (ZIP)",
687
+ "import_all_zip": "استيراد الكل (ZIP)",
688
+ "duplicate_chat": "تكرار الدردشة",
689
+ "duplicate_chat_success": "تم تكرار الدردشة بنجاح",
690
+ "move_to_folder": "نقل إلى مجلد",
691
+ "remove_from_folder": "إزالة من المجلد",
692
+ "create_folder": "إنشاء مجلد",
693
+ "new_folder": "مجلد جديد",
694
+ "folder_name_hint": "أدخل اسم المجلد...",
695
+ "all_chats": "جميع الدردشات",
696
+ "unfiled_chats": "دردشات غير مصنفة",
697
+ "create": "إنشاء",
698
+ "server_path_prefix_label": "بادئة مسار الخادم",
699
+ "server_path_prefix_hint": "بادئة اختيارية لمسارات واجهة برمجة تطبيقات الخادم (على سبيل المثال /v1)",
700
+ "search_message_contents": "البحث في محتوى الرسائل...",
701
+ "message_search_results": "نتائج البحث في الرسائل",
702
+ "saved_messages_title": "الرسائل المحفوظة",
703
+ "nav_saved_messages": "الرسائل المحفوظة",
704
+ "saved_messages_empty": "لا توجد رسائل محفوظة بعد",
705
+ "save_message": "حفظ الرسالة",
706
+ "message_saved": "تم حفظ الرسالة",
707
+ "token_count": "الرموز: {count}",
708
+ "estimated_token_count": "الرموز المقدرة: {count}",
709
+ "test_tts_section_title": "اختبار تحويل النص إلى كلام",
710
+ "test_tts_hint": "اكتب شيئًا لاختبار الصوت...",
711
+ "test_speak_button": "تحدث",
712
+ "scroll_to_bottom": "التمرير إلى الأسفل",
713
+ "generate_ai_response": "إنشاء رد بالذكاء الاصطناعي",
714
+ "no_response": "لا يوجد رد",
715
+ "export": "تصدير",
716
+ "import": "استيراد",
717
+ "conversations_label": "المحادثات",
718
+ "personas_label": "الشخصيات",
719
+ "settings_label": "الإعدادات",
720
+ "export_conversation": "تصدير المحادثة",
721
+ "tts_process_markdown": "معالجة التنسيق (Markdown)",
722
+ "tts_process_markdown_desc": "إزالة التنسيق مثل الخط **العريض** قبل القراءة بصوت عالٍ",
723
+ "tts_skip_seconds": "ثواني التخطي",
724
+ "tts_skip_seconds_desc": "الوقت للتخطي للأمام/الخلف في مشغل الصوت",
725
+ "tts_skip_seconds_value": "{seconds} ثانية",
726
+ "preview_system_prompts": "معاينة مطالبات النظام",
727
+ "welcome_message_1": "مرحبًا! أنا مساعدك المحلي للذكاء الاصطناعي.",
728
+ "welcome_message_2": "اسألني عن أي شيء - أنا جاهز عندما تكون مستعدًا.",
729
+ "welcome_message_3": "يتم معالجة بياناتك محليًا ولا تغادر جهازك أبدًا.",
730
+ "welcome_message_4": "للبدء، حدد نموذجًا من الشريط العلوي أو أضف نموذجًا جديدًا في قسم إدارة النماذج.",
731
+ "temporary_chat": "دردشة مؤقتة",
732
+ "temporary_chat_desc": "لن يتم حفظ الرسائل في هذه الدردشة في السجل",
733
+ "temporary_chat_banner": "الدردشة المؤقتة نشطة — لن يتم حفظ السجل",
734
+ "temporary_chat_save_warning_title": "حفظ الدردشة المؤقتة؟",
735
+ "temporary_chat_save_warning_body": "هذه الدردشة غير محفوظة في السجل الخاص بك. هل تريد حفظها الآن؟",
736
+ "save_to_history": "حفظ في السجل",
737
+ "share_conversation": "مشاركة المحادثة",
738
+ "download_tts_audio": "تنزيل الصوت",
739
+ "tts_download_unavailable": "تنزيل الصوت غير متاح",
740
+ "tts_download_no_audio": "لا يوجد صوت تم إنشاؤه لتنزيله",
741
+ "tts_download_success": "تم حفظ الصوت بنجاح",
742
+ "return_to_chat": "العودة إلى الدردشة",
743
+ "return_to_temp_chat": "العودة إلى الدردشة المؤقتة",
744
+ "insert_saved_message": "إدراج رسالة محفوظة",
745
+ "insert_saved_message_desc": "إضافة مقتطف من رسائلك المحفوظة إلى الدردشة",
746
+ "model_info": "معلومات النموذج",
747
+ "model_name": "اسم النموذج",
748
+ "model_identifier": "معرف النموذج",
749
+ "not_available": "غير متاح",
750
+ "save_message_folders": "حفظ في المجلدات",
751
+ "remove_from_saved": "إزالة من المحفوظات",
752
+ "message_already_saved": "الرسالة محفوظة بالفعل",
753
+ "stream_ttft": "الوقت حتى الرمز الأول",
754
+ "stream_tokens_per_sec": "الرموز في الثانية",
755
+ "stream_stop_reason": "سبب التوقف",
756
+ "stream_input_tokens": "رموز الإدخال",
757
+ "stream_output_tokens": "رموز الإخراج",
758
+ "stream_generation_time": "وقت الإنشاء",
759
+ "attach_image": "إرفاق صورة",
760
+ "attach_text_document": "إرفاق مستند نصي",
761
+ "add_attachment": "إضافة مرفق",
762
+ "photo_permission_denied": "تم رفض إذن الوصول إلى الصور",
763
+ "characters_label": "الحروف",
764
+ "exit_temporary_chat_title": "الخروج من الدردشة المؤقتة؟",
765
+ "exit_temporary_chat_body": "سيؤدي هذا إلى حذف المحادثة الحالية نهائيًا. هل تريد الاستمرار؟",
766
+ "saved_message_temp_snap_unavailable": "لقطات الرسائل غير متوفرة في الدردشات المؤقتة",
767
+ "filter_title": "تصفية الدردشات",
768
+ "filter_pinned": "المثبتة",
769
+ "filter_archived": "المؤرشفة",
770
+ "filter_temp_chats": "الدردشات المؤقتة",
771
+ "filter_user_messages": "رسائل المستخدم",
772
+ "filter_assistant_messages": "رسائل المساعد",
773
+ "archive_chat": "أرشفة الدردشة",
774
+ "unarchive_chat": "إلغاء أرشفة الدردشة",
775
+ "conversation_message_count": "{count} رسالة",
776
+ "conversation_character_count": "{count} حرف",
777
+ "generate_title_with_ai": "إنشاء عنوان بالذكاء الاصطناعي",
778
+ "generating_title": "جاري إنشاء العنوان...",
779
+ "generate_title_failed": "تعذر إنشاء العنوان",
780
+ "lm_studio_model_browser_title": "متصفح النماذج",
781
+ "lm_studio_model_search_hint": "البحث عن نماذج...",
782
+ "lm_studio_staff_picks": "ترشيحات فريق العمل",
783
+ "lm_studio_community_models": "نماذج المجتمع",
784
+ "lm_studio_no_models": "لم يتم العثور على نماذج",
785
+ "lm_studio_models_count": "{count} نموذج",
786
+ "lm_studio_browse_models": "تصفح النماذج على LM Studio",
787
+ "lm_studio_model_search": "البحث عن النماذج",
788
+ "lm_studio_downloads_title": "التنزيلات",
789
+ "lm_studio_choose_quant": "اختر مستوى الكمية (Quantization)",
790
+ "lm_studio_use_default_quant": "استخدام الكمية الافتراضية",
791
+ "lm_studio_recommended": "موصى به",
792
+ "lm_studio_clear_downloads": "مسح التنزيلات المكتملة",
793
+ "lm_studio_no_downloads": "لا توجد تنزيلات نشطة",
794
+ "lm_studio_downloads_disclaimer": "يتم تنزيل النماذج مباشرة من Hugging Face.",
795
+ "lm_studio_staff_pick": "ترشيح مميز",
796
+ "lm_studio_params": "المعلمات",
797
+ "lm_studio_arch": "البنية",
798
+ "lm_studio_domain": "المجال",
799
+ "lm_studio_format": "الصيغة",
800
+ "lm_studio_vision": "الرؤية البصرية",
801
+ "lm_studio_tool_use": "استخدام الأدوات",
802
+ "lm_studio_reasoning": "التفكير والاستنتاج",
803
+ "lm_studio_download_options": "خيارات التنزيل",
804
+ "lm_studio_download": "تنزيل",
805
+ "lm_studio_download_size": "حجم التنزيل",
806
+ "lm_studio_downloading_percent": "جاري التنزيل: {percent}%",
807
+ "lm_studio_readme_unavailable": "ملف README غير متاح لهذا النموذج.",
808
+ "lm_studio_full_gpu_offload": "تفريغ كامل لـ GPU ممكن",
809
+ "lm_studio_partial_gpu_offload": "تفريغ جزئي لـ GPU ممكن",
810
+ "lm_studio_likely_too_large": "قد يكون كبيرًا جدًا",
811
+ "lm_studio_available_ram_gb": "الذاكرة العشوائية المتاحة (RAM بالجيجابايت، اختيارية)",
812
+ "lm_studio_available_vram_gb": "ذاكرة الفيديو المتاحة (VRAM بالجيجابايت، اختيارية)",
813
+ "lm_studio_memory_settings_title": "الذاكرة المخصصة للتوصيات",
814
+ "lm_studio_memory_settings_desc": "تُستخدم لتقدير ما إذا كانت النماذج تتناسب مع جهازك في متصفح النماذج.",
815
+ "think_button_label": "تفكير",
816
+ "reasoning_effort_low": "منخفض",
817
+ "reasoning_effort_medium": "متوسط",
818
+ "reasoning_effort_high": "مرتفع",
819
+ "could_not_read_file": "تعذر قراءة الملف",
820
+ "server_offline": "الخادم غير متصل بالإنترنت",
821
+ "could_not_establish_connection": "تعذر الاتصال بالخادم. يرجى التحقق مما إذا كان الخادم قيد التشغيل وصحة إعدادات المضيف/المنفذ.",
822
+ "retry_connection": "إعادة محاولة الاتصال",
823
+ "tokens_label": "الرموز",
824
+ "enter_context_length": "أدخل طول السياق..."
825
+}
\ No newline at end of file
lib/l10n/app_bn.arb
+221
-2
@@ -602,5 +602,224 @@
602
"tool_status_rejected": "Rejected",
603
"tool_status_running": "Running",
604
"tool_status_done": "Done",
605
- "tool_status_failed": "Failed"
606
-}
605
+ "tool_status_failed": "Failed",
606
+ "delete_builtin_persona_body": "এটি একটি বিল্ট-ইন ব্যক্তিত্ব (Persona)। আপনি এটিকে পরবর্তীতে সেটিংস থেকে পুনরুদ্ধার করতে পারেন।",
607
+ "restore_builtin_personas": "ডিফল্ট ব্যক্তিত্ব পুনরুদ্ধার করুন",
608
+ "restore_builtin_personas_desc": "আপনার মুছে ফেলা যেকোনো বিল্ট-ইন ব্যক্তিত্ব আবার যুক্ত করুন",
609
+ "restore_builtin_personas_success": "ডিফল্ট ব্যক্তিত্ব পুনরুদ্ধার করা হয়েছে",
610
+ "clear_personas": "ব্যক্তিত্ব পরিষ্কার করুন",
611
+ "enable_image_compression": "পাঠানোর আগে ছবি কম্প্রেস করুন",
612
+ "enable_image_compression_desc": "সংযুক্ত চিত্রগুলির আকার পরিবর্তন এবং কম্প্রেস করুন যাতে আপলোডগুলি সার্ভার সীমার মধ্যে থাকে",
613
+ "image_compression_level": "কম্প্রেশনের আগ্রাসন",
614
+ "image_compression_level_desc": "উচ্চতর আগ্রাসন কম মানের ছোট আকারের আপলোড তৈরি করে",
615
+ "image_compression_level_low": "কম",
616
+ "image_compression_level_medium": "মাঝারি",
617
+ "image_compression_level_high": "উচ্চ",
618
+ "sort_models_tooltip": "মডেল সাজান",
619
+ "sort_by_favorites": "প্রিয়গুলো আগে",
620
+ "sort_by_name": "নাম (A-Z)",
621
+ "sort_by_size_smallest": "আকার (সবচেয়ে ছোট আগে)",
622
+ "sort_by_size_largest": "আকার (সবচেয়ে বড় আগে)",
623
+ "sort_by_context_length": "প্রসঙ্গের দৈর্ঘ্য",
624
+ "bulk_ai_rename_progress": "নাম পরিবর্তন করা হচ্ছে {done}/{total}...",
625
+ "selected_count": "{count}টি নির্বাচিত",
626
+ "ai_rename_tooltip": "এআই দিয়ে নির্বাচিতগুলোর নাম পরিবর্তন করুন",
627
+ "new_chat_in_folder_tooltip": "এই ফোল্ডারে নতুন চ্যাট",
628
+ "total_tokens_count": "{count}টি টোকেন",
629
+ "smart_replies_use_persona": "স্মার্ট উত্তরে ব্যক্তিত্ব ব্যবহার করুন",
630
+ "smart_replies_use_persona_desc": "প্রস্তাবিত উত্তরগুলি সাধারণ সহকারীর পরিবর্তে সক্রিয় ব্যক্তিত্বের সুরের সাথে মেলে",
631
+ "keep_persona_on_new_chat": "নতুন চ্যাটে ব্যক্তিত্ব ধরে রাখুন",
632
+ "keep_persona_on_new_chat_desc": "নতুন চ্যাট শুরু করার পরে নির্বাচিত ব্যক্তিত্ব পরিষ্কার করবেন না",
633
+ "role_swap_button_enabled": "ভূমিকা-বদল বোতাম দেখান",
634
+ "role_swap_button_enabled_desc": "কোনো প্রতিক্রিয়া তৈরি না করে, ব্যবহারকারীর পরিবর্তে সহকারী ভূমিকা হিসাবে আপনার বার্তা পাঠাতে চ্যাট ইনপুটে একটি বোতাম দেখান",
635
+ "send_as_user_tooltip": "ব্যবহারকারী হিসেবে পাঠান",
636
+ "send_as_assistant_tooltip": "সহকারী হিসেবে পাঠান (কোনো প্রতিক্রিয়া নেই)",
637
+ "insert_without_generating_tooltip": "তৈরি না করে ঢোকান",
638
+ "token_usage_title": "টোকেন ব্যবহার",
639
+ "total_tokens_label": "ব্যবহৃত টোকেন",
640
+ "usage_percent_label": "ব্যবহৃত প্রসঙ্গ",
641
+ "export_choice_title": "রপ্তানি (Export) করুন",
642
+ "export_choice_body": "আপনি এটি কীভাবে রপ্তানি করতে চান?",
643
+ "copy_to_clipboard": "ক্লিপবোর্ডে কপি করুন",
644
+ "bulk_export_conversations_success": "{count}টি কথোপকথন রপ্তানি করা হয়েছে",
645
+ "bulk_ai_rename_confirm_title": "এআই দিয়ে নাম পরিবর্তন করবেন?",
646
+ "bulk_ai_rename_confirm_body": "এটি এআই-কে বর্তমান শিরোনামগুলি প্রতিস্থাপন করে নির্বাচিত {count}টি কথোপকথনের প্রতিটির জন্য একটি নতুন শিরোনাম তৈরি করতে বলবে। এটি কিছুটা সময় নিতে পারে এবং পূর্বাবস্থায় ফেরানো যাবে না।",
647
+ "sort_by_modified_date": "শেষ পরিবর্তন",
648
+ "sort_by_created_date": "তৈরির তারিখ",
649
+ "sort_title": "সাজান",
650
+ "ai_user_response_enabled": "এআই ব্যবহারকারী বার্তা (সেন্ড বোতাম ধরে রাখুন)",
651
+ "ai_user_response_enabled_desc": "এআই দিয়ে আপনার পরবর্তী বার্তাটি লেখাতে এবং পাঠাতে ৩ সেকেন্ডের জন্য সেন্ড বোতামটি চেপে ধরে রাখুন",
652
+ "ai_user_response_tooltip": "এআই দিয়ে ব্যবহারকারী বার্তা তৈরি করুন",
653
+ "show_system_messages_desc": "যখন কোনো ব্যক্তিত্ব নির্বাচিত না থাকে, তখন প্রতিটি অনুরোধের সাথে একটি ডিফল্ট সহকারী সিস্টেম প্রম্পট পাঠান",
654
+ "show_system_messages_in_chat": "চ্যাটে সিস্টেম বার্তা দেখান",
655
+ "show_system_messages_in_chat_desc": "কথোপকথনে দৃশ্যমান বুদবুদ হিসাবে সিস্টেম বার্তাগুলি (যেমন আমদানিকৃত ব্যাকআপ থেকে) প্রদর্শন করুন",
656
+ "manage_personas": "ব্যক্তিত্ব পরিচালনা করুন",
657
+ "personas_combine_hint": "নির্বাচিত ব্যক্তিত্বগুলো একত্রিত করা হবে",
658
+ "unload_all_models": "সব মডেল আনলোড করুন",
659
+ "loaded_models_count": "{count}টি মডেল লোড করা হয়েছে",
660
+ "all_models_unloaded": "সব মডেল আনলোড করা হয়েছে",
661
+ "branch_chat": "ব্রাঞ্চ চ্যাট",
662
+ "branch_chat_desc": "এই বার্তা থেকে শুরু করে একটি নতুন চ্যাট তৈরি করুন",
663
+ "edit_assistant_message_desc": "সহকারী বার্তার বিষয়বস্তু সম্পাদনা করুন",
664
+ "switch_to_model": "{model} মডেলে পরিবর্তন করুন",
665
+ "model_favorite_toggle": "প্রিয় টগল করুন",
666
+ "model_note_label": "নোট",
667
+ "model_note_hint": "এই মডেলটির জন্য একটি ব্যক্তিগত নোট যোগ করুন...",
668
+ "unload_models_before_load": "লোড করার আগে মডেল আনলোড করুন",
669
+ "temp_chat_keyboard_incognito": "অস্থায়ী চ্যাটে ছদ্মবেশী (Incognito) কীবোর্ড",
670
+ "temp_chat_keyboard_incognito_desc": "অস্থায়ী চ্যাটের সময় টাইপিং ইতিহাস সংরক্ষণ না করার জন্য সিস্টেম কীবোর্ডের কাছে অনুরোধ করুন",
671
+ "resume_last_chat": "শেষ চ্যাট পুনরায় শুরু করুন",
672
+ "resume_last_chat_desc": "অ্যাপ চালুর সময় স্বয়ংক্রিয়ভাবে আপনার শেষ সক্রিয় কথোপকথনটি খুলুন",
673
+ "export_all_data": "সব ডেটা রপ্তানি করুন",
674
+ "import_all_data": "সব ডেটা আমদানি করুন",
675
+ "export_data_success": "ডেটা সফলভাবে রপ্তানি করা হয়েছে",
676
+ "import_data_success": "ডেটা সফলভাবে আমদানি করা হয়েছে",
677
+ "import_data_failed": "ডেটা আমদানি করতে ব্যর্থ হয়েছে",
678
+ "import_data_confirm": "এটি আপনার বর্তমান সমস্ত ডেটা আমদানিকৃত ডেটা দিয়ে প্রতিস্থাপন করবে। আপনি কি চালিয়ে যেতে চান?",
679
+ "import_settings_confirm": "এটি আপনার বর্তমান সেটিংস আমদানিকৃত সেটিংস দিয়ে প্রতিস্থাপন করবে। আপনি কি চালিয়ে যেতে চান?",
680
+ "export_conversations": "কথোপকথন রপ্তানি করুন",
681
+ "import_conversations": "কথোপকথন আমদানি করুন",
682
+ "export_personas": "ব্যক্তিত্ব রপ্তানি করুন",
683
+ "import_personas": "ব্যক্তিত্ব আমদানি করুন",
684
+ "export_settings": "সেটিংস রপ্তানি করুন",
685
+ "import_settings": "সেটিংস আমদানি করুন",
686
+ "export_all_zip": "সব রপ্তানি করুন (ZIP)",
687
+ "import_all_zip": "সব আমদানি করুন (ZIP)",
688
+ "duplicate_chat": "চ্যাট অনুলিপি করুন",
689
+ "duplicate_chat_success": "চ্যাট সফলভাবে অনুলিপি করা হয়েছে",
690
+ "move_to_folder": "ফোল্ডারে সরান",
691
+ "remove_from_folder": "ফোল্ডার থেকে সরান",
692
+ "create_folder": "ফোল্ডার তৈরি করুন",
693
+ "new_folder": "নতুন ফোল্ডার",
694
+ "folder_name_hint": "ফোল্ডারের নাম লিখুন...",
695
+ "all_chats": "সব চ্যাট",
696
+ "unfiled_chats": "শ্রেণিবিহীন চ্যাট",
697
+ "create": "তৈরি করুন",
698
+ "server_path_prefix_label": "সার্ভার পাথ প্রিফিক্স",
699
+ "server_path_prefix_hint": "সার্ভার এপিআই পাথের জন্য ঐচ্ছিক প্রিফিক্স (যেমন /v1)",
700
+ "search_message_contents": "বার্তার বিষয়বস্তু খুঁজুন...",
701
+ "message_search_results": "বার্তা অনুসন্ধানের ফলাফল",
702
+ "saved_messages_title": "সংরক্ষিত বার্তা",
703
+ "nav_saved_messages": "সংরক্ষিত বার্তা",
704
+ "saved_messages_empty": "এখনো কোনো সংরক্ষিত বার্তা নেই",
705
+ "save_message": "বার্তা সংরক্ষণ করুন",
706
+ "message_saved": "বার্তা সংরক্ষিত হয়েছে",
707
+ "token_count": "টোকেন: {count}",
708
+ "estimated_token_count": "আনুমানিক টোকেন: {count}",
709
+ "test_tts_section_title": "টেক্সট-টু-স্পিচ পরীক্ষা",
710
+ "test_tts_hint": "কণ্ঠস্বর পরীক্ষা করতে কিছু লিখুন...",
711
+ "test_speak_button": "বলুন",
712
+ "scroll_to_bottom": "নিচে স্ক্রল করুন",
713
+ "generate_ai_response": "এআই প্রতিক্রিয়া তৈরি করুন",
714
+ "no_response": "কোনো প্রতিক্রিয়া নেই",
715
+ "export": "রপ্তানি",
716
+ "import": "আমদানি",
717
+ "conversations_label": "কথোপকথন",
718
+ "personas_label": "ব্যক্তিত্ব",
719
+ "settings_label": "সেটিংস",
720
+ "export_conversation": "কথোপকথন রপ্তানি করুন",
721
+ "tts_process_markdown": "মার্কডাউন প্রক্রিয়া করুন",
722
+ "tts_process_markdown_desc": "উচ্চস্বরে পড়ার আগে **বোল্ড** এর মতো ফর্ম্যাটিং সরিয়ে দিন",
723
+ "tts_skip_seconds": "এড়িয়ে যাওয়ার সেকেন্ড",
724
+ "tts_skip_seconds_desc": "ভয়েস প্লেয়ারে এগিয়ে/পিছিয়ে যাওয়ার সময়",
725
+ "tts_skip_seconds_value": "{seconds} সেকেন্ড",
726
+ "preview_system_prompts": "সিস্টেম প্রম্পটগুলির পূর্বরূপ দেখুন",
727
+ "welcome_message_1": "হ্যালো! আমি আপনার স্থানীয় এআই সহকারী।",
728
+ "welcome_message_2": "আমাকে যেকোনো কিছু জিজ্ঞাসা করুন — আপনি প্রস্তুত হলে আমি প্রস্তুত।",
729
+ "welcome_message_3": "আপনার ডেটা স্থানীয়ভাবে প্রক্রিয়াজাত হয় এবং কখনো আপনার ডিভাইস ছেড়ে যায় না।",
730
+ "welcome_message_4": "শুরু করতে, উপরের বার থেকে একটি মডেল নির্বাচন করুন বা মডেল পরিচালনা বিভাগে একটি নতুন মডেল যোগ করুন।",
731
+ "temporary_chat": "অস্থায়ী চ্যাট",
732
+ "temporary_chat_desc": "এই চ্যাটের বার্তাগুলি ইতিহাসে সংরক্ষিত হবে না",
733
+ "temporary_chat_banner": "অস্থায়ী চ্যাট সক্রিয় — ইতিহাস সংরক্ষিত হবে না",
734
+ "temporary_chat_save_warning_title": "অস্থায়ী চ্যাট সংরক্ষণ করবেন?",
735
+ "temporary_chat_save_warning_body": "এই চ্যাটটি আপনার ইতিহাসে সংরক্ষিত নেই। আপনি কি এটি এখন সংরক্ষণ করতে চান?",
736
+ "save_to_history": "ইতিহাসে সংরক্ষণ করুন",
737
+ "share_conversation": "কথোপকথন ভাগ করুন",
738
+ "download_tts_audio": "ভয়েস অডিও ডাউনলোড করুন",
739
+ "tts_download_unavailable": "ভয়েস ডাউনলোড উপলব্ধ নেই",
740
+ "tts_download_no_audio": "ডাউনলোড করার জন্য কোনো তৈরি অডিও নেই",
741
+ "tts_download_success": "ভয়েস অডিও সফলভাবে সংরক্ষিত হয়েছে",
742
+ "return_to_chat": "চ্যাটে ফিরে যান",
743
+ "return_to_temp_chat": "অস্থায়ী চ্যাটে ফিরে যান",
744
+ "insert_saved_message": "সংরক্ষিত বার্তা ঢোকান",
745
+ "insert_saved_message_desc": "আপনার সংরক্ষিত বার্তাগুলির একটি অংশ চ্যাটে যোগ করুন",
746
+ "model_info": "মডেলের তথ্য",
747
+ "model_name": "মডেলের নাম",
748
+ "model_identifier": "মডেল সনাক্তকারী",
749
+ "not_available": "অনুপলব্ধ",
750
+ "save_message_folders": "ফোল্ডারে সংরক্ষণ করুন",
751
+ "remove_from_saved": "সংরক্ষিত থেকে সরান",
752
+ "message_already_saved": "বার্তাটি ইতিমধ্যে সংরক্ষিত হয়েছে",
753
+ "stream_ttft": "প্রথম টোকেন পর্যন্ত সময়",
754
+ "stream_tokens_per_sec": "প্রতি সেকেন্ডে টোকেন",
755
+ "stream_stop_reason": "থামার কারণ",
756
+ "stream_input_tokens": "ইনপুট টোকেন",
757
+ "stream_output_tokens": "আউটপুট টোকেন",
758
+ "stream_generation_time": "তৈরি করার সময়",
759
+ "attach_image": "ছবি সংযুক্ত করুন",
760
+ "attach_text_document": "টেক্সট ডকুমেন্ট সংযুক্ত করুন",
761
+ "add_attachment": "সংযুক্তি যোগ করুন",
762
+ "photo_permission_denied": "ছবির অনুমতি অস্বীকার করা হয়েছে",
763
+ "characters_label": "অক্ষর (Characters)",
764
+ "exit_temporary_chat_title": "অস্থায়ী চ্যাট থেকে প্রস্থান করবেন?",
765
+ "exit_temporary_chat_body": "এটি বর্তমান কথোপকথনটি স্থায়ীভাবে মুছে ফেলবে। আপনি কি চালিয়ে যেতে চান?",
766
+ "saved_message_temp_snap_unavailable": "অস্থায়ী চ্যাটে বার্তার স্ন্যাপশট উপলব্ধ নেই",
767
+ "filter_title": "চ্যাট ফিল্টার করুন",
768
+ "filter_pinned": "পিন করা",
769
+ "filter_archived": "আর্কাইভ করা",
770
+ "filter_temp_chats": "অস্থায়ী চ্যাট",
771
+ "filter_user_messages": "ব্যবহারকারীর বার্তা",
772
+ "filter_assistant_messages": "সহকারীর বার্তা",
773
+ "archive_chat": "চ্যাট আর্কাইভ করুন",
774
+ "unarchive_chat": "চ্যাট আনআর্কাইভ করুন",
775
+ "conversation_message_count": "{count}টি বার্তা",
776
+ "conversation_character_count": "{count}টি অক্ষর",
777
+ "generate_title_with_ai": "এআই দিয়ে শিরোনাম তৈরি করুন",
778
+ "generating_title": "শিরোনাম তৈরি করা হচ্ছে...",
779
+ "generate_title_failed": "শিরোনাম তৈরি করা যায়নি",
780
+ "lm_studio_model_browser_title": "মডেল ব্রাউজার",
781
+ "lm_studio_model_search_hint": "মডেল খুঁজুন...",
782
+ "lm_studio_staff_picks": "স্টাফদের পছন্দ",
783
+ "lm_studio_community_models": "কমিউনিটি মডেল",
784
+ "lm_studio_no_models": "কোনো মডেল পাওয়া যায়নি",
785
+ "lm_studio_models_count": "{count}টি মডেল",
786
+ "lm_studio_browse_models": "LM Studio-তে মডেল ব্রাউজ করুন",
787
+ "lm_studio_model_search": "মডেল অনুসন্ধান",
788
+ "lm_studio_downloads_title": "ডাউনলোড",
789
+ "lm_studio_choose_quant": "কোয়ান্টাইজেশন চয়ন করুন",
790
+ "lm_studio_use_default_quant": "ডিফল্ট কোয়ান্টাইজেশন ব্যবহার করুন",
791
+ "lm_studio_recommended": "প্রস্তাবিত",
792
+ "lm_studio_clear_downloads": "সম্পূর্ণ ডাউনলোডগুলি মুছুন",
793
+ "lm_studio_no_downloads": "কোনো সক্রিয় ডাউনলোড নেই",
794
+ "lm_studio_downloads_disclaimer": "মডেল ডাউনলোডগুলি সরাসরি Hugging Face থেকে করা হয়।",
795
+ "lm_studio_staff_pick": "স্টাফদের বিশেষ পছন্দ",
796
+ "lm_studio_params": "প্যারামিটার",
797
+ "lm_studio_arch": "আর্কিটেকচার",
798
+ "lm_studio_domain": "ডোমেন",
799
+ "lm_studio_format": "ফরম্যাট",
800
+ "lm_studio_vision": "ভিশন",
801
+ "lm_studio_tool_use": "টুল ব্যবহার",
802
+ "lm_studio_reasoning": "রিজনিং",
803
+ "lm_studio_download_options": "ডাউনলোড বিকল্প",
804
+ "lm_studio_download": "ডাউনলোড করুন",
805
+ "lm_studio_download_size": "ডাউনলোডের আকার",
806
+ "lm_studio_downloading_percent": "ডাউনলোড হচ্ছে: {percent}%",
807
+ "lm_studio_readme_unavailable": "এই মডেলের জন্য README উপলব্ধ নেই।",
808
+ "lm_studio_full_gpu_offload": "সম্পূর্ণ GPU অফলোড সম্ভব",
809
+ "lm_studio_partial_gpu_offload": "আংশিক GPU অফলোড সম্ভব",
810
+ "lm_studio_likely_too_large": "সম্ভবত খুব বড়",
811
+ "lm_studio_available_ram_gb": "উপলব্ধ র্যাম (GB, ঐচ্ছিক)",
812
+ "lm_studio_available_vram_gb": "উপলব্ধ ভি-র্যাম (GB, ঐচ্ছিক)",
813
+ "lm_studio_memory_settings_title": "সুপারিশের জন্য মেমরি",
814
+ "lm_studio_memory_settings_desc": "মডেল ব্রাউজারে মডেলগুলি আপনার ডিভাইসে চলবে কিনা তা অনুমান করতে ব্যবহৃত হয়।",
815
+ "think_button_label": "চিন্তা করুন",
816
+ "reasoning_effort_low": "কম",
817
+ "reasoning_effort_medium": "মাঝারি",
818
+ "reasoning_effort_high": "উচ্চ",
819
+ "could_not_read_file": "ফাইল পড়া যায়নি",
820
+ "server_offline": "সার্ভার অফলাইন",
821
+ "could_not_establish_connection": "সার্ভারের সাথে সংযোগ স্থাপন করা যায়নি। অনুগ্রহ করে আপনার সার্ভারটি চলছে কিনা এবং হোস্ট/পোর্ট সেটিংস সঠিক কিনা তা পরীক্ষা করুন।",
822
+ "retry_connection": "সংযোগের পুনরায় চেষ্টা করুন",
823
+ "tokens_label": "টোকেন",
824
+ "enter_context_length": "প্রসঙ্গের দৈর্ঘ্য লিখুন..."
825
+}
\ No newline at end of file
lib/l10n/app_en.arb
+24
@@ -2973,5 +2973,29 @@
2973
"reasoning_effort_high": "High",
2974
"@reasoning_effort_high": {
2975
"description": "High reasoning effort level"
2976
+ },
2977
+ "could_not_read_file": "Could not read file",
2978
+ "@could_not_read_file": {
2979
+ "description": "Error message when file cannot be read"
2980
+ },
2981
+ "server_offline": "Server Offline",
2982
+ "@server_offline": {
2983
+ "description": "Server offline status message"
2984
+ },
2985
+ "could_not_establish_connection": "Could not establish a connection to the server. Please check if your server is running and the host/port settings are correct.",
2986
+ "@could_not_establish_connection": {
2987
+ "description": "Error message when connection to server fails"
2988
+ },
2989
+ "retry_connection": "Retry Connection",
2990
+ "@retry_connection": {
2991
+ "description": "Retry connection button label"
2992
+ },
2993
+ "tokens_label": "Tokens",
2994
+ "@tokens_label": {
2995
+ "description": "Tokens input label"
2996
+ },
2997
+ "enter_context_length": "Enter context length...",
2998
+ "@enter_context_length": {
2999
+ "description": "Context length input placeholder text"
3000
}
3001
}
lib/l10n/app_es.arb
+221
-2
@@ -602,5 +602,224 @@
602
"tool_status_rejected": "Rejected",
603
"tool_status_running": "Running",
604
"tool_status_done": "Done",
605
- "tool_status_failed": "Failed"
606
-}
605
+ "tool_status_failed": "Failed",
606
+ "delete_builtin_persona_body": "Este es un personaje incorporado. Puedes restaurarlo más tarde desde Configuración.",
607
+ "restore_builtin_personas": "Restaurar personajes predeterminados",
608
+ "restore_builtin_personas_desc": "Vuelve a añadir cualquier personaje incorporado que hayas eliminado",
609
+ "restore_builtin_personas_success": "Personajes predeterminados restaurados",
610
+ "clear_personas": "Limpiar personajes",
611
+ "enable_image_compression": "Comprimir imágenes antes de enviar",
612
+ "enable_image_compression_desc": "Redimensionar y comprimir imágenes adjuntas para que las cargas se mantengan dentro de los límites del servidor",
613
+ "image_compression_level": "Agresividad de la compresión",
614
+ "image_compression_level_desc": "Una mayor agresividad produce cargas más pequeñas a menor calidad",
615
+ "image_compression_level_low": "Baja",
616
+ "image_compression_level_medium": "Media",
617
+ "image_compression_level_high": "Alta",
618
+ "sort_models_tooltip": "Ordenar modelos",
619
+ "sort_by_favorites": "Favoritos primero",
620
+ "sort_by_name": "Nombre (A-Z)",
621
+ "sort_by_size_smallest": "Tamaño (más pequeño primero)",
622
+ "sort_by_size_largest": "Tamaño (más grande primero)",
623
+ "sort_by_context_length": "Longitud de contexto",
624
+ "bulk_ai_rename_progress": "Renombrando {done}/{total}...",
625
+ "selected_count": "{count} seleccionados",
626
+ "ai_rename_tooltip": "Renombrar seleccionados con IA",
627
+ "new_chat_in_folder_tooltip": "Nuevo chat en esta carpeta",
628
+ "total_tokens_count": "{count} tokens",
629
+ "smart_replies_use_persona": "Usar personaje en respuestas inteligentes",
630
+ "smart_replies_use_persona_desc": "Las respuestas sugeridas coinciden con el tono del personaje activo en lugar de un asistente genérico",
631
+ "keep_persona_on_new_chat": "Mantener personaje al iniciar chat nuevo",
632
+ "keep_persona_on_new_chat_desc": "No limpiar la selección de personaje al comenzar un nuevo chat",
633
+ "role_swap_button_enabled": "Mostrar botón de cambio de rol",
634
+ "role_swap_button_enabled_desc": "Mostrar un botón en la entrada de chat para enviar tu mensaje con el rol de asistente en lugar de usuario, sin generar respuesta",
635
+ "send_as_user_tooltip": "Enviar como usuario",
636
+ "send_as_assistant_tooltip": "Enviar como asistente (sin respuesta)",
637
+ "insert_without_generating_tooltip": "Insertar sin generar",
638
+ "token_usage_title": "Uso de Tokens",
639
+ "total_tokens_label": "Tokens usados",
640
+ "usage_percent_label": "Contexto usado",
641
+ "export_choice_title": "Exportar",
642
+ "export_choice_body": "¿Cómo te gustaría exportar esto?",
643
+ "copy_to_clipboard": "Copiar al portapapeles",
644
+ "bulk_export_conversations_success": "Exportado {count} conversaciones",
645
+ "bulk_ai_rename_confirm_title": "¿Renombrar con IA?",
646
+ "bulk_ai_rename_confirm_body": "Esto le pedirá a la IA que genere un nuevo título para cada una de las {count} conversaciones seleccionadas, reemplazando sus títulos actuales. Esto puede tardar un poco y no se puede deshacer.",
647
+ "sort_by_modified_date": "Última modificación",
648
+ "sort_by_created_date": "Fecha de creación",
649
+ "sort_title": "Ordenar",
650
+ "ai_user_response_enabled": "Mensaje de usuario de IA (mantener presionado)",
651
+ "ai_user_response_enabled_desc": "Mantén presionado el botón de enviar durante 3 segundos para que la IA escriba y envíe tu próximo mensaje",
652
+ "ai_user_response_tooltip": "Generar mensaje de usuario con IA",
653
+ "show_system_messages_desc": "Cuando no se seleccione ningún personaje, enviar un prompt de sistema de asistente predeterminado con cada solicitud",
654
+ "show_system_messages_in_chat": "Mostrar mensajes del sistema en el chat",
655
+ "show_system_messages_in_chat_desc": "Mostrar mensajes de sistema (por ejemplo, de una copia de seguridad importada) como burbujas visibles en la conversación",
656
+ "manage_personas": "Gestionar personajes",
657
+ "personas_combine_hint": "Los personajes seleccionados se combinarán",
658
+ "unload_all_models": "Descargar todos los modelos",
659
+ "loaded_models_count": "{count} modelos cargados",
660
+ "all_models_unloaded": "Todos los modelos descargados",
661
+ "branch_chat": "Ramificar chat",
662
+ "branch_chat_desc": "Crear un nuevo chat a partir de este mensaje",
663
+ "edit_assistant_message_desc": "Editar el contenido del mensaje del asistente",
664
+ "switch_to_model": "Cambiar al modelo {model}",
665
+ "model_favorite_toggle": "Alternar favorito",
666
+ "model_note_label": "Nota",
667
+ "model_note_hint": "Añade una nota privada para este modelo...",
668
+ "unload_models_before_load": "Descargar modelos antes de cargar",
669
+ "temp_chat_keyboard_incognito": "Teclado de incógnito en chat temporal",
670
+ "temp_chat_keyboard_incognito_desc": "Solicitar al teclado del sistema que no guarde el historial de escritura durante los chats temporales",
671
+ "resume_last_chat": "Reanudar último chat",
672
+ "resume_last_chat_desc": "Abrir automáticamente tu última conversación activa al iniciar",
673
+ "export_all_data": "Exportar todos los datos",
674
+ "import_all_data": "Importar todos los datos",
675
+ "export_data_success": "Datos exportados con éxito",
676
+ "import_data_success": "Datos importados con éxito",
677
+ "import_data_failed": "Error al importar datos",
678
+ "import_data_confirm": "Esto reemplazará todos tus datos actuales con los datos importados. ¿Continuar?",
679
+ "import_settings_confirm": "Esto reemplazará tu configuración actual con la configuración importada. ¿Continuar?",
680
+ "export_conversations": "Exportar conversaciones",
681
+ "import_conversations": "Importar conversaciones",
682
+ "export_personas": "Exportar personajes",
683
+ "import_personas": "Importar personajes",
684
+ "export_settings": "Exportar configuración",
685
+ "import_settings": "Importar configuración",
686
+ "export_all_zip": "Exportar todo (ZIP)",
687
+ "import_all_zip": "Importar todo (ZIP)",
688
+ "duplicate_chat": "Duplicar chat",
689
+ "duplicate_chat_success": "Chat duplicado con éxito",
690
+ "move_to_folder": "Mover a carpeta",
691
+ "remove_from_folder": "Eliminar de la carpeta",
692
+ "create_folder": "Crear carpeta",
693
+ "new_folder": "Nueva carpeta",
694
+ "folder_name_hint": "Introduce el nombre de la carpeta...",
695
+ "all_chats": "Todos los chats",
696
+ "unfiled_chats": "Chats sin archivar",
697
+ "create": "Crear",
698
+ "server_path_prefix_label": "Prefijo de ruta del servidor",
699
+ "server_path_prefix_hint": "Prefijo opcional para las rutas de la API del servidor (por ejemplo, /v1)",
700
+ "search_message_contents": "Buscar contenidos de mensajes...",
701
+ "message_search_results": "Resultados de búsqueda de mensajes",
702
+ "saved_messages_title": "Mensajes Guardados",
703
+ "nav_saved_messages": "Mensajes guardados",
704
+ "saved_messages_empty": "No hay mensajes guardados todavía",
705
+ "save_message": "Guardar mensaje",
706
+ "message_saved": "Mensaje guardado",
707
+ "token_count": "Tokens: {count}",
708
+ "estimated_token_count": "Tokens estimados: {count}",
709
+ "test_tts_section_title": "Prueba de Texto a Voz",
710
+ "test_tts_hint": "Escribe algo para probar la voz...",
711
+ "test_speak_button": "Hablar",
712
+ "scroll_to_bottom": "Desplazarse hacia abajo",
713
+ "generate_ai_response": "Generar respuesta de IA",
714
+ "no_response": "Sin respuesta",
715
+ "export": "Exportar",
716
+ "import": "Importar",
717
+ "conversations_label": "Conversaciones",
718
+ "personas_label": "Personajes",
719
+ "settings_label": "Configuración",
720
+ "export_conversation": "Exportar conversación",
721
+ "tts_process_markdown": "Procesar Markdown",
722
+ "tts_process_markdown_desc": "Eliminar formato como **negrita** antes de leer en voz alta",
723
+ "tts_skip_seconds": "Segundos a omitir",
724
+ "tts_skip_seconds_desc": "Tiempo para saltar hacia adelante/atrás en el reproductor de voz",
725
+ "tts_skip_seconds_value": "{seconds}s",
726
+ "preview_system_prompts": "Vista previa de prompts del sistema",
727
+ "welcome_message_1": "¡Hola! Soy tu asistente de IA local.",
728
+ "welcome_message_2": "Pregúntame lo que quieras, estoy listo cuando tú lo estés.",
729
+ "welcome_message_3": "Tus datos se procesan localmente y nunca salen de tu dispositivo.",
730
+ "welcome_message_4": "Para empezar, selecciona un modelo en la barra superior o añade uno en la sección de administración de modelos.",
731
+ "temporary_chat": "Chat temporal",
732
+ "temporary_chat_desc": "Los mensajes de este chat no se guardarán en el historial",
733
+ "temporary_chat_banner": "Chat Temporal Activo — No se guardará en el historial",
734
+ "temporary_chat_save_warning_title": "¿Guardar chat temporal?",
735
+ "temporary_chat_save_warning_body": "Este chat no está guardado en tu historial. ¿Quieres guardarlo ahora?",
736
+ "save_to_history": "Guardar en el historial",
737
+ "share_conversation": "Compartir conversación",
738
+ "download_tts_audio": "Descargar audio de voz",
739
+ "tts_download_unavailable": "Descarga de voz no disponible",
740
+ "tts_download_no_audio": "No hay audio generado para descargar",
741
+ "tts_download_success": "Audio de voz guardado con éxito",
742
+ "return_to_chat": "Volver al chat",
743
+ "return_to_temp_chat": "Volver al chat temporal",
744
+ "insert_saved_message": "Insertar mensaje guardado",
745
+ "insert_saved_message_desc": "Añade un fragmento de tus mensajes guardados al chat",
746
+ "model_info": "Información del modelo",
747
+ "model_name": "Nombre del modelo",
748
+ "model_identifier": "Identificador del modelo",
749
+ "not_available": "No disponible",
750
+ "save_message_folders": "Guardar en carpetas",
751
+ "remove_from_saved": "Eliminar de guardados",
752
+ "message_already_saved": "El mensaje ya está guardado",
753
+ "stream_ttft": "Tiempo hasta el primer token",
754
+ "stream_tokens_per_sec": "Tokens por segundo",
755
+ "stream_stop_reason": "Razón de parada",
756
+ "stream_input_tokens": "Tokens de entrada",
757
+ "stream_output_tokens": "Tokens de salida",
758
+ "stream_generation_time": "Tiempo de generación",
759
+ "attach_image": "Adjuntar imagen",
760
+ "attach_text_document": "Adjuntar documento de texto",
761
+ "add_attachment": "Añadir adjunto",
762
+ "photo_permission_denied": "Permiso de fotos denegado",
763
+ "characters_label": "Caracteres",
764
+ "exit_temporary_chat_title": "¿Salir del chat temporal?",
765
+ "exit_temporary_chat_body": "Esto eliminará permanentemente la conversación actual. ¿Continuar?",
766
+ "saved_message_temp_snap_unavailable": "Las capturas de mensajes no están disponibles en chats temporales",
767
+ "filter_title": "Filtrar chats",
768
+ "filter_pinned": "Fijados",
769
+ "filter_archived": "Archivados",
770
+ "filter_temp_chats": "Chats temporales",
771
+ "filter_user_messages": "Mensajes de usuario",
772
+ "filter_assistant_messages": "Mensajes de asistente",
773
+ "archive_chat": "Archivar chat",
774
+ "unarchive_chat": "Desarchivar chat",
775
+ "conversation_message_count": "{count} mensajes",
776
+ "conversation_character_count": "{count} caracteres",
777
+ "generate_title_with_ai": "Generar título con IA",
778
+ "generating_title": "Generando título...",
779
+ "generate_title_failed": "No se pudo generar un título",
780
+ "lm_studio_model_browser_title": "Navegador de Modelos",
781
+ "lm_studio_model_search_hint": "Buscar modelos...",
782
+ "lm_studio_staff_picks": "Selección del equipo",
783
+ "lm_studio_community_models": "Modelos de la comunidad",
784
+ "lm_studio_no_models": "No se encontraron modelos",
785
+ "lm_studio_models_count": "{count} modelos",
786
+ "lm_studio_browse_models": "Buscar modelos en LM Studio",
787
+ "lm_studio_model_search": "Búsqueda de modelos",
788
+ "lm_studio_downloads_title": "Descargas",
789
+ "lm_studio_choose_quant": "Elegir cuantización",
790
+ "lm_studio_use_default_quant": "Usar cuantización predeterminada",
791
+ "lm_studio_recommended": "Recomendado",
792
+ "lm_studio_clear_downloads": "Limpiar descargas completadas",
793
+ "lm_studio_no_downloads": "No hay descargas activas",
794
+ "lm_studio_downloads_disclaimer": "Las descargas de modelos se realizan directamente desde Hugging Face.",
795
+ "lm_studio_staff_pick": "Selección destacada",
796
+ "lm_studio_params": "Parámetros",
797
+ "lm_studio_arch": "Arquitectura",
798
+ "lm_studio_domain": "Dominio",
799
+ "lm_studio_format": "Formato",
800
+ "lm_studio_vision": "Visión",
801
+ "lm_studio_tool_use": "Uso de herramientas",
802
+ "lm_studio_reasoning": "Razonamiento",
803
+ "lm_studio_download_options": "Opciones de descarga",
804
+ "lm_studio_download": "Descargar",
805
+ "lm_studio_download_size": "Tamaño de descarga",
806
+ "lm_studio_downloading_percent": "Descargando: {percent}%",
807
+ "lm_studio_readme_unavailable": "README no disponible para este modelo.",
808
+ "lm_studio_full_gpu_offload": "Descarga completa de GPU posible",
809
+ "lm_studio_partial_gpu_offload": "Descarga parcial de GPU posible",
810
+ "lm_studio_likely_too_large": "Probablemente demasiado grande",
811
+ "lm_studio_available_ram_gb": "RAM disponible (GB, opcional)",
812
+ "lm_studio_available_vram_gb": "VRAM disponible (GB, opcional)",
813
+ "lm_studio_memory_settings_title": "Memoria para recomendaciones",
814
+ "lm_studio_memory_settings_desc": "Se utiliza para estimar si los modelos caben en tu máquina en el explorador de modelos.",
815
+ "think_button_label": "Pensar",
816
+ "reasoning_effort_low": "Bajo",
817
+ "reasoning_effort_medium": "Medio",
818
+ "reasoning_effort_high": "Alto",
819
+ "could_not_read_file": "No se pudo leer el archivo",
820
+ "server_offline": "Servidor sin conexión",
821
+ "could_not_establish_connection": "No se pudo establecer una conexión con el servidor. Por favor, comprueba si tu servidor está funcionando y si la configuración de host/puerto es correcta.",
822
+ "retry_connection": "Reintentar conexión",
823
+ "tokens_label": "Tokens",
824
+ "enter_context_length": "Introduce la longitud del contexto..."
825
+}
\ No newline at end of file
lib/l10n/app_hi.arb
+221
-2
@@ -602,5 +602,224 @@
602
"tool_status_rejected": "Rejected",
603
"tool_status_running": "Running",
604
"tool_status_done": "Done",
605
- "tool_status_failed": "Failed"
606
-}
605
+ "tool_status_failed": "Failed",
606
+ "delete_builtin_persona_body": "यह एक अंतर्निहित व्यक्तित्व (Persona) है। आप इसे बाद में सेटिंग्स से पुनर्स्थापित कर सकते हैं।",
607
+ "restore_builtin_personas": "डिफ़ॉल्ट व्यक्तित्व पुनर्स्थापित करें",
608
+ "restore_builtin_personas_desc": "आपके द्वारा हटाए गए किसी भी अंतर्निहित व्यक्तित्व को फिर से जोड़ें",
609
+ "restore_builtin_personas_success": "डिफ़ॉल्ट व्यक्तित्व पुनर्स्थापित कर दिए गए हैं",
610
+ "clear_personas": "व्यक्तित्व साफ़ करें",
611
+ "enable_image_compression": "भेजने से पहले छवियों को कंप्रेस करें",
612
+ "enable_image_compression_desc": "संलग्न छवियों का आकार बदलें और कंप्रेस करें ताकि अपलोड सर्वर सीमाओं के भीतर रहें",
613
+ "image_compression_level": "कंप्रेशन की आक्रामकता",
614
+ "image_compression_level_desc": "अधिक आक्रामकता कम गुणवत्ता पर छोटे आकार के अपलोड बनाती है",
615
+ "image_compression_level_low": "कम",
616
+ "image_compression_level_medium": "मध्यम",
617
+ "image_compression_level_high": "उच्च",
618
+ "sort_models_tooltip": "मॉडलों को सॉर्ट करें",
619
+ "sort_by_favorites": "पसंदीदा पहले",
620
+ "sort_by_name": "नाम (A-Z)",
621
+ "sort_by_size_smallest": "आकार (सबसे छोटा पहले)",
622
+ "sort_by_size_largest": "आकार (सबसे बड़ा पहले)",
623
+ "sort_by_context_length": "संदर्भ की लंबाई",
624
+ "bulk_ai_rename_progress": "नाम बदला जा रहा है {done}/{total}...",
625
+ "selected_count": "{count} चयनित",
626
+ "ai_rename_tooltip": "एआई के साथ चयनित का नाम बदलें",
627
+ "new_chat_in_folder_tooltip": "इस फ़ोल्डर में नई चैट",
628
+ "total_tokens_count": "{count} टोकन",
629
+ "smart_replies_use_persona": "स्मार्ट उत्तरों में व्यक्तित्व का उपयोग करें",
630
+ "smart_replies_use_persona_desc": "सुझाए गए उत्तर सामान्य सहायक के बजाय सक्रिय व्यक्तित्व के लहजे से मेल खाते हैं",
631
+ "keep_persona_on_new_chat": "नई चैट पर व्यक्तित्व बनाए रखें",
632
+ "keep_persona_on_new_chat_desc": "नई चैट शुरू करने के बाद चयनित व्यक्तित्व को साफ़ न करें",
633
+ "role_swap_button_enabled": "भूमिका-बदल बटन दिखाएं",
634
+ "role_swap_button_enabled_desc": "बिना कोई प्रतिक्रिया उत्पन्न किए, अपने संदेश को उपयोगकर्ता के बजाय सहायक भूमिका के रूप में भेजने के लिए चैट इनपुट में एक बटन दिखाएं",
635
+ "send_as_user_tooltip": "उपयोगकर्ता के रूप में भेजें",
636
+ "send_as_assistant_tooltip": "सहायक के रूप में भेजें (कोई प्रतिक्रिया नहीं)",
637
+ "insert_without_generating_tooltip": "बिना जनरेट किए डालें",
638
+ "token_usage_title": "टोकन उपयोग",
639
+ "total_tokens_label": "उपयोग किए गए टोकन",
640
+ "usage_percent_label": "उपयोग किया गया संदर्भ",
641
+ "export_choice_title": "निर्यात (Export) करें",
642
+ "export_choice_body": "आप इसे कैसे निर्यात करना चाहेंगे?",
643
+ "copy_to_clipboard": "क्लिपबोर्ड पर कॉपी करें",
644
+ "bulk_export_conversations_success": "{count} वार्तालाप निर्यात किए गए",
645
+ "bulk_ai_rename_confirm_title": "एआई के साथ नाम बदलें?",
646
+ "bulk_ai_rename_confirm_body": "यह एआई को वर्तमान शीर्षकों को प्रतिस्थापित करते हुए, प्रत्येक {count} चयनित वार्तालापों के लिए एक नया शीर्षक उत्पन्न करने के लिए कहेगा। इसमें कुछ समय लग सकता है और इसे पूर्ववत नहीं किया जा सकता है।",
647
+ "sort_by_modified_date": "पिछला संशोधन",
648
+ "sort_by_created_date": "निर्माण तिथि",
649
+ "sort_title": "सॉर्ट करें",
650
+ "ai_user_response_enabled": "एआई उपयोगकर्ता संदेश (भेजें बटन दबाकर रखें)",
651
+ "ai_user_response_enabled_desc": "एआई से अपना अगला संदेश लिखवाने और भेजने के लिए भेजें बटन को 3 सेकंड के लिए दबाकर रखें",
652
+ "ai_user_response_tooltip": "एआई के साथ उपयोगकर्ता संदेश जनरेट करें",
653
+ "show_system_messages_desc": "जब कोई व्यक्तित्व चयनित न हो, तो प्रत्येक अनुरोध के साथ एक डिफ़ॉल्ट सहायक सिस्टम प्रॉम्प्ट भेजें",
654
+ "show_system_messages_in_chat": "चैट में सिस्टम संदेश दिखाएं",
655
+ "show_system_messages_in_chat_desc": "चैट ट्रांसक्रिप्ट में दृश्यमान बुलबुले के रूप में सिस्टम संदेश (जैसे आयातित बैकअप से) प्रदर्शित करें",
656
+ "manage_personas": "व्यक्तित्व प्रबंधित करें",
657
+ "personas_combine_hint": "चयनित व्यक्तित्वों को मिला दिया जाएगा",
658
+ "unload_all_models": "सभी मॉडल अनलोड करें",
659
+ "loaded_models_count": "{count} मॉडल लोड किए गए",
660
+ "all_models_unloaded": "सभी मॉडल अनलोड कर दिए गए",
661
+ "branch_chat": "ब्रांच चैट",
662
+ "branch_chat_desc": "इस संदेश से शुरू होने वाली एक नई चैट बनाएं",
663
+ "edit_assistant_message_desc": "सहायक संदेश की सामग्री को संपादित करें",
664
+ "switch_to_model": "मॉडल {model} पर स्विच करें",
665
+ "model_favorite_toggle": "पसंदीदा टॉगल करें",
666
+ "model_note_label": "टिप्पणी (Note)",
667
+ "model_note_hint": "इस मॉडल के लिए एक निजी टिप्पणी जोड़ें...",
668
+ "unload_models_before_load": "लोड करने से पहले मॉडल अनलोड करें",
669
+ "temp_chat_keyboard_incognito": "अस्थायी चैट में गुप्त (Incognito) कीबोर्ड",
670
+ "temp_chat_keyboard_incognito_desc": "अस्थायी चैट के दौरान टाइपिंग इतिहास को सहेजने के लिए सिस्टम कीबोर्ड से अनुरोध न करें",
671
+ "resume_last_chat": "पिछली चैट फिर से शुरू करें",
672
+ "resume_last_chat_desc": "स्टार्टअप पर स्वचालित रूप से अपना अंतिम सक्रिय वार्तालाप खोलें",
673
+ "export_all_data": "सभी डेटा निर्यात करें",
674
+ "import_all_data": "सभी डेटा आयात करें",
675
+ "export_data_success": "डेटा सफलतापूर्वक निर्यात किया गया",
676
+ "import_data_success": "डेटा सफलतापूर्वक आयात किया गया",
677
+ "import_data_failed": "डेटा आयात करने में विफल",
678
+ "import_data_confirm": "यह आपके सभी वर्तमान डेटा को आयातित डेटा से बदल देगा। क्या आप जारी रखना चाहते हैं?",
679
+ "import_settings_confirm": "यह आपकी वर्तमान सेटिंग्स को आयातित सेटिंग्स से बदल देगा। क्या आप जारी रखना चाहते हैं?",
680
+ "export_conversations": "वार्तालाप निर्यात करें",
681
+ "import_conversations": "वार्तालाप आयात करें",
682
+ "export_personas": "व्यक्तित्व निर्यात करें",
683
+ "import_personas": "व्यक्तित्व आयात करें",
684
+ "export_settings": "सेटिंग्स निर्यात करें",
685
+ "import_settings": "सेटिंग्स आयात करें",
686
+ "export_all_zip": "सभी निर्यात करें (ZIP)",
687
+ "import_all_zip": "सभी आयात करें (ZIP)",
688
+ "duplicate_chat": "चैट की प्रतिलिपि बनाएँ",
689
+ "duplicate_chat_success": "चैट की प्रतिलिपि सफलतापूर्वक बनाई गई",
690
+ "move_to_folder": "फ़ोल्डर में ले जाएं",
691
+ "remove_from_folder": "फ़ोल्डर से निकालें",
692
+ "create_folder": "फ़ोल्डर बनाएं",
693
+ "new_folder": "नया फ़ोल्डर",
694
+ "folder_name_hint": "फ़ोल्डर का नाम दर्ज करें...",
695
+ "all_chats": "सभी चैट",
696
+ "unfiled_chats": "बिना श्रेणीबद्ध चैट",
697
+ "create": "बनाएं",
698
+ "server_path_prefix_label": "सर्वर पथ उपसर्ग (Path Prefix)",
699
+ "server_path_prefix_hint": "सर्वर एपीआई पथों के लिए वैकल्पिक उपसर्ग (जैसे /v1)",
700
+ "search_message_contents": "संदेश सामग्री खोजें...",
701
+ "message_search_results": "संदेश खोज परिणाम",
702
+ "saved_messages_title": "सहेजे गए संदेश",
703
+ "nav_saved_messages": "सहेजे गए संदेश",
704
+ "saved_messages_empty": "अभी तक कोई सहेजा गया संदेश नहीं है",
705
+ "save_message": "संदेश सहेजें",
706
+ "message_saved": "संदेश सहेजा गया",
707
+ "token_count": "टोकन: {count}",
708
+ "estimated_token_count": "अनुमानित टोकन: {count}",
709
+ "test_tts_section_title": "टेक्स्ट-टू-स्पीच परीक्षण",
710
+ "test_tts_hint": "आवाज का परीक्षण करने के लिए कुछ टाइप करें...",
711
+ "test_speak_button": "बोलें",
712
+ "scroll_to_bottom": "नीचे स्क्रॉल करें",
713
+ "generate_ai_response": "एआई प्रतिक्रिया जनरेट करें",
714
+ "no_response": "कोई प्रतिक्रिया नहीं",
715
+ "export": "निर्यात",
716
+ "import": "आयात",
717
+ "conversations_label": "वार्तालाप",
718
+ "personas_label": "व्यक्तित्व",
719
+ "settings_label": "सेटिंग्स",
720
+ "export_conversation": "वार्तालाप निर्यात करें",
721
+ "tts_process_markdown": "मार्कडाउन संसाधित करें",
722
+ "tts_process_markdown_desc": "तेज़ आवाज में पढ़ने से पहले **बोल्ड** जैसी फ़ॉर्मेटिंग हटा दें",
723
+ "tts_skip_seconds": "स्किप करने के लिए सेकंड",
724
+ "tts_skip_seconds_desc": "वॉयस प्लेयर में आगे/पीछे जाने का समय",
725
+ "tts_skip_seconds_value": "{seconds}s",
726
+ "preview_system_prompts": "सिस्टम प्रॉम्प्ट का पूर्वावलोकन करें",
727
+ "welcome_message_1": "नमस्ते! मैं आपका स्थानीय एआई सहायक हूँ।",
728
+ "welcome_message_2": "मुझसे कुछ भी पूछें — जब आप तैयार हों मैं तैयार हूँ।",
729
+ "welcome_message_3": "आपका डेटा स्थानीय रूप से संसाधित होता है और आपके डिवाइस से कभी बाहर नहीं जाता है।",
730
+ "welcome_message_4": "शुरू करने के लिए, शीर्ष बार से एक मॉडल चुनें या मॉडल प्रबंधन अनुभाग में एक नया मॉडल जोड़ें।",
731
+ "temporary_chat": "अस्थायी चैट",
732
+ "temporary_chat_desc": "इस चैट के संदेश इतिहास में सहेजे नहीं जाएंगे",
733
+ "temporary_chat_banner": "अस्थायी चैट सक्रिय — इतिहास सहेजा नहीं जाएगा",
734
+ "temporary_chat_save_warning_title": "अस्थायी चैट सहेजें?",
735
+ "temporary_chat_save_warning_body": "यह चैट आपके इतिहास में सहेजी नहीं गई है। क्या आप इसे अभी सहेजना चाहते हैं?",
736
+ "save_to_history": "इतिहास में सहेजें",
737
+ "share_conversation": "वार्तालाप साझा करें",
738
+ "download_tts_audio": "वॉयस ऑडियो डाउनलोड करें",
739
+ "tts_download_unavailable": "वॉयस डाउनलोड अनुपलब्ध",
740
+ "tts_download_no_audio": "डाउनलोड करने के लिए कोई जनरेटेड ऑडियो नहीं है",
741
+ "tts_download_success": "वॉयस ऑडियो सफलतापूर्वक सहेजा गया",
742
+ "return_to_chat": "चैट पर लौटें",
743
+ "return_to_temp_chat": "अस्थायी चैट पर लौटें",
744
+ "insert_saved_message": "सहेजा गया संदेश डालें",
745
+ "insert_saved_message_desc": "अपने सहेजे गए संदेशों का एक अंश चैट में जोड़ें",
746
+ "model_info": "मॉडल की जानकारी",
747
+ "model_name": "मॉडल का नाम",
748
+ "model_identifier": "मॉडल पहचानकर्ता",
749
+ "not_available": "अनुपलब्ध",
750
+ "save_message_folders": "फ़ोल्डरों में सहेजें",
751
+ "remove_from_saved": "सहेजे गए से निकालें",
752
+ "message_already_saved": "संदेश पहले से ही सहेजा गया है",
753
+ "stream_ttft": "पहले टोकन तक का समय",
754
+ "stream_tokens_per_sec": "टोकन प्रति सेकंड",
755
+ "stream_stop_reason": "रुकने का कारण",
756
+ "stream_input_tokens": "इनपुट टोकन",
757
+ "stream_output_tokens": "आउटपुट टोकन",
758
+ "stream_generation_time": "जेनरेशन का समय",
759
+ "attach_image": "छवि संलग्न करें",
760
+ "attach_text_document": "पाठ दस्तावेज़ संलग्न करें",
761
+ "add_attachment": "संलग्नक जोड़ें",
762
+ "photo_permission_denied": "फ़ोटो अनुमति अस्वीकृत",
763
+ "characters_label": "वर्ण (Characters)",
764
+ "exit_temporary_chat_title": "अस्थायी चैट से बाहर निकलें?",
765
+ "exit_temporary_chat_body": "यह वर्तमान वार्तालाप को स्थायी रूप से हटा देगा। क्या आप जारी रखना चाहते हैं?",
766
+ "saved_message_temp_snap_unavailable": "अस्थायी चैट में संदेश स्नैपशॉट उपलब्ध नहीं हैं",
767
+ "filter_title": "चैट फ़िल्टर करें",
768
+ "filter_pinned": "पिन किया गया",
769
+ "filter_archived": "अभिलेखागार (Archived)",
770
+ "filter_temp_chats": "अस्थायी चैट",
771
+ "filter_user_messages": "उपयोगकर्ता संदेश",
772
+ "filter_assistant_messages": "सहायक संदेश",
773
+ "archive_chat": "चैट को आर्काइव करें",
774
+ "unarchive_chat": "चैट को अनआर्काइव करें",
775
+ "conversation_message_count": "{count} संदेश",
776
+ "conversation_character_count": "{count} वर्ण",
777
+ "generate_title_with_ai": "एआई के साथ शीर्षक जनरेट करें",
778
+ "generating_title": "शीर्षक जनरेट किया जा रहा है...",
779
+ "generate_title_failed": "शीर्षक जनरेट नहीं किया जा सका",
780
+ "lm_studio_model_browser_title": "मॉडल ब्राउज़र",
781
+ "lm_studio_model_search_hint": "मॉडल खोजें...",
782
+ "lm_studio_staff_picks": "स्टाफ की पसंद",
783
+ "lm_studio_community_models": "सामुदायिक मॉडल",
784
+ "lm_studio_no_models": "कोई मॉडल नहीं मिला",
785
+ "lm_studio_models_count": "{count} मॉडल",
786
+ "lm_studio_browse_models": "LM Studio पर मॉडल ब्राउज़ करें",
787
+ "lm_studio_model_search": "मॉडल खोज",
788
+ "lm_studio_downloads_title": "डाउनलोड",
789
+ "lm_studio_choose_quant": "क्वांटाइजेशन चुनें",
790
+ "lm_studio_use_default_quant": "डिफ़ॉल्ट क्वांटाइजेशन का उपयोग करें",
791
+ "lm_studio_recommended": "अनुशंसित",
792
+ "lm_studio_clear_downloads": "पूर्ण डाउनलोड साफ़ करें",
793
+ "lm_studio_no_downloads": "कोई सक्रिय डाउनलोड नहीं",
794
+ "lm_studio_downloads_disclaimer": "मॉडल डाउनलोड सीधे Hugging Face से किए जाते हैं।",
795
+ "lm_studio_staff_pick": "स्टाफ की विशेष पसंद",
796
+ "lm_studio_params": "पैरामीटर",
797
+ "lm_studio_arch": "आर्किटेक्चर",
798
+ "lm_studio_domain": "डोमेन",
799
+ "lm_studio_format": "प्रारूप (Format)",
800
+ "lm_studio_vision": "विज़न (Vision)",
801
+ "lm_studio_tool_use": "टूल का उपयोग",
802
+ "lm_studio_reasoning": "तर्क (Reasoning)",
803
+ "lm_studio_download_options": "डाउनलोड विकल्प",
804
+ "lm_studio_download": "डाउनलोड करें",
805
+ "lm_studio_download_size": "डाउनलोड का आकार",
806
+ "lm_studio_downloading_percent": "डाउनलोड हो रहा है: {percent}%",
807
+ "lm_studio_readme_unavailable": "इस मॉडल के लिए README अनुपलब्ध है।",
808
+ "lm_studio_full_gpu_offload": "पूर्ण GPU ऑफलोड संभव",
809
+ "lm_studio_partial_gpu_offload": "आंशिक GPU ऑफलोड संभव",
810
+ "lm_studio_likely_too_large": "संभवतः बहुत बड़ा है",
811
+ "lm_studio_available_ram_gb": "उपलब्ध रैम (GB, वैकल्पिक)",
812
+ "lm_studio_available_vram_gb": "उपलब्ध वीराम (GB, वैकल्पिक)",
813
+ "lm_studio_memory_settings_title": "सिफारिशों के लिए मेमोरी",
814
+ "lm_studio_memory_settings_desc": "मॉडल ब्राउज़र में यह अनुमान लगाने के लिए उपयोग किया जाता है कि क्या मॉडल आपकी मशीन में फिट होंगे।",
815
+ "think_button_label": "सोचें",
816
+ "reasoning_effort_low": "कम",
817
+ "reasoning_effort_medium": "मध्यम",
818
+ "reasoning_effort_high": "उच्च",
819
+ "could_not_read_file": "फ़ाइल पढ़ी नहीं जा सकी",
820
+ "server_offline": "सर्वर ऑफ़लाइन",
821
+ "could_not_establish_connection": "सर्वर से कनेक्शन स्थापित नहीं किया जा सका। कृपया जांचें कि क्या आपका सर्वर चल रहा है और होस्ट/पोर्ट सेटिंग्स सही हैं।",
822
+ "retry_connection": "कनेक्शन का पुनः प्रयास करें",
823
+ "tokens_label": "टोकन",
824
+ "enter_context_length": "संदर्भ की लंबाई दर्ज करें..."
825
+}
\ No newline at end of file
lib/l10n/app_it.arb
+221
-2
@@ -602,5 +602,224 @@
602
"tool_status_rejected": "Rejected",
603
"tool_status_running": "Running",
604
"tool_status_done": "Done",
605
- "tool_status_failed": "Failed"
606
-}
605
+ "tool_status_failed": "Failed",
606
+ "delete_builtin_persona_body": "Questo è un personaggio predefinito. Puoi ripristinarlo in seguito dalle Impostazioni.",
607
+ "restore_builtin_personas": "Ripristina personaggi predefiniti",
608
+ "restore_builtin_personas_desc": "Aggiungi di nuovo i personaggi predefiniti che hai eliminato",
609
+ "restore_builtin_personas_success": "Personaggi predefiniti ripristinati",
610
+ "clear_personas": "Cancella personaggi",
611
+ "enable_image_compression": "Comprimi immagini prima di inviare",
612
+ "enable_image_compression_desc": "Ridimensiona e comprimi le immagini allegate affinché i caricamenti rimangano entro i limiti del server",
613
+ "image_compression_level": "Intensità di compressione",
614
+ "image_compression_level_desc": "Un'intensità maggiore produce file più piccoli con qualità inferiore",
615
+ "image_compression_level_low": "Bassa",
616
+ "image_compression_level_medium": "Media",
617
+ "image_compression_level_high": "Alta",
618
+ "sort_models_tooltip": "Ordina modelli",
619
+ "sort_by_favorites": "Preferiti prima",
620
+ "sort_by_name": "Nome (A-Z)",
621
+ "sort_by_size_smallest": "Dimensione (più piccolo prima)",
622
+ "sort_by_size_largest": "Dimensione (più grande prima)",
623
+ "sort_by_context_length": "Lunghezza del contesto",
624
+ "bulk_ai_rename_progress": "Ridenominazione in corso {done}/{total}...",
625
+ "selected_count": "{count} selezionati",
626
+ "ai_rename_tooltip": "Rinomina selezionati con l'IA",
627
+ "new_chat_in_folder_tooltip": "Nuova chat in questa cartella",
628
+ "total_tokens_count": "{count} token",
629
+ "smart_replies_use_persona": "Usa personaggio nelle risposte intelligenti",
630
+ "smart_replies_use_persona_desc": "Le risposte suggerite corrispondono al tono del personaggio attivo invece di un assistente generico",
631
+ "keep_persona_on_new_chat": "Mantieni personaggio con una nuova chat",
632
+ "keep_persona_on_new_chat_desc": "Non cancellare la selezione del personaggio all'inizio di una nuova chat",
633
+ "role_swap_button_enabled": "Mostra pulsante cambio ruolo",
634
+ "role_swap_button_enabled_desc": "Mostra un pulsante nell'input di chat per inviare il tuo messaggio con il ruolo assistente invece di utente, senza generare risposte",
635
+ "send_as_user_tooltip": "Invia come utente",
636
+ "send_as_assistant_tooltip": "Invia come assistente (nessuna risposta)",
637
+ "insert_without_generating_tooltip": "Inserisci senza generare",
638
+ "token_usage_title": "Utilizzo dei Token",
639
+ "total_tokens_label": "Token usati",
640
+ "usage_percent_label": "Contesto usato",
641
+ "export_choice_title": "Esporta",
642
+ "export_choice_body": "Come desideri esportare?",
643
+ "copy_to_clipboard": "Copia negli appunti",
644
+ "bulk_export_conversations_success": "Esportate {count} conversazioni",
645
+ "bulk_ai_rename_confirm_title": "Rinominare con l'IA?",
646
+ "bulk_ai_rename_confirm_body": "Questo chiederà all'IA di generare un nuovo titolo per ciascuna delle {count} conversazioni selezionate, sostituendo i titoli attuali. Questa operazione può richiedere del tempo e non può essere annullata.",
647
+ "sort_by_modified_date": "Ultima modifica",
648
+ "sort_by_created_date": "Data di creazione",
649
+ "sort_title": "Ordina",
650
+ "ai_user_response_enabled": "Messaggio utente IA (tieni premuto invia)",
651
+ "ai_user_response_enabled_desc": "Tieni premuto il pulsante di invio per 3 secondi per consentire all'IA di scrivere e inviare il tuo prossimo messaggio",
652
+ "ai_user_response_tooltip": "Genera messaggio utente con l'IA",
653
+ "show_system_messages_desc": "Quando nessun personaggio è selezionato, invia un prompt di sistema dell'assistente predefinito con ogni richiesta",
654
+ "show_system_messages_in_chat": "Mostra messaggi di sistema in chat",
655
+ "show_system_messages_in_chat_desc": "Visualizza i messaggi di sistema (es. da un backup importato) come bolle visibili nella conversazione",
656
+ "manage_personas": "Gestisci personaggi",
657
+ "personas_combine_hint": "I personaggi selezionati verranno combinati",
658
+ "unload_all_models": "Scarica tutti i modelli",
659
+ "loaded_models_count": "{count} modelli caricati",
660
+ "all_models_unloaded": "Tutti i modelli scaricati",
661
+ "branch_chat": "Crea ramo chat",
662
+ "branch_chat_desc": "Crea una nuova chat a partire da questo messaggio",
663
+ "edit_assistant_message_desc": "Modifica il contenuto del messaggio dell'assistente",
664
+ "switch_to_model": "Passa al modello {model}",
665
+ "model_favorite_toggle": "Attiva/disattiva preferito",
666
+ "model_note_label": "Nota",
667
+ "model_note_hint": "Aggiungi una nota privata per questo modello...",
668
+ "unload_models_before_load": "Scarica modelli prima di caricare",
669
+ "temp_chat_keyboard_incognito": "Tastiera in incognito per chat temporanee",
670
+ "temp_chat_keyboard_incognito_desc": "Richiedi alla tastiera del sistema di non salvare la cronologia di digitazione durante le chat temporanee",
671
+ "resume_last_chat": "Riprendi l'ultima chat",
672
+ "resume_last_chat_desc": "Apri automaticamente la tua ultima conversazione attiva all'avvio",
673
+ "export_all_data": "Esporta tutti i dati",
674
+ "import_all_data": "Importa tutti i dati",
675
+ "export_data_success": "Dati esportati con successo",
676
+ "import_data_success": "Dati importati con successo",
677
+ "import_data_failed": "Impossibile importare i dati",
678
+ "import_data_confirm": "Questo sostituirà tutti i dati attuali con i dati importati. Continuare?",
679
+ "import_settings_confirm": "Questo sostituirà le tue impostazioni attuali con quelle importate. Continuare?",
680
+ "export_conversations": "Esporta conversazioni",
681
+ "import_conversations": "Importa conversazioni",
682
+ "export_personas": "Esporta personaggi",
683
+ "import_personas": "Importa personaggi",
684
+ "export_settings": "Esporta impostazioni",
685
+ "import_settings": "Importa impostazioni",
686
+ "export_all_zip": "Esporta tutto (ZIP)",
687
+ "import_all_zip": "Importa tutto (ZIP)",
688
+ "duplicate_chat": "Duplica chat",
689
+ "duplicate_chat_success": "Chat duplicata con successo",
690
+ "move_to_folder": "Sposta nella cartella",
691
+ "remove_from_folder": "Rimuovi dalla cartella",
692
+ "create_folder": "Crea cartella",
693
+ "new_folder": "Nuova cartella",
694
+ "folder_name_hint": "Inserisci il nome della cartella...",
695
+ "all_chats": "Tutte le chat",
696
+ "unfiled_chats": "Chat non archiviate",
697
+ "create": "Crea",
698
+ "server_path_prefix_label": "Prefisso percorso server",
699
+ "server_path_prefix_hint": "Prefisso opzionale per i percorsi dell'API del server (es. /v1)",
700
+ "search_message_contents": "Cerca contenuto dei messaggi...",
701
+ "message_search_results": "Risultati ricerca messaggi",
702
+ "saved_messages_title": "Messaggi Salvati",
703
+ "nav_saved_messages": "Messaggi salvati",
704
+ "saved_messages_empty": "Ancora nessun messaggio salvato",
705
+ "save_message": "Salva messaggio",
706
+ "message_saved": "Messaggio salvato",
707
+ "token_count": "Token: {count}",
708
+ "estimated_token_count": "Token stimati: {count}",
709
+ "test_tts_section_title": "Test Sintesi Vocale",
710
+ "test_tts_hint": "Digita qualcosa per testare la voce...",
711
+ "test_speak_button": "Parla",
712
+ "scroll_to_bottom": "Scorri fino in fondo",
713
+ "generate_ai_response": "Genera risposta IA",
714
+ "no_response": "Nessuna risposta",
715
+ "export": "Esporta",
716
+ "import": "Importa",
717
+ "conversations_label": "Conversazioni",
718
+ "personas_label": "Personaggi",
719
+ "settings_label": "Impostazioni",
720
+ "export_conversation": "Esporta conversazione",
721
+ "tts_process_markdown": "Elabora Markdown",
722
+ "tts_process_markdown_desc": "Rimuovi la formattazione come il **grassetto** prima della lettura ad alta voce",
723
+ "tts_skip_seconds": "Secondi da saltare",
724
+ "tts_skip_seconds_desc": "Tempo per saltare avanti/indietro nel lettore vocale",
725
+ "tts_skip_seconds_value": "{seconds}s",
726
+ "preview_system_prompts": "Anteprima prompt di sistema",
727
+ "welcome_message_1": "Ciao! Sono il tuo assistente IA locale.",
728
+ "welcome_message_2": "Chiedimi qualsiasi cosa — sono pronto quando lo sei tu.",
729
+ "welcome_message_3": "I tuoi dati vengono elaborati localmente e non lasciano mai il dispositivo.",
730
+ "welcome_message_4": "Per iniziare, seleziona un modello dalla barra superiore o aggiungine uno nella gestione modelli.",
731
+ "temporary_chat": "Chat temporanea",
732
+ "temporary_chat_desc": "I messaggi di questa chat non saranno salvati nella cronologia",
733
+ "temporary_chat_banner": "Chat Temporanea Attiva — Non verrà salvata nella cronologia",
734
+ "temporary_chat_save_warning_title": "Salvare la chat temporanea?",
735
+ "temporary_chat_save_warning_body": "Questa chat non è salvata nella cronologia. Vuoi salvarla adesso?",
736
+ "save_to_history": "Salva nella cronologia",
737
+ "share_conversation": "Condividi conversazione",
738
+ "download_tts_audio": "Scarica audio vocale",
739
+ "tts_download_unavailable": "Download voce non disponibile",
740
+ "tts_download_no_audio": "Nessun audio generato da scaricare",
741
+ "tts_download_success": "Audio vocale salvato con successo",
742
+ "return_to_chat": "Torna alla chat",
743
+ "return_to_temp_chat": "Torna alla chat temporanea",
744
+ "insert_saved_message": "Inserisci messaggio salvato",
745
+ "insert_saved_message_desc": "Aggiungi un estratto dai tuoi messaggi salvati alla chat",
746
+ "model_info": "Informazioni modello",
747
+ "model_name": "Nome modello",
748
+ "model_identifier": "Identificatore modello",
749
+ "not_available": "Non disponibile",
750
+ "save_message_folders": "Salva nelle cartelle",
751
+ "remove_from_saved": "Rimuovi dai salvati",
752
+ "message_already_saved": "Il messaggio è già salvato",
753
+ "stream_ttft": "Tempo al primo token",
754
+ "stream_tokens_per_sec": "Token al secondo",
755
+ "stream_stop_reason": "Motivo interruzione",
756
+ "stream_input_tokens": "Token di input",
757
+ "stream_output_tokens": "Token di output",
758
+ "stream_generation_time": "Tempo di generazione",
759
+ "attach_image": "Allega immagine",
760
+ "attach_text_document": "Allega documento di testo",
761
+ "add_attachment": "Aggiungi allegato",
762
+ "photo_permission_denied": "Permesso foto negato",
763
+ "characters_label": "Caratteri",
764
+ "exit_temporary_chat_title": "Uscire dalla chat temporanea?",
765
+ "exit_temporary_chat_body": "Questo eliminerà permanentemente la conversazione corrente. Continuare?",
766
+ "saved_message_temp_snap_unavailable": "I salvataggi dei messaggi non sono disponibili nelle chat temporanee",
767
+ "filter_title": "Filtra chat",
768
+ "filter_pinned": "Fissate",
769
+ "filter_archived": "Archiviate",
770
+ "filter_temp_chats": "Chat temporanee",
771
+ "filter_user_messages": "Messaggi utente",
772
+ "filter_assistant_messages": "Messaggi assistente",
773
+ "archive_chat": "Archivia chat",
774
+ "unarchive_chat": "Ripristina chat",
775
+ "conversation_message_count": "{count} messaggi",
776
+ "conversation_character_count": "{count} caratteri",
777
+ "generate_title_with_ai": "Genera titolo con IA",
778
+ "generating_title": "Generazione titolo in corso...",
779
+ "generate_title_failed": "Impossibile generare un titolo",
780
+ "lm_studio_model_browser_title": "Esplora Modelli",
781
+ "lm_studio_model_search_hint": "Cerca modelli...",
782
+ "lm_studio_staff_picks": "Scelte dello staff",
783
+ "lm_studio_community_models": "Modelli della community",
784
+ "lm_studio_no_models": "Nessun modello trovato",
785
+ "lm_studio_models_count": "{count} modelli",
786
+ "lm_studio_browse_models": "Esplora modelli su LM Studio",
787
+ "lm_studio_model_search": "Ricerca modelli",
788
+ "lm_studio_downloads_title": "Download",
789
+ "lm_studio_choose_quant": "Scegli quantizzazione",
790
+ "lm_studio_use_default_quant": "Usa quantizzazione predefinita",
791
+ "lm_studio_recommended": "Consigliato",
792
+ "lm_studio_clear_downloads": "Cancella download completati",
793
+ "lm_studio_no_downloads": "Nessun download attivo",
794
+ "lm_studio_downloads_disclaimer": "I download dei modelli vengono effettuati direttamente da Hugging Face.",
795
+ "lm_studio_staff_pick": "Scelta in evidenza",
796
+ "lm_studio_params": "Parametri",
797
+ "lm_studio_arch": "Architettura",
798
+ "lm_studio_domain": "Dominio",
799
+ "lm_studio_format": "Formato",
800
+ "lm_studio_vision": "Visione",
801
+ "lm_studio_tool_use": "Uso strumenti",
802
+ "lm_studio_reasoning": "Ragionamento",
803
+ "lm_studio_download_options": "Opzioni di download",
804
+ "lm_studio_download": "Scarica",
805
+ "lm_studio_download_size": "Dimensione del download",
806
+ "lm_studio_downloading_percent": "Scaricamento in corso: {percent}%",
807
+ "lm_studio_readme_unavailable": "README non disponibile per questo modello.",
808
+ "lm_studio_full_gpu_offload": "Offload GPU completo possibile",
809
+ "lm_studio_partial_gpu_offload": "Offload GPU parziale possibile",
810
+ "lm_studio_likely_too_large": "Probabilmente troppo grande",
811
+ "lm_studio_available_ram_gb": "RAM disponibile (GB, opzionale)",
812
+ "lm_studio_available_vram_gb": "VRAM disponibile (GB, opzionale)",
813
+ "lm_studio_memory_settings_title": "Memoria per raccomandazioni",
814
+ "lm_studio_memory_settings_desc": "Usato per stimare se i modelli entrano nella memoria della tua macchina nell'esploratore di modelli.",
815
+ "think_button_label": "Pensa",
816
+ "reasoning_effort_low": "Basso",
817
+ "reasoning_effort_medium": "Medio",
818
+ "reasoning_effort_high": "Alto",
819
+ "could_not_read_file": "Impossibile leggere il file",
820
+ "server_offline": "Server offline",
821
+ "could_not_establish_connection": "Impossibile stabilire una connessione al server. Verifica se il server è attivo e se le impostazioni host/porta sono corrette.",
822
+ "retry_connection": "Riprova connessione",
823
+ "tokens_label": "Token",
824
+ "enter_context_length": "Inserisci lunghezza del contesto..."
825
+}
\ No newline at end of file
lib/l10n/app_ja.arb
+221
-2
@@ -602,5 +602,224 @@
602
"tool_status_rejected": "Rejected",
603
"tool_status_running": "Running",
604
"tool_status_done": "Done",
605
- "tool_status_failed": "Failed"
606
-}
605
+ "tool_status_failed": "Failed",
606
+ "delete_builtin_persona_body": "これは組み込みのペルソナです。後で「設定」から復元できます。",
607
+ "restore_builtin_personas": "デフォルトのペルソナを復元",
608
+ "restore_builtin_personas_desc": "削除した組み込みペルソナを再追加する",
609
+ "restore_builtin_personas_success": "デフォルトのペルソナが復元されました",
610
+ "clear_personas": "ペルソナをクリア",
611
+ "enable_image_compression": "送信前に画像を圧縮",
612
+ "enable_image_compression_desc": "添付画像のサイズ変更と圧縮を行い、送信がサーバー制限内に収まるようにします",
613
+ "image_compression_level": "圧縮率の強さ",
614
+ "image_compression_level_desc": "圧縮率が高いほど、より低画質で小さいファイルサイズになります",
615
+ "image_compression_level_low": "低",
616
+ "image_compression_level_medium": "中",
617
+ "image_compression_level_high": "高",
618
+ "sort_models_tooltip": "モデルを並べ替え",
619
+ "sort_by_favorites": "お気に入りを優先",
620
+ "sort_by_name": "名前順 (A-Z)",
621
+ "sort_by_size_smallest": "サイズ順 (小さい順)",
622
+ "sort_by_size_largest": "サイズ順 (大きい順)",
623
+ "sort_by_context_length": "コンテキスト長順",
624
+ "bulk_ai_rename_progress": "名前変更中 {done}/{total}...",
625
+ "selected_count": "{count} 件選択中",
626
+ "ai_rename_tooltip": "AIで選択項目の名前を変更",
627
+ "new_chat_in_folder_tooltip": "このフォルダー内に新規チャット",
628
+ "total_tokens_count": "{count} トークン",
629
+ "smart_replies_use_persona": "スマートリプライにペルソナを使用",
630
+ "smart_replies_use_persona_desc": "提案される返信が一般的なアシスタントではなく、有効なペルソナのトーンに沿ったものになります",
631
+ "keep_persona_on_new_chat": "新規チャット時にペルソナを維持",
632
+ "keep_persona_on_new_chat_desc": "新しいチャットの開始時に選択したペルソナをクリアしない",
633
+ "role_swap_button_enabled": "ロール切替ボタンを表示",
634
+ "role_swap_button_enabled_desc": "チャット入力欄に、回答を生成せずにユーザーではなくアシスタントとしてメッセージを送信できるボタンを表示します",
635
+ "send_as_user_tooltip": "ユーザーとして送信",
636
+ "send_as_assistant_tooltip": "アシスタントとして送信 (回答なし)",
637
+ "insert_without_generating_tooltip": "回答を生成せずに挿入",
638
+ "token_usage_title": "トークン使用量",
639
+ "total_tokens_label": "使用トークン",
640
+ "usage_percent_label": "使用されたコンテキスト",
641
+ "export_choice_title": "エクスポート",
642
+ "export_choice_body": "どのようにエクスポートしますか?",
643
+ "copy_to_clipboard": "クリップボードにコピー",
644
+ "bulk_export_conversations_success": "{count} 件の会話をエクスポートしました",
645
+ "bulk_ai_rename_confirm_title": "AIで名前を変更しますか?",
646
+ "bulk_ai_rename_confirm_body": "これにより、AIが選択した {count} 件の会話それぞれに対して新しいタイトルを生成し、現在のタイトルを上書きします。処理には時間がかかる場合があり、元に戻すことはできません。",
647
+ "sort_by_modified_date": "最終更新日",
648
+ "sort_by_created_date": "作成日",
649
+ "sort_title": "並べ替え",
650
+ "ai_user_response_enabled": "AIユーザーメッセージ (送信長押し)",
651
+ "ai_user_response_enabled_desc": "送信ボタンを3秒間長押しすると、AIが次のメッセージを執筆して送信します",
652
+ "ai_user_response_tooltip": "AIでユーザーメッセージを生成",
653
+ "show_system_messages_desc": "ペルソナが選択されていない場合、リクエストごとに関連するデフォルトのアシスタントシステムプロンプトを送信する",
654
+ "show_system_messages_in_chat": "チャット内にシステムメッセージを表示",
655
+ "show_system_messages_in_chat_desc": "インポートされたバックアップなどからのシステムメッセージを、チャット画面上に吹き出しとして表示します",
656
+ "manage_personas": "ペルソナの管理",
657
+ "personas_combine_hint": "選択したペルソナは統合されます",
658
+ "unload_all_models": "すべてのモデルをアンロード",
659
+ "loaded_models_count": "{count} 個のモデルがロード済み",
660
+ "all_models_unloaded": "すべてのモデルがアンロードされました",
661
+ "branch_chat": "チャットを分岐",
662
+ "branch_chat_desc": "このメッセージから新しいチャットを作成",
663
+ "edit_assistant_message_desc": "アシスタントメッセージの内容を編集",
664
+ "switch_to_model": "モデル {model} に切り替え",
665
+ "model_favorite_toggle": "お気に入りの切り替え",
666
+ "model_note_label": "メモ",
667
+ "model_note_hint": "このモデル用の非公開メモを追加...",
668
+ "unload_models_before_load": "ロード前にモデルをアンロード",
669
+ "temp_chat_keyboard_incognito": "一時的なチャットでのシークレットキーボード",
670
+ "temp_chat_keyboard_incognito_desc": "一時的なチャットの実行中、システムキーボードに入力履歴を保存しないよう要求します",
671
+ "resume_last_chat": "前回のチャットを再開",
672
+ "resume_last_chat_desc": "起動時に自動的に前回の有効な会話を開く",
673
+ "export_all_data": "すべてのデータをエクスポート",
674
+ "import_all_data": "すべてのデータをインポート",
675
+ "export_data_success": "データのエクスポートに成功しました",
676
+ "import_data_success": "データのインポートに成功しました",
677
+ "import_data_failed": "データのインポートに失敗しました",
678
+ "import_data_confirm": "これにより、現在のすべてのデータがインポートされたデータに置き換わります。続行しますか?",
679
+ "import_settings_confirm": "これにより、現在の設定がインポートされた設定に置き換わります。続行しますか?",
680
+ "export_conversations": "会話をエクスポート",
681
+ "import_conversations": "会話をインポート",
682
+ "export_personas": "ペルソナをエクスポート",
683
+ "import_personas": "ペルソナをインポート",
684
+ "export_settings": "設定をエクスポート",
685
+ "import_settings": "設定をインポート",
686
+ "export_all_zip": "すべてエクスポート (ZIP)",
687
+ "import_all_zip": "すべてインポート (ZIP)",
688
+ "duplicate_chat": "チャットを複製",
689
+ "duplicate_chat_success": "チャットの複製に成功しました",
690
+ "move_to_folder": "フォルダーに移動",
691
+ "remove_from_folder": "フォルダーから削除",
692
+ "create_folder": "フォルダーを作成",
693
+ "new_folder": "新規フォルダー",
694
+ "folder_name_hint": "フォルダー名を入力...",
695
+ "all_chats": "すべてのチャット",
696
+ "unfiled_chats": "未分類のチャット",
697
+ "create": "作成",
698
+ "server_path_prefix_label": "サーバーパス接頭辞",
699
+ "server_path_prefix_hint": "サーバーAPIパスのオプション接頭辞 (例: /v1)",
700
+ "search_message_contents": "メッセージ内容を検索...",
701
+ "message_search_results": "メッセージ検索結果",
702
+ "saved_messages_title": "保存されたメッセージ",
703
+ "nav_saved_messages": "保存メッセージ",
704
+ "saved_messages_empty": "保存されたメッセージはまだありません",
705
+ "save_message": "メッセージを保存",
706
+ "message_saved": "メッセージが保存されました",
707
+ "token_count": "トークン: {count}",
708
+ "estimated_token_count": "推定トークン: {count}",
709
+ "test_tts_section_title": "音声合成テスト",
710
+ "test_tts_hint": "音声をテストするには何か入力してください...",
711
+ "test_speak_button": "発話",
712
+ "scroll_to_bottom": "一番下までスクロール",
713
+ "generate_ai_response": "AIの回答を生成",
714
+ "no_response": "回答なし",
715
+ "export": "エクスポート",
716
+ "import": "インポート",
717
+ "conversations_label": "会話",
718
+ "personas_label": "ペルソナ",
719
+ "settings_label": "設定",
720
+ "export_conversation": "会話をエクスポート",
721
+ "tts_process_markdown": "Markdown処理",
722
+ "tts_process_markdown_desc": "読み上げる前に**太字**などの装飾タグを取り除く",
723
+ "tts_skip_seconds": "スキップ秒数",
724
+ "tts_skip_seconds_desc": "音声プレイヤーで前後にスキップする時間",
725
+ "tts_skip_seconds_value": "{seconds}秒",
726
+ "preview_system_prompts": "システムプロンプトのプレビュー",
727
+ "welcome_message_1": "こんにちは!私はローカルAIアシスタントです。",
728
+ "welcome_message_2": "何でも質問してください。準備はいつでもできています。",
729
+ "welcome_message_3": "データはローカルで処理され、デバイスの外に出ることはありません。",
730
+ "welcome_message_4": "開始するには、上部のバーからモデルを選択するか、モデル管理セクションで新しいモデルを追加してください。",
731
+ "temporary_chat": "一時的なチャット",
732
+ "temporary_chat_desc": "このチャット内のメッセージは履歴に保存されません",
733
+ "temporary_chat_banner": "一時的なチャットが有効 — 履歴には保存されません",
734
+ "temporary_chat_save_warning_title": "一時的なチャットを保存しますか?",
735
+ "temporary_chat_save_warning_body": "このチャットは履歴に保存されていません。今すぐ保存しますか?",
736
+ "save_to_history": "履歴に保存",
737
+ "share_conversation": "会話を共有",
738
+ "download_tts_audio": "音声をダウンロード",
739
+ "tts_download_unavailable": "音声ダウンロードは利用できません",
740
+ "tts_download_no_audio": "ダウンロードする音声が生成されていません",
741
+ "tts_download_success": "音声が保存されました",
742
+ "return_to_chat": "チャットに戻る",
743
+ "return_to_temp_chat": "一時チャットに戻る",
744
+ "insert_saved_message": "保存されたメッセージを挿入",
745
+ "insert_saved_message_desc": "保存されたメッセージの断片をチャットに追加します",
746
+ "model_info": "モデル情報",
747
+ "model_name": "モデル名",
748
+ "model_identifier": "モデル識別子",
749
+ "not_available": "利用不可",
750
+ "save_message_folders": "フォルダーに保存",
751
+ "remove_from_saved": "保存から削除",
752
+ "message_already_saved": "メッセージはすでに保存されています",
753
+ "stream_ttft": "初回トークン生成時間",
754
+ "stream_tokens_per_sec": "トークン秒速",
755
+ "stream_stop_reason": "終了理由",
756
+ "stream_input_tokens": "入力トークン数",
757
+ "stream_output_tokens": "出力トークン数",
758
+ "stream_generation_time": "生成時間",
759
+ "attach_image": "画像を添付",
760
+ "attach_text_document": "テキストファイルを添付",
761
+ "add_attachment": "添付ファイルを追加",
762
+ "photo_permission_denied": "写真のアクセス許可が拒否されました",
763
+ "characters_label": "文字数",
764
+ "exit_temporary_chat_title": "一時チャットを終了しますか?",
765
+ "exit_temporary_chat_body": "これにより、現在の会話が完全に削除されます。続行しますか?",
766
+ "saved_message_temp_snap_unavailable": "一時チャットではメッセージのスナップショットは利用できません",
767
+ "filter_title": "チャットを絞り込み",
768
+ "filter_pinned": "ピン留め済み",
769
+ "filter_archived": "アーカイブ済み",
770
+ "filter_temp_chats": "一時チャット",
771
+ "filter_user_messages": "ユーザーのメッセージ",
772
+ "filter_assistant_messages": "アシスタントのメッセージ",
773
+ "archive_chat": "チャットをアーカイブ",
774
+ "unarchive_chat": "アーカイブを解除",
775
+ "conversation_message_count": "{count} 件のメッセージ",
776
+ "conversation_character_count": "{count} 文字",
777
+ "generate_title_with_ai": "AIでタイトルを自動生成",
778
+ "generating_title": "タイトルを生成中...",
779
+ "generate_title_failed": "タイトルを生成できませんでした",
780
+ "lm_studio_model_browser_title": "モデルブラウザー",
781
+ "lm_studio_model_search_hint": "モデルを検索...",
782
+ "lm_studio_staff_picks": "スタッフのおすすめ",
783
+ "lm_studio_community_models": "コミュニティモデル",
784
+ "lm_studio_no_models": "モデルが見つかりませんでした",
785
+ "lm_studio_models_count": "{count} 個のモデル",
786
+ "lm_studio_browse_models": "LM Studioでモデルを探す",
787
+ "lm_studio_model_search": "モデル検索",
788
+ "lm_studio_downloads_title": "ダウンロード",
789
+ "lm_studio_choose_quant": "量子化を選択",
790
+ "lm_studio_use_default_quant": "デフォルトの量子化を使用",
791
+ "lm_studio_recommended": "推奨",
792
+ "lm_studio_clear_downloads": "完了したダウンロードをクリア",
793
+ "lm_studio_no_downloads": "アクティブなダウンロードはありません",
794
+ "lm_studio_downloads_disclaimer": "モデルのダウンロードはHugging Faceから直接行われます。",
795
+ "lm_studio_staff_pick": "注目のモデル",
796
+ "lm_studio_params": "パラメータ",
797
+ "lm_studio_arch": "アーキテクチャ",
798
+ "lm_studio_domain": "ドメイン",
799
+ "lm_studio_format": "フォーマット",
800
+ "lm_studio_vision": "ビジョン",
801
+ "lm_studio_tool_use": "ツール利用",
802
+ "lm_studio_reasoning": "推論",
803
+ "lm_studio_download_options": "ダウンロードオプション",
804
+ "lm_studio_download": "ダウンロード",
805
+ "lm_studio_download_size": "ダウンロードサイズ",
806
+ "lm_studio_downloading_percent": "ダウンロード中: {percent}%",
807
+ "lm_studio_readme_unavailable": "このモデルのREADMEは利用できません。",
808
+ "lm_studio_full_gpu_offload": "フルGPUオフロード可能",
809
+ "lm_studio_partial_gpu_offload": "部分GPUオフロード可能",
810
+ "lm_studio_likely_too_large": "サイズが大きすぎる可能性があります",
811
+ "lm_studio_available_ram_gb": "空きRAM容量 (GB, 任意)",
812
+ "lm_studio_available_vram_gb": "空きVRAM容量 (GB, 任意)",
813
+ "lm_studio_memory_settings_title": "推奨用メモリ設定",
814
+ "lm_studio_memory_settings_desc": "モデルブラウザーでモデルがお使いのデバイスに収まるかどうかを判断するために使用されます。",
815
+ "think_button_label": "思考",
816
+ "reasoning_effort_low": "低",
817
+ "reasoning_effort_medium": "中",
818
+ "reasoning_effort_high": "高",
819
+ "could_not_read_file": "ファイルを読み込めませんでした",
820
+ "server_offline": "サーバーがオフラインです",
821
+ "could_not_establish_connection": "サーバーへの接続を確立できませんでした。サーバーが稼働していること、およびホスト/ポートの設定が正しいことを確認してください。",
822
+ "retry_connection": "接続を再試行",
823
+ "tokens_label": "トークン",
824
+ "enter_context_length": "コンテキスト長を入力..."
825
+}
\ No newline at end of file
lib/l10n/app_localizations.dart
+37
-1
@@ -3279,7 +3279,7 @@ abstract class AppLocalizations {
3279
///
3280
/// In en, this message translates to:
3281
/// **'Switch to {modelName}'**
3282
- String switch_to_model(String modelName);
3282
+ String switch_to_model(String modelName, Object model);
3283
3284
/// Download notification title
3285
///
@@ -4990,6 +4990,42 @@ abstract class AppLocalizations {
4990
/// In en, this message translates to:
4991
/// **'High'**
4992
String get reasoning_effort_high;
4993
+
4994
+ /// Error message when file cannot be read
4995
+ ///
4996
+ /// In en, this message translates to:
4997
+ /// **'Could not read file'**
4998
+ String get could_not_read_file;
4999
+
5000
+ /// Server offline status message
5001
+ ///
5002
+ /// In en, this message translates to:
5003
+ /// **'Server Offline'**
5004
+ String get server_offline;
5005
+
5006
+ /// Error message when connection to server fails
5007
+ ///
5008
+ /// In en, this message translates to:
5009
+ /// **'Could not establish a connection to the server. Please check if your server is running and the host/port settings are correct.'**
5010
+ String get could_not_establish_connection;
5011
+
5012
+ /// Retry connection button label
5013
+ ///
5014
+ /// In en, this message translates to:
5015
+ /// **'Retry Connection'**
5016
+ String get retry_connection;
5017
+
5018
+ /// Tokens input label
5019
+ ///
5020
+ /// In en, this message translates to:
5021
+ /// **'Tokens'**
5022
+ String get tokens_label;
5023
+
5024
+ /// Context length input placeholder text
5025
+ ///
5026
+ /// In en, this message translates to:
5027
+ /// **'Enter context length...'**
5028
+ String get enter_context_length;
5029
}
5030
5031
class _AppLocalizationsDelegate
lib/l10n/app_localizations_ar.dart
+244
-227
@@ -262,152 +262,155 @@ class AppLocalizationsAr extends AppLocalizations {
262
263
@override
264
String get delete_builtin_persona_body =>
265
- 'This is a built-in persona. You can restore it later from Settings.';
265
+ 'هذه شخصية مدمجة. يمكنك استعادتها لاحقًا من الإعدادات.';
266
267
@override
268
- String get restore_builtin_personas => 'Restore default personas';
268
+ String get restore_builtin_personas => 'استعادة الشخصيات الافتراضية';
269
270
@override
271
String get restore_builtin_personas_desc =>
272
- 'Re-add any built-in personas you\'ve deleted';
272
+ 'إعادة إضافة أي شخصيات مدمجة قمت بحذفها';
273
274
@override
275
- String get restore_builtin_personas_success => 'Default personas restored';
275
+ String get restore_builtin_personas_success =>
276
+ 'تم استعادة الشخصيات الافتراضية';
277
278
@override
278
- String get clear_personas => 'Clear personas';
279
+ String get clear_personas => 'مسح الشخصيات';
280
281
@override
281
- String get enable_image_compression => 'Compress images before sending';
282
+ String get enable_image_compression => 'ضغط الصور قبل الإرسال';
283
284
@override
285
String get enable_image_compression_desc =>
285
- 'Resize and compress attached images so uploads stay within server limits';
286
+ 'تغيير حجم الصور المرفقة وضغطها لتبقى عمليات التحميل ضمن حدود الخادم';
287
288
@override
288
- String get image_compression_level => 'Compression aggressiveness';
289
+ String get image_compression_level => 'درجة ضغط الصور';
290
291
@override
292
String get image_compression_level_desc =>
292
- 'Higher aggressiveness produces smaller uploads at lower quality';
293
+ 'الضغط العالي ينتج أحجام تحميل أصغر بجودة أقل';
294
295
@override
295
- String get image_compression_level_low => 'Low';
296
+ String get image_compression_level_low => 'منخفض';
297
298
@override
298
- String get image_compression_level_medium => 'Medium';
299
+ String get image_compression_level_medium => 'متوسط';
300
301
@override
301
- String get image_compression_level_high => 'High';
302
+ String get image_compression_level_high => 'مرتفع';
303
304
@override
304
- String get sort_models_tooltip => 'Sort models';
305
+ String get sort_models_tooltip => 'فرز النماذج';
306
307
@override
307
- String get sort_by_favorites => 'Favorites first';
308
+ String get sort_by_favorites => 'المفضلة أولاً';
309
310
@override
310
- String get sort_by_name => 'Name (A-Z)';
311
+ String get sort_by_name => 'الاسم (أ-ي)';
312
313
@override
313
- String get sort_by_size_smallest => 'Size (smallest first)';
314
+ String get sort_by_size_smallest => 'الحجم (الأصغر أولاً)';
315
316
@override
316
- String get sort_by_size_largest => 'Size (largest first)';
317
+ String get sort_by_size_largest => 'الحجم (الأكبر أولاً)';
318
319
@override
319
- String get sort_by_context_length => 'Context length';
320
+ String get sort_by_context_length => 'طول السياق';
321
322
@override
323
String bulk_ai_rename_progress(int done, int total) {
323
- return 'Renaming $done/$total...';
324
+ return 'إعادة تسمية $done/$total...';
325
}
326
327
@override
328
String selected_count(int count) {
328
- return '$count selected';
329
+ return 'تم تحديد $count';
330
}
331
332
@override
332
- String get ai_rename_tooltip => 'Rename selected with AI';
333
+ String get ai_rename_tooltip =>
334
+ 'إعادة تسمية العناصر المحددة بواسطة الذكاء الاصطناعي';
335
336
@override
335
- String get new_chat_in_folder_tooltip => 'New chat in this folder';
337
+ String get new_chat_in_folder_tooltip => 'دردشة جديدة في هذا المجلد';
338
339
@override
340
String total_tokens_count(int count) {
339
- return '$count tokens';
341
+ return '$count من الرموز';
342
}
343
344
@override
343
- String get smart_replies_use_persona => 'Use persona in smart replies';
345
+ String get smart_replies_use_persona => 'استخدام الشخصية في الردود الذكية';
346
347
@override
348
String get smart_replies_use_persona_desc =>
347
- 'Suggested replies match the tone of the active persona instead of a generic assistant';
349
+ 'تتطابق الردود المقترحة مع نبرة الشخصية النشطة بدلاً من مساعد عام';
350
351
@override
350
- String get keep_persona_on_new_chat => 'Keep persona on new chat';
352
+ String get keep_persona_on_new_chat =>
353
+ 'الاحتفاظ بالشخصية عند بدء دردشة جديدة';
354
355
@override
356
String get keep_persona_on_new_chat_desc =>
354
- 'Don\'t clear the selected persona(s) after starting a new chat';
357
+ 'لا تقم بمسح الشخصية المحددة بعد بدء دردشة جديدة';
358
359
@override
357
- String get role_swap_button_enabled => 'Show role-swap button';
360
+ String get role_swap_button_enabled => 'إظهار زر تبديل الأدوار';
361
362
@override
363
String get role_swap_button_enabled_desc =>
361
- 'Show a button in the chat input to send your message as the assistant instead of the user, without generating a response';
364
+ 'إظهار زر في مدخلات الدردشة لإرسال رسالتك كدور مساعد بدلاً من المستخدم، دون إنشاء رد';
365
366
@override
364
- String get send_as_user_tooltip => 'Send as user';
367
+ String get send_as_user_tooltip => 'إرسال كمستخدم';
368
369
@override
367
- String get send_as_assistant_tooltip => 'Send as assistant (no response)';
370
+ String get send_as_assistant_tooltip => 'إرسال كمساعد (بدون رد)';
371
372
@override
370
- String get insert_without_generating_tooltip => 'Insert without generating';
373
+ String get insert_without_generating_tooltip => 'إدراج دون إنشاء رد';
374
375
@override
373
- String get token_usage_title => 'Token Usage';
376
+ String get token_usage_title => 'استخدام الرموز (Tokens)';
377
378
@override
376
- String get total_tokens_label => 'Tokens used';
379
+ String get total_tokens_label => 'الرموز المستخدمة';
380
381
@override
379
- String get usage_percent_label => 'Context used';
382
+ String get usage_percent_label => 'السياق المستخدم';
383
384
@override
382
- String get export_choice_title => 'Export';
385
+ String get export_choice_title => 'تصدير';
386
387
@override
385
- String get export_choice_body => 'How would you like to export this?';
388
+ String get export_choice_body => 'كيف ترغب في تصدير هذا؟';
389
390
@override
388
- String get copy_to_clipboard => 'Copy to Clipboard';
391
+ String get copy_to_clipboard => 'نسخ إلى الحافظة';
392
393
@override
394
String bulk_export_conversations_success(int count) {
392
- return 'Exported $count conversations';
395
+ return 'تم تصدير $count من المحادثات';
396
}
397
398
@override
396
- String get bulk_ai_rename_confirm_title => 'Rename with AI?';
399
+ String get bulk_ai_rename_confirm_title => 'إعادة التسمية بالذكاء الاصطناعي؟';
400
401
@override
402
String bulk_ai_rename_confirm_body(int count) {
400
- return 'This will ask the AI to generate a new title for each of the $count selected conversations, replacing their current titles. This can take a while and cannot be undone.';
403
+ return 'سيؤدي هذا إلى جعل الذكاء الاصطناعي ينشئ عنوانًا جديدًا لكل من المحادثات المحددة الـ $count، ليحل محل عناوينها الحالية. قد يستغرق هذا بعض الوقت ولا يمكن التراجع عنه.';
404
}
405
406
@override
404
- String get sort_by_modified_date => 'Last modified';
407
+ String get sort_by_modified_date => 'آخر تعديل';
408
409
@override
407
- String get sort_by_created_date => 'Date created';
410
+ String get sort_by_created_date => 'تاريخ الإنشاء';
411
412
@override
410
- String get sort_title => 'Sort';
413
+ String get sort_title => 'فرز';
414
415
@override
416
String get clear_conversation_title => 'مسح المحادثة؟';
@@ -617,14 +620,15 @@ class AppLocalizationsAr extends AppLocalizations {
620
String get enable_smart_reply => 'الردود الذكية المحلية';
621
622
@override
620
- String get ai_user_response_enabled => 'AI user message (hold send)';
623
+ String get ai_user_response_enabled =>
624
+ 'رسالة مستخدم بالذكاء الاصطناعي (اضغط مطولاً)';
625
626
@override
627
String get ai_user_response_enabled_desc =>
624
- 'Hold the send button for 3 seconds to have the AI write and send your next message';
628
+ 'اضغط مع الاستمرار على زر الإرسال لمدة 3 ثوانٍ ليقوم الذكاء الاصطناعي بكتابة وإرسال رسالتك التالية';
629
630
@override
627
- String get ai_user_response_tooltip => 'Generate user message with AI';
631
+ String get ai_user_response_tooltip => 'إنشاء رسالة مستخدم بالذكاء الاصطناعي';
632
633
@override
634
String get streaming_responses => 'الردود المتدفقة';
@@ -640,14 +644,14 @@ class AppLocalizationsAr extends AppLocalizations {
644
645
@override
646
String get show_system_messages_desc =>
643
- 'When no persona is selected, send a default assistant system prompt with each request';
647
+ 'عند عدم تحديد أي شخصية، أرسل مطالبة نظام المساعد الافتراضية مع كل طلب';
648
649
@override
646
- String get show_system_messages_in_chat => 'Show System Messages in Chat';
650
+ String get show_system_messages_in_chat => 'إظهار رسائل النظام في الدردشة';
651
652
@override
653
String get show_system_messages_in_chat_desc =>
650
- 'Display system messages (e.g. from an imported backup) as visible bubbles in the conversation';
654
+ 'عرض رسائل النظام (على سبيل المثال من نسخة احتياطية مستوردة) كفقاعات مرئية في المحادثة';
655
656
@override
657
String get haptic_feedback => 'الاستجابة اللمسية';
@@ -704,11 +708,10 @@ class AppLocalizationsAr extends AppLocalizations {
708
String get select_persona => 'اختيار شخصية';
709
710
@override
707
- String get manage_personas => 'Manage personas';
711
+ String get manage_personas => 'إدارة الشخصيات';
712
713
@override
710
- String get personas_combine_hint =>
711
- 'Select multiple personas in chat to stack their system prompts.';
714
+ String get personas_combine_hint => 'سيتم دمج الشخصيات المحددة';
715
716
@override
717
String get start_conversation => 'ابدأ محادثة';
@@ -1693,28 +1696,28 @@ class AppLocalizationsAr extends AppLocalizations {
1696
}
1697
1698
@override
1696
- String get unload_all_models => 'Unload all';
1699
+ String get unload_all_models => 'إلغاء تحميل جميع النماذج';
1700
1701
@override
1702
String loaded_models_count(int count) {
1700
- return '$count loaded';
1703
+ return 'تم تحميل $count نموذج';
1704
}
1705
1706
@override
1704
- String get all_models_unloaded => 'All models unloaded';
1707
+ String get all_models_unloaded => 'تم إلغاء تحميل جميع النماذج';
1708
1709
@override
1707
- String get branch_chat => 'Branch chat';
1710
+ String get branch_chat => 'تفريع الدردشة';
1711
1712
@override
1710
- String get branch_chat_desc => 'Start a new conversation from this message';
1713
+ String get branch_chat_desc => 'إنشاء دردشة جديدة بدءًا من هذه الرسالة';
1714
1715
@override
1713
- String get edit_assistant_message_desc => 'Edit the assistant response text.';
1716
+ String get edit_assistant_message_desc => 'تعديل محتوى رسالة المساعد';
1717
1718
@override
1716
- String switch_to_model(String modelName) {
1717
- return 'Switch to $modelName';
1719
+ String switch_to_model(String modelName, Object model) {
1720
+ return 'التبديل إلى النموذج $model';
1721
}
1722
1723
@override
@@ -2152,507 +2155,521 @@ class AppLocalizationsAr extends AppLocalizations {
2155
String get tool_status_failed => 'Failed';
2156
2157
@override
2155
- String get model_favorite_toggle => 'Toggle favorite';
2158
+ String get model_favorite_toggle => 'تبديل المفضلة';
2159
2160
@override
2158
- String get model_note_label => 'Note';
2161
+ String get model_note_label => 'ملاحظة';
2162
2163
@override
2161
- String get model_note_hint => 'Add a note about this model…';
2164
+ String get model_note_hint => 'أضف ملاحظة خاصة لهذا النموذج...';
2165
2166
@override
2167
String get unload_models_before_load =>
2165
- 'Unload all models before loading a new one';
2168
+ 'إلغاء تحميل النماذج قبل التحميل الجديد';
2169
2170
@override
2171
String get temp_chat_keyboard_incognito =>
2169
- 'Incognito keyboard in temporary chat';
2172
+ 'لوحة مفاتيح متخفية في الدردشة المؤقتة';
2173
2174
@override
2175
String get temp_chat_keyboard_incognito_desc =>
2173
- 'Disables keyboard learning and suggestions in temporary chats (e.g. SwiftKey incognito).';
2176
+ 'طلب عدم حفظ سجل الكتابة من لوحة مفاتيح النظام أثناء الدردشات المؤقتة';
2177
2178
@override
2176
- String get resume_last_chat => 'Resume last chat on launch';
2179
+ String get resume_last_chat => 'استئناف الدردشة الأخيرة';
2180
2181
@override
2179
- String get resume_last_chat_desc =>
2180
- 'Restore your last open conversation when reopening the app.';
2182
+ String get resume_last_chat_desc => 'افتح تلقائيًا آخر محادثة نشطة عند البدء';
2183
2184
@override
2183
- String get export_all_data => 'Export all data';
2185
+ String get export_all_data => 'تصدير جميع البيانات';
2186
2187
@override
2186
- String get import_all_data => 'Import all data';
2188
+ String get import_all_data => 'استيراد جميع البيانات';
2189
2190
@override
2189
- String get export_data_success => 'Backup exported successfully';
2191
+ String get export_data_success => 'تم تصدير البيانات بنجاح';
2192
2193
@override
2192
- String get import_data_success => 'Backup imported successfully';
2194
+ String get import_data_success => 'تم استيراد البيانات بنجاح';
2195
2196
@override
2197
String import_data_failed(String error) {
2196
- return 'Failed to import backup: $error';
2198
+ return 'فشل استيراد البيانات';
2199
}
2200
2201
@override
2202
String get import_data_confirm =>
2201
- 'Import conversations and custom personas from this backup? Existing items with the same IDs will be updated.';
2203
+ 'سيؤدي هذا إلى استبدال جميع بياناتك الحالية بالبيانات المستوردة. هل تريد الاستمرار؟';
2204
2205
@override
2206
String get import_settings_confirm =>
2205
- 'Replace current settings with the imported backup?';
2207
+ 'سيؤدي هذا إلى استبدال إعداداتك الحالية بالإعدادات المستوردة. هل تريد الاستمرار؟';
2208
2209
@override
2208
- String get export_conversations => 'Export conversations';
2210
+ String get export_conversations => 'تصدير المحادثات';
2211
2212
@override
2211
- String get import_conversations => 'Import conversations';
2213
+ String get import_conversations => 'استيراد المحادثات';
2214
2215
@override
2214
- String get export_personas => 'Export personas';
2216
+ String get export_personas => 'تصدير الشخصيات';
2217
2218
@override
2217
- String get import_personas => 'Import personas';
2219
+ String get import_personas => 'استيراد الشخصيات';
2220
2221
@override
2220
- String get export_settings => 'Export settings';
2222
+ String get export_settings => 'تصدير الإعدادات';
2223
2224
@override
2223
- String get import_settings => 'Import settings';
2225
+ String get import_settings => 'استيراد الإعدادات';
2226
2227
@override
2226
- String get export_all_zip => 'Export all (ZIP)';
2228
+ String get export_all_zip => 'تصدير الكل (ZIP)';
2229
2230
@override
2229
- String get import_all_zip => 'Import all (ZIP)';
2231
+ String get import_all_zip => 'استيراد الكل (ZIP)';
2232
2233
@override
2232
- String get duplicate_chat => 'Duplicate chat';
2234
+ String get duplicate_chat => 'تكرار الدردشة';
2235
2236
@override
2235
- String get duplicate_chat_success => 'Chat duplicated';
2237
+ String get duplicate_chat_success => 'تم تكرار الدردشة بنجاح';
2238
2239
@override
2238
- String get move_to_folder => 'Move to folder';
2240
+ String get move_to_folder => 'نقل إلى مجلد';
2241
2242
@override
2241
- String get remove_from_folder => 'Remove from folder';
2243
+ String get remove_from_folder => 'إزالة من المجلد';
2244
2245
@override
2244
- String get create_folder => 'Create folder';
2246
+ String get create_folder => 'إنشاء مجلد';
2247
2248
@override
2247
- String get new_folder => 'New folder';
2249
+ String get new_folder => 'مجلد جديد';
2250
2251
@override
2250
- String get folder_name_hint => 'Folder name';
2252
+ String get folder_name_hint => 'أدخل اسم المجلد...';
2253
2254
@override
2253
- String get all_chats => 'All';
2255
+ String get all_chats => 'جميع الدردشات';
2256
2257
@override
2256
- String get unfiled_chats => 'Unfiled';
2258
+ String get unfiled_chats => 'دردشات غير مصنفة';
2259
2260
@override
2259
- String get create => 'Create';
2261
+ String get create => 'إنشاء';
2262
2263
@override
2262
- String get server_path_prefix_label => 'API path prefix';
2264
+ String get server_path_prefix_label => 'بادئة مسار الخادم';
2265
2266
@override
2265
- String get server_path_prefix_hint => '/your-secret-token';
2267
+ String get server_path_prefix_hint =>
2268
+ 'بادئة اختيارية لمسارات واجهة برمجة تطبيقات الخادم (على سبيل المثال /v1)';
2269
2270
@override
2268
- String get search_message_contents => 'Search message contents';
2271
+ String get search_message_contents => 'البحث في محتوى الرسائل...';
2272
2273
@override
2271
- String get message_search_results => 'Message matches';
2274
+ String get message_search_results => 'نتائج البحث في الرسائل';
2275
2276
@override
2274
- String get saved_messages_title => 'Saved Messages';
2277
+ String get saved_messages_title => 'الرسائل المحفوظة';
2278
2279
@override
2277
- String get nav_saved_messages => 'Saved Messages';
2280
+ String get nav_saved_messages => 'الرسائل المحفوظة';
2281
2282
@override
2280
- String get saved_messages_empty =>
2281
- 'No saved messages yet. Bookmark a message from its options menu.';
2283
+ String get saved_messages_empty => 'لا توجد رسائل محفوظة بعد';
2284
2285
@override
2284
- String get save_message => 'Save message';
2286
+ String get save_message => 'حفظ الرسالة';
2287
2288
@override
2287
- String get message_saved => 'Message saved';
2289
+ String get message_saved => 'تم حفظ الرسالة';
2290
2291
@override
2292
String token_count(int count) {
2291
- return '$count tokens';
2293
+ return 'الرموز: $count';
2294
}
2295
2296
@override
2297
String estimated_token_count(int count) {
2296
- return '~$count tokens (estimated)';
2298
+ return 'الرموز المقدرة: $count';
2299
}
2300
2301
@override
2300
- String get test_tts_section_title => 'Test voice';
2302
+ String get test_tts_section_title => 'اختبار تحويل النص إلى كلام';
2303
2304
@override
2303
- String get test_tts_hint => 'Enter text to hear the current TTS engine…';
2305
+ String get test_tts_hint => 'اكتب شيئًا لاختبار الصوت...';
2306
2307
@override
2306
- String get test_speak_button => 'Speak';
2308
+ String get test_speak_button => 'تحدث';
2309
2310
@override
2309
- String get scroll_to_bottom => 'Scroll to bottom';
2311
+ String get scroll_to_bottom => 'التمرير إلى الأسفل';
2312
2313
@override
2312
- String get generate_ai_response => 'Generate AI response';
2314
+ String get generate_ai_response => 'إنشاء رد بالذكاء الاصطناعي';
2315
2316
@override
2315
- String get no_response => 'No response';
2317
+ String get no_response => 'لا يوجد رد';
2318
2319
@override
2318
- String get export => 'Export';
2320
+ String get export => 'تصدير';
2321
2322
@override
2321
- String get import => 'Import';
2323
+ String get import => 'استيراد';
2324
2325
@override
2324
- String get conversations_label => 'Conversations';
2326
+ String get conversations_label => 'المحادثات';
2327
2328
@override
2327
- String get personas_label => 'Personas';
2329
+ String get personas_label => 'الشخصيات';
2330
2331
@override
2330
- String get settings_label => 'Settings';
2332
+ String get settings_label => 'الإعدادات';
2333
2334
@override
2333
- String get export_conversation => 'Export conversation';
2335
+ String get export_conversation => 'تصدير المحادثة';
2336
2337
@override
2336
- String get tts_process_markdown => 'Process markdown for speech';
2338
+ String get tts_process_markdown => 'معالجة التنسيق (Markdown)';
2339
2340
@override
2341
String get tts_process_markdown_desc =>
2340
- 'Strip formatting like **bold** before reading aloud';
2342
+ 'إزالة التنسيق مثل الخط **العريض** قبل القراءة بصوت عالٍ';
2343
2344
@override
2343
- String get tts_skip_seconds => 'Skip interval';
2345
+ String get tts_skip_seconds => 'ثواني التخطي';
2346
2347
@override
2346
- String get tts_skip_seconds_desc =>
2347
- 'Forward and rewind jump size during playback';
2348
+ String get tts_skip_seconds_desc => 'الوقت للتخطي للأمام/الخلف في مشغل الصوت';
2349
2350
@override
2351
String tts_skip_seconds_value(int seconds) {
2351
- return '${seconds}s';
2352
+ return '$seconds ثانية';
2353
}
2354
2355
@override
2355
- String get preview_system_prompts => 'Preview system prompts';
2356
+ String get preview_system_prompts => 'معاينة مطالبات النظام';
2357
2358
@override
2358
- String get welcome_message_1 => 'What can I help you with today?';
2359
+ String get welcome_message_1 => 'مرحبًا! أنا مساعدك المحلي للذكاء الاصطناعي.';
2360
2361
@override
2361
- String get welcome_message_2 => 'Ask me anything — I\'m ready when you are.';
2362
+ String get welcome_message_2 =>
2363
+ 'اسألني عن أي شيء - أنا جاهز عندما تكون مستعدًا.';
2364
2365
@override
2364
- String get welcome_message_3 => 'Start a conversation below.';
2366
+ String get welcome_message_3 =>
2367
+ 'يتم معالجة بياناتك محليًا ولا تغادر جهازك أبدًا.';
2368
2369
@override
2367
- String get welcome_message_4 => 'Need ideas? Try one of the quick prompts.';
2370
+ String get welcome_message_4 =>
2371
+ 'للبدء، حدد نموذجًا من الشريط العلوي أو أضف نموذجًا جديدًا في قسم إدارة النماذج.';
2372
2373
@override
2370
- String get temporary_chat => 'Temporary chat';
2374
+ String get temporary_chat => 'دردشة مؤقتة';
2375
2376
@override
2373
- String get temporary_chat_desc => 'Chats aren\'t saved to history.';
2377
+ String get temporary_chat_desc =>
2378
+ 'لن يتم حفظ الرسائل في هذه الدردشة في السجل';
2379
2380
@override
2376
- String get temporary_chat_banner => 'Temporary chat — not saved to history';
2381
+ String get temporary_chat_banner => 'الدردشة المؤقتة نشطة — لن يتم حفظ السجل';
2382
2383
@override
2379
- String get temporary_chat_save_warning_title =>
2380
- 'Save message in temporary chat?';
2384
+ String get temporary_chat_save_warning_title => 'حفظ الدردشة المؤقتة؟';
2385
2386
@override
2387
String get temporary_chat_save_warning_body =>
2384
- 'This chat is temporary and hidden from history. The saved message will still appear in Saved Messages.';
2388
+ 'هذه الدردشة غير محفوظة في السجل الخاص بك. هل تريد حفظها الآن؟';
2389
2390
@override
2387
- String get save_to_history => 'Save to history';
2391
+ String get save_to_history => 'حفظ في السجل';
2392
2393
@override
2390
- String get share_conversation => 'Share conversation';
2394
+ String get share_conversation => 'مشاركة المحادثة';
2395
2396
@override
2393
- String get download_tts_audio => 'Download audio';
2397
+ String get download_tts_audio => 'تنزيل الصوت';
2398
2399
@override
2396
- String get tts_download_unavailable =>
2397
- 'Download is only available for Piper and Kitten TTS';
2400
+ String get tts_download_unavailable => 'تنزيل الصوت غير متاح';
2401
2402
@override
2400
- String get tts_download_no_audio => 'No audio available to download yet';
2403
+ String get tts_download_no_audio => 'لا يوجد صوت تم إنشاؤه لتنزيله';
2404
2405
@override
2403
- String get tts_download_success => 'Audio saved';
2406
+ String get tts_download_success => 'تم حفظ الصوت بنجاح';
2407
2408
@override
2406
- String get return_to_chat => 'Return to chat';
2409
+ String get return_to_chat => 'العودة إلى الدردشة';
2410
2411
@override
2409
- String get return_to_temp_chat => 'Return to temporary chat';
2412
+ String get return_to_temp_chat => 'العودة إلى الدردشة المؤقتة';
2413
2414
@override
2412
- String get insert_saved_message => 'Insert saved message';
2415
+ String get insert_saved_message => 'إدراج رسالة محفوظة';
2416
2417
@override
2418
String get insert_saved_message_desc =>
2416
- 'Choose a saved message to add to your input';
2419
+ 'إضافة مقتطف من رسائلك المحفوظة إلى الدردشة';
2420
2421
@override
2419
- String get model_info => 'Model info';
2422
+ String get model_info => 'معلومات النموذج';
2423
2424
@override
2422
- String get model_name => 'Model name';
2425
+ String get model_name => 'اسم النموذج';
2426
2427
@override
2425
- String get model_identifier => 'Identifier';
2428
+ String get model_identifier => 'معرف النموذج';
2429
2430
@override
2428
- String get not_available => 'Not available';
2431
+ String get not_available => 'غير متاح';
2432
2433
@override
2431
- String get save_message_folders => 'Save message';
2434
+ String get save_message_folders => 'حفظ في المجلدات';
2435
2436
@override
2434
- String get remove_from_saved => 'Remove from saved';
2437
+ String get remove_from_saved => 'إزالة من المحفوظات';
2438
2439
@override
2437
- String get message_already_saved => 'Saved';
2440
+ String get message_already_saved => 'الرسالة محفوظة بالفعل';
2441
2442
@override
2440
- String get stream_ttft => 'Time to first token';
2443
+ String get stream_ttft => 'الوقت حتى الرمز الأول';
2444
2445
@override
2443
- String get stream_tokens_per_sec => 'Tokens per second';
2446
+ String get stream_tokens_per_sec => 'الرموز في الثانية';
2447
2448
@override
2446
- String get stream_stop_reason => 'Stop reason';
2449
+ String get stream_stop_reason => 'سبب التوقف';
2450
2451
@override
2449
- String get stream_input_tokens => 'Input tokens';
2452
+ String get stream_input_tokens => 'رموز الإدخال';
2453
2454
@override
2452
- String get stream_output_tokens => 'Output tokens';
2455
+ String get stream_output_tokens => 'رموز الإخراج';
2456
2457
@override
2455
- String get stream_generation_time => 'Generation time';
2458
+ String get stream_generation_time => 'وقت الإنشاء';
2459
2460
@override
2458
- String get attach_image => 'Image';
2461
+ String get attach_image => 'إرفاق صورة';
2462
2463
@override
2461
- String get attach_text_document => 'Text document';
2464
+ String get attach_text_document => 'إرفاق مستند نصي';
2465
2466
@override
2464
- String get add_attachment => 'Add attachment';
2467
+ String get add_attachment => 'إضافة مرفق';
2468
2469
@override
2467
- String get photo_permission_denied =>
2468
- 'Photo access is required to attach images';
2470
+ String get photo_permission_denied => 'تم رفض إذن الوصول إلى الصور';
2471
2472
@override
2471
- String get characters_label => 'Characters';
2473
+ String get characters_label => 'الحروف';
2474
2475
@override
2474
- String get exit_temporary_chat_title => 'Exit temporary chat?';
2476
+ String get exit_temporary_chat_title => 'الخروج من الدردشة المؤقتة؟';
2477
2478
@override
2479
String get exit_temporary_chat_body =>
2478
- 'This will discard the current temporary chat and return to a new chat.';
2480
+ 'سيؤدي هذا إلى حذف المحادثة الحالية نهائيًا. هل تريد الاستمرار؟';
2481
2482
@override
2483
String get saved_message_temp_snap_unavailable =>
2482
- 'This message was saved from a temporary chat and can\'t be opened in its original conversation.';
2484
+ 'لقطات الرسائل غير متوفرة في الدردشات المؤقتة';
2485
2486
@override
2485
- String get filter_title => 'Filter';
2487
+ String get filter_title => 'تصفية الدردشات';
2488
2489
@override
2488
- String get filter_pinned => 'Pinned';
2490
+ String get filter_pinned => 'المثبتة';
2491
2492
@override
2491
- String get filter_archived => 'Archived';
2493
+ String get filter_archived => 'المؤرشفة';
2494
2495
@override
2494
- String get filter_temp_chats => 'Temporary chats';
2496
+ String get filter_temp_chats => 'الدردشات المؤقتة';
2497
2498
@override
2497
- String get filter_user_messages => 'User messages';
2499
+ String get filter_user_messages => 'رسائل المستخدم';
2500
2501
@override
2500
- String get filter_assistant_messages => 'Assistant messages';
2502
+ String get filter_assistant_messages => 'رسائل المساعد';
2503
2504
@override
2503
- String get archive_chat => 'Archive';
2505
+ String get archive_chat => 'أرشفة الدردشة';
2506
2507
@override
2506
- String get unarchive_chat => 'Unarchive';
2508
+ String get unarchive_chat => 'إلغاء أرشفة الدردشة';
2509
2510
@override
2511
String conversation_message_count(int count) {
2510
- String _temp0 = intl.Intl.pluralLogic(
2511
- count,
2512
- locale: localeName,
2513
- other: '$count messages',
2514
- one: '1 message',
2515
- );
2516
- return '$_temp0';
2512
+ return '$count رسالة';
2513
}
2514
2515
@override
2516
String conversation_character_count(int count) {
2521
- return '$count chars';
2517
+ return '$count حرف';
2518
}
2519
2520
@override
2525
- String get generate_title_with_ai => 'Generate with AI';
2521
+ String get generate_title_with_ai => 'إنشاء عنوان بالذكاء الاصطناعي';
2522
2523
@override
2528
- String get generating_title => 'Generating...';
2524
+ String get generating_title => 'جاري إنشاء العنوان...';
2525
2526
@override
2531
- String get generate_title_failed => 'Could not generate a title';
2527
+ String get generate_title_failed => 'تعذر إنشاء العنوان';
2528
2529
@override
2534
- String get lm_studio_model_browser_title => 'Browse models';
2530
+ String get lm_studio_model_browser_title => 'متصفح النماذج';
2531
2532
@override
2537
- String get lm_studio_model_search_hint => 'Search models by name or author…';
2533
+ String get lm_studio_model_search_hint => 'البحث عن نماذج...';
2534
2535
@override
2540
- String get lm_studio_staff_picks => 'Staff picks';
2536
+ String get lm_studio_staff_picks => 'ترشيحات فريق العمل';
2537
2538
@override
2543
- String get lm_studio_community_models => 'Community models';
2539
+ String get lm_studio_community_models => 'نماذج المجتمع';
2540
2541
@override
2546
- String get lm_studio_no_models => 'No models found';
2542
+ String get lm_studio_no_models => 'لم يتم العثور على نماذج';
2543
2544
@override
2545
String lm_studio_models_count(int count) {
2550
- return '$count models';
2546
+ return '$count نموذج';
2547
}
2548
2549
@override
2554
- String get lm_studio_browse_models => 'Browse & download';
2550
+ String get lm_studio_browse_models => 'تصفح النماذج على LM Studio';
2551
2552
@override
2557
- String get lm_studio_model_search => 'LMS Model Search';
2553
+ String get lm_studio_model_search => 'البحث عن النماذج';
2554
2555
@override
2560
- String get lm_studio_downloads_title => 'Downloads';
2556
+ String get lm_studio_downloads_title => 'التنزيلات';
2557
2558
@override
2563
- String get lm_studio_choose_quant => 'Choose a download option';
2559
+ String get lm_studio_choose_quant => 'اختر مستوى الكمية (Quantization)';
2560
2561
@override
2566
- String get lm_studio_use_default_quant => 'Use default';
2562
+ String get lm_studio_use_default_quant => 'استخدام الكمية الافتراضية';
2563
2564
@override
2569
- String get lm_studio_recommended => 'Recommended';
2565
+ String get lm_studio_recommended => 'موصى به';
2566
2567
@override
2572
- String get lm_studio_clear_downloads => 'Clear finished';
2568
+ String get lm_studio_clear_downloads => 'مسح التنزيلات المكتملة';
2569
2570
@override
2575
- String get lm_studio_no_downloads => 'No downloads yet';
2571
+ String get lm_studio_no_downloads => 'لا توجد تنزيلات نشطة';
2572
2573
@override
2574
String get lm_studio_downloads_disclaimer =>
2579
- 'Downloads run on the LM Studio host. Pausing, stopping, and deleting models must be done on that computer — not from this app.';
2575
+ 'يتم تنزيل النماذج مباشرة من Hugging Face.';
2576
2577
@override
2582
- String get lm_studio_staff_pick => 'Staff pick';
2578
+ String get lm_studio_staff_pick => 'ترشيح مميز';
2579
2580
@override
2585
- String get lm_studio_params => 'PARAMS';
2581
+ String get lm_studio_params => 'المعلمات';
2582
2583
@override
2588
- String get lm_studio_arch => 'ARCH';
2584
+ String get lm_studio_arch => 'البنية';
2585
2586
@override
2591
- String get lm_studio_domain => 'DOMAIN';
2587
+ String get lm_studio_domain => 'المجال';
2588
2589
@override
2594
- String get lm_studio_format => 'FORMAT';
2590
+ String get lm_studio_format => 'الصيغة';
2591
2592
@override
2597
- String get lm_studio_vision => 'Vision';
2593
+ String get lm_studio_vision => 'الرؤية البصرية';
2594
2595
@override
2600
- String get lm_studio_tool_use => 'Tool use';
2596
+ String get lm_studio_tool_use => 'استخدام الأدوات';
2597
2598
@override
2603
- String get lm_studio_reasoning => 'Reasoning';
2599
+ String get lm_studio_reasoning => 'التفكير والاستنتاج';
2600
2601
@override
2606
- String get lm_studio_download_options => 'Download options';
2602
+ String get lm_studio_download_options => 'خيارات التنزيل';
2603
2604
@override
2609
- String get lm_studio_download => 'Download';
2605
+ String get lm_studio_download => 'تنزيل';
2606
2607
@override
2608
String lm_studio_download_size(String size) {
2613
- return 'Download $size';
2609
+ return 'حجم التنزيل';
2610
}
2611
2612
@override
2613
String lm_studio_downloading_percent(int percent) {
2618
- return 'Downloading $percent%';
2614
+ return 'جاري التنزيل: $percent%';
2615
}
2616
2617
@override
2618
String get lm_studio_readme_unavailable =>
2623
- 'README not available for this model.';
2619
+ 'ملف README غير متاح لهذا النموذج.';
2620
2621
@override
2626
- String get lm_studio_full_gpu_offload => 'Full GPU offload possible';
2622
+ String get lm_studio_full_gpu_offload => 'تفريغ كامل لـ GPU ممكن';
2623
2624
@override
2629
- String get lm_studio_partial_gpu_offload => 'Partial GPU offload possible';
2625
+ String get lm_studio_partial_gpu_offload => 'تفريغ جزئي لـ GPU ممكن';
2626
2627
@override
2632
- String get lm_studio_likely_too_large => 'Likely too large';
2628
+ String get lm_studio_likely_too_large => 'قد يكون كبيرًا جدًا';
2629
2630
@override
2635
- String get lm_studio_available_ram_gb => 'Available RAM (GB, optional)';
2631
+ String get lm_studio_available_ram_gb =>
2632
+ 'الذاكرة العشوائية المتاحة (RAM بالجيجابايت، اختيارية)';
2633
2634
@override
2638
- String get lm_studio_available_vram_gb => 'Available VRAM (GB, optional)';
2635
+ String get lm_studio_available_vram_gb =>
2636
+ 'ذاكرة الفيديو المتاحة (VRAM بالجيجابايت، اختيارية)';
2637
2638
@override
2641
- String get lm_studio_memory_settings_title => 'Memory for recommendations';
2639
+ String get lm_studio_memory_settings_title => 'الذاكرة المخصصة للتوصيات';
2640
2641
@override
2642
String get lm_studio_memory_settings_desc =>
2645
- 'Used to estimate whether models fit on your machine in the model browser.';
2643
+ 'تُستخدم لتقدير ما إذا كانت النماذج تتناسب مع جهازك في متصفح النماذج.';
2644
2645
@override
2648
- String get think_button_label => 'Think';
2646
+ String get think_button_label => 'تفكير';
2647
2648
@override
2651
- String get reasoning_effort_low => 'Low';
2649
+ String get reasoning_effort_low => 'منخفض';
2650
2651
@override
2654
- String get reasoning_effort_medium => 'Medium';
2652
+ String get reasoning_effort_medium => 'متوسط';
2653
2654
@override
2657
- String get reasoning_effort_high => 'High';
2655
+ String get reasoning_effort_high => 'مرتفع';
2656
+
2657
+ @override
2658
+ String get could_not_read_file => 'تعذر قراءة الملف';
2659
+
2660
+ @override
2661
+ String get server_offline => 'الخادم غير متصل بالإنترنت';
2662
+
2663
+ @override
2664
+ String get could_not_establish_connection =>
2665
+ 'تعذر الاتصال بالخادم. يرجى التحقق مما إذا كان الخادم قيد التشغيل وصحة إعدادات المضيف/المنفذ.';
2666
+
2667
+ @override
2668
+ String get retry_connection => 'إعادة محاولة الاتصال';
2669
+
2670
+ @override
2671
+ String get tokens_label => 'الرموز';
2672
+
2673
+ @override
2674
+ String get enter_context_length => 'أدخل طول السياق...';
2675
}
lib/l10n/app_localizations_bn.dart
+248
-224
@@ -263,152 +263,155 @@ class AppLocalizationsBn extends AppLocalizations {
263
264
@override
265
String get delete_builtin_persona_body =>
266
- 'This is a built-in persona. You can restore it later from Settings.';
266
+ 'এটি একটি বিল্ট-ইন ব্যক্তিত্ব (Persona)। আপনি এটিকে পরবর্তীতে সেটিংস থেকে পুনরুদ্ধার করতে পারেন।';
267
268
@override
269
- String get restore_builtin_personas => 'Restore default personas';
269
+ String get restore_builtin_personas => 'ডিফল্ট ব্যক্তিত্ব পুনরুদ্ধার করুন';
270
271
@override
272
String get restore_builtin_personas_desc =>
273
- 'Re-add any built-in personas you\'ve deleted';
273
+ 'আপনার মুছে ফেলা যেকোনো বিল্ট-ইন ব্যক্তিত্ব আবার যুক্ত করুন';
274
275
@override
276
- String get restore_builtin_personas_success => 'Default personas restored';
276
+ String get restore_builtin_personas_success =>
277
+ 'ডিফল্ট ব্যক্তিত্ব পুনরুদ্ধার করা হয়েছে';
278
279
@override
279
- String get clear_personas => 'Clear personas';
280
+ String get clear_personas => 'ব্যক্তিত্ব পরিষ্কার করুন';
281
282
@override
282
- String get enable_image_compression => 'Compress images before sending';
283
+ String get enable_image_compression => 'পাঠানোর আগে ছবি কম্প্রেস করুন';
284
285
@override
286
String get enable_image_compression_desc =>
286
- 'Resize and compress attached images so uploads stay within server limits';
287
+ 'সংযুক্ত চিত্রগুলির আকার পরিবর্তন এবং কম্প্রেস করুন যাতে আপলোডগুলি সার্ভার সীমার মধ্যে থাকে';
288
289
@override
289
- String get image_compression_level => 'Compression aggressiveness';
290
+ String get image_compression_level => 'কম্প্রেশনের আগ্রাসন';
291
292
@override
293
String get image_compression_level_desc =>
293
- 'Higher aggressiveness produces smaller uploads at lower quality';
294
+ 'উচ্চতর আগ্রাসন কম মানের ছোট আকারের আপলোড তৈরি করে';
295
296
@override
296
- String get image_compression_level_low => 'Low';
297
+ String get image_compression_level_low => 'কম';
298
299
@override
299
- String get image_compression_level_medium => 'Medium';
300
+ String get image_compression_level_medium => 'মাঝারি';
301
302
@override
302
- String get image_compression_level_high => 'High';
303
+ String get image_compression_level_high => 'উচ্চ';
304
305
@override
305
- String get sort_models_tooltip => 'Sort models';
306
+ String get sort_models_tooltip => 'মডেল সাজান';
307
308
@override
308
- String get sort_by_favorites => 'Favorites first';
309
+ String get sort_by_favorites => 'প্রিয়গুলো আগে';
310
311
@override
311
- String get sort_by_name => 'Name (A-Z)';
312
+ String get sort_by_name => 'নাম (A-Z)';
313
314
@override
314
- String get sort_by_size_smallest => 'Size (smallest first)';
315
+ String get sort_by_size_smallest => 'আকার (সবচেয়ে ছোট আগে)';
316
317
@override
317
- String get sort_by_size_largest => 'Size (largest first)';
318
+ String get sort_by_size_largest => 'আকার (সবচেয়ে বড় আগে)';
319
320
@override
320
- String get sort_by_context_length => 'Context length';
321
+ String get sort_by_context_length => 'প্রসঙ্গের দৈর্ঘ্য';
322
323
@override
324
String bulk_ai_rename_progress(int done, int total) {
324
- return 'Renaming $done/$total...';
325
+ return 'নাম পরিবর্তন করা হচ্ছে $done/$total...';
326
}
327
328
@override
329
String selected_count(int count) {
329
- return '$count selected';
330
+ return '$countটি নির্বাচিত';
331
}
332
333
@override
333
- String get ai_rename_tooltip => 'Rename selected with AI';
334
+ String get ai_rename_tooltip => 'এআই দিয়ে নির্বাচিতগুলোর নাম পরিবর্তন করুন';
335
336
@override
336
- String get new_chat_in_folder_tooltip => 'New chat in this folder';
337
+ String get new_chat_in_folder_tooltip => 'এই ফোল্ডারে নতুন চ্যাট';
338
339
@override
340
String total_tokens_count(int count) {
340
- return '$count tokens';
341
+ return '$countটি টোকেন';
342
}
343
344
@override
344
- String get smart_replies_use_persona => 'Use persona in smart replies';
345
+ String get smart_replies_use_persona =>
346
+ 'স্মার্ট উত্তরে ব্যক্তিত্ব ব্যবহার করুন';
347
348
@override
349
String get smart_replies_use_persona_desc =>
348
- 'Suggested replies match the tone of the active persona instead of a generic assistant';
350
+ 'প্রস্তাবিত উত্তরগুলি সাধারণ সহকারীর পরিবর্তে সক্রিয় ব্যক্তিত্বের সুরের সাথে মেলে';
351
352
@override
351
- String get keep_persona_on_new_chat => 'Keep persona on new chat';
353
+ String get keep_persona_on_new_chat => 'নতুন চ্যাটে ব্যক্তিত্ব ধরে রাখুন';
354
355
@override
356
String get keep_persona_on_new_chat_desc =>
355
- 'Don\'t clear the selected persona(s) after starting a new chat';
357
+ 'নতুন চ্যাট শুরু করার পরে নির্বাচিত ব্যক্তিত্ব পরিষ্কার করবেন না';
358
359
@override
358
- String get role_swap_button_enabled => 'Show role-swap button';
360
+ String get role_swap_button_enabled => 'ভূমিকা-বদল বোতাম দেখান';
361
362
@override
363
String get role_swap_button_enabled_desc =>
362
- 'Show a button in the chat input to send your message as the assistant instead of the user, without generating a response';
364
+ 'কোনো প্রতিক্রিয়া তৈরি না করে, ব্যবহারকারীর পরিবর্তে সহকারী ভূমিকা হিসাবে আপনার বার্তা পাঠাতে চ্যাট ইনপুটে একটি বোতাম দেখান';
365
366
@override
365
- String get send_as_user_tooltip => 'Send as user';
367
+ String get send_as_user_tooltip => 'ব্যবহারকারী হিসেবে পাঠান';
368
369
@override
368
- String get send_as_assistant_tooltip => 'Send as assistant (no response)';
370
+ String get send_as_assistant_tooltip =>
371
+ 'সহকারী হিসেবে পাঠান (কোনো প্রতিক্রিয়া নেই)';
372
373
@override
371
- String get insert_without_generating_tooltip => 'Insert without generating';
374
+ String get insert_without_generating_tooltip => 'তৈরি না করে ঢোকান';
375
376
@override
374
- String get token_usage_title => 'Token Usage';
377
+ String get token_usage_title => 'টোকেন ব্যবহার';
378
379
@override
377
- String get total_tokens_label => 'Tokens used';
380
+ String get total_tokens_label => 'ব্যবহৃত টোকেন';
381
382
@override
380
- String get usage_percent_label => 'Context used';
383
+ String get usage_percent_label => 'ব্যবহৃত প্রসঙ্গ';
384
385
@override
383
- String get export_choice_title => 'Export';
386
+ String get export_choice_title => 'রপ্তানি (Export) করুন';
387
388
@override
386
- String get export_choice_body => 'How would you like to export this?';
389
+ String get export_choice_body => 'আপনি এটি কীভাবে রপ্তানি করতে চান?';
390
391
@override
389
- String get copy_to_clipboard => 'Copy to Clipboard';
392
+ String get copy_to_clipboard => 'ক্লিপবোর্ডে কপি করুন';
393
394
@override
395
String bulk_export_conversations_success(int count) {
393
- return 'Exported $count conversations';
396
+ return '$countটি কথোপকথন রপ্তানি করা হয়েছে';
397
}
398
399
@override
397
- String get bulk_ai_rename_confirm_title => 'Rename with AI?';
400
+ String get bulk_ai_rename_confirm_title => 'এআই দিয়ে নাম পরিবর্তন করবেন?';
401
402
@override
403
String bulk_ai_rename_confirm_body(int count) {
401
- return 'This will ask the AI to generate a new title for each of the $count selected conversations, replacing their current titles. This can take a while and cannot be undone.';
404
+ return 'এটি এআই-কে বর্তমান শিরোনামগুলি প্রতিস্থাপন করে নির্বাচিত $countটি কথোপকথনের প্রতিটির জন্য একটি নতুন শিরোনাম তৈরি করতে বলবে। এটি কিছুটা সময় নিতে পারে এবং পূর্বাবস্থায় ফেরানো যাবে না।';
405
}
406
407
@override
405
- String get sort_by_modified_date => 'Last modified';
408
+ String get sort_by_modified_date => 'শেষ পরিবর্তন';
409
410
@override
408
- String get sort_by_created_date => 'Date created';
411
+ String get sort_by_created_date => 'তৈরির তারিখ';
412
413
@override
411
- String get sort_title => 'Sort';
414
+ String get sort_title => 'সাজান';
415
416
@override
417
String get clear_conversation_title => 'কথোপকথন মুছে ফেলবেন?';
@@ -620,14 +623,16 @@ class AppLocalizationsBn extends AppLocalizations {
623
String get enable_smart_reply => 'অন-ডিভাইস স্মার্ট রিপ্লাই';
624
625
@override
623
- String get ai_user_response_enabled => 'AI user message (hold send)';
626
+ String get ai_user_response_enabled =>
627
+ 'এআই ব্যবহারকারী বার্তা (সেন্ড বোতাম ধরে রাখুন)';
628
629
@override
630
String get ai_user_response_enabled_desc =>
627
- 'Hold the send button for 3 seconds to have the AI write and send your next message';
631
+ 'এআই দিয়ে আপনার পরবর্তী বার্তাটি লেখাতে এবং পাঠাতে ৩ সেকেন্ডের জন্য সেন্ড বোতামটি চেপে ধরে রাখুন';
632
633
@override
630
- String get ai_user_response_tooltip => 'Generate user message with AI';
634
+ String get ai_user_response_tooltip =>
635
+ 'এআই দিয়ে ব্যবহারকারী বার্তা তৈরি করুন';
636
637
@override
638
String get streaming_responses => 'স্ট্রিমিং প্রতিক্রিয়া';
@@ -643,14 +648,14 @@ class AppLocalizationsBn extends AppLocalizations {
648
649
@override
650
String get show_system_messages_desc =>
646
- 'When no persona is selected, send a default assistant system prompt with each request';
651
+ 'যখন কোনো ব্যক্তিত্ব নির্বাচিত না থাকে, তখন প্রতিটি অনুরোধের সাথে একটি ডিফল্ট সহকারী সিস্টেম প্রম্পট পাঠান';
652
653
@override
649
- String get show_system_messages_in_chat => 'Show System Messages in Chat';
654
+ String get show_system_messages_in_chat => 'চ্যাটে সিস্টেম বার্তা দেখান';
655
656
@override
657
String get show_system_messages_in_chat_desc =>
653
- 'Display system messages (e.g. from an imported backup) as visible bubbles in the conversation';
658
+ 'কথোপকথনে দৃশ্যমান বুদবুদ হিসাবে সিস্টেম বার্তাগুলি (যেমন আমদানিকৃত ব্যাকআপ থেকে) প্রদর্শন করুন';
659
660
@override
661
String get haptic_feedback => 'হ্যাপটিক ফিডব্যাক';
@@ -707,11 +712,11 @@ class AppLocalizationsBn extends AppLocalizations {
712
String get select_persona => 'পার্সোনা নির্বাচন করুন';
713
714
@override
710
- String get manage_personas => 'Manage personas';
715
+ String get manage_personas => 'ব্যক্তিত্ব পরিচালনা করুন';
716
717
@override
718
String get personas_combine_hint =>
714
- 'Select multiple personas in chat to stack their system prompts.';
719
+ 'নির্বাচিত ব্যক্তিত্বগুলো একত্রিত করা হবে';
720
721
@override
722
String get start_conversation => 'কথোপকথন শুরু করুন';
@@ -1703,28 +1708,30 @@ class AppLocalizationsBn extends AppLocalizations {
1708
}
1709
1710
@override
1706
- String get unload_all_models => 'Unload all';
1711
+ String get unload_all_models => 'সব মডেল আনলোড করুন';
1712
1713
@override
1714
String loaded_models_count(int count) {
1710
- return '$count loaded';
1715
+ return '$countটি মডেল লোড করা হয়েছে';
1716
}
1717
1718
@override
1714
- String get all_models_unloaded => 'All models unloaded';
1719
+ String get all_models_unloaded => 'সব মডেল আনলোড করা হয়েছে';
1720
1721
@override
1717
- String get branch_chat => 'Branch chat';
1722
+ String get branch_chat => 'ব্রাঞ্চ চ্যাট';
1723
1724
@override
1720
- String get branch_chat_desc => 'Start a new conversation from this message';
1725
+ String get branch_chat_desc =>
1726
+ 'এই বার্তা থেকে শুরু করে একটি নতুন চ্যাট তৈরি করুন';
1727
1728
@override
1723
- String get edit_assistant_message_desc => 'Edit the assistant response text.';
1729
+ String get edit_assistant_message_desc =>
1730
+ 'সহকারী বার্তার বিষয়বস্তু সম্পাদনা করুন';
1731
1732
@override
1726
- String switch_to_model(String modelName) {
1727
- return 'Switch to $modelName';
1733
+ String switch_to_model(String modelName, Object model) {
1734
+ return '$model মডেলে পরিবর্তন করুন';
1735
}
1736
1737
@override
@@ -2165,507 +2172,524 @@ class AppLocalizationsBn extends AppLocalizations {
2172
String get tool_status_failed => 'Failed';
2173
2174
@override
2168
- String get model_favorite_toggle => 'Toggle favorite';
2175
+ String get model_favorite_toggle => 'প্রিয় টগল করুন';
2176
2177
@override
2171
- String get model_note_label => 'Note';
2178
+ String get model_note_label => 'নোট';
2179
2180
@override
2174
- String get model_note_hint => 'Add a note about this model…';
2181
+ String get model_note_hint =>
2182
+ 'এই মডেলটির জন্য একটি ব্যক্তিগত নোট যোগ করুন...';
2183
2184
@override
2177
- String get unload_models_before_load =>
2178
- 'Unload all models before loading a new one';
2185
+ String get unload_models_before_load => 'লোড করার আগে মডেল আনলোড করুন';
2186
2187
@override
2188
String get temp_chat_keyboard_incognito =>
2182
- 'Incognito keyboard in temporary chat';
2189
+ 'অস্থায়ী চ্যাটে ছদ্মবেশী (Incognito) কীবোর্ড';
2190
2191
@override
2192
String get temp_chat_keyboard_incognito_desc =>
2186
- 'Disables keyboard learning and suggestions in temporary chats (e.g. SwiftKey incognito).';
2193
+ 'অস্থায়ী চ্যাটের সময় টাইপিং ইতিহাস সংরক্ষণ না করার জন্য সিস্টেম কীবোর্ডের কাছে অনুরোধ করুন';
2194
2195
@override
2189
- String get resume_last_chat => 'Resume last chat on launch';
2196
+ String get resume_last_chat => 'শেষ চ্যাট পুনরায় শুরু করুন';
2197
2198
@override
2199
String get resume_last_chat_desc =>
2193
- 'Restore your last open conversation when reopening the app.';
2200
+ 'অ্যাপ চালুর সময় স্বয়ংক্রিয়ভাবে আপনার শেষ সক্রিয় কথোপকথনটি খুলুন';
2201
2202
@override
2196
- String get export_all_data => 'Export all data';
2203
+ String get export_all_data => 'সব ডেটা রপ্তানি করুন';
2204
2205
@override
2199
- String get import_all_data => 'Import all data';
2206
+ String get import_all_data => 'সব ডেটা আমদানি করুন';
2207
2208
@override
2202
- String get export_data_success => 'Backup exported successfully';
2209
+ String get export_data_success => 'ডেটা সফলভাবে রপ্তানি করা হয়েছে';
2210
2211
@override
2205
- String get import_data_success => 'Backup imported successfully';
2212
+ String get import_data_success => 'ডেটা সফলভাবে আমদানি করা হয়েছে';
2213
2214
@override
2215
String import_data_failed(String error) {
2209
- return 'Failed to import backup: $error';
2216
+ return 'ডেটা আমদানি করতে ব্যর্থ হয়েছে';
2217
}
2218
2219
@override
2220
String get import_data_confirm =>
2214
- 'Import conversations and custom personas from this backup? Existing items with the same IDs will be updated.';
2221
+ 'এটি আপনার বর্তমান সমস্ত ডেটা আমদানিকৃত ডেটা দিয়ে প্রতিস্থাপন করবে। আপনি কি চালিয়ে যেতে চান?';
2222
2223
@override
2224
String get import_settings_confirm =>
2218
- 'Replace current settings with the imported backup?';
2225
+ 'এটি আপনার বর্তমান সেটিংস আমদানিকৃত সেটিংস দিয়ে প্রতিস্থাপন করবে। আপনি কি চালিয়ে যেতে চান?';
2226
2227
@override
2221
- String get export_conversations => 'Export conversations';
2228
+ String get export_conversations => 'কথোপকথন রপ্তানি করুন';
2229
2230
@override
2224
- String get import_conversations => 'Import conversations';
2231
+ String get import_conversations => 'কথোপকথন আমদানি করুন';
2232
2233
@override
2227
- String get export_personas => 'Export personas';
2234
+ String get export_personas => 'ব্যক্তিত্ব রপ্তানি করুন';
2235
2236
@override
2230
- String get import_personas => 'Import personas';
2237
+ String get import_personas => 'ব্যক্তিত্ব আমদানি করুন';
2238
2239
@override
2233
- String get export_settings => 'Export settings';
2240
+ String get export_settings => 'সেটিংস রপ্তানি করুন';
2241
2242
@override
2236
- String get import_settings => 'Import settings';
2243
+ String get import_settings => 'সেটিংস আমদানি করুন';
2244
2245
@override
2239
- String get export_all_zip => 'Export all (ZIP)';
2246
+ String get export_all_zip => 'সব রপ্তানি করুন (ZIP)';
2247
2248
@override
2242
- String get import_all_zip => 'Import all (ZIP)';
2249
+ String get import_all_zip => 'সব আমদানি করুন (ZIP)';
2250
2251
@override
2245
- String get duplicate_chat => 'Duplicate chat';
2252
+ String get duplicate_chat => 'চ্যাট অনুলিপি করুন';
2253
2254
@override
2248
- String get duplicate_chat_success => 'Chat duplicated';
2255
+ String get duplicate_chat_success => 'চ্যাট সফলভাবে অনুলিপি করা হয়েছে';
2256
2257
@override
2251
- String get move_to_folder => 'Move to folder';
2258
+ String get move_to_folder => 'ফোল্ডারে সরান';
2259
2260
@override
2254
- String get remove_from_folder => 'Remove from folder';
2261
+ String get remove_from_folder => 'ফোল্ডার থেকে সরান';
2262
2263
@override
2257
- String get create_folder => 'Create folder';
2264
+ String get create_folder => 'ফোল্ডার তৈরি করুন';
2265
2266
@override
2260
- String get new_folder => 'New folder';
2267
+ String get new_folder => 'নতুন ফোল্ডার';
2268
2269
@override
2263
- String get folder_name_hint => 'Folder name';
2270
+ String get folder_name_hint => 'ফোল্ডারের নাম লিখুন...';
2271
2272
@override
2266
- String get all_chats => 'All';
2273
+ String get all_chats => 'সব চ্যাট';
2274
2275
@override
2269
- String get unfiled_chats => 'Unfiled';
2276
+ String get unfiled_chats => 'শ্রেণিবিহীন চ্যাট';
2277
2278
@override
2272
- String get create => 'Create';
2279
+ String get create => 'তৈরি করুন';
2280
2281
@override
2275
- String get server_path_prefix_label => 'API path prefix';
2282
+ String get server_path_prefix_label => 'সার্ভার পাথ প্রিফিক্স';
2283
2284
@override
2278
- String get server_path_prefix_hint => '/your-secret-token';
2285
+ String get server_path_prefix_hint =>
2286
+ 'সার্ভার এপিআই পাথের জন্য ঐচ্ছিক প্রিফিক্স (যেমন /v1)';
2287
2288
@override
2281
- String get search_message_contents => 'Search message contents';
2289
+ String get search_message_contents => 'বার্তার বিষয়বস্তু খুঁজুন...';
2290
2291
@override
2284
- String get message_search_results => 'Message matches';
2292
+ String get message_search_results => 'বার্তা অনুসন্ধানের ফলাফল';
2293
2294
@override
2287
- String get saved_messages_title => 'Saved Messages';
2295
+ String get saved_messages_title => 'সংরক্ষিত বার্তা';
2296
2297
@override
2290
- String get nav_saved_messages => 'Saved Messages';
2298
+ String get nav_saved_messages => 'সংরক্ষিত বার্তা';
2299
2300
@override
2293
- String get saved_messages_empty =>
2294
- 'No saved messages yet. Bookmark a message from its options menu.';
2301
+ String get saved_messages_empty => 'এখনো কোনো সংরক্ষিত বার্তা নেই';
2302
2303
@override
2297
- String get save_message => 'Save message';
2304
+ String get save_message => 'বার্তা সংরক্ষণ করুন';
2305
2306
@override
2300
- String get message_saved => 'Message saved';
2307
+ String get message_saved => 'বার্তা সংরক্ষিত হয়েছে';
2308
2309
@override
2310
String token_count(int count) {
2304
- return '$count tokens';
2311
+ return 'টোকেন: $count';
2312
}
2313
2314
@override
2315
String estimated_token_count(int count) {
2309
- return '~$count tokens (estimated)';
2316
+ return 'আনুমানিক টোকেন: $count';
2317
}
2318
2319
@override
2313
- String get test_tts_section_title => 'Test voice';
2320
+ String get test_tts_section_title => 'টেক্সট-টু-স্পিচ পরীক্ষা';
2321
2322
@override
2316
- String get test_tts_hint => 'Enter text to hear the current TTS engine…';
2323
+ String get test_tts_hint => 'কণ্ঠস্বর পরীক্ষা করতে কিছু লিখুন...';
2324
2325
@override
2319
- String get test_speak_button => 'Speak';
2326
+ String get test_speak_button => 'বলুন';
2327
2328
@override
2322
- String get scroll_to_bottom => 'Scroll to bottom';
2329
+ String get scroll_to_bottom => 'নিচে স্ক্রল করুন';
2330
2331
@override
2325
- String get generate_ai_response => 'Generate AI response';
2332
+ String get generate_ai_response => 'এআই প্রতিক্রিয়া তৈরি করুন';
2333
2334
@override
2328
- String get no_response => 'No response';
2335
+ String get no_response => 'কোনো প্রতিক্রিয়া নেই';
2336
2337
@override
2331
- String get export => 'Export';
2338
+ String get export => 'রপ্তানি';
2339
2340
@override
2334
- String get import => 'Import';
2341
+ String get import => 'আমদানি';
2342
2343
@override
2337
- String get conversations_label => 'Conversations';
2344
+ String get conversations_label => 'কথোপকথন';
2345
2346
@override
2340
- String get personas_label => 'Personas';
2347
+ String get personas_label => 'ব্যক্তিত্ব';
2348
2349
@override
2343
- String get settings_label => 'Settings';
2350
+ String get settings_label => 'সেটিংস';
2351
2352
@override
2346
- String get export_conversation => 'Export conversation';
2353
+ String get export_conversation => 'কথোপকথন রপ্তানি করুন';
2354
2355
@override
2349
- String get tts_process_markdown => 'Process markdown for speech';
2356
+ String get tts_process_markdown => 'মার্কডাউন প্রক্রিয়া করুন';
2357
2358
@override
2359
String get tts_process_markdown_desc =>
2353
- 'Strip formatting like **bold** before reading aloud';
2360
+ 'উচ্চস্বরে পড়ার আগে **বোল্ড** এর মতো ফর্ম্যাটিং সরিয়ে দিন';
2361
2362
@override
2356
- String get tts_skip_seconds => 'Skip interval';
2363
+ String get tts_skip_seconds => 'এড়িয়ে যাওয়ার সেকেন্ড';
2364
2365
@override
2366
String get tts_skip_seconds_desc =>
2360
- 'Forward and rewind jump size during playback';
2367
+ 'ভয়েস প্লেয়ারে এগিয়ে/পিছিয়ে যাওয়ার সময়';
2368
2369
@override
2370
String tts_skip_seconds_value(int seconds) {
2364
- return '${seconds}s';
2371
+ return '$seconds সেকেন্ড';
2372
}
2373
2374
@override
2368
- String get preview_system_prompts => 'Preview system prompts';
2375
+ String get preview_system_prompts => 'সিস্টেম প্রম্পটগুলির পূর্বরূপ দেখুন';
2376
2377
@override
2371
- String get welcome_message_1 => 'What can I help you with today?';
2378
+ String get welcome_message_1 => 'হ্যালো! আমি আপনার স্থানীয় এআই সহকারী।';
2379
2380
@override
2374
- String get welcome_message_2 => 'Ask me anything — I\'m ready when you are.';
2381
+ String get welcome_message_2 =>
2382
+ 'আমাকে যেকোনো কিছু জিজ্ঞাসা করুন — আপনি প্রস্তুত হলে আমি প্রস্তুত।';
2383
2384
@override
2377
- String get welcome_message_3 => 'Start a conversation below.';
2385
+ String get welcome_message_3 =>
2386
+ 'আপনার ডেটা স্থানীয়ভাবে প্রক্রিয়াজাত হয় এবং কখনো আপনার ডিভাইস ছেড়ে যায় না।';
2387
2388
@override
2380
- String get welcome_message_4 => 'Need ideas? Try one of the quick prompts.';
2389
+ String get welcome_message_4 =>
2390
+ 'শুরু করতে, উপরের বার থেকে একটি মডেল নির্বাচন করুন বা মডেল পরিচালনা বিভাগে একটি নতুন মডেল যোগ করুন।';
2391
2392
@override
2383
- String get temporary_chat => 'Temporary chat';
2393
+ String get temporary_chat => 'অস্থায়ী চ্যাট';
2394
2395
@override
2386
- String get temporary_chat_desc => 'Chats aren\'t saved to history.';
2396
+ String get temporary_chat_desc =>
2397
+ 'এই চ্যাটের বার্তাগুলি ইতিহাসে সংরক্ষিত হবে না';
2398
2399
@override
2389
- String get temporary_chat_banner => 'Temporary chat — not saved to history';
2400
+ String get temporary_chat_banner =>
2401
+ 'অস্থায়ী চ্যাট সক্রিয় — ইতিহাস সংরক্ষিত হবে না';
2402
2403
@override
2404
String get temporary_chat_save_warning_title =>
2393
- 'Save message in temporary chat?';
2405
+ 'অস্থায়ী চ্যাট সংরক্ষণ করবেন?';
2406
2407
@override
2408
String get temporary_chat_save_warning_body =>
2397
- 'This chat is temporary and hidden from history. The saved message will still appear in Saved Messages.';
2409
+ 'এই চ্যাটটি আপনার ইতিহাসে সংরক্ষিত নেই। আপনি কি এটি এখন সংরক্ষণ করতে চান?';
2410
2411
@override
2400
- String get save_to_history => 'Save to history';
2412
+ String get save_to_history => 'ইতিহাসে সংরক্ষণ করুন';
2413
2414
@override
2403
- String get share_conversation => 'Share conversation';
2415
+ String get share_conversation => 'কথোপকথন ভাগ করুন';
2416
2417
@override
2406
- String get download_tts_audio => 'Download audio';
2418
+ String get download_tts_audio => 'ভয়েস অডিও ডাউনলোড করুন';
2419
2420
@override
2409
- String get tts_download_unavailable =>
2410
- 'Download is only available for Piper and Kitten TTS';
2421
+ String get tts_download_unavailable => 'ভয়েস ডাউনলোড উপলব্ধ নেই';
2422
2423
@override
2413
- String get tts_download_no_audio => 'No audio available to download yet';
2424
+ String get tts_download_no_audio => 'ডাউনলোড করার জন্য কোনো তৈরি অডিও নেই';
2425
2426
@override
2416
- String get tts_download_success => 'Audio saved';
2427
+ String get tts_download_success => 'ভয়েস অডিও সফলভাবে সংরক্ষিত হয়েছে';
2428
2429
@override
2419
- String get return_to_chat => 'Return to chat';
2430
+ String get return_to_chat => 'চ্যাটে ফিরে যান';
2431
2432
@override
2422
- String get return_to_temp_chat => 'Return to temporary chat';
2433
+ String get return_to_temp_chat => 'অস্থায়ী চ্যাটে ফিরে যান';
2434
2435
@override
2425
- String get insert_saved_message => 'Insert saved message';
2436
+ String get insert_saved_message => 'সংরক্ষিত বার্তা ঢোকান';
2437
2438
@override
2439
String get insert_saved_message_desc =>
2429
- 'Choose a saved message to add to your input';
2440
+ 'আপনার সংরক্ষিত বার্তাগুলির একটি অংশ চ্যাটে যোগ করুন';
2441
2442
@override
2432
- String get model_info => 'Model info';
2443
+ String get model_info => 'মডেলের তথ্য';
2444
2445
@override
2435
- String get model_name => 'Model name';
2446
+ String get model_name => 'মডেলের নাম';
2447
2448
@override
2438
- String get model_identifier => 'Identifier';
2449
+ String get model_identifier => 'মডেল সনাক্তকারী';
2450
2451
@override
2441
- String get not_available => 'Not available';
2452
+ String get not_available => 'অনুপলব্ধ';
2453
2454
@override
2444
- String get save_message_folders => 'Save message';
2455
+ String get save_message_folders => 'ফোল্ডারে সংরক্ষণ করুন';
2456
2457
@override
2447
- String get remove_from_saved => 'Remove from saved';
2458
+ String get remove_from_saved => 'সংরক্ষিত থেকে সরান';
2459
2460
@override
2450
- String get message_already_saved => 'Saved';
2461
+ String get message_already_saved => 'বার্তাটি ইতিমধ্যে সংরক্ষিত হয়েছে';
2462
2463
@override
2453
- String get stream_ttft => 'Time to first token';
2464
+ String get stream_ttft => 'প্রথম টোকেন পর্যন্ত সময়';
2465
2466
@override
2456
- String get stream_tokens_per_sec => 'Tokens per second';
2467
+ String get stream_tokens_per_sec => 'প্রতি সেকেন্ডে টোকেন';
2468
2469
@override
2459
- String get stream_stop_reason => 'Stop reason';
2470
+ String get stream_stop_reason => 'থামার কারণ';
2471
2472
@override
2462
- String get stream_input_tokens => 'Input tokens';
2473
+ String get stream_input_tokens => 'ইনপুট টোকেন';
2474
2475
@override
2465
- String get stream_output_tokens => 'Output tokens';
2476
+ String get stream_output_tokens => 'আউটপুট টোকেন';
2477
2478
@override
2468
- String get stream_generation_time => 'Generation time';
2479
+ String get stream_generation_time => 'তৈরি করার সময়';
2480
2481
@override
2471
- String get attach_image => 'Image';
2482
+ String get attach_image => 'ছবি সংযুক্ত করুন';
2483
2484
@override
2474
- String get attach_text_document => 'Text document';
2485
+ String get attach_text_document => 'টেক্সট ডকুমেন্ট সংযুক্ত করুন';
2486
2487
@override
2477
- String get add_attachment => 'Add attachment';
2488
+ String get add_attachment => 'সংযুক্তি যোগ করুন';
2489
2490
@override
2480
- String get photo_permission_denied =>
2481
- 'Photo access is required to attach images';
2491
+ String get photo_permission_denied => 'ছবির অনুমতি অস্বীকার করা হয়েছে';
2492
2493
@override
2484
- String get characters_label => 'Characters';
2494
+ String get characters_label => 'অক্ষর (Characters)';
2495
2496
@override
2487
- String get exit_temporary_chat_title => 'Exit temporary chat?';
2497
+ String get exit_temporary_chat_title => 'অস্থায়ী চ্যাট থেকে প্রস্থান করবেন?';
2498
2499
@override
2500
String get exit_temporary_chat_body =>
2491
- 'This will discard the current temporary chat and return to a new chat.';
2501
+ 'এটি বর্তমান কথোপকথনটি স্থায়ীভাবে মুছে ফেলবে। আপনি কি চালিয়ে যেতে চান?';
2502
2503
@override
2504
String get saved_message_temp_snap_unavailable =>
2495
- 'This message was saved from a temporary chat and can\'t be opened in its original conversation.';
2505
+ 'অস্থায়ী চ্যাটে বার্তার স্ন্যাপশট উপলব্ধ নেই';
2506
2507
@override
2498
- String get filter_title => 'Filter';
2508
+ String get filter_title => 'চ্যাট ফিল্টার করুন';
2509
2510
@override
2501
- String get filter_pinned => 'Pinned';
2511
+ String get filter_pinned => 'পিন করা';
2512
2513
@override
2504
- String get filter_archived => 'Archived';
2514
+ String get filter_archived => 'আর্কাইভ করা';
2515
2516
@override
2507
- String get filter_temp_chats => 'Temporary chats';
2517
+ String get filter_temp_chats => 'অস্থায়ী চ্যাট';
2518
2519
@override
2510
- String get filter_user_messages => 'User messages';
2520
+ String get filter_user_messages => 'ব্যবহারকারীর বার্তা';
2521
2522
@override
2513
- String get filter_assistant_messages => 'Assistant messages';
2523
+ String get filter_assistant_messages => 'সহকারীর বার্তা';
2524
2525
@override
2516
- String get archive_chat => 'Archive';
2526
+ String get archive_chat => 'চ্যাট আর্কাইভ করুন';
2527
2528
@override
2519
- String get unarchive_chat => 'Unarchive';
2529
+ String get unarchive_chat => 'চ্যাট আনআর্কাইভ করুন';
2530
2531
@override
2532
String conversation_message_count(int count) {
2523
- String _temp0 = intl.Intl.pluralLogic(
2524
- count,
2525
- locale: localeName,
2526
- other: '$count messages',
2527
- one: '1 message',
2528
- );
2529
- return '$_temp0';
2533
+ return '$countটি বার্তা';
2534
}
2535
2536
@override
2537
String conversation_character_count(int count) {
2534
- return '$count chars';
2538
+ return '$countটি অক্ষর';
2539
}
2540
2541
@override
2538
- String get generate_title_with_ai => 'Generate with AI';
2542
+ String get generate_title_with_ai => 'এআই দিয়ে শিরোনাম তৈরি করুন';
2543
2544
@override
2541
- String get generating_title => 'Generating...';
2545
+ String get generating_title => 'শিরোনাম তৈরি করা হচ্ছে...';
2546
2547
@override
2544
- String get generate_title_failed => 'Could not generate a title';
2548
+ String get generate_title_failed => 'শিরোনাম তৈরি করা যায়নি';
2549
2550
@override
2547
- String get lm_studio_model_browser_title => 'Browse models';
2551
+ String get lm_studio_model_browser_title => 'মডেল ব্রাউজার';
2552
2553
@override
2550
- String get lm_studio_model_search_hint => 'Search models by name or author…';
2554
+ String get lm_studio_model_search_hint => 'মডেল খুঁজুন...';
2555
2556
@override
2553
- String get lm_studio_staff_picks => 'Staff picks';
2557
+ String get lm_studio_staff_picks => 'স্টাফদের পছন্দ';
2558
2559
@override
2556
- String get lm_studio_community_models => 'Community models';
2560
+ String get lm_studio_community_models => 'কমিউনিটি মডেল';
2561
2562
@override
2559
- String get lm_studio_no_models => 'No models found';
2563
+ String get lm_studio_no_models => 'কোনো মডেল পাওয়া যায়নি';
2564
2565
@override
2566
String lm_studio_models_count(int count) {
2563
- return '$count models';
2567
+ return '$countটি মডেল';
2568
}
2569
2570
@override
2567
- String get lm_studio_browse_models => 'Browse & download';
2571
+ String get lm_studio_browse_models => 'LM Studio-তে মডেল ব্রাউজ করুন';
2572
2573
@override
2570
- String get lm_studio_model_search => 'LMS Model Search';
2574
+ String get lm_studio_model_search => 'মডেল অনুসন্ধান';
2575
2576
@override
2573
- String get lm_studio_downloads_title => 'Downloads';
2577
+ String get lm_studio_downloads_title => 'ডাউনলোড';
2578
2579
@override
2576
- String get lm_studio_choose_quant => 'Choose a download option';
2580
+ String get lm_studio_choose_quant => 'কোয়ান্টাইজেশন চয়ন করুন';
2581
2582
@override
2579
- String get lm_studio_use_default_quant => 'Use default';
2583
+ String get lm_studio_use_default_quant =>
2584
+ 'ডিফল্ট কোয়ান্টাইজেশন ব্যবহার করুন';
2585
2586
@override
2582
- String get lm_studio_recommended => 'Recommended';
2587
+ String get lm_studio_recommended => 'প্রস্তাবিত';
2588
2589
@override
2585
- String get lm_studio_clear_downloads => 'Clear finished';
2590
+ String get lm_studio_clear_downloads => 'সম্পূর্ণ ডাউনলোডগুলি মুছুন';
2591
2592
@override
2588
- String get lm_studio_no_downloads => 'No downloads yet';
2593
+ String get lm_studio_no_downloads => 'কোনো সক্রিয় ডাউনলোড নেই';
2594
2595
@override
2596
String get lm_studio_downloads_disclaimer =>
2592
- 'Downloads run on the LM Studio host. Pausing, stopping, and deleting models must be done on that computer — not from this app.';
2597
+ 'মডেল ডাউনলোডগুলি সরাসরি Hugging Face থেকে করা হয়।';
2598
2599
@override
2595
- String get lm_studio_staff_pick => 'Staff pick';
2600
+ String get lm_studio_staff_pick => 'স্টাফদের বিশেষ পছন্দ';
2601
2602
@override
2598
- String get lm_studio_params => 'PARAMS';
2603
+ String get lm_studio_params => 'প্যারামিটার';
2604
2605
@override
2601
- String get lm_studio_arch => 'ARCH';
2606
+ String get lm_studio_arch => 'আর্কিটেকচার';
2607
2608
@override
2604
- String get lm_studio_domain => 'DOMAIN';
2609
+ String get lm_studio_domain => 'ডোমেন';
2610
2611
@override
2607
- String get lm_studio_format => 'FORMAT';
2612
+ String get lm_studio_format => 'ফরম্যাট';
2613
2614
@override
2610
- String get lm_studio_vision => 'Vision';
2615
+ String get lm_studio_vision => 'ভিশন';
2616
2617
@override
2613
- String get lm_studio_tool_use => 'Tool use';
2618
+ String get lm_studio_tool_use => 'টুল ব্যবহার';
2619
2620
@override
2616
- String get lm_studio_reasoning => 'Reasoning';
2621
+ String get lm_studio_reasoning => 'রিজনিং';
2622
2623
@override
2619
- String get lm_studio_download_options => 'Download options';
2624
+ String get lm_studio_download_options => 'ডাউনলোড বিকল্প';
2625
2626
@override
2622
- String get lm_studio_download => 'Download';
2627
+ String get lm_studio_download => 'ডাউনলোড করুন';
2628
2629
@override
2630
String lm_studio_download_size(String size) {
2626
- return 'Download $size';
2631
+ return 'ডাউনলোডের আকার';
2632
}
2633
2634
@override
2635
String lm_studio_downloading_percent(int percent) {
2631
- return 'Downloading $percent%';
2636
+ return 'ডাউনলোড হচ্ছে: $percent%';
2637
}
2638
2639
@override
2640
String get lm_studio_readme_unavailable =>
2636
- 'README not available for this model.';
2641
+ 'এই মডেলের জন্য README উপলব্ধ নেই।';
2642
2643
@override
2639
- String get lm_studio_full_gpu_offload => 'Full GPU offload possible';
2644
+ String get lm_studio_full_gpu_offload => 'সম্পূর্ণ GPU অফলোড সম্ভব';
2645
2646
@override
2642
- String get lm_studio_partial_gpu_offload => 'Partial GPU offload possible';
2647
+ String get lm_studio_partial_gpu_offload => 'আংশিক GPU অফলোড সম্ভব';
2648
2649
@override
2645
- String get lm_studio_likely_too_large => 'Likely too large';
2650
+ String get lm_studio_likely_too_large => 'সম্ভবত খুব বড়';
2651
2652
@override
2648
- String get lm_studio_available_ram_gb => 'Available RAM (GB, optional)';
2653
+ String get lm_studio_available_ram_gb => 'উপলব্ধ র্যাম (GB, ঐচ্ছিক)';
2654
2655
@override
2651
- String get lm_studio_available_vram_gb => 'Available VRAM (GB, optional)';
2656
+ String get lm_studio_available_vram_gb => 'উপলব্ধ ভি-র্যাম (GB, ঐচ্ছিক)';
2657
2658
@override
2654
- String get lm_studio_memory_settings_title => 'Memory for recommendations';
2659
+ String get lm_studio_memory_settings_title => 'সুপারিশের জন্য মেমরি';
2660
2661
@override
2662
String get lm_studio_memory_settings_desc =>
2658
- 'Used to estimate whether models fit on your machine in the model browser.';
2663
+ 'মডেল ব্রাউজারে মডেলগুলি আপনার ডিভাইসে চলবে কিনা তা অনুমান করতে ব্যবহৃত হয়।';
2664
2665
@override
2661
- String get think_button_label => 'Think';
2666
+ String get think_button_label => 'চিন্তা করুন';
2667
2668
@override
2664
- String get reasoning_effort_low => 'Low';
2669
+ String get reasoning_effort_low => 'কম';
2670
2671
@override
2667
- String get reasoning_effort_medium => 'Medium';
2672
+ String get reasoning_effort_medium => 'মাঝারি';
2673
2674
@override
2670
- String get reasoning_effort_high => 'High';
2675
+ String get reasoning_effort_high => 'উচ্চ';
2676
+
2677
+ @override
2678
+ String get could_not_read_file => 'ফাইল পড়া যায়নি';
2679
+
2680
+ @override
2681
+ String get server_offline => 'সার্ভার অফলাইন';
2682
+
2683
+ @override
2684
+ String get could_not_establish_connection =>
2685
+ 'সার্ভারের সাথে সংযোগ স্থাপন করা যায়নি। অনুগ্রহ করে আপনার সার্ভারটি চলছে কিনা এবং হোস্ট/পোর্ট সেটিংস সঠিক কিনা তা পরীক্ষা করুন।';
2686
+
2687
+ @override
2688
+ String get retry_connection => 'সংযোগের পুনরায় চেষ্টা করুন';
2689
+
2690
+ @override
2691
+ String get tokens_label => 'টোকেন';
2692
+
2693
+ @override
2694
+ String get enter_context_length => 'প্রসঙ্গের দৈর্ঘ্য লিখুন...';
2695
}
lib/l10n/app_localizations_en.dart
+20
-1
@@ -1715,7 +1715,7 @@ class AppLocalizationsEn extends AppLocalizations {
1715
String get edit_assistant_message_desc => 'Edit the assistant response text.';
1716
1717
@override
1718
- String switch_to_model(String modelName) {
1718
+ String switch_to_model(String modelName, Object model) {
1719
return 'Switch to $modelName';
1720
}
1721
@@ -2660,4 +2660,23 @@ class AppLocalizationsEn extends AppLocalizations {
2660
2661
@override
2662
String get reasoning_effort_high => 'High';
2663
+
2664
+ @override
2665
+ String get could_not_read_file => 'Could not read file';
2666
+
2667
+ @override
2668
+ String get server_offline => 'Server Offline';
2669
+
2670
+ @override
2671
+ String get could_not_establish_connection =>
2672
+ 'Could not establish a connection to the server. Please check if your server is running and the host/port settings are correct.';
2673
+
2674
+ @override
2675
+ String get retry_connection => 'Retry Connection';
2676
+
2677
+ @override
2678
+ String get tokens_label => 'Tokens';
2679
+
2680
+ @override
2681
+ String get enter_context_length => 'Enter context length...';
2682
}
lib/l10n/app_localizations_es.dart
+244
-223
@@ -262,77 +262,78 @@ class AppLocalizationsEs extends AppLocalizations {
262
263
@override
264
String get delete_builtin_persona_body =>
265
- 'This is a built-in persona. You can restore it later from Settings.';
265
+ 'Este es un personaje incorporado. Puedes restaurarlo más tarde desde Configuración.';
266
267
@override
268
- String get restore_builtin_personas => 'Restore default personas';
268
+ String get restore_builtin_personas => 'Restaurar personajes predeterminados';
269
270
@override
271
String get restore_builtin_personas_desc =>
272
- 'Re-add any built-in personas you\'ve deleted';
272
+ 'Vuelve a añadir cualquier personaje incorporado que hayas eliminado';
273
274
@override
275
- String get restore_builtin_personas_success => 'Default personas restored';
275
+ String get restore_builtin_personas_success =>
276
+ 'Personajes predeterminados restaurados';
277
278
@override
278
- String get clear_personas => 'Clear personas';
279
+ String get clear_personas => 'Limpiar personajes';
280
281
@override
281
- String get enable_image_compression => 'Compress images before sending';
282
+ String get enable_image_compression => 'Comprimir imágenes antes de enviar';
283
284
@override
285
String get enable_image_compression_desc =>
285
- 'Resize and compress attached images so uploads stay within server limits';
286
+ 'Redimensionar y comprimir imágenes adjuntas para que las cargas se mantengan dentro de los límites del servidor';
287
288
@override
288
- String get image_compression_level => 'Compression aggressiveness';
289
+ String get image_compression_level => 'Agresividad de la compresión';
290
291
@override
292
String get image_compression_level_desc =>
292
- 'Higher aggressiveness produces smaller uploads at lower quality';
293
+ 'Una mayor agresividad produce cargas más pequeñas a menor calidad';
294
295
@override
295
- String get image_compression_level_low => 'Low';
296
+ String get image_compression_level_low => 'Baja';
297
298
@override
298
- String get image_compression_level_medium => 'Medium';
299
+ String get image_compression_level_medium => 'Media';
300
301
@override
301
- String get image_compression_level_high => 'High';
302
+ String get image_compression_level_high => 'Alta';
303
304
@override
304
- String get sort_models_tooltip => 'Sort models';
305
+ String get sort_models_tooltip => 'Ordenar modelos';
306
307
@override
307
- String get sort_by_favorites => 'Favorites first';
308
+ String get sort_by_favorites => 'Favoritos primero';
309
310
@override
310
- String get sort_by_name => 'Name (A-Z)';
311
+ String get sort_by_name => 'Nombre (A-Z)';
312
313
@override
313
- String get sort_by_size_smallest => 'Size (smallest first)';
314
+ String get sort_by_size_smallest => 'Tamaño (más pequeño primero)';
315
316
@override
316
- String get sort_by_size_largest => 'Size (largest first)';
317
+ String get sort_by_size_largest => 'Tamaño (más grande primero)';
318
319
@override
319
- String get sort_by_context_length => 'Context length';
320
+ String get sort_by_context_length => 'Longitud de contexto';
321
322
@override
323
String bulk_ai_rename_progress(int done, int total) {
323
- return 'Renaming $done/$total...';
324
+ return 'Renombrando $done/$total...';
325
}
326
327
@override
328
String selected_count(int count) {
328
- return '$count selected';
329
+ return '$count seleccionados';
330
}
331
332
@override
332
- String get ai_rename_tooltip => 'Rename selected with AI';
333
+ String get ai_rename_tooltip => 'Renombrar seleccionados con IA';
334
335
@override
335
- String get new_chat_in_folder_tooltip => 'New chat in this folder';
336
+ String get new_chat_in_folder_tooltip => 'Nuevo chat en esta carpeta';
337
338
@override
339
String total_tokens_count(int count) {
@@ -340,74 +341,77 @@ class AppLocalizationsEs extends AppLocalizations {
341
}
342
343
@override
343
- String get smart_replies_use_persona => 'Use persona in smart replies';
344
+ String get smart_replies_use_persona =>
345
+ 'Usar personaje en respuestas inteligentes';
346
347
@override
348
String get smart_replies_use_persona_desc =>
347
- 'Suggested replies match the tone of the active persona instead of a generic assistant';
349
+ 'Las respuestas sugeridas coinciden con el tono del personaje activo en lugar de un asistente genérico';
350
351
@override
350
- String get keep_persona_on_new_chat => 'Keep persona on new chat';
352
+ String get keep_persona_on_new_chat =>
353
+ 'Mantener personaje al iniciar chat nuevo';
354
355
@override
356
String get keep_persona_on_new_chat_desc =>
354
- 'Don\'t clear the selected persona(s) after starting a new chat';
357
+ 'No limpiar la selección de personaje al comenzar un nuevo chat';
358
359
@override
357
- String get role_swap_button_enabled => 'Show role-swap button';
360
+ String get role_swap_button_enabled => 'Mostrar botón de cambio de rol';
361
362
@override
363
String get role_swap_button_enabled_desc =>
361
- 'Show a button in the chat input to send your message as the assistant instead of the user, without generating a response';
364
+ 'Mostrar un botón en la entrada de chat para enviar tu mensaje con el rol de asistente en lugar de usuario, sin generar respuesta';
365
366
@override
364
- String get send_as_user_tooltip => 'Send as user';
367
+ String get send_as_user_tooltip => 'Enviar como usuario';
368
369
@override
367
- String get send_as_assistant_tooltip => 'Send as assistant (no response)';
370
+ String get send_as_assistant_tooltip =>
371
+ 'Enviar como asistente (sin respuesta)';
372
373
@override
370
- String get insert_without_generating_tooltip => 'Insert without generating';
374
+ String get insert_without_generating_tooltip => 'Insertar sin generar';
375
376
@override
373
- String get token_usage_title => 'Token Usage';
377
+ String get token_usage_title => 'Uso de Tokens';
378
379
@override
376
- String get total_tokens_label => 'Tokens used';
380
+ String get total_tokens_label => 'Tokens usados';
381
382
@override
379
- String get usage_percent_label => 'Context used';
383
+ String get usage_percent_label => 'Contexto usado';
384
385
@override
382
- String get export_choice_title => 'Export';
386
+ String get export_choice_title => 'Exportar';
387
388
@override
385
- String get export_choice_body => 'How would you like to export this?';
389
+ String get export_choice_body => '¿Cómo te gustaría exportar esto?';
390
391
@override
388
- String get copy_to_clipboard => 'Copy to Clipboard';
392
+ String get copy_to_clipboard => 'Copiar al portapapeles';
393
394
@override
395
String bulk_export_conversations_success(int count) {
392
- return 'Exported $count conversations';
396
+ return 'Exportado $count conversaciones';
397
}
398
399
@override
396
- String get bulk_ai_rename_confirm_title => 'Rename with AI?';
400
+ String get bulk_ai_rename_confirm_title => '¿Renombrar con IA?';
401
402
@override
403
String bulk_ai_rename_confirm_body(int count) {
400
- return 'This will ask the AI to generate a new title for each of the $count selected conversations, replacing their current titles. This can take a while and cannot be undone.';
404
+ return 'Esto le pedirá a la IA que genere un nuevo título para cada una de las $count conversaciones seleccionadas, reemplazando sus títulos actuales. Esto puede tardar un poco y no se puede deshacer.';
405
}
406
407
@override
404
- String get sort_by_modified_date => 'Last modified';
408
+ String get sort_by_modified_date => 'Última modificación';
409
410
@override
407
- String get sort_by_created_date => 'Date created';
411
+ String get sort_by_created_date => 'Fecha de creación';
412
413
@override
410
- String get sort_title => 'Sort';
414
+ String get sort_title => 'Ordenar';
415
416
@override
417
String get clear_conversation_title => '¿Limpiar conversación?';
@@ -619,14 +623,15 @@ class AppLocalizationsEs extends AppLocalizations {
623
String get enable_smart_reply => 'Respuestas inteligentes locales';
624
625
@override
622
- String get ai_user_response_enabled => 'AI user message (hold send)';
626
+ String get ai_user_response_enabled =>
627
+ 'Mensaje de usuario de IA (mantener presionado)';
628
629
@override
630
String get ai_user_response_enabled_desc =>
626
- 'Hold the send button for 3 seconds to have the AI write and send your next message';
631
+ 'Mantén presionado el botón de enviar durante 3 segundos para que la IA escriba y envíe tu próximo mensaje';
632
633
@override
629
- String get ai_user_response_tooltip => 'Generate user message with AI';
634
+ String get ai_user_response_tooltip => 'Generar mensaje de usuario con IA';
635
636
@override
637
String get streaming_responses => 'Respuestas en tiempo real (streaming)';
@@ -642,14 +647,15 @@ class AppLocalizationsEs extends AppLocalizations {
647
648
@override
649
String get show_system_messages_desc =>
645
- 'When no persona is selected, send a default assistant system prompt with each request';
650
+ 'Cuando no se seleccione ningún personaje, enviar un prompt de sistema de asistente predeterminado con cada solicitud';
651
652
@override
648
- String get show_system_messages_in_chat => 'Show System Messages in Chat';
653
+ String get show_system_messages_in_chat =>
654
+ 'Mostrar mensajes del sistema en el chat';
655
656
@override
657
String get show_system_messages_in_chat_desc =>
652
- 'Display system messages (e.g. from an imported backup) as visible bubbles in the conversation';
658
+ 'Mostrar mensajes de sistema (por ejemplo, de una copia de seguridad importada) como burbujas visibles en la conversación';
659
660
@override
661
String get haptic_feedback => 'Comentarios hápticos';
@@ -707,11 +713,11 @@ class AppLocalizationsEs extends AppLocalizations {
713
String get select_persona => 'Seleccionar personaje';
714
715
@override
710
- String get manage_personas => 'Manage personas';
716
+ String get manage_personas => 'Gestionar personajes';
717
718
@override
719
String get personas_combine_hint =>
714
- 'Select multiple personas in chat to stack their system prompts.';
720
+ 'Los personajes seleccionados se combinarán';
721
722
@override
723
String get start_conversation => 'Comenzar una conversación';
@@ -1710,28 +1716,29 @@ class AppLocalizationsEs extends AppLocalizations {
1716
}
1717
1718
@override
1713
- String get unload_all_models => 'Unload all';
1719
+ String get unload_all_models => 'Descargar todos los modelos';
1720
1721
@override
1722
String loaded_models_count(int count) {
1717
- return '$count loaded';
1723
+ return '$count modelos cargados';
1724
}
1725
1726
@override
1721
- String get all_models_unloaded => 'All models unloaded';
1727
+ String get all_models_unloaded => 'Todos los modelos descargados';
1728
1729
@override
1724
- String get branch_chat => 'Branch chat';
1730
+ String get branch_chat => 'Ramificar chat';
1731
1732
@override
1727
- String get branch_chat_desc => 'Start a new conversation from this message';
1733
+ String get branch_chat_desc => 'Crear un nuevo chat a partir de este mensaje';
1734
1735
@override
1730
- String get edit_assistant_message_desc => 'Edit the assistant response text.';
1736
+ String get edit_assistant_message_desc =>
1737
+ 'Editar el contenido del mensaje del asistente';
1738
1739
@override
1733
- String switch_to_model(String modelName) {
1734
- return 'Switch to $modelName';
1740
+ String switch_to_model(String modelName, Object model) {
1741
+ return 'Cambiar al modelo $model';
1742
}
1743
1744
@override
@@ -2172,199 +2179,198 @@ class AppLocalizationsEs extends AppLocalizations {
2179
String get tool_status_failed => 'Failed';
2180
2181
@override
2175
- String get model_favorite_toggle => 'Toggle favorite';
2182
+ String get model_favorite_toggle => 'Alternar favorito';
2183
2184
@override
2178
- String get model_note_label => 'Note';
2185
+ String get model_note_label => 'Nota';
2186
2187
@override
2181
- String get model_note_hint => 'Add a note about this model…';
2188
+ String get model_note_hint => 'Añade una nota privada para este modelo...';
2189
2190
@override
2184
- String get unload_models_before_load =>
2185
- 'Unload all models before loading a new one';
2191
+ String get unload_models_before_load => 'Descargar modelos antes de cargar';
2192
2193
@override
2194
String get temp_chat_keyboard_incognito =>
2189
- 'Incognito keyboard in temporary chat';
2195
+ 'Teclado de incógnito en chat temporal';
2196
2197
@override
2198
String get temp_chat_keyboard_incognito_desc =>
2193
- 'Disables keyboard learning and suggestions in temporary chats (e.g. SwiftKey incognito).';
2199
+ 'Solicitar al teclado del sistema que no guarde el historial de escritura durante los chats temporales';
2200
2201
@override
2196
- String get resume_last_chat => 'Resume last chat on launch';
2202
+ String get resume_last_chat => 'Reanudar último chat';
2203
2204
@override
2205
String get resume_last_chat_desc =>
2200
- 'Restore your last open conversation when reopening the app.';
2206
+ 'Abrir automáticamente tu última conversación activa al iniciar';
2207
2208
@override
2203
- String get export_all_data => 'Export all data';
2209
+ String get export_all_data => 'Exportar todos los datos';
2210
2211
@override
2206
- String get import_all_data => 'Import all data';
2212
+ String get import_all_data => 'Importar todos los datos';
2213
2214
@override
2209
- String get export_data_success => 'Backup exported successfully';
2215
+ String get export_data_success => 'Datos exportados con éxito';
2216
2217
@override
2212
- String get import_data_success => 'Backup imported successfully';
2218
+ String get import_data_success => 'Datos importados con éxito';
2219
2220
@override
2221
String import_data_failed(String error) {
2216
- return 'Failed to import backup: $error';
2222
+ return 'Error al importar datos';
2223
}
2224
2225
@override
2226
String get import_data_confirm =>
2221
- 'Import conversations and custom personas from this backup? Existing items with the same IDs will be updated.';
2227
+ 'Esto reemplazará todos tus datos actuales con los datos importados. ¿Continuar?';
2228
2229
@override
2230
String get import_settings_confirm =>
2225
- 'Replace current settings with the imported backup?';
2231
+ 'Esto reemplazará tu configuración actual con la configuración importada. ¿Continuar?';
2232
2233
@override
2228
- String get export_conversations => 'Export conversations';
2234
+ String get export_conversations => 'Exportar conversaciones';
2235
2236
@override
2231
- String get import_conversations => 'Import conversations';
2237
+ String get import_conversations => 'Importar conversaciones';
2238
2239
@override
2234
- String get export_personas => 'Export personas';
2240
+ String get export_personas => 'Exportar personajes';
2241
2242
@override
2237
- String get import_personas => 'Import personas';
2243
+ String get import_personas => 'Importar personajes';
2244
2245
@override
2240
- String get export_settings => 'Export settings';
2246
+ String get export_settings => 'Exportar configuración';
2247
2248
@override
2243
- String get import_settings => 'Import settings';
2249
+ String get import_settings => 'Importar configuración';
2250
2251
@override
2246
- String get export_all_zip => 'Export all (ZIP)';
2252
+ String get export_all_zip => 'Exportar todo (ZIP)';
2253
2254
@override
2249
- String get import_all_zip => 'Import all (ZIP)';
2255
+ String get import_all_zip => 'Importar todo (ZIP)';
2256
2257
@override
2252
- String get duplicate_chat => 'Duplicate chat';
2258
+ String get duplicate_chat => 'Duplicar chat';
2259
2260
@override
2255
- String get duplicate_chat_success => 'Chat duplicated';
2261
+ String get duplicate_chat_success => 'Chat duplicado con éxito';
2262
2263
@override
2258
- String get move_to_folder => 'Move to folder';
2264
+ String get move_to_folder => 'Mover a carpeta';
2265
2266
@override
2261
- String get remove_from_folder => 'Remove from folder';
2267
+ String get remove_from_folder => 'Eliminar de la carpeta';
2268
2269
@override
2264
- String get create_folder => 'Create folder';
2270
+ String get create_folder => 'Crear carpeta';
2271
2272
@override
2267
- String get new_folder => 'New folder';
2273
+ String get new_folder => 'Nueva carpeta';
2274
2275
@override
2270
- String get folder_name_hint => 'Folder name';
2276
+ String get folder_name_hint => 'Introduce el nombre de la carpeta...';
2277
2278
@override
2273
- String get all_chats => 'All';
2279
+ String get all_chats => 'Todos los chats';
2280
2281
@override
2276
- String get unfiled_chats => 'Unfiled';
2282
+ String get unfiled_chats => 'Chats sin archivar';
2283
2284
@override
2279
- String get create => 'Create';
2285
+ String get create => 'Crear';
2286
2287
@override
2282
- String get server_path_prefix_label => 'API path prefix';
2288
+ String get server_path_prefix_label => 'Prefijo de ruta del servidor';
2289
2290
@override
2285
- String get server_path_prefix_hint => '/your-secret-token';
2291
+ String get server_path_prefix_hint =>
2292
+ 'Prefijo opcional para las rutas de la API del servidor (por ejemplo, /v1)';
2293
2294
@override
2288
- String get search_message_contents => 'Search message contents';
2295
+ String get search_message_contents => 'Buscar contenidos de mensajes...';
2296
2297
@override
2291
- String get message_search_results => 'Message matches';
2298
+ String get message_search_results => 'Resultados de búsqueda de mensajes';
2299
2300
@override
2294
- String get saved_messages_title => 'Saved Messages';
2301
+ String get saved_messages_title => 'Mensajes Guardados';
2302
2303
@override
2297
- String get nav_saved_messages => 'Saved Messages';
2304
+ String get nav_saved_messages => 'Mensajes guardados';
2305
2306
@override
2300
- String get saved_messages_empty =>
2301
- 'No saved messages yet. Bookmark a message from its options menu.';
2307
+ String get saved_messages_empty => 'No hay mensajes guardados todavía';
2308
2309
@override
2304
- String get save_message => 'Save message';
2310
+ String get save_message => 'Guardar mensaje';
2311
2312
@override
2307
- String get message_saved => 'Message saved';
2313
+ String get message_saved => 'Mensaje guardado';
2314
2315
@override
2316
String token_count(int count) {
2311
- return '$count tokens';
2317
+ return 'Tokens: $count';
2318
}
2319
2320
@override
2321
String estimated_token_count(int count) {
2316
- return '~$count tokens (estimated)';
2322
+ return 'Tokens estimados: $count';
2323
}
2324
2325
@override
2320
- String get test_tts_section_title => 'Test voice';
2326
+ String get test_tts_section_title => 'Prueba de Texto a Voz';
2327
2328
@override
2323
- String get test_tts_hint => 'Enter text to hear the current TTS engine…';
2329
+ String get test_tts_hint => 'Escribe algo para probar la voz...';
2330
2331
@override
2326
- String get test_speak_button => 'Speak';
2332
+ String get test_speak_button => 'Hablar';
2333
2334
@override
2329
- String get scroll_to_bottom => 'Scroll to bottom';
2335
+ String get scroll_to_bottom => 'Desplazarse hacia abajo';
2336
2337
@override
2332
- String get generate_ai_response => 'Generate AI response';
2338
+ String get generate_ai_response => 'Generar respuesta de IA';
2339
2340
@override
2335
- String get no_response => 'No response';
2341
+ String get no_response => 'Sin respuesta';
2342
2343
@override
2338
- String get export => 'Export';
2344
+ String get export => 'Exportar';
2345
2346
@override
2341
- String get import => 'Import';
2347
+ String get import => 'Importar';
2348
2349
@override
2344
- String get conversations_label => 'Conversations';
2350
+ String get conversations_label => 'Conversaciones';
2351
2352
@override
2347
- String get personas_label => 'Personas';
2353
+ String get personas_label => 'Personajes';
2354
2355
@override
2350
- String get settings_label => 'Settings';
2356
+ String get settings_label => 'Configuración';
2357
2358
@override
2353
- String get export_conversation => 'Export conversation';
2359
+ String get export_conversation => 'Exportar conversación';
2360
2361
@override
2356
- String get tts_process_markdown => 'Process markdown for speech';
2362
+ String get tts_process_markdown => 'Procesar Markdown';
2363
2364
@override
2365
String get tts_process_markdown_desc =>
2360
- 'Strip formatting like **bold** before reading aloud';
2366
+ 'Eliminar formato como **negrita** antes de leer en voz alta';
2367
2368
@override
2363
- String get tts_skip_seconds => 'Skip interval';
2369
+ String get tts_skip_seconds => 'Segundos a omitir';
2370
2371
@override
2372
String get tts_skip_seconds_desc =>
2367
- 'Forward and rewind jump size during playback';
2373
+ 'Tiempo para saltar hacia adelante/atrás en el reproductor de voz';
2374
2375
@override
2376
String tts_skip_seconds_value(int seconds) {
@@ -2372,307 +2378,322 @@ class AppLocalizationsEs extends AppLocalizations {
2378
}
2379
2380
@override
2375
- String get preview_system_prompts => 'Preview system prompts';
2381
+ String get preview_system_prompts => 'Vista previa de prompts del sistema';
2382
2383
@override
2378
- String get welcome_message_1 => 'What can I help you with today?';
2384
+ String get welcome_message_1 => '¡Hola! Soy tu asistente de IA local.';
2385
2386
@override
2381
- String get welcome_message_2 => 'Ask me anything — I\'m ready when you are.';
2387
+ String get welcome_message_2 =>
2388
+ 'Pregúntame lo que quieras, estoy listo cuando tú lo estés.';
2389
2390
@override
2384
- String get welcome_message_3 => 'Start a conversation below.';
2391
+ String get welcome_message_3 =>
2392
+ 'Tus datos se procesan localmente y nunca salen de tu dispositivo.';
2393
2394
@override
2387
- String get welcome_message_4 => 'Need ideas? Try one of the quick prompts.';
2395
+ String get welcome_message_4 =>
2396
+ 'Para empezar, selecciona un modelo en la barra superior o añade uno en la sección de administración de modelos.';
2397
2398
@override
2390
- String get temporary_chat => 'Temporary chat';
2399
+ String get temporary_chat => 'Chat temporal';
2400
2401
@override
2393
- String get temporary_chat_desc => 'Chats aren\'t saved to history.';
2402
+ String get temporary_chat_desc =>
2403
+ 'Los mensajes de este chat no se guardarán en el historial';
2404
2405
@override
2396
- String get temporary_chat_banner => 'Temporary chat — not saved to history';
2406
+ String get temporary_chat_banner =>
2407
+ 'Chat Temporal Activo — No se guardará en el historial';
2408
2409
@override
2399
- String get temporary_chat_save_warning_title =>
2400
- 'Save message in temporary chat?';
2410
+ String get temporary_chat_save_warning_title => '¿Guardar chat temporal?';
2411
2412
@override
2413
String get temporary_chat_save_warning_body =>
2404
- 'This chat is temporary and hidden from history. The saved message will still appear in Saved Messages.';
2414
+ 'Este chat no está guardado en tu historial. ¿Quieres guardarlo ahora?';
2415
2416
@override
2407
- String get save_to_history => 'Save to history';
2417
+ String get save_to_history => 'Guardar en el historial';
2418
2419
@override
2410
- String get share_conversation => 'Share conversation';
2420
+ String get share_conversation => 'Compartir conversación';
2421
2422
@override
2413
- String get download_tts_audio => 'Download audio';
2423
+ String get download_tts_audio => 'Descargar audio de voz';
2424
2425
@override
2416
- String get tts_download_unavailable =>
2417
- 'Download is only available for Piper and Kitten TTS';
2426
+ String get tts_download_unavailable => 'Descarga de voz no disponible';
2427
2428
@override
2420
- String get tts_download_no_audio => 'No audio available to download yet';
2429
+ String get tts_download_no_audio => 'No hay audio generado para descargar';
2430
2431
@override
2423
- String get tts_download_success => 'Audio saved';
2432
+ String get tts_download_success => 'Audio de voz guardado con éxito';
2433
2434
@override
2426
- String get return_to_chat => 'Return to chat';
2435
+ String get return_to_chat => 'Volver al chat';
2436
2437
@override
2429
- String get return_to_temp_chat => 'Return to temporary chat';
2438
+ String get return_to_temp_chat => 'Volver al chat temporal';
2439
2440
@override
2432
- String get insert_saved_message => 'Insert saved message';
2441
+ String get insert_saved_message => 'Insertar mensaje guardado';
2442
2443
@override
2444
String get insert_saved_message_desc =>
2436
- 'Choose a saved message to add to your input';
2445
+ 'Añade un fragmento de tus mensajes guardados al chat';
2446
2447
@override
2439
- String get model_info => 'Model info';
2448
+ String get model_info => 'Información del modelo';
2449
2450
@override
2442
- String get model_name => 'Model name';
2451
+ String get model_name => 'Nombre del modelo';
2452
2453
@override
2445
- String get model_identifier => 'Identifier';
2454
+ String get model_identifier => 'Identificador del modelo';
2455
2456
@override
2448
- String get not_available => 'Not available';
2457
+ String get not_available => 'No disponible';
2458
2459
@override
2451
- String get save_message_folders => 'Save message';
2460
+ String get save_message_folders => 'Guardar en carpetas';
2461
2462
@override
2454
- String get remove_from_saved => 'Remove from saved';
2463
+ String get remove_from_saved => 'Eliminar de guardados';
2464
2465
@override
2457
- String get message_already_saved => 'Saved';
2466
+ String get message_already_saved => 'El mensaje ya está guardado';
2467
2468
@override
2460
- String get stream_ttft => 'Time to first token';
2469
+ String get stream_ttft => 'Tiempo hasta el primer token';
2470
2471
@override
2463
- String get stream_tokens_per_sec => 'Tokens per second';
2472
+ String get stream_tokens_per_sec => 'Tokens por segundo';
2473
2474
@override
2466
- String get stream_stop_reason => 'Stop reason';
2475
+ String get stream_stop_reason => 'Razón de parada';
2476
2477
@override
2469
- String get stream_input_tokens => 'Input tokens';
2478
+ String get stream_input_tokens => 'Tokens de entrada';
2479
2480
@override
2472
- String get stream_output_tokens => 'Output tokens';
2481
+ String get stream_output_tokens => 'Tokens de salida';
2482
2483
@override
2475
- String get stream_generation_time => 'Generation time';
2484
+ String get stream_generation_time => 'Tiempo de generación';
2485
2486
@override
2478
- String get attach_image => 'Image';
2487
+ String get attach_image => 'Adjuntar imagen';
2488
2489
@override
2481
- String get attach_text_document => 'Text document';
2490
+ String get attach_text_document => 'Adjuntar documento de texto';
2491
2492
@override
2484
- String get add_attachment => 'Add attachment';
2493
+ String get add_attachment => 'Añadir adjunto';
2494
2495
@override
2487
- String get photo_permission_denied =>
2488
- 'Photo access is required to attach images';
2496
+ String get photo_permission_denied => 'Permiso de fotos denegado';
2497
2498
@override
2491
- String get characters_label => 'Characters';
2499
+ String get characters_label => 'Caracteres';
2500
2501
@override
2494
- String get exit_temporary_chat_title => 'Exit temporary chat?';
2502
+ String get exit_temporary_chat_title => '¿Salir del chat temporal?';
2503
2504
@override
2505
String get exit_temporary_chat_body =>
2498
- 'This will discard the current temporary chat and return to a new chat.';
2506
+ 'Esto eliminará permanentemente la conversación actual. ¿Continuar?';
2507
2508
@override
2509
String get saved_message_temp_snap_unavailable =>
2502
- 'This message was saved from a temporary chat and can\'t be opened in its original conversation.';
2510
+ 'Las capturas de mensajes no están disponibles en chats temporales';
2511
2512
@override
2505
- String get filter_title => 'Filter';
2513
+ String get filter_title => 'Filtrar chats';
2514
2515
@override
2508
- String get filter_pinned => 'Pinned';
2516
+ String get filter_pinned => 'Fijados';
2517
2518
@override
2511
- String get filter_archived => 'Archived';
2519
+ String get filter_archived => 'Archivados';
2520
2521
@override
2514
- String get filter_temp_chats => 'Temporary chats';
2522
+ String get filter_temp_chats => 'Chats temporales';
2523
2524
@override
2517
- String get filter_user_messages => 'User messages';
2525
+ String get filter_user_messages => 'Mensajes de usuario';
2526
2527
@override
2520
- String get filter_assistant_messages => 'Assistant messages';
2528
+ String get filter_assistant_messages => 'Mensajes de asistente';
2529
2530
@override
2523
- String get archive_chat => 'Archive';
2531
+ String get archive_chat => 'Archivar chat';
2532
2533
@override
2526
- String get unarchive_chat => 'Unarchive';
2534
+ String get unarchive_chat => 'Desarchivar chat';
2535
2536
@override
2537
String conversation_message_count(int count) {
2530
- String _temp0 = intl.Intl.pluralLogic(
2531
- count,
2532
- locale: localeName,
2533
- other: '$count messages',
2534
- one: '1 message',
2535
- );
2536
- return '$_temp0';
2538
+ return '$count mensajes';
2539
}
2540
2541
@override
2542
String conversation_character_count(int count) {
2541
- return '$count chars';
2543
+ return '$count caracteres';
2544
}
2545
2546
@override
2545
- String get generate_title_with_ai => 'Generate with AI';
2547
+ String get generate_title_with_ai => 'Generar título con IA';
2548
2549
@override
2548
- String get generating_title => 'Generating...';
2550
+ String get generating_title => 'Generando título...';
2551
2552
@override
2551
- String get generate_title_failed => 'Could not generate a title';
2553
+ String get generate_title_failed => 'No se pudo generar un título';
2554
2555
@override
2554
- String get lm_studio_model_browser_title => 'Browse models';
2556
+ String get lm_studio_model_browser_title => 'Navegador de Modelos';
2557
2558
@override
2557
- String get lm_studio_model_search_hint => 'Search models by name or author…';
2559
+ String get lm_studio_model_search_hint => 'Buscar modelos...';
2560
2561
@override
2560
- String get lm_studio_staff_picks => 'Staff picks';
2562
+ String get lm_studio_staff_picks => 'Selección del equipo';
2563
2564
@override
2563
- String get lm_studio_community_models => 'Community models';
2565
+ String get lm_studio_community_models => 'Modelos de la comunidad';
2566
2567
@override
2566
- String get lm_studio_no_models => 'No models found';
2568
+ String get lm_studio_no_models => 'No se encontraron modelos';
2569
2570
@override
2571
String lm_studio_models_count(int count) {
2570
- return '$count models';
2572
+ return '$count modelos';
2573
}
2574
2575
@override
2574
- String get lm_studio_browse_models => 'Browse & download';
2576
+ String get lm_studio_browse_models => 'Buscar modelos en LM Studio';
2577
2578
@override
2577
- String get lm_studio_model_search => 'LMS Model Search';
2579
+ String get lm_studio_model_search => 'Búsqueda de modelos';
2580
2581
@override
2580
- String get lm_studio_downloads_title => 'Downloads';
2582
+ String get lm_studio_downloads_title => 'Descargas';
2583
2584
@override
2583
- String get lm_studio_choose_quant => 'Choose a download option';
2585
+ String get lm_studio_choose_quant => 'Elegir cuantización';
2586
2587
@override
2586
- String get lm_studio_use_default_quant => 'Use default';
2588
+ String get lm_studio_use_default_quant => 'Usar cuantización predeterminada';
2589
2590
@override
2589
- String get lm_studio_recommended => 'Recommended';
2591
+ String get lm_studio_recommended => 'Recomendado';
2592
2593
@override
2592
- String get lm_studio_clear_downloads => 'Clear finished';
2594
+ String get lm_studio_clear_downloads => 'Limpiar descargas completadas';
2595
2596
@override
2595
- String get lm_studio_no_downloads => 'No downloads yet';
2597
+ String get lm_studio_no_downloads => 'No hay descargas activas';
2598
2599
@override
2600
String get lm_studio_downloads_disclaimer =>
2599
- 'Downloads run on the LM Studio host. Pausing, stopping, and deleting models must be done on that computer — not from this app.';
2601
+ 'Las descargas de modelos se realizan directamente desde Hugging Face.';
2602
2603
@override
2602
- String get lm_studio_staff_pick => 'Staff pick';
2604
+ String get lm_studio_staff_pick => 'Selección destacada';
2605
2606
@override
2605
- String get lm_studio_params => 'PARAMS';
2607
+ String get lm_studio_params => 'Parámetros';
2608
2609
@override
2608
- String get lm_studio_arch => 'ARCH';
2610
+ String get lm_studio_arch => 'Arquitectura';
2611
2612
@override
2611
- String get lm_studio_domain => 'DOMAIN';
2613
+ String get lm_studio_domain => 'Dominio';
2614
2615
@override
2614
- String get lm_studio_format => 'FORMAT';
2616
+ String get lm_studio_format => 'Formato';
2617
2618
@override
2617
- String get lm_studio_vision => 'Vision';
2619
+ String get lm_studio_vision => 'Visión';
2620
2621
@override
2620
- String get lm_studio_tool_use => 'Tool use';
2622
+ String get lm_studio_tool_use => 'Uso de herramientas';
2623
2624
@override
2623
- String get lm_studio_reasoning => 'Reasoning';
2625
+ String get lm_studio_reasoning => 'Razonamiento';
2626
2627
@override
2626
- String get lm_studio_download_options => 'Download options';
2628
+ String get lm_studio_download_options => 'Opciones de descarga';
2629
2630
@override
2629
- String get lm_studio_download => 'Download';
2631
+ String get lm_studio_download => 'Descargar';
2632
2633
@override
2634
String lm_studio_download_size(String size) {
2633
- return 'Download $size';
2635
+ return 'Tamaño de descarga';
2636
}
2637
2638
@override
2639
String lm_studio_downloading_percent(int percent) {
2638
- return 'Downloading $percent%';
2640
+ return 'Descargando: $percent%';
2641
}
2642
2643
@override
2644
String get lm_studio_readme_unavailable =>
2643
- 'README not available for this model.';
2645
+ 'README no disponible para este modelo.';
2646
2647
@override
2646
- String get lm_studio_full_gpu_offload => 'Full GPU offload possible';
2648
+ String get lm_studio_full_gpu_offload => 'Descarga completa de GPU posible';
2649
2650
@override
2649
- String get lm_studio_partial_gpu_offload => 'Partial GPU offload possible';
2651
+ String get lm_studio_partial_gpu_offload => 'Descarga parcial de GPU posible';
2652
2653
@override
2652
- String get lm_studio_likely_too_large => 'Likely too large';
2654
+ String get lm_studio_likely_too_large => 'Probablemente demasiado grande';
2655
2656
@override
2655
- String get lm_studio_available_ram_gb => 'Available RAM (GB, optional)';
2657
+ String get lm_studio_available_ram_gb => 'RAM disponible (GB, opcional)';
2658
2659
@override
2658
- String get lm_studio_available_vram_gb => 'Available VRAM (GB, optional)';
2660
+ String get lm_studio_available_vram_gb => 'VRAM disponible (GB, opcional)';
2661
2662
@override
2661
- String get lm_studio_memory_settings_title => 'Memory for recommendations';
2663
+ String get lm_studio_memory_settings_title => 'Memoria para recomendaciones';
2664
2665
@override
2666
String get lm_studio_memory_settings_desc =>
2665
- 'Used to estimate whether models fit on your machine in the model browser.';
2667
+ 'Se utiliza para estimar si los modelos caben en tu máquina en el explorador de modelos.';
2668
+
2669
+ @override
2670
+ String get think_button_label => 'Pensar';
2671
+
2672
+ @override
2673
+ String get reasoning_effort_low => 'Bajo';
2674
+
2675
+ @override
2676
+ String get reasoning_effort_medium => 'Medio';
2677
+
2678
+ @override
2679
+ String get reasoning_effort_high => 'Alto';
2680
+
2681
+ @override
2682
+ String get could_not_read_file => 'No se pudo leer el archivo';
2683
+
2684
+ @override
2685
+ String get server_offline => 'Servidor sin conexión';
2686
2687
@override
2668
- String get think_button_label => 'Think';
2688
+ String get could_not_establish_connection =>
2689
+ 'No se pudo establecer una conexión con el servidor. Por favor, comprueba si tu servidor está funcionando y si la configuración de host/puerto es correcta.';
2690
2691
@override
2671
- String get reasoning_effort_low => 'Low';
2692
+ String get retry_connection => 'Reintentar conexión';
2693
2694
@override
2674
- String get reasoning_effort_medium => 'Medium';
2695
+ String get tokens_label => 'Tokens';
2696
2697
@override
2677
- String get reasoning_effort_high => 'High';
2698
+ String get enter_context_length => 'Introduce la longitud del contexto...';
2699
}
lib/l10n/app_localizations_hi.dart
+247
-226
@@ -263,152 +263,156 @@ class AppLocalizationsHi extends AppLocalizations {
263
264
@override
265
String get delete_builtin_persona_body =>
266
- 'This is a built-in persona. You can restore it later from Settings.';
266
+ 'यह एक अंतर्निहित व्यक्तित्व (Persona) है। आप इसे बाद में सेटिंग्स से पुनर्स्थापित कर सकते हैं।';
267
268
@override
269
- String get restore_builtin_personas => 'Restore default personas';
269
+ String get restore_builtin_personas =>
270
+ 'डिफ़ॉल्ट व्यक्तित्व पुनर्स्थापित करें';
271
272
@override
273
String get restore_builtin_personas_desc =>
273
- 'Re-add any built-in personas you\'ve deleted';
274
+ 'आपके द्वारा हटाए गए किसी भी अंतर्निहित व्यक्तित्व को फिर से जोड़ें';
275
276
@override
276
- String get restore_builtin_personas_success => 'Default personas restored';
277
+ String get restore_builtin_personas_success =>
278
+ 'डिफ़ॉल्ट व्यक्तित्व पुनर्स्थापित कर दिए गए हैं';
279
280
@override
279
- String get clear_personas => 'Clear personas';
281
+ String get clear_personas => 'व्यक्तित्व साफ़ करें';
282
283
@override
282
- String get enable_image_compression => 'Compress images before sending';
284
+ String get enable_image_compression => 'भेजने से पहले छवियों को कंप्रेस करें';
285
286
@override
287
String get enable_image_compression_desc =>
286
- 'Resize and compress attached images so uploads stay within server limits';
288
+ 'संलग्न छवियों का आकार बदलें और कंप्रेस करें ताकि अपलोड सर्वर सीमाओं के भीतर रहें';
289
290
@override
289
- String get image_compression_level => 'Compression aggressiveness';
291
+ String get image_compression_level => 'कंप्रेशन की आक्रामकता';
292
293
@override
294
String get image_compression_level_desc =>
293
- 'Higher aggressiveness produces smaller uploads at lower quality';
295
+ 'अधिक आक्रामकता कम गुणवत्ता पर छोटे आकार के अपलोड बनाती है';
296
297
@override
296
- String get image_compression_level_low => 'Low';
298
+ String get image_compression_level_low => 'कम';
299
300
@override
299
- String get image_compression_level_medium => 'Medium';
301
+ String get image_compression_level_medium => 'मध्यम';
302
303
@override
302
- String get image_compression_level_high => 'High';
304
+ String get image_compression_level_high => 'उच्च';
305
306
@override
305
- String get sort_models_tooltip => 'Sort models';
307
+ String get sort_models_tooltip => 'मॉडलों को सॉर्ट करें';
308
309
@override
308
- String get sort_by_favorites => 'Favorites first';
310
+ String get sort_by_favorites => 'पसंदीदा पहले';
311
312
@override
311
- String get sort_by_name => 'Name (A-Z)';
313
+ String get sort_by_name => 'नाम (A-Z)';
314
315
@override
314
- String get sort_by_size_smallest => 'Size (smallest first)';
316
+ String get sort_by_size_smallest => 'आकार (सबसे छोटा पहले)';
317
318
@override
317
- String get sort_by_size_largest => 'Size (largest first)';
319
+ String get sort_by_size_largest => 'आकार (सबसे बड़ा पहले)';
320
321
@override
320
- String get sort_by_context_length => 'Context length';
322
+ String get sort_by_context_length => 'संदर्भ की लंबाई';
323
324
@override
325
String bulk_ai_rename_progress(int done, int total) {
324
- return 'Renaming $done/$total...';
326
+ return 'नाम बदला जा रहा है $done/$total...';
327
}
328
329
@override
330
String selected_count(int count) {
329
- return '$count selected';
331
+ return '$count चयनित';
332
}
333
334
@override
333
- String get ai_rename_tooltip => 'Rename selected with AI';
335
+ String get ai_rename_tooltip => 'एआई के साथ चयनित का नाम बदलें';
336
337
@override
336
- String get new_chat_in_folder_tooltip => 'New chat in this folder';
338
+ String get new_chat_in_folder_tooltip => 'इस फ़ोल्डर में नई चैट';
339
340
@override
341
String total_tokens_count(int count) {
340
- return '$count tokens';
342
+ return '$count टोकन';
343
}
344
345
@override
344
- String get smart_replies_use_persona => 'Use persona in smart replies';
346
+ String get smart_replies_use_persona =>
347
+ 'स्मार्ट उत्तरों में व्यक्तित्व का उपयोग करें';
348
349
@override
350
String get smart_replies_use_persona_desc =>
348
- 'Suggested replies match the tone of the active persona instead of a generic assistant';
351
+ 'सुझाए गए उत्तर सामान्य सहायक के बजाय सक्रिय व्यक्तित्व के लहजे से मेल खाते हैं';
352
353
@override
351
- String get keep_persona_on_new_chat => 'Keep persona on new chat';
354
+ String get keep_persona_on_new_chat => 'नई चैट पर व्यक्तित्व बनाए रखें';
355
356
@override
357
String get keep_persona_on_new_chat_desc =>
355
- 'Don\'t clear the selected persona(s) after starting a new chat';
358
+ 'नई चैट शुरू करने के बाद चयनित व्यक्तित्व को साफ़ न करें';
359
360
@override
358
- String get role_swap_button_enabled => 'Show role-swap button';
361
+ String get role_swap_button_enabled => 'भूमिका-बदल बटन दिखाएं';
362
363
@override
364
String get role_swap_button_enabled_desc =>
362
- 'Show a button in the chat input to send your message as the assistant instead of the user, without generating a response';
365
+ 'बिना कोई प्रतिक्रिया उत्पन्न किए, अपने संदेश को उपयोगकर्ता के बजाय सहायक भूमिका के रूप में भेजने के लिए चैट इनपुट में एक बटन दिखाएं';
366
367
@override
365
- String get send_as_user_tooltip => 'Send as user';
368
+ String get send_as_user_tooltip => 'उपयोगकर्ता के रूप में भेजें';
369
370
@override
368
- String get send_as_assistant_tooltip => 'Send as assistant (no response)';
371
+ String get send_as_assistant_tooltip =>
372
+ 'सहायक के रूप में भेजें (कोई प्रतिक्रिया नहीं)';
373
374
@override
371
- String get insert_without_generating_tooltip => 'Insert without generating';
375
+ String get insert_without_generating_tooltip => 'बिना जनरेट किए डालें';
376
377
@override
374
- String get token_usage_title => 'Token Usage';
378
+ String get token_usage_title => 'टोकन उपयोग';
379
380
@override
377
- String get total_tokens_label => 'Tokens used';
381
+ String get total_tokens_label => 'उपयोग किए गए टोकन';
382
383
@override
380
- String get usage_percent_label => 'Context used';
384
+ String get usage_percent_label => 'उपयोग किया गया संदर्भ';
385
386
@override
383
- String get export_choice_title => 'Export';
387
+ String get export_choice_title => 'निर्यात (Export) करें';
388
389
@override
386
- String get export_choice_body => 'How would you like to export this?';
390
+ String get export_choice_body => 'आप इसे कैसे निर्यात करना चाहेंगे?';
391
392
@override
389
- String get copy_to_clipboard => 'Copy to Clipboard';
393
+ String get copy_to_clipboard => 'क्लिपबोर्ड पर कॉपी करें';
394
395
@override
396
String bulk_export_conversations_success(int count) {
393
- return 'Exported $count conversations';
397
+ return '$count वार्तालाप निर्यात किए गए';
398
}
399
400
@override
397
- String get bulk_ai_rename_confirm_title => 'Rename with AI?';
401
+ String get bulk_ai_rename_confirm_title => 'एआई के साथ नाम बदलें?';
402
403
@override
404
String bulk_ai_rename_confirm_body(int count) {
401
- return 'This will ask the AI to generate a new title for each of the $count selected conversations, replacing their current titles. This can take a while and cannot be undone.';
405
+ return 'यह एआई को वर्तमान शीर्षकों को प्रतिस्थापित करते हुए, प्रत्येक $count चयनित वार्तालापों के लिए एक नया शीर्षक उत्पन्न करने के लिए कहेगा। इसमें कुछ समय लग सकता है और इसे पूर्ववत नहीं किया जा सकता है।';
406
}
407
408
@override
405
- String get sort_by_modified_date => 'Last modified';
409
+ String get sort_by_modified_date => 'पिछला संशोधन';
410
411
@override
408
- String get sort_by_created_date => 'Date created';
412
+ String get sort_by_created_date => 'निर्माण तिथि';
413
414
@override
411
- String get sort_title => 'Sort';
415
+ String get sort_title => 'सॉर्ट करें';
416
417
@override
418
String get clear_conversation_title => 'बातचीत साफ़ करें?';
@@ -620,14 +624,16 @@ class AppLocalizationsHi extends AppLocalizations {
624
String get enable_smart_reply => 'ऑन-डिवाइस स्मार्ट रिप्लाइ';
625
626
@override
623
- String get ai_user_response_enabled => 'AI user message (hold send)';
627
+ String get ai_user_response_enabled =>
628
+ 'एआई उपयोगकर्ता संदेश (भेजें बटन दबाकर रखें)';
629
630
@override
631
String get ai_user_response_enabled_desc =>
627
- 'Hold the send button for 3 seconds to have the AI write and send your next message';
632
+ 'एआई से अपना अगला संदेश लिखवाने और भेजने के लिए भेजें बटन को 3 सेकंड के लिए दबाकर रखें';
633
634
@override
630
- String get ai_user_response_tooltip => 'Generate user message with AI';
635
+ String get ai_user_response_tooltip =>
636
+ 'एआई के साथ उपयोगकर्ता संदेश जनरेट करें';
637
638
@override
639
String get streaming_responses => 'प्रतिक्रियाएं स्ट्रीम करें';
@@ -643,14 +649,14 @@ class AppLocalizationsHi extends AppLocalizations {
649
650
@override
651
String get show_system_messages_desc =>
646
- 'When no persona is selected, send a default assistant system prompt with each request';
652
+ 'जब कोई व्यक्तित्व चयनित न हो, तो प्रत्येक अनुरोध के साथ एक डिफ़ॉल्ट सहायक सिस्टम प्रॉम्प्ट भेजें';
653
654
@override
649
- String get show_system_messages_in_chat => 'Show System Messages in Chat';
655
+ String get show_system_messages_in_chat => 'चैट में सिस्टम संदेश दिखाएं';
656
657
@override
658
String get show_system_messages_in_chat_desc =>
653
- 'Display system messages (e.g. from an imported backup) as visible bubbles in the conversation';
659
+ 'चैट ट्रांसक्रिप्ट में दृश्यमान बुलबुले के रूप में सिस्टम संदेश (जैसे आयातित बैकअप से) प्रदर्शित करें';
660
661
@override
662
String get haptic_feedback => 'हैप्टिक फीडबैक';
@@ -707,11 +713,10 @@ class AppLocalizationsHi extends AppLocalizations {
713
String get select_persona => 'चरित्र चुनें';
714
715
@override
710
- String get manage_personas => 'Manage personas';
716
+ String get manage_personas => 'व्यक्तित्व प्रबंधित करें';
717
718
@override
713
- String get personas_combine_hint =>
714
- 'Select multiple personas in chat to stack their system prompts.';
719
+ String get personas_combine_hint => 'चयनित व्यक्तित्वों को मिला दिया जाएगा';
720
721
@override
722
String get start_conversation => 'बातचीत शुरू करें';
@@ -1699,28 +1704,29 @@ class AppLocalizationsHi extends AppLocalizations {
1704
}
1705
1706
@override
1702
- String get unload_all_models => 'Unload all';
1707
+ String get unload_all_models => 'सभी मॉडल अनलोड करें';
1708
1709
@override
1710
String loaded_models_count(int count) {
1706
- return '$count loaded';
1711
+ return '$count मॉडल लोड किए गए';
1712
}
1713
1714
@override
1710
- String get all_models_unloaded => 'All models unloaded';
1715
+ String get all_models_unloaded => 'सभी मॉडल अनलोड कर दिए गए';
1716
1717
@override
1713
- String get branch_chat => 'Branch chat';
1718
+ String get branch_chat => 'ब्रांच चैट';
1719
1720
@override
1716
- String get branch_chat_desc => 'Start a new conversation from this message';
1721
+ String get branch_chat_desc => 'इस संदेश से शुरू होने वाली एक नई चैट बनाएं';
1722
1723
@override
1719
- String get edit_assistant_message_desc => 'Edit the assistant response text.';
1724
+ String get edit_assistant_message_desc =>
1725
+ 'सहायक संदेश की सामग्री को संपादित करें';
1726
1727
@override
1722
- String switch_to_model(String modelName) {
1723
- return 'Switch to $modelName';
1728
+ String switch_to_model(String modelName, Object model) {
1729
+ return 'मॉडल $model पर स्विच करें';
1730
}
1731
1732
@override
@@ -2161,199 +2167,197 @@ class AppLocalizationsHi extends AppLocalizations {
2167
String get tool_status_failed => 'Failed';
2168
2169
@override
2164
- String get model_favorite_toggle => 'Toggle favorite';
2170
+ String get model_favorite_toggle => 'पसंदीदा टॉगल करें';
2171
2172
@override
2167
- String get model_note_label => 'Note';
2173
+ String get model_note_label => 'टिप्पणी (Note)';
2174
2175
@override
2170
- String get model_note_hint => 'Add a note about this model…';
2176
+ String get model_note_hint => 'इस मॉडल के लिए एक निजी टिप्पणी जोड़ें...';
2177
2178
@override
2173
- String get unload_models_before_load =>
2174
- 'Unload all models before loading a new one';
2179
+ String get unload_models_before_load => 'लोड करने से पहले मॉडल अनलोड करें';
2180
2181
@override
2182
String get temp_chat_keyboard_incognito =>
2178
- 'Incognito keyboard in temporary chat';
2183
+ 'अस्थायी चैट में गुप्त (Incognito) कीबोर्ड';
2184
2185
@override
2186
String get temp_chat_keyboard_incognito_desc =>
2182
- 'Disables keyboard learning and suggestions in temporary chats (e.g. SwiftKey incognito).';
2187
+ 'अस्थायी चैट के दौरान टाइपिंग इतिहास को सहेजने के लिए सिस्टम कीबोर्ड से अनुरोध न करें';
2188
2189
@override
2185
- String get resume_last_chat => 'Resume last chat on launch';
2190
+ String get resume_last_chat => 'पिछली चैट फिर से शुरू करें';
2191
2192
@override
2193
String get resume_last_chat_desc =>
2189
- 'Restore your last open conversation when reopening the app.';
2194
+ 'स्टार्टअप पर स्वचालित रूप से अपना अंतिम सक्रिय वार्तालाप खोलें';
2195
2196
@override
2192
- String get export_all_data => 'Export all data';
2197
+ String get export_all_data => 'सभी डेटा निर्यात करें';
2198
2199
@override
2195
- String get import_all_data => 'Import all data';
2200
+ String get import_all_data => 'सभी डेटा आयात करें';
2201
2202
@override
2198
- String get export_data_success => 'Backup exported successfully';
2203
+ String get export_data_success => 'डेटा सफलतापूर्वक निर्यात किया गया';
2204
2205
@override
2201
- String get import_data_success => 'Backup imported successfully';
2206
+ String get import_data_success => 'डेटा सफलतापूर्वक आयात किया गया';
2207
2208
@override
2209
String import_data_failed(String error) {
2205
- return 'Failed to import backup: $error';
2210
+ return 'डेटा आयात करने में विफल';
2211
}
2212
2213
@override
2214
String get import_data_confirm =>
2210
- 'Import conversations and custom personas from this backup? Existing items with the same IDs will be updated.';
2215
+ 'यह आपके सभी वर्तमान डेटा को आयातित डेटा से बदल देगा। क्या आप जारी रखना चाहते हैं?';
2216
2217
@override
2218
String get import_settings_confirm =>
2214
- 'Replace current settings with the imported backup?';
2219
+ 'यह आपकी वर्तमान सेटिंग्स को आयातित सेटिंग्स से बदल देगा। क्या आप जारी रखना चाहते हैं?';
2220
2221
@override
2217
- String get export_conversations => 'Export conversations';
2222
+ String get export_conversations => 'वार्तालाप निर्यात करें';
2223
2224
@override
2220
- String get import_conversations => 'Import conversations';
2225
+ String get import_conversations => 'वार्तालाप आयात करें';
2226
2227
@override
2223
- String get export_personas => 'Export personas';
2228
+ String get export_personas => 'व्यक्तित्व निर्यात करें';
2229
2230
@override
2226
- String get import_personas => 'Import personas';
2231
+ String get import_personas => 'व्यक्तित्व आयात करें';
2232
2233
@override
2229
- String get export_settings => 'Export settings';
2234
+ String get export_settings => 'सेटिंग्स निर्यात करें';
2235
2236
@override
2232
- String get import_settings => 'Import settings';
2237
+ String get import_settings => 'सेटिंग्स आयात करें';
2238
2239
@override
2235
- String get export_all_zip => 'Export all (ZIP)';
2240
+ String get export_all_zip => 'सभी निर्यात करें (ZIP)';
2241
2242
@override
2238
- String get import_all_zip => 'Import all (ZIP)';
2243
+ String get import_all_zip => 'सभी आयात करें (ZIP)';
2244
2245
@override
2241
- String get duplicate_chat => 'Duplicate chat';
2246
+ String get duplicate_chat => 'चैट की प्रतिलिपि बनाएँ';
2247
2248
@override
2244
- String get duplicate_chat_success => 'Chat duplicated';
2249
+ String get duplicate_chat_success => 'चैट की प्रतिलिपि सफलतापूर्वक बनाई गई';
2250
2251
@override
2247
- String get move_to_folder => 'Move to folder';
2252
+ String get move_to_folder => 'फ़ोल्डर में ले जाएं';
2253
2254
@override
2250
- String get remove_from_folder => 'Remove from folder';
2255
+ String get remove_from_folder => 'फ़ोल्डर से निकालें';
2256
2257
@override
2253
- String get create_folder => 'Create folder';
2258
+ String get create_folder => 'फ़ोल्डर बनाएं';
2259
2260
@override
2256
- String get new_folder => 'New folder';
2261
+ String get new_folder => 'नया फ़ोल्डर';
2262
2263
@override
2259
- String get folder_name_hint => 'Folder name';
2264
+ String get folder_name_hint => 'फ़ोल्डर का नाम दर्ज करें...';
2265
2266
@override
2262
- String get all_chats => 'All';
2267
+ String get all_chats => 'सभी चैट';
2268
2269
@override
2265
- String get unfiled_chats => 'Unfiled';
2270
+ String get unfiled_chats => 'बिना श्रेणीबद्ध चैट';
2271
2272
@override
2268
- String get create => 'Create';
2273
+ String get create => 'बनाएं';
2274
2275
@override
2271
- String get server_path_prefix_label => 'API path prefix';
2276
+ String get server_path_prefix_label => 'सर्वर पथ उपसर्ग (Path Prefix)';
2277
2278
@override
2274
- String get server_path_prefix_hint => '/your-secret-token';
2279
+ String get server_path_prefix_hint =>
2280
+ 'सर्वर एपीआई पथों के लिए वैकल्पिक उपसर्ग (जैसे /v1)';
2281
2282
@override
2277
- String get search_message_contents => 'Search message contents';
2283
+ String get search_message_contents => 'संदेश सामग्री खोजें...';
2284
2285
@override
2280
- String get message_search_results => 'Message matches';
2286
+ String get message_search_results => 'संदेश खोज परिणाम';
2287
2288
@override
2283
- String get saved_messages_title => 'Saved Messages';
2289
+ String get saved_messages_title => 'सहेजे गए संदेश';
2290
2291
@override
2286
- String get nav_saved_messages => 'Saved Messages';
2292
+ String get nav_saved_messages => 'सहेजे गए संदेश';
2293
2294
@override
2289
- String get saved_messages_empty =>
2290
- 'No saved messages yet. Bookmark a message from its options menu.';
2295
+ String get saved_messages_empty => 'अभी तक कोई सहेजा गया संदेश नहीं है';
2296
2297
@override
2293
- String get save_message => 'Save message';
2298
+ String get save_message => 'संदेश सहेजें';
2299
2300
@override
2296
- String get message_saved => 'Message saved';
2301
+ String get message_saved => 'संदेश सहेजा गया';
2302
2303
@override
2304
String token_count(int count) {
2300
- return '$count tokens';
2305
+ return 'टोकन: $count';
2306
}
2307
2308
@override
2309
String estimated_token_count(int count) {
2305
- return '~$count tokens (estimated)';
2310
+ return 'अनुमानित टोकन: $count';
2311
}
2312
2313
@override
2309
- String get test_tts_section_title => 'Test voice';
2314
+ String get test_tts_section_title => 'टेक्स्ट-टू-स्पीच परीक्षण';
2315
2316
@override
2312
- String get test_tts_hint => 'Enter text to hear the current TTS engine…';
2317
+ String get test_tts_hint => 'आवाज का परीक्षण करने के लिए कुछ टाइप करें...';
2318
2319
@override
2315
- String get test_speak_button => 'Speak';
2320
+ String get test_speak_button => 'बोलें';
2321
2322
@override
2318
- String get scroll_to_bottom => 'Scroll to bottom';
2323
+ String get scroll_to_bottom => 'नीचे स्क्रॉल करें';
2324
2325
@override
2321
- String get generate_ai_response => 'Generate AI response';
2326
+ String get generate_ai_response => 'एआई प्रतिक्रिया जनरेट करें';
2327
2328
@override
2324
- String get no_response => 'No response';
2329
+ String get no_response => 'कोई प्रतिक्रिया नहीं';
2330
2331
@override
2327
- String get export => 'Export';
2332
+ String get export => 'निर्यात';
2333
2334
@override
2330
- String get import => 'Import';
2335
+ String get import => 'आयात';
2336
2337
@override
2333
- String get conversations_label => 'Conversations';
2338
+ String get conversations_label => 'वार्तालाप';
2339
2340
@override
2336
- String get personas_label => 'Personas';
2341
+ String get personas_label => 'व्यक्तित्व';
2342
2343
@override
2339
- String get settings_label => 'Settings';
2344
+ String get settings_label => 'सेटिंग्स';
2345
2346
@override
2342
- String get export_conversation => 'Export conversation';
2347
+ String get export_conversation => 'वार्तालाप निर्यात करें';
2348
2349
@override
2345
- String get tts_process_markdown => 'Process markdown for speech';
2350
+ String get tts_process_markdown => 'मार्कडाउन संसाधित करें';
2351
2352
@override
2353
String get tts_process_markdown_desc =>
2349
- 'Strip formatting like **bold** before reading aloud';
2354
+ 'तेज़ आवाज में पढ़ने से पहले **बोल्ड** जैसी फ़ॉर्मेटिंग हटा दें';
2355
2356
@override
2352
- String get tts_skip_seconds => 'Skip interval';
2357
+ String get tts_skip_seconds => 'स्किप करने के लिए सेकंड';
2358
2359
@override
2355
- String get tts_skip_seconds_desc =>
2356
- 'Forward and rewind jump size during playback';
2360
+ String get tts_skip_seconds_desc => 'वॉयस प्लेयर में आगे/पीछे जाने का समय';
2361
2362
@override
2363
String tts_skip_seconds_value(int seconds) {
@@ -2361,307 +2365,324 @@ class AppLocalizationsHi extends AppLocalizations {
2365
}
2366
2367
@override
2364
- String get preview_system_prompts => 'Preview system prompts';
2368
+ String get preview_system_prompts => 'सिस्टम प्रॉम्प्ट का पूर्वावलोकन करें';
2369
2370
@override
2367
- String get welcome_message_1 => 'What can I help you with today?';
2371
+ String get welcome_message_1 => 'नमस्ते! मैं आपका स्थानीय एआई सहायक हूँ।';
2372
2373
@override
2370
- String get welcome_message_2 => 'Ask me anything — I\'m ready when you are.';
2374
+ String get welcome_message_2 =>
2375
+ 'मुझसे कुछ भी पूछें — जब आप तैयार हों मैं तैयार हूँ।';
2376
2377
@override
2373
- String get welcome_message_3 => 'Start a conversation below.';
2378
+ String get welcome_message_3 =>
2379
+ 'आपका डेटा स्थानीय रूप से संसाधित होता है और आपके डिवाइस से कभी बाहर नहीं जाता है।';
2380
2381
@override
2376
- String get welcome_message_4 => 'Need ideas? Try one of the quick prompts.';
2382
+ String get welcome_message_4 =>
2383
+ 'शुरू करने के लिए, शीर्ष बार से एक मॉडल चुनें या मॉडल प्रबंधन अनुभाग में एक नया मॉडल जोड़ें।';
2384
2385
@override
2379
- String get temporary_chat => 'Temporary chat';
2386
+ String get temporary_chat => 'अस्थायी चैट';
2387
2388
@override
2382
- String get temporary_chat_desc => 'Chats aren\'t saved to history.';
2389
+ String get temporary_chat_desc =>
2390
+ 'इस चैट के संदेश इतिहास में सहेजे नहीं जाएंगे';
2391
2392
@override
2385
- String get temporary_chat_banner => 'Temporary chat — not saved to history';
2393
+ String get temporary_chat_banner =>
2394
+ 'अस्थायी चैट सक्रिय — इतिहास सहेजा नहीं जाएगा';
2395
2396
@override
2388
- String get temporary_chat_save_warning_title =>
2389
- 'Save message in temporary chat?';
2397
+ String get temporary_chat_save_warning_title => 'अस्थायी चैट सहेजें?';
2398
2399
@override
2400
String get temporary_chat_save_warning_body =>
2393
- 'This chat is temporary and hidden from history. The saved message will still appear in Saved Messages.';
2401
+ 'यह चैट आपके इतिहास में सहेजी नहीं गई है। क्या आप इसे अभी सहेजना चाहते हैं?';
2402
2403
@override
2396
- String get save_to_history => 'Save to history';
2404
+ String get save_to_history => 'इतिहास में सहेजें';
2405
2406
@override
2399
- String get share_conversation => 'Share conversation';
2407
+ String get share_conversation => 'वार्तालाप साझा करें';
2408
2409
@override
2402
- String get download_tts_audio => 'Download audio';
2410
+ String get download_tts_audio => 'वॉयस ऑडियो डाउनलोड करें';
2411
2412
@override
2405
- String get tts_download_unavailable =>
2406
- 'Download is only available for Piper and Kitten TTS';
2413
+ String get tts_download_unavailable => 'वॉयस डाउनलोड अनुपलब्ध';
2414
2415
@override
2409
- String get tts_download_no_audio => 'No audio available to download yet';
2416
+ String get tts_download_no_audio =>
2417
+ 'डाउनलोड करने के लिए कोई जनरेटेड ऑडियो नहीं है';
2418
2419
@override
2412
- String get tts_download_success => 'Audio saved';
2420
+ String get tts_download_success => 'वॉयस ऑडियो सफलतापूर्वक सहेजा गया';
2421
2422
@override
2415
- String get return_to_chat => 'Return to chat';
2423
+ String get return_to_chat => 'चैट पर लौटें';
2424
2425
@override
2418
- String get return_to_temp_chat => 'Return to temporary chat';
2426
+ String get return_to_temp_chat => 'अस्थायी चैट पर लौटें';
2427
2428
@override
2421
- String get insert_saved_message => 'Insert saved message';
2429
+ String get insert_saved_message => 'सहेजा गया संदेश डालें';
2430
2431
@override
2432
String get insert_saved_message_desc =>
2425
- 'Choose a saved message to add to your input';
2433
+ 'अपने सहेजे गए संदेशों का एक अंश चैट में जोड़ें';
2434
2435
@override
2428
- String get model_info => 'Model info';
2436
+ String get model_info => 'मॉडल की जानकारी';
2437
2438
@override
2431
- String get model_name => 'Model name';
2439
+ String get model_name => 'मॉडल का नाम';
2440
2441
@override
2434
- String get model_identifier => 'Identifier';
2442
+ String get model_identifier => 'मॉडल पहचानकर्ता';
2443
2444
@override
2437
- String get not_available => 'Not available';
2445
+ String get not_available => 'अनुपलब्ध';
2446
2447
@override
2440
- String get save_message_folders => 'Save message';
2448
+ String get save_message_folders => 'फ़ोल्डरों में सहेजें';
2449
2450
@override
2443
- String get remove_from_saved => 'Remove from saved';
2451
+ String get remove_from_saved => 'सहेजे गए से निकालें';
2452
2453
@override
2446
- String get message_already_saved => 'Saved';
2454
+ String get message_already_saved => 'संदेश पहले से ही सहेजा गया है';
2455
2456
@override
2449
- String get stream_ttft => 'Time to first token';
2457
+ String get stream_ttft => 'पहले टोकन तक का समय';
2458
2459
@override
2452
- String get stream_tokens_per_sec => 'Tokens per second';
2460
+ String get stream_tokens_per_sec => 'टोकन प्रति सेकंड';
2461
2462
@override
2455
- String get stream_stop_reason => 'Stop reason';
2463
+ String get stream_stop_reason => 'रुकने का कारण';
2464
2465
@override
2458
- String get stream_input_tokens => 'Input tokens';
2466
+ String get stream_input_tokens => 'इनपुट टोकन';
2467
2468
@override
2461
- String get stream_output_tokens => 'Output tokens';
2469
+ String get stream_output_tokens => 'आउटपुट टोकन';
2470
2471
@override
2464
- String get stream_generation_time => 'Generation time';
2472
+ String get stream_generation_time => 'जेनरेशन का समय';
2473
2474
@override
2467
- String get attach_image => 'Image';
2475
+ String get attach_image => 'छवि संलग्न करें';
2476
2477
@override
2470
- String get attach_text_document => 'Text document';
2478
+ String get attach_text_document => 'पाठ दस्तावेज़ संलग्न करें';
2479
2480
@override
2473
- String get add_attachment => 'Add attachment';
2481
+ String get add_attachment => 'संलग्नक जोड़ें';
2482
2483
@override
2476
- String get photo_permission_denied =>
2477
- 'Photo access is required to attach images';
2484
+ String get photo_permission_denied => 'फ़ोटो अनुमति अस्वीकृत';
2485
2486
@override
2480
- String get characters_label => 'Characters';
2487
+ String get characters_label => 'वर्ण (Characters)';
2488
2489
@override
2483
- String get exit_temporary_chat_title => 'Exit temporary chat?';
2490
+ String get exit_temporary_chat_title => 'अस्थायी चैट से बाहर निकलें?';
2491
2492
@override
2493
String get exit_temporary_chat_body =>
2487
- 'This will discard the current temporary chat and return to a new chat.';
2494
+ 'यह वर्तमान वार्तालाप को स्थायी रूप से हटा देगा। क्या आप जारी रखना चाहते हैं?';
2495
2496
@override
2497
String get saved_message_temp_snap_unavailable =>
2491
- 'This message was saved from a temporary chat and can\'t be opened in its original conversation.';
2498
+ 'अस्थायी चैट में संदेश स्नैपशॉट उपलब्ध नहीं हैं';
2499
2500
@override
2494
- String get filter_title => 'Filter';
2501
+ String get filter_title => 'चैट फ़िल्टर करें';
2502
2503
@override
2497
- String get filter_pinned => 'Pinned';
2504
+ String get filter_pinned => 'पिन किया गया';
2505
2506
@override
2500
- String get filter_archived => 'Archived';
2507
+ String get filter_archived => 'अभिलेखागार (Archived)';
2508
2509
@override
2503
- String get filter_temp_chats => 'Temporary chats';
2510
+ String get filter_temp_chats => 'अस्थायी चैट';
2511
2512
@override
2506
- String get filter_user_messages => 'User messages';
2513
+ String get filter_user_messages => 'उपयोगकर्ता संदेश';
2514
2515
@override
2509
- String get filter_assistant_messages => 'Assistant messages';
2516
+ String get filter_assistant_messages => 'सहायक संदेश';
2517
2518
@override
2512
- String get archive_chat => 'Archive';
2519
+ String get archive_chat => 'चैट को आर्काइव करें';
2520
2521
@override
2515
- String get unarchive_chat => 'Unarchive';
2522
+ String get unarchive_chat => 'चैट को अनआर्काइव करें';
2523
2524
@override
2525
String conversation_message_count(int count) {
2519
- String _temp0 = intl.Intl.pluralLogic(
2520
- count,
2521
- locale: localeName,
2522
- other: '$count messages',
2523
- one: '1 message',
2524
- );
2525
- return '$_temp0';
2526
+ return '$count संदेश';
2527
}
2528
2529
@override
2530
String conversation_character_count(int count) {
2530
- return '$count chars';
2531
+ return '$count वर्ण';
2532
}
2533
2534
@override
2534
- String get generate_title_with_ai => 'Generate with AI';
2535
+ String get generate_title_with_ai => 'एआई के साथ शीर्षक जनरेट करें';
2536
2537
@override
2537
- String get generating_title => 'Generating...';
2538
+ String get generating_title => 'शीर्षक जनरेट किया जा रहा है...';
2539
2540
@override
2540
- String get generate_title_failed => 'Could not generate a title';
2541
+ String get generate_title_failed => 'शीर्षक जनरेट नहीं किया जा सका';
2542
2543
@override
2543
- String get lm_studio_model_browser_title => 'Browse models';
2544
+ String get lm_studio_model_browser_title => 'मॉडल ब्राउज़र';
2545
2546
@override
2546
- String get lm_studio_model_search_hint => 'Search models by name or author…';
2547
+ String get lm_studio_model_search_hint => 'मॉडल खोजें...';
2548
2549
@override
2549
- String get lm_studio_staff_picks => 'Staff picks';
2550
+ String get lm_studio_staff_picks => 'स्टाफ की पसंद';
2551
2552
@override
2552
- String get lm_studio_community_models => 'Community models';
2553
+ String get lm_studio_community_models => 'सामुदायिक मॉडल';
2554
2555
@override
2555
- String get lm_studio_no_models => 'No models found';
2556
+ String get lm_studio_no_models => 'कोई मॉडल नहीं मिला';
2557
2558
@override
2559
String lm_studio_models_count(int count) {
2559
- return '$count models';
2560
+ return '$count मॉडल';
2561
}
2562
2563
@override
2563
- String get lm_studio_browse_models => 'Browse & download';
2564
+ String get lm_studio_browse_models => 'LM Studio पर मॉडल ब्राउज़ करें';
2565
2566
@override
2566
- String get lm_studio_model_search => 'LMS Model Search';
2567
+ String get lm_studio_model_search => 'मॉडल खोज';
2568
2569
@override
2569
- String get lm_studio_downloads_title => 'Downloads';
2570
+ String get lm_studio_downloads_title => 'डाउनलोड';
2571
2572
@override
2572
- String get lm_studio_choose_quant => 'Choose a download option';
2573
+ String get lm_studio_choose_quant => 'क्वांटाइजेशन चुनें';
2574
2575
@override
2575
- String get lm_studio_use_default_quant => 'Use default';
2576
+ String get lm_studio_use_default_quant =>
2577
+ 'डिफ़ॉल्ट क्वांटाइजेशन का उपयोग करें';
2578
2579
@override
2578
- String get lm_studio_recommended => 'Recommended';
2580
+ String get lm_studio_recommended => 'अनुशंसित';
2581
2582
@override
2581
- String get lm_studio_clear_downloads => 'Clear finished';
2583
+ String get lm_studio_clear_downloads => 'पूर्ण डाउनलोड साफ़ करें';
2584
2585
@override
2584
- String get lm_studio_no_downloads => 'No downloads yet';
2586
+ String get lm_studio_no_downloads => 'कोई सक्रिय डाउनलोड नहीं';
2587
2588
@override
2589
String get lm_studio_downloads_disclaimer =>
2588
- 'Downloads run on the LM Studio host. Pausing, stopping, and deleting models must be done on that computer — not from this app.';
2590
+ 'मॉडल डाउनलोड सीधे Hugging Face से किए जाते हैं।';
2591
2592
@override
2591
- String get lm_studio_staff_pick => 'Staff pick';
2593
+ String get lm_studio_staff_pick => 'स्टाफ की विशेष पसंद';
2594
2595
@override
2594
- String get lm_studio_params => 'PARAMS';
2596
+ String get lm_studio_params => 'पैरामीटर';
2597
2598
@override
2597
- String get lm_studio_arch => 'ARCH';
2599
+ String get lm_studio_arch => 'आर्किटेक्चर';
2600
2601
@override
2600
- String get lm_studio_domain => 'DOMAIN';
2602
+ String get lm_studio_domain => 'डोमेन';
2603
2604
@override
2603
- String get lm_studio_format => 'FORMAT';
2605
+ String get lm_studio_format => 'प्रारूप (Format)';
2606
2607
@override
2606
- String get lm_studio_vision => 'Vision';
2608
+ String get lm_studio_vision => 'विज़न (Vision)';
2609
2610
@override
2609
- String get lm_studio_tool_use => 'Tool use';
2611
+ String get lm_studio_tool_use => 'टूल का उपयोग';
2612
2613
@override
2612
- String get lm_studio_reasoning => 'Reasoning';
2614
+ String get lm_studio_reasoning => 'तर्क (Reasoning)';
2615
2616
@override
2615
- String get lm_studio_download_options => 'Download options';
2617
+ String get lm_studio_download_options => 'डाउनलोड विकल्प';
2618
2619
@override
2618
- String get lm_studio_download => 'Download';
2620
+ String get lm_studio_download => 'डाउनलोड करें';
2621
2622
@override
2623
String lm_studio_download_size(String size) {
2622
- return 'Download $size';
2624
+ return 'डाउनलोड का आकार';
2625
}
2626
2627
@override
2628
String lm_studio_downloading_percent(int percent) {
2627
- return 'Downloading $percent%';
2629
+ return 'डाउनलोड हो रहा है: $percent%';
2630
}
2631
2632
@override
2633
String get lm_studio_readme_unavailable =>
2632
- 'README not available for this model.';
2634
+ 'इस मॉडल के लिए README अनुपलब्ध है।';
2635
2636
@override
2635
- String get lm_studio_full_gpu_offload => 'Full GPU offload possible';
2637
+ String get lm_studio_full_gpu_offload => 'पूर्ण GPU ऑफलोड संभव';
2638
2639
@override
2638
- String get lm_studio_partial_gpu_offload => 'Partial GPU offload possible';
2640
+ String get lm_studio_partial_gpu_offload => 'आंशिक GPU ऑफलोड संभव';
2641
2642
@override
2641
- String get lm_studio_likely_too_large => 'Likely too large';
2643
+ String get lm_studio_likely_too_large => 'संभवतः बहुत बड़ा है';
2644
2645
@override
2644
- String get lm_studio_available_ram_gb => 'Available RAM (GB, optional)';
2646
+ String get lm_studio_available_ram_gb => 'उपलब्ध रैम (GB, वैकल्पिक)';
2647
2648
@override
2647
- String get lm_studio_available_vram_gb => 'Available VRAM (GB, optional)';
2649
+ String get lm_studio_available_vram_gb => 'उपलब्ध वीराम (GB, वैकल्पिक)';
2650
2651
@override
2650
- String get lm_studio_memory_settings_title => 'Memory for recommendations';
2652
+ String get lm_studio_memory_settings_title => 'सिफारिशों के लिए मेमोरी';
2653
2654
@override
2655
String get lm_studio_memory_settings_desc =>
2654
- 'Used to estimate whether models fit on your machine in the model browser.';
2656
+ 'मॉडल ब्राउज़र में यह अनुमान लगाने के लिए उपयोग किया जाता है कि क्या मॉडल आपकी मशीन में फिट होंगे।';
2657
2658
@override
2657
- String get think_button_label => 'Think';
2659
+ String get think_button_label => 'सोचें';
2660
2661
@override
2660
- String get reasoning_effort_low => 'Low';
2662
+ String get reasoning_effort_low => 'कम';
2663
2664
@override
2663
- String get reasoning_effort_medium => 'Medium';
2665
+ String get reasoning_effort_medium => 'मध्यम';
2666
2667
@override
2666
- String get reasoning_effort_high => 'High';
2668
+ String get reasoning_effort_high => 'उच्च';
2669
+
2670
+ @override
2671
+ String get could_not_read_file => 'फ़ाइल पढ़ी नहीं जा सकी';
2672
+
2673
+ @override
2674
+ String get server_offline => 'सर्वर ऑफ़लाइन';
2675
+
2676
+ @override
2677
+ String get could_not_establish_connection =>
2678
+ 'सर्वर से कनेक्शन स्थापित नहीं किया जा सका। कृपया जांचें कि क्या आपका सर्वर चल रहा है और होस्ट/पोर्ट सेटिंग्स सही हैं।';
2679
+
2680
+ @override
2681
+ String get retry_connection => 'कनेक्शन का पुनः प्रयास करें';
2682
+
2683
+ @override
2684
+ String get tokens_label => 'टोकन';
2685
+
2686
+ @override
2687
+ String get enter_context_length => 'संदर्भ की लंबाई दर्ज करें...';
2688
}
lib/l10n/app_localizations_it.dart
+247
-224
@@ -264,152 +264,156 @@ class AppLocalizationsIt extends AppLocalizations {
264
265
@override
266
String get delete_builtin_persona_body =>
267
- 'This is a built-in persona. You can restore it later from Settings.';
267
+ 'Questo è un personaggio predefinito. Puoi ripristinarlo in seguito dalle Impostazioni.';
268
269
@override
270
- String get restore_builtin_personas => 'Restore default personas';
270
+ String get restore_builtin_personas => 'Ripristina personaggi predefiniti';
271
272
@override
273
String get restore_builtin_personas_desc =>
274
- 'Re-add any built-in personas you\'ve deleted';
274
+ 'Aggiungi di nuovo i personaggi predefiniti che hai eliminato';
275
276
@override
277
- String get restore_builtin_personas_success => 'Default personas restored';
277
+ String get restore_builtin_personas_success =>
278
+ 'Personaggi predefiniti ripristinati';
279
280
@override
280
- String get clear_personas => 'Clear personas';
281
+ String get clear_personas => 'Cancella personaggi';
282
283
@override
283
- String get enable_image_compression => 'Compress images before sending';
284
+ String get enable_image_compression => 'Comprimi immagini prima di inviare';
285
286
@override
287
String get enable_image_compression_desc =>
287
- 'Resize and compress attached images so uploads stay within server limits';
288
+ 'Ridimensiona e comprimi le immagini allegate affinché i caricamenti rimangano entro i limiti del server';
289
290
@override
290
- String get image_compression_level => 'Compression aggressiveness';
291
+ String get image_compression_level => 'Intensità di compressione';
292
293
@override
294
String get image_compression_level_desc =>
294
- 'Higher aggressiveness produces smaller uploads at lower quality';
295
+ 'Un\'intensità maggiore produce file più piccoli con qualità inferiore';
296
297
@override
297
- String get image_compression_level_low => 'Low';
298
+ String get image_compression_level_low => 'Bassa';
299
300
@override
300
- String get image_compression_level_medium => 'Medium';
301
+ String get image_compression_level_medium => 'Media';
302
303
@override
303
- String get image_compression_level_high => 'High';
304
+ String get image_compression_level_high => 'Alta';
305
306
@override
306
- String get sort_models_tooltip => 'Sort models';
307
+ String get sort_models_tooltip => 'Ordina modelli';
308
309
@override
309
- String get sort_by_favorites => 'Favorites first';
310
+ String get sort_by_favorites => 'Preferiti prima';
311
312
@override
312
- String get sort_by_name => 'Name (A-Z)';
313
+ String get sort_by_name => 'Nome (A-Z)';
314
315
@override
315
- String get sort_by_size_smallest => 'Size (smallest first)';
316
+ String get sort_by_size_smallest => 'Dimensione (più piccolo prima)';
317
318
@override
318
- String get sort_by_size_largest => 'Size (largest first)';
319
+ String get sort_by_size_largest => 'Dimensione (più grande prima)';
320
321
@override
321
- String get sort_by_context_length => 'Context length';
322
+ String get sort_by_context_length => 'Lunghezza del contesto';
323
324
@override
325
String bulk_ai_rename_progress(int done, int total) {
325
- return 'Renaming $done/$total...';
326
+ return 'Ridenominazione in corso $done/$total...';
327
}
328
329
@override
330
String selected_count(int count) {
330
- return '$count selected';
331
+ return '$count selezionati';
332
}
333
334
@override
334
- String get ai_rename_tooltip => 'Rename selected with AI';
335
+ String get ai_rename_tooltip => 'Rinomina selezionati con l\'IA';
336
337
@override
337
- String get new_chat_in_folder_tooltip => 'New chat in this folder';
338
+ String get new_chat_in_folder_tooltip => 'Nuova chat in questa cartella';
339
340
@override
341
String total_tokens_count(int count) {
341
- return '$count tokens';
342
+ return '$count token';
343
}
344
345
@override
345
- String get smart_replies_use_persona => 'Use persona in smart replies';
346
+ String get smart_replies_use_persona =>
347
+ 'Usa personaggio nelle risposte intelligenti';
348
349
@override
350
String get smart_replies_use_persona_desc =>
349
- 'Suggested replies match the tone of the active persona instead of a generic assistant';
351
+ 'Le risposte suggerite corrispondono al tono del personaggio attivo invece di un assistente generico';
352
353
@override
352
- String get keep_persona_on_new_chat => 'Keep persona on new chat';
354
+ String get keep_persona_on_new_chat =>
355
+ 'Mantieni personaggio con una nuova chat';
356
357
@override
358
String get keep_persona_on_new_chat_desc =>
356
- 'Don\'t clear the selected persona(s) after starting a new chat';
359
+ 'Non cancellare la selezione del personaggio all\'inizio di una nuova chat';
360
361
@override
359
- String get role_swap_button_enabled => 'Show role-swap button';
362
+ String get role_swap_button_enabled => 'Mostra pulsante cambio ruolo';
363
364
@override
365
String get role_swap_button_enabled_desc =>
363
- 'Show a button in the chat input to send your message as the assistant instead of the user, without generating a response';
366
+ 'Mostra un pulsante nell\'input di chat per inviare il tuo messaggio con il ruolo assistente invece di utente, senza generare risposte';
367
368
@override
366
- String get send_as_user_tooltip => 'Send as user';
369
+ String get send_as_user_tooltip => 'Invia come utente';
370
371
@override
369
- String get send_as_assistant_tooltip => 'Send as assistant (no response)';
372
+ String get send_as_assistant_tooltip =>
373
+ 'Invia come assistente (nessuna risposta)';
374
375
@override
372
- String get insert_without_generating_tooltip => 'Insert without generating';
376
+ String get insert_without_generating_tooltip => 'Inserisci senza generare';
377
378
@override
375
- String get token_usage_title => 'Token Usage';
379
+ String get token_usage_title => 'Utilizzo dei Token';
380
381
@override
378
- String get total_tokens_label => 'Tokens used';
382
+ String get total_tokens_label => 'Token usati';
383
384
@override
381
- String get usage_percent_label => 'Context used';
385
+ String get usage_percent_label => 'Contesto usato';
386
387
@override
384
- String get export_choice_title => 'Export';
388
+ String get export_choice_title => 'Esporta';
389
390
@override
387
- String get export_choice_body => 'How would you like to export this?';
391
+ String get export_choice_body => 'Come desideri esportare?';
392
393
@override
390
- String get copy_to_clipboard => 'Copy to Clipboard';
394
+ String get copy_to_clipboard => 'Copia negli appunti';
395
396
@override
397
String bulk_export_conversations_success(int count) {
394
- return 'Exported $count conversations';
398
+ return 'Esportate $count conversazioni';
399
}
400
401
@override
398
- String get bulk_ai_rename_confirm_title => 'Rename with AI?';
402
+ String get bulk_ai_rename_confirm_title => 'Rinominare con l\'IA?';
403
404
@override
405
String bulk_ai_rename_confirm_body(int count) {
402
- return 'This will ask the AI to generate a new title for each of the $count selected conversations, replacing their current titles. This can take a while and cannot be undone.';
406
+ return 'Questo chiederà all\'IA di generare un nuovo titolo per ciascuna delle $count conversazioni selezionate, sostituendo i titoli attuali. Questa operazione può richiedere del tempo e non può essere annullata.';
407
}
408
409
@override
406
- String get sort_by_modified_date => 'Last modified';
410
+ String get sort_by_modified_date => 'Ultima modifica';
411
412
@override
409
- String get sort_by_created_date => 'Date created';
413
+ String get sort_by_created_date => 'Data di creazione';
414
415
@override
412
- String get sort_title => 'Sort';
416
+ String get sort_title => 'Ordina';
417
418
@override
419
String get clear_conversation_title => 'Conversazioni chiare?';
@@ -620,14 +624,15 @@ class AppLocalizationsIt extends AppLocalizations {
624
String get enable_smart_reply => 'Risposte intelligenti sul dispositivo';
625
626
@override
623
- String get ai_user_response_enabled => 'AI user message (hold send)';
627
+ String get ai_user_response_enabled =>
628
+ 'Messaggio utente IA (tieni premuto invia)';
629
630
@override
631
String get ai_user_response_enabled_desc =>
627
- 'Hold the send button for 3 seconds to have the AI write and send your next message';
632
+ 'Tieni premuto il pulsante di invio per 3 secondi per consentire all\'IA di scrivere e inviare il tuo prossimo messaggio';
633
634
@override
630
- String get ai_user_response_tooltip => 'Generate user message with AI';
635
+ String get ai_user_response_tooltip => 'Genera messaggio utente con l\'IA';
636
637
@override
638
String get streaming_responses => 'Risposte in streaming';
@@ -643,14 +648,15 @@ class AppLocalizationsIt extends AppLocalizations {
648
649
@override
650
String get show_system_messages_desc =>
646
- 'When no persona is selected, send a default assistant system prompt with each request';
651
+ 'Quando nessun personaggio è selezionato, invia un prompt di sistema dell\'assistente predefinito con ogni richiesta';
652
653
@override
649
- String get show_system_messages_in_chat => 'Show System Messages in Chat';
654
+ String get show_system_messages_in_chat =>
655
+ 'Mostra messaggi di sistema in chat';
656
657
@override
658
String get show_system_messages_in_chat_desc =>
653
- 'Display system messages (e.g. from an imported backup) as visible bubbles in the conversation';
659
+ 'Visualizza i messaggi di sistema (es. da un backup importato) come bolle visibili nella conversazione';
660
661
@override
662
String get haptic_feedback => 'Feedback aptico';
@@ -708,11 +714,11 @@ class AppLocalizationsIt extends AppLocalizations {
714
String get select_persona => 'Seleziona Persona';
715
716
@override
711
- String get manage_personas => 'Manage personas';
717
+ String get manage_personas => 'Gestisci personaggi';
718
719
@override
720
String get personas_combine_hint =>
715
- 'Select multiple personas in chat to stack their system prompts.';
721
+ 'I personaggi selezionati verranno combinati';
722
723
@override
724
String get start_conversation => 'Avvia una conversazione';
@@ -1709,28 +1715,30 @@ class AppLocalizationsIt extends AppLocalizations {
1715
}
1716
1717
@override
1712
- String get unload_all_models => 'Unload all';
1718
+ String get unload_all_models => 'Scarica tutti i modelli';
1719
1720
@override
1721
String loaded_models_count(int count) {
1716
- return '$count loaded';
1722
+ return '$count modelli caricati';
1723
}
1724
1725
@override
1720
- String get all_models_unloaded => 'All models unloaded';
1726
+ String get all_models_unloaded => 'Tutti i modelli scaricati';
1727
1728
@override
1723
- String get branch_chat => 'Branch chat';
1729
+ String get branch_chat => 'Crea ramo chat';
1730
1731
@override
1726
- String get branch_chat_desc => 'Start a new conversation from this message';
1732
+ String get branch_chat_desc =>
1733
+ 'Crea una nuova chat a partire da questo messaggio';
1734
1735
@override
1729
- String get edit_assistant_message_desc => 'Edit the assistant response text.';
1736
+ String get edit_assistant_message_desc =>
1737
+ 'Modifica il contenuto del messaggio dell\'assistente';
1738
1739
@override
1732
- String switch_to_model(String modelName) {
1733
- return 'Switch to $modelName';
1740
+ String switch_to_model(String modelName, Object model) {
1741
+ return 'Passa al modello $model';
1742
}
1743
1744
@override
@@ -2172,199 +2180,199 @@ class AppLocalizationsIt extends AppLocalizations {
2180
String get tool_status_failed => 'Failed';
2181
2182
@override
2175
- String get model_favorite_toggle => 'Toggle favorite';
2183
+ String get model_favorite_toggle => 'Attiva/disattiva preferito';
2184
2185
@override
2178
- String get model_note_label => 'Note';
2186
+ String get model_note_label => 'Nota';
2187
2188
@override
2181
- String get model_note_hint => 'Add a note about this model…';
2189
+ String get model_note_hint =>
2190
+ 'Aggiungi una nota privata per questo modello...';
2191
2192
@override
2184
- String get unload_models_before_load =>
2185
- 'Unload all models before loading a new one';
2193
+ String get unload_models_before_load => 'Scarica modelli prima di caricare';
2194
2195
@override
2196
String get temp_chat_keyboard_incognito =>
2189
- 'Incognito keyboard in temporary chat';
2197
+ 'Tastiera in incognito per chat temporanee';
2198
2199
@override
2200
String get temp_chat_keyboard_incognito_desc =>
2193
- 'Disables keyboard learning and suggestions in temporary chats (e.g. SwiftKey incognito).';
2201
+ 'Richiedi alla tastiera del sistema di non salvare la cronologia di digitazione durante le chat temporanee';
2202
2203
@override
2196
- String get resume_last_chat => 'Resume last chat on launch';
2204
+ String get resume_last_chat => 'Riprendi l\'ultima chat';
2205
2206
@override
2207
String get resume_last_chat_desc =>
2200
- 'Restore your last open conversation when reopening the app.';
2208
+ 'Apri automaticamente la tua ultima conversazione attiva all\'avvio';
2209
2210
@override
2203
- String get export_all_data => 'Export all data';
2211
+ String get export_all_data => 'Esporta tutti i dati';
2212
2213
@override
2206
- String get import_all_data => 'Import all data';
2214
+ String get import_all_data => 'Importa tutti i dati';
2215
2216
@override
2209
- String get export_data_success => 'Backup exported successfully';
2217
+ String get export_data_success => 'Dati esportati con successo';
2218
2219
@override
2212
- String get import_data_success => 'Backup imported successfully';
2220
+ String get import_data_success => 'Dati importati con successo';
2221
2222
@override
2223
String import_data_failed(String error) {
2216
- return 'Failed to import backup: $error';
2224
+ return 'Impossibile importare i dati';
2225
}
2226
2227
@override
2228
String get import_data_confirm =>
2221
- 'Import conversations and custom personas from this backup? Existing items with the same IDs will be updated.';
2229
+ 'Questo sostituirà tutti i dati attuali con i dati importati. Continuare?';
2230
2231
@override
2232
String get import_settings_confirm =>
2225
- 'Replace current settings with the imported backup?';
2233
+ 'Questo sostituirà le tue impostazioni attuali con quelle importate. Continuare?';
2234
2235
@override
2228
- String get export_conversations => 'Export conversations';
2236
+ String get export_conversations => 'Esporta conversazioni';
2237
2238
@override
2231
- String get import_conversations => 'Import conversations';
2239
+ String get import_conversations => 'Importa conversazioni';
2240
2241
@override
2234
- String get export_personas => 'Export personas';
2242
+ String get export_personas => 'Esporta personaggi';
2243
2244
@override
2237
- String get import_personas => 'Import personas';
2245
+ String get import_personas => 'Importa personaggi';
2246
2247
@override
2240
- String get export_settings => 'Export settings';
2248
+ String get export_settings => 'Esporta impostazioni';
2249
2250
@override
2243
- String get import_settings => 'Import settings';
2251
+ String get import_settings => 'Importa impostazioni';
2252
2253
@override
2246
- String get export_all_zip => 'Export all (ZIP)';
2254
+ String get export_all_zip => 'Esporta tutto (ZIP)';
2255
2256
@override
2249
- String get import_all_zip => 'Import all (ZIP)';
2257
+ String get import_all_zip => 'Importa tutto (ZIP)';
2258
2259
@override
2252
- String get duplicate_chat => 'Duplicate chat';
2260
+ String get duplicate_chat => 'Duplica chat';
2261
2262
@override
2255
- String get duplicate_chat_success => 'Chat duplicated';
2263
+ String get duplicate_chat_success => 'Chat duplicata con successo';
2264
2265
@override
2258
- String get move_to_folder => 'Move to folder';
2266
+ String get move_to_folder => 'Sposta nella cartella';
2267
2268
@override
2261
- String get remove_from_folder => 'Remove from folder';
2269
+ String get remove_from_folder => 'Rimuovi dalla cartella';
2270
2271
@override
2264
- String get create_folder => 'Create folder';
2272
+ String get create_folder => 'Crea cartella';
2273
2274
@override
2267
- String get new_folder => 'New folder';
2275
+ String get new_folder => 'Nuova cartella';
2276
2277
@override
2270
- String get folder_name_hint => 'Folder name';
2278
+ String get folder_name_hint => 'Inserisci il nome della cartella...';
2279
2280
@override
2273
- String get all_chats => 'All';
2281
+ String get all_chats => 'Tutte le chat';
2282
2283
@override
2276
- String get unfiled_chats => 'Unfiled';
2284
+ String get unfiled_chats => 'Chat non archiviate';
2285
2286
@override
2279
- String get create => 'Create';
2287
+ String get create => 'Crea';
2288
2289
@override
2282
- String get server_path_prefix_label => 'API path prefix';
2290
+ String get server_path_prefix_label => 'Prefisso percorso server';
2291
2292
@override
2285
- String get server_path_prefix_hint => '/your-secret-token';
2293
+ String get server_path_prefix_hint =>
2294
+ 'Prefisso opzionale per i percorsi dell\'API del server (es. /v1)';
2295
2296
@override
2288
- String get search_message_contents => 'Search message contents';
2297
+ String get search_message_contents => 'Cerca contenuto dei messaggi...';
2298
2299
@override
2291
- String get message_search_results => 'Message matches';
2300
+ String get message_search_results => 'Risultati ricerca messaggi';
2301
2302
@override
2294
- String get saved_messages_title => 'Saved Messages';
2303
+ String get saved_messages_title => 'Messaggi Salvati';
2304
2305
@override
2297
- String get nav_saved_messages => 'Saved Messages';
2306
+ String get nav_saved_messages => 'Messaggi salvati';
2307
2308
@override
2300
- String get saved_messages_empty =>
2301
- 'No saved messages yet. Bookmark a message from its options menu.';
2309
+ String get saved_messages_empty => 'Ancora nessun messaggio salvato';
2310
2311
@override
2304
- String get save_message => 'Save message';
2312
+ String get save_message => 'Salva messaggio';
2313
2314
@override
2307
- String get message_saved => 'Message saved';
2315
+ String get message_saved => 'Messaggio salvato';
2316
2317
@override
2318
String token_count(int count) {
2311
- return '$count tokens';
2319
+ return 'Token: $count';
2320
}
2321
2322
@override
2323
String estimated_token_count(int count) {
2316
- return '~$count tokens (estimated)';
2324
+ return 'Token stimati: $count';
2325
}
2326
2327
@override
2320
- String get test_tts_section_title => 'Test voice';
2328
+ String get test_tts_section_title => 'Test Sintesi Vocale';
2329
2330
@override
2323
- String get test_tts_hint => 'Enter text to hear the current TTS engine…';
2331
+ String get test_tts_hint => 'Digita qualcosa per testare la voce...';
2332
2333
@override
2326
- String get test_speak_button => 'Speak';
2334
+ String get test_speak_button => 'Parla';
2335
2336
@override
2329
- String get scroll_to_bottom => 'Scroll to bottom';
2337
+ String get scroll_to_bottom => 'Scorri fino in fondo';
2338
2339
@override
2332
- String get generate_ai_response => 'Generate AI response';
2340
+ String get generate_ai_response => 'Genera risposta IA';
2341
2342
@override
2335
- String get no_response => 'No response';
2343
+ String get no_response => 'Nessuna risposta';
2344
2345
@override
2338
- String get export => 'Export';
2346
+ String get export => 'Esporta';
2347
2348
@override
2341
- String get import => 'Import';
2349
+ String get import => 'Importa';
2350
2351
@override
2344
- String get conversations_label => 'Conversations';
2352
+ String get conversations_label => 'Conversazioni';
2353
2354
@override
2347
- String get personas_label => 'Personas';
2355
+ String get personas_label => 'Personaggi';
2356
2357
@override
2350
- String get settings_label => 'Settings';
2358
+ String get settings_label => 'Impostazioni';
2359
2360
@override
2353
- String get export_conversation => 'Export conversation';
2361
+ String get export_conversation => 'Esporta conversazione';
2362
2363
@override
2356
- String get tts_process_markdown => 'Process markdown for speech';
2364
+ String get tts_process_markdown => 'Elabora Markdown';
2365
2366
@override
2367
String get tts_process_markdown_desc =>
2360
- 'Strip formatting like **bold** before reading aloud';
2368
+ 'Rimuovi la formattazione come il **grassetto** prima della lettura ad alta voce';
2369
2370
@override
2363
- String get tts_skip_seconds => 'Skip interval';
2371
+ String get tts_skip_seconds => 'Secondi da saltare';
2372
2373
@override
2374
String get tts_skip_seconds_desc =>
2367
- 'Forward and rewind jump size during playback';
2375
+ 'Tempo per saltare avanti/indietro nel lettore vocale';
2376
2377
@override
2378
String tts_skip_seconds_value(int seconds) {
@@ -2372,307 +2380,322 @@ class AppLocalizationsIt extends AppLocalizations {
2380
}
2381
2382
@override
2375
- String get preview_system_prompts => 'Preview system prompts';
2383
+ String get preview_system_prompts => 'Anteprima prompt di sistema';
2384
2385
@override
2378
- String get welcome_message_1 => 'What can I help you with today?';
2386
+ String get welcome_message_1 => 'Ciao! Sono il tuo assistente IA locale.';
2387
2388
@override
2381
- String get welcome_message_2 => 'Ask me anything — I\'m ready when you are.';
2389
+ String get welcome_message_2 =>
2390
+ 'Chiedimi qualsiasi cosa — sono pronto quando lo sei tu.';
2391
2392
@override
2384
- String get welcome_message_3 => 'Start a conversation below.';
2393
+ String get welcome_message_3 =>
2394
+ 'I tuoi dati vengono elaborati localmente e non lasciano mai il dispositivo.';
2395
2396
@override
2387
- String get welcome_message_4 => 'Need ideas? Try one of the quick prompts.';
2397
+ String get welcome_message_4 =>
2398
+ 'Per iniziare, seleziona un modello dalla barra superiore o aggiungine uno nella gestione modelli.';
2399
2400
@override
2390
- String get temporary_chat => 'Temporary chat';
2401
+ String get temporary_chat => 'Chat temporanea';
2402
2403
@override
2393
- String get temporary_chat_desc => 'Chats aren\'t saved to history.';
2404
+ String get temporary_chat_desc =>
2405
+ 'I messaggi di questa chat non saranno salvati nella cronologia';
2406
2407
@override
2396
- String get temporary_chat_banner => 'Temporary chat — not saved to history';
2408
+ String get temporary_chat_banner =>
2409
+ 'Chat Temporanea Attiva — Non verrà salvata nella cronologia';
2410
2411
@override
2399
- String get temporary_chat_save_warning_title =>
2400
- 'Save message in temporary chat?';
2412
+ String get temporary_chat_save_warning_title => 'Salvare la chat temporanea?';
2413
2414
@override
2415
String get temporary_chat_save_warning_body =>
2404
- 'This chat is temporary and hidden from history. The saved message will still appear in Saved Messages.';
2416
+ 'Questa chat non è salvata nella cronologia. Vuoi salvarla adesso?';
2417
2418
@override
2407
- String get save_to_history => 'Save to history';
2419
+ String get save_to_history => 'Salva nella cronologia';
2420
2421
@override
2410
- String get share_conversation => 'Share conversation';
2422
+ String get share_conversation => 'Condividi conversazione';
2423
2424
@override
2413
- String get download_tts_audio => 'Download audio';
2425
+ String get download_tts_audio => 'Scarica audio vocale';
2426
2427
@override
2416
- String get tts_download_unavailable =>
2417
- 'Download is only available for Piper and Kitten TTS';
2428
+ String get tts_download_unavailable => 'Download voce non disponibile';
2429
2430
@override
2420
- String get tts_download_no_audio => 'No audio available to download yet';
2431
+ String get tts_download_no_audio => 'Nessun audio generato da scaricare';
2432
2433
@override
2423
- String get tts_download_success => 'Audio saved';
2434
+ String get tts_download_success => 'Audio vocale salvato con successo';
2435
2436
@override
2426
- String get return_to_chat => 'Return to chat';
2437
+ String get return_to_chat => 'Torna alla chat';
2438
2439
@override
2429
- String get return_to_temp_chat => 'Return to temporary chat';
2440
+ String get return_to_temp_chat => 'Torna alla chat temporanea';
2441
2442
@override
2432
- String get insert_saved_message => 'Insert saved message';
2443
+ String get insert_saved_message => 'Inserisci messaggio salvato';
2444
2445
@override
2446
String get insert_saved_message_desc =>
2436
- 'Choose a saved message to add to your input';
2447
+ 'Aggiungi un estratto dai tuoi messaggi salvati alla chat';
2448
2449
@override
2439
- String get model_info => 'Model info';
2450
+ String get model_info => 'Informazioni modello';
2451
2452
@override
2442
- String get model_name => 'Model name';
2453
+ String get model_name => 'Nome modello';
2454
2455
@override
2445
- String get model_identifier => 'Identifier';
2456
+ String get model_identifier => 'Identificatore modello';
2457
2458
@override
2448
- String get not_available => 'Not available';
2459
+ String get not_available => 'Non disponibile';
2460
2461
@override
2451
- String get save_message_folders => 'Save message';
2462
+ String get save_message_folders => 'Salva nelle cartelle';
2463
2464
@override
2454
- String get remove_from_saved => 'Remove from saved';
2465
+ String get remove_from_saved => 'Rimuovi dai salvati';
2466
2467
@override
2457
- String get message_already_saved => 'Saved';
2468
+ String get message_already_saved => 'Il messaggio è già salvato';
2469
2470
@override
2460
- String get stream_ttft => 'Time to first token';
2471
+ String get stream_ttft => 'Tempo al primo token';
2472
2473
@override
2463
- String get stream_tokens_per_sec => 'Tokens per second';
2474
+ String get stream_tokens_per_sec => 'Token al secondo';
2475
2476
@override
2466
- String get stream_stop_reason => 'Stop reason';
2477
+ String get stream_stop_reason => 'Motivo interruzione';
2478
2479
@override
2469
- String get stream_input_tokens => 'Input tokens';
2480
+ String get stream_input_tokens => 'Token di input';
2481
2482
@override
2472
- String get stream_output_tokens => 'Output tokens';
2483
+ String get stream_output_tokens => 'Token di output';
2484
2485
@override
2475
- String get stream_generation_time => 'Generation time';
2486
+ String get stream_generation_time => 'Tempo di generazione';
2487
2488
@override
2478
- String get attach_image => 'Image';
2489
+ String get attach_image => 'Allega immagine';
2490
2491
@override
2481
- String get attach_text_document => 'Text document';
2492
+ String get attach_text_document => 'Allega documento di testo';
2493
2494
@override
2484
- String get add_attachment => 'Add attachment';
2495
+ String get add_attachment => 'Aggiungi allegato';
2496
2497
@override
2487
- String get photo_permission_denied =>
2488
- 'Photo access is required to attach images';
2498
+ String get photo_permission_denied => 'Permesso foto negato';
2499
2500
@override
2491
- String get characters_label => 'Characters';
2501
+ String get characters_label => 'Caratteri';
2502
2503
@override
2494
- String get exit_temporary_chat_title => 'Exit temporary chat?';
2504
+ String get exit_temporary_chat_title => 'Uscire dalla chat temporanea?';
2505
2506
@override
2507
String get exit_temporary_chat_body =>
2498
- 'This will discard the current temporary chat and return to a new chat.';
2508
+ 'Questo eliminerà permanentemente la conversazione corrente. Continuare?';
2509
2510
@override
2511
String get saved_message_temp_snap_unavailable =>
2502
- 'This message was saved from a temporary chat and can\'t be opened in its original conversation.';
2512
+ 'I salvataggi dei messaggi non sono disponibili nelle chat temporanee';
2513
2514
@override
2505
- String get filter_title => 'Filter';
2515
+ String get filter_title => 'Filtra chat';
2516
2517
@override
2508
- String get filter_pinned => 'Pinned';
2518
+ String get filter_pinned => 'Fissate';
2519
2520
@override
2511
- String get filter_archived => 'Archived';
2521
+ String get filter_archived => 'Archiviate';
2522
2523
@override
2514
- String get filter_temp_chats => 'Temporary chats';
2524
+ String get filter_temp_chats => 'Chat temporanee';
2525
2526
@override
2517
- String get filter_user_messages => 'User messages';
2527
+ String get filter_user_messages => 'Messaggi utente';
2528
2529
@override
2520
- String get filter_assistant_messages => 'Assistant messages';
2530
+ String get filter_assistant_messages => 'Messaggi assistente';
2531
2532
@override
2523
- String get archive_chat => 'Archive';
2533
+ String get archive_chat => 'Archivia chat';
2534
2535
@override
2526
- String get unarchive_chat => 'Unarchive';
2536
+ String get unarchive_chat => 'Ripristina chat';
2537
2538
@override
2539
String conversation_message_count(int count) {
2530
- String _temp0 = intl.Intl.pluralLogic(
2531
- count,
2532
- locale: localeName,
2533
- other: '$count messages',
2534
- one: '1 message',
2535
- );
2536
- return '$_temp0';
2540
+ return '$count messaggi';
2541
}
2542
2543
@override
2544
String conversation_character_count(int count) {
2541
- return '$count chars';
2545
+ return '$count caratteri';
2546
}
2547
2548
@override
2545
- String get generate_title_with_ai => 'Generate with AI';
2549
+ String get generate_title_with_ai => 'Genera titolo con IA';
2550
2551
@override
2548
- String get generating_title => 'Generating...';
2552
+ String get generating_title => 'Generazione titolo in corso...';
2553
2554
@override
2551
- String get generate_title_failed => 'Could not generate a title';
2555
+ String get generate_title_failed => 'Impossibile generare un titolo';
2556
2557
@override
2554
- String get lm_studio_model_browser_title => 'Browse models';
2558
+ String get lm_studio_model_browser_title => 'Esplora Modelli';
2559
2560
@override
2557
- String get lm_studio_model_search_hint => 'Search models by name or author…';
2561
+ String get lm_studio_model_search_hint => 'Cerca modelli...';
2562
2563
@override
2560
- String get lm_studio_staff_picks => 'Staff picks';
2564
+ String get lm_studio_staff_picks => 'Scelte dello staff';
2565
2566
@override
2563
- String get lm_studio_community_models => 'Community models';
2567
+ String get lm_studio_community_models => 'Modelli della community';
2568
2569
@override
2566
- String get lm_studio_no_models => 'No models found';
2570
+ String get lm_studio_no_models => 'Nessun modello trovato';
2571
2572
@override
2573
String lm_studio_models_count(int count) {
2570
- return '$count models';
2574
+ return '$count modelli';
2575
}
2576
2577
@override
2574
- String get lm_studio_browse_models => 'Browse & download';
2578
+ String get lm_studio_browse_models => 'Esplora modelli su LM Studio';
2579
2580
@override
2577
- String get lm_studio_model_search => 'LMS Model Search';
2581
+ String get lm_studio_model_search => 'Ricerca modelli';
2582
2583
@override
2580
- String get lm_studio_downloads_title => 'Downloads';
2584
+ String get lm_studio_downloads_title => 'Download';
2585
2586
@override
2583
- String get lm_studio_choose_quant => 'Choose a download option';
2587
+ String get lm_studio_choose_quant => 'Scegli quantizzazione';
2588
2589
@override
2586
- String get lm_studio_use_default_quant => 'Use default';
2590
+ String get lm_studio_use_default_quant => 'Usa quantizzazione predefinita';
2591
2592
@override
2589
- String get lm_studio_recommended => 'Recommended';
2593
+ String get lm_studio_recommended => 'Consigliato';
2594
2595
@override
2592
- String get lm_studio_clear_downloads => 'Clear finished';
2596
+ String get lm_studio_clear_downloads => 'Cancella download completati';
2597
2598
@override
2595
- String get lm_studio_no_downloads => 'No downloads yet';
2599
+ String get lm_studio_no_downloads => 'Nessun download attivo';
2600
2601
@override
2602
String get lm_studio_downloads_disclaimer =>
2599
- 'Downloads run on the LM Studio host. Pausing, stopping, and deleting models must be done on that computer — not from this app.';
2603
+ 'I download dei modelli vengono effettuati direttamente da Hugging Face.';
2604
2605
@override
2602
- String get lm_studio_staff_pick => 'Staff pick';
2606
+ String get lm_studio_staff_pick => 'Scelta in evidenza';
2607
2608
@override
2605
- String get lm_studio_params => 'PARAMS';
2609
+ String get lm_studio_params => 'Parametri';
2610
2611
@override
2608
- String get lm_studio_arch => 'ARCH';
2612
+ String get lm_studio_arch => 'Architettura';
2613
2614
@override
2611
- String get lm_studio_domain => 'DOMAIN';
2615
+ String get lm_studio_domain => 'Dominio';
2616
2617
@override
2614
- String get lm_studio_format => 'FORMAT';
2618
+ String get lm_studio_format => 'Formato';
2619
2620
@override
2617
- String get lm_studio_vision => 'Vision';
2621
+ String get lm_studio_vision => 'Visione';
2622
2623
@override
2620
- String get lm_studio_tool_use => 'Tool use';
2624
+ String get lm_studio_tool_use => 'Uso strumenti';
2625
2626
@override
2623
- String get lm_studio_reasoning => 'Reasoning';
2627
+ String get lm_studio_reasoning => 'Ragionamento';
2628
2629
@override
2626
- String get lm_studio_download_options => 'Download options';
2630
+ String get lm_studio_download_options => 'Opzioni di download';
2631
2632
@override
2629
- String get lm_studio_download => 'Download';
2633
+ String get lm_studio_download => 'Scarica';
2634
2635
@override
2636
String lm_studio_download_size(String size) {
2633
- return 'Download $size';
2637
+ return 'Dimensione del download';
2638
}
2639
2640
@override
2641
String lm_studio_downloading_percent(int percent) {
2638
- return 'Downloading $percent%';
2642
+ return 'Scaricamento in corso: $percent%';
2643
}
2644
2645
@override
2646
String get lm_studio_readme_unavailable =>
2643
- 'README not available for this model.';
2647
+ 'README non disponibile per questo modello.';
2648
2649
@override
2646
- String get lm_studio_full_gpu_offload => 'Full GPU offload possible';
2650
+ String get lm_studio_full_gpu_offload => 'Offload GPU completo possibile';
2651
2652
@override
2649
- String get lm_studio_partial_gpu_offload => 'Partial GPU offload possible';
2653
+ String get lm_studio_partial_gpu_offload => 'Offload GPU parziale possibile';
2654
2655
@override
2652
- String get lm_studio_likely_too_large => 'Likely too large';
2656
+ String get lm_studio_likely_too_large => 'Probabilmente troppo grande';
2657
2658
@override
2655
- String get lm_studio_available_ram_gb => 'Available RAM (GB, optional)';
2659
+ String get lm_studio_available_ram_gb => 'RAM disponibile (GB, opzionale)';
2660
2661
@override
2658
- String get lm_studio_available_vram_gb => 'Available VRAM (GB, optional)';
2662
+ String get lm_studio_available_vram_gb => 'VRAM disponibile (GB, opzionale)';
2663
2664
@override
2661
- String get lm_studio_memory_settings_title => 'Memory for recommendations';
2665
+ String get lm_studio_memory_settings_title => 'Memoria per raccomandazioni';
2666
2667
@override
2668
String get lm_studio_memory_settings_desc =>
2665
- 'Used to estimate whether models fit on your machine in the model browser.';
2669
+ 'Usato per stimare se i modelli entrano nella memoria della tua macchina nell\'esploratore di modelli.';
2670
2671
@override
2668
- String get think_button_label => 'Think';
2672
+ String get think_button_label => 'Pensa';
2673
2674
@override
2671
- String get reasoning_effort_low => 'Low';
2675
+ String get reasoning_effort_low => 'Basso';
2676
2677
@override
2674
- String get reasoning_effort_medium => 'Medium';
2678
+ String get reasoning_effort_medium => 'Medio';
2679
2680
@override
2677
- String get reasoning_effort_high => 'High';
2681
+ String get reasoning_effort_high => 'Alto';
2682
+
2683
+ @override
2684
+ String get could_not_read_file => 'Impossibile leggere il file';
2685
+
2686
+ @override
2687
+ String get server_offline => 'Server offline';
2688
+
2689
+ @override
2690
+ String get could_not_establish_connection =>
2691
+ 'Impossibile stabilire una connessione al server. Verifica se il server è attivo e se le impostazioni host/porta sono corrette.';
2692
+
2693
+ @override
2694
+ String get retry_connection => 'Riprova connessione';
2695
+
2696
+ @override
2697
+ String get tokens_label => 'Token';
2698
+
2699
+ @override
2700
+ String get enter_context_length => 'Inserisci lunghezza del contesto...';
2701
}
lib/l10n/app_localizations_ja.dart
+234
-237
@@ -261,153 +261,149 @@ class AppLocalizationsJa extends AppLocalizations {
261
String get delete_persona_body => 'この操作は取り消せません。';
262
263
@override
264
- String get delete_builtin_persona_body =>
265
- 'This is a built-in persona. You can restore it later from Settings.';
264
+ String get delete_builtin_persona_body => 'これは組み込みのペルソナです。後で「設定」から復元できます。';
265
266
@override
268
- String get restore_builtin_personas => 'Restore default personas';
267
+ String get restore_builtin_personas => 'デフォルトのペルソナを復元';
268
269
@override
271
- String get restore_builtin_personas_desc =>
272
- 'Re-add any built-in personas you\'ve deleted';
270
+ String get restore_builtin_personas_desc => '削除した組み込みペルソナを再追加する';
271
272
@override
275
- String get restore_builtin_personas_success => 'Default personas restored';
273
+ String get restore_builtin_personas_success => 'デフォルトのペルソナが復元されました';
274
275
@override
278
- String get clear_personas => 'Clear personas';
276
+ String get clear_personas => 'ペルソナをクリア';
277
278
@override
281
- String get enable_image_compression => 'Compress images before sending';
279
+ String get enable_image_compression => '送信前に画像を圧縮';
280
281
@override
282
String get enable_image_compression_desc =>
285
- 'Resize and compress attached images so uploads stay within server limits';
283
+ '添付画像のサイズ変更と圧縮を行い、送信がサーバー制限内に収まるようにします';
284
285
@override
288
- String get image_compression_level => 'Compression aggressiveness';
286
+ String get image_compression_level => '圧縮率の強さ';
287
288
@override
291
- String get image_compression_level_desc =>
292
- 'Higher aggressiveness produces smaller uploads at lower quality';
289
+ String get image_compression_level_desc => '圧縮率が高いほど、より低画質で小さいファイルサイズになります';
290
291
@override
295
- String get image_compression_level_low => 'Low';
292
+ String get image_compression_level_low => '低';
293
294
@override
298
- String get image_compression_level_medium => 'Medium';
295
+ String get image_compression_level_medium => '中';
296
297
@override
301
- String get image_compression_level_high => 'High';
298
+ String get image_compression_level_high => '高';
299
300
@override
304
- String get sort_models_tooltip => 'Sort models';
301
+ String get sort_models_tooltip => 'モデルを並べ替え';
302
303
@override
307
- String get sort_by_favorites => 'Favorites first';
304
+ String get sort_by_favorites => 'お気に入りを優先';
305
306
@override
310
- String get sort_by_name => 'Name (A-Z)';
307
+ String get sort_by_name => '名前順 (A-Z)';
308
309
@override
313
- String get sort_by_size_smallest => 'Size (smallest first)';
310
+ String get sort_by_size_smallest => 'サイズ順 (小さい順)';
311
312
@override
316
- String get sort_by_size_largest => 'Size (largest first)';
313
+ String get sort_by_size_largest => 'サイズ順 (大きい順)';
314
315
@override
319
- String get sort_by_context_length => 'Context length';
316
+ String get sort_by_context_length => 'コンテキスト長順';
317
318
@override
319
String bulk_ai_rename_progress(int done, int total) {
323
- return 'Renaming $done/$total...';
320
+ return '名前変更中 $done/$total...';
321
}
322
323
@override
324
String selected_count(int count) {
328
- return '$count selected';
325
+ return '$count 件選択中';
326
}
327
328
@override
332
- String get ai_rename_tooltip => 'Rename selected with AI';
329
+ String get ai_rename_tooltip => 'AIで選択項目の名前を変更';
330
331
@override
335
- String get new_chat_in_folder_tooltip => 'New chat in this folder';
332
+ String get new_chat_in_folder_tooltip => 'このフォルダー内に新規チャット';
333
334
@override
335
String total_tokens_count(int count) {
339
- return '$count tokens';
336
+ return '$count トークン';
337
}
338
339
@override
343
- String get smart_replies_use_persona => 'Use persona in smart replies';
340
+ String get smart_replies_use_persona => 'スマートリプライにペルソナを使用';
341
342
@override
343
String get smart_replies_use_persona_desc =>
347
- 'Suggested replies match the tone of the active persona instead of a generic assistant';
344
+ '提案される返信が一般的なアシスタントではなく、有効なペルソナのトーンに沿ったものになります';
345
346
@override
350
- String get keep_persona_on_new_chat => 'Keep persona on new chat';
347
+ String get keep_persona_on_new_chat => '新規チャット時にペルソナを維持';
348
349
@override
353
- String get keep_persona_on_new_chat_desc =>
354
- 'Don\'t clear the selected persona(s) after starting a new chat';
350
+ String get keep_persona_on_new_chat_desc => '新しいチャットの開始時に選択したペルソナをクリアしない';
351
352
@override
357
- String get role_swap_button_enabled => 'Show role-swap button';
353
+ String get role_swap_button_enabled => 'ロール切替ボタンを表示';
354
355
@override
356
String get role_swap_button_enabled_desc =>
361
- 'Show a button in the chat input to send your message as the assistant instead of the user, without generating a response';
357
+ 'チャット入力欄に、回答を生成せずにユーザーではなくアシスタントとしてメッセージを送信できるボタンを表示します';
358
359
@override
364
- String get send_as_user_tooltip => 'Send as user';
360
+ String get send_as_user_tooltip => 'ユーザーとして送信';
361
362
@override
367
- String get send_as_assistant_tooltip => 'Send as assistant (no response)';
363
+ String get send_as_assistant_tooltip => 'アシスタントとして送信 (回答なし)';
364
365
@override
370
- String get insert_without_generating_tooltip => 'Insert without generating';
366
+ String get insert_without_generating_tooltip => '回答を生成せずに挿入';
367
368
@override
373
- String get token_usage_title => 'Token Usage';
369
+ String get token_usage_title => 'トークン使用量';
370
371
@override
376
- String get total_tokens_label => 'Tokens used';
372
+ String get total_tokens_label => '使用トークン';
373
374
@override
379
- String get usage_percent_label => 'Context used';
375
+ String get usage_percent_label => '使用されたコンテキスト';
376
377
@override
382
- String get export_choice_title => 'Export';
378
+ String get export_choice_title => 'エクスポート';
379
380
@override
385
- String get export_choice_body => 'How would you like to export this?';
381
+ String get export_choice_body => 'どのようにエクスポートしますか?';
382
383
@override
388
- String get copy_to_clipboard => 'Copy to Clipboard';
384
+ String get copy_to_clipboard => 'クリップボードにコピー';
385
386
@override
387
String bulk_export_conversations_success(int count) {
392
- return 'Exported $count conversations';
388
+ return '$count 件の会話をエクスポートしました';
389
}
390
391
@override
396
- String get bulk_ai_rename_confirm_title => 'Rename with AI?';
392
+ String get bulk_ai_rename_confirm_title => 'AIで名前を変更しますか?';
393
394
@override
395
String bulk_ai_rename_confirm_body(int count) {
400
- return 'This will ask the AI to generate a new title for each of the $count selected conversations, replacing their current titles. This can take a while and cannot be undone.';
396
+ return 'これにより、AIが選択した $count 件の会話それぞれに対して新しいタイトルを生成し、現在のタイトルを上書きします。処理には時間がかかる場合があり、元に戻すことはできません。';
397
}
398
399
@override
404
- String get sort_by_modified_date => 'Last modified';
400
+ String get sort_by_modified_date => '最終更新日';
401
402
@override
407
- String get sort_by_created_date => 'Date created';
403
+ String get sort_by_created_date => '作成日';
404
405
@override
410
- String get sort_title => 'Sort';
406
+ String get sort_title => '並べ替え';
407
408
@override
409
String get clear_conversation_title => 'チャット履歴をクリアしますか?';
@@ -616,14 +612,14 @@ class AppLocalizationsJa extends AppLocalizations {
612
String get enable_smart_reply => 'スマートリプライ';
613
614
@override
619
- String get ai_user_response_enabled => 'AI user message (hold send)';
615
+ String get ai_user_response_enabled => 'AIユーザーメッセージ (送信長押し)';
616
617
@override
618
String get ai_user_response_enabled_desc =>
623
- 'Hold the send button for 3 seconds to have the AI write and send your next message';
619
+ '送信ボタンを3秒間長押しすると、AIが次のメッセージを執筆して送信します';
620
621
@override
626
- String get ai_user_response_tooltip => 'Generate user message with AI';
622
+ String get ai_user_response_tooltip => 'AIでユーザーメッセージを生成';
623
624
@override
625
String get streaming_responses => 'ストリーミング応答';
@@ -639,14 +635,14 @@ class AppLocalizationsJa extends AppLocalizations {
635
636
@override
637
String get show_system_messages_desc =>
642
- 'When no persona is selected, send a default assistant system prompt with each request';
638
+ 'ペルソナが選択されていない場合、リクエストごとに関連するデフォルトのアシスタントシステムプロンプトを送信する';
639
640
@override
645
- String get show_system_messages_in_chat => 'Show System Messages in Chat';
641
+ String get show_system_messages_in_chat => 'チャット内にシステムメッセージを表示';
642
643
@override
644
String get show_system_messages_in_chat_desc =>
649
- 'Display system messages (e.g. from an imported backup) as visible bubbles in the conversation';
645
+ 'インポートされたバックアップなどからのシステムメッセージを、チャット画面上に吹き出しとして表示します';
646
647
@override
648
String get haptic_feedback => '触覚フィードバック';
@@ -703,11 +699,10 @@ class AppLocalizationsJa extends AppLocalizations {
699
String get select_persona => 'ペルソナを選択';
700
701
@override
706
- String get manage_personas => 'Manage personas';
702
+ String get manage_personas => 'ペルソナの管理';
703
704
@override
709
- String get personas_combine_hint =>
710
- 'Select multiple personas in chat to stack their system prompts.';
705
+ String get personas_combine_hint => '選択したペルソナは統合されます';
706
707
@override
708
String get start_conversation => 'チャットを開始しましょう';
@@ -1678,28 +1673,28 @@ class AppLocalizationsJa extends AppLocalizations {
1673
}
1674
1675
@override
1681
- String get unload_all_models => 'Unload all';
1676
+ String get unload_all_models => 'すべてのモデルをアンロード';
1677
1678
@override
1679
String loaded_models_count(int count) {
1685
- return '$count loaded';
1680
+ return '$count 個のモデルがロード済み';
1681
}
1682
1683
@override
1689
- String get all_models_unloaded => 'All models unloaded';
1684
+ String get all_models_unloaded => 'すべてのモデルがアンロードされました';
1685
1686
@override
1692
- String get branch_chat => 'Branch chat';
1687
+ String get branch_chat => 'チャットを分岐';
1688
1689
@override
1695
- String get branch_chat_desc => 'Start a new conversation from this message';
1690
+ String get branch_chat_desc => 'このメッセージから新しいチャットを作成';
1691
1692
@override
1698
- String get edit_assistant_message_desc => 'Edit the assistant response text.';
1693
+ String get edit_assistant_message_desc => 'アシスタントメッセージの内容を編集';
1694
1695
@override
1701
- String switch_to_model(String modelName) {
1702
- return 'Switch to $modelName';
1696
+ String switch_to_model(String modelName, Object model) {
1697
+ return 'モデル $model に切り替え';
1698
}
1699
1700
@override
@@ -2134,507 +2129,509 @@ class AppLocalizationsJa extends AppLocalizations {
2129
String get tool_status_failed => 'Failed';
2130
2131
@override
2137
- String get model_favorite_toggle => 'Toggle favorite';
2132
+ String get model_favorite_toggle => 'お気に入りの切り替え';
2133
2134
@override
2140
- String get model_note_label => 'Note';
2135
+ String get model_note_label => 'メモ';
2136
2137
@override
2143
- String get model_note_hint => 'Add a note about this model…';
2138
+ String get model_note_hint => 'このモデル用の非公開メモを追加...';
2139
2140
@override
2146
- String get unload_models_before_load =>
2147
- 'Unload all models before loading a new one';
2141
+ String get unload_models_before_load => 'ロード前にモデルをアンロード';
2142
2143
@override
2150
- String get temp_chat_keyboard_incognito =>
2151
- 'Incognito keyboard in temporary chat';
2144
+ String get temp_chat_keyboard_incognito => '一時的なチャットでのシークレットキーボード';
2145
2146
@override
2147
String get temp_chat_keyboard_incognito_desc =>
2155
- 'Disables keyboard learning and suggestions in temporary chats (e.g. SwiftKey incognito).';
2148
+ '一時的なチャットの実行中、システムキーボードに入力履歴を保存しないよう要求します';
2149
2150
@override
2158
- String get resume_last_chat => 'Resume last chat on launch';
2151
+ String get resume_last_chat => '前回のチャットを再開';
2152
2153
@override
2161
- String get resume_last_chat_desc =>
2162
- 'Restore your last open conversation when reopening the app.';
2154
+ String get resume_last_chat_desc => '起動時に自動的に前回の有効な会話を開く';
2155
2156
@override
2165
- String get export_all_data => 'Export all data';
2157
+ String get export_all_data => 'すべてのデータをエクスポート';
2158
2159
@override
2168
- String get import_all_data => 'Import all data';
2160
+ String get import_all_data => 'すべてのデータをインポート';
2161
2162
@override
2171
- String get export_data_success => 'Backup exported successfully';
2163
+ String get export_data_success => 'データのエクスポートに成功しました';
2164
2165
@override
2174
- String get import_data_success => 'Backup imported successfully';
2166
+ String get import_data_success => 'データのインポートに成功しました';
2167
2168
@override
2169
String import_data_failed(String error) {
2178
- return 'Failed to import backup: $error';
2170
+ return 'データのインポートに失敗しました';
2171
}
2172
2173
@override
2174
String get import_data_confirm =>
2183
- 'Import conversations and custom personas from this backup? Existing items with the same IDs will be updated.';
2175
+ 'これにより、現在のすべてのデータがインポートされたデータに置き換わります。続行しますか?';
2176
2177
@override
2178
String get import_settings_confirm =>
2187
- 'Replace current settings with the imported backup?';
2179
+ 'これにより、現在の設定がインポートされた設定に置き換わります。続行しますか?';
2180
2181
@override
2190
- String get export_conversations => 'Export conversations';
2182
+ String get export_conversations => '会話をエクスポート';
2183
2184
@override
2193
- String get import_conversations => 'Import conversations';
2185
+ String get import_conversations => '会話をインポート';
2186
2187
@override
2196
- String get export_personas => 'Export personas';
2188
+ String get export_personas => 'ペルソナをエクスポート';
2189
2190
@override
2199
- String get import_personas => 'Import personas';
2191
+ String get import_personas => 'ペルソナをインポート';
2192
2193
@override
2202
- String get export_settings => 'Export settings';
2194
+ String get export_settings => '設定をエクスポート';
2195
2196
@override
2205
- String get import_settings => 'Import settings';
2197
+ String get import_settings => '設定をインポート';
2198
2199
@override
2208
- String get export_all_zip => 'Export all (ZIP)';
2200
+ String get export_all_zip => 'すべてエクスポート (ZIP)';
2201
2202
@override
2211
- String get import_all_zip => 'Import all (ZIP)';
2203
+ String get import_all_zip => 'すべてインポート (ZIP)';
2204
2205
@override
2214
- String get duplicate_chat => 'Duplicate chat';
2206
+ String get duplicate_chat => 'チャットを複製';
2207
2208
@override
2217
- String get duplicate_chat_success => 'Chat duplicated';
2209
+ String get duplicate_chat_success => 'チャットの複製に成功しました';
2210
2211
@override
2220
- String get move_to_folder => 'Move to folder';
2212
+ String get move_to_folder => 'フォルダーに移動';
2213
2214
@override
2223
- String get remove_from_folder => 'Remove from folder';
2215
+ String get remove_from_folder => 'フォルダーから削除';
2216
2217
@override
2226
- String get create_folder => 'Create folder';
2218
+ String get create_folder => 'フォルダーを作成';
2219
2220
@override
2229
- String get new_folder => 'New folder';
2221
+ String get new_folder => '新規フォルダー';
2222
2223
@override
2232
- String get folder_name_hint => 'Folder name';
2224
+ String get folder_name_hint => 'フォルダー名を入力...';
2225
2226
@override
2235
- String get all_chats => 'All';
2227
+ String get all_chats => 'すべてのチャット';
2228
2229
@override
2238
- String get unfiled_chats => 'Unfiled';
2230
+ String get unfiled_chats => '未分類のチャット';
2231
2232
@override
2241
- String get create => 'Create';
2233
+ String get create => '作成';
2234
2235
@override
2244
- String get server_path_prefix_label => 'API path prefix';
2236
+ String get server_path_prefix_label => 'サーバーパス接頭辞';
2237
2238
@override
2247
- String get server_path_prefix_hint => '/your-secret-token';
2239
+ String get server_path_prefix_hint => 'サーバーAPIパスのオプション接頭辞 (例: /v1)';
2240
2241
@override
2250
- String get search_message_contents => 'Search message contents';
2242
+ String get search_message_contents => 'メッセージ内容を検索...';
2243
2244
@override
2253
- String get message_search_results => 'Message matches';
2245
+ String get message_search_results => 'メッセージ検索結果';
2246
2247
@override
2256
- String get saved_messages_title => 'Saved Messages';
2248
+ String get saved_messages_title => '保存されたメッセージ';
2249
2250
@override
2259
- String get nav_saved_messages => 'Saved Messages';
2251
+ String get nav_saved_messages => '保存メッセージ';
2252
2253
@override
2262
- String get saved_messages_empty =>
2263
- 'No saved messages yet. Bookmark a message from its options menu.';
2254
+ String get saved_messages_empty => '保存されたメッセージはまだありません';
2255
2256
@override
2266
- String get save_message => 'Save message';
2257
+ String get save_message => 'メッセージを保存';
2258
2259
@override
2269
- String get message_saved => 'Message saved';
2260
+ String get message_saved => 'メッセージが保存されました';
2261
2262
@override
2263
String token_count(int count) {
2273
- return '$count tokens';
2264
+ return 'トークン: $count';
2265
}
2266
2267
@override
2268
String estimated_token_count(int count) {
2278
- return '~$count tokens (estimated)';
2269
+ return '推定トークン: $count';
2270
}
2271
2272
@override
2282
- String get test_tts_section_title => 'Test voice';
2273
+ String get test_tts_section_title => '音声合成テスト';
2274
2275
@override
2285
- String get test_tts_hint => 'Enter text to hear the current TTS engine…';
2276
+ String get test_tts_hint => '音声をテストするには何か入力してください...';
2277
2278
@override
2288
- String get test_speak_button => 'Speak';
2279
+ String get test_speak_button => '発話';
2280
2281
@override
2291
- String get scroll_to_bottom => 'Scroll to bottom';
2282
+ String get scroll_to_bottom => '一番下までスクロール';
2283
2284
@override
2294
- String get generate_ai_response => 'Generate AI response';
2285
+ String get generate_ai_response => 'AIの回答を生成';
2286
2287
@override
2297
- String get no_response => 'No response';
2288
+ String get no_response => '回答なし';
2289
2290
@override
2300
- String get export => 'Export';
2291
+ String get export => 'エクスポート';
2292
2293
@override
2303
- String get import => 'Import';
2294
+ String get import => 'インポート';
2295
2296
@override
2306
- String get conversations_label => 'Conversations';
2297
+ String get conversations_label => '会話';
2298
2299
@override
2309
- String get personas_label => 'Personas';
2300
+ String get personas_label => 'ペルソナ';
2301
2302
@override
2312
- String get settings_label => 'Settings';
2303
+ String get settings_label => '設定';
2304
2305
@override
2315
- String get export_conversation => 'Export conversation';
2306
+ String get export_conversation => '会話をエクスポート';
2307
2308
@override
2318
- String get tts_process_markdown => 'Process markdown for speech';
2309
+ String get tts_process_markdown => 'Markdown処理';
2310
2311
@override
2321
- String get tts_process_markdown_desc =>
2322
- 'Strip formatting like **bold** before reading aloud';
2312
+ String get tts_process_markdown_desc => '読み上げる前に**太字**などの装飾タグを取り除く';
2313
2314
@override
2325
- String get tts_skip_seconds => 'Skip interval';
2315
+ String get tts_skip_seconds => 'スキップ秒数';
2316
2317
@override
2328
- String get tts_skip_seconds_desc =>
2329
- 'Forward and rewind jump size during playback';
2318
+ String get tts_skip_seconds_desc => '音声プレイヤーで前後にスキップする時間';
2319
2320
@override
2321
String tts_skip_seconds_value(int seconds) {
2333
- return '${seconds}s';
2322
+ return '$seconds秒';
2323
}
2324
2325
@override
2337
- String get preview_system_prompts => 'Preview system prompts';
2326
+ String get preview_system_prompts => 'システムプロンプトのプレビュー';
2327
2328
@override
2340
- String get welcome_message_1 => 'What can I help you with today?';
2329
+ String get welcome_message_1 => 'こんにちは!私はローカルAIアシスタントです。';
2330
2331
@override
2343
- String get welcome_message_2 => 'Ask me anything — I\'m ready when you are.';
2332
+ String get welcome_message_2 => '何でも質問してください。準備はいつでもできています。';
2333
2334
@override
2346
- String get welcome_message_3 => 'Start a conversation below.';
2335
+ String get welcome_message_3 => 'データはローカルで処理され、デバイスの外に出ることはありません。';
2336
2337
@override
2349
- String get welcome_message_4 => 'Need ideas? Try one of the quick prompts.';
2338
+ String get welcome_message_4 =>
2339
+ '開始するには、上部のバーからモデルを選択するか、モデル管理セクションで新しいモデルを追加してください。';
2340
2341
@override
2352
- String get temporary_chat => 'Temporary chat';
2342
+ String get temporary_chat => '一時的なチャット';
2343
2344
@override
2355
- String get temporary_chat_desc => 'Chats aren\'t saved to history.';
2345
+ String get temporary_chat_desc => 'このチャット内のメッセージは履歴に保存されません';
2346
2347
@override
2358
- String get temporary_chat_banner => 'Temporary chat — not saved to history';
2348
+ String get temporary_chat_banner => '一時的なチャットが有効 — 履歴には保存されません';
2349
2350
@override
2361
- String get temporary_chat_save_warning_title =>
2362
- 'Save message in temporary chat?';
2351
+ String get temporary_chat_save_warning_title => '一時的なチャットを保存しますか?';
2352
2353
@override
2354
String get temporary_chat_save_warning_body =>
2366
- 'This chat is temporary and hidden from history. The saved message will still appear in Saved Messages.';
2355
+ 'このチャットは履歴に保存されていません。今すぐ保存しますか?';
2356
2357
@override
2369
- String get save_to_history => 'Save to history';
2358
+ String get save_to_history => '履歴に保存';
2359
2360
@override
2372
- String get share_conversation => 'Share conversation';
2361
+ String get share_conversation => '会話を共有';
2362
2363
@override
2375
- String get download_tts_audio => 'Download audio';
2364
+ String get download_tts_audio => '音声をダウンロード';
2365
2366
@override
2378
- String get tts_download_unavailable =>
2379
- 'Download is only available for Piper and Kitten TTS';
2367
+ String get tts_download_unavailable => '音声ダウンロードは利用できません';
2368
2369
@override
2382
- String get tts_download_no_audio => 'No audio available to download yet';
2370
+ String get tts_download_no_audio => 'ダウンロードする音声が生成されていません';
2371
2372
@override
2385
- String get tts_download_success => 'Audio saved';
2373
+ String get tts_download_success => '音声が保存されました';
2374
2375
@override
2388
- String get return_to_chat => 'Return to chat';
2376
+ String get return_to_chat => 'チャットに戻る';
2377
2378
@override
2391
- String get return_to_temp_chat => 'Return to temporary chat';
2379
+ String get return_to_temp_chat => '一時チャットに戻る';
2380
2381
@override
2394
- String get insert_saved_message => 'Insert saved message';
2382
+ String get insert_saved_message => '保存されたメッセージを挿入';
2383
2384
@override
2397
- String get insert_saved_message_desc =>
2398
- 'Choose a saved message to add to your input';
2385
+ String get insert_saved_message_desc => '保存されたメッセージの断片をチャットに追加します';
2386
2387
@override
2401
- String get model_info => 'Model info';
2388
+ String get model_info => 'モデル情報';
2389
2390
@override
2404
- String get model_name => 'Model name';
2391
+ String get model_name => 'モデル名';
2392
2393
@override
2407
- String get model_identifier => 'Identifier';
2394
+ String get model_identifier => 'モデル識別子';
2395
2396
@override
2410
- String get not_available => 'Not available';
2397
+ String get not_available => '利用不可';
2398
2399
@override
2413
- String get save_message_folders => 'Save message';
2400
+ String get save_message_folders => 'フォルダーに保存';
2401
2402
@override
2416
- String get remove_from_saved => 'Remove from saved';
2403
+ String get remove_from_saved => '保存から削除';
2404
2405
@override
2419
- String get message_already_saved => 'Saved';
2406
+ String get message_already_saved => 'メッセージはすでに保存されています';
2407
2408
@override
2422
- String get stream_ttft => 'Time to first token';
2409
+ String get stream_ttft => '初回トークン生成時間';
2410
2411
@override
2425
- String get stream_tokens_per_sec => 'Tokens per second';
2412
+ String get stream_tokens_per_sec => 'トークン秒速';
2413
2414
@override
2428
- String get stream_stop_reason => 'Stop reason';
2415
+ String get stream_stop_reason => '終了理由';
2416
2417
@override
2431
- String get stream_input_tokens => 'Input tokens';
2418
+ String get stream_input_tokens => '入力トークン数';
2419
2420
@override
2434
- String get stream_output_tokens => 'Output tokens';
2421
+ String get stream_output_tokens => '出力トークン数';
2422
2423
@override
2437
- String get stream_generation_time => 'Generation time';
2424
+ String get stream_generation_time => '生成時間';
2425
2426
@override
2440
- String get attach_image => 'Image';
2427
+ String get attach_image => '画像を添付';
2428
2429
@override
2443
- String get attach_text_document => 'Text document';
2430
+ String get attach_text_document => 'テキストファイルを添付';
2431
2432
@override
2446
- String get add_attachment => 'Add attachment';
2433
+ String get add_attachment => '添付ファイルを追加';
2434
2435
@override
2449
- String get photo_permission_denied =>
2450
- 'Photo access is required to attach images';
2436
+ String get photo_permission_denied => '写真のアクセス許可が拒否されました';
2437
2438
@override
2453
- String get characters_label => 'Characters';
2439
+ String get characters_label => '文字数';
2440
2441
@override
2456
- String get exit_temporary_chat_title => 'Exit temporary chat?';
2442
+ String get exit_temporary_chat_title => '一時チャットを終了しますか?';
2443
2444
@override
2459
- String get exit_temporary_chat_body =>
2460
- 'This will discard the current temporary chat and return to a new chat.';
2445
+ String get exit_temporary_chat_body => 'これにより、現在の会話が完全に削除されます。続行しますか?';
2446
2447
@override
2448
String get saved_message_temp_snap_unavailable =>
2464
- 'This message was saved from a temporary chat and can\'t be opened in its original conversation.';
2449
+ '一時チャットではメッセージのスナップショットは利用できません';
2450
2451
@override
2467
- String get filter_title => 'Filter';
2452
+ String get filter_title => 'チャットを絞り込み';
2453
2454
@override
2470
- String get filter_pinned => 'Pinned';
2455
+ String get filter_pinned => 'ピン留め済み';
2456
2457
@override
2473
- String get filter_archived => 'Archived';
2458
+ String get filter_archived => 'アーカイブ済み';
2459
2460
@override
2476
- String get filter_temp_chats => 'Temporary chats';
2461
+ String get filter_temp_chats => '一時チャット';
2462
2463
@override
2479
- String get filter_user_messages => 'User messages';
2464
+ String get filter_user_messages => 'ユーザーのメッセージ';
2465
2466
@override
2482
- String get filter_assistant_messages => 'Assistant messages';
2467
+ String get filter_assistant_messages => 'アシスタントのメッセージ';
2468
2469
@override
2485
- String get archive_chat => 'Archive';
2470
+ String get archive_chat => 'チャットをアーカイブ';
2471
2472
@override
2488
- String get unarchive_chat => 'Unarchive';
2473
+ String get unarchive_chat => 'アーカイブを解除';
2474
2475
@override
2476
String conversation_message_count(int count) {
2492
- String _temp0 = intl.Intl.pluralLogic(
2493
- count,
2494
- locale: localeName,
2495
- other: '$count messages',
2496
- one: '1 message',
2497
- );
2498
- return '$_temp0';
2477
+ return '$count 件のメッセージ';
2478
}
2479
2480
@override
2481
String conversation_character_count(int count) {
2503
- return '$count chars';
2482
+ return '$count 文字';
2483
}
2484
2485
@override
2507
- String get generate_title_with_ai => 'Generate with AI';
2486
+ String get generate_title_with_ai => 'AIでタイトルを自動生成';
2487
2488
@override
2510
- String get generating_title => 'Generating...';
2489
+ String get generating_title => 'タイトルを生成中...';
2490
2491
@override
2513
- String get generate_title_failed => 'Could not generate a title';
2492
+ String get generate_title_failed => 'タイトルを生成できませんでした';
2493
2494
@override
2516
- String get lm_studio_model_browser_title => 'Browse models';
2495
+ String get lm_studio_model_browser_title => 'モデルブラウザー';
2496
2497
@override
2519
- String get lm_studio_model_search_hint => 'Search models by name or author…';
2498
+ String get lm_studio_model_search_hint => 'モデルを検索...';
2499
2500
@override
2522
- String get lm_studio_staff_picks => 'Staff picks';
2501
+ String get lm_studio_staff_picks => 'スタッフのおすすめ';
2502
2503
@override
2525
- String get lm_studio_community_models => 'Community models';
2504
+ String get lm_studio_community_models => 'コミュニティモデル';
2505
2506
@override
2528
- String get lm_studio_no_models => 'No models found';
2507
+ String get lm_studio_no_models => 'モデルが見つかりませんでした';
2508
2509
@override
2510
String lm_studio_models_count(int count) {
2532
- return '$count models';
2511
+ return '$count 個のモデル';
2512
}
2513
2514
@override
2536
- String get lm_studio_browse_models => 'Browse & download';
2515
+ String get lm_studio_browse_models => 'LM Studioでモデルを探す';
2516
2517
@override
2539
- String get lm_studio_model_search => 'LMS Model Search';
2518
+ String get lm_studio_model_search => 'モデル検索';
2519
2520
@override
2542
- String get lm_studio_downloads_title => 'Downloads';
2521
+ String get lm_studio_downloads_title => 'ダウンロード';
2522
2523
@override
2545
- String get lm_studio_choose_quant => 'Choose a download option';
2524
+ String get lm_studio_choose_quant => '量子化を選択';
2525
2526
@override
2548
- String get lm_studio_use_default_quant => 'Use default';
2527
+ String get lm_studio_use_default_quant => 'デフォルトの量子化を使用';
2528
2529
@override
2551
- String get lm_studio_recommended => 'Recommended';
2530
+ String get lm_studio_recommended => '推奨';
2531
2532
@override
2554
- String get lm_studio_clear_downloads => 'Clear finished';
2533
+ String get lm_studio_clear_downloads => '完了したダウンロードをクリア';
2534
2535
@override
2557
- String get lm_studio_no_downloads => 'No downloads yet';
2536
+ String get lm_studio_no_downloads => 'アクティブなダウンロードはありません';
2537
2538
@override
2539
String get lm_studio_downloads_disclaimer =>
2561
- 'Downloads run on the LM Studio host. Pausing, stopping, and deleting models must be done on that computer — not from this app.';
2540
+ 'モデルのダウンロードはHugging Faceから直接行われます。';
2541
2542
@override
2564
- String get lm_studio_staff_pick => 'Staff pick';
2543
+ String get lm_studio_staff_pick => '注目のモデル';
2544
2545
@override
2567
- String get lm_studio_params => 'PARAMS';
2546
+ String get lm_studio_params => 'パラメータ';
2547
2548
@override
2570
- String get lm_studio_arch => 'ARCH';
2549
+ String get lm_studio_arch => 'アーキテクチャ';
2550
2551
@override
2573
- String get lm_studio_domain => 'DOMAIN';
2552
+ String get lm_studio_domain => 'ドメイン';
2553
2554
@override
2576
- String get lm_studio_format => 'FORMAT';
2555
+ String get lm_studio_format => 'フォーマット';
2556
2557
@override
2579
- String get lm_studio_vision => 'Vision';
2558
+ String get lm_studio_vision => 'ビジョン';
2559
2560
@override
2582
- String get lm_studio_tool_use => 'Tool use';
2561
+ String get lm_studio_tool_use => 'ツール利用';
2562
2563
@override
2585
- String get lm_studio_reasoning => 'Reasoning';
2564
+ String get lm_studio_reasoning => '推論';
2565
2566
@override
2588
- String get lm_studio_download_options => 'Download options';
2567
+ String get lm_studio_download_options => 'ダウンロードオプション';
2568
2569
@override
2591
- String get lm_studio_download => 'Download';
2570
+ String get lm_studio_download => 'ダウンロード';
2571
2572
@override
2573
String lm_studio_download_size(String size) {
2595
- return 'Download $size';
2574
+ return 'ダウンロードサイズ';
2575
}
2576
2577
@override
2578
String lm_studio_downloading_percent(int percent) {
2600
- return 'Downloading $percent%';
2579
+ return 'ダウンロード中: $percent%';
2580
}
2581
2582
@override
2604
- String get lm_studio_readme_unavailable =>
2605
- 'README not available for this model.';
2583
+ String get lm_studio_readme_unavailable => 'このモデルのREADMEは利用できません。';
2584
2585
@override
2608
- String get lm_studio_full_gpu_offload => 'Full GPU offload possible';
2586
+ String get lm_studio_full_gpu_offload => 'フルGPUオフロード可能';
2587
2588
@override
2611
- String get lm_studio_partial_gpu_offload => 'Partial GPU offload possible';
2589
+ String get lm_studio_partial_gpu_offload => '部分GPUオフロード可能';
2590
2591
@override
2614
- String get lm_studio_likely_too_large => 'Likely too large';
2592
+ String get lm_studio_likely_too_large => 'サイズが大きすぎる可能性があります';
2593
2594
@override
2617
- String get lm_studio_available_ram_gb => 'Available RAM (GB, optional)';
2595
+ String get lm_studio_available_ram_gb => '空きRAM容量 (GB, 任意)';
2596
2597
@override
2620
- String get lm_studio_available_vram_gb => 'Available VRAM (GB, optional)';
2598
+ String get lm_studio_available_vram_gb => '空きVRAM容量 (GB, 任意)';
2599
2600
@override
2623
- String get lm_studio_memory_settings_title => 'Memory for recommendations';
2601
+ String get lm_studio_memory_settings_title => '推奨用メモリ設定';
2602
2603
@override
2604
String get lm_studio_memory_settings_desc =>
2627
- 'Used to estimate whether models fit on your machine in the model browser.';
2605
+ 'モデルブラウザーでモデルがお使いのデバイスに収まるかどうかを判断するために使用されます。';
2606
2607
@override
2630
- String get think_button_label => 'Think';
2608
+ String get think_button_label => '思考';
2609
2610
@override
2633
- String get reasoning_effort_low => 'Low';
2611
+ String get reasoning_effort_low => '低';
2612
2613
@override
2636
- String get reasoning_effort_medium => 'Medium';
2614
+ String get reasoning_effort_medium => '中';
2615
2616
@override
2639
- String get reasoning_effort_high => 'High';
2617
+ String get reasoning_effort_high => '高';
2618
+
2619
+ @override
2620
+ String get could_not_read_file => 'ファイルを読み込めませんでした';
2621
+
2622
+ @override
2623
+ String get server_offline => 'サーバーがオフラインです';
2624
+
2625
+ @override
2626
+ String get could_not_establish_connection =>
2627
+ 'サーバーへの接続を確立できませんでした。サーバーが稼働していること、およびホスト/ポートの設定が正しいことを確認してください。';
2628
+
2629
+ @override
2630
+ String get retry_connection => '接続を再試行';
2631
+
2632
+ @override
2633
+ String get tokens_label => 'トークン';
2634
+
2635
+ @override
2636
+ String get enter_context_length => 'コンテキスト長を入力...';
2637
}
lib/l10n/app_localizations_ru.dart
+245
-224
@@ -263,152 +263,155 @@ class AppLocalizationsRu extends AppLocalizations {
263
264
@override
265
String get delete_builtin_persona_body =>
266
- 'This is a built-in persona. You can restore it later from Settings.';
266
+ 'Это встроенный персонаж. Вы можете восстановить его позже в Настройках.';
267
268
@override
269
- String get restore_builtin_personas => 'Restore default personas';
269
+ String get restore_builtin_personas => 'Восстановить стандартных персонажей';
270
271
@override
272
String get restore_builtin_personas_desc =>
273
- 'Re-add any built-in personas you\'ve deleted';
273
+ 'Заново добавить всех удаленных встроенных персонажей';
274
275
@override
276
- String get restore_builtin_personas_success => 'Default personas restored';
276
+ String get restore_builtin_personas_success =>
277
+ 'Персонажи по умолчанию восстановлены';
278
279
@override
279
- String get clear_personas => 'Clear personas';
280
+ String get clear_personas => 'Сбросить персонажей';
281
282
@override
282
- String get enable_image_compression => 'Compress images before sending';
283
+ String get enable_image_compression => 'Сжимать изображения перед отправкой';
284
285
@override
286
String get enable_image_compression_desc =>
286
- 'Resize and compress attached images so uploads stay within server limits';
287
+ 'Изменять размер и сжимать прикрепленные изображения, чтобы размер загрузки оставался в пределах лимитов сервера';
288
289
@override
289
- String get image_compression_level => 'Compression aggressiveness';
290
+ String get image_compression_level => 'Агрессивность сжатия';
291
292
@override
293
String get image_compression_level_desc =>
293
- 'Higher aggressiveness produces smaller uploads at lower quality';
294
+ 'Более высокая агрессивность дает файлы меньшего размера при более низком качестве';
295
296
@override
296
- String get image_compression_level_low => 'Low';
297
+ String get image_compression_level_low => 'Низкая';
298
299
@override
299
- String get image_compression_level_medium => 'Medium';
300
+ String get image_compression_level_medium => 'Средняя';
301
302
@override
302
- String get image_compression_level_high => 'High';
303
+ String get image_compression_level_high => 'Высокая';
304
305
@override
305
- String get sort_models_tooltip => 'Sort models';
306
+ String get sort_models_tooltip => 'Сортировка моделей';
307
308
@override
308
- String get sort_by_favorites => 'Favorites first';
309
+ String get sort_by_favorites => 'Сначала избранные';
310
311
@override
311
- String get sort_by_name => 'Name (A-Z)';
312
+ String get sort_by_name => 'По имени (А-Я)';
313
314
@override
314
- String get sort_by_size_smallest => 'Size (smallest first)';
315
+ String get sort_by_size_smallest => 'Размер (сначала меньшие)';
316
317
@override
317
- String get sort_by_size_largest => 'Size (largest first)';
318
+ String get sort_by_size_largest => 'Размер (сначала большие)';
319
320
@override
320
- String get sort_by_context_length => 'Context length';
321
+ String get sort_by_context_length => 'Длина контекста';
322
323
@override
324
String bulk_ai_rename_progress(int done, int total) {
324
- return 'Renaming $done/$total...';
325
+ return 'Переименование $done/$total...';
326
}
327
328
@override
329
String selected_count(int count) {
329
- return '$count selected';
330
+ return 'Выбрано: $count';
331
}
332
333
@override
333
- String get ai_rename_tooltip => 'Rename selected with AI';
334
+ String get ai_rename_tooltip => 'Переименовать выбранные с помощью ИИ';
335
336
@override
336
- String get new_chat_in_folder_tooltip => 'New chat in this folder';
337
+ String get new_chat_in_folder_tooltip => 'Новый чат в этой папке';
338
339
@override
340
String total_tokens_count(int count) {
340
- return '$count tokens';
341
+ return 'Токенов: $count';
342
}
343
344
@override
344
- String get smart_replies_use_persona => 'Use persona in smart replies';
345
+ String get smart_replies_use_persona =>
346
+ 'Использовать персонаж в умных ответах';
347
348
@override
349
String get smart_replies_use_persona_desc =>
348
- 'Suggested replies match the tone of the active persona instead of a generic assistant';
350
+ 'Предлагаемые ответы будут соответствовать тону активного персонажа, а не общего ассистента';
351
352
@override
351
- String get keep_persona_on_new_chat => 'Keep persona on new chat';
353
+ String get keep_persona_on_new_chat => 'Сохранять персонаж при новом чате';
354
355
@override
356
String get keep_persona_on_new_chat_desc =>
355
- 'Don\'t clear the selected persona(s) after starting a new chat';
357
+ 'Не сбрасывать выбранных персонажей при создании нового чата';
358
359
@override
358
- String get role_swap_button_enabled => 'Show role-swap button';
360
+ String get role_swap_button_enabled => 'Показывать кнопку смены ролей';
361
362
@override
363
String get role_swap_button_enabled_desc =>
362
- 'Show a button in the chat input to send your message as the assistant instead of the user, without generating a response';
364
+ 'Показывать кнопку в поле ввода чата для отправки сообщения от лица ассистента, а не пользователя (без генерации ответа)';
365
366
@override
365
- String get send_as_user_tooltip => 'Send as user';
367
+ String get send_as_user_tooltip => 'Отправить от пользователя';
368
369
@override
368
- String get send_as_assistant_tooltip => 'Send as assistant (no response)';
370
+ String get send_as_assistant_tooltip =>
371
+ 'Отправить от ассистента (без ответа)';
372
373
@override
371
- String get insert_without_generating_tooltip => 'Insert without generating';
374
+ String get insert_without_generating_tooltip => 'Вставить без генерации';
375
376
@override
374
- String get token_usage_title => 'Token Usage';
377
+ String get token_usage_title => 'Использование токенов';
378
379
@override
377
- String get total_tokens_label => 'Tokens used';
380
+ String get total_tokens_label => 'Использовано токенов';
381
382
@override
380
- String get usage_percent_label => 'Context used';
383
+ String get usage_percent_label => 'Использовано контекста';
384
385
@override
383
- String get export_choice_title => 'Export';
386
+ String get export_choice_title => 'Экспорт';
387
388
@override
386
- String get export_choice_body => 'How would you like to export this?';
389
+ String get export_choice_body => 'Как вы хотите это экспортировать?';
390
391
@override
389
- String get copy_to_clipboard => 'Copy to Clipboard';
392
+ String get copy_to_clipboard => 'Копировать в буфер обмена';
393
394
@override
395
String bulk_export_conversations_success(int count) {
393
- return 'Exported $count conversations';
396
+ return 'Экспортировано чатов: $count';
397
}
398
399
@override
397
- String get bulk_ai_rename_confirm_title => 'Rename with AI?';
400
+ String get bulk_ai_rename_confirm_title => 'Переименовать с помощью ИИ?';
401
402
@override
403
String bulk_ai_rename_confirm_body(int count) {
401
- return 'This will ask the AI to generate a new title for each of the $count selected conversations, replacing their current titles. This can take a while and cannot be undone.';
404
+ return 'ИИ сгенерирует новые заголовки для $count выбранных чатов, заменив текущие. Это может занять некоторое время и действие нельзя отменить.';
405
}
406
407
@override
405
- String get sort_by_modified_date => 'Last modified';
408
+ String get sort_by_modified_date => 'Последнее изменение';
409
410
@override
408
- String get sort_by_created_date => 'Date created';
411
+ String get sort_by_created_date => 'Дата создания';
412
413
@override
411
- String get sort_title => 'Sort';
414
+ String get sort_title => 'Сортировка';
415
416
@override
417
String get clear_conversation_title => 'Ясный разговор?';
@@ -620,14 +623,16 @@ class AppLocalizationsRu extends AppLocalizations {
623
String get enable_smart_reply => 'Умные ответы на устройстве';
624
625
@override
623
- String get ai_user_response_enabled => 'AI user message (hold send)';
626
+ String get ai_user_response_enabled =>
627
+ 'Сообщение пользователя через ИИ (зажать кнопку)';
628
629
@override
630
String get ai_user_response_enabled_desc =>
627
- 'Hold the send button for 3 seconds to have the AI write and send your next message';
631
+ 'Зажмите кнопку отправки на 3 секунды, чтобы ИИ написал и отправил следующее сообщение за вас';
632
633
@override
630
- String get ai_user_response_tooltip => 'Generate user message with AI';
634
+ String get ai_user_response_tooltip =>
635
+ 'Сгенерировать сообщение пользователя с помощью ИИ';
636
637
@override
638
String get streaming_responses => 'Потоковая передача ответов';
@@ -643,14 +648,15 @@ class AppLocalizationsRu extends AppLocalizations {
648
649
@override
650
String get show_system_messages_desc =>
646
- 'When no persona is selected, send a default assistant system prompt with each request';
651
+ 'Если персонаж не выбран, отправлять стандартный системный промпт ассистента с каждым запросом';
652
653
@override
649
- String get show_system_messages_in_chat => 'Show System Messages in Chat';
654
+ String get show_system_messages_in_chat =>
655
+ 'Показывать системные сообщения в чате';
656
657
@override
658
String get show_system_messages_in_chat_desc =>
653
- 'Display system messages (e.g. from an imported backup) as visible bubbles in the conversation';
659
+ 'Отображать системные сообщения (например, из импортированной резервной копии) в виде облачков сообщений в чате';
660
661
@override
662
String get haptic_feedback => 'Тактильная обратная связь';
@@ -708,11 +714,10 @@ class AppLocalizationsRu extends AppLocalizations {
714
String get select_persona => 'Выберите Персону';
715
716
@override
711
- String get manage_personas => 'Manage personas';
717
+ String get manage_personas => 'Управление персонажами';
718
719
@override
714
- String get personas_combine_hint =>
715
- 'Select multiple personas in chat to stack their system prompts.';
720
+ String get personas_combine_hint => 'Выбранные персонажи будут объединены';
721
722
@override
723
String get start_conversation => 'Начать разговор';
@@ -1707,28 +1712,29 @@ class AppLocalizationsRu extends AppLocalizations {
1712
}
1713
1714
@override
1710
- String get unload_all_models => 'Unload all';
1715
+ String get unload_all_models => 'Выгрузить все модели';
1716
1717
@override
1718
String loaded_models_count(int count) {
1714
- return '$count loaded';
1719
+ return 'Загружено моделей: $count';
1720
}
1721
1722
@override
1718
- String get all_models_unloaded => 'All models unloaded';
1723
+ String get all_models_unloaded => 'Все модели выгружены';
1724
1725
@override
1721
- String get branch_chat => 'Branch chat';
1726
+ String get branch_chat => 'Создать ветку чата';
1727
1728
@override
1724
- String get branch_chat_desc => 'Start a new conversation from this message';
1729
+ String get branch_chat_desc => 'Создать новый чат на основе этого сообщения';
1730
1731
@override
1727
- String get edit_assistant_message_desc => 'Edit the assistant response text.';
1732
+ String get edit_assistant_message_desc =>
1733
+ 'Редактировать текст сообщения ассистента';
1734
1735
@override
1730
- String switch_to_model(String modelName) {
1731
- return 'Switch to $modelName';
1736
+ String switch_to_model(String modelName, Object model) {
1737
+ return 'Переключить на модель $model';
1738
}
1739
1740
@override
@@ -2173,343 +2179,344 @@ class AppLocalizationsRu extends AppLocalizations {
2179
String get tool_status_failed => 'Неуспешный';
2180
2181
@override
2176
- String get model_favorite_toggle => 'Toggle favorite';
2182
+ String get model_favorite_toggle => 'Добавить в избранное';
2183
2184
@override
2179
- String get model_note_label => 'Note';
2185
+ String get model_note_label => 'Заметка';
2186
2187
@override
2182
- String get model_note_hint => 'Add a note about this model…';
2188
+ String get model_note_hint => 'Добавить личную заметку для этой модели...';
2189
2190
@override
2185
- String get unload_models_before_load =>
2186
- 'Unload all models before loading a new one';
2191
+ String get unload_models_before_load => 'Выгружать модели перед загрузкой';
2192
2193
@override
2194
String get temp_chat_keyboard_incognito =>
2190
- 'Приватная клавиатура во временном чате';
2195
+ 'Режим инкогнито клавиатуры во временном чате';
2196
2197
@override
2198
String get temp_chat_keyboard_incognito_desc =>
2194
- 'Отключает обучение и подсказки клавиатуры во временных чатах (например, режим инкогнито SwiftKey).';
2199
+ 'Запрашивать у клавиатуры системы не сохранять историю ввода во временных чатах';
2200
2201
@override
2197
- String get resume_last_chat => 'Восстанавливать последний чат при запуске';
2202
+ String get resume_last_chat => 'Возобновить последний чат';
2203
2204
@override
2205
String get resume_last_chat_desc =>
2201
- 'Открывать последнюю активную беседу при повторном запуске приложения.';
2206
+ 'Автоматически открывать последний активный чат при запуске';
2207
2208
@override
2204
- String get export_all_data => 'Export all data';
2209
+ String get export_all_data => 'Экспортировать все данные';
2210
2211
@override
2207
- String get import_all_data => 'Import all data';
2212
+ String get import_all_data => 'Импортировать все данные';
2213
2214
@override
2210
- String get export_data_success => 'Backup exported successfully';
2215
+ String get export_data_success => 'Данные успешно экспортированы';
2216
2217
@override
2213
- String get import_data_success => 'Backup imported successfully';
2218
+ String get import_data_success => 'Данные успешно импортированы';
2219
2220
@override
2221
String import_data_failed(String error) {
2217
- return 'Failed to import backup: $error';
2222
+ return 'Не удалось импортировать данные';
2223
}
2224
2225
@override
2226
String get import_data_confirm =>
2222
- 'Import conversations and custom personas from this backup? Existing items with the same IDs will be updated.';
2227
+ 'Это заменит все ваши текущие данные импортированными. Продолжить?';
2228
2229
@override
2230
String get import_settings_confirm =>
2226
- 'Replace current settings with the imported backup?';
2231
+ 'Это заменит ваши текущие настройки импортированными. Продолжить?';
2232
2233
@override
2229
- String get export_conversations => 'Export conversations';
2234
+ String get export_conversations => 'Экспорт чатов';
2235
2236
@override
2232
- String get import_conversations => 'Import conversations';
2237
+ String get import_conversations => 'Импорт чатов';
2238
2239
@override
2235
- String get export_personas => 'Export personas';
2240
+ String get export_personas => 'Экспорт персонажей';
2241
2242
@override
2238
- String get import_personas => 'Import personas';
2243
+ String get import_personas => 'Импорт персонажей';
2244
2245
@override
2241
- String get export_settings => 'Export settings';
2246
+ String get export_settings => 'Экспорт настроек';
2247
2248
@override
2244
- String get import_settings => 'Import settings';
2249
+ String get import_settings => 'Импорт настроек';
2250
2251
@override
2247
- String get export_all_zip => 'Export all (ZIP)';
2252
+ String get export_all_zip => 'Экспортировать все (ZIP)';
2253
2254
@override
2250
- String get import_all_zip => 'Import all (ZIP)';
2255
+ String get import_all_zip => 'Импортировать все (ZIP)';
2256
2257
@override
2253
- String get duplicate_chat => 'Duplicate chat';
2258
+ String get duplicate_chat => 'Дублировать чат';
2259
2260
@override
2256
- String get duplicate_chat_success => 'Chat duplicated';
2261
+ String get duplicate_chat_success => 'Чат успешно продублирован';
2262
2263
@override
2259
- String get move_to_folder => 'Move to folder';
2264
+ String get move_to_folder => 'Переместить в папку';
2265
2266
@override
2262
- String get remove_from_folder => 'Remove from folder';
2267
+ String get remove_from_folder => 'Удалить из папки';
2268
2269
@override
2265
- String get create_folder => 'Create folder';
2270
+ String get create_folder => 'Создать папку';
2271
2272
@override
2268
- String get new_folder => 'New folder';
2273
+ String get new_folder => 'Новая папка';
2274
2275
@override
2271
- String get folder_name_hint => 'Folder name';
2276
+ String get folder_name_hint => 'Введите имя папки...';
2277
2278
@override
2274
- String get all_chats => 'All';
2279
+ String get all_chats => 'Все чаты';
2280
2281
@override
2277
- String get unfiled_chats => 'Unfiled';
2282
+ String get unfiled_chats => 'Чаты без папки';
2283
2284
@override
2280
- String get create => 'Create';
2285
+ String get create => 'Создать';
2286
2287
@override
2283
- String get server_path_prefix_label => 'API path prefix';
2288
+ String get server_path_prefix_label => 'Префикс пути сервера';
2289
2290
@override
2286
- String get server_path_prefix_hint => '/your-secret-token';
2291
+ String get server_path_prefix_hint =>
2292
+ 'Необязательный префикс для путей API сервера (например, /v1)';
2293
2294
@override
2289
- String get search_message_contents => 'Search message contents';
2295
+ String get search_message_contents => 'Поиск по тексту сообщений...';
2296
2297
@override
2292
- String get message_search_results => 'Message matches';
2298
+ String get message_search_results => 'Результаты поиска сообщений';
2299
2300
@override
2295
- String get saved_messages_title => 'Saved Messages';
2301
+ String get saved_messages_title => 'Сохраненные сообщения';
2302
2303
@override
2298
- String get nav_saved_messages => 'Saved Messages';
2304
+ String get nav_saved_messages => 'Сохраненные сообщения';
2305
2306
@override
2301
- String get saved_messages_empty =>
2302
- 'No saved messages yet. Bookmark a message from its options menu.';
2307
+ String get saved_messages_empty => 'Нет сохраненных сообщений';
2308
2309
@override
2305
- String get save_message => 'Save message';
2310
+ String get save_message => 'Сохранить сообщение';
2311
2312
@override
2308
- String get message_saved => 'Message saved';
2313
+ String get message_saved => 'Сообщение сохранено';
2314
2315
@override
2316
String token_count(int count) {
2312
- return '$count tokens';
2317
+ return 'Токенов: $count';
2318
}
2319
2320
@override
2321
String estimated_token_count(int count) {
2317
- return '~$count tokens (estimated)';
2322
+ return 'Оценка токенов: $count';
2323
}
2324
2325
@override
2321
- String get test_tts_section_title => 'Test voice';
2326
+ String get test_tts_section_title => 'Проверка озвучки текста';
2327
2328
@override
2324
- String get test_tts_hint => 'Enter text to hear the current TTS engine…';
2329
+ String get test_tts_hint => 'Введите текст для проверки голоса...';
2330
2331
@override
2327
- String get test_speak_button => 'Speak';
2332
+ String get test_speak_button => 'Озвучить';
2333
2334
@override
2330
- String get scroll_to_bottom => 'Scroll to bottom';
2335
+ String get scroll_to_bottom => 'Прокрутить вниз';
2336
2337
@override
2333
- String get generate_ai_response => 'Generate AI response';
2338
+ String get generate_ai_response => 'Сгенерировать ответ ИИ';
2339
2340
@override
2336
- String get no_response => 'No response';
2341
+ String get no_response => 'Нет ответа';
2342
2343
@override
2339
- String get export => 'Export';
2344
+ String get export => 'Экспорт';
2345
2346
@override
2342
- String get import => 'Import';
2347
+ String get import => 'Импорт';
2348
2349
@override
2345
- String get conversations_label => 'Conversations';
2350
+ String get conversations_label => 'Чаты';
2351
2352
@override
2348
- String get personas_label => 'Personas';
2353
+ String get personas_label => 'Персонажи';
2354
2355
@override
2351
- String get settings_label => 'Settings';
2356
+ String get settings_label => 'Настройки';
2357
2358
@override
2354
- String get export_conversation => 'Export conversation';
2359
+ String get export_conversation => 'Экспортировать чат';
2360
2361
@override
2357
- String get tts_process_markdown => 'Process markdown for speech';
2362
+ String get tts_process_markdown => 'Обрабатывать Markdown';
2363
2364
@override
2365
String get tts_process_markdown_desc =>
2361
- 'Strip formatting like **bold** before reading aloud';
2366
+ 'Удалять форматирование вроде **жирного** перед озвучкой';
2367
2368
@override
2364
- String get tts_skip_seconds => 'Skip interval';
2369
+ String get tts_skip_seconds => 'Секунды перемотки';
2370
2371
@override
2372
String get tts_skip_seconds_desc =>
2368
- 'Forward and rewind jump size during playback';
2373
+ 'Время для перемотки вперед/назад в аудиоплеере';
2374
2375
@override
2376
String tts_skip_seconds_value(int seconds) {
2372
- return '${seconds}s';
2377
+ return '$secondsс';
2378
}
2379
2380
@override
2376
- String get preview_system_prompts => 'Preview system prompts';
2381
+ String get preview_system_prompts => 'Предпросмотр системных промптов';
2382
2383
@override
2379
- String get welcome_message_1 => 'What can I help you with today?';
2384
+ String get welcome_message_1 => 'Привет! Я твой локальный ИИ-ассистент.';
2385
2386
@override
2382
- String get welcome_message_2 => 'Ask me anything — I\'m ready when you are.';
2387
+ String get welcome_message_2 => 'Спрашивай о чем угодно — я готов к работе.';
2388
2389
@override
2385
- String get welcome_message_3 => 'Start a conversation below.';
2390
+ String get welcome_message_3 =>
2391
+ 'Твои данные обрабатываются локально и никогда не покидают устройство.';
2392
2393
@override
2388
- String get welcome_message_4 => 'Need ideas? Try one of the quick prompts.';
2394
+ String get welcome_message_4 =>
2395
+ 'Для начала выбери модель на верхней панели или добавь новую в разделе управления моделями.';
2396
2397
@override
2391
- String get temporary_chat => 'Temporary chat';
2398
+ String get temporary_chat => 'Временный чат';
2399
2400
@override
2394
- String get temporary_chat_desc => 'Chats aren\'t saved to history.';
2401
+ String get temporary_chat_desc =>
2402
+ 'Сообщения из этого чата не будут сохранены в истории';
2403
2404
@override
2397
- String get temporary_chat_banner => 'Temporary chat — not saved to history';
2405
+ String get temporary_chat_banner =>
2406
+ 'Активен временный чат — история не сохраняется';
2407
2408
@override
2400
- String get temporary_chat_save_warning_title =>
2401
- 'Save message in temporary chat?';
2409
+ String get temporary_chat_save_warning_title => 'Сохранить временный чат?';
2410
2411
@override
2412
String get temporary_chat_save_warning_body =>
2405
- 'This chat is temporary and hidden from history. The saved message will still appear in Saved Messages.';
2413
+ 'Этот чат не сохранен в истории. Хотите сохранить его сейчас?';
2414
2415
@override
2408
- String get save_to_history => 'Save to history';
2416
+ String get save_to_history => 'Сохранить в историю';
2417
2418
@override
2411
- String get share_conversation => 'Share conversation';
2419
+ String get share_conversation => 'Поделиться чатом';
2420
2421
@override
2414
- String get download_tts_audio => 'Download audio';
2422
+ String get download_tts_audio => 'Скачать аудио';
2423
2424
@override
2417
- String get tts_download_unavailable =>
2418
- 'Download is only available for Piper and Kitten TTS';
2425
+ String get tts_download_unavailable => 'Скачивание аудио недоступно';
2426
2427
@override
2421
- String get tts_download_no_audio => 'No audio available to download yet';
2428
+ String get tts_download_no_audio =>
2429
+ 'Нет сгенерированного аудио для скачивания';
2430
2431
@override
2424
- String get tts_download_success => 'Audio saved';
2432
+ String get tts_download_success => 'Аудиофайл успешно сохранен';
2433
2434
@override
2427
- String get return_to_chat => 'Return to chat';
2435
+ String get return_to_chat => 'Вернуться в чат';
2436
2437
@override
2430
- String get return_to_temp_chat => 'Return to temporary chat';
2438
+ String get return_to_temp_chat => 'Вернуться во временный чат';
2439
2440
@override
2433
- String get insert_saved_message => 'Insert saved message';
2441
+ String get insert_saved_message => 'Вставить сохраненное сообщение';
2442
2443
@override
2444
String get insert_saved_message_desc =>
2437
- 'Choose a saved message to add to your input';
2445
+ 'Добавить фрагмент из сохраненных сообщений в чат';
2446
2447
@override
2440
- String get model_info => 'Model info';
2448
+ String get model_info => 'Информация о модели';
2449
2450
@override
2443
- String get model_name => 'Model name';
2451
+ String get model_name => 'Имя модели';
2452
2453
@override
2446
- String get model_identifier => 'Identifier';
2454
+ String get model_identifier => 'Идентификатор модели';
2455
2456
@override
2449
- String get not_available => 'Not available';
2457
+ String get not_available => 'Недоступно';
2458
2459
@override
2452
- String get save_message_folders => 'Save message';
2460
+ String get save_message_folders => 'Сохранить в папки';
2461
2462
@override
2455
- String get remove_from_saved => 'Remove from saved';
2463
+ String get remove_from_saved => 'Удалить из сохраненных';
2464
2465
@override
2458
- String get message_already_saved => 'Saved';
2466
+ String get message_already_saved => 'Сообщение уже сохранено';
2467
2468
@override
2461
- String get stream_ttft => 'Time to first token';
2469
+ String get stream_ttft => 'Время до первого токена';
2470
2471
@override
2464
- String get stream_tokens_per_sec => 'Tokens per second';
2472
+ String get stream_tokens_per_sec => 'Токенов в секунду';
2473
2474
@override
2467
- String get stream_stop_reason => 'Stop reason';
2475
+ String get stream_stop_reason => 'Причина остановки';
2476
2477
@override
2470
- String get stream_input_tokens => 'Input tokens';
2478
+ String get stream_input_tokens => 'Входные токены';
2479
2480
@override
2473
- String get stream_output_tokens => 'Output tokens';
2481
+ String get stream_output_tokens => 'Выходные токены';
2482
2483
@override
2476
- String get stream_generation_time => 'Generation time';
2484
+ String get stream_generation_time => 'Время генерации';
2485
2486
@override
2479
- String get attach_image => 'Image';
2487
+ String get attach_image => 'Прикрепить изображение';
2488
2489
@override
2482
- String get attach_text_document => 'Text document';
2490
+ String get attach_text_document => 'Прикрепить текстовый документ';
2491
2492
@override
2485
- String get add_attachment => 'Add attachment';
2493
+ String get add_attachment => 'Добавить вложение';
2494
2495
@override
2488
- String get photo_permission_denied =>
2489
- 'Photo access is required to attach images';
2496
+ String get photo_permission_denied => 'Доступ к фото отклонен';
2497
2498
@override
2492
- String get characters_label => 'Characters';
2499
+ String get characters_label => 'Символы';
2500
2501
@override
2502
String get exit_temporary_chat_title => 'Выйти из временного чата?';
2503
2504
@override
2505
String get exit_temporary_chat_body =>
2499
- 'Текущий временный чат будет удалён, и вы вернётесь к новому чату.';
2506
+ 'Это навсегда удалит текущий чат. Продолжить?';
2507
2508
@override
2509
String get saved_message_temp_snap_unavailable =>
2503
- 'Это сообщение сохранено из временного чата и не может быть открыто в исходной беседе.';
2510
+ 'Снимки сообщений недоступны во временных чатах';
2511
2512
@override
2506
- String get filter_title => 'Фильтр';
2513
+ String get filter_title => 'Фильтр чатов';
2514
2515
@override
2509
- String get filter_pinned => 'Закреплённые';
2516
+ String get filter_pinned => 'Закрепленные';
2517
2518
@override
2512
- String get filter_archived => 'Архив';
2519
+ String get filter_archived => 'Архивные';
2520
2521
@override
2522
String get filter_temp_chats => 'Временные чаты';
@@ -2521,161 +2528,175 @@ class AppLocalizationsRu extends AppLocalizations {
2528
String get filter_assistant_messages => 'Сообщения ассистента';
2529
2530
@override
2524
- String get archive_chat => 'Архивировать';
2531
+ String get archive_chat => 'Архивировать чат';
2532
2533
@override
2527
- String get unarchive_chat => 'Разархивировать';
2534
+ String get unarchive_chat => 'Разархивировать чат';
2535
2536
@override
2537
String conversation_message_count(int count) {
2531
- String _temp0 = intl.Intl.pluralLogic(
2532
- count,
2533
- locale: localeName,
2534
- other: '$count сообщений',
2535
- many: '$count сообщений',
2536
- few: '$count сообщения',
2537
- one: '1 сообщение',
2538
- );
2539
- return '$_temp0';
2538
+ return 'Сообщений: $count';
2539
}
2540
2541
@override
2542
String conversation_character_count(int count) {
2544
- return '$count симв.';
2543
+ return 'Символов: $count';
2544
}
2545
2546
@override
2548
- String get generate_title_with_ai => 'Сгенерировать с ИИ';
2547
+ String get generate_title_with_ai => 'Создать заголовок с помощью ИИ';
2548
2549
@override
2551
- String get generating_title => 'Генерация...';
2550
+ String get generating_title => 'Создание заголовка...';
2551
2552
@override
2554
- String get generate_title_failed => 'Не удалось сгенерировать заголовок';
2553
+ String get generate_title_failed => 'Не удалось создать заголовок';
2554
2555
@override
2557
- String get lm_studio_model_browser_title => 'Browse models';
2556
+ String get lm_studio_model_browser_title => 'Обзор моделей';
2557
2558
@override
2560
- String get lm_studio_model_search_hint => 'Search models by name or author…';
2559
+ String get lm_studio_model_search_hint => 'Поиск моделей...';
2560
2561
@override
2563
- String get lm_studio_staff_picks => 'Staff picks';
2562
+ String get lm_studio_staff_picks => 'Выбор редакции';
2563
2564
@override
2566
- String get lm_studio_community_models => 'Community models';
2565
+ String get lm_studio_community_models => 'Модели сообщества';
2566
2567
@override
2569
- String get lm_studio_no_models => 'No models found';
2568
+ String get lm_studio_no_models => 'Модели не найдены';
2569
2570
@override
2571
String lm_studio_models_count(int count) {
2573
- return '$count models';
2572
+ return 'Моделей: $count';
2573
}
2574
2575
@override
2577
- String get lm_studio_browse_models => 'Browse & download';
2576
+ String get lm_studio_browse_models => 'Найти модели в LM Studio';
2577
2578
@override
2580
- String get lm_studio_model_search => 'LMS Model Search';
2579
+ String get lm_studio_model_search => 'Поиск моделей';
2580
2581
@override
2583
- String get lm_studio_downloads_title => 'Downloads';
2582
+ String get lm_studio_downloads_title => 'Загрузки';
2583
2584
@override
2586
- String get lm_studio_choose_quant => 'Choose a download option';
2585
+ String get lm_studio_choose_quant => 'Выбрать квантование';
2586
2587
@override
2589
- String get lm_studio_use_default_quant => 'Use default';
2588
+ String get lm_studio_use_default_quant =>
2589
+ 'Использовать стандартное квантование';
2590
2591
@override
2592
- String get lm_studio_recommended => 'Recommended';
2592
+ String get lm_studio_recommended => 'Рекомендуется';
2593
2594
@override
2595
- String get lm_studio_clear_downloads => 'Clear finished';
2595
+ String get lm_studio_clear_downloads => 'Очистить завершенные загрузки';
2596
2597
@override
2598
- String get lm_studio_no_downloads => 'No downloads yet';
2598
+ String get lm_studio_no_downloads => 'Нет активных загрузок';
2599
2600
@override
2601
String get lm_studio_downloads_disclaimer =>
2602
- 'Downloads run on the LM Studio host. Pausing, stopping, and deleting models must be done on that computer — not from this app.';
2602
+ 'Загрузка моделей производится напрямую с Hugging Face.';
2603
2604
@override
2605
- String get lm_studio_staff_pick => 'Staff pick';
2605
+ String get lm_studio_staff_pick => 'Рекомендуемая модель';
2606
2607
@override
2608
- String get lm_studio_params => 'PARAMS';
2608
+ String get lm_studio_params => 'Параметры';
2609
2610
@override
2611
- String get lm_studio_arch => 'ARCH';
2611
+ String get lm_studio_arch => 'Архитектура';
2612
2613
@override
2614
- String get lm_studio_domain => 'DOMAIN';
2614
+ String get lm_studio_domain => 'Область применения';
2615
2616
@override
2617
- String get lm_studio_format => 'FORMAT';
2617
+ String get lm_studio_format => 'Формат';
2618
2619
@override
2620
- String get lm_studio_vision => 'Vision';
2620
+ String get lm_studio_vision => 'Зрение';
2621
2622
@override
2623
- String get lm_studio_tool_use => 'Tool use';
2623
+ String get lm_studio_tool_use => 'Вызов инструментов';
2624
2625
@override
2626
- String get lm_studio_reasoning => 'Reasoning';
2626
+ String get lm_studio_reasoning => 'Рассуждение';
2627
2628
@override
2629
- String get lm_studio_download_options => 'Download options';
2629
+ String get lm_studio_download_options => 'Параметры загрузки';
2630
2631
@override
2632
- String get lm_studio_download => 'Download';
2632
+ String get lm_studio_download => 'Скачать';
2633
2634
@override
2635
String lm_studio_download_size(String size) {
2636
- return 'Download $size';
2636
+ return 'Размер файла';
2637
}
2638
2639
@override
2640
String lm_studio_downloading_percent(int percent) {
2641
- return 'Downloading $percent%';
2641
+ return 'Загрузка: $percent%';
2642
}
2643
2644
@override
2645
String get lm_studio_readme_unavailable =>
2646
- 'README not available for this model.';
2646
+ 'README недоступен для этой модели.';
2647
2648
@override
2649
- String get lm_studio_full_gpu_offload => 'Full GPU offload possible';
2649
+ String get lm_studio_full_gpu_offload => 'Возможен полный перенос на GPU';
2650
2651
@override
2652
- String get lm_studio_partial_gpu_offload => 'Partial GPU offload possible';
2652
+ String get lm_studio_partial_gpu_offload =>
2653
+ 'Возможен частичный перенос на GPU';
2654
2655
@override
2655
- String get lm_studio_likely_too_large => 'Likely too large';
2656
+ String get lm_studio_likely_too_large => 'Возможно, слишком велика';
2657
2658
@override
2658
- String get lm_studio_available_ram_gb => 'Available RAM (GB, optional)';
2659
+ String get lm_studio_available_ram_gb => 'Доступная ОЗУ (ГБ, необязательно)';
2660
2661
@override
2661
- String get lm_studio_available_vram_gb => 'Available VRAM (GB, optional)';
2662
+ String get lm_studio_available_vram_gb =>
2663
+ 'Доступная видеопамять (ГБ, необязательно)';
2664
2665
@override
2664
- String get lm_studio_memory_settings_title => 'Memory for recommendations';
2666
+ String get lm_studio_memory_settings_title => 'Память для рекомендаций';
2667
2668
@override
2669
String get lm_studio_memory_settings_desc =>
2668
- 'Used to estimate whether models fit on your machine in the model browser.';
2670
+ 'Используется для оценки того, подходят ли модели для вашего устройства.';
2671
2672
@override
2671
- String get think_button_label => 'Think';
2673
+ String get think_button_label => 'Мыслить';
2674
2675
@override
2674
- String get reasoning_effort_low => 'Low';
2676
+ String get reasoning_effort_low => 'Низкая';
2677
2678
@override
2677
- String get reasoning_effort_medium => 'Medium';
2679
+ String get reasoning_effort_medium => 'Средняя';
2680
2681
@override
2680
- String get reasoning_effort_high => 'High';
2682
+ String get reasoning_effort_high => 'Высокая';
2683
+
2684
+ @override
2685
+ String get could_not_read_file => 'Не удалось прочитать файл';
2686
+
2687
+ @override
2688
+ String get server_offline => 'Сервер офлайн';
2689
+
2690
+ @override
2691
+ String get could_not_establish_connection =>
2692
+ 'Не удалось подключиться к серверу. Убедитесь, что сервер запущен, а настройки хоста и порта указаны верно.';
2693
+
2694
+ @override
2695
+ String get retry_connection => 'Повторить подключение';
2696
+
2697
+ @override
2698
+ String get tokens_label => 'Токены';
2699
+
2700
+ @override
2701
+ String get enter_context_length => 'Введите длину контекста...';
2702
}
lib/l10n/app_localizations_zh.dart
+925
-248
@@ -261,153 +261,147 @@ class AppLocalizationsZh extends AppLocalizations {
261
String get delete_persona_body => '此操作无法撤销。';
262
263
@override
264
- String get delete_builtin_persona_body =>
265
- 'This is a built-in persona. You can restore it later from Settings.';
264
+ String get delete_builtin_persona_body => '这是一个内置角色。您稍后可以在“设置”中将其恢复。';
265
266
@override
268
- String get restore_builtin_personas => 'Restore default personas';
267
+ String get restore_builtin_personas => '恢复默认角色';
268
269
@override
271
- String get restore_builtin_personas_desc =>
272
- 'Re-add any built-in personas you\'ve deleted';
270
+ String get restore_builtin_personas_desc => '重新添加您已删除的任何内置角色';
271
272
@override
275
- String get restore_builtin_personas_success => 'Default personas restored';
273
+ String get restore_builtin_personas_success => '已恢复默认角色';
274
275
@override
278
- String get clear_personas => 'Clear personas';
276
+ String get clear_personas => '清除角色';
277
278
@override
281
- String get enable_image_compression => 'Compress images before sending';
279
+ String get enable_image_compression => '发送前压缩图片';
280
281
@override
284
- String get enable_image_compression_desc =>
285
- 'Resize and compress attached images so uploads stay within server limits';
282
+ String get enable_image_compression_desc => '调整并压缩附加图片的大小,以使上传大小保持在服务器限制内';
283
284
@override
288
- String get image_compression_level => 'Compression aggressiveness';
285
+ String get image_compression_level => '压缩强度';
286
287
@override
291
- String get image_compression_level_desc =>
292
- 'Higher aggressiveness produces smaller uploads at lower quality';
288
+ String get image_compression_level_desc => '较高的压缩强度会生成质量较低但上传更小的图片';
289
290
@override
295
- String get image_compression_level_low => 'Low';
291
+ String get image_compression_level_low => '低';
292
293
@override
298
- String get image_compression_level_medium => 'Medium';
294
+ String get image_compression_level_medium => '中';
295
296
@override
301
- String get image_compression_level_high => 'High';
297
+ String get image_compression_level_high => '高';
298
299
@override
304
- String get sort_models_tooltip => 'Sort models';
300
+ String get sort_models_tooltip => '排序模型';
301
302
@override
307
- String get sort_by_favorites => 'Favorites first';
303
+ String get sort_by_favorites => '收藏优先';
304
305
@override
310
- String get sort_by_name => 'Name (A-Z)';
306
+ String get sort_by_name => '名称 (A-Z)';
307
308
@override
313
- String get sort_by_size_smallest => 'Size (smallest first)';
309
+ String get sort_by_size_smallest => '大小 (从小到大)';
310
311
@override
316
- String get sort_by_size_largest => 'Size (largest first)';
312
+ String get sort_by_size_largest => '大小 (从大到小)';
313
314
@override
319
- String get sort_by_context_length => 'Context length';
315
+ String get sort_by_context_length => '上下文长度';
316
317
@override
318
String bulk_ai_rename_progress(int done, int total) {
323
- return 'Renaming $done/$total...';
319
+ return '正在重命名 $done/$total...';
320
}
321
322
@override
323
String selected_count(int count) {
328
- return '$count selected';
324
+ return '已选择 $count 个';
325
}
326
327
@override
332
- String get ai_rename_tooltip => 'Rename selected with AI';
328
+ String get ai_rename_tooltip => '使用 AI 重命名所选内容';
329
330
@override
335
- String get new_chat_in_folder_tooltip => 'New chat in this folder';
331
+ String get new_chat_in_folder_tooltip => '在此文件夹中新建聊天';
332
333
@override
334
String total_tokens_count(int count) {
339
- return '$count tokens';
335
+ return '$count 个 Token';
336
}
337
338
@override
343
- String get smart_replies_use_persona => 'Use persona in smart replies';
339
+ String get smart_replies_use_persona => '在智能回复中应用角色';
340
341
@override
346
- String get smart_replies_use_persona_desc =>
347
- 'Suggested replies match the tone of the active persona instead of a generic assistant';
342
+ String get smart_replies_use_persona_desc => '建议的回复将符合当前启用角色的语气,而不是通用的助手语气';
343
344
@override
350
- String get keep_persona_on_new_chat => 'Keep persona on new chat';
345
+ String get keep_persona_on_new_chat => '新聊天保留角色';
346
347
@override
353
- String get keep_persona_on_new_chat_desc =>
354
- 'Don\'t clear the selected persona(s) after starting a new chat';
348
+ String get keep_persona_on_new_chat_desc => '开始新聊天时不要清除选定的角色';
349
350
@override
357
- String get role_swap_button_enabled => 'Show role-swap button';
351
+ String get role_swap_button_enabled => '显示角色切换按钮';
352
353
@override
354
String get role_swap_button_enabled_desc =>
361
- 'Show a button in the chat input to send your message as the assistant instead of the user, without generating a response';
355
+ '在聊天输入框中显示一个按钮,允许您以助手而非用户的身份发送消息,而不生成任何回复';
356
357
@override
364
- String get send_as_user_tooltip => 'Send as user';
358
+ String get send_as_user_tooltip => '以用户身份发送';
359
360
@override
367
- String get send_as_assistant_tooltip => 'Send as assistant (no response)';
361
+ String get send_as_assistant_tooltip => '以助手身份发送 (无回复)';
362
363
@override
370
- String get insert_without_generating_tooltip => 'Insert without generating';
364
+ String get insert_without_generating_tooltip => '仅插入不生成回复';
365
366
@override
373
- String get token_usage_title => 'Token Usage';
367
+ String get token_usage_title => 'Token 使用情况';
368
369
@override
376
- String get total_tokens_label => 'Tokens used';
370
+ String get total_tokens_label => '已用 Token';
371
372
@override
379
- String get usage_percent_label => 'Context used';
373
+ String get usage_percent_label => '已用上下文';
374
375
@override
382
- String get export_choice_title => 'Export';
376
+ String get export_choice_title => '导出';
377
378
@override
385
- String get export_choice_body => 'How would you like to export this?';
379
+ String get export_choice_body => '您希望如何导出此内容?';
380
381
@override
388
- String get copy_to_clipboard => 'Copy to Clipboard';
382
+ String get copy_to_clipboard => '复制到剪贴板';
383
384
@override
385
String bulk_export_conversations_success(int count) {
392
- return 'Exported $count conversations';
386
+ return '已成功导出 $count 个对话';
387
}
388
389
@override
396
- String get bulk_ai_rename_confirm_title => 'Rename with AI?';
390
+ String get bulk_ai_rename_confirm_title => '使用 AI 重命名?';
391
392
@override
393
String bulk_ai_rename_confirm_body(int count) {
400
- return 'This will ask the AI to generate a new title for each of the $count selected conversations, replacing their current titles. This can take a while and cannot be undone.';
394
+ return '这将请求 AI 为每个选定的 $count 个对话生成新标题,替换其当前的标题。此操作可能需要一些时间,且无法撤销。';
395
}
396
397
@override
404
- String get sort_by_modified_date => 'Last modified';
398
+ String get sort_by_modified_date => '最近修改';
399
400
@override
407
- String get sort_by_created_date => 'Date created';
401
+ String get sort_by_created_date => '创建日期';
402
403
@override
410
- String get sort_title => 'Sort';
404
+ String get sort_title => '排序';
405
406
@override
407
String get clear_conversation_title => '清除对话吗?';
@@ -614,14 +608,13 @@ class AppLocalizationsZh extends AppLocalizations {
608
String get enable_smart_reply => '设备端智能回复';
609
610
@override
617
- String get ai_user_response_enabled => 'AI user message (hold send)';
611
+ String get ai_user_response_enabled => 'AI 用户消息 (长按发送)';
612
613
@override
620
- String get ai_user_response_enabled_desc =>
621
- 'Hold the send button for 3 seconds to have the AI write and send your next message';
614
+ String get ai_user_response_enabled_desc => '长按发送按钮 3 秒钟以让 AI 撰写并发送您的下一条消息';
615
616
@override
624
- String get ai_user_response_tooltip => 'Generate user message with AI';
617
+ String get ai_user_response_tooltip => '使用 AI 生成用户消息';
618
619
@override
620
String get streaming_responses => '流式响应';
@@ -636,15 +629,14 @@ class AppLocalizationsZh extends AppLocalizations {
629
String get show_system_messages => '显示系统消息';
630
631
@override
639
- String get show_system_messages_desc =>
640
- 'When no persona is selected, send a default assistant system prompt with each request';
632
+ String get show_system_messages_desc => '当没有选定角色时,每次请求都发送默认的助手系统提示词';
633
634
@override
643
- String get show_system_messages_in_chat => 'Show System Messages in Chat';
635
+ String get show_system_messages_in_chat => '在聊天中显示系统消息';
636
637
@override
638
String get show_system_messages_in_chat_desc =>
647
- 'Display system messages (e.g. from an imported backup) as visible bubbles in the conversation';
639
+ '将系统消息 (例如来自导入的备份) 作为对话中的可见气泡显示';
640
641
@override
642
String get haptic_feedback => '触觉反馈';
@@ -701,11 +693,10 @@ class AppLocalizationsZh extends AppLocalizations {
693
String get select_persona => '选择角色';
694
695
@override
704
- String get manage_personas => 'Manage personas';
696
+ String get manage_personas => '管理角色';
697
698
@override
707
- String get personas_combine_hint =>
708
- 'Select multiple personas in chat to stack their system prompts.';
699
+ String get personas_combine_hint => '选定的角色将被合并';
700
701
@override
702
String get start_conversation => '开始对话';
@@ -1672,28 +1663,28 @@ class AppLocalizationsZh extends AppLocalizations {
1663
}
1664
1665
@override
1675
- String get unload_all_models => 'Unload all';
1666
+ String get unload_all_models => '卸载所有模型';
1667
1668
@override
1669
String loaded_models_count(int count) {
1679
- return '$count loaded';
1670
+ return '已加载 $count 个模型';
1671
}
1672
1673
@override
1683
- String get all_models_unloaded => 'All models unloaded';
1674
+ String get all_models_unloaded => '所有模型已卸载';
1675
1676
@override
1686
- String get branch_chat => 'Branch chat';
1677
+ String get branch_chat => '分支聊天';
1678
1679
@override
1689
- String get branch_chat_desc => 'Start a new conversation from this message';
1680
+ String get branch_chat_desc => '从此消息开始新建聊天';
1681
1682
@override
1692
- String get edit_assistant_message_desc => 'Edit the assistant response text.';
1683
+ String get edit_assistant_message_desc => '编辑助手消息的内容';
1684
1685
@override
1695
- String switch_to_model(String modelName) {
1696
- return 'Switch to $modelName';
1686
+ String switch_to_model(String modelName, Object model) {
1687
+ return '切换到模型 $model';
1688
}
1689
1690
@override
@@ -2127,509 +2118,503 @@ class AppLocalizationsZh extends AppLocalizations {
2118
String get tool_status_failed => 'Failed';
2119
2120
@override
2130
- String get model_favorite_toggle => 'Toggle favorite';
2121
+ String get model_favorite_toggle => '切换收藏';
2122
2123
@override
2133
- String get model_note_label => 'Note';
2124
+ String get model_note_label => '备注';
2125
2126
@override
2136
- String get model_note_hint => 'Add a note about this model…';
2127
+ String get model_note_hint => '为此模型添加个人备注...';
2128
2129
@override
2139
- String get unload_models_before_load =>
2140
- 'Unload all models before loading a new one';
2130
+ String get unload_models_before_load => '加载前卸载模型';
2131
2132
@override
2143
- String get temp_chat_keyboard_incognito =>
2144
- 'Incognito keyboard in temporary chat';
2133
+ String get temp_chat_keyboard_incognito => '临时聊天中的隐私键盘';
2134
2135
@override
2147
- String get temp_chat_keyboard_incognito_desc =>
2148
- 'Disables keyboard learning and suggestions in temporary chats (e.g. SwiftKey incognito).';
2136
+ String get temp_chat_keyboard_incognito_desc => '请求系统键盘在临时聊天期间不保存输入历史记录';
2137
2138
@override
2151
- String get resume_last_chat => 'Resume last chat on launch';
2139
+ String get resume_last_chat => '恢复上次聊天';
2140
2141
@override
2154
- String get resume_last_chat_desc =>
2155
- 'Restore your last open conversation when reopening the app.';
2142
+ String get resume_last_chat_desc => '启动时自动打开您上次活跃的对话';
2143
2144
@override
2158
- String get export_all_data => 'Export all data';
2145
+ String get export_all_data => '导出所有数据';
2146
2147
@override
2161
- String get import_all_data => 'Import all data';
2148
+ String get import_all_data => '导入所有数据';
2149
2150
@override
2164
- String get export_data_success => 'Backup exported successfully';
2151
+ String get export_data_success => '数据导出成功';
2152
2153
@override
2167
- String get import_data_success => 'Backup imported successfully';
2154
+ String get import_data_success => '数据导入成功';
2155
2156
@override
2157
String import_data_failed(String error) {
2171
- return 'Failed to import backup: $error';
2158
+ return '导入数据失败';
2159
}
2160
2161
@override
2175
- String get import_data_confirm =>
2176
- 'Import conversations and custom personas from this backup? Existing items with the same IDs will be updated.';
2162
+ String get import_data_confirm => '这将用导入的数据替换您当前的所有数据。是否继续?';
2163
2164
@override
2179
- String get import_settings_confirm =>
2180
- 'Replace current settings with the imported backup?';
2165
+ String get import_settings_confirm => '这将用导入的设置替换您当前的设置。是否继续?';
2166
2167
@override
2183
- String get export_conversations => 'Export conversations';
2168
+ String get export_conversations => '导出对话';
2169
2170
@override
2186
- String get import_conversations => 'Import conversations';
2171
+ String get import_conversations => '导入对话';
2172
2173
@override
2189
- String get export_personas => 'Export personas';
2174
+ String get export_personas => '导出角色';
2175
2176
@override
2192
- String get import_personas => 'Import personas';
2177
+ String get import_personas => '导入角色';
2178
2179
@override
2195
- String get export_settings => 'Export settings';
2180
+ String get export_settings => '导出设置';
2181
2182
@override
2198
- String get import_settings => 'Import settings';
2183
+ String get import_settings => '导入设置';
2184
2185
@override
2201
- String get export_all_zip => 'Export all (ZIP)';
2186
+ String get export_all_zip => '导出全部 (ZIP)';
2187
2188
@override
2204
- String get import_all_zip => 'Import all (ZIP)';
2189
+ String get import_all_zip => '导入全部 (ZIP)';
2190
2191
@override
2207
- String get duplicate_chat => 'Duplicate chat';
2192
+ String get duplicate_chat => '复制聊天';
2193
2194
@override
2210
- String get duplicate_chat_success => 'Chat duplicated';
2195
+ String get duplicate_chat_success => '聊天复制成功';
2196
2197
@override
2213
- String get move_to_folder => 'Move to folder';
2198
+ String get move_to_folder => '移动到文件夹';
2199
2200
@override
2216
- String get remove_from_folder => 'Remove from folder';
2201
+ String get remove_from_folder => '从文件夹中移除';
2202
2203
@override
2219
- String get create_folder => 'Create folder';
2204
+ String get create_folder => '创建文件夹';
2205
2206
@override
2222
- String get new_folder => 'New folder';
2207
+ String get new_folder => '新文件夹';
2208
2209
@override
2225
- String get folder_name_hint => 'Folder name';
2210
+ String get folder_name_hint => '输入文件夹名称...';
2211
2212
@override
2228
- String get all_chats => 'All';
2213
+ String get all_chats => '所有聊天';
2214
2215
@override
2231
- String get unfiled_chats => 'Unfiled';
2216
+ String get unfiled_chats => '未分类聊天';
2217
2218
@override
2234
- String get create => 'Create';
2219
+ String get create => '创建';
2220
2221
@override
2237
- String get server_path_prefix_label => 'API path prefix';
2222
+ String get server_path_prefix_label => '服务器路径前缀';
2223
2224
@override
2240
- String get server_path_prefix_hint => '/your-secret-token';
2225
+ String get server_path_prefix_hint => '服务器 API 路径的可选前缀 (例如 /v1)';
2226
2227
@override
2243
- String get search_message_contents => 'Search message contents';
2228
+ String get search_message_contents => '搜索消息内容...';
2229
2230
@override
2246
- String get message_search_results => 'Message matches';
2231
+ String get message_search_results => '消息搜索结果';
2232
2233
@override
2249
- String get saved_messages_title => 'Saved Messages';
2234
+ String get saved_messages_title => '已保存的消息';
2235
2236
@override
2252
- String get nav_saved_messages => 'Saved Messages';
2237
+ String get nav_saved_messages => '保存消息';
2238
2239
@override
2255
- String get saved_messages_empty =>
2256
- 'No saved messages yet. Bookmark a message from its options menu.';
2240
+ String get saved_messages_empty => '尚无保存的消息';
2241
2242
@override
2259
- String get save_message => 'Save message';
2243
+ String get save_message => '保存消息';
2244
2245
@override
2262
- String get message_saved => 'Message saved';
2246
+ String get message_saved => '消息已保存';
2247
2248
@override
2249
String token_count(int count) {
2266
- return '$count tokens';
2250
+ return 'Token 数: $count';
2251
}
2252
2253
@override
2254
String estimated_token_count(int count) {
2271
- return '~$count tokens (estimated)';
2255
+ return '预估 Token 数: $count';
2256
}
2257
2258
@override
2275
- String get test_tts_section_title => 'Test voice';
2259
+ String get test_tts_section_title => '文字转语音测试';
2260
2261
@override
2278
- String get test_tts_hint => 'Enter text to hear the current TTS engine…';
2262
+ String get test_tts_hint => '输入内容以测试声音...';
2263
2264
@override
2281
- String get test_speak_button => 'Speak';
2265
+ String get test_speak_button => '朗读';
2266
2267
@override
2284
- String get scroll_to_bottom => 'Scroll to bottom';
2268
+ String get scroll_to_bottom => '滚动到底部';
2269
2270
@override
2287
- String get generate_ai_response => 'Generate AI response';
2271
+ String get generate_ai_response => '生成 AI 回复';
2272
2273
@override
2290
- String get no_response => 'No response';
2274
+ String get no_response => '无回复';
2275
2276
@override
2293
- String get export => 'Export';
2277
+ String get export => '导出';
2278
2279
@override
2296
- String get import => 'Import';
2280
+ String get import => '导入';
2281
2282
@override
2299
- String get conversations_label => 'Conversations';
2283
+ String get conversations_label => '对话';
2284
2285
@override
2302
- String get personas_label => 'Personas';
2286
+ String get personas_label => '角色';
2287
2288
@override
2305
- String get settings_label => 'Settings';
2289
+ String get settings_label => '设置';
2290
2291
@override
2308
- String get export_conversation => 'Export conversation';
2292
+ String get export_conversation => '导出对话';
2293
2294
@override
2311
- String get tts_process_markdown => 'Process markdown for speech';
2295
+ String get tts_process_markdown => '处理 Markdown';
2296
2297
@override
2314
- String get tts_process_markdown_desc =>
2315
- 'Strip formatting like **bold** before reading aloud';
2298
+ String get tts_process_markdown_desc => '在朗读前去除 **加粗** 等格式标记';
2299
2300
@override
2318
- String get tts_skip_seconds => 'Skip interval';
2301
+ String get tts_skip_seconds => '跳过秒数';
2302
2303
@override
2321
- String get tts_skip_seconds_desc =>
2322
- 'Forward and rewind jump size during playback';
2304
+ String get tts_skip_seconds_desc => '语音播放器中快进/快退的时间';
2305
2306
@override
2307
String tts_skip_seconds_value(int seconds) {
2326
- return '${seconds}s';
2308
+ return '$seconds秒';
2309
}
2310
2311
@override
2330
- String get preview_system_prompts => 'Preview system prompts';
2312
+ String get preview_system_prompts => '预览系统提示词';
2313
2314
@override
2333
- String get welcome_message_1 => 'What can I help you with today?';
2315
+ String get welcome_message_1 => '你好!我是您的本地 AI 助手。';
2316
2317
@override
2336
- String get welcome_message_2 => 'Ask me anything — I\'m ready when you are.';
2318
+ String get welcome_message_2 => '问我任何问题——我随时恭候。';
2319
2320
@override
2339
- String get welcome_message_3 => 'Start a conversation below.';
2321
+ String get welcome_message_3 => '您的数据完全在本地处理,绝不会离开您的设备。';
2322
2323
@override
2342
- String get welcome_message_4 => 'Need ideas? Try one of the quick prompts.';
2324
+ String get welcome_message_4 => '要开始,请从顶部栏中选择一个模型,或在模型管理部分中添加一个新模型。';
2325
2326
@override
2345
- String get temporary_chat => 'Temporary chat';
2327
+ String get temporary_chat => '临时聊天';
2328
2329
@override
2348
- String get temporary_chat_desc => 'Chats aren\'t saved to history.';
2330
+ String get temporary_chat_desc => '此聊天中的消息不会保存到历史记录中';
2331
2332
@override
2351
- String get temporary_chat_banner => 'Temporary chat — not saved to history';
2333
+ String get temporary_chat_banner => '临时聊天处于活动状态——消息将不保存到历史记录';
2334
2335
@override
2354
- String get temporary_chat_save_warning_title =>
2355
- 'Save message in temporary chat?';
2336
+ String get temporary_chat_save_warning_title => '保存临时聊天?';
2337
2338
@override
2358
- String get temporary_chat_save_warning_body =>
2359
- 'This chat is temporary and hidden from history. The saved message will still appear in Saved Messages.';
2339
+ String get temporary_chat_save_warning_body => '此聊天未保存到您的历史记录中。您想现在保存吗?';
2340
2341
@override
2362
- String get save_to_history => 'Save to history';
2342
+ String get save_to_history => '保存到历史记录';
2343
2344
@override
2365
- String get share_conversation => 'Share conversation';
2345
+ String get share_conversation => '分享对话';
2346
2347
@override
2368
- String get download_tts_audio => 'Download audio';
2348
+ String get download_tts_audio => '下载音频';
2349
2350
@override
2371
- String get tts_download_unavailable =>
2372
- 'Download is only available for Piper and Kitten TTS';
2351
+ String get tts_download_unavailable => '音频下载不可用';
2352
2353
@override
2375
- String get tts_download_no_audio => 'No audio available to download yet';
2354
+ String get tts_download_no_audio => '没有生成的可供下载的音频';
2355
2356
@override
2378
- String get tts_download_success => 'Audio saved';
2357
+ String get tts_download_success => '音频保存成功';
2358
2359
@override
2381
- String get return_to_chat => 'Return to chat';
2360
+ String get return_to_chat => '返回聊天';
2361
2362
@override
2384
- String get return_to_temp_chat => 'Return to temporary chat';
2363
+ String get return_to_temp_chat => '返回临时聊天';
2364
2365
@override
2387
- String get insert_saved_message => 'Insert saved message';
2366
+ String get insert_saved_message => '插入已保存的消息';
2367
2368
@override
2390
- String get insert_saved_message_desc =>
2391
- 'Choose a saved message to add to your input';
2369
+ String get insert_saved_message_desc => '将您已保存的文本片段添加到聊天中';
2370
2371
@override
2394
- String get model_info => 'Model info';
2372
+ String get model_info => '模型信息';
2373
2374
@override
2397
- String get model_name => 'Model name';
2375
+ String get model_name => '模型名称';
2376
2377
@override
2400
- String get model_identifier => 'Identifier';
2378
+ String get model_identifier => '模型标识符';
2379
2380
@override
2403
- String get not_available => 'Not available';
2381
+ String get not_available => '不可用';
2382
2383
@override
2406
- String get save_message_folders => 'Save message';
2384
+ String get save_message_folders => '保存到文件夹';
2385
2386
@override
2409
- String get remove_from_saved => 'Remove from saved';
2387
+ String get remove_from_saved => '从已保存中移除';
2388
2389
@override
2412
- String get message_already_saved => 'Saved';
2390
+ String get message_already_saved => '消息已保存';
2391
2392
@override
2415
- String get stream_ttft => 'Time to first token';
2393
+ String get stream_ttft => '首个 Token 延迟';
2394
2395
@override
2418
- String get stream_tokens_per_sec => 'Tokens per second';
2396
+ String get stream_tokens_per_sec => '每秒 Token 数';
2397
2398
@override
2421
- String get stream_stop_reason => 'Stop reason';
2399
+ String get stream_stop_reason => '停止原因';
2400
2401
@override
2424
- String get stream_input_tokens => 'Input tokens';
2402
+ String get stream_input_tokens => '输入 Token 数';
2403
2404
@override
2427
- String get stream_output_tokens => 'Output tokens';
2405
+ String get stream_output_tokens => '输出 Token 数';
2406
2407
@override
2430
- String get stream_generation_time => 'Generation time';
2408
+ String get stream_generation_time => '生成时间';
2409
2410
@override
2433
- String get attach_image => 'Image';
2411
+ String get attach_image => '附加图片';
2412
2413
@override
2436
- String get attach_text_document => 'Text document';
2414
+ String get attach_text_document => '附加文本文件';
2415
2416
@override
2439
- String get add_attachment => 'Add attachment';
2417
+ String get add_attachment => '添加附件';
2418
2419
@override
2442
- String get photo_permission_denied =>
2443
- 'Photo access is required to attach images';
2420
+ String get photo_permission_denied => '相册权限被拒绝';
2421
2422
@override
2446
- String get characters_label => 'Characters';
2423
+ String get characters_label => '字符数';
2424
2425
@override
2449
- String get exit_temporary_chat_title => 'Exit temporary chat?';
2426
+ String get exit_temporary_chat_title => '退出临时聊天?';
2427
2428
@override
2452
- String get exit_temporary_chat_body =>
2453
- 'This will discard the current temporary chat and return to a new chat.';
2429
+ String get exit_temporary_chat_body => '这将永久删除当前的对话。是否继续?';
2430
2431
@override
2456
- String get saved_message_temp_snap_unavailable =>
2457
- 'This message was saved from a temporary chat and can\'t be opened in its original conversation.';
2432
+ String get saved_message_temp_snap_unavailable => '临时聊天中不支持消息快照';
2433
2434
@override
2460
- String get filter_title => 'Filter';
2435
+ String get filter_title => '筛选聊天';
2436
2437
@override
2463
- String get filter_pinned => 'Pinned';
2438
+ String get filter_pinned => '已置顶';
2439
2440
@override
2466
- String get filter_archived => 'Archived';
2441
+ String get filter_archived => '已归档';
2442
2443
@override
2469
- String get filter_temp_chats => 'Temporary chats';
2444
+ String get filter_temp_chats => '临时聊天';
2445
2446
@override
2472
- String get filter_user_messages => 'User messages';
2447
+ String get filter_user_messages => '用户消息';
2448
2449
@override
2475
- String get filter_assistant_messages => 'Assistant messages';
2450
+ String get filter_assistant_messages => '助手消息';
2451
2452
@override
2478
- String get archive_chat => 'Archive';
2453
+ String get archive_chat => '归档聊天';
2454
2455
@override
2481
- String get unarchive_chat => 'Unarchive';
2456
+ String get unarchive_chat => '取消归档';
2457
2458
@override
2459
String conversation_message_count(int count) {
2485
- String _temp0 = intl.Intl.pluralLogic(
2486
- count,
2487
- locale: localeName,
2488
- other: '$count messages',
2489
- one: '1 message',
2490
- );
2491
- return '$_temp0';
2460
+ return '$count 条消息';
2461
}
2462
2463
@override
2464
String conversation_character_count(int count) {
2496
- return '$count chars';
2465
+ return '$count 个字符';
2466
}
2467
2468
@override
2500
- String get generate_title_with_ai => 'Generate with AI';
2469
+ String get generate_title_with_ai => '使用 AI 生成标题';
2470
2471
@override
2503
- String get generating_title => 'Generating...';
2472
+ String get generating_title => '正在生成标题...';
2473
2474
@override
2506
- String get generate_title_failed => 'Could not generate a title';
2475
+ String get generate_title_failed => '无法生成标题';
2476
2477
@override
2509
- String get lm_studio_model_browser_title => 'Browse models';
2478
+ String get lm_studio_model_browser_title => '模型浏览器';
2479
2480
@override
2512
- String get lm_studio_model_search_hint => 'Search models by name or author…';
2481
+ String get lm_studio_model_search_hint => '搜索模型...';
2482
2483
@override
2515
- String get lm_studio_staff_picks => 'Staff picks';
2484
+ String get lm_studio_staff_picks => '编辑精选';
2485
2486
@override
2518
- String get lm_studio_community_models => 'Community models';
2487
+ String get lm_studio_community_models => '社区模型';
2488
2489
@override
2521
- String get lm_studio_no_models => 'No models found';
2490
+ String get lm_studio_no_models => '未找到模型';
2491
2492
@override
2493
String lm_studio_models_count(int count) {
2525
- return '$count models';
2494
+ return '$count 个模型';
2495
}
2496
2497
@override
2529
- String get lm_studio_browse_models => 'Browse & download';
2498
+ String get lm_studio_browse_models => '在 LM Studio 中浏览模型';
2499
2500
@override
2532
- String get lm_studio_model_search => 'LMS Model Search';
2501
+ String get lm_studio_model_search => '模型搜索';
2502
2503
@override
2535
- String get lm_studio_downloads_title => 'Downloads';
2504
+ String get lm_studio_downloads_title => '下载';
2505
2506
@override
2538
- String get lm_studio_choose_quant => 'Choose a download option';
2507
+ String get lm_studio_choose_quant => '选择量化版本';
2508
2509
@override
2541
- String get lm_studio_use_default_quant => 'Use default';
2510
+ String get lm_studio_use_default_quant => '使用默认量化版本';
2511
2512
@override
2544
- String get lm_studio_recommended => 'Recommended';
2513
+ String get lm_studio_recommended => '推荐';
2514
2515
@override
2547
- String get lm_studio_clear_downloads => 'Clear finished';
2516
+ String get lm_studio_clear_downloads => '清除已完成的下载';
2517
2518
@override
2550
- String get lm_studio_no_downloads => 'No downloads yet';
2519
+ String get lm_studio_no_downloads => '无活动中的下载';
2520
2521
@override
2553
- String get lm_studio_downloads_disclaimer =>
2554
- 'Downloads run on the LM Studio host. Pausing, stopping, and deleting models must be done on that computer — not from this app.';
2522
+ String get lm_studio_downloads_disclaimer => '模型下载直接从 Hugging Face 获取。';
2523
2524
@override
2557
- String get lm_studio_staff_pick => 'Staff pick';
2525
+ String get lm_studio_staff_pick => '推荐模型';
2526
2527
@override
2560
- String get lm_studio_params => 'PARAMS';
2528
+ String get lm_studio_params => '参数';
2529
2530
@override
2563
- String get lm_studio_arch => 'ARCH';
2531
+ String get lm_studio_arch => '架构';
2532
2533
@override
2566
- String get lm_studio_domain => 'DOMAIN';
2534
+ String get lm_studio_domain => '领域';
2535
2536
@override
2569
- String get lm_studio_format => 'FORMAT';
2537
+ String get lm_studio_format => '格式';
2538
2539
@override
2572
- String get lm_studio_vision => 'Vision';
2540
+ String get lm_studio_vision => '视觉能力';
2541
2542
@override
2575
- String get lm_studio_tool_use => 'Tool use';
2543
+ String get lm_studio_tool_use => '工具调用';
2544
2545
@override
2578
- String get lm_studio_reasoning => 'Reasoning';
2546
+ String get lm_studio_reasoning => '推理能力';
2547
2548
@override
2581
- String get lm_studio_download_options => 'Download options';
2549
+ String get lm_studio_download_options => '下载选项';
2550
2551
@override
2584
- String get lm_studio_download => 'Download';
2552
+ String get lm_studio_download => '下载';
2553
2554
@override
2555
String lm_studio_download_size(String size) {
2588
- return 'Download $size';
2556
+ return '下载大小';
2557
}
2558
2559
@override
2560
String lm_studio_downloading_percent(int percent) {
2593
- return 'Downloading $percent%';
2561
+ return '正在下载: $percent%';
2562
}
2563
2564
@override
2597
- String get lm_studio_readme_unavailable =>
2598
- 'README not available for this model.';
2565
+ String get lm_studio_readme_unavailable => '此模型无 README 说明文件。';
2566
2567
@override
2601
- String get lm_studio_full_gpu_offload => 'Full GPU offload possible';
2568
+ String get lm_studio_full_gpu_offload => '支持完全 GPU 卸载';
2569
2570
@override
2604
- String get lm_studio_partial_gpu_offload => 'Partial GPU offload possible';
2571
+ String get lm_studio_partial_gpu_offload => '支持部分 GPU 卸载';
2572
2573
@override
2607
- String get lm_studio_likely_too_large => 'Likely too large';
2574
+ String get lm_studio_likely_too_large => '可能过大';
2575
2576
@override
2610
- String get lm_studio_available_ram_gb => 'Available RAM (GB, optional)';
2577
+ String get lm_studio_available_ram_gb => '可用 RAM (GB, 可选)';
2578
2579
@override
2613
- String get lm_studio_available_vram_gb => 'Available VRAM (GB, optional)';
2580
+ String get lm_studio_available_vram_gb => '可用 VRAM (GB, 可选)';
2581
2582
@override
2616
- String get lm_studio_memory_settings_title => 'Memory for recommendations';
2583
+ String get lm_studio_memory_settings_title => '用于推荐的内存大小';
2584
2585
@override
2619
- String get lm_studio_memory_settings_desc =>
2620
- 'Used to estimate whether models fit on your machine in the model browser.';
2586
+ String get lm_studio_memory_settings_desc => '用于在模型浏览器中预估模型是否可以在您的设备上运行。';
2587
2588
@override
2623
- String get think_button_label => 'Think';
2589
+ String get think_button_label => '思考';
2590
2591
@override
2626
- String get reasoning_effort_low => 'Low';
2592
+ String get reasoning_effort_low => '低';
2593
2594
@override
2629
- String get reasoning_effort_medium => 'Medium';
2595
+ String get reasoning_effort_medium => '中';
2596
2597
@override
2632
- String get reasoning_effort_high => 'High';
2598
+ String get reasoning_effort_high => '高';
2599
+
2600
+ @override
2601
+ String get could_not_read_file => '无法读取文件';
2602
+
2603
+ @override
2604
+ String get server_offline => '服务器已离线';
2605
+
2606
+ @override
2607
+ String get could_not_establish_connection =>
2608
+ '无法与服务器建立连接。请检查您的服务器是否正在运行,以及主机/端口设置是否正确。';
2609
+
2610
+ @override
2611
+ String get retry_connection => '重试连接';
2612
+
2613
+ @override
2614
+ String get tokens_label => 'Token 数';
2615
+
2616
+ @override
2617
+ String get enter_context_length => '输入上下文长度...';
2618
}
2619
2620
/// The translations for Chinese, as used in Taiwan (`zh_TW`).
@@ -2888,6 +2873,149 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
2873
@override
2874
String get delete_persona_body => '此操作無法復原。';
2875
2876
+ @override
2877
+ String get delete_builtin_persona_body => '這是一個內置角色。您稍後可以在「設定」中將其恢復。';
2878
+
2879
+ @override
2880
+ String get restore_builtin_personas => '恢復預設角色';
2881
+
2882
+ @override
2883
+ String get restore_builtin_personas_desc => '重新添加您已刪除的任何內置角色';
2884
+
2885
+ @override
2886
+ String get restore_builtin_personas_success => '已恢復預設角色';
2887
+
2888
+ @override
2889
+ String get clear_personas => '清除角色';
2890
+
2891
+ @override
2892
+ String get enable_image_compression => '發送前壓縮圖片';
2893
+
2894
+ @override
2895
+ String get enable_image_compression_desc => '調整並壓縮附加圖片的大小,以使上傳大小保持在伺服器限制內';
2896
+
2897
+ @override
2898
+ String get image_compression_level => '壓縮強度';
2899
+
2900
+ @override
2901
+ String get image_compression_level_desc => '較高的壓縮強度會生成質量較低但上傳更小的圖片';
2902
+
2903
+ @override
2904
+ String get image_compression_level_low => '低';
2905
+
2906
+ @override
2907
+ String get image_compression_level_medium => '中';
2908
+
2909
+ @override
2910
+ String get image_compression_level_high => '高';
2911
+
2912
+ @override
2913
+ String get sort_models_tooltip => '排序模型';
2914
+
2915
+ @override
2916
+ String get sort_by_favorites => '收藏優先';
2917
+
2918
+ @override
2919
+ String get sort_by_name => '名稱 (A-Z)';
2920
+
2921
+ @override
2922
+ String get sort_by_size_smallest => '大小 (從小到大)';
2923
+
2924
+ @override
2925
+ String get sort_by_size_largest => '大小 (從大到小)';
2926
+
2927
+ @override
2928
+ String get sort_by_context_length => '上下文長度';
2929
+
2930
+ @override
2931
+ String bulk_ai_rename_progress(int done, int total) {
2932
+ return '正在重命名 $done/$total...';
2933
+ }
2934
+
2935
+ @override
2936
+ String selected_count(int count) {
2937
+ return '已選擇 $count 個';
2938
+ }
2939
+
2940
+ @override
2941
+ String get ai_rename_tooltip => '使用 AI 重命名所選內容';
2942
+
2943
+ @override
2944
+ String get new_chat_in_folder_tooltip => '在此資料夾中新建聊天';
2945
+
2946
+ @override
2947
+ String total_tokens_count(int count) {
2948
+ return '$count 個 Token';
2949
+ }
2950
+
2951
+ @override
2952
+ String get smart_replies_use_persona => '在智能回覆中應用角色';
2953
+
2954
+ @override
2955
+ String get smart_replies_use_persona_desc => '建議的回覆將符合當前啟用角色的語氣,而不是通用的助手語氣';
2956
+
2957
+ @override
2958
+ String get keep_persona_on_new_chat => '新聊天保留角色';
2959
+
2960
+ @override
2961
+ String get keep_persona_on_new_chat_desc => '開始新聊天時不要清除選定的角色';
2962
+
2963
+ @override
2964
+ String get role_swap_button_enabled => '顯示角色切換按鈕';
2965
+
2966
+ @override
2967
+ String get role_swap_button_enabled_desc =>
2968
+ '在聊天輸入框中顯示一個按鈕,允許您以助手而非用戶的身份發送消息,而不生成任何回覆';
2969
+
2970
+ @override
2971
+ String get send_as_user_tooltip => '以用戶身份發送';
2972
+
2973
+ @override
2974
+ String get send_as_assistant_tooltip => '以助手身份發送 (無回覆)';
2975
+
2976
+ @override
2977
+ String get insert_without_generating_tooltip => '僅插入不生成回覆';
2978
+
2979
+ @override
2980
+ String get token_usage_title => 'Token 使用情況';
2981
+
2982
+ @override
2983
+ String get total_tokens_label => '已用 Token';
2984
+
2985
+ @override
2986
+ String get usage_percent_label => '已用上下文';
2987
+
2988
+ @override
2989
+ String get export_choice_title => '匯出';
2990
+
2991
+ @override
2992
+ String get export_choice_body => '您希望如何匯出此內容?';
2993
+
2994
+ @override
2995
+ String get copy_to_clipboard => '複製到剪貼簿';
2996
+
2997
+ @override
2998
+ String bulk_export_conversations_success(int count) {
2999
+ return '已成功匯出 $count 個對話';
3000
+ }
3001
+
3002
+ @override
3003
+ String get bulk_ai_rename_confirm_title => '使用 AI 重命名?';
3004
+
3005
+ @override
3006
+ String bulk_ai_rename_confirm_body(int count) {
3007
+ return '這將請求 AI 為每個選定的 $count 個對話生成新標題,替換其當前的標題。此操作可能需要一些時間,且無法撤銷。';
3008
+ }
3009
+
3010
+ @override
3011
+ String get sort_by_modified_date => '最近修改';
3012
+
3013
+ @override
3014
+ String get sort_by_created_date => '創建日期';
3015
+
3016
+ @override
3017
+ String get sort_title => '排序';
3018
+
3019
@override
3020
String get clear_conversation_title => '要清除對話嗎?';
3021
@@ -3092,6 +3220,15 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
3220
@override
3221
String get enable_smart_reply => '裝置端智慧回覆';
3222
3223
+ @override
3224
+ String get ai_user_response_enabled => 'AI 用戶消息 (長按發送)';
3225
+
3226
+ @override
3227
+ String get ai_user_response_enabled_desc => '長按發送按鈕 3 秒鐘以讓 AI 撰寫並發送您的下一條消息';
3228
+
3229
+ @override
3230
+ String get ai_user_response_tooltip => '使用 AI 生成用戶消息';
3231
+
3232
@override
3233
String get streaming_responses => '串流響應';
3234
@@ -3104,6 +3241,16 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
3241
@override
3242
String get show_system_messages => '顯示系統訊息';
3243
3244
+ @override
3245
+ String get show_system_messages_desc => '當沒有選定角色時,每次請求都發送預設的助手系統提示詞';
3246
+
3247
+ @override
3248
+ String get show_system_messages_in_chat => '在聊天中顯示系統消息';
3249
+
3250
+ @override
3251
+ String get show_system_messages_in_chat_desc =>
3252
+ '將系統消息 (例如來自導入的備份) 作為對話中的可見氣泡顯示';
3253
+
3254
@override
3255
String get haptic_feedback => '觸覺回饋';
3256
@@ -3158,6 +3305,12 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
3305
@override
3306
String get select_persona => '選擇角色';
3307
3308
+ @override
3309
+ String get manage_personas => '管理角色';
3310
+
3311
+ @override
3312
+ String get personas_combine_hint => '選定的角色將被合併';
3313
+
3314
@override
3315
String get start_conversation => '開始對話';
3316
@@ -4122,6 +4275,31 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
4275
return '$ctx 上下文 (ctx)';
4276
}
4277
4278
+ @override
4279
+ String get unload_all_models => '卸載所有模型';
4280
+
4281
+ @override
4282
+ String loaded_models_count(int count) {
4283
+ return '已載入 $count 個模型';
4284
+ }
4285
+
4286
+ @override
4287
+ String get all_models_unloaded => '所有模型已卸載';
4288
+
4289
+ @override
4290
+ String get branch_chat => '分支聊天';
4291
+
4292
+ @override
4293
+ String get branch_chat_desc => '從此消息開始新建聊天';
4294
+
4295
+ @override
4296
+ String get edit_assistant_message_desc => '編輯助手消息的內容';
4297
+
4298
+ @override
4299
+ String switch_to_model(String modelName, Object model) {
4300
+ return '切換到模型 $model';
4301
+ }
4302
+
4303
@override
4304
String download_notification_title(String modelName) {
4305
return '正在下載 $modelName...';
@@ -4552,4 +4730,503 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
4730
4731
@override
4732
String get tool_status_failed => 'Failed';
4733
+
4734
+ @override
4735
+ String get model_favorite_toggle => '切換收藏';
4736
+
4737
+ @override
4738
+ String get model_note_label => '備註';
4739
+
4740
+ @override
4741
+ String get model_note_hint => '為此模型添加個人備註...';
4742
+
4743
+ @override
4744
+ String get unload_models_before_load => '載入前卸載模型';
4745
+
4746
+ @override
4747
+ String get temp_chat_keyboard_incognito => '臨時聊天中的隱私鍵盤';
4748
+
4749
+ @override
4750
+ String get temp_chat_keyboard_incognito_desc => '請求系統鍵盤在臨時聊天期間不保存輸入歷史記錄';
4751
+
4752
+ @override
4753
+ String get resume_last_chat => '恢復上次聊天';
4754
+
4755
+ @override
4756
+ String get resume_last_chat_desc => '啟動時自動打開您上次活躍的對話';
4757
+
4758
+ @override
4759
+ String get export_all_data => '匯出所有數據';
4760
+
4761
+ @override
4762
+ String get import_all_data => '導入所有數據';
4763
+
4764
+ @override
4765
+ String get export_data_success => '數據匯出成功';
4766
+
4767
+ @override
4768
+ String get import_data_success => '數據導入成功';
4769
+
4770
+ @override
4771
+ String import_data_failed(String error) {
4772
+ return '導入數據失敗';
4773
+ }
4774
+
4775
+ @override
4776
+ String get import_data_confirm => '這將用導入的數據替換您當前的所有數據。是否繼續?';
4777
+
4778
+ @override
4779
+ String get import_settings_confirm => '這將用導入的設定替換您當前的設定。是否繼續?';
4780
+
4781
+ @override
4782
+ String get export_conversations => '匯出對話';
4783
+
4784
+ @override
4785
+ String get import_conversations => '導入對話';
4786
+
4787
+ @override
4788
+ String get export_personas => '匯出角色';
4789
+
4790
+ @override
4791
+ String get import_personas => '導入角色';
4792
+
4793
+ @override
4794
+ String get export_settings => '匯出設定';
4795
+
4796
+ @override
4797
+ String get import_settings => '導入設定';
4798
+
4799
+ @override
4800
+ String get export_all_zip => '匯出全部 (ZIP)';
4801
+
4802
+ @override
4803
+ String get import_all_zip => '導入全部 (ZIP)';
4804
+
4805
+ @override
4806
+ String get duplicate_chat => '複製聊天';
4807
+
4808
+ @override
4809
+ String get duplicate_chat_success => '聊天複製成功';
4810
+
4811
+ @override
4812
+ String get move_to_folder => '移動到資料夾';
4813
+
4814
+ @override
4815
+ String get remove_from_folder => '從資料夾中移除';
4816
+
4817
+ @override
4818
+ String get create_folder => '創建資料夾';
4819
+
4820
+ @override
4821
+ String get new_folder => '新資料夾';
4822
+
4823
+ @override
4824
+ String get folder_name_hint => '輸入資料夾名稱...';
4825
+
4826
+ @override
4827
+ String get all_chats => '所有聊天';
4828
+
4829
+ @override
4830
+ String get unfiled_chats => '未分類聊天';
4831
+
4832
+ @override
4833
+ String get create => '創建';
4834
+
4835
+ @override
4836
+ String get server_path_prefix_label => '伺服器路徑前綴';
4837
+
4838
+ @override
4839
+ String get server_path_prefix_hint => '伺服器 API 路徑的可選前綴 (例如 /v1)';
4840
+
4841
+ @override
4842
+ String get search_message_contents => '搜尋消息內容...';
4843
+
4844
+ @override
4845
+ String get message_search_results => '消息搜尋結果';
4846
+
4847
+ @override
4848
+ String get saved_messages_title => '已保存的消息';
4849
+
4850
+ @override
4851
+ String get nav_saved_messages => '保存消息';
4852
+
4853
+ @override
4854
+ String get saved_messages_empty => '尚無保存的消息';
4855
+
4856
+ @override
4857
+ String get save_message => '保存消息';
4858
+
4859
+ @override
4860
+ String get message_saved => '消息已保存';
4861
+
4862
+ @override
4863
+ String token_count(int count) {
4864
+ return 'Token 數: $count';
4865
+ }
4866
+
4867
+ @override
4868
+ String estimated_token_count(int count) {
4869
+ return '預估 Token 數: $count';
4870
+ }
4871
+
4872
+ @override
4873
+ String get test_tts_section_title => '文字轉語音測試';
4874
+
4875
+ @override
4876
+ String get test_tts_hint => '輸入內容以測試聲音...';
4877
+
4878
+ @override
4879
+ String get test_speak_button => '朗讀';
4880
+
4881
+ @override
4882
+ String get scroll_to_bottom => '滾動到底部';
4883
+
4884
+ @override
4885
+ String get generate_ai_response => '生成 AI 回覆';
4886
+
4887
+ @override
4888
+ String get no_response => '無回覆';
4889
+
4890
+ @override
4891
+ String get export => '匯出';
4892
+
4893
+ @override
4894
+ String get import => '導入';
4895
+
4896
+ @override
4897
+ String get conversations_label => '對話';
4898
+
4899
+ @override
4900
+ String get personas_label => '角色';
4901
+
4902
+ @override
4903
+ String get settings_label => '設定';
4904
+
4905
+ @override
4906
+ String get export_conversation => '匯出對話';
4907
+
4908
+ @override
4909
+ String get tts_process_markdown => '處理 Markdown';
4910
+
4911
+ @override
4912
+ String get tts_process_markdown_desc => '在朗讀前去除 **加粗** 等格式標記';
4913
+
4914
+ @override
4915
+ String get tts_skip_seconds => '跳過秒數';
4916
+
4917
+ @override
4918
+ String get tts_skip_seconds_desc => '語音播放器中快進/快退的時間';
4919
+
4920
+ @override
4921
+ String tts_skip_seconds_value(int seconds) {
4922
+ return '$seconds秒';
4923
+ }
4924
+
4925
+ @override
4926
+ String get preview_system_prompts => '預覽系統提示詞';
4927
+
4928
+ @override
4929
+ String get welcome_message_1 => '你好!我是您的本地 AI 助手。';
4930
+
4931
+ @override
4932
+ String get welcome_message_2 => '問我任何問題——我隨時恭候。';
4933
+
4934
+ @override
4935
+ String get welcome_message_3 => '您的數據完全在本地處理,絕不會離開您的設備。';
4936
+
4937
+ @override
4938
+ String get welcome_message_4 => '要開始,請從頂部欄中選擇一個模型,或在模型管理部分中添加一個新模型。';
4939
+
4940
+ @override
4941
+ String get temporary_chat => '臨時聊天';
4942
+
4943
+ @override
4944
+ String get temporary_chat_desc => '此聊天中的消息不會保存到歷史記錄中';
4945
+
4946
+ @override
4947
+ String get temporary_chat_banner => '臨時聊天處於活動狀態——消息將不保存到歷史記錄';
4948
+
4949
+ @override
4950
+ String get temporary_chat_save_warning_title => '保存臨時聊天?';
4951
+
4952
+ @override
4953
+ String get temporary_chat_save_warning_body => '此聊天未保存到您的歷史記錄中。您想現在保存嗎?';
4954
+
4955
+ @override
4956
+ String get save_to_history => '保存到歷史記錄';
4957
+
4958
+ @override
4959
+ String get share_conversation => '分享對話';
4960
+
4961
+ @override
4962
+ String get download_tts_audio => '下載音訊';
4963
+
4964
+ @override
4965
+ String get tts_download_unavailable => '音訊下載不可用';
4966
+
4967
+ @override
4968
+ String get tts_download_no_audio => '沒有生成的可供下載的音訊';
4969
+
4970
+ @override
4971
+ String get tts_download_success => '音訊保存成功';
4972
+
4973
+ @override
4974
+ String get return_to_chat => '返回聊天';
4975
+
4976
+ @override
4977
+ String get return_to_temp_chat => '返回臨時聊天';
4978
+
4979
+ @override
4980
+ String get insert_saved_message => '插入已保存的消息';
4981
+
4982
+ @override
4983
+ String get insert_saved_message_desc => '將您已保存的文字片段添加到聊天中';
4984
+
4985
+ @override
4986
+ String get model_info => '模型資訊';
4987
+
4988
+ @override
4989
+ String get model_name => '模型名稱';
4990
+
4991
+ @override
4992
+ String get model_identifier => '模型識別碼';
4993
+
4994
+ @override
4995
+ String get not_available => '不可用';
4996
+
4997
+ @override
4998
+ String get save_message_folders => '保存到資料夾';
4999
+
5000
+ @override
5001
+ String get remove_from_saved => '從已保存中移除';
5002
+
5003
+ @override
5004
+ String get message_already_saved => '消息已保存';
5005
+
5006
+ @override
5007
+ String get stream_ttft => '首個 Token 延遲';
5008
+
5009
+ @override
5010
+ String get stream_tokens_per_sec => '每秒 Token 數';
5011
+
5012
+ @override
5013
+ String get stream_stop_reason => '停止原因';
5014
+
5015
+ @override
5016
+ String get stream_input_tokens => '輸入 Token 數';
5017
+
5018
+ @override
5019
+ String get stream_output_tokens => '輸出 Token 數';
5020
+
5021
+ @override
5022
+ String get stream_generation_time => '生成時間';
5023
+
5024
+ @override
5025
+ String get attach_image => '附加圖片';
5026
+
5027
+ @override
5028
+ String get attach_text_document => '附加文字檔案';
5029
+
5030
+ @override
5031
+ String get add_attachment => '添加附件';
5032
+
5033
+ @override
5034
+ String get photo_permission_denied => '相簿權限被拒絕';
5035
+
5036
+ @override
5037
+ String get characters_label => '字元數';
5038
+
5039
+ @override
5040
+ String get exit_temporary_chat_title => '退出臨時聊天?';
5041
+
5042
+ @override
5043
+ String get exit_temporary_chat_body => '這將永久刪除當前的對話。是否繼續?';
5044
+
5045
+ @override
5046
+ String get saved_message_temp_snap_unavailable => '臨時聊天中不支援消息快照';
5047
+
5048
+ @override
5049
+ String get filter_title => '篩選聊天';
5050
+
5051
+ @override
5052
+ String get filter_pinned => '已置頂';
5053
+
5054
+ @override
5055
+ String get filter_archived => '已封存';
5056
+
5057
+ @override
5058
+ String get filter_temp_chats => '臨時聊天';
5059
+
5060
+ @override
5061
+ String get filter_user_messages => '用戶消息';
5062
+
5063
+ @override
5064
+ String get filter_assistant_messages => '助手消息';
5065
+
5066
+ @override
5067
+ String get archive_chat => '封存聊天';
5068
+
5069
+ @override
5070
+ String get unarchive_chat => '取消封存';
5071
+
5072
+ @override
5073
+ String conversation_message_count(int count) {
5074
+ return '$count 條消息';
5075
+ }
5076
+
5077
+ @override
5078
+ String conversation_character_count(int count) {
5079
+ return '$count 個字元';
5080
+ }
5081
+
5082
+ @override
5083
+ String get generate_title_with_ai => '使用 AI 生成標題';
5084
+
5085
+ @override
5086
+ String get generating_title => '正在生成標題...';
5087
+
5088
+ @override
5089
+ String get generate_title_failed => '無法生成標題';
5090
+
5091
+ @override
5092
+ String get lm_studio_model_browser_title => '模型瀏覽器';
5093
+
5094
+ @override
5095
+ String get lm_studio_model_search_hint => '搜尋模型...';
5096
+
5097
+ @override
5098
+ String get lm_studio_staff_picks => '編輯精選';
5099
+
5100
+ @override
5101
+ String get lm_studio_community_models => '社區模型';
5102
+
5103
+ @override
5104
+ String get lm_studio_no_models => '未找到模型';
5105
+
5106
+ @override
5107
+ String lm_studio_models_count(int count) {
5108
+ return '$count 個模型';
5109
+ }
5110
+
5111
+ @override
5112
+ String get lm_studio_browse_models => '在 LM Studio 中瀏覽模型';
5113
+
5114
+ @override
5115
+ String get lm_studio_model_search => '模型搜尋';
5116
+
5117
+ @override
5118
+ String get lm_studio_downloads_title => '下載';
5119
+
5120
+ @override
5121
+ String get lm_studio_choose_quant => '選擇量化版本';
5122
+
5123
+ @override
5124
+ String get lm_studio_use_default_quant => '使用預設量化版本';
5125
+
5126
+ @override
5127
+ String get lm_studio_recommended => '推薦';
5128
+
5129
+ @override
5130
+ String get lm_studio_clear_downloads => '清除已完成的下載';
5131
+
5132
+ @override
5133
+ String get lm_studio_no_downloads => '無活動中的下載';
5134
+
5135
+ @override
5136
+ String get lm_studio_downloads_disclaimer => '模型下載直接從 Hugging Face 獲取。';
5137
+
5138
+ @override
5139
+ String get lm_studio_staff_pick => '推薦模型';
5140
+
5141
+ @override
5142
+ String get lm_studio_params => '參數';
5143
+
5144
+ @override
5145
+ String get lm_studio_arch => '架構';
5146
+
5147
+ @override
5148
+ String get lm_studio_domain => '領域';
5149
+
5150
+ @override
5151
+ String get lm_studio_format => '格式';
5152
+
5153
+ @override
5154
+ String get lm_studio_vision => '視覺能力';
5155
+
5156
+ @override
5157
+ String get lm_studio_tool_use => '工具調用';
5158
+
5159
+ @override
5160
+ String get lm_studio_reasoning => '推理能力';
5161
+
5162
+ @override
5163
+ String get lm_studio_download_options => '下載選項';
5164
+
5165
+ @override
5166
+ String get lm_studio_download => '下載';
5167
+
5168
+ @override
5169
+ String lm_studio_download_size(String size) {
5170
+ return '下載大小';
5171
+ }
5172
+
5173
+ @override
5174
+ String lm_studio_downloading_percent(int percent) {
5175
+ return '正在下載: $percent%';
5176
+ }
5177
+
5178
+ @override
5179
+ String get lm_studio_readme_unavailable => '此模型無 README 說明檔案。';
5180
+
5181
+ @override
5182
+ String get lm_studio_full_gpu_offload => '支援完全 GPU 卸載';
5183
+
5184
+ @override
5185
+ String get lm_studio_partial_gpu_offload => '支援部分 GPU 卸載';
5186
+
5187
+ @override
5188
+ String get lm_studio_likely_too_large => '可能過大';
5189
+
5190
+ @override
5191
+ String get lm_studio_available_ram_gb => '可用 RAM (GB, 可選)';
5192
+
5193
+ @override
5194
+ String get lm_studio_available_vram_gb => '可用 VRAM (GB, 可选)';
5195
+
5196
+ @override
5197
+ String get lm_studio_memory_settings_title => '用於推薦的記憶體大小';
5198
+
5199
+ @override
5200
+ String get lm_studio_memory_settings_desc => '用於在模型瀏覽器中預估模型是否可以在您的設備上運行。';
5201
+
5202
+ @override
5203
+ String get think_button_label => '思考';
5204
+
5205
+ @override
5206
+ String get reasoning_effort_low => '低';
5207
+
5208
+ @override
5209
+ String get reasoning_effort_medium => '中';
5210
+
5211
+ @override
5212
+ String get reasoning_effort_high => '高';
5213
+
5214
+ @override
5215
+ String get could_not_read_file => '無法讀取檔案';
5216
+
5217
+ @override
5218
+ String get server_offline => '伺服器已離線';
5219
+
5220
+ @override
5221
+ String get could_not_establish_connection =>
5222
+ '無法與伺服器建立連線。請檢查您的伺服器是否正在運行,以及主機/埠設定是否正確。';
5223
+
5224
+ @override
5225
+ String get retry_connection => '重試連線';
5226
+
5227
+ @override
5228
+ String get tokens_label => 'Token 數';
5229
+
5230
+ @override
5231
+ String get enter_context_length => '輸入上下文長度...';
5232
}
lib/l10n/app_ru.arb
+216
-17
@@ -601,23 +601,222 @@
601
"tool_status_done": "Сделанный",
602
"tool_status_failed": "Неуспешный",
603
"exit_temporary_chat_title": "Выйти из временного чата?",
604
- "exit_temporary_chat_body": "Текущий временный чат будет удалён, и вы вернётесь к новому чату.",
605
- "saved_message_temp_snap_unavailable": "Это сообщение сохранено из временного чата и не может быть открыто в исходной беседе.",
606
- "filter_title": "Фильтр",
607
- "filter_pinned": "Закреплённые",
608
- "filter_archived": "Архив",
604
+ "exit_temporary_chat_body": "Это навсегда удалит текущий чат. Продолжить?",
605
+ "saved_message_temp_snap_unavailable": "Снимки сообщений недоступны во временных чатах",
606
+ "filter_title": "Фильтр чатов",
607
+ "filter_pinned": "Закрепленные",
608
+ "filter_archived": "Архивные",
609
"filter_temp_chats": "Временные чаты",
610
"filter_user_messages": "Сообщения пользователя",
611
"filter_assistant_messages": "Сообщения ассистента",
612
- "archive_chat": "Архивировать",
613
- "unarchive_chat": "Разархивировать",
614
- "conversation_message_count": "{count, plural, one{1 сообщение} few{{count} сообщения} many{{count} сообщений} other{{count} сообщений}}",
615
- "conversation_character_count": "{count} симв.",
616
- "generate_title_with_ai": "Сгенерировать с ИИ",
617
- "generating_title": "Генерация...",
618
- "generate_title_failed": "Не удалось сгенерировать заголовок",
619
- "temp_chat_keyboard_incognito": "Приватная клавиатура во временном чате",
620
- "temp_chat_keyboard_incognito_desc": "Отключает обучение и подсказки клавиатуры во временных чатах (например, режим инкогнито SwiftKey).",
621
- "resume_last_chat": "Восстанавливать последний чат при запуске",
622
- "resume_last_chat_desc": "Открывать последнюю активную беседу при повторном запуске приложения."
623
-}
612
+ "archive_chat": "Архивировать чат",
613
+ "unarchive_chat": "Разархивировать чат",
614
+ "conversation_message_count": "Сообщений: {count}",
615
+ "conversation_character_count": "Символов: {count}",
616
+ "generate_title_with_ai": "Создать заголовок с помощью ИИ",
617
+ "generating_title": "Создание заголовка...",
618
+ "generate_title_failed": "Не удалось создать заголовок",
619
+ "temp_chat_keyboard_incognito": "Режим инкогнито клавиатуры во временном чате",
620
+ "temp_chat_keyboard_incognito_desc": "Запрашивать у клавиатуры системы не сохранять историю ввода во временных чатах",
621
+ "resume_last_chat": "Возобновить последний чат",
622
+ "resume_last_chat_desc": "Автоматически открывать последний активный чат при запуске",
623
+ "delete_builtin_persona_body": "Это встроенный персонаж. Вы можете восстановить его позже в Настройках.",
624
+ "restore_builtin_personas": "Восстановить стандартных персонажей",
625
+ "restore_builtin_personas_desc": "Заново добавить всех удаленных встроенных персонажей",
626
+ "restore_builtin_personas_success": "Персонажи по умолчанию восстановлены",
627
+ "clear_personas": "Сбросить персонажей",
628
+ "enable_image_compression": "Сжимать изображения перед отправкой",
629
+ "enable_image_compression_desc": "Изменять размер и сжимать прикрепленные изображения, чтобы размер загрузки оставался в пределах лимитов сервера",
630
+ "image_compression_level": "Агрессивность сжатия",
631
+ "image_compression_level_desc": "Более высокая агрессивность дает файлы меньшего размера при более низком качестве",
632
+ "image_compression_level_low": "Низкая",
633
+ "image_compression_level_medium": "Средняя",
634
+ "image_compression_level_high": "Высокая",
635
+ "sort_models_tooltip": "Сортировка моделей",
636
+ "sort_by_favorites": "Сначала избранные",
637
+ "sort_by_name": "По имени (А-Я)",
638
+ "sort_by_size_smallest": "Размер (сначала меньшие)",
639
+ "sort_by_size_largest": "Размер (сначала большие)",
640
+ "sort_by_context_length": "Длина контекста",
641
+ "bulk_ai_rename_progress": "Переименование {done}/{total}...",
642
+ "selected_count": "Выбрано: {count}",
643
+ "ai_rename_tooltip": "Переименовать выбранные с помощью ИИ",
644
+ "new_chat_in_folder_tooltip": "Новый чат в этой папке",
645
+ "total_tokens_count": "Токенов: {count}",
646
+ "smart_replies_use_persona": "Использовать персонаж в умных ответах",
647
+ "smart_replies_use_persona_desc": "Предлагаемые ответы будут соответствовать тону активного персонажа, а не общего ассистента",
648
+ "keep_persona_on_new_chat": "Сохранять персонаж при новом чате",
649
+ "keep_persona_on_new_chat_desc": "Не сбрасывать выбранных персонажей при создании нового чата",
650
+ "role_swap_button_enabled": "Показывать кнопку смены ролей",
651
+ "role_swap_button_enabled_desc": "Показывать кнопку в поле ввода чата для отправки сообщения от лица ассистента, а не пользователя (без генерации ответа)",
652
+ "send_as_user_tooltip": "Отправить от пользователя",
653
+ "send_as_assistant_tooltip": "Отправить от ассистента (без ответа)",
654
+ "insert_without_generating_tooltip": "Вставить без генерации",
655
+ "token_usage_title": "Использование токенов",
656
+ "total_tokens_label": "Использовано токенов",
657
+ "usage_percent_label": "Использовано контекста",
658
+ "export_choice_title": "Экспорт",
659
+ "export_choice_body": "Как вы хотите это экспортировать?",
660
+ "copy_to_clipboard": "Копировать в буфер обмена",
661
+ "bulk_export_conversations_success": "Экспортировано чатов: {count}",
662
+ "bulk_ai_rename_confirm_title": "Переименовать с помощью ИИ?",
663
+ "bulk_ai_rename_confirm_body": "ИИ сгенерирует новые заголовки для {count} выбранных чатов, заменив текущие. Это может занять некоторое время и действие нельзя отменить.",
664
+ "sort_by_modified_date": "Последнее изменение",
665
+ "sort_by_created_date": "Дата создания",
666
+ "sort_title": "Сортировка",
667
+ "ai_user_response_enabled": "Сообщение пользователя через ИИ (зажать кнопку)",
668
+ "ai_user_response_enabled_desc": "Зажмите кнопку отправки на 3 секунды, чтобы ИИ написал и отправил следующее сообщение за вас",
669
+ "ai_user_response_tooltip": "Сгенерировать сообщение пользователя с помощью ИИ",
670
+ "show_system_messages_desc": "Если персонаж не выбран, отправлять стандартный системный промпт ассистента с каждым запросом",
671
+ "show_system_messages_in_chat": "Показывать системные сообщения в чате",
672
+ "show_system_messages_in_chat_desc": "Отображать системные сообщения (например, из импортированной резервной копии) в виде облачков сообщений в чате",
673
+ "manage_personas": "Управление персонажами",
674
+ "personas_combine_hint": "Выбранные персонажи будут объединены",
675
+ "unload_all_models": "Выгрузить все модели",
676
+ "loaded_models_count": "Загружено моделей: {count}",
677
+ "all_models_unloaded": "Все модели выгружены",
678
+ "branch_chat": "Создать ветку чата",
679
+ "branch_chat_desc": "Создать новый чат на основе этого сообщения",
680
+ "edit_assistant_message_desc": "Редактировать текст сообщения ассистента",
681
+ "switch_to_model": "Переключить на модель {model}",
682
+ "model_favorite_toggle": "Добавить в избранное",
683
+ "model_note_label": "Заметка",
684
+ "model_note_hint": "Добавить личную заметку для этой модели...",
685
+ "unload_models_before_load": "Выгружать модели перед загрузкой",
686
+ "export_all_data": "Экспортировать все данные",
687
+ "import_all_data": "Импортировать все данные",
688
+ "export_data_success": "Данные успешно экспортированы",
689
+ "import_data_success": "Данные успешно импортированы",
690
+ "import_data_failed": "Не удалось импортировать данные",
691
+ "import_data_confirm": "Это заменит все ваши текущие данные импортированными. Продолжить?",
692
+ "import_settings_confirm": "Это заменит ваши текущие настройки импортированными. Продолжить?",
693
+ "export_conversations": "Экспорт чатов",
694
+ "import_conversations": "Импорт чатов",
695
+ "export_personas": "Экспорт персонажей",
696
+ "import_personas": "Импорт персонажей",
697
+ "export_settings": "Экспорт настроек",
698
+ "import_settings": "Импорт настроек",
699
+ "export_all_zip": "Экспортировать все (ZIP)",
700
+ "import_all_zip": "Импортировать все (ZIP)",
701
+ "duplicate_chat": "Дублировать чат",
702
+ "duplicate_chat_success": "Чат успешно продублирован",
703
+ "move_to_folder": "Переместить в папку",
704
+ "remove_from_folder": "Удалить из папки",
705
+ "create_folder": "Создать папку",
706
+ "new_folder": "Новая папка",
707
+ "folder_name_hint": "Введите имя папки...",
708
+ "all_chats": "Все чаты",
709
+ "unfiled_chats": "Чаты без папки",
710
+ "create": "Создать",
711
+ "server_path_prefix_label": "Префикс пути сервера",
712
+ "server_path_prefix_hint": "Необязательный префикс для путей API сервера (например, /v1)",
713
+ "search_message_contents": "Поиск по тексту сообщений...",
714
+ "message_search_results": "Результаты поиска сообщений",
715
+ "saved_messages_title": "Сохраненные сообщения",
716
+ "nav_saved_messages": "Сохраненные сообщения",
717
+ "saved_messages_empty": "Нет сохраненных сообщений",
718
+ "save_message": "Сохранить сообщение",
719
+ "message_saved": "Сообщение сохранено",
720
+ "token_count": "Токенов: {count}",
721
+ "estimated_token_count": "Оценка токенов: {count}",
722
+ "test_tts_section_title": "Проверка озвучки текста",
723
+ "test_tts_hint": "Введите текст для проверки голоса...",
724
+ "test_speak_button": "Озвучить",
725
+ "scroll_to_bottom": "Прокрутить вниз",
726
+ "generate_ai_response": "Сгенерировать ответ ИИ",
727
+ "no_response": "Нет ответа",
728
+ "export": "Экспорт",
729
+ "import": "Импорт",
730
+ "conversations_label": "Чаты",
731
+ "personas_label": "Персонажи",
732
+ "settings_label": "Настройки",
733
+ "export_conversation": "Экспортировать чат",
734
+ "tts_process_markdown": "Обрабатывать Markdown",
735
+ "tts_process_markdown_desc": "Удалять форматирование вроде **жирного** перед озвучкой",
736
+ "tts_skip_seconds": "Секунды перемотки",
737
+ "tts_skip_seconds_desc": "Время для перемотки вперед/назад в аудиоплеере",
738
+ "tts_skip_seconds_value": "{seconds}с",
739
+ "preview_system_prompts": "Предпросмотр системных промптов",
740
+ "welcome_message_1": "Привет! Я твой локальный ИИ-ассистент.",
741
+ "welcome_message_2": "Спрашивай о чем угодно — я готов к работе.",
742
+ "welcome_message_3": "Твои данные обрабатываются локально и никогда не покидают устройство.",
743
+ "welcome_message_4": "Для начала выбери модель на верхней панели или добавь новую в разделе управления моделями.",
744
+ "temporary_chat": "Временный чат",
745
+ "temporary_chat_desc": "Сообщения из этого чата не будут сохранены в истории",
746
+ "temporary_chat_banner": "Активен временный чат — история не сохраняется",
747
+ "temporary_chat_save_warning_title": "Сохранить временный чат?",
748
+ "temporary_chat_save_warning_body": "Этот чат не сохранен в истории. Хотите сохранить его сейчас?",
749
+ "save_to_history": "Сохранить в историю",
750
+ "share_conversation": "Поделиться чатом",
751
+ "download_tts_audio": "Скачать аудио",
752
+ "tts_download_unavailable": "Скачивание аудио недоступно",
753
+ "tts_download_no_audio": "Нет сгенерированного аудио для скачивания",
754
+ "tts_download_success": "Аудиофайл успешно сохранен",
755
+ "return_to_chat": "Вернуться в чат",
756
+ "return_to_temp_chat": "Вернуться во временный чат",
757
+ "insert_saved_message": "Вставить сохраненное сообщение",
758
+ "insert_saved_message_desc": "Добавить фрагмент из сохраненных сообщений в чат",
759
+ "model_info": "Информация о модели",
760
+ "model_name": "Имя модели",
761
+ "model_identifier": "Идентификатор модели",
762
+ "not_available": "Недоступно",
763
+ "save_message_folders": "Сохранить в папки",
764
+ "remove_from_saved": "Удалить из сохраненных",
765
+ "message_already_saved": "Сообщение уже сохранено",
766
+ "stream_ttft": "Время до первого токена",
767
+ "stream_tokens_per_sec": "Токенов в секунду",
768
+ "stream_stop_reason": "Причина остановки",
769
+ "stream_input_tokens": "Входные токены",
770
+ "stream_output_tokens": "Выходные токены",
771
+ "stream_generation_time": "Время генерации",
772
+ "attach_image": "Прикрепить изображение",
773
+ "attach_text_document": "Прикрепить текстовый документ",
774
+ "add_attachment": "Добавить вложение",
775
+ "photo_permission_denied": "Доступ к фото отклонен",
776
+ "characters_label": "Символы",
777
+ "lm_studio_model_browser_title": "Обзор моделей",
778
+ "lm_studio_model_search_hint": "Поиск моделей...",
779
+ "lm_studio_staff_picks": "Выбор редакции",
780
+ "lm_studio_community_models": "Модели сообщества",
781
+ "lm_studio_no_models": "Модели не найдены",
782
+ "lm_studio_models_count": "Моделей: {count}",
783
+ "lm_studio_browse_models": "Найти модели в LM Studio",
784
+ "lm_studio_model_search": "Поиск моделей",
785
+ "lm_studio_downloads_title": "Загрузки",
786
+ "lm_studio_choose_quant": "Выбрать квантование",
787
+ "lm_studio_use_default_quant": "Использовать стандартное квантование",
788
+ "lm_studio_recommended": "Рекомендуется",
789
+ "lm_studio_clear_downloads": "Очистить завершенные загрузки",
790
+ "lm_studio_no_downloads": "Нет активных загрузок",
791
+ "lm_studio_downloads_disclaimer": "Загрузка моделей производится напрямую с Hugging Face.",
792
+ "lm_studio_staff_pick": "Рекомендуемая модель",
793
+ "lm_studio_params": "Параметры",
794
+ "lm_studio_arch": "Архитектура",
795
+ "lm_studio_domain": "Область применения",
796
+ "lm_studio_format": "Формат",
797
+ "lm_studio_vision": "Зрение",
798
+ "lm_studio_tool_use": "Вызов инструментов",
799
+ "lm_studio_reasoning": "Рассуждение",
800
+ "lm_studio_download_options": "Параметры загрузки",
801
+ "lm_studio_download": "Скачать",
802
+ "lm_studio_download_size": "Размер файла",
803
+ "lm_studio_downloading_percent": "Загрузка: {percent}%",
804
+ "lm_studio_readme_unavailable": "README недоступен для этой модели.",
805
+ "lm_studio_full_gpu_offload": "Возможен полный перенос на GPU",
806
+ "lm_studio_partial_gpu_offload": "Возможен частичный перенос на GPU",
807
+ "lm_studio_likely_too_large": "Возможно, слишком велика",
808
+ "lm_studio_available_ram_gb": "Доступная ОЗУ (ГБ, необязательно)",
809
+ "lm_studio_available_vram_gb": "Доступная видеопамять (ГБ, необязательно)",
810
+ "lm_studio_memory_settings_title": "Память для рекомендаций",
811
+ "lm_studio_memory_settings_desc": "Используется для оценки того, подходят ли модели для вашего устройства.",
812
+ "think_button_label": "Мыслить",
813
+ "reasoning_effort_low": "Низкая",
814
+ "reasoning_effort_medium": "Средняя",
815
+ "reasoning_effort_high": "Высокая",
816
+ "could_not_read_file": "Не удалось прочитать файл",
817
+ "server_offline": "Сервер офлайн",
818
+ "could_not_establish_connection": "Не удалось подключиться к серверу. Убедитесь, что сервер запущен, а настройки хоста и порта указаны верно.",
819
+ "retry_connection": "Повторить подключение",
820
+ "tokens_label": "Токены",
821
+ "enter_context_length": "Введите длину контекста..."
822
+}
\ No newline at end of file
lib/l10n/app_zh.arb
+221
-2
@@ -602,5 +602,224 @@
602
"tool_status_rejected": "Rejected",
603
"tool_status_running": "Running",
604
"tool_status_done": "Done",
605
- "tool_status_failed": "Failed"
606
-}
605
+ "tool_status_failed": "Failed",
606
+ "delete_builtin_persona_body": "这是一个内置角色。您稍后可以在“设置”中将其恢复。",
607
+ "restore_builtin_personas": "恢复默认角色",
608
+ "restore_builtin_personas_desc": "重新添加您已删除的任何内置角色",
609
+ "restore_builtin_personas_success": "已恢复默认角色",
610
+ "clear_personas": "清除角色",
611
+ "enable_image_compression": "发送前压缩图片",
612
+ "enable_image_compression_desc": "调整并压缩附加图片的大小,以使上传大小保持在服务器限制内",
613
+ "image_compression_level": "压缩强度",
614
+ "image_compression_level_desc": "较高的压缩强度会生成质量较低但上传更小的图片",
615
+ "image_compression_level_low": "低",
616
+ "image_compression_level_medium": "中",
617
+ "image_compression_level_high": "高",
618
+ "sort_models_tooltip": "排序模型",
619
+ "sort_by_favorites": "收藏优先",
620
+ "sort_by_name": "名称 (A-Z)",
621
+ "sort_by_size_smallest": "大小 (从小到大)",
622
+ "sort_by_size_largest": "大小 (从大到小)",
623
+ "sort_by_context_length": "上下文长度",
624
+ "bulk_ai_rename_progress": "正在重命名 {done}/{total}...",
625
+ "selected_count": "已选择 {count} 个",
626
+ "ai_rename_tooltip": "使用 AI 重命名所选内容",
627
+ "new_chat_in_folder_tooltip": "在此文件夹中新建聊天",
628
+ "total_tokens_count": "{count} 个 Token",
629
+ "smart_replies_use_persona": "在智能回复中应用角色",
630
+ "smart_replies_use_persona_desc": "建议的回复将符合当前启用角色的语气,而不是通用的助手语气",
631
+ "keep_persona_on_new_chat": "新聊天保留角色",
632
+ "keep_persona_on_new_chat_desc": "开始新聊天时不要清除选定的角色",
633
+ "role_swap_button_enabled": "显示角色切换按钮",
634
+ "role_swap_button_enabled_desc": "在聊天输入框中显示一个按钮,允许您以助手而非用户的身份发送消息,而不生成任何回复",
635
+ "send_as_user_tooltip": "以用户身份发送",
636
+ "send_as_assistant_tooltip": "以助手身份发送 (无回复)",
637
+ "insert_without_generating_tooltip": "仅插入不生成回复",
638
+ "token_usage_title": "Token 使用情况",
639
+ "total_tokens_label": "已用 Token",
640
+ "usage_percent_label": "已用上下文",
641
+ "export_choice_title": "导出",
642
+ "export_choice_body": "您希望如何导出此内容?",
643
+ "copy_to_clipboard": "复制到剪贴板",
644
+ "bulk_export_conversations_success": "已成功导出 {count} 个对话",
645
+ "bulk_ai_rename_confirm_title": "使用 AI 重命名?",
646
+ "bulk_ai_rename_confirm_body": "这将请求 AI 为每个选定的 {count} 个对话生成新标题,替换其当前的标题。此操作可能需要一些时间,且无法撤销。",
647
+ "sort_by_modified_date": "最近修改",
648
+ "sort_by_created_date": "创建日期",
649
+ "sort_title": "排序",
650
+ "ai_user_response_enabled": "AI 用户消息 (长按发送)",
651
+ "ai_user_response_enabled_desc": "长按发送按钮 3 秒钟以让 AI 撰写并发送您的下一条消息",
652
+ "ai_user_response_tooltip": "使用 AI 生成用户消息",
653
+ "show_system_messages_desc": "当没有选定角色时,每次请求都发送默认的助手系统提示词",
654
+ "show_system_messages_in_chat": "在聊天中显示系统消息",
655
+ "show_system_messages_in_chat_desc": "将系统消息 (例如来自导入的备份) 作为对话中的可见气泡显示",
656
+ "manage_personas": "管理角色",
657
+ "personas_combine_hint": "选定的角色将被合并",
658
+ "unload_all_models": "卸载所有模型",
659
+ "loaded_models_count": "已加载 {count} 个模型",
660
+ "all_models_unloaded": "所有模型已卸载",
661
+ "branch_chat": "分支聊天",
662
+ "branch_chat_desc": "从此消息开始新建聊天",
663
+ "edit_assistant_message_desc": "编辑助手消息的内容",
664
+ "switch_to_model": "切换到模型 {model}",
665
+ "model_favorite_toggle": "切换收藏",
666
+ "model_note_label": "备注",
667
+ "model_note_hint": "为此模型添加个人备注...",
668
+ "unload_models_before_load": "加载前卸载模型",
669
+ "temp_chat_keyboard_incognito": "临时聊天中的隐私键盘",
670
+ "temp_chat_keyboard_incognito_desc": "请求系统键盘在临时聊天期间不保存输入历史记录",
671
+ "resume_last_chat": "恢复上次聊天",
672
+ "resume_last_chat_desc": "启动时自动打开您上次活跃的对话",
673
+ "export_all_data": "导出所有数据",
674
+ "import_all_data": "导入所有数据",
675
+ "export_data_success": "数据导出成功",
676
+ "import_data_success": "数据导入成功",
677
+ "import_data_failed": "导入数据失败",
678
+ "import_data_confirm": "这将用导入的数据替换您当前的所有数据。是否继续?",
679
+ "import_settings_confirm": "这将用导入的设置替换您当前的设置。是否继续?",
680
+ "export_conversations": "导出对话",
681
+ "import_conversations": "导入对话",
682
+ "export_personas": "导出角色",
683
+ "import_personas": "导入角色",
684
+ "export_settings": "导出设置",
685
+ "import_settings": "导入设置",
686
+ "export_all_zip": "导出全部 (ZIP)",
687
+ "import_all_zip": "导入全部 (ZIP)",
688
+ "duplicate_chat": "复制聊天",
689
+ "duplicate_chat_success": "聊天复制成功",
690
+ "move_to_folder": "移动到文件夹",
691
+ "remove_from_folder": "从文件夹中移除",
692
+ "create_folder": "创建文件夹",
693
+ "new_folder": "新文件夹",
694
+ "folder_name_hint": "输入文件夹名称...",
695
+ "all_chats": "所有聊天",
696
+ "unfiled_chats": "未分类聊天",
697
+ "create": "创建",
698
+ "server_path_prefix_label": "服务器路径前缀",
699
+ "server_path_prefix_hint": "服务器 API 路径的可选前缀 (例如 /v1)",
700
+ "search_message_contents": "搜索消息内容...",
701
+ "message_search_results": "消息搜索结果",
702
+ "saved_messages_title": "已保存的消息",
703
+ "nav_saved_messages": "保存消息",
704
+ "saved_messages_empty": "尚无保存的消息",
705
+ "save_message": "保存消息",
706
+ "message_saved": "消息已保存",
707
+ "token_count": "Token 数: {count}",
708
+ "estimated_token_count": "预估 Token 数: {count}",
709
+ "test_tts_section_title": "文字转语音测试",
710
+ "test_tts_hint": "输入内容以测试声音...",
711
+ "test_speak_button": "朗读",
712
+ "scroll_to_bottom": "滚动到底部",
713
+ "generate_ai_response": "生成 AI 回复",
714
+ "no_response": "无回复",
715
+ "export": "导出",
716
+ "import": "导入",
717
+ "conversations_label": "对话",
718
+ "personas_label": "角色",
719
+ "settings_label": "设置",
720
+ "export_conversation": "导出对话",
721
+ "tts_process_markdown": "处理 Markdown",
722
+ "tts_process_markdown_desc": "在朗读前去除 **加粗** 等格式标记",
723
+ "tts_skip_seconds": "跳过秒数",
724
+ "tts_skip_seconds_desc": "语音播放器中快进/快退的时间",
725
+ "tts_skip_seconds_value": "{seconds}秒",
726
+ "preview_system_prompts": "预览系统提示词",
727
+ "welcome_message_1": "你好!我是您的本地 AI 助手。",
728
+ "welcome_message_2": "问我任何问题——我随时恭候。",
729
+ "welcome_message_3": "您的数据完全在本地处理,绝不会离开您的设备。",
730
+ "welcome_message_4": "要开始,请从顶部栏中选择一个模型,或在模型管理部分中添加一个新模型。",
731
+ "temporary_chat": "临时聊天",
732
+ "temporary_chat_desc": "此聊天中的消息不会保存到历史记录中",
733
+ "temporary_chat_banner": "临时聊天处于活动状态——消息将不保存到历史记录",
734
+ "temporary_chat_save_warning_title": "保存临时聊天?",
735
+ "temporary_chat_save_warning_body": "此聊天未保存到您的历史记录中。您想现在保存吗?",
736
+ "save_to_history": "保存到历史记录",
737
+ "share_conversation": "分享对话",
738
+ "download_tts_audio": "下载音频",
739
+ "tts_download_unavailable": "音频下载不可用",
740
+ "tts_download_no_audio": "没有生成的可供下载的音频",
741
+ "tts_download_success": "音频保存成功",
742
+ "return_to_chat": "返回聊天",
743
+ "return_to_temp_chat": "返回临时聊天",
744
+ "insert_saved_message": "插入已保存的消息",
745
+ "insert_saved_message_desc": "将您已保存的文本片段添加到聊天中",
746
+ "model_info": "模型信息",
747
+ "model_name": "模型名称",
748
+ "model_identifier": "模型标识符",
749
+ "not_available": "不可用",
750
+ "save_message_folders": "保存到文件夹",
751
+ "remove_from_saved": "从已保存中移除",
752
+ "message_already_saved": "消息已保存",
753
+ "stream_ttft": "首个 Token 延迟",
754
+ "stream_tokens_per_sec": "每秒 Token 数",
755
+ "stream_stop_reason": "停止原因",
756
+ "stream_input_tokens": "输入 Token 数",
757
+ "stream_output_tokens": "输出 Token 数",
758
+ "stream_generation_time": "生成时间",
759
+ "attach_image": "附加图片",
760
+ "attach_text_document": "附加文本文件",
761
+ "add_attachment": "添加附件",
762
+ "photo_permission_denied": "相册权限被拒绝",
763
+ "characters_label": "字符数",
764
+ "exit_temporary_chat_title": "退出临时聊天?",
765
+ "exit_temporary_chat_body": "这将永久删除当前的对话。是否继续?",
766
+ "saved_message_temp_snap_unavailable": "临时聊天中不支持消息快照",
767
+ "filter_title": "筛选聊天",
768
+ "filter_pinned": "已置顶",
769
+ "filter_archived": "已归档",
770
+ "filter_temp_chats": "临时聊天",
771
+ "filter_user_messages": "用户消息",
772
+ "filter_assistant_messages": "助手消息",
773
+ "archive_chat": "归档聊天",
774
+ "unarchive_chat": "取消归档",
775
+ "conversation_message_count": "{count} 条消息",
776
+ "conversation_character_count": "{count} 个字符",
777
+ "generate_title_with_ai": "使用 AI 生成标题",
778
+ "generating_title": "正在生成标题...",
779
+ "generate_title_failed": "无法生成标题",
780
+ "lm_studio_model_browser_title": "模型浏览器",
781
+ "lm_studio_model_search_hint": "搜索模型...",
782
+ "lm_studio_staff_picks": "编辑精选",
783
+ "lm_studio_community_models": "社区模型",
784
+ "lm_studio_no_models": "未找到模型",
785
+ "lm_studio_models_count": "{count} 个模型",
786
+ "lm_studio_browse_models": "在 LM Studio 中浏览模型",
787
+ "lm_studio_model_search": "模型搜索",
788
+ "lm_studio_downloads_title": "下载",
789
+ "lm_studio_choose_quant": "选择量化版本",
790
+ "lm_studio_use_default_quant": "使用默认量化版本",
791
+ "lm_studio_recommended": "推荐",
792
+ "lm_studio_clear_downloads": "清除已完成的下载",
793
+ "lm_studio_no_downloads": "无活动中的下载",
794
+ "lm_studio_downloads_disclaimer": "模型下载直接从 Hugging Face 获取。",
795
+ "lm_studio_staff_pick": "推荐模型",
796
+ "lm_studio_params": "参数",
797
+ "lm_studio_arch": "架构",
798
+ "lm_studio_domain": "领域",
799
+ "lm_studio_format": "格式",
800
+ "lm_studio_vision": "视觉能力",
801
+ "lm_studio_tool_use": "工具调用",
802
+ "lm_studio_reasoning": "推理能力",
803
+ "lm_studio_download_options": "下载选项",
804
+ "lm_studio_download": "下载",
805
+ "lm_studio_download_size": "下载大小",
806
+ "lm_studio_downloading_percent": "正在下载: {percent}%",
807
+ "lm_studio_readme_unavailable": "此模型无 README 说明文件。",
808
+ "lm_studio_full_gpu_offload": "支持完全 GPU 卸载",
809
+ "lm_studio_partial_gpu_offload": "支持部分 GPU 卸载",
810
+ "lm_studio_likely_too_large": "可能过大",
811
+ "lm_studio_available_ram_gb": "可用 RAM (GB, 可选)",
812
+ "lm_studio_available_vram_gb": "可用 VRAM (GB, 可选)",
813
+ "lm_studio_memory_settings_title": "用于推荐的内存大小",
814
+ "lm_studio_memory_settings_desc": "用于在模型浏览器中预估模型是否可以在您的设备上运行。",
815
+ "think_button_label": "思考",
816
+ "reasoning_effort_low": "低",
817
+ "reasoning_effort_medium": "中",
818
+ "reasoning_effort_high": "高",
819
+ "could_not_read_file": "无法读取文件",
820
+ "server_offline": "服务器已离线",
821
+ "could_not_establish_connection": "无法与服务器建立连接。请检查您的服务器是否正在运行,以及主机/端口设置是否正确。",
822
+ "retry_connection": "重试连接",
823
+ "tokens_label": "Token 数",
824
+ "enter_context_length": "输入上下文长度..."
825
+}
\ No newline at end of file
lib/l10n/app_zh_TW.arb
+221
-2
@@ -602,5 +602,224 @@
602
"tool_status_rejected": "Rejected",
603
"tool_status_running": "Running",
604
"tool_status_done": "Done",
605
- "tool_status_failed": "Failed"
606
-}
605
+ "tool_status_failed": "Failed",
606
+ "delete_builtin_persona_body": "這是一個內置角色。您稍後可以在「設定」中將其恢復。",
607
+ "restore_builtin_personas": "恢復預設角色",
608
+ "restore_builtin_personas_desc": "重新添加您已刪除的任何內置角色",
609
+ "restore_builtin_personas_success": "已恢復預設角色",
610
+ "clear_personas": "清除角色",
611
+ "enable_image_compression": "發送前壓縮圖片",
612
+ "enable_image_compression_desc": "調整並壓縮附加圖片的大小,以使上傳大小保持在伺服器限制內",
613
+ "image_compression_level": "壓縮強度",
614
+ "image_compression_level_desc": "較高的壓縮強度會生成質量較低但上傳更小的圖片",
615
+ "image_compression_level_low": "低",
616
+ "image_compression_level_medium": "中",
617
+ "image_compression_level_high": "高",
618
+ "sort_models_tooltip": "排序模型",
619
+ "sort_by_favorites": "收藏優先",
620
+ "sort_by_name": "名稱 (A-Z)",
621
+ "sort_by_size_smallest": "大小 (從小到大)",
622
+ "sort_by_size_largest": "大小 (從大到小)",
623
+ "sort_by_context_length": "上下文長度",
624
+ "bulk_ai_rename_progress": "正在重命名 {done}/{total}...",
625
+ "selected_count": "已選擇 {count} 個",
626
+ "ai_rename_tooltip": "使用 AI 重命名所選內容",
627
+ "new_chat_in_folder_tooltip": "在此資料夾中新建聊天",
628
+ "total_tokens_count": "{count} 個 Token",
629
+ "smart_replies_use_persona": "在智能回覆中應用角色",
630
+ "smart_replies_use_persona_desc": "建議的回覆將符合當前啟用角色的語氣,而不是通用的助手語氣",
631
+ "keep_persona_on_new_chat": "新聊天保留角色",
632
+ "keep_persona_on_new_chat_desc": "開始新聊天時不要清除選定的角色",
633
+ "role_swap_button_enabled": "顯示角色切換按鈕",
634
+ "role_swap_button_enabled_desc": "在聊天輸入框中顯示一個按鈕,允許您以助手而非用戶的身份發送消息,而不生成任何回覆",
635
+ "send_as_user_tooltip": "以用戶身份發送",
636
+ "send_as_assistant_tooltip": "以助手身份發送 (無回覆)",
637
+ "insert_without_generating_tooltip": "僅插入不生成回覆",
638
+ "token_usage_title": "Token 使用情況",
639
+ "total_tokens_label": "已用 Token",
640
+ "usage_percent_label": "已用上下文",
641
+ "export_choice_title": "匯出",
642
+ "export_choice_body": "您希望如何匯出此內容?",
643
+ "copy_to_clipboard": "複製到剪貼簿",
644
+ "bulk_export_conversations_success": "已成功匯出 {count} 個對話",
645
+ "bulk_ai_rename_confirm_title": "使用 AI 重命名?",
646
+ "bulk_ai_rename_confirm_body": "這將請求 AI 為每個選定的 {count} 個對話生成新標題,替換其當前的標題。此操作可能需要一些時間,且無法撤銷。",
647
+ "sort_by_modified_date": "最近修改",
648
+ "sort_by_created_date": "創建日期",
649
+ "sort_title": "排序",
650
+ "ai_user_response_enabled": "AI 用戶消息 (長按發送)",
651
+ "ai_user_response_enabled_desc": "長按發送按鈕 3 秒鐘以讓 AI 撰寫並發送您的下一條消息",
652
+ "ai_user_response_tooltip": "使用 AI 生成用戶消息",
653
+ "show_system_messages_desc": "當沒有選定角色時,每次請求都發送預設的助手系統提示詞",
654
+ "show_system_messages_in_chat": "在聊天中顯示系統消息",
655
+ "show_system_messages_in_chat_desc": "將系統消息 (例如來自導入的備份) 作為對話中的可見氣泡顯示",
656
+ "manage_personas": "管理角色",
657
+ "personas_combine_hint": "選定的角色將被合併",
658
+ "unload_all_models": "卸載所有模型",
659
+ "loaded_models_count": "已載入 {count} 個模型",
660
+ "all_models_unloaded": "所有模型已卸載",
661
+ "branch_chat": "分支聊天",
662
+ "branch_chat_desc": "從此消息開始新建聊天",
663
+ "edit_assistant_message_desc": "編輯助手消息的內容",
664
+ "switch_to_model": "切換到模型 {model}",
665
+ "model_favorite_toggle": "切換收藏",
666
+ "model_note_label": "備註",
667
+ "model_note_hint": "為此模型添加個人備註...",
668
+ "unload_models_before_load": "載入前卸載模型",
669
+ "temp_chat_keyboard_incognito": "臨時聊天中的隱私鍵盤",
670
+ "temp_chat_keyboard_incognito_desc": "請求系統鍵盤在臨時聊天期間不保存輸入歷史記錄",
671
+ "resume_last_chat": "恢復上次聊天",
672
+ "resume_last_chat_desc": "啟動時自動打開您上次活躍的對話",
673
+ "export_all_data": "匯出所有數據",
674
+ "import_all_data": "導入所有數據",
675
+ "export_data_success": "數據匯出成功",
676
+ "import_data_success": "數據導入成功",
677
+ "import_data_failed": "導入數據失敗",
678
+ "import_data_confirm": "這將用導入的數據替換您當前的所有數據。是否繼續?",
679
+ "import_settings_confirm": "這將用導入的設定替換您當前的設定。是否繼續?",
680
+ "export_conversations": "匯出對話",
681
+ "import_conversations": "導入對話",
682
+ "export_personas": "匯出角色",
683
+ "import_personas": "導入角色",
684
+ "export_settings": "匯出設定",
685
+ "import_settings": "導入設定",
686
+ "export_all_zip": "匯出全部 (ZIP)",
687
+ "import_all_zip": "導入全部 (ZIP)",
688
+ "duplicate_chat": "複製聊天",
689
+ "duplicate_chat_success": "聊天複製成功",
690
+ "move_to_folder": "移動到資料夾",
691
+ "remove_from_folder": "從資料夾中移除",
692
+ "create_folder": "創建資料夾",
693
+ "new_folder": "新資料夾",
694
+ "folder_name_hint": "輸入資料夾名稱...",
695
+ "all_chats": "所有聊天",
696
+ "unfiled_chats": "未分類聊天",
697
+ "create": "創建",
698
+ "server_path_prefix_label": "伺服器路徑前綴",
699
+ "server_path_prefix_hint": "伺服器 API 路徑的可選前綴 (例如 /v1)",
700
+ "search_message_contents": "搜尋消息內容...",
701
+ "message_search_results": "消息搜尋結果",
702
+ "saved_messages_title": "已保存的消息",
703
+ "nav_saved_messages": "保存消息",
704
+ "saved_messages_empty": "尚無保存的消息",
705
+ "save_message": "保存消息",
706
+ "message_saved": "消息已保存",
707
+ "token_count": "Token 數: {count}",
708
+ "estimated_token_count": "預估 Token 數: {count}",
709
+ "test_tts_section_title": "文字轉語音測試",
710
+ "test_tts_hint": "輸入內容以測試聲音...",
711
+ "test_speak_button": "朗讀",
712
+ "scroll_to_bottom": "滾動到底部",
713
+ "generate_ai_response": "生成 AI 回覆",
714
+ "no_response": "無回覆",
715
+ "export": "匯出",
716
+ "import": "導入",
717
+ "conversations_label": "對話",
718
+ "personas_label": "角色",
719
+ "settings_label": "設定",
720
+ "export_conversation": "匯出對話",
721
+ "tts_process_markdown": "處理 Markdown",
722
+ "tts_process_markdown_desc": "在朗讀前去除 **加粗** 等格式標記",
723
+ "tts_skip_seconds": "跳過秒數",
724
+ "tts_skip_seconds_desc": "語音播放器中快進/快退的時間",
725
+ "tts_skip_seconds_value": "{seconds}秒",
726
+ "preview_system_prompts": "預覽系統提示詞",
727
+ "welcome_message_1": "你好!我是您的本地 AI 助手。",
728
+ "welcome_message_2": "問我任何問題——我隨時恭候。",
729
+ "welcome_message_3": "您的數據完全在本地處理,絕不會離開您的設備。",
730
+ "welcome_message_4": "要開始,請從頂部欄中選擇一個模型,或在模型管理部分中添加一個新模型。",
731
+ "temporary_chat": "臨時聊天",
732
+ "temporary_chat_desc": "此聊天中的消息不會保存到歷史記錄中",
733
+ "temporary_chat_banner": "臨時聊天處於活動狀態——消息將不保存到歷史記錄",
734
+ "temporary_chat_save_warning_title": "保存臨時聊天?",
735
+ "temporary_chat_save_warning_body": "此聊天未保存到您的歷史記錄中。您想現在保存嗎?",
736
+ "save_to_history": "保存到歷史記錄",
737
+ "share_conversation": "分享對話",
738
+ "download_tts_audio": "下載音訊",
739
+ "tts_download_unavailable": "音訊下載不可用",
740
+ "tts_download_no_audio": "沒有生成的可供下載的音訊",
741
+ "tts_download_success": "音訊保存成功",
742
+ "return_to_chat": "返回聊天",
743
+ "return_to_temp_chat": "返回臨時聊天",
744
+ "insert_saved_message": "插入已保存的消息",
745
+ "insert_saved_message_desc": "將您已保存的文字片段添加到聊天中",
746
+ "model_info": "模型資訊",
747
+ "model_name": "模型名稱",
748
+ "model_identifier": "模型識別碼",
749
+ "not_available": "不可用",
750
+ "save_message_folders": "保存到資料夾",
751
+ "remove_from_saved": "從已保存中移除",
752
+ "message_already_saved": "消息已保存",
753
+ "stream_ttft": "首個 Token 延遲",
754
+ "stream_tokens_per_sec": "每秒 Token 數",
755
+ "stream_stop_reason": "停止原因",
756
+ "stream_input_tokens": "輸入 Token 數",
757
+ "stream_output_tokens": "輸出 Token 數",
758
+ "stream_generation_time": "生成時間",
759
+ "attach_image": "附加圖片",
760
+ "attach_text_document": "附加文字檔案",
761
+ "add_attachment": "添加附件",
762
+ "photo_permission_denied": "相簿權限被拒絕",
763
+ "characters_label": "字元數",
764
+ "exit_temporary_chat_title": "退出臨時聊天?",
765
+ "exit_temporary_chat_body": "這將永久刪除當前的對話。是否繼續?",
766
+ "saved_message_temp_snap_unavailable": "臨時聊天中不支援消息快照",
767
+ "filter_title": "篩選聊天",
768
+ "filter_pinned": "已置頂",
769
+ "filter_archived": "已封存",
770
+ "filter_temp_chats": "臨時聊天",
771
+ "filter_user_messages": "用戶消息",
772
+ "filter_assistant_messages": "助手消息",
773
+ "archive_chat": "封存聊天",
774
+ "unarchive_chat": "取消封存",
775
+ "conversation_message_count": "{count} 條消息",
776
+ "conversation_character_count": "{count} 個字元",
777
+ "generate_title_with_ai": "使用 AI 生成標題",
778
+ "generating_title": "正在生成標題...",
779
+ "generate_title_failed": "無法生成標題",
780
+ "lm_studio_model_browser_title": "模型瀏覽器",
781
+ "lm_studio_model_search_hint": "搜尋模型...",
782
+ "lm_studio_staff_picks": "編輯精選",
783
+ "lm_studio_community_models": "社區模型",
784
+ "lm_studio_no_models": "未找到模型",
785
+ "lm_studio_models_count": "{count} 個模型",
786
+ "lm_studio_browse_models": "在 LM Studio 中瀏覽模型",
787
+ "lm_studio_model_search": "模型搜尋",
788
+ "lm_studio_downloads_title": "下載",
789
+ "lm_studio_choose_quant": "選擇量化版本",
790
+ "lm_studio_use_default_quant": "使用預設量化版本",
791
+ "lm_studio_recommended": "推薦",
792
+ "lm_studio_clear_downloads": "清除已完成的下載",
793
+ "lm_studio_no_downloads": "無活動中的下載",
794
+ "lm_studio_downloads_disclaimer": "模型下載直接從 Hugging Face 獲取。",
795
+ "lm_studio_staff_pick": "推薦模型",
796
+ "lm_studio_params": "參數",
797
+ "lm_studio_arch": "架構",
798
+ "lm_studio_domain": "領域",
799
+ "lm_studio_format": "格式",
800
+ "lm_studio_vision": "視覺能力",
801
+ "lm_studio_tool_use": "工具調用",
802
+ "lm_studio_reasoning": "推理能力",
803
+ "lm_studio_download_options": "下載選項",
804
+ "lm_studio_download": "下載",
805
+ "lm_studio_download_size": "下載大小",
806
+ "lm_studio_downloading_percent": "正在下載: {percent}%",
807
+ "lm_studio_readme_unavailable": "此模型無 README 說明檔案。",
808
+ "lm_studio_full_gpu_offload": "支援完全 GPU 卸載",
809
+ "lm_studio_partial_gpu_offload": "支援部分 GPU 卸載",
810
+ "lm_studio_likely_too_large": "可能過大",
811
+ "lm_studio_available_ram_gb": "可用 RAM (GB, 可選)",
812
+ "lm_studio_available_vram_gb": "可用 VRAM (GB, 可选)",
813
+ "lm_studio_memory_settings_title": "用於推薦的記憶體大小",
814
+ "lm_studio_memory_settings_desc": "用於在模型瀏覽器中預估模型是否可以在您的設備上運行。",
815
+ "think_button_label": "思考",
816
+ "reasoning_effort_low": "低",
817
+ "reasoning_effort_medium": "中",
818
+ "reasoning_effort_high": "高",
819
+ "could_not_read_file": "無法讀取檔案",
820
+ "server_offline": "伺服器已離線",
821
+ "could_not_establish_connection": "無法與伺服器建立連線。請檢查您的伺服器是否正在運行,以及主機/埠設定是否正確。",
822
+ "retry_connection": "重試連線",
823
+ "tokens_label": "Token 數",
824
+ "enter_context_length": "輸入上下文長度..."
825
+}
\ No newline at end of file