Skip to content

Translations update from Hosted Weblate#123

Open
weblate wants to merge 3 commits intoOlaProeis:masterfrom
weblate:weblate-ferrite-ferrite-ui
Open

Translations update from Hosted Weblate#123
weblate wants to merge 3 commits intoOlaProeis:masterfrom
weblate:weblate-ferrite-ferrite-ui

Conversation

@weblate
Copy link
Copy Markdown
Contributor

@weblate weblate commented Apr 18, 2026

Translations update from Hosted Weblate for Ferrite/Ferrite UI.

Current translation status:

Weblate translation status

Summary by CodeRabbit

  • Localization
    • Expanded Spanish translations across view modes, status/status-bar descriptions, file dialogs, tooltips, and a wide range of editor/settings preferences (fonts, CJK/complex-script, tabs/spacing, wrap, minimap, folding, snippets, appearance, etc.).
    • Adjusted Spanish dialog wording for clearer prompts.
    • Added a full Czech localization scaffold with complete key structure ready for translation.

Currently translated at 22.4% (166 of 739 strings)

Translation: Ferrite/Ferrite UI
Translate-URL: https://hosted.weblate.org/projects/ferrite/ferrite-ui/es/
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 18, 2026

📝 Walkthrough

Walkthrough

Added extensive Spanish translations and many new settings/dialog keys to locales/es.yaml (large additions and two small wording tweaks) and introduced a new Czech localization scaffold locales/cs.yaml containing the full i18n key structure with empty values.

Changes

Cohort / File(s) Summary
Spanish localization
locales/es.yaml
Added ~+539 lines: new view/status descriptions, file dialog labels/tooltips, many settings / welcome-first-launch keys (fonts, CJK/complex-script prefs, editor appearance/behavior, folding, snippets, preview/files/appearance/keyboard/terminal/about sections), and multiple top-level sections (find, outline, pipeline, notification, productivity, file_dialog, shortcuts, ribbon, recovery, quick_switcher, search, about, stats). Minor wording edits: dialog.unsaved_changes.dont_save ("No guardes" → "No guardar"), dialog.file.enter_new_name ("Introduce el nuevo nombre:" → "Introduce el nombre nuevo:").
Czech localization (new file)
locales/cs.yaml
Added new file (+934 lines): full i18n key schema for Czech with empty string values across app, menu, dialogs, settings, find/replace, outline, stats, shortcuts, notifications, file dialogs, panels, Git, recovery, productivity, and other UI sections (scaffold for translations).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐇 I hopped through YAML, key by key and line by line,

I whispered tooltips in Spanish and left a Czech outline.
Fonts, folds, and view modes—my tiny paws did play,
A rabbit’s little patch to brighten up your day ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Translations update from Hosted Weblate' accurately describes the main change: updates to localization files (Spanish and Czech translations) from the Weblate translation platform.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@locales/es.yaml`:
- Around line 227-258: Fix visible typos and incorrect editor terminology in the
Spanish locale keys: correct "scritpt" to "script" in complex_scripts_hint,
change "predetermnado" to "predeterminado" in default_language, replace "cursos"
with "cursor" in brackets_tooltip, and update word_wrap and word_wrap_tooltip
from "Cobertura de palabra"/"Cobertura..." to a standard editor term such as
"Ajuste de línea" and "Ajusta las líneas largas en lugar de desplazar
horizontalmente" (or equivalent consistent phrasing); also review and correct
the analogous typos on the referenced lines (263-264). Ensure all changes
preserve YAML formatting and existing keys (complex_scripts,
complex_scripts_hint, complex_script_default, tab_size, spaces, word_wrap,
word_wrap_tooltip, show_line_numbers, line_numbers_tooltip, show_minimap,
minimap_tooltip, minimap_mode, minimap_mode_* , highlight_brackets,
brackets_tooltip, auto_close_brackets, auto_close_tooltip, syntax_highlighting,
syntax_tooltip, default_language).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 95a5ef55-c295-4661-9b1b-08926417d067

📥 Commits

Reviewing files that changed from the base of the PR and between a1ab2b7 and 21769c1.

📒 Files selected for processing (1)
  • locales/es.yaml

Comment thread locales/es.yaml
Comment on lines +227 to +258
complex_scripts: Script adicionales
complex_scripts_hint: Preseleccionar tipografías para árabe, bengalí,
devanagari, tailandés, hebreo, tamil, georgiano, armenio, etíope, y otros
script. Las tipografías se cargan bajo demanda cuando los archivo con esos
scritpt son abiertos.
complex_script_default: Predeterminado (Sistema)
tab_size: Tamaño de tabulación
spaces: espacios
word_wrap: Cobertura de palabra
word_wrap_tooltip: Cubre líneas largas en vez de arrastre horizontal
show_line_numbers: Mostrar números de línea
line_numbers_tooltip: Exhibir números de línea en el editor del catalizador
show_minimap: Mostrar mini‐mapa
minimap_tooltip: Exhibe un mini‐mapa panel de navegación sobre el lado
derecho del editor
minimap_mode: Modo minimapa
minimap_mode_auto: Auto
minimap_mode_auto_desc: Semántica para Markdown, píxel para código
minimap_mode_semantic: Semántica
minimap_mode_semantic_desc: Resumen de estructura con encabezados
minimap_mode_pixel: Píxel
minimap_mode_pixel_desc: Resumen de código con caracteres
highlight_brackets: Resaltar corchetes coincidentes
brackets_tooltip: Resaltar corchetas coincidentes (), [], {}, <> y parejas
de énfasis ** y __ cuando el cursos está adjunto
auto_close_brackets: Auto-cerrar corchetes y entrecomillados
auto_close_tooltip: Insertar automáticamente los corchetes y entrecomillas
de cierre. Cubra texto seleccionado cuando teclee una apertura.
syntax_highlighting: Resaltado sintáctico
syntax_tooltip: Habilita resaltado sintáctico para archivos de código fuente
(Rust, Python, JavaScript, etc.)
default_language: Idioma predetermnado
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix visible typos and mistranslated editor terms.

Several new settings strings have user-facing typos or misleading terms: scritpt, predetermnado, cursos, “Cobertura de palabra”, and “posición de arrastre”.

📝 Proposed cleanup
-    complex_scripts: Script adicionales
+    complex_scripts: Sistemas de escritura adicionales
     complex_scripts_hint: Preseleccionar tipografías para árabe, bengalí, 
       devanagari, tailandés, hebreo, tamil, georgiano, armenio, etíope, y otros 
-      script. Las tipografías se cargan bajo demanda cuando los archivo con esos
-      scritpt son abiertos.
+      sistemas de escritura. Las tipografías se cargan bajo demanda cuando se
+      abren archivos con esos sistemas de escritura.
@@
-    word_wrap: Cobertura de palabra
-    word_wrap_tooltip: Cubre líneas largas en vez de arrastre horizontal
+    word_wrap: Ajuste de línea
+    word_wrap_tooltip: Ajusta las líneas largas en lugar de usar desplazamiento horizontal
@@
-    brackets_tooltip: Resaltar corchetas coincidentes (), [], {}, <> y parejas 
-      de énfasis ** y __ cuando el cursos está adjunto
+    brackets_tooltip: Resaltar corchetes coincidentes (), [], {}, <> y parejas 
+      de énfasis ** y __ cuando el cursor está junto a ellos
@@
-    default_language: Idioma predetermnado
+    default_language: Idioma predeterminado
@@
-    sync_scroll_tooltip: Sincronizar posición de arrastre cuando intercambia 
-      entre vistas Cruda y Renderizada
+    sync_scroll_tooltip: Sincronizar la posición de desplazamiento al alternar 
+      entre las vistas sin formato y renderizada

