jeffsi-meet/lang
Jeff Emmett 1c9fed8794 feat(shared-music): add synchronized music playback feature
Add a new shared-music feature that allows users to share YouTube or
direct audio URLs with all participants. Music plays locally on each
device with the host controlling playback (play/pause/seek/volume).

New feature module includes:
- Redux state management (actions, reducer, middleware)
- Conference command sync for real-time playback coordination
- YouTube player (hidden video, audio only) via react-youtube
- HTML5 audio player for direct audio URLs
- Toolbar button with share dialog
- Translation strings for all UI elements

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 18:43:22 +00:00
..
languages.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-af.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-ar.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-be.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-bg.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-ca.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-cs.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-da.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-de.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-dsb.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-el.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-eo.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-es-US.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-es.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-et.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-eu.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-fa.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-fi.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-fr-CA.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-fr.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-gl.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-he.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-hi.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-hr.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-hsb.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-hu.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-hy.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-id.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-is.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-it.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-ja.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-kab.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-ko.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-lt.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-lv.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-ml.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-mn.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-mr.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-nb.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-nl.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-no.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-oc.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-pl.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-pt-BR.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-pt.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-ro.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-ru.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-sc.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-sk.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-sl.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-sq.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-sr.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-sv.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-te.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-tr.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-uk.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-vi.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-zh-CN.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main-zh-TW.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
main.json feat(shared-music): add synchronized music playback feature 2026-01-28 18:43:22 +00:00
readme.md Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
translation-languages.json Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01:00
update-translation.js Initial commit: Jeffsi Meet - forked from Jitsi Meet 2026-01-08 19:27:14 +01: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.