Compare commits

..

715 Commits

Author SHA1 Message Date
Christophe Romain 405a0a21c1 Merge pull request #1249 from weiss:push-requirements 2016-09-13 14:31:39 +02:00
Christophe Romain c39501a48d Merge branch 'push-requirements' of https://github.com/weiss/ejabberd into weiss-push-requirements 2016-09-13 14:29:14 +02:00
Christophe Romain c3543e002d Allow to create room with custom config 2016-09-13 11:52:59 +02:00
Paweł Chmielowski 2f596b0e10 Expand parsing of json input to be able to handle update_roster command 2016-09-13 11:27:59 +02:00
Paweł Chmielowski 054382f074 Add X-Admin and basic auth header to CORS allowed headers in http_api 2016-09-12 15:40:38 +02:00
Paweł Chmielowski 96d05dad8f Properly process OPTIONS header in http_api for all paths 2016-09-12 15:40:38 +02:00
Evgeniy Khramtsov 1aca541639 Fix nick-to-jid mapping for MUC subscribers 2016-09-12 14:41:33 +03:00
Badlop d0761039ff Support multiple room invitations (#1285) 2016-09-09 12:18:27 +02:00
Evgeniy Khramtsov fe1bf27ef3 Fix subscribed rooms list retreivement 2016-09-09 13:04:47 +03:00
Holger Weiss d222fed228 XEP-0198: Cancel timer when waiting for resumption
If an ACK timer is active while going into the 'wait_for_resume' state,
cancel that timer.
2016-09-09 00:21:36 +02:00
Holger Weiss 8fd888eb2b Revert "Don't log an [error] message if Elixir is missing"
This reverts commit 41386d718d.  The issue
was fixed with commit 4bd45bada7.
2016-09-08 18:11:54 +02:00
Holger Weiss 41386d718d Don't log an [error] message if Elixir is missing
The Elixir support is still optional.

Closes #1250.
2016-09-08 17:59:40 +02:00
Christophe Romain 26a040e2d5 Fix typo on previous commit (#1284) 2016-09-08 16:32:16 +02:00
Paweł Chmielowski 4bd45bada7 Start elixir config code only if elixir was enabled in configure script 2016-09-08 16:29:45 +02:00
Christophe Romain ad39da0b0a Full jid entity subscriptions should include bare jid records (#1284) 2016-09-08 16:27:16 +02:00
Evgeniy Khramtsov 36ab9cc2ea Fix message routing from subscribers 2016-09-08 16:39:34 +03:00
Paweł Chmielowski 6c943aa293 Merge pull request #1287 from weiss/ack-timeout
New stream management option: ack_timeout
2016-09-08 12:45:16 +02:00
gabrielgatu 803270fc6b Support for Elixir configuration file #1208
Contribution for Google Summer of code 2016 by Gabriel Gatu
2016-09-08 11:37:14 +02:00
Mickael Remond e6f7233351 Support for publishing to hex.pm with latest Elixir mix 2016-09-08 10:52:43 +02:00
Mickael Remond 58a72bd395 Fix compilation with Elixir 1.3 / R19 2016-09-08 10:29:44 +02:00
Paweł Chmielowski d2621130a3 Typo 2016-09-08 10:27:14 +02:00
Paweł Chmielowski a8368278ec Properly normalize resource_regexp acl rule
This fixes issue #1288.
2016-09-08 08:45:10 +02:00
Holger Weiss 621f0e2b7c New stream management option: ack_timeout
Close the connection if a stream management client fails to respond to
an acknowledgement request within 60 seconds.  This number of seconds
can be changed with the new "ack_timeout" option, and the mechanism can
be disabled by specifying 'infinity'.

As a side effect of this change, a new acknowledgement is no longer
requested before the response to the previous request is received.
2016-09-07 23:16:54 +02:00
Christophe Romain 7a538bb88b Enforce pathtype use with config path (#1264) 2016-09-07 17:38:35 +02:00
Christophe Romain af0a493c66 Merge pull request #1253 from Amuhar/xep0356 2016-09-07 14:34:31 +02:00
Evgeniy Khramtsov f304149615 Create room on configuration request as per XEP-0045, 10.1.3 2016-09-07 11:15:19 +03:00
Evgeniy Khramtsov 3803a8de3c Link MUC subscription to bare JID 2016-09-07 10:33:37 +03:00
Holger Weiss 1edca899ff Add SQL support for microblogging node plugin 2016-09-07 07:15:12 +02:00
Evgeniy Khramtsov c6afb9731b Handle <subscriptions/> request to list MUC subscribers 2016-09-06 19:06:02 +03:00
Evgeniy Khramtsov 5ec2874a96 Do not update muc_online_users table on MUC/Sub operations 2016-09-06 18:17:30 +03:00
Evgeniy Khramtsov 417284a921 Add get_subscribers command to list MUC subscribers 2016-09-06 17:55:18 +03:00
Holger Weiss af2999a783 node_mb: Call node_pep instead of node_hometree 2016-09-06 00:30:46 +02:00
Holger Weiss 48ce34987d node_mb: Fix configuration documentation
A node plugin used in a 'pep_mapping' must explicitly be added to the
list of 'plugins'.
2016-09-06 00:08:43 +02:00
Holger Weiss e29f47893f mod_pubsub: Remove outdated comment 2016-09-06 00:05:54 +02:00
Paweł Chmielowski c770a54aac Clean ejabberd_commands before tests 2016-09-05 17:18:27 +02:00
Paweł Chmielowski 96a748d34f ejabberd_oauth requiere working cache_tab, initialize it before tests 2016-09-05 16:42:05 +02:00
Holger Weiss 31592fe51f Merge remote-tracking branch 'processone/pr/1262'
* processone/pr/1262:
  Fixed typo in  Stream Management option name
2016-08-22 22:35:17 +02:00
Igor Manturov Jr f1afea223b Fixed typo in Stream Management option name 2016-08-23 02:21:09 +06:00
Holger Weiss 1bfa1c613b Merge remote-tracking branch 'processone/pr/1261'
* processone/pr/1261:
  Fixed #1260 Stream Management feature for the websocket connections
2016-08-22 21:22:08 +02:00
Igor Manturov Jr d5659735b3 Fixed #1260 Stream Management feature for the websocket connections 2016-08-23 00:59:39 +06:00
Holger Weiss 23d9fb0592 mod_muc_admin: Accept 'allow_subscription' option
Allow for setting the new 'allow_subscription' option using the
'change_room_option' command.
2016-08-22 01:17:32 +02:00
badlop 8dd2044a27 Merge pull request #1254 from lemenkov/remove_p1_xmlrpc
Remove no longer necessary p1_xmlrpc
2016-08-19 11:53:20 +02:00
Peter Lemenkov e13edff6ae Remove no longer necessary p1_xmlrpc
Ths module was superceded by fast_xml in commit
processone/ejabberd@dfc29ea03c. So let's remove it entirely to
avoid any confusion.

Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
2016-08-17 18:32:09 +03:00
Badlop 8af85d913f Erlang R17 has a Time limit in erlang:send_after (#1246) 2016-08-16 18:32:06 +02:00
Holger Weiss 20a510d877 mod_mam: Add 'store_mam_message' hook
The new 'store_mam_message' hook is invoked whenever a MAM message is
stored.
2016-08-15 23:28:36 +02:00
Holger Weiss 8821cf8b27 mod_offline: Add 'store_offline_message' hook
The new 'store_offline_message' hook is invoked whenever an offline
message is stored.
2016-08-15 22:30:08 +02:00
Holger Weiss 4d19fb518f ejabberd_c2s: Add XEP-0198 resumption hooks
The new 'c2s_session_pending' and 'c2s_session_resumed' hooks are
invoked when a stream management session is pending and resumed,
respectively.
2016-08-15 21:49:58 +02:00
Holger Weiss e7217e6320 Add functions to get/set some c2s state elements 2016-08-15 20:24:43 +02:00
Badlop 5b4f347da8 Support sql backend in mod_shared_roster commands (#1244) 2016-08-15 15:53:35 +02:00
Evgeny Khramtsov 38666cfd58 Merge pull request #1245 from hamano/clean_redis_table
fix clean redis table
2016-08-15 15:12:20 +04:00
HAMANO Tsukasa 877d0752e2 fix clean redis table 2016-08-15 17:51:06 +09:00
Badlop 0ab08f4eeb Don't delete ejabberd_commands table, it's problematic in cluster (#1210) 2016-08-14 20:35:25 +02:00
Holger Weiss 4ee8af633b Store announcements for offline users
Add a <store/> hint to announcements (unless they are explicitly sent to
online users).  Without that hint, announcements weren't delivered to
offline users, since they are sent as messages of type "headline".
2016-08-13 00:07:27 +02:00
Holger Weiss bf9d6b5534 Honor <store/> hint for any non-"error" message
XEP-0334 says: "A message containing the <store/> hint that is not of
type 'error' SHOULD be stored by the entity."
2016-08-12 21:13:10 +02:00
Holger Weiss 28dde294e5 mod_mam: Don't store messages of type "headline"
XEP-0313 says: "a server SHOULD include in a user archive all of the
messages a user sends or receives of type 'normal' or 'chat' that
contain a <body> element."
2016-08-12 20:38:17 +02:00
Evgeniy Khramtsov ffba664f2c Add a requirement for full JID in subscribe_room command 2016-08-11 17:13:20 +03:00
Paweł Chmielowski 50596dc4d3 Provide proper args_desc in oauth_issue_token command 2016-08-10 11:26:04 +02:00
Paweł Chmielowski e63fe5c216 Fix result type of subscribe_room command 2016-08-10 11:22:19 +02:00
Evgeniy Khramtsov 1fc58ace2f Add commands for MUC subscriptions management 2016-08-09 13:36:43 +03:00
Mickael Remond c4b14d045a Update to released version 2016-08-07 18:31:55 +02:00
Mickael Remond 9c6ee60f1a Update moka dependency 2016-08-07 18:28:14 +02:00
Mickael Remond efc744092b We do not force yet access rules check on register command 2016-08-07 18:27:16 +02:00
Mickael Remond a0c8012c66 Do not force command line to pass a credentials 2016-08-07 18:24:08 +02:00
Holger Weiss b62aa3d2dc mod_client_state: Let other modules filter stanzas
Don't stop execution of the 'csi_filter_stanza' hook if mod_client_state
won't queue the stanza.
2016-08-06 13:36:27 +02:00
Holger Weiss 91e26fbf7a Add user's JID to CSI hook arguments
Add the JID of the CSI user to the arguments of the 'csi_filter_stanza'
and 'csi_flush_queue' hooks.
2016-08-05 23:47:18 +02:00
Holger Weiss c2ef55a075 Cosmetic change: Set CSI state 'active' on resume
The CSI state is always set to 'active' when a stream management session
is resumed; so there's no need to apply the CSI state of the old c2s
process, first.
2016-08-05 20:09:52 +02:00
Paweł Chmielowski d969e917c6 Use newer samerlib/moka 2016-08-05 13:03:22 +02:00
Holger Weiss 9a5f0751be mod_mam: Simplify "assume_mam_usage" option
The "assume_mam_usage" option now takes a boolean value.  Setting it to
"true" has the same effect as "if_enabled" had before.  The "on_request"
behavior is no longer offered, as it made the option (and its
documentation) overly complex.
2016-08-05 01:57:01 +02:00
Christophe Romain 72b0fb49e8 Fix type convertion bug injected by 4ccc40b (#1229) 2016-08-04 09:49:23 +02:00
Alexey Shchepin 111aa83f5e Add tokens cache to ejabberd_oauth 2016-08-04 01:59:28 +03:00
Holger Weiss 78fa9e08a5 XEP-0198: Handle timeouts during stream resumption
If session resumption failed because requesting the #state from the old
c2s process took too long, the new c2s process will usually receive the
response.  Let the new process handle that case gracefully.
2016-08-03 02:28:46 +02:00
Holger Weiss 3c1e4f0dfd XEP-0198: Increase timeout for stream resumption
During stream resumption, the #state is transferred from the old c2s
process to the new one.  This is usually very fast, but under certain
conditions, it can take longer than five seconds.
2016-08-03 02:15:15 +02:00
Alexey Shchepin 4add262090 Add OAUTH SQL backend 2016-08-01 16:55:43 +03:00
Mickael Remond 76eba3647a Implement gen_mod callback in ModPresenceDemo module 2016-08-01 15:46:14 +02:00
Mickaël Rémond 2ef58a33a9 Merge pull request #1223 from processone/expand_api
More API fixes and improvements
2016-08-01 15:36:47 +02:00
Mickael Remond d02d7b2b6a Remove compile warning 2016-08-01 15:35:54 +02:00
Mickael Remond 90ea3ca361 Improve error message when try to call api on api root 2016-08-01 15:29:47 +02:00
Christophe Romain bf45c9eeee Switch mix worker to transient 2016-08-01 14:09:16 +02:00
Christophe Romain a9c6748ec7 Add missing comas in sql statement (#1219) 2016-08-01 10:55:02 +02:00
Mickael Remond 4982639d05 Fix error return expectation in command test 2016-08-01 09:28:54 +02:00
Mickael Remond c5c394e929 Fix HTTP process return formatting 2016-08-01 08:58:49 +02:00
Mickael Remond 6ea7153e31 Improve error handling 2016-07-31 22:48:24 +02:00
Mickael Remond 2a49f8cae7 Change name of result key for offline count to value
This is more user friendly and should be more consistent with other commands.
2016-07-30 20:12:04 +02:00
Mickael Remond 674a8039ef Add support for sending back missing scope error to API ReST command calls 2016-07-30 18:51:54 +02:00
Mickael Remond 4bf8ce7681 Make s2s stats commands more robust 2016-07-30 18:50:58 +02:00
Mickael Remond 19ad6e6145 Ensure ejabberdctl status result is in valid shell supported range 2016-07-30 13:18:39 +02:00
Mickael Remond 39640b67c7 Add support for rich error reporting for API 2016-07-30 13:08:30 +02:00
Mickael Remond fb2603d3cd Return 409 conflict error code on register if user already exists 2016-07-30 11:50:04 +02:00
Mickaël Rémond 4a49dfecf3 Merge pull request #1221 from processone/expand_api
Do not crash on check when we do not have JID
2016-07-30 10:55:39 +02:00
Mickael Remond 42e6f72ee9 Do not crash on check when we do not have JID 2016-07-29 20:38:05 +02:00
Christophe Romain 3c58a93eb8 Merge pull request #1178 from candrews/patch-1
Harden the systemd unit
2016-07-29 11:33:32 +02:00
Christophe Romain a080322055 Switch workers from temporary to transient 2016-07-29 11:18:42 +02:00
Paweł Chmielowski fd365b2893 Display data that is send to websocket connection in debug log level
This should help with detecting problems like in #1097
2016-07-28 16:20:28 +02:00
Christophe Romain fad088a3c4 Merge pull request #1193 from gabrielgatu/support-elixir-module-installer
Fix issue #625: Writing Elixir modules
2016-07-28 16:06:12 +02:00
gabrielgatu 91865c66c0 Start elixir application after ejabberd_app:start_apps() 2016-07-28 15:57:35 +02:00
Mickaël Rémond 7a74a4836a Merge pull request #1211 from processone/expand_api
There is still work to do, be we reached a stable state and can merge up to this point.
2016-07-28 14:57:48 +02:00
Holger Weiss 72445bb374 mod_http_upload_quota: Apply cosmetic changes
Use "fun f/1" syntax in place of "fun(X) -> f(X) end".
2016-07-27 00:28:47 +02:00
Evgeniy Khramtsov 984c4cf6bd Add 'allow_subscription' MUC configuration option 2016-07-26 14:37:28 +03:00
Mickael Remond 2a8005e47f Add ability to run test with Elixir mix 2016-07-26 12:17:37 +02:00
Mickael Remond 7781f39b74 Clarify command module API 2016-07-26 12:15:03 +02:00
Mickael Remond e5fd1ee4f6 Avoid starting several time the owner process 2016-07-26 12:12:48 +02:00
Mickael Remond 9ff7257287 Make jlib ETS table more resilient 2016-07-26 11:58:14 +02:00
Mickael Remond 12f74b4aa7 Fix list appending bug 2016-07-26 11:57:38 +02:00
Mickael Remond fede85c9bd Remove unused import 2016-07-26 11:53:34 +02:00
Alexey Shchepin 839490b0d9 Add DB backend support for ejabberd_oauth 2016-07-25 20:08:30 +03:00
Mickael Remond dbc0498279 Fix tests, command need to be properly added to list of exposed commands 2016-07-25 18:28:40 +02:00
Mickael Remond c183092aa4 Simplify code for command policy group expansion 2016-07-25 18:28:05 +02:00
Badlop 5d4f8bcf0d Export acl:parse_ip_netmask/1 for mod_rest (ejabberd-contrib#175) 2016-07-25 16:57:05 +02:00
Mickael Remond d7ad99f147 Initial attempt on access on commands
May change and will require more work / test / refactor
2016-07-25 11:43:49 +02:00
Holger Weiss 4b0d71d402 Don't return error for blocked MUC PMs
If a message stanza is blocked as per XEP-0016 or XEP-0191 and the
stanza is marked as a private MUC message, don't return an error.  This
makes sure users won't be kicked from MUC rooms when blocking other
participants.
2016-07-24 20:55:11 +02:00
Mickael Remond b4a430541d Return more user friendly, human readable error description 2016-07-24 14:10:12 +02:00
Mickael Remond bfa61eaa46 Make default OAuth token TTL values more user friendly 2016-07-23 18:57:57 +02:00
Mickael Remond 68555ff466 Add support for checking access rules conformance for commands 2016-07-23 18:21:45 +02:00
Mickael Remond caf2c20210 Error when not authorized should be 403 2016-07-23 18:21:45 +02:00
Mickael Remond 1485b56211 Move any access rules check to ACL module 2016-07-23 18:21:45 +02:00
Mickael Remond 2c70c572c8 Clean-up of error codes and format json structure 2016-07-23 18:21:45 +02:00
Holger Weiss d4d1941133 XEP-0198: Log debug message when dropping stanza
Log a debug message when an unacknowledged message is neither resent nor
bounced because it's archived.
2016-07-23 01:23:24 +02:00
Holger Weiss 814b80c644 Preserve PID for offline sessions
Don't set the PID to 'undefined' when a session goes offline, as this
looses the information which node created the session table entry.

Fixes #1196.
2016-07-23 01:08:05 +02:00
Pablo Polvorin 4332dddbc4 Support oauth password grant type
As in https://tools.ietf.org/html/rfc6749#section-4.3
2016-07-22 19:17:12 -03:00
Pablo Polvorin 57aeef74d5 stringprep might already be started
Depending on the way the test us ran
(full test suite or the elixir quicktest one)
the stringprep might already be loaded.
2016-07-22 19:15:56 -03:00
Pablo Polvorin 12b58b9870 Fix elixir test case: stringprep was required 2016-07-22 16:25:54 -03:00
Pablo Polvorin caf7b54305 oauth: single jid field instead of username/password fields 2016-07-22 15:37:48 -03:00
Badlop c5d9d35e7b Convert password provided by web form to UTF8 before passing it (#375) 2016-07-22 16:52:13 +02:00
Jerome Sautret ffbe97d988 Quote postgresql database name (#1136) 2016-07-22 16:33:40 +02:00
Paweł Chmielowski bdfef09c0f Fix handling of complex values as arguments in http_api 2016-07-22 15:26:27 +02:00
Evgeny Khramtsov dd38bef8b1 Merge pull request #1201 from xmppjingle/master
External Component Connection Hooks
2016-07-22 00:35:43 +04:00
xmppjingle 6983dfa21f External Component Hook
Changed Hook Trigger Event and included a Reason upon
component_disconnected/2 Hook
2016-07-21 14:03:01 -03:00
Pablo Polvorin cbfab687e8 Oauth callback must pass expires_in as ttl instead of epoch 2016-07-20 14:47:11 -03:00
Paweł Chmielowski c2753cd51c Use different version of elixir depending on erlang version 2016-07-20 10:12:00 +02:00
Paweł Chmielowski 5458d8bfcb Add else branch to if_version_{above,below} 2016-07-20 10:11:34 +02:00
Paweł Chmielowski 7748dd4e5d Make processing of if_* clauses in rebar.config recursive 2016-07-20 10:11:08 +02:00
Pablo Polvorin 0c0c6465ba Fix test for changes in oauth expiry 2016-07-19 20:36:02 -03:00
Pablo Polvorin b5a90be3cb Merge branch 'master' of github.com:processone/ejabberd 2016-07-19 20:19:17 -03:00
Pablo Polvorin 1d317e8068 Let user choose the desired oauth token TTL 2016-07-19 20:18:07 -03:00
Holger Weiss 8f8c499cfa mod_mam: Fix handling of result set page limit
Restore function clause for handling a client-specified result set page
limit that doesn't exceed mod_mam's upper threshold.
2016-07-19 21:23:30 +02:00
Holger Weiss 9fcb81dea9 mod_mam: Always limit result set page size
Limit the number of messages returned for a given MAM request even if
the client didn't specify an RSM set (not just if the client specified
an RSM set without a limit).

This is still not done for MAM v0.2 requests though, as that version of
the XEP doesn't require clients to support RSM.
2016-07-19 21:08:13 +02:00
Mickael Remond 490a758050 Upgrade Elixir version to 1.2 in rebar config
This matches the version used in mix.exs
2016-07-19 13:05:01 +02:00
Mickael Remond f79ac6874e Lock relx version as newer version does not compile fine 2016-07-19 12:35:45 +02:00
Paweł Chmielowski 655cbf6055 Make access rules in ejabberd_web_admin configurable 2016-07-19 11:27:45 +02:00
Pablo Polvorin 483ef09263 Fix command argument formatting 2016-07-19 00:51:04 -03:00
Pablo Polvorin 33e0283f0d Add 'ejabberd:user' and 'ejabberd:admin' oauth scopes
'ejabberd:user' includes all commands defined with policy "user".
'ejabberd:admin' includes commands defined with policy "admin".
2016-07-19 00:24:06 -03:00
Pablo Polvorin 673a654c47 Fix ce0d1704c6
Original request was to allow ejabberd sysadmin to generate
tokens for specific users.  JIDs must not be passed as argument
when requesting the tokens.
2016-07-18 20:25:23 -03:00
xmppjingle 48c88b61b6 Merge remote-tracking branch 'processone/master' 2016-07-18 17:55:31 -03:00
xmppjingle fca2f24231 External Component Connection Hooks 2016-07-18 17:55:10 -03:00
Holger Weiss 8bc3dc9c49 jlib: Don't try to keep just one <delay/> tag
It seems unclear whether XEP-0203 really mandates that stanzas may not
have multiple <delay/> tags.  Editing/removing existing tags doesn't
seem worth the effort, especially as we'd have to take more care which
tag to keep if the stanza already has more than one.
2016-07-18 22:31:08 +02:00
Holger Weiss 749033598d Omit [info] message with number of queued stanzas
Just log a debug message if a stream management session times out and
some stanzas weren't acknowledged.
2016-07-10 22:21:57 +02:00
Evgeniy Khramtsov f6e960d326 Fix compilation error 2016-07-10 08:45:24 +03:00
Evgeniy Khramtsov 786bd4f26c Use hooks instead of direct calls to mod_mam 2016-07-09 12:43:01 +03:00
Holger Weiss 5f48d2641b mod_http_upload_quota: Depend on mod_http_upload
mod_http_upload_quota uses mod_http_upload's "docroot" option, so the
mod_http_upload configuration must be parsed, first.  Fixes #1025.
2016-07-08 20:47:02 +02:00
Mickael Remond 1a62d4e04b Update stringprep and iconv 2016-07-08 18:28:51 +02:00
Christophe Romain 6b38d19085 Do send last items only for subscription on current plugin type 2016-07-08 15:18:39 +02:00
Evgeniy Khramtsov 661b041302 Rename MUC/Sub's namespace 2016-07-08 15:07:26 +03:00
Evgeniy Khramtsov 368b202144 Handle MUC/Sub subscriptions list request 2016-07-08 15:07:10 +03:00
Evgeniy Khramtsov caaf02eaa0 Advertise MUC/Sub support in MUC service disco#info 2016-07-08 15:06:08 +03:00
Evgeniy Khramtsov 32de9a56a5 Experimental MUC/Sub support 2016-07-08 15:05:50 +03:00
Mickael Remond febbc2bb5a Update dependencies 2016-07-08 11:40:28 +02:00
Evgeniy Khramtsov 71f27ee7d4 Get rid of warnings 2016-07-07 12:17:38 +03:00
Evgeniy Khramtsov c718cbbd9f Warn on cyclic modules dependencies 2016-07-07 11:34:17 +03:00
Badlop 12c0d888b1 Revert "Recover fix of 907e239 lost in 9deb294 (thanks to Alexey Shchepin)" (#1183)
This reverts commit 53f3a45803.
2016-07-06 17:54:37 +02:00
Evgeniy Khramtsov 4220a2b98c Make modules loading in a dependent order (#1191) 2016-07-06 14:58:48 +03:00
Christophe Romain de9f80f2ce Add missing '/' for jid matching from commit e300f80 2016-07-06 10:06:17 +02:00
Alexey Shchepin be3a4acb55 Fix missed escaping in node_flat_sql.erl 2016-07-05 17:45:37 +03:00
Christophe Romain 3820aaa421 Quote reserver 'type' keyword for pgsql to fix e300f80 2016-07-05 16:16:40 +02:00
Christophe Romain e300f8095d Fix use of like parameter in sql pubsub's requests 2016-07-05 15:43:59 +02:00
gabrielgatu b31c0d9e2e Support elixir module installer 2016-07-05 12:36:49 +02:00
Holger Weiss 8e04a7ef4d mod_configure: Fix editing of access rules 2016-07-03 22:58:54 +02:00
Paweł Chmielowski 16b1d8541a Grab new p1_utils that has fix for R19 2016-07-01 21:41:12 +02:00
Paweł Chmielowski 0737958b45 Fix compilation issues on R19 2016-07-01 21:20:10 +02:00
Mickael Remond 024124decb Fix dependencies when using Elixir Mix 2016-06-30 11:35:42 +02:00
Mickael Remond 88ac1dc56b Update dependencies 2016-06-30 11:33:38 +02:00
Holger Weiss 8be1d49961 mod_mam_mnesia: Force garbage collection
The VM fails to collect the garbage generated during MAM lookups
automatically, so mod_mam_mnesia's memory usage easily goes up to
several gigabytes if we don't force garbage collection.
2016-06-29 22:32:59 +02:00
Holger Weiss 10d4c16a97 mod_client_state: Throttle PEP stanzas by default 2016-06-29 22:22:49 +02:00
Pablo Polvorin ce0d1704c6 Allow generation of oauth tokens from command line
Oauth tokens can be generated for commands (scopes) having admin|user|open
policy. Restricted commands are not available as those are only usable
from ejabberdctl command line.

Four new commands are available:

$ejabberdctl oauth_issue_token "stats;get_roster"
    Generates a token authorized to call both stats and get_roster
    commands.  Note scopes must be separated by semicolon.

$ejabberdctl oauth_list_tokens
    List tokens generated from the command line, with their scope
    and expirity time.

$ejabberdctl oauth_list_scopes
    List scopes available

$ejabberdctl oauth_revoke_token "Lbs7qdJfdKXOWzVrArgyckY055tE1xnt"
    Revokes the given token
2016-06-29 00:22:28 -03:00
Craig Andrews 2e28d06744 Harden the systemd unit
Restrict capabilities, have a private tmp directory, private /dev, and don't accessing file system locations that really shouldn't be accessed.
2016-06-28 17:02:41 -04:00
Paweł Chmielowski 3446aba753 Include correct version in stream:stream when reporting errors
This fixes issue #1174
2016-06-27 16:40:57 +02:00
Paweł Chmielowski 75366ca2fd Inline muc access rules 2016-06-24 15:12:58 +02:00
Paweł Chmielowski f56cff925c acl: ACLName rule should match if any part of ACLName matches 2016-06-24 15:09:51 +02:00
Christophe Romain 94461948db Update dependencies for 16.06x 2016-06-24 11:12:18 +02:00
Christophe Romain 0b438d09d1 Fix typo from d8bb5d9c 2016-06-23 17:31:32 +02:00
Christophe Romain 06bf8cb032 Prepare hex.pm release 2016-06-23 15:23:28 +02:00
Holger Weiss 1794dd19d0 mod_pubsub: Fix matching of set_node/1 result
nodetree_tree_sql:set_node/1 returns {result, NodeIdx} on success, not
{ok, NodeIdx}.  Thanks to Christophe Romain for spotting this.
2016-06-23 14:23:24 +02:00
Paweł Chmielowski 1b5c50a384 When convertion of xmlrpc argument to type fails, report it as error 2016-06-23 10:41:16 +02:00
Jerome Sautret a9b456ccb3 xref was broken when Elixir wasn't enabled 2016-06-23 10:23:02 +02:00
Paweł Chmielowski 2ebdd8915e Compile gen_mod early to help with undefined behaviour warnings 2016-06-23 10:22:01 +02:00
Evgeny Khramtsov e54400a8e4 Merge pull request #1165 from weiss/default-blocking-list
mod_blocking_sql: Handle default list corner case
2016-06-23 10:44:47 +04:00
Holger Weiss 065f5272e6 mod_blocking_sql: Handle default list corner case
Handle the situation where a list of the name "Blocked contacts" was
created by an XEP-0016 client, but no default list exists.
2016-06-22 22:36:27 +02:00
Paweł Chmielowski 751be3cca6 Add some tests for {shaper,access}_rules_validator 2016-06-22 16:52:45 +02:00
Christophe Romain cd0244eb71 Merge pull request #1120 from anagromataf/feature/archive-id-in-message-carbons
Send unique stanza id and archived tag also in the message carbons
2016-06-22 15:47:27 +02:00
Christophe Romain f029488260 Restore get_items conditions when not using RSM (#1147) 2016-06-22 13:12:40 +02:00
Badlop eeeb190680 Set HTTP/1.0 so github accepts the request (#1157) 2016-06-22 12:43:24 +02:00
Christophe Romain 95ff94b054 Fix PubSub RSM on get_items (#1147) 2016-06-22 12:25:41 +02:00
Christophe Romain 7744339347 Update supported xep version 2016-06-22 11:24:01 +02:00
Christophe Romain 2efa8677c9 Fix pgsql compatibility on delete_old_messages (#1137) 2016-06-22 11:21:11 +02:00
Holger Weiss c928956d73 XEP-0198: Apply cosmetic changes 2016-06-21 23:17:17 +02:00
Holger Weiss 7ddeac38b6 XEP-0198: Also count stanzas when socket is closed
Don't forget to count stanzas received from the stream management client
that are processed right after the connection was lost.
2016-06-21 22:54:41 +02:00
Paweł Chmielowski 3a8da27d86 Use {access,shaper}_rules_validator in other places where access rules are used 2016-06-21 13:18:24 +02:00
Paweł Chmielowski 52d45604ba Use new access_rules_validator in couple places 2016-06-21 12:28:53 +02:00
Paweł Chmielowski 804190e4a8 Add acl:{access,shaper}_rules_validator for use in {mod_}opt_type() 2016-06-21 12:26:31 +02:00
Paweł Chmielowski 4b9613e8fe Allow {mod_}opt_type to transform values passed to it, and for better error reporting 2016-06-21 12:25:29 +02:00
Christophe Romain b2f53fb962 Avoid cleanup on bag when disc_only, switch in memory (#1161) 2016-06-21 10:43:19 +02:00
Holger Weiss c91c5aa352 Fix handling of queued stanzas on session timeout
Don't fail to resend or bounce unacknowledged stanzas if the stream
management session timed out.

Closes #1160.
2016-06-19 23:32:15 +02:00
Christophe Romain 6f2b0179e7 Give more time to stop and kill epmd (#882) 2016-06-17 17:09:45 +02:00
Christophe Romain 8583958268 Use shorter jid acl in config template 2016-06-17 11:58:51 +02:00
Paweł Chmielowski d1425f0d78 Use new short access rules in config template 2016-06-16 11:13:07 +02:00
Paweł Chmielowski f1138baa80 Add test for more allowed access_rules 2016-06-16 11:12:16 +02:00
Paweł Chmielowski 1fb1e8721b Allow using shaper defined by name like in in s2s_shaper: fast 2016-06-16 11:04:01 +02:00
Paweł Chmielowski 0a09f27373 Typo in option name 2016-06-16 11:00:38 +02:00
Paweł Chmielowski 7b308e0d41 Add shorter version of some common access rules definitions
This add conversion of

- allow
to
- allow: all

and

- allow: acl_name
to
- allow:
  - acl: acl_name

(this works also for deny, and number in shapers)
2016-06-15 19:23:55 +02:00
Badlop 9004608181 Check password with jid:resourceprep when registering account (#996) 2016-06-14 23:35:47 +02:00
Holger Weiss 26bce5dee3 mod_mam: Fix "assume_mam_usage: if_enabled" 2016-06-14 16:40:46 +02:00
Badlop 34cf693231 Recover ec6c58a which was reverted in 100827e (thanks to Alexey Shchepin) 2016-06-10 13:18:32 +02:00
Mickael Remond 0e61e57ed9 Preparing hex.pm release to fix lager bug 2016-06-10 11:02:45 +02:00
Mickael Remond 34cbed54cd Force use of lager 3.0.2 at most.
Lager 3.2.0 has a bug that prevent it to work with ejabberd.
Lager 3.2.0 bug is fixed in https://github.com/basho/lager/commit/4c87abcd4f9d70a1136fff8f573dc7adcc833e43
2016-06-10 11:01:46 +02:00
Badlop 4ccc40bce5 push_roster must convert read strings to binaries (#1075) 2016-06-08 21:16:30 +02:00
Badlop 53f3a45803 Recover fix of 907e239 lost in 9deb294 (thanks to Alexey Shchepin) 2016-06-08 19:34:05 +02:00
Badlop 858d880675 Allow again multiple fqdn values in configuration (EJAB-1578) 2016-06-08 19:28:17 +02:00
badlop a4f213837e Merge pull request #1125 from vthriller/roster-push
mod_roster should probably respect roster item changes introduced with roster_process_item hooks upon pushing
2016-06-08 13:57:52 +02:00
Badlop 5173de503c Produce mod_last entry on account creation (processone/ejabberd-contrib#62) 2016-06-08 13:02:20 +02:00
Badlop 8a7b31ca63 When stopping ejabberd, stop modules after broadcasting c2s shutdown (#1144) 2016-06-07 18:41:38 +02:00
Paweł Chmielowski f8d2589ee5 Add tests for new acl functions 2016-06-06 17:12:39 +02:00
Holger Weiss 78d4200f05 mod_pubsub: Fix node configuration changes for SQL
nodetree_tree_sql:set_node/1 returns {ok, NodeIdx} rather than 'ok' on
success.
2016-06-06 00:18:24 +02:00
Holger Weiss 60803f5780 Simplify check for carbon-copied chat states
Let jlib:is_standalone_chat_state/1 unwrap carbon copies rather than
leaving this to the caller.  We still export jlib:unwrap_carbon/1, as
this function might also be useful for other purposes.
2016-06-05 22:36:56 +02:00
Holger Weiss 5c3074c0fb mod_client_state: Fix handling of chat states
Fix the check for chat states sent from other resources of the same
user.
2016-06-05 22:04:38 +02:00
Holger Weiss 4789ddf1ee mod_client_state: Simplify handling of PEP stanzas
Let mod_client_state simply queue the most recent item of a given PEP
node (from a given contact) instead of also taking the payload namespace
into account.
2016-06-05 21:48:03 +02:00
Pablo Polvorin 41c3751fa1 Fix quicktest case
Missing initialization, required for ets table to exists
2016-06-05 16:35:51 -03:00
Holger Weiss 8305cc293b XEP-0352: Pass chat states of other resources
Don't hold back (carbon copies of) chat states from other resources, as
they might be used to sync the state of conversations across clients.
E.g., if one client becomes active, another one might want to remove a
notification (immediately).
2016-06-03 21:52:11 +02:00
Holger Weiss 4d5eab6662 Unwrap carbon copies when checking for chat states
Detect standalone chat states that were carbon-copied.
2016-06-03 20:28:48 +02:00
Holger Weiss 3a1fc6fb66 Ignore <delay/> when checking for chat states
Ignore XEP-0203 elements when checking whether a message stanza is a
standalone chat state.
2016-06-03 19:02:26 +02:00
Holger Weiss 5c1db176a9 Fix "unused variable" warning 2016-06-03 12:58:20 +02:00
Badlop 0503d899cf Fix problem in dfee843 when non-occupant admin kicks an occupant (#1135) 2016-06-03 00:10:25 +02:00
Alexey Shchepin 0093326f7d Fix ejabberd.ldif 2016-06-02 18:56:27 +03:00
Alexey Shchepin 9ef52b8c64 Fix a typo 2016-06-02 18:22:50 +03:00
Alexey Shchepin d201f013b2 Stronger tests in the test suite, SQL updates and fixes 2016-06-02 18:09:58 +03:00
Badlop 5352037680 Report in SQL when scram is enabled but the stored password isn't (#1096) 2016-06-01 20:48:52 +02:00
Holger Weiss bbb90b9928 Ignore offline sessions
Let mod_admin_extra and mod_configure ignore offline sessions when
querying the session table.
2016-06-01 01:01:54 +02:00
Paweł Chmielowski 9c27f31d72 Process cover information on travis only if cover support is enabled 2016-05-31 12:12:46 +02:00
Christophe Romain e7843bf92b Fix set_presence API 2016-05-31 11:47:08 +02:00
Paweł Chmielowski db240413ab Disable cover analyzys on R17 as this causes problems with elixir tests 2016-05-31 11:29:19 +02:00
Paweł Chmielowski 8e883a76e3 Update test after roster code reorganization 2016-05-31 00:09:26 +02:00
Paweł Chmielowski 622bff23a4 Update test 2016-05-31 00:07:26 +02:00
Paweł Chmielowski be0dd51e51 Fix mod_http_api_test.exs 2016-05-30 23:06:29 +02:00
Paweł Chmielowski fc2b7018cc More strict check for commands with policy user 2016-05-30 23:06:29 +02:00
Paweł Chmielowski 17f87eb899 Fix tests 2016-05-30 23:06:29 +02:00
Paweł Chmielowski 1ade88402c Better code for setting up ejabberd app location 2016-05-30 23:06:29 +02:00
Paweł Chmielowski f252b9d489 Update acl tests to new internal access rules syntax 2016-05-30 14:36:17 +02:00
Paweł Chmielowski 1d3959b5a2 Make tests run correctly even when ejabberd src in not in ejabberd-xxx dir 2016-05-30 14:35:53 +02:00
Paweł Chmielowski e81302dc79 Allow @ inside acl user{,_glob,_regexp} to pass both user and server in single string 2016-05-30 12:30:44 +02:00
Paweł Chmielowski 9e68c4c0d9 Convert example config to use new syntax for access rules 2016-05-26 11:08:53 +02:00
Paweł Chmielowski 1981e13326 Allow passing username and ip to ejabberd_comamnds, and use it in mod_http_api 2016-05-26 11:08:53 +02:00
Paweł Chmielowski fffae97940 Use acl:access_matches in c2s 2016-05-26 11:08:53 +02:00
Paweł Chmielowski 49658e1655 New ACL infrastructure 2016-05-26 11:08:53 +02:00
Paweł Chmielowski c55319c81e Do not call transform_terms multiple times on configs when merging them 2016-05-26 11:08:53 +02:00
Paweł Chmielowski 13ead140f4 Copy lite.sql to place where tests expect it in failback mode 2016-05-26 11:08:53 +02:00
Badlop ca329826cb Retrieve parenthesis for easy reading, lost in old commit 9deb294 2016-05-25 12:44:05 +02:00
Evgeny Khramtsov 14b53fbcb0 Merge pull request #1131 from weiss/failed-resume-h
XEP-0198: Indicate number of handled stanzas if resumption fails
2016-05-25 11:56:47 +04:00
Evgeny Khramtsov b055c2a13a Merge pull request #1126 from weiss/muc-send-affiliation
Notify on MUC affiliation changes of non-occupants
2016-05-25 11:55:06 +04:00
Christophe Romain 639e9fab4e Merge pull request #1132 from weiss/publish-options
Add support for PubSub publishing options
2016-05-25 07:49:55 +00:00
Holger Weiss c958fa2f06 Add support for PubSub publishing options
Add code necessary to support publishing options as described in
XEP-0060, #7.1.5.  A node plugin that expects publishing options must
add <<"publish-options">> to the features/0 list and then handle the
publishing options handed over to the publish_item/7 call.

Signed-off-by: Christian Ulrich <christian@rechenwerk.net>
2016-05-25 08:40:12 +02:00
Holger Weiss 30e814dd4b XEP-0198: Add 'h' attribute to <failed/> element
If a resume request is rejected because the session timed out, indicate
the number of handled stanzas as per version 1.5 of XEP-0198.
2016-05-24 22:20:58 +02:00
Holger Weiss 8c16fdf59f mod_mam_mnesia: Clarify error message 2016-05-24 07:58:07 +02:00
Holger Weiss a2f0e157bc ejabberd_auth*: Fix indentation 2016-05-24 00:40:25 +02:00
Holger Weiss 2a9dd548b5 mod_mam_mnesia: Don't exceed table size limit
Don't write MAM messages into an Mnesia archive if the size of the table
comes close to the 2 GB limit for tables with disc-only copies.  That
way, the table is at least not corrupted when the limit is reached.
2016-05-24 00:25:52 +02:00
Holger Weiss 3f3ecad981 mod_mam_mnesia: Use transactions when writing
Let mod_mam_mnesia use transactions when storing or deleting messages.

If old messages of a user are to be removed, delete the user's archive
and rewrite it from scratch, as that seems to be much faster than
removing individual records with delete_object/1.

Closes #1065.
2016-05-24 00:08:23 +02:00
Holger Weiss 70452ba25a mod_register: Only set timeout on success
Don't set the registration timeout if the password was rejected for
being too weak.
2016-05-23 23:27:42 +02:00
Holger Weiss 1b02c5fbf3 Merge remote-tracking branch 'processone/pr/1122'
* processone/pr/1122:
  mod_client_state: Add function specifications
  mod_client_state: Add "queue_pep" option
  mod_client_state: Queue chat state notifications
  Move CSI queue handling into mod_client_state
2016-05-20 09:57:07 +02:00
Holger Weiss 9d87a4a6d4 mod_muc_room: Notify on affiliation changes
Notify the current room occupants if the affiliation of a non-occupant
is changed as per example 195 of XEP-0045.  In anonymous rooms, only
moderators are notified, though.
2016-05-20 01:28:16 +02:00
vthriller f6ba91ff97 mod_roster should probably respect roster item changes introduced with roster_process_item hooks upon pushing 2016-05-19 13:45:42 +03:00
Holger Weiss 420ae65590 mod_client_state: Add function specifications
Add function specifications and apply cosmetic changes to
mod_client_state.
2016-05-18 21:30:38 +02:00
Holger Weiss 8f72c27b88 mod_client_state: Add "queue_pep" option
If the new "queue_pep" option is enabled and the client is inactive, PEP
notifications are throttled in a similar way to presence stanzas and
chat states.  Only the most recent notification of a given node and
payload type will be queued from a given contact.
2016-05-17 22:12:04 +02:00
Holger Weiss 4f009e64fc mod_client_state: Queue chat state notifications
Queue standalone chat states instead of simply dropping them when the
client is inactive.  Only the most recent chat state of a given client
is queued.
2016-05-17 20:55:45 +02:00
Holger Weiss ba74c1c367 Move CSI queue handling into mod_client_state
Let mod_client_state handle the queueing of stanzas, not just their
classification.  This simplifies the ejabberd_c2s code and gives
(custom) CSI modules more flexibility.
2016-05-17 19:27:18 +02:00
Badlop ba2680df61 Delete duplicated command export_sql, use export2sql instead (#1118) 2016-05-16 17:57:57 +02:00
Tobias Kräntzer 2529acc36c Send unique stanza id and archived tag also in the message carbons
- Change order of the hooks in mod_mam for sending and receiving packets. Messages are archived before a carbon copy is send to the other recourcces.
- Add archived tag and unique stanza id to the outgoing packet to have message carbons with the archive information.
- Add additional hook (in mod_mam) to strip the archive tag for outgoing packets after message carbons have been send.
2016-05-15 20:13:25 +02:00
Holger Weiss ff199a323d Fix jid:from_string/1 function specification 2016-05-15 16:19:13 +02:00
Alexey Shchepin 64bb371285 Fix a typo 2016-05-13 18:22:59 +03:00
Alexey Shchepin 9bd446e519 Less strict extauth.py 2016-05-13 17:56:52 +03:00
Alexey Shchepin 792f47b4bd Update SQL escaping 2016-05-13 17:56:48 +03:00
Evgeniy Khramtsov be2a9e35ae Fix C2S session data leak (#1078) 2016-05-09 14:18:47 +03:00
Evgeniy Khramtsov 068db1a2d9 Handle Redis connection in a separate module 2016-05-09 08:36:30 +03:00
Holger Weiss 4717d64d7a mod_client_state: Delete only the configured hooks 2016-05-08 16:45:31 +02:00
Holger Weiss f7f40cf9a6 Let client retry HTTP upload on file size mismatch
Let the main mod_http_upload process look at the size of an HTTP upload
rather than performing this check in the ejabberd_http handler.  This
way, the upload slot won't be invalidated if the size of the uploaded
file doesn't match the size requested for the slot.  The PUT request is
still rejected, but the client now has a chance to retry the upload.
2016-05-08 15:36:51 +02:00
Holger Weiss bcf07fd032 Avoid error bounces when testing stream management
The test suite sends messages to the server JID while checking whether
the stream management code counts outgoing stanzas correctly.  We now
set type='headline' for those messages to avoid error bounces.
2016-05-06 16:37:17 +02:00
Holger Weiss ff4a0e1808 XEP-0198: Use different error message for bounces
When stanzas are bounced from the stream management queue (because the
session timed out or was closed for some other reason), use a different
error message so that this situation can be distinguished from other
cases.
2016-05-06 14:12:22 +02:00
Holger Weiss 51238bff83 Bounce messages sent to server JID
If a message is sent to the server JID (without node part), generate an
error message rather than dropping the message silently.
2016-05-06 13:59:21 +02:00
Badlop 86d5cf6d6c Don't require ejabberd to be installed to run "make translations" 2016-05-06 13:47:02 +02:00
Alexey Shchepin b2ffa1db96 Add missed jlib:term_to_expr and jlib:expr_to_term functions 2016-05-05 16:42:48 +03:00
Alexey Shchepin 0ea0ba3004 Update more SQL queries 2016-05-05 15:51:58 +03:00
Holger Weiss d6700bdc5b Merge remote-tracking branch 'processone/pr/1088'
* processone/pr/1088:
  Process messages of unknown type consistently
2016-05-05 00:20:15 +02:00
Christophe Romain 13c6430341 Add missing odbc->sql in comment from commit 1aae8a9f 2016-05-04 09:11:18 +02:00
Holger Weiss 12a8d915cd Merge remote-tracking branch 'processone/pr/1087'
* processone/pr/1087:
  Return error when blocking last activity request
2016-05-04 00:16:56 +02:00
Holger Wei 6cb60aaff5 Cosmetic change: Make variable names consistent
Use the same variable names in both mod_mam:select/8 clauses to avoid
confusion.
2016-05-03 19:12:57 +02:00
Holger Weiss 575ef9c619 Merge remote-tracking branch 'processone/pr/1102'
* processone/pr/1102:
  Fix ejabberdctl.template duplication
2016-05-03 19:07:11 +02:00
Matthias Rieber 5e5328da4a Fix ejabberdctl.template duplication 2016-05-03 16:36:20 +02:00
Holger Weiss 6da07d78b5 Merge remote-tracking branch 'processone/pr/1086'
* processone/pr/1086:
  Return error when blocking message to offline user
2016-05-02 21:08:06 +02:00
Paweł Chmielowski 0c0ce17bc0 Add ability to configure server loglevel when running tests 2016-05-02 15:25:30 +02:00
Christophe Romain 8a6c51290a Pass noauth when auth isn't provided 2016-05-02 15:07:00 +02:00
Juan Pablo Carlino 671bc4e573 Use MEDIUMTEXT type for muc_room.opts in MySQL schema 2016-05-02 15:06:40 +02:00
Christophe Romain 07196b6c62 Fix sender in case of explicit pep subscriptions 2016-05-02 15:04:14 +02:00
Paweł Chmielowski 53e1100cc4 Don't halt program when include_config_file is missing/can't be read 2016-05-02 14:52:23 +02:00
Evgeniy Khramtsov 47050db6b8 Don't forget to import mod_opt_type/1 in mod_metrics 2016-05-02 12:18:18 +03:00
Holger Weiss d54f211514 Add mod_opt_type/1 callback to gen_mod behaviour 2016-05-01 22:09:40 +02:00
Holger Weiss b46ed7044a Cope with modules that don't export mod_opt_type/1 2016-05-01 22:06:15 +02:00
Holger Weiss b202004862 ejabberdctl: Fix path to epmd 2016-05-01 21:29:59 +02:00
Evgeniy Khramtsov 8700a3401e Add tests for MUC MAM 2016-05-01 12:48:23 +03:00
Evgeniy Khramtsov 82082f1799 Add behaviour to mod_vcard_xupdate DB modules 2016-05-01 11:03:20 +03:00
Evgeniy Khramtsov 3493a87469 Fix typo in mod_mam:select() (#1098) 2016-04-30 21:37:18 +03:00
Christophe Romain 6a10916dda Let shaper cope with low resolution system clock
We no longer rely on getting unique values from clock source, so we need
to handle cope with systems which does not have a microsecond resolution
on system clock (such as MS Windows)
2016-04-29 10:57:34 +02:00
Christophe Romain 639c2fb640 Add pubsub subscribe/unsubscribe hook 2016-04-28 15:57:55 +02:00
Evgeniy Khramtsov c585f74730 Better formatting of configuration problem log message 2016-04-28 09:03:05 +03:00
Mickael Remond d18fe138aa Update esip and stun to match Fast TLS version 2016-04-27 16:22:47 +02:00
Christophe Romain d6f02a51e4 Use fast_tls 1.0.3 2016-04-27 16:18:24 +02:00
Evgeniy Khramtsov 9c369b7a8c Improve detection of databases supported by modules (#1092) 2016-04-27 17:10:50 +03:00
Christophe Romain d8bb5d9c01 Force ERL_PATH for elixir 2016-04-27 12:32:01 +02:00
Mickael Remond 26d3a978cc Update stun and esip dependencies 2016-04-27 12:19:55 +02:00
Mickael Remond 0f06ed8a9b Prepare 16.04 release 2016-04-27 11:59:05 +02:00
Mickael Remond d1db9f92c4 We now use fast_tls 1.0.2 2016-04-27 11:54:50 +02:00
Evgeniy Khramtsov 52fde758b3 Get rid of "internal" DB type. This also fixes #1092 2016-04-27 09:44:32 +03:00
Christophe Romain b79aef3bbc SCRIPT_DIR needed for release 2016-04-25 15:26:23 +02:00
Christophe Romain bae24464d3 Remove useless variable and quote EPMD and SPOOL_DIR 2016-04-25 14:26:04 +02:00
Christophe Romain ef90a389c1 Fix use of pubsub node plugin when configured with default_node_config 2016-04-25 09:44:46 +02:00
Holger Weiss 36164d9446 Return error when blocking last activity request
As per XEP-0016 and XEP-0191, return a service-unavailable error when an
incoming last activity query was blocked by a privacy list (just as we
do for other IQ requests).
2016-04-25 09:33:47 +02:00
Holger Weiss 45321fa2e2 Process messages of unknown type consistently
If an incoming message sent to an unavailable resource has an unknown
type, handle it like messages of type "normal" (as mandated by RFC 6121,
section 5.2.2).  The same is already done for messages of unknown type
sent to the bare JID of an offline user.
2016-04-25 01:13:41 +02:00
Holger Weiss 65ad70d7dc Fix error text for message bounces 2016-04-25 00:53:48 +02:00
Holger Weiss a37cf33358 Drop headline messages sent to offline resources
Don't bounce an error when a message of type "headline" is sent to an
unavailable resource.  This is consistent with how headline messages
sent to the bare JID of an offline user are dropped, and it avoids a
presence leak.
2016-04-25 00:02:12 +02:00
Holger Weiss 58478e52bf Don't omit bounces for messages of type "result" 2016-04-24 22:47:53 +02:00
Holger Weiss cebdfb6523 Return error when blocking message to offline user
As per XEP-0016 and XEP-0191, return a service-unavailable error when an
incoming message sent to an offline user was blocked by a privacy list.
The same is done for a message sent to an online user, so this avoids a
presence leak.
2016-04-24 22:00:15 +02:00
Holger Weiss b79f09d0eb Match namespace when checking for chat states
When checking for standalone chat states, match the namespace rather
than the names of the elements defined in the current XEP-0085 revision.
2016-04-24 17:16:28 +02:00
Holger Weiss beeb1c82d9 Fix check for standalone chat state notifications
Ignore whitespace (and other XML CDATA) when checking whether a message
stanza is a standalone chat state notification.
2016-04-24 17:09:56 +02:00
badlop 2660dcabba Merge pull request #931 from cclam0827/dev/mod_ping
change mod_ping Timers using maps instead of dict
2016-04-22 13:07:03 +02:00
Holger Weiss f0e6def3ed Set default value for pubsub#itemreply option 2016-04-21 23:47:07 +02:00
Christophe Romain 8487b51ecd Fix node ping command 2016-04-21 12:16:21 +02:00
Christophe Romain f7d4aae64d Use UUID for ctl node name (#1021) 2016-04-21 12:00:51 +02:00
Paweł Chmielowski 97e3a33077 Accept commands: add_commands syntax (along commands: - add_commands) 2016-04-21 11:16:36 +02:00
Evgeniy Khramtsov 1aae8a9fda Rename odbc to sql everywhere 2016-04-20 13:25:42 +03:00
Evgeniy Khramtsov fafeeb80c2 Rename ejabberd_sm_odbc -> ejabberd_sm_sql 2016-04-20 09:11:02 +03:00
Christophe Romain 655c22021b Fix hometree root check (#1070) 2016-04-19 15:18:32 +02:00
Holger Weiss 382c6ce1fb Specify type of second terminate/2 parameter 2016-04-19 09:15:09 +02:00
Paweł Chmielowski 0bdcafdb02 Use erlang 18.3 in travis tests 2016-04-18 14:25:41 +02:00
Badlop e5e4f39c01 Remove --auth in ejabberd_ctl.erl as it's useless, still useful for mod_rest 2016-04-15 15:35:57 +02:00
Evgeniy Khramtsov 222572bd56 Clean mod_carboncopy.erl from DB specific code 2016-04-15 15:48:56 +03:00
Evgeniy Khramtsov 64fdbe7866 Add mod_mam header file 2016-04-15 15:13:38 +03:00
Evgeniy Khramtsov fb0ecf3361 Merge branch 'move-db-code' 2016-04-15 15:12:12 +03:00
Evgeniy Khramtsov 52571e8624 Clean mod_mam.erl from DB specific code 2016-04-15 15:11:31 +03:00
Evgeniy Khramtsov 901d2e0aed Clean mod_offline.erl from DB specific code 2016-04-15 13:44:33 +03:00
Evgeniy Khramtsov 860db2ddca Clean mod_blocking.erl from DB specific code 2016-04-14 14:17:20 +03:00
Evgeniy Khramtsov c8c4a41b66 Clean mod_privacy.erl from DB specific code 2016-04-14 14:16:32 +03:00
Evgeniy Khramtsov 79d64e0d71 Clean mod_irc.erl from DB specific code 2016-04-14 12:18:04 +03:00
Evgeniy Khramtsov f8e3560ad2 Clean mod_shared_roster.erl from DB specific code 2016-04-14 11:45:43 +03:00
Evgeniy Khramtsov 398f1de5ae Clean mod_roster.erl from DB specific code 2016-04-14 10:58:32 +03:00
Evgeniy Khramtsov 0b439a7d5b Clean mod_muc.erl from DB specific code 2016-04-13 21:07:32 +03:00
Evgeniy Khramtsov ae69f09257 Clean mod_vcard.erl from DB specific code 2016-04-13 17:37:52 +03:00
Evgeniy Khramtsov ef70ce65ab Clean mod_private.erl from DB specific code 2016-04-13 14:09:34 +03:00
Evgeniy Khramtsov b5d1ce795f Clean mod_announce.erl from DB specific code 2016-04-13 13:04:04 +03:00
Evgeniy Khramtsov cd094bc903 Clean mod_caps.erl from DB specific code 2016-04-13 11:41:04 +03:00
Evgeniy Khramtsov 2d7e03f5e1 Clean mod_vcard_xupdate.erl from DB specific code 2016-04-13 11:06:59 +03:00
Mickaël Rémond b2abc1edb7 Add preliminary tests on ACL module and prepare clean-up / refactor 2016-04-13 09:45:56 +02:00
Evgeniy Khramtsov 7fd4808cde Clean mod_last.erl from DB specific code 2016-04-13 09:59:39 +03:00
Evgeniy Khramtsov 5eef8a8bcf Make it possible to get DB backend of a module 2016-04-13 09:56:10 +03:00
Mickael Remond cd2e2b1a88 Synchronizing master changes 2016-04-12 10:34:24 +02:00
Mickael Remond 5958a91428 Fix typo in error message 2016-04-12 10:27:43 +02:00
Holger Weiss 15d184a909 Disable TLS compression for s2s by default
TLS compression is not recommended, and it's already disabled by default
for c2s connections and for ejabberd_http.
2016-04-11 22:50:11 +02:00
Badlop 8c8a6869be process2/2 is needed by mod_rest to provide its own AccessCommands
See processone/ejabberd-contrib#161
2016-04-11 17:21:44 +02:00
Badlop 695592a38c Update check_password tests are the command now is fixed 2016-04-11 13:39:35 +02:00
badlop bd3b7cd2df Merge pull request #1064 from sezuan/fix_check_password
Fix check_password
2016-04-11 13:38:22 +02:00
Matthias Rieber b67dc00db2 Fix check_password 2016-04-10 15:37:36 +02:00
Mickael Remond 127342449e Allow testing user pattern directly in access rules 2016-04-08 19:45:25 +02:00
Paweł Chmielowski b4739396ec Switch to varchar(64) in mysql user.server/salt as text can't have default values 2016-04-08 17:50:59 +02:00
Mickael Remond 1dbdd58b1b Add TODO to improve ACL 2016-04-08 12:55:35 +02:00
Evgeniy Khramtsov c5dbdfc71a 'serverkey' and 'salt' should have empty string as default 2016-04-08 13:02:08 +03:00
Paweł Chmielowski 86dfbe6ece Make sure that ejabberd_sm sid are unique 2016-04-08 10:52:29 +02:00
Evgeniy Khramtsov b83ec483e9 Send stream trailer at the very end 2016-04-08 11:49:50 +03:00
Paweł Chmielowski afd3accf75 Generate shorted jid for anonymous connections 2016-04-07 16:47:30 +02:00
Paweł Chmielowski 0935f493ee Add tests for anonymous and digest-md5 auth 2016-04-07 16:47:01 +02:00
Mickael Remond 373f9fb0eb Add tests on Access rules returning values 2016-04-07 13:04:58 +02:00
Mickael Remond 60c0c8e968 Add test when mixing ip / user rules 2016-04-07 12:35:29 +02:00
Paweł Chmielowski 18557fa3d6 Start of tests for cyrsasl module 2016-04-07 12:28:19 +02:00
Mickael Remond a938af4180 IP based ACL / Access rules and sequential evaluation of rules 2016-04-07 12:06:30 +02:00
Paweł Chmielowski d5c29360fb Fix anonymous auth 2016-04-07 10:02:37 +02:00
Mickael Remond 48a1d818d6 Rebase master 2016-04-06 18:14:47 +02:00
Mickael Remond eb36440c2e Variant for user ACL test 2016-04-06 18:13:08 +02:00
Mickael Remond 47039aed15 Allow clearing all ACL and access rules 2016-04-06 18:13:08 +02:00
Mickael Remond d45ad3e3a5 Add initial basic ACL test 2016-04-06 18:13:08 +02:00
Mickael Remond 5ad8c790c7 Export add_access/3 to allow setting ACL outside of yaml config file 2016-04-06 18:13:08 +02:00
Mickael Remond 5efcf0a175 Stringprep can already be started, do not check result 2016-04-06 18:11:46 +02:00
Mickael Remond 0916694e0e Merge branch 'master' of github.com:processone/ejabberd 2016-04-06 17:56:01 +02:00
Mickael Remond 2900aa208f Log Elixir test result for investigation and include this log file in travis for troubleshooting failed tests 2016-04-06 17:55:56 +02:00
Badlop 27b4217a9d Tweak srg_get_info result formatting (#1048) 2016-04-06 17:55:19 +02:00
Mickael Remond a9e50468b6 Better error message in logs 2016-04-06 15:07:44 +02:00
Mickael Remond abf768274a Fix error message paramater formatting 2016-04-06 15:05:19 +02:00
Mickael Remond f78b170c24 Add initial basic ACL test 2016-04-06 13:59:33 +02:00
Mickael Remond 991529a657 Export add_access/3 to allow setting ACL outside of yaml config file 2016-04-06 13:59:06 +02:00
Mickael Remond b2279d481d Merge branch 'master' of github.com:processone/ejabberd 2016-04-06 13:57:12 +02:00
Mickael Remond 267fdb2e95 Now we need to start stringprep before config 2016-04-06 13:51:05 +02:00
badlop d9f1061b8a Merge pull request #1051 from genric/patch-1
Fix mod_muc_admin:set_room_affiliation options persistence
2016-04-06 13:44:12 +02:00
badlop dd654fa794 Merge pull request #1052 from genric/patch-2
Fix mod_muc_admin:get_room_options
2016-04-06 13:25:46 +02:00
Mickael Remond 1b9b5f8e6a Merge branch 'master' of github.com:processone/ejabberd 2016-04-06 12:59:58 +02:00
Mickael Remond 67b9b82261 We need to set hosts in options to be able to retrieve 'MYHOSTS' 2016-04-06 12:59:27 +02:00
Mickaël Rémond 2eee2de6e2 Merge pull request #1054 from richp10/master
upgrade stringprep to 1.03
2016-04-06 12:05:26 +02:00
richp10 acc11195f8 upgrade stringprep to 1.03 2016-04-06 08:40:10 +00:00
genric be7f65da05 Fix mod_muc_admin:get_room_options
Fix mod_muc_admin:get_room_options to match the ejabberd_commands result spec.
2016-04-05 14:13:28 +02:00
Evgeniy Khramtsov 232915184c Merge branch 'add-error-reason' 2016-04-05 13:10:09 +03:00
Evgeniy Khramtsov 9ac6e4edf7 Replace more ?ERR_* macros with ?ERRT_* 2016-04-05 13:09:44 +03:00
genric 490aa2c6a6 Fix mod_muc_admin:set_room_affiliation
Add missing options so they are stored when set_room_affiliation is invoked, instead of being ignored and set to default values after muc restart.
2016-04-04 14:02:34 +02:00
Mickaël Rémond ca9ac019eb Merge pull request #1046 from processone/commands-update
Add support for versioning in ejabberd commands
2016-04-01 14:24:08 +02:00
Mickael Remond e24da5789e Apply fixes and remove tests for missing methods 2016-04-01 13:05:41 +02:00
Mickael Remond 47266de6d7 Do not use underscore variable 2016-04-01 12:24:49 +02:00
Mickael Remond f243c30847 Rollback mod_admin_extra 2016-04-01 12:24:00 +02:00
Mickael Remond 2a2a47b5c6 Fix merge issues 2016-04-01 12:12:19 +02:00
Mickael Remond b5f1479763 Fix tests, they are now running fine locally 2016-04-01 11:13:48 +02:00
Mickael Remond a8f92ae767 Add logger macro to help troubleshooting Elixir tests 2016-04-01 11:11:42 +02:00
Mickael Remond 97d345d287 Port mod_admin_extra test to work with new API 2016-03-31 22:01:57 +02:00
Mickael Remond ef2e2e45b3 Fix failing tests 2016-03-31 17:34:58 +02:00
Mickael Remond 3290a5ff15 Force protobuffs version to be able to use new meck release 2016-03-31 16:05:18 +02:00
Mickael Remond 7988e2e350 Merge lastest commits from master 2016-03-31 15:37:21 +02:00
Mickael Remond dc0ca51ef1 Try keeping names of test same as master to limit merge conflicts 2016-03-31 15:06:41 +02:00
Mickael Remond 78c4a0d65f Add test file whose name was conflicting during merge 2016-03-31 14:42:08 +02:00
Mickael Remond 91233eafaa Use version of moka that do not depend on proper 2016-03-31 14:36:30 +02:00
Mickael Remond da0751239c Rename conflicting test file after merge 2016-03-31 14:33:34 +02:00
Alexey Shchepin 3dc55c6d47 Commands refactor, first pass.
- add API versionning
- changed error handling, based on exception
- commands moved/merged from mod_admin_p1 to mod_admin_extra
- command bufixes
- add some elixir unit test cases

Squashed commit of the following:

commit dd59855b3486f78a9349756e4f102e79b3accff8
Merge: 14e8ffc 506e08e
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Fri Oct 30 11:43:18 2015 +0100

    Merge branch '3.2.x' into api

commit 14e8ffce78cbea6c8605371d1fc50a0c1d1e012c
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Tue Oct 27 16:35:17 2015 +0100

    Added OAuth tests to ejabberd_commands

commit f81c550c14628edfe4861c228576cb767924366a
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Tue Oct 27 16:34:55 2015 +0100

    Added some mod_http_api tests

commit 6a64578d5b2ba532a2feb6503ed98561e56d5d53
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Mon Oct 26 15:29:36 2015 +0100

    Fix get_last command test

    Previous version won't work with dst.

commit 27e0cde9e9c1f001effe68f8424a365ad947c068
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Fri Oct 23 17:59:34 2015 +0200

    Add tests on admin command policy

commit 19dad8d54f54c9fabd454280483cccfb06c8e78a
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Fri Oct 23 16:49:36 2015 +0200

    Added command related tests (http api & user policy)

commit e0e596ab4a3f3a70aba5f374f028939ab794de33
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Fri Oct 23 16:49:16 2015 +0200

    Fix command call.

commit 128cd7d1ede3c47a34f8ec3a750c980ccad2c61d
Merge: 60c4c4c 447313c
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Thu Oct 22 14:48:39 2015 +0200

    Merge branch '3.2.x' into api

commit 60c4c4c0751302524c14219c6bc8c56a6069a689
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Thu Oct 22 14:45:57 2015 +0200

    Fix ejabberd_commands spec.

commit 8e145c28c5da762c2b93ee32327eff1db94ebfed
Merge: 397273a f13dc94
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Wed Oct 21 18:26:07 2015 +0200

    Merge branch '3.2.x' into api

commit 397273a23ed415feac87aed33da6452229793387
Merge: c30e89b f289e27
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Wed Oct 21 15:27:45 2015 +0200

    Merge branch '3.2.x' into api

commit c30e89bb8a0013bff37e61e4c6953350c9c1f313
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Wed Oct 21 12:47:02 2015 +0200

    Merge mod_http_api

commit 7b0db22b4acd48ff6fabce41c1b2525e6580a3c5
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Fri Oct 16 11:55:48 2015 +0200

    Fix exunit tests to run with common_test suites

commit d8b1a89800ac7379a57a7eb4a09c3c93c3e1e5eb
Merge: 2879ae8 63455b3
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Thu Oct 15 11:39:45 2015 +0200

    Merge branch '3.2.x' into api

commit 2879ae87ff3eee369ef3d780136b96ecff5285d1
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Wed Oct 14 14:53:44 2015 +0200

    Fix update_roster command.

commit a1d453dd7a3afda9861a8d747494a45057ad574b
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Tue Oct 13 16:14:28 2015 +0200

    API commands refactor

    Moving and/or merging commands from mod_admin_p1 to mod_admin_extra

commit b709ed26b0fc0ca4f3bdd5a59fa58ec7e3db97fa
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Wed Oct 7 15:10:01 2015 +0200

    Add tests on commands

commit 6711687bee9c672cb3d5aed0744e13420ecf6dbd
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Tue Sep 29 15:58:16 2015 +0200

    Add ejabberd_commands tests

commit df8682f419cf3877e77e36a19bca0fc55dc991f8
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Mon Sep 28 14:54:39 2015 +0200

    Added API versioning for ejabberdctl and rest commands

commit cd017b0e3aac431bc3ee807ceb7f8641e1523ef5
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Fri Sep 18 11:21:45 2015 +0200

    Better error handling of HTTP API commands.

commit ca5cb6acd8e4643f9d6c484d2277b0d7e88471e5
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Tue Sep 15 15:03:05 2015 +0200

    add commands to mod_admin_extra:
    - get_offline_count
    - get_presence
    - change_password

commit 7f583fa099e30ac2b0915669fd8f102ac565b833
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Tue Sep 15 15:02:16 2015 +0200

    Improve REST API error handling

commit 14753b1c02cdce434a786b7f80f6c09f0d210075
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Mon Sep 14 10:51:17 2015 +0200

    Change REST API return codes for integer type.
2016-03-31 14:53:31 +03:00
Mickael Remond d35c5ebde5 Test / Document ejabberd_commands checks 2016-03-31 13:14:06 +02:00
Mickael Remond 3cfcdbb245 Check that various type of commands are properly rejected without auth 2016-03-31 12:38:53 +02:00
Mickaël Rémond 7c2998a55d Merge pull request #1044 from processone/http-api
Add ability to call open ejabberd commands through ReST API
2016-03-31 11:37:14 +02:00
Evgeniy Khramtsov fced8dc3d9 Replace some ?ERR_* macros with ?ERRT_* 2016-03-31 11:00:29 +03:00
Mickael Remond c00cfca8e7 mix version updated for 16.03 release 2016-03-30 19:21:12 +02:00
Mickael Remond 3c480a5b0b Fix Dialyzer inconsistency 2016-03-30 16:47:40 +02:00
Paweł Chmielowski b160bd7ac1 Provide authzid in scream response 2016-03-30 16:08:04 +02:00
Mickael Remond 809057678b Better error report when command is not exposed through API 2016-03-30 15:59:29 +02:00
Mickael Remond 36ac1cd6c7 Returns unauthorized error when we do not have correct credentials 2016-03-30 14:49:19 +02:00
Mickael Remond ead83b008c HTTP ReST API now supports 'open' ejabberd commands 2016-03-30 14:23:09 +02:00
Mickael Remond 6f25122f8c Support flagging so Elixir tests as pending 2016-03-30 13:59:01 +02:00
Holger Weiss bf79f223df Travis CI: Cosmetic changes to Riak setup commands 2016-03-30 01:15:12 +02:00
Holger Weiss e58b62f737 Travis CI: Revert to checking for skipped tests
Now that the issues with running Riak on Travis are solved, we can check
for skipped test cases again.
2016-03-30 01:02:27 +02:00
Mickael Remond 82cf7f7ca8 Adds support for option admin_ip_access on mod_http_api
This allows granting access to admin commands to backend, by using IP address restrictions.
(Pawel Chmielowski)
2016-03-29 19:40:20 +02:00
Mickael Remond 6d7891ed16 Merge branch 'master' of github.com:processone/ejabberd 2016-03-29 15:45:57 +02:00
Mickael Remond c7c70ffa0a Add basic test for command registration 2016-03-29 15:45:48 +02:00
Badlop 78a44d8099 Move start and stop_modules/0 from ejabberd_app to gen_mod (#1039) 2016-03-29 15:26:34 +02:00
Mickael Remond b49a615e21 Fix commands api option 2016-03-29 13:19:16 +02:00
Mickael Remond 3b2d0fd24a Fix commands access check.
Fixes ECS-20
2016-03-29 13:06:13 +02:00
Mickael Remond aa15148898 Fix commands access check. 2016-03-29 13:05:12 +02:00
Badlop 3809b898aa Pass noauth when auth isn't provided, reverts a1129dc (processone/ejabberd-contrib#159) 2016-03-29 12:51:26 +02:00
Badlop e386bf6b58 In SQL files create Users table with SCRAM support by default (#956) 2016-03-29 12:37:49 +02:00
Mickael Remond 221d8e0e5d Merge branch 'master' of github.com:processone/ejabberd 2016-03-29 11:21:58 +02:00
Mickael Remond 53d12caa56 Fix log printout
Log is not only called for admin commands. It is call for all commands call.
2016-03-29 11:21:53 +02:00
Evgeniy Khramtsov b0ef3e66a8 Update MSSQL schema 2016-03-29 11:53:13 +03:00
Evgeniy Khramtsov 7a9e93839a Fix some LIMIT related problems with MSSQL 2016-03-29 11:34:00 +03:00
Mickael Remond 54ddc990c2 Use new fast_yaml 2016-03-29 09:21:24 +02:00
Mickaël Rémond 4afe0b195c Merge pull request #1036 from processone/shared-roster-ldap
Fix issue getting shared roster
2016-03-25 19:36:10 +01:00
Evgeny Khramtsov 494e638f03 Merge pull request #1024 from rbarlow/luerl_release
Use the v0.2 release of luerl instead of a commit.
2016-03-25 21:29:19 +04:00
Evgeny Khramtsov 915ccbbdfb Merge pull request #684 from wcy123/master
bug fix: ejabberd:start_app need to pass Type to application:start
2016-03-25 21:00:35 +04:00
Mickael Remond 381065397f Fix issue getting shared roster
I rollbacked to correct version and slightly refactored the code
2016-03-25 17:44:12 +01:00
Mickael Remond a08ecc0f41 Proper naming for LDAP test function for shared roster 2016-03-25 17:42:58 +01:00
Mickael Remond eace5fc463 Switch back to proper log level 2016-03-25 17:42:19 +01:00
Mickael Remond 0afcf561d6 Add test to demonstrate issue to retrieve roster with mod_shared_roster_ldap 2016-03-25 17:30:12 +01:00
Evgeniy Khramtsov 46568fb959 Merge commit 'refs/pull/524/head' of github.com:processone/ejabberd into sasl-api-change 2016-03-25 18:16:50 +03:00
Mickaël Rémond c7cf95ba99 Merge pull request #1035 from processone/modular-tests-run
Allow running test groups independently
2016-03-24 15:46:51 +01:00
Christophe Romain 914578a85e Fix start via systemd (#978) 2016-03-24 11:06:42 +01:00
Christophe Romain df4c551f06 Specify lacking nodename (thanks to hamano)(#1020) 2016-03-24 10:21:51 +01:00
Mickael Remond a3a33bd5fc Allow running test groups independently
We need to be able to run only a few test groups, even if we do not have all
database backends installed and configured locally.

ejabberd test suite configures a specific host per backend. I changed ejabberd
to allow ignoring some hosts from config file on start, by providing the exact
list of hosts we want to start.

This is done by setting an ejabberd app Erlang environment variable 'hosts' and
passing the list of hosts we want to actually define.

When doing so, the backend specific hosts defined in ejabberd test configuration file
are simply ignored. As a result, we do not try to connect to unavailable backends.

I linked that part to CT run test by defining the hosts list based on environment variable
CT_BACKENDS. This variable is expected to be a comma separated list of available backends.

When Erlang Common Tests are run with that environment variable set, only the host matching
the name of the backend will be set, plus the default "localhost", common to many tests.

This can be combined with rebar ct groups list.

Example commands to run tests:
CT_BACKENDS=riak,mnesia rebar ct suites=ejabberd
CT_BACKENDS=mnesia rebar ct suites=ejabberd groups=mnesia
2016-03-24 10:02:13 +01:00
Mickael Remond 7066338948 Enable Riak test suite on Travis-CI 2016-03-23 16:16:50 +01:00
Evgeniy Khramtsov cb27a3540e Fix is_connected/0 function 2016-03-22 20:01:23 +03:00
Evgeniy Khramtsov 61e914a83f Keep alive Riak connections by default 2016-03-22 19:32:30 +03:00
Evgeniy Khramtsov b90c3764c0 Fix a typo in travis.yml 2016-03-22 19:05:38 +03:00
Evgeniy Khramtsov bdce5556bd Tell Travis not to fail if some tests are skipped 2016-03-22 19:03:06 +03:00
Evgeniy Khramtsov 57f7b34b90 Do not auto append IP suffix to usernames (#1008) 2016-03-22 13:25:34 +03:00
Mickael Remond f8cf1aef91 Disable Riak test on Travis as they are too unpredictable on Travis
For now, we are running them on local Jenkins
2016-03-21 19:43:59 +01:00
Badlop e7ef65a22d Improve ban_account command to work with other DBs than Mnesia (#977) 2016-03-21 18:30:05 +01:00
Badlop 107569a17d New command delete_mnesia deletes all tables that can be exported 2016-03-21 16:19:06 +01:00
Mickael Remond 0112135096 Elixir test suite is already run with global CT run command 2016-03-21 14:12:00 +01:00
Mickaël Rémond 4be9cc1b6d Merge pull request #1029 from processone/coveralls
Add support for test code coverage
2016-03-21 12:45:02 +01:00
Mickael Remond 95475966fd We do not have C code to cover, they are in dependencies. 2016-03-21 12:15:07 +01:00
Mickael Remond ef04dd75aa Add Coveralls support 2016-03-21 12:01:20 +01:00
Paweł Chmielowski 3441157a38 Use static key for mysql repo 2016-03-21 11:02:32 +01:00
Mickael Remond c98df3c0da Attempting to use other keyserver, as we see failure from Travis fetching 2016-03-21 10:06:07 +01:00
Mickael Remond c924cd42ff Run basic Elixir unit tests 2016-03-21 09:45:40 +01:00
Mickael Remond 31c194a682 Add simple Elixir unit test on jid:from_string 2016-03-21 09:44:23 +01:00
Mickael Remond 5b7dc0c215 Merge branch 'master' of github.com:processone/ejabberd 2016-03-21 09:43:14 +01:00
Mickael Remond 0e3026539e Comment on error failures in logs + indenting 2016-03-21 09:42:59 +01:00
Badlop dc7b2c45c2 Fix indentation of mod_register in default configuration file 2016-03-19 17:42:12 +01:00
Evgeny Khramtsov cf9ef456b7 Merge pull request #1022 from hamano/riak_auth
riak authentication support
2016-03-18 23:10:37 +04:00
Randy Barlow 7b5825a205 Use the v0.2 release of luerl instead of a commit.
The luerl project has made a tag for v0.2, which should be usable
by ejabberd. Discussion about the v0.2 release is here:

https://github.com/rvirding/luerl/issues/60
2016-03-18 14:22:59 -04:00
HAMANO Tsukasa 2d103b4ae1 support riak authentication 2016-03-19 01:41:14 +09:00
Christophe Romain 939bb244e1 Extend scope of ejabberdctl ping 2016-03-18 11:08:30 +01:00
Christophe Romain f19a54e9a1 Escape quoting node name for ejabberdctl ping 2016-03-18 10:22:11 +01:00
Paweł Chmielowski ef02053a9d Fix issue #1015 2016-03-17 18:41:39 +01:00
Mickaël Rémond d9bb3730b7 Merge pull request #926 from lpil/fix/remove-empty-mod
Remove empty and unused module
2016-03-16 18:28:01 +01:00
Paweł Chmielowski 7b72247b2c Don't use jlib:jid_remove_resource 2016-03-16 13:32:19 +01:00
Paweł Chmielowski 34bc698526 Merge pull request #1011 from oxoWrk/master
Bare JID in 'from' of Roster Push (RFC 6121 section 2.1.6) in mod_adm…
2016-03-16 11:37:25 +01:00
Paweł Chmielowski efbaba5d04 Make auto generated resources shorter 2016-03-16 11:30:45 +01:00
Badlop c985a2bd3d Start ezlib only if required, as it's optional (#1006) 2016-03-16 11:11:43 +01:00
Mickael Remond 74053b114e When building Elixir inside ejabberd, rely on version 1.1 for Erlang R17 compliance 2016-03-16 09:01:40 +01:00
Mickael Remond b40154f8f4 Update OTP release to use and drop release 17.1
Attempt to build with Elixir
2016-03-16 08:55:25 +01:00
Mickael Remond 3c2cd91fb1 Merge branch 'master' of github.com:processone/ejabberd 2016-03-15 22:42:15 +01:00
Mickael Remond 367adc2113 Better error reporting when running Elixir test suite 2016-03-15 22:42:07 +01:00
Paweł Chmielowski 5b5548b8ca Produce less verbose logs for tests on travis 2016-03-15 18:14:27 +01:00
root 058b3d96bf Bare JID in 'from' of Roster Push (RFC 6121 section 2.1.6) in mod_admin_extra 2016-03-15 10:57:56 +05:00
Holger Weiss 68675effac Apply cosmetic changes to GitHub templates 2016-03-15 00:12:01 +01:00
badlop 3fef1a4435 Merge pull request #991 from suchatorg/patch-1
Update Galician (galego) translations
2016-03-14 17:08:30 +01:00
Carlos 7f25c3b3e8 Update gl.po 2016-03-14 16:52:16 +01:00
Evgeny Khramtsov dcefb6bbe3 Merge pull request #980 from sharewax/EJAB-1480
EJAB-1480: fix issue with retreiving user roster
2016-03-14 17:49:01 +03:00
Badlop 5351e8236d Fix Addresses element which lacked others local destinations
When sending single packet, in addresses include all other group
destinations, not only oneself
2016-03-14 12:53:14 +01:00
Carlos 9440049208 Update gl.po 2016-03-14 12:47:52 +01:00
Holger Weiss b871fbba1b Fix result type of "connected_users_info" command
Closes #1002.
2016-03-14 00:51:12 +01:00
Holger Weiss 91573a8e82 Don't store watchdog notifications in MAM archives 2016-03-14 00:05:50 +01:00
Evgeniy Khramtsov 55c567ff00 Unregister route at the very end 2016-03-13 17:37:39 +03:00
Evgeniy Khramtsov 5a4b7817df Add ODBC backend for MIX 2016-03-13 15:38:50 +03:00
Evgeniy Khramtsov 50e5cdc2fa Add ODBC tests for MIX 2016-03-13 13:16:55 +03:00
Evgeniy Khramtsov 5045fb584d Define pubsub node configuration per route/host explicitly 2016-03-13 13:16:43 +03:00
Evgeniy Khramtsov 357e48fb6b Make it possible to get virtual host of a registered route 2016-03-13 11:38:40 +03:00
Mickael Remond 9ceeaf213b Provide guidance for issue reporting and pull requests on Github 2016-03-12 17:54:23 +01:00
Christophe Romain 9297782868 Fix config fetch after host/serverhost cleanup 2016-03-11 17:25:46 +01:00
Holger Weiss 0d1edc4771 Don't enable in-band registration by default 2016-03-11 12:31:16 +01:00
Mickaël Rémond 1336c6c9fa Merge pull request #997 from tnull/fix_auth_method_order
Minimal auth_method ordering fix during configuration merge.
2016-03-11 11:37:50 +01:00
Elias Rohrer 8b03c0a385 Minimal auth_method ordering fix 2016-03-10 17:52:55 +01:00
Evgeniy Khramtsov 15ee72138a Add tests for MIX 2016-03-10 17:42:37 +03:00
Mickael Remond 92a0181932 Lager to Elixir Logger bridge is now compliant with ejabberd loglevel set / get
This should fix #966
2016-03-09 22:30:46 +01:00
Mickael Remond 035c63fd2a Fix call to lager_util:is_loggable/3 2016-03-09 21:03:06 +01:00
Mickael Remond 9e6efaf9bc Use p1_time_compat util for generating timestamp 2016-03-09 20:57:01 +01:00
Mickael Remond f4ee8a2505 Add Elixir Logger Backend to bridge logs from lager
We will need to support loglevel bridging.
It should help with #966
2016-03-09 19:12:56 +01:00
Paweł Chmielowski 842d52352a Fix escaping of argument in iexlive and iexdebug 2016-03-09 14:26:28 +01:00
Evgeniy Khramtsov e31799a3b1 Define mod_opt_type/1 callback 2016-03-09 11:19:15 +03:00
Evgeniy Khramtsov 1860801e36 Unregister hooks and iq handlers on terminate 2016-03-09 11:14:45 +03:00
Holger Weiss ae4fa22180 mod_http_upload: Add XEP-0363 v0.2 support
Include the maximum file size in the service discovery information, as
specified by XEP-0363, version 0.2.
2016-03-09 00:27:06 +01:00
Evgeniy Khramtsov b5121a346d Experimental MIX (XEP-0369) support 2016-03-08 20:04:29 +03:00
Carlos b6289d646f Update gl.po 2016-03-08 01:21:37 +01:00
Carlos c065a2c5b9 Update gl.po 2016-03-07 22:26:46 +01:00
badlop 6e40573c13 Merge pull request #989 from galambalazs/patch-1
fix syntax highlighting by keeping "~s" together
2016-03-07 19:06:59 +01:00
badlop eb0890284a Merge pull request #988 from tnull/edoc_fix
Fixed type specifications for 'rebar doc'
2016-03-07 18:44:05 +01:00
Badlop 16c1b9a5c2 Fix format_result also in xmlrpc, after aa5caa3 (#982) 2016-03-07 17:34:08 +01:00
Balázs Galambosi 83accedded fix syntax highlighting by keeping "~s" together 2016-03-07 16:06:18 +01:00
Elias Rohrer 8e6a301026 Fixed type specifications for 'rebar doc'
- Fixed type @specs and -specs to remove 'rebar doc' errors
- Removed a lot of wrong and deprecated documentation in ejabberd_piefxis.erl
2016-03-07 15:06:19 +01:00
Anton Samets 4013629e5d EJAB-1480: fix issue with retreiving user roster 2016-03-04 15:52:38 +03:00
Paweł Chmielowski 6e14a47316 Define opt_type required be ejabberd_config behaviour. 2016-03-04 11:45:18 +01:00
Paweł Chmielowski 304afd75ac Compile ejabberd_config early to stop undefined behaviour warnings 2016-03-04 11:32:34 +01:00
Badlop 9c3d57e63e Mark get_queue_length obsolete, and use count_offline_messages (#970) 2016-03-04 11:09:14 +01:00
Christophe Romain 44978ce978 ext_mod: switch to fast_xml and remove old p1_logger reference 2016-03-03 15:46:15 +01:00
Christophe Romain 10d6c330a5 Fix pubsub disco after host/serverhost cleanup 2016-03-03 14:52:03 +01:00
Evgeniy Khramtsov e95cf420a2 Enable flexible offline on disco#info as well 2016-03-03 14:10:40 +03:00
Christophe Romain 3ecd7e850c Use Elixir v1.2.3 2016-03-03 10:36:13 +01:00
Christophe Romain fee5873310 Minor format cleanup 2016-03-03 10:34:45 +01:00
Mickael Remond 96b09c587d Use upcoming version of ejabberd with Elixir 1.2 2016-03-02 13:35:35 +01:00
Alexey Shchepin 79853ad44f Missed a few calls in previous commits 2016-03-02 02:00:02 +03:00
Alexey Shchepin 9a049442ff Raise an error when there are no fields to set in ?SQL_UPSERT 2016-03-02 00:12:49 +03:00
Alexey Shchepin e21f25f5b9 Update more SQL queries 2016-03-02 00:12:49 +03:00
Alexey Shchepin 1f9fd25ff8 Update more SQL queries 2016-03-02 00:12:49 +03:00
Alexey Shchepin 968576d4f2 Update p1_pgsql tag 2016-03-02 00:12:49 +03:00
Alexey Shchepin d8fbe8a289 Update more SQL queries 2016-03-02 00:12:49 +03:00
Alexey Shchepin 6d7ce0237a Update mod_last SQL queries to the new API 2016-03-02 00:12:49 +03:00
Alexey Shchepin 2d042f078e New parse transform for ?SQL_UPSERT and ?SQL_UPSERT_T 2016-03-02 00:12:49 +03:00
Alexey Shchepin 3d8219d8f9 Update mod_roster and ejabberd_auth_odbc SQL queries to the new API 2016-03-02 00:12:49 +03:00
Alexey Shchepin 7f3bffe821 Allow balanced expressions inside @(...) in ejabberd_sql_pt 2016-03-02 00:12:49 +03:00
Alexey Shchepin 99255631dd Updated some mod_offline SQL queries to the new API 2016-03-02 00:12:11 +03:00
Alexey Shchepin ba35c1ed9d Use 'any' to match any DBMS in sql_query 2016-03-01 22:50:20 +03:00
Alexey Shchepin 437e768e4a Better error handling in ejabberd_sql_pt 2016-03-01 22:50:07 +03:00
Alexey Shchepin c58a4be6ee Support for run-time SQL queries selection depending on DBMS version 2016-03-01 22:49:56 +03:00
Alexey Shchepin 6374ef4866 New parse transform for SQL queries, use prepare/execute calls with Postgres 2016-03-01 22:48:30 +03:00
Mickael Remond eeac7f9b02 Update ejabberd version for hex.pm release 2016-02-29 17:51:06 +01:00
Paweł Chmielowski 8c49d1e1af Disable back undefined_function_calls xref check 2016-02-29 14:56:28 +01:00
Evgeniy Khramtsov 382c7c21ad Do not call to deprected/undefined functions from mod_shared_roster_ldap 2016-02-29 16:35:45 +03:00
Paweł Chmielowski 59fe967ebb Enable undefined_function_calls xref option 2016-02-29 13:51:59 +01:00
Holger Weiss 6d8c7232d8 mod_register_web: Choose the right error messages 2016-02-29 00:39:57 +01:00
Evgeniy Khramtsov 6b126171da Improve LDAP shared roster support (EJAB-1480) 2016-02-26 17:27:12 +03:00
Christophe Romain 56523784e1 Implementation of pubsub#itemreply (EJAB-1347)(#928) 2016-02-26 10:32:03 +01:00
Christophe Romain 1c6d20924b Fix host/serverhost usage (#902) 2016-02-26 09:33:07 +01:00
Marek Foss ebaf750a9b Fix for #935 2016-02-25 18:56:43 +01:00
Paweł Chmielowski 217ba09408 Add extra items to .gitignore 2016-02-25 12:23:23 +01:00
Paweł Chmielowski 24617b5e25 Split long lines 2016-02-25 12:23:23 +01:00
Paweł Chmielowski d9ec923357 Elixir want {src_dirs, ["include"]} on top of a config 2016-02-25 12:23:23 +01:00
Paweł Chmielowski a9de13c5d9 Don't include empty line after java example 2016-02-25 12:14:17 +01:00
Badlop 2c856c71f6 Update translated files, as there wee many improvements 2016-02-24 12:34:53 +01:00
Christophe Romain 576c10ee3a Make caps warning less confusing (#955) 2016-02-23 14:14:24 +01:00
Holger Weiss 44f581c3b5 mod_http_upload: Also expand @HOST@ in 'docroot'
In some environments, it might be desirable to use separate document
roots for each virtual host.
2016-02-20 20:13:30 +01:00
Holger Weiss b971449f12 mod_http_upload: Expand 'docroot' before using it
Expand the @HOME@ keyword within the 'docroot' value before setting the
permissions of the document root directory.
2016-02-20 18:21:38 +01:00
Alexey Shchepin 9db9cbd814 Merge pull request #961 from weiss/compression-after-sasl
Accept stream compression request after SASL
2016-02-19 21:02:26 +03:00
Holger Weiss 5b4aefbacd Accept stream compression request after SASL
This is an updated version of the patch submitted to EJAB-1382 by
Alexey (thanks!).
2016-02-19 18:53:28 +01:00
Evgeniy Khramtsov 8f9c18edf2 Add Redis backend to the test suite 2016-02-19 17:06:41 +03:00
Evgeniy Khramtsov 4b0860e7de Make it possible to define 'sm_db_type' per virtual host 2016-02-19 16:38:43 +03:00
Badlop eece6e69cb Fix format_result so get_room_options command works again after aa5caa3 2016-02-17 20:43:35 +01:00
Paweł Chmielowski d40a091eda Another fix for \n in ejabberdctl arguments 2016-02-15 15:21:27 +01:00
badlop c9c59f00ad Merge pull request #953 from cdroege/fix_css
Fix the color of links in tables in web admin
2016-02-15 12:52:54 +01:00
Paweł Chmielowski 47a67c7320 Allow to pass \n in argument to ejabberdctl 2016-02-12 23:38:39 +01:00
Christian Dröge c579313821 Fix the color of links in tables in web admin 2016-02-12 18:45:45 +01:00
badlop 06f2237132 Merge pull request #951 from rodrigues/master
Update Portuguese (Brazil) translations
2016-02-12 13:16:46 +01:00
Victor Rodrigues 4f7f66fae8 Update Portuguese (Brazil) translations 2016-02-11 23:16:41 +01:00
Holger Weiss eaaab45c14 mod_muc_room: Let members see admin/owner JIDs
Let members retrieve all affiliation lists in non-anonymous rooms, not
just the list of members.
2016-02-11 22:52:27 +01:00
Holger Weiss 041e886b87 mod_muc_room: Don't expose JIDs in anonymous rooms
Don't let room members retrieve the member list unless the room is
non-anonymous.
2016-02-11 22:24:14 +01:00
Holger Weiss 3908c9710c Travis CI: Make sure Riak finds callback module
Riak calls back into ejabberd_riak during MapReduce.
2016-02-11 21:53:36 +01:00
Evgeniy Khramtsov 5680d4c3e9 Get rid of calls to jlib.erl from tests 2016-02-11 12:19:23 +03:00
Evgeniy Khramtsov 8e6adb4b3c Do not forget sending initial presence in XEP-0013 test 2016-02-11 11:53:33 +03:00
Holger Weiss 17be70339c mod_mam: Send new preferences when they are set
If a client updates the archiving preferences, include the new
preferences with the IQ result (as mandated by XEP-0313).
2016-02-10 23:06:31 +01:00
Evgeniy Khramtsov d6323a7b5e Add tests for XEP-0013 2016-02-10 16:15:43 +03:00
Badlop 02a519a11e Mention new XEP support 2016-02-08 21:35:46 +01:00
Badlop 1de085ec23 Prepare room JID in create_room command 2016-02-08 21:35:26 +01:00
Paweł Chmielowski 217b6da5fd Fix example value for rescode return type 2016-02-09 16:44:57 +01:00
Paweł Chmielowski d5b3e6af00 More documentation of arguments in mod_admin_extra 2016-02-09 16:33:32 +01:00
Evgeniy Khramtsov 4839ba5ae4 XEP-0013: Flexible Offline Message Retrieval support 2016-02-09 17:59:54 +03:00
Paweł Chmielowski 2bca8d5121 Remove remanants of pre-binary strings 2016-02-09 15:50:35 +01:00
Christophe Romain 583476380a Use muc_online_room record for pattern matching 2016-02-09 15:33:00 +01:00
Paweł Chmielowski c0da9b43ce Better presentation of result description in docs 2016-02-09 13:18:01 +01:00
Paweł Chmielowski 30d171e79e Start documenting arguments in mod_admin_extra commands 2016-02-09 13:03:40 +01:00
Paweł Chmielowski d36c351fc7 Typo in markdown generator 2016-02-09 13:03:40 +01:00
Holger Weiss 10ed4a1c85 Add most status codes only to initial MUC presence 2016-02-08 20:10:20 +01:00
Badlop 04a315eb52 Fix section links to the Guide in the WebAdmin 2016-02-08 16:16:53 +01:00
badlop cf2f80bd09 Merge pull request #944 from cdroege/configureable_host-mod_register_web
Allow to modify host when deleting account or changing password over web
2016-02-08 13:48:11 +01:00
badlop ebd5ee36d9 Merge pull request #945 from nikolauspolak/master
Update German translation
2016-02-08 13:41:48 +01:00
Evgeny Khramtsov 2bfb619d19 Merge pull request #914 from weiss/mam-expose-jid
Expose occupant JID in MUC MAM messages whenever possible
2016-02-08 14:23:19 +03:00
Mickael Remond 6af9aa3de8 Add link to ProcessOne site 2016-02-08 11:50:04 +01:00
Mickael Remond 3af055fabe Link to Hex.pm 2016-02-08 11:34:52 +01:00
Mickael Remond ed30bd64cd Preparing to release beta package on hex.pm 2016-02-08 10:54:05 +01:00
Mickael Remond 0b1620a45c Remove compile warnings 2016-02-08 10:50:28 +01:00
Holger Weiss bf49c292f8 Omit redundant check for overcrowded MUC room
The send_update_presence/4 function already checked whether the room is
overcrowded before calling send_update_presence1/4, so there's no need
to have send_new_presence/4 perform the same check.
2016-02-08 00:46:33 +01:00
Holger Weiss 8098f7d9a8 mod_mam: Don't let outcasts access MUC archive
XEP-0313 says: "A MUC archive MUST check that the user requesting the
archive has the right to enter it at the time of the query [...].  In
the case of open MUC rooms, the MUC archives can generally be accessed
by any users [...] who do not have an affiliation of 'outcast'".
2016-02-08 00:16:02 +01:00
Holger Weiss a31f59ea31 XEP-0198: Fix session timeout corner case
If the "resend_on_timeout" option is set to 'if_offline' and a pending
stream management session is terminated because a new session is opened
by the same resource (while no other resource is online), resend
unacknowledged messages rather than bouncing error messages.
2016-02-06 22:28:55 +01:00
Nikolaus Polak f44bf00e0d Update German translation 2016-02-06 09:25:39 +01:00
Badlop 7435ee464f Rename option to regexp_room_id for consistency with other options (#905) 2016-02-05 12:09:27 +01:00
HAMANO Tsukasa 268f0b30ec add room_id_regexp option 2016-02-05 12:09:18 +01:00
Christian Dröge 30388fa2bf Allow to modify host when deleting account or changing password over web 2016-02-04 21:31:16 +01:00
Pablo Polvorin 942072cf9d Make hibernate timeouts configurable
Two *global* options added:
c2s_hibernate and receiver_hibernate.

Default if not specified is 90000, the previous hardcoded value.
2016-02-04 15:45:29 -03:00
Mickaël Rémond e207d0af56 Merge pull request #943 from processone/deps-cleanup
Dependencies rework
2016-02-04 15:48:56 +01:00
Mickael Remond 89dda473cf Convert tests to Fast XML 2016-02-03 19:22:59 +01:00
Mickael Remond dfc29ea03c Switch to Fast XML module 2016-02-03 19:03:17 +01:00
Badlop 315fc9493e Handle spaces in vsn attribute of app file when installing deps (#940) 2016-02-03 17:45:27 +01:00
Mickael Remond 5539db37b6 Remove reference to p1_logger 2016-02-03 16:26:15 +01:00
Mickael Remond 71ee0d56fa Switch to fast_tls and update app names 2016-02-03 16:13:16 +01:00
Mickael Remond 9ae1371c6e Convert more dependencies to new repository / packages 2016-02-03 12:30:12 +01:00
Mickael Remond e83ae9e461 Proper name for included applications 2016-02-03 11:31:23 +01:00
Mickael Remond 0de222d998 Convert code to use Fast YAML 2016-02-03 11:30:48 +01:00
Mickael Remond b137ee3beb Move to new dependencies for SIP and STUN 2016-02-03 11:26:14 +01:00
Mickael Remond 99b5c5712c Move to new iconv package 2016-02-03 11:17:24 +01:00
Mickael Remond bad50b8dd1 Move database dependencies to new repository / modules 2016-02-03 11:10:11 +01:00
Mickael Remond ba11165fb4 Syntax highlight file + comment on rebar_elixir_plugin 2016-02-03 11:00:12 +01:00
Mickael Remond 9b837860cd Switch a few version to hex.pm version 2016-02-03 10:55:40 +01:00
Mickael Remond a457105831 Run ejabberd test on Erlang R18 2016-02-03 10:16:05 +01:00
Mickael Remond e8ba7bce24 Use stringprep app name 2016-02-03 10:12:25 +01:00
Christophe Romain 59c471aad5 Merge pull request #937 from Iperity/fix-presence-based-delivery
Fix presence-based delivery
2016-02-02 15:41:21 +01:00
Nathan Bruning 80fc34fb0c Fix presence-based delivery 2016-02-02 14:06:07 +01:00
Paweł Chmielowski fa55ac5c8f More strict checking for MUC initial presence 2016-02-01 12:09:58 +01:00
Paweł Chmielowski dc52ec904c Send presence with code 170 only in initial presence from MUC 2016-02-01 11:30:49 +01:00
Evgeniy Khramtsov d3ee2a9c18 Add 'import_prosody' command 2016-01-29 14:30:50 +03:00
Evgeniy Khramtsov 54dc2f56c6 Import privacy lists from Prosody 2016-01-29 14:14:08 +03:00
Richard ae77b1300a change mod_ping Timers using maps instead of dict 2016-01-29 00:07:38 +08:00
Evgeniy Khramtsov b20db3b736 Initial version of migration script from Prosody to ejabberd 2016-01-28 14:23:51 +03:00
Paweł Chmielowski aaa84dc118 Need extra line before ## in markdown 2016-01-27 11:42:13 +01:00
Louis Pilfold d89bbba181 Remove empty and unused module 2016-01-26 21:25:34 +00:00
Paweł Chmielowski 239b1c6f74 Always use lagger 2016-01-26 14:34:58 +01:00
Christophe Romain b2c6e397fc Set set utf8mb4 charset on mysql connection 2016-01-26 13:47:24 +01:00
Paweł Chmielowski 621dff7307 Add header to generated markdown file 2016-01-26 10:46:38 +01:00
Paweł Chmielowski bdeb4a7e32 Add a way to get all ejabberd_commands, not only those that was registered
This is part of (TECH-1828).
2016-01-26 10:00:28 +01:00
Mickael Remond fc2d5da112 Merge branch 'master' of github.com:processone/ejabberd 2016-01-25 23:28:33 +01:00
Mickael Remond 28569d6209 As default, attempt to add path to Elixir 2016-01-25 23:28:27 +01:00
Paweł Chmielowski 22696e8388 Geenarte markdown that is acceptable by docs.ejabberd.org processor 2016-01-25 16:51:54 +01:00
Mickael Remond 6c499f510b Merge branch 'master' of github.com:processone/ejabberd 2016-01-25 10:47:29 +01:00
Mickael Remond 0b492f43fe If lager is false, we will use p1_logger 2016-01-25 10:47:20 +01:00
Badlop 60175784f0 Updated Portuguese-Brazilian translation (thanks to Otávio Fernandes) 2016-01-24 19:59:53 +01:00
Mickael Remond 14c0ff1c82 Add missing description 2016-01-24 10:19:28 +01:00
Mickael Remond a7e3df4fec Merge branch 'master' of github.com:processone/ejabberd 2016-01-24 10:07:25 +01:00
Mickael Remond 67b5162df9 Prepare hex.pm release 2016-01-24 10:07:12 +01:00
Paweł Chmielowski a2a692d081 Merge pull request #919 from hamano/rename_timestamp_function
rename timestamp function #917
2016-01-24 07:51:25 +01:00
Mickael Remond dae41ec183 ejabberd will handle Mnesia start
Mix need to know if must not autostart Mnesia before ejabberd
2016-01-23 19:00:22 +01:00
Mickael Remond 0920511de2 lager is the default logger, we need to reverse the define flag
Also make sure that configure without option does not force lager to false
2016-01-23 18:57:29 +01:00
Mickael Remond e97195b3a6 Mix requires override 2016-01-23 18:44:38 +01:00
Mickael Remond a3931e6b73 lager is the default logger, we need to reverse the define flag 2016-01-23 18:43:06 +01:00
Mickael Remond 7cc951ab1b Make sure all version are consistent before big repositories changes 2016-01-23 18:42:16 +01:00
Mickael Remond dae1ec2b7b Make sure mix does not trigger conflict on p1_utils 2016-01-23 17:36:40 +01:00
Mickael Remond f933cae2d6 Update Elixir dependency to latest p1_utils and cache_tab 2016-01-23 17:29:18 +01:00
HAMANO Tsukasa 5a85b0fb52 rename timestamp function #917 2016-01-23 17:58:10 +09:00
Christophe Romain a189655f31 Add missing ref key 2016-01-21 12:56:03 +01:00
Badlop 42f86e7c3b Fix order of arguments references 2016-01-20 19:43:12 +01:00
badlop 3d42be5394 Merge pull request #915 from fotock/master
Update translations
2016-01-20 19:38:54 +01:00
Shelley Shyan 46a85d3f9b Merge pull request #1 from fotock/fotock-patch-1
Update zh.po
2016-01-21 01:02:28 +08:00
Shelley Shyan e2c1368e0e Update zh.po
Translated untranslated. Fixed fuzzy messages. Other fixes.
2016-01-21 01:01:14 +08:00
Shelley Shyan 3d3034cd11 Update zh.po
to be continued
2016-01-20 23:07:45 +08:00
Holger Weiss b62607037a mod_mam: Expose MUC occupant JID in more cases
Include the occupant JID with MUC MAM messages if the room is not
anonymous, and also when the MAM user sent the MUC message himself (not
just in the case where he is a room moderator).
2016-01-20 00:02:40 +01:00
Badlop 278d8a6fcd Fix fuzzy tag in correct string 2016-01-19 22:34:58 +01:00
Christophe Romain 2ddbd032ee Add error handling to send_stanza 2016-01-19 16:16:04 +01:00
Holger Weiss 5e4ed4266d mod_mam: Strip existing JID tags from MUC messages
Strip any pre-existing <x/> tags which have an <item/> child with a
'jid' attribute from MUC MAM messages.  This way, if such a tag exists,
clients can be sure it was added by mod_mam.
2016-01-19 00:39:10 +01:00
Badlop 3feceb8279 Update Czech translation (thanks to Jan Pinkas) 2016-01-18 19:09:58 +01:00
Badlop 6b775fb9a1 Update Walon translation (thanks to Pablo Saratxaga) 2016-01-18 18:44:55 +01:00
Badlop 05bc0d4d17 Update Ukrainian translation (thanks to Oleg Deordiev) 2016-01-18 18:44:50 +01:00
Alexey Shchepin a150bf8fdc Make C2S session establishment optional (ECS-11) 2016-01-18 16:33:57 +03:00
Holger Weiss bd383fb8c1 mod_mam: Remove unused code
This mod_mam version doesn't store groupchat messages in user archives,
and it also doesn't support the "store_body_only" option.
2016-01-18 13:27:29 +01:00
Paweł Chmielowski 9741dba51f Update polish localisation 2016-01-18 13:18:40 +01:00
Paweł Chmielowski ee1cf939c5 Make --disable-debug work again 2016-01-18 13:10:28 +01:00
Holger Weiss 0125870f92 Merge remote-tracking branch 'processone/pr/907'
* processone/pr/907:
  don't escape ERL_OPTIONS
2016-01-17 00:08:30 +01:00
Holger Weiss 63777f830d Use maps instead of dicts in HTTP upload modules
ejabberd currently depends on Erlang/OTP 17.1 or higher, so we can now
use maps.
2016-01-16 01:30:22 +01:00
badlop 6ac839dd76 Merge pull request #906 from hamano/stats_processes
add stats processes command
2016-01-15 19:26:23 +01:00
badlop c31875cad0 Merge pull request #911 from hamano/ja
update japanese translation
2016-01-15 19:21:53 +01:00
HAMANO Tsukasa 7ab3b0d793 update japanese translation 2016-01-16 00:35:23 +09:00
HAMANO Tsukasa ad448efa1d update japanese translation 2016-01-16 00:15:24 +09:00
Evgeniy Khramtsov c8bc6cecdc Fix records in mod_muc.hrl 2016-01-15 15:46:07 +03:00
Evgeniy Khramtsov 33b67f54ba Include mod_muc.hrl 2016-01-15 15:45:16 +03:00
Evgeniy Khramtsov a83c5a8f3a Do not redefine records 2016-01-15 15:44:50 +03:00
Evgeniy Khramtsov 1d452c98c1 Describe option type of 'domain_balancing' 2016-01-15 14:32:10 +03:00
Badlop 09ab01084d Update Spanish and Catalan translation 2016-01-15 12:27:22 +01:00
Badlop fc1237963a Update translations files 2016-01-15 10:40:49 +01:00
Holger Weiss ddaa409ee2 XEP-0198: Let MAM take care of pending messages
If a stream management session times out for a user who appears to be
using MAM, drop any unacknowledged messages rather than resending or
bouncing them.  This avoids duplicates or bogus error messages.

However, this is only done if the new mod_mam option "assume_mam_usage"
is set to 'if_enabled' or 'on_request'.  In the former case, a user is
assumed to be using MAM if archiving is enabled for his account.  In the
latter case, MAM usage is assumed only if archiving was explicitly
requested by the client, or if archiving was enabled by means of
mod_mam's "request_activates_archiving" option.
2016-01-15 01:08:22 +01:00
HAMANO Tsukasa b244bce49c don't escape ERL_OPTIONS 2016-01-15 00:30:40 +09:00
HAMANO Tsukasa 6cb1905f7c add stats processes command 2016-01-15 00:27:15 +09:00
Holger Weiss db04cdf2ca mod_mam: Sort messages returned by Mnesia
Sort the messages retrieved from an Mnesia archive before selecting the
subset limited by the <max/> value.  This makes sure the desired subset
of messages is sent to the client.
2016-01-14 02:27:02 +01:00
Holger Weiss 58c8fc5770 mod_mam: Limit result set page size
If the client doesn't specify a maximum number of messages to retrieve
per page, set a limit of 50 messages.  If the client specifies a limit
larger than 250, cap the number to 250 messages.

These limits aren't enforced for MAM v0.2 requests though, as that
version of the XEP doesn't require clients to support RSM.  The newer
revisions say that "a server MAY place a reasonable limit on how many
stanzas may be pushed to a client in one request.  Whether or not the
client query included a <set/> element, the server MAY simply return its
limited results, modifying the <set/> element it returns appropriately."
2016-01-14 02:12:28 +01:00
Holger Weiss 35ec0d58a4 mod_mam: Reject <index/>-based paging
If an <index/> is specified in the MAM request, reject the request
rather than ignoring the desired index and returning wrong results.
XEP-0059 says that the server "MAY return a <feature-not-implemented/>
error."
2016-01-14 01:39:19 +01:00
Holger Weiss 11afa45646 mod_mam: Remove unused variable 2016-01-14 01:15:11 +01:00
Holger Weiss 89f63a4fdf mod_mam: Check whether MUC message is desired 2016-01-14 01:13:16 +01:00
Holger Weiss 85f4f90b45 mod_mam: Support XEP-0313 v0.2 MUC archive queries 2016-01-14 00:58:48 +01:00
Holger Weiss 8117092e6a mod_mam: Respond to form requests
If the client requests a data form with the supported filters, return it
as per XEP-0313 v0.3 and newer.
2016-01-13 23:56:05 +01:00
Holger Weiss 89b1700279 mod_mam: Add 'from' attribute to <delay/> tag 2016-01-13 23:17:23 +01:00
Holger Weiss 9cd048c442 mod_mam: Improve binary comparison of message UIDs
Make sure the binary comparison performed when clients use message UIDs
to page through Mnesia archives yields correct results even if the
specified UIDs don't have the same number of digits as the UIDs of the
stored messages.  This way, MAM will continue to work as expected after
migrating from mod_mam_mnesia to mod_mam.
2016-01-13 23:01:51 +01:00
Holger Weiss 3dccc20d8b mod_mam: Add "delete_old_mam_messages" command
The new "delete_old_mam_messages" command allows for purging all MAM
messages of the specified type older than the specified number of days.
(Currently only implemented for Mnesia archives.)
2016-01-13 22:46:30 +01:00
Holger Weiss a61b0c303d mod_mam: Add "request_activates_archiving" option
Enabling "request_activates_archiving" tells mod_mam not to store any
messages for a user until his client issued a MAM request, regardless of
mod_mam's "default" option.  Once a MAM request is issued, messages are
archived as usual.
2016-01-13 21:38:08 +01:00
Holger Weiss 0183b2487e Advertise MUC MAM v0.4.1 in room JID's disco#info 2016-01-13 20:30:44 +01:00
Badlop f448ff608a Update copyright to 2016 (#901) 2016-01-13 12:29:14 +01:00
Evgeniy Khramtsov fd3e3a99c5 Log failed SQL requests 2016-01-13 14:13:32 +03:00
Evgeniy Khramtsov 776fe8b32a Fix MAM MUC for v0.4.1 2016-01-13 11:45:08 +03:00
wcy123 3e49bf0e83 bug fix: ejabberd:start_app need to pass Type to application:start 2015-07-30 18:57:59 +08:00
Ben Langfeld 917d48f30b Use SASL PLAIN authzid as client identity if auth module permits it
This allows the authentication modules to perform SASL proxy authentication. It puts the onus on them to authorize the authcid to masquerade as the authzid. Doesn't currently implement such functionality in existing auth modules, since they cannot currently codify a relationship between the two identities. Does not permit the authzid to use a domain differently from the one of the connection.

Note: digest might not work, but I have no interest in it, being deprecated.
2015-05-06 14:12:15 -03:00
Ben Langfeld d9814709e2 Remove commented code 2015-05-06 12:55:35 -03:00
370 changed files with 28406 additions and 13733 deletions
+15
View File
@@ -0,0 +1,15 @@
> What version of ejabberd are you using?
> What operating system (version) are you using?
> How did you install ejabberd (source, package, distribution)?
> What did not work as expected? Are there error messages in the log? What
> was the unexpected behavior? What was the expected result?
+20
View File
@@ -0,0 +1,20 @@
We are open to contributions for ejabberd, as GitHub pull requests (PR).
Here are a few points to consider before submitting your PR. (You can
remove the whole text after reading.)
1. Does this PR address an issue? Please reference it in the PR
description.
2. Have you properly described the proposed change?
3. Please make sure the change is atomic and does only touch the needed
modules. If you have other changes/fixes to provide, please submit
them as separate PRs.
4. If your change or new feature involves storage backends, did you make
sure your change works with all backends?
5. Do you provide tests? How can we check the behavior of the code?
6. Did you consider documentation changes in the
processone/docs.ejabberd.im repository?
+2
View File
@@ -39,8 +39,10 @@ XmppAddr.hrl
/vars.config
/dialyzer/
/test/*.beam
/test/*.ctc
/logs/
/priv/sql
/rel/ejabberd
/_build
/mnesiadb
/.rebar
+24 -4
View File
@@ -1,11 +1,12 @@
language: erlang
otp_release:
- 17.1
- 17.5
- 18.3
services:
- riak
- redis-server
before_install:
#
@@ -16,15 +17,26 @@ before_install:
# See: https://github.com/travis-ci/travis-ci/issues/1986
#
- sudo sed -i -e s/table_cache/table_open_cache/ -e /log_slow_queries/d /etc/mysql/my.cnf
- sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 5072E1F5
- sudo apt-key adv --import .travis/mysql_repo_key.asc
- sudo add-apt-repository 'deb http://repo.mysql.com/apt/ubuntu/ precise mysql-5.6'
- sudo apt-get -qq update
- sudo apt-get -qq -o Dpkg::Options::=--force-confold install mysql-server-5.6
# /END MYSQL 5.6
- pip install --user coveralls-merge
install:
- sudo apt-get -qq install libexpat1-dev libyaml-dev libpam0g-dev libsqlite3-dev
before_script:
# Ulimit: See Travis-CI issue report: https://github.com/travis-ci/travis-ci/issues/3328
- echo 'ulimit -n 4096' > riak
- sudo mv riak /etc/default/riak
- mkdir "$PWD/ebin"
- echo "[{riak_kv, [{add_paths, [\"$PWD/ebin/\"]}]}]." > advanced.config
- sudo mv advanced.config /etc/riak/advanced.config
- sudo service riak restart
- sudo riak-admin wait-for-service riak_kv 'riak@127.0.0.1'
- sudo riak-admin test
- mysql -u root -e "CREATE USER 'ejabberd_test'@'localhost' IDENTIFIED BY 'ejabberd_test';"
- mysql -u root -e "CREATE DATABASE ejabberd_test;"
- mysql -u root -e "GRANT ALL ON ejabberd_test.* TO 'ejabberd_test'@'localhost';"
@@ -34,18 +46,26 @@ before_script:
script:
- ./autogen.sh
- ./configure --prefix=/tmp/ejabberd --enable-all --disable-odbc --disable-elixir
- ./configure --prefix=/tmp/ejabberd --enable-all --disable-odbc
- make
- make install
- make xref
- ERL_LIBS=$PWD make test
- sed -i -e 's/ct:pal/ct:log/' test/suite.erl
- ln -sf ../sql priv/
- escript ./rebar skip_deps=true ct -v
- grep -q 'TEST COMPLETE, \([[:digit:]]*\) ok, .* of \1 ' logs/raw.log
after_script:
- find logs -name suite.log -exec cat '{}' ';'
after_failure:
- find logs -name exunit.log -exec cat '{}' ';'
# Try checking Riak database logs
- tail -n 100000 /var/log/riak/*.log
- find logs -name ejabberd.log -exec cat '{}' ';'
after_success:
- coveralls-merge erlang.json
notifications:
email: false
+96
View File
@@ -0,0 +1,96 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.9 (SunOS)
mQGiBD4+owwRBAC14GIfUfCyEDSIePvEW3SAFUdJBtoQHH/nJKZyQT7h9bPlUWC3
RODjQReyCITRrdwyrKUGku2FmeVGwn2u2WmDMNABLnpprWPkBdCk96+OmSLN9brZ
fw2vOUgCmYv2hW0hyDHuvYlQA/BThQoADgj8AW6/0Lo7V1W9/8VuHP0gQwCgvzV3
BqOxRznNCRCRxAuAuVztHRcEAJooQK1+iSiunZMYD1WufeXfshc57S/+yeJkegNW
hxwR9pRWVArNYJdDRT+rf2RUe3vpquKNQU/hnEIUHJRQqYHo8gTxvxXNQc7fJYLV
K2HtkrPbP72vwsEKMYhhr0eKCbtLGfls9krjJ6sBgACyP/Vb7hiPwxh6rDZ7ITnE
kYpXBACmWpP8NJTkamEnPCia2ZoOHODANwpUkP43I7jsDmgtobZX9qnrAXw+uNDI
QJEXM6FSbi0LLtZciNlYsafwAPEOMDKpMqAK6IyisNtPvaLd8lH0bPAnWqcyefep
rv0sxxqUEMcM3o7wwgfN83POkDasDbs3pjwPhxvhz6//62zQJ7Q2TXlTUUwgUmVs
ZWFzZSBFbmdpbmVlcmluZyA8bXlzcWwtYnVpbGRAb3NzLm9yYWNsZS5jb20+iGkE
ExECACkCGyMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAIZAQUCUwHUZgUJGmbLywAK
CRCMcY07UHLh9V+DAKCjS1gGwgVI/eut+5L+l2v3ybl+ZgCcD7ZoA341HtoroV3U
6xRD09fUgeq0O015U1FMIFBhY2thZ2Ugc2lnbmluZyBrZXkgKHd3dy5teXNxbC5j
b20pIDxidWlsZEBteXNxbC5jb20+iG8EMBECAC8FAk53Pa0oHSBidWlsZEBteXNx
bC5jb20gd2lsbCBzdG9wIHdvcmtpbmcgc29vbgAKCRCMcY07UHLh9bU9AJ9xDK0o
xJFL9vTl9OSZC4lX0K9AzwCcCrS9cnJyz79eaRjL0s2r/CcljdyIZQQTEQIAHQUC
R6yUtAUJDTBYqAULBwoDBAMVAwIDFgIBAheAABIJEIxxjTtQcuH1B2VHUEcAAQGu
kgCffz4GUEjzXkOi71VcwgCxASTgbe0An34LPr1j9fCbrXWXO14msIADfb5piEwE
ExECAAwFAj4+o9EFgwlmALsACgkQSVDhKrJykfIk4QCfWbEeKN+3TRspe+5xKj+k
QJSammIAnjUz0xFWPlVx0f8o38qNG1bq0cU9iEwEExECAAwFAj5CggMFgwliIokA
CgkQtvXNTca6JD+WkQCgiGmnoGjMojynp5ppvMXkyUkfnykAoK79E6h8rwkSDZou
iz7nMRisH8uyiEYEEBECAAYFAj+s468ACgkQr8UjSHiDdA/2lgCg21IhIMMABTYd
p/IBiUsP/JQLiEoAnRzMywEtujQz/E9ono7H1DkebDa4iEYEEBECAAYFAj+0Q3cA
CgkQhZavqzBzTmbGwwCdFqD1frViC7WRt8GKoOS7hzNN32kAnirlbwpnT7a6NOsQ
83nk11a2dePhiEYEEBECAAYFAkNbs+oACgkQi9gubzC5S1x/dACdELKoXQKkwJN0
gZztsM7kjsIgyFMAnRRMbHQ7V39XC90OIpaPjk3a01tgiEYEExECAAYFAkTxMyYA
CgkQ9knE9GCTUwwKcQCgibak/SwhxWH1ijRhgYCo5GtM4vcAnAhtzL57wcw1Kg1X
m7nVGetUqJ7fiEwEEBECAAwFAkGBywEFgwYi2YsACgkQGFnQH2d7oexCjQCcD8sJ
NDc/mS8m8OGDUOx9VMWcnGkAnj1YWOD+Qhxo3mI/Ul9oEAhNkjcfiEwEEBECAAwF
AkGByzQFgwYi2VgACgkQgcL36+ITtpIiIwCdFVNVUB8xe8mFXoPm4d9Z54PTjpMA
niSPA/ZsfJ3oOMLKar4F0QPPrdrGiEwEEBECAAwFAkGBy2IFgwYi2SoACgkQa3Ds
2V3D9HMJqgCbBYzr5GPXOXgP88jKzmdbjweqXeEAnRss4G2G/3qD7uhTL1SPT1SH
jWUXiEwEEBECAAwFAkHQkyQFgwXUEWgACgkQfSXKCsEpp8JiVQCghvWvkPqowsw8
w7WSseTcw1tflvkAni+vLHl/DqIly0LkZYn5jzK1dpvfiEwEEBECAAwFAkIrW7oF
gwV5SNIACgkQ5hukiRXruavzEwCgkzL5QkLSypcw9LGHcFSx1ya0VL4An35nXkum
g6cCJ1NP8r2I4NcZWIrqiEwEEhECAAwFAkAqWToFgwd6S1IACgkQPKEfNJT6+GEm
XACcD+A53A5OGM7w750W11ukq4iZ9ckAnRMvndAqn3YTOxxlLPj2UPZiSgSqiEwE
EhECAAwFAkA9+roFgwdmqdIACgkQ8tdcY+OcZZyy3wCgtDcwlaq20w0cNuXFLLNe
EUaFFTwAni6RHN80moSVAdDTRkzZacJU3M5QiEwEEhECAAwFAkEOCoQFgwaWmggA
CgkQOcor9D1qil/83QCeITZ9wIo7XAMjC6y4ZWUL4m+edZsAoMOhRIRi42fmrNFu
vNZbnMGej81viEwEEhECAAwFAkKApTQFgwUj/1gACgkQBA3AhXyDn6jjJACcD1A4
UtXk84J13JQyoH9+dy24714Aniwlsso/9ndICJOkqs2j5dlHFq6oiEwEExECAAwF
Aj5NTYQFgwlXVwgACgkQLbt2v63UyTMFDACglT5G5NVKf5Mj65bFSlPzb92zk2QA
n1uc2h19/IwwrsbIyK/9POJ+JMP7iEwEExECAAwFAkHXgHYFgwXNJBYACgkQZu/b
yM2C/T4/vACfXe67xiSHB80wkmFZ2krb+oz/gBAAnjR2ucpbaonkQQgnC3GnBqmC
vNaJiEwEExECAAwFAkIYgQ4FgwWMI34ACgkQdsEDHKIxbqGg7gCfQi2HcrHn+yLF
uNlH1oSOh48ZM0oAn3hKV0uIRJphonHaUYiUP1ttWgdBiGUEExECAB0FCwcKAwQD
FQMCAxYCAQIXgAUCS3AvygUJEPPzpwASB2VHUEcAAQEJEIxxjTtQcuH1sNsAniYp
YBGqy/HhMnw3WE8kXahOOR5KAJ4xUmWPGYP4l3hKxyNK9OAUbpDVYIh7BDARAgA7
BQJCdzX1NB0AT29wcy4uLiBzaG91bGQgaGF2ZSBiZWVuIGxvY2FsISBJJ20gKnNv
KiBzdHVwaWQuLi4ACgkQOcor9D1qil/vRwCdFo08f66oKLiuEAqzlf9iDlPozEEA
n2EgvCYLCCHjfGosrkrU3WK5NFVgiI8EMBECAE8FAkVvAL9IHQBTaG91bGQgaGF2
ZSBiZWVuIGEgbG9jYWwgc2lnbmF0dXJlLCBvciBzb21ldGhpbmcgLSBXVEYgd2Fz
IEkgdGhpbmtpbmc/AAoJEDnKK/Q9aopfoPsAn3BVqKOalJeF0xPSvLR90PsRlnmG
AJ44oisY7Tl3NJbPgZal8W32fbqgbIkCIgQQAQIADAUCQYHLhQWDBiLZBwAKCRCq
4+bOZqFEaKgvEACCErnaHGyUYa0wETjj6DLEXsqeOiXad4i9aBQxnD35GUgcFofC
/nCY4XcnCMMEnmdQ9ofUuU3OBJ6BNJIbEusAabgLooebP/3KEaiCIiyhHYU5jarp
ZAh+Zopgs3Oc11mQ1tIaS69iJxrGTLodkAsAJAeEUwTPq9fHFFzC1eGBysoyFWg4
bIjz/zClI+qyTbFA5g6tRoiXTo8ko7QhY2AA5UGEg+83Hdb6akC04Z2QRErxKAqr
phHzj8XpjVOsQAdAi/qVKQeNKROlJ+iq6+YesmcWGfzeb87dGNweVFDJIGA0qY27
pTb2lExYjsRFN4Cb13NfodAbMTOxcAWZ7jAPCxAPlHUG++mHMrhQXEToZnBFE4nb
nC7vOBNgWdjUgXcpkUCkop4b17BFpR+k8ZtYLSS8p2LLz4uAeCcSm2/msJxT7rC/
FvoH8428oHincqs2ICo9zO/Ud4HmmO0O+SsZdVKIIjinGyOVWb4OOzkAlnnhEZ3o
6hAHcREIsBgPwEYVTj/9ZdC0AO44Nj9cU7awaqgtrnwwfr/o4V2gl8bLSkltZU27
/29HeuOeFGjlFe0YrDd/aRNsxbyb2O28H4sG1CVZmC5uK1iQBDiSyA7Q0bbdofCW
oQzm5twlpKWnY8Oe0ub9XP5p/sVfck4FceWFHwv+/PC9RzSl33lQ6vM2wIkCIgQT
AQIADAUCQp8KHAWDBQWacAAKCRDYwgoJWiRXzyE+D/9uc7z6fIsalfOYoLN60ajA
bQbI/uRKBFugyZ5RoaItusn9Z2rAtn61WrFhu4uCSJtFN1ny2RERg40f56pTghKr
D+YEt+Nze6+FKQ5AbGIdFsR/2bUk+ZZRSt83e14Lcb6ii/fJfzkoIox9ltkifQxq
Y7Tvk4noKu4oLSc8O1Wsfc/y0B9sYUUCmUfcnq58DEmGie9ovUslmyt5NPnveXxp
5UeaRc5Rqt9tK2B4A+7/cqENrdZJbAMSunt2+2fkYiRunAFPKPBdJBsY1sxeL/A9
aKe0viKEXQdAWqdNZKNCi8rd/oOP99/9lMbFudAbX6nL2DSb1OG2Z7NWEqgIAzjm
pwYYPCKeVz5Q8R+if9/fe5+STY/55OaI33fJ2H3v+U435VjYqbrerWe36xJItcJe
qUzW71fQtXi1CTEl3w2ch7VF5oj/QyjabLnAlHgSlkSi6p7By5C2MnbCHlCfPnIi
nPhFoRcRGPjJe9nFwGs+QblvS/Chzc2WX3s/2SWm4gEUKRX4zsAJ5ocyfa/vkxCk
SxK/erWlCPf/J1T70+i5waXDN/E3enSet/WL7h94pQKpjz8OdGL4JSBHuAVGA+a+
dknqnPF0KMKLhjrgV+L7O84FhbmAP7PXm3xmiMPriXf+el5fZZequQoIagf8rdRH
HhRJxQgI0HNknkaOqs8dtrkCDQQ+PqMdEAgA7+GJfxbMdY4wslPnjH9rF4N2qfWs
EN/lxaZoJYc3a6M02WCnHl6ahT2/tBK2w1QI4YFteR47gCvtgb6O1JHffOo2HfLm
RDRiRjd1DTCHqeyX7CHhcghj/dNRlW2Z0l5QFEcmV9U0Vhp3aFfWC4Ujfs3LU+hk
AWzE7zaD5cH9J7yv/6xuZVw411x0h4UqsTcWMu0iM1BzELqX1DY7LwoPEb/O9Rkb
f4fmLe11EzIaCa4PqARXQZc4dhSinMt6K3X4BrRsKTfozBu74F47D8Ilbf5vSYHb
uE5p/1oIDznkg/p8kW+3FxuWrycciqFTcNz215yyX39LXFnlLzKUb/F5GwADBQf+
Lwqqa8CGrRfsOAJxim63CHfty5mUc5rUSnTslGYEIOCR1BeQauyPZbPDsDD9MZ1Z
aSafanFvwFG6Llx9xkU7tzq+vKLoWkm4u5xf3vn55VjnSd1aQ9eQnUcXiL4cnBGo
TbOWI39EcyzgslzBdC++MPjcQTcA7p6JUVsP6oAB3FQWg54tuUo0Ec8bsM8b3Ev4
2LmuQT5NdKHGwHsXTPtl0klk4bQk4OajHsiy1BMahpT27jWjJlMiJc+IWJ0mghkK
Ht926s/ymfdf5HkdQ1cyvsz5tryVI3Fx78XeSYfQvuuwqp2H139pXGEkg0n6KdUO
etdZWhe70YGNPw1yjWJT1IhUBBgRAgAMBQJOdz3tBQkT+wG4ABIHZUdQRwABAQkQ
jHGNO1By4fUUmwCbBYr2+bBEn/L2BOcnw9Z/QFWuhRMAoKVgCFm5fadQ3Afi+UQl
AcOphrnJ
=443I
-----END PGP PUBLIC KEY BLOCK-----
+4 -3
View File
@@ -110,7 +110,7 @@ edoc:
spec:
$(ERL) -noinput +B -pa ebin -pa deps/*/ebin -eval \
'case xml_gen:compile("tools/xmpp_codec.spec") of ok -> halt(0); _ -> halt(1) end.'
'case fxml_gen:compile("tools/xmpp_codec.spec") of ok -> halt(0); _ -> halt(1) end.'
JOIN_PATHS=$(if $(wordlist 2,1000,$(1)),$(firstword $(1))/$(call JOIN_PATHS,$(wordlist 2,1000,$(1))),$(1))
@@ -137,7 +137,7 @@ MAIN_FILES=$(filter-out %/configure.beam,$(call FILES_WILDCARD,ebin/*.beam ebin/
MAIN_DIRS=$(sort $(dir $(MAIN_FILES)) priv/bin priv/sql)
define DEP_VERSION_template
DEP_$(1)_VERSION:=$(shell $(SED) -e '/vsn/!d;s/.*,"/$(1)-/;s/".*//' $(2) 2>/dev/null)
DEP_$(1)_VERSION:=$(shell $(SED) -e '/vsn/!d;s/.*, *"/$(1)-/;s/".*//' $(2) 2>/dev/null)
endef
$(foreach DEP,$(DEPS),$(eval $(call DEP_VERSION_template,$(DEP),deps/$(DEP)/ebin/$(DEP).app)))
@@ -184,7 +184,8 @@ install: all copy-files
-e "s*{{sysconfdir}}*@sysconfdir@*" \
-e "s*{{localstatedir}}*@localstatedir@*" \
-e "s*{{docdir}}*@docdir@*" \
-e "s*{{erl}}*@ERL@*" ejabberdctl.template \
-e "s*{{erl}}*@ERL@*" \
-e "s*{{epmd}}*@EPMD@*" ejabberdctl.template \
> ejabberdctl.example
[ -f $(ETCDIR)/ejabberdctl.cfg ] \
&& $(INSTALL) -b -m 640 $(G_USER) ejabberdctl.cfg.example $(ETCDIR)/ejabberdctl.cfg-new \
+5 -3
View File
@@ -1,5 +1,7 @@
ejabberd Community Edition [![Build Status](https://travis-ci.org/processone/ejabberd.svg?branch=master)](https://travis-ci.org/processone/ejabberd)
=========================================
ejabberd Community Edition
==========================
[![Build Status](https://travis-ci.org/processone/ejabberd.svg?branch=master)](https://travis-ci.org/processone/ejabberd) [![Hex version](https://img.shields.io/hexpm/v/ejabberd.svg "Hex version")](https://hex.pm/packages/ejabberd)
ejabberd is a distributed, fault-tolerant technology that allows the creation
of large-scale instant messaging applications. The server can reliably support
@@ -162,7 +164,7 @@ https://github.com/processone/ejabberd-vagrant-dev.
To start ejabberd in development mode from the repository directory, you can
type a command like:
EJABBERD_CONFIG_PATH=ejabberd.yml erl -pa ebin -pa deps/*/ebin -pa test -s ejabberd
EJABBERD_CONFIG_PATH=ejabberd.yml erl -pa ebin -pa deps/*/ebin -pa test -pa deps/elixir/lib/*/ebin/ -s ejabberd
Links
-----
+1 -1
View File
@@ -4,7 +4,7 @@ use Mix.Config
config :ejabberd,
file: "config/ejabberd.yml",
log_path: 'log/ejabberd.log'
# Customize Mnesia directory:
config :mnesia,
dir: 'mnesiadb/'
+169
View File
@@ -0,0 +1,169 @@
defmodule Ejabberd.ConfigFile do
use Ejabberd.Config
def start do
[loglevel: 4,
log_rotate_size: 10485760,
log_rotate_date: "",
log_rotate_count: 1,
log_rate_limit: 100,
auth_method: :internal,
max_fsm_queue: 1000,
language: "en",
allow_contrib_modules: true,
hosts: ["localhost"],
shaper: shaper,
acl: acl,
access: access]
end
defp shaper do
[normal: 1000,
fast: 50000,
max_fsm_queue: 1000]
end
defp acl do
[local:
[user_regexp: "", loopback: [ip: "127.0.0.0/8"]]]
end
defp access do
[max_user_sessions: [all: 10],
max_user_offline_messages: [admin: 5000, all: 100],
local: [local: :allow],
c2s: [blocked: :deny, all: :allow],
c2s_shaper: [admin: :none, all: :normal],
s2s_shaper: [all: :fast],
announce: [admin: :allow],
configure: [admin: :allow],
muc_admin: [admin: :allow],
muc_create: [local: :allow],
muc: [all: :allow],
pubsub_createnode: [local: :allow],
register: [all: :allow],
trusted_network: [loopback: :allow]]
end
listen :ejabberd_c2s do
@opts [
port: 5222,
max_stanza_size: 65536,
shaper: :c2s_shaper,
access: :c2s]
end
listen :ejabberd_s2s_in do
@opts [port: 5269]
end
listen :ejabberd_http do
@opts [
port: 5280,
web_admin: true,
http_poll: true,
http_bind: true,
captcha: true]
end
module :mod_adhoc do
end
module :mod_announce do
@opts [access: :announce]
end
module :mod_blocking do
end
module :mod_caps do
end
module :mod_carboncopy do
end
module :mod_client_state do
@opts [
drop_chat_states: true,
queue_presence: false]
end
module :mod_configure do
end
module :mod_disco do
end
module :mod_irc do
end
module :mod_http_bind do
end
module :mod_last do
end
module :mod_muc do
@opts [
access: :muc,
access_create: :muc_create,
access_persistent: :muc_create,
access_admin: :muc_admin]
end
module :mod_offline do
@opts [access_max_user_messages: :max_user_offline_messages]
end
module :mod_ping do
end
module :mod_privacy do
end
module :mod_private do
end
module :mod_pubsub do
@opts [
access_createnode: :pubsub_createnode,
ignore_pep_from_offline: true,
last_item_cache: true,
plugins: ["flat", "hometree", "pep"]]
end
module :mod_register do
@opts [welcome_message: [
subject: "Welcome!",
body: "Hi.\nWelcome to this XMPP Server",
ip_access: :trusted_network,
access: :register]]
end
module :mod_roster do
end
module :mod_shared_roster do
end
module :mod_stats do
end
module :mod_time do
end
module :mod_version do
end
# Example of how to define a hook, called when the event
# specified is triggered.
#
# @event: Name of the event
# @opts: Params are optional. Available: :host and :priority.
# If missing, defaults are used. (host: :global | priority: 50)
# @callback Could be an anonymous function or a callback from a module,
# use the &ModuleName.function/arity format for that.
hook :register_user, [host: "localhost"], fn(user, server) ->
info("User registered: #{user} on #{server}")
end
end
+667
View File
@@ -0,0 +1,667 @@
###
### ejabberd configuration file
###
###
### The parameters used in this configuration file are explained in more detail
### in the ejabberd Installation and Operation Guide.
### Please consult the Guide in case of doubts, it is included with
### your copy of ejabberd, and is also available online at
### http://www.process-one.net/en/ejabberd/docs/
### The configuration file is written in YAML.
### Refer to http://en.wikipedia.org/wiki/YAML for the brief description.
### However, ejabberd treats different literals as different types:
###
### - unquoted or single-quoted strings. They are called "atoms".
### Example: dog, 'Jupiter', '3.14159', YELLOW
###
### - numeric literals. Example: 3, -45.0, .0
###
### - quoted or folded strings.
### Examples of quoted string: "Lizzard", "orange".
### Example of folded string:
### > Art thou not Romeo,
### and a Montague?
### =======
### LOGGING
##
## loglevel: Verbosity of log files generated by ejabberd.
## 0: No ejabberd log at all (not recommended)
## 1: Critical
## 2: Error
## 3: Warning
## 4: Info
## 5: Debug
##
loglevel: 4
##
## rotation: Describe how to rotate logs. Either size and/or date can trigger
## log rotation. Setting count to N keeps N rotated logs. Setting count to 0
## does not disable rotation, it instead rotates the file and keeps no previous
## versions around. Setting size to X rotate log when it reaches X bytes.
## To disable rotation set the size to 0 and the date to ""
## Date syntax is taken from the syntax newsyslog uses in newsyslog.conf.
## Some examples:
## $D0 rotate every night at midnight
## $D23 rotate every day at 23:00 hr
## $W0D23 rotate every week on Sunday at 23:00 hr
## $W5D16 rotate every week on Friday at 16:00 hr
## $M1D0 rotate on the first day of every month at midnight
## $M5D6 rotate on every 5th day of the month at 6:00 hr
##
log_rotate_size: 10485760
log_rotate_date: ""
log_rotate_count: 1
##
## overload protection: If you want to limit the number of messages per second
## allowed from error_logger, which is a good idea if you want to avoid a flood
## of messages when system is overloaded, you can set a limit.
## 100 is ejabberd's default.
log_rate_limit: 100
##
## watchdog_admins: Only useful for developers: if an ejabberd process
## consumes a lot of memory, send live notifications to these XMPP
## accounts.
##
## watchdog_admins:
## - "bob@example.com"
### ================
### SERVED HOSTNAMES
##
## hosts: Domains served by ejabberd.
## You can define one or several, for example:
## hosts:
## - "example.net"
## - "example.com"
## - "example.org"
##
hosts:
- "localhost"
##
## route_subdomains: Delegate subdomains to other XMPP servers.
## For example, if this ejabberd serves example.org and you want
## to allow communication with an XMPP server called im.example.org.
##
## route_subdomains: s2s
### ===============
### LISTENING PORTS
##
## listen: The ports ejabberd will listen on, which service each is handled
## by and what options to start it with.
##
listen:
-
port: 5222
module: ejabberd_c2s
##
## If TLS is compiled in and you installed a SSL
## certificate, specify the full path to the
## file and uncomment these lines:
##
## certfile: "/path/to/ssl.pem"
## starttls: true
##
## To enforce TLS encryption for client connections,
## use this instead of the "starttls" option:
##
## starttls_required: true
##
## Custom OpenSSL options
##
## protocol_options:
## - "no_sslv3"
## - "no_tlsv1"
max_stanza_size: 65536
shaper: c2s_shaper
access: c2s
-
port: 5269
module: ejabberd_s2s_in
##
## ejabberd_service: Interact with external components (transports, ...)
##
## -
## port: 8888
## module: ejabberd_service
## access: all
## shaper_rule: fast
## ip: "127.0.0.1"
## hosts:
## "icq.example.org":
## password: "secret"
## "sms.example.org":
## password: "secret"
##
## ejabberd_stun: Handles STUN Binding requests
##
## -
## port: 3478
## transport: udp
## module: ejabberd_stun
##
## To handle XML-RPC requests that provide admin credentials:
##
## -
## port: 4560
## module: ejabberd_xmlrpc
-
port: 5280
module: ejabberd_http
## request_handlers:
## "/pub/archive": mod_http_fileserver
web_admin: true
http_poll: true
http_bind: true
## register: true
captcha: true
##
## s2s_use_starttls: Enable STARTTLS + Dialback for S2S connections.
## Allowed values are: false optional required required_trusted
## You must specify a certificate file.
##
## s2s_use_starttls: optional
##
## s2s_certfile: Specify a certificate file.
##
## s2s_certfile: "/path/to/ssl.pem"
## Custom OpenSSL options
##
## s2s_protocol_options:
## - "no_sslv3"
## - "no_tlsv1"
##
## domain_certfile: Specify a different certificate for each served hostname.
##
## host_config:
## "example.org":
## domain_certfile: "/path/to/example_org.pem"
## "example.com":
## domain_certfile: "/path/to/example_com.pem"
##
## S2S whitelist or blacklist
##
## Default s2s policy for undefined hosts.
##
## s2s_access: s2s
##
## Outgoing S2S options
##
## Preferred address families (which to try first) and connect timeout
## in milliseconds.
##
## outgoing_s2s_families:
## - ipv4
## - ipv6
## outgoing_s2s_timeout: 10000
### ==============
### AUTHENTICATION
##
## auth_method: Method used to authenticate the users.
## The default method is the internal.
## If you want to use a different method,
## comment this line and enable the correct ones.
##
auth_method: internal
##
## Store the plain passwords or hashed for SCRAM:
## auth_password_format: plain
## auth_password_format: scram
##
## Define the FQDN if ejabberd doesn't detect it:
## fqdn: "server3.example.com"
##
## Authentication using external script
## Make sure the script is executable by ejabberd.
##
## auth_method: external
## extauth_program: "/path/to/authentication/script"
##
## Authentication using ODBC
## Remember to setup a database in the next section.
##
## auth_method: odbc
##
## Authentication using PAM
##
## auth_method: pam
## pam_service: "pamservicename"
##
## Authentication using LDAP
##
## auth_method: ldap
##
## List of LDAP servers:
## ldap_servers:
## - "localhost"
##
## Encryption of connection to LDAP servers:
## ldap_encrypt: none
## ldap_encrypt: tls
##
## Port to connect to on LDAP servers:
## ldap_port: 389
## ldap_port: 636
##
## LDAP manager:
## ldap_rootdn: "dc=example,dc=com"
##
## Password of LDAP manager:
## ldap_password: "******"
##
## Search base of LDAP directory:
## ldap_base: "dc=example,dc=com"
##
## LDAP attribute that holds user ID:
## ldap_uids:
## - "mail": "%u@mail.example.org"
##
## LDAP filter:
## ldap_filter: "(objectClass=shadowAccount)"
##
## Anonymous login support:
## auth_method: anonymous
## anonymous_protocol: sasl_anon | login_anon | both
## allow_multiple_connections: true | false
##
## host_config:
## "public.example.org":
## auth_method: anonymous
## allow_multiple_connections: false
## anonymous_protocol: sasl_anon
##
## To use both anonymous and internal authentication:
##
## host_config:
## "public.example.org":
## auth_method:
## - internal
## - anonymous
### ==============
### DATABASE SETUP
## ejabberd by default uses the internal Mnesia database,
## so you do not necessarily need this section.
## This section provides configuration examples in case
## you want to use other database backends.
## Please consult the ejabberd Guide for details on database creation.
##
## MySQL server:
##
## odbc_type: mysql
## odbc_server: "server"
## odbc_database: "database"
## odbc_username: "username"
## odbc_password: "password"
##
## If you want to specify the port:
## odbc_port: 1234
##
## PostgreSQL server:
##
## odbc_type: pgsql
## odbc_server: "server"
## odbc_database: "database"
## odbc_username: "username"
## odbc_password: "password"
##
## If you want to specify the port:
## odbc_port: 1234
##
## If you use PostgreSQL, have a large database, and need a
## faster but inexact replacement for "select count(*) from users"
##
## pgsql_users_number_estimate: true
##
## ODBC compatible or MSSQL server:
##
## odbc_type: odbc
## odbc_server: "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"
##
## Number of connections to open to the database for each virtual host
##
## odbc_pool_size: 10
##
## Interval to make a dummy SQL request to keep the connections to the
## database alive. Specify in seconds: for example 28800 means 8 hours
##
## odbc_keepalive_interval: undefined
### ===============
### TRAFFIC SHAPERS
shaper:
##
## The "normal" shaper limits traffic speed to 1000 B/s
##
normal: 1000
##
## The "fast" shaper limits traffic speed to 50000 B/s
##
fast: 50000
##
## This option specifies the maximum number of elements in the queue
## of the FSM. Refer to the documentation for details.
##
max_fsm_queue: 1000
###. ====================
###' ACCESS CONTROL LISTS
acl:
##
## The 'admin' ACL grants administrative privileges to XMPP accounts.
## You can put here as many accounts as you want.
##
## admin:
## user:
## - "aleksey": "localhost"
## - "ermine": "example.org"
##
## Blocked users
##
## blocked:
## user:
## - "baduser": "example.org"
## - "test"
## Local users: don't modify this.
##
local:
user_regexp: ""
##
## More examples of ACLs
##
## jabberorg:
## server:
## - "jabber.org"
## aleksey:
## user:
## - "aleksey": "jabber.ru"
## test:
## user_regexp: "^test"
## user_glob: "test*"
##
## Loopback network
##
loopback:
ip:
- "127.0.0.0/8"
##
## Bad XMPP servers
##
## bad_servers:
## server:
## - "xmpp.zombie.org"
## - "xmpp.spam.com"
##
## Define specific ACLs in a virtual host.
##
## host_config:
## "localhost":
## acl:
## admin:
## user:
## - "bob-local": "localhost"
### ============
### ACCESS RULES
access:
## Maximum number of simultaneous sessions allowed for a single user:
max_user_sessions:
all: 10
## Maximum number of offline messages that users can have:
max_user_offline_messages:
admin: 5000
all: 100
## This rule allows access only for local users:
local:
local: allow
## Only non-blocked users can use c2s connections:
c2s:
blocked: deny
all: allow
## For C2S connections, all users except admins use the "normal" shaper
c2s_shaper:
admin: none
all: normal
## All S2S connections use the "fast" shaper
s2s_shaper:
all: fast
## Only admins can send announcement messages:
announce:
admin: allow
## Only admins can use the configuration interface:
configure:
admin: allow
## Admins of this server are also admins of the MUC service:
muc_admin:
admin: allow
## Only accounts of the local ejabberd server can create rooms:
muc_create:
local: allow
## All users are allowed to use the MUC service:
muc:
all: allow
## Only accounts on the local ejabberd server can create Pubsub nodes:
pubsub_createnode:
local: allow
## In-band registration allows registration of any possible username.
## To disable in-band registration, replace 'allow' with 'deny'.
register:
all: allow
## Only allow to register from localhost
trusted_network:
loopback: allow
## Do not establish S2S connections with bad servers
## s2s:
## bad_servers: deny
## all: allow
## By default the frequency of account registrations from the same IP
## is limited to 1 account every 10 minutes. To disable, specify: infinity
## registration_timeout: 600
##
## Define specific Access Rules in a virtual host.
##
## host_config:
## "localhost":
## access:
## c2s:
## admin: allow
## all: deny
## register:
## all: deny
### ================
### DEFAULT LANGUAGE
##
## language: Default language used for server messages.
##
language: "en"
##
## Set a different default language in a virtual host.
##
## host_config:
## "localhost":
## language: "ru"
### =======
### CAPTCHA
##
## Full path to a script that generates the image.
##
## captcha_cmd: "/lib/ejabberd/priv/bin/captcha.sh"
##
## Host for the URL and port where ejabberd listens for CAPTCHA requests.
##
## captcha_host: "example.org:5280"
##
## Limit CAPTCHA calls per minute for JID/IP to avoid DoS.
##
## captcha_limit: 5
### =======
### MODULES
##
## Modules enabled in all ejabberd virtual hosts.
##
modules:
mod_adhoc: {}
## mod_admin_extra: {}
mod_announce: # recommends mod_adhoc
access: announce
mod_blocking: {} # requires mod_privacy
mod_caps: {}
mod_carboncopy: {}
mod_client_state:
drop_chat_states: true
queue_presence: false
mod_configure: {} # requires mod_adhoc
mod_disco: {}
## mod_echo: {}
mod_irc: {}
mod_http_bind: {}
## mod_http_fileserver:
## docroot: "/var/www"
## accesslog: "/var/log/ejabberd/access.log"
mod_last: {}
mod_muc:
## host: "conference.@HOST@"
access: muc
access_create: muc_create
access_persistent: muc_create
access_admin: muc_admin
## mod_muc_log: {}
mod_offline:
access_max_user_messages: max_user_offline_messages
mod_ping: {}
## mod_pres_counter:
## count: 5
## interval: 60
mod_privacy: {}
mod_private: {}
## mod_proxy65: {}
mod_pubsub:
access_createnode: pubsub_createnode
## reduces resource comsumption, but XEP incompliant
ignore_pep_from_offline: true
## XEP compliant, but increases resource comsumption
## ignore_pep_from_offline: false
last_item_cache: false
plugins:
- "flat"
- "hometree"
- "pep" # pep requires mod_caps
mod_register:
##
## Protect In-Band account registrations with CAPTCHA.
##
## captcha_protected: true
##
## Set the minimum informational entropy for passwords.
##
## password_strength: 32
##
## After successful registration, the user receives
## a message with this subject and body.
##
welcome_message:
subject: "Welcome!"
body: |-
Hi.
Welcome to this XMPP server.
##
## When a user registers, send a notification to
## these XMPP accounts.
##
## registration_watchers:
## - "admin1@example.org"
##
## Only clients in the server machine can register accounts
##
ip_access: trusted_network
##
## Local c2s or remote s2s users cannot register accounts
##
## access_from: deny
access: register
mod_roster: {}
mod_shared_roster: {}
mod_stats: {}
mod_time: {}
mod_vcard: {}
mod_version: {}
##
## Enable modules with custom options in a specific virtual host
##
## host_config:
## "localhost":
## modules:
## mod_echo:
## host: "mirror.localhost"
##
## Enable modules management via ejabberdctl for installation and
## uninstallation of public/private contributed modules
## (enabled by default)
##
allow_contrib_modules: true
### Local Variables:
### mode: yaml
### End:
### vim: set filetype=yaml tabstop=8
+4 -12
View File
@@ -30,6 +30,7 @@ fi
AC_PATH_TOOL(ERL, erl, , [${extra_erl_path}$PATH])
AC_PATH_TOOL(ERLC, erlc, , [${extra_erl_path}$PATH])
AC_PATH_TOOL(EPMD, epmd, , [${extra_erl_path}$PATH])
AC_ERLANG_NEED_ERL
AC_ERLANG_NEED_ERLC
@@ -100,10 +101,10 @@ AC_ARG_ENABLE(mssql,
esac],[db_type=generic])
AC_ARG_ENABLE(all,
[AC_HELP_STRING([--enable-all], [same as --enable-odbc --enable-mysql --enable-pgsql --enable-sqlite --enable-pam --enable-zlib --enable-riak --enable-redis --enable-elixir --enable-iconv --enable-debug --enable-lager --enable-tools (useful for Dialyzer checks, default: no)])],
[AC_HELP_STRING([--enable-all], [same as --enable-odbc --enable-mysql --enable-pgsql --enable-sqlite --enable-pam --enable-zlib --enable-riak --enable-redis --enable-elixir --enable-iconv --enable-debug --enable-tools (useful for Dialyzer checks, default: no)])],
[case "${enableval}" in
yes) odbc=true mysql=true pgsql=true sqlite=true pam=true zlib=true riak=true redis=true elixir=true iconv=true debug=true lager=true tools=true ;;
no) odbc=false mysql=false pgsql=false sqlite=false pam=false zlib=false riak=false redis=false elixir=false iconv=false debug=false lager=false tools=false ;;
yes) odbc=true mysql=true pgsql=true sqlite=true pam=true zlib=true riak=true redis=true elixir=true iconv=true debug=true tools=true ;;
no) odbc=false mysql=false pgsql=false sqlite=false pam=false zlib=false riak=false redis=false elixir=false iconv=false debug=false tools=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-all) ;;
esac],[])
@@ -203,14 +204,6 @@ AC_ARG_ENABLE(debug,
*) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
esac],[if test "x$debug" = "x"; then debug=true; fi])
AC_ARG_ENABLE(lager,
[AC_HELP_STRING([--enable-lager], [enable lager support (default: yes)])],
[case "${enableval}" in
yes) lager=true ;;
no) lager=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-lager) ;;
esac],[if test "x$lager" = "x"; then lager=true; fi])
AC_ARG_ENABLE(latest_deps,
[AC_HELP_STRING([--enable-latest-deps], [makes rebar use latest commits for dependences instead of tagged versions (default: no)])],
[case "${enableval}" in
@@ -261,7 +254,6 @@ AC_SUBST(redis)
AC_SUBST(elixir)
AC_SUBST(iconv)
AC_SUBST(debug)
AC_SUBST(lager)
AC_SUBST(tools)
AC_SUBST(latest_deps)
AC_SUBST(CFLAGS)
@@ -242,9 +242,7 @@ print_usage() ->
print_po_header(File) ->
MsgProps = get_msg_header_props(File),
{Language, [LastT | AddT]} = prepare_props(MsgProps),
application:load(ejabberd),
{ok, Version} = application:get_key(ejabberd, vsn),
print_po_header(Version, Language, LastT, AddT).
print_po_header(Language, LastT, AddT).
get_msg_header_props(File) ->
{ok, F} = file:open(File, [read]),
@@ -274,12 +272,11 @@ prepare_props(MsgProps) ->
Authors = proplists:get_all_values("Author:", MsgProps),
{Language, Authors}.
print_po_header(Version, Language, LastTranslator, AdditionalTranslatorsList) ->
print_po_header(Language, LastTranslator, AdditionalTranslatorsList) ->
AdditionalTranslatorsString = build_additional_translators(AdditionalTranslatorsList),
HeaderString =
"msgid \"\"\n"
"msgstr \"\"\n"
"\"Project-Id-Version: " ++ Version ++ "\\n\"\n"
++ "\"X-Language: " ++ Language ++ "\\n\"\n"
"\"Last-Translator: " ++ LastTranslator ++ "\\n\"\n"
++ AdditionalTranslatorsString ++
@@ -157,7 +157,7 @@ extract_lang_srcmsg2po ()
echo $MSGS_PATH
cd $SRC_DIR
$ERL -pa $EXTRACT_DIR -pa $EBIN_DIR -pa $EJA_SRC_DIR -pa /lib/ejabberd/include -noinput -noshell -s extract_translations -s init stop -extra -srcmsg2po . $MSGS_PATH >$PO_PATH.1
$ERL -pa $EXTRACT_DIR -pa $EBIN_DIR -pa $EJA_SRC_DIR -pa ../include -noinput -noshell -s extract_translations -s init stop -extra -srcmsg2po . $MSGS_PATH >$PO_PATH.1
sed -e 's/ \[\]$/ \"\"/g;' $PO_PATH.1 > $PO_PATH.2
msguniq --sort-by-file $PO_PATH.2 --output-file=$PO_PATH
@@ -176,7 +176,7 @@ extract_lang_src2pot ()
echo "" >>$MSGS_PATH
cd $SRC_DIR
$ERL -pa $EXTRACT_DIR -pa $EBIN_DIR -pa $EJA_SRC_DIR -pa /lib/ejabberd/include -noinput -noshell -s extract_translations -s init stop -extra -srcmsg2po . $MSGS_PATH >$POT_PATH.1
$ERL -pa $EXTRACT_DIR -pa $EBIN_DIR -pa $EJA_SRC_DIR -pa ../include -noinput -noshell -s extract_translations -s init stop -extra -srcmsg2po . $MSGS_PATH >$POT_PATH.1
sed -e 's/ \[\]$/ \"\"/g;' $POT_PATH.1 > $POT_PATH.2
#msguniq --sort-by-file $POT_PATH.2 $EJA_MSGS_DIR --output-file=$POT_PATH
+5
View File
@@ -0,0 +1,5 @@
{level, details}.
{incl_dirs, ["src", "ebin"]}.
{excl_mods, [eldap, 'ELDAPv3']}.
{export, "logs/all.coverdata"}.
+8 -1
View File
@@ -7,11 +7,18 @@ User=ejabberd
Group=ejabberd
LimitNOFILE=16000
RestartSec=5
ExecStart=/bin/sh @ctlscriptpath@/ejabberdctl start
ExecStart=@ctlscriptpath@/ejabberdctl start
ExecStop=@ctlscriptpath@/ejabberdctl stop
ExecReload=@ctlscriptpath@/ejabberdctl reload_config
Type=oneshot
RemainAfterExit=yes
# The CAP_DAC_OVERRIDE capability is required for pam authentication to work
CapabilityBoundingSet=CAP_DAC_OVERRIDE
PrivateTmp=true
PrivateDevices=true
ProtectHome=true
ProtectSystem=full
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
+90 -84
View File
@@ -147,6 +147,15 @@ listen:
## access: all
## shaper_rule: fast
## ip: "127.0.0.1"
## privilege_access:
## roster: "both"
## message: "outgoing"
## presence: "roster"
## delegations:
## "urn:xmpp:mam:1":
## filtering: ["node"]
## "http://jabber.org/protocol/pubsub":
## filtering: []
## hosts:
## "icq.example.org":
## password: "secret"
@@ -254,10 +263,10 @@ auth_method: internal
## extauth_program: "/path/to/authentication/script"
##
## Authentication using ODBC
## Authentication using SQL
## Remember to setup a database in the next section.
##
## auth_method: odbc
## auth_method: sql
##
## Authentication using PAM
@@ -330,26 +339,26 @@ auth_method: internal
##
## MySQL server:
##
## odbc_type: mysql
## odbc_server: "server"
## odbc_database: "database"
## odbc_username: "username"
## odbc_password: "password"
## sql_type: mysql
## sql_server: "server"
## sql_database: "database"
## sql_username: "username"
## sql_password: "password"
##
## If you want to specify the port:
## odbc_port: 1234
## sql_port: 1234
##
## PostgreSQL server:
##
## odbc_type: pgsql
## odbc_server: "server"
## odbc_database: "database"
## odbc_username: "username"
## odbc_password: "password"
## sql_type: pgsql
## sql_server: "server"
## sql_database: "database"
## sql_username: "username"
## sql_password: "password"
##
## If you want to specify the port:
## odbc_port: 1234
## sql_port: 1234
##
## If you use PostgreSQL, have a large database, and need a
## faster but inexact replacement for "select count(*) from users"
@@ -359,25 +368,25 @@ auth_method: internal
##
## SQLite:
##
## odbc_type: sqlite
## odbc_database: "/path/to/database.db"
## sql_type: sqlite
## sql_database: "/path/to/database.db"
##
## ODBC compatible or MSSQL server:
##
## odbc_type: odbc
## odbc_server: "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"
## sql_type: odbc
## sql_server: "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"
##
## Number of connections to open to the database for each virtual host
##
## odbc_pool_size: 10
## sql_pool_size: 10
##
## Interval to make a dummy SQL request to keep the connections to the
## database alive. Specify in seconds: for example 28800 means 8 hours
##
## odbc_keepalive_interval: undefined
## sql_keepalive_interval: undefined
###. ===============
###' TRAFFIC SHAPERS
@@ -408,14 +417,14 @@ acl:
##
## admin:
## user:
## - "aleksey": "localhost"
## - "ermine": "example.org"
## - "aleksey@localhost"
## - "ermine@example.org"
##
## Blocked users
##
## blocked:
## user:
## - "baduser": "example.org"
## - "baduser@example.org"
## - "test"
## Local users: don't modify this.
@@ -431,7 +440,7 @@ acl:
## - "jabber.org"
## aleksey:
## user:
## - "aleksey": "jabber.ru"
## - "aleksey@jabber.ru"
## test:
## user_regexp: "^test"
## user_glob: "test*"
@@ -459,61 +468,61 @@ acl:
## acl:
## admin:
## user:
## - "bob-local": "localhost"
## - "bob-local@localhost"
###. ============
###' SHAPER RULES
shaper_rules:
## Maximum number of simultaneous sessions allowed for a single user:
max_user_sessions: 10
## Maximum number of offline messages that users can have:
max_user_offline_messages:
- 5000: admin
- 100
## For C2S connections, all users except admins use the "normal" shaper
c2s_shaper:
- none: admin
- normal
## All S2S connections use the "fast" shaper
s2s_shaper: fast
###. ============
###' ACCESS RULES
access:
## Maximum number of simultaneous sessions allowed for a single user:
max_user_sessions:
all: 10
## Maximum number of offline messages that users can have:
max_user_offline_messages:
admin: 5000
all: 100
access_rules:
## This rule allows access only for local users:
local:
local: allow
local:
- allow: local
## Only non-blocked users can use c2s connections:
c2s:
blocked: deny
all: allow
## For C2S connections, all users except admins use the "normal" shaper
c2s_shaper:
admin: none
all: normal
## All S2S connections use the "fast" shaper
s2s_shaper:
all: fast
c2s:
- deny: blocked
- allow
## Only admins can send announcement messages:
announce:
admin: allow
announce:
- allow: admin
## Only admins can use the configuration interface:
configure:
admin: allow
## Admins of this server are also admins of the MUC service:
muc_admin:
admin: allow
- allow: admin
## Only accounts of the local ejabberd server can create rooms:
muc_create:
local: allow
## All users are allowed to use the MUC service:
muc:
all: allow
- allow: local
## Only accounts on the local ejabberd server can create Pubsub nodes:
pubsub_createnode:
local: allow
- allow: local
## In-band registration allows registration of any possible username.
## To disable in-band registration, replace 'allow' with 'deny'.
register:
all: allow
- allow
## Only allow to register from localhost
trusted_network:
loopback: allow
- allow: loopback
## Do not establish S2S connections with bad servers
## s2s:
## bad_servers: deny
## all: allow
## - deny:
## - ip: "XXX.XXX.XXX.XXX/32"
## - deny:
## - ip: "XXX.XXX.XXX.XXX/32"
## - allow
## By default the frequency of account registrations from the same IP
## is limited to 1 account every 10 minutes. To disable, specify: infinity
@@ -526,10 +535,10 @@ access:
## "localhost":
## access:
## c2s:
## admin: allow
## all: deny
## - allow: admin
## - deny
## register:
## all: deny
## - deny
###. ================
###' DEFAULT LANGUAGE
@@ -580,6 +589,7 @@ modules:
mod_carboncopy: {}
mod_client_state: {}
mod_configure: {} # requires mod_adhoc
##mod_delegation: {} # for xep0356
mod_disco: {}
## mod_echo: {}
mod_irc: {}
@@ -590,10 +600,12 @@ modules:
mod_last: {}
mod_muc:
## host: "conference.@HOST@"
access: muc
access:
- allow
access_admin:
- allow: admin
access_create: muc_create
access_persistent: muc_create
access_admin: muc_admin
## mod_muc_log: {}
## mod_multicast: {}
mod_offline:
@@ -616,45 +628,39 @@ modules:
- "flat"
- "hometree"
- "pep" # pep requires mod_caps
mod_register:
## mod_register:
##
## Protect In-Band account registrations with CAPTCHA.
##
## captcha_protected: true
## captcha_protected: true
##
## Set the minimum informational entropy for passwords.
##
## password_strength: 32
## password_strength: 32
##
## After successful registration, the user receives
## a message with this subject and body.
##
welcome_message:
subject: "Welcome!"
body: |-
Hi.
Welcome to this XMPP server.
## welcome_message:
## subject: "Welcome!"
## body: |-
## Hi.
## Welcome to this XMPP server.
##
## When a user registers, send a notification to
## these XMPP accounts.
##
## registration_watchers:
## - "admin1@example.org"
## registration_watchers:
## - "admin1@example.org"
##
## Only clients in the server machine can register accounts
##
ip_access: trusted_network
## ip_access: trusted_network
##
## Local c2s or remote s2s users cannot register accounts
##
## access_from: deny
access: register
## access_from: deny
## access: register
mod_roster: {}
mod_shared_roster: {}
mod_stats: {}
+74 -118
View File
@@ -13,7 +13,7 @@ ERLANG_NODE=ejabberd@localhost
SCRIPT_DIR=`cd ${0%/*} && pwd`
ERL={{erl}}
IEX={{bindir}}/iex
EPMD={{bindir}}/epmd
EPMD={{epmd}}
INSTALLUSER={{installuser}}
ERL_LIBS={{libdir}}
@@ -31,14 +31,14 @@ if [ "$INSTALLUSER" != "" ] ; then
fi
done
if [ `id -g` -eq `id -g $INSTALLUSER` ] ; then
EXEC_CMD="sh -c"
EXEC_CMD="bash -c"
fi
if [ "$EXEC_CMD" = "false" ] ; then
echo "This command can only be run by root or the user $INSTALLUSER" >&2
exit 4
fi
else
EXEC_CMD="sh -c"
EXEC_CMD="bash -c"
fi
# parse command line parameters
@@ -83,18 +83,9 @@ if [ "$EJABBERD_DOC_PATH" = "" ] ; then
fi
if [ "$ERLANG_NODE_ARG" != "" ] ; then
ERLANG_NODE=$ERLANG_NODE_ARG
NODE=${ERLANG_NODE%@*}
fi
if [ "{{release}}" != "true" ] ; then
if [ "$EJABBERDDIR" = "" ] ; then
EJABBERDDIR={{libdir}}/ejabberd
fi
if [ "$EJABBERD_PRIV_PATH" = "" ] ; then
EJABBERD_PRIV_PATH=$EJABBERDDIR/priv
fi
if [ "$EJABBERD_BIN_PATH" = "" ] ; then
EJABBERD_BIN_PATH=$EJABBERD_PRIV_PATH/bin
fi
if [ "{{release}}" != "true" -a "$EJABBERD_BIN_PATH" = "" ] ; then
EJABBERD_BIN_PATH={{libdir}}/ejabberd/priv/bin
fi
EJABBERD_LOG_PATH=$LOGS_DIR/ejabberd.log
DATETIME=`date "+%Y%m%d-%H%M%S"`
@@ -104,7 +95,6 @@ ERL_INETRC=$ETC_DIR/inetrc
# define mnesia options
MNESIA_OPTS="-mnesia dir \"\\\"$SPOOL_DIR\\\"\" $MNESIA_OPTIONS"
# define erl parameters
ERL_OPTIONS=$(echo $ERL_OPTIONS | sed 's/ /\\ /g')
ERLANG_OPTS="+K $POLL -smp $SMP +P $ERL_PROCESSES $ERL_OPTIONS"
KERNEL_OPTS=""
if [ "$FIREWALL_WINDOW" != "" ] ; then
@@ -142,8 +132,8 @@ fi
[ -z "$date" ] || EJABBERD_OPTS="${EJABBERD_OPTS} log_rotate_date '$date'"
[ -z "$EJABBERD_OPTS" ] || EJABBERD_OPTS="-ejabberd ${EJABBERD_OPTS}"
[ -d $SPOOL_DIR ] || $EXEC_CMD "mkdir -p $SPOOL_DIR"
cd $SPOOL_DIR
[ -d "$SPOOL_DIR" ] || $EXEC_CMD "mkdir -p $SPOOL_DIR"
cd "$SPOOL_DIR"
# export global variables
export EJABBERD_CONFIG_PATH
@@ -160,11 +150,24 @@ export CONTRIB_MODULES_PATH
export CONTRIB_MODULES_CONF_DIR
export ERL_LIBS
shell_escape_str()
{
if test $# -eq 0; then
printf '"" '
else
shell_escape "$@"
fi
}
shell_escape()
{
local RES=()
for i in "$@"; do
printf '%q ' "$i"
if test -z "$i"; then
printf '"" '
else
printf '%q ' "$i"
fi
done
}
@@ -187,8 +190,8 @@ start()
debug()
{
debugwarning
TTY=`tty | sed -e 's/.*\///g'`
CMD="`shell_escape \"$ERL\" \"$NAME\" \"debug-${TTY}-${ERLANG_NODE}\"` \
NID=$(uid debug)
CMD="`shell_escape \"$ERL\" \"$NAME\" \"$NID\"` \
-remsh $ERLANG_NODE \
-hidden \
$KERNEL_OPTS \
@@ -201,15 +204,15 @@ debug()
iexdebug()
{
debugwarning
TTY=`tty | sed -e 's/.*\///g'`
# Elixir shell is hidden as default
CMD="`shell_escape \"$IEX\" \"$IEXNAME\" \"debug-${TTY}-${ERLANG_NODE}\"` \
NID=$(uid debug)
CMD="`shell_escape \"$IEX\" \"$IEXNAME\" \"$NID\"` \
-remsh $ERLANG_NODE \
--erl \"`shell_escape \"$KERNEL_OPTS\"\" \
--erl \"`shell_escape \"$ERLANG_OPTS\"\" \
--erl \"`shell_escape \"${ARGS[@]}\"\" \
--erl \"`shell_escape \"$@\"\""
$EXEC_CMD "$CMD"
--erl `shell_escape \"$KERNEL_OPTS\"` \
--erl `shell_escape \"$ERLANG_OPTS\"` \
--erl `shell_escape \"${ARGS[@]}\"` \
--erl `shell_escape_str \"$@\"`"
$EXEC_CMD "ERL_PATH=\"$ERL\" $CMD"
}
# start interactive server
@@ -230,15 +233,16 @@ live()
iexlive()
{
livewarning
echo $@
CMD="`shell_escape \"$IEX\" \"$IEXNAME\" \"${ERLANG_NODE}\"` \
--erl \"-mnesia dir \\\"$SPOOL_DIR\\\"\" \
--erl \"`shell_escape \"$KERNEL_OPTS\"`\" \
--erl \"`shell_escape \"$EJABBERD_OPTS\"`\" \
--app ejabberd \
--erl \"`shell_escape \"$ERLANG_OPTS\"`\" \
--erl \"`shell_escape \"${ARGS[@]}\"`\" \
--erl \"`shell_escape \"$@\"`\""
$EXEC_CMD "$CMD"
--erl `shell_escape \"$ERLANG_OPTS\"` \
--erl `shell_escape \"${ARGS[@]}\"` \
--erl `shell_escape_str \"$@\"`"
$EXEC_CMD "ERL_PATH=\"$ERL\" $CMD"
}
# start server in the foreground
@@ -306,20 +310,27 @@ livewarning()
etop()
{
TTY=`tty | sed -e 's/.*\///g'`
NID=$(uid top)
$EXEC_CMD "$ERL \
$NAME debug-${TTY}-${ERLANG_NODE} \
$NAME $NID \
-hidden -s etop -s erlang halt -output text -node $ERLANG_NODE"
}
ping()
{
TTY=`tty | sed -e 's/.*\///g'`
[ -z "$1" ] && PEER=${ERLANG_NODE} || PEER=$1
if [ "$PEER" = "${PEER%.*}" ] ; then
PING_NAME="-sname"
PING_NODE=$(hostname -s)
else
PING_NAME="-name"
PING_NODE=$(hostname)
fi
NID=$(uid ping ${PING_NODE})
$EXEC_CMD "$ERL \
$NAME ping-${TTY}-${ERLANG_NODE} \
-hidden \
$KERNEL_OPTS $ERLANG_OPTS \
-eval 'io:format(\"~p~n\",[net_adm:ping($1)])' \
$PING_NAME $NID \
-hidden $KERNEL_OPTS $ERLANG_OPTS \
-eval 'io:format(\"~p~n\",[net_adm:ping('\"'\"'$PEER'\"'\"')])' \
-s erlang halt -output text -noinput"
}
@@ -347,97 +358,42 @@ help()
# common control function
ctl()
{
# Control number of connections identifiers
# using flock if available. Expects a linux-style
# flock that can lock a file descriptor.
MAXCONNID=100
CONNLOCKDIR={{localstatedir}}/lock/ejabberdctl
FLOCK=/usr/bin/flock
if [ ! -x "$FLOCK" ] || [ ! -d "$CONNLOCKDIR" ] ; then
JOT=/usr/bin/jot
if [ ! -x "$JOT" ] ; then
# no flock or jot, simply invoke ctlexec()
CTL_CONN="ctl-${ERLANG_NODE}"
ctlexec $CTL_CONN "$@"
result=$?
else
# no flock, but at least there is jot
RAND=`jot -r 1 0 $MAXCONNID`
CTL_CONN="ctl-${RAND}-${ERLANG_NODE}"
ctlexec $CTL_CONN "$@"
result=$?
fi
else
# we have flock so we get a lock
# on one of a limited number of
# conn names -- this allows
# concurrent invocations using a bound
# number of atoms
for N in `seq 1 $MAXCONNID`; do
CTL_CONN="ejabberdctl-$N"
CTL_LOCKFILE="$CONNLOCKDIR/$CTL_CONN"
(
exec 8>"$CTL_LOCKFILE"
if flock --nb 8; then
ctlexec $CTL_CONN "$@"
ssresult=$?
# segregate from possible flock exit(1)
ssresult=`expr $ssresult \* 10`
exit $ssresult
else
exit 1
fi
)
result=$?
if [ $result -eq 1 ] ; then
# means we errored out in flock
# rather than in the exec - stay in the loop
# trying other conn names...
badlock=1
else
badlock=""
break;
fi
done
result=`expr $result / 10`
fi
if [ "$badlock" ] ;then
echo "Ran out of connections to try. Your ejabberd processes" >&2
echo "may be stuck or this is a very busy server. For very" >&2
echo "busy servers, consider raising MAXCONNID in ejabberdctl">&2
exit 1;
fi
case $result in
0) :;;
1) :;;
2) help;;
3) help;;
esac
return $result
}
ctlexec()
{
CONN_NAME=$1; shift
CMD="`shell_escape \"$ERL\" \"$NAME\" \"$CONN_NAME\"` \
NID=$(uid ctl)
CMD="`shell_escape \"$ERL\" \"$NAME\" \"$NID\"` \
-noinput -hidden $KERNEL_OPTS -s ejabberd_ctl \
-extra `shell_escape \"$ERLANG_NODE\"` $EJABBERD_NO_TIMEOUT \
`shell_escape \"$@\"`"
$EXEC_CMD "$CMD"
result=$?
case $result in
2) help;;
3) help;;
*) :;;
esac
return $result
}
uid()
{
uuid=$(uuidgen 2>/dev/null)
[ -z "$uuid" -a -f /proc/sys/kernel/random/uuid ] && uuid=$(</proc/sys/kernel/random/uuid)
[ -z "$uuid" ] && uuid=$(printf "%X" $RANDOM$(date +%M%S)$$)
uuid=${uuid%%-*}
[ $# -eq 0 ] && echo ${uuid}-${ERLANG_NODE}
[ $# -eq 1 ] && echo ${uuid}-${1}-${ERLANG_NODE}
[ $# -eq 2 ] && echo ${uuid}-${1}@${2}
}
# stop epmd if there is no other running node
stop_epmd()
{
$EPMD -names 2>/dev/null | grep -q name || $EPMD -kill >/dev/null
"$EPMD" -names 2>/dev/null | grep -q name || "$EPMD" -kill >/dev/null
}
# make sure node not already running and node name unregistered
check_start()
{
$EPMD -names 2>/dev/null | grep -q " ${ERLANG_NODE%@*} " && {
"$EPMD" -names 2>/dev/null | grep -q " ${ERLANG_NODE%@*} " && {
ps ux | grep -v grep | grep -q " $ERLANG_NODE " && {
echo "ERROR: The ejabberd node '$ERLANG_NODE' is already running."
exit 4
@@ -448,7 +404,7 @@ check_start()
echo "Shutdown all other erlang nodes, and call 'epmd -kill'."
exit 5
} || {
$EPMD -kill >/dev/null
"$EPMD" -kill >/dev/null
}
}
}
@@ -482,9 +438,9 @@ case "${ARGS[0]}" in
'live') live;;
'iexlive') iexlive;;
'foreground') foreground;;
'ping'*) ping ${ARGS# ping};;
'ping'*) ping ${ARGS[1]};;
'etop') etop;;
'started') wait_for_status 0 30 2;; # wait 30x2s before timeout
'stopped') wait_for_status 3 15 2 && stop_epmd;; # wait 15x2s before timeout
'stopped') wait_for_status 3 30 2 && stop_epmd;; # wait 30x2s before timeout
*) ctl "${ARGS[@]}";;
esac
+1 -1
View File
@@ -1,6 +1,6 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
+1 -1
View File
@@ -1,6 +1,6 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
+29 -3
View File
@@ -1,6 +1,6 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
@@ -26,28 +26,54 @@
{tuple, [rterm()]} | {list, rterm()} |
rescode | restuple.
-type oauth_scope() :: atom().
%% ejabberd_commands OAuth ReST ACL definition:
%% Two fields exist that are used to control access on a command from ReST API:
%% 1. Policy
%% If policy is:
%% - restricted: command is not exposed as OAuth Rest API.
%% - admin: Command is allowed for user that have Admin Rest command enabled by access rule: commands_admin_access
%% - user: Command might be called by any server user.
%% - open: Command can be called by anyone.
%%
%% Policy is just used to control who can call the command. A specific additional access rules can be performed, as
%% defined by access option.
%% Access option can be a list of:
%% - {Module, accessName, DefaultValue}: Reference and existing module access to limit who can use the command.
%% - AccessRule name: direct name of the access rule to check in config file.
%% TODO: Access option could be atom command (not a list). In the case, User performing the command, will be added as first parameter
%% to command, so that the command can perform additional check.
-record(ejabberd_commands,
{name :: atom(),
tags = [] :: [atom()] | '_' | '$2',
desc = "" :: string() | '_' | '$3',
longdesc = "" :: string() | '_',
module :: atom(),
function :: atom(),
version = 0 :: integer(),
module :: atom() | '_',
function :: atom() | '_',
args = [] :: [aterm()] | '_' | '$1' | '$2',
policy = restricted :: open | restricted | admin | user,
%% access is: [accessRuleName] or [{Module, AccessOption, DefaultAccessRuleName}]
access = [] :: [{atom(),atom(),atom()}|atom()],
result = {res, rescode} :: rterm() | '_' | '$2',
args_desc = none :: none | [string()] | '_',
result_desc = none :: none | string() | '_',
args_example = none :: none | [any()] | '_',
result_example = none :: any()}).
%% TODO Fix me: Type is not up to date
-type ejabberd_commands() :: #ejabberd_commands{name :: atom(),
tags :: [atom()],
desc :: string(),
longdesc :: string(),
version :: integer(),
module :: atom(),
function :: atom(),
args :: [aterm()],
policy :: open | restricted | admin | user,
access :: [{atom(),atom(),atom()}|atom()],
result :: rterm()}.
%% @type ejabberd_commands() = #ejabberd_commands{
+1 -1
View File
@@ -1,6 +1,6 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
+1 -1
View File
@@ -1,6 +1,6 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
+4 -5
View File
@@ -1,6 +1,6 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
@@ -23,8 +23,7 @@
path = [] :: [binary()],
q = [] :: [{binary() | nokey, binary()}],
us = {<<>>, <<>>} :: {binary(), binary()},
auth :: {binary(), binary()} |
{auth_jid, {binary(), binary()}, jlib:jid()},
auth :: {binary(), binary()} | {oauth, binary(), []} | undefined,
lang = <<"">> :: binary(),
data = <<"">> :: binary(),
ip :: {inet:ip_address(), inet:port_number()},
@@ -35,8 +34,8 @@
headers = [] :: [{atom() | binary(), binary()}]}).
-record(ws,
{socket :: inet:socket() | p1_tls:tls_socket(),
sockmod = gen_tcp :: gen_tcp | p1_tls,
{socket :: inet:socket() | fast_tls:tls_socket(),
sockmod = gen_tcp :: gen_tcp | fast_tls,
ip :: {inet:ip_address(), inet:port_number()},
host = <<"">> :: binary(),
port = 5280 :: inet:port_number(),
+26
View File
@@ -0,0 +1,26 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License along
%%% with this program; if not, write to the Free Software Foundation, Inc.,
%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
%%%
%%%----------------------------------------------------------------------
-record(oauth_token, {
token = <<"">> :: binary() | '_',
us = {<<"">>, <<"">>} :: {binary(), binary()} | '_',
scope = [] :: [binary()] | '_',
expire :: integer() | '$1'
}).
+20
View File
@@ -0,0 +1,20 @@
-include("ejabberd.hrl").
-include("logger.hrl").
-include("jlib.hrl").
-type filter_attr() :: {binary(), [binary()]}.
-record(state,
{socket :: ejabberd_socket:socket_state(),
sockmod = ejabberd_socket :: ejabberd_socket | ejabberd_frontend_socket,
streamid = <<"">> :: binary(),
host_opts = dict:new() :: ?TDICT,
host = <<"">> :: binary(),
access :: atom(),
check_from = true :: boolean(),
server_hosts = ?MYHOSTS :: [binary()],
privilege_access :: [attr()],
delegations :: [filter_attr()],
last_pres = dict:new() :: ?TDICT}).
-type(state() :: #state{} ).
+3 -2
View File
@@ -1,12 +1,13 @@
-ifndef(EJABBERD_SM_HRL).
-define(EJABBERD_SM_HRL, true).
-record(session, {sid, usr, us, priority, info}).
-record(session, {sid, usr, us, priority, info = []}).
-record(session_counter, {vhost, count}).
-type sid() :: {erlang:timestamp(), pid()}.
-type ip() :: {inet:ip_address(), inet:port_number()} | undefined.
-type info() :: [{conn, atom()} | {ip, ip()} | {node, atom()}
| {oor, boolean()} | {auth_module, atom()}].
| {oor, boolean()} | {auth_module, atom()}
| {num_stanzas_in, non_neg_integer()}].
-type prio() :: undefined | integer().
-endif.
+33
View File
@@ -0,0 +1,33 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License along
%%% with this program; if not, write to the Free Software Foundation, Inc.,
%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
%%%
%%%----------------------------------------------------------------------
-define(SQL_MARK, sql__mark_).
-define(SQL(SQL), ?SQL_MARK(SQL)).
-define(SQL_UPSERT_MARK, sql_upsert__mark_).
-define(SQL_UPSERT(Host, Table, Fields),
ejabberd_sql:sql_query(Host, ?SQL_UPSERT_MARK(Table, Fields))).
-define(SQL_UPSERT_T(Table, Fields),
ejabberd_sql:sql_query_t(?SQL_UPSERT_MARK(Table, Fields))).
-record(sql_query, {hash, format_query, format_res, args, loc}).
-record(sql_escape, {string, integer, boolean}).
+1 -1
View File
@@ -1,6 +1,6 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
+1 -1
View File
@@ -1,6 +1,6 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
+1 -1
View File
@@ -1,6 +1,6 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
+3 -3
View File
@@ -1,6 +1,6 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
@@ -20,9 +20,9 @@
-include("ns.hrl").
-ifdef(NO_EXT_LIB).
-include("xml.hrl").
-include("fxml.hrl").
-else.
-include_lib("p1_xml/include/xml.hrl").
-include_lib("fast_xml/include/fxml.hrl").
-endif.
-define(STANZA_ERROR(Code, Type, Condition),
+7 -20
View File
@@ -1,6 +1,6 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
@@ -18,8 +18,6 @@
%%%
%%%----------------------------------------------------------------------
-define(PRINT(Format, Args), io:format(Format, Args)).
-ifdef(LAGER).
-compile([{parse_transform, lager_transform}]).
-define(DEBUG(Format, Args),
@@ -37,20 +35,9 @@
-define(CRITICAL_MSG(Format, Args),
lager:critical(Format, Args)).
-else.
-define(DEBUG(Format, Args),
p1_logger:debug_msg(?MODULE, ?LINE, Format, Args)).
-define(INFO_MSG(Format, Args),
p1_logger:info_msg(?MODULE, ?LINE, Format, Args)).
-define(WARNING_MSG(Format, Args),
p1_logger:warning_msg(?MODULE, ?LINE, Format, Args)).
-define(ERROR_MSG(Format, Args),
p1_logger:error_msg(?MODULE, ?LINE, Format, Args)).
-define(CRITICAL_MSG(Format, Args),
p1_logger:critical_msg(?MODULE, ?LINE, Format, Args)).
-endif.
%% Use only when trying to troubleshoot test problem with ExUnit
-define(EXUNIT_LOG(Format, Args),
case lists:keyfind(logger, 1, application:loaded_applications()) of
false -> ok;
_ -> 'Elixir.Logger':bare_log(error, io_lib:format(Format, Args), [?MODULE])
end).
+5
View File
@@ -0,0 +1,5 @@
-record(motd, {server = <<"">> :: binary(),
packet = #xmlel{} :: xmlel()}).
-record(motd_users, {us = {<<"">>, <<"">>} :: {binary(), binary()} | '$1',
dummy = [] :: [] | '_'}).
+4
View File
@@ -0,0 +1,4 @@
-record(caps_features,
{node_pair = {<<"">>, <<"">>} :: {binary(), binary()},
features = [] :: [binary()] | pos_integer()
}).
+4
View File
@@ -0,0 +1,4 @@
-type matchspec_atom() :: '_' | '$1' | '$2' | '$3'.
-record(carboncopy, {us :: {binary(), binary()} | matchspec_atom(),
resource :: binary() | matchspec_atom(),
version :: binary() | matchspec_atom()}).
+15
View File
@@ -0,0 +1,15 @@
-type conn_param() :: {binary(), binary(), inet:port_number(), binary()} |
{binary(), binary(), inet:port_number()} |
{binary(), binary()} |
{binary()}.
-type irc_data() :: [{username, binary()} | {connections_params, [conn_param()]}].
-record(irc_connection,
{jid_server_host = {#jid{}, <<"">>, <<"">>} :: {jid(), binary(), binary()},
pid = self() :: pid()}).
-record(irc_custom,
{us_host = {{<<"">>, <<"">>}, <<"">>} :: {{binary(), binary()},
binary()},
data = [] :: irc_data()}).
+3
View File
@@ -0,0 +1,3 @@
-record(last_activity, {us = {<<"">>, <<"">>} :: {binary(), binary()},
timestamp = 0 :: non_neg_integer(),
status = <<"">> :: binary()}).
+15
View File
@@ -0,0 +1,15 @@
-record(archive_msg,
{us = {<<"">>, <<"">>} :: {binary(), binary()} | '$2',
id = <<>> :: binary() | '_',
timestamp = p1_time_compat:timestamp() :: erlang:timestamp() | '_' | '$1',
peer = {<<"">>, <<"">>, <<"">>} :: ljid() | '_' | '$3' | undefined,
bare_peer = {<<"">>, <<"">>, <<"">>} :: ljid() | '_' | '$3',
packet = #xmlel{} :: xmlel() | '_',
nick = <<"">> :: binary(),
type = chat :: chat | groupchat}).
-record(archive_prefs,
{us = {<<"">>, <<"">>} :: {binary(), binary()},
default = never :: never | always | roster,
always = [] :: [ljid()],
never = [] :: [ljid()]}).
+33
View File
@@ -0,0 +1,33 @@
%%%----------------------------------------------------------------------
%%% File : mod_muc.hrl
%%%
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License along
%%% with this program; if not, write to the Free Software Foundation, Inc.,
%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
%%%
%%%----------------------------------------------------------------------
-record(muc_room, {name_host = {<<"">>, <<"">>} :: {binary(), binary()} |
{'_', binary()},
opts = [] :: list() | '_'}).
-record(muc_online_room,
{name_host = {<<"">>, <<"">>} :: {binary(), binary()} | '$1' |
{'_', binary()} | '_',
pid = self() :: pid() | '$2' | '_' | '$1'}).
-record(muc_registered,
{us_host = {{<<"">>, <<"">>}, <<"">>} :: {{binary(), binary()}, binary()} | '$1',
nick = <<"">> :: binary()}).
+10 -1
View File
@@ -1,6 +1,6 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
@@ -53,6 +53,7 @@
members_by_default = true :: boolean(),
members_only = false :: boolean(),
allow_user_invites = false :: boolean(),
allow_subscription = false :: boolean(),
password_protected = false :: boolean(),
password = <<"">> :: binary(),
anonymous = true :: boolean(),
@@ -76,9 +77,15 @@
jid :: jid(),
nick :: binary(),
role :: role(),
%%is_subscriber = false :: boolean(),
%%subscriptions = [] :: [binary()],
last_presence :: xmlel()
}).
-record(subscriber, {jid :: jid(),
nick = <<>> :: binary(),
nodes = [] :: [binary()]}).
-record(activity,
{
message_time = 0 :: integer(),
@@ -98,6 +105,8 @@
jid = #jid{} :: jid(),
config = #config{} :: config(),
users = (?DICT):new() :: ?TDICT,
subscribers = (?DICT):new() :: ?TDICT,
subscriber_nicks = (?DICT):new() :: ?TDICT,
last_voice_request_time = treap:empty() :: treap:treap(),
robots = (?DICT):new() :: ?TDICT,
nicks = (?DICT):new() :: ?TDICT,
+1 -1
View File
@@ -1,6 +1,6 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
+4
View File
@@ -0,0 +1,4 @@
-record(private_storage,
{usns = {<<"">>, <<"">>, <<"">>} :: {binary(), binary(), binary() |
'$1' | '_'},
xml = #xmlel{} :: xmlel() | '_' | '$1'}).
+1 -1
View File
@@ -2,7 +2,7 @@
%%% RFC 1928 constants.
%%%
%%%
%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
+1 -1
View File
@@ -1,6 +1,6 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
+5
View File
@@ -0,0 +1,5 @@
-record(sr_group, {group_host = {<<"">>, <<"">>} :: {'$1' | binary(), '$2' | binary()},
opts = [] :: list() | '_' | '$2'}).
-record(sr_user, {us = {<<"">>, <<"">>} :: {binary(), binary()},
group_host = {<<"">>, <<"">>} :: {binary(), binary()}}).
+8
View File
@@ -0,0 +1,8 @@
-record(vcard_search,
{us, user, luser, fn, lfn, family, lfamily, given,
lgiven, middle, lmiddle, nickname, lnickname, bday,
lbday, ctry, lctry, locality, llocality, email, lemail,
orgname, lorgname, orgunit, lorgunit}).
-record(vcard, {us = {<<"">>, <<"">>} :: {binary(), binary()} | binary(),
vcard = #xmlel{} :: xmlel()}).
+2
View File
@@ -0,0 +1,2 @@
-record(vcard_xupdate, {us = {<<>>, <<>>} :: {binary(), binary()},
hash = <<>> :: binary()}).
+19 -1
View File
@@ -1,6 +1,6 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
@@ -131,6 +131,7 @@
-define(NS_FEATURE_COMPRESS,
<<"http://jabber.org/features/compress">>).
-define(NS_FEATURE_MSGOFFLINE, <<"msgoffline">>).
-define(NS_FLEX_OFFLINE, <<"http://jabber.org/protocol/offline">>).
-define(NS_COMPRESS,
<<"http://jabber.org/protocol/compress">>).
-define(NS_CAPS, <<"http://jabber.org/protocol/caps">>).
@@ -156,3 +157,20 @@
-define(NS_HTTP_UPLOAD_OLD, <<"eu:siacs:conversations:http:upload">>).
-define(NS_THUMBS_1, <<"urn:xmpp:thumbs:1">>).
-define(NS_NICK, <<"http://jabber.org/protocol/nick">>).
-define(NS_MIX_0, <<"urn:xmpp:mix:0">>).
-define(NS_MIX_SERVICEINFO_0, <<"urn:xmpp:mix:0#serviceinfo">>).
-define(NS_MIX_NODES_MESSAGES, <<"urn:xmpp:mix:nodes:messages">>).
-define(NS_MIX_NODES_PRESENCE, <<"urn:xmpp:mix:nodes:presence">>).
-define(NS_MIX_NODES_PARTICIPANTS, <<"urn:xmpp:mix:nodes:participants">>).
-define(NS_MIX_NODES_SUBJECT, <<"urn:xmpp:mix:nodes:subject">>).
-define(NS_MIX_NODES_CONFIG, <<"urn:xmpp:mix:nodes:config">>).
-define(NS_PRIVILEGE, <<"urn:xmpp:privilege:1">>).
-define(NS_DELEGATION, <<"urn:xmpp:delegation:1">>).
-define(NS_MUCSUB, <<"urn:xmpp:mucsub:0">>).
-define(NS_MUCSUB_NODES_PRESENCE, <<"urn:xmpp:mucsub:nodes:presence">>).
-define(NS_MUCSUB_NODES_MESSAGES, <<"urn:xmpp:mucsub:nodes:messages">>).
-define(NS_MUCSUB_NODES_PARTICIPANTS, <<"urn:xmpp:mucsub:nodes:participants">>).
-define(NS_MUCSUB_NODES_AFFILIATIONS, <<"urn:xmpp:mucsub:nodes:affiliations">>).
-define(NS_MUCSUB_NODES_SUBJECT, <<"urn:xmpp:mucsub:nodes:subject">>).
-define(NS_MUCSUB_NODES_CONFIG, <<"urn:xmpp:mucsub:nodes:config">>).
-define(NS_MUCSUB_NODES_SYSTEM, <<"urn:xmpp:mucsub:nodes:system">>).
+9 -4
View File
@@ -13,12 +13,12 @@
%%%
%%%
%%% The Initial Developer of the Original Code is ProcessOne.
%%% Portions created by ProcessOne are Copyright 2006-2015, ProcessOne
%%% Portions created by ProcessOne are Copyright 2006-2016, ProcessOne
%%% All Rights Reserved.''
%%% This software is copyright 2006-2015, ProcessOne.
%%% This software is copyright 2006-2016, ProcessOne.
%%%
%%%
%%% copyright 2006-2015 ProcessOne
%%% copyright 2006-2016 ProcessOne
%%%
%%% This file contains pubsub types definition.
%%% ====================================================================
@@ -65,7 +65,7 @@
%% note: pos_integer() should always be used, but we allow anything else coded
%% as binary, so one can have a custom implementation of nodetree with custom
%% indexing (see nodetree_virtual). this also allows to use any kind of key for
%% indexing nodes, as this can be usefull with external backends such as odbc.
%% indexing nodes, as this can be usefull with external backends such as sql.
-type(itemId() :: binary()).
%% @type itemId() = string().
@@ -93,7 +93,12 @@
-type(subOptions() :: [mod_pubsub:subOption(),...]).
-type(pubOption() ::
{Option::binary(),
Values::[binary()]
}).
-type(pubOptions() :: [mod_pubsub:pubOption()]).
-type(affiliation() :: 'none'
| 'owner'
+130
View File
@@ -0,0 +1,130 @@
defmodule ExUnit.CTFormatter do
@moduledoc false
use GenEvent
import ExUnit.Formatter, only: [format_time: 2, format_test_failure: 5,
format_test_case_failure: 5]
def init(opts) do
file = File.open! "exunit.log", [:append]
# We do not print filter in log file as exclusion of test with tag
# pending: true is always done
config = %{
file: file,
seed: opts[:seed],
trace: opts[:trace],
colors: Keyword.put_new(opts[:colors], :enabled, false),
width: 80,
tests_counter: 0,
failures_counter: 0,
skipped_counter: 0,
invalids_counter: 0
}
{:ok, config}
end
def handle_event({:suite_started, _opts}, config) do
{:ok, config}
end
def handle_event({:suite_finished, run_us, load_us}, config) do
print_suite(config, run_us, load_us)
File.close config[:file]
:remove_handler
end
def handle_event({:test_started, %ExUnit.Test{} = test}, config) do
if config.tests_counter == 0, do: IO.binwrite config[:file], "== Running #{test.case} ==\n\n"
{:ok, config}
end
def handle_event({:test_finished, %ExUnit.Test{state: nil} = _test}, config) do
IO.binwrite config[:file], "."
{:ok, %{config | tests_counter: config.tests_counter + 1}}
end
def handle_event({:test_finished, %ExUnit.Test{state: {:skip, _}} = _test}, config) do
{:ok, %{config | tests_counter: config.tests_counter + 1,
skipped_counter: config.skipped_counter + 1}}
end
def handle_event({:test_finished, %ExUnit.Test{state: {:invalid, _}} = _test}, config) do
IO.binwrite config[:file], "?"
{:ok, %{config | tests_counter: config.tests_counter + 1,
invalids_counter: config.invalids_counter + 1}}
end
def handle_event({:test_finished, %ExUnit.Test{state: {:failed, failures}} = test}, config) do
formatted = format_test_failure(test, failures, config.failures_counter + 1,
config.width, &formatter(&1, &2, config))
print_failure(formatted, config)
print_logs(test.logs)
{:ok, %{config | tests_counter: config.tests_counter + 1,
failures_counter: config.failures_counter + 1}}
end
def handle_event({:case_started, %ExUnit.TestCase{}}, config) do
{:ok, config}
end
def handle_event({:case_finished, %ExUnit.TestCase{state: nil}}, config) do
{:ok, config}
end
def handle_event({:case_finished, %ExUnit.TestCase{state: {:failed, failures}} = test_case}, config) do
formatted = format_test_case_failure(test_case, failures, config.failures_counter + 1,
config.width, &formatter(&1, &2, config))
print_failure(formatted, config)
{:ok, %{config | failures_counter: config.failures_counter + 1}}
end
## Printing
defp print_suite(config, run_us, load_us) do
IO.binwrite config[:file], "\n\n"
IO.binwrite config[:file], format_time(run_us, load_us)
IO.binwrite config[:file], "\n\n"
# singular/plural
test_pl = pluralize(config.tests_counter, "test", "tests")
failure_pl = pluralize(config.failures_counter, "failure", "failures")
message =
"#{config.tests_counter} #{test_pl}, #{config.failures_counter} #{failure_pl}"
|> if_true(config.skipped_counter > 0, & &1 <> ", #{config.skipped_counter} skipped")
|> if_true(config.invalids_counter > 0, & &1 <> ", #{config.invalids_counter} invalid")
cond do
config.failures_counter > 0 -> IO.binwrite config[:file], message
config.invalids_counter > 0 -> IO.binwrite config[:file], message
true -> IO.binwrite config[:file], message
end
IO.binwrite config[:file], "\nRandomized with seed #{config.seed}\n\n\n\n"
end
defp if_true(value, false, _fun), do: value
defp if_true(value, true, fun), do: fun.(value)
defp print_failure(formatted, config) do
IO.binwrite config[:file], "\n"
IO.binwrite config[:file], formatted
IO.binwrite config[:file], "\n"
end
defp formatter(_, msg, _config),
do: msg
defp pluralize(1, singular, _plural), do: singular
defp pluralize(_, _singular, plural), do: plural
defp print_logs(""), do: nil
defp print_logs(output) do
indent = "\n "
output = String.replace(output, "\n", indent)
IO.puts([" The following output was logged:", indent | output])
end
end
-2
View File
@@ -1,2 +0,0 @@
defmodule Ejabberd do
end
+119
View File
@@ -0,0 +1,119 @@
defmodule Ejabberd.Config.Attr do
@moduledoc """
Module used to work with the attributes parsed from
an elixir block (do...end).
Contains functions for extracting attrs from a block
and validation.
"""
@type attr :: {atom(), any()}
@attr_supported [
active:
[type: :boolean, default: true],
git:
[type: :string, default: ""],
name:
[type: :string, default: ""],
opts:
[type: :list, default: []],
dependency:
[type: :list, default: []]
]
@doc """
Takes a block with annotations and extracts the list
of attributes.
"""
@spec extract_attrs_from_block_with_defaults(any()) :: [attr]
def extract_attrs_from_block_with_defaults(block) do
block
|> extract_attrs_from_block
|> put_into_list_if_not_already
|> insert_default_attrs_if_missing
end
@doc """
Takes an attribute or a list of attrs and validate them.
Returns a {:ok, attr} or {:error, attr, cause} for each of the attributes.
"""
@spec validate([attr]) :: [{:ok, attr}] | [{:error, attr, atom()}]
def validate(attrs) when is_list(attrs), do: Enum.map(attrs, &valid_attr?/1)
def validate(attr), do: validate([attr]) |> List.first
@doc """
Returns the type of an attribute, given its name.
"""
@spec get_type_for_attr(atom()) :: atom()
def get_type_for_attr(attr_name) do
@attr_supported
|> Keyword.get(attr_name)
|> Keyword.get(:type)
end
@doc """
Returns the default value for an attribute, given its name.
"""
@spec get_default_for_attr(atom()) :: any()
def get_default_for_attr(attr_name) do
@attr_supported
|> Keyword.get(attr_name)
|> Keyword.get(:default)
end
# Private API
# Given an elixir block (do...end) returns a list with the annotations
# or a single annotation.
@spec extract_attrs_from_block(any()) :: [attr] | attr
defp extract_attrs_from_block({:__block__, [], attrs}), do: Enum.map(attrs, &extract_attrs_from_block/1)
defp extract_attrs_from_block({:@, _, [attrs]}), do: extract_attrs_from_block(attrs)
defp extract_attrs_from_block({attr_name, _, [value]}), do: {attr_name, value}
defp extract_attrs_from_block(nil), do: []
# In case extract_attrs_from_block returns a single attribute,
# then put it into a list. (Ensures attrs are always into a list).
@spec put_into_list_if_not_already([attr] | attr) :: [attr]
defp put_into_list_if_not_already(attrs) when is_list(attrs), do: attrs
defp put_into_list_if_not_already(attr), do: [attr]
# Given a list of attributes, it inserts the missing attribute with their
# default value.
@spec insert_default_attrs_if_missing([attr]) :: [attr]
defp insert_default_attrs_if_missing(attrs) do
Enum.reduce @attr_supported, attrs, fn({attr_name, _}, acc) ->
case Keyword.has_key?(acc, attr_name) do
true -> acc
false -> Keyword.put(acc, attr_name, get_default_for_attr(attr_name))
end
end
end
# Given an attribute, validates it and return a tuple with
# {:ok, attr} or {:error, attr, cause}
@spec valid_attr?(attr) :: {:ok, attr} | {:error, attr, atom()}
defp valid_attr?({attr_name, param} = attr) do
case Keyword.get(@attr_supported, attr_name) do
nil -> {:error, attr, :attr_not_supported}
[{:type, param_type} | _] -> case is_of_type?(param, param_type) do
true -> {:ok, attr}
false -> {:error, attr, :type_not_supported}
end
end
end
# Given an attribute value and a type, it returns a true
# if the value its of the type specified, false otherwise.
# Usefoul for checking if an attr value respects the type
# specified for the annotation.
@spec is_of_type?(any(), atom()) :: boolean()
defp is_of_type?(param, type) when type == :boolean and is_boolean(param), do: true
defp is_of_type?(param, type) when type == :string and is_bitstring(param), do: true
defp is_of_type?(param, type) when type == :list and is_list(param), do: true
defp is_of_type?(param, type) when type == :atom and is_atom(param), do: true
defp is_of_type?(_param, type) when type == :any, do: true
defp is_of_type?(_, _), do: false
end
+145
View File
@@ -0,0 +1,145 @@
defmodule Ejabberd.Config do
@moduledoc """
Base module for configuration file.
Imports macros for the config DSL and contains functions
for working/starting the configuration parsed.
"""
alias Ejabberd.Config.EjabberdModule
alias Ejabberd.Config.Attr
alias Ejabberd.Config.EjabberdLogger
defmacro __using__(_opts) do
quote do
import Ejabberd.Config, only: :macros
import Ejabberd.Logger
@before_compile Ejabberd.Config
end
end
# Validate the modules parsed and log validation errors at compile time.
# Could be also possible to interrupt the compilation&execution by throwing
# an exception if necessary.
def __before_compile__(_env) do
get_modules_parsed_in_order
|> EjabberdModule.validate
|> EjabberdLogger.log_errors
end
@doc """
Given the path of the config file, it evaluates it.
"""
def init(file_path, force \\ false) do
init_already_executed = Ejabberd.Config.Store.get(:module_name) != []
case force do
true ->
Ejabberd.Config.Store.stop
Ejabberd.Config.Store.start_link
do_init(file_path)
false ->
if not init_already_executed, do: do_init(file_path)
end
end
@doc """
Returns a list with all the opts, formatted for ejabberd.
"""
def get_ejabberd_opts do
get_general_opts
|> Dict.put(:modules, get_modules_parsed_in_order())
|> Dict.put(:listeners, get_listeners_parsed_in_order())
|> Ejabberd.Config.OptsFormatter.format_opts_for_ejabberd
end
@doc """
Register the hooks defined inside the elixir config file.
"""
def start_hooks do
get_hooks_parsed_in_order()
|> Enum.each(&Ejabberd.Config.EjabberdHook.start/1)
end
###
### MACROS
###
defmacro listen(module, do: block) do
attrs = Attr.extract_attrs_from_block_with_defaults(block)
quote do
Ejabberd.Config.Store.put(:listeners, %EjabberdModule{
module: unquote(module),
attrs: unquote(attrs)
})
end
end
defmacro module(module, do: block) do
attrs = Attr.extract_attrs_from_block_with_defaults(block)
quote do
Ejabberd.Config.Store.put(:modules, %EjabberdModule{
module: unquote(module),
attrs: unquote(attrs)
})
end
end
defmacro hook(hook_name, opts, fun) do
quote do
Ejabberd.Config.Store.put(:hooks, %Ejabberd.Config.EjabberdHook{
hook: unquote(hook_name),
opts: unquote(opts),
fun: unquote(fun)
})
end
end
# Private API
defp do_init(file_path) do
# File evaluation
Code.eval_file(file_path) |> extract_and_store_module_name()
# Getting start/0 config
Ejabberd.Config.Store.get(:module_name)
|> case do
nil -> IO.puts "[ ERR ] Configuration module not found."
[module] -> call_start_func_and_store_data(module)
end
# Fetching git modules and install them
get_modules_parsed_in_order()
|> EjabberdModule.fetch_git_repos
end
# Returns the modules from the store
defp get_modules_parsed_in_order,
do: Ejabberd.Config.Store.get(:modules) |> Enum.reverse
# Returns the listeners from the store
defp get_listeners_parsed_in_order,
do: Ejabberd.Config.Store.get(:listeners) |> Enum.reverse
defp get_hooks_parsed_in_order,
do: Ejabberd.Config.Store.get(:hooks) |> Enum.reverse
# Returns the general config options
defp get_general_opts,
do: Ejabberd.Config.Store.get(:general) |> List.first
# Gets the general ejabberd options calling
# the start/0 function and stores them.
defp call_start_func_and_store_data(module) do
opts = apply(module, :start, [])
Ejabberd.Config.Store.put(:general, opts)
end
# Stores the configuration module name
defp extract_and_store_module_name({{:module, mod, _bytes, _}, _}) do
Ejabberd.Config.Store.put(:module_name, mod)
end
end
+23
View File
@@ -0,0 +1,23 @@
defmodule Ejabberd.Config.EjabberdHook do
@moduledoc """
Module containing functions for manipulating
ejabberd hooks.
"""
defstruct hook: nil, opts: [], fun: nil
alias Ejabberd.Config.EjabberdHook
@type t :: %EjabberdHook{}
@doc """
Register a hook to ejabberd.
"""
@spec start(EjabberdHook.t) :: none
def start(%EjabberdHook{hook: hook, opts: opts, fun: fun}) do
host = Keyword.get(opts, :host, :global)
priority = Keyword.get(opts, :priority, 50)
:ejabberd_hooks.add(hook, host, fun, priority)
end
end
+70
View File
@@ -0,0 +1,70 @@
defmodule Ejabberd.Config.EjabberdModule do
@moduledoc """
Module representing a module block in the configuration file.
It offers functions for validation and for starting the modules.
Warning: The name is EjabberdModule to not collide with
the already existing Elixir.Module.
"""
@type t :: %{module: atom, attrs: [Attr.t]}
defstruct [:module, :attrs]
alias Ejabberd.Config.EjabberdModule
alias Ejabberd.Config.Attr
alias Ejabberd.Config.Validation
@doc """
Given a list of modules / single module
it runs different validators on them.
For each module, returns a {:ok, mod} or {:error, mod, errors}
"""
def validate(modules) do
Validation.validate(modules)
end
@doc """
Given a list of modules, it takes only the ones with
a git attribute and tries to fetch the repo,
then, it install them through :ext_mod.install/1
"""
@spec fetch_git_repos([EjabberdModule.t]) :: none()
def fetch_git_repos(modules) do
modules
|> Enum.filter(&is_git_module?/1)
|> Enum.each(&fetch_and_install_git_module/1)
end
# Private API
defp is_git_module?(%EjabberdModule{attrs: attrs}) do
case Keyword.get(attrs, :git) do
"" -> false
repo -> String.match?(repo, ~r/((git|ssh|http(s)?)|(git@[\w\.]+))(:(\/\/)?)([\w\.@\:\/\-~]+)(\.git)(\/)?/)
end
end
defp fetch_and_install_git_module(%EjabberdModule{attrs: attrs}) do
repo = Keyword.get(attrs, :git)
mod_name = case Keyword.get(attrs, :name) do
"" -> infer_mod_name_from_git_url(repo)
name -> name
end
path = "#{:ext_mod.modules_dir()}/sources/ejabberd-contrib\/#{mod_name}"
fetch_and_store_repo_source_if_not_exists(path, repo)
:ext_mod.install(mod_name) # Have to check if overwrites an already present mod
end
defp fetch_and_store_repo_source_if_not_exists(path, repo) do
unless File.exists?(path) do
IO.puts "[info] Fetching: #{repo}"
:os.cmd('git clone #{repo} #{path}')
end
end
defp infer_mod_name_from_git_url(repo),
do: String.split(repo, "/") |> List.last |> String.replace(".git", "")
end
@@ -0,0 +1,32 @@
defmodule Ejabberd.Config.EjabberdLogger do
@moduledoc """
Module used to log validation errors given validated modules
given validated modules.
"""
alias Ejabberd.Config.EjabberdModule
@doc """
Given a list of modules validated, in the form of {:ok, mod} or
{:error, mod, errors}, it logs to the user the errors found.
"""
@spec log_errors([EjabberdModule.t]) :: [EjabberdModule.t]
def log_errors(modules_validated) when is_list(modules_validated) do
Enum.each modules_validated, &do_log_errors/1
modules_validated
end
defp do_log_errors({:ok, _mod}), do: nil
defp do_log_errors({:error, _mod, errors}), do: Enum.each errors, &do_log_errors/1
defp do_log_errors({:attribute, errors}), do: Enum.each errors, &log_attribute_error/1
defp do_log_errors({:dependency, errors}), do: Enum.each errors, &log_dependency_error/1
defp log_attribute_error({{attr_name, val}, :attr_not_supported}), do:
IO.puts "[ WARN ] Annotation @#{attr_name} is not supported."
defp log_attribute_error({{attr_name, val}, :type_not_supported}), do:
IO.puts "[ WARN ] Annotation @#{attr_name} with value #{inspect val} is not supported (type mismatch)."
defp log_dependency_error({module, :not_found}), do:
IO.puts "[ WARN ] Module #{inspect module} was not found, but is required as a dependency."
end
+46
View File
@@ -0,0 +1,46 @@
defmodule Ejabberd.Config.OptsFormatter do
@moduledoc """
Module for formatting options parsed into the format
ejabberd uses.
"""
alias Ejabberd.Config.EjabberdModule
@doc """
Takes a keyword list with keys corresponding to
the keys requested by the ejabberd config (ex: modules: mods)
and formats them to be correctly evaluated by ejabberd.
Look at how Config.get_ejabberd_opts/0 is constructed for
more informations.
"""
@spec format_opts_for_ejabberd([{atom(), any()}]) :: list()
def format_opts_for_ejabberd(opts) do
opts
|> format_attrs_for_ejabberd
end
defp format_attrs_for_ejabberd(opts) when is_list(opts),
do: Enum.map opts, &format_attrs_for_ejabberd/1
defp format_attrs_for_ejabberd({:listeners, mods}),
do: {:listen, format_listeners_for_ejabberd(mods)}
defp format_attrs_for_ejabberd({:modules, mods}),
do: {:modules, format_mods_for_ejabberd(mods)}
defp format_attrs_for_ejabberd({key, opts}) when is_atom(key),
do: {key, opts}
defp format_mods_for_ejabberd(mods) do
Enum.map mods, fn %EjabberdModule{module: mod, attrs: attrs} ->
{mod, attrs[:opts]}
end
end
defp format_listeners_for_ejabberd(mods) do
Enum.map mods, fn %EjabberdModule{module: mod, attrs: attrs} ->
Keyword.put(attrs[:opts], :module, mod)
end
end
end
+55
View File
@@ -0,0 +1,55 @@
defmodule Ejabberd.Config.Store do
@moduledoc """
Module used for storing the modules parsed from
the configuration file.
Example:
- Store.put(:modules, mod1)
- Store.put(:modules, mod2)
- Store.get(:modules) :: [mod1, mod2]
Be carefoul: when retrieving data you get them
in the order inserted into the store, which normally
is the reversed order of how the modules are specified
inside the configuration file. To resolve this just use
a Enum.reverse/1.
"""
@name __MODULE__
def start_link do
Agent.start_link(fn -> %{} end, name: @name)
end
@doc """
Stores a value based on the key. If the key already exists,
then it inserts the new element, maintaining all the others.
It uses a list for this.
"""
@spec put(atom, any) :: :ok
def put(key, val) do
Agent.update @name, &Map.update(&1, key, [val], fn coll ->
[val | coll]
end)
end
@doc """
Gets a value based on the key passed.
Returns always a list.
"""
@spec get(atom) :: [any]
def get(key) do
Agent.get @name, &Map.get(&1, key, [])
end
@doc """
Stops the store.
It uses Agent.stop underneath, so be aware that exit
could be called.
"""
@spec stop() :: :ok
def stop do
Agent.stop @name
end
end
@@ -0,0 +1,40 @@
defmodule Ejabberd.Config.Validation do
@moduledoc """
Module used to validate a list of modules.
"""
@type mod_validation :: {[EjabberdModule.t], EjabberdModule.t, map}
@type mod_validation_result :: {:ok, EjabberdModule.t} | {:error, EjabberdModule.t, map}
alias Ejabberd.Config.EjabberdModule
alias Ejabberd.Config.Attr
alias Ejabberd.Config.Validator
alias Ejabberd.Config.ValidatorUtility
@doc """
Given a module or a list of modules it runs validators on them
and returns {:ok, mod} or {:error, mod, errors}, for each
of them.
"""
@spec validate([EjabberdModule.t] | EjabberdModule.t) :: [mod_validation_result]
def validate(modules) when is_list(modules), do: Enum.map(modules, &do_validate(modules, &1))
def validate(module), do: validate([module])
# Private API
@spec do_validate([EjabberdModule.t], EjabberdModule.t) :: mod_validation_result
defp do_validate(modules, mod) do
{modules, mod, %{}}
|> Validator.Attrs.validate
|> Validator.Dependencies.validate
|> resolve_validation_result
end
@spec resolve_validation_result(mod_validation) :: mod_validation_result
defp resolve_validation_result({_modules, mod, errors}) do
case errors do
err when err == %{} -> {:ok, mod}
err -> {:error, mod, err}
end
end
end
@@ -0,0 +1,28 @@
defmodule Ejabberd.Config.Validator.Attrs do
@moduledoc """
Validator module used to validate attributes.
"""
# TODO: Duplicated from validator.ex !!!
@type mod_validation :: {[EjabberdModule.t], EjabberdModule.t, map}
import Ejabberd.Config.ValidatorUtility
alias Ejabberd.Config.Attr
@doc """
Given a module (with the form used for validation)
it runs Attr.validate/1 on each attribute and
returns the validation tuple with the errors updated, if found.
"""
@spec validate(mod_validation) :: mod_validation
def validate({modules, mod, errors}) do
errors = Enum.reduce mod.attrs, errors, fn(attr, err) ->
case Attr.validate(attr) do
{:ok, attr} -> err
{:error, attr, cause} -> put_error(err, :attribute, {attr, cause})
end
end
{modules, mod, errors}
end
end
@@ -0,0 +1,30 @@
defmodule Ejabberd.Config.Validator.Dependencies do
@moduledoc """
Validator module used to validate dependencies specified
with the @dependency annotation.
"""
# TODO: Duplicated from validator.ex !!!
@type mod_validation :: {[EjabberdModule.t], EjabberdModule.t, map}
import Ejabberd.Config.ValidatorUtility
@doc """
Given a module (with the form used for validation)
it checks if the @dependency annotation is respected and
returns the validation tuple with the errors updated, if found.
"""
@spec validate(mod_validation) :: mod_validation
def validate({modules, mod, errors}) do
module_names = extract_module_names(modules)
dependencies = mod.attrs[:dependency]
errors = Enum.reduce dependencies, errors, fn(req_module, err) ->
case req_module in module_names do
true -> err
false -> put_error(err, :dependency, {req_module, :not_found})
end
end
{modules, mod, errors}
end
end
@@ -0,0 +1,30 @@
defmodule Ejabberd.Config.ValidatorUtility do
@moduledoc """
Module used as a base validator for validation modules.
Imports utility functions for working with validation structures.
"""
alias Ejabberd.Config.EjabberdModule
@doc """
Inserts an error inside the errors collection, for the given key.
If the key doesn't exists then it creates an empty collection
and inserts the value passed.
"""
@spec put_error(map, atom, any) :: map
def put_error(errors, key, val) do
Map.update errors, key, [val], fn coll ->
[val | coll]
end
end
@doc """
Given a list of modules it extracts and returns a list
of the module names (which are Elixir.Module).
"""
@spec extract_module_names(EjabberdModule.t) :: [atom]
def extract_module_names(modules) when is_list(modules) do
modules
|> Enum.map(&Map.get(&1, :module))
end
end
+18
View File
@@ -0,0 +1,18 @@
defmodule Ejabberd.ConfigUtil do
@moduledoc """
Module containing utility functions for
the config file.
"""
@doc """
Returns true when the config file is based on elixir.
"""
@spec is_elixir_config(list) :: boolean
def is_elixir_config(filename) when is_list(filename) do
is_elixir_config(to_string(filename))
end
def is_elixir_config(filename) do
String.ends_with?(filename, "exs")
end
end
+19
View File
@@ -0,0 +1,19 @@
defmodule Ejabberd.Module do
defmacro __using__(opts) do
logger_enabled = Keyword.get(opts, :logger, true)
quote do
@behaviour :gen_mod
import Ejabberd.Module
unquote(if logger_enabled do
quote do: import Ejabberd.Logger
end)
end
end
# gen_mod callbacks
def depends(_host, _opts), do: []
def mod_opt_type(_), do: []
end
+94
View File
@@ -0,0 +1,94 @@
defmodule Mix.Tasks.Ejabberd.Deps.Tree do
use Mix.Task
alias Ejabberd.Config.EjabberdModule
@shortdoc "Lists all ejabberd modules and their dependencies"
@moduledoc """
Lists all ejabberd modules and their dependencies.
The project must have ejabberd as a dependency.
"""
def run(_argv) do
# First we need to start manually the store to be available
# during the compilation of the config file.
Ejabberd.Config.Store.start_link
Ejabberd.Config.init(:ejabberd_config.get_ejabberd_config_path())
Mix.shell.info "ejabberd modules"
Ejabberd.Config.Store.get(:modules)
|> Enum.reverse # Because of how mods are stored inside the store
|> format_mods
|> Mix.shell.info
end
defp format_mods(mods) when is_list(mods) do
deps_tree = build_dependency_tree(mods)
mods_used_as_dependency = get_mods_used_as_dependency(deps_tree)
keep_only_mods_not_used_as_dep(deps_tree, mods_used_as_dependency)
|> format_mods_into_string
end
defp build_dependency_tree(mods) do
Enum.map mods, fn %EjabberdModule{module: mod, attrs: attrs} ->
deps = attrs[:dependency]
build_dependency_tree(mods, mod, deps)
end
end
defp build_dependency_tree(mods, mod, []), do: %{module: mod, dependency: []}
defp build_dependency_tree(mods, mod, deps) when is_list(deps) do
dependencies = Enum.map deps, fn dep ->
dep_deps = get_dependencies_of_mod(mods, dep)
build_dependency_tree(mods, dep, dep_deps)
end
%{module: mod, dependency: dependencies}
end
defp get_mods_used_as_dependency(mods) when is_list(mods) do
Enum.reduce mods, [], fn(mod, acc) ->
case mod do
%{dependency: []} -> acc
%{dependency: deps} -> get_mod_names(deps) ++ acc
end
end
end
defp get_mod_names([]), do: []
defp get_mod_names(mods) when is_list(mods), do: Enum.map(mods, &get_mod_names/1) |> List.flatten
defp get_mod_names(%{module: mod, dependency: deps}), do: [mod | get_mod_names(deps)]
defp keep_only_mods_not_used_as_dep(mods, mods_used_as_dep) do
Enum.filter mods, fn %{module: mod} ->
not mod in mods_used_as_dep
end
end
defp get_dependencies_of_mod(deps, mod_name) do
Enum.find(deps, &(Map.get(&1, :module) == mod_name))
|> Map.get(:attrs)
|> Keyword.get(:dependency)
end
defp format_mods_into_string(mods), do: format_mods_into_string(mods, 0)
defp format_mods_into_string([], _indentation), do: ""
defp format_mods_into_string(mods, indentation) when is_list(mods) do
Enum.reduce mods, "", fn(mod, acc) ->
acc <> format_mods_into_string(mod, indentation)
end
end
defp format_mods_into_string(%{module: mod, dependency: deps}, 0) do
"\n├── #{mod}" <> format_mods_into_string(deps, 2)
end
defp format_mods_into_string(%{module: mod, dependency: deps}, indentation) do
spaces = Enum.reduce 0..indentation, "", fn(_, acc) -> " " <> acc end
"\n#{spaces}└── #{mod}" <> format_mods_into_string(deps, indentation + 4)
end
end
+6 -7
View File
@@ -1,21 +1,20 @@
defmodule ModPresenceDemo do
import Ejabberd.Logger # this allow using info, error, etc for logging
@behaviour :gen_mod
use Ejabberd.Module
def start(host, _opts) do
info('Starting ejabberd module Presence Demo')
Ejabberd.Hooks.add(:set_presence_hook, host, __ENV__.module, :on_presence, 50)
Ejabberd.Hooks.add(:set_presence_hook, host, __MODULE__, :on_presence, 50)
:ok
end
def stop(host) do
info('Stopping ejabberd module Presence Demo')
Ejabberd.Hooks.delete(:set_presence_hook, host, __ENV__.module, :on_presence, 50)
Ejabberd.Hooks.delete(:set_presence_hook, host, __MODULE__, :on_presence, 50)
:ok
end
def on_presence(user, _server, _resource, _packet) do
info('Receive presence for #{user}')
:none
end
end
end
+48 -30
View File
@@ -3,24 +3,33 @@ defmodule Ejabberd.Mixfile do
def project do
[app: :ejabberd,
version: "16.01.0",
elixir: "~> 1.1",
version: "16.08.0",
description: description,
elixir: "~> 1.2",
elixirc_paths: ["lib"],
compile_path: ".",
compilers: [:asn1] ++ Mix.compilers,
erlc_options: erlc_options,
erlc_paths: ["asn1", "src"],
# Elixir tests are starting the part of ejabberd they need
aliases: [test: "test --no-start"],
package: package,
deps: deps]
end
defp description do
"""
Robust, ubiquitous and massively scalable Jabber / XMPP Instant Messaging platform.
"""
end
def application do
[mod: {:ejabberd_app, []},
applications: [:ssl, :mnesia],
included_applications: [:lager, :p1_utils, :cache_tab,
:p1_tls, :p1_stringprep, :p1_xml,
:p1_stun, :p1_yaml, :p1_zlib, :p1_iconv,
:esip, :jiffy, :oauth2, :xmlrpc, :eredis,
applications: [:ssl],
included_applications: [:lager, :mnesia, :p1_utils, :cache_tab,
:fast_tls, :stringprep, :fast_xml,
:stun, :fast_yaml, :ezlib, :iconv,
:esip, :jiffy, :p1_oauth2, :eredis,
:p1_mysql, :p1_pgsql, :sqlite3]]
end
@@ -31,32 +40,41 @@ defmodule Ejabberd.Mixfile do
end
defp deps do
[{:lager, git: "https://github.com/basho/lager", tag: "3.0.2"},
{:p1_utils, git: "https://github.com/processone/p1_utils", tag: "1.0.2"},
{:cache_tab, git: "https://github.com/processone/cache_tab", tag: "1.0.1"},
{:p1_tls, git: "https://github.com/processone/tls", tag: "1.0.0"},
{:p1_stringprep, git: "https://github.com/processone/stringprep", tag: "1.0.0"},
{:p1_xml, git: "https://github.com/processone/xml", tag: "1.1.1"},
{:p1_stun, git: "https://github.com/processone/stun", tag: "0.9.0"},
{:esip, git: "https://github.com/processone/p1_sip", tag: "1.0.0"},
{:p1_yaml, git: "https://github.com/processone/p1_yaml", tag: "1.0.0"},
{:jiffy, git: "https://github.com/davisp/jiffy", tag: "0.14.5"},
{:oauth2, git: "https://github.com/kivra/oauth2", "8d129fbf8866930b4ffa6dd84e65bd2b32b9acb8"},
{:xmlrpc, git: "https://github.com/rds13/xmlrpc.git", tag: "1.15"},
{:p1_mysql, git: "https://github.com/processone/mysql", tag: "1.0.0"},
{:p1_pgsql, git: "https://github.com/processone/pgsql", tag: "1.0.0"},
{:sqlite3, git: "https://github.com/alexeyr/erlang-sqlite3", "cbc3505f7a131254265d3ef56191b2581b8cc172"},
{:p1_zlib, git: "https://github.com/processone/zlib", tag: "1.0.0"},
{:p1_iconv, git: "https://github.com/processone/eiconv", tag: "0.9.0"},
{:eredis, git: "https://github.com/wooga/eredis", tag: "v1.0.8"},
{:exrm, "0.19.9"}]
[{:lager, "~> 3.2"},
{:p1_utils, "~> 1.0"},
{:cache_tab, "~> 1.0"},
{:stringprep, "~> 1.0"},
{:fast_yaml, "~> 1.0"},
{:fast_tls, "~> 1.0"},
{:fast_xml, "~> 1.1"},
{:stun, "~> 1.0"},
{:esip, "~> 1.0"},
{:jiffy, "~> 0.14.7"},
{:p1_oauth2, "~> 0.6.1"},
{:p1_mysql, "~> 1.0"},
{:p1_pgsql, "~> 1.1"},
{:sqlite3, "~> 1.1"},
{:ezlib, "~> 1.0"},
{:iconv, "~> 1.0"},
{:eredis, "~> 1.0"},
{:exrm, "~> 1.0.0", only: :dev},
# relx is used by exrm. Lock version as for now, ejabberd doesn not compile fine with
# version 3.20:
{:relx, "~> 3.21", only: :dev},
{:ex_doc, ">= 0.0.0", only: :dev},
{:meck, "~> 0.8.4", only: :test},
{:moka, github: "processone/moka", tag: "1.0.5c", only: :test}]
end
defp package do
[licenses: ["GPLv2"],
links: %{"Site" => "https://www.ejabberd.im",
"Documentation" => "http://docs.ejabberd.im",
"Source" => "https://github.com/processone/ejabberd"}]
[# These are the default files included in the package
files: ["lib", "src", "priv", "mix.exs", "include", "README.md", "COPYING"],
maintainers: ["ProcessOne"],
licenses: ["GPLv2"],
links: %{"Site" => "https://www.ejabberd.im",
"Documentation" => "http://docs.ejabberd.im",
"Source" => "https://github.com/processone/ejabberd",
"ProcessOne" => "http://www.process-one.net/"}]
end
end
+30 -8
View File
@@ -1,8 +1,30 @@
%{"bbmustache": {:hex, :bbmustache, "1.0.4"},
"erlware_commons": {:hex, :erlware_commons, "0.18.0"},
"getopt": {:hex, :getopt, "0.8.2"},
"providers": {:hex, :providers, "1.6.0"},
"cf": {:hex, :cf, "0.2.1"},
"relx": {:hex, :relx, "3.11.0"},
"conform": {:hex, :conform, "0.17.0"},
"neotoma": {:hex, :neotoma, "1.7.3"}}
%{"bbmustache": {:hex, :bbmustache, "1.0.4", "7ba94f971c5afd7b6617918a4bb74705e36cab36eb84b19b6a1b7ee06427aa38", [:rebar], []},
"cache_tab": {:hex, :cache_tab, "1.0.4", "3fd2b1ab40c36e7830a4e09e836c6b0fa89191cd4e5fd471873e4eb42f5cd37c", [:rebar3], [{:p1_utils, "1.0.5", [hex: :p1_utils, optional: false]}]},
"cf": {:hex, :cf, "0.2.1", "69d0b1349fd4d7d4dc55b7f407d29d7a840bf9a1ef5af529f1ebe0ce153fc2ab", [:rebar3], []},
"earmark": {:hex, :earmark, "1.0.1", "2c2cd903bfdc3de3f189bd9a8d4569a075b88a8981ded9a0d95672f6e2b63141", [:mix], []},
"eredis": {:hex, :eredis, "1.0.8", "ab4fda1c4ba7fbe6c19c26c249dc13da916d762502c4b4fa2df401a8d51c5364", [:rebar], []},
"erlware_commons": {:hex, :erlware_commons, "0.21.0", "a04433071ad7d112edefc75ac77719dd3e6753e697ac09428fc83d7564b80b15", [:rebar3], [{:cf, "0.2.1", [hex: :cf, optional: false]}]},
"esip": {:hex, :esip, "1.0.8", "69885a6c07964aabc6c077fe1372aa810a848bd3d9a415b160dabdce9c7a79b5", [:rebar3], [{:fast_tls, "1.0.7", [hex: :fast_tls, optional: false]}, {:p1_utils, "1.0.5", [hex: :p1_utils, optional: false]}, {:stun, "1.0.7", [hex: :stun, optional: false]}]},
"ex_doc": {:hex, :ex_doc, "0.13.0", "aa2f8fe4c6136a2f7cfc0a7e06805f82530e91df00e2bff4b4362002b43ada65", [:mix], [{:earmark, "~> 1.0", [hex: :earmark, optional: false]}]},
"exrm": {:hex, :exrm, "1.0.8", "5aa8990cdfe300282828b02cefdc339e235f7916388ce99f9a1f926a9271a45d", [:mix], [{:relx, "~> 3.5", [hex: :relx, optional: false]}]},
"ezlib": {:hex, :ezlib, "1.0.1", "add8b2770a1a70c174aaea082b4a8668c0c7fdb03ee6cc81c6c68d3a6c3d767d", [:rebar3], []},
"fast_tls": {:hex, :fast_tls, "1.0.7", "9b72ecfcdcad195ab072c196fab8334f49d8fea76bf1a51f536d69e7527d902a", [:rebar3], [{:p1_utils, "1.0.5", [hex: :p1_utils, optional: false]}]},
"fast_xml": {:hex, :fast_xml, "1.1.15", "6d23eb7f874e1357cf80a48d75a7bd0c8f6318029dc4b70122e9f54911f57f83", [:rebar3], [{:p1_utils, "1.0.5", [hex: :p1_utils, optional: false]}]},
"fast_yaml": {:hex, :fast_yaml, "1.0.6", "3fe6feb7935ae8028b337e53e1db29e73ad3bca8041108f6a8f73b7175ece75c", [:rebar3], [{:p1_utils, "1.0.5", [hex: :p1_utils, optional: false]}]},
"getopt": {:hex, :getopt, "0.8.2", "b17556db683000ba50370b16c0619df1337e7af7ecbf7d64fbf8d1d6bce3109b", [:rebar], []},
"goldrush": {:hex, :goldrush, "0.1.8", "2024ba375ceea47e27ea70e14d2c483b2d8610101b4e852ef7f89163cdb6e649", [:rebar3], []},
"iconv": {:hex, :iconv, "1.0.2", "a0792f06ab4b5ea1b5bb49789405739f1281a91c44cf3879cb70e4d777666217", [:rebar3], [{:p1_utils, "1.0.5", [hex: :p1_utils, optional: false]}]},
"jiffy": {:hex, :jiffy, "0.14.7", "9f33b893edd6041ceae03bc1e50b412e858cc80b46f3d7535a7a9940a79a1c37", [:rebar, :make], []},
"lager": {:hex, :lager, "3.2.1", "eef4e18b39e4195d37606d9088ea05bf1b745986cf8ec84f01d332456fe88d17", [:rebar3], [{:goldrush, "0.1.8", [hex: :goldrush, optional: false]}]},
"meck": {:hex, :meck, "0.8.4", "59ca1cd971372aa223138efcf9b29475bde299e1953046a0c727184790ab1520", [:rebar, :make], []},
"moka": {:git, "https://github.com/processone/moka.git", "3eed3a6dd7dedb70a6cd18f86c7561a18626eb3b", [tag: "1.0.5c"]},
"p1_mysql": {:hex, :p1_mysql, "1.0.1", "d2be1cfc71bb4f1391090b62b74c3f5cb8e7a45b0076b8cb290cd6b2856c581b", [:rebar3], []},
"p1_oauth2": {:hex, :p1_oauth2, "0.6.1", "4e021250cc198c538b097393671a41e7cebf463c248980320e038fe0316eb56b", [:rebar3], []},
"p1_pgsql": {:hex, :p1_pgsql, "1.1.0", "ca525c42878eac095e5feb19563acc9915c845648f48fdec7ba6266c625d4ac7", [:rebar3], []},
"p1_utils": {:hex, :p1_utils, "1.0.5", "3e698354fdc1fea5491d991457b0cb986c0a00a47d224feb841dc3ec82b9f721", [:rebar3], []},
"providers": {:hex, :providers, "1.6.0", "db0e2f9043ae60c0155205fcd238d68516331d0e5146155e33d1e79dc452964a", [:rebar3], [{:getopt, "0.8.2", [hex: :getopt, optional: false]}]},
"relx": {:hex, :relx, "3.21.0", "91e1ea9f09b4edfda8461901f4b5c5e0226e43ec161e147eeab29f7761df6eb5", [:rebar3], [{:bbmustache, "1.0.4", [hex: :bbmustache, optional: false]}, {:cf, "0.2.1", [hex: :cf, optional: false]}, {:erlware_commons, "0.21.0", [hex: :erlware_commons, optional: false]}, {:getopt, "0.8.2", [hex: :getopt, optional: false]}, {:providers, "1.6.0", [hex: :providers, optional: false]}]},
"samerlib": {:git, "https://github.com/processone/samerlib", "fbbba035b1548ac4e681df00d61bf609645333a0", [tag: "0.8.0c"]},
"sqlite3": {:hex, :sqlite3, "1.1.5", "794738b6d07b6d36ec6d42492cb9d629bad9cf3761617b8b8d728e765db19840", [:rebar3], []},
"stringprep": {:hex, :stringprep, "1.0.6", "1cf1c439eb038aa590da5456e019f86afbfbfeb5a2d37b6e5f873041624c6701", [:rebar3], [{:p1_utils, "1.0.5", [hex: :p1_utils, optional: false]}]},
"stun": {:hex, :stun, "1.0.7", "904dc6f26a3c30c54881c4c3003699f2a4968067ee6b3aecdf9895aad02df75e", [:rebar3], [{:fast_tls, "1.0.7", [hex: :fast_tls, optional: false]}, {:p1_utils, "1.0.5", [hex: :p1_utils, optional: false]}]}}
+12
View File
@@ -1,4 +1,5 @@
%% -*- coding: latin-1 -*-
{"Accept","Acceptar"}.
{"Access Configuration","Configuració d'accesos"}.
{"Access Control List Configuration","Configuració de la Llista de Control d'Accés"}.
{"Access Control Lists","Llista de Control d'Accés"}.
@@ -87,6 +88,7 @@
{"ejabberd Web Admin","Web d'administració del ejabberd"}.
{"Elements","Elements"}.
{"Email","Email"}.
{"Empty Rooms","Sales buides "}.
{"Enable logging","Habilitar el registre de la conversa"}.
{"Enable message archiving","Activar l'emmagatzematge de missatges"}.
{"Encoding for server ~b","Codificació pel servidor ~b"}.
@@ -142,6 +144,7 @@
{"Import Users from Dir at ","Importar usuaris des del directori en "}.
{"Import Users From jabberd14 Spool Files","Importar usuaris de jabberd14"}.
{"Improper message type","Tipus de missatge incorrecte"}.
{"Incoming s2s Connections:","Connexions s2s d'entrada"}.
{"Incorrect password","Contrasenya incorrecta"}.
{"Invalid affiliation: ~s","Afiliació invàlida: ~s"}.
{"Invalid role: ~s","Rol invàlid: ~s"}.
@@ -154,6 +157,7 @@
{"IRC username","Nom d'usuari al IRC"}.
{"IRC Username","Nom d'usuari al IRC"}.
{"is now known as","ara es conegut com"}.
{"It is not allowed to send error messages to the room. The participant (~s) has sent an error message (~s) and got kicked from the room","No està permés enviar missatges d'error a la sala. El participant (~s) ha enviat un missatge d'error (~s) i ha sigut expulsat de la sala"}.
{"It is not allowed to send private messages","No està permés enviar missatges privats"}.
{"It is not allowed to send private messages of type \"groupchat\"","No està permés enviar missatges del tipus \"groupchat\""}.
{"It is not allowed to send private messages to the conference","No està permès l'enviament de missatges privats a la sala"}.
@@ -196,6 +200,7 @@
{"Message body","Missatge"}.
{"Middle Name","Segon nom"}.
{"Minimum interval between voice requests (in seconds)","Interval mínim entre peticions de veu (en segons)"}.
{"Moderator","Moderador"}.
{"Moderator privileges required","Es necessita tenir privilegis de moderador"}.
{"moderators only","només moderadors"}.
{"Modified modules","Mòduls modificats"}.
@@ -239,6 +244,7 @@
{"Online Users","Usuaris conectats"}.
{"Online Users:","Usuaris en línia:"}.
{"Only deliver notifications to available users","Sols enviar notificacions als usuaris disponibles"}.
{"Only members may query archives of this room","Només membres poden consultar l'arxiu de missatges d'aquesta sala"}.
{"Only moderators and participants are allowed to change the subject in this room","Només els moderadors i participants poden canviar l'assumpte d'aquesta sala"}.
{"Only moderators are allowed to change the subject in this room","Només els moderadors poden canviar l'assumpte d'aquesta sala"}.
{"Only moderators can approve voice requests","Només els moderadors poden aprovar les peticions de veu"}.
@@ -252,6 +258,7 @@
{"Outgoing s2s Connections","Connexions s2s d'eixida"}.
{"Owner privileges required","Es requerixen privilegis de propietari de la sala"}.
{"Packet","Paquet"}.
{"Participant","Participant"}.
{"Password ~b","Contrasenya ~b"}.
{"Password:","Contrasenya:"}.
{"Password","Contrasenya"}.
@@ -265,6 +272,8 @@
{"Persist items to storage","Persistir elements al guardar"}.
{"Ping","Ping"}.
{"Please note that these options will only backup the builtin Mnesia database. If you are using the ODBC module, you also need to backup your SQL database separately.","Recorda que aquestes opcions només fan còpia de seguretat de la base de dades Mnesia. Si estàs utilitzant el mòdul d'ODBC també deus de fer una còpia de seguretat de la base de dades de SQL a part."}.
{"Please specify file name.","Per favor especifica el nom del fitxer."}.
{"Please specify file size.","Per favor especifica la mida del fitxer."}.
{"Please, wait for a while before sending new voice request","Si us plau, espera una mica abans d'enviar una nova petició de veu"}.
{"Pong","Pong"}.
{"Port ~b","Port ~b"}.
@@ -300,6 +309,7 @@
{"Restore binary backup immediately:","Restaurar una còpia de seguretat binària ara mateix."}.
{"Restore plain text backup immediately:","Restaurar una còpia de seguretat en format de text pla ara mateix:"}.
{"Restore","Restaurar"}.
{"Roles for which Presence is Broadcasted","Rols per als que sí se difon la seua presencia"}.
{"Room Configuration","Configuració de la sala"}.
{"Room creation is denied by service policy","Se t'ha denegat el crear la sala per política del servei"}.
{"Room description","Descripció de la sala:"}.
@@ -323,6 +333,7 @@
{"September","Setembre"}.
{"Server ~b","Servidor ~b"}.
{"Server:","Servidor:"}.
{"Server","Servidor"}.
{"Set message of the day and send to online users","Configurar el missatge del dia i enviar a tots els usuaris"}.
{"Set message of the day on all hosts and send to online users","Escriure missatge del dia en tots els hosts i enviar-ho als usuaris connectats"}.
{"Shared Roster Groups","Grups de contactes compartits"}.
@@ -408,6 +419,7 @@
{"Virtual Hosts","Hosts virtuals"}.
{"Visitors are not allowed to change their nicknames in this room","Els visitants no tenen permés canviar el seus Nicknames en esta sala"}.
{"Visitors are not allowed to send messages to all occupants","Els visitants no poden enviar missatges a tots els ocupants"}.
{"Visitor","Visitant"}.
{"Voice request","Petició de veu"}.
{"Voice requests are disabled in this conference","Les peticions de veu es troben desactivades en aquesta conferència"}.
{"Wednesday","Dimecres"}.
+43 -45
View File
@@ -3,10 +3,10 @@ msgid ""
msgstr ""
"Project-Id-Version: 2.1.0-alpha\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2015-09-07 14:13+0100\n"
"PO-Revision-Date: 2016-01-15 12:25+0100\n"
"Last-Translator: Badlop <badlop@process-one.net>\n"
"Language-Team: American English <kde-i18n-doc@kde.org>\n"
"Language: en_US\n"
"Language-Team: \n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -32,13 +32,13 @@ msgstr "Reemplaçat per una nova connexió"
msgid "has been kicked"
msgstr "Has sigut expulsat"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr ""
"La teva llista de privacitat activa ha denegat l'encaminament d'aquesta "
"stanza."
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr "Massa missatges sense haver reconegut la seva recepció"
@@ -69,9 +69,8 @@ msgid "User"
msgstr "Usuari"
#: ejabberd_oauth.erl:256
#, fuzzy
msgid "Server"
msgstr "Servidor:"
msgstr "Servidor"
#: ejabberd_oauth.erl:259 ejabberd_web_admin.erl:1408 mod_configure.erl:1398
#: mod_configure.erl:1485 mod_configure.erl:1889 mod_configure.erl:2123
@@ -81,7 +80,7 @@ msgstr "Contrasenya"
#: ejabberd_oauth.erl:267
msgid "Accept"
msgstr ""
msgstr "Acceptar"
#: ejabberd_web_admin.erl:202 ejabberd_web_admin.erl:214
#: ejabberd_web_admin.erl:234 ejabberd_web_admin.erl:246
@@ -248,9 +247,8 @@ msgid "Outgoing s2s Connections:"
msgstr "Connexions d'eixida s2s"
#: ejabberd_web_admin.erl:1559
#, fuzzy
msgid "Incoming s2s Connections:"
msgstr "Connexions d'eixida s2s"
msgstr "Connexions s2s d'entrada"
#: ejabberd_web_admin.erl:1595 ejabberd_web_admin.erl:1794
#: ejabberd_web_admin.erl:1804 ejabberd_web_admin.erl:2214 mod_roster.erl:1429
@@ -849,13 +847,13 @@ msgstr ""
"Massa autenticacions (~p) han fallat des d'aquesta adreça IP (~s). L'adreça "
"serà desbloquejada en ~s UTC"
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
msgstr "Per favor especifica la mida del fitxer."
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
msgstr "Per favor especifica el nom del fitxer."
#: mod_ip_blacklist.erl:121
msgid "This IP address is blacklisted in ~s"
@@ -973,10 +971,9 @@ msgstr "Codificació pel servidor ~b"
msgid "Server ~b"
msgstr "Servidor ~b"
#: mod_mam.erl:270
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgstr "Només els moderadors poden canviar l'assumpte d'aquesta sala"
#: mod_mam.erl:541
msgid "Only members may query archives of this room"
msgstr "Només membres poden consultar l'arxiu de missatges d'aquesta sala"
#: mod_muc.erl:585
msgid "Only service administrators are allowed to send service messages"
@@ -996,37 +993,37 @@ msgstr "La sala de conferències no existeix"
msgid "Chatrooms"
msgstr "Sales de xat"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
msgstr "Sales buides "
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr ""
"Necessites un client amb suport x:data per a poder registrar el sobrenom"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Registre del sobrenom en "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Introdueix el sobrenom que vols registrar"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Sobrenom"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "El nickname ja està registrat per una altra persona"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Deus d'omplir el camp \"Nickname\" al formulari"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "mòdul ejabberd MUC"
@@ -1193,9 +1190,11 @@ msgstr "El llímit de tràfic ha sigut sobrepassat"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
"No està permés enviar missatges d'error a la sala. El participant (~s) ha "
"enviat un missatge d'error (~s) i ha sigut expulsat de la sala"
#: mod_muc_room.erl:241
msgid "It is not allowed to send private messages to the conference"
@@ -1233,7 +1232,7 @@ msgstr "El receptor no està en la sala de conferència"
msgid "It is not allowed to send private messages"
msgstr "No està permés enviar missatges privats"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Sols els ocupants poden enviar missatges a la sala"
@@ -1317,7 +1316,7 @@ msgstr "Afiliació invàlida: ~s"
msgid "Invalid role: ~s"
msgstr "Rol invàlid: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "Es requerixen privilegis de propietari de la sala"
@@ -1329,7 +1328,7 @@ msgstr "Configuració de la sala ~s"
msgid "Room title"
msgstr "Títol de la sala"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "Descripció de la sala:"
@@ -1371,20 +1370,19 @@ msgstr "qualsevol"
#: mod_muc_room.erl:3471
msgid "Roles for which Presence is Broadcasted"
msgstr ""
msgstr "Rols per als que sí se difon la seua presencia"
#: mod_muc_room.erl:3486
#, fuzzy
msgid "Moderator"
msgstr "només moderadors"
msgstr "Moderador"
#: mod_muc_room.erl:3496
msgid "Participant"
msgstr ""
msgstr "Participant"
#: mod_muc_room.erl:3506
msgid "Visitor"
msgstr ""
msgstr "Visitant"
#: mod_muc_room.erl:3513
msgid "Make room members-only"
@@ -1460,35 +1458,35 @@ msgstr "Habilitar el registre de la conversa"
msgid "You need an x:data capable client to configure room"
msgstr "Necessites un client amb suport x:data per a configurar la sala"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Número d'ocupants"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "privat"
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr "Petició de veu"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr "Aprova o denega la petició de veu"
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "JID del usuari "
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr "Concedir veu a aquesta persona?"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s et convida a la sala ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "la contrasenya és"
+30
View File
@@ -1,4 +1,5 @@
%% -*- coding: latin-1 -*-
{"Accept","Přijmout"}.
{"Access Configuration","Konfigurace přístupů"}.
{"Access Control List Configuration","Konfigurace seznamu přístupových práv (ACL)"}.
{"Access control lists","Seznamy přístupových práv (ACL)"}.
@@ -31,6 +32,7 @@
{"April",". dubna"}.
{"August",". srpna"}.
{"Backup Management","Správa zálohování"}.
{"Backup of ~p","Záloha ~p"}.
{"Backup to File at ","Záloha do souboru na "}.
{"Backup","Zálohovat"}.
{"Bad format","Nesprávný formát"}.
@@ -59,6 +61,7 @@
{"Country","Země"}.
{"CPU Time:","Čas procesoru"}.
{"Database","Databáze"}.
{"Database Tables at ~p","Databázové tabulky na ~p"}.
{"Database Tables Configuration at ","Konfigurace databázových tabulek "}.
{"December",". prosince"}.
{"Default users as participants","Uživatelé jsou implicitně členy"}.
@@ -78,13 +81,16 @@
{"Either approve or decline the voice request.","Povolit nebo odmítnout voice žádost."}.
{"ejabberd IRC module","ejabberd IRC modul"}.
{"ejabberd MUC module","ejabberd MUC modul"}.
{"ejabberd Multicast service","Služba ejabberd Multicast"}.
{"ejabberd Publish-Subscribe module","ejabberd Publish-Subscribe modul"}.
{"ejabberd SOCKS5 Bytestreams module","ejabberd SOCKS5 Bytestreams modul"}.
{"ejabberd vCard module","ejabberd vCard modul"}.
{"ejabberd Web Admin","Webová administrace ejabberd"}.
{"Elements","Položek"}.
{"Email","E-mail"}.
{"Empty Rooms","Prázdné konference"}.
{"Enable logging","Zaznamenávat konverzace"}.
{"Enable message archiving","Povolit ukládání historie zpráv"}.
{"Encoding for server ~b","Kódování pro server ~b"}.
{"End User Session","Ukončit sezení uživatele"}.
{"Enter list of {Module, [Options]}","Vložte seznam modulů {Modul, [Parametry]}"}.
@@ -100,6 +106,7 @@
{"Error","Chyba"}.
{"Example: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"secret\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.sometestserver.net\", \"utf-8\"}].","Příklad: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"secret\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.sometestserver.net\", \"utf-8\"}].2\"}]."}.
{"Exclude Jabber IDs from CAPTCHA challenge","Vyloučit Jabber ID z procesu CAPTCHA ověřování"}.
{"Export all tables as SQL queries to a file:","Zálohovat všechny tabulky jako SQL dotazy do souboru:"}.
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Exportovat všechny uživatele do souboru ve formátu PIEFXIS (XEP-0227):"}.
{"Export data of users in a host to PIEFXIS files (XEP-0227):","Exportovat uživatele na hostiteli do souboru ve formátu PIEFXIS (XEP-0227):"}.
{"Failed to extract JID from your voice request approval","Došlo k chybě při získávání Jabber ID z vaší žádosti o voice práva"}.
@@ -137,6 +144,7 @@
{"Import Users from Dir at ","Importovat uživatele z adresáře na "}.
{"Import Users From jabberd14 Spool Files","Importovat uživatele z jabberd14 spool souborů"}.
{"Improper message type","Nesprávný typ zprávy"}.
{"Incoming s2s Connections:",""}.
{"Incorrect password","Nesprávné heslo"}.
{"Invalid affiliation: ~s","Neplatné přiřazení: ~s"}.
{"Invalid role: ~s","Neplatná role: ~s"}.
@@ -149,6 +157,7 @@
{"IRC username","IRC přezdívka"}.
{"IRC Username","IRC přezdívka"}.
{"is now known as","se přejmenoval(a) na"}.
{"It is not allowed to send error messages to the room. The participant (~s) has sent an error message (~s) and got kicked from the room","Není povoleno posílat chybové zprávy do konference. Účastník (~s) odeslal chybovou zprávu (~s) a byl vyhozen z konference."}.
{"It is not allowed to send private messages","Je zakázáno posílat soukromé zprávy"}.
{"It is not allowed to send private messages of type \"groupchat\"","Není dovoleno odeslání soukromé zprávy typu \"skupinová zpráva\" "}.
{"It is not allowed to send private messages to the conference","Není povoleno odesílat soukromé zprávy do konference"}.
@@ -170,6 +179,7 @@
{"Listened Ports at ","Otevřené porty na "}.
{"Listened Ports","Otevřené porty"}.
{"List of modules to start","Seznam modulů, které mají být spuštěné"}.
{"List of rooms","Seznam konferencí"}.
{"Low level update script","Nízkoúrovňový aktualizační skript"}.
{"Make participants list public","Nastavit seznam účastníků jako veřejný"}.
{"Make room CAPTCHA protected","Chránit místnost pomocí CAPTCHA"}.
@@ -190,12 +200,16 @@
{"Message body","Tělo zprávy"}.
{"Middle Name","Druhé jméno"}.
{"Minimum interval between voice requests (in seconds)","Minimální interval mezi žádostmi o voice práva (v sekundách)"}.
{"Moderator","Moderátor"}.
{"Moderator privileges required","Potřebujete práva moderátora"}.
{"moderators only","moderátorům"}.
{"Modified modules","Aktualizované moduly"}.
{"Module","Modul"}.
{"Modules at ~p","Moduly v ~p"}.
{"Modules","Moduly"}.
{"Monday","Pondělí"}.
{"Multicast","Multicast"}.
{"Multi-User Chat","Víceuživatelský chat"}.
{"Name:","Jméno:"}.
{"Name","Jméno"}.
{"Never","Nikdy"}.
@@ -208,6 +222,7 @@
{"No Data","Žádná data"}.
{"Node ID","ID uzlu"}.
{"Node not found","Uzel nenalezen"}.
{"Node ~p","Uzel ~p"}.
{"Nodes","Uzly"}.
{"No limit","Bez limitu"}.
{"None","Nic"}.
@@ -229,6 +244,7 @@
{"Online Users:","Online uživatelé:"}.
{"Online Users","Online uživatelé"}.
{"Only deliver notifications to available users","Doručovat upozornění jen právě přihlášeným uživatelům"}.
{"Only members may query archives of this room","Pouze moderátoři mají povoleno měnit téma místnosti"}.
{"Only moderators and participants are allowed to change the subject in this room","Jen moderátoři a účastníci mají povoleno měnit téma této místnosti"}.
{"Only moderators are allowed to change the subject in this room","Jen moderátoři mají povoleno měnit téma místnosti"}.
{"Only moderators can approve voice requests","Pouze moderátoři mohou schválit žádosti o voice práva"}.
@@ -242,6 +258,7 @@
{"Outgoing s2s Connections","Odchozí s2s spojení"}.
{"Owner privileges required","Jsou vyžadována práva vlastníka"}.
{"Packet","Paket"}.
{"Participant","Účastník"}.
{"Password ~b","Heslo ~b"}.
{"Password:","Heslo:"}.
{"Password","Heslo"}.
@@ -251,9 +268,12 @@
{"Path to File","Cesta k souboru"}.
{"Pending","Čekající"}.
{"Period: ","Čas: "}.
{"Permanent rooms","Stálých konferencí"}.
{"Persist items to storage","Uložit položky natrvalo do úložiště"}.
{"Ping","Ping"}.
{"Please note that these options will only backup the builtin Mnesia database. If you are using the ODBC module, you also need to backup your SQL database separately.","Podotýkáme, že tato nastavení budou zálohována do zabudované databáze Mnesia. Pokud používáte ODBC modul, musíte zálohovat svoji SQL databázi samostatně."}.
{"Please specify file name.","Zvolit jméno souboru."}.
{"Please specify file size.","Zvolit velikost souboru."}.
{"Please, wait for a while before sending new voice request","Prosím, počkejte chvíli před posláním nové žádosti o voice práva"}.
{"Pong","Pong"}.
{"Port ~b","Port ~b"}.
@@ -271,6 +291,7 @@
{"Really delete message of the day?","Skutečně smazat zprávu dne?"}.
{"Recipient is not in the conference room","Příjemce se nenachází v konferenční místnosti"}.
{"Register a Jabber account","Zaregistrujte si účet Jabberu"}.
{"Registered nicknames","Registrované přezdívky"}.
{"Registered Users","Registrovaní uživatelé"}.
{"Registered Users:","Registrovaní živatelé:"}.
{"Register","Zaregistrovat se"}.
@@ -288,6 +309,7 @@
{"Restore binary backup immediately:","Okamžitě obnovit binární zálohu:"}.
{"Restore","Obnovit"}.
{"Restore plain text backup immediately:","Okamžitě obnovit zálohu z textového souboru:"}.
{"Roles for which Presence is Broadcasted","Role, pro které je zpráva o stavu šířena"}.
{"Room Configuration","Nastavení místnosti"}.
{"Room creation is denied by service policy","Pravidla služby nepovolují vytvořit místnost"}.
{"Room description","Popis místnosti"}.
@@ -311,6 +333,7 @@
{"September",". září"}.
{"Server ~b","Server ~b"}.
{"Server:","Server:"}.
{"Server","Server"}.
{"Set message of the day and send to online users","Nastavit zprávu dne a odeslat ji online uživatelům"}.
{"Set message of the day on all hosts and send to online users","Nastavit zprávu dne a odeslat ji online uživatelům"}.
{"Shared Roster Groups","Skupiny pro sdílený seznam kontaktů"}.
@@ -352,6 +375,7 @@
{"There was an error changing the password: ","Při změně hesla došlo k chybě: "}.
{"There was an error creating the account: ","Při vytváření účtu došlo k chybě."}.
{"There was an error deleting the account: ","Při mazání účtu došlo k chybě: "}.
{"This IP address is blacklisted in ~s","IP adresa je blokována na ~s"}.
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","Zde nezáleží na velikosti písmen: macbeth je stejný jako MacBeth a Macbeth."}.
{"This page allows to create a Jabber account in this Jabber server. Your JID (Jabber IDentifier) will be of the form: username@server. Please read carefully the instructions to fill correctly the fields.","Na této stránce si můžete vytvořit účet na tomto serveru Jabberu. Vaše JID (Jabber IDentifikátor) bude mít tvar: uživatelskéjméno@server. Přečtěte si prosím pozorně instrukce pro vyplnění údajů."}.
{"This page allows to unregister a Jabber account in this Jabber server.","Zde můžete zrušit registraci účtu na tomto serveru Jabberu."}.
@@ -359,8 +383,11 @@
{"Time","Čas"}.
{"Time delay","Časový posun"}.
{"Too many CAPTCHA requests","Přiliš mnoho CAPTCHA žádostí"}.
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Příliš mnoho (~p) chybných pokusů o přihlášení z této IP adresy (~s). Adresa bude zablokována do ~s UTC"}.
{"Too many unacked stanzas","Příliš mnoho nepotvrzených stanz"}.
{"To","Pro"}.
{"To ~s","Pro ~s"}.
{"Total rooms","Celkem konferencí"}.
{"Traffic rate limit is exceeded","Byl překročen limit"}.
{"Transactions Aborted:","Transakce zrušena"}.
{"Transactions Committed:","Transakce potvrzena"}.
@@ -374,6 +401,7 @@
{"Update","Aktualizovat"}.
{"Update message of the day (don't send)","Aktualizovat zprávu dne (neodesílat)"}.
{"Update message of the day on all hosts (don't send)","Aktualizovat zprávu dne pro všechny hostitele (neodesílat)"}.
{"Update ~p","Aktualizovat ~p"}.
{"Update plan","Aktualizovat plán"}.
{"Update script","Aktualizované skripty"}.
{"Uptime:","Čas běhu:"}.
@@ -381,6 +409,7 @@
{"User JID","Jabber ID uživatele"}.
{"User Management","Správa uživatelů"}.
{"Username:","Uživatelské jméno:"}.
{"User ~s",""}.
{"Users are not allowed to register accounts so quickly","Je zakázáno registrovat účty v tak rychlém sledu"}.
{"Users Last Activity","Poslední aktivita uživatele"}.
{"Users","Uživatelé"}.
@@ -388,6 +417,7 @@
{"Validate","Ověřit"}.
{"vCard User Search","Hledání uživatelů podle vizitek"}.
{"Virtual Hosts","Virtuální hostitelé"}.
{"Visitor","Návštěvník"}.
{"Visitors are not allowed to change their nicknames in this room","Návštěvníkům této místnosti je zakázáno měnit přezdívku"}.
{"Visitors are not allowed to send messages to all occupants","Návštevníci nemají povoleno zasílat zprávy všem účastníkům konference"}.
{"Voice requests are disabled in this conference","Voice žádosti jsou v této konferenci zakázány"}.
+69 -70
View File
@@ -7,6 +7,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Language: Czech (čeština)\n"
"X-Additional-Translator: Milos Svasek [DuxforD] from openheads.net\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Language-Team: \n"
"Language: cs\n"
"X-Generator: Poedit 1.8.6\n"
#: ejabberd_c2s.erl:505 ejabberd_c2s.erl:853
msgid "Use of STARTTLS required"
@@ -25,13 +30,13 @@ msgstr "Nahrazeno novým spojením"
msgid "has been kicked"
msgstr "byl(a) vyhozen(a) z místnosti"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr "Vaše nastavení soukromí znemožnilo směrování této stance."
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr ""
msgstr "Příliš mnoho nepotvrzených stanz"
#: ejabberd_captcha.erl:122 ejabberd_captcha.erl:245 ejabberd_captcha.erl:284
msgid "Enter the text you see"
@@ -59,9 +64,8 @@ msgid "User"
msgstr "Uživatel"
#: ejabberd_oauth.erl:256
#, fuzzy
msgid "Server"
msgstr "Server:"
msgstr "Server"
#: ejabberd_oauth.erl:259 ejabberd_web_admin.erl:1408 mod_configure.erl:1398
#: mod_configure.erl:1485 mod_configure.erl:1889 mod_configure.erl:2123
@@ -71,7 +75,7 @@ msgstr "Heslo"
#: ejabberd_oauth.erl:267
msgid "Accept"
msgstr ""
msgstr "Přijmout"
#: ejabberd_web_admin.erl:202 ejabberd_web_admin.erl:214
#: ejabberd_web_admin.erl:234 ejabberd_web_admin.erl:246
@@ -143,8 +147,7 @@ msgstr "Virtuální hostitelé"
msgid "Users"
msgstr "Uživatelé"
#: ejabberd_web_admin.erl:955 ejabberd_web_admin.erl:1340
#: mod_configure.erl:524
#: ejabberd_web_admin.erl:955 ejabberd_web_admin.erl:1340 mod_configure.erl:524
msgid "Online Users"
msgstr "Online uživatelé"
@@ -238,9 +241,10 @@ msgid "Outgoing s2s Connections:"
msgstr "Odchozí s2s spojení:"
#: ejabberd_web_admin.erl:1559
#, fuzzy
msgid "Incoming s2s Connections:"
msgstr "Odchozí s2s spojení:"
msgstr ""
"Příchozí\n"
" s2s spojení:"
#: ejabberd_web_admin.erl:1595 ejabberd_web_admin.erl:1794
#: ejabberd_web_admin.erl:1804 ejabberd_web_admin.erl:2214 mod_roster.erl:1429
@@ -253,9 +257,10 @@ msgid "Change Password"
msgstr "Změnit heslo"
#: ejabberd_web_admin.erl:1673
#, fuzzy
msgid "User ~s"
msgstr "Uživatel "
msgstr ""
"Uživatel\n"
" ~s"
#: ejabberd_web_admin.erl:1684
msgid "Connected Resources:"
@@ -287,9 +292,8 @@ msgid "Stopped Nodes"
msgstr "Zastavené uzly"
#: ejabberd_web_admin.erl:1833 ejabberd_web_admin.erl:1858
#, fuzzy
msgid "Node ~p"
msgstr "Uzel "
msgstr "Uzel ~p"
#: ejabberd_web_admin.erl:1842 mod_configure.erl:150 mod_configure.erl:611
msgid "Database"
@@ -326,9 +330,8 @@ msgid "RPC Call Error"
msgstr "Chyba RPC volání"
#: ejabberd_web_admin.erl:1917
#, fuzzy
msgid "Database Tables at ~p"
msgstr "Databázové tabulky na "
msgstr "Databázové tabulky na ~p"
#: ejabberd_web_admin.erl:1927 mod_vcard.erl:490 mod_vcard.erl:616
msgid "Name"
@@ -351,9 +354,8 @@ msgid "Error"
msgstr "Chyba"
#: ejabberd_web_admin.erl:1955
#, fuzzy
msgid "Backup of ~p"
msgstr "Záloha na "
msgstr "Záloha ~p"
#: ejabberd_web_admin.erl:1959
msgid ""
@@ -412,7 +414,7 @@ msgstr ""
#: ejabberd_web_admin.erl:2060
msgid "Export all tables as SQL queries to a file:"
msgstr ""
msgstr "Zálohovat všechny tabulky jako SQL dotazy do souboru:"
#: ejabberd_web_admin.erl:2076
msgid "Import user data from jabberd14 spool file:"
@@ -427,9 +429,8 @@ msgid "Listened Ports at "
msgstr "Otevřené porty na "
#: ejabberd_web_admin.erl:2144
#, fuzzy
msgid "Modules at ~p"
msgstr "Moduly na "
msgstr "Moduly v ~p"
#: ejabberd_web_admin.erl:2175
msgid "Statistics of ~p"
@@ -460,9 +461,8 @@ msgid "Transactions Logged:"
msgstr "Transakce zaznamenána"
#: ejabberd_web_admin.erl:2243
#, fuzzy
msgid "Update ~p"
msgstr "Aktualizovat "
msgstr "Aktualizovat ~p"
#: ejabberd_web_admin.erl:2254
msgid "Update plan"
@@ -840,18 +840,20 @@ msgid ""
"Too many (~p) failed authentications from this IP address (~s). The address "
"will be unblocked at ~s UTC"
msgstr ""
"Příliš mnoho (~p) chybných pokusů o přihlášení z této IP adresy (~s). Adresa "
"bude zablokována do ~s UTC"
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
msgstr "Zvolit velikost souboru."
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
msgstr "Zvolit jméno souboru."
#: mod_ip_blacklist.erl:121
msgid "This IP address is blacklisted in ~s"
msgstr ""
msgstr "IP adresa je blokována na ~s"
#: mod_irc.erl:220 mod_muc.erl:467
msgid "Access denied by service policy"
@@ -962,10 +964,9 @@ msgstr "Kódování pro server ~b"
msgid "Server ~b"
msgstr "Server ~b"
#: mod_mam.erl:270
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgstr "Jen moderátoři mají povoleno měnit téma místnosti"
#: mod_mam.erl:541
msgid "Only members may query archives of this room"
msgstr "Pouze moderátoři mají povoleno měnit téma místnosti"
#: mod_muc.erl:585
msgid "Only service administrators are allowed to send service messages"
@@ -983,62 +984,59 @@ msgstr "Konferenční místnost neexistuje"
msgid "Chatrooms"
msgstr "Konference"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
msgstr "Prázdné konference"
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr "Pro registraci přezdívky potřebujete klienta s podporou x:data"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Registrace přezdívky na "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Zadejte přezdívku, kterou chcete zaregistrovat"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Přezdívka"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "Přezdívka je zaregistrována jinou osobou"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Musíte vyplnit políčko \"Přezdívka\" ve formuláři"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "ejabberd MUC modul"
#: mod_muc_admin.erl:231 mod_muc_admin.erl:234 mod_muc_admin.erl:246
#: mod_muc_admin.erl:320
msgid "Multi-User Chat"
msgstr ""
msgstr "Víceuživatelský chat"
#: mod_muc_admin.erl:249
#, fuzzy
msgid "Total rooms"
msgstr "Konference"
msgstr "Celkem konferencí"
#: mod_muc_admin.erl:250
#, fuzzy
msgid "Permanent rooms"
msgstr "opustil(a) místnost"
msgstr "Stálých konferencí"
#: mod_muc_admin.erl:251
#, fuzzy
msgid "Registered nicknames"
msgstr "Registrovaní uživatelé"
msgstr "Registrované přezdívky"
#: mod_muc_admin.erl:254
msgid "List of rooms"
msgstr ""
msgstr "Seznam konferencí"
#: mod_muc_log.erl:398 mod_muc_log.erl:407
msgid "Chatroom configuration modified"
@@ -1182,9 +1180,11 @@ msgstr "Byl překročen limit"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
"Není povoleno posílat chybové zprávy do konference. Účastník (~s) odeslal "
"chybovou zprávu (~s) a byl vyhozen z konference."
#: mod_muc_room.erl:241
msgid "It is not allowed to send private messages to the conference"
@@ -1222,7 +1222,7 @@ msgstr "Příjemce se nenachází v konferenční místnosti"
msgid "It is not allowed to send private messages"
msgstr "Je zakázáno posílat soukromé zprávy"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Jen členové mají povolené zasílat zprávy do konference"
@@ -1305,7 +1305,7 @@ msgstr "Neplatné přiřazení: ~s"
msgid "Invalid role: ~s"
msgstr "Neplatná role: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "Jsou vyžadována práva vlastníka"
@@ -1317,7 +1317,7 @@ msgstr "Konfigurace místnosti ~s"
msgid "Room title"
msgstr "Název místnosti"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "Popis místnosti"
@@ -1359,20 +1359,19 @@ msgstr "každému"
#: mod_muc_room.erl:3471
msgid "Roles for which Presence is Broadcasted"
msgstr ""
msgstr "Role, pro které je zpráva o stavu šířena"
#: mod_muc_room.erl:3486
#, fuzzy
msgid "Moderator"
msgstr "moderátorům"
msgstr "Moderátor"
#: mod_muc_room.erl:3496
msgid "Participant"
msgstr ""
msgstr "Účastník"
#: mod_muc_room.erl:3506
msgid "Visitor"
msgstr ""
msgstr "Návštěvník"
#: mod_muc_room.erl:3513
msgid "Make room members-only"
@@ -1432,7 +1431,7 @@ msgstr "Chránit místnost pomocí CAPTCHA"
#: mod_muc_room.erl:3606
msgid "Enable message archiving"
msgstr ""
msgstr "Povolit ukládání historie zpráv"
#: mod_muc_room.erl:3612
msgid "Exclude Jabber IDs from CAPTCHA challenge"
@@ -1446,45 +1445,45 @@ msgstr "Zaznamenávat konverzace"
msgid "You need an x:data capable client to configure room"
msgstr "Ke konfiguraci místnosti potřebujete klienta podporujícího x:data"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Počet účastníků"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "soukromá, "
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr "Žádost o voice práva"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr "Povolit nebo odmítnout voice žádost."
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "Jabber ID uživatele"
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr "Udělit voice práva této osobě?"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s vás zve do místnosti ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "heslo je"
#: mod_multicast.erl:291
msgid "Multicast"
msgstr ""
msgstr "Multicast"
#: mod_multicast.erl:306
msgid "ejabberd Multicast service"
msgstr ""
msgstr "Služba ejabberd Multicast"
#: mod_offline.erl:647
msgid ""
+14 -2
View File
@@ -1,4 +1,5 @@
%% -*- coding: latin-1 -*-
{"Accept","Akzeptieren"}.
{"Access Configuration","Zugangskonfiguration"}.
{"Access Control List Configuration","Konfiguration der Zugangskontrolllisten"}.
{"Access control lists","Zugangskontroll-Listen (ACL)"}.
@@ -87,6 +88,7 @@
{"ejabberd Web Admin","ejabberd Web-Admin"}.
{"Elements","Elemente"}.
{"Email","E-Mail"}.
{"Empty Rooms","Leere Räume"}.
{"Enable logging","Protokollierung aktivieren"}.
{"Enable message archiving","Nachrichtenarchivierung aktivieren"}.
{"Encoding for server ~b","Kodierung für Server ~b"}.
@@ -142,6 +144,7 @@
{"Import Users from Dir at ","Benutzer importieren aus dem Verzeichnis "}.
{"Import Users From jabberd14 Spool Files","Importiere Benutzer aus jabberd14-Spool-Dateien"}.
{"Improper message type","Unzulässiger Nachrichtentyp"}.
{"Incoming s2s Connections:","Eingehende s2s-Verbindungen:"}.
{"Incorrect password","Falsches Passwort"}.
{"Invalid affiliation: ~s","Ungültige Mitgliedschaft: ~s"}.
{"Invalid role: ~s","Ungültige Rolle: ~s"}.
@@ -154,6 +157,7 @@
{"IRC username","IRC Benutzername"}.
{"IRC Username","IRC-Benutzername"}.
{"is now known as","ist nun bekannt als"}.
{"It is not allowed to send error messages to the room. The participant (~s) has sent an error message (~s) and got kicked from the room","Es ist nicht erlaubt Fehlermeldungen an den Raum zu senden. Der Teilnehmer (~s) hat eine Fehlermeldung (~s) gesendet und wurde aus dem Raum entfernt"}.
{"It is not allowed to send private messages","Es ist nicht erlaubt private Nachrichten zu senden"}.
{"It is not allowed to send private messages of type \"groupchat\"","Es ist nicht erlaubt private Nachrichten des Typs \"Gruppenchat\" zu senden"}.
{"It is not allowed to send private messages to the conference","Es ist nicht erlaubt private Nachrichten an den Raum zu schicken"}.
@@ -196,6 +200,7 @@
{"Message body","Nachrichtentext"}.
{"Middle Name","Zweiter Vorname"}.
{"Minimum interval between voice requests (in seconds)","Mindestdauer zwischen Anfragen für Sprachrechte (in Sekunden)"}.
{"Moderator","Moderator"}.
{"Moderator privileges required","Moderatorrechte benötigt"}.
{"moderators only","ausschliesslich Moderatoren"}.
{"Modified modules","Geänderte Module"}.
@@ -210,7 +215,7 @@
{"Never","Nie"}.
{"New Password:","Neues Passwort:"}.
{"Nickname","Benutzername"}.
{"Nickname Registration at ","Registrieren des Benutzernames auf"}.
{"Nickname Registration at ","Registrieren des Benutzernames auf "}.
{"Nickname ~s does not exist in the room","Der Benutzername ~s existiert im Raum nicht"}.
{"nobody","niemanden"}.
{"No body provided for announce message","Kein Text für die Ankündigungsnachricht angegeben"}.
@@ -239,6 +244,7 @@
{"Online Users:","Angemeldete Benutzer:"}.
{"Online Users","Angemeldete Benutzer"}.
{"Only deliver notifications to available users","Benachrichtigungen nur an verfügbare Benutzer schicken"}.
{"Only members may query archives of this room","Nur Mitglieder dürfen den Verlauf dieses Raumes abrufen"}.
{"Only moderators and participants are allowed to change the subject in this room","Nur Moderatoren und Mitglieder dürfen das Thema in diesem Raum ändern"}.
{"Only moderators are allowed to change the subject in this room","Nur Moderatoren dürfen das Thema in diesem Raum ändern"}.
{"Only moderators can approve voice requests","Nur Moderatoren können Anfragen für Sprachrechte bestätigen"}.
@@ -252,6 +258,7 @@
{"Outgoing s2s Connections","Ausgehende s2s-Verbindungen"}.
{"Owner privileges required","Besitzerrechte benötigt"}.
{"Packet","Paket"}.
{"Participant","Teilnehmer"}.
{"Password ~b","Passwort ~b"}.
{"Password:","Passwort:"}.
{"Password","Passwort"}.
@@ -261,10 +268,12 @@
{"Path to File","Pfad zur Datei"}.
{"Pending","Schwebend"}.
{"Period: ","Zeitraum: "}.
{"Permanent rooms","permanente Chaträume"}.
{"Permanent rooms","Permanente Chaträume"}.
{"Persist items to storage","Einträge dauerhaft speichern"}.
{"Ping","Ping"}.
{"Please note that these options will only backup the builtin Mnesia database. If you are using the ODBC module, you also need to backup your SQL database separately.","Beachten sie, das diese Optionen nur die eingebaute Mnesia-Datenbank sichern. Wenn sie das ODBC-Modul verwenden, müssen sie die SQL-Datenbank manuell sichern."}.
{"Please specify file name.","Bitte geben Sie den Dateinamen an."}.
{"Please specify file size.","Bitte geben Sie die Dateigröße an."}.
{"Please, wait for a while before sending new voice request","Bitte warten sie ein wenig, bevor sie eine weitere Anfrage für Sprachrechte senden"}.
{"Pong","Pong"}.
{"Port ~b","Port ~b"}.
@@ -300,6 +309,7 @@
{"Restore binary backup immediately:","Stelle binäre Sicherung sofort wieder her:"}.
{"Restore plain text backup immediately:","Stelle Klartext-Sicherung sofort wieder her:"}.
{"Restore","Wiederherstellung"}.
{"Roles for which Presence is Broadcasted","Rollen, für die der Status übertragen wird"}.
{"Room Configuration","Raum-Konfiguration"}.
{"Room creation is denied by service policy","Anlegen des Raumes aufgrund der Dienstrichtlinien verweigert"}.
{"Room description","Raum Beschreibung"}.
@@ -323,6 +333,7 @@
{"September","September"}.
{"Server ~b","Server ~b"}.
{"Server:","Server:"}.
{"Server","Server"}.
{"Set message of the day and send to online users","Setze Nachricht des Tages und sende sie an alle angemeldeten Benutzer"}.
{"Set message of the day on all hosts and send to online users","Setze Nachricht des Tages auf allen Hosts und sende sie an alle angemeldeten Benutzer"}.
{"Shared Roster Groups","Gruppen der gemeinsamen Kontaktliste"}.
@@ -406,6 +417,7 @@
{"Validate","Validieren"}.
{"vCard User Search","vCard-Benutzer-Suche"}.
{"Virtual Hosts","Virtuelle Hosts"}.
{"Visitor","Besucher"}.
{"Visitors are not allowed to change their nicknames in this room","Besucher dürfen in diesem Raum ihren Benutzernamen nicht ändern"}.
{"Visitors are not allowed to send messages to all occupants","Besucher dürfen nicht an alle Teilnehmer Nachrichten verschicken"}.
{"Voice request","Anfrage für Sprachrechte"}.
+44 -47
View File
@@ -16,7 +16,7 @@ msgstr ""
"X-Additional-Translator: Patrick Dreker\n"
"X-Additional-Translator: Torsten Werner\n"
"X-Additional-Translator: Marina Hahn\n"
"X-Generator: Poedit 1.8.4\n"
"X-Generator: Poedit 1.8.6\n"
#: ejabberd_c2s.erl:505 ejabberd_c2s.erl:853
msgid "Use of STARTTLS required"
@@ -35,12 +35,12 @@ msgstr "Durch neue Verbindung ersetzt"
msgid "has been kicked"
msgstr "wurde entfernt"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr ""
"Ihre aktive Privacy Liste hat die Weiterleitung des Stanzas unterbunden."
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr "Zu viele unbestätigte Stanzas"
@@ -72,9 +72,8 @@ msgid "User"
msgstr "Benutzer"
#: ejabberd_oauth.erl:256
#, fuzzy
msgid "Server"
msgstr "Server:"
msgstr "Server"
#: ejabberd_oauth.erl:259 ejabberd_web_admin.erl:1408 mod_configure.erl:1398
#: mod_configure.erl:1485 mod_configure.erl:1889 mod_configure.erl:2123
@@ -84,7 +83,7 @@ msgstr "Passwort"
#: ejabberd_oauth.erl:267
msgid "Accept"
msgstr ""
msgstr "Akzeptieren"
#: ejabberd_web_admin.erl:202 ejabberd_web_admin.erl:214
#: ejabberd_web_admin.erl:234 ejabberd_web_admin.erl:246
@@ -156,8 +155,7 @@ msgstr "Virtuelle Hosts"
msgid "Users"
msgstr "Benutzer"
#: ejabberd_web_admin.erl:955 ejabberd_web_admin.erl:1340
#: mod_configure.erl:524
#: ejabberd_web_admin.erl:955 ejabberd_web_admin.erl:1340 mod_configure.erl:524
msgid "Online Users"
msgstr "Angemeldete Benutzer"
@@ -251,9 +249,8 @@ msgid "Outgoing s2s Connections:"
msgstr "Ausgehende s2s-Verbindungen:"
#: ejabberd_web_admin.erl:1559
#, fuzzy
msgid "Incoming s2s Connections:"
msgstr "Ausgehende s2s-Verbindungen:"
msgstr "Eingehende s2s-Verbindungen:"
#: ejabberd_web_admin.erl:1595 ejabberd_web_admin.erl:1794
#: ejabberd_web_admin.erl:1804 ejabberd_web_admin.erl:2214 mod_roster.erl:1429
@@ -853,13 +850,13 @@ msgstr ""
"Zu viele (~p) fehlgeschlagene Anmeldeversuche von dieser IP Adresse (~s). "
"Die Adresse wird bis ~s UTC blockiert."
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
msgstr "Bitte geben Sie die Dateigröße an."
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
msgstr "Bitte geben Sie den Dateinamen an."
#: mod_ip_blacklist.erl:121
msgid "This IP address is blacklisted in ~s"
@@ -977,10 +974,9 @@ msgstr "Kodierung für Server ~b"
msgid "Server ~b"
msgstr "Server ~b"
#: mod_mam.erl:270
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgstr "Nur Moderatoren dürfen das Thema in diesem Raum ändern"
#: mod_mam.erl:541
msgid "Only members may query archives of this room"
msgstr "Nur Mitglieder dürfen den Verlauf dieses Raumes abrufen"
#: mod_muc.erl:585
msgid "Only service administrators are allowed to send service messages"
@@ -999,38 +995,38 @@ msgstr "Konferenzraum existiert nicht"
msgid "Chatrooms"
msgstr "Chaträume"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
msgstr "Leere Räume"
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr ""
"Sie benötigen einen Client, der x:data unterstützt, um Ihren Benutzernamen "
"zu registrieren"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Registrieren des Benutzernames auf"
msgstr "Registrieren des Benutzernames auf "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Geben sie den zu registrierenden Benutzernamen ein"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Benutzername"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "Dieser Benutzername wurde bereits von jemand anderem registriert"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Sie müssen das Feld \"Benutzername\" ausfüllen"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "ejabberd MUC-Modul"
@@ -1045,7 +1041,7 @@ msgstr "Alle Chaträume"
#: mod_muc_admin.erl:250
msgid "Permanent rooms"
msgstr "permanente Chaträume"
msgstr "Permanente Chaträume"
#: mod_muc_admin.erl:251
msgid "Registered nicknames"
@@ -1197,9 +1193,11 @@ msgstr "Datenratenlimit wurde überschritten"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
"Es ist nicht erlaubt Fehlermeldungen an den Raum zu senden. Der Teilnehmer "
"(~s) hat eine Fehlermeldung (~s) gesendet und wurde aus dem Raum entfernt"
#: mod_muc_room.erl:241
msgid "It is not allowed to send private messages to the conference"
@@ -1241,7 +1239,7 @@ msgstr "Der Empfänger ist nicht im Raum"
msgid "It is not allowed to send private messages"
msgstr "Es ist nicht erlaubt private Nachrichten zu senden"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Nur Teilnehmer dürfen Nachrichten an den Raum schicken"
@@ -1323,7 +1321,7 @@ msgstr "Ungültige Mitgliedschaft: ~s"
msgid "Invalid role: ~s"
msgstr "Ungültige Rolle: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "Besitzerrechte benötigt"
@@ -1335,7 +1333,7 @@ msgstr "Konfiguration für Raum ~s"
msgid "Room title"
msgstr "Raumname"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "Raum Beschreibung"
@@ -1377,20 +1375,19 @@ msgstr "jeden"
#: mod_muc_room.erl:3471
msgid "Roles for which Presence is Broadcasted"
msgstr ""
msgstr "Rollen, für die der Status übertragen wird"
#: mod_muc_room.erl:3486
#, fuzzy
msgid "Moderator"
msgstr "ausschliesslich Moderatoren"
msgstr "Moderator"
#: mod_muc_room.erl:3496
msgid "Participant"
msgstr ""
msgstr "Teilnehmer"
#: mod_muc_room.erl:3506
msgid "Visitor"
msgstr ""
msgstr "Besucher"
#: mod_muc_room.erl:3513
msgid "Make room members-only"
@@ -1466,35 +1463,35 @@ msgstr ""
"Sie benötigen einen Client, der x:data unterstützt, um den Raum zu "
"konfigurieren"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Anzahl der Teilnehmer"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "privat, "
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr "Anfrage für Sprachrechte"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr "Diese Anfrage für Sprachrechte bestätigen oder ablehnen."
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "Benutzer JID"
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr "Sprachrechte dieser Person erteilen?"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s lädt sie in den Raum ~s ein"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "das Passwort lautet"
+28 -28
View File
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"Project-Id-Version: 15.11.117\n"
"Project-Id-Version: 15.11.127\n"
"X-Language: Language Name\n"
"Last-Translator: Translator name and contact method\n"
"MIME-Version: 1.0\n"
@@ -24,11 +24,11 @@ msgstr ""
msgid "has been kicked"
msgstr ""
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr ""
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr ""
@@ -826,11 +826,11 @@ msgid ""
"will be unblocked at ~s UTC"
msgstr ""
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
@@ -937,8 +937,8 @@ msgstr ""
msgid "Server ~b"
msgstr ""
#: mod_mam.erl:270
msgid "Only members are allowed to query archives of this room"
#: mod_mam.erl:541
msgid "Only members may query archives of this room"
msgstr ""
#: mod_muc.erl:585
@@ -957,36 +957,36 @@ msgstr ""
msgid "Chatrooms"
msgstr ""
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr ""
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr ""
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr ""
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr ""
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr ""
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr ""
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr ""
@@ -1153,8 +1153,8 @@ msgstr ""
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
#: mod_muc_room.erl:241
@@ -1193,7 +1193,7 @@ msgstr ""
msgid "It is not allowed to send private messages"
msgstr ""
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr ""
@@ -1275,7 +1275,7 @@ msgstr ""
msgid "Invalid role: ~s"
msgstr ""
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr ""
@@ -1287,7 +1287,7 @@ msgstr ""
msgid "Room title"
msgstr ""
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr ""
@@ -1415,35 +1415,35 @@ msgstr ""
msgid "You need an x:data capable client to configure room"
msgstr ""
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr ""
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr ""
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr ""
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr ""
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr ""
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr ""
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr ""
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr ""
+27 -27
View File
@@ -28,13 +28,13 @@ msgstr "Αντικαταστάθικε από νέα σύνδεση"
msgid "has been kicked"
msgstr "αποβλήθηκε "
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr ""
"Ο ενεργός κατάλογος απορρήτου, έχει αρνηθεί τη δρομολόγηση αυτής της στροφής "
"(stanza)."
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr ""
@@ -859,11 +859,11 @@ msgid ""
"will be unblocked at ~s UTC"
msgstr ""
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
@@ -983,9 +983,9 @@ msgstr "Κωδικοποίηση για διακομιστή ~b"
msgid "Server ~b"
msgstr "Διακομιστής ~b"
#: mod_mam.erl:270
#: mod_mam.erl:541
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgid "Only members may query archives of this room"
msgstr "Μόνο οι συντονιστές μπορούν να αλλάξουν το θέμα αυτής της αίθουσας"
#: mod_muc.erl:585
@@ -1006,36 +1006,36 @@ msgstr "Αίθουσα σύνεδριασης δεν υπάρχει"
msgid "Chatrooms"
msgstr "Αίθουσες σύνεδριασης"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr "Χρειάζεστε ένα x:data ικανό πελάτη για εγγραφή με ψευδώνυμο"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Εγγραφή με Ψευδώνυμο στο "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Πληκτρολογήστε το ψευδώνυμο που θέλετε να εγγραφείτε"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Ψευδώνυμο"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "Αυτό το ψευδώνυμο είναι καταχωρημένο από άλλο πρόσωπο"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Θα πρέπει να συμπληρώσετε το πεδίο \"Ψευδώνυμο\" στη φόρμα"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "ejabberd MUC module"
@@ -1205,8 +1205,8 @@ msgstr "Υπέρφορτωση"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
#: mod_muc_room.erl:241
@@ -1245,7 +1245,7 @@ msgstr "Παραλήπτης δεν είναι στην αίθουσα συνε
msgid "It is not allowed to send private messages"
msgstr "Δεν επιτρέπεται η αποστολή προσωπικών μηνυμάτων"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Μόνο οι συμμετέχωντες μπορούν να στέλνουν μηνύματα στο συνέδριο"
@@ -1334,7 +1334,7 @@ msgstr "Άκυρη υπαγωγή: ~s"
msgid "Invalid role: ~s"
msgstr "Άκυρος ρόλο: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "Aπαιτούνται προνόμια ιδιοκτήτη"
@@ -1346,7 +1346,7 @@ msgstr "Διαμόρφωση Αίθουσας σύνεδριασης ~s"
msgid "Room title"
msgstr "Τίτλος Αίθουσας "
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "Περιγραφή Αίθουσας"
@@ -1477,35 +1477,35 @@ msgstr "Ενεργοποίηση καταγραφής"
msgid "You need an x:data capable client to configure room"
msgstr "Χρειάζεστε ένα x:data ικανό πελάτη για να ρυθμίσετε την αίθουσα "
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Αριθμός συμετεχόντων"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "ιδιωτικό,"
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr "Αίτημα φωνής"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr "Είτε εγκρίνετε ή απορρίψτε το αίτημα φωνής."
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "JID Χρήστη"
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr "Παραχώρηση φωνής σε αυτό το άτομο;"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s σας προσκαλεί στην αίθουσα ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "ο κωδικός πρόσβασης είναι"
+27 -27
View File
@@ -29,11 +29,11 @@ msgstr "Anstataŭigita je nova konekto"
msgid "has been kicked"
msgstr "estas forpelita"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr "Via aktiva privatec-listo malpermesas enkursigi ĉi-tiun pakaĵon"
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr "Tro da neagnoskitaj stancoj"
@@ -840,11 +840,11 @@ msgstr ""
"Tro da malsukcesaj aŭtentprovoj (~p) de ĉi tiu IP-adreso (~s). La adreso "
"estos malbarata je ~s UTC."
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
@@ -962,9 +962,9 @@ msgstr "Enkodigo por servilo ~b"
msgid "Server ~b"
msgstr "Servilo ~b"
#: mod_mam.erl:270
#: mod_mam.erl:541
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgid "Only members may query archives of this room"
msgstr "Nur moderigantoj rajtas ŝanĝi la temon en ĉi tiu babilejo"
#: mod_muc.erl:585
@@ -983,36 +983,36 @@ msgstr "Babilejo ne ekzistas"
msgid "Chatrooms"
msgstr "Babilejoj"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr "Vi bezonas klienton subtenante x:data-funkcio por registri kaŝnomon"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Kaŝnomo-registrado je "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Enmetu kaŝnomon kiun vi volas registri"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Kaŝnomo"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "Kaŝnomo estas registrita de alia persono"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Vi devas kompletigi la \"Kaŝnomo\" kampon"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "ejabberd MUC-modulo"
@@ -1179,8 +1179,8 @@ msgstr "Trafikrapida limigo superita"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
#: mod_muc_room.erl:241
@@ -1219,7 +1219,7 @@ msgstr "Ricevanto ne ĉeestas en la babilejo "
msgid "It is not allowed to send private messages"
msgstr "Ne estas permesata sendi privatajn mesaĝojn"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Nur partoprenantoj rajtas sendi mesaĝojn al la babilejo"
@@ -1303,7 +1303,7 @@ msgstr "Nevalida aparteneco: ~s"
msgid "Invalid role: ~s"
msgstr "Nevalida rolo: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "Mastraj rajtoj bezonata"
@@ -1315,7 +1315,7 @@ msgstr "Agordo de babilejo ~s"
msgid "Room title"
msgstr "Babilejo-nomo"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "Babilejo-priskribo"
@@ -1444,35 +1444,35 @@ msgstr "Ŝaltu protokoladon"
msgid "You need an x:data capable client to configure room"
msgstr "Vi bezonas klienton kun x:data-funkcio por agordi la babilejon"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Nombro de ĉeestantoj"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "privata, "
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr "Voĉ-peto"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr "Ĉu aprobu, aŭ malaprobu la voĉ-peton."
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "Uzant-JID"
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr "Koncedu voĉon al ĉi-persono?"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s invitas vin al la babilejo ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "la pasvorto estas"
+12
View File
@@ -1,4 +1,5 @@
%% -*- coding: latin-1 -*-
{"Accept","Aceptar"}.
{"Access Configuration","Configuración de accesos"}.
{"Access Control List Configuration","Configuración de la Lista de Control de Acceso"}.
{"Access control lists","Listas de Control de Acceso"}.
@@ -87,6 +88,7 @@
{"ejabberd Web Admin","ejabberd Web Admin"}.
{"Elements","Elementos"}.
{"Email","correo"}.
{"Empty Rooms","Salas vacías"}.
{"Enable logging","Guardar históricos"}.
{"Enable message archiving","Activar el almacenamiento de mensajes"}.
{"Encoding for server ~b","Codificación del servidor ~b"}.
@@ -142,6 +144,7 @@
{"Import Users from Dir at ","Importar usuarios desde el directorio en "}.
{"Import Users From jabberd14 Spool Files","Importar usuarios de ficheros spool de jabberd-1.4"}.
{"Improper message type","Tipo de mensaje incorrecto"}.
{"Incoming s2s Connections:","Conexiones S2S entrantes:"}.
{"Incorrect password","Contraseña incorrecta"}.
{"Invalid affiliation: ~s","Afiliación no válida: ~s"}.
{"Invalid role: ~s","Rol no válido: ~s"}.
@@ -154,6 +157,7 @@
{"IRC username","Nombre de usuario en IRC"}.
{"IRC Username","Nombre de usuario en IRC"}.
{"is now known as","se cambia el nombre a"}.
{"It is not allowed to send error messages to the room. The participant (~s) has sent an error message (~s) and got kicked from the room","No está permitido enviar mensajes de error a la sala. Este participante (~s) ha enviado un mensaje de error (~s) y fue expulsado de la sala"}.
{"It is not allowed to send private messages","No está permitido enviar mensajes privados"}.
{"It is not allowed to send private messages of type \"groupchat\"","No está permitido enviar mensajes privados del tipo \"groupchat\""}.
{"It is not allowed to send private messages to the conference","Impedir el envio de mensajes privados a la sala"}.
@@ -196,6 +200,7 @@
{"Message body","Cuerpo del mensaje"}.
{"Middle Name","Segundo nombre"}.
{"Minimum interval between voice requests (in seconds)","Intervalo mínimo entre peticiones de voz (en segundos)"}.
{"Moderator","Moderador"}.
{"Moderator privileges required","Se necesita privilegios de moderador"}.
{"moderators only","solo moderadores"}.
{"Modified modules","Módulos modificados"}.
@@ -239,6 +244,7 @@
{"Online Users:","Usuarios conectados:"}.
{"Online Users","Usuarios conectados"}.
{"Only deliver notifications to available users","Solo enviar notificaciones a los usuarios disponibles"}.
{"Only members may query archives of this room","Solo miembros pueden consultar el archivo de mensajes de la sala"}.
{"Only moderators and participants are allowed to change the subject in this room","Solo los moderadores y participantes pueden cambiar el asunto de esta sala"}.
{"Only moderators are allowed to change the subject in this room","Solo los moderadores pueden cambiar el asunto de esta sala"}.
{"Only moderators can approve voice requests","Solo los moderadores pueden aprobar peticiones de voz"}.
@@ -252,6 +258,7 @@
{"Outgoing s2s Connections","Conexiones S2S salientes"}.
{"Owner privileges required","Se requieren privilegios de propietario de la sala"}.
{"Packet","Paquete"}.
{"Participant","Participante"}.
{"Password ~b","Contraseña ~b"}.
{"Password:","Contraseña:"}.
{"Password","Contraseña"}.
@@ -265,6 +272,8 @@
{"Persist items to storage","Persistir elementos al almacenar"}.
{"Ping","Ping"}.
{"Please note that these options will only backup the builtin Mnesia database. If you are using the ODBC module, you also need to backup your SQL database separately.","Ten en cuenta que estas opciones solo harán copia de seguridad de la base de datos Mnesia embebida. Si estás usando ODBC tendrás que hacer también copia de seguridad de tu base de datos SQL."}.
{"Please specify file name.","Por favor especifica el nombre del fichero."}.
{"Please specify file size.","Por favor especifica el tamaño del fichero."}.
{"Please, wait for a while before sending new voice request","Por favor, espera un poco antes de enviar otra petición de voz"}.
{"Pong","Pong"}.
{"Port ~b","Puerto ~b"}.
@@ -300,6 +309,7 @@
{"Restore binary backup immediately:","Restaurar inmediatamente copia de seguridad binaria:"}.
{"Restore plain text backup immediately:","Restaurar copias de seguridad de texto plano inmediatamente:"}.
{"Restore","Restaurar"}.
{"Roles for which Presence is Broadcasted","Roles para los que sí se difunde su Presencia"}.
{"Room Configuration","Configuración de la sala"}.
{"Room creation is denied by service policy","Se te ha denegado crear la sala por política del servicio"}.
{"Room description","Descripción de la sala"}.
@@ -323,6 +333,7 @@
{"September","septiembre"}.
{"Server ~b","Servidor ~b"}.
{"Server:","Servidor:"}.
{"Server","Servidor"}.
{"Set message of the day and send to online users","Poner mensaje del dia y enviar a todos los usuarios conectados"}.
{"Set message of the day on all hosts and send to online users","Poner mensaje del día en todos los dominios y enviar a los usuarios conectados"}.
{"Shared Roster Groups","Grupos Compartidos"}.
@@ -408,6 +419,7 @@
{"Virtual Hosts","Dominios Virtuales"}.
{"Visitors are not allowed to change their nicknames in this room","Los visitantes no tienen permitido cambiar sus apodos en esta sala"}.
{"Visitors are not allowed to send messages to all occupants","Los visitantes no pueden enviar mensajes a todos los ocupantes"}.
{"Visitor","Visitante"}.
{"Voice request","Petición de voz"}.
{"Voice requests are disabled in this conference","Las peticiones de voz están desactivadas en esta sala"}.
{"Wednesday","miércoles"}.
+41 -43
View File
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: es\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2015-09-07 14:02+0100\n"
"PO-Revision-Date: 2016-01-15 12:19+0100\n"
"Last-Translator: Badlop <badlop@process-one.net>\n"
"Language-Team: \n"
"Language: es\n"
@@ -31,11 +31,11 @@ msgstr "Reemplazado por una nueva conexión"
msgid "has been kicked"
msgstr "ha sido expulsado"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr "Tu lista de privacidad activa ha denegado el encío de este paquete."
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr "Demasiados mensajes sin haber reconocido recibirlos"
@@ -66,9 +66,8 @@ msgid "User"
msgstr "Usuario"
#: ejabberd_oauth.erl:256
#, fuzzy
msgid "Server"
msgstr "Servidor:"
msgstr "Servidor"
#: ejabberd_oauth.erl:259 ejabberd_web_admin.erl:1408 mod_configure.erl:1398
#: mod_configure.erl:1485 mod_configure.erl:1889 mod_configure.erl:2123
@@ -78,7 +77,7 @@ msgstr "Contraseña"
#: ejabberd_oauth.erl:267
msgid "Accept"
msgstr ""
msgstr "Aceptar"
#: ejabberd_web_admin.erl:202 ejabberd_web_admin.erl:214
#: ejabberd_web_admin.erl:234 ejabberd_web_admin.erl:246
@@ -245,9 +244,8 @@ msgid "Outgoing s2s Connections:"
msgstr "Conexiones S2S salientes:"
#: ejabberd_web_admin.erl:1559
#, fuzzy
msgid "Incoming s2s Connections:"
msgstr "Conexiones S2S salientes:"
msgstr "Conexiones S2S entrantes:"
#: ejabberd_web_admin.erl:1595 ejabberd_web_admin.erl:1794
#: ejabberd_web_admin.erl:1804 ejabberd_web_admin.erl:2214 mod_roster.erl:1429
@@ -848,13 +846,13 @@ msgstr ""
"Demasiadas (~p) autenticaciones fallidas de esta dirección IP (~s). La "
"dirección será desbloqueada en ~s UTC"
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
msgstr "Por favor especifica el tamaño del fichero."
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
msgstr "Por favor especifica el nombre del fichero."
#: mod_ip_blacklist.erl:121
msgid "This IP address is blacklisted in ~s"
@@ -972,10 +970,9 @@ msgstr "Codificación del servidor ~b"
msgid "Server ~b"
msgstr "Servidor ~b"
#: mod_mam.erl:270
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgstr "Solo los moderadores pueden cambiar el asunto de esta sala"
#: mod_mam.erl:541
msgid "Only members may query archives of this room"
msgstr "Solo miembros pueden consultar el archivo de mensajes de la sala"
#: mod_muc.erl:585
msgid "Only service administrators are allowed to send service messages"
@@ -995,37 +992,37 @@ msgstr "La sala de conferencias no existe"
msgid "Chatrooms"
msgstr "Salas de charla"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
msgstr "Salas vacías"
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr ""
"Necesitas un cliente con soporte de x:data para poder registrar el apodo"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Registro del apodo en "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Introduce el apodo que quieras registrar"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Apodo"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "El apodo ya está registrado por otra persona"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Debes rellenar el campo \"Apodo\" en el formulario"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "Módulo de MUC para ejabberd"
@@ -1192,9 +1189,11 @@ msgstr "Se ha exedido el límite de tráfico"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
"No está permitido enviar mensajes de error a la sala. Este participante (~s) "
"ha enviado un mensaje de error (~s) y fue expulsado de la sala"
#: mod_muc_room.erl:241
msgid "It is not allowed to send private messages to the conference"
@@ -1232,7 +1231,7 @@ msgstr "El receptor no está en la sala de conferencia"
msgid "It is not allowed to send private messages"
msgstr "No está permitido enviar mensajes privados"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Solo los ocupantes pueden enviar mensajes a la sala"
@@ -1315,7 +1314,7 @@ msgstr "Afiliación no válida: ~s"
msgid "Invalid role: ~s"
msgstr "Rol no válido: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "Se requieren privilegios de propietario de la sala"
@@ -1327,7 +1326,7 @@ msgstr "Configuración para la sala ~s"
msgid "Room title"
msgstr "Título de la sala"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "Descripción de la sala"
@@ -1369,20 +1368,19 @@ msgstr "cualquiera"
#: mod_muc_room.erl:3471
msgid "Roles for which Presence is Broadcasted"
msgstr ""
msgstr "Roles para los que sí se difunde su Presencia"
#: mod_muc_room.erl:3486
#, fuzzy
msgid "Moderator"
msgstr "solo moderadores"
msgstr "Moderador"
#: mod_muc_room.erl:3496
msgid "Participant"
msgstr ""
msgstr "Participante"
#: mod_muc_room.erl:3506
msgid "Visitor"
msgstr ""
msgstr "Visitante"
#: mod_muc_room.erl:3513
msgid "Make room members-only"
@@ -1458,35 +1456,35 @@ msgstr "Guardar históricos"
msgid "You need an x:data capable client to configure room"
msgstr "Necesitas un cliente con soporte de x:data para configurar la sala"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Número de ocupantes"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "privado"
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr "Petición de voz"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr "Aprueba o rechaza la petición de voz."
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "Jabber ID del usuario"
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr "¿Conceder voz a esta persona?"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s te invita a la sala ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "la contraseña es"
+27 -27
View File
@@ -32,11 +32,11 @@ msgstr "Remplacé par une nouvelle connexion"
msgid "has been kicked"
msgstr "a été expulsé"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr "Votre règle de flitrage active a empêché le routage de ce stanza."
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr "Trop de stanzas sans accusé de réception (ack)"
@@ -852,11 +852,11 @@ msgstr ""
"Trop (~p) d'authentification ont échoué pour cette adresse IP (~s). "
"L'adresse sera débloquée à ~s UTC"
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
@@ -975,9 +975,9 @@ msgstr "Codage pour le serveur ~b"
msgid "Server ~b"
msgstr "Serveur ~b"
#: mod_mam.erl:270
#: mod_mam.erl:541
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgid "Only members may query archives of this room"
msgstr "Seuls les modérateurs peuvent changer le sujet dans ce salon"
#: mod_muc.erl:585
@@ -998,38 +998,38 @@ msgstr "La salle de conférence n'existe pas"
msgid "Chatrooms"
msgstr "Salons de discussion"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr ""
"Vous avez besoin d'un client prenant en charge x:data pour enregistrer un "
"pseudo"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Enregistrement d'un pseudo sur "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Entrez le pseudo que vous souhaitez enregistrer"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Pseudo"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "Le pseudo est enregistré par une autre personne"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Vous devez préciser le champ \"pseudo\" dans le formulaire"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "Module MUC ejabberd"
@@ -1196,8 +1196,8 @@ msgstr "La limite de trafic a été dépassée"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
#: mod_muc_room.erl:241
@@ -1238,7 +1238,7 @@ msgstr "Le destinataire n'est pas dans la conférence"
msgid "It is not allowed to send private messages"
msgstr "L'envoi de messages privés n'est pas autorisé"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Seuls les occupants peuvent envoyer des messages à la conférence"
@@ -1327,7 +1327,7 @@ msgstr "Affiliation invalide : ~s"
msgid "Invalid role: ~s"
msgstr "Role invalide : ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "Les droits de propriétaire sont nécessaires"
@@ -1339,7 +1339,7 @@ msgstr "Configuration pour le salon ~s"
msgid "Room title"
msgstr "Titre du salon"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "Description :"
@@ -1470,35 +1470,35 @@ msgid "You need an x:data capable client to configure room"
msgstr ""
"Vous avez besoin d'un client supportant x:data pour configurer le salon"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Nombre d'occupants"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "privé"
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr "Demande de 'voice'"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr "Approuver ou refuser la demande de 'voice'"
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "JID de l'utilisateur "
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr "Accorder 'voice' à cet utilisateur"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s vous a invité dans la salle de discussion ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "le mot de passe est"
+140 -162
View File
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: 2.1.0-alpha\n"
"Last-Translator: Carlos E. Lopez - suso AT jabber-hispano.org\n"
"Project-Id-Version: 16.02\n"
"Last-Translator: Carlos E. Lopez - carlos AT suchat.org\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -9,7 +9,7 @@ msgstr ""
#: ejabberd_c2s.erl:505 ejabberd_c2s.erl:853
msgid "Use of STARTTLS required"
msgstr "É obrigatorio usar STARTTLS"
msgstr "Requírese o uso de STARTTLS"
#: ejabberd_c2s.erl:604
msgid "No resource provided"
@@ -24,13 +24,13 @@ msgstr "Substituído por unha nova conexión"
msgid "has been kicked"
msgstr "foi expulsado"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr ""
msgstr "A súa lista de privacidade activa negou o encaminamiento desta estrofa."
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr ""
msgstr "Demasiadas mensaxes sen recoñecer recibilos"
#: ejabberd_captcha.erl:122 ejabberd_captcha.erl:245 ejabberd_captcha.erl:284
msgid "Enter the text you see"
@@ -43,11 +43,11 @@ msgstr ""
#: ejabberd_captcha.erl:192
msgid "If you don't see the CAPTCHA image here, visit the web page."
msgstr ""
msgstr "Si non ves a imaxe CAPTCHA aquí, visita a páxina web."
#: ejabberd_captcha.erl:227
msgid "CAPTCHA web page"
msgstr ""
msgstr "CAPTCHA páxina Web"
#: ejabberd_captcha.erl:381
msgid "The CAPTCHA is valid."
@@ -59,9 +59,8 @@ msgid "User"
msgstr "Usuario"
#: ejabberd_oauth.erl:256
#, fuzzy
msgid "Server"
msgstr "Servidor ~b"
msgstr "Servidor"
#: ejabberd_oauth.erl:259 ejabberd_web_admin.erl:1408 mod_configure.erl:1398
#: mod_configure.erl:1485 mod_configure.erl:1889 mod_configure.erl:2123
@@ -71,7 +70,7 @@ msgstr "Contrasinal"
#: ejabberd_oauth.erl:267
msgid "Accept"
msgstr ""
msgstr "Aceptar"
#: ejabberd_web_admin.erl:202 ejabberd_web_admin.erl:214
#: ejabberd_web_admin.erl:234 ejabberd_web_admin.erl:246
@@ -238,7 +237,6 @@ msgid "Outgoing s2s Connections:"
msgstr "Conexións S2S saíntes:"
#: ejabberd_web_admin.erl:1559
#, fuzzy
msgid "Incoming s2s Connections:"
msgstr "Conexións S2S saíntes:"
@@ -253,9 +251,8 @@ msgid "Change Password"
msgstr "Cambiar contrasinal"
#: ejabberd_web_admin.erl:1673
#, fuzzy
msgid "User ~s"
msgstr "Usuario "
msgstr "Usuario ~s"
#: ejabberd_web_admin.erl:1684
msgid "Connected Resources:"
@@ -287,9 +284,8 @@ msgid "Stopped Nodes"
msgstr "Nodos detidos"
#: ejabberd_web_admin.erl:1833 ejabberd_web_admin.erl:1858
#, fuzzy
msgid "Node ~p"
msgstr "Nodo "
msgstr "Nodo ~p"
#: ejabberd_web_admin.erl:1842 mod_configure.erl:150 mod_configure.erl:611
msgid "Database"
@@ -297,7 +293,7 @@ msgstr "Base de datos"
#: ejabberd_web_admin.erl:1843 mod_configure.erl:159 mod_configure.erl:648
msgid "Backup"
msgstr "Gardar copia de seguridade"
msgstr "Copia de seguridade"
#: ejabberd_web_admin.erl:1845
msgid "Listened Ports"
@@ -326,9 +322,8 @@ msgid "RPC Call Error"
msgstr "Erro na chamada RPC"
#: ejabberd_web_admin.erl:1917
#, fuzzy
msgid "Database Tables at ~p"
msgstr "Táboas da base de datos en "
msgstr "Táboas da base de datos en ~p"
#: ejabberd_web_admin.erl:1927 mod_vcard.erl:490 mod_vcard.erl:616
msgid "Name"
@@ -336,7 +331,7 @@ msgstr "Nome"
#: ejabberd_web_admin.erl:1928
msgid "Storage Type"
msgstr "Tipo de almacenamiento"
msgstr "Tipo de almacenamento"
#: ejabberd_web_admin.erl:1929
msgid "Elements"
@@ -351,9 +346,8 @@ msgid "Error"
msgstr "Erro"
#: ejabberd_web_admin.erl:1955
#, fuzzy
msgid "Backup of ~p"
msgstr "Copia de seguridade de "
msgstr "Copia de seguridade de ~p"
#: ejabberd_web_admin.erl:1959
msgid ""
@@ -387,7 +381,7 @@ msgid ""
"Restore binary backup after next ejabberd restart (requires less memory):"
msgstr ""
"Restaurar copia de seguridade binaria no seguinte reinicio de ejabberd "
"(require menos memoria que se instantánea):"
"(require menos memoria):"
#: ejabberd_web_admin.erl:1999
msgid "Store plain text backup:"
@@ -399,7 +393,7 @@ msgstr "Restaurar copias de seguridade de texto plano inmediatamente:"
#: ejabberd_web_admin.erl:2019
msgid "Import users data from a PIEFXIS file (XEP-0227):"
msgstr "Importar usuarios desde un fichero PIEFXIS"
msgstr "Importar usuarios en un fichero PIEFXIS (XEP-0227):"
#: ejabberd_web_admin.erl:2032
msgid "Export data of all users in the server to PIEFXIS files (XEP-0227):"
@@ -409,17 +403,15 @@ msgstr ""
#: ejabberd_web_admin.erl:2044
msgid "Export data of users in a host to PIEFXIS files (XEP-0227):"
msgstr ""
"Exportar datos de todos os usuarios do servidor a ficheros PIEFXIS "
"(XEP-0227):"
msgstr "Exportar datos dos usuarios dun dominio a ficheiros PIEFXIS (XEP-0227):"
#: ejabberd_web_admin.erl:2060
msgid "Export all tables as SQL queries to a file:"
msgstr ""
msgstr "Exportar todas as táboas a un ficheiro SQL:"
#: ejabberd_web_admin.erl:2076
msgid "Import user data from jabberd14 spool file:"
msgstr "Importar usuario de fichero spool de jabberd14:"
msgstr "Importar usuario de ficheiro spool de jabberd14:"
#: ejabberd_web_admin.erl:2087
msgid "Import users data from jabberd14 spool directory:"
@@ -430,9 +422,8 @@ msgid "Listened Ports at "
msgstr "Portos de escoita en "
#: ejabberd_web_admin.erl:2144
#, fuzzy
msgid "Modules at ~p"
msgstr "Módulos en "
msgstr "Módulos en ~p"
#: ejabberd_web_admin.erl:2175
msgid "Statistics of ~p"
@@ -463,9 +454,8 @@ msgid "Transactions Logged:"
msgstr "Transaccións rexistradas:"
#: ejabberd_web_admin.erl:2243
#, fuzzy
msgid "Update ~p"
msgstr "Actualizar"
msgstr "Actualizar ~p"
#: ejabberd_web_admin.erl:2254
msgid "Update plan"
@@ -525,7 +515,7 @@ msgstr "Pong"
#: mod_announce.erl:523
msgid "Really delete message of the day?"
msgstr "Está seguro de quere borrar a mensaxe do dia?"
msgstr "¿Está seguro que quere borrar a mensaxe do dia?"
#: mod_announce.erl:536 mod_configure.erl:1238 mod_configure.erl:1298
msgid "Subject"
@@ -553,7 +543,7 @@ msgstr "Enviar anuncio a todos os usuarios en todos os dominios"
#: mod_announce.erl:668
msgid "Send announcement to all online users"
msgstr "Enviar anuncio a todos los usuarios conectados"
msgstr "Enviar anuncio a todos os usuarios conectados"
#: mod_announce.erl:670 mod_configure.erl:1231 mod_configure.erl:1291
msgid "Send announcement to all online users on all hosts"
@@ -595,7 +585,7 @@ msgstr "Iniciar módulos"
#: mod_configure.erl:156 mod_configure.erl:638
msgid "Stop Modules"
msgstr "Detener módulos"
msgstr "Deter módulos"
#: mod_configure.erl:162 mod_configure.erl:650
msgid "Restore"
@@ -844,18 +834,20 @@ msgid ""
"Too many (~p) failed authentications from this IP address (~s). The address "
"will be unblocked at ~s UTC"
msgstr ""
"Demasiados (~p) fallou autenticaciones desde esta dirección IP (~s). A dirección "
"será desbloqueada as ~s UTC"
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
msgstr "Por favor, especifica o tamaño do arquivo"
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
msgstr "Por favor, indique o nome do arquivo."
#: mod_ip_blacklist.erl:121
msgid "This IP address is blacklisted in ~s"
msgstr ""
msgstr "Esta dirección IP está na lista negra en ~s"
#: mod_irc.erl:220 mod_muc.erl:467
msgid "Access denied by service policy"
@@ -884,8 +876,8 @@ msgid ""
"Enter username, encodings, ports and passwords you wish to use for "
"connecting to IRC servers"
msgstr ""
"Introduza o nome de usuario, codificaciones de carácter, portos e "
"contrasinal que pretende utilizar a conectar a servidores de IRC"
"Introduce o nome de usuario, codificaciones de carácteres, portos e "
"contrasinai que queiras usar ao conectar nos servidores de IRC"
#: mod_irc.erl:667
msgid "IRC Username"
@@ -969,10 +961,9 @@ msgstr "Codificación de servidor ~b"
msgid "Server ~b"
msgstr "Servidor ~b"
#: mod_mam.erl:270
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgstr "Só os moderadores están autorizados a cambiar o tema nesta sala"
#: mod_mam.erl:541
msgid "Only members may query archives of this room"
msgstr "Só membros poden consultar o arquivo de mensaxes da sala"
#: mod_muc.erl:585
msgid "Only service administrators are allowed to send service messages"
@@ -992,72 +983,68 @@ msgstr "A sala de conferencias non existe"
msgid "Chatrooms"
msgstr "Salas de charla"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
msgstr "Salas baleiras"
#: mod_muc.erl:931
#, fuzzy
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr ""
"Necesitas un cliente con soporte de x:data para poder rexistrar o alcume"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Rexistro do alcume en "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Introduce o alcume que queiras rexistrar"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Alcume"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "O alcume xa está rexistrado por outra persoa"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Debes encher o campo \"Alcumo\" no formulario"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "Módulo de MUC para ejabberd"
#: mod_muc_admin.erl:231 mod_muc_admin.erl:234 mod_muc_admin.erl:246
#: mod_muc_admin.erl:320
msgid "Multi-User Chat"
msgstr ""
msgstr "Salas de Charla"
#: mod_muc_admin.erl:249
#, fuzzy
msgid "Total rooms"
msgstr "Salas de charla"
msgstr "Salas totais"
#: mod_muc_admin.erl:250
#, fuzzy
msgid "Permanent rooms"
msgstr "sae da sala"
msgstr "Salas permanentes"
#: mod_muc_admin.erl:251
#, fuzzy
msgid "Registered nicknames"
msgstr "Usuarios rexistrados"
msgstr "Alcumes rexistrados"
#: mod_muc_admin.erl:254
msgid "List of rooms"
msgstr ""
msgstr "Lista de salas"
#: mod_muc_log.erl:398 mod_muc_log.erl:407
msgid "Chatroom configuration modified"
msgstr "Configuración de la sala modificada"
msgstr "Configuración da sala modificada"
#: mod_muc_log.erl:410
msgid "joins the room"
msgstr "entra en la sala"
msgstr "entra na sala"
#: mod_muc_log.erl:413 mod_muc_log.erl:416
msgid "leaves the room"
@@ -1077,7 +1064,7 @@ msgstr "foi expulsado, porque a sala cambiouse a só-membros"
#: mod_muc_log.erl:445
msgid "has been kicked because of a system shutdown"
msgstr "foi expulsado por mor dun sistema de peche"
msgstr "foi expulsado porque o sistema vaise a deter"
#: mod_muc_log.erl:450
msgid "is now known as"
@@ -1088,24 +1075,20 @@ msgid " has set the subject to: "
msgstr " puxo o asunto: "
#: mod_muc_log.erl:493
#, fuzzy
msgid "Chatroom is created"
msgstr "Salas de charla"
msgstr "Creouse a sala"
#: mod_muc_log.erl:495
#, fuzzy
msgid "Chatroom is destroyed"
msgstr "Salas de charla"
msgstr "Destruíuse a sala"
#: mod_muc_log.erl:497
#, fuzzy
msgid "Chatroom is started"
msgstr "Salas de charla"
msgstr "Iniciouse a sala"
#: mod_muc_log.erl:499
#, fuzzy
msgid "Chatroom is stopped"
msgstr "Salas de charla"
msgstr "Detívose a sala"
#: mod_muc_log.erl:503
msgid "Monday"
@@ -1197,9 +1180,11 @@ msgstr "Hase exedido o límite de tráfico"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
"Non está permitido enviar mensaxes de erro á sala. Este participante (~s) "
"enviou unha mensaxe de erro (~s) e foi expulsado da sala"
#: mod_muc_room.erl:241
msgid "It is not allowed to send private messages to the conference"
@@ -1207,20 +1192,19 @@ msgstr "Impedir o envio de mensaxes privadas á sala"
#: mod_muc_room.erl:316
msgid "Please, wait for a while before sending new voice request"
msgstr ""
msgstr "Por favor, espera un pouco antes de enviar outra petición de voz"
#: mod_muc_room.erl:329
msgid "Voice requests are disabled in this conference"
msgstr ""
msgstr "As peticións de voz están desactivadas nesta sala"
#: mod_muc_room.erl:347
msgid "Failed to extract JID from your voice request approval"
msgstr ""
msgstr "Fallo ao extraer o Jabber ID da túa aprobación de petición de voz"
#: mod_muc_room.erl:377
#, fuzzy
msgid "Only moderators can approve voice requests"
msgstr "Permitir aos usuarios enviar invitacións"
msgstr "Só os moderadores poden aprobar peticións de voz"
#: mod_muc_room.erl:389
msgid "Improper message type"
@@ -1238,7 +1222,7 @@ msgstr "O receptor non está na sala de conferencia"
msgid "It is not allowed to send private messages"
msgstr "Non está permitido enviar mensaxes privadas"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Só os ocupantes poden enviar mensaxes á sala"
@@ -1269,11 +1253,11 @@ msgstr "Os visitantes non poden enviar mensaxes a todos os ocupantes"
#: mod_muc_room.erl:1080
msgid "Visitors are not allowed to change their nicknames in this room"
msgstr ""
"Os visitantes non están autorizados a cambiar os seus That alcumes nesta sala"
"Os visitantes non teñen permitido cambiar os seus alcumes nesta sala"
#: mod_muc_room.erl:1093 mod_muc_room.erl:1835
msgid "That nickname is already in use by another occupant"
msgstr "Ese alcume que xa está en uso por outro ocupante"
msgstr "Ese alcume xa está a ser usado por outro ocupante"
#: mod_muc_room.erl:1822
msgid "You have been banned from this room"
@@ -1289,12 +1273,11 @@ msgstr "Necesítase contrasinal para entrar nesta sala"
#: mod_muc_room.erl:1898 mod_register.erl:295
msgid "Too many CAPTCHA requests"
msgstr ""
msgstr "Demasiadas peticións de CAPTCHA"
#: mod_muc_room.erl:1908 mod_register.erl:301
#, fuzzy
msgid "Unable to generate a CAPTCHA"
msgstr "Non se pode xerar un CAPTCHA"
msgstr "No se pudo generar un CAPTCHA"
#: mod_muc_room.erl:1919
msgid "Incorrect password"
@@ -1324,7 +1307,7 @@ msgstr "Afiliación non válida: ~s"
msgid "Invalid role: ~s"
msgstr "Rol non válido: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "Requírense privilexios de propietario da sala"
@@ -1336,7 +1319,7 @@ msgstr "Configuración para a sala ~s"
msgid "Room title"
msgstr "Título da sala"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "Descrición da sala"
@@ -1378,20 +1361,19 @@ msgstr "calquera"
#: mod_muc_room.erl:3471
msgid "Roles for which Presence is Broadcasted"
msgstr ""
msgstr "Roles para os que si se difunde a súa Presenza"
#: mod_muc_room.erl:3486
#, fuzzy
msgid "Moderator"
msgstr "só moderadores"
msgstr "Moderator"
#: mod_muc_room.erl:3496
msgid "Participant"
msgstr ""
msgstr "Participante"
#: mod_muc_room.erl:3506
msgid "Visitor"
msgstr ""
msgstr "Visitante"
#: mod_muc_room.erl:3513
msgid "Make room members-only"
@@ -1414,13 +1396,12 @@ msgid "Allow users to send private messages"
msgstr "Permitir aos usuarios enviar mensaxes privadas"
#: mod_muc_room.erl:3533
#, fuzzy
msgid "Allow visitors to send private messages to"
msgstr "Permitir aos usuarios enviar mensaxes privadas"
msgstr "Permitir aos visitantes enviar mensaxes privadas a"
#: mod_muc_room.erl:3551
msgid "nobody"
msgstr ""
msgstr "ninguén"
#: mod_muc_room.erl:3576
msgid "Allow users to query other users"
@@ -1440,13 +1421,12 @@ msgid "Allow visitors to change nickname"
msgstr "Permitir aos visitantes cambiarse o alcume"
#: mod_muc_room.erl:3589
#, fuzzy
msgid "Allow visitors to send voice requests"
msgstr "Permitir aos usuarios enviar invitacións"
msgstr "Permitir aos visitantes enviar peticións de voz"
#: mod_muc_room.erl:3592
msgid "Minimum interval between voice requests (in seconds)"
msgstr ""
msgstr "Intervalo mínimo entre peticións de voz (en segundos)"
#: mod_muc_room.erl:3599
msgid "Make room CAPTCHA protected"
@@ -1454,11 +1434,11 @@ msgstr "Protexer a sala con CAPTCHA"
#: mod_muc_room.erl:3606
msgid "Enable message archiving"
msgstr ""
msgstr "Activar o almacenamento de mensaxes"
#: mod_muc_room.erl:3612
msgid "Exclude Jabber IDs from CAPTCHA challenge"
msgstr ""
msgstr "Excluír Jabber IDs das probas de CAPTCHA"
#: mod_muc_room.erl:3621
msgid "Enable logging"
@@ -1468,46 +1448,45 @@ msgstr "Gardar históricos"
msgid "You need an x:data capable client to configure room"
msgstr "Necesitas un cliente con soporte de x:data para configurar a sala"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Número de ocupantes"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "privado"
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr ""
msgstr "Petición de voz"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr ""
msgstr "Aproba ou rexeita a petición de voz."
#: mod_muc_room.erl:4349
#, fuzzy
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "Usuario "
msgstr "Jabber ID do usuario"
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr ""
msgstr "¿Conceder voz a esta persoa?"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s invítache á sala ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "a contrasinal é"
#: mod_multicast.erl:291
msgid "Multicast"
msgstr ""
msgstr "Multicast"
#: mod_multicast.erl:306
msgid "ejabberd Multicast service"
msgstr ""
msgstr "Servizo Multicast de ejabberd"
#: mod_offline.erl:647
msgid ""
@@ -1546,7 +1525,7 @@ msgstr "Borrar Todas as Mensaxes Sen conexión"
#: mod_proxy65_service.erl:248
msgid "ejabberd SOCKS5 Bytestreams module"
msgstr "ejabberd SOCKS5 Bytestreams module"
msgstr "Módulo SOCKS5 Bytestreams para ejabberd"
#: mod_pubsub.erl:1102
msgid "Publish-Subscribe"
@@ -1566,7 +1545,7 @@ msgstr "Decidir se aprobar a subscripción desta entidade."
#: mod_pubsub.erl:1559
msgid "Node ID"
msgstr "Nodo IDE"
msgstr "Nodo ID"
#: mod_pubsub.erl:1571
msgid "Subscriber Address"
@@ -1602,7 +1581,7 @@ msgstr "Persistir elementos ao almacenar"
#: mod_pubsub.erl:3757
msgid "A friendly name for the node"
msgstr "Un nome para o nodo"
msgstr "Un nome sinxelo para o nodo"
#: mod_pubsub.erl:3759
msgid "Max # of items to persist"
@@ -1626,12 +1605,11 @@ msgstr "Especificar o modelo do publicante"
#: mod_pubsub.erl:3769
msgid "Purge all items when the relevant publisher goes offline"
msgstr ""
msgstr "Purgar todos os elementos cando o editor correspondente desconéctase"
#: mod_pubsub.erl:3771
#, fuzzy
msgid "Specify the event message type"
msgstr "Especifica o modelo de acceso"
msgstr "Especifica o tipo da mensaxe de evento"
#: mod_pubsub.erl:3773
msgid "Max payload size in bytes"
@@ -1650,15 +1628,13 @@ msgid "The collections with which a node is affiliated"
msgstr "As coleccións coas que un nodo está afiliado"
#: mod_register.erl:209
#, fuzzy
msgid "The CAPTCHA verification has failed"
msgstr "O CAPTCHA é válido."
msgstr "A verificación de CAPTCHA fallou"
#: mod_register.erl:253
#, fuzzy
msgid "You need a client that supports x:data and CAPTCHA to register"
msgstr ""
"Necesitas un cliente con soporte de x:data para poder rexistrar o alcume"
"Necesitas un cliente con soporte de x:data e CAPTCHA para rexistrarche"
#: mod_register.erl:259 mod_register.erl:320
msgid "Choose a username and password to register with this server"
@@ -1666,9 +1642,8 @@ msgstr ""
"Escolle un nome de usuario e contrasinal para rexistrarche neste servidor"
#: mod_register.erl:373 mod_register.erl:421
#, fuzzy
msgid "The password is too weak"
msgstr "a contrasinal é"
msgstr "O contrasinal é demasiado débil"
#: mod_register.erl:426
msgid "Users are not allowed to register accounts so quickly"
@@ -1676,39 +1651,39 @@ msgstr "Os usuarios non están autorizados a rexistrar contas con tanta rapidez"
#: mod_register_web.erl:105
msgid "Your Jabber account was successfully created."
msgstr ""
msgstr "A súa conta Jabber creouse correctamente."
#: mod_register_web.erl:110
msgid "There was an error creating the account: "
msgstr ""
msgstr "Produciuse un erro ao crear a conta: "
#: mod_register_web.erl:119
msgid "Your Jabber account was successfully deleted."
msgstr ""
msgstr "A súa conta Jabber eliminouse correctamente."
#: mod_register_web.erl:124
msgid "There was an error deleting the account: "
msgstr ""
msgstr "Produciuse un erro ao eliminar a conta: "
#: mod_register_web.erl:135
msgid "The password of your Jabber account was successfully changed."
msgstr ""
msgstr "O contrasinal da súa conta Jabber cambiouse correctamente."
#: mod_register_web.erl:140
msgid "There was an error changing the password: "
msgstr ""
msgstr "Produciuse un erro ao cambiar o contrasinal: "
#: mod_register_web.erl:175 mod_register_web.erl:183
msgid "Jabber Account Registration"
msgstr ""
msgstr "Rexistro de conta Jabber"
#: mod_register_web.erl:186 mod_register_web.erl:204 mod_register_web.erl:212
msgid "Register a Jabber account"
msgstr ""
msgstr "Rexistrar unha conta Jabber"
#: mod_register_web.erl:191 mod_register_web.erl:453 mod_register_web.erl:461
msgid "Unregister a Jabber account"
msgstr ""
msgstr "Eliminar o rexistro dunha conta Jabber"
#: mod_register_web.erl:214
msgid ""
@@ -1716,40 +1691,45 @@ msgid ""
"(Jabber IDentifier) will be of the form: username@server. Please read "
"carefully the instructions to fill correctly the fields."
msgstr ""
"Esta páxina permite crear unha conta Jabber neste servidor Jabber. o seu JID "
"(Jabber IDentificador) será da forma: nomeusuario@servidor. Por favor le "
"coidadosamente as instrucións para encher correctamente os campos."
#: mod_register_web.erl:224 mod_register_web.erl:360 mod_register_web.erl:469
#, fuzzy
msgid "Username:"
msgstr "Nome de usuario en IRC"
msgstr "Nome de usuario:"
#: mod_register_web.erl:230
msgid "This is case insensitive: macbeth is the same that MacBeth and Macbeth."
msgstr ""
msgstr "Esta é insensible: Macbeth é o mesmo que MacBeth e Macbeth."
#: mod_register_web.erl:233
msgid "Characters not allowed:"
msgstr ""
msgstr "Caracteres non permitidos:"
#: mod_register_web.erl:236 mod_register_web.erl:364 mod_register_web.erl:473
#, fuzzy
msgid "Server:"
msgstr "Servidor ~b"
msgstr "Servidor:"
#: mod_register_web.erl:245
msgid ""
"Don't tell your password to anybody, not even the administrators of the "
"Jabber server."
"Jabber Server."
msgstr ""
"Non lle diga o seu contrasinal a ninguén, nin sequera os administradores do "
"Servidor Jabber."
#: mod_register_web.erl:249
msgid "You can later change your password using a Jabber client."
msgstr ""
msgstr "Máis tarde, pode cambiar o seu contrasinal utilizando un cliente Jabber."
#: mod_register_web.erl:252
msgid ""
"Some Jabber clients can store your password in the computer, but you should "
"do this only in your personal computer for safety reasons."
msgstr ""
"Algúns clientes Jabber pode almacenar o contrasinal no computador, pero debe "
"facer isto só no seu computador persoal por razóns de seguridade."
#: mod_register_web.erl:256
msgid ""
@@ -1757,34 +1737,33 @@ msgid ""
"Jabber there isn't an automated way to recover your password if you forget "
"it."
msgstr ""
"Memorice o seu contrasinal ou escribilo nun papel colocado nun lugar seguro. En "
"Jabber non hai unha forma automatizada para recuperar o seu contrasinal si "
"a esquece"
#: mod_register_web.erl:262 mod_register_web.erl:374
#, fuzzy
msgid "Password Verification:"
msgstr "Verificación da contrasinal"
#: mod_register_web.erl:269
#, fuzzy
msgid "Register"
msgstr "Lista de contactos"
msgstr "Rexistrar"
#: mod_register_web.erl:366
#, fuzzy
msgid "Old Password:"
msgstr "Contrasinal:"
msgstr "Contrasinal anterior:"
#: mod_register_web.erl:370
#, fuzzy
msgid "New Password:"
msgstr "Contrasinal:"
msgstr "Novo contrasinal:"
#: mod_register_web.erl:463
msgid "This page allows to unregister a Jabber account in this Jabber server."
msgstr ""
msgstr "Esta páxina permite anular o rexistro dunha conta Jabber neste servidor Jabber."
#: mod_register_web.erl:480
msgid "Unregister"
msgstr ""
msgstr "Eliminar rexistro"
#: mod_roster.erl:1436
msgid "Subscription"
@@ -1872,8 +1851,8 @@ msgid ""
"Fill in the form to search for any matching Jabber User (Add * to the end of "
"field to match substring)"
msgstr ""
"Enche o formulario para buscar usuarios Jabber. Engade * ao final dun campo "
"para buscar subcadenas."
"Enche o formulario para buscar usuarios Jabber (Engade * ao final dun campo "
"para buscar subcadenas)"
#: mod_vcard.erl:490 mod_vcard.erl:615
msgid "Full Name"
@@ -1901,7 +1880,7 @@ msgstr "Necesitas un cliente con soporte de x:data para poder buscar"
#: mod_vcard.erl:519 mod_vcard_ldap.erl:531
msgid "vCard User Search"
msgstr "Procura de usuario en vCard"
msgstr "vCard busqueda de usuario"
#: mod_vcard.erl:580 mod_vcard_ldap.erl:586
msgid "ejabberd vCard module"
@@ -1942,7 +1921,6 @@ msgstr "Rechea campos para buscar usuarios Jabber que concuerden"
#~ "Este participante é expulsado da sala, porque el enviou un erro de "
#~ "presenza"
#, fuzzy
#~ msgid "CAPTCHA test failed"
#~ msgstr "O CAPTCHA é válido."
+12 -2
View File
@@ -88,6 +88,7 @@
{"ejabberd Web Admin","מנהל רשת ejabberd"}.
{"Elements","אלמנטים"}.
{"Email","דוא״ל"}.
{"Empty Rooms","חדרים ריקים"}.
{"Enable logging","אפשר רישום פעילות"}.
{"Enable message archiving","אפשר אחסון הודעות"}.
{"Encoding for server ~b","קידוד עבור שרת ~b"}.
@@ -143,6 +144,7 @@
{"Import Users from Dir at ","ייבוא משתמשים מתוך מדור אצל "}.
{"Import Users From jabberd14 Spool Files","יבא משתמשים מתוך קבצי סליל (Spool Files) של jabberd14"}.
{"Improper message type","טיפוס הודעה לא מתאים"}.
{"Incoming s2s Connections:","חיבורי s2s נכנסים:"}.
{"Incorrect password","מילת מעבר שגויה"}.
{"Invalid affiliation: ~s","סינוף שגוי: ~s"}.
{"Invalid role: ~s","תפקיד שגוי: ~s"}.
@@ -155,8 +157,9 @@
{"IRC username","שם משתמש IRC"}.
{"IRC Username","שם משתמש IRC"}.
{"is now known as","ידועה כעת בכינוי"}.
{"It is not allowed to send error messages to the room. The participant (~s) has sent an error message (~s) and got kicked from the room","אין זה מותר לשלוח הודעות שגיאה לחדר. משתתף זה (~s) שלח הודעת שגיאה (~s) ונבעט מתוך החדר"}.
{"It is not allowed to send private messages of type \"groupchat\"","אין זה מותר לשלוח הודעות פרטיות מן טיפוס \"groupchat\""}.
{"It is not allowed to send private messages to the conference","אין זה מותר לשלוח הודעות פרטיות אל הועידה"}.
{"It is not allowed to send private messages to the conference","אין זה מותר לשלוח הודעות פרטיות לועידה"}.
{"It is not allowed to send private messages","אין זה מותר לשלוח הודעות פרטיות"}.
{"Jabber Account Registration","רישום חשבון Jabber"}.
{"Jabber ID ~s is invalid","מזהה Jabber ~s הינו שגוי"}.
@@ -199,6 +202,7 @@
{"Minimum interval between voice requests (in seconds)","תדירות מינימלית בין בקשות ביטוי (בשניות)"}.
{"Moderator privileges required","נדרשות הרשאות אחראי"}.
{"moderators only","לאחראים בלבד"}.
{"Moderator","אחראי"}.
{"Modified modules","מודולים שהותאמו"}.
{"Modules at ~p","מודולים אצל ~p"}.
{"Modules","מודולים"}.
@@ -240,6 +244,7 @@
{"Online Users","משתמשים מקוונים"}.
{"Online","מקוון"}.
{"Only deliver notifications to available users","מסור התראות למשתמשים זמינים בלבד"}.
{"Only members may query archives of this room","רק חברים רשאים לתשאל ארכיונים של חדר זה"}.
{"Only moderators and participants are allowed to change the subject in this room","רק אחראים ומשתתפים רשאים לשנות את הנושא בחדר זה"}.
{"Only moderators are allowed to change the subject in this room","רק אחראים רשאים לשנות את הנושא בחדר זה"}.
{"Only moderators can approve voice requests","רק אחראים יכולים לאשר בקשות ביטוי"}.
@@ -253,6 +258,7 @@
{"Outgoing s2s Connections","חיבורי s2s יוצאים"}.
{"Owner privileges required","נדרשות הרשאות בעלים"}.
{"Packet","חבילת מידע"}.
{"Participant","משתתף"}.
{"Password ~b","סיסמה ~b"}.
{"Password Verification:","אימות סיסמה:"}.
{"Password Verification","אימות סיסמה"}.
@@ -266,6 +272,8 @@
{"Persist items to storage","פריטים קבועים לאחסון"}.
{"Ping","פינג"}.
{"Please note that these options will only backup the builtin Mnesia database. If you are using the ODBC module, you also need to backup your SQL database separately.","אנא שים לב כי אפשרויות אלו יגבו את מסד הנתונים המובנה Mnesia בלבד. אם הינך עושה שימוש במודול ODBC, עליך גם לגבות את מסד הנתונים SQL אשר מצוי ברשותך בנפרד."}.
{"Please specify file name.","אנא ציין שם קובץ."}.
{"Please specify file size.","אנא ציין גודל קובץ."}.
{"Please, wait for a while before sending new voice request","אנא, המתן לזמן מה לפני שליחת בקשת ביטוי חדשה"}.
{"Pong","פונג"}.
{"Port ~b","פורט ~b"}.
@@ -301,6 +309,7 @@
{"Restore binary backup immediately:","שחזר גיבוי בינארי לאלתר:"}.
{"Restore plain text backup immediately:","שחזר גיבוי טקסט גלוי (plain text) לאלתר:"}.
{"Restore","שחזר"}.
{"Roles for which Presence is Broadcasted","תפקידים להם נוכחות הינה משודרת"}.
{"Room Configuration","תצורת חדר"}.
{"Room creation is denied by service policy","יצירת חדר נדחתה על ידי פוליסת שירות"}.
{"Room description","תיאור חדר"}.
@@ -332,7 +341,7 @@
{"Show Ordinary Table","הצג טבלה רגילה"}.
{"Shut Down Service","כבה שירות"}.
{"~s invites you to the room ~s","~s מזמינך לחדר ~s"}.
{"Some Jabber clients can store your password in the computer, but you should do this only in your personal computer for safety reasons.","לקוחות Jabber מסוימים יכולים לאחסן את הסיסמה שלך על המחשב שלך. השתמש בתכונה זו רק אם אתה סמוך כי המחשב שלך הינו מוגן."}.
{"Some Jabber clients can store your password in the computer, but you should do this only in your personal computer for safety reasons.","ישנם לקוחות Jabber אשר מסוגלים לאחסן את הסיסמה שלך בתוך המחשב, אולם עליך לעשות זאת רק בתוך המחשב האישי שלך מסיבות ביטחוניות."}.
{"Specify the access model","ציין מודל גישה"}.
{"Specify the event message type","ציין טיפוס הודעת אירוע"}.
{"Specify the publisher model","ציין מודל פרסום"}.
@@ -410,6 +419,7 @@
{"Virtual Hosts","מארחים מדומים"}.
{"Visitors are not allowed to change their nicknames in this room","מבקרים אינם מורשים לשנות את שמות הכינויים שלהם בחדר זה"}.
{"Visitors are not allowed to send messages to all occupants","מבקרים אינם מורשים לשלוח הודעות אל כל הנוכחים"}.
{"Visitor","מבקר"}.
{"Voice requests are disabled in this conference","בקשות ביטוי מנוטרלות בועידה זו"}.
{"Voice request","בקשת ביטוי"}.
{"Wednesday","יום רביעי"}.
+25 -25
View File
@@ -32,11 +32,11 @@ msgstr "הוחלף בחיבור חדש"
msgid "has been kicked"
msgstr "נבעט/ה"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr "רשימת הפרטיות הפעילה שלך אסרה את הניתוב של סטנזה זו."
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr "יותר מדי סטנזות בלי אישורי קבלה"
@@ -852,11 +852,11 @@ msgstr ""
"יותר מדי (~p) אימותים כושלים מתוך כתובת IP זו (~s). הכתובת תורשה לקבל גישה "
"בשעה ~s UTC"
#: mod_http_upload.erl:587
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr "אנא ציין גודל קובץ."
#: mod_http_upload.erl:591
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr "אנא ציין שם קובץ."
@@ -974,8 +974,8 @@ msgstr "קידוד עבור שרת ~b"
msgid "Server ~b"
msgstr "שרת ~b"
#: mod_mam.erl:270
msgid "Only members are allowed to query archives of this room"
#: mod_mam.erl:541
msgid "Only members may query archives of this room"
msgstr "רק חברים רשאים לתשאל ארכיונים של חדר זה"
#: mod_muc.erl:585
@@ -994,38 +994,38 @@ msgstr "חדר ועידה לא קיים"
msgid "Chatrooms"
msgstr "חדרי שיחה"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr "חדרים ריקים"
# to register nickname
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr "עליך להשתמש בלקוח אשר תומך x:data כדי לרשום את השם כינוי"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "רישום שם כינוי אצל "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "הזן שם כינוי אשר ברצונך לרשום"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "שם כינוי"
# note: another person > someone else
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "שם כינוי זה הינו רשום על ידי מישהו אחר"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "עליך למלא את השדה \"שם כינוי\" בתוך התבנית"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "מודול MUC של ejabberd"
@@ -1237,7 +1237,7 @@ msgstr "מקבל אינו מצוי בחדר הועידה"
msgid "It is not allowed to send private messages"
msgstr "אין זה מותר לשלוח הודעות פרטיות"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "רק נוכחים רשאים לשלוח הודעות אל הועידה"
@@ -1321,7 +1321,7 @@ msgstr "סינוף שגוי: ~s"
msgid "Invalid role: ~s"
msgstr "תפקיד שגוי: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "נדרשות הרשאות בעלים"
@@ -1334,7 +1334,7 @@ msgstr "תצורת חדר ~s"
msgid "Room title"
msgstr "כותרת חדר"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "תיאור חדר"
@@ -1462,35 +1462,35 @@ msgstr "אפשר רישום פעילות"
msgid "You need an x:data capable client to configure room"
msgstr "עליך להשתמש בלקוח אשר מסוגל להבין x:data כדי להגדיר חדר"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "מספר של נוכחים"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "פרטי, "
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr "בקשת ביטוי"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr "אשר או דחה בקשת ביטוי."
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "JID משתמש"
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr "להעניק ביטוי לאישיות זו?"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s מזמינך לחדר ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "הסיסמה היא"
+27 -27
View File
@@ -28,11 +28,11 @@ msgstr "Diganti dengan koneksi baru"
msgid "has been kicked"
msgstr "telah dikick"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr "Daftar privasi aktif Anda telah menolak routing ztanza ini"
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr ""
@@ -848,11 +848,11 @@ msgid ""
"will be unblocked at ~s UTC"
msgstr ""
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
@@ -971,9 +971,9 @@ msgstr "Pengkodean untuk layanan ~b"
msgid "Server ~b"
msgstr "Layanan ~b"
#: mod_mam.erl:270
#: mod_mam.erl:541
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgid "Only members may query archives of this room"
msgstr ""
"Hanya moderator yang diperbolehkan untuk mengubah topik dalam ruangan ini"
@@ -995,36 +995,36 @@ msgstr "Ruang Konferensi tidak ada"
msgid "Chatrooms"
msgstr "Ruangan Chat"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr "Anda memerlukan klien yang mendukung x:data untuk mendaftar julukan"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Pendaftaran Julukan pada"
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Masukkan nama julukan Anda jika ingin mendaftar"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Nama Julukan"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "Julukan tersebut telah didaftarkan oleh orang lain"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Anda harus mengisi kolom \"Julukan\" dalam formulir"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "ejabberd MUC Module"
@@ -1194,8 +1194,8 @@ msgstr "Lalu lintas melebihi batas"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
#: mod_muc_room.erl:241
@@ -1236,7 +1236,7 @@ msgstr "Penerima tidak berada di ruangan konferensi"
msgid "It is not allowed to send private messages"
msgstr "Hal ini tidak diperbolehkan untuk mengirim pesan pribadi"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Hanya penghuni yang diizinkan untuk mengirim pesan ke konferensi"
@@ -1322,7 +1322,7 @@ msgstr "Afiliasi tidak valid: ~s"
msgid "Invalid role: ~s"
msgstr "Peran tidak valid: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "Hak istimewa owner dibutuhkan"
@@ -1334,7 +1334,7 @@ msgstr "Pengaturan ruangan ~s"
msgid "Room title"
msgstr "Nama Ruangan"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "Keterangan ruangan"
@@ -1465,36 +1465,36 @@ msgstr "Aktifkan catatan"
msgid "You need an x:data capable client to configure room"
msgstr "Anda memerlukan x:data klien untuk dapat mengkonfigurasi ruangan"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Jumlah Penghuni"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "pribadi, "
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr ""
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr ""
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
#, fuzzy
msgid "User JID"
msgstr "Pengguna"
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr ""
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s mengundang anda ke ruangan ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "kata sandi yaitu:"
+27 -27
View File
@@ -32,13 +32,13 @@ msgstr "Sostituito da una nuova connessione"
msgid "has been kicked"
msgstr "è stata/o espulsa/o"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr ""
"In base alla tua attuale lista privacy questa stanza è stata esclusa dalla "
"navigazione."
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr ""
@@ -854,11 +854,11 @@ msgid ""
"will be unblocked at ~s UTC"
msgstr ""
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
@@ -978,9 +978,9 @@ msgstr "Codifica per il server ~b"
msgid "Server ~b"
msgstr "Server ~b"
#: mod_mam.erl:270
#: mod_mam.erl:541
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgid "Only members may query archives of this room"
msgstr ""
"La modifica dell'oggetto di questa stanza è consentita soltanto ai moderatori"
@@ -1002,36 +1002,36 @@ msgstr "La stanza per conferenze non esiste"
msgid "Chatrooms"
msgstr "Stanze"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr "Per registrare il nickname è necessario un client che supporti x:data"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Registrazione di un nickname su "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Immettere il nickname che si vuole registrare"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Nickname"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "Questo nickname è registrato da un'altra persona"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Si deve riempire il campo \"Nickname\" nel modulo"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "Modulo MUC per ejabberd"
@@ -1201,8 +1201,8 @@ msgstr "Limite di traffico superato"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
#: mod_muc_room.erl:241
@@ -1242,7 +1242,7 @@ msgstr "Il destinatario non è nella stanza per conferenze"
msgid "It is not allowed to send private messages"
msgstr "Non è consentito l'invio di messaggi privati"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "L'invio di messaggi alla conferenza è consentito soltanto ai presenti"
@@ -1327,7 +1327,7 @@ msgstr "Affiliazione non valida: ~s"
msgid "Invalid role: ~s"
msgstr "Ruolo non valido: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "Necessari i privilegi di proprietario"
@@ -1339,7 +1339,7 @@ msgstr "Configurazione per la stanza ~s"
msgid "Room title"
msgstr "Titolo della stanza"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "Descrizione della stanza"
@@ -1471,35 +1471,35 @@ msgid "You need an x:data capable client to configure room"
msgstr ""
"Per la configurazione della stanza è necessario un client che supporti x:data"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Numero di presenti"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "privato, "
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr "Richiesta di parola"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr "Approva oppure respingi la richiesta di parola."
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "JID utente"
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr "Dare parola a questa persona?"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s ti invita nella stanza ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "la password è"
+20 -8
View File
@@ -1,4 +1,5 @@
%% -*- coding: latin-1 -*-
{"Accept","許可"}.
{"Access Configuration","アクセス設定"}.
{"Access Control List Configuration","アクセスコントロールリスト設定"}.
{"Access control lists","アクセスコントロールリスト"}.
@@ -72,7 +73,7 @@
{"Deliver payloads with event notifications","イベント通知と同時にペイロードを配送する"}.
{"Description:","説明:"}.
{"Disc only copy","ディスクだけのコピー"}.
{"Displayed Groups:","表示グループ"}.
{"Displayed Groups:","表示グループ:"}.
{"Don't tell your password to anybody, not even the administrators of the Jabber server.","パスワードは誰にも教えないようにしてください。Jabber サーバーの管理者があなたにパスワードを尋ねることはありません。"}.
{"Dump Backup to Text File at ","テキストファイルにバックアップ: "}.
{"Dump to Text File","テキストファイルに出力"}.
@@ -87,6 +88,7 @@
{"ejabberd Web Admin","ejabberd ウェブ管理"}.
{"Elements","要素"}.
{"Email","メールアドレス"}.
{"Empty Rooms","空のルーム"}.
{"Enable logging","ロギングを有効"}.
{"Enable message archiving","メッセージアーカイブを有効化"}.
{"Encoding for server ~b","サーバーのエンコーディング ~b"}.
@@ -103,7 +105,7 @@
{"Erlang Jabber Server","Erlang Jabber Server"}.
{"Error","エラー"}.
{"Example: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"secret\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.sometestserver.net\", \"utf-8\"}].","例: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"secret\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.sometestserver.net\", \"utf-8\"}]."}.
{"Exclude Jabber IDs from CAPTCHA challenge","CAPTCHA 試験を免除する Jabber ID"}.
{"Exclude Jabber IDs from CAPTCHA challenge","CAPTCHA 入力を免除する Jabber ID"}.
{"Export all tables as SQL queries to a file:","すべてのテーブルをSQL形式でファイルにエクスポート: "}.
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","サーバーにあるすべてのユーザーデータを PIEFXIS ファイルにエクスポート (XEP-0227):"}.
{"Export data of users in a host to PIEFXIS files (XEP-0227):","ホストのユーザーデータを PIEFXIS ファイルにエクスポート (XEP-0227):"}.
@@ -113,7 +115,7 @@
{"Fill in fields to search for any matching Jabber User","項目を入力してユーザーを検索してください"}.
{"Fill in the form to search for any matching Jabber User (Add * to the end of field to match substring)","項目を入力してユーザーを検索を行えます (* を使用すると部分文字列にマッチします)"}.
{"Friday","金曜日"}.
{"From ~s","差出人 ~s"}.
{"From ~s","From ~s"}.
{"From","差出人"}.
{"Full Name","氏名"}.
{"Get Number of Online Users","オンラインユーザー数を取得"}.
@@ -142,6 +144,7 @@
{"Import Users from Dir at ","ディレクトリからユーザーをインポート: "}.
{"Import Users From jabberd14 Spool Files","jabberd14 Spool ファイルからユーザーをインポート"}.
{"Improper message type","誤ったメッセージタイプです"}.
{"Incoming s2s Connections:","内向き s2s コネクション:"}.
{"Incorrect password","パスワードが違います"}.
{"Invalid affiliation: ~s","無効な分掌です: ~s"}.
{"Invalid role: ~s","無効な役です: ~s"}.
@@ -154,6 +157,7 @@
{"IRC username","IRC ユーザー名"}.
{"IRC Username","IRC ユーザー名"}.
{"is now known as","は名前を変更しました: "}.
{"It is not allowed to send error messages to the room. The participant (~s) has sent an error message (~s) and got kicked from the room","このルームにエラーメッセージを送ることは許可されていません。参加者(~s)はエラーメッセージを(~s)を送信してルームからキックされました。"}.
{"It is not allowed to send private messages of type \"groupchat\"","種別が\"groupchat\" であるプライベートメッセージを送信することはできません"}.
{"It is not allowed to send private messages to the conference","この会議にプライベートメッセージを送信することはできません"}.
{"It is not allowed to send private messages","プライベートメッセージを送信することはできません"}.
@@ -196,6 +200,7 @@
{"Message body","本文"}.
{"Middle Name","ミドルネーム"}.
{"Minimum interval between voice requests (in seconds)","発言権の要求の最小時間間隔 (秒)"}.
{"Moderator","モデレーター"}.
{"Moderator privileges required","モデレーター権限が必要です"}.
{"moderators only","モデレーターにのみ"}.
{"Modified modules","更新されたモジュール"}.
@@ -221,7 +226,7 @@
{"Nodes","ノード"}.
{"No limit","制限なし"}.
{"None","なし"}.
{"No resource provided","リソースが提供されませんでした"}.
{"No resource provided","リソースが指定されていません"}.
{"Not Found","見つかりません"}.
{"Notify subscribers when items are removed from the node","アイテムがノードから消された時に購読者へ通知する"}.
{"Notify subscribers when the node configuration changes","ノード設定に変更があった時に購読者へ通知する"}.
@@ -239,6 +244,7 @@
{"Online Users:","オンラインユーザー:"}.
{"Online Users","オンラインユーザー"}.
{"Only deliver notifications to available users","有効なユーザーにのみ告知を送信する"}.
{"Only members may query archives of this room","メンバーのみがこのルームのアーカイブを取得できます"}.
{"Only moderators and participants are allowed to change the subject in this room","モデレーターと参加者のみがチャットルームの件名を変更できます"}.
{"Only moderators are allowed to change the subject in this room","モデレーターのみがチャットルームの件名を変更できます"}.
{"Only moderators can approve voice requests","モデレーターだけが発言権の要求を承認できます"}.
@@ -252,7 +258,8 @@
{"Outgoing s2s Connections","外向き s2s コネクション"}.
{"Owner privileges required","主宰者の権限が必要です"}.
{"Packet","パケット"}.
{"Password:","パスワード"}.
{"Participant","参加者"}.
{"Password:","パスワード:"}.
{"Password","パスワード"}.
{"Password ~b","パスワード ~b"}.
{"Password Verification:","パスワード (確認):"}.
@@ -265,6 +272,8 @@
{"Persist items to storage","アイテムをストレージに保存する"}.
{"Ping","Ping"}.
{"Please note that these options will only backup the builtin Mnesia database. If you are using the ODBC module, you also need to backup your SQL database separately.","これらのオプションは組み込みの Mnesia データーベースのバックアップのみを行うことに注意してください。もし ODBC モジュールを使用している場合は、SQL データーベースのバックアップを別に行う必要があります。"}.
{"Please specify file name.","ファイル名を指定してください。"}.
{"Please specify file size.","ファイルサイズを指定してください。"}.
{"Please, wait for a while before sending new voice request","新しい発言権の要求を送るまで少し間をおいてください"}.
{"Pong","Pong"}.
{"Port","ポート"}.
@@ -300,6 +309,7 @@
{"Restore binary backup after next ejabberd restart (requires less memory):","ejabberd の再起動時にバイナリバックアップからリストア (メモリ少):"}.
{"Restore binary backup immediately:","直ちにバイナリバックアップからリストア:"}.
{"Restore plain text backup immediately:","直ちにプレーンテキストバックアップからリストア:"}.
{"Roles for which Presence is Broadcasted","プレゼンスをブロードキャストするロール"}.
{"Room Configuration","チャットルームの設定"}.
{"Room creation is denied by service policy","サービスポリシーによってチャットルームの作成が禁止されています"}.
{"Room description","チャットルームの説明"}.
@@ -322,6 +332,7 @@
{"Send announcement to all users","すべてのユーザーにアナウンスを送信"}.
{"September","9月"}.
{"Server:","サーバー:"}.
{"Server","サーバー"}.
{"Server ~b","サーバー ~b"}.
{"Set message of the day and send to online users","お知らせメッセージを設定し、オンラインユーザーに送信"}.
{"Set message of the day on all hosts and send to online users","全ホストのお知らせメッセージを設定し、オンラインユーザーに送信"}.
@@ -367,7 +378,7 @@
{"This IP address is blacklisted in ~s","このIPアドレスはアクセスを禁止されています ~s"}.
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","大文字と小文字は区別しません: macbeth は MacBeth や Macbeth と同じです。"}.
{"This page allows to create a Jabber account in this Jabber server. Your JID (Jabber IDentifier) will be of the form: username@server. Please read carefully the instructions to fill correctly the fields.","ここはこの Jabber サーバーにアカウントを作成するページです。あなたの JID (JabberID) は username@server のような形式になります。注意事項どおり、正しく項目を記入してください。"}.
{"This page allows to unregister a Jabber account in this Jabber server.","ここはこの Jabber サーバーのアカウントを削除するページです。"}.
{"This page allows to unregister a Jabber account in this Jabber server.","このページはサーバー上のJabberアカウントを削除するページです。"}.
{"Thursday","木曜日"}.
{"Time delay","遅延時間"}.
{"Time","時間"}.
@@ -376,7 +387,7 @@
{"Too many unacked stanzas","多くのスタンザが応答していません"}.
{"To ~s","宛先 ~s"}.
{"Total rooms","チャットルーム数"}.
{"To","宛先"}.
{"To","To"}.
{"Traffic rate limit is exceeded","トラフィックレートの制限を超えました"}.
{"Transactions Aborted:","トランザクションの失敗:"}.
{"Transactions Committed:","トランザクションのコミット:"}.
@@ -394,7 +405,7 @@
{"Update script","スクリプトの更新"}.
{"Update","更新"}.
{"Uptime:","起動時間:"}.
{"Use of STARTTLS required","STARTTLS の使用が必です"}.
{"Use of STARTTLS required","STARTTLS の使用が必です"}.
{"User","ユーザー"}.
{"User JID","ユーザー JID"}.
{"User Management","ユーザー管理"}.
@@ -408,6 +419,7 @@
{"Virtual Hosts","バーチャルホスト"}.
{"Visitors are not allowed to change their nicknames in this room","傍聴者はこのチャットルームでニックネームを変更することはできません"}.
{"Visitors are not allowed to send messages to all occupants","傍聴者はすべての在室者にメッセージを送信することはできません"}.
{"Visitor","傍聴者"}.
{"Voice requests are disabled in this conference","この会議では、発言権の要求はできません"}.
{"Voice request","発言権を要求"}.
{"Wednesday","水曜日"}.
+47 -51
View File
@@ -12,11 +12,11 @@ msgstr ""
#: ejabberd_c2s.erl:505 ejabberd_c2s.erl:853
msgid "Use of STARTTLS required"
msgstr "STARTTLS の使用が必です"
msgstr "STARTTLS の使用が必です"
#: ejabberd_c2s.erl:604
msgid "No resource provided"
msgstr "リソースが提供されませんでした"
msgstr "リソースが指定されていません"
#: ejabberd_c2s.erl:1349
msgid "Replaced by new connection"
@@ -27,11 +27,11 @@ msgstr "新しいコネクションによって置き換えられました"
msgid "has been kicked"
msgstr "はキックされました"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr "あなたのプライバシーリストはこのスタンザのルーティングを拒否しました。"
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr "多くのスタンザが応答していません"
@@ -63,9 +63,8 @@ msgid "User"
msgstr "ユーザー"
#: ejabberd_oauth.erl:256
#, fuzzy
msgid "Server"
msgstr "サーバー:"
msgstr "サーバー"
#: ejabberd_oauth.erl:259 ejabberd_web_admin.erl:1408 mod_configure.erl:1398
#: mod_configure.erl:1485 mod_configure.erl:1889 mod_configure.erl:2123
@@ -75,7 +74,7 @@ msgstr "パスワード"
#: ejabberd_oauth.erl:267
msgid "Accept"
msgstr ""
msgstr "許可"
#: ejabberd_web_admin.erl:202 ejabberd_web_admin.erl:214
#: ejabberd_web_admin.erl:234 ejabberd_web_admin.erl:246
@@ -242,9 +241,8 @@ msgid "Outgoing s2s Connections:"
msgstr "外向き s2s コネクション:"
#: ejabberd_web_admin.erl:1559
#, fuzzy
msgid "Incoming s2s Connections:"
msgstr "向き s2s コネクション:"
msgstr "向き s2s コネクション:"
#: ejabberd_web_admin.erl:1595 ejabberd_web_admin.erl:1794
#: ejabberd_web_admin.erl:1804 ejabberd_web_admin.erl:2214 mod_roster.erl:1429
@@ -267,7 +265,7 @@ msgstr "接続リソース:"
#: ejabberd_web_admin.erl:1686 mod_register_web.erl:239
#: mod_register_web.erl:475
msgid "Password:"
msgstr "パスワード"
msgstr "パスワード:"
#: ejabberd_web_admin.erl:1693 mod_configure.erl:2117
msgid "Remove User"
@@ -673,7 +671,7 @@ msgstr "宛先 ~s"
#: mod_configure.erl:782
msgid "From ~s"
msgstr "差出人 ~s"
msgstr "From ~s"
#: mod_configure.erl:1002
msgid "Database Tables Configuration at "
@@ -839,13 +837,13 @@ msgid ""
msgstr ""
"~p回の認証に失敗しました。このIPアドレス(~s)は~s UTCまでブロックされます。"
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
msgstr "ファイルサイズを指定してください。"
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
msgstr "ファイル名を指定してください。"
#: mod_ip_blacklist.erl:121
msgid "This IP address is blacklisted in ~s"
@@ -961,10 +959,9 @@ msgstr "サーバーのエンコーディング ~b"
msgid "Server ~b"
msgstr "サーバー ~b"
#: mod_mam.erl:270
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgstr "モデレーターのみがチャットルームの件名を変更できます"
#: mod_mam.erl:541
msgid "Only members may query archives of this room"
msgstr "メンバーのみがこのルームのアーカイブを取得できます"
#: mod_muc.erl:585
msgid "Only service administrators are allowed to send service messages"
@@ -982,36 +979,36 @@ msgstr "会議室は存在しません"
msgid "Chatrooms"
msgstr "チャットルーム"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
msgstr "空のルーム"
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr "ニックネームを登録するには x:data をサポートするクライアントが必要です"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "ニックネーム登録: "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "登録するニックネームを入力してください"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "ニックネーム"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "ニックネームはほかの人によって登録されています"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "フォームの\"ニックネーム\"欄を入力する必要があります"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "ejabberd MUCモジュール"
@@ -1178,9 +1175,9 @@ msgstr "トラフィックレートの制限を超えました"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
msgstr ""
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr "このルームにエラーメッセージを送ることは許可されていません。参加者(~s)はエラーメッセージを(~s)を送信してルームからキックされました。"
#: mod_muc_room.erl:241
msgid "It is not allowed to send private messages to the conference"
@@ -1219,7 +1216,7 @@ msgstr "受信者はこの会議室にいません"
msgid "It is not allowed to send private messages"
msgstr "プライベートメッセージを送信することはできません"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "在室者のみがこの会議にメッセージを送ることができます"
@@ -1301,7 +1298,7 @@ msgstr "無効な分掌です: ~s"
msgid "Invalid role: ~s"
msgstr "無効な役です: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "主宰者の権限が必要です"
@@ -1313,7 +1310,7 @@ msgstr "チャットルーム ~s の設定"
msgid "Room title"
msgstr "チャットルームのタイトル"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "チャットルームの説明"
@@ -1355,20 +1352,19 @@ msgstr "誰にでも"
#: mod_muc_room.erl:3471
msgid "Roles for which Presence is Broadcasted"
msgstr ""
msgstr "プレゼンスをブロードキャストするロール"
#: mod_muc_room.erl:3486
#, fuzzy
msgid "Moderator"
msgstr "モデレーターにのみ"
msgstr "モデレーター"
#: mod_muc_room.erl:3496
msgid "Participant"
msgstr ""
msgstr "参加者"
#: mod_muc_room.erl:3506
msgid "Visitor"
msgstr ""
msgstr "傍聴者"
#: mod_muc_room.erl:3513
msgid "Make room members-only"
@@ -1432,7 +1428,7 @@ msgstr "メッセージアーカイブを有効化"
#: mod_muc_room.erl:3612
msgid "Exclude Jabber IDs from CAPTCHA challenge"
msgstr "CAPTCHA 試験を免除する Jabber ID"
msgstr "CAPTCHA 入力を免除する Jabber ID"
#: mod_muc_room.erl:3621
msgid "Enable logging"
@@ -1443,35 +1439,35 @@ msgid "You need an x:data capable client to configure room"
msgstr ""
"チャットルームを設定するには x:data をサポートするクライアントが必要です"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "在室者の数"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "プライベート、"
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr "発言権を要求"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr "発言権の要求を承認または却下します。"
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "ユーザー JID"
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr "この人に発言権を与えますか ?"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s はあなたをチャットルーム ~s に招待しています"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "パスワードは"
@@ -1503,7 +1499,7 @@ msgstr "差出人"
#: mod_offline.erl:813
msgid "To"
msgstr "宛先"
msgstr "To"
#: mod_offline.erl:814
msgid "Packet"
@@ -1752,7 +1748,7 @@ msgstr "新しいパスワード:"
#: mod_register_web.erl:463
msgid "This page allows to unregister a Jabber account in this Jabber server."
msgstr "ここはこの Jabber サーバーのアカウントを削除するページです。"
msgstr "このページはサーバー上のJabberアカウントを削除するページです。"
#: mod_register_web.erl:480
msgid "Unregister"
@@ -1809,7 +1805,7 @@ msgstr "メンバー:"
#: mod_shared_roster.erl:1250
msgid "Displayed Groups:"
msgstr "表示グループ"
msgstr "表示グループ:"
#: mod_shared_roster.erl:1259
msgid "Group "
+27 -27
View File
@@ -30,11 +30,11 @@ msgstr "Vervangen door een nieuwe verbinding"
msgid "has been kicked"
msgstr "is weggestuurd"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr "Uw actieve privacy-lijst verbied het routeren van dit stanza."
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr "Te veel niet-bevestigde stanzas"
@@ -847,11 +847,11 @@ msgstr ""
"Te veel (~p) mislukte authenticatie-pogingen van dit IP-adres (~s). Dit "
"adres zal worden gedeblokkeerd om ~s UTC"
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
@@ -971,9 +971,9 @@ msgstr "Karakterset voor server ~b"
msgid "Server ~b"
msgstr "Server ~b"
#: mod_mam.erl:270
#: mod_mam.erl:541
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgid "Only members may query archives of this room"
msgstr "Alleen moderators mogen het onderwerp van deze chatruimte veranderen"
#: mod_muc.erl:585
@@ -996,37 +996,37 @@ msgstr "De chatruimte bestaat niet"
msgid "Chatrooms"
msgstr "Groepsgesprekken"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr ""
"U hebt een client nodig die x:data ondersteunt om een bijnaam te registreren"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Registratie van een bijnaam op "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Voer de bijnaam in die u wilt registreren"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Bijnaam"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "Deze bijnaam is al geregistreerd door iemand anders"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "U moet het veld \"bijnaam\" invullen"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "ejabberd's MUC module"
@@ -1195,8 +1195,8 @@ msgstr "Dataverkeerslimiet overschreden"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
#: mod_muc_room.erl:241
@@ -1236,7 +1236,7 @@ msgstr "De ontvanger is niet in de chatruimte"
msgid "It is not allowed to send private messages"
msgstr "Het is niet toegestaan priveberichten te sturen"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Alleen aanwezigen mogen berichten naar de chatruimte verzenden"
@@ -1321,7 +1321,7 @@ msgstr "Ongeldige affiliatie: ~s"
msgid "Invalid role: ~s"
msgstr "Ongeldige rol: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "U hebt eigenaarsprivileges nodig"
@@ -1333,7 +1333,7 @@ msgstr "Instellingen van chatruimte ~s"
msgid "Room title"
msgstr "Naam van de chatruimte"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "Beschrijving"
@@ -1464,35 +1464,35 @@ msgstr ""
"U hebt een client nodig die x:data ondersteunt om deze chatruimte in te "
"stellen"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Aantal aanwezigen"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "privé, "
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr "Stemaanvraag"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr "Keur stemaanvraag goed of af."
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "JID Gebruiker"
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr "Stemaanvraag honoreren voor deze persoon?"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s nodigt je uit voor het groepsgesprek ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "het wachtwoord is"
+27 -27
View File
@@ -28,11 +28,11 @@ msgstr "Erstattet av en ny tilkobling"
msgid "has been kicked"
msgstr "har blitt kastet ut"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr "Din aktive privat liste har blokkert rutingen av denne strofen."
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr ""
@@ -842,11 +842,11 @@ msgid ""
"will be unblocked at ~s UTC"
msgstr ""
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
@@ -964,9 +964,9 @@ msgstr "Tekstkoding for server ~b"
msgid "Server ~b"
msgstr "Server ~b"
#: mod_mam.erl:270
#: mod_mam.erl:541
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgid "Only members may query archives of this room"
msgstr "Bare ordstyrer tillates å endre emnet i dette rommet"
#: mod_muc.erl:585
@@ -985,36 +985,36 @@ msgstr "Konferanserommet finnes ikke"
msgid "Chatrooms"
msgstr "Samtalerom"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr "Du trenger en klient som støtter x:data for å registrere kallenavnet"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Registrer Kallenavn på "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Skriv inn kallenavnet du ønsker å registrere"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Kallenavn"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "Det kallenavnet er registrert av en annen person"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Du må fylle inn feltet \"Nickname\" i skjemaet"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "ejabberd MUC modul"
@@ -1185,8 +1185,8 @@ msgstr "Trafikkmengde grense overskredet"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
#: mod_muc_room.erl:241
@@ -1225,7 +1225,7 @@ msgstr "Mottakeren er ikke i konferanserommet"
msgid "It is not allowed to send private messages"
msgstr "Det er ikke tillatt å sende private meldinger"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Bare deltakere får sende normale meldinger til konferansen"
@@ -1307,7 +1307,7 @@ msgstr "Ugyldig rang: ~s"
msgid "Invalid role: ~s"
msgstr "Ugyldig rolle: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "Eierprivilegier kreves"
@@ -1319,7 +1319,7 @@ msgstr "Konfigurasjon for rom ~s"
msgid "Room title"
msgstr "Romtittel"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "Rom beskrivelse"
@@ -1448,35 +1448,35 @@ msgstr "Slå på logging"
msgid "You need an x:data capable client to configure room"
msgstr "Du trenger en klient som støtter x:data for å "
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Antall deltakere"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "privat, "
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr "Lyd forespørsel"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr "Enten godkjenn eller forby lyd forespørselen"
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "Bruker JID"
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr "Gi lyd til denne personen?"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s inviterer deg til rommet ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "passordet er"
+12
View File
@@ -1,4 +1,5 @@
%% -*- coding: latin-1 -*-
{"Accept","Zaakceptuj"}.
{"Access Configuration","Konfiguracja dostępu"}.
{"Access Control List Configuration","Konfiguracja listy dostępowej"}.
{"Access Control Lists","Lista dostępowa"}.
@@ -87,6 +88,7 @@
{"ejabberd Web Admin","ejabberd: Panel Administracyjny"}.
{"Elements","Elementy"}.
{"Email","Email"}.
{"Empty Rooms","Puste pokoje"}.
{"Enable logging","Włącz logowanie"}.
{"Enable message archiving","Włącz archiwizowanie rozmów"}.
{"Encoding for server ~b","Kodowanie znaków dla serwera ~b"}.
@@ -142,6 +144,7 @@
{"Import Users from Dir at ","Importuj użytkowników z katalogu na "}.
{"Import Users From jabberd14 Spool Files","Importuj użytkowników z plików roboczych serwera jabberd14"}.
{"Improper message type","Nieprawidłowy typ wiadomości"}.
{"Incoming s2s Connections:","Przychodzące połączenia s2s:"}.
{"Incorrect password","Nieprawidłowe hasło"}.
{"Invalid affiliation: ~s","Nieprawidłowa przynależność: ~s"}.
{"Invalid role: ~s","Nieprawidłowa rola: ~s"}.
@@ -154,6 +157,7 @@
{"IRC username","Nazwa użytkownika IRC"}.
{"IRC Username","Nazwa użytkownika IRC"}.
{"is now known as","jest teraz znany jako"}.
{"It is not allowed to send error messages to the room. The participant (~s) has sent an error message (~s) and got kicked from the room","Użytkownik nie może wysyłać wiadomości o błędach do pokoju. Użytkownik (~s) wysłał błąd (~s) i został wyrzucony z pokoju"}.
{"It is not allowed to send private messages of type \"groupchat\"","Nie można wysyłać prywatnych wiadomości typu \"groupchat\""}.
{"It is not allowed to send private messages to the conference","Nie wolno wysyłac prywatnych wiadomości na konferencję"}.
{"It is not allowed to send private messages","Wysyłanie prywatnych wiadomości jest zabronione"}.
@@ -196,6 +200,7 @@
{"Message body","Treść wiadomości"}.
{"Middle Name","Drugie imię"}.
{"Minimum interval between voice requests (in seconds)","Minimalny odstęp między żądaniami głosowymi (w sekundach)"}.
{"Moderator","Moderatorzy"}.
{"Moderator privileges required","Wymagane uprawnienia moderatora"}.
{"moderators only","tylko moderatorzy"}.
{"Modified modules","Zmodyfikowane moduły"}.
@@ -239,6 +244,7 @@
{"Online Users:","Użytkownicy zalogowani:"}.
{"Online Users","Użytkownicy zalogowani"}.
{"Only deliver notifications to available users","Dostarczaj powiadomienia tylko dostępnym użytkownikom"}.
{"Only members may query archives of this room","Tylko moderatorzy mogą przeglądać archiwa tego pokoju"}.
{"Only moderators and participants are allowed to change the subject in this room","Tylko moderatorzy i uczestnicy mogą zmienić temat tego pokoju"}.
{"Only moderators are allowed to change the subject in this room","Tylko moderatorzy mogą zmienić temat tego pokoju"}.
{"Only moderators can approve voice requests","Tylko moderatorzy mogą zatwierdzać żądania głosowe"}.
@@ -252,6 +258,7 @@
{"Outgoing s2s Connections","Wychodzące połączenia s2s"}.
{"Owner privileges required","Wymagane uprawnienia właściciela"}.
{"Packet","Pakiet"}.
{"Participant","Uczestnicy"}.
{"Password ~b","Hasło ~b"}.
{"Password:","Hasło:"}.
{"Password","Hasło"}.
@@ -265,6 +272,8 @@
{"Persist items to storage","Przechowuj na stałe dane PubSub"}.
{"Ping","Ping"}.
{"Please note that these options will only backup the builtin Mnesia database. If you are using the ODBC module, you also need to backup your SQL database separately.","Te opcje kopii zapasowych dotyczą tylko wbudowanej bazy danych typu Mnesia. Jeśli korzystasz z modułu ODBC, musisz wykonać kopie bazy we własnym zakresie."}.
{"Please specify file name.","Proszę podać nazwę pliku."}.
{"Please specify file size.","Proszę podać rozmiar pliku."}.
{"Please, wait for a while before sending new voice request","Proszę poczekać chwile, zanim wyślesz nowe żądanie głosowe"}.
{"Pong","Pong"}.
{"Port ~b","Port ~b"}.
@@ -300,6 +309,7 @@
{"Restore binary backup immediately:","Natychmiast odtwórz kopię binarną:"}.
{"Restore plain text backup immediately:","Natychmiast odtwórz kopię z postaci tekstowej:"}.
{"Restore","Przywróć z kopii"}.
{"Roles for which Presence is Broadcasted","Role dla których wysyłane są statusy"}.
{"Room Configuration","Konfiguracja pokoju"}.
{"Room creation is denied by service policy","Zasady serwera zabraniają tworzyć nowe pokoje"}.
{"Room description","Opis pokoju"}.
@@ -323,6 +333,7 @@
{"September","Wrzesień"}.
{"Server ~b","Serwer ~b"}.
{"Server:","Serwer:"}.
{"Server","Serwer"}.
{"Set message of the day and send to online users","Wyślij wiadomość dnia do wszystkich zalogowanych użytkowników"}.
{"Set message of the day on all hosts and send to online users","Ustaw wiadomość dnia dla wszystkich hostów i wyślij do zalogowanych uzytkowników"}.
{"Shared Roster Groups","Wspólne grupy kontaktów"}.
@@ -406,6 +417,7 @@
{"Validate","Potwierdź"}.
{"vCard User Search","Wyszukiwanie vCard użytkowników"}.
{"Virtual Hosts","Wirtualne Hosty"}.
{"Visitor","Odwiedzający"}.
{"Visitors are not allowed to change their nicknames in this room","Uczestnicy tego pokoju nie mogą zmieniać swoich nicków"}.
{"Visitors are not allowed to send messages to all occupants","Odwiedzający nie mogą wysyłać wiadomości do wszystkich obecnych"}.
{"Voice requests are disabled in this conference","Głosowe żądania są wyłączone w tym pokoju"}.
+42 -45
View File
@@ -14,7 +14,7 @@ msgstr ""
"X-Additional-Translator: Marcin Owsiany\n"
"X-Additional-Translator: Andrzej Smyk\n"
"X-Additional-Translator: Mateusz Gajewski\n"
"X-Generator: Poedit 1.8.4\n"
"X-Generator: Poedit 1.8.6\n"
#: ejabberd_c2s.erl:505 ejabberd_c2s.erl:853
msgid "Use of STARTTLS required"
@@ -33,11 +33,11 @@ msgstr "Połączenie zostało zastąpione"
msgid "has been kicked"
msgstr "został wyrzucony"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr "Aktualna lista prywatności zabrania przesyłania tej stanzy"
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr "Zbyt wiele niepotwierdzonych pakietów"
@@ -67,9 +67,8 @@ msgid "User"
msgstr "Użytkownik"
#: ejabberd_oauth.erl:256
#, fuzzy
msgid "Server"
msgstr "Serwer:"
msgstr "Serwer"
#: ejabberd_oauth.erl:259 ejabberd_web_admin.erl:1408 mod_configure.erl:1398
#: mod_configure.erl:1485 mod_configure.erl:1889 mod_configure.erl:2123
@@ -79,7 +78,7 @@ msgstr "Hasło"
#: ejabberd_oauth.erl:267
msgid "Accept"
msgstr ""
msgstr "Zaakceptuj"
#: ejabberd_web_admin.erl:202 ejabberd_web_admin.erl:214
#: ejabberd_web_admin.erl:234 ejabberd_web_admin.erl:246
@@ -151,8 +150,7 @@ msgstr "Wirtualne Hosty"
msgid "Users"
msgstr "Użytkownicy"
#: ejabberd_web_admin.erl:955 ejabberd_web_admin.erl:1340
#: mod_configure.erl:524
#: ejabberd_web_admin.erl:955 ejabberd_web_admin.erl:1340 mod_configure.erl:524
msgid "Online Users"
msgstr "Użytkownicy zalogowani"
@@ -246,9 +244,8 @@ msgid "Outgoing s2s Connections:"
msgstr "Wychodzące połączenia s2s:"
#: ejabberd_web_admin.erl:1559
#, fuzzy
msgid "Incoming s2s Connections:"
msgstr "Wychodzące połączenia s2s:"
msgstr "Przychodzące połączenia s2s:"
#: ejabberd_web_admin.erl:1595 ejabberd_web_admin.erl:1794
#: ejabberd_web_admin.erl:1804 ejabberd_web_admin.erl:2214 mod_roster.erl:1429
@@ -851,13 +848,13 @@ msgstr ""
"Zbyt wiele (~p) nieudanych prób logowanie z tego adresu IP (~s). Ten adres "
"zostanie odblokowany o ~s UTC"
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
msgstr "Proszę podać rozmiar pliku."
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
msgstr "Proszę podać nazwę pliku."
#: mod_ip_blacklist.erl:121
msgid "This IP address is blacklisted in ~s"
@@ -973,10 +970,9 @@ msgstr "Kodowanie znaków dla serwera ~b"
msgid "Server ~b"
msgstr "Serwer ~b"
#: mod_mam.erl:270
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgstr "Tylko moderatorzy mogą zmienić temat tego pokoju"
#: mod_mam.erl:541
msgid "Only members may query archives of this room"
msgstr "Tylko moderatorzy mogą przeglądać archiwa tego pokoju"
#: mod_muc.erl:585
msgid "Only service administrators are allowed to send service messages"
@@ -994,36 +990,36 @@ msgstr "Pokój konferencyjny nie istnieje"
msgid "Chatrooms"
msgstr "Pokoje rozmów"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
msgstr "Puste pokoje"
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr "Potrzebujesz klienta obsługującego x:data aby zarejestrować nick"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Rejestracja nazwy użytkownika na "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Wprowadz nazwę użytkownika którego chcesz zarejestrować"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Nazwa użytkownika"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "Ta nazwa użytkownika jest już zarejestrowana przez inną osobę"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Musisz wypełnić pole \"Nazwa użytkownika\" w formularzu"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "Moduł MUC"
@@ -1190,9 +1186,11 @@ msgstr "Limit transferu przekroczony"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
"Użytkownik nie może wysyłać wiadomości o błędach do pokoju. Użytkownik (~s) "
"wysłał błąd (~s) i został wyrzucony z pokoju"
#: mod_muc_room.erl:241
msgid "It is not allowed to send private messages to the conference"
@@ -1230,7 +1228,7 @@ msgstr "Odbiorcy nie ma w pokoju"
msgid "It is not allowed to send private messages"
msgstr "Wysyłanie prywatnych wiadomości jest zabronione"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Tylko uczestnicy mogą wysyłać wiadomości na konferencję"
@@ -1312,7 +1310,7 @@ msgstr "Nieprawidłowa przynależność: ~s"
msgid "Invalid role: ~s"
msgstr "Nieprawidłowa rola: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "Wymagane uprawnienia właściciela"
@@ -1324,7 +1322,7 @@ msgstr "Konfiguracja pokoju ~s"
msgid "Room title"
msgstr "Tytuł pokoju"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "Opis pokoju"
@@ -1366,20 +1364,19 @@ msgstr "wszystkich"
#: mod_muc_room.erl:3471
msgid "Roles for which Presence is Broadcasted"
msgstr ""
msgstr "Role dla których wysyłane są statusy"
#: mod_muc_room.erl:3486
#, fuzzy
msgid "Moderator"
msgstr "tylko moderatorzy"
msgstr "Moderatorzy"
#: mod_muc_room.erl:3496
msgid "Participant"
msgstr ""
msgstr "Uczestnicy"
#: mod_muc_room.erl:3506
msgid "Visitor"
msgstr ""
msgstr "Odwiedzający"
#: mod_muc_room.erl:3513
msgid "Make room members-only"
@@ -1453,35 +1450,35 @@ msgstr "Włącz logowanie"
msgid "You need an x:data capable client to configure room"
msgstr "Potrzebujesz klienta obsługującego x:data aby skonfigurować pokój"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Liczba uczestników"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "prywatny, "
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr "Żądanie głosowe"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr "Zatwierdź lub odrzuć żądanie głosowe"
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "Użytkownik "
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr "Udzielić głosu tej osobie?"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s zaprasza Cię do pokoju ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "hasło to:"
+48 -36
View File
@@ -1,9 +1,10 @@
%% -*- coding: latin-1 -*-
{"Accept","Aceito"}.
{"Access Configuration","Configuração de Acesso"}.
{"Access Control List Configuration","Configuração da Lista de Controle de Acesso"}.
{"Access control lists","Listas de Controle de Acesso"}.
{"Access Control Lists","Listas de Controle de Acesso"}.
{"Access denied by service policy","Aceso denegado por la política do serviço"}.
{"Access denied by service policy","Acesso negado pela política do serviço"}.
{"Access rules","Regras de acesso"}.
{"Access Rules","Regras de Acesso"}.
{"Action on user","Ação no usuário"}.
@@ -23,11 +24,11 @@
{"Allow visitors to change nickname","Permitir mudança de apelido aos visitantes"}.
{"Allow visitors to send private messages to","Permitir visitantes enviar mensagem privada para"}.
{"Allow visitors to send status text in presence updates","Permitir atualizações de status aos visitantes"}.
{"Allow visitors to send voice requests","Permitir aos visitantes o envio de convites"}.
{"Allow visitors to send voice requests","Permitir aos visitantes o envio de requisições de voz"}.
{"All Users","Todos os usuários"}.
{"Announcements","Anúncios"}.
{"anyone","qualquer um"}.
{"A password is required to enter this room","Se necessita senha para entrar em esta sala"}.
{"A password is required to enter this room","Se necessita senha para entrar nesta sala"}.
{"April","Abril"}.
{"August","Agosto"}.
{"Backup Management","Gestão de Backup"}.
@@ -43,7 +44,7 @@
{"Chatroom configuration modified","Configuração da sala de bate-papo modificada"}.
{"Chatroom is created","A sala de chat está criada"}.
{"Chatroom is destroyed","A sala de chat está destruída"}.
{"Chatroom is started","A sala de chat está inciada"}.
{"Chatroom is started","A sala de chat está iniciada"}.
{"Chatroom is stopped","A sala de chat está parada"}.
{"Chatrooms","Salas de Chat"}.
{"Choose a username and password to register with this server","Escolha um nome de usuário e senha para registrar-se neste servidor"}.
@@ -52,7 +53,7 @@
{"Choose whether to approve this entity's subscription.","Aprovar esta assinatura."}.
{"City","Cidade"}.
{"Commands","Comandos"}.
{"Conference room does not exist","La sala de conferencias não existe"}.
{"Conference room does not exist","A sala de conferência não existe"}.
{"Configuration","Configuração"}.
{"Configuration of room ~s","Configuração para ~s"}.
{"Connected Resources:","Recursos conectados:"}.
@@ -60,7 +61,7 @@
{"Country","País"}.
{"CPU Time:","Tempo de CPU"}.
{"Database","Base de dados"}.
{"Database Tables at ~p","Tabelas do bancod de dados em ~p"}.
{"Database Tables at ~p","Tabelas da Base de dados em ~p"}.
{"Database Tables Configuration at ","Configuração de Tabelas de Base de dados em "}.
{"December","Dezembro"}.
{"Default users as participants","Usuários padrões como participantes"}.
@@ -71,9 +72,9 @@
{"Deliver event notifications","Entregar as notificações de evento"}.
{"Deliver payloads with event notifications","Enviar payloads junto com as notificações de eventos"}.
{"Description:","Descrição:"}.
{"Disc only copy","Somente copia em disco"}.
{"Disc only copy","Somente cópia em disco"}.
{"Displayed Groups:","Grupos Exibidos:"}.
{"Don't tell your password to anybody, not even the administrators of the Jabber server.","Não revele o seu computador a ninguém, mesmo para o administrador deste servidor Jabber."}.
{"Don't tell your password to anybody, not even the administrators of the Jabber server.","Não revele a sua senha a ninguém, nem mesmo para o administrador deste servidor Jabber."}.
{"Dump Backup to Text File at ","Exportar backup para texto em "}.
{"Dump to Text File","Exportar para arquivo texto"}.
{"Edit Properties","Editar propriedades"}.
@@ -87,6 +88,7 @@
{"ejabberd Web Admin","ejabberd Web Admin"}.
{"Elements","Elementos"}.
{"Email","Email"}.
{"Empty Rooms","Salas vazias"}.
{"Enable logging","Permitir criação de logs"}.
{"Enable message archiving","Habilitar arquivamento de mensagens"}.
{"Encoding for server ~b","Codificação para o servidor ~b"}.
@@ -99,7 +101,7 @@
{"Enter path to text file","Introduza caminho para o arquivo texto"}.
{"Enter the text you see","Insira o texto que você vê"}.
{"Enter username and encodings you wish to use for connecting to IRC servers. Press 'Next' to get more fields to fill in. Press 'Complete' to save settings.","Insira o nome de usuário e codificações que você deseja usar para conectar-se aos servidores de IRC. Depois, presione 'Next' ('Próximo') para exibir mais campos que devem ser preenchidos. Ao final, pressione 'Complete' ('Completar') para salvar a configuração."}.
{"Enter username, encodings, ports and passwords you wish to use for connecting to IRC servers","Insira o nome de usuário, codificações, portas e senhas que vocêdeseja para usar nos servidores IRC"}.
{"Enter username, encodings, ports and passwords you wish to use for connecting to IRC servers","Insira o nome de usuário, codificações, portas e senhas que você deseja para usar nos servidores IRC"}.
{"Erlang Jabber Server","Servidor Jabber em Erlang"}.
{"Error","Erro"}.
{"Example: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"secret\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.sometestserver.net\", \"utf-8\"}].","Exemplo: [{\"irc.teste.net\", \"koi8-r\"}, 6667, \"senha\"}, {\"dominio.foo.net\", \"iso8859-1\", 7000}, {\"irc.servidordeteste.net\", \"utf-8\"}]."}.
@@ -121,7 +123,7 @@
{"Get User Last Login Time","Obter a Data do Último Login"}.
{"Get User Password","Obter Senha do Usuário"}.
{"Get User Statistics","Obter Estatísticas do Usuário"}.
{"Grant voice to this person?","Dar 'voice' a esta usuário?"}.
{"Grant voice to this person?","Dar voz a esta pessoa?"}.
{"Group ","Grupo "}.
{"Groups","Grupos"}.
{"has been banned","foi banido"}.
@@ -129,7 +131,7 @@
{"has been kicked because of a system shutdown","foi desconectado porque o sistema foi desligado"}.
{"has been kicked because the room has been changed to members-only","foi desconectado porque a política da sala mudou, só membros são permitidos"}.
{"has been kicked","foi removido"}.
{" has set the subject to: "," a posto o assunto: "}.
{" has set the subject to: "," mudou o assunto para: "}.
{"Host","Máquina"}.
{"If you don't see the CAPTCHA image here, visit the web page.","Se você não conseguir ver o CAPTCHA aqui, visite a web page."}.
{"If you want to specify different ports, passwords, encodings for IRC servers, fill this list with values in format '{\"irc server\", \"encoding\", port, \"password\"}'. By default this service use \"~s\" encoding, port ~p, empty password.","Se você deseja especificar portas diferentes, senhas ou codifações para servidores de IRC, complete esta lista com os valores no formato: '{\"servidor IRC\", \"codificação\", porta, \"senha\"}'. Por padrão, este serviço usa a codificação \"~s\", porta \"~p\", e senha em branco (vazia)"}.
@@ -142,6 +144,7 @@
{"Import Users from Dir at ","Importar usuários a partir do diretório em "}.
{"Import Users From jabberd14 Spool Files","Importar usuários de arquivos jabberd14 (spool files)"}.
{"Improper message type","Tipo de mensagem incorreto"}.
{"Incoming s2s Connections:","Conexões que entram de s2s"}.
{"Incorrect password","Senha incorreta"}.
{"Invalid affiliation: ~s","Afiliação não válida: ~s"}.
{"Invalid role: ~s","Cargo (role) é não válido: ~s"}.
@@ -154,8 +157,9 @@
{"IRC username","Usuário IRC"}.
{"IRC Username","Usuário IRC"}.
{"is now known as","é agora conhecido como"}.
{"It is not allowed to send error messages to the room. The participant (~s) has sent an error message (~s) and got kicked from the room","Não é permitido o envio de mensagens de erro a esta sala. O membro (~s) enviou uma mensagem de erro (~s) e foi desconectado (\"kicked\")."}.
{"It is not allowed to send private messages","Não é permitido enviar mensagens privadas"}.
{"It is not allowed to send private messages of type \"groupchat\"","No está permitido enviar mensagens privados do tipo \"groupchat\""}.
{"It is not allowed to send private messages of type \"groupchat\"","Não é permitido enviar mensagens privadas do tipo \"groupchat\""}.
{"It is not allowed to send private messages to the conference","Impedir o envio de mensagens privadas para a sala"}.
{"Jabber Account Registration","Registros de Contas Jabber"}.
{"Jabber ID","ID Jabber"}.
@@ -181,7 +185,7 @@
{"Make room CAPTCHA protected","Tornar protegida a senha da sala"}.
{"Make room members-only","Tornar sala apenas para membros"}.
{"Make room moderated","Tornar a sala moderada"}.
{"Make room password protected","Tornar protegida a senha da sala"}.
{"Make room password protected","Tornar sala protegida à senha"}.
{"Make room persistent","Tornar sala persistente"}.
{"Make room public searchable","Tornar sala pública possível de ser encontrada"}.
{"March","Março"}.
@@ -189,13 +193,14 @@
{"Max # of items to persist","Máximo # de elementos que persistem"}.
{"Max payload size in bytes","Máximo tamanho do payload em bytes"}.
{"May","Maio"}.
{"Membership is required to enter this room","Necessitas ser membro de esta sala para poder entrar"}.
{"Membership is required to enter this room","Necessitas ser membro desta sala para poder entrar"}.
{"Members:","Membros:"}.
{"Memorize your password, or write it in a paper placed in a safe place. In Jabber there isn't an automated way to recover your password if you forget it.","Memorize a sua senha, ou escreva-a em um papel e guarde-o em um lugar seguro. Jabber não é uma maneira automatizada para recuperar a sua senha, se você a esquecer eventualmente."}.
{"Memory","Memória"}.
{"Message body","Corpo da mensagem"}.
{"Middle Name","Nome do meio"}.
{"Minimum interval between voice requests (in seconds)","O intervalo mínimo entre requisições de voz (em segundos)"}.
{"Moderator","Moderador"}.
{"Moderator privileges required","Se necessita privilégios de moderador"}.
{"moderators only","apenas moderadores"}.
{"Modified modules","Módulos atualizados"}.
@@ -211,7 +216,7 @@
{"New Password:","Nova Senha:"}.
{"Nickname","Apelido"}.
{"Nickname Registration at ","Registro do apelido em "}.
{"Nickname ~s does not exist in the room","O nick ~s não existe em la sala"}.
{"Nickname ~s does not exist in the room","O nick ~s não existe na sala"}.
{"nobody","ninguém"}.
{"No body provided for announce message","Nenhum corpo de texto fornecido para anunciar mensagem"}.
{"No Data","Nenhum dado"}.
@@ -238,20 +243,22 @@
{"Online","Conectado"}.
{"Online Users","Usuários conectados"}.
{"Online Users:","Usuários online"}.
{"Only deliver notifications to available users","Solo enviar notificações aos usuários disponíveis"}.
{"Only deliver notifications to available users","Somente enviar notificações aos usuários disponíveis"}.
{"Only members may query archives of this room","Somente os membros podem procurar nos arquivos desta sala"}.
{"Only moderators and participants are allowed to change the subject in this room","Somente os moderadores e os participamentes podem alterar o assunto desta sala"}.
{"Only moderators are allowed to change the subject in this room","Somente os moderadores podem alterar o assunto desta sala"}.
{"Only moderators can approve voice requests","Somente moderadores podem aprovar requisições de voz"}.
{"Only occupants are allowed to send messages to the conference","Solo os ocupantes podem enviar mensagens a la sala"}.
{"Only occupants are allowed to send queries to the conference","Solo os ocupantes podem enviar consultas a la sala"}.
{"Only occupants are allowed to send messages to the conference","Somente os ocupantes podem enviar mensagens à sala"}.
{"Only occupants are allowed to send queries to the conference","Somente os ocupantes podem enviar consultas à sala"}.
{"Only service administrators are allowed to send service messages","Apenas administradores possuem permissão para enviar mensagens de serviço"}.
{"Options","Opções"}.
{"Organization Name","Nome da organização"}.
{"Organization Unit","Departamento/Unidade"}.
{"Outgoing s2s Connections","Conexões que partam de s2s"}.
{"Outgoing s2s Connections:","Conexões que partem de s2s"}.
{"Owner privileges required","Se requere privilégios de proprietário da sala"}.
{"Owner privileges required","Se requer privilégios de proprietário da sala"}.
{"Packet","Pacote"}.
{"Participant","Participante"}.
{"Password ~b","Senha ~b"}.
{"Password:","Senha:"}.
{"Password","Senha"}.
@@ -265,6 +272,8 @@
{"Persist items to storage","Persistir elementos ao armazenar"}.
{"Ping","Ping"}.
{"Please note that these options will only backup the builtin Mnesia database. If you are using the ODBC module, you also need to backup your SQL database separately.","Observe que tais opções farão backup apenas da base de dados Mnesia. Caso você esteja utilizando o modulo ODBC, você precisará fazer backup de sua base de dados SQL separadamente."}.
{"Please specify file name.","Por favor informe o nome do arquivo."}.
{"Please specify file size.","Por favor informe o tamanho do arquivo."}.
{"Please, wait for a while before sending new voice request","Por favor, espere antes de enviar uma nova requisição de voz"}.
{"Pong","Pong"}.
{"Port ~b","Porta ~b"}.
@@ -276,18 +285,18 @@
{"PubSub subscriber request","PubSub requisição de assinante"}.
{"Purge all items when the relevant publisher goes offline","Descartar todos os itens quando o publicante principal estiver offline"}.
{"Queries to the conference members are not allowed in this room","Nesta sala não se permite consultas aos membros da sala"}.
{"RAM and disc copy","Copias na RAM e disco rígido"}.
{"RAM copy","Copia em RAM"}.
{"RAM and disc copy","Cópias na RAM e disco rígido"}.
{"RAM copy","Cópia em RAM"}.
{"Raw","Intocado"}.
{"Really delete message of the day?","Deletar realmente a mensagem do dia?"}.
{"Recipient is not in the conference room","O receptor não está em la sala de conferencia"}.
{"Recipient is not in the conference room","O receptor não está na sala de conferência"}.
{"Register a Jabber account","Registrar uma conta Jabber"}.
{"Registered nicknames","Usuários registrados"}.
{"Registered Users:","Usuários registrados"}.
{"Registered Users","Usuários Registrados"}.
{"Register","Registrar"}.
{"Registration in mod_irc for ","Registro em mod_irc para "}.
{"Remote copy","Copia remota"}.
{"Remote copy","Cópia remota"}.
{"Remove All Offline Messages","Remover Todas as Mensagens Offline"}.
{"Remove","Remover"}.
{"Remove User","Remover usuário"}.
@@ -300,8 +309,9 @@
{"Restore binary backup immediately:","Restaurar backup binário imediatamente"}.
{"Restore plain text backup immediately:","Restaurar backup formato texto imediatamente:"}.
{"Restore","Restaurar"}.
{"Roles for which Presence is Broadcasted","Para quem a presença será notificada"}.
{"Room Configuration","Configuração de salas"}.
{"Room creation is denied by service policy","Se te a denegado criar la sala por política do serviço"}.
{"Room creation is denied by service policy","Sala não pode ser criada devido à política do serviço"}.
{"Room description","Descrição da Sala"}.
{"Room Occupants","Número de participantes"}.
{"Room title","Título da sala"}.
@@ -310,7 +320,7 @@
{"Roster of ","Lista de contatos de "}.
{"Roster size","Tamanho da Lista"}.
{"RPC Call Error","Erro de chamada RPC"}.
{"Running Nodes","Nos em execução"}.
{"Running Nodes","Nós em execução"}.
{"~s access rule configuration","Configuração da Regra de Acesso ~s"}.
{"Saturday","Sábado"}.
{"Script check","Verificação de Script"}.
@@ -323,6 +333,7 @@
{"September","Setembro"}.
{"Server ~b","Servidor ~b"}.
{"Server:","Servidor:"}.
{"Server","Servidor"}.
{"Set message of the day and send to online users","Definir mensagem do dia e enviar a todos usuários online"}.
{"Set message of the day on all hosts and send to online users","Definir mensagem do dia em todos os hosts e enviar para os usuários online"}.
{"Shared Roster Groups","Grupos Shared Roster"}.
@@ -361,9 +372,9 @@
{"the password is","a senha é"}.
{"The password is too weak","Senha considerada fraca'"}.
{"The password of your Jabber account was successfully changed.","A senha da sua conta Jabber foi mudada com sucesso."}.
{"There was an error changing the password: ","Houveram erros ao mudar a senha: "}.
{"There was an error creating the account: ","Houveram erras ao criar esta conta: "}.
{"There was an error deleting the account: ","Erro ao deletar esta conta: "}.
{"There was an error changing the password: ","Houve um erro ao mudar a senha: "}.
{"There was an error creating the account: ","Houve um erro ao criar esta conta: "}.
{"There was an error deleting the account: ","Houve um erro ao deletar esta conta: "}.
{"This IP address is blacklisted in ~s","Este endereço IP está bloqueado em ~s"}.
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","Não é 'case insensitive': macbeth é o mesmo que MacBeth e ainda Macbeth. "}.
{"This page allows to create a Jabber account in this Jabber server. Your JID (Jabber IDentifier) will be of the form: username@server. Please read carefully the instructions to fill correctly the fields.","Esta pagina aceita criações de novas contas Jabber neste servidor. A sua JID (Identificador Jabber) será da seguinte forma: 'usuário@servidor'. Por favor, leia cuidadosamente as instruções para preencher corretamente os campos."}.
@@ -372,7 +383,7 @@
{"Time delay","Intervalo (Tempo)"}.
{"Time","Tempo"}.
{"Too many CAPTCHA requests","Número excessivo de requisições para o CAPTCHA"}.
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Número excessivo (~p) de tentativas falhas de autenticação (~s). O endereço serádesbloqueado as ~s UTC"}.
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Número excessivo (~p) de tentativas falhas de autenticação (~s). O endereço será desbloqueado às ~s UTC"}.
{"Too many unacked stanzas","número excessivo de instâncias sem confirmação"}.
{"To","Para"}.
{"To ~s","Para ~s"}.
@@ -399,30 +410,31 @@
{"User Management","Gerenciamento de Usuários"}.
{"Username:","Usuário:"}.
{"Users are not allowed to register accounts so quickly","Usuários não estão autorizados a registrar contas imediatamente"}.
{"Users Last Activity","Ultimas atividades dos usuários"}.
{"Users Last Activity","Últimas atividades dos usuários"}.
{"User ~s","Usuário ~s"}.
{"Users","Usuários"}.
{"User","Usuário"}.
{"Validate","Validar"}.
{"vCard User Search","Busca de Usuário vCard"}.
{"Virtual Hosts","Hosts virtuais"}.
{"Visitors are not allowed to change their nicknames in this room","Nesta sala, os visitantes não pode mudar seus apelidos"}.
{"Visitors are not allowed to change their nicknames in this room","Nesta sala, os visitantes não podem mudar seus apelidos"}.
{"Visitors are not allowed to send messages to all occupants","Os visitantes não podem enviar mensagens a todos os ocupantes"}.
{"Visitor","Visitante"}.
{"Voice request","Requisição de voz"}.
{"Voice requests are disabled in this conference","Requisições de voz estào desabilitadas nesta conferência"}.
{"Voice requests are disabled in this conference","Requisições de voz estão desabilitadas nesta conferência"}.
{"Wednesday","Quarta"}.
{"When to send the last published item","Quando enviar o último tópico publicado"}.
{"Whether to allow subscriptions","Permitir subscrições"}.
{"You can later change your password using a Jabber client.","Mais tarde você pode alterar a sua senha usando um cliente Jabber."}.
{"You have been banned from this room","As sido bloqueado em esta sala"}.
{"You have been banned from this room","Você foi banido desta sala"}.
{"You must fill in field \"Nickname\" in the form","Você deve completar o campo \"Apelido\" no formulário"}.
{"You need a client that supports x:data and CAPTCHA to register","Você precisa de um cliente com suporte de x:data para poder registrar o nick"}.
{"You need a client that supports x:data to register the nickname","Você precisa de um cliente com suporte a x:data para registrar o seu apelido"}.
{"You need an x:data capable client to configure mod_irc settings","Necessitas um cliente com suporte de x:data para configurar las opções de mod_irc"}.
{"You need an x:data capable client to configure room","Necessitas um cliente com suporte de x:data para configurar la sala"}.
{"You need an x:data capable client to configure mod_irc settings","Necessitas um cliente com suporte de x:data para configurar as opções de mod_irc"}.
{"You need an x:data capable client to configure room","Necessitas um cliente com suporte de x:data para configurar a sala"}.
{"You need an x:data capable client to search","Necessitas um cliente com suporte de x:data para poder buscar"}.
{"Your active privacy list has denied the routing of this stanza.","Sua lista de privacidade ativa negou o roteamento deste."}.
{"Your contact offline message queue is full. The message has been discarded.","Sua fila de mensagens offline esta cheia. Sua mensagem foi descartada"}.
{"Your Jabber account was successfully created.","Sua conta jabber foi criada corretamente."}.
{"Your Jabber account was successfully created.","Sua conta jabber foi criada com sucesso."}.
{"Your Jabber account was successfully deleted.","Sua conta Jabber foi deletada com sucesso."}.
{"Your messages to ~s are being blocked. To unblock them, visit ~s","Suas mensagens para ~s estão bloqueadas. Para desbloqueá-las, visite: ~s"}.
+217 -218
View File
File diff suppressed because it is too large Load Diff
+27 -27
View File
@@ -24,11 +24,11 @@ msgstr ""
msgid "has been kicked"
msgstr ""
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr ""
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr ""
@@ -887,11 +887,11 @@ msgid ""
"will be unblocked at ~s UTC"
msgstr ""
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
@@ -1014,9 +1014,9 @@ msgstr ""
msgid "Server ~b"
msgstr ""
#: mod_mam.erl:270
#: mod_mam.erl:541
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgid "Only members may query archives of this room"
msgstr "Só os moderadores podem mudar o tópico desta sala"
#: mod_muc.erl:585
@@ -1038,40 +1038,40 @@ msgstr "A sala não existe"
msgid "Chatrooms"
msgstr ""
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
#: mod_muc.erl:931
#: mod_muc.erl:933
#, fuzzy
msgid "You need a client that supports x:data to register the nickname"
msgstr ""
"É necessário um cliente com suporte de x:data para poder registar a alcunha"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Registo da alcunha em "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Introduza a alcunha que quer registar"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Alcunha"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#, fuzzy
msgid "That nickname is registered by another person"
msgstr "A alcunha já está registada por outra pessoa"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
#, fuzzy
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Deve preencher o campo \"alcunha\" no formulário"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "Módulo MUC de ejabberd"
@@ -1243,8 +1243,8 @@ msgstr ""
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
#: mod_muc_room.erl:241
@@ -1285,7 +1285,7 @@ msgstr "O destinatário não está na sala"
msgid "It is not allowed to send private messages"
msgstr "Impedir o envio de mensagens privadas para a sala"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Só os ocupantes podem enviar mensagens para a sala"
@@ -1373,7 +1373,7 @@ msgstr "Afiliação inválida: ~s"
msgid "Invalid role: ~s"
msgstr "Papel inválido: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "São necessários privilégios de dono"
@@ -1386,7 +1386,7 @@ msgstr "Configuração para "
msgid "Room title"
msgstr "Título da sala"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
#, fuzzy
msgid "Room description"
msgstr "Subscrição"
@@ -1531,36 +1531,36 @@ msgstr "Guardar históricos?"
msgid "You need an x:data capable client to configure room"
msgstr "É necessário um cliente com suporte de x:data para configurar a sala"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr ""
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "privado"
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr ""
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr ""
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
#, fuzzy
msgid "User JID"
msgstr "Utilizador"
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr ""
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr ""
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
#, fuzzy
msgid "the password is"
msgstr "Mudar palavra-chave"
+27 -27
View File
@@ -34,12 +34,12 @@ msgstr "Заменено новым соединением"
msgid "has been kicked"
msgstr "выгнали из комнаты"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr ""
"Маршрутизация этой строфы запрещена вашим активным списком приватности."
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr "Слишком много неподтверждённых пакетов"
@@ -854,11 +854,11 @@ msgstr ""
"Слишком много (~p) неудачных попыток аутентификации с этого IP-адреса (~s). "
"Адрес будет разблокирован в ~s UTC"
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
@@ -976,9 +976,9 @@ msgstr "Кодировка сервера ~b"
msgid "Server ~b"
msgstr "Сервер ~b"
#: mod_mam.erl:270
#: mod_mam.erl:541
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgid "Only members may query archives of this room"
msgstr "Только модераторы могут изменять тему в этой комнате"
#: mod_muc.erl:585
@@ -997,36 +997,36 @@ msgstr "Конференция не существует"
msgid "Chatrooms"
msgstr "Комнаты"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr "Чтобы зарегистрировать псевдоним, требуется x:data-совместимый клиент"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Регистрация псевдонима на "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Введите псевдоним, который Вы хотели бы зарегистрировать"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Псевдоним"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "Этот псевдоним зарегистрирован кем-то другим"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Вы должны заполнить поле \"Псевдоним\" в форме"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "ejabberd MUC модуль"
@@ -1193,8 +1193,8 @@ msgstr "Превышен лимит скорости посылки информ
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
#: mod_muc_room.erl:241
@@ -1234,7 +1234,7 @@ msgstr "Адресата нет в конференции"
msgid "It is not allowed to send private messages"
msgstr "Запрещено посылать приватные сообщения"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Только присутствующим разрешается посылать сообщения в конференцию"
@@ -1316,7 +1316,7 @@ msgstr "Недопустимый ранг: ~s"
msgid "Invalid role: ~s"
msgstr "Недопустимая роль: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "Требуются права владельца"
@@ -1328,7 +1328,7 @@ msgstr "Конфигурация комнаты ~s"
msgid "Room title"
msgstr "Название комнаты"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "Описание комнаты"
@@ -1458,35 +1458,35 @@ msgstr "Включить журналирование"
msgid "You need an x:data capable client to configure room"
msgstr "Чтобы сконфигурировать комнату, требуется x:data-совместимый клиент"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Число присутствующих"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "приватная, "
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr "Запрос на право голоса"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr "Подтвердите или отклоните право голоса."
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "JID пользователя"
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr "Предоставить голос?"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s приглашает вас в комнату ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "пароль:"
+27 -27
View File
@@ -29,11 +29,11 @@ msgstr "Nahradené novým spojením"
msgid "has been kicked"
msgstr "bol(a) vyhodený(á) z miestnosti"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr "Aktívny list súkromia zbránil v smerovaní tejto stanzy."
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr ""
@@ -847,11 +847,11 @@ msgid ""
"will be unblocked at ~s UTC"
msgstr ""
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
@@ -969,9 +969,9 @@ msgstr "Kódovanie pre server ~b"
msgid "Server ~b"
msgstr "Server ~b"
#: mod_mam.erl:270
#: mod_mam.erl:541
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgid "Only members may query archives of this room"
msgstr "Len moderátori majú povolené meniť tému miestnosti"
#: mod_muc.erl:585
@@ -990,36 +990,36 @@ msgstr "Diskusná miestnosť neexistuje"
msgid "Chatrooms"
msgstr "Diskusné miestnosti"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr "Na registráciu prezývky potrebujete klienta podporujúceho z x:data"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Registrácia prezývky na "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Zadajte prezývku, ktorú chcete registrovať"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Prezývka"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "Prezývka je už zaregistrovaná inou osobou"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Musíte vyplniť políčko \"Prezývka\" vo formulári"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "ejabberd MUC modul"
@@ -1189,8 +1189,8 @@ msgstr "Bol prekročený prenosový limit"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
#: mod_muc_room.erl:241
@@ -1229,7 +1229,7 @@ msgstr "Príjemca sa nenachádza v konferenčnej miestnosti"
msgid "It is not allowed to send private messages"
msgstr "Nieje povolené posielať súkromné správy"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Len členovia majú povolené zasielať správy do konferencie"
@@ -1313,7 +1313,7 @@ msgstr "Neplatné priradenie: ~s"
msgid "Invalid role: ~s"
msgstr "Neplatná rola: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "Sú vyžadované práva vlastníka"
@@ -1325,7 +1325,7 @@ msgstr "Konfigurácia miestnosti ~s"
msgid "Room title"
msgstr "Názov miestnosti"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "Popis miestnosti"
@@ -1454,35 +1454,35 @@ msgstr "Zapnúť zaznamenávanie histórie"
msgid "You need an x:data capable client to configure room"
msgstr "Na konfiguráciu miestnosti potrebujete klienta podporujúceho x:data"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Počet zúčastnených"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "súkromná, "
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr "Žiadosť o Voice"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr "Povolte alebo zamietnite žiadosť o Voice."
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "Používateľ "
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr "Prideltiť Voice tejto osobe?"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s Vás pozýva do miestnosti ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "heslo je"
+27 -27
View File
@@ -28,11 +28,11 @@ msgstr "Ersatt av ny anslutning"
msgid "has been kicked"
msgstr "har blivit kickad"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr ""
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr ""
@@ -844,11 +844,11 @@ msgid ""
"will be unblocked at ~s UTC"
msgstr ""
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
@@ -965,9 +965,9 @@ msgstr "Encoding för server ~b"
msgid "Server ~b"
msgstr "Server ~b"
#: mod_mam.erl:270
#: mod_mam.erl:541
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgid "Only members may query archives of this room"
msgstr "Endast moderatorer får ändra ämnet i det här rummet"
#: mod_muc.erl:585
@@ -986,37 +986,37 @@ msgstr "Rummet finns inte"
msgid "Chatrooms"
msgstr "Chattrum"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
#: mod_muc.erl:931
#: mod_muc.erl:933
#, fuzzy
msgid "You need a client that supports x:data to register the nickname"
msgstr "Du behöver en klient som stödjer x:data för att registrera smeknamn"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Registrera smeknamn på "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Skriv in smeknamnet du vill registrera"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Smeknamn"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "Smeknamnet är reserverat"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Du måste fylla i fält \"smeknamn\" i formen"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "ejabberd MUC modul"
@@ -1190,8 +1190,8 @@ msgstr "Trafikgränsen har överstigits"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
#: mod_muc_room.erl:241
@@ -1233,7 +1233,7 @@ msgstr "Mottagaren finns inte i rummet"
msgid "It is not allowed to send private messages"
msgstr "Det ar inte tillåtet att skicka privata meddelanden"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Utomstående får inte skicka medelanden till den här konferensen"
@@ -1321,7 +1321,7 @@ msgstr "Ogiltlig rang: ~s"
msgid "Invalid role: ~s"
msgstr "Ogiltlig roll: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "Ägarprivilegier krävs"
@@ -1333,7 +1333,7 @@ msgstr "Konfiguration för ~s"
msgid "Room title"
msgstr "Rumstitel"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
#, fuzzy
msgid "Room description"
msgstr "Beskrivning:"
@@ -1466,36 +1466,36 @@ msgstr "Möjliggör login"
msgid "You need an x:data capable client to configure room"
msgstr "Du behöver en klient som stödjer x:data för att konfiguera detta rum"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Antal besökare"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "privat, "
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr ""
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr ""
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
#, fuzzy
msgid "User JID"
msgstr "Användare "
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr ""
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s bjöd in dig till rummet ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "Lösenordet är"
+27 -27
View File
@@ -24,11 +24,11 @@ msgstr "แทนที่ด้วยการเชื่อมต่อให
msgid "has been kicked"
msgstr "ถูกไล่ออก"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr ""
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr ""
@@ -845,11 +845,11 @@ msgid ""
"will be unblocked at ~s UTC"
msgstr ""
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
@@ -969,9 +969,9 @@ msgstr ""
msgid "Server ~b"
msgstr ""
#: mod_mam.erl:270
#: mod_mam.erl:541
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgid "Only members may query archives of this room"
msgstr "ผู้ดูแลการสนทนาเท่านั้นที่ได้รับอนุญาตให้เปลี่ยนหัวข้อในห้องนี้"
#: mod_muc.erl:585
@@ -990,38 +990,38 @@ msgstr "ไม่มีห้องประชุม"
msgid "Chatrooms"
msgstr "ห้องสนทนา"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
#: mod_muc.erl:931
#: mod_muc.erl:933
#, fuzzy
msgid "You need a client that supports x:data to register the nickname"
msgstr "คุณต้องใช้ไคลเอ็นต์ที่รองรับ x:data เพื่อลงทะเบียนชื่อเล่น"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "การลงทะเบียนชื่อเล่นที่ "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "ป้อนชื่อเล่นที่คุณต้องการลงทะเบียน"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "ชื่อเล่น"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#, fuzzy
msgid "That nickname is registered by another person"
msgstr "ชื่อเล่นถูกลงทะเบียนใช้งานโดยบุคคลอื่น"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "คุณต้องกรอกฟิลด์ \"Nickname\" ในแบบฟอร์ม"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "ejabberd MUC module"
@@ -1196,8 +1196,8 @@ msgstr "อัตราของปริมาณการเข้าใช้
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
#: mod_muc_room.erl:241
@@ -1238,7 +1238,7 @@ msgstr "ผู้รับไม่ได้อยู่ในห้องปร
msgid "It is not allowed to send private messages"
msgstr "ไม่อนุญาตให้ส่งข้อความส่วนตัวไปยังห้องประชุม"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "ผู้ครอบครองห้องเท่านั้นที่ได้รับอนุญาตให้ส่งข้อความไปยังห้องประชุม"
@@ -1326,7 +1326,7 @@ msgstr "การเข้าร่วมที่ไม่ถูกต้อง
msgid "Invalid role: ~s"
msgstr "บทบาทไม่ถูกต้อง: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "ต้องมีสิทธิพิเศษของเจ้าของ"
@@ -1339,7 +1339,7 @@ msgstr "การกำหนดค่าสำหรับ "
msgid "Room title"
msgstr "ชื่อห้อง"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
#, fuzzy
msgid "Room description"
msgstr "รายละเอียด:"
@@ -1476,36 +1476,36 @@ msgstr "เปิดใช้งานการบันทึก"
msgid "You need an x:data capable client to configure room"
msgstr "คุณต้องใช้ไคลเอ็นต์ที่รองรับ x:data เพื่อกำหนดค่าห้องสนทนา "
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "จำนวนผู้ครอบครองห้อง"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "ส่วนตัว, "
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr ""
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr ""
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
#, fuzzy
msgid "User JID"
msgstr "ผู้ใช้"
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr ""
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s เชิญคุณเข้าร่วมสนทนาในห้อง ~s"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "รหัสผ่านคือ"
+27 -27
View File
@@ -30,11 +30,11 @@ msgstr "Eski bağlantı yenisi ile değiştirildi"
msgid "has been kicked"
msgstr "odadan atıldı"
#: ejabberd_c2s.erl:2112
#: ejabberd_c2s.erl:2114
msgid "Your active privacy list has denied the routing of this stanza."
msgstr "Etkin mahremiyet listeniz bu bölümün yönlendirilmesini engelledi."
#: ejabberd_c2s.erl:2427
#: ejabberd_c2s.erl:2429
msgid "Too many unacked stanzas"
msgstr ""
@@ -853,11 +853,11 @@ msgid ""
"will be unblocked at ~s UTC"
msgstr ""
#: mod_http_upload.erl:593
#: mod_http_upload.erl:586
msgid "Please specify file size."
msgstr ""
#: mod_http_upload.erl:597
#: mod_http_upload.erl:590
msgid "Please specify file name."
msgstr ""
@@ -977,9 +977,9 @@ msgstr "Sunucu için kodlama ~b"
msgid "Server ~b"
msgstr "Sunucu ~b"
#: mod_mam.erl:270
#: mod_mam.erl:541
#, fuzzy
msgid "Only members are allowed to query archives of this room"
msgid "Only members may query archives of this room"
msgstr "Sadece moderatörlerin bu odanın konusunu değiştirmesine izin veriliyor"
#: mod_muc.erl:585
@@ -998,38 +998,38 @@ msgstr "Konferans odası bulunamadı"
msgid "Chatrooms"
msgstr "Sohbet Odaları"
#: mod_muc.erl:779
#: mod_muc.erl:781
msgid "Empty Rooms"
msgstr ""
#: mod_muc.erl:931
#: mod_muc.erl:933
msgid "You need a client that supports x:data to register the nickname"
msgstr ""
"Takma isminizi kaydettirmek için x:data destekleyen bir istemciye "
"gereksinimiz var"
#: mod_muc.erl:941
#: mod_muc.erl:943
msgid "Nickname Registration at "
msgstr "Takma İsim Kaydı : "
#: mod_muc.erl:947
#: mod_muc.erl:949
msgid "Enter nickname you want to register"
msgstr "Kaydettirmek istediğiniz takma ismi giriniz"
#: mod_muc.erl:948 mod_muc_room.erl:4351 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_muc.erl:950 mod_muc_room.erl:4353 mod_roster.erl:1435 mod_vcard.erl:490
#: mod_vcard.erl:621
msgid "Nickname"
msgstr "Takma isim"
#: mod_muc.erl:1060 mod_muc_room.erl:1104 mod_muc_room.erl:1843
#: mod_muc.erl:1062 mod_muc_room.erl:1104 mod_muc_room.erl:1843
msgid "That nickname is registered by another person"
msgstr "O takma isim başka biri tarafından kaydettirilmiş"
#: mod_muc.erl:1088
#: mod_muc.erl:1090
msgid "You must fill in field \"Nickname\" in the form"
msgstr "Formda \"Takma isim\" alanını doldurmanız gerekiyor"
#: mod_muc.erl:1111
#: mod_muc.erl:1113
msgid "ejabberd MUC module"
msgstr "ejabberd MUC modülü"
@@ -1199,8 +1199,8 @@ msgstr "Trafik oran sınırı aşıldı"
#: mod_muc_room.erl:230 mod_muc_room.erl:518 mod_muc_room.erl:1059
msgid ""
"It is not allowed to send error messages to the room. This participant (~s) "
"sent an error message (~s) and gets kicked from the room"
"It is not allowed to send error messages to the room. The participant (~s) "
"has sent an error message (~s) and got kicked from the room"
msgstr ""
#: mod_muc_room.erl:241
@@ -1239,7 +1239,7 @@ msgstr "Alıcı konferans odasında değil"
msgid "It is not allowed to send private messages"
msgstr "Özel mesaj gönderilmesine izin verilmiyor"
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4592
#: mod_muc_room.erl:588 mod_muc_room.erl:983 mod_muc_room.erl:4594
msgid "Only occupants are allowed to send messages to the conference"
msgstr "Sadece oda sakinlerinin konferansa mesaj göndermesine izin veriliyor"
@@ -1325,7 +1325,7 @@ msgstr "Geçersiz ilişki: ~s"
msgid "Invalid role: ~s"
msgstr "Geçersiz rol: ~s"
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4234
#: mod_muc_room.erl:3155 mod_muc_room.erl:3187 mod_muc_room.erl:4236
msgid "Owner privileges required"
msgstr "Sahip yetkileri gerekli"
@@ -1337,7 +1337,7 @@ msgstr "~s odasının ayarları"
msgid "Room title"
msgstr "Oda başlığı"
#: mod_muc_room.erl:3361 mod_muc_room.erl:4188
#: mod_muc_room.erl:3361 mod_muc_room.erl:4190
msgid "Room description"
msgstr "Oda tanımı"
@@ -1469,35 +1469,35 @@ msgid "You need an x:data capable client to configure room"
msgstr ""
"Odayı ayarlamak için x:data becerisine sahip bir istemciye gereksinimiz var"
#: mod_muc_room.erl:4190
#: mod_muc_room.erl:4192
msgid "Number of occupants"
msgstr "Oda sakini sayısı"
#: mod_muc_room.erl:4260
#: mod_muc_room.erl:4262
msgid "private, "
msgstr "özel"
#: mod_muc_room.erl:4324
#: mod_muc_room.erl:4326
msgid "Voice request"
msgstr "Ses isteği"
#: mod_muc_room.erl:4329
#: mod_muc_room.erl:4331
msgid "Either approve or decline the voice request."
msgstr "Ses isteğini kabul edin ya da reddedin"
#: mod_muc_room.erl:4349
#: mod_muc_room.erl:4351
msgid "User JID"
msgstr "Kullanıcı JID"
#: mod_muc_room.erl:4353
#: mod_muc_room.erl:4355
msgid "Grant voice to this person?"
msgstr "Bu kişiye ses verelim mi?"
#: mod_muc_room.erl:4496
#: mod_muc_room.erl:4498
msgid "~s invites you to the room ~s"
msgstr "~s sizi ~s odasına davet ediyor"
#: mod_muc_room.erl:4507
#: mod_muc_room.erl:4509
msgid "the password is"
msgstr "parola :"
+45 -3
View File
@@ -1,4 +1,5 @@
%% -*- coding: latin-1 -*-
{"Accept","Прийняти"}.
{"Access Configuration","Конфігурація доступу"}.
{"Access Control List Configuration","Конфігурація списків керування доступом"}.
{"Access control lists","Списки керування доступом"}.
@@ -21,7 +22,9 @@
{"Allow users to send invites","Дозволити користувачам надсилати запрошення"}.
{"Allow users to send private messages","Дозволити приватні повідомлення"}.
{"Allow visitors to change nickname","Дозволити відвідувачам змінювати псевдонім"}.
{"Allow visitors to send private messages to","Дозволити відвідувачам відсилати приватні повідомлення"}.
{"Allow visitors to send status text in presence updates","Дозволити відвідувачам відсилати текст статусу в оновленнях присутності"}.
{"Allow visitors to send voice requests","Дозволити відвідувачам надсилати голосові запрошення"}.
{"All Users","Всі користувачі"}.
{"Announcements","Сповіщення"}.
{"anyone","всім учасникам"}.
@@ -29,6 +32,7 @@
{"April","квітня"}.
{"August","серпня"}.
{"Backup Management","Керування резервним копіюванням"}.
{"Backup of ~p","Резервне копіювання ~p"}.
{"Backup to File at ","Резервне копіювання в файл на "}.
{"Backup","Резервне копіювання"}.
{"Bad format","Неправильний формат"}.
@@ -56,6 +60,7 @@
{"Connections parameters","Параметри з'єднання"}.
{"Country","Країна"}.
{"CPU Time:","Процесорний час:"}.
{"Database Tables at ~p","Таблиці бази даних на ~p"}.
{"Database Tables Configuration at ","Конфігурація таблиць бази даних на "}.
{"Database","База даних"}.
{"December","грудня"}.
@@ -73,15 +78,19 @@
{"Dump Backup to Text File at ","Копіювання в текстовий файл на "}.
{"Dump to Text File","Копіювання в текстовий файл"}.
{"Edit Properties","Змінити параметри"}.
{"Either approve or decline the voice request.","Підтвердить або відхилите голосовий запит"}.
{"ejabberd IRC module","ejabberd IRC модуль"}.
{"ejabberd MUC module","ejabberd MUC модуль"}.
{"ejabberd Multicast service","Мультікаст ejabberd сервіс"}.
{"ejabberd Publish-Subscribe module","Модуль ejabberd Публікації-Підписки"}.
{"ejabberd SOCKS5 Bytestreams module","ejabberd SOCKS5 Bytestreams модуль"}.
{"ejabberd vCard module","ejabberd vCard модуль"}.
{"ejabberd Web Admin","Веб-інтерфейс Адміністрування ejabberd"}.
{"Elements","Елементи"}.
{"Email","Електронна пошта"}.
{"Empty Rooms","Порожні кімнати"}.
{"Enable logging","Включити журнал роботи"}.
{"Enable message archiving","Ввімкнути архівацію повідомлень"}.
{"Encoding for server ~b","Кодування для сервера ~b"}.
{"End User Session","Закінчити Сеанс Користувача"}.
{"Enter list of {Module, [Options]}","Введіть перелік такого виду {Module, [Options]}"}.
@@ -97,8 +106,10 @@
{"Error","Помилка"}.
{"Example: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"secret\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.sometestserver.net\", \"utf-8\"}].","Приклад: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"secret\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.sometestserver.net\", \"utf-8\"}]."}.
{"Exclude Jabber IDs from CAPTCHA challenge","Пропускати ці Jabber ID без CAPTCHA-запиту"}.
{"Export all tables as SQL queries to a file:","Експорт усіх таблиць, як SQL запити, у файл"}.
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Експорт даних всіх користувачів сервера до файлу PIEFXIS (XEP-0227):"}.
{"Export data of users in a host to PIEFXIS files (XEP-0227):","Експорт даних користувачів домена до файлу PIEFXIS (XEP-0227):"}.
{"Failed to extract JID from your voice request approval","Помилка витягнення JID з вашого схвалення голосового запиту"}.
{"Family Name","Прізвище"}.
{"February","лютого"}.
{"Fill in fields to search for any matching Jabber User","Заповніть поля для пошуку користувача Jabber"}.
@@ -112,6 +123,7 @@
{"Get User Last Login Time","Отримати Час Останнього Підключення Користувача"}.
{"Get User Password","Отримати Пароль Користувача"}.
{"Get User Statistics","Отримати Статистику по Користувачу"}.
{"Grant voice to this person?","Надати голос персоні?"}.
{"Groups","Групи"}.
{"Group ","Група "}.
{"has been banned","заборонили вхід в кімнату"}.
@@ -130,8 +142,9 @@
{"Import users data from a PIEFXIS file (XEP-0227):","Імпорт даних користовучів з файлу PIEFXIS (XEP-0227):"}.
{"Import users data from jabberd14 spool directory:","Імпорт користувачів з діректорії спула jabberd14:"}.
{"Import Users from Dir at ","Імпортування користувача з директорії на "}.
{"Import Users From jabberd14 Spool Files","Імпорт користувачів зі спулу jabberd14"}.
{"Import Users From jabberd14 Spool Files","Імпорт користувачів з jabberd14 файлів \"Spool\""}.
{"Improper message type","Неправильний тип повідомлення"}.
{"Incoming s2s Connections:","Вхідні s2s-з'єднання:"}.
{"Incorrect password","Неправильний пароль"}.
{"Invalid affiliation: ~s","Недопустимий ранг: ~s"}.
{"Invalid role: ~s","Недопустима роль: ~s"}.
@@ -144,6 +157,7 @@
{"IRC username","Ім'я користувача IRC"}.
{"IRC Username","Ім'я користувача IRC"}.
{"is now known as","змінив(ла) псевдонім на"}.
{"It is not allowed to send error messages to the room. The participant (~s) has sent an error message (~s) and got kicked from the room","Не дозволяється відправляти помилкові повідомлення в кімнату. Учасник (~s) відправив помилкове повідомлення (~s), та був виганий з кімнати"}.
{"It is not allowed to send private messages of type \"groupchat\"","Не дозволяється надсилати приватні повідомлення типу \"groupchat\""}.
{"It is not allowed to send private messages to the conference","Не дозволяється надсилати приватні повідомлення в конференцію"}.
{"It is not allowed to send private messages","Приватні повідомлення не дозволені"}.
@@ -165,6 +179,7 @@
{"Listened Ports at ","Відкриті порти на "}.
{"Listened Ports","Відкриті порти"}.
{"List of modules to start","Список завантажуваних модулів"}.
{"List of rooms","Перелік кімнат"}.
{"Low level update script","Низькорівневий сценарій поновлення"}.
{"Make participants list public","Зробити список учасників видимим всім"}.
{"Make room CAPTCHA protected","Зробити кімнату захищеною капчею"}.
@@ -184,12 +199,17 @@
{"Memory","Пам'ять"}.
{"Message body","Тіло повідомлення"}.
{"Middle Name","По-батькові"}.
{"Minimum interval between voice requests (in seconds)","Мінімальний інтервал між голосовими запитами (в секундах)"}.
{"Moderator privileges required","Необхідні права модератора"}.
{"moderators only","тільки модераторам"}.
{"Moderator","Модератор"}.
{"Modified modules","Змінені модулі"}.
{"Modules at ~p","Модулі на ~p"}.
{"Modules","Модулі"}.
{"Module","Модуль"}.
{"Monday","Понеділок"}.
{"Multicast","Мультікаст"}.
{"Multi-User Chat","Багато-користувальницький чат"}.
{"Name:","Назва:"}.
{"Name","Назва"}.
{"Never","Ніколи"}.
@@ -198,9 +218,11 @@
{"Nickname ~s does not exist in the room","Псевдонім ~s в кімнаті відсутній"}.
{"Nickname","Псевдонім"}.
{"No body provided for announce message","Тіло оголошення має бути непустим"}.
{"nobody","ніхто"}.
{"No Data","Немає даних"}.
{"Node ID","ID вузла"}.
{"Node not found","Вузол не знайдено"}.
{"Node ~p","Вузол ~p"}.
{"Nodes","Вузли"}.
{"No limit","Без обмежень"}.
{"None","Немає"}.
@@ -222,8 +244,10 @@
{"Online Users","Підключені користувачі"}.
{"Online","Підключений"}.
{"Only deliver notifications to available users","Доставляти повідомленнями тільки доступним користувачам"}.
{"Only members may query archives of this room","Тільки модератори можуть запитувати архіви цієї кімнати"}.
{"Only moderators and participants are allowed to change the subject in this room","Тільки модератори та учасники можуть змінювати тему в цій кімнаті"}.
{"Only moderators are allowed to change the subject in this room","Тільки модератори можуть змінювати тему в цій кімнаті"}.
{"Only moderators can approve voice requests","Тільки модератори можуть схвалювати голосові запити"}.
{"Only occupants are allowed to send messages to the conference","Тільки присутнім дозволяється надсилати повідомленняя в конференцію"}.
{"Only occupants are allowed to send queries to the conference","Тільки присутнім дозволяється відправляти запити в конференцію"}.
{"Only service administrators are allowed to send service messages","Тільки адміністратор сервісу може надсилати службові повідомлення"}.
@@ -234,6 +258,7 @@
{"Outgoing s2s Connections","Вихідні s2s-з'єднання"}.
{"Owner privileges required","Необхідні права власника"}.
{"Packet","Пакет"}.
{"Participant","Учасник"}.
{"Password ~b","Пароль ~b"}.
{"Password Verification:","Перевірка Пароля:"}.
{"Password Verification","Перевірка Пароля"}.
@@ -243,9 +268,13 @@
{"Path to File","Шлях до файла"}.
{"Pending","Очікування"}.
{"Period: ","Період"}.
{"Permanent rooms","Постійні кімнати"}.
{"Persist items to storage","Зберегати публікації до сховища"}.
{"Ping","Пінг"}.
{"Please note that these options will only backup the builtin Mnesia database. If you are using the ODBC module, you also need to backup your SQL database separately.","Зауважте, що ця опція відповідає за резервне копіювання тільки вбудованної бази даних Mnesia. Якщо Ви також використовуєте інше сховище для даних (наприклад за допомогою модуля ODBC), то його резервне копіювання потрібно робити окремо."}.
{"Please specify file name.","Будь ласка вкажіть ім'я файлу."}.
{"Please specify file size.","Будь ласка вкажіть розмір файлу."}.
{"Please, wait for a while before sending new voice request","Будь ласка, почекайте деякий час перед тим, як знову відправляти голосовий запит"}.
{"Pong","Понг"}.
{"Port ~b","Порт ~b"}.
{"Port","Порт"}.
@@ -259,9 +288,10 @@
{"RAM and disc copy","ОЗП та диск"}.
{"RAM copy","ОЗП"}.
{"Raw","необроблений формат"}.
{"Really delete message of the day?","Насправді видалити повідомлення дня?"}.
{"Really delete message of the day?","Насправді, видалити повідомлення дня?"}.
{"Recipient is not in the conference room","Адресата немає в конференції"}.
{"Register a Jabber account","Зареєструвати Jabber-акаунт"}.
{"Registered nicknames","Зареєстровані імена"}.
{"Registered Users:","Зареєстровані користувачі:"}.
{"Registered Users","Зареєстровані користувачі"}.
{"Register","Реєстрація"}.
@@ -279,6 +309,7 @@
{"Restore binary backup immediately:","Відновити з бінарної резервної копії негайно:"}.
{"Restore plain text backup immediately:","Відновити з текстової резервної копії негайно:"}.
{"Restore","Відновлення з резервної копії"}.
{"Roles for which Presence is Broadcasted","Ролі для яких поширюється наявність"}.
{"Room Configuration","Конфігурація кімнати"}.
{"Room creation is denied by service policy","Створювати конференцію заборонено політикою служби"}.
{"Room description","Опис кімнати"}.
@@ -302,6 +333,7 @@
{"September","вересня"}.
{"Server ~b","Сервер ~b"}.
{"Server:","Сервер:"}.
{"Server","Сервер:"}.
{"Set message of the day and send to online users","Встановити повідомлення дня та надіслати його підключеним користувачам"}.
{"Set message of the day on all hosts and send to online users","Встановити повідомлення дня на всіх хостах та надійслати його підключеним користувачам"}.
{"Shared Roster Groups","Спільні групи контактів"}.
@@ -343,6 +375,7 @@
{"There was an error changing the password: ","Помилка при зміні пароля: "}.
{"There was an error creating the account: ","Помилка при створенні акаунту:"}.
{"There was an error deleting the account: ","Помилка при видаленні акаунту: "}.
{"This IP address is blacklisted in ~s","Ця IP адреса у чорному списку ~s"}.
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","Регістр не має значення: \"МАША\" та \"маша\" буде сприйматися як одне й те саме ім'я."}.
{"This page allows to create a Jabber account in this Jabber server. Your JID (Jabber IDentifier) will be of the form: username@server. Please read carefully the instructions to fill correctly the fields.","Тут ви можете зареєструвати обліковий запис Jabber на цьому сервері. Ваш JID (ідентифікатор Jabber) матиме вигляд \"користувач@сервер\". Щоб вірно заповнити поля нижче, будь ласка, уважно читайте інструкції до них."}.
{"This page allows to unregister a Jabber account in this Jabber server.","Ця сторінка дозволяє видалити свій акаунт з Jabber-сервера."}.
@@ -350,7 +383,10 @@
{"Time delay","Час затримки"}.
{"Time","Час"}.
{"Too many CAPTCHA requests","Надто багато CAPTCHA-запитів"}.
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Забагато (~p) помилок авторизації з цієї IP адреси (~s). Адресу буде розблоковано о ~s UTC"}.
{"Too many unacked stanzas","Занадто багато пакетів без відповідей"}.
{"To ~s","До ~s"}.
{"Total rooms","Всього кімнат"}.
{"To","Кому"}.
{"Traffic rate limit is exceeded","Швидкість передачі інформації було перевищено"}.
{"Transactions Aborted:","Транзакції відмінені:"}.
@@ -364,15 +400,18 @@
{"Unregister","Видалити"}.
{"Update message of the day (don't send)","Оновити повідомлення дня (не надсилати)"}.
{"Update message of the day on all hosts (don't send)","Оновити повідомлення дня на всіх хостах (не надсилати)"}.
{"Update plan","План поновлення"}.
{"Update plan","План оновлення"}.
{"Update ~p","Оновлення ~p"}.
{"Update script","Сценарій поновлення"}.
{"Update","Обновити"}.
{"Uptime:","Час роботи:"}.
{"Use of STARTTLS required","Ви мусите використовувати STARTTLS"}.
{"User JID","JID Користувача"}.
{"User Management","Управління Користувачами"}.
{"Username:","Ім'я користувача:"}.
{"Users are not allowed to register accounts so quickly","Користувачам не дозволено так часто реєструвати облікові записи"}.
{"Users Last Activity","Статистика останнього підключення користувачів"}.
{"User ~s","Користувач ~s"}.
{"Users","Користувачі"}.
{"User","Користувач"}.
{"Validate","Затвердити"}.
@@ -380,6 +419,9 @@
{"Virtual Hosts","віртуальні хости"}.
{"Visitors are not allowed to change their nicknames in this room","Відвідувачам не дозволяється змінювати псевдонім в цій кімнаті"}.
{"Visitors are not allowed to send messages to all occupants","Відвідувачам не дозволяється надсилати повідомлення всім присутнім"}.
{"Visitor","Відвідувач"}.
{"Voice requests are disabled in this conference","Голосові запити відключені в цій конференції"}.
{"Voice request","Голосовий запит"}.
{"Wednesday","Середа"}.
{"When to send the last published item","Коли надсилати останній опублікований елемент"}.
{"Whether to allow subscriptions","Дозволяти підписку"}.

Some files were not shown because too many files have changed in this diff Show More