Also applies to: 263-264

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@locales/es.yaml` around lines 227 - 258, Fix visible typos and incorrect
editor terminology in the Spanish locale keys: correct "scritpt" to "script" in
complex_scripts_hint, change "predetermnado" to "predeterminado" in
default_language, replace "cursos" with "cursor" in brackets_tooltip, and update
word_wrap and word_wrap_tooltip from "Cobertura de palabra"/"Cobertura..." to a
standard editor term such as "Ajuste de línea" and "Ajusta las líneas largas en
lugar de desplazar horizontalmente" (or equivalent consistent phrasing); also
review and correct the analogous typos on the referenced lines (263-264). Ensure
all changes preserve YAML formatting and existing keys (complex_scripts,
complex_scripts_hint, complex_script_default, tab_size, spaces, word_wrap,
word_wrap_tooltip, show_line_numbers, line_numbers_tooltip, show_minimap,
minimap_tooltip, minimap_mode, minimap_mode_* , highlight_brackets,
brackets_tooltip, auto_close_brackets, auto_close_tooltip, syntax_highlighting,
syntax_tooltip, default_language).

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
locales/cs.yaml (1)

1-3: Fix the locale header.

This file is cs.yaml, but the header still labels it as the English base language. That can confuse translators working from this scaffold.

Suggested wording
-# Ferrite - English (Base Language)
+# Ferrite - Czech
 # This file contains all user-facing strings for internationalization.
 # Naming convention: category.subcategory.key (e.g., menu.file.open)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@locales/cs.yaml` around lines 1 - 3, The locale header currently says
