From 3f84856e1e4bb5ce6b0c372f3570b12f6fc3df2e Mon Sep 17 00:00:00 2001 From: Martynas Bagdonas Date: Wed, 11 Jun 2025 18:30:20 +0300 Subject: [PATCH] Update strings for reader localization with Fluent --- chrome/content/zotero/reader.xhtml | 2 +- chrome/content/zotero/xpcom/reader.js | 16 +- chrome/content/zotero/zoteroPane.xhtml | 2 +- chrome/locale/en-US/zotero/reader.ftl | 211 +++++++++++++++++++------ chrome/locale/en-US/zotero/zotero.ftl | 21 +++ 5 files changed, 194 insertions(+), 58 deletions(-) diff --git a/chrome/content/zotero/reader.xhtml b/chrome/content/zotero/reader.xhtml index 292b24265f..16dfc6a449 100644 --- a/chrome/content/zotero/reader.xhtml +++ b/chrome/content/zotero/reader.xhtml @@ -106,7 +106,7 @@ diff --git a/chrome/content/zotero/xpcom/reader.js b/chrome/content/zotero/xpcom/reader.js index d989b99c14..48090c5041 100644 --- a/chrome/content/zotero/xpcom/reader.js +++ b/chrome/content/zotero/xpcom/reader.js @@ -795,7 +795,7 @@ class ReaderInstance { let selectFile = async () => { let fp = new FilePicker(); - fp.init(this._window, Zotero.ftl.formatValueSync('pdfReader-import-from-epub-prompt-title'), fp.modeOpen); + fp.init(this._window, Zotero.ftl.formatValueSync('reader-import-from-epub-prompt-title'), fp.modeOpen); fp.appendFilter('EPUB Data', '*.epub; *.lua; *.opf'); if (await fp.show() !== fp.returnOK) { return null; @@ -837,8 +837,8 @@ class ReaderInstance { + ps.BUTTON_POS_2 * ps.BUTTON_TITLE_IS_STRING; let index = ps.confirmEx( this._window, - Zotero.ftl.formatValueSync('pdfReader-import-from-epub-prompt-title'), - Zotero.ftl.formatValueSync('pdfReader-import-from-epub-prompt-text', { + Zotero.ftl.formatValueSync('reader-import-from-epub-prompt-title'), + Zotero.ftl.formatValueSync('reader-import-from-epub-prompt-text', { count: stats.count, lastModifiedRelative: Zotero.Date.toRelativeDate(stats.lastModified), tool: stats === koReaderStats ? 'KOReader' : 'Calibre', @@ -846,7 +846,7 @@ class ReaderInstance { buttonFlags, Zotero.getString('general.import'), '', - Zotero.ftl.formatValueSync('pdfReader-import-from-epub-select-other'), + Zotero.ftl.formatValueSync('reader-import-from-epub-select-other'), '', {} ); if (index === 0) { @@ -873,16 +873,16 @@ class ReaderInstance { + ps.BUTTON_POS_1 * ps.BUTTON_TITLE_CANCEL; let message = isOpenFile - ? Zotero.ftl.formatValueSync('pdfReader-import-from-epub-no-annotations-current-file') - : Zotero.ftl.formatValueSync('pdfReader-import-from-epub-no-annotations-other-file', { + ? Zotero.ftl.formatValueSync('reader-import-from-epub-no-annotations-current-file') + : Zotero.ftl.formatValueSync('reader-import-from-epub-no-annotations-other-file', { filename: PathUtils.filename(path) }); let index = ps.confirmEx( this._window, - Zotero.ftl.formatValueSync('pdfReader-import-from-epub-prompt-title'), + Zotero.ftl.formatValueSync('reader-import-from-epub-prompt-title'), message, buttonFlags, - Zotero.ftl.formatValueSync('pdfReader-import-from-epub-select-other'), + Zotero.ftl.formatValueSync('reader-import-from-epub-select-other'), '', '', '', {} ); if (index === 1) { diff --git a/chrome/content/zotero/zoteroPane.xhtml b/chrome/content/zotero/zoteroPane.xhtml index 910bc9c9b4..4b9ff3e521 100644 --- a/chrome/content/zotero/zoteroPane.xhtml +++ b/chrome/content/zotero/zoteroPane.xhtml @@ -318,7 +318,7 @@ diff --git a/chrome/locale/en-US/zotero/reader.ftl b/chrome/locale/en-US/zotero/reader.ftl index 7687a06e88..e3cfe7b8c7 100644 --- a/chrome/locale/en-US/zotero/reader.ftl +++ b/chrome/locale/en-US/zotero/reader.ftl @@ -1,73 +1,188 @@ -pdfReader-underlineText = Underline Text -pdfReader-highlightText = Highlight Text -pdfReader-addText = Add Text -pdfReader-selectArea = Select Area -pdfReader-draw = Draw +reader-annotations = Annotations +reader-show-annotations = Show Annotations +reader-search-annotations = Search Annotations +reader-search-outline = Search Outline +reader-no-annotations = Create an annotation to see it in the sidebar +reader-no-extracted-text = No extracted text +reader-add-comment = Add comment +reader-annotation-comment = Annotation comment +reader-annotation-text = Annotation text +reader-manage-tags = Manage tags for this annotation +reader-open-menu = Open annotation menu +reader-thumbnails = Thumbnails +reader-tag-selector-message = Filter annotations by this tag +reader-add-tags = Add tags… +reader-highlight-text = Highlight Text +reader-underline-text = Underline Text +reader-add-note = Add Note +reader-add-text = Add Text +reader-select-area = Select Area +reader-highlight-annotation = Highlight annotation +reader-underline-annotation = Underline annotation +reader-note-annotation = Note Annotation +reader-text-annotation = Text Annotation +reader-image-annotation = Image Annotation +reader-ink-annotation = Ink Annotation +reader-search-result-index = Search result +reader-search-result-total = Total search results +reader-draw = Draw +reader-eraser = Eraser +reader-pick-color = Pick a Color +reader-add-to-note = Add to Note +reader-zoom-in = Zoom In +reader-zoom-out = Zoom Out +reader-zoom-reset = Reset Zoom +reader-zoom-auto = Automatically Resize +reader-zoom-page-width = Zoom to Page Width +reader-zoom-page-height = Zoom to Page Height +reader-split-vertically = Split Vertically +reader-split-horizontally = Split Horizontally +reader-next-page = Next Page +reader-previous-page = Previous Page +reader-page = Page +reader-location = Location +reader-read-only = Read-only +reader-prompt-transfer-from-pdf-title = Import Annotations +reader-prompt-transfer-from-pdf-text = Annotations stored in the PDF file will be moved to { $target }. +reader-prompt-password-protected = The operation is not supported for password-protected PDF files. +reader-prompt-delete-pages-title = Delete Pages +reader-prompt-delete-pages-text = + { $count -> + [one] Are you sure you want to delete { $count } page from the PDF file? + *[other] Are you sure you want to delete { $count } pages from the PDF file? + } +reader-rotate-left = Rotate Left +reader-rotate-right = Rotate Right +reader-edit-page-number = Edit Page Number… +reader-edit-annotation-text = Edit Annotation Text +reader-copy-image = Copy Image +reader-save-image-as = Save Image As… +reader-page-number-popup-header = Change page number for: +reader-this-annotation = This annotation +reader-selected-annotations = Selected annotations +reader-this-page = This page +reader-this-page-and-later-pages = This page and later pages +reader-all-pages = All pages +reader-auto-detect = Auto-Detect +reader-delete-annotation-text = + { $count -> + [one] Are you sure you want to delete the selected annotation? + *[other] Are you sure you want to delete the selected annotations? + } +reader-enter-password = Enter the password to open this PDF file +reader-include-annotations = Include annotations +reader-preparing-document-for-printing = Preparing document for printing… +reader-phrase-not-found = Phrase not found +reader-find = Find +reader-close = Close +reader-show-thumbnails = Show Thumbnails +reader-show-outline = Show Outline +reader-find-previous = Find the previous occurrence of the phrase +reader-find-next = Find the next occurrence of the phrase +reader-toggle-sidebar = Toggle Sidebar +reader-find-in-document = Find in Document +reader-toggle-context-pane = Toggle Context Pane +reader-highlight-all = Highlight all +reader-match-case = Match case +reader-whole-words = Whole words +reader-appearance = Appearance +reader-epub-appearance-line-height = Line height +reader-epub-appearance-word-spacing = Word spacing +reader-epub-appearance-letter-spacing = Letter spacing +reader-epub-appearance-page-width = Page width +reader-epub-appearance-use-original-font = Use original font +reader-epub-appearance-line-height-revert = Use default line height +reader-epub-appearance-word-spacing-revert = Use default word spacing +reader-epub-appearance-letter-spacing-revert = Use default letter spacing +reader-epub-appearance-page-width-revert = Use default page width +reader-convert-to-highlight = Convert to Highlight +reader-convert-to-underline = Convert to Underline +reader-size = Size +reader-merge = Merge +reader-copy-link = Copy Link +reader-theme-original = Original +reader-theme-snow = Snow +reader-theme-sepia = Sepia +reader-theme-dark = Dark +reader-add-theme = Add Theme +reader-scroll-mode = Scrolling +reader-spread-mode = Spreads +reader-flow-mode = Page Layout +reader-columns = Columns +reader-split-view = Split View +reader-themes = Themes +reader-vertical = Vertical +reader-horizontal = Horizontal +reader-wrapped = Wrapped +reader-none = None +reader-odd = Odd +reader-even = Even +reader-paginated = Paginated +reader-scrolled = Scrolled +reader-single = Single +reader-double = Double +reader-theme-name = Theme Name: +reader-background = Background: +reader-foreground = Foreground: +reader-focus-mode = Focus Mode +reader-clear-selection = Clear Selection -pdfReader-highlightAnnotation = Highlight annotation -pdfReader-underlineAnnotation = Underline annotation -pdfReader-noteAnnotation = Note Annotation -pdfReader-textAnnotation = Text Annotation -pdfReader-imageAnnotation = Image Annotation - -pdfReader-find-in-document = Find in Document - -pdfReader-move-annotation-start-key = +reader-move-annotation-start-key = { PLATFORM() -> [macos] { general-key-command } *[other] { general-key-alt } } -pdfReader-a11yMoveAnnotation = Use the arrow keys to move the annotation. -pdfReader-a11yEditTextAnnotation = To move the end of the text annotation, hold { general-key-shift } and use the left/right arrow keys. To move the start of the annotation, hold { general-key-shift }-{ pdfReader-move-annotation-start-key } and use the arrow keys. -pdfReader-a11yResizeAnnotation = To resize the annotation, hold { general-key-shift } and use the arrow keys. -pdfReader-a11yAnnotationPopupAppeared = Use Tab to navigate the annotation popup. +reader-a11y-move-annotation = Use the arrow keys to move the annotation. +reader-a11y-edit-text-annotation = To move the end of the text annotation, hold { general-key-shift } and use the left/right arrow keys. To move the start of the annotation, hold { general-key-shift }-{ reader-move-annotation-start-key } and use the arrow keys. +reader-a11y-resize-annotation = To resize the annotation, hold { general-key-shift } and use the arrow keys. +reader-a11y-annotation-popup-appeared = Use Tab to navigate the annotation popup. -pdfReader-a11yAnnotationCreated = { $type } created. -pdfReader-a11yAnnotationSelected = { $type } selected. +reader-a11y-annotation-created = { $type } created. +reader-a11y-annotation-selected = { $type } selected. --pdfReader-a11yTextualAnnotationInstruction = To annotate text via the keyboard, first use “{ pdfReader-find-in-document }” to locate the phrase, and then press { general-key-control }-{ option-or-alt }-{ $number } to turn the search result into an annotation. --pdfReader-a11yAnnotationInstruction = To add this annotation into the document, focus the document and press { general-key-control }-{ option-or-alt }-{ $number }. +-reader-a11y-textual-annotation-instruction = To annotate text via the keyboard, first use “{ reader-find-in-document }” to locate the phrase, and then press { general-key-control }-{ option-or-alt }-{ $number } to turn the search result into an annotation. +-reader-a11y-annotation-instruction = To add this annotation into the document, focus the document and press { general-key-control }-{ option-or-alt }-{ $number }. -pdfReader-toolbar-highlight = - .aria-description = { -pdfReader-a11yTextualAnnotationInstruction(number: "1") } - .title = { pdfReader-highlightText } -pdfReader-toolbar-underline = - .aria-description = { -pdfReader-a11yTextualAnnotationInstruction(number: "2") } - .title = { pdfReader-underlineText } -pdfReader-toolbar-note = - .aria-description = { -pdfReader-a11yAnnotationInstruction(number: "3") } - .title = { pdfReader-noteAnnotation } -pdfReader-toolbar-text = - .aria-description = { -pdfReader-a11yAnnotationInstruction(number: "4") } - .title = { pdfReader-addText } -pdfReader-toolbar-area = - .aria-description = { -pdfReader-a11yAnnotationInstruction(number: "5") } - .title = { pdfReader-selectArea } -pdfReader-toolbar-draw = +reader-toolbar-highlight = + .aria-description = { -reader-a11y-textual-annotation-instruction(number: "1") } + .title = { reader-highlight-text } +reader-toolbar-underline = + .aria-description = { -reader-a11y-textual-annotation-instruction(number: "2") } + .title = { reader-underline-text } +reader-toolbar-note = + .aria-description = { -reader-a11y-annotation-instruction(number: "3") } + .title = { reader-note-annotation } +reader-toolbar-text = + .aria-description = { -reader-a11y-annotation-instruction(number: "4") } + .title = { reader-add-text } +reader-toolbar-area = + .aria-description = { -reader-a11y-annotation-instruction(number: "5") } + .title = { reader-select-area } +reader-toolbar-draw = .aria-description = This annotation type cannot be created via the keyboard. - .title = { pdfReader-draw } + .title = { reader-draw } -pdfReader-findInDocumentInput = +reader-find-in-document-input = .title = Find - .placeholder = { pdfReader-find-in-document } + .placeholder = { reader-find-in-document } .aria-description = To turn a search result into a highlight annotation, press { general-key-control }-{ option-or-alt }-1. To turn a search result into an underline annotation, press { general-key-control }-{ option-or-alt }-2. -pdfReader-import-from-epub = +reader-import-from-epub = .label = Import Ebook Annotations… -pdfReader-import-from-epub-prompt-title = Import Ebook Annotations -pdfReader-import-from-epub-prompt-text = +reader-import-from-epub-prompt-title = Import Ebook Annotations +reader-import-from-epub-prompt-text = { -app-name } found { $count -> - [1] { $count } { $tool } annotation + [one] { $count } { $tool } annotation *[other] { $count } { $tool } annotations }, last edited { $lastModifiedRelative }. Any { -app-name } annotations that were previously imported from this ebook will be updated. -pdfReader-import-from-epub-no-annotations-current-file = +reader-import-from-epub-no-annotations-current-file = This ebook does not appear to contain any importable annotations. { -app-name } can import ebook annotations created in Calibre and KOReader. -pdfReader-import-from-epub-no-annotations-other-file = +reader-import-from-epub-no-annotations-other-file = “{ $filename }” does not appear to contain any Calibre or KOReader annotations. If this ebook has been annotated with KOReader, try selecting a “metadata.epub.lua” file directly. -pdfReader-import-from-epub-select-other = Select Other File… +reader-import-from-epub-select-other = Select Other File… diff --git a/chrome/locale/en-US/zotero/zotero.ftl b/chrome/locale/en-US/zotero/zotero.ftl index 4b7ad9dc9d..a37a3260ca 100644 --- a/chrome/locale/en-US/zotero/zotero.ftl +++ b/chrome/locale/en-US/zotero/zotero.ftl @@ -41,6 +41,27 @@ general-cancel = Cancel general-show-in-library = Show in Library general-restartApp = Restart { -app-name } general-restartInTroubleshootingMode = Restart in Troubleshooting Mode +general-save = Save +general-clear = Clear +general-update = Update +general-back = Back +general-edit = Edit +general-back = Back +general-copy = Copy +general-delete = Delete + +general-red = Red +general-orange = Orange +general-yellow = Yellow +general-green = Green +general-teal = Teal +general-blue = Blue +general-purple = Purple +general-magenta = Magenta +general-violet = Violet +general-maroon = Maroon +general-gray = Gray +general-black = Black citation-style-label = Citation Style: language-label = Language: