Skip to content

Commit 8f4011d

Browse files
committed
Implement translations as a minimal service
1 parent 1a70515 commit 8f4011d

File tree

15 files changed

+122
-99
lines changed

15 files changed

+122
-99
lines changed

doc/configuration/Services.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,11 @@ The number of seconds between cleaning attempts of the `domain_events` table.
9393

9494
The number of seconds after an event must be deleted from the `domain_events` table.
9595

96+
## service_translations
97+
98+
Enables translations for system messages.
99+
Support is minimal, you can check `priv/translations/` for translated messages.
100+
96101
## Example configuration
97102

98103
```toml

include/mod_vcard.hrl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
-export_type([vcard_search/0]).
1717

1818
-define(TLFIELD(Type, Label, Var),
19-
#{var => Var, type => Type, label => translate:translate(Lang, Label)}).
19+
#{var => Var, type => Type, label => service_translations:do(Lang, Label)}).
2020

2121
-define(FIELD(Var, Val),
2222
#{var => Var, values => [Val]}).

src/config/mongoose_config_spec.erl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -732,7 +732,8 @@ services() ->
732732

733733
configurable_services() ->
734734
[service_mongoose_system_metrics,
735-
service_domain_db].
735+
service_domain_db,
736+
service_translations].
736737

737738
%% path: (host_config[].)modules
738739
modules() ->

src/ejabberd_app.erl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ do_start() ->
6161
mongoose_config:start(),
6262
mongoose_internal_databases:init(),
6363
mongoose_graphql:init(),
64-
translate:start(),
6564
mongoose_graphql_commands:start(),
6665
mongoose_logs:set_global_loglevel(mongoose_config:get_opt(loglevel)),
6766
mongoose_deprecations:start(),

src/http_upload/mod_http_upload.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ subdomain_pattern(HostType) ->
236236

237237
-spec my_disco_name(ejabberd:lang()) -> binary().
238238
my_disco_name(Lang) ->
239-
translate:translate(Lang, <<"HTTP File Upload">>).
239+
service_translations:do(Lang, <<"HTTP File Upload">>).
240240

241241

242242
-spec compose_iq_reply(IQ :: jlib:iq(),

src/jlib.erl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ stanza_error(Code, Type, Condition) ->
407407
, Lang :: ejabberd:lang()
408408
, Text :: binary()) -> exml:element().
409409
stanza_errort(Code, Type, Condition, Lang, Text) ->
410-
Txt = translate:translate(Lang, Text),
410+
Txt = service_translations:do(Lang, Text),
411411
#xmlel{ name = <<"error">>
412412
, attrs = #{<<"code">> => Code, <<"type">> => Type}
413413
, children = [ #xmlel{ name = Condition
@@ -432,7 +432,7 @@ stream_error(Condition) ->
432432
, Lang :: ejabberd:lang()
433433
, Text :: binary()) -> exml:element().
434434
stream_errort(Condition, Lang, Text) ->
435-
Txt = translate:translate(Lang, Text),
435+
Txt = service_translations:do(Lang, Text),
436436
#xmlel{ name = <<"stream:error">>
437437
, children = [ #xmlel{ name = Condition
438438
, attrs = #{<<"xmlns">> => ?NS_STREAMS} }

src/mod_adhoc.erl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ are_commands_visible(HostType) ->
180180
gen_mod:get_module_opt(HostType, ?MODULE, report_commands_node).
181181

182182
item(LServer, Node, Name, Lang) ->
183-
#{jid => LServer, node => Node, name => translate:translate(Lang, Name)}.
183+
#{jid => LServer, node => Node, name => service_translations:do(Lang, Name)}.
184184

185185
%%-------------------------------------------------------------------------
186186

@@ -211,12 +211,12 @@ disco_sm_identity(Acc, _, _) ->
211211
ping_identity(Lang) ->
212212
#{category => <<"automation">>,
213213
type => <<"command-node">>,
214-
name => translate:translate(Lang, <<"Ping">>)}.
214+
name => service_translations:do(Lang, <<"Ping">>)}.
215215

216216
command_list_identity(Lang) ->
217217
#{category => <<"automation">>,
218218
type => <<"command-list">>,
219-
name => translate:translate(Lang, <<"Commands">>)}.
219+
name => service_translations:do(Lang, <<"Commands">>)}.
220220

221221
%%-------------------------------------------------------------------------
222222

@@ -266,7 +266,7 @@ ping_command(empty,
266266
node = Node,
267267
session_id = SessionID,
268268
status = completed,
269-
notes = [{<<"info">>, translate:translate(Lang, <<"Pong">>)}]});
269+
notes = [{<<"info">>, service_translations:do(Lang, <<"Pong">>)}]});
270270
false ->
271271
{error, mongoose_xmpp_errors:bad_request()}
272272
end,

src/mod_register.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ process_iq_get(_HostType, From, _To, #iq{lang = Lang, sub_el = Child} = IQ, _Sou
302302
_ ->
303303
{false, [], []}
304304
end,
305-
TranslatedMsg = translate:translate(
305+
TranslatedMsg = service_translations:do(
306306
Lang, <<"Choose a username and password to register with this server">>),
307307
IQ#iq{type = result,
308308
sub_el = [#xmlel{name = <<"query">>,

src/muc/mod_muc.erl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -923,7 +923,7 @@ default_host() ->
923923
identity(Lang) ->
924924
#{category => <<"conference">>,
925925
type => <<"text">>,
926-
name => translate:translate(Lang, <<"Chatrooms">>)}.
926+
name => service_translations:do(Lang, <<"Chatrooms">>)}.
927927

928928
features() ->
929929
[?NS_DISCO_INFO, ?NS_DISCO_ITEMS, ?NS_MUC, ?NS_MUC_UNIQUE, ?NS_REGISTER, ?NS_RSM, ?NS_VCARD, ?NS_CONFERENCE].
@@ -1049,15 +1049,15 @@ iq_get_register_info(HostType, MucHost, From, Lang) ->
10491049
{ok, N} ->
10501050
{N, [#xmlel{name = <<"registered">>}]}
10511051
end,
1052-
ClientReqText = translate:translate(
1052+
ClientReqText = service_translations:do(
10531053
Lang, <<"You need a client that supports x:data to register the nickname">>),
10541054
ClientReqEl = #xmlel{name = <<"instructions">>,
10551055
children = [#xmlcdata{content = ClientReqText}]},
1056-
EnterNicknameText = translate:translate(Lang, <<"Enter nickname you want to register">>),
1057-
TitleText = <<(translate:translate(Lang, <<"Nickname Registration at ">>))/binary,
1056+
EnterNicknameText = service_translations:do(Lang, <<"Enter nickname you want to register">>),
1057+
TitleText = <<(service_translations:do(Lang, <<"Nickname Registration at ">>))/binary,
10581058
MucHost/binary>>,
10591059
NickField = #{type => <<"text-single">>,
1060-
label => translate:translate(Lang, <<"Nickname">>),
1060+
label => service_translations:do(Lang, <<"Nickname">>),
10611061
var => <<"nick">>,
10621062
values => [Nick]},
10631063
Registered ++ [ClientReqEl, mongoose_data_forms:form(#{title => TitleText,
@@ -1136,7 +1136,7 @@ iq_get_vcard(Lang) ->
11361136
#xmlel{name = <<"URL">>, children = [#xmlcdata{content = ?MONGOOSE_URI}]},
11371137
#xmlel{name = <<"DESC">>,
11381138
children = [#xmlcdata{content =
1139-
<<(translate:translate(Lang, <<"ejabberd MUC module">>))/binary,
1139+
<<(service_translations:do(Lang, <<"ejabberd MUC module">>))/binary,
11401140
"\nCopyright (c) 2003-2011 ProcessOne">>}]}].
11411141

11421142
-spec broadcast_service_message(muc_host(), binary() | string()) -> ok.

src/muc/mod_muc_log.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
-include("mod_muc_room.hrl").
5555
-include("mongoose_config_spec.hrl").
5656

57-
-define(T(Text), translate:translate(Lang, Text)).
57+
-define(T(Text), service_translations:do(Lang, Text)).
5858
-define(PROCNAME, ejabberd_mod_muc_log).
5959

6060
-record(room, {jid, title, subject, subject_author, config}).

0 commit comments

Comments
 (0)