"Ferrite - English (Base Language)"; update the top comment lines to correctly
identify this file's language and purpose (e.g., "Ferrite - Czech (cs) —
Čeština" and "This file contains all user-facing strings for Czech
translation.") so translators aren't misled; edit the existing header comment
block (the three comment lines at the top) to reflect the Czech locale and
optional notes about naming convention.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@locales/cs.yaml`:
- Around line 6-934: The cs.yaml file is a scaffold of empty translations which
will render blank UI; either remove cs.yaml from the set of loaded locale files
or fully implement Czech translations and wire the Language enum to support
"cs". If choosing removal: remove cs.yaml from the app's locale loading list. If
choosing to add Czech support: populate locales/cs.yaml with real translated
strings and update the Language enum (add the Cs variant) and its helper methods
locale_code(), native_name(), selector_display_name(), all(), and
from_locale_code() (include serde(rename = "cs") where applicable) so "cs" is
recognized and returned consistently by these functions.

---

Nitpick comments:
In `@locales/cs.yaml`:
- Around line 1-3: The locale header currently says "Ferrite - English (Base
Language)"; update the top comment lines to correctly identify this file's
language and purpose (e.g., "Ferrite - Czech (cs) — Čeština" and "This file
contains all user-facing strings for Czech translation.") so translators aren't
misled; edit the existing header comment block (the three comment lines at the
top) to reflect the Czech locale and optional notes about naming convention.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 836b8b74-2b15-428b-b8e0-53dcdbe67943

📥 Commits

Reviewing files that changed from the base of the PR and between 21769c1 and 9457194.

📒 Files selected for processing (1)
  • locales/cs.yaml

Comment thread locales/cs.yaml
Comment on lines +6 to +934
app:
name: ""

# Menu bar items
menu:
file:
label: ""
open: ""
save: ""
save_as: ""
recent: ""
export: ""
export_html: ""
export_clipboard: ""
edit:
label: ""
format:
label: ""
tools:
label: ""

# Toolbar buttons

# View mode labels
view_mode:
raw_desc: ""
rendered_desc: ""
split_desc: ""

# Status bar
status:
untitled: ""
no_file: ""
vim_mode: ""
cursor_position: ""
delimiter_tooltip: ""
header_tooltip: ""
rainbow_tooltip: ""
encoding_tooltip: ""
encoding_heading: ""
recent_files_heading: ""
recent_folders_heading: ""
file_tooltip: ""
folder_tooltip: ""

# File dialogs
dialog:
unsaved_changes:
title: ""
save: ""
dont_save: ""
confirm:
cancel: ""
close: ""
# File operation dialogs
file:
new_file: ""
new_folder: ""
enter_file_name: ""
enter_folder_name: ""
hint_file: ""
hint_folder: ""
create: ""
rename: ""
enter_new_name: ""
exists_error: ""
confirm_delete: ""
delete_folder_warning: ""
delete: ""
file: ""
folder: ""
location: ""
delete_confirm: ""
# Go to Line dialog
go_to_line:
title: ""
enter_line: ""
go: ""
range: ""

# Settings panel
settings:
title: ""
reset_all: ""
reset_tooltip: ""
auto_save_hint: ""
default_view_hint: ""
font_size:
small: ""
medium: ""
large: ""
general:
theme: ""
theme_dark: ""
theme_light: ""
theme_system: ""
restore_session: ""
editor:
title: ""
font_family: ""
font_size: ""
font_inter_desc: ""
font_jetbrains_desc: ""
custom_font: ""
custom_font_desc: ""
select_system_font: ""
font_preview: ""
font_not_found: ""
cjk_preference: ""
cjk_preference_hint: ""
cjk_auto: ""
cjk_auto_desc: ""
cjk_korean: ""
cjk_korean_desc: ""
cjk_simplified_chinese: ""
cjk_simplified_chinese_desc: ""
cjk_traditional_chinese: ""
cjk_traditional_chinese_desc: ""
cjk_japanese: ""
cjk_japanese_desc: ""
complex_scripts: ""
complex_scripts_hint: ""
complex_script_default: ""
tab_size: ""
spaces: ""
word_wrap: ""
word_wrap_tooltip: ""
show_line_numbers: ""
line_numbers_tooltip: ""
show_minimap: ""
minimap_tooltip: ""
minimap_mode: ""
minimap_mode_auto: ""
minimap_mode_auto_desc: ""
minimap_mode_semantic: ""
minimap_mode_semantic_desc: ""
minimap_mode_pixel: ""
minimap_mode_pixel_desc: ""
highlight_brackets: ""
brackets_tooltip: ""
auto_close_brackets: ""
auto_close_tooltip: ""
syntax_highlighting: ""
syntax_tooltip: ""
default_language: ""
default_language_hint: ""
default_language_auto: ""
sync_scroll_tooltip: ""
use_spaces: ""
use_spaces_tooltip: ""
vim_mode: ""
vim_mode_tooltip: ""
max_line_width: ""
custom_width: ""
code_folding: ""
enable_folding: ""
folding_tooltip: ""
show_fold_indicators: ""
fold_indicators_tooltip: ""
fold_headings: ""
fold_headings_tooltip: ""
fold_code_blocks: ""
fold_code_blocks_tooltip: ""
fold_lists: ""
fold_lists_tooltip: ""
fold_indentation: ""
fold_indentation_tooltip: ""
snippets: ""
enable_snippets: ""
snippets_tooltip: ""
builtin_snippets: ""
snippet_date: ""
snippet_time: ""
snippet_datetime: ""
snippet_now: ""
# CJK Paragraph Indentation
paragraph_indent: ""
paragraph_indent_hint: ""
paragraph_indent_custom: ""
paragraph_indent_custom_desc: ""
# Header Spacing (Markdown Rendering)
header_spacing: ""
header_spacing_hint: ""
preview:
sync_scroll: ""
default_view: ""
files:
title: ""
restore_session_tooltip: ""
enable_auto_save: ""
auto_save_tooltip: ""
auto_save_delay: ""
recent_files: ""
clear_recent: ""
clear_recent_tooltip: ""
seconds: ""
remember_files: ""
files_count: ""
appearance:
title: ""
language: ""
language_hint: ""
syntax_theme: ""
syntax_theme_hint: ""
syntax_theme_auto: ""
keyboard:
title: ""
search_hint: ""
reset_all: ""
reset_all_tooltip: ""
reset_default: ""
press_key: ""
waiting: ""
cancel: ""
apply: ""
conflict_with: ""
click_to_change: ""
about:
title: ""
description: ""
updates: ""
check_for_updates: ""
checking: ""
up_to_date: ""
check_again: ""
update_available: ""
new_version: ""
view_release: ""
check_failed: ""
try_again: ""
links: ""
all_releases: ""
report_issue: ""
source_code: ""
license: ""
terminal:
title: ""
enable: ""
font_size: ""
scrollback: ""
copy_selection: ""
copy_selection_tooltip: ""
theme: ""
opacity: ""
startup_command: ""
startup_command_desc: ""
startup_command_hint: ""
monitors: ""
monitors_desc: ""
monitor_label: ""
monitor_geometry: ""
breathing_color: ""
prompt_patterns: ""
prompt_patterns_desc: ""
prompt_patterns_hint: ""
auto_load_layout: ""
auto_load_layout_tooltip: ""
sound_notification: ""
sound_notification_desc: ""
enable_sound: ""
enable_sound_tooltip: ""
custom_sound: ""
custom_sound_hint: ""
auto_focus: ""
auto_focus_desc: ""
focus_on_prompt: ""
focus_on_prompt_tooltip: ""
font_size_format: ""
opacity_format: ""

# Find and Replace panel
find:
placeholder: ""
replace_placeholder: ""
match_case: ""
match_case_short: ""
whole_word: ""
use_regex: ""
replace: ""
replace_all: ""
no_results: ""
title: ""
title_replace: ""
title_find: ""
close_tooltip: ""
hide_replace: ""
show_replace: ""
prev_tooltip: ""
next_tooltip: ""
replace_tooltip: ""
replace_all_tooltip: ""
keyboard_hints: ""

# Outline panel
outline:
panel_title: ""
statistics: ""
tab_outline: ""
tab_statistics: ""
summary: ""
no_headings: ""
add_headings_hint: ""
close_tooltip: ""
parse_error: ""
detach_tooltip: ""
backlinks_unavailable: ""
productivity_unavailable: ""
tab_links: ""
tab_hub: ""
json_structure: ""
json_values: ""
json_objects: ""
json_arrays: ""
json_total_keys: ""
json_max_depth: ""
json_total_values: ""
json_strings: ""
json_numbers: ""
json_booleans: ""
json_nulls: ""
json_array_items: ""

# Document statistics
stats:
no_data: ""
text_stats: ""
words: ""
characters: ""
characters_no_spaces: ""
lines: ""
paragraphs: ""
structure: ""
headings_total: ""
list_items: ""
horizontal_rules: ""
media_links: ""
links: ""
images: ""
code_diagrams: ""
code_blocks: ""
mermaid_diagrams: ""
tables: ""
blockquotes: ""

# File tree / Sidebar

# Quick switcher
quick_switcher:
placeholder: ""
no_results: ""
recent_tooltip: ""
keyboard_hints: ""

# Search in files
search:
title: ""
label: ""
placeholder: ""
more_matches: ""
keyboard_hints: ""

# About dialog
about:
title: ""
tab:
about: ""
shortcuts: ""
description: ""
close_hint: ""
# Links section
links: ""
github_label: ""
view_on_github: ""
github_tooltip: ""
report_issue_label: ""
submit_bug: ""
issue_tooltip: ""
# Built with section
built_with: ""
lib:
egui: ""
comrak: ""
syntect: ""
serde: ""
notify: ""
# License section
license: ""
license_type: ""
copyright: ""
version: ""

# Keyboard shortcuts
shortcuts:
title: ""
expand_hint: ""
# Categories
category:
file: ""
edit: ""
view: ""
formatting: ""
workspace: ""
navigation: ""
# Command names (used in keyboard settings panel)
commands:
# File operations
save: ""
save_as: ""
open: ""
new: ""
new_tab: ""
close_tab: ""
# Navigation
next_tab: ""
prev_tab: ""
go_to_line: ""
quick_open: ""
# View
toggle_view_mode: ""
cycle_theme: ""
toggle_zen_mode: ""
toggle_fullscreen: ""
toggle_outline: ""
toggle_file_tree: ""
toggle_pipeline: ""
# Edit
undo: ""
redo: ""
delete_line: ""
duplicate_line: ""
move_line_up: ""
move_line_down: ""
select_next_occurrence: ""
# Search
find: ""
find_replace: ""
find_next: ""
find_prev: ""
search_in_files: ""
# Formatting
bold: ""
italic: ""
inline_code: ""
code_block: ""
link: ""
image: ""
blockquote: ""
bullet_list: ""
numbered_list: ""
heading_1: ""
heading_2: ""
heading_3: ""
heading_4: ""
heading_5: ""
heading_6: ""
# Folding
fold_all: ""
unfold_all: ""
toggle_fold: ""
# Other
open_settings: ""
open_about: ""
export_html: ""
insert_toc: ""
# File shortcuts (for help panel)
file:
new: ""
open: ""
save: ""
save_as: ""
close_tab: ""
# Edit shortcuts (for help panel)
edit:
undo: ""
redo: ""
find: ""
find_replace: ""
select_all: ""
copy: ""
cut: ""
paste: ""
delete_line: ""
duplicate_line: ""
move_line_up: ""
move_line_down: ""
select_next_occurrence: ""
# View shortcuts (for help panel)
view:
toggle_view: ""
toggle_outline: ""
zoom_in: ""
zoom_out: ""
reset_zoom: ""
settings: ""
about: ""
# Formatting shortcuts (for help panel)
format:
bold: ""
italic: ""
underline: ""
link: ""
code: ""
# Workspace shortcuts (for help panel)
workspace:
quick_switcher: ""
search_files: ""
toggle_tree: ""
# Navigation shortcuts (for help panel)
nav:
next_tab: ""
prev_tab: ""
go_to_line: ""
find_next: ""
find_prev: ""

# Error messages

# Notifications / Toasts
notification:
restored_auto_save: ""
auto_save_discarded: ""
session_restored: ""
large_file_performance: ""
large_file_loading: ""
file_loaded: ""
file_load_failed: ""
undo: ""
nothing_to_undo: ""
redo: ""
nothing_to_redo: ""
outline_shown: ""
outline_hidden: ""
loaded_terminal_layout: ""
terminal_shown: ""
terminal_hidden: ""
zen_enabled: ""
zen_disabled: ""
fullscreen_enter: ""
fullscreen_exit: ""
pipeline_disabled: ""
pipeline_zen: ""
pipeline_unsupported: ""
pipeline_opened: ""
pipeline_closed: ""
file_tree_shown: ""
file_tree_hidden: ""
open_folder_first: ""
open_folder_quick_open: ""
open_folder_search: ""
toc_markdown_only: ""
toc_updated: ""
toc_inserted: ""
toc_inserted_empty: ""
no_document_format: ""
not_structured: ""
document_formatted: ""
format_failed: ""
parse_error: ""
no_document_validate: ""
valid_syntax: ""
invalid_syntax: ""
replaced: ""
replaced_count: ""
no_document_export: ""
exported_to: ""
export_failed: ""
no_document_copy: ""
html_copied: ""
copy_failed: ""
opened_files: ""
saved: ""
opened_workspace: ""
workspace_closed: ""
file_tree_refreshed: ""
created: ""
renamed_to: ""
deleted: ""
opened_background: ""
settings_reset: ""
encoding_changed: ""
reloaded_single: ""
reloaded_multiple: ""
external_change_single: ""
external_change_multiple: ""
image_added: ""
images_added: ""
opened_external_single: ""
opened_external_multiple: ""
wikilink_not_found: ""
wikilink_open_failed: ""

# Tree viewer (JSON/YAML/TOML)
tree_viewer:
collapse_all: ""
expand_all: ""
copy_path: ""
show_raw: ""
parse_error: ""
large_file_warning: ""

# Git integration
git:
modified: ""
deleted: ""
renamed: ""
untracked: ""
staged: ""
tracked: ""
staged_modified: ""
ignored: ""
conflict: ""

# Accessibility
a11y:
close_button: ""
minimize_button: ""

# Recovery and session dialogs
recovery:
auto_save:
title: ""
backup_found: ""
restore_question: ""
restore: ""
discard: ""
time_label: ""
session:
title: ""
crash_detected: ""
restore_question: ""
restore: ""
start_fresh: ""
restore_tooltip: ""
start_fresh_tooltip: ""
untitled: ""

# Common buttons and actions
common:
ok: ""
copy: ""
error: ""
dismiss: ""

# Code blocks and widgets
widgets:
code_block:
copy_tooltip: ""
finish_tooltip: ""
edit_tooltip: ""
table:
add_row: ""
add_column: ""
align_left: ""
align_center: ""
align_right: ""
delete_column_label: ""
delete_column: ""
align_label: ""
align_none: ""
delete_row: ""
add_row_tooltip: ""
add_column_tooltip: ""
alignment_tooltip: ""
list:
decrease_level: ""
increase_level: ""
remove_item: ""
add_item: ""
link:
edit: ""
open: ""
copy: ""
text_label: ""
url_label: ""
copy_tooltip: ""

# CSV Viewer
csv:
delimiter_auto: ""
error: ""
select_delimiter: ""
header_row: ""
has_headers_yes: ""
has_headers_no: ""
show_raw: ""
large_file_warning: ""

# Pipeline panel
pipeline:
title: ""
command_placeholder: ""
run: ""
recent: ""
no_output: ""
running: ""
truncated: ""
close_tooltip: ""
cancel_tooltip: ""
run_tooltip: ""
stdout: ""
stderr: ""
hint: ""
no_output_success: ""

# Encoding

# Tab context menu
tab:
reveal_in_explorer: ""

# Mermaid diagrams
mermaid:
badge: ""
empty: ""
rendering_error: ""

# Table of Contents

# Formatting toolbar tooltips

# Workspace
workspace:
close_folder: ""
new_file: ""
new_folder: ""
rename: ""
delete: ""
refresh: ""
recent_folders: ""

# Zen mode
zen:
enter: ""
exit: ""

# Log levels (for settings)

# Drag and drop

# Time relative strings
time:
seconds_ago: ""
minutes_ago: ""
hours_ago: ""
days_ago: ""

# Tooltips
tooltip:
fullscreen_exit: ""
fullscreen_enter: ""
settings: ""
recent_items: ""
about_help: ""
git_branch: ""
new_tab: ""

# Ribbon toolbar additions
ribbon:
format_document: ""
validate_syntax: ""
pipeline: ""
hide_info_panel: ""
show_info_panel: ""
toggle_outline: ""
copy_html_tooltip: ""
export_pdf: ""
coming_soon: ""
heading_level: ""

# Welcome page (first launch)
welcome:
subtitle: ""
section:
appearance: ""
editor: ""
cjk: ""
files: ""
label:
theme: ""
language: ""
line_width_hint: ""

# Terminal panel
terminal:
not_found: ""
fallback_title: ""
new_terminal_here: ""
maximize_active_pane: ""
pop_out: ""
split_horizontal: ""
split_vertical: ""
rename: ""
close: ""
close_pane: ""
close_others: ""
scatter_to_windows: ""
watching: ""
stop_watching: ""
watch_workspace_root: ""
export_html: ""
no_workspace_root: ""
no_macros: ""
close_panel_tooltip: ""
running_process_warning: ""
terminate_warning: ""
close_terminal: ""
close_terminal_title: ""
cancel: ""
no_terminal: ""
restore: ""
process_exited: ""
tab_name: ""
floating_title: ""
shell:
powershell: ""
cmd: ""
wsl: ""
layout:
columns_2: ""
rows_2: ""
grid_2x2: ""
save_layout: ""
load_layout: ""
save_workspace_layout: ""
custom_layout: ""
workspace:
scatter_all: ""
save: ""
load: ""
default_name: ""
menu:
layouts: ""
workspaces: ""
watch_mode: ""
macros: ""
filter:
terminal_layout: ""
ferrite_workspace: ""
error:
shell_not_found: ""
pty_failed: ""
permission_denied: ""
io_failed: ""
layout_failed: ""
unexpected: ""
format: ""

# Productivity panel
productivity:
title: ""
workspace_hint: ""
tasks:
title: ""
progress: ""
input_hint: ""
add: ""
tip: ""
move_up: ""
move_down: ""
empty: ""
pomodoro:
title: ""
work: ""
break_label: ""
ready: ""
cycles: ""
stop: ""
start_work: ""
start_break: ""
notes:
title: ""
name_label: ""
note_label: ""
confirm_rename: ""
cancel_rename: ""
new_note: ""
rename_note: ""
confirm_delete: ""
delete_note: ""
input_hint: ""
dock: ""
dock_tooltip: ""
ok: ""
confirm: ""
empty_name: ""
duplicate_name: ""

# Echo/AI placeholder (development)
echo:
title: ""
prompt: ""
responses: ""
replacement_note: ""
demo_note: ""

# Title bar
title_bar:
restore: ""
maximize: ""

# Error dialogs
error:
save_failed: ""
open_workspace_failed: ""
open_file_failed: ""
create_file_failed: ""
create_folder_failed: ""
rename_failed: ""
delete_failed: ""
image_failed: ""
explorer_failed: ""
write_failed: ""
encoding_failed: ""

# File dialog titles and filters
file_dialog:
open_workspace: ""
open_files: ""
save_file: ""
filter:
supported: ""
markdown: ""
text: ""
json: ""
yaml: ""
toml: ""
csv_tsv: ""
all: ""
html: ""
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description:
# 1. Count empty/non-empty Czech locale entries.
# 2. Check whether Czech is registered in the Language enum/settings methods.

python - <<'PY'
from pathlib import Path

p = Path("locales/cs.yaml")
text = p.read_text(encoding="utf-8").splitlines()

empty_entries = [
    (line_no, line.strip())
    for line_no, line in enumerate(text, start=1)
    if line.rstrip().endswith(': ""')
]

non_empty_quoted_entries = [
    (line_no, line.strip())
    for line_no, line in enumerate(text, start=1)
    if ': "' in line and not line.rstrip().endswith(': ""')
]

print(f"empty string entries: {len(empty_entries)}")
print(f"non-empty quoted entries: {len(non_empty_quoted_entries)}")
print("first empty entries:")
for line_no, line in empty_entries[:10]:
    print(f"  {line_no}: {line}")
PY

echo
echo "Language registration evidence:"
rg -n -C3 'enum Language|fn all|fn from_locale_code|fn locale_code|fn native_name|fn selector_display_name|serde\(rename = "cs"\)|Language::Czech|=>\s*Some\(Language::Czech\)' src/config/settings.rs

Repository: OlaProeis/Ferrite

Length of output: 3566


Remove the empty Czech locale scaffold or provide real translations and full Language enum wiring.

The Czech locale (locales/cs.yaml) contains 739 empty string entries with zero translated values. Czech is not registered in the Language enum or its helper methods (locale_code(), native_name(), selector_display_name(), all(), from_locale_code()), so users selecting Czech would see blank labels throughout the app. Either remove locales/cs.yaml from app-loaded locales until translations exist, or add real Czech strings and wire cs through the Language enum with proper serde(rename) annotations and method implementations.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@locales/cs.yaml` around lines 6 - 934, The cs.yaml file is a scaffold of
empty translations which will render blank UI; either remove cs.yaml from the
set of loaded locale files or fully implement Czech translations and wire the
Language enum to support "cs". If choosing removal: remove cs.yaml from the
app's locale loading list. If choosing to add Czech support: populate
locales/cs.yaml with real translated strings and update the Language enum (add
the Cs variant) and its helper methods locale_code(), native_name(),
selector_display_name(), all(), and from_locale_code() (include serde(rename =
"cs") where applicable) so "cs" is recognized and returned consistently by these
functions.

