(participant) -> participant;
(visitor) -> visitor
end, L)
- end.
+ end;
+mod_opt_type({default_room_options, lang}) ->
+ fun iolist_to_binary/1.
mod_options(Host) ->
[{access, all},
{allow_visitor_status,true},
{anonymous,true},
{captcha_protected,false},
+ {lang, ?MYLANG},
{logging,false},
{members_by_default,true},
{members_only,false},
translate:translate(Lang, <<"Configuration of room ~s">>),
[jid:encode(StateData#state.jid)]),
Fs = [{roomname, Config#config.title},
- {roomdesc, Config#config.description}] ++
+ {roomdesc, Config#config.description},
+ {lang, Config#config.lang}] ++
case acl:match_rule(StateData#state.server_host, AccessPersistent, From) of
allow -> [{persistentroom, Config#config.persistent}];
deny -> []
({maxusers, V}, C) -> C#config{max_users = V};
({enablelogging, V}, C) -> C#config{logging = V};
({pubsub, V}, C) -> C#config{pubsub = V};
+ ({lang, L}, C) -> C#config{lang = L};
({captcha_whitelist, Js}, C) ->
LJIDs = [jid:tolower(J) || J <- Js],
C#config{captcha_whitelist = ?SETS:from_list(LJIDs)};
allow_subscription ->
StateData#state{config =
(StateData#state.config)#config{allow_subscription = Val}};
+ lang ->
+ StateData#state{config =
+ (StateData#state.config)#config{lang = Val}};
subscribers ->
{Subscribers, Nicks} =
lists:foldl(
?MAKE_CONFIG_OPT(#config.vcard),
?MAKE_CONFIG_OPT(#config.vcard_xupdate),
?MAKE_CONFIG_OPT(#config.pubsub),
+ ?MAKE_CONFIG_OPT(#config.lang),
{captcha_whitelist,
(?SETS):to_list((StateData#state.config)#config.captcha_whitelist)},
{affiliations,
iq_disco_info_extras(Lang, StateData) ->
Fs1 = [{description, (StateData#state.config)#config.description},
{occupants, ?DICT:size(StateData#state.nicks)},
- {contactjid, get_owners(StateData)}],
+ {contactjid, get_owners(StateData)},
+ {lang, (StateData#state.config)#config.lang}],
Fs2 = case (StateData#state.config)#config.pubsub of
Node when is_binary(Node), Node /= <<"">> ->
[{pubsub, Node}|Fs1];