Code Monkey home page Code Monkey logo

signit's People

Contributors

0x010c avatar amire80 avatar apaskulin avatar hugolpz avatar jhsoby avatar kabir-afk avatar mind-the-cap avatar pushkar707 avatar saltykheera avatar translatewiki avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

signit's Issues

List available files using Commons only

Lingualibre wikibase API may be in end of life.

Explore relying on Wikimedia Commons API queries :

One API query response on Commons has a limit of 500. To ensure code's resilience and handling of larger categories you need to recursively query the API using continue.cmcontinue if you query using list=categorymembers. Append &origin=* or it could fail due to xhr cross origin.

Clean ups ?

May require bot clean up or API query starting on parent category https://commons.wikimedia.org/wiki/Category:Videos_Langue_des_signes_française

See also

Develop language policy

Add-on handles several languages parameters :

  • signLanguage
  • relevantWiktionary, source for the definitions, to be readable by the user.
  • relevantWiktinarySection = source for the definitions, the language of the written words clicked, written in uiLanguage (complexity therefore exploding).
  • uiLanguage

Question

Is the relevant Wiktionary relevant to that sign language or to the add-on's user's language ?

signLanguage

As for uiLanguage, we currently store the following info :

{ wdQid: "Q99628", nativeName: "langue des signes française"}

We could store parentLanguage: [ 'ru', 'kh' ] so to support languages such as Russian-Kazakh Sign Language.

uiLanguage

As for uiLanguage, we currently store the following info :

{ wdQid: "Q1860", nativeName: "English", associatedWikt: "en", associatedAnchorId: "#English" },

See also this WDQS query.

Complexity arise

Spanish user studying American Sign Language, may want:

{ uiLanguage:"es", signLanguage:"ASL",relevantWiktionary:"es", relevantWiktinarySection:"#Inglès" }

Hindi user studying American Sign Language, will want:

{ uiLanguage:"hi", signLanguage:"ASL",relevantWiktionary:"hi", relevantWiktinarySection:"#अंग्रेज़ी" }

Policy needed

Must think about a better balance between hard coded data and ../i18n/

Seems logical to assume the learner of American Sign Language knows to read in ENGLISH, and entry to ASL must go via this parent language.

See also

About "Add language UI in settings": Consider https://github.com/wikimedia/jquery.uls .

Realign visual branding

Move toward a more Sign Languages specific visual branding.

Colors

Phase 1

Phase 2

Explore cross browser format

Current code has already several features making it nearly ready for cross-browser support.
But it got to be checked further.

Resources

Status

Browser Works Error-free App Store
Firefox yes yes yes
Chromium yes warning
modal definition: fails.
not yet
Google Chrome yes warning
modal definition: fails.
not yet
Safari n.a. n.a. Store publication required to install extension.
Edge n.a. n.a. not yet

See also

#21

Update project documentation

Update manifest

  • Update manifest.json with new urls

Improve documentation

  • Expand readme.md : How to install on my computer ?
  • Expand readme.md : add description from available resources (Firefox add on description)
  • Add doc folder, add screenshots from available resources (Firefox add on description)

@edouard-lopez : do you actively use this project ? Could you share some visuals ?

Extension language needs gets reset on when changing pages

Screenshot (21)

Issue: A lot of time the language set by the user for the extension gets reset, this behavior is seen usually when we open a new tab or just navigate through various URLs in the website.

Reproduction: Change the default language of the extension to any language (English in my case), and just use the browser normally, and keep checking the extension popup's language. You will be very quickly able to see the language change.

My System:
OS: Windows 11 with WSL (Ubuntu 20.04)

Link from the wikitionary are broken

Having the wikitionary definition is a nice addition!

However, the links broke the pop UI as they are relative to the extension

moz-extension://cf0f4968-86f0-4896-9d0f-baeaa1a6a094/wiki/%C3%89tat

Solutions

  1. They should be fixed by prefixing them with FQDN, e.g. https://…
  2. render as text.

