@fresh-editor/fresh-editor 0.1.67 → 0.1.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +58 -0
- package/README.md +2 -0
- package/package.json +1 -1
- package/plugins/audit_mode.i18n.json +380 -0
- package/plugins/audit_mode.ts +836 -68
- package/plugins/buffer_modified.i18n.json +32 -0
- package/plugins/buffer_modified.ts +5 -3
- package/plugins/calculator.i18n.json +44 -0
- package/plugins/calculator.ts +6 -4
- package/plugins/clangd-lsp.ts +2 -0
- package/plugins/clangd_support.i18n.json +104 -0
- package/plugins/clangd_support.ts +18 -16
- package/plugins/color_highlighter.i18n.json +68 -0
- package/plugins/color_highlighter.ts +12 -10
- package/plugins/config-schema.json +25 -140
- package/plugins/csharp-lsp.ts +2 -0
- package/plugins/csharp_support.i18n.json +38 -0
- package/plugins/csharp_support.ts +6 -4
- package/plugins/css-lsp.ts +2 -0
- package/plugins/diagnostics_panel.i18n.json +110 -0
- package/plugins/diagnostics_panel.ts +19 -17
- package/plugins/find_references.i18n.json +128 -0
- package/plugins/find_references.ts +22 -20
- package/plugins/git_blame.i18n.json +230 -0
- package/plugins/git_blame.ts +39 -37
- package/plugins/git_find_file.i18n.json +146 -0
- package/plugins/git_find_file.ts +24 -22
- package/plugins/git_grep.i18n.json +80 -0
- package/plugins/git_grep.ts +15 -13
- package/plugins/git_gutter.i18n.json +44 -0
- package/plugins/git_gutter.ts +7 -5
- package/plugins/git_log.i18n.json +224 -0
- package/plugins/git_log.ts +41 -39
- package/plugins/go-lsp.ts +2 -0
- package/plugins/html-lsp.ts +2 -0
- package/plugins/json-lsp.ts +2 -0
- package/plugins/lib/fresh.d.ts +53 -13
- package/plugins/lib/index.ts +1 -1
- package/plugins/lib/navigation-controller.ts +3 -3
- package/plugins/lib/panel-manager.ts +15 -13
- package/plugins/lib/virtual-buffer-factory.ts +84 -112
- package/plugins/live_grep.i18n.json +80 -0
- package/plugins/live_grep.ts +15 -13
- package/plugins/markdown_compose.i18n.json +104 -0
- package/plugins/markdown_compose.ts +17 -15
- package/plugins/merge_conflict.i18n.json +380 -0
- package/plugins/merge_conflict.ts +72 -73
- package/plugins/path_complete.i18n.json +38 -0
- package/plugins/path_complete.ts +6 -4
- package/plugins/python-lsp.ts +2 -0
- package/plugins/rust-lsp.ts +2 -0
- package/plugins/search_replace.i18n.json +188 -0
- package/plugins/search_replace.ts +31 -29
- package/plugins/test_i18n.i18n.json +12 -0
- package/plugins/test_i18n.ts +18 -0
- package/plugins/theme_editor.i18n.json +1417 -0
- package/plugins/theme_editor.ts +73 -69
- package/plugins/todo_highlighter.i18n.json +86 -0
- package/plugins/todo_highlighter.ts +15 -13
- package/plugins/typescript-lsp.ts +2 -0
- package/plugins/vi_mode.i18n.json +716 -0
- package/plugins/vi_mode.ts +1195 -78
- package/plugins/welcome.i18n.json +110 -0
- package/plugins/welcome.ts +18 -16
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
//
|
|
7
7
|
// Syntax highlighting is handled by the TextMate grammar (built-in to the editor)
|
|
8
8
|
// This plugin only adds the compose mode layout features.
|
|
9
|
+
const editor = getEditor();
|
|
10
|
+
|
|
9
11
|
|
|
10
12
|
interface MarkdownConfig {
|
|
11
13
|
composeWidth: number;
|
|
@@ -364,18 +366,18 @@ globalThis.markdownToggleCompose = function(): void {
|
|
|
364
366
|
|
|
365
367
|
// Only work with markdown files
|
|
366
368
|
if (!info.path.endsWith('.md') && !info.path.endsWith('.markdown')) {
|
|
367
|
-
editor.setStatus("
|
|
369
|
+
editor.setStatus(editor.t("status.not_markdown_file"));
|
|
368
370
|
return;
|
|
369
371
|
}
|
|
370
372
|
|
|
371
373
|
if (composeBuffers.has(bufferId)) {
|
|
372
374
|
disableMarkdownCompose(bufferId);
|
|
373
|
-
editor.setStatus("
|
|
375
|
+
editor.setStatus(editor.t("status.compose_off"));
|
|
374
376
|
} else {
|
|
375
377
|
enableMarkdownCompose(bufferId);
|
|
376
378
|
// Trigger a re-render to apply the transform
|
|
377
379
|
editor.refreshLines(bufferId);
|
|
378
|
-
editor.setStatus(
|
|
380
|
+
editor.setStatus(editor.t("status.compose_on"));
|
|
379
381
|
}
|
|
380
382
|
};
|
|
381
383
|
|
|
@@ -577,12 +579,12 @@ editor.on("prompt_confirmed", "onMarkdownComposeWidthConfirmed");
|
|
|
577
579
|
|
|
578
580
|
// Set compose width command - starts interactive prompt
|
|
579
581
|
globalThis.markdownSetComposeWidth = function(): void {
|
|
580
|
-
editor.startPrompt("
|
|
582
|
+
editor.startPrompt(editor.t("prompt.compose_width"), "markdown-compose-width");
|
|
581
583
|
editor.setPromptSuggestions([
|
|
582
|
-
{ text: "60", description: "
|
|
583
|
-
{ text: "72", description: "
|
|
584
|
-
{ text: "80", description: "
|
|
585
|
-
{ text: "100", description: "
|
|
584
|
+
{ text: "60", description: editor.t("suggestion.narrow") },
|
|
585
|
+
{ text: "72", description: editor.t("suggestion.classic") },
|
|
586
|
+
{ text: "80", description: editor.t("suggestion.standard") },
|
|
587
|
+
{ text: "100", description: editor.t("suggestion.wide") },
|
|
586
588
|
]);
|
|
587
589
|
};
|
|
588
590
|
|
|
@@ -596,7 +598,7 @@ globalThis.onMarkdownComposeWidthConfirmed = function(args: {
|
|
|
596
598
|
const width = parseInt(args.text, 10);
|
|
597
599
|
if (!isNaN(width) && width > 20 && width < 300) {
|
|
598
600
|
config.composeWidth = width;
|
|
599
|
-
editor.setStatus(
|
|
601
|
+
editor.setStatus(editor.t("status.width_set", { width: String(width) }));
|
|
600
602
|
|
|
601
603
|
// Re-process active buffer if in compose mode
|
|
602
604
|
const bufferId = editor.getActiveBufferId();
|
|
@@ -604,25 +606,25 @@ globalThis.onMarkdownComposeWidthConfirmed = function(args: {
|
|
|
604
606
|
editor.refreshLines(bufferId); // Trigger re-transform
|
|
605
607
|
}
|
|
606
608
|
} else {
|
|
607
|
-
editor.setStatus("
|
|
609
|
+
editor.setStatus(editor.t("status.invalid_width"));
|
|
608
610
|
}
|
|
609
611
|
};
|
|
610
612
|
|
|
611
613
|
// Register commands
|
|
612
614
|
editor.registerCommand(
|
|
613
|
-
"
|
|
614
|
-
"
|
|
615
|
+
"%cmd.toggle_compose",
|
|
616
|
+
"%cmd.toggle_compose_desc",
|
|
615
617
|
"markdownToggleCompose",
|
|
616
618
|
"normal"
|
|
617
619
|
);
|
|
618
620
|
|
|
619
621
|
editor.registerCommand(
|
|
620
|
-
"
|
|
621
|
-
"
|
|
622
|
+
"%cmd.set_compose_width",
|
|
623
|
+
"%cmd.set_compose_width_desc",
|
|
622
624
|
"markdownSetComposeWidth",
|
|
623
625
|
"normal"
|
|
624
626
|
);
|
|
625
627
|
|
|
626
628
|
// Initialization
|
|
627
629
|
editor.debug("Markdown Compose plugin loaded - use 'Markdown: Toggle Compose' command");
|
|
628
|
-
editor.setStatus("
|
|
630
|
+
editor.setStatus(editor.t("status.plugin_ready"));
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
{
|
|
2
|
+
"en": {
|
|
3
|
+
"cmd.start": "Merge: Start Resolution",
|
|
4
|
+
"cmd.start_desc": "Start 3-way merge conflict resolution for current file",
|
|
5
|
+
"cmd.next": "Merge: Next Conflict",
|
|
6
|
+
"cmd.next_desc": "Jump to next unresolved conflict",
|
|
7
|
+
"cmd.prev": "Merge: Previous Conflict",
|
|
8
|
+
"cmd.prev_desc": "Jump to previous unresolved conflict",
|
|
9
|
+
"cmd.use_ours": "Merge: Use Ours",
|
|
10
|
+
"cmd.use_ours_desc": "Accept our version for current conflict",
|
|
11
|
+
"cmd.take_theirs": "Merge: Take Theirs",
|
|
12
|
+
"cmd.take_theirs_desc": "Accept their version for current conflict",
|
|
13
|
+
"cmd.use_both": "Merge: Use Both",
|
|
14
|
+
"cmd.use_both_desc": "Accept both versions for current conflict",
|
|
15
|
+
"cmd.save_exit": "Merge: Save & Exit",
|
|
16
|
+
"cmd.save_exit_desc": "Save resolved content and exit merge mode",
|
|
17
|
+
"cmd.abort": "Merge: Abort",
|
|
18
|
+
"cmd.abort_desc": "Abort merge resolution without saving",
|
|
19
|
+
"status.ready": "Merge Conflict Resolution plugin loaded",
|
|
20
|
+
"status.already_active": "Merge mode already active",
|
|
21
|
+
"status.no_file": "No file open",
|
|
22
|
+
"status.not_git_repo": "Not in a git repository - merge conflict resolution requires git",
|
|
23
|
+
"status.no_unmerged": "No unmerged entries - file is not in a merge conflict state",
|
|
24
|
+
"status.failed_read": "Failed to read file content",
|
|
25
|
+
"status.no_markers": "No conflict markers found in file content",
|
|
26
|
+
"status.starting": "Starting merge conflict resolution...",
|
|
27
|
+
"status.failed_parse": "Failed to parse conflict markers",
|
|
28
|
+
"status.progress": "Merge: {remaining} of {total} conflicts remaining | Current: {current}",
|
|
29
|
+
"status.all_resolved": "Merge: All {total} conflicts resolved! Press 's' to save",
|
|
30
|
+
"status.no_active_merge": "No active merge - use 'Merge: Start Resolution' first",
|
|
31
|
+
"status.no_conflicts": "No conflicts to navigate",
|
|
32
|
+
"status.single_refocused": "Conflict 1 of 1 (re-focused)",
|
|
33
|
+
"status.conflict_of": "Conflict {current} of {total}",
|
|
34
|
+
"status.conflict_all_resolved": "Conflict {current} of {total} (all resolved)",
|
|
35
|
+
"status.cannot_save": "Cannot save: {count} unresolved conflicts remaining",
|
|
36
|
+
"status.complete": "Merge complete! File updated with resolved content",
|
|
37
|
+
"status.nothing_to_abort": "No active merge - nothing to abort",
|
|
38
|
+
"status.aborted": "Merge aborted - no changes made",
|
|
39
|
+
"status.help": "Merge: [n/p] Navigate | [u] Ours [t] Theirs [b] Both | [s] Save [q] Abort",
|
|
40
|
+
"status.detected": "Conflicts detected! Use 'Merge: Start Resolution' or run start_merge_conflict",
|
|
41
|
+
"status.detected_file": "Merge conflicts detected in {path} - Use 'Merge: Start Resolution'",
|
|
42
|
+
"status.conflicts_to_resolve": "Merge: {remaining} conflicts to resolve ({auto_resolved} auto-resolved)",
|
|
43
|
+
"status.all_auto_resolved": "Merge: All {total} conflicts auto-resolved! Press 's' to save",
|
|
44
|
+
"panel.ours_header": "OURS (Read-only) - Changes from your branch",
|
|
45
|
+
"panel.theirs_header": "THEIRS (Read-only) - Incoming changes",
|
|
46
|
+
"panel.result_header": "RESULT (Editable) - Resolved content",
|
|
47
|
+
"panel.git_unavailable": "(Git version not available - showing conflict regions only)",
|
|
48
|
+
"panel.conflict": "Conflict {index}",
|
|
49
|
+
"panel.resolved": "[RESOLVED]",
|
|
50
|
+
"panel.pending": "[PENDING]",
|
|
51
|
+
"panel.empty": "(empty)",
|
|
52
|
+
"panel.remaining": "{count} conflict(s) remaining",
|
|
53
|
+
"panel.all_resolved": "All conflicts resolved!",
|
|
54
|
+
"panel.resolved_with": "[Resolved: {resolution}]",
|
|
55
|
+
"btn.accept_ours": "[u] Accept Ours",
|
|
56
|
+
"btn.accept_theirs": "[t] Accept Theirs",
|
|
57
|
+
"btn.both": "[b] Both",
|
|
58
|
+
"btn.next": "[n] Next",
|
|
59
|
+
"btn.prev": "[p] Prev",
|
|
60
|
+
"btn.use_ours": "[u] Use Ours",
|
|
61
|
+
"btn.take_theirs": "[t] Take Theirs",
|
|
62
|
+
"btn.save_exit": "[s] Save & Exit",
|
|
63
|
+
"btn.abort": "[q] Abort"
|
|
64
|
+
},
|
|
65
|
+
"es": {
|
|
66
|
+
"cmd.start": "Fusionar: Iniciar Resolucion",
|
|
67
|
+
"cmd.start_desc": "Iniciar resolucion de conflictos de fusion de 3 vias para el archivo actual",
|
|
68
|
+
"cmd.next": "Fusionar: Siguiente Conflicto",
|
|
69
|
+
"cmd.next_desc": "Saltar al siguiente conflicto sin resolver",
|
|
70
|
+
"cmd.prev": "Fusionar: Conflicto Anterior",
|
|
71
|
+
"cmd.prev_desc": "Saltar al conflicto anterior sin resolver",
|
|
72
|
+
"cmd.use_ours": "Fusionar: Usar Nuestro",
|
|
73
|
+
"cmd.use_ours_desc": "Aceptar nuestra version para el conflicto actual",
|
|
74
|
+
"cmd.take_theirs": "Fusionar: Tomar Suyo",
|
|
75
|
+
"cmd.take_theirs_desc": "Aceptar su version para el conflicto actual",
|
|
76
|
+
"cmd.use_both": "Fusionar: Usar Ambos",
|
|
77
|
+
"cmd.use_both_desc": "Aceptar ambas versiones para el conflicto actual",
|
|
78
|
+
"cmd.save_exit": "Fusionar: Guardar y Salir",
|
|
79
|
+
"cmd.save_exit_desc": "Guardar contenido resuelto y salir del modo de fusion",
|
|
80
|
+
"cmd.abort": "Fusionar: Abortar",
|
|
81
|
+
"cmd.abort_desc": "Abortar resolucion de fusion sin guardar",
|
|
82
|
+
"status.ready": "Plugin de Resolucion de Conflictos de Fusion cargado",
|
|
83
|
+
"status.already_active": "El modo de fusion ya esta activo",
|
|
84
|
+
"status.no_file": "Ningun archivo abierto",
|
|
85
|
+
"status.not_git_repo": "No esta en un repositorio git - la resolucion de conflictos requiere git",
|
|
86
|
+
"status.no_unmerged": "No hay entradas sin fusionar - el archivo no esta en estado de conflicto",
|
|
87
|
+
"status.failed_read": "Error al leer el contenido del archivo",
|
|
88
|
+
"status.no_markers": "No se encontraron marcadores de conflicto en el contenido del archivo",
|
|
89
|
+
"status.starting": "Iniciando resolucion de conflictos de fusion...",
|
|
90
|
+
"status.failed_parse": "Error al analizar marcadores de conflicto",
|
|
91
|
+
"status.progress": "Fusion: {remaining} de {total} conflictos restantes | Actual: {current}",
|
|
92
|
+
"status.all_resolved": "Fusion: Todos los {total} conflictos resueltos! Presiona 's' para guardar",
|
|
93
|
+
"status.no_active_merge": "No hay fusion activa - usa 'Fusionar: Iniciar Resolucion' primero",
|
|
94
|
+
"status.no_conflicts": "No hay conflictos para navegar",
|
|
95
|
+
"status.single_refocused": "Conflicto 1 de 1 (reenfocado)",
|
|
96
|
+
"status.conflict_of": "Conflicto {current} de {total}",
|
|
97
|
+
"status.conflict_all_resolved": "Conflicto {current} de {total} (todos resueltos)",
|
|
98
|
+
"status.cannot_save": "No se puede guardar: {count} conflictos sin resolver restantes",
|
|
99
|
+
"status.complete": "Fusion completa! Archivo actualizado con contenido resuelto",
|
|
100
|
+
"status.nothing_to_abort": "No hay fusion activa - nada que abortar",
|
|
101
|
+
"status.aborted": "Fusion abortada - no se hicieron cambios",
|
|
102
|
+
"status.help": "Fusion: [n/p] Navegar | [u] Nuestro [t] Suyo [b] Ambos | [s] Guardar [q] Abortar",
|
|
103
|
+
"status.detected": "Conflictos detectados! Usa 'Fusionar: Iniciar Resolucion' o ejecuta start_merge_conflict",
|
|
104
|
+
"status.detected_file": "Conflictos de fusion detectados en {path} - Usa 'Fusionar: Iniciar Resolucion'",
|
|
105
|
+
"status.conflicts_to_resolve": "Fusion: {remaining} conflictos por resolver ({auto_resolved} auto-resueltos)",
|
|
106
|
+
"status.all_auto_resolved": "Fusion: Todos los {total} conflictos auto-resueltos! Presiona 's' para guardar",
|
|
107
|
+
"panel.ours_header": "NUESTRO (Solo lectura) - Cambios de tu rama",
|
|
108
|
+
"panel.theirs_header": "SUYO (Solo lectura) - Cambios entrantes",
|
|
109
|
+
"panel.result_header": "RESULTADO (Editable) - Contenido resuelto",
|
|
110
|
+
"panel.git_unavailable": "(Version de Git no disponible - mostrando solo regiones de conflicto)",
|
|
111
|
+
"panel.conflict": "Conflicto {index}",
|
|
112
|
+
"panel.resolved": "[RESUELTO]",
|
|
113
|
+
"panel.pending": "[PENDIENTE]",
|
|
114
|
+
"panel.empty": "(vacio)",
|
|
115
|
+
"panel.remaining": "{count} conflicto(s) restante(s)",
|
|
116
|
+
"panel.all_resolved": "Todos los conflictos resueltos!",
|
|
117
|
+
"panel.resolved_with": "[Resuelto: {resolution}]",
|
|
118
|
+
"btn.accept_ours": "[u] Aceptar Nuestro",
|
|
119
|
+
"btn.accept_theirs": "[t] Aceptar Suyo",
|
|
120
|
+
"btn.both": "[b] Ambos",
|
|
121
|
+
"btn.next": "[n] Siguiente",
|
|
122
|
+
"btn.prev": "[p] Anterior",
|
|
123
|
+
"btn.use_ours": "[u] Usar Nuestro",
|
|
124
|
+
"btn.take_theirs": "[t] Tomar Suyo",
|
|
125
|
+
"btn.save_exit": "[s] Guardar y Salir",
|
|
126
|
+
"btn.abort": "[q] Abortar"
|
|
127
|
+
},
|
|
128
|
+
"de": {
|
|
129
|
+
"cmd.start": "Merge: Auflosung starten",
|
|
130
|
+
"cmd.start_desc": "3-Wege-Merge-Konfliktauflosung fur aktuelle Datei starten",
|
|
131
|
+
"cmd.next": "Merge: Nachster Konflikt",
|
|
132
|
+
"cmd.next_desc": "Zum nachsten ungelosten Konflikt springen",
|
|
133
|
+
"cmd.prev": "Merge: Vorheriger Konflikt",
|
|
134
|
+
"cmd.prev_desc": "Zum vorherigen ungelosten Konflikt springen",
|
|
135
|
+
"cmd.use_ours": "Merge: Unsere Version",
|
|
136
|
+
"cmd.use_ours_desc": "Unsere Version fur aktuellen Konflikt akzeptieren",
|
|
137
|
+
"cmd.take_theirs": "Merge: Ihre Version",
|
|
138
|
+
"cmd.take_theirs_desc": "Ihre Version fur aktuellen Konflikt akzeptieren",
|
|
139
|
+
"cmd.use_both": "Merge: Beide",
|
|
140
|
+
"cmd.use_both_desc": "Beide Versionen fur aktuellen Konflikt akzeptieren",
|
|
141
|
+
"cmd.save_exit": "Merge: Speichern & Beenden",
|
|
142
|
+
"cmd.save_exit_desc": "Gelosten Inhalt speichern und Merge-Modus beenden",
|
|
143
|
+
"cmd.abort": "Merge: Abbrechen",
|
|
144
|
+
"cmd.abort_desc": "Merge-Auflosung ohne Speichern abbrechen",
|
|
145
|
+
"status.ready": "Merge-Konfliktauflosungs-Plugin geladen",
|
|
146
|
+
"status.already_active": "Merge-Modus bereits aktiv",
|
|
147
|
+
"status.no_file": "Keine Datei geoffnet",
|
|
148
|
+
"status.not_git_repo": "Nicht in einem Git-Repository - Merge-Konfliktauflosung erfordert Git",
|
|
149
|
+
"status.no_unmerged": "Keine nicht zusammengefuhrten Eintrage - Datei ist nicht im Konfliktzustand",
|
|
150
|
+
"status.failed_read": "Fehler beim Lesen des Dateiinhalts",
|
|
151
|
+
"status.no_markers": "Keine Konfliktmarkierungen im Dateiinhalt gefunden",
|
|
152
|
+
"status.starting": "Starte Merge-Konfliktauflosung...",
|
|
153
|
+
"status.failed_parse": "Fehler beim Parsen der Konfliktmarkierungen",
|
|
154
|
+
"status.progress": "Merge: {remaining} von {total} Konflikten verbleibend | Aktuell: {current}",
|
|
155
|
+
"status.all_resolved": "Merge: Alle {total} Konflikte gelost! Drucke 's' zum Speichern",
|
|
156
|
+
"status.no_active_merge": "Kein aktiver Merge - verwende zuerst 'Merge: Auflosung starten'",
|
|
157
|
+
"status.no_conflicts": "Keine Konflikte zum Navigieren",
|
|
158
|
+
"status.single_refocused": "Konflikt 1 von 1 (neu fokussiert)",
|
|
159
|
+
"status.conflict_of": "Konflikt {current} von {total}",
|
|
160
|
+
"status.conflict_all_resolved": "Konflikt {current} von {total} (alle gelost)",
|
|
161
|
+
"status.cannot_save": "Kann nicht speichern: {count} ungeloste Konflikte verbleibend",
|
|
162
|
+
"status.complete": "Merge abgeschlossen! Datei mit gelostem Inhalt aktualisiert",
|
|
163
|
+
"status.nothing_to_abort": "Kein aktiver Merge - nichts abzubrechen",
|
|
164
|
+
"status.aborted": "Merge abgebrochen - keine Anderungen vorgenommen",
|
|
165
|
+
"status.help": "Merge: [n/p] Navigieren | [u] Unsere [t] Ihre [b] Beide | [s] Speichern [q] Abbrechen",
|
|
166
|
+
"status.detected": "Konflikte erkannt! Verwende 'Merge: Auflosung starten' oder fuhre start_merge_conflict aus",
|
|
167
|
+
"status.detected_file": "Merge-Konflikte in {path} erkannt - Verwende 'Merge: Auflosung starten'",
|
|
168
|
+
"status.conflicts_to_resolve": "Merge: {remaining} Konflikte zu losen ({auto_resolved} automatisch gelost)",
|
|
169
|
+
"status.all_auto_resolved": "Merge: Alle {total} Konflikte automatisch gelost! Drucke 's' zum Speichern",
|
|
170
|
+
"panel.ours_header": "UNSERE (Schreibgeschutzt) - Anderungen aus deinem Branch",
|
|
171
|
+
"panel.theirs_header": "IHRE (Schreibgeschutzt) - Eingehende Anderungen",
|
|
172
|
+
"panel.result_header": "ERGEBNIS (Bearbeitbar) - Geloster Inhalt",
|
|
173
|
+
"panel.git_unavailable": "(Git-Version nicht verfugbar - zeige nur Konfliktbereiche)",
|
|
174
|
+
"panel.conflict": "Konflikt {index}",
|
|
175
|
+
"panel.resolved": "[GELOST]",
|
|
176
|
+
"panel.pending": "[AUSSTEHEND]",
|
|
177
|
+
"panel.empty": "(leer)",
|
|
178
|
+
"panel.remaining": "{count} Konflikt(e) verbleibend",
|
|
179
|
+
"panel.all_resolved": "Alle Konflikte gelost!",
|
|
180
|
+
"panel.resolved_with": "[Gelost: {resolution}]",
|
|
181
|
+
"btn.accept_ours": "[u] Unsere akzeptieren",
|
|
182
|
+
"btn.accept_theirs": "[t] Ihre akzeptieren",
|
|
183
|
+
"btn.both": "[b] Beide",
|
|
184
|
+
"btn.next": "[n] Nachster",
|
|
185
|
+
"btn.prev": "[p] Vorheriger",
|
|
186
|
+
"btn.use_ours": "[u] Unsere verwenden",
|
|
187
|
+
"btn.take_theirs": "[t] Ihre nehmen",
|
|
188
|
+
"btn.save_exit": "[s] Speichern & Beenden",
|
|
189
|
+
"btn.abort": "[q] Abbrechen"
|
|
190
|
+
},
|
|
191
|
+
"fr": {
|
|
192
|
+
"cmd.start": "Fusion: Demarrer la Resolution",
|
|
193
|
+
"cmd.start_desc": "Demarrer la resolution de conflit de fusion 3 voies pour le fichier actuel",
|
|
194
|
+
"cmd.next": "Fusion: Conflit Suivant",
|
|
195
|
+
"cmd.next_desc": "Aller au prochain conflit non resolu",
|
|
196
|
+
"cmd.prev": "Fusion: Conflit Precedent",
|
|
197
|
+
"cmd.prev_desc": "Aller au conflit precedent non resolu",
|
|
198
|
+
"cmd.use_ours": "Fusion: Utiliser le Notre",
|
|
199
|
+
"cmd.use_ours_desc": "Accepter notre version pour le conflit actuel",
|
|
200
|
+
"cmd.take_theirs": "Fusion: Prendre le Leur",
|
|
201
|
+
"cmd.take_theirs_desc": "Accepter leur version pour le conflit actuel",
|
|
202
|
+
"cmd.use_both": "Fusion: Utiliser les Deux",
|
|
203
|
+
"cmd.use_both_desc": "Accepter les deux versions pour le conflit actuel",
|
|
204
|
+
"cmd.save_exit": "Fusion: Sauvegarder et Quitter",
|
|
205
|
+
"cmd.save_exit_desc": "Sauvegarder le contenu resolu et quitter le mode fusion",
|
|
206
|
+
"cmd.abort": "Fusion: Abandonner",
|
|
207
|
+
"cmd.abort_desc": "Abandonner la resolution de fusion sans sauvegarder",
|
|
208
|
+
"status.ready": "Plugin de Resolution de Conflits de Fusion charge",
|
|
209
|
+
"status.already_active": "Le mode fusion est deja actif",
|
|
210
|
+
"status.no_file": "Aucun fichier ouvert",
|
|
211
|
+
"status.not_git_repo": "Pas dans un depot git - la resolution de conflit necessite git",
|
|
212
|
+
"status.no_unmerged": "Pas d'entrees non fusionnees - le fichier n'est pas en etat de conflit",
|
|
213
|
+
"status.failed_read": "Echec de la lecture du contenu du fichier",
|
|
214
|
+
"status.no_markers": "Aucun marqueur de conflit trouve dans le contenu du fichier",
|
|
215
|
+
"status.starting": "Demarrage de la resolution de conflit de fusion...",
|
|
216
|
+
"status.failed_parse": "Echec de l'analyse des marqueurs de conflit",
|
|
217
|
+
"status.progress": "Fusion: {remaining} sur {total} conflits restants | Actuel: {current}",
|
|
218
|
+
"status.all_resolved": "Fusion: Tous les {total} conflits resolus! Appuyez sur 's' pour sauvegarder",
|
|
219
|
+
"status.no_active_merge": "Pas de fusion active - utilisez d'abord 'Fusion: Demarrer la Resolution'",
|
|
220
|
+
"status.no_conflicts": "Pas de conflits a naviguer",
|
|
221
|
+
"status.single_refocused": "Conflit 1 sur 1 (refocalise)",
|
|
222
|
+
"status.conflict_of": "Conflit {current} sur {total}",
|
|
223
|
+
"status.conflict_all_resolved": "Conflit {current} sur {total} (tous resolus)",
|
|
224
|
+
"status.cannot_save": "Impossible de sauvegarder: {count} conflits non resolus restants",
|
|
225
|
+
"status.complete": "Fusion terminee! Fichier mis a jour avec le contenu resolu",
|
|
226
|
+
"status.nothing_to_abort": "Pas de fusion active - rien a abandonner",
|
|
227
|
+
"status.aborted": "Fusion abandonnee - aucune modification effectuee",
|
|
228
|
+
"status.help": "Fusion: [n/p] Naviguer | [u] Notre [t] Leur [b] Deux | [s] Sauver [q] Quitter",
|
|
229
|
+
"status.detected": "Conflits detectes! Utilisez 'Fusion: Demarrer la Resolution' ou executez start_merge_conflict",
|
|
230
|
+
"status.detected_file": "Conflits de fusion detectes dans {path} - Utilisez 'Fusion: Demarrer la Resolution'",
|
|
231
|
+
"status.conflicts_to_resolve": "Fusion: {remaining} conflits a resoudre ({auto_resolved} auto-resolus)",
|
|
232
|
+
"status.all_auto_resolved": "Fusion: Tous les {total} conflits auto-resolus! Appuyez sur 's' pour sauvegarder",
|
|
233
|
+
"panel.ours_header": "NOTRE (Lecture seule) - Modifications de votre branche",
|
|
234
|
+
"panel.theirs_header": "LEUR (Lecture seule) - Modifications entrantes",
|
|
235
|
+
"panel.result_header": "RESULTAT (Modifiable) - Contenu resolu",
|
|
236
|
+
"panel.git_unavailable": "(Version Git non disponible - affichage des regions de conflit uniquement)",
|
|
237
|
+
"panel.conflict": "Conflit {index}",
|
|
238
|
+
"panel.resolved": "[RESOLU]",
|
|
239
|
+
"panel.pending": "[EN ATTENTE]",
|
|
240
|
+
"panel.empty": "(vide)",
|
|
241
|
+
"panel.remaining": "{count} conflit(s) restant(s)",
|
|
242
|
+
"panel.all_resolved": "Tous les conflits resolus!",
|
|
243
|
+
"panel.resolved_with": "[Resolu: {resolution}]",
|
|
244
|
+
"btn.accept_ours": "[u] Accepter le Notre",
|
|
245
|
+
"btn.accept_theirs": "[t] Accepter le Leur",
|
|
246
|
+
"btn.both": "[b] Les Deux",
|
|
247
|
+
"btn.next": "[n] Suivant",
|
|
248
|
+
"btn.prev": "[p] Precedent",
|
|
249
|
+
"btn.use_ours": "[u] Utiliser le Notre",
|
|
250
|
+
"btn.take_theirs": "[t] Prendre le Leur",
|
|
251
|
+
"btn.save_exit": "[s] Sauvegarder et Quitter",
|
|
252
|
+
"btn.abort": "[q] Abandonner"
|
|
253
|
+
},
|
|
254
|
+
"ja": {
|
|
255
|
+
"cmd.start": "Merge: 解決を開始",
|
|
256
|
+
"cmd.start_desc": "現在のファイルの3方向マージ競合解決を開始",
|
|
257
|
+
"cmd.next": "Merge: 次の競合",
|
|
258
|
+
"cmd.next_desc": "次の未解決の競合にジャンプ",
|
|
259
|
+
"cmd.prev": "Merge: 前の競合",
|
|
260
|
+
"cmd.prev_desc": "前の未解決の競合にジャンプ",
|
|
261
|
+
"cmd.use_ours": "Merge: 自分のを使用",
|
|
262
|
+
"cmd.use_ours_desc": "現在の競合に自分のバージョンを採用",
|
|
263
|
+
"cmd.take_theirs": "Merge: 相手のを使用",
|
|
264
|
+
"cmd.take_theirs_desc": "現在の競合に相手のバージョンを採用",
|
|
265
|
+
"cmd.use_both": "Merge: 両方を使用",
|
|
266
|
+
"cmd.use_both_desc": "現在の競合に両方のバージョンを採用",
|
|
267
|
+
"cmd.save_exit": "Merge: 保存して終了",
|
|
268
|
+
"cmd.save_exit_desc": "解決したコンテンツを保存してマージモードを終了",
|
|
269
|
+
"cmd.abort": "Merge: 中止",
|
|
270
|
+
"cmd.abort_desc": "保存せずにマージ解決を中止",
|
|
271
|
+
"status.ready": "マージ競合解決プラグインが読み込まれました",
|
|
272
|
+
"status.already_active": "マージモードは既にアクティブです",
|
|
273
|
+
"status.no_file": "ファイルが開かれていません",
|
|
274
|
+
"status.not_git_repo": "gitリポジトリ内ではありません - マージ競合解決にはgitが必要です",
|
|
275
|
+
"status.no_unmerged": "未マージのエントリがありません - ファイルは競合状態ではありません",
|
|
276
|
+
"status.failed_read": "ファイルコンテンツの読み取りに失敗しました",
|
|
277
|
+
"status.no_markers": "ファイルコンテンツに競合マーカーが見つかりません",
|
|
278
|
+
"status.starting": "マージ競合解決を開始しています...",
|
|
279
|
+
"status.failed_parse": "競合マーカーの解析に失敗しました",
|
|
280
|
+
"status.progress": "Merge: {total}件中{remaining}件の競合が残っています | 現在: {current}",
|
|
281
|
+
"status.all_resolved": "Merge: 全{total}件の競合が解決しました! 's'を押して保存",
|
|
282
|
+
"status.no_active_merge": "アクティブなマージがありません - まず 'Merge: 解決を開始' を使用してください",
|
|
283
|
+
"status.no_conflicts": "ナビゲートする競合がありません",
|
|
284
|
+
"status.single_refocused": "競合 1/1 (再フォーカス)",
|
|
285
|
+
"status.conflict_of": "競合 {current}/{total}",
|
|
286
|
+
"status.conflict_all_resolved": "競合 {current}/{total} (全て解決済み)",
|
|
287
|
+
"status.cannot_save": "保存できません: 未解決の競合が{count}件残っています",
|
|
288
|
+
"status.complete": "マージ完了! 解決したコンテンツでファイルを更新しました",
|
|
289
|
+
"status.nothing_to_abort": "アクティブなマージがありません - 中止するものがありません",
|
|
290
|
+
"status.aborted": "マージを中止しました - 変更はありません",
|
|
291
|
+
"status.help": "Merge: [n/p] ナビゲート | [u] 自分の [t] 相手の [b] 両方 | [s] 保存 [q] 中止",
|
|
292
|
+
"status.detected": "競合を検出! 'Merge: 解決を開始' を使用するか start_merge_conflict を実行してください",
|
|
293
|
+
"status.detected_file": "{path} でマージ競合を検出 - 'Merge: 解決を開始' を使用してください",
|
|
294
|
+
"status.conflicts_to_resolve": "Merge: 解決すべき競合が{remaining}件 ({auto_resolved}件自動解決済み)",
|
|
295
|
+
"status.all_auto_resolved": "Merge: 全{total}件の競合が自動解決しました! 's'を押して保存",
|
|
296
|
+
"panel.ours_header": "OURS (読み取り専用) - あなたのブランチからの変更",
|
|
297
|
+
"panel.theirs_header": "THEIRS (読み取り専用) - 着信する変更",
|
|
298
|
+
"panel.result_header": "RESULT (編集可能) - 解決されたコンテンツ",
|
|
299
|
+
"panel.git_unavailable": "(Gitバージョンが利用できません - 競合領域のみ表示)",
|
|
300
|
+
"panel.conflict": "競合 {index}",
|
|
301
|
+
"panel.resolved": "[解決済み]",
|
|
302
|
+
"panel.pending": "[保留中]",
|
|
303
|
+
"panel.empty": "(空)",
|
|
304
|
+
"panel.remaining": "{count}件の競合が残っています",
|
|
305
|
+
"panel.all_resolved": "全ての競合が解決しました!",
|
|
306
|
+
"panel.resolved_with": "[解決: {resolution}]",
|
|
307
|
+
"btn.accept_ours": "[u] 自分のを採用",
|
|
308
|
+
"btn.accept_theirs": "[t] 相手のを採用",
|
|
309
|
+
"btn.both": "[b] 両方",
|
|
310
|
+
"btn.next": "[n] 次",
|
|
311
|
+
"btn.prev": "[p] 前",
|
|
312
|
+
"btn.use_ours": "[u] 自分のを使用",
|
|
313
|
+
"btn.take_theirs": "[t] 相手のを使用",
|
|
314
|
+
"btn.save_exit": "[s] 保存して終了",
|
|
315
|
+
"btn.abort": "[q] 中止"
|
|
316
|
+
},
|
|
317
|
+
"zh-CN": {
|
|
318
|
+
"cmd.start": "Merge: 开始解决",
|
|
319
|
+
"cmd.start_desc": "为当前文件开始3路合并冲突解决",
|
|
320
|
+
"cmd.next": "Merge: 下一个冲突",
|
|
321
|
+
"cmd.next_desc": "跳转到下一个未解决的冲突",
|
|
322
|
+
"cmd.prev": "Merge: 上一个冲突",
|
|
323
|
+
"cmd.prev_desc": "跳转到上一个未解决的冲突",
|
|
324
|
+
"cmd.use_ours": "Merge: 使用我们的",
|
|
325
|
+
"cmd.use_ours_desc": "为当前冲突采用我们的版本",
|
|
326
|
+
"cmd.take_theirs": "Merge: 使用他们的",
|
|
327
|
+
"cmd.take_theirs_desc": "为当前冲突采用他们的版本",
|
|
328
|
+
"cmd.use_both": "Merge: 使用两者",
|
|
329
|
+
"cmd.use_both_desc": "为当前冲突采用两个版本",
|
|
330
|
+
"cmd.save_exit": "Merge: 保存并退出",
|
|
331
|
+
"cmd.save_exit_desc": "保存已解决的内容并退出合并模式",
|
|
332
|
+
"cmd.abort": "Merge: 中止",
|
|
333
|
+
"cmd.abort_desc": "不保存中止合并解决",
|
|
334
|
+
"status.ready": "合并冲突解决插件已加载",
|
|
335
|
+
"status.already_active": "合并模式已激活",
|
|
336
|
+
"status.no_file": "没有打开的文件",
|
|
337
|
+
"status.not_git_repo": "不在git仓库中 - 合并冲突解决需要git",
|
|
338
|
+
"status.no_unmerged": "没有未合并的条目 - 文件不处于冲突状态",
|
|
339
|
+
"status.failed_read": "读取文件内容失败",
|
|
340
|
+
"status.no_markers": "在文件内容中未找到冲突标记",
|
|
341
|
+
"status.starting": "正在开始合并冲突解决...",
|
|
342
|
+
"status.failed_parse": "解析冲突标记失败",
|
|
343
|
+
"status.progress": "Merge: 剩余 {remaining}/{total} 个冲突 | 当前: {current}",
|
|
344
|
+
"status.all_resolved": "Merge: 所有 {total} 个冲突已解决! 按 's' 保存",
|
|
345
|
+
"status.no_active_merge": "没有活动的合并 - 请先使用 'Merge: 开始解决'",
|
|
346
|
+
"status.no_conflicts": "没有可导航的冲突",
|
|
347
|
+
"status.single_refocused": "冲突 1/1 (重新聚焦)",
|
|
348
|
+
"status.conflict_of": "冲突 {current}/{total}",
|
|
349
|
+
"status.conflict_all_resolved": "冲突 {current}/{total} (全部已解决)",
|
|
350
|
+
"status.cannot_save": "无法保存: 剩余 {count} 个未解决的冲突",
|
|
351
|
+
"status.complete": "合并完成! 文件已更新为解决后的内容",
|
|
352
|
+
"status.nothing_to_abort": "没有活动的合并 - 没有可中止的内容",
|
|
353
|
+
"status.aborted": "合并已中止 - 未做任何更改",
|
|
354
|
+
"status.help": "Merge: [n/p] 导航 | [u] 我们的 [t] 他们的 [b] 两者 | [s] 保存 [q] 中止",
|
|
355
|
+
"status.detected": "检测到冲突! 使用 'Merge: 开始解决' 或运行 start_merge_conflict",
|
|
356
|
+
"status.detected_file": "在 {path} 中检测到合并冲突 - 使用 'Merge: 开始解决'",
|
|
357
|
+
"status.conflicts_to_resolve": "Merge: {remaining} 个冲突待解决 ({auto_resolved} 个自动解决)",
|
|
358
|
+
"status.all_auto_resolved": "Merge: 所有 {total} 个冲突已自动解决! 按 's' 保存",
|
|
359
|
+
"panel.ours_header": "OURS (只读) - 来自您分支的更改",
|
|
360
|
+
"panel.theirs_header": "THEIRS (只读) - 传入的更改",
|
|
361
|
+
"panel.result_header": "RESULT (可编辑) - 已解决的内容",
|
|
362
|
+
"panel.git_unavailable": "(Git版本不可用 - 仅显示冲突区域)",
|
|
363
|
+
"panel.conflict": "冲突 {index}",
|
|
364
|
+
"panel.resolved": "[已解决]",
|
|
365
|
+
"panel.pending": "[待处理]",
|
|
366
|
+
"panel.empty": "(空)",
|
|
367
|
+
"panel.remaining": "剩余 {count} 个冲突",
|
|
368
|
+
"panel.all_resolved": "所有冲突已解决!",
|
|
369
|
+
"panel.resolved_with": "[已解决: {resolution}]",
|
|
370
|
+
"btn.accept_ours": "[u] 采用我们的",
|
|
371
|
+
"btn.accept_theirs": "[t] 采用他们的",
|
|
372
|
+
"btn.both": "[b] 两者",
|
|
373
|
+
"btn.next": "[n] 下一个",
|
|
374
|
+
"btn.prev": "[p] 上一个",
|
|
375
|
+
"btn.use_ours": "[u] 使用我们的",
|
|
376
|
+
"btn.take_theirs": "[t] 使用他们的",
|
|
377
|
+
"btn.save_exit": "[s] 保存并退出",
|
|
378
|
+
"btn.abort": "[q] 中止"
|
|
379
|
+
}
|
|
380
|
+
}
|