hypothesis / hypothesis/product-backlog

Investigate how to support internationalization in the Hypothesis client

Open
#324 16 comments 2 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
122
Forks
7
PR merge metrics
No merged PRs in 30d

Description

### Problem you are trying to address with this feature

* As a publisher of non-English language content I would like to use Hypothesis to add an annotation layer to my content.
* As a non-English speaking user, I would like the Hypothesis extension to be available in a language that I understand.

### Your solution

We'll need to investigate the various options available for handling i18n (including translation) in the client, across both the annotator layer and the sidebar application and figure out the workflows involved.

Things we'll need to support:

- Translating the strings displayed in both the host page, annotator layer and sidebar, including correct pluralisation.
- Using locale-appropriate formatting for absolute and relative dates
- Translating strings displayed in the browser extension, outside of the client UI itself.

Things we'll need to figure out:

- The workflow for managing translations for the client & service, including what happens when we release new client versions that add new strings that need to be translated.
- How to load only the appropriate translations into the client, and more generally, how to minimize the network/processing tax imposed by i18n.

Tools we might want to look into:

- [FormatJS](https://formatjs.io) is a set of JS libs & polyfills to support i18n.
- Whatever the standard i18n tools are for Angular v1 apps.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the annotator layer, sidebar application, host-page UI, and browser extension surfaces described in the issue. Compare FormatJS and standard Angular v1 i18n tools, including pluralisation, locale-aware dates, translation workflows, loading only needed translations, and release handling. Done means documenting viable options and workflows for all listed surfaces.

Written by the indexing model from the issue text.

Assessment

Tech stack
angularjs, javascript
Domain
internationalization, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.