Skip to content

Releases: SysAdminDoc/Glossa

v0.3.0

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 10 Sep 19:03

Added

  • The engine lets go of its models after fifteen seconds of quiet, and on Chrome the hidden document that hosts it closes too, so an idle browser is not holding a few hundred megabytes.
  • A processor that cannot run the engine is reported plainly ("this computer's processor lacks the SIMD instructions the engine needs") before anything is downloaded, instead of failing with a stack trace.
  • A translation whose engine dies mid page is retried once on a fresh engine rather than ending the page.
  • Selecting text can offer a translation on the spot. The offer is a small button next to the selection, it takes no focus away from what you selected, and it only appears if you turn it on in the options page.
  • The selection popover closes with Escape, keeps clear of the text it is explaining, has a close button big enough to hit, and stays outside the page's own editors so it can never be saved into a document you are writing.
  • Accessibility: every translation says which language and direction it is in, the popup and options pages announce their status and progress to a screen reader, and both pass an axe check with no violations. In bilingual mode the added copy is kept out of the accessibility tree where it holds nothing focusable, so a screen reader does not read every block twice.
  • Replace mode keeps the page's own links and buttons instead of rebuilding them, so anything the page had attached to them still works after a translation. Restoring puts each one's original text back.
  • Model downloads survive a bad connection: a dropped transfer picks up where it stopped instead of starting the whole file again, and a download can be cancelled from the options page. Two pages asking for the same language share one download, and a download that would not fit is refused before it starts with the numbers to explain why.
  • The options page can send downloads back to Mozilla's CDN after it has fallen back to the bucket.
  • Language detection only looks at prose now. A page of numbers, dates or links is reported as undetectable and left alone instead of being guessed at, and a language you choose by hand is remembered for that site.
  • A site with an "always" rule translates itself when you open it, with no click. Glossa asks for access to that site when you add the rule, and the rule stays inert until you allow it.

v0.2.1

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 10 Sep 18:20

Added

  • Firefox: when the model hosts are not allowed, the popup says so and offers a button that asks for them. Downloads work straight after, with no reload. This is what you see if you switch those hosts off in about:addons.

Fixed

  • The permission notice appeared in the popup for everyone, including people who had already allowed the model hosts. A stylesheet rule was overriding the attribute that hides it.

v0.2.0

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 10 Sep 17:32

Added

  • An option to offer Mozilla's prerelease language models (Azerbaijani, Belarusian, Bosnian, Norwegian, Nynorsk), off by default because Firefox ships them to its nightly channel only.

Changed

  • The Firefox build declares that it collects no data, which Mozilla requires of every new add-on submission, and its minimum Firefox version is now 142 (the release where that declaration is understood on both desktop and Android).
  • The Firefox build no longer carries any Chrome-only code. The offscreen-document branch is cut at build time, so web-ext lint reports no errors, warnings or notices.

Fixed

  • Card grids and other link-wrapped blocks (div > a > div) are walked into instead of being sent to the engine as one unit, so bilingual mode no longer appends a second copy of every card.
  • Content revealed after the first pass is picked up: the observer now watches text edits and the attributes that decide whether a block is translatable (hidden, open, lang, translate, aria-hidden), and re-checks the blocks an earlier pass skipped when a class or style changes.
  • A block the page re-renders in place is translated again instead of keeping a stale translation forever, and the old translation goes with it.
  • Writes to the page are no longer seen as page changes by the extension's own observer, so translated text is never fed back to the engine.
  • Restore puts back a lang attribute the page set itself instead of deleting it.
  • The engine is never handed its own output. Text it produced on the page is remembered for ten minutes, so a page that copies a finished translation into a new element does not get that text translated a second time.
  • Web addresses, email addresses and long reference numbers inside a sentence come back exactly as they went in. The engine used to put a space inside a query string and translate the domain part of an address.
  • The model catalog's own platform gates are respected. A desktop browser was picking the Android build of the Japanese, Korean, Chinese and Russian models, and prerelease models were offered as if they had shipped. Norwegian Nynorsk now has a display name instead of showing as nn.
  • A block that declares its own language is translated with that language's model, or left alone when the model is not installed. An Arabic quotation on a Spanish page used to be pushed through the Spanish model and came back as nonsense.
  • Every setting on the options page now changes what the extension does. A "never" rule keeps Glossa off that site entirely and says so in the popup, a page in a language you read is not offered, the editable-field skip is honoured, and the catalog refresh uses the interval you set.
  • A protected run of text keeps its exact spacing. A version number like v1.2.3 is no longer spaced out, and a url in brackets stays tight against them.
  • One block's protected text no longer switches protection off for the next block, which happened whenever a block's only text sat inside <code>.
  • A footnote or tooltip block nested inside a link no longer splits the sentence around it into fragments.
  • A block the page re-renders gets its original language back, so it is offered for translation again instead of looking like it is already translated.
  • When the engine fails, every block it did not reach is released instead of being skipped for the rest of the page's life.
  • A change the page makes while a translation is being written to the page is no longer lost.