From 4ad3d1fe62601c3dc341dbbafaef8f7cb713b978 Mon Sep 17 00:00:00 2001 From: Hasso <4933670+papeh@users.noreply.github.com> Date: Tue, 6 Oct 2026 15:30:12 -0500 Subject: [PATCH 1/2] Add context to FwAvaloniaStrings Copy s from FAS.cs to s in FAS.resx. REVIEW: not all of the context is relevant. Much is helpful. Is any confusing? --- Src/Common/FwAvalonia/FwAvaloniaStrings.resx | 49 +++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/Src/Common/FwAvalonia/FwAvaloniaStrings.resx b/Src/Common/FwAvalonia/FwAvaloniaStrings.resx index 424db73dd1..228d966505 100644 --- a/Src/Common/FwAvalonia/FwAvaloniaStrings.resx +++ b/Src/Common/FwAvalonia/FwAvaloniaStrings.resx @@ -1,4 +1,4 @@ - + text/microsoft-resx @@ -57,6 +57,7 @@ This text contains formatting the new view cannot edit safely yet. + Tooltip on a text row the managed editor holds read-only because a plain-text edit would corrupt it: the value carries an embedded object (ORC) the runs cannot rebuild, or a run carries a TsString property the model does not round-trip (e.g. colour, offset, superscript). The lossless original is preserved for display and stays fully editable in the classic view. Save @@ -72,24 +73,30 @@ Undo change to {0} + "Undo change to {0}" -- field-specific undo label for the fenced lexical-edit session when a single field's edit opened it ({0} = the field label). Falls back to <see cref="UndoEditEntry"/> for the batch/bulk path where no single field applies. Redo change to {0} + "Redo change to {0}" -- the redo counterpart of <see cref="UndoChangeToFormat"/>. Lexeme Form is required. A name or abbreviation is required. + Validation message when a list item (CmPossibility) has neither a Name nor an Abbreviation. Your edit was discarded because it is invalid: {0} + Warning shown when a pending lexical edit is rolled back on navigate/close because it fails validation (the edit is not silently lost -- the user is told why). {0} is the validation reason(s). Invalid edit discarded + Title of the EditDiscardedInvalid warning. Audio recording (read-only in the new view) + Placeholder shown in a read-only text row for a voice/audio (IsVoice) writing system: the new view cannot yet play or record audio, so the row stays read-only and visible rather than a blank editable box that would corrupt the recording on edit. Editing stays available in the classic view. Detail area @@ -105,111 +112,147 @@ Remove + "Remove" -- reference-vector item context command. Add item + "Add item" -- reference-vector add-slot launcher name. Type to search + "Type to search" -- the search-backed add slot's type-ahead watermark. Add + "Add" -- confirm button of the multi-select reference-vector add picker; commits the checked set in one undoable step. Create "{0}" + Create row of a picker that can mint a new item from typed text ({0} = the text). Only shown by rows whose edit context supports creation. Open dialog + Accessible name of the "..." dialog-launcher button. This dialog is not available here. + Tooltip of a disabled launcher button: no host dialog service. {0} settings + "{0} settings" -- accessible name of a chooser's hover-revealed settings gear. Edit the {0} list + "Edit the {0} list" -- label/tooltip of a configure-gear jump derived from the row's possibility list (the legacy chooser dialog's "Edit the ... list" link text). Lexeme Form + "Lexeme Form" -- first-slice row label (compiled override and authored fallback). Morph Type + "Morph Type" -- first-slice row label (authored fallback). Gloss + "Gloss" -- first-slice row label (authored fallback). Field options + Accessible name / tooltip of the hover-revealed "..." field-options button on each field row (opens the Field Visibility / Move Field / Help menu -- the affordance that replaced right-click). Character Style + Accessible name / tooltip of the character-style picker affordance on an editable text row that opens the list of the project's character styles to apply to the current selection. Default + The "Default/None" entry that leads the character-style picker; selecting it CLEARS any named character style on the current selection, reverting it to the paragraph's default. Writing System + Accessible name / tooltip of the writing-system picker affordance on an editable text row that opens the list of the project's writing systems to retag the current selection. <Not sure> + "<Not sure>" -- the default empty / unspecified Part-of-Speech entry (legacy PopupTreeManager "<Not sure>"). <Any> + "<Any>" -- the unspecified Part-of-Speech entry when the host treats unspecified as "any" (legacy MSAGroupBox NotSureIsAny). Create a new Part of Speech... + "Create a new Part of Speech..." -- the inline create affordance at the bottom of the POS tree (legacy "More..." item that launched MasterCategoryListDlg). Part of Speech + Accessible name of the collapsed Part-of-Speech chooser dropdown. Add paragraph + Accessible name / tooltip of the per-paragraph "add paragraph" affordance in a structured-text field. Delete paragraph + Accessible name / tooltip of the per-paragraph "delete paragraph" affordance in a structured-text field. Paragraph Style + Accessible name / tooltip of the per-paragraph style picker in a structured-text field: opens the list of the project's paragraph styles to apply to this paragraph. Default + The "Default" entry that leads the paragraph-style picker; selecting it CLEARS any named paragraph style on the paragraph, reverting it to the default. Link + Accessible name / tooltip of the external-link affordance on an editable text row that opens a small URL prompt that inserts a hyperlink over the selection, or edits an existing link's URL. Address (URL) + Watermark / accessible name of the URL entry in the link prompt flyout. Apply + The confirm button of the link prompt flyout: insert / update the hyperlink. Delete embedded object + Accessible name / tooltip of the delete-embedded-object affordance that removes the embedded object (link, picture, footnote, ...) under the selection. Any ORC kind is deletable here even when its insert/edit path lives elsewhere. Play + Play affordance for an existing audio recording on a voice-WS row (legacy ShortSoundFieldControl play). Record + Record affordance for a voice-WS row (legacy ShortSoundFieldControl record). Clear + Clear-the-recording affordance for a voice-WS row (legacy ShortSoundFieldControl delete). Recording is available on Windows in the new view; use the classic view on this platform. + Tooltip on the record affordance when recording is unavailable on this platform. (no recording) + Placeholder shown for a voice-WS row that has no recording yet. {0} paragraph {1} + Screen-reader name for one paragraph editor in a multi-paragraph StText field. {0} = the field label, {1} = the 1-based paragraph number. Dialogs (lexical entry) + Group heading for the entry-editing tools in the catalog. Other record types + Group heading for the non-entry record-type tools in the catalog. Lexicon Edit @@ -237,12 +280,14 @@ <Empty> + The empty-choice label a list chooser leads with when the field allows no value. English must match the legacy launchers' <c>ksNullLabel</c> so both frameworks show the same word. Show in Reversal Index (Ctrl-Click) + The row menu command that jumps to the row's entry in the Reversal Index tool. {0} {1} new entry - {0} = the field label, {1} = the writing system abbreviation + Screen-reader name for a writing system's empty add row. {0} = the field label, {1} = the writing system abbreviation. \ No newline at end of file From 0de7a83eefd919171726711e9556af7ad9a2488d Mon Sep 17 00:00:00 2001 From: Jason Naylor Date: Mon, 26 Oct 2026 13:35:21 -0700 Subject: [PATCH 2/2] Reword FwAvaloniaStrings comments for translators The comments carried over from the doc comments named classes, used code markup that Crowdin shows as literal text, and in a few places described the wrong control. They now say what each string is and where it appears. - AudioRecordingReadOnly is a tooltip, not a placeholder. - LaunchDialog and LauncherUnavailable belong to the settings gear. - CharacterStyle, WritingSystem, Link and DeleteEmbeddedObject are right-click menu items, not buttons. - Chooser.EmptyItemLabel asks translators to match "" in the WinForms choosers. Co-Authored-By: Claude Opus 5.5 --- Src/Common/FwAvalonia/FwAvaloniaStrings.resx | 76 ++++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/Src/Common/FwAvalonia/FwAvaloniaStrings.resx b/Src/Common/FwAvalonia/FwAvaloniaStrings.resx index 228d966505..8a59115583 100644 --- a/Src/Common/FwAvalonia/FwAvaloniaStrings.resx +++ b/Src/Common/FwAvalonia/FwAvaloniaStrings.resx @@ -57,7 +57,7 @@ This text contains formatting the new view cannot edit safely yet. - Tooltip on a text row the managed editor holds read-only because a plain-text edit would corrupt it: the value carries an embedded object (ORC) the runs cannot rebuild, or a run carries a TsString property the model does not round-trip (e.g. colour, offset, superscript). The lossless original is preserved for display and stays fully editable in the classic view. + Tooltip on a field the new view shows read-only, because its text has formatting (such as superscript or a color) or an embedded item (such as a picture or footnote) that the new view can't edit safely yet. The text can still be edited in the classic view. Save @@ -73,30 +73,30 @@ Undo change to {0} - "Undo change to {0}" -- field-specific undo label for the fenced lexical-edit session when a single field's edit opened it ({0} = the field label). Falls back to <see cref="UndoEditEntry"/> for the batch/bulk path where no single field applies. + Undo command label after the user changes one field. {0} = the field's label, e.g. "Undo change to Gloss". Redo change to {0} - "Redo change to {0}" -- the redo counterpart of <see cref="UndoChangeToFormat"/>. + Redo command label after the user undoes a change to one field. {0} = the field's label, e.g. "Redo change to Gloss". Lexeme Form is required. A name or abbreviation is required. - Validation message when a list item (CmPossibility) has neither a Name nor an Abbreviation. + Error shown when the user leaves both the Name and the Abbreviation of a list item empty. Your edit was discarded because it is invalid: {0} - Warning shown when a pending lexical edit is rolled back on navigate/close because it fails validation (the edit is not silently lost -- the user is told why). {0} is the validation reason(s). + Warning shown when the user moves to another entry or closes the view while an edit is invalid, so the edit is thrown away. {0} = the reason it is invalid, such as "Lexeme Form is required." Invalid edit discarded - Title of the EditDiscardedInvalid warning. + Title of the warning shown when an invalid edit is thrown away. Audio recording (read-only in the new view) - Placeholder shown in a read-only text row for a voice/audio (IsVoice) writing system: the new view cannot yet play or record audio, so the row stays read-only and visible rather than a blank editable box that would corrupt the recording on edit. Editing stays available in the classic view. + Tooltip on a field in a writing system that holds audio recordings, which the new view can't yet play or record. The recording can still be used in the classic view. Detail area @@ -112,31 +112,31 @@ Remove - "Remove" -- reference-vector item context command. + Menu item that removes one item from a field that holds a list of items. Add item - "Add item" -- reference-vector add-slot launcher name. + Placeholder text and screen-reader name of the box and button for adding an item to a field that holds a list of items. Type to search - "Type to search" -- the search-backed add slot's type-ahead watermark. + Placeholder text in a chooser's search box. Add - "Add" -- confirm button of the multi-select reference-vector add picker; commits the checked set in one undoable step. + Button in a chooser that lets the user check several items; adds all the checked items to the field. Create "{0}" - Create row of a picker that can mint a new item from typed text ({0} = the text). Only shown by rows whose edit context supports creation. + Last row in a chooser's list, which creates a new item from what the user typed. {0} = the typed text, e.g. Create "Sky". Open dialog - Accessible name of the "..." dialog-launcher button. + Screen-reader name of a field's settings button, which opens a dialog for the field. This dialog is not available here. - Tooltip of a disabled launcher button: no host dialog service. + Tooltip on a field's settings button when its dialog can't be opened from this view. {0} settings @@ -144,27 +144,27 @@ Edit the {0} list - "Edit the {0} list" -- label/tooltip of a configure-gear jump derived from the row's possibility list (the legacy chooser dialog's "Edit the ... list" link text). + Link in a list field's chooser that opens the list for editing. {0} = the list's name, e.g. "Edit the Semantic Domains list". Lexeme Form - "Lexeme Form" -- first-slice row label (compiled override and authored fallback). + Field label in the lexical entry editor. Morph Type - "Morph Type" -- first-slice row label (authored fallback). + Field label in the lexical entry editor. Gloss - "Gloss" -- first-slice row label (authored fallback). + Field label in the lexical entry editor. Field options - Accessible name / tooltip of the hover-revealed "..." field-options button on each field row (opens the Field Visibility / Move Field / Help menu -- the affordance that replaced right-click). + Screen-reader name and tooltip of the "..." button on each field row, which opens a menu with Field Visibility, Move Field and Help. Character Style - Accessible name / tooltip of the character-style picker affordance on an editable text row that opens the list of the project's character styles to apply to the current selection. + Menu item in a text field's right-click menu; opens the list of the project's character styles to apply to the selected text. Default @@ -172,19 +172,19 @@ Writing System - Accessible name / tooltip of the writing-system picker affordance on an editable text row that opens the list of the project's writing systems to retag the current selection. + Menu item in a text field's right-click menu; opens the list of the project's writing systems, to change the writing system of the selected text. <Not sure> - "<Not sure>" -- the default empty / unspecified Part-of-Speech entry (legacy PopupTreeManager "<Not sure>"). + "<Not sure>" -- the empty Part-of-Speech choice, for when the user hasn't chosen a part of speech. <Any> - "<Any>" -- the unspecified Part-of-Speech entry when the host treats unspecified as "any" (legacy MSAGroupBox NotSureIsAny). + "<Any>" -- the empty Part-of-Speech choice where leaving it empty means any part of speech (used instead of "<Not sure>"). Create a new Part of Speech... - "Create a new Part of Speech..." -- the inline create affordance at the bottom of the POS tree (legacy "More..." item that launched MasterCategoryListDlg). + Last item in the part-of-speech chooser; opens a dialog to add a new part of speech. Part of Speech @@ -192,15 +192,15 @@ Add paragraph - Accessible name / tooltip of the per-paragraph "add paragraph" affordance in a structured-text field. + Screen-reader name and tooltip of the "+" button beside each paragraph in a field that holds several paragraphs; adds a paragraph. Delete paragraph - Accessible name / tooltip of the per-paragraph "delete paragraph" affordance in a structured-text field. + Screen-reader name and tooltip of the "×" button beside each paragraph in a field that holds several paragraphs; deletes that paragraph. Paragraph Style - Accessible name / tooltip of the per-paragraph style picker in a structured-text field: opens the list of the project's paragraph styles to apply to this paragraph. + Button beside each paragraph in a field that holds several paragraphs; opens the list of the project's paragraph styles to apply to that paragraph. Default @@ -208,43 +208,43 @@ Link - Accessible name / tooltip of the external-link affordance on an editable text row that opens a small URL prompt that inserts a hyperlink over the selection, or edits an existing link's URL. + Menu item in a text field's right-click menu; adds a link to the selected text, or edits the link already there. Address (URL) - Watermark / accessible name of the URL entry in the link prompt flyout. + Placeholder text of the box where the user types the link's address. Apply - The confirm button of the link prompt flyout: insert / update the hyperlink. + Button that adds the link, or updates an existing one. Delete embedded object - Accessible name / tooltip of the delete-embedded-object affordance that removes the embedded object (link, picture, footnote, ...) under the selection. Any ORC kind is deletable here even when its insert/edit path lives elsewhere. + Menu item that deletes the embedded item (such as a link, picture or footnote) at the selection. Play - Play affordance for an existing audio recording on a voice-WS row (legacy ShortSoundFieldControl play). + Button that plays the field's audio recording. Record - Record affordance for a voice-WS row (legacy ShortSoundFieldControl record). + Button that records audio into the field. Clear - Clear-the-recording affordance for a voice-WS row (legacy ShortSoundFieldControl delete). + Button that deletes the field's audio recording. Recording is available on Windows in the new view; use the classic view on this platform. - Tooltip on the record affordance when recording is unavailable on this platform. + Tooltip on the Record button on platforms where the new view can't record audio. (no recording) - Placeholder shown for a voice-WS row that has no recording yet. + Shown in an audio field that has no recording yet. {0} paragraph {1} - Screen-reader name for one paragraph editor in a multi-paragraph StText field. {0} = the field label, {1} = the 1-based paragraph number. + Screen-reader name for one paragraph in a field that holds several paragraphs. {0} = the field label, {1} = the paragraph number, starting at 1. Dialogs (lexical entry) @@ -280,7 +280,7 @@ <Empty> - The empty-choice label a list chooser leads with when the field allows no value. English must match the legacy launchers' <c>ksNullLabel</c> so both frameworks show the same word. + First choice in a list chooser, for leaving the field empty. Translate it the same as "<Empty>" in the classic view's choosers. Show in Reversal Index (Ctrl-Click)