Currently translated at 67.1% (496 of 739 strings)

Translation: Ferrite/Ferrite UI
Translate-URL: https://hosted.weblate.org/projects/ferrite/ferrite-ui/es/
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

♻️ Duplicate comments (1)
locales/es.yaml (1)

227-264: ⚠️ Potential issue | 🟡 Minor

Resolve the existing editor terminology typos.

The previously flagged typos/mistranslations are still present: scritpt, predetermnado, cursos, “Cobertura de palabra”, and “posición de arrastre”.

📝 Proposed cleanup
-    complex_scripts: Script adicionales
+    complex_scripts: Sistemas de escritura adicionales
@@
-      script. Las tipografías se cargan bajo demanda cuando los archivo con esos
-      scritpt son abiertos.
+      sistemas de escritura. Las tipografías se cargan bajo demanda cuando se
+      abren archivos con esos sistemas de escritura.
@@
-    word_wrap: Cobertura de palabra
-    word_wrap_tooltip: Cubre líneas largas en vez de arrastre horizontal
+    word_wrap: Ajuste de línea
+    word_wrap_tooltip: Ajusta las líneas largas en lugar de desplazarlas horizontalmente
@@
-    brackets_tooltip: Resaltar corchetas coincidentes (), [], {}, <> y parejas 
-      de énfasis ** y __ cuando el cursos está adjunto
+    brackets_tooltip: Resaltar corchetes coincidentes (), [], {}, <> y parejas 
+      de énfasis ** y __ cuando el cursor está junto a ellos
@@
-    default_language: Idioma predetermnado
+    default_language: Idioma predeterminado
@@
-    sync_scroll_tooltip: Sincronizar posición de arrastre cuando intercambia 
-      entre vistas Cruda y Renderizada
+    sync_scroll_tooltip: Sincronizar la posición de desplazamiento al alternar 
+      entre las vistas sin formato y renderizada
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@locales/es.yaml` around lines 227 - 264, Fix the Spanish typos in the listed
locale keys: in complex_scripts_hint replace "scritpt" with "script"; in
default_language fix "predetermnado" to "predeterminado"; in brackets_tooltip
change "cursos" to "cursor"; in word_wrap replace "Cobertura de palabra" with
"Ajuste de línea" (or "Ajuste de palabras" if preferred); and in
sync_scroll_tooltip change "posición de arrastre" to "posición de
desplazamiento". Update the corresponding values for keys complex_scripts_hint,
default_language, brackets_tooltip, word_wrap, and sync_scroll_tooltip
accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@locales/es.yaml`:
- Around line 312-314: The restore_session_tooltip string contains
grammatical/agreement errors; update the value for the restore_session_tooltip
key to a corrected Spanish sentence such as: "Cuando esté habilitado, restaura
las pestañas abiertas anteriormente al iniciar. Cuando esté deshabilitado,
inicia con una sola pestaña vacía. Los datos de la sesión siempre se guardan."
Replace the existing text for restore_session_tooltip with this corrected copy
to fix agreement and flow.
- Around line 409-428: Update the Spanish labels to correctly reflect
case-sensitivity and whole-word options: change the value for match_case to a
phrase meaning "match case" (e.g., "Coincidir mayúsculas y minúsculas" or
"Coincidir mayúsculas") and change whole_word from "Todo el mundo" to a proper
whole-word translation such as "Palabra completa" or "Coincidir palabra
completa"; leave match_case_short ("Aa") as-is.
- Around line 570-617: Summary: The Spanish translations for the shortcut labels
are misleading; specifically the keys inline_code and bullet_list use incorrect
phrases. Fix: open locales/es.yaml and update the inline_code value from "Código
alineado" to "Código en línea" (key: inline_code) and update bullet_list from
"Listado de botones" to "Lista con viñetas" or "Lista con viñetas (bullet list)"
(key: bullet_list); confirm similar shortcut keys (e.g., numbered_list) use
consistent phrasing like "Listado numerado" and run a quick review of nearby
keys (inline_code, bullet_list, numbered_list) to ensure all shortcut labels
accurately describe the action.
- Around line 41-66: Update the Spanish strings: fix the typo in
recent_folders_heading by changing "📁 Carpetas recentes" to "📁 Carpetas
recientes", and change the literal desk wording in folder_tooltip by replacing
the final line "Pulsación: Abre como pupitre" with a phrase that conveys opening
the folder as a workspace, e.g. "Pulsación: Abrir como espacio de trabajo";
modify the values for the keys recent_folders_heading and folder_tooltip
accordingly.
- Around line 430-455: Replace several incorrect Spanish labels with proper
terminology: change tab_outline from "Externo a línea" to "Esquema" (or
"Índice"), change backlinks_unavailable from "Retroceso no disponible" to
"Enlaces entrantes no disponibles" (or "Vínculos inversos no disponibles"),
change json_strings from "Segmentos" to "Cadenas", change json_arrays from
"Formaciones" to "Arreglos" (or "Matrices"/"Listas"), change json_total_keys
from "Pulsaciones totales" to "Claves totales" (or "Total de claves"), fix
json_array_items from "Ítemes de formación" to "Elementos del arreglo" (or
"Elementos del array"), and correct tab_statistics "Estad" to "Estadísticas" and
summary/other headers use "Encabezados" instead of "Cabeceras" for consistency;
update the values for keys tab_outline, backlinks_unavailable, json_strings,
json_arrays, json_total_keys, json_array_items, tab_statistics, and
summary/add_headings_hint accordingly.
- Around line 273-289: Replace the folder/filing terminology ("encarpetado",
"carpeta", "carpetado", etc.) with the standard Spanish term "plegado" and
related forms in the following keys: code_folding, enable_folding,
folding_tooltip, show_fold_indicators, fold_indicators_tooltip, fold_headings,
fold_headings_tooltip, fold_code_blocks, fold_code_blocks_tooltip, fold_lists,
fold_lists_tooltip, fold_indentation, and fold_indentation_tooltip; keep the
original meaning and punctuation of tooltips but update wording to e.g. "Plegado
de código", "Habilitar plegado de código", "Permite plegar secciones del
documento..." and "Mostrar indicadores de plegado" so all occurrences are
consistent.

