The Conversejs interface is not displayed in languages other than English.
Does not work:
mod_conversejs:
bosh_service_url: https://example.com:5000/bosh
conversejs_css: "converse.min.css"
conversejs_options:
assets_path: '/conversejs'
i18n: 'de'
theme: 'dracula'
authentication: 'login'
auto_away: 300
auto_reconnect: true
message_archiving: 'always'
view_mode: 'fullscreen'
show_background: true
conversejs_plugins: ["libsignal-protocol.min.js"]
conversejs_resources: "/etc/ejabberd/conversejs-12.0.0/package/dist"
conversejs_script: "converse.min.js"
Does not work:
mod_conversejs:
bosh_service_url: https://example.com:5000/bosh
conversejs_options:
i18n: 'de'
theme: 'dracula'
authentication: 'login'
auto_away: 300
auto_reconnect: true
message_archiving: 'always'
view_mode: 'fullscreen'
show_background: true
conversejs_plugins: ["libsignal"]
Top-Level Options - language: de
Debian13 ejabberd 25.10
mod_conversejs correctly sends the i18n option to Converse, and serves the language files correctly. If you try:
- Converse 11.0.1: the feature works correctly
- Converse 12.0.0: fails, as you explained
- Converse from git: the feature works correctly.
The problem is in Converse 12.0.0, and was solved here: https://github.com/conversejs/converse.js/commit/96bb51e8fa6145af628c026e7cfdb05ea9039f55
You have two solutions:
- Use Converse 11.0.1
- Download and compile Converse from git, which is already fixed.
Please try and confirm that avoiding Converse 12.0.0 solves the issue for you too.
I would like to use release 12 with all subsequent additions. How can I create a release myself? Please explain.
I also checked conversejs versions 11.0.1, 11.0.0, 10.1.8. Only the English interface is displayed everywhere. The interface is not available in other languages.
The feature works correctly when using Converse 11.0.1. Here I provide a 100% reproducible guide. If you repeat those same steps, you will see that it works. Then you can investigate what you have different in your real server, to determine why it doesn't work for you:
- In a text console, start ejabberd 25.10 in a container using Podman:
podman run --name eja -it --rm -p 5443:5443 ghcr.io/processone/ejabberd:25.10 foreground
- In another console, run those instructions to download Converse 11.0.1, uncompress, configure ejabberd to use it:
podman exec -it eja wget https://github.com/conversejs/converse.js/releases/download/v11.0.1/converse.js-11.0.1.tgz
podman exec -it eja tar -xzf converse.js-11.0.1.tgz
podman exec -it eja sed -i 's|request_handlers:|request_handlers:\n /conversejs: mod_conversejs|' conf/ejabberd.yml
podman exec -it eja sed -i 's|modules:|modules:\n mod_conversejs:\n conversejs_resources: /opt/ejabberd/package/dist\n conversejs_options:\n i18n: "pt"|' conf/ejabberd.yml
podman exec -it eja sed -i 's|tls: true|tls: false|' conf/ejabberd.yml
podman exec -it eja ejabberdctl reload_config
With those changes, the configuration file includes the lines:
listen:
-
port: PORT_HTTP_TLS
ip: "::"
module: ejabberd_http
tls: false
request_handlers:
/conversejs: mod_conversejs
/admin: ejabberd_web_admin
/api: mod_http_api
/bosh: mod_bosh
/captcha: ejabberd_captcha
/upload: mod_http_upload
/ws: ejabberd_http_ws
...
modules:
mod_conversejs:
conversejs_resources: /opt/ejabberd/package/dist
conversejs_options:
i18n: "pt"
...
- Now open the URL http://localhost:5443/conversejs/ in Firefox, Chrome, Brave, Opera.... In all cases the formulary fields are in Portuguese:
11.0.1 is working. Thank you. Found an error: assets_path: '/conversejs' - It was. It's not right. assets_path: '/conversejs/' - became. Right.
I would like to use release 12 with all subsequent additions. How can I create a release myself? Please explain.
How can I create a release myself?
Steps 1, 2, 3 from https://conversejs.org/docs/html/quickstart.html#c-build-from-source
I created a new release according to the instructions, but the problem with the English interface remained.
http://localhost:8080/dev.html it works correctly and displays the interface in the i18n language specified in its code.
Which files and folders should be transferred to the ejabberd server later? I moved the folders - 3rdparty, dist, docs, src and files - CHANGES.md , COPYRIGHT, LICENSE, package.json, README.md
The problems related to ejabberd are addressed. The remaining doubts and problems are not related to ejabberd, so I'll close this issue.