My preference goes to the first solution.

signit.wikitionary.link.are.broken.webm

Settings toggles to migrate to checkboxes

Half of current settings rely on large, double-line OO.ui.ToggleSwitchWidget :

  • wpintegration
  • twospeed
  • hinticon
  • coloredwords
  • showvideo

See ./popup/popup.js.

We could migrate to single-line checkboxes elements such as

The differences of usage of those later 3 must be studied before implementation.

Also : should we do this ? This change would create 2 status in the setting, some larger 2-lines options, and some smaller single-line options.
Is this an acceptable UI/UX practice ?

See also : #36

Current Suggested
Screenshot from 2023-06-13 16-21-49 Screenshot from 2023-06-13 16-21-35

Onboard @kabir-afk

Hello @kabir-afk , following your email I'm happy to grant you contributor rights.
Few rapid things to know 👍🏼

  • Legacy: This web extension project is 5 years old, quite modest and now a bit messy, but still okish, and I'm around to answer questions.
  • Manifest v2 : Please note this current code is v2, which will become deprecated on Extensions stores
  • #21 : Being a junior developer handling legacy code, I have the way but I'm struggling to migrate to v3.
  • Few codes coming : please wait a week or two to edit this repository, I got some local changes waiting to be pushed to github. A tiny new feature.
  • It may be more time-efficient to study this version and recreate it from scratch using Manifest v3 boilerplate and ChatGPT's help. See #21 section V3 from scratch ? for leads.
  • I actually look for someone to lead the development side so I may focus on coordinating partners to create more signed videos. While the project could receive all sign languages and the UI is translated in 30 langues, we only have video data for French Sign Language. Which is far too little.

You have the gist of it. The rest is coding and project management.

Make video and wiktionary blocks optional

Some language communities may have and therefore need :

  • only wiktionary
  • both
  • only the sign language videos.

Also, we would gain to make these blocks optional, based on the language ui used and user settings.

Actions

  • clean and normalize SignItCoreContent.js and popup's classes, ids names.
  • create proper panels, check for responsive html, css in SignItCoreContent.js
  • create initial setting and customizable settings in background.js and popup.js

Publicité Wikimédia France

Si on commence à communiquer sur l'extension, ça serait bien de rajouter le nom de Wikimédia à France à quelques endroits

Manual installation error on Chrome and Edge

When trying to manually install SignIt from chrome://extensions on Chrome (and from edge://extensions on Edge), with Developer Mode enabled, I get the following error message:

Failed to load extension
File 
~\Downloads\SignIt\SignIt-master
Error
'content_security_policy.extension_pages': Insecure CSP value "https://commons.wikimedia.org" in directive 'object-src'.
Could not load manifest.

Tested on Chrome latest version: 121.0.6167.185
Tested on Edge latest version: 121.0.2277.128

With SignIt latest commit on master: 75d09f3

Understanding new users

Hello @pushkar707, @shashankiitbhu, @JatinSainiOO7, @LeoDupont . cc @kabir-afk

Understanding

In past few weeks I saw 4 new github accounts arrive on this open source Wikimedia project. I would like to understand better the reason of these arrivals and the possibilities it could open. Also may I ask you more about you and your interest in SignIt ?

  1. How did you discovered SignIt's repository ?
  2. Are you wikimedians editors ? -> which wiki projects
  3. Are you developer ? -> which coding languages ?
  4. What is your relation to sign languages ? -> practicing, interested, related people are practicing ?

2024

It's great to see this new activity and I strongly suspect it is linked with our recent GSOC exploration which is playing out this late March. I would like to understand your interest better so I may answer your needs better. Feel free to DM me if you prefer.

v1.20

Following @saltykheera challenge, the choosepanels have been implemented.
Few steps before a new release.

Translations

Finish #36

  • Clean Salty's in-modal toggle, either :
    • remove from SignItCoreContent.js + content_script/signit.css
    • rewrite with OO.ui.js in SignItCoreContent.js. Behavior should synch with localStoreage choosepanels.

Quality

Some clean ups to do :

  • Distinguish better the setting popup and the on-click modal by renaming

Button to submit corrections

Si l'extension commence à être pas mal utilisé, faudra sans doute ajouter un bouton de signalement. Mais faudra voir qui est capable de traiter ces signalements. Cet ajout peut attendre la phase où l'extension existera aussi sur Chrome.

Migrate to manifest.json v3.0

This actually implies to do a bunch of code migration, with async, etc.

Chrome's migration checklist

Chrome provides a migration checklist which points to more actionable resources :

V3 from scratch ?

Resources

Related

  • #32 -- require v3 before to move forward.

Write a minimal Sign Language Studio guideline

Like fir WikiCheese, lot can be done with simple improvement to the photographic settings. See below.

  • Write in #18
  • Migrate to .md or .html file -- some screenshots are copyrighted and cannot be shared on meta.wikimedia.org

References

Good light, soft-colored background

These videos settings seems ideal. The soft-color in the background allows the signers to fully benefit from provided, multi-sources and diffused lights. These videos screenshots also show casts visuals hints in white lines, which involves additional and costly post editing.
Screenshot_20220731_161522
Screenshot_20220731_161353
Screenshot_20220731_161302

Sign_language_studio-fra-coquillage

Good light, black background, black shirt

IMG-20221213-WA0000

Good light, green screen, whitened

These pure white background are provided thanks to green screen and post editing. It integrates well with computer textual contents, readable webpages mostly having white background as well.
Screenshot_20220731_162739
Screenshot_20220731_162707

Zero Euro studio with correct lighting

1661379654576_IMG20220824175404

Screenshot_2022-08-25-00-16-09-335

Poor light

This video setting lacks both proper light and professional camera. Professional cameras have white balancing features which can partially neutralize yellowish backgrounds. The video quality also seems to be lacking, which could be due to the low light as well.
Screenshot_20220731_163246

Poor light and irregular background

Similar to the previous setting, but the background field is also polluted by various visual parasites. This is to avoid.
Screenshot_20220731_163159

Clothing

Prefer short, summer clothing showing arms and face clearly.

Framing

The video should at minima goes from the belly button to 10cm (3 inch) above the signer's head.
Framing should be consistent along a series.
Camera at shoulder or sternum level.

Conclusions

For best value for money investment, replicating the New York Times' settings seems the best option. It requires the following items :

  • lights
  • high level device holder
  • proper camera lens (>= 8 Mpx)
  • green screen background.

Update screenshots

Icons have been recently updated (#39's phase 1 & phase 2).
The documentation can now be updated by redoing the screenshoots and spreading those to the relevant places.

Phase 3

The task below are good first issues.

Phase4

This needs adminiship on Firefox store and is therefore assigned to @hugolpz

Get back addon control 🇬🇧

Current situation

LinguaLibre SignIt is on mozilla addon store.
This addon is under 0x010C control and currently failling, likely due to migration from .fr to .org.
It is needed to get back control to redeploy.
Screenshot_2021-02-04_01-35-38

Explore and learn

  • Get account on Mozilla ➡️ hugo.lpz ...
  • Explore developer tools, train, learn
  • Upload an alternative version of SignIt.
  • Settings page
  • Published page
  • Download that version, test.
  • Edit, publish, test cycle.

Set up development suite

  • Download FirefoxNightly - developers friendly
  • Ubuntu Install FirefoxNightly. See here
  • Allows addons from file : Open url about:config > search xpinstall.signatures.required : set to false
  • Build SignIt addon : npm run webext
  • Load SignIt addons : Open url about:addons > click the gear > click Install Add-on from File...
  • Open url about:debugging#/runtime/this-firefox > Find SignIt : click "Inspect". It opens an extension inspecting tab.
  • Test on Wikipedia
    • Couscous -> should show video
    • Changer -> should show videos
    • Chanter -> should not show a video because none recorded.

Screenshot_2021-02-04_01-35-08

Get access

  • Get a dev On wikimedia.fr account created, or similar. CC: @mickeybarber
  • Message 0x010C
  • Get access to Hugo ?

Bubble on selection positioning

Thanks for adding this feature, it make it so easier to use!

Actual

I use other extension like signIt to translate selected text, and they are overlapping, below you can see La Bulle Elix is completely overlaping SignIt (we can see a part of the wing on the top left):

image

Expectation

The Simple Translate lets user choose where they want it display
image

Request

How feasible is it to be able to select the position?

Improve videos encoding quality and size

Not sure that the right place to put it, feel free to copy/paste.

Comparison

Videos uploaded by Lingua Libre are approximately 5-10 times larger than the one I extracted and encoded from Laura Jauvert video (for the same duration and with a lower resolution).

Source Example Duration Resolution Size (Kb)
Lingua Libre LL-Q33302 (fsl)-Taliba31-comédien.webm 2.0 s 640 × 480 622 KB
LSF-data Adolescent.webm 2.0 s 1,280 × 720 123 KB

Increase Quality

When I worked on the project I played a bit with FFMPEG options to get video as light and sharp as possible, i.e. with minimal blur on movement and small size as I targeted mobile usage.

My encoding script used the libvpx-vp9 codec and a bunch of other option for mobile (640x480) and desktop (1280x720).

Hope this could help

Explain better workflow between assets

Experienced Extension dev's help required.

This is a Firefox/Chrome extension.
Its js scripts therefore works with special limitations.
This project creator is no more active.
A clarification of the overall flow of variables, scripts dependencies, scope access & limitations,
how to make script A available into script B, and how to declare those scripts with proper rights in manifest.json would help a lot.

Add way to control video speed

Current usage

As a person that sign casually, when watching a new sign, I often find myself trying to decompose the movement, but at normal speed it's not easy.

Feature request

Having the control to slow down the video would be helpful. Either on a per video (inside the player) or for all videos

Issues with the qqq.json documentation

I noticed the following issues with the qqq.json file:

  • Please remove the keys that don't have any content. Eg: "si-popup-settings-uilanguage-help":"",
  • Remove key - "si-overlay-coreContent-right--wikt-section-id":"", that has no entry in the en.json file.

Negation in sign language

In french sign language, for example :

  • j'aime/j'aime pas (i love/ I dislike)
  • je veux/je veux pas (i want/ I don't want)

Here is a video, that introduce well LSF. Joël Chalude show the "irregular" verb in french sign language :
https://invidious.fdn.fr/b3v7o6Xi5Zs?t=104

So it bring another layer of difficulty as Sign It translate words by word. So i'm not sure if Sign It can detect a negative sentence, i don't know how it works on the technical side. For now, i can only think of a toggle above the video. Where we can switch to the negative verb. As for other sign language, i don't know if they have the same irregular verb.

Refine `function wordToFiles( word )`

Need to define issue better. It seems to work as intended within the top right popup. Search of accueil returns video of accueil (lieu). Maybe was just caching issue with the API.

Current intersection from (1) clicked-word via window.select() and (2) list of videos recordings is handled by function wordToFiles( word ).

This function is too restrictive and must be more inclusive.

May need edit 3 background-script.js sections :

Additional cases to handle

Selected word Existing word string Existing filename string
coucou coucou (accrocher le regard) File:LL-Q33302_(fsl)-Hugo_en_résidence-coucou_(accrocher_le_regard).webm
accueil accueil (lieu)
accueil
File:LL-Q33302_(fsl)-Hugo_en_résidence-accueil_(lieu).webm
File:LL-Q33302_(fsl)-Taliba31-accueil.webm

Screenshot

As of Monday noon , it failed. (Recording on Saturday noon...)

Recorded video file exists, but SignIt don't find it !

In the 4th image, an other video (File:LL-Q33302_(fsl)-Taliba31-accueil.webm) is shown but only it. A second one (File:LL-Q33302_(fsl)-Hugo_en_résidence-accueil_(lieu).webm) should be available.

[EDIT]

As of Monday evening , it works. (Recording on Saturday noon...)


Participative listing

Other cases are observed to not work. You can add them in the table above to ease the work of the developer.

Homographs: add definition in sign language

TLDR: Better support for homographs, words that write similarly but mean and sign differently, is needed.

Context :

Currently Lingua libre SignIt is limited to translation in sign language. It somewhat limit the tool to learning sign language for hearing people. I would like to make it useful for deaf people too.

Also there is lot words that will never have a translation : the, in, into, and...

Nor the correct sign language. Eg : To dive

We won't use the same sign depending of its meaning :

  • To dive into a book : we will sign a book eating us
  • To dive in a swimming pool : we will sign the movement
  • To dive in the deaf world : We will sign the world eating us

Suggestion :

That's why i think the ability to add definitions in sign language can't be skipped. We also need an option for word that will never have sign, a image with "this word don't exist in sign language" and a link below that explain why. In fact, french sign language is very similar to chinese in some way.

In france, Elix has several definition translated in sign language. So most deaf people would use it daily.

Hence my suggestion, i would like to add several numberer tabs below the video with a subtitle as "Meaning n°"
So, when we click on those tabs, the definition translated in sign language would help a lot deaf people.

I hope it helped you.


[Edit by Hugolpz]

  • Data : gather rich list with definitions
  • Code : RecordWizard to handle rich data better 👉🏼 T212671
  • Community: build collaboration to video record.

Video recording quality seems degraded

+ Testing requires: js skills ; physical web cams or digital cameras.

Problem

Videos uploaded to Wikimedia Commons seems limited to a default low quality : 640px and low quality / high compression. How to set higher standard ?

Tools

Display bug

  • Enquire display bugs
  • Redeploy.

Bug reported by @Pyb75

Sur lemonde.fr, le popup ne s'affiche pas correctement
Screenshot_2019-11-08 Algérie, Liban, Irak, Chili, Hongkong La contestation est mondiale

Pyb75 bug suspected to be css related.

Continue i18n efforts

This is tricky and may require special training on extension debugging.

Given we work in the context of a Firefox/Chrome extension, some scripts don't have access to the i18n variables (banana) déclared in background-script.js, they are therefore hard coded in English or French. Most notably the file SignItCoreContent.js, which is called from popup/popup.js and content_scripts/signit.js can't access banana (is undefined), the i18n doesn't work there. I tried async + await loading as in popup.js, but switching the whole code to async create a result is non-structured-clonable data error. I was unsuccessful to provide banana . Maybe providing the banana as parameter would work.

Add configuration to replay video automatically

Current usage

When watching a new sign, I often play it several times to help me learn it.

Feature request

Let me replay video automatically so I can learn it more easily. Ideally, the 2nd play would be slower than the first one.

Remove dependency from deprecated oojs.jquery.min.js

oojs.jquery.min.js removal in oojs v6.0

Oojs v.6.0.0 release note states states:

v6.0.0 / 2021-04-22
This release removes an (optional) dependency on jQuery.
[BREAKING CHANGE] release: Remove special "jquery" build (Timo Tijhof)

SignIt relies on npm oojs package and its oojs.jquery.min.js. Upgrading dependency to oojs 6.0.0 by Timo Tijhof removes this file, as declared.

Part of our build process is to copy oojs.jquery.min.js from oojs module to ./lib/.
But since oojs v6.0.0 this file is no more.
If oojs.jquery is missing from ./lib/ , the plugin fails to query contents.

Hack

I created and commited a js folder so the build pull oojs.jquery.min.js from there.
Few changes in the app js code should be sufficient to stop relying on this deprecate flavor of jquery and allow its removal from sign it.

Notes

I don't have the skills to inspect firefox plugins so I struggle to identify the code to change.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.