---

Duplicate comments:
In `@locales/es.yaml`:
- Around line 227-264: Fix the Spanish typos in the listed locale keys: in
complex_scripts_hint replace "scritpt" with "script"; in default_language fix
"predetermnado" to "predeterminado"; in brackets_tooltip change "cursos" to
"cursor"; in word_wrap replace "Cobertura de palabra" with "Ajuste de línea" (or
"Ajuste de palabras" if preferred); and in sync_scroll_tooltip change "posición
de arrastre" to "posición de desplazamiento". Update the corresponding values
for keys complex_scripts_hint, default_language, brackets_tooltip, word_wrap,
and sync_scroll_tooltip accordingly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0a0bc5a4-a55e-4ad6-9068-4a6bf24cbb81

📥 Commits

Reviewing files that changed from the base of the PR and between 9457194 and 647a7a4.

📒 Files selected for processing (1)
  • locales/es.yaml

Comment thread locales/es.yaml
Comment on lines +41 to +66
encoding_heading: Codificación del archivo
recent_files_heading: 📄 Archivos recientes
vim_mode: Modo de edición Vim (Esc = Normal, i = Insertar)
cursor_position: Ln %{line}, Col %{col}
delimiter_tooltip: |-
Delimitador: %{delimiter}
%{info}Pulse para cambiar
header_tooltip: |-
Primera fila como cabeceras: %{status}
%{info}Pulse para cambiar
rainbow_tooltip: |-
Coloración de columnas con arcoíris: %{status}
Pulse para alternar
encoding_tooltip: |-
Codificación de archivo: %{encoding}
%{info}Pulse para cambiar
recent_folders_heading: 📁 Carpetas recentes
file_tooltip: |-
%{path}

