jiti-meet/lang
Gabriel Borlea 61684b1071
feat(facial-expressions): add the facial expression feature and display them in speakerstats (#10006)
* Initial implementation; Happy flow

* Maybe revert this

* Functional prototype

* feat(facial-expressions): get stream when changing background effect and use presenter effect with camera

* add(facial-expressions): array that stores the expressions durin the meeting

* refactor(facial-expressions): capture imagebitmap from stream with imagecapture api

* add(speaker-stats): expression label

* fix(facial-expression): expression store

* revert: expression leabel on speaker stats

* add(facial-expressions): broadcast of expression when it changes

* feat: facial expression handling on prosody

* fix(facial-expressions): get the right track when opening and closing camera

* add(speaker-stats): facial expression column

* fix(facial-expressions): allow to start facial recognition only after joining conference

* fix(mod_speakerstats_component): storing last emotion in speaker stats component and sending it

* chore(facial-expressions): change detection from 2000ms to 1000ms

* add(facial-expressions): send expression to server when there is only one participant

* feat(facial-expressions): store expresions as a timeline

* feat(mod_speakerstats_component): store facial expresions as a timeline

* fix(facial-expressions): stop facial recognition only when muting video track

* fix(facial-expressions): presenter mode get right track to detect face

* add: polyfils for image capture for firefox and safari

* refactor(facial-expressions): store expressions by counting them in a map

* chore(facial-expressions): remove manually assigning the backend for tenserflowjs

* feat(facial-expressions): move face-api from main thread to web worker

* fix(facial-expressions): make feature work on firefox and safari

* feat(facial-expressions): camera time tracker

* feat(facial-expressions): camera time tracker in prosody

* add(facial-expressions): expressions time as TimeElapsed object in speaker stats

* fix(facial-expresions): lower the frequency of detection when tf uses cpu backend

* add(facial-expressions): duration to the expression and send it with durantion when it is done

* fix(facial-expressions): prosody speaker stats covert fro string to number and bool values set by xmpp

* refactor(facial-expressions): change expressions labels from text to emoji

* refactor(facial-expressions): remove camera time tracker

* add(facial-expressions): detection time interval

* chore(facial-expressions): add docs and minor refactor of the code

* refactor(facial-expressions): put timeout in worker and remove set interval in main thread

* feat(facial-expressions): disable feature in the config

* add(facial-expressions): tooltips of labels in speaker stats

* refactor(facial-expressions): send facial expressions function and remove some unused functions and console logs

* refactor(facial-expressions): rename action type when a change is done to the track by the virtual backgrounds to be used in facial expressions middleware

* chore(facial-expressions): order imports and format some code

* fix(facial-expressions): rebase issues with newer master

* fix(facial-expressions): package-lock.json

* fix(facial-expression): add commented default value of disableFacialRecognition flag and short description

* fix(facial-expressions): change disableFacialRecognition to enableFacialRecognition flag in config

* fix: resources load-test package-lock.json

* fix(facial-expressions): set and get facial expressions only if facial recognition enabled

* add: facial recognition resources folder in .eslintignore

* chore: package-lock update

* fix: package-lock.json

* fix(facial-expressions): gpu memory leak in the web worker

* fix(facial-expressions): set cpu time interval for detection to 6000ms

* chore(speaker-stats): fix indentation

* chore(facial-expressions): remove empty lines between comments and type declarations

* fix(facial-expressions): remove camera timetracker

* fix(facial-expressions): remove facialRecognitionAllowed flag

* fix(facial-expressions): remove sending interval time to worker

* refactor(facial-expression): middleware

* fix(facial-expression): end tensor scope after setting backend

* fix(facial-expressions): sending info back to worker only on facial expression message

* fix: lint errors

* refactor(facial-expressions): bundle web worker using webpack

* fix: deploy-facial-expressions command in makefile

* chore: fix load test package-lock.json and package.json

* chore: sync package-lock.json

Co-authored-by: Mihai-Andrei Uscat <mihai.uscat@8x8.com>
2021-11-17 16:33:03 +02:00
..
languages-af.json Commit from translate.jitsi.org by user damencho.: 410 of 586 strings translated (10 fuzzy). 2019-07-22 12:37:36 +00:00
languages-ar.json lang: Update Arabic translation 2020-12-16 10:08:47 -06:00
languages-be.json Merge weblate translations (#6461) 2020-04-29 10:15:22 -05:00
languages-bg.json Commit from translate.jitsi.org by user damencho.: 621 of 621 strings translated (0 fuzzy). 2019-12-20 16:22:31 +00:00
languages-ca.json Added all missing languages from languages.json 2020-06-19 13:39:39 -05:00
languages-cs.json feat: Update the Czech translation (#8133) 2020-12-11 06:43:37 -06:00
languages-da.json lang: add danish translation 2020-03-23 20:19:37 +01:00
languages-de.json fix(lang) add basic support for serbian 2020-09-30 11:50:50 +02:00
languages-el.json lang: add Greek language translation 2020-05-25 13:40:36 +02:00
languages-enGB.json fix(lang) add basic support for serbian 2020-09-30 11:50:50 +02:00
languages-eo.json Update languages-eo.json 2020-04-30 10:15:37 -05:00
languages-es.json Merge weblate translations (#6461) 2020-04-29 10:15:22 -05:00
languages-esUS.json Adding Spanish translation of "Hebrew" literal (#5893) 2020-04-11 09:00:45 -05:00
languages-et.json lang: added estonian translation 2020-03-27 22:19:42 +01:00
languages-eu.json Merge weblate translations (#6461) 2020-04-29 10:15:22 -05:00
languages-fa.json Add Persian to languages-fa.json 2021-02-01 07:49:58 -06:00
languages-fi.json Merge weblate translations (#6461) 2020-04-29 10:15:22 -05:00
languages-fr.json Merge weblate translations (#6461) 2020-04-29 10:15:22 -05:00
languages-frCA.json Merge weblate translations (#6461) 2020-04-29 10:15:22 -05:00
languages-fy.json Merge weblate translations (#6461) 2020-04-29 10:15:22 -05:00
languages-gl.json Updated Galician translation 2020-12-20 09:22:49 -06:00
languages-he.json Add Hebrew Translation & Fix TYPO (#5907) 2020-04-29 10:26:31 -05:00
languages-hi.json lang:New translation Hindi(hi) (#8968) 2021-04-08 08:59:22 -05:00
languages-hr.json fix(lang) add basic support for serbian 2020-09-30 11:50:50 +02:00
languages-hu.json Merge weblate translations (#6461) 2020-04-29 10:15:22 -05:00
languages-hy.json Commit from translate.jitsi.org by user damencho.: 206 of 586 strings translated (29 fuzzy). 2019-07-22 12:40:07 +00:00
languages-id.json Translation in Indonesian (#5913) 2020-04-29 10:25:56 -05:00
languages-is.json lang: improved translattions with weblate 2020-04-04 22:14:00 +02:00
languages-it.json Update languages-it.json 2021-01-22 06:24:11 -06:00
languages-ja.json fix(lang) update Japanese translations 2020-11-11 09:42:22 +01:00
languages-ka.json languages-ka.json 2020-12-16 10:09:05 -06:00
languages-kab.json fix(lang) update Kabyle translation 2021-10-11 20:32:51 +02:00
languages-km.json Commit from translate.jitsi.org by user damencho.: 25 of 586 strings translated (0 fuzzy). 2019-07-22 12:58:34 +00:00
languages-ko.json lang: Update korean translation (#8879) 2021-03-29 10:52:50 -05:00
languages-lt.json Add Lithuanian (lt) translation (#5903) 2020-04-11 12:30:19 -05:00
languages-lv.json Add files via upload 2020-04-29 10:29:08 -05:00
languages-mn.json translated Mongolian language (#5646) 2020-04-10 12:04:48 -05:00
languages-mr.json Marathi language (#6615) 2020-06-08 12:33:40 -05:00
languages-nb.json Merge weblate translations (#6461) 2020-04-29 10:15:22 -05:00
languages-nl.json lang: add Dutch (NL) translation (#5804) 2020-04-10 12:18:07 -05:00
languages-oc.json Update Occitan locale (#9453) 2021-06-28 16:22:14 +03:00
languages-pl.json lang: Slovak translation (#5523) 2020-04-10 12:00:26 -05:00
languages-pt.json Added Portuguese European (Portugal) pt language (#5642) 2020-04-10 12:04:09 -05:00
languages-ptBR.json lang: translation improvements and corrections for Polish 2020-03-31 09:43:13 +02:00
languages-ro.json lang: update RO translations 2020-06-02 10:19:06 +02:00
languages-ru.json fix(lang) add basic support for serbian 2020-09-30 11:50:50 +02:00
languages-sc.json lang: improved translattions with weblate 2020-04-04 22:14:00 +02:00
languages-sk.json lang: Slovak translation (#5523) 2020-04-10 12:00:26 -05:00
languages-sl.json rn,lang: bundle Slovenian translations 2020-05-25 13:46:37 +02:00
languages-sq.json Update for sq translation (#9449) 2021-06-28 16:22:36 +03:00
languages-sr.json fix(lang) add basic support for serbian 2020-09-30 11:50:50 +02:00
languages-sv.json Merge weblate translations (#6461) 2020-04-29 10:15:22 -05:00
languages-te.json Add Telugu (te) language 2021-04-26 10:36:31 -04:00
languages-tr.json Merge weblate translations (#6461) 2020-04-29 10:15:22 -05:00
languages-uk.json Merge weblate translations (#6461) 2020-04-29 10:15:22 -05:00
languages-vi.json Commit from translate.jitsi.org by user damencho.: 625 of 625 strings translated (0 fuzzy). 2019-06-03 10:58:25 +00:00
languages-zhCN.json Update main-zhCN.json,languages-zhCN.json. 2020-12-16 10:07:20 -06:00
languages-zhTW.json Update languages-zhTW.json 2021-06-10 13:35:28 -05:00
languages.json Fix `Thailand` to `Thai` 2021-06-10 13:35:16 -05:00
main-af.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-ar.json lang: Update main-ar.json (#10034) 2021-09-27 22:10:22 -05:00
main-be.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-bg.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-ca.json adding lobby localization to "ca" lang 2021-11-06 05:57:24 +01:00
main-cs.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-da.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-de.json fix(lang) Fix typos in german translation 2021-11-11 06:40:31 +01:00
main-el.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-enGB.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-eo.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-es.json fix(lang) updated Spanish translation 2021-10-11 11:13:41 +02:00
main-esUS.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-et.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-eu.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-fa.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-fi.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-fr.json fix(lang) update french translation 2021-11-03 10:21:32 +01:00
main-frCA.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-gl.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-he.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-hi.json fix(notification) Edit reason for forced reload of the client. 2021-10-07 11:27:53 -04:00
main-hr.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-hu.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-hy.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-id.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-is.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-it.json lang: Update main-it.json (#10088) 2021-10-04 14:12:17 -05:00
main-ja.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-kab.json fix(lang) update Kabyle translation 2021-10-11 20:32:51 +02:00
main-ko.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-lt.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-lv.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-ml.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-mn.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-mr.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-nb.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-nl.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-oc.json Update Occitan (#10240) 2021-10-25 13:00:44 +03:00
main-pl.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-pt.json fix(lang) update portuguese translation of "highestQuality" (#10317) 2021-11-07 08:02:18 +01:00
main-ptBR.json fix(lang) updated pr-BR translation 2021-10-18 09:19:37 +02:00
main-ro.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-ru.json fix(lang) update Russian translation 2021-11-02 16:48:39 +01:00
main-sc.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-sk.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-sl.json fix(lang) update Slovenian translations 2021-10-11 10:57:54 +02:00
main-sq.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-sr.json fix(lang) add basic support for serbian 2020-09-30 11:50:50 +02:00
main-sv.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-te.json fix(notification) Edit reason for forced reload of the client. 2021-10-07 11:27:53 -04:00
main-tr.json lang: added and translated all missing keys on turkish translation (#10050) 2021-10-04 14:12:38 -05:00
main-uk.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-vi.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-zhCN.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main-zhTW.json fix: Add different text when disablePolls is enabled/disabled (#9900) 2021-09-10 13:57:36 -05:00
main.json feat(facial-expressions): add the facial expression feature and display them in speakerstats (#10006) 2021-11-17 16:33:03 +02:00
readme.md feat(lang) add helper script for manual translations 2021-09-29 13:08:59 +02:00
update-translation.js feat(lang) add helper script for manual translations 2021-09-29 13:08:59 +02:00

readme.md

Jitsi Meet Translation

Jitsi Meet uses i18next library for translation. i18next uses separate json files for each language.

Translating Jitsi Meet

The translation of Jitsi Meet is handled editing manually the language files.

You can use the update-translation.js script as follows to help you with that:

cd lang
node update-translation.js main-es.json

That will cause the main-es.json file to be updated with all the missing keys set as empty strings. All that's missing is for you to fill in the blanks!

Development

If you want to add new functionality for Jitsi Meet and you have texts that need to be translated you must add key and value in main.json file in English for each translatable text. Than you can use the key to get the translated text for the current language.

You can add translatable text in the HTML:

  • via attribute on HTML element - add data-i18n attribute with value the key of the translatable text.
<span data-i18n="dialog.OK">OK</span>

You can also use APP.translation.generateTranslationHTML(key, options) to get this HTML code as Javascript string.

APP.translation.generateTranslationHTML("dialog.OK") // returns <span data-i18n="dialog.OK">OK</span>

The value in the options parameter will be added in data-i18n-options attribute of the element.

Note: If you dynamically add HTML elements don't forget to call APP.translation.translateElement(jquery_selector) to translate the text initially.

APP.translation.translateString("dialog.OK") // returns the value for the key of the current language file. "OK" for example.

For the available values of options parameter for the above methods of translation module see i18next documentation.

Note: It is useful to add attributes in the HTML for persistent HTML elements because when the language is changed the text will be automatically translated.