Pulse: Abrir
Mayús+Pulsar: Abrir en segundo plano
folder_tooltip: |-
%{path}

Pulsación: Abre como pupitre
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix the file dialog typo and literal workspace wording.

Line 57 has a visible typo, and Line 66’s “pupitre” reads like a literal desk rather than a workspace/folder action.

📝 Proposed cleanup
-  recent_folders_heading: 📁 Carpetas recentes
+  recent_folders_heading: 📁 Carpetas recientes
@@
-    Pulse: Abrir
-    Mayús+Pulsar: Abrir en segundo plano
+    Clic: Abrir
+    Mayús+clic: Abrir en segundo plano
@@
-    Pulsación: Abre como pupitre
+    Clic: Abrir como espacio de trabajo
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
encoding_heading: Codificación del archivo
recent_files_heading: 📄 Archivos recientes
vim_mode: Modo de edición Vim (Esc = Normal, i = Insertar)
cursor_position: Ln %{line}, Col %{col}
delimiter_tooltip: |-
Delimitador: %{delimiter}
%{info}Pulse para cambiar
header_tooltip: |-
Primera fila como cabeceras: %{status}
%{info}Pulse para cambiar
rainbow_tooltip: |-
Coloración de columnas con arcoíris: %{status}
Pulse para alternar
encoding_tooltip: |-
Codificación de archivo: %{encoding}
%{info}Pulse para cambiar
recent_folders_heading: 📁 Carpetas recentes
file_tooltip: |-
%{path}
Pulse: Abrir
Mayús+Pulsar: Abrir en segundo plano
folder_tooltip: |-
%{path}
Pulsación: Abre como pupitre
encoding_heading: Codificación del archivo
recent_files_heading: 📄 Archivos recientes
vim_mode: Modo de edición Vim (Esc = Normal, i = Insertar)
cursor_position: Ln %{line}, Col %{col}
delimiter_tooltip: |-
Delimitador: %{delimiter}
%{info}Pulse para cambiar
header_tooltip: |-
Primera fila como cabeceras: %{status}
%{info}Pulse para cambiar
rainbow_tooltip: |-
Coloración de columnas con arcoíris: %{status}
Pulse para alternar
encoding_tooltip: |-
Codificación de archivo: %{encoding}
%{info}Pulse para cambiar
recent_folders_heading: 📁 Carpetas recientes
file_tooltip: |-
%{path}
Clic: Abrir
Mayús+clic: Abrir en segundo plano
folder_tooltip: |-
%{path}
Clic: Abrir como espacio de trabajo
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@locales/es.yaml` around lines 41 - 66, Update the Spanish strings: fix the
typo in recent_folders_heading by changing "📁 Carpetas recentes" to "📁
Carpetas recientes", and change the literal desk wording in folder_tooltip by
replacing the final line "Pulsación: Abre como pupitre" with a phrase that
conveys opening the folder as a workspace, e.g. "Pulsación: Abrir como espacio
de trabajo"; modify the values for the keys recent_folders_heading and
folder_tooltip accordingly.

Comment thread locales/es.yaml
Comment on lines +273 to +289
code_folding: Encarpetado de código
enable_folding: Habilitar encarpetado de código
folding_tooltip: Concede colapso de secciones del documento (Ctrl+Mayús+[
para encarpetar todo, Ctrl+Mayús+] para desencarpetar)
show_fold_indicators: Mostrar indicadores de carpeta
fold_indicators_tooltip: Exhibe indicadores de carpeta en el canal (solo
visual - colapso aún no implementado)
fold_headings: Cabeceras
fold_headings_tooltip: Carpeta de cabeceras de Markdown y su contenido
fold_code_blocks: Bloques de código
fold_code_blocks_tooltip: Bloques de código delimitados por pliegues
(```...```)
fold_lists: Listados
fold_lists_tooltip: Plegar jerarquías de listas anidadas
fold_indentation: Sangrado (JSON/YAML)
fold_indentation_tooltip: Estructuras basadas en sangrado de pliegues en
archivos JSON/YAML
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Use “plegado” terminology for code folding settings.

The current strings translate folding as folders/filing, which makes these settings misleading.

📝 Proposed cleanup
-    code_folding: Encarpetado de código
-    enable_folding: Habilitar encarpetado de código
-    folding_tooltip: Concede colapso de secciones del documento (Ctrl+Mayús+[ 
-      para encarpetar todo, Ctrl+Mayús+] para desencarpetar)
-    show_fold_indicators: Mostrar indicadores de carpeta
-    fold_indicators_tooltip: Exhibe indicadores de carpeta en el canal (solo 
-      visual - colapso aún no implementado)
+    code_folding: Plegado de código
+    enable_folding: Habilitar plegado de código
+    folding_tooltip: Permite contraer secciones del documento (Ctrl+Mayús+[ 
+      para plegar todo, Ctrl+Mayús+] para desplegar)
+    show_fold_indicators: Mostrar indicadores de plegado
+    fold_indicators_tooltip: Muestra indicadores de plegado en el margen (solo 
+      visual; el colapso aún no está implementado)
@@
-    fold_headings_tooltip: Carpeta de cabeceras de Markdown y su contenido
+    fold_headings_tooltip: Plegar encabezados de Markdown y su contenido
@@
-    fold_code_blocks_tooltip: Bloques de código delimitados por pliegues 
+    fold_code_blocks_tooltip: Plegar bloques de código delimitados 
@@
-    fold_indentation_tooltip: Estructuras basadas en sangrado de pliegues en 
+    fold_indentation_tooltip: Plegar estructuras basadas en sangrado en 
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@locales/es.yaml` around lines 273 - 289, Replace the folder/filing
terminology ("encarpetado", "carpeta", "carpetado", etc.) with the standard
Spanish term "plegado" and related forms in the following keys: code_folding,
enable_folding, folding_tooltip, show_fold_indicators, fold_indicators_tooltip,
fold_headings, fold_headings_tooltip, fold_code_blocks,
fold_code_blocks_tooltip, fold_lists, fold_lists_tooltip, fold_indentation, and
fold_indentation_tooltip; keep the original meaning and punctuation of tooltips
but update wording to e.g. "Plegado de código", "Habilitar plegado de código",
"Permite plegar secciones del documento..." and "Mostrar indicadores de plegado"
so all occurrences are consistent.

Comment thread locales/es.yaml
Comment on lines +312 to +314
restore_session_tooltip: Cuando esté habilitado, restablezca anteriormente
los lengüetas abiertas al inicio. Cuando inhabilitados, inicie con una
única lengüeta vacía. Los datos de la sesión siempre está guardada.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Clean up the restore-session tooltip grammar.

This tooltip has several visible agreement errors and reads awkwardly in the settings UI.

📝 Proposed cleanup
-    restore_session_tooltip: Cuando esté habilitado, restablezca anteriormente 
-      los lengüetas abiertas al inicio. Cuando inhabilitados, inicie con una 
-      única lengüeta vacía. Los datos de la sesión siempre está guardada.
+    restore_session_tooltip: Cuando esté habilitado, restaura las pestañas 
+      abiertas anteriormente al iniciar. Cuando esté deshabilitado, inicia con 
+      una única pestaña vacía. Los datos de la sesión siempre se guardan.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
restore_session_tooltip: Cuando esté habilitado, restablezca anteriormente
los lengüetas abiertas al inicio. Cuando inhabilitados, inicie con una
única lengüeta vacía. Los datos de la sesión siempre está guardada.
restore_session_tooltip: Cuando esté habilitado, restaura las pestañas
abiertas anteriormente al iniciar. Cuando esté deshabilitado, inicia con
una única pestaña vacía. Los datos de la sesión siempre se guardan.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@locales/es.yaml` around lines 312 - 314, The restore_session_tooltip string
contains grammatical/agreement errors; update the value for the
restore_session_tooltip key to a corrected Spanish sentence such as: "Cuando
esté habilitado, restaura las pestañas abiertas anteriormente al iniciar. Cuando
esté deshabilitado, inicia con una sola pestaña vacía. Los datos de la sesión
siempre se guardan." Replace the existing text for restore_session_tooltip with
this corrected copy to fix agreement and flow.

Comment thread locales/es.yaml
Comment on lines +409 to +428
placeholder: Búsqueda…
replace_placeholder: Remplazar por…
match_case: Coincide capitalinas
match_case_short: Aa
whole_word: Todo el mundo
use_regex: Utilizar ExpReg
replace: Remplazar
replace_all: Remplazar todo
no_results: No coincide
title: Buscar y remplazar
title_replace: Buscar y remplazar
title_find: Buscar
close_tooltip: Cerrar (Escape)
hide_replace: Ocultar remplazo (Ctrl+H)
show_replace: Mostrar remplazo (Ctrl+H)
prev_tooltip: Anterior (Mayús+F3)
next_tooltip: Siguiente (F3 o Entrar)
replace_tooltip: Remplazar coincidencia actual
replace_all_tooltip: Remplazar todas las coincidencias
keyboard_hints: 'Entrar/F3: Siguiente • Mayús+F3: Prev • Esc: Cerrar'
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix the find option labels that change the feature meaning.

Line 411 should describe case sensitivity, and Line 413 currently says “everyone” instead of “whole word”.

📝 Proposed cleanup
-  placeholder: Búsqueda…
-  replace_placeholder: Remplazar por…
-  match_case: Coincide capitalinas
+  placeholder: Buscar…
+  replace_placeholder: Reemplazar por…
+  match_case: Distinguir mayúsculas/minúsculas
@@
-  whole_word: Todo el mundo
-  use_regex: Utilizar ExpReg
-  replace: Remplazar
-  replace_all: Remplazar todo
-  no_results: No coincide
-  title: Buscar y remplazar
-  title_replace: Buscar y remplazar
+  whole_word: Palabra completa
+  use_regex: Usar expresión regular
+  replace: Reemplazar
+  replace_all: Reemplazar todo
+  no_results: Sin resultados
+  title: Buscar y reemplazar
+  title_replace: Buscar y reemplazar
@@
-  hide_replace: Ocultar remplazo (Ctrl+H)
-  show_replace: Mostrar remplazo (Ctrl+H)
+  hide_replace: Ocultar reemplazo (Ctrl+H)
+  show_replace: Mostrar reemplazo (Ctrl+H)
@@
-  replace_tooltip: Remplazar coincidencia actual
-  replace_all_tooltip: Remplazar todas las coincidencias
+  replace_tooltip: Reemplazar coincidencia actual
+  replace_all_tooltip: Reemplazar todas las coincidencias
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@locales/es.yaml` around lines 409 - 428, Update the Spanish labels to
correctly reflect case-sensitivity and whole-word options: change the value for
match_case to a phrase meaning "match case" (e.g., "Coincidir mayúsculas y
minúsculas" or "Coincidir mayúsculas") and change whole_word from "Todo el
mundo" to a proper whole-word translation such as "Palabra completa" or
"Coincidir palabra completa"; leave match_case_short ("Aa") as-is.

Comment thread locales/es.yaml
Comment on lines +430 to +455
panel_title: Documento
statistics: Estadísticas
tab_outline: Externo a línea
tab_statistics: Estad
summary: Cabeceras %{headings} · ~%{minutes} min leído
no_headings: Sin cabeceras encontradas
tab_links: Enlaces
json_structure: 📁 Estructura
json_values: 📊 Valores
json_objects: Objetos
json_nulls: Nulos
json_numbers: Números
json_booleans: Booleanos
parse_error: ⚠ Error de intérprete
backlinks_unavailable: Retroceso no disponible
productivity_unavailable: Productividad Hub no disponible
json_strings: Segmentos
json_arrays: Formaciones
json_total_keys: Pulsaciones totales
json_max_depth: Prof. max.
json_total_values: Valores totales
add_headings_hint: 'Agrega cabeceras utilizando sintaxis #'
close_tooltip: Cerrar línea externa (Ctrl+Mayús+O)
detach_tooltip: Soltar para ventana flotante
tab_hub: Hub
json_array_items: Ítemes de formación
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Correct outline and JSON statistics terminology.

Several labels here are literal mistranslations, especially “Externo a línea”, “Retroceso”, “Segmentos”, “Formaciones”, and “Pulsaciones totales”.

📝 Proposed cleanup
-  tab_outline: Externo a línea
-  tab_statistics: Estad
-  summary: Cabeceras %{headings} · ~%{minutes} min leído
-  no_headings: Sin cabeceras encontradas
+  tab_outline: Esquema
+  tab_statistics: Estadísticas
+  summary: Encabezados %{headings} · ~%{minutes} min de lectura
+  no_headings: No se encontraron encabezados
@@
-  parse_error: ⚠ Error de intérprete
-  backlinks_unavailable: Retroceso no disponible
+  parse_error: ⚠ Error de análisis
+  backlinks_unavailable: Enlaces de retorno no disponibles
@@
-  json_strings: Segmentos
-  json_arrays: Formaciones
-  json_total_keys: Pulsaciones totales
+  json_strings: Cadenas
+  json_arrays: Arreglos
+  json_total_keys: Claves totales
@@
-  add_headings_hint: 'Agrega cabeceras utilizando sintaxis #'
-  close_tooltip: Cerrar línea externa (Ctrl+Mayús+O)
+  add_headings_hint: 'Agrega encabezados usando la sintaxis #'
+  close_tooltip: Cerrar esquema (Ctrl+Mayús+O)
@@
-  json_array_items: Ítemes de formación
+  json_array_items: Elementos de arreglo
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@locales/es.yaml` around lines 430 - 455, Replace several incorrect Spanish
labels with proper terminology: change tab_outline from "Externo a línea" to
"Esquema" (or "Índice"), change backlinks_unavailable from "Retroceso no
disponible" to "Enlaces entrantes no disponibles" (or "Vínculos inversos no
disponibles"), change json_strings from "Segmentos" to "Cadenas", change
json_arrays from "Formaciones" to "Arreglos" (or "Matrices"/"Listas"), change
json_total_keys from "Pulsaciones totales" to "Claves totales" (or "Total de
claves"), fix json_array_items from "Ítemes de formación" to "Elementos del
arreglo" (or "Elementos del array"), and correct tab_statistics "Estad" to
"Estadísticas" and summary/other headers use "Encabezados" instead of
"Cabeceras" for consistency; update the values for keys tab_outline,
backlinks_unavailable, json_strings, json_arrays, json_total_keys,
json_array_items, tab_statistics, and summary/add_headings_hint accordingly.

Comment thread locales/es.yaml
Comment on lines +570 to +617
save: Guardar
save_as: Guardar como
open: Abrir archivo
new: Nuevo archivo
new_tab: Nueva lengüeta
close_tab: Cerrar lengüeta
next_tab: Siguiente lengüeta
prev_tab: Anterior lengüeta
go_to_line: Ir a línea
quick_open: Apertura rápida
heading_3: Cabecera 3
heading_4: Cabecera 4
heading_5: Cabecera 5
heading_6: Cabecera 6
heading_1: Cabecera 1
heading_2: Cabecera 2
code_block: Bloque de código
link: Enlace
image: Imagen
blockquote: Entrecomillado
find: Buscar
find_replace: Buscar y remplazar
find_next: Buscar siguiente
find_prev: Buscar anterior
search_in_files: Buscar dentro del archivo
bold: Negrilla
italic: Cursiva
inline_code: Código alineado
redo: Rehacer
duplicate_line: Duplicar línea
move_line_up: Subir línea
move_line_down: Bajar línea
select_next_occurrence: Seleccionar siguiente aparición
cycle_theme: Ciclar tema
toggle_zen_mode: Conmutar modo zen
toggle_fullscreen: Conmutar pantalla completa
toggle_outline: Conmutar línea externa
toggle_file_tree: Conmutar árbol de archivo
toggle_pipeline: Conmutar conducto
undo: Deshacer
numbered_list: Listado enumerado
export_html: Exportar HTML
insert_toc: Insertar tabla de contenidos
open_about: Acerca de / Ayuda
bullet_list: Listado de botones
toggle_view_mode: Conmutar modo de vista
open_settings: Abrir ajustes
edit:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix shortcut command names that describe the wrong action.

These strings are shown in shortcut/help UI, so labels like “Listado de botones” for bullet lists and “Código alineado” for inline code will mislead users.

📝 Proposed cleanup
-    search_in_files: Buscar dentro del archivo
+    search_in_files: Buscar en archivos
@@
-    inline_code: Código alineado
+    inline_code: Código en línea
@@
-    toggle_outline: Conmutar línea externa
-    toggle_file_tree: Conmutar árbol de archivo
-    toggle_pipeline: Conmutar conducto
+    toggle_outline: Mostrar/ocultar esquema
+    toggle_file_tree: Mostrar/ocultar árbol de archivos
+    toggle_pipeline: Mostrar/ocultar canal de comandos
@@
-    bullet_list: Listado de botones
+    bullet_list: Lista con viñetas
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@locales/es.yaml` around lines 570 - 617, Summary: The Spanish translations
for the shortcut labels are misleading; specifically the keys inline_code and
bullet_list use incorrect phrases. Fix: open locales/es.yaml and update the
inline_code value from "Código alineado" to "Código en línea" (key: inline_code)
and update bullet_list from "Listado de botones" to "Lista con viñetas" or
"Lista con viñetas (bullet list)" (key: bullet_list); confirm similar shortcut
keys (e.g., numbered_list) use consistent phrasing like "Listado numerado" and
run a quick review of nearby keys (inline_code, bullet_list, numbered_list) to
ensure all shortcut labels accurately describe the action.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants