Compare commits
172 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| df39fec5d0 | |||
| 152d80827a | |||
| 9c82f160e5 | |||
| 189267c1a1 | |||
| 59b6a46f82 | |||
| 6b81a1ed90 | |||
| b63c51c245 | |||
| 704844fd2a | |||
| 3fc1d8ca9a | |||
| d08f73da47 | |||
| cf975da8f2 | |||
| 846b520edc | |||
| 88a206400a | |||
| 1781a58929 | |||
| e2cc45933f | |||
| 5eab6e315e | |||
| a1129dc96b | |||
| 7cf904f4cf | |||
| deccf91280 | |||
| 825f4fcc35 | |||
| ee456cc2af | |||
| 1f4d8fd4d7 | |||
| 484fd1f51f | |||
| 89b3471742 | |||
| c360326cdb | |||
| 3300c8d994 | |||
| e289344972 | |||
| 23a1aceac0 | |||
| 70b1dc479c | |||
| e57c1896f7 | |||
| df3862cf84 | |||
| 497cbb3ec2 | |||
| ec1969ddca | |||
| a1a7beb24d | |||
| f6b892b366 | |||
| 4a4065c9c6 | |||
| 5d11a19087 | |||
| ae51277316 | |||
| 5593ebbbca | |||
| a8d6439a4b | |||
| 18d3329f8f | |||
| e6279123e5 | |||
| 59321ac56e | |||
| ab857b1a5e | |||
| fc7d3a44b8 | |||
| 25791cfde8 | |||
| 48c5e73321 | |||
| 8c1864eca1 | |||
| df08253e91 | |||
| a50f00f9e8 | |||
| 8fd9670da2 | |||
| 4d19ef55b6 | |||
| 6b79bcdc97 | |||
| 73932fb507 | |||
| 5a9f1b9bba | |||
| 7b230e7e44 | |||
| 420cf68ecd | |||
| 64d1efa6f2 | |||
| 9195fc5573 | |||
| 5d59a534a3 | |||
| 096d56235b | |||
| f56a9e400d | |||
| 5095fdb6b0 | |||
| 8d1ea87e02 | |||
| a85a8dff45 | |||
| 06193d18b8 | |||
| 6740b1f0e1 | |||
| 608661d8c0 | |||
| 1bc2c8cbb1 | |||
| eebd4bbd8f | |||
| 4ae7c81cfa | |||
| e179727a0e | |||
| 79d3b77de1 | |||
| 87f39c8750 | |||
| b6bf1eba42 | |||
| 14ddbce3a9 | |||
| e24bfe7b62 | |||
| 190f76c676 | |||
| 9f62426343 | |||
| 3ed75890cb | |||
| 3d5d1ecbe4 | |||
| 5bb137940c | |||
| 832f6d39f9 | |||
| 94444c87e8 | |||
| 247bd9eae5 | |||
| 6177ae3ffb | |||
| b570070834 | |||
| 775cf2d459 | |||
| 6f0ee83317 | |||
| f89db30d77 | |||
| 6d16029716 | |||
| 3efd0ebc5a | |||
| ac6b436dcf | |||
| 994602c97d | |||
| 279d4b00ac | |||
| 8c9c556f1f | |||
| ab0f488dda | |||
| 2392f09e99 | |||
| 40feed723d | |||
| c71d57a05d | |||
| 5a1ac4faf1 | |||
| 45a312a0eb | |||
| d9caa51c12 | |||
| f5e857a5bd | |||
| 4125dfd166 | |||
| 3a5dd51b42 | |||
| dc0934bff7 | |||
| c0497d46af | |||
| 13f7be682d | |||
| 6e61932765 | |||
| 3d4e8ffac6 | |||
| e3b7d43b76 | |||
| f377992232 | |||
| dfe3082445 | |||
| a9a235c376 | |||
| 04094b3dcf | |||
| 8fe930c3d1 | |||
| 1048e21643 | |||
| 0dbedb69a6 | |||
| 5788609e5c | |||
| 5305b4a82c | |||
| d03d08539b | |||
| 76104cd117 | |||
| e211bf7131 | |||
| 32fc586c08 | |||
| 8fedc945bf | |||
| d481017746 | |||
| 19aad464da | |||
| 8df134e025 | |||
| 9091fcb1a1 | |||
| 9aa2d92d90 | |||
| 311fedaa12 | |||
| 9c36a9df78 | |||
| b47a27f3ac | |||
| 531638e946 | |||
| a724893887 | |||
| 7f4c74dec9 | |||
| 44cc99d616 | |||
| 7395cc910e | |||
| c53d764119 | |||
| 3eb0b161b2 | |||
| 65551afcba | |||
| f4376671ac | |||
| c012d7555b | |||
| 9ede414f01 | |||
| 062d2d696f | |||
| a53191fed5 | |||
| 8e27decdfd | |||
| 0dfc8ade68 | |||
| 1db65e3614 | |||
| a168340838 | |||
| 6604b9efbb | |||
| 2598375051 | |||
| 0f96414279 | |||
| edb18deb8f | |||
| 0770252e9b | |||
| b0453ea2ce | |||
| b7d7dc5201 | |||
| 5856f6d06a | |||
| a25051fead | |||
| 95138864f4 | |||
| 4045c848c4 | |||
| 3267d4c923 | |||
| 0e7d2b73be | |||
| 0474804d4b | |||
| 56034e6ed5 | |||
| df57a07dd5 | |||
| 3c12d1a960 | |||
| 87d6ad395f | |||
| 7c7e51b6e8 | |||
| 4ae1b4db03 | |||
| 04038c01f7 |
+3
-1
@@ -41,4 +41,6 @@ XmppAddr.hrl
|
||||
/test/*.beam
|
||||
/logs/
|
||||
/priv/sql
|
||||
mix.exs
|
||||
/rel/ejabberd
|
||||
/_build
|
||||
/mnesiadb
|
||||
|
||||
+13
-2
@@ -1,14 +1,25 @@
|
||||
language: erlang
|
||||
|
||||
otp_release:
|
||||
- 17.4
|
||||
- R16B03
|
||||
- 17.1
|
||||
- 17.5
|
||||
|
||||
services:
|
||||
- riak
|
||||
|
||||
before_install:
|
||||
#
|
||||
# We need MySQL 5.6 or newer in order to get support for FULLTEXT indexes
|
||||
# with InnoDB. As soon as Travis ships that version, the following lines
|
||||
# (except for the "apt-get update" call) can go away.
|
||||
#
|
||||
# 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 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
|
||||
|
||||
install:
|
||||
- sudo apt-get -qq install libexpat1-dev libyaml-dev libpam0g-dev libsqlite3-dev
|
||||
|
||||
+10
-9
@@ -137,9 +137,9 @@ install: all
|
||||
$(INSTALL) -m 550 $(G_USER) ejabberdctl.example $(SBINDIR)/ejabberdctl
|
||||
# Elixir binaries
|
||||
[ -d $(BINDIR) ] || $(INSTALL) -d -m 755 $(BINDIR)
|
||||
-[ -f deps/elixir/bin/iex ] && $(INSTALL) -m 550 $(G_USER) deps/elixir/bin/iex $(BINDIR)/iex
|
||||
-[ -f deps/elixir/bin/elixir ] && $(INSTALL) -m 550 $(G_USER) deps/elixir/bin/elixir $(BINDIR)/elixir
|
||||
-[ -f deps/elixir/bin/mix ] && $(INSTALL) -m 550 $(G_USER) deps/elixir/bin/mix $(BINDIR)/mix
|
||||
[ -f deps/elixir/bin/iex ] && $(INSTALL) -m 550 $(G_USER) deps/elixir/bin/iex $(BINDIR)/iex || true
|
||||
[ -f deps/elixir/bin/elixir ] && $(INSTALL) -m 550 $(G_USER) deps/elixir/bin/elixir $(BINDIR)/elixir || true
|
||||
[ -f deps/elixir/bin/mix ] && $(INSTALL) -m 550 $(G_USER) deps/elixir/bin/mix $(BINDIR)/mix || true
|
||||
#
|
||||
# Init script
|
||||
$(SED) -e "s*@ctlscriptpath@*$(SBINDIR)*" \
|
||||
@@ -168,22 +168,23 @@ install: all
|
||||
$(INSTALL) -m 750 $(O_USER) tools/captcha.sh $(PBINDIR)
|
||||
$(INSTALL) -m 750 $(O_USER) tools/joincluster $(PBINDIR)
|
||||
$(INSTALL) -m 750 $(O_USER) tools/leavecluster $(PBINDIR)
|
||||
-[ -f deps/p1_pam/priv/bin/epam ] \
|
||||
&& $(INSTALL) -m 750 $(O_USER) deps/p1_pam/priv/bin/epam $(PBINDIR)
|
||||
[ -f deps/p1_pam/priv/bin/epam ] \
|
||||
&& $(INSTALL) -m 750 $(O_USER) deps/p1_pam/priv/bin/epam $(PBINDIR) \
|
||||
|| true
|
||||
#
|
||||
# Binary system libraries
|
||||
$(INSTALL) -d $(SODIR)
|
||||
$(INSTALL) -m 644 $(DLLs) $(SODIR)
|
||||
-[ -f $(SODIR)/jiffy.so ] && (cd $(PRIVDIR); ln -s lib/jiffy.so; true)
|
||||
-[ -f $(SODIR)/sqlite3_drv.so ] && (cd $(PRIVDIR); ln -s lib/sqlite3_drv.so; true)
|
||||
[ -f $(SODIR)/jiffy.so ] && (cd $(PRIVDIR); ln -s lib/jiffy.so; true) || true
|
||||
[ -f $(SODIR)/sqlite3_drv.so ] && (cd $(PRIVDIR); ln -s lib/sqlite3_drv.so; true) || true
|
||||
#
|
||||
# Translated strings
|
||||
$(INSTALL) -d $(MSGSDIR)
|
||||
$(INSTALL) -m 644 priv/msgs/*.msg $(MSGSDIR)
|
||||
#
|
||||
# Copy lite.sql
|
||||
-[ -d deps/sqlite3 ] && $(INSTALL) -d $(SQLDIR)
|
||||
-[ -d deps/sqlite3 ] && $(INSTALL) -m 644 sql/lite.sql $(SQLDIR)
|
||||
[ -d deps/sqlite3 ] && $(INSTALL) -d $(SQLDIR) || true
|
||||
[ -d deps/sqlite3 ] && $(INSTALL) -m 644 sql/lite.sql $(SQLDIR) || true
|
||||
#
|
||||
# Spool directory
|
||||
$(INSTALL) -d -m 750 $(O_USER) $(SPOOLDIR)
|
||||
|
||||
@@ -106,7 +106,7 @@ To compile ejabberd you need:
|
||||
- GCC.
|
||||
- Libexpat 1.95 or higher.
|
||||
- Libyaml 0.1.4 or higher.
|
||||
- Erlang/OTP R16B03 or higher.
|
||||
- Erlang/OTP 17.1 or higher.
|
||||
- OpenSSL 0.9.8 or higher, for STARTTLS, SASL and SSL encryption.
|
||||
- Zlib 1.2.3 or higher, for Stream Compression support (XEP-0138). Optional.
|
||||
- PAM library. Optional. For Pluggable Authentication Modules (PAM).
|
||||
@@ -159,6 +159,10 @@ In order to assist in the development of ejabberd, and particularly the
|
||||
execution of the test suite, a Vagrant environment is available at
|
||||
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
|
||||
|
||||
Links
|
||||
-----
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
use Mix.Config
|
||||
|
||||
# This is standard path in the context of ejabberd release
|
||||
config :ejabberd,
|
||||
file: "config/ejabberd.yml",
|
||||
log_path: 'log/ejabberd.log'
|
||||
|
||||
# Customize Mnesia directory:
|
||||
config :mnesia,
|
||||
dir: 'mnesiadb/'
|
||||
+7
-15
@@ -3,9 +3,11 @@
|
||||
|
||||
AC_PREREQ(2.53)
|
||||
AC_INIT(ejabberd, m4_esyscmd([echo `git describe --tags 2>/dev/null || echo 0.0` | sed 's/-g.*//;s/-/./' | tr -d '\012']), [ejabberd@process-one.net], [ejabberd])
|
||||
REQUIRE_ERLANG_MIN="5.9.1 (Erlang/OTP R15B01)"
|
||||
REQUIRE_ERLANG_MIN="6.1 (Erlang/OTP 17.1)"
|
||||
REQUIRE_ERLANG_MAX="9.0.0 (No Max)"
|
||||
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_MAKE_SET
|
||||
AC_PROG_INSTALL
|
||||
@@ -106,10 +108,10 @@ AC_ARG_ENABLE(mssql,
|
||||
esac],[db_type=generic])
|
||||
|
||||
AC_ARG_ENABLE(all,
|
||||
[AC_HELP_STRING([--enable-all], [same as --enable-nif --enable-odbc --enable-mysql --enable-pgsql --enable-sqlite --enable-pam --enable-zlib --enable-riak --enable-redis --enable-json --enable-elixir --enable-iconv --enable-debug --enable-lager --enable-tools (useful for Dialyzer checks, default: no)])],
|
||||
[AC_HELP_STRING([--enable-all], [same as --enable-nif --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)])],
|
||||
[case "${enableval}" in
|
||||
yes) nif=true odbc=true mysql=true pgsql=true sqlite=true pam=true zlib=true riak=true redis=true json=true elixir=true iconv=true debug=true lager=true tools=true ;;
|
||||
no) nif=false odbc=false mysql=false pgsql=false sqlite=false pam=false zlib=false riak=false redis=false json=false elixir=false iconv=false debug=false lager=false tools=false ;;
|
||||
yes) nif=true 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) nif=false 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 ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-all) ;;
|
||||
esac],[])
|
||||
|
||||
@@ -193,14 +195,6 @@ AC_ARG_ENABLE(redis,
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-redis) ;;
|
||||
esac],[if test "x$redis" = "x"; then redis=false; fi])
|
||||
|
||||
AC_ARG_ENABLE(json,
|
||||
[AC_HELP_STRING([--enable-json], [enable JSON support for mod_bosh (default: no)])],
|
||||
[case "${enableval}" in
|
||||
yes) json=true ;;
|
||||
no) json=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-json) ;;
|
||||
esac],[if test "x$json" = "x"; then json=false; fi])
|
||||
|
||||
AC_ARG_ENABLE(elixir,
|
||||
[AC_HELP_STRING([--enable-elixir], [enable Elixir support (default: no)])],
|
||||
[case "${enableval}" in
|
||||
@@ -235,8 +229,7 @@ esac],[if test "x$lager" = "x"; then lager=true; fi])
|
||||
|
||||
AC_CONFIG_FILES([Makefile
|
||||
vars.config
|
||||
src/ejabberd.app.src
|
||||
mix.exs])
|
||||
src/ejabberd.app.src])
|
||||
|
||||
ENABLEUSER=""
|
||||
AC_ARG_ENABLE(user,
|
||||
@@ -275,7 +268,6 @@ AC_SUBST(pam)
|
||||
AC_SUBST(zlib)
|
||||
AC_SUBST(riak)
|
||||
AC_SUBST(redis)
|
||||
AC_SUBST(json)
|
||||
AC_SUBST(elixir)
|
||||
AC_SUBST(iconv)
|
||||
AC_SUBST(debug)
|
||||
|
||||
@@ -577,9 +577,7 @@ modules:
|
||||
mod_blocking: {} # requires mod_privacy
|
||||
mod_caps: {}
|
||||
mod_carboncopy: {}
|
||||
mod_client_state:
|
||||
drop_chat_states: true
|
||||
queue_presence: false
|
||||
mod_client_state: {}
|
||||
mod_configure: {} # requires mod_adhoc
|
||||
mod_disco: {}
|
||||
## mod_echo: {}
|
||||
|
||||
@@ -405,7 +405,7 @@ ctl()
|
||||
ctlexec()
|
||||
{
|
||||
CONN_NAME=$1; shift
|
||||
COMMAND=$(echo $@ | sed 's/;/\\;/g')
|
||||
COMMAND=$(echo $@ | sed 's/["&$;\|<>()]/\\&/g')
|
||||
$EXEC_CMD "$ERL \
|
||||
$NAME ${CONN_NAME} \
|
||||
-noinput \
|
||||
@@ -444,11 +444,11 @@ check_start()
|
||||
# cluster setup
|
||||
join_cluster()
|
||||
{
|
||||
$EJABBERD_BIN_PATH/joincluster $*
|
||||
$EXEC_CMD "$EJABBERD_BIN_PATH/joincluster $*"
|
||||
}
|
||||
leave_cluster()
|
||||
{
|
||||
$EJABBERD_BIN_PATH/leavecluster $*
|
||||
$EXEC_CMD "$EJABBERD_BIN_PATH/leavecluster $*"
|
||||
}
|
||||
|
||||
# allow sync calls
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
module :: atom(),
|
||||
function :: atom(),
|
||||
args = [] :: [aterm()] | '_' | '$1' | '$2',
|
||||
policy = restricted :: open | restricted | admin | user,
|
||||
result = {res, rescode} :: rterm() | '_' | '$2'}).
|
||||
|
||||
-type ejabberd_commands() :: #ejabberd_commands{name :: atom(),
|
||||
|
||||
@@ -45,4 +45,5 @@
|
||||
headers = [] :: [{atom() | binary(), binary()}],
|
||||
local_path = [] :: [binary()],
|
||||
q = [] :: [{binary() | nokey, binary()}],
|
||||
buf :: binary()}).
|
||||
buf :: binary(),
|
||||
http_opts = [] :: list()}).
|
||||
|
||||
@@ -38,9 +38,12 @@
|
||||
-define(AC_MAX_AGE,
|
||||
{<<"Access-Control-Max-Age">>, <<"86400">>}).
|
||||
|
||||
-define(NO_CACHE,
|
||||
{<<"Cache-Control">>, <<"max-age=0, no-cache, no-store">>}).
|
||||
|
||||
-define(OPTIONS_HEADER,
|
||||
[?CT_PLAIN, ?AC_ALLOW_ORIGIN, ?AC_ALLOW_METHODS,
|
||||
?AC_ALLOW_HEADERS, ?AC_MAX_AGE]).
|
||||
|
||||
-define(HEADER,
|
||||
[?CT_XML, ?AC_ALLOW_ORIGIN, ?AC_ALLOW_HEADERS]).
|
||||
[?CT_XML, ?AC_ALLOW_ORIGIN, ?AC_ALLOW_HEADERS, ?NO_CACHE]).
|
||||
|
||||
@@ -61,7 +61,8 @@
|
||||
max_users = ?MAX_USERS_DEFAULT :: non_neg_integer() | none,
|
||||
logging = false :: boolean(),
|
||||
vcard = <<"">> :: binary(),
|
||||
captcha_whitelist = (?SETS):empty() :: ?TGB_SET
|
||||
captcha_whitelist = (?SETS):empty() :: ?TGB_SET,
|
||||
mam = false :: boolean()
|
||||
}).
|
||||
|
||||
-type config() :: #config{}.
|
||||
|
||||
@@ -143,6 +143,8 @@
|
||||
-define(NS_BOB, <<"urn:xmpp:bob">>).
|
||||
-define(NS_MAM_TMP, <<"urn:xmpp:mam:tmp">>).
|
||||
-define(NS_MAM_0, <<"urn:xmpp:mam:0">>).
|
||||
-define(NS_MAM_1, <<"urn:xmpp:mam:1">>).
|
||||
-define(NS_SID_0, <<"urn:xmpp:sid:0">>).
|
||||
-define(NS_PING, <<"urn:xmpp:ping">>).
|
||||
-define(NS_CARBONS_2, <<"urn:xmpp:carbons:2">>).
|
||||
-define(NS_CARBONS_1, <<"urn:xmpp:carbons:1">>).
|
||||
@@ -150,3 +152,4 @@
|
||||
-define(NS_CLIENT_STATE, <<"urn:xmpp:csi:0">>).
|
||||
-define(NS_STREAM_MGMT_2, <<"urn:xmpp:sm:2">>).
|
||||
-define(NS_STREAM_MGMT_3, <<"urn:xmpp:sm:3">>).
|
||||
-define(NS_NICK, <<"http://jabber.org/protocol/nick">>).
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
defmodule Ejabberd.Mixfile do
|
||||
use Mix.Project
|
||||
|
||||
def project do
|
||||
[app: :ejabberd,
|
||||
version: "15.09.0",
|
||||
elixir: "~> 1.0",
|
||||
elixirc_paths: ["lib"],
|
||||
compile_path: ".",
|
||||
compilers: [:asn1] ++ Mix.compilers,
|
||||
erlc_options: erlc_options,
|
||||
erlc_paths: ["asn1", "src"],
|
||||
package: package,
|
||||
deps: deps]
|
||||
end
|
||||
|
||||
def application do
|
||||
[mod: {:ejabberd_app, []},
|
||||
applications: [:ssl],
|
||||
included_applications: [:p1_logger,:p1_yaml,:p1_tls,:p1_xml,:p1_stringprep,:p1_zlib,:p1_cache_tab,:mnesia,:p1_utils,
|
||||
:p1_iconv,:esip,:p1_stun,:ehyperloglog,:p1_mysql,:p1_pgsql,:eredis]]
|
||||
end
|
||||
|
||||
defp erlc_options do
|
||||
# Use our own includes + includes from all dependencies
|
||||
includes = ["include"] ++ Path.wildcard(Path.join("..", "/*/include"))
|
||||
[:debug_info] ++ Enum.map(includes, fn(path) -> {:i, path} end)
|
||||
end
|
||||
|
||||
defp deps do
|
||||
[{:p1_xml, git: "https://github.com/processone/xml"},
|
||||
{:p1_logger, git: "https://github.com/processone/p1_logger"},
|
||||
{:p1_yaml, git: "https://github.com/processone/p1_yaml"},
|
||||
{:p1_tls, git: "https://github.com/processone/tls"},
|
||||
{:p1_stringprep, git: "https://github.com/processone/stringprep"},
|
||||
{:p1_zlib, git: "https://github.com/processone/zlib"},
|
||||
{:p1_cache_tab, git: "https://github.com/processone/cache_tab"},
|
||||
{:p1_utils, git: "https://github.com/processone/p1_utils"},
|
||||
{:p1_iconv, git: "https://github.com/processone/eiconv"},
|
||||
{:esip, git: "https://github.com/processone/p1_sip"},
|
||||
{:p1_stun, git: "https://github.com/processone/stun"},
|
||||
{:ehyperloglog, git: "https://github.com/vaxelfel/eHyperLogLog"},
|
||||
{:p1_mysql, git: "https://github.com/processone/mysql"},
|
||||
{:p1_pgsql, git: "https://github.com/processone/pgsql"},
|
||||
{:eredis, git: "https://github.com/wooga/eredis"},
|
||||
{:exrm, "~> 0.19.2"}]
|
||||
end
|
||||
|
||||
defp package do
|
||||
[licenses: ["GPLv2"],
|
||||
links: %{"Site" => "https://www.ejabberd.im",
|
||||
"Documentation" => "http://docs.ejabberd.im",
|
||||
"Source" => "https://github.com/processone/ejabberd"}]
|
||||
end
|
||||
end
|
||||
|
||||
defmodule Mix.Tasks.Compile.Asn1 do
|
||||
use Mix.Task
|
||||
alias Mix.Compilers.Erlang
|
||||
|
||||
@recursive true
|
||||
@manifest ".compile.asn1"
|
||||
|
||||
def run(args) do
|
||||
{opts, _, _} = OptionParser.parse(args, switches: [force: :boolean])
|
||||
|
||||
project = Mix.Project.config
|
||||
source_paths = project[:asn1_paths] || ["asn1"]
|
||||
dest_paths = project[:asn1_target] || ["src"]
|
||||
mappings = Enum.zip(source_paths, dest_paths)
|
||||
options = project[:asn1_options] || []
|
||||
|
||||
Erlang.compile(manifest(), mappings, :asn1, :erl, opts[:force], fn
|
||||
input, output ->
|
||||
options = options ++ [:noobj, outdir: Erlang.to_erl_file(Path.dirname(output))]
|
||||
case :asn1ct.compile(Erlang.to_erl_file(input), options) do
|
||||
:ok -> {:ok, :done}
|
||||
error -> error
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
def manifests, do: [manifest]
|
||||
defp manifest, do: Path.join(Mix.Project.manifest_path, @manifest)
|
||||
|
||||
def clean, do: Erlang.clean(manifest())
|
||||
end
|
||||
-77
@@ -1,77 +0,0 @@
|
||||
defmodule Ejabberd.Mixfile do
|
||||
use Mix.Project
|
||||
|
||||
def project do
|
||||
[app: :ejabberd,
|
||||
version: "@PACKAGE_VERSION@",
|
||||
elixir: "~> 1.0",
|
||||
elixirc_paths: ["lib"],
|
||||
compile_path: ".",
|
||||
compilers: [:asn1] ++ Mix.compilers,
|
||||
erlc_options: erlc_options,
|
||||
erlc_paths: ["asn1", "src"],
|
||||
deps: deps]
|
||||
end
|
||||
|
||||
def application do
|
||||
[mod: {:ejabberd_app, []},
|
||||
applications: [:kernel, :stdlib]]
|
||||
end
|
||||
|
||||
defp erlc_options do
|
||||
includes = Path.wildcard(Path.join("..", "/*/include"))
|
||||
[:debug_info, {:d, :NO_EXT_LIB}] ++ Enum.map(includes, fn(path) -> {:i, path} end)
|
||||
end
|
||||
|
||||
defp deps do
|
||||
[
|
||||
{:p1_xml, github: "processone/xml"},
|
||||
{:p1_logger, github: "processone/p1_logger"},
|
||||
{:p1_yaml, github: "processone/p1_yaml"},
|
||||
{:p1_tls, github: "processone/tls"},
|
||||
{:p1_stringprep, github: "processone/stringprep"},
|
||||
{:p1_zlib, github: "processone/zlib"},
|
||||
{:p1_cache_tab, github: "processone/cache_tab"},
|
||||
{:p1_utils, github: "processone/p1_utils"},
|
||||
{:p1_iconv, github: "processone/eiconv"},
|
||||
{:esip, github: "processone/p1_sip"},
|
||||
{:p1_stun, github: "processone/stun"},
|
||||
{:ehyperloglog, github: "vaxelfel/eHyperLogLog"},
|
||||
{:p1_mysql, github: "processone/mysql"},
|
||||
{:p1_pgsql, github: "processone/pgsql"},
|
||||
{:eredis, github: "wooga/eredis"}
|
||||
]
|
||||
end
|
||||
end
|
||||
|
||||
defmodule Mix.Tasks.Compile.Asn1 do
|
||||
use Mix.Task
|
||||
alias Mix.Compilers.Erlang
|
||||
|
||||
@recursive true
|
||||
@manifest ".compile.asn1"
|
||||
|
||||
def run(args) do
|
||||
{opts, _, _} = OptionParser.parse(args, switches: [force: :boolean])
|
||||
|
||||
project = Mix.Project.config
|
||||
source_paths = project[:asn1_paths] || ["asn1"]
|
||||
dest_paths = project[:asn1_target] || ["src"]
|
||||
mappings = Enum.zip(source_paths, dest_paths)
|
||||
options = project[:asn1_options] || []
|
||||
|
||||
Erlang.compile(manifest(), mappings, :asn1, :erl, opts[:force], fn
|
||||
input, output ->
|
||||
options = options ++ [:noobj, outdir: Erlang.to_erl_file(Path.dirname(output))]
|
||||
case :asn1ct.compile(Erlang.to_erl_file(input), options) do
|
||||
:ok -> {:ok, :done}
|
||||
error -> error
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
def manifests, do: [manifest]
|
||||
defp manifest, do: Path.join(Mix.Project.manifest_path, @manifest)
|
||||
|
||||
def clean, do: Erlang.clean(manifest())
|
||||
end
|
||||
+24
-8
@@ -18,7 +18,7 @@
|
||||
{"Allow users to query other users","Permetre que els usuaris fagen peticions a altres usuaris"}.
|
||||
{"Allow users to send invites","Permetre que els usuaris envien invitacions"}.
|
||||
{"Allow users to send private messages","Permetre que els usuaris envien missatges privats"}.
|
||||
{"Allow visitors to change nickname","Permetre als visitants canviar el Nickname"}.
|
||||
{"Allow visitors to change nickname","Permetre als visitants canviar el sobrenom"}.
|
||||
{"Allow visitors to send private messages to","Permetre als visitants enviar missatges privats a"}.
|
||||
{"Allow visitors to send status text in presence updates","Permetre als visitants enviar text d'estat en les actualitzacions de presència"}.
|
||||
{"Allow visitors to send voice requests","Permetre als visitants enviar peticions de veu"}.
|
||||
@@ -29,6 +29,7 @@
|
||||
{"August","Agost"}.
|
||||
{"Backup","Guardar còpia de seguretat"}.
|
||||
{"Backup Management","Gestió de còpia de seguretat"}.
|
||||
{"Backup of ~p","Còpia de seguretat de ~p"}.
|
||||
{"Backup to File at ","Desar còpia de seguretat a fitxer en "}.
|
||||
{"Bad format","Format erroni"}.
|
||||
{"Birthday","Aniversari"}.
|
||||
@@ -55,10 +56,10 @@
|
||||
{"Country","Pais"}.
|
||||
{"CPU Time:","Temps de CPU"}.
|
||||
{"Database","Base de dades"}.
|
||||
{"Database Tables at ~p","Taules de la base de dades en ~p"}.
|
||||
{"Database Tables Configuration at ","Configuració de la base de dades en "}.
|
||||
{"December","Decembre"}.
|
||||
{"Default users as participants","Els usuaris són participants per defecte"}.
|
||||
{"Delete","Eliminar"}.
|
||||
{"Delete message of the day","Eliminar el missatge del dia"}.
|
||||
{"Delete message of the day on all hosts","Elimina el missatge del dis de tots els hosts"}.
|
||||
{"Delete Selected","Eliminar els seleccionats"}.
|
||||
@@ -75,6 +76,7 @@
|
||||
{"Either approve or decline the voice request.","Aprova o denega la petició de veu"}.
|
||||
{"ejabberd IRC module","mòdul ejabberd IRC"}.
|
||||
{"ejabberd MUC module","mòdul ejabberd MUC"}.
|
||||
{"ejabberd Multicast service","Servei de Multicast d'ejabberd"}.
|
||||
{"ejabberd Publish-Subscribe module","Mòdul ejabberd Publicar-Subscriure"}.
|
||||
{"ejabberd SOCKS5 Bytestreams module","mòdul ejabberd SOCKS5 Bytestreams"}.
|
||||
{"ejabberd vCard module","Mòdul ejabberd vCard"}.
|
||||
@@ -82,10 +84,11 @@
|
||||
{"Elements","Elements"}.
|
||||
{"Email","Email"}.
|
||||
{"Enable logging","Habilitar el registre de la conversa"}.
|
||||
{"Enable message archiving","Activar l'emmagatzematge de missatges"}.
|
||||
{"Encoding for server ~b","Codificació pel servidor ~b"}.
|
||||
{"End User Session","Finalitzar Sesió d'Usuari"}.
|
||||
{"Enter list of {Module, [Options]}","Introdueix llista de {mòdul, [opcions]}"}.
|
||||
{"Enter nickname you want to register","Introdueix el nickname que vols registrar"}.
|
||||
{"Enter nickname you want to register","Introdueix el sobrenom que vols registrar"}.
|
||||
{"Enter path to backup file","Introdueix ruta al fitxer de còpia de seguretat"}.
|
||||
{"Enter path to jabberd14 spool dir","Introdueix la ruta al directori de jabberd14 spools"}.
|
||||
{"Enter path to jabberd14 spool file","Introdueix ruta al fitxer jabberd14 spool"}.
|
||||
@@ -97,6 +100,7 @@
|
||||
{"Error","Error"}.
|
||||
{"Example: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"secret\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.sometestserver.net\", \"utf-8\"}].","Exemple: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"secret\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.sometestserver.net\", \"utf-8\"}]."}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Excloure Jabber IDs de la comprovació CAPTCHA"}.
|
||||
{"Export all tables as SQL queries to a file:","Exporta totes les taules a un fitxer SQL:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Exportar dades de tots els usuaris del servidor a arxius PIEFXIS (XEP-0227):"}.
|
||||
{"Export data of users in a host to PIEFXIS files (XEP-0227):","Exportar dades d'usuaris d'un host a arxius PIEFXIS (XEP-0227):"}.
|
||||
{"Family Name","Cognom"}.
|
||||
@@ -161,6 +165,7 @@
|
||||
{"Listened Ports at ","Ports a la escolta en "}.
|
||||
{"Listened Ports","Ports a l'escolta"}.
|
||||
{"List of modules to start","Llista de mòduls a iniciar"}.
|
||||
{"List of rooms","Llista de sales"}.
|
||||
{"Low level update script","Script d'actualització de baix nivell"}.
|
||||
{"Make participants list public","Crear una llista de participants pública"}.
|
||||
{"Make room CAPTCHA protected","Crear una sala protegida per CAPTCHA"}.
|
||||
@@ -183,20 +188,24 @@
|
||||
{"moderators only","només moderadors"}.
|
||||
{"Modified modules","Mòduls modificats"}.
|
||||
{"Module","Mòdul"}.
|
||||
{"Modules at ~p","Mòduls en ~p"}.
|
||||
{"Modules","Mòduls"}.
|
||||
{"Monday","Dilluns"}.
|
||||
{"Multicast","Multicast"}.
|
||||
{"Multi-User Chat","Multi-Usuari Converses"}.
|
||||
{"Name:","Nom:"}.
|
||||
{"Name","Nom"}.
|
||||
{"Never","Mai"}.
|
||||
{"New Password:","Nova Contrasenya:"}.
|
||||
{"Nickname","Nickname"}.
|
||||
{"Nickname Registration at ","Registre del Nickname en "}.
|
||||
{"Nickname ~s does not exist in the room","El Nickname ~s no existeix a la sala"}.
|
||||
{"Nickname Registration at ","Registre del sobrenom en "}.
|
||||
{"Nickname ~s does not exist in the room","El sobrenom ~s no existeix a la sala"}.
|
||||
{"Nickname","Sobrenom"}.
|
||||
{"nobody","ningú"}.
|
||||
{"No body provided for announce message","No hi ha proveedor per al missatge anunci"}.
|
||||
{"No Data","No hi ha dades"}.
|
||||
{"Node ID","ID del Node"}.
|
||||
{"Node not found","Node no trobat"}.
|
||||
{"Node ~p","Node ~p"}.
|
||||
{"Nodes","Nodes"}.
|
||||
{"No limit","Sense Llímit"}.
|
||||
{"None","Cap"}.
|
||||
@@ -236,6 +245,7 @@
|
||||
{"Path to File","Ruta al fitxer"}.
|
||||
{"Pending","Pendent"}.
|
||||
{"Period: ","Període: "}.
|
||||
{"Permanent rooms","Sales permanents"}.
|
||||
{"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."}.
|
||||
@@ -253,6 +263,7 @@
|
||||
{"Raw","en format text"}.
|
||||
{"Really delete message of the day?","Segur que vols eliminar el missatge del dia?"}.
|
||||
{"Register a Jabber account","Registrar un compte Jabber"}.
|
||||
{"Registered nicknames","Sobrenoms registrats"}.
|
||||
{"Registered Users:","Usuaris registrats:"}.
|
||||
{"Registered Users","Usuaris registrats"}.
|
||||
{"Register","Registrar"}.
|
||||
@@ -329,15 +340,18 @@
|
||||
{"There was an error changing the password: ","Hi ha hagut un error canviant la contrasenya: "}.
|
||||
{"There was an error creating the account: ","Hi ha hagut un error creant el compte: "}.
|
||||
{"There was an error deleting the account: ","Hi ha hagut un error esborrant el compte: "}.
|
||||
{"This IP address is blacklisted in ~s","Esta adreça IP està a la llista negra en ~s"}.
|
||||
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","Això no distingeix majúscules de minúscules: macbeth es el mateix que MacBeth i 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.","Aquesta pàgina permet crear un compte Jabber en aquest servidor Jabber. El teu JID (Jabber IDentifier; Identificador Jabber) tindrà aquesta forma: usuari@servidor. Si us plau, llegeix amb cura les instruccions per emplenar correctament els camps."}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","Aquesta pàgina permet anul·lar el registre d'un compte Jabber en aquest servidor Jabber."}.
|
||||
{"This room is not anonymous","Aquesta sala no és anònima"}.
|
||||
{"Thursday","Dijous"}.
|
||||
{"Time","Data"}.
|
||||
{"Time delay","Temps de retard"}.
|
||||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Massa autenticacions (~p) han fallat des d'aquesta adreça IP (~s). L'adreça serà desbloquejada en ~s UTC"}.
|
||||
{"Too many unacked stanzas","Massa missatges sense haver reconegut la seva recepció"}.
|
||||
{"To","Per a"}.
|
||||
{"To ~s","A ~s"}.
|
||||
{"Total rooms","Nombre total de sales"}.
|
||||
{"Transactions Aborted:","Transaccions Avortades"}.
|
||||
{"Transactions Committed:","Transaccions Realitzades:"}.
|
||||
{"Transactions Logged:","Transaccions registrades"}.
|
||||
@@ -349,6 +363,7 @@
|
||||
{"Update","Actualitzar"}.
|
||||
{"Update message of the day (don't send)","Actualitzar el missatge del dia (no enviar)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Actualitza el missatge del dia en tots els hosts (no enviar)"}.
|
||||
{"Update ~p","Actualitzar ~p"}.
|
||||
{"Update plan","Pla d'actualització"}.
|
||||
{"Update script","Script d'actualització"}.
|
||||
{"Uptime:","Temps en marxa"}.
|
||||
@@ -357,6 +372,7 @@
|
||||
{"User Management","Gestió d'Usuaris"}.
|
||||
{"Username:","Nom d'usuari:"}.
|
||||
{"Users Last Activity","Última activitat d'usuari"}.
|
||||
{"User ~s","Usuari ~s"}.
|
||||
{"Users","Usuaris"}.
|
||||
{"User","Usuari"}.
|
||||
{"Validate","Validar"}.
|
||||
@@ -368,7 +384,7 @@
|
||||
{"Whether to allow subscriptions","Permetre subscripcions"}.
|
||||
{"You can later change your password using a Jabber client.","Podràs canviar la teva contrasenya més endavant utilitzant un client Jabber."}.
|
||||
{"You need a client that supports x:data and CAPTCHA to register","Necessites un client amb suport x:data i de CAPTCHA para poder registrar-te"}.
|
||||
{"You need a client that supports x:data to register the nickname","Necessites un client amb suport x:data per a poder registrar el Nickname"}.
|
||||
{"You need a client that supports x:data to register the nickname","Necessites un client amb suport x:data per a poder registrar el sobrenom"}.
|
||||
{"You need an x:data capable client to configure mod_irc settings","Necessites un client amb suport x:data per a configurar les opcions de mod_irc"}.
|
||||
{"You need an x:data capable client to configure room","Necessites un client amb suport x:data per a configurar la sala"}.
|
||||
{"You need an x:data capable client to search","Necessites un client amb suport x:data per a poder buscar"}.
|
||||
|
||||
+548
-511
File diff suppressed because it is too large
Load Diff
@@ -61,7 +61,6 @@
|
||||
{"Delete message of the day on all hosts","Smazat zprávu dne na všech hostitelích"}.
|
||||
{"Delete message of the day","Smazat zprávu dne"}.
|
||||
{"Delete Selected","Smazat vybrané"}.
|
||||
{"Delete","Smazat"}.
|
||||
{"Delete User","Smazat uživatele"}.
|
||||
{"Deliver event notifications","Doručovat upozornění na události"}.
|
||||
{"Deliver payloads with event notifications","Doručovat náklad s upozorněním na událost"}.
|
||||
@@ -332,7 +331,6 @@
|
||||
{"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."}.
|
||||
{"This room is not anonymous","Tato místnost není anonymní"}.
|
||||
{"Thursday","Čtvrtek"}.
|
||||
{"Time","Čas"}.
|
||||
{"Time delay","Časový posun"}.
|
||||
|
||||
+531
-487
File diff suppressed because it is too large
Load Diff
+43
-27
@@ -7,7 +7,7 @@
|
||||
{"Access Rules","Zugangsregeln"}.
|
||||
{"Action on user","Aktion auf Benutzer"}.
|
||||
{"Add Jabber ID","Jabber-ID hinzufügen"}.
|
||||
{"Add New","Neue hinzufügen"}.
|
||||
{"Add New","Neue(n) hinzufügen"}.
|
||||
{"Add User","Benutzer hinzufügen"}.
|
||||
{"Administration of ","Administration von "}.
|
||||
{"Administration","Verwaltung"}.
|
||||
@@ -18,7 +18,7 @@
|
||||
{"Allow users to query other users","Erlaube Benutzern Informationen über andere Benutzer abzufragen"}.
|
||||
{"Allow users to send invites","Erlaube Benutzern Einladungen zu senden"}.
|
||||
{"Allow users to send private messages","Erlaube Benutzern private Nachrichten zu senden"}.
|
||||
{"Allow visitors to change nickname","Erlaube Besuchern ihren Spitznamen zu ändern"}.
|
||||
{"Allow visitors to change nickname","Erlaube Besuchern ihren Benutzernamen zu ändern"}.
|
||||
{"Allow visitors to send private messages to","Erlaube Besuchern das Senden von privaten Nachrichten an"}.
|
||||
{"Allow visitors to send status text in presence updates","Erlaube Besuchern einen Text bei Statusänderung zu senden"}.
|
||||
{"Allow visitors to send voice requests","Anfragen von Sprachrechten für Benutzer erlauben"}.
|
||||
@@ -29,6 +29,7 @@
|
||||
{"August","August"}.
|
||||
{"Backup","Datensicherung"}.
|
||||
{"Backup Management","Datensicherungsverwaltung"}.
|
||||
{"Backup of ~p","Sicherung von ~p"}.
|
||||
{"Backup to File at ","Datensicherung in die Datei "}.
|
||||
{"Bad format","Ungültiges Format"}.
|
||||
{"Birthday","Geburtsdatum"}.
|
||||
@@ -45,7 +46,7 @@
|
||||
{"Choose a username and password to register with this server","Wählen sie zum Registrieren einen Benutzernamen und ein Passwort"}.
|
||||
{"Choose modules to stop","Wähle zu stoppende Module"}.
|
||||
{"Choose storage type of tables","Wähle Speichertyp der Tabellen"}.
|
||||
{"Choose whether to approve this entity's subscription.","Wähle Sie, ob dieses Abonnement akzeptiert werden soll."}.
|
||||
{"Choose whether to approve this entity's subscription.","Wählen sie, ob dieses Abonnement akzeptiert werden soll."}.
|
||||
{"City","Stadt"}.
|
||||
{"Commands","Befehle"}.
|
||||
{"Configuration","Konfiguration"}.
|
||||
@@ -55,10 +56,10 @@
|
||||
{"Country","Land"}.
|
||||
{"CPU Time:","CPU-Zeit:"}.
|
||||
{"Database","Datenbank"}.
|
||||
{"Database Tables at ~p","Datenbanktabellen auf ~p"}.
|
||||
{"Database Tables Configuration at ","Datenbanktabellen-Konfiguration auf "}.
|
||||
{"December","Dezember"}.
|
||||
{"Default users as participants","Standardbenutzer als Teilnehmer"}.
|
||||
{"Delete","Löschen"}.
|
||||
{"Default users as participants","Benutzer werden standardmäßig vollwertige Teilnehmer"}.
|
||||
{"Delete message of the day","Lösche Nachricht des Tages"}.
|
||||
{"Delete message of the day on all hosts","Lösche Nachricht des Tages auf allen Hosts"}.
|
||||
{"Delete Selected","Markierte löschen"}.
|
||||
@@ -75,6 +76,7 @@
|
||||
{"Either approve or decline the voice request.","Diese Anfrage für Sprachrechte bestätigen oder ablehnen."}.
|
||||
{"ejabberd IRC module","ejabberd IRC-Modul"}.
|
||||
{"ejabberd MUC module","ejabberd MUC-Modul"}.
|
||||
{"ejabberd Multicast service","ejabberd Multicast Dienst"}.
|
||||
{"ejabberd Publish-Subscribe module","ejabberd Publish-Subscribe-Modul"}.
|
||||
{"ejabberd SOCKS5 Bytestreams module","ejabberd SOCKS5-Bytestreams-Modul"}.
|
||||
{"ejabberd vCard module","ejabberd vCard-Modul"}.
|
||||
@@ -82,27 +84,29 @@
|
||||
{"Elements","Elemente"}.
|
||||
{"Email","E-Mail"}.
|
||||
{"Enable logging","Protokollierung aktivieren"}.
|
||||
{"Enable message archiving","Nachrichtenarchivierung aktivieren"}.
|
||||
{"Encoding for server ~b","Kodierung für Server ~b"}.
|
||||
{"End User Session","Benutzer-Sitzung beenden"}.
|
||||
{"Enter list of {Module, [Options]}","Geben sie eine Liste bestehend aus {Modul, [Optionen]} ein"}.
|
||||
{"Enter nickname you want to register","Geben sie den zu registrierenden Benutzernamen ein"}.
|
||||
{"Enter path to backup file","Geben sie den Pfad zur Datensicherung ein"}.
|
||||
{"Enter path to jabberd14 spool dir","Geben Sie den Pfad zum jabberd14-Spool-Verzeichnis ein"}.
|
||||
{"Enter path to jabberd14 spool file","Geben Sie den Pfad zur jabberd14-Spool-Datei ein"}.
|
||||
{"Enter path to jabberd14 spool dir","Geben sie den Pfad zum jabberd14-Spool-Verzeichnis ein"}.
|
||||
{"Enter path to jabberd14 spool file","Geben sie den Pfad zur jabberd14-Spool-Datei ein"}.
|
||||
{"Enter path to text file","Geben sie den Pfad zur Textdatei ein"}.
|
||||
{"Enter the text you see","Geben sie den Text den sie sehen ein"}.
|
||||
{"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.","Geben sie Benutzernamen und Kodierung für Verbindungen zu IRC Servern an. Drücken sie 'Mehr' um leere Felder hinzuzufügen. Drücken sie 'Beenden' um die Einstellungen zu speichern."}.
|
||||
{"Enter username, encodings, ports and passwords you wish to use for connecting to IRC servers","Geben Sie Benutzernamen und Zeichenkodierung für die Verbindung zum IRC-Server an"}.
|
||||
{"Enter username, encodings, ports and passwords you wish to use for connecting to IRC servers","Geben sie den Benutzernamen, Zeichenkodierung, Ports und Passwörter, die sie für die Verbindung zum IRC-Server verwenden wollen, an"}.
|
||||
{"Erlang Jabber Server","Erlang Jabber Server"}.
|
||||
{"Error","Fehler"}.
|
||||
{"Example: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"secret\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.sometestserver.net\", \"utf-8\"}].","Beispiel: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"secret\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.sometestserver.net\", \"utf-8\"}]."}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Von CAPTCHA Überprüfung ausgeschlossene Jabber IDs"}.
|
||||
{"Export all tables as SQL queries to a file:","Alle Tabellen als SQL Abfragen in eine Datei exportieren:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Alle Benutzerdaten des Servers in PIEFXIS Dateien (XEP-0227) exportieren:"}.
|
||||
{"Export data of users in a host to PIEFXIS files (XEP-0227):","Alle Benutzerdaten des Hosts in PIEFXIS Dateien (XEP-0227) exportieren:"}.
|
||||
{"Family Name","Nachname"}.
|
||||
{"February","Februar"}.
|
||||
{"Fill in fields to search for any matching Jabber User","Füllen Sie die Felder aus, um nach passenden Jabber-Benutzern zu suchen"}.
|
||||
{"Fill in the form to search for any matching Jabber User (Add * to the end of field to match substring)","Füllen Sie die Felder aus, um nach passenden Jabber-Benutzern zu suchen (beenden Sie ein Feld mit *, um auch nach Teilzeichenketten zu suchen)"}.
|
||||
{"Fill in fields to search for any matching Jabber User","Füllen sie die Felder aus, um nach bestimmten Jabber-Benutzern zu suchen"}.
|
||||
{"Fill in the form to search for any matching Jabber User (Add * to the end of field to match substring)","Füllen sie die Felder aus, um nach passenden Jabber-Benutzern zu suchen (beenden Sie ein Feld mit *, um auch nach Teilzeichenketten zu suchen)"}.
|
||||
{"Friday","Freitag"}.
|
||||
{"From ~s","Von ~s"}.
|
||||
{"From","Von"}.
|
||||
@@ -116,10 +120,10 @@
|
||||
{"Group ","Gruppe "}.
|
||||
{"Groups","Gruppen"}.
|
||||
{"has been banned","wurde gebannt"}.
|
||||
{"has been kicked because of an affiliation change","wurde wegen Änderung des Mitgliederstatus gekickt"}.
|
||||
{"has been kicked because of a system shutdown","wurde wegen Systemabschaltung gekickt"}.
|
||||
{"has been kicked because the room has been changed to members-only","wurde gekickt weil der Raum auf Nur-Mitglieder umgestellt wurde"}.
|
||||
{"has been kicked","wurde gekickt"}.
|
||||
{"has been kicked because of an affiliation change","wurde wegen Änderung des Mitgliederstatus entfernt"}.
|
||||
{"has been kicked because of a system shutdown","wurde wegen einer Systemabschaltung entfernt"}.
|
||||
{"has been kicked because the room has been changed to members-only","wurde entfernt weil der Raum auf Nur-Mitglieder umgestellt wurde"}.
|
||||
{"has been kicked","wurde entfernt"}.
|
||||
{" has set the subject to: "," hat das Thema geändert auf: "}.
|
||||
{"Host","Host"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","Wenn sie das CAPTCHA Bild nicht sehen, besuchen sie bitte die Webseite."}.
|
||||
@@ -161,6 +165,7 @@
|
||||
{"Listened Ports","Aktive Ports"}.
|
||||
{"Listened Ports at ","Aktive Ports bei"}.
|
||||
{"List of modules to start","Liste der zu startenden Module"}.
|
||||
{"List of rooms","Liste von Chaträumen"}.
|
||||
{"Low level update script","Low level Aktualisierungsscript"}.
|
||||
{"Make participants list public","Teilnehmerliste öffentlich machen"}.
|
||||
{"Make room CAPTCHA protected","Raum mit Verifizierung (Captcha) versehen"}.
|
||||
@@ -183,8 +188,11 @@
|
||||
{"moderators only","ausschliesslich Moderatoren"}.
|
||||
{"Modified modules","Geänderte Module"}.
|
||||
{"Module","Modul"}.
|
||||
{"Modules at ~p","Module bei ~p"}.
|
||||
{"Modules","Module"}.
|
||||
{"Monday","Montag"}.
|
||||
{"Multicast","Multicast"}.
|
||||
{"Multi-User Chat","Mehrbenutzer-Chat (MUC)"}.
|
||||
{"Name:","Name:"}.
|
||||
{"Name","Vorname"}.
|
||||
{"Never","Nie"}.
|
||||
@@ -193,10 +201,11 @@
|
||||
{"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ündigung angegeben"}.
|
||||
{"No body provided for announce message","Kein Text für die Ankündigungsnachricht angegeben"}.
|
||||
{"No Data","Keine Daten"}.
|
||||
{"Node ID","Knoten-ID"}.
|
||||
{"Node not found","Knoten nicht gefunden"}.
|
||||
{"Node ~p","Knoten ~p"}.
|
||||
{"Nodes","Knoten"}.
|
||||
{"No limit","Keine Begrenzung"}.
|
||||
{"None","Keine"}.
|
||||
@@ -221,7 +230,7 @@
|
||||
{"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"}.
|
||||
{"Options","Optionen"}.
|
||||
{"Organization Name","Organisation"}.
|
||||
{"Organization Name","Name der Organisation"}.
|
||||
{"Organization Unit","Abteilung"}.
|
||||
{"Outgoing s2s Connections:","Ausgehende s2s-Verbindungen:"}.
|
||||
{"Outgoing s2s Connections","Ausgehende s2s-Verbindungen"}.
|
||||
@@ -234,8 +243,9 @@
|
||||
{"Password Verification","Passwort bestätigen"}.
|
||||
{"Path to Dir","Pfad zum Verzeichnis"}.
|
||||
{"Path to File","Pfad zur Datei"}.
|
||||
{"Pending","anhängig"}.
|
||||
{"Pending","Schwebend"}.
|
||||
{"Period: ","Zeitraum: "}.
|
||||
{"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."}.
|
||||
@@ -254,6 +264,7 @@
|
||||
{"Really delete message of the day?","Die Nachricht des Tages wirklich löschen?"}.
|
||||
{"Register a Jabber account","Jabber Konto registrieren"}.
|
||||
{"Register","Anmelden"}.
|
||||
{"Registered nicknames","Registrierte Benutzernamen"}.
|
||||
{"Registered Users:","Registrierte Benutzer:"}.
|
||||
{"Registered Users","Registrierte Benutzer"}.
|
||||
{"Registration in mod_irc for ","Registrierung in mod_irc für "}.
|
||||
@@ -295,10 +306,10 @@
|
||||
{"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"}.
|
||||
{"Show Integral Table","Vollständige Tabelle anzeigen"}.
|
||||
{"Show Ordinary Table","Normale Tabelle anzeigen"}.
|
||||
{"Show Integral Table","Integrale Tabelle anzeigen"}.
|
||||
{"Show Ordinary Table","Gewöhnliche Tabelle anzeigen"}.
|
||||
{"Shut Down Service","Dienst herunterfahren"}.
|
||||
{"~s invites you to the room ~s","~s lädt Sie in den Raum ~s ein"}.
|
||||
{"~s invites you to the room ~s","~s lädt sie in den Raum ~s ein"}.
|
||||
{"Some Jabber clients can store your password in your computer. Use that feature only if you trust your computer is safe.","Einige Jabber Client Programme speichern ihr Passwort auf ihrem Computer. Verwenden sie diese Möglichkeit nur auf Computern, die sie als sicher einstufen."}.
|
||||
{"Specify the access model","Geben sie das Zugangsmodell an"}.
|
||||
{"Specify the event message type","Geben sie den Ereignis-Nachrichtentyp an"}.
|
||||
@@ -308,10 +319,10 @@
|
||||
{"Start Modules","Module starten"}.
|
||||
{"Start","Starten"}.
|
||||
{"Statistics of ~p","Statistiken von ~p"}.
|
||||
{"Statistics","Statistik"}.
|
||||
{"Statistics","Statistiken"}.
|
||||
{"Stop Modules at ","Stoppe Module auf "}.
|
||||
{"Stop Modules","Module stoppen"}.
|
||||
{"Stopped Nodes","Inaktive Knoten"}.
|
||||
{"Stopped Nodes","Angehaltene Knoten"}.
|
||||
{"Stop","Stoppen"}.
|
||||
{"Storage Type","Speichertyp"}.
|
||||
{"Store binary backup:","Speichere binäre Sicherung:"}.
|
||||
@@ -326,18 +337,21 @@
|
||||
{"The collections with which a node is affiliated","Sammlungen, mit denen ein Knoten verknüpft ist"}.
|
||||
{"the password is","das Passwort lautet"}.
|
||||
{"The password of your Jabber account was successfully changed.","Das Passwort von ihrem Jabber Konto wurde geändert."}.
|
||||
{"There was an error changing the password: ","Es trat ein Fehler beim Ändern des Passworts auf:"}.
|
||||
{"There was an error creating the account: ","Es trat ein Fehler beim erstellen des Kontos auf:"}.
|
||||
{"There was an error deleting the account: ","Es trat ein Fehler beim Löschen des Kontos auf:"}.
|
||||
{"There was an error changing the password: ","Es trat ein Fehler beim Ändern des Passworts auf: "}.
|
||||
{"There was an error creating the account: ","Es trat ein Fehler beim Erstellen des Kontos auf: "}.
|
||||
{"There was an error deleting the account: ","Es trat ein Fehler beim Löschen des Kontos auf: "}.
|
||||
{"This IP address is blacklisted in ~s","Diese IP Adresse ist blockiert in ~s"}.
|
||||
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","Groß/Klein-Schreibung spielt hierbei keine Rolle: macbeth ist gleich MacBeth und 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.","Diese Seite erlaubt das anlegen eines Jabber Kontos auf diesem Jabber Server. Ihre JID (Jabber IDentifier) setzt sich folgend zusammen: benutzername@server. Bitte lesen sie die Hinweise genau durch, um die Felder korrekt auszufüllen."}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","Diese Seite erlaubt es, ein Jabber Konto von diesem Server zu entfernen."}.
|
||||
{"This room is not anonymous","Dieser Raum ist nicht anonym"}.
|
||||
{"Thursday","Donnerstag"}.
|
||||
{"Time delay","Zeitverzögerung"}.
|
||||
{"Time","Zeit"}.
|
||||
{"To","An"}.
|
||||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Zu viele (~p) fehlgeschlagene Anmeldeversuche von dieser IP Adresse (~s). Die Adresse wird bis ~s UTC blockiert."}.
|
||||
{"Too many unacked stanzas","Zu viele unbestätigte Stanzas"}.
|
||||
{"To ~s","An ~s"}.
|
||||
{"Total rooms","Alle Chaträume"}.
|
||||
{"Transactions Aborted:","Abgebrochene Transaktionen:"}.
|
||||
{"Transactions Committed:","Durchgeführte Transaktionen:"}.
|
||||
{"Transactions Logged:","Protokollierte Transaktionen:"}.
|
||||
@@ -349,6 +363,7 @@
|
||||
{"Update","Aktualisieren"}.
|
||||
{"Update message of the day (don't send)","Aktualisiere Nachricht des Tages (nicht senden)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Aktualisiere Nachricht des Tages auf allen Hosts (nicht senden)"}.
|
||||
{"Update ~p","Aktualisierung ~p"}.
|
||||
{"Update plan","Aktualisierungsplan"}.
|
||||
{"Update script","Aktualisierungsscript"}.
|
||||
{"Uptime:","Betriebszeit:"}.
|
||||
@@ -358,13 +373,14 @@
|
||||
{"User Management","Benutzerverwaltung"}.
|
||||
{"Username:","Benutzername:"}.
|
||||
{"Users","Benutzer"}.
|
||||
{"User ~s","Benutzer ~s"}.
|
||||
{"Users Last Activity","Letzte Benutzeraktivität"}.
|
||||
{"Validate","Validieren"}.
|
||||
{"vCard User Search","vCard-Benutzer-Suche"}.
|
||||
{"Virtual Hosts","Virtuelle Hosts"}.
|
||||
{"Voice request","Anfrage für Sprachrechte"}.
|
||||
{"Wednesday","Mittwoch"}.
|
||||
{"When to send the last published item","Wann soll das letzte veröffentlichte Objekt gesendet werden"}.
|
||||
{"When to send the last published item","Wann das letzte veröffentlichte Objekt gesendet werden soll"}.
|
||||
{"Whether to allow subscriptions","Ob Abonnements erlaubt sind"}.
|
||||
{"You can later change your password using a Jabber client.","Sie können das Passwort später mit einem Jabber Client Programm ändern."}.
|
||||
{"You need a client that supports x:data and CAPTCHA to register","Sie benötigen einen Client, der x:data und CAPTCHA unterstützt, um Ihren Benutzernamen zu registrieren"}.
|
||||
|
||||
+564
-526
File diff suppressed because it is too large
Load Diff
+522
-488
File diff suppressed because it is too large
Load Diff
@@ -62,7 +62,6 @@
|
||||
{"Delete message of the day","Διαγράψτε το μήνυμα της ημέρας"}.
|
||||
{"Delete Selected","Διαγραφή επιλεγμένων"}.
|
||||
{"Delete User","Διαγραφή Χρήστη"}.
|
||||
{"Delete","Διαγραφή"}.
|
||||
{"Deliver event notifications","Κοινοποιήσεις παράδοσης"}.
|
||||
{"Deliver payloads with event notifications","Κοινοποιήσεις με την παράδοση φορτίων"}.
|
||||
{"Description:","Περιγραφή:"}.
|
||||
@@ -332,7 +331,6 @@
|
||||
{"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 σε αυτόν το διακομιστή Jabber. JID σας (Jabber Identifier) θα είναι της μορφής: όνομα_χρήστη@διακομιστής_Jabber. Παρακαλώ διαβάστε προσεκτικά τις οδηγίες για να συμπληρώσετε σωστά τα πεδία."}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","Η σελίδα αυτή δίνει τη δυνατότητα να καταργήσετε την καταχώρηση ενός λογαριασμό Jabber σε αυτόν το διακομιστή Jabber."}.
|
||||
{"This room is not anonymous","Η αίθουσα αυτή δεν είναι ανώνυμη"}.
|
||||
{"Thursday","Πέμπτη"}.
|
||||
{"Time delay","Χρόνος καθυστέρησης"}.
|
||||
{"Time","Χρόνος"}.
|
||||
|
||||
+531
-487
File diff suppressed because it is too large
Load Diff
+19
-2
@@ -29,6 +29,7 @@
|
||||
{"August","Aŭgusto"}.
|
||||
{"Backup","Faru Sekurkopion"}.
|
||||
{"Backup Management","Mastrumado de sekurkopioj"}.
|
||||
{"Backup of ~p","Sekurkopio de ~p"}.
|
||||
{"Backup to File at ","Faru sekurkopion je "}.
|
||||
{"Bad format","Malĝusta formo"}.
|
||||
{"Birthday","Naskiĝtago"}.
|
||||
@@ -55,10 +56,10 @@
|
||||
{"Country","Lando"}.
|
||||
{"CPU Time:","CPU-tempo"}.
|
||||
{"Database","Datumbazo"}.
|
||||
{"Database Tables at ~p","Datumbaz-tabeloj je ~p"}.
|
||||
{"Database Tables Configuration at ","Agordo de datumbaz-tabeloj je "}.
|
||||
{"December","Decembro"}.
|
||||
{"Default users as participants","Kutime farigu uzantojn kiel partpoprenantoj"}.
|
||||
{"Delete","Forigu"}.
|
||||
{"Delete message of the day","Forigu mesaĝo de la tago"}.
|
||||
{"Delete message of the day on all hosts","Forigu mesaĝo de la tago je ĉiu gastigo"}.
|
||||
{"Delete Selected","Forigu elektata(j)n"}.
|
||||
@@ -75,6 +76,7 @@
|
||||
{"Either approve or decline the voice request.","Ĉu aprobu, aŭ malaprobu la voĉ-peton."}.
|
||||
{"ejabberd IRC module","ejabberd IRC-modulo"}.
|
||||
{"ejabberd MUC module","ejabberd MUC-modulo"}.
|
||||
{"ejabberd Multicast service","ejabberd Multicast-servo"}.
|
||||
{"ejabberd Publish-Subscribe module","ejabberd Public-Abonada modulo"}.
|
||||
{"ejabberd SOCKS5 Bytestreams module","ejabberd SOCKS5 Bajtfluo modulo"}.
|
||||
{"ejabberd vCard module","ejabberd vCard-modulo"}.
|
||||
@@ -82,6 +84,7 @@
|
||||
{"Elements","Eroj"}.
|
||||
{"Email","Retpoŝto"}.
|
||||
{"Enable logging","Ŝaltu protokoladon"}.
|
||||
{"Enable message archiving","Ŝaltu mesaĝo-arkivo"}.
|
||||
{"Encoding for server ~b","Enkodigo por servilo ~b"}.
|
||||
{"End User Session","Haltigu Uzant-seancon"}.
|
||||
{"Enter list of {Module, [Options]}","Enmetu liston de {Modulo, [Elektebloj]}"}.
|
||||
@@ -91,11 +94,13 @@
|
||||
{"Enter path to jabberd14 spool file","Enmetu vojon al jabberd14-uzantdosiero"}.
|
||||
{"Enter path to text file","Enmetu vojon al plata teksto"}.
|
||||
{"Enter the text you see","Enmetu montrita teksto"}.
|
||||
{"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.","Enmetu uzantnomon kaj enkodigojn kiujn vi volas uzi por konektoj al IRC-serviloj. Elektu 'Sekvonto' por ekhavi pliajn kampojn. Elektu 'Kompletigu' por savi agordojn."}.
|
||||
{"Enter username, encodings, ports and passwords you wish to use for connecting to IRC servers","Enmetu uzantnomon,j enkodigojn, pordojn kaj pasvortojn kiujn vi volas uzi por konektoj al IRC-serviloj"}.
|
||||
{"Erlang Jabber Server","Erlang-a Jabber-Servilo"}.
|
||||
{"Error","Eraro"}.
|
||||
{"Example: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"secret\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.sometestserver.net\", \"utf-8\"}].","Ekzemplo: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"sekreto\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.iutestservilo.net\", \"utf-8\"}]."}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Esceptu Ĵabber-identigilojn je CAPTCHA-defio"}.
|
||||
{"Export all tables as SQL queries to a file:","Eksportu ĉiuj tabeloj kiel SQL-informmendo al dosierujo:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Eksportu datumojn de ĉiuj uzantoj en servilo al PIEFXIS dosieroj (XEP-0227):"}.
|
||||
{"Export data of users in a host to PIEFXIS files (XEP-0227):","Eksportu datumoj de uzantoj en gastigo al PIEFXIS dosieroj (XEP-0227):"}.
|
||||
{"Family Name","Lasta Nomo"}.
|
||||
@@ -160,6 +165,7 @@
|
||||
{"Listened Ports at ","Atentataj pordoj je "}.
|
||||
{"Listened Ports","Atentataj pordoj"}.
|
||||
{"List of modules to start","Listo de moduloj por starti"}.
|
||||
{"List of rooms","Listo de babilejoj"}.
|
||||
{"Low level update script","Bazanivela ĝisdatigo-skripto"}.
|
||||
{"Make participants list public","Farigu partoprento-liston publika"}.
|
||||
{"Make room CAPTCHA protected","Farigu babilejon protektata per CAPTCHA"}.
|
||||
@@ -182,8 +188,11 @@
|
||||
{"moderators only","moderantoj sole"}.
|
||||
{"Modified modules","Ĝisdatigitaj moduloj"}.
|
||||
{"Module","Modulo"}.
|
||||
{"Modules at ~p","Moduloj je ~p"}.
|
||||
{"Modules","Moduloj"}.
|
||||
{"Monday","Lundo"}.
|
||||
{"Multicast","Multicast"}.
|
||||
{"Multi-User Chat","Grupbabilado"}.
|
||||
{"Name:","Nomo:"}.
|
||||
{"Name","Nomo"}.
|
||||
{"Never","Neniam"}.
|
||||
@@ -196,6 +205,7 @@
|
||||
{"No Data","Neniu datumo"}.
|
||||
{"Node ID","Nodo ID"}.
|
||||
{"Node not found","Nodo ne trovita"}.
|
||||
{"Node ~p","Nodo ~p"}.
|
||||
{"Nodes","Nodoj"}.
|
||||
{"No limit","Neniu limigo"}.
|
||||
{"None","Nenio"}.
|
||||
@@ -235,6 +245,7 @@
|
||||
{"Path to File","Voje de dosiero"}.
|
||||
{"Pending","Atendanta"}.
|
||||
{"Period: ","Periodo: "}.
|
||||
{"Permanent rooms","Permanentaj babilejoj"}.
|
||||
{"Persist items to storage","Savu erojn en konservado"}.
|
||||
{"Ping","Sondaĵo"}.
|
||||
{"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.","Rimarku ke ĉi tiuj elektebloj nur sekurkopias la propran Mnesia-datumbazon. Se vi uzas la ODBC-modulon, vi ankaŭ devas sekurkopii tiujn SQL-datumbazoj aparte."}.
|
||||
@@ -252,6 +263,7 @@
|
||||
{"Raw","Kruda"}.
|
||||
{"Really delete message of the day?","Ĉu vere forigi mesaĝon de la tago?"}.
|
||||
{"Register a Jabber account","Registru Ĵabber-konton"}.
|
||||
{"Registered nicknames","Registritaj uzantnomoj"}.
|
||||
{"Registered Users:","Registritaj uzantoj:"}.
|
||||
{"Registered Users","Registritaj uzantoj"}.
|
||||
{"Register","Registru"}.
|
||||
@@ -328,15 +340,18 @@
|
||||
{"There was an error changing the password: ","Estis eraro dum ŝanĝi de la pasvortro:"}.
|
||||
{"There was an error creating the account: ","Estis eraro dum kreado de la konto:"}.
|
||||
{"There was an error deleting the account: ","Estis eraro dum forigado de la konto:"}.
|
||||
{"This IP address is blacklisted in ~s","Ĉi tiu IP-adreso estas barata in ~s"}.
|
||||
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","Uskleco ne signifas: macbeth estas la sama ol MacBeth kaj 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.","Jena paĝo ebligas kreadon de Ĵabber-konto je ĉi-Ĵabber-servilo. Via JID (Ĵabber-IDentigilo) estos ĉi-tiel: uzantnomo@servilo. Bonvolu legu bone la instrukciojn por korekta enmetigo de la kampoj. "}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","Jena pagxo ebligas malregistri Jxabber-konton je ĉi-servilo."}.
|
||||
{"This room is not anonymous","Ĉi tiu babilejo ne estas anonima"}.
|
||||
{"Thursday","Ĵaŭdo"}.
|
||||
{"Time delay","Prokrasto"}.
|
||||
{"Time","Tempo"}.
|
||||
{"To","Ĝis"}.
|
||||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Tro da malsukcesaj aŭtentprovoj (~p) de ĉi tiu IP-adreso (~s). La adreso estos malbarata je ~s UTC."}.
|
||||
{"Too many unacked stanzas","Tro da neagnoskitaj stancoj"}.
|
||||
{"To ~s","Al ~s"}.
|
||||
{"Total rooms","Babilejoj"}.
|
||||
{"Transactions Aborted:","Transakcioj nuligitaj"}.
|
||||
{"Transactions Committed:","Transakcioj enmetitaj"}.
|
||||
{"Transactions Logged:","Transakcioj protokolitaj"}.
|
||||
@@ -348,6 +363,7 @@
|
||||
{"Update","Ĝisdatigu"}.
|
||||
{"Update message of the day (don't send)","Ŝanĝu mesaĝon de la tago (ne sendu)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Ŝanĝu mesaĝon de la tago je ĉiu gastigo (ne sendu)"}.
|
||||
{"Update ~p","Ĝisdatigu ~p-n"}.
|
||||
{"Update plan","Ĝisdatigo-plano"}.
|
||||
{"Update script","Ĝisdatigo-skripto"}.
|
||||
{"Uptime:","Daŭro de funkciado"}.
|
||||
@@ -357,6 +373,7 @@
|
||||
{"Username:","Uzantnomo"}.
|
||||
{"Users Last Activity","Lasta aktiveco de uzanto"}.
|
||||
{"Users","Uzantoj"}.
|
||||
{"User ~s","Uzanto ~s"}.
|
||||
{"User","Uzanto"}.
|
||||
{"Validate","Validigu"}.
|
||||
{"vCard User Search","Serĉado de vizitkartoj"}.
|
||||
|
||||
+544
-507
File diff suppressed because it is too large
Load Diff
+8
-2
@@ -60,7 +60,6 @@
|
||||
{"Database Tables Configuration at ","Configuración de tablas de la base de datos en "}.
|
||||
{"December","diciembre"}.
|
||||
{"Default users as participants","Los usuarios son participantes por defecto"}.
|
||||
{"Delete","Eliminar"}.
|
||||
{"Delete message of the day","Borrar mensaje del dia"}.
|
||||
{"Delete message of the day on all hosts","Borrar el mensaje del día en todos los dominios"}.
|
||||
{"Delete Selected","Eliminar los seleccionados"}.
|
||||
@@ -77,6 +76,7 @@
|
||||
{"Either approve or decline the voice request.","Aprueba o rechaza la petición de voz."}.
|
||||
{"ejabberd IRC module","Módulo de IRC para ejabberd"}.
|
||||
{"ejabberd MUC module","Módulo de MUC para ejabberd"}.
|
||||
{"ejabberd Multicast service","Servicio Multicast de ejabberd"}.
|
||||
{"ejabberd Publish-Subscribe module","Módulo de Publicar-Subscribir de ejabberd"}.
|
||||
{"ejabberd SOCKS5 Bytestreams module","Módulo SOCKS5 Bytestreams para ejabberd"}.
|
||||
{"ejabberd vCard module","Módulo vCard para ejabberd"}.
|
||||
@@ -84,6 +84,7 @@
|
||||
{"Elements","Elementos"}.
|
||||
{"Email","correo"}.
|
||||
{"Enable logging","Guardar históricos"}.
|
||||
{"Enable message archiving","Activar el almacenamiento de mensajes"}.
|
||||
{"Encoding for server ~b","Codificación del servidor ~b"}.
|
||||
{"End User Session","Cerrar sesión de usuario"}.
|
||||
{"Enter list of {Module, [Options]}","Introduce lista de {módulo, [opciones]}"}.
|
||||
@@ -164,6 +165,7 @@
|
||||
{"Listened Ports at ","Puertos de escucha en "}.
|
||||
{"Listened Ports","Puertos de escucha"}.
|
||||
{"List of modules to start","Lista de módulos a iniciar"}.
|
||||
{"List of rooms","Lista de salas"}.
|
||||
{"Low level update script","Script de actualización a bajo nivel"}.
|
||||
{"Make participants list public","La lista de participantes es pública"}.
|
||||
{"Make room CAPTCHA protected","Proteger la sala con CAPTCHA"}.
|
||||
@@ -189,6 +191,8 @@
|
||||
{"Modules at ~p","Módulos en ~p"}.
|
||||
{"Modules","Módulos"}.
|
||||
{"Monday","lunes"}.
|
||||
{"Multicast","Multicast"}.
|
||||
{"Multi-User Chat","Salas de Charla"}.
|
||||
{"Name:","Nombre:"}.
|
||||
{"Name","Nombre"}.
|
||||
{"Never","Nunca"}.
|
||||
@@ -241,6 +245,7 @@
|
||||
{"Path to File","Ruta al fichero"}.
|
||||
{"Pending","Pendiente"}.
|
||||
{"Period: ","Periodo: "}.
|
||||
{"Permanent rooms","Salas permanentes"}.
|
||||
{"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."}.
|
||||
@@ -258,6 +263,7 @@
|
||||
{"Raw","Crudo"}.
|
||||
{"Really delete message of the day?","¿Está seguro de quere borrar el mensaje del dia?"}.
|
||||
{"Register a Jabber account","Registrar una cuenta Jabber"}.
|
||||
{"Registered nicknames","Apodos registrados"}.
|
||||
{"Registered Users:","Usuarios registrados:"}.
|
||||
{"Registered Users","Usuarios registrados"}.
|
||||
{"Register","Registrar"}.
|
||||
@@ -338,7 +344,6 @@
|
||||
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","No importa si usas mayúsculas: macbeth es lo mismo que MacBeth y 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 página te permite crear una cuenta Jabber este servidor Jabber. Tu JID (Jabber IDentificador) será de la forma: nombredeusuario@servidor. Por favor lee detenidamente las instrucciones para rellenar correctamente los campos."}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","Esta página te permite borrar tu cuenta Jabber en este servidor Jabber."}.
|
||||
{"This room is not anonymous","Sala no anónima"}.
|
||||
{"Thursday","jueves"}.
|
||||
{"Time delay","Retraso temporal"}.
|
||||
{"Time","Fecha"}.
|
||||
@@ -346,6 +351,7 @@
|
||||
{"Too many unacked stanzas","Demasiados mensajes sin haber reconocido recibirlos"}.
|
||||
{"To","Para"}.
|
||||
{"To ~s","A ~s"}.
|
||||
{"Total rooms","Salas totales"}.
|
||||
{"Transactions Aborted:","Transacciones abortadas:"}.
|
||||
{"Transactions Committed:","Transacciones finalizadas:"}.
|
||||
{"Transactions Logged:","Transacciones registradas:"}.
|
||||
|
||||
+529
-488
File diff suppressed because it is too large
Load Diff
+27
-2
@@ -19,13 +19,16 @@
|
||||
{"Allow users to send invites","Permettre aux utilisateurs d'envoyer des invitations"}.
|
||||
{"Allow users to send private messages","Autoriser les utilisateurs à envoyer des messages privés"}.
|
||||
{"Allow visitors to change nickname","Autoriser les visiteurs à changer de pseudo"}.
|
||||
{"Allow visitors to send private messages to","Autoriser les visiteurs à envoyer des messages privés"}.
|
||||
{"Allow visitors to send status text in presence updates","Autoriser les visiteurs à envoyer un message d'état avec leur présence"}.
|
||||
{"Allow visitors to send voice requests","Permettre aux visiteurs d'envoyer des demandes de 'voice'"}.
|
||||
{"All Users","Tous les utilisateurs"}.
|
||||
{"Announcements","Annonces"}.
|
||||
{"anyone","tout le monde"}.
|
||||
{"April","Avril"}.
|
||||
{"August","Août"}.
|
||||
{"Backup Management","Gestion des sauvegardes"}.
|
||||
{"Backup of ~p","Sauvegarde de ~p"}.
|
||||
{"Backup","Sauvegarde"}.
|
||||
{"Backup to File at ","Sauvegarde sur fichier sur "}.
|
||||
{"Bad format","Mauvais format"}.
|
||||
@@ -53,13 +56,13 @@
|
||||
{"Country","Pays"}.
|
||||
{"CPU Time:","Temps CPU :"}.
|
||||
{"Database","Base de données"}.
|
||||
{"Database Tables at ~p","Tables de base de données sur ~p"}.
|
||||
{"Database Tables Configuration at ","Configuration des tables de base de données sur "}.
|
||||
{"December","Décembre"}.
|
||||
{"Default users as participants","Les utilisateurs sont par défaut participant"}.
|
||||
{"Delete message of the day on all hosts","Supprimer le message du jour sur tous les domaines"}.
|
||||
{"Delete message of the day","Supprimer le message du jour"}.
|
||||
{"Delete Selected","Suppression des éléments sélectionnés"}.
|
||||
{"Delete","Supprimer"}.
|
||||
{"Delete User","Supprimer l'utilisateur"}.
|
||||
{"Deliver event notifications","Envoyer les notifications d'événement"}.
|
||||
{"Deliver payloads with event notifications","Inclure le contenu du message avec la notification"}.
|
||||
@@ -70,8 +73,10 @@
|
||||
{"Dump Backup to Text File at ","Enregistrer la sauvegarde dans un fichier texte sur "}.
|
||||
{"Dump to Text File","Sauvegarder dans un fichier texte"}.
|
||||
{"Edit Properties","Modifier les propriétés"}.
|
||||
{"Either approve or decline the voice request.","Approuver ou refuser la demande de 'voice'"}.
|
||||
{"ejabberd IRC module","Module IRC ejabberd"}.
|
||||
{"ejabberd MUC module","Module MUC ejabberd"}.
|
||||
{"ejabberd Multicast service","Service de Multidiffusion d'ejabberd"}.
|
||||
{"ejabberd Publish-Subscribe module","Module Publish-Subscribe d'ejabberd"}.
|
||||
{"ejabberd SOCKS5 Bytestreams module","ejabberd SOCKS5 Bytestreams module"}.
|
||||
{"ejabberd vCard module","Module vCard ejabberd"}.
|
||||
@@ -79,6 +84,7 @@
|
||||
{"Elements","Éléments"}.
|
||||
{"Email","Email"}.
|
||||
{"Enable logging","Activer l'archivage"}.
|
||||
{"Enable message archiving","Activer l'archivage de messages"}.
|
||||
{"Encoding for server ~b","Codage pour le serveur ~b"}.
|
||||
{"End User Session","Terminer la session de l'utilisateur"}.
|
||||
{"Enter list of {Module, [Options]}","Entrez une liste de {Module, [Options]}"}.
|
||||
@@ -93,6 +99,8 @@
|
||||
{"Erlang Jabber Server","Serveur Jabber Erlang"}.
|
||||
{"Error","Erreur"}.
|
||||
{"Example: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"secret\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.sometestserver.net\", \"utf-8\"}].","Exemple: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"secret\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.sometestserver.net\", \"utf-8\"}]."}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Exempter des Jabberd IDs du test CAPTCHA"}.
|
||||
{"Export all tables as SQL queries to a file:","Exporter toutes les tables en tant que requêtes SQL vers un fichier:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Exporter les données de tous les utilisateurs du serveur vers un fichier PIEFXIS (XEP-0227):"}.
|
||||
{"Export data of users in a host to PIEFXIS files (XEP-0227):","Exporter les données utilisateurs d'un hôte vers un fichier PIEFXIS (XEP-0227):"}.
|
||||
{"Family Name","Nom de famille"}.
|
||||
@@ -108,6 +116,7 @@
|
||||
{"Get User Last Login Time","Récupérer la dernière date de connexion de l'utilisateur"}.
|
||||
{"Get User Password","Récupérer le mot de passe de l'utilisateur"}.
|
||||
{"Get User Statistics","Récupérer les statistiques de l'utilisateur"}.
|
||||
{"Grant voice to this person?","Accorder 'voice' à cet utilisateur"}.
|
||||
{"Group ","Groupe "}.
|
||||
{"Groups","Groupes"}.
|
||||
{"has been banned","a été banni"}.
|
||||
@@ -156,6 +165,7 @@
|
||||
{"Listened Ports at ","Ports ouverts sur "}.
|
||||
{"Listened Ports","Ports ouverts"}.
|
||||
{"List of modules to start","Liste des modules à démarrer"}.
|
||||
{"List of rooms","Liste des salons"}.
|
||||
{"Low level update script","Script de mise à jour de bas-niveau"}.
|
||||
{"Make participants list public","Rendre la liste des participants publique"}.
|
||||
{"Make room CAPTCHA protected","Protéger le salon par un CAPTCHA"}.
|
||||
@@ -174,11 +184,15 @@
|
||||
{"Memory","Mémoire"}.
|
||||
{"Message body","Corps du message"}.
|
||||
{"Middle Name","Autre nom"}.
|
||||
{"Minimum interval between voice requests (in seconds)","Intervalle minimum entre les demandes de 'voice' (en secondes)"}.
|
||||
{"moderators only","modérateurs seulement"}.
|
||||
{"Modified modules","Modules mis à jour"}.
|
||||
{"Module","Module"}.
|
||||
{"Modules at ~p","Modules sur ~p"}.
|
||||
{"Modules","Modules"}.
|
||||
{"Monday","Lundi"}.
|
||||
{"Multicast","Multidiffusion"}.
|
||||
{"Multi-User Chat","Discussion de groupe"}.
|
||||
{"Name:","Nom :"}.
|
||||
{"Name","Nom"}.
|
||||
{"Never","Jamais"}.
|
||||
@@ -186,10 +200,12 @@
|
||||
{"Nickname","Pseudo"}.
|
||||
{"Nickname Registration at ","Enregistrement d'un pseudo sur "}.
|
||||
{"Nickname ~s does not exist in the room","Le pseudo ~s n'existe pas dans ce salon"}.
|
||||
{"nobody","personne"}.
|
||||
{"No body provided for announce message","Pas de corps de message pour l'annonce"}.
|
||||
{"No Data","Aucune information disponible"}.
|
||||
{"Node ID","Identifiant du nœud"}.
|
||||
{"Node not found","Noeud non trouvé"}.
|
||||
{"Node ~p","Noeud ~p"}.
|
||||
{"Nodes","Noeuds"}.
|
||||
{"No limit","Pas de limite"}.
|
||||
{"None","Aucun"}.
|
||||
@@ -229,6 +245,7 @@
|
||||
{"Path to File","Chemin vers le fichier"}.
|
||||
{"Pending","En suspens"}.
|
||||
{"Period: ","Période :"}.
|
||||
{"Permanent rooms","Salons persistent"}.
|
||||
{"Persist items to storage","Stockage persistant des éléments"}.
|
||||
{"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.","Ces options sauvegardent uniquement la base de données interne Mnesia. Si vous utilisez le module ODBC vous devez sauvegarde votre base SQL séparément."}.
|
||||
@@ -246,6 +263,7 @@
|
||||
{"Raw","Brut"}.
|
||||
{"Really delete message of the day?","Confirmer la suppression du message du jour ?"}.
|
||||
{"Register a Jabber account","Enregistrer un compte Jabber"}.
|
||||
{"Registered nicknames","Pseudos enregistrés"}.
|
||||
{"Registered Users:","Utilisateurs enregistrés:"}.
|
||||
{"Registered Users","Utilisateurs enregistrés"}.
|
||||
{"Register","Enregistrer"}.
|
||||
@@ -322,15 +340,18 @@
|
||||
{"There was an error changing the password: ","Il y a eu une erreur en changeant le mot de passe :"}.
|
||||
{"There was an error creating the account: ","Il y a eu une erreur en créant le compte :"}.
|
||||
{"There was an error deleting the account: ","Il y a eu une erreur en effaçant le compte :"}.
|
||||
{"This IP address is blacklisted in ~s","Cette adresse IP est blacklistée dans ~s"}.
|
||||
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","C'est insensible à la casse : macbeth est identique à MacBeth et 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.","Cette page permet de créer un compte Jabber sur ce serveur Jabber. Votre JID (Jabber IDentifier, identifiant Jabber) sera de la forme : nom@serveur. Prière de lire avec attention les instructions pour remplir correctement ces champs."}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","Cette page permet d'effacer un compte Jabber sur ce serveur Jabber."}.
|
||||
{"This room is not anonymous","Ce salon n'est pas anonyme"}.
|
||||
{"Thursday","Jeudi"}.
|
||||
{"Time delay","Délais"}.
|
||||
{"Time","Heure"}.
|
||||
{"To","A"}.
|
||||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Trop (~p) d'authentification ont échoué pour cette adresse IP (~s). L'adresse sera débloquée à ~s UTC"}.
|
||||
{"Too many unacked stanzas","Trop de stanzas sans accusé de réception (ack)"}.
|
||||
{"To ~s","A ~s"}.
|
||||
{"Total rooms","Nombre de salons"}.
|
||||
{"Transactions Aborted:","Transactions annulées :"}.
|
||||
{"Transactions Committed:","Transactions commitées :"}.
|
||||
{"Transactions Logged:","Transactions journalisées :"}.
|
||||
@@ -343,17 +364,21 @@
|
||||
{"Update message of the day on all hosts (don't send)","Mettre à jour le message du jour sur tous les domaines (ne pas envoyer)"}.
|
||||
{"Update","Mettre à jour"}.
|
||||
{"Update plan","Plan de mise à jour"}.
|
||||
{"Update ~p","Mise à jour de ~p"}.
|
||||
{"Update script","Script de mise à jour"}.
|
||||
{"Uptime:","Temps depuis le démarrage :"}.
|
||||
{"Use of STARTTLS required","L'utilisation de STARTTLS est impérative"}.
|
||||
{"User JID","JID de l'utilisateur "}.
|
||||
{"User Management","Gestion des utilisateurs"}.
|
||||
{"Username:","Nom d'utilisateur :"}.
|
||||
{"Users Last Activity","Dernière activité des utilisateurs"}.
|
||||
{"User ~s","Utilisateur ~s"}.
|
||||
{"Users","Utilisateurs"}.
|
||||
{"User","Utilisateur"}.
|
||||
{"Validate","Valider"}.
|
||||
{"vCard User Search","Recherche dans l'annnuaire"}.
|
||||
{"Virtual Hosts","Serveurs virtuels"}.
|
||||
{"Voice request","Demande de 'voice'"}.
|
||||
{"Wednesday","Mercredi"}.
|
||||
{"When to send the last published item","A quel moment envoyer le dernier élément publié"}.
|
||||
{"Whether to allow subscriptions","Autoriser l'abonnement ?"}.
|
||||
|
||||
+551
-516
File diff suppressed because it is too large
Load Diff
@@ -50,7 +50,6 @@
|
||||
{"Database Tables Configuration at ","Configuración de táboas da base de datos en "}.
|
||||
{"December","Decembro"}.
|
||||
{"Default users as participants","Os usuarios son participantes por defecto"}.
|
||||
{"Delete","Eliminar"}.
|
||||
{"Delete message of the day","Borrar mensaxe do dia"}.
|
||||
{"Delete message of the day on all hosts","Borrar a mensaxe do día en todos os dominios"}.
|
||||
{"Delete Selected","Eliminar os seleccionados"}.
|
||||
@@ -299,7 +298,6 @@
|
||||
{"The CAPTCHA is valid.","O CAPTCHA é válido."}.
|
||||
{"The collections with which a node is affiliated","As coleccións coas que un nodo está afiliado"}.
|
||||
{"the password is","a contrasinal é"}.
|
||||
{"This room is not anonymous","Sala non anónima"}.
|
||||
{"Thursday","Xoves"}.
|
||||
{"Time","Data"}.
|
||||
{"Time delay","Atraso temporal"}.
|
||||
|
||||
+531
-487
File diff suppressed because it is too large
Load Diff
+103
-69
@@ -11,9 +11,9 @@
|
||||
{"Add User","הוסף משתמש"}.
|
||||
{"Administration of ","ניהול של "}.
|
||||
{"Administration","הנהלה"}.
|
||||
{"A friendly name for the node","שם ידידותי עבור הממסר"}.
|
||||
{"A friendly name for the node","שם ידידותי עבור הצומת"}.
|
||||
{"All activity","כל פעילות"}.
|
||||
{"Allow this Jabber ID to subscribe to this pubsub node?","להתיר לכתובת JID זו להירשם אל ממסר PubSub זה?"}.
|
||||
{"Allow this Jabber ID to subscribe to this pubsub node?","להתיר לכתובת JID זו להירשם לצומת PubSub זה?"}.
|
||||
{"Allow users to change the subject","התר למשתמשים לשנות את הנושא"}.
|
||||
{"Allow users to query other users","התר למשתמשים לתשאל משתמשים אחרים"}.
|
||||
{"Allow users to send invites","התר למשתמשים לשלוח הזמנות"}.
|
||||
@@ -23,13 +23,14 @@
|
||||
{"Allow visitors to send status text in presence updates","התר למבקרים לשלוח טקסט מצב בעדכוני נוכחות"}.
|
||||
{"Allow visitors to send voice requests","התר למבקרים לשלוח בקשות ביטוי"}.
|
||||
{"All Users","כל המשתמשים"}.
|
||||
{"Announcements","מודעות"}.
|
||||
{"Announcements","בשורות"}.
|
||||
{"anyone","לכל אחד"}.
|
||||
{"April","אפריל"}.
|
||||
{"August","אוגוסט"}.
|
||||
{"Backup Management","ניהול גיבוי"}.
|
||||
{"Backup to File at ","גבה אל קובץ אצל "}.
|
||||
{"Backup","גבה"}.
|
||||
{"Backup of ~p","גיבוי של ~p"}.
|
||||
{"Backup to File at ","גבה לקובץ אצל "}.
|
||||
{"Backup","גיבוי"}.
|
||||
{"Bad format","פורמט רע"}.
|
||||
{"Birthday","יום הולדת"}.
|
||||
{"CAPTCHA web page","עמוד רשת CAPTCHA"}.
|
||||
@@ -37,10 +38,10 @@
|
||||
{"Change User Password","שנה סיסמת משתמש"}.
|
||||
{"Characters not allowed:","תווים לא מורשים:"}.
|
||||
{"Chatroom configuration modified","תצורת חדר שיחה שונתה"}.
|
||||
{"Chatroom is created","חדר שיחה נוצר"}.
|
||||
{"Chatroom is destroyed","חדר שיחה הרוס"}.
|
||||
{"Chatroom is started","חדר שיחה מותחל"}.
|
||||
{"Chatroom is stopped","חדר שיחה הופסק"}.
|
||||
{"Chatroom is created","חדר שיחה הינו נוצר"}.
|
||||
{"Chatroom is destroyed","חדר שיחה הינו הרוס"}.
|
||||
{"Chatroom is started","חדר שיחה הינו מותחל"}.
|
||||
{"Chatroom is stopped","חדר שיחה הינו מופסק"}.
|
||||
{"Chatrooms","חדרי שיחה"}.
|
||||
{"Choose a username and password to register with this server","בחר שם משתמש וסיסמה להירשם עם שרת זה"}.
|
||||
{"Choose modules to stop","בחר מודולים להפסקה"}.
|
||||
@@ -54,57 +55,61 @@
|
||||
{"Connections parameters","פרמטרים של חיבור"}.
|
||||
{"Country","ארץ"}.
|
||||
{"CPU Time:","זמן מחשב (CPU):"}.
|
||||
{"Database Tables at ~p","טבלאות מסד נתונים אצל ~p"}.
|
||||
{"Database Tables Configuration at ","תצורת טבלאות מסד נתונים אצל "}.
|
||||
{"Database","מסד נתונים"}.
|
||||
{"December","דצמבר"}.
|
||||
{"Default users as participants","משתמשים משתמטים כמשתתפים"}.
|
||||
{"Delete message of the day on all hosts","מחק הודעת היום בכל המארחים"}.
|
||||
{"Delete message of the day","מחק הודעת היום"}.
|
||||
{"Delete message of the day on all hosts","מחק את בשורת היום בכל המארחים"}.
|
||||
{"Delete message of the day","מחק את בשורת היום"}.
|
||||
{"Delete Selected","מחק נבחרות"}.
|
||||
{"Delete User","מחק משתמש"}.
|
||||
{"Delete","מחק"}.
|
||||
{"Deliver event notifications","מסירת התראות אירוע"}.
|
||||
{"Deliver payloads with event notifications","מסירת מטען ייעוד (מטע״ד) יחד עם התראות אירוע"}.
|
||||
{"Deliver payloads with event notifications","מסירת מטעני ייעוד (מטע״ד) יחד עם התראות אירוע"}.
|
||||
{"Description:","תיאור:"}.
|
||||
{"Disc only copy","העתק של תקליטור בלבד"}.
|
||||
{"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","השלך אל קובץ טקסט"}.
|
||||
{"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","השלך לקובץ טקסט"}.
|
||||
{"Edit Properties","ערוך מאפיינים"}.
|
||||
{"Either approve or decline the voice request.","או שתאשר או שתדחה את בקשת הביטוי."}.
|
||||
{"ejabberd IRC module","מודול IRC של ejabberd"}.
|
||||
{"ejabberd MUC module","מודול MUC של ejabberd"}.
|
||||
{"ejabberd Multicast service","שירות שידור מרובב של ejabberd"}.
|
||||
{"ejabberd Publish-Subscribe module","מודול Publish-Subscribe של ejabberd"}.
|
||||
{"ejabberd SOCKS5 Bytestreams module","מודול SOCKS5 Bytestreams של ejabberd"}.
|
||||
{"ejabberd vCard module","מודול vCard של ejabberd"}.
|
||||
{"ejabberd Web Admin","מנהל רשת ejabberd"}.
|
||||
{"Elements","אלמנטים"}.
|
||||
{"Email","דוא״ל"}.
|
||||
{"Enable logging","אפשור רישום פעילות"}.
|
||||
{"Enable logging","אפשר רישום פעילות"}.
|
||||
{"Enable message archiving","אפשר אחסון הודעות"}.
|
||||
{"Encoding for server ~b","קידוד עבור שרת ~b"}.
|
||||
{"End User Session","סיים סשן משתמש"}.
|
||||
{"Enter list of {Module, [Options]}","הזן רשימה של {מודול, [אפשרויות]}"}.
|
||||
{"Enter nickname you want to register","הזן שם כינוי אשר ברצונך לרושמו"}.
|
||||
{"Enter path to backup file","הזן נתיב אל קובץ גיבוי"}.
|
||||
{"Enter path to jabberd14 spool dir","הזן נתיב אל מדור סליל (spool dir) של jabberd14"}.
|
||||
{"Enter path to jabberd14 spool file","הזן נתיב אל קובץ סליל (spool file) של jabberd14"}.
|
||||
{"Enter path to text file","הזן נתיב אל קובץ טקסט"}.
|
||||
{"Enter path to backup file","הזן נתיב לקובץ גיבוי"}.
|
||||
{"Enter path to jabberd14 spool dir","הזן נתיב למדור סליל (spool dir) של jabberd14"}.
|
||||
{"Enter path to jabberd14 spool file","הזן נתיב לקובץ סליל (spool file) של jabberd14"}.
|
||||
{"Enter path to text file","הזן נתיב לקובץ טקסט"}.
|
||||
{"Enter the text you see","הזן את הטקסט אותו הינך רואה"}.
|
||||
{"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.","הזן שם משתמש וקידודים בהם ברצונך להשתמש לשם התחברות אל שרתים של IRC. לחץ 'הבא' כדי להשיג עוד שדות למילוי. לחץ 'סיים' כדי לשמור הגדרות."}.
|
||||
{"Enter username, encodings, ports and passwords you wish to use for connecting to IRC servers","הזן שם משתמש, קידודים, פורטים וסיסמאות בהם ברצונך להשתמש לשם התחברות אל שרתים של IRC"}.
|
||||
{"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.","הזן שם משתמש וקידודים בהם ברצונך להשתמש לצורך התחברות לשרתי IRC. לחץ 'הבא' כדי להשיג עוד שדות למילוי. לחץ 'סיים' כדי לשמור הגדרות."}.
|
||||
{"Enter username, encodings, ports and passwords you wish to use for connecting to IRC servers","הזן שם משתמש, קידודים, פורטים וסיסמאות בהם ברצונך להשתמש לצורך התחברות לשרתי IRC"}.
|
||||
{"Erlang Jabber Server","שרת ג׳אבּר Erlang"}.
|
||||
{"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 מתוך אתגר CAPTCHA"}.
|
||||
{"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):"}.
|
||||
{"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):"}.
|
||||
{"Family Name","שם משפחה"}.
|
||||
{"February","פברואר"}.
|
||||
{"Fill in fields to search for any matching Jabber User","מלא את שדות אלו כדי לחפש עבור כל משתמש Jabber מבוקש"}.
|
||||
{"Fill in the form to search for any matching Jabber User (Add * to the end of field to match substring)","מלא את התבניות כדי לחפש עבור כל משתמש Jabber מבוקש (באפשרותך להוסיף * בסוף שדה כדי להתאים אל מחרוזת-משנה)"}.
|
||||
{"Fill in the form to search for any matching Jabber User (Add * to the end of field to match substring)","מלא את התבניות כדי לחפש עבור כל משתמש Jabber מבוקש (באפשרותך להוסיף * בסוף שדה כדי להתאים למחרוזת-משנה)"}.
|
||||
{"Friday","יום שישי"}.
|
||||
{"From ~s","מאת ~s"}.
|
||||
{"From","מן"}.
|
||||
{"From","מאת"}.
|
||||
{"Full Name","שם מלא"}.
|
||||
{"Get Number of Online Users","השג מספר של משתמשים מקוונים"}.
|
||||
{"Get Number of Registered Users","השג מספר של משתמשים רשומים"}.
|
||||
@@ -125,12 +130,12 @@
|
||||
{"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.","אם ברצונך לציין פורטים, סיסמאות, קידודים אחרים עבור שרתים של IRC, מלא את רשימה זו עם ערכים בפורמט '{\"irc server\", \"encoding\", port, \"password\"}'. באופן משתמט שירות זה משתמש בקידוד \"~s\", פורט ~p, סיסמה ריקה."}.
|
||||
{"Import Directory","ייבוא מדור"}.
|
||||
{"Import File","ייבוא קובץ"}.
|
||||
{"Import user data from jabberd14 spool file:","ייבוא נתוני משתמש מתוך קובץ סליל (spool file) של jabberd14:"}.
|
||||
{"Import user data from jabberd14 spool file:","יבא נתוני משתמש מתוך קובץ סליל (spool file) של jabberd14:"}.
|
||||
{"Import User from File at ","ייבוא משתמש מתוך קובץ אצל "}.
|
||||
{"Import users data from a PIEFXIS file (XEP-0227):","ייבוא מידע משתמשים מתוך קובץ PIEFXIS (XEP-0227):"}.
|
||||
{"Import users data from jabberd14 spool directory:","ייבוא נתוני משתמשים מתוך מדור סליל (spool directory) של jabberd14:"}.
|
||||
{"Import users data from a PIEFXIS file (XEP-0227):","יבא מידע משתמשים מתוך קובץ PIEFXIS (XEP-0227):"}.
|
||||
{"Import users data from jabberd14 spool directory:","יבא נתוני משתמשים מתוך מדור סליל (spool directory) של jabberd14:"}.
|
||||
{"Import Users from Dir at ","ייבוא משתמשים מתוך מדור אצל "}.
|
||||
{"Import Users From jabberd14 Spool Files","ייבוא משתמשים מתוך קבצי סליל (Spool Files) של jabberd14"}.
|
||||
{"Import Users From jabberd14 Spool Files","יבא משתמשים מתוך קבצי סליל (Spool Files) של jabberd14"}.
|
||||
{"Invalid affiliation: ~s","סינוף שגוי: ~s"}.
|
||||
{"Invalid role: ~s","תפקיד שגוי: ~s"}.
|
||||
{"IP addresses","כתובות IP"}.
|
||||
@@ -146,18 +151,22 @@
|
||||
{"Jabber ID ~s is invalid","מזהה Jabber ~s הינו שגוי"}.
|
||||
{"Jabber ID","מזהה Jabber"}.
|
||||
{"January","ינואר"}.
|
||||
{"Join IRC channel","הצטרף אל ערוץ IRC"}.
|
||||
{"Join IRC channel","הצטרף לערוץ IRC"}.
|
||||
{"joins the room","נכנס/ת אל החדר"}.
|
||||
{"Join the IRC channel here.","הצטרף אל ערוץ IRC כאן."}.
|
||||
{"Join the IRC channel in this Jabber ID: ~s","הצטרף אל ערוץ IRC במזהה Jabber זה: ~s"}.
|
||||
{"Join the IRC channel here.","הצטרף לערוץ IRC כאן."}.
|
||||
{"Join the IRC channel in this Jabber ID: ~s","הצטרף לערוץ IRC במזהה Jabber זה: ~s"}.
|
||||
{"July","יולי"}.
|
||||
{"June","יוני"}.
|
||||
{"Last Activity","פעילות אחרונה"}.
|
||||
{"Last login","כניסה אחרונה"}.
|
||||
{"Last month","חודש אחרון"}.
|
||||
{"Last year","שנה אחרונה"}.
|
||||
{"leaves the room","עוזב/ת אל החדר"}.
|
||||
{"leaves the room","עוזב/ת את החדר"}.
|
||||
{"Listened Ports at ","פורטים מואזנים אצל "}.
|
||||
{"Listened Ports","פורטים מואזנים"}.
|
||||
{"List of modules to start","רשימה של מודולים להפעלה"}.
|
||||
{"List of rooms","רשימה של חדרים"}.
|
||||
{"Low level update script","תסריט עדכון Low level"}.
|
||||
{"Make participants list public","הפוך רשימת משתתפים אל פומבית"}.
|
||||
{"Make room CAPTCHA protected","הפוך חדר אל מוגן CAPTCHA"}.
|
||||
{"Make room members-only","הפוך חדר אל חברים-בלבד"}.
|
||||
@@ -168,7 +177,7 @@
|
||||
{"March","מרץ"}.
|
||||
{"Maximum Number of Occupants","מספר מרבי של נוכחים"}.
|
||||
{"Max # of items to persist","מספר מרבי של פריטים לקיבוע"}.
|
||||
{"Max payload size in bytes","גודל מרבי של מטען הייעוד ביחידות מידה של byte"}.
|
||||
{"Max payload size in bytes","גודל מרבי של מטען ייעוד (payload) ביחידות מידה של byte"}.
|
||||
{"May","מאי"}.
|
||||
{"Members:","חברים:"}.
|
||||
{"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.","שנן את הסיסמה שלך, או רשום אותה בנייר שמור במקום בטוח. אצל Jabber אין דרך אוטומטית לשחזר את הסיסמה שלך במידה וזו תישמט מתוך זיכרונך."}.
|
||||
@@ -178,9 +187,12 @@
|
||||
{"Minimum interval between voice requests (in seconds)","תדירות מינימלית בין בקשות ביטוי (בשניות)"}.
|
||||
{"moderators only","לאחראים בלבד"}.
|
||||
{"Modified modules","מודולים שהותאמו"}.
|
||||
{"Modules at ~p","מודולים אצל ~p"}.
|
||||
{"Modules","מודולים"}.
|
||||
{"Module","מודול"}.
|
||||
{"Monday","יום שני"}.
|
||||
{"Multicast","שידור מרובב"}.
|
||||
{"Multi-User Chat","שיחה מרובת משתמשים"}.
|
||||
{"Name:","שם:"}.
|
||||
{"Name","שם"}.
|
||||
{"Never","אף פעם"}.
|
||||
@@ -188,17 +200,20 @@
|
||||
{"Nickname Registration at ","רישום שם כינוי אצל "}.
|
||||
{"Nickname ~s does not exist in the room","שם כינוי ~s לא קיים בחדר"}.
|
||||
{"Nickname","שם כינוי"}.
|
||||
{"No body provided for announce message","לא סופק גוף עבור הודעת בשורה"}.
|
||||
{"nobody","אף אחד"}.
|
||||
{"No Data","אין מידע"}.
|
||||
{"Node ID","מזהה ממסר (NID)"}.
|
||||
{"Node not found","ממסר לא נמצא"}.
|
||||
{"Nodes","ממסרים"}.
|
||||
{"Node ID","מזהה צומת (NID)"}.
|
||||
{"Node not found","צומת לא נמצא"}.
|
||||
{"Node ~p","צומת ~p"}.
|
||||
{"Nodes","צמתים"}.
|
||||
{"No limit","ללא הגבלה"}.
|
||||
{"None","אין"}.
|
||||
{"No resource provided","לא סופק משאב"}.
|
||||
{"Not Found","לא נמצא"}.
|
||||
{"Notify subscribers when items are removed from the node","הודע מנויים כאשר פריטים מוסרים מתוך הממסר"}.
|
||||
{"Notify subscribers when the node configuration changes","הודע מנויים כאשר תצורת הממסר משתנה"}.
|
||||
{"Notify subscribers when the node is deleted","הודע מנויים כאשר הממסר נמחק"}.
|
||||
{"Notify subscribers when items are removed from the node","הודע מנויים כאשר פריטים מוסרים מתוך הצומת"}.
|
||||
{"Notify subscribers when the node configuration changes","הודע מנויים כאשר תצורת הצומת משתנה"}.
|
||||
{"Notify subscribers when the node is deleted","הודע מנויים כאשר הצומת נמחק"}.
|
||||
{"November","נובמבר"}.
|
||||
{"Number of occupants","מספר של נוכחים"}.
|
||||
{"Number of online users","מספר של משתמשים מקוונים"}.
|
||||
@@ -211,7 +226,7 @@
|
||||
{"Online Users:","משתמשים מקוונים:"}.
|
||||
{"Online Users","משתמשים מקוונים"}.
|
||||
{"Online","מקוון"}.
|
||||
{"Only deliver notifications to available users","מסור התראות אל משתמשים זמינים בלבד"}.
|
||||
{"Only deliver notifications to available users","מסור התראות למשתמשים זמינים בלבד"}.
|
||||
{"Only moderators and participants are allowed to change the subject in this room","רק אחראים ומשתתפים רשאים לשנות את הנושא בחדר זה"}.
|
||||
{"Only moderators are allowed to change the subject in this room","רק אחראים רשאים לשנות את הנושא בחדר זה"}.
|
||||
{"Options","אפשרויות"}.
|
||||
@@ -220,34 +235,40 @@
|
||||
{"Outgoing s2s Connections:","חיבורי s2s יוצאים:"}.
|
||||
{"Outgoing s2s Connections","חיבורי s2s יוצאים"}.
|
||||
{"Outgoing s2s Servers:","שרתי s2s יוצאים:"}.
|
||||
{"Packet","חבילת מידע"}.
|
||||
{"Password ~b","סיסמה ~b"}.
|
||||
{"Password Verification:","אימות סיסמה:"}.
|
||||
{"Password Verification","אימות סיסמה"}.
|
||||
{"Password:","סיסמה:"}.
|
||||
{"Password","סיסמה"}.
|
||||
{"Path to Dir","נתיב אל מדור"}.
|
||||
{"Path to File","נתיב אל קובץ"}.
|
||||
{"Path to Dir","נתיב למדור"}.
|
||||
{"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, עליך גם לגבות את מסד הנתונים SQL אשר מצוי ברשותך בנפרד."}.
|
||||
{"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 אשר מצוי ברשותך בנפרד."}.
|
||||
{"Pong","פונג"}.
|
||||
{"Port ~b","פורט ~b"}.
|
||||
{"Port","פורט"}.
|
||||
{"Present real Jabber IDs to","הצג כתובות JID ממשיות"}.
|
||||
{"private, ","פרטי, "}.
|
||||
{"Protocol","פרוטוקול"}.
|
||||
{"Publish-Subscribe","Publish-Subscribe"}.
|
||||
{"PubSub subscriber request","בקשת מנוי PubSub"}.
|
||||
{"Purge all items when the relevant publisher goes offline","טיהור כל הפריטים כאשר המפרסם הרלוונטי "}.
|
||||
{"RAM and disc copy","העתק RAM וגם תקליטור"}.
|
||||
{"RAM copy","העתק RAM"}.
|
||||
{"Really delete message of the day?","באמת למחוק את הודעת היום?"}.
|
||||
{"Raw","גולמי"}.
|
||||
{"Really delete message of the day?","באמת למחוק את בשורת היום?"}.
|
||||
{"Register a Jabber account","רשום חשבון Jabber"}.
|
||||
{"Registered nicknames","שמות כינוי רשומים"}.
|
||||
{"Registered Users:","משתמשים רשומים:"}.
|
||||
{"Registered Users","משתמשים רשומים"}.
|
||||
{"Register","הרשם"}.
|
||||
{"Registration in mod_irc for ","רישום בתוך mod_irc עבור "}.
|
||||
{"Remote copy","עותק מרוחק"}.
|
||||
{"Remote copy","העתק מרוחק"}.
|
||||
{"Remove All Offline Messages","הסר את כל ההודעות הלא מקוונות"}.
|
||||
{"Remove User","הסר משתמש"}.
|
||||
{"Remove","הסר"}.
|
||||
@@ -269,69 +290,81 @@
|
||||
{"Roster size","גודל רשימה"}.
|
||||
{"Roster","רשימה"}.
|
||||
{"RPC Call Error","שגיאת קריאת RPC"}.
|
||||
{"Running Nodes","ממסרים שמורצים כעת"}.
|
||||
{"Running Nodes","צמתים מורצים"}.
|
||||
{"~s access rule configuration","~s תצורת כללי גישה"}.
|
||||
{"Saturday","יום שבת"}.
|
||||
{"Script check","בדיקת תסריט"}.
|
||||
{"Search Results for ","תוצאות חיפוש עבור "}.
|
||||
{"Search users in ","חיפוש משתמשים אצל "}.
|
||||
{"Send announcement to all online users on all hosts","שלח מודעות אל כל המשתמשים המקוונים בכל המארחים"}.
|
||||
{"Send announcement to all online users","שלח מודעות אל כל המשתמשים המקוונים"}.
|
||||
{"Send announcement to all users on all hosts","שלח מודעות אל כל המשתמשים בכל המארחים"}.
|
||||
{"Send announcement to all users","שלח מודעות אל כל המשתמשים"}.
|
||||
{"Send announcement to all online users on all hosts","שלח בשורה לכל המשתמשים המקוונים בכל המארחים"}.
|
||||
{"Send announcement to all online users","שלח בשורה לכל המשתמשים המקוונים"}.
|
||||
{"Send announcement to all users on all hosts","שלח בשורה לכל המשתמשים בכל המארחים"}.
|
||||
{"Send announcement to all users","שלח בשורה לכל המשתמשים"}.
|
||||
{"September","ספטמבר"}.
|
||||
{"Server ~b","שרת ~b"}.
|
||||
{"Server:","שרת:"}.
|
||||
{"Set message of the day and send to online users","קבע הודעת היום ושלח אל משתמשים מקוונים"}.
|
||||
{"Set message of the day on all hosts and send to online users","קבע הודעת היום בכל המארחים ושלח אל משתמשים מקוונים"}.
|
||||
{"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","קבוצות רשימה משותפות"}.
|
||||
{"Show Integral Table","הצג טבלה אינטגרלית"}.
|
||||
{"Show Ordinary Table","הצג טבלה רגילה"}.
|
||||
{"Shut Down Service","כבה שירות"}.
|
||||
{"~s invites you to the room ~s","~s מזמינך אל החדר ~s"}.
|
||||
{"~s invites you to the room ~s","~s מזמינך לחדר ~s"}.
|
||||
{"Some Jabber clients can store your password in your computer. Use that feature only if you trust your computer is safe.","לקוחות Jabber מסוימים יכולים לאחסן את הסיסמה שלך על המחשב שלך. השתמש בתכונה זו רק אם אתה סמוך כי המחשב שלך הינו מוגן."}.
|
||||
{"Specify the access model","ציין את מודל הגישה"}.
|
||||
{"Specify the event message type","ציין את טיפוס הודעת האירוע"}.
|
||||
{"Specify the publisher model","ציין את מודל הפרסום"}.
|
||||
{"~s's Offline Messages Queue","תור הודעות לא מקוונות של ~s"}.
|
||||
{"Start Modules at ","התחל מודולים אצל "}.
|
||||
{"Start Modules","התחל מודולים"}.
|
||||
{"Start","התחל"}.
|
||||
{"Statistics of ~p","סטטיסטיקות עבור ~p"}.
|
||||
{"Statistics of ~p","סטטיסטיקות של ~p"}.
|
||||
{"Statistics","סטטיסטיקה"}.
|
||||
{"Stop Modules at ","הפסק מודולים אצל "}.
|
||||
{"Stop Modules","הפסק מודולים"}.
|
||||
{"Stopped Nodes","ממסרים שנפסקו"}.
|
||||
{"Stopped Nodes","צמתים שנפסקו"}.
|
||||
{"Stop","הפסק"}.
|
||||
{"Storage Type","טיפוס אחסון"}.
|
||||
{"Store binary backup:","אחסן גיבוי בינארי:"}.
|
||||
{"Store plain text backup:","אחסן גיבוי טקסט גלוי (plain text):"}.
|
||||
{"Subject","נושא"}.
|
||||
{"Submit","שליחה"}.
|
||||
{"Submitted","נשלח"}.
|
||||
{"Submit","שלח"}.
|
||||
{"Subscriber Address","כתובת מנוי"}.
|
||||
{"Subscription","מִנּוּי"}.
|
||||
{"Subscription","הרשמה"}.
|
||||
{"Sunday","יום ראשון"}.
|
||||
{"The CAPTCHA is valid.","CAPTCHA הינה בתוקף."}.
|
||||
{"The collections with which a node is affiliated","האוספים עמם צומת מסונף"}.
|
||||
{"the password is","הסיסמה היא"}.
|
||||
{"The password of your Jabber account was successfully changed.","סיסמת חשבון Jabber שונתה בהצלחה."}.
|
||||
{"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.","חלק זה אינו ער לרישיות: 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 בשרת Jabber זה. כתובת JID (Jabber IDentifier) תגובש באופן של: username@server. נא לקרוא בזהירות את ההוראות למילוי השדות באופן נכון."}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","עמוד זה מתיר לך לבטל רישום של חשבון Jabber בשרת Jabber זה."}.
|
||||
{"This room is not anonymous","חדר זה אינו אנונימי"}.
|
||||
{"Thursday","יום חמישי"}.
|
||||
{"Time delay","זמן שיהוי"}.
|
||||
{"Time","זמן"}.
|
||||
{"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"}.
|
||||
{"To","אל"}.
|
||||
{"Transactions Aborted:","טרנזקציות בוטלו:"}.
|
||||
{"Transactions Committed:","טרנזקציות בוצעו:"}.
|
||||
{"Transactions Logged:","טרנזקציות נרשמו:"}.
|
||||
{"Transactions Restarted:","טרנזקציות הותחלו מחדש:"}.
|
||||
{"Total rooms","חדרים סה״כ"}.
|
||||
{"To","לכבוד"}.
|
||||
{"Transactions Aborted:","טרנזקציות שבוטלו:"}.
|
||||
{"Transactions Committed:","טרנזקציות שבוצעו:"}.
|
||||
{"Transactions Logged:","טרנזקציות שנרשמו:"}.
|
||||
{"Transactions Restarted:","טרנזקציות שהותחלו מחדש:"}.
|
||||
{"Tuesday","יום שלישי"}.
|
||||
{"Unauthorized","לא מורשה"}.
|
||||
{"Unregister a Jabber account","בטל רישום חשבון Jabber"}.
|
||||
{"Unregister","בטל רישום"}.
|
||||
{"Update message of the day (don't send)","עדכן הודעת היום (אל תשלח)"}.
|
||||
{"Update message of the day on all hosts (don't send)","עדכן הודעת היום בכל המארחים (אל תשלח)"}.
|
||||
{"Update message of the day (don't send)","עדכן את בשורת היום (אל תשלח)"}.
|
||||
{"Update message of the day on all hosts (don't send)","עדכן את בשורת היום בכל המארחים (אל תשלח)"}.
|
||||
{"Update plan","תכנית עדכון"}.
|
||||
{"Update ~p","עדכון ~p"}.
|
||||
{"Update script","תסריט עדכון"}.
|
||||
{"Update","עדכן"}.
|
||||
{"Uptime:","זמן פעילות:"}.
|
||||
{"Use of STARTTLS required","נדרש שימוש של STARTTLS"}.
|
||||
@@ -339,6 +372,7 @@
|
||||
{"User Management","ניהול משתמשים"}.
|
||||
{"Username:","שם משתמש:"}.
|
||||
{"Users Last Activity","פעילות משתמשים אחרונה"}.
|
||||
{"User ~s","משתמש ~s"}.
|
||||
{"Users","משתמשים"}.
|
||||
{"User","משתמש"}.
|
||||
{"Validate","הענק תוקף"}.
|
||||
@@ -356,4 +390,4 @@
|
||||
{"You need an x:data capable client to search","עליך להשתמש בלקוח אשר מסוגל להבין x:data בכדי לחפש"}.
|
||||
{"Your Jabber account was successfully created.","חשבון Jabber נוצר בהצלחה."}.
|
||||
{"Your Jabber account was successfully deleted.","חשבון Jabber נמחק בהצלחה."}.
|
||||
{"Your messages to ~s are being blocked. To unblock them, visit ~s","ההודעות שלך לערוץ ~s הינן חסומות. כדי למנוע את חסימתן, בקר בכתובת ~s"}.
|
||||
{"Your messages to ~s are being blocked. To unblock them, visit ~s","ההודעות שלך לערוץ ~s הינן חסומות. כדי לבטל את חסימתן, בקר בכתובת ~s"}.
|
||||
|
||||
+558
-547
File diff suppressed because it is too large
Load Diff
@@ -56,7 +56,6 @@
|
||||
{"Database Tables Configuration at ","Database Tabel Konfigurasi pada"}.
|
||||
{"December","Desember"}.
|
||||
{"Default users as participants","pengguna pertama kali masuk sebagai participant"}.
|
||||
{"Delete","Hapus"}.
|
||||
{"Delete message of the day","Hapus pesan harian"}.
|
||||
{"Delete message of the day on all hosts","Hapus pesan harian pada semua host"}.
|
||||
{"Delete Selected","Hapus Yang Terpilih"}.
|
||||
@@ -325,7 +324,6 @@
|
||||
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","Pada bagian ini huruf besar dan kecil tidak dibedakan: Misalnya macbeth adalah sama dengan MacBeth juga 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.","Halaman ini memungkinkan untuk membuat akun Jabber di layanan Jabber ini. JID Anda (Jabber Pengenal) akan berbentuk: namapengguna@layanan. Harap baca dengan seksama petunjuk-petunjuk untuk mengisi kolom dengan benar."}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","Pada bagian ini memungkinkan Anda untuk membatalkan pendaftaran akun Jabber pada layanan Jabber ini."}.
|
||||
{"This room is not anonymous","Ruangan ini tidak dikenal"}.
|
||||
{"Thursday","Kamis"}.
|
||||
{"Time delay","Waktu tunda"}.
|
||||
{"Time","Waktu"}.
|
||||
|
||||
+531
-487
File diff suppressed because it is too large
Load Diff
@@ -58,7 +58,6 @@
|
||||
{"Database Tables Configuration at ","Configurazione delle tabelle del database su "}.
|
||||
{"December","Dicembre"}.
|
||||
{"Default users as participants","Definire per default gli utenti come partecipanti"}.
|
||||
{"Delete","Eliminare"}.
|
||||
{"Delete message of the day","Eliminare il messaggio del giorno (MOTD)"}.
|
||||
{"Delete message of the day on all hosts","Eliminare il messaggio del giorno (MOTD) su tutti gli host"}.
|
||||
{"Delete Selected","Eliminare gli elementi selezionati"}.
|
||||
@@ -332,7 +331,6 @@
|
||||
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","Non fa differenza fra minuscolo e maiuscolo: macbeth, MacBeth e Macbeth si equivalgono."}.
|
||||
{"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.","Questa pagina consente di creare un account Jabber in questo server Jabber. Il tuo JID (Jabber IDentifier) avrà la forma: nome_utente@server. Leggi attentamente le istruzioni per compilare i campi correttamente."}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","Questa pagina consente di eliminare un account Jabber da questo server Jabber."}.
|
||||
{"This room is not anonymous","Questa stanza non è anonima"}.
|
||||
{"Thursday","Giovedì"}.
|
||||
{"Time delay","Ritardo"}.
|
||||
{"Time","Ora"}.
|
||||
|
||||
+531
-487
File diff suppressed because it is too large
Load Diff
+86
-80
@@ -1,19 +1,17 @@
|
||||
%% -*- coding: latin-1 -*-
|
||||
{" has set the subject to: "," は件名を設定しました: "}.
|
||||
{"A friendly name for the node","ノードのフレンドリネーム"}.
|
||||
{"Access Configuration","アクセス設定"}.
|
||||
{"Access Control List Configuration","アクセスコントロールリスト設定"}.
|
||||
{"Access Control Lists","アクセスコントロールリスト"}.
|
||||
{"Access Rules","アクセスルール"}.
|
||||
{"Access control lists","アクセスコントロールリスト"}.
|
||||
{"Access Control Lists","アクセスコントロールリスト"}.
|
||||
{"Access rules","アクセスルール"}.
|
||||
{"Access Rules","アクセスルール"}.
|
||||
{"Action on user","ユーザー操作"}.
|
||||
{"Add Jabber ID","Jabber ID を追加"}.
|
||||
{"Add New","新規追加"}.
|
||||
{"Add User","ユーザーを追加"}.
|
||||
{"Administration of ","管理: "}.
|
||||
{"Administration","管理"}.
|
||||
{"All Users","全ユーザー"}.
|
||||
{"A friendly name for the node","ノードのフレンドリネーム"}.
|
||||
{"All activity","すべて"}.
|
||||
{"Allow this Jabber ID to subscribe to this pubsub node?","この Jabber ID に、この pubsubノードの購読を許可しますか ?"}.
|
||||
{"Allow users to change the subject","ユーザーによる件名の変更を許可"}.
|
||||
@@ -24,17 +22,18 @@
|
||||
{"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","誰にでも"}.
|
||||
{"April","4月"}.
|
||||
{"August","8月"}.
|
||||
{"Backup","バックアップ"}.
|
||||
{"Backup Management","バックアップ管理"}.
|
||||
{"Backup of ~p","バックアップ: ~p"}.
|
||||
{"Backup to File at ","ファイルにバックアップ: "}.
|
||||
{"Backup","バックアップ"}.
|
||||
{"Bad format","不正なフォーマット"}.
|
||||
{"Birthday","誕生日"}.
|
||||
{"CAPTCHA web page","CAPTCHA ウェブページ"}.
|
||||
{"CPU Time:","CPU時間:"}.
|
||||
{"Change Password","パスワードを変更"}.
|
||||
{"Change User Password","パスワードを変更"}.
|
||||
{"Characters not allowed:","使用できない文字:"}.
|
||||
@@ -55,16 +54,16 @@
|
||||
{"Connected Resources:","接続リソース:"}.
|
||||
{"Connections parameters","接続パラメーター"}.
|
||||
{"Country","国"}.
|
||||
{"Database Tables Configuration at ","データーベーステーブル設定 "}.
|
||||
{"Database Tables at ~p","データーベーステーブル: ~p"}.
|
||||
{"CPU Time:","CPU時間:"}.
|
||||
{"Database","データーベース"}.
|
||||
{"Database Tables at ~p","データーベーステーブル: ~p"}.
|
||||
{"Database Tables Configuration at ","データーベーステーブル設定 "}.
|
||||
{"December","12月"}.
|
||||
{"Default users as participants","デフォルトのユーザーは参加者"}.
|
||||
{"Delete Selected","選択した項目を削除"}.
|
||||
{"Delete User","ユーザーを削除"}.
|
||||
{"Delete message of the day on all hosts","全ホストのお知らせメッセージを削除"}.
|
||||
{"Delete message of the day","お知らせメッセージを削除"}.
|
||||
{"Delete","削除"}.
|
||||
{"Delete Selected","選択した項目を削除"}.
|
||||
{"Delete User","ユーザーを削除"}.
|
||||
{"Deliver event notifications","イベント通知を配送する"}.
|
||||
{"Deliver payloads with event notifications","イベント通知と同時にペイロードを配送する"}.
|
||||
{"Description:","説明:"}.
|
||||
@@ -75,9 +74,17 @@
|
||||
{"Dump to Text File","テキストファイルに出力"}.
|
||||
{"Edit Properties","プロパティを編集"}.
|
||||
{"Either approve or decline the voice request.","発言権の要求を承認または却下します。"}.
|
||||
{"ejabberd IRC module","ejabberd IRC module"}.
|
||||
{"ejabberd MUC module","ejabberd MUCモジュール"}.
|
||||
{"ejabberd Multicast service","ejabberdマルチキャストサービス"}.
|
||||
{"ejabberd Publish-Subscribe module","ejabberd Publish-Subscribe モジュール"}.
|
||||
{"ejabberd SOCKS5 Bytestreams module","ejabberd SOCKS5 Bytestreams モジュール"}.
|
||||
{"ejabberd vCard module","ejabberd vCard モジュール"}.
|
||||
{"ejabberd Web Admin","ejabberd ウェブ管理"}.
|
||||
{"Elements","要素"}.
|
||||
{"Email","メールアドレス"}.
|
||||
{"Enable logging","ロギングを有効"}.
|
||||
{"Enable message archiving","メッセージアーカイブを有効化"}.
|
||||
{"Encoding for server ~b","サーバーのエンコーディング ~b"}.
|
||||
{"End User Session","エンドユーザーセッション"}.
|
||||
{"Enter list of {Module, [Options]}","{モジュール, [オプション]}のリストを入力してください"}.
|
||||
@@ -112,32 +119,40 @@
|
||||
{"Grant voice to this person?","この人に発言権を与えますか ?"}.
|
||||
{"Group ","グループ"}.
|
||||
{"Groups","グループ"}.
|
||||
{"has been banned","はバンされました"}.
|
||||
{"has been kicked","はキックされました"}.
|
||||
{"has been kicked because of an affiliation change","は分掌が変更されたためキックされました"}.
|
||||
{"has been kicked because of a system shutdown","はシステムシャットダウンのためキックされました"}.
|
||||
{"has been kicked because the room has been changed to members-only","はチャットルームがメンバー制に変更されたためキックされました"}.
|
||||
{" has set the subject to: "," は件名を設定しました: "}.
|
||||
{"Host","ホスト"}.
|
||||
{"IP addresses","IP アドレス"}.
|
||||
{"IP","IP"}.
|
||||
{"IRC Transport","IRCトランスポート"}.
|
||||
{"IRC Username","IRC ユーザー名"}.
|
||||
{"IRC channel (don't put the first #)","IRC チャンネル (先頭に#は不要)"}.
|
||||
{"IRC server","IRC サーバー"}.
|
||||
{"IRC settings","IRC 設定"}.
|
||||
{"IRC username","IRC ユーザー名"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","ここに CAPTCHA 画像が表示されない場合、ウェブページを参照してください。"}.
|
||||
{"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.","別のポートやパスワード、文字エンコーディングを使用したい場合、'{\"irc server\", \"encoding\", port, \"password\"}' という形式のリストを入力してください。デフォルトでエンコーディングは \"~s\" を使用し、ポートは ~p、パスワードは空になっています。"}.
|
||||
{"Import Directory","ディレクトリインポート"}.
|
||||
{"Import File","ファイルからインポート"}.
|
||||
{"Import User from File at ","ファイルからユーザーをインポート: "}.
|
||||
{"Import Users From jabberd14 Spool Files","jabberd14 Spool ファイルからユーザーをインポート"}.
|
||||
{"Import Users from Dir at ","ディレクトリからユーザーをインポート: "}.
|
||||
{"Import user data from jabberd14 spool file:","ユーザーデータを jabberd14 Spool ファイルからインポート:"}.
|
||||
{"Import User from File at ","ファイルからユーザーをインポート: "}.
|
||||
{"Import users data from a PIEFXIS file (XEP-0227):","ユーザーデータを PIEFXIS ファイルからインポート (XEP-0227):"}.
|
||||
{"Import users data from jabberd14 spool directory:","ユーザーデータを jabberd14 Spool ディレクトリからインポート:"}.
|
||||
{"Import Users from Dir at ","ディレクトリからユーザーをインポート: "}.
|
||||
{"Import Users From jabberd14 Spool Files","jabberd14 Spool ファイルからユーザーをインポート"}.
|
||||
{"Invalid affiliation: ~s","無効な分掌です: ~s"}.
|
||||
{"Invalid role: ~s","無効な役です: ~s"}.
|
||||
{"IP addresses","IP アドレス"}.
|
||||
{"IP","IP"}.
|
||||
{"IRC channel (don't put the first #)","IRC チャンネル (先頭に#は不要)"}.
|
||||
{"IRC server","IRC サーバー"}.
|
||||
{"IRC settings","IRC 設定"}.
|
||||
{"IRC Transport","IRCトランスポート"}.
|
||||
{"IRC username","IRC ユーザー名"}.
|
||||
{"IRC Username","IRC ユーザー名"}.
|
||||
{"is now known as","は名前を変更しました: "}.
|
||||
{"Jabber Account Registration","Jabber アカウント登録"}.
|
||||
{"Jabber ID ~s is invalid","Jabber ID ~s は無効です"}.
|
||||
{"Jabber ID","Jabber ID"}.
|
||||
{"Jabber ID ~s is invalid","Jabber ID ~s は無効です"}.
|
||||
{"January","1月"}.
|
||||
{"Join IRC channel","IRC チャンネルに参加"}.
|
||||
{"joins the room","がチャットルームに参加しました"}.
|
||||
{"Join the IRC channel here.","この IRC チャンネルに参加します。"}.
|
||||
{"Join the IRC channel in this Jabber ID: ~s","Jabber ID: ~s でこの IRC チャンネルに参加"}.
|
||||
{"July","7月"}.
|
||||
@@ -146,9 +161,11 @@
|
||||
{"Last login","最終ログイン"}.
|
||||
{"Last month","先月"}.
|
||||
{"Last year","去年"}.
|
||||
{"List of modules to start","起動モジュールの一覧"}.
|
||||
{"leaves the room","がチャットルームから退出しました"}.
|
||||
{"Listened Ports at ","Listen ポート "}.
|
||||
{"Listened Ports","Listen ポート"}.
|
||||
{"List of modules to start","起動モジュールの一覧"}.
|
||||
{"List of rooms","チャットルームの一覧"}.
|
||||
{"Low level update script","低レベル更新スクリプト"}.
|
||||
{"Make participants list public","参加者一覧を公開"}.
|
||||
{"Make room CAPTCHA protected","チャットルームを CAPTCHA で保護"}.
|
||||
@@ -158,9 +175,9 @@
|
||||
{"Make room persistent","チャットルームを永続化"}.
|
||||
{"Make room public searchable","チャットルームを検索可"}.
|
||||
{"March","3月"}.
|
||||
{"Maximum Number of Occupants","最大在室者数"}.
|
||||
{"Max # of items to persist","アイテムの最大保存数"}.
|
||||
{"Max payload size in bytes","最大ぺイロードサイズ (byte)"}.
|
||||
{"Maximum Number of Occupants","最大在室者数"}.
|
||||
{"May","5月"}.
|
||||
{"Members:","メンバー:"}.
|
||||
{"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.","パスワードは記憶するか、紙に書いて安全な場所に保管してください。もしあなたがパスワードを忘れてしまった場合、Jabber ではパスワードのリカバリを自動的に行うことはできません。"}.
|
||||
@@ -168,27 +185,31 @@
|
||||
{"Message body","本文"}.
|
||||
{"Middle Name","ミドルネーム"}.
|
||||
{"Minimum interval between voice requests (in seconds)","発言権の要求の最小時間間隔 (秒)"}.
|
||||
{"moderators only","モデレーターにのみ"}.
|
||||
{"Modified modules","更新されたモジュール"}.
|
||||
{"Module","モジュール"}.
|
||||
{"Modules at ~p","モジュール ~p"}.
|
||||
{"Modules","モジュール"}.
|
||||
{"Modules at ~p","モジュール ~p"}.
|
||||
{"Monday","月曜日"}.
|
||||
{"Multicast","マルチキャスト"}.
|
||||
{"Multi-User Chat","マルチユーザーチャット"}.
|
||||
{"Name","名"}.
|
||||
{"Name:","名前:"}.
|
||||
{"Never","なし"}.
|
||||
{"New Password:","新しいパスワード:"}.
|
||||
{"Nickname","ニックネーム"}.
|
||||
{"Nickname Registration at ","ニックネーム登録: "}.
|
||||
{"Nickname ~s does not exist in the room","ニックネーム ~s はこのチャットルームにいません"}.
|
||||
{"Nickname","ニックネーム"}.
|
||||
{"No Data","データなし"}.
|
||||
{"No body provided for announce message","アナウンスメッセージはありませんでした"}.
|
||||
{"No limit","制限なし"}.
|
||||
{"No resource provided","リソースが提供されませんでした"}.
|
||||
{"nobody","誰にも許可しない"}.
|
||||
{"No Data","データなし"}.
|
||||
{"Node ID","ノードID"}.
|
||||
{"Node not found","ノードが見つかりません"}.
|
||||
{"Node ~p","ノード ~p"}.
|
||||
{"Nodes","ノード"}.
|
||||
{"No limit","制限なし"}.
|
||||
{"None","なし"}.
|
||||
{"No resource provided","リソースが提供されませんでした"}.
|
||||
{"Not Found","見つかりません"}.
|
||||
{"Notify subscribers when items are removed from the node","アイテムがノードから消された時に購読者へ通知する"}.
|
||||
{"Notify subscribers when the node configuration changes","ノード設定に変更があった時に購読者へ通知する"}.
|
||||
@@ -197,53 +218,55 @@
|
||||
{"Number of occupants","在室者の数"}.
|
||||
{"Number of online users","オンラインユーザー数"}.
|
||||
{"Number of registered users","登録ユーザー数"}.
|
||||
{"OK","OK"}.
|
||||
{"October","10月"}.
|
||||
{"Offline Messages","オフラインメッセージ"}.
|
||||
{"Offline Messages:","オフラインメッセージ:"}.
|
||||
{"Offline Messages","オフラインメッセージ"}.
|
||||
{"OK","OK"}.
|
||||
{"Old Password:","古いパスワード:"}.
|
||||
{"Online Users","オンラインユーザー"}.
|
||||
{"Online Users:","オンラインユーザー:"}.
|
||||
{"Online","オンライン"}.
|
||||
{"Online Users:","オンラインユーザー:"}.
|
||||
{"Online Users","オンラインユーザー"}.
|
||||
{"Only deliver notifications to available users","有効なユーザーにのみ告知を送信する"}.
|
||||
{"Only moderators and participants are allowed to change the subject in this room","モデレーターと参加者のみがチャットルームの件名を変更できます"}.
|
||||
{"Only moderators are allowed to change the subject in this room","モデレーターのみがチャットルームの件名を変更できます"}.
|
||||
{"Options","オプション"}.
|
||||
{"Organization Name","会社名"}.
|
||||
{"Organization Unit","部署名"}.
|
||||
{"Outgoing s2s Connections","外向き s2s コネクション"}.
|
||||
{"Outgoing s2s Connections:","外向き s2s コネクション:"}.
|
||||
{"Outgoing s2s Connections","外向き s2s コネクション"}.
|
||||
{"Outgoing s2s Servers:","外向き s2s サービス:"}.
|
||||
{"Packet","パケット"}.
|
||||
{"Password Verification","パスワード (確認)"}.
|
||||
{"Password Verification:","パスワード (確認):"}.
|
||||
{"Password ~b","パスワード ~b"}.
|
||||
{"Password","パスワード"}.
|
||||
{"Password:","パスワード"}.
|
||||
{"Password","パスワード"}.
|
||||
{"Password ~b","パスワード ~b"}.
|
||||
{"Password Verification:","パスワード (確認):"}.
|
||||
{"Password Verification","パスワード (確認)"}.
|
||||
{"Path to Dir","ディレクトリのパス"}.
|
||||
{"Path to File","ファイルのパス"}.
|
||||
{"Pending","保留"}.
|
||||
{"Period: ","期間: "}.
|
||||
{"Permanent rooms","永続チャットルーム"}.
|
||||
{"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 データーベースのバックアップを別に行う必要があります。"}.
|
||||
{"Pong","Pong"}.
|
||||
{"Port ~b","ポート ~b"}.
|
||||
{"Port","ポート"}.
|
||||
{"Port ~b","ポート ~b"}.
|
||||
{"Present real Jabber IDs to","本当の Jabber ID を公開"}.
|
||||
{"private, ","プライベート、"}.
|
||||
{"Protocol","プロトコル"}.
|
||||
{"PubSub subscriber request","PubSub 購読者のリクエスト"}.
|
||||
{"Publish-Subscribe","Publish-Subscribe"}.
|
||||
{"PubSub subscriber request","PubSub 購読者のリクエスト"}.
|
||||
{"Purge all items when the relevant publisher goes offline","公開者がオフラインになるときに、すべてのアイテムを削除"}.
|
||||
{"RAM and disc copy","RAM, ディスクコピー"}.
|
||||
{"RAM copy","RAM コピー"}.
|
||||
{"RPC Call Error","RPC 呼び出しエラー"}.
|
||||
{"Raw","Raw"}.
|
||||
{"Really delete message of the day?","本当にお知らせメッセージを削除しますか ?"}.
|
||||
{"Register a Jabber account","Jabber アカウントを登録"}.
|
||||
{"Register","登録"}.
|
||||
{"Registered Users","登録ユーザー"}.
|
||||
{"Registered nicknames","登録ニックネーム"}.
|
||||
{"Registered Users:","登録ユーザー:"}.
|
||||
{"Registered Users","登録ユーザー"}.
|
||||
{"Register","登録"}.
|
||||
{"Registration in mod_irc for ","mod_irc での登録: "}.
|
||||
{"Remote copy","リモートコピー"}.
|
||||
{"Remove All Offline Messages","すべてのオフラインメッセージを削除"}.
|
||||
@@ -253,20 +276,22 @@
|
||||
{"Resources","リソース"}.
|
||||
{"Restart Service","サービスを再起動"}.
|
||||
{"Restart","再起動"}.
|
||||
{"Restore","リストア"}.
|
||||
{"Restore Backup from File at ","ファイルからバックアップをリストア: "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","ejabberd の再起動時にバイナリバックアップからリストア (メモリ少):"}.
|
||||
{"Restore binary backup immediately:","直ちにバイナリバックアップからリストア:"}.
|
||||
{"Restore plain text backup immediately:","直ちにプレーンテキストバックアップからリストア:"}.
|
||||
{"Restore","リストア"}.
|
||||
{"Room Configuration","チャットルームの設定"}.
|
||||
{"Room Occupants","在室者"}.
|
||||
{"Room description","チャットルームの説明"}.
|
||||
{"Room Occupants","在室者"}.
|
||||
{"Room title","チャットルームのタイトル"}.
|
||||
{"Roster groups allowed to subscribe","名簿グループは購読を許可しました"}.
|
||||
{"Roster of ","名簿: "}.
|
||||
{"Roster size","名簿サイズ"}.
|
||||
{"Roster","名簿"}.
|
||||
{"RPC Call Error","RPC 呼び出しエラー"}.
|
||||
{"Running Nodes","起動ノード"}.
|
||||
{"~s access rule configuration","~s アクセスルール設定"}.
|
||||
{"Saturday","土曜日"}.
|
||||
{"Script check","スクリプトチェック"}.
|
||||
{"Search Results for ","検索結果: "}.
|
||||
@@ -276,18 +301,20 @@
|
||||
{"Send announcement to all users on all hosts","全ホストのユーザーにアナウンスを送信"}.
|
||||
{"Send announcement to all users","すべてのユーザーにアナウンスを送信"}.
|
||||
{"September","9月"}.
|
||||
{"Server ~b","サーバー ~b"}.
|
||||
{"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","全ホストのお知らせメッセージを設定し、オンラインユーザーに送信"}.
|
||||
{"Shared Roster Groups","共有名簿グループ"}.
|
||||
{"Show Integral Table","累積の表を表示"}.
|
||||
{"Show Ordinary Table","通常の表を表示"}.
|
||||
{"Shut Down Service","サービスを停止"}.
|
||||
{"~s invites you to the room ~s","~s はあなたをチャットルーム ~s に招待しています"}.
|
||||
{"Some Jabber clients can store your password in your computer. Use that feature only if you trust your computer is safe.","Jabber クライアントはコンピューターにパスワードを記憶できます。コンピューターが安全であると信頼できる場合にのみ、この機能を使用してください。"}.
|
||||
{"Specify the access model","アクセスモデルを設定する"}.
|
||||
{"Specify the event message type","イベントメッセージ種別を設定"}.
|
||||
{"Specify the publisher model","公開モデルを指定する"}.
|
||||
{"~s's Offline Messages Queue","~s' のオフラインメッセージキュー"}.
|
||||
{"Start Modules at ","モジュールを開始: "}.
|
||||
{"Start Modules","モジュールを起動"}.
|
||||
{"Start","開始"}.
|
||||
@@ -295,19 +322,20 @@
|
||||
{"Statistics","統計"}.
|
||||
{"Stop Modules at ","モジュールを停止: "}.
|
||||
{"Stop Modules","モジュールを停止"}.
|
||||
{"Stop","停止"}.
|
||||
{"Stopped Nodes","停止ノード"}.
|
||||
{"Stop","停止"}.
|
||||
{"Storage Type","ストレージタイプ"}.
|
||||
{"Store binary backup:","バイナリバックアップを保存:"}.
|
||||
{"Store plain text backup:","プレーンテキストバックアップを保存:"}.
|
||||
{"Subject","件名"}.
|
||||
{"Submit","送信"}.
|
||||
{"Submitted","送信完了"}.
|
||||
{"Submit","送信"}.
|
||||
{"Subscriber Address","購読者のアドレス"}.
|
||||
{"Subscription","認可"}.
|
||||
{"Sunday","日曜日"}.
|
||||
{"The CAPTCHA is valid.","CAPTCHA は有効です。"}.
|
||||
{"The collections with which a node is affiliated","提携されたノードの集合です"}.
|
||||
{"the password is","パスワードは"}.
|
||||
{"The password of your Jabber account was successfully changed.","Jabber アカウントのパスワード変更に成功しました。"}.
|
||||
{"There was an error changing the password: ","パスワードの変更中にエラーが発生しました: "}.
|
||||
{"There was an error creating the account: ","アカウントの作成中にエラーが発生しました: "}.
|
||||
@@ -316,14 +344,14 @@
|
||||
{"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 room is not anonymous","このチャットルームは非匿名です"}.
|
||||
{"Thursday","木曜日"}.
|
||||
{"Time delay","遅延時間"}.
|
||||
{"Time","時間"}.
|
||||
{"To ~s","宛先 ~s"}.
|
||||
{"To","宛先"}.
|
||||
{"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","宛先"}.
|
||||
{"Transactions Aborted:","トランザクションの失敗:"}.
|
||||
{"Transactions Committed:","トランザクションのコミット:"}.
|
||||
{"Transactions Logged:","トランザクションのログ: "}.
|
||||
@@ -335,19 +363,20 @@
|
||||
{"Update message of the day (don't send)","お知らせメッセージを更新 (送信しない)"}.
|
||||
{"Update message of the day on all hosts (don't send)","全ホストのお知らせメッセージを更新 (送信しない)"}.
|
||||
{"Update plan","更新計画"}.
|
||||
{"Update script","スクリプトの更新"}.
|
||||
{"Update ~p","更新 ~p"}.
|
||||
{"Update script","スクリプトの更新"}.
|
||||
{"Update","更新"}.
|
||||
{"Uptime:","起動時間:"}.
|
||||
{"Use of STARTTLS required","STARTTLS の使用が必要です"}.
|
||||
{"User","ユーザー"}.
|
||||
{"User JID","ユーザー JID"}.
|
||||
{"User Management","ユーザー管理"}.
|
||||
{"User ~s","ユーザー ~s"}.
|
||||
{"User","ユーザー"}.
|
||||
{"Username:","ユーザー名:"}.
|
||||
{"Users Last Activity","ユーザーの活動履歴"}.
|
||||
{"Users","ユーザー"}.
|
||||
{"Users Last Activity","ユーザーの活動履歴"}.
|
||||
{"User ~s","ユーザー ~s"}.
|
||||
{"Validate","検証"}.
|
||||
{"vCard User Search","vCard検索"}.
|
||||
{"Virtual Hosts","バーチャルホスト"}.
|
||||
{"Voice request","発言権を要求"}.
|
||||
{"Wednesday","水曜日"}.
|
||||
@@ -362,26 +391,3 @@
|
||||
{"Your Jabber account was successfully created.","Jabber アカウントの作成に成功しました。"}.
|
||||
{"Your Jabber account was successfully deleted.","Jabber アカウントの削除に成功しました。"}.
|
||||
{"Your messages to ~s are being blocked. To unblock them, visit ~s","~s 宛のメッセージはブロックされています。解除するにはこちらを見てください ~s"}.
|
||||
{"anyone","誰にでも"}.
|
||||
{"ejabberd IRC module","ejabberd IRC module"}.
|
||||
{"ejabberd MUC module","ejabberd MUCモジュール"}.
|
||||
{"ejabberd Publish-Subscribe module","ejabberd Publish-Subscribe モジュール"}.
|
||||
{"ejabberd SOCKS5 Bytestreams module","ejabberd SOCKS5 Bytestreams モジュール"}.
|
||||
{"ejabberd Web Admin","ejabberd ウェブ管理"}.
|
||||
{"ejabberd vCard module","ejabberd vCard モジュール"}.
|
||||
{"has been banned","はバンされました"}.
|
||||
{"has been kicked because of a system shutdown","はシステムシャットダウンのためキックされました"}.
|
||||
{"has been kicked because of an affiliation change","は分掌が変更されたためキックされました"}.
|
||||
{"has been kicked because the room has been changed to members-only","はチャットルームがメンバー制に変更されたためキックされました"}.
|
||||
{"has been kicked","はキックされました"}.
|
||||
{"is now known as","は名前を変更しました: "}.
|
||||
{"joins the room","がチャットルームに参加しました"}.
|
||||
{"leaves the room","がチャットルームから退出しました"}.
|
||||
{"moderators only","モデレーターにのみ"}.
|
||||
{"nobody","誰にも許可しない"}.
|
||||
{"private, ","プライベート、"}.
|
||||
{"the password is","パスワードは"}.
|
||||
{"vCard User Search","vCard検索"}.
|
||||
{"~s access rule configuration","~s アクセスルール設定"}.
|
||||
{"~s invites you to the room ~s","~s はあなたをチャットルーム ~s に招待しています"}.
|
||||
{"~s's Offline Messages Queue","~s' のオフラインメッセージキュー"}.
|
||||
|
||||
+532
-489
File diff suppressed because it is too large
Load Diff
+22
-6
@@ -29,8 +29,9 @@
|
||||
{"August","Augustus"}.
|
||||
{"Backup","Backup"}.
|
||||
{"Backup Management","Backup"}.
|
||||
{"Backup of ~p","Backup maken van ~p"}.
|
||||
{"Backup to File at ","Binaire backup maken op "}.
|
||||
{"Bad format","Slecht formaat"}.
|
||||
{"Bad format","Verkeerd formaat"}.
|
||||
{"Birthday","Geboortedatum"}.
|
||||
{"CAPTCHA web page","CAPTCHA webpagina."}.
|
||||
{"Change Password","Wachtwoord wijzigen"}.
|
||||
@@ -55,6 +56,7 @@
|
||||
{"Country","Land"}.
|
||||
{"CPU Time:","Processortijd:"}.
|
||||
{"Database","Database"}.
|
||||
{"Database Tables at ~p","Databasetabellen van ~p"}.
|
||||
{"Database Tables Configuration at ","Instellingen van databasetabellen op "}.
|
||||
{"December","December"}.
|
||||
{"Default users as participants","Gebruikers standaard instellen als deelnemers"}.
|
||||
@@ -62,7 +64,6 @@
|
||||
{"Delete message of the day on all hosts","Verwijder bericht-van-de-dag op alle hosts"}.
|
||||
{"Delete Selected","Geselecteerde verwijderen"}.
|
||||
{"Delete User","Verwijder Gebruiker"}.
|
||||
{"Delete","Verwijderen"}.
|
||||
{"Deliver event notifications","Gebeurtenisbevestigingen Sturen"}.
|
||||
{"Deliver payloads with event notifications","Berichten bezorgen samen met gebeurtenisnotificaties"}.
|
||||
{"Description:","Beschrijving:"}.
|
||||
@@ -75,6 +76,7 @@
|
||||
{"Either approve or decline the voice request.","Keur stemaanvraag goed of af."}.
|
||||
{"ejabberd IRC module","ejabberd's IRC-module"}.
|
||||
{"ejabberd MUC module","ejabberd's MUC module"}.
|
||||
{"ejabberd Multicast service","ejabberd Multicast service"}.
|
||||
{"ejabberd Publish-Subscribe module","ejabberd Publish-Subscribe module"}.
|
||||
{"ejabberd SOCKS5 Bytestreams module","ejabberd SOCKS5 Bytestreams module"}.
|
||||
{"ejabberd vCard module","ejabberd's vCard-module"}.
|
||||
@@ -82,6 +84,7 @@
|
||||
{"Elements","Elementen"}.
|
||||
{"Email","E-mail"}.
|
||||
{"Enable logging","Logs aanzetten"}.
|
||||
{"Enable message archiving","Zet bericht-archivering aan"}.
|
||||
{"Encoding for server ~b","Karakterset voor server ~b"}.
|
||||
{"End User Session","Verwijder Gebruikers-sessie"}.
|
||||
{"Enter list of {Module, [Options]}","Voer lijst met op te starten modules als volgt in: {Module, [Opties]}"}.
|
||||
@@ -97,6 +100,7 @@
|
||||
{"Error","Fout"}.
|
||||
{"Example: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"secret\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.sometestserver.net\", \"utf-8\"}].","Voorbeeld: [{\"irc.example.org\", \"koi8-r\", 6667, \"geheim\"}, {\"vendetta.example.net\", \"iso8859-1\", 7000}, {irc,testserver.nl\", \"utf-8\"}]."}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Geen CAPTCHA test voor Jabber IDs"}.
|
||||
{"Export all tables as SQL queries to a file:","Exporteer alle tabellen als SQL-queries naar een bestand:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Exporteer data van alle gebruikers in de server naar PIEFXIS-bestanden (XEP-0227):"}.
|
||||
{"Export data of users in a host to PIEFXIS files (XEP-0227):","Exporteer data van alle gebruikers van een host naar PIEXFIS-bestanden (XEP-0227):"}.
|
||||
{"Family Name","Achternaam"}.
|
||||
@@ -115,11 +119,11 @@
|
||||
{"Grant voice to this person?","Stemaanvraag honoreren voor deze persoon?"}.
|
||||
{"Group ","Groep "}.
|
||||
{"Groups","Groepen"}.
|
||||
{"has been banned","werd verbannen"}.
|
||||
{"has been banned","is verbannen"}.
|
||||
{"has been kicked because of an affiliation change","is weggestuurd vanwege een affiliatieverandering"}.
|
||||
{"has been kicked because of a system shutdown","is weggestuurd omdat het systeem gestopt wordt"}.
|
||||
{"has been kicked because the room has been changed to members-only","is weggestuurd omdat de chatruimte vanaf heden alleen toegankelijk is voor leden"}.
|
||||
{"has been kicked","werd gekicked"}.
|
||||
{"has been kicked","is weggestuurd"}.
|
||||
{" has set the subject to: "," veranderde het onderwerp in: "}.
|
||||
{"Host","Host"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","Als U het CAPTCHA-plaatje niet ziet, bezoek dan de webpagina."}.
|
||||
@@ -139,7 +143,7 @@
|
||||
{"IRC channel (don't put the first #)","IRC kanaal (zonder eerste #)"}.
|
||||
{"IRC server","IRC-server"}.
|
||||
{"IRC settings","IRC instellingen"}.
|
||||
{"IRC Transport","IRC Transport"}.
|
||||
{"IRC Transport","IRC-transport"}.
|
||||
{"IRC username","Gebruikersnaam voor IRC"}.
|
||||
{"IRC Username","Gebruikersnaam voor IRC:"}.
|
||||
{"is now known as","heet nu"}.
|
||||
@@ -161,6 +165,7 @@
|
||||
{"Listened Ports at ","Openstaande poorten op "}.
|
||||
{"Listened Ports","Openstaande poorten"}.
|
||||
{"List of modules to start","Lijst met op te starten modules"}.
|
||||
{"List of rooms","Lijst van groepsgesprekken"}.
|
||||
{"Low level update script","Lowlevel script voor de opwaardering"}.
|
||||
{"Make participants list public","Deelnemerslijst publiek maken"}.
|
||||
{"Make room CAPTCHA protected","Chatruimte beveiligen met een geautomatiseerde Turing test"}.
|
||||
@@ -183,8 +188,11 @@
|
||||
{"moderators only","moderators"}.
|
||||
{"Modified modules","Gewijzigde modules"}.
|
||||
{"Module","Module"}.
|
||||
{"Modules at ~p","Modules op ~p"}.
|
||||
{"Modules","Modules"}.
|
||||
{"Monday","Maandag"}.
|
||||
{"Multicast","Multicast"}.
|
||||
{"Multi-User Chat","Groepschat"}.
|
||||
{"Name:","Naam:"}.
|
||||
{"Name","Naam"}.
|
||||
{"Never","Nooit"}.
|
||||
@@ -197,6 +205,7 @@
|
||||
{"No Data","Geen gegevens"}.
|
||||
{"Node ID","Node ID"}.
|
||||
{"Node not found","Node niet gevonden"}.
|
||||
{"Node ~p","Node ~p"}.
|
||||
{"Nodes","Nodes"}.
|
||||
{"No limit","Geen limiet"}.
|
||||
{"None","Geen"}.
|
||||
@@ -236,6 +245,7 @@
|
||||
{"Path to File","Pad naar bestand"}.
|
||||
{"Pending","Bezig"}.
|
||||
{"Period: ","Periode: "}.
|
||||
{"Permanent rooms","Permanente groepsgesprekken"}.
|
||||
{"Persist items to storage","Items in het geheugen bewaren"}.
|
||||
{"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.","Merk op dat volgende opties enkel backups maken van de ingebouwde database Mnesia. Als U de ODBC module gebruikt dan moeten daarvan afzonderlijke backups gemaakt worden."}.
|
||||
@@ -253,6 +263,7 @@
|
||||
{"Raw","Ruw"}.
|
||||
{"Really delete message of the day?","Wilt u het bericht van de dag verwijderen?"}.
|
||||
{"Register a Jabber account","Registreer een Jabber-account"}.
|
||||
{"Registered nicknames","Geregistreerde gebruikersnamen"}.
|
||||
{"Registered Users:","Geregistreerde gebruikers:"}.
|
||||
{"Registered Users","Geregistreerde gebruikers"}.
|
||||
{"Register","Registreer"}.
|
||||
@@ -329,15 +340,18 @@
|
||||
{"There was an error changing the password: ","Er was een fout bij het veranderen van het wachtwoord:"}.
|
||||
{"There was an error creating the account: ","Er was een fout bij het creeern van de account:"}.
|
||||
{"There was an error deleting the account: ","Er was een fout bij het verwijderen van de account."}.
|
||||
{"This IP address is blacklisted in ~s","Dit IP-adres is geblokkeerd in ~s"}.
|
||||
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","Dit is niet hoofdlettergevoelig: macbeth is hetzelfde als MacBeth en 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.","Deze pagina maakt het mogelijk een Jabber-account te registreren op deze server. Uw JID (Jabber IDentiteit) zal er als volg uit zien: gebruikersnaam@server. Lees de instructies zorgvuldig teneinde de velden correct in te vullen."}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","Deze pagina maakt het mogelijk een Jabber-account op deze server op te heffen."}.
|
||||
{"This room is not anonymous","Deze chatruimte is niet anoniem"}.
|
||||
{"Thursday","Donderdag"}.
|
||||
{"Time delay","Vertraging"}.
|
||||
{"Time","Tijd"}.
|
||||
{"To","Aan"}.
|
||||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Te veel (~p) mislukte authenticatie-pogingen van dit IP-adres (~s). Dit adres zal worden gedeblokkeerd om ~s UTC"}.
|
||||
{"Too many unacked stanzas","Te veel niet-bevestigde stanzas"}.
|
||||
{"To ~s","Naar ~s"}.
|
||||
{"Total rooms","Aantal groepsgesprekken"}.
|
||||
{"Transactions Aborted:","Afgebroken transacties:"}.
|
||||
{"Transactions Committed:","Bevestigde transacties:"}.
|
||||
{"Transactions Logged:","Gelogde transacties:"}.
|
||||
@@ -350,6 +364,7 @@
|
||||
{"Update message of the day (don't send)","Bericht van de dag bijwerken (niet verzenden)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Verander bericht-van-de-dag op alle hosts (niet versturen)"}.
|
||||
{"Update plan","Plan voor de opwaardering"}.
|
||||
{"Update ~p","Opwaarderen van ~p"}.
|
||||
{"Update script","Script voor de opwaardering"}.
|
||||
{"Uptime:","Uptime:"}.
|
||||
{"Use of STARTTLS required","Gebruik van STARTTLS is vereist"}.
|
||||
@@ -357,6 +372,7 @@
|
||||
{"User JID","JID Gebruiker"}.
|
||||
{"User Management","Gebruikersbeheer"}.
|
||||
{"Username:","Gebruikersnaam:"}.
|
||||
{"User ~s","Gebruiker ~s"}.
|
||||
{"Users","Gebruikers"}.
|
||||
{"Users Last Activity","Laatste activiteit van gebruikers"}.
|
||||
{"Validate","Bevestigen"}.
|
||||
|
||||
+544
-506
File diff suppressed because it is too large
Load Diff
@@ -61,7 +61,6 @@
|
||||
{"Delete message of the day on all hosts","Slett melding for dagen på alle maskiner"}.
|
||||
{"Delete message of the day","Slett melding for dagen"}.
|
||||
{"Delete Selected","Slett valgte"}.
|
||||
{"Delete","Slett"}.
|
||||
{"Delete User","Slett Bruker"}.
|
||||
{"Deliver event notifications","Lever begivenhets kunngjøringer"}.
|
||||
{"Deliver payloads with event notifications","Send innhold sammen med kunngjøringer"}.
|
||||
@@ -332,7 +331,6 @@
|
||||
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","Denne er ufølsom for små og store bokstaver: macbeth er det samme som MacBeth og 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.","Denne siden lar deg lage en Jabber konto på denne Jabber serveren. Din JID (Jabber ID) vil være i formatet: brukernavn@server. Vennligst les instruksjonene nøye slik at du fyller ut skjemaet riktig."}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","Denne siden lar deg avregistrere en Jabber konto på denne Jabber serveren."}.
|
||||
{"This room is not anonymous","Dette rommet er ikke anonymt"}.
|
||||
{"Thursday","torsdag"}.
|
||||
{"Time delay","Tids forsinkelse"}.
|
||||
{"Time","Tid"}.
|
||||
|
||||
+531
-487
File diff suppressed because it is too large
Load Diff
+18
-2
@@ -28,6 +28,7 @@
|
||||
{"April","Kwiecień"}.
|
||||
{"August","Sierpień"}.
|
||||
{"Backup Management","Zarządzanie kopiami zapasowymi"}.
|
||||
{"Backup of ~p","Kopia zapasowa ~p"}.
|
||||
{"Backup to File at ","Zapisz kopię w pliku na "}.
|
||||
{"Backup","Wykonaj kopie"}.
|
||||
{"Bad format","Błędny format"}.
|
||||
@@ -55,6 +56,7 @@
|
||||
{"Country","Państwo"}.
|
||||
{"CPU Time:","Czas CPU:"}.
|
||||
{"Database","Baza danych"}.
|
||||
{"Database Tables at ~p","Tabele bazy na ~p"}.
|
||||
{"Database Tables Configuration at ","Konfiguracja tabel bazy na "}.
|
||||
{"December","Grudzień"}.
|
||||
{"Default users as participants","Domyślni użytkownicy jako uczestnicy"}.
|
||||
@@ -62,7 +64,6 @@
|
||||
{"Delete message of the day","Usuń wiadomość dnia"}.
|
||||
{"Delete Selected","Usuń zaznaczone"}.
|
||||
{"Delete User","Usuń użytkownika"}.
|
||||
{"Delete","Usuń"}.
|
||||
{"Deliver event notifications","Dostarczaj powiadomienia o zdarzeniach"}.
|
||||
{"Deliver payloads with event notifications","Dostarczaj zawartość publikacji wraz z powiadomieniami o zdarzeniach"}.
|
||||
{"Description:","Opis:"}.
|
||||
@@ -75,6 +76,7 @@
|
||||
{"Either approve or decline the voice request.","Zatwierdź lub odrzuć żądanie głosowe"}.
|
||||
{"ejabberd IRC module","Moduł IRC ejabberd"}.
|
||||
{"ejabberd MUC module","Moduł MUC"}.
|
||||
{"ejabberd Multicast service","Serwis multicast ejabbera"}.
|
||||
{"ejabberd Publish-Subscribe module","Moduł Publish-Subscribe"}.
|
||||
{"ejabberd SOCKS5 Bytestreams module","Moduł SOCKS5 Bytestreams"}.
|
||||
{"ejabberd vCard module","Moduł vCard ejabberd"}.
|
||||
@@ -82,6 +84,7 @@
|
||||
{"Elements","Elementy"}.
|
||||
{"Email","Email"}.
|
||||
{"Enable logging","Włącz logowanie"}.
|
||||
{"Enable message archiving","Włącz archiwizowanie rozmów"}.
|
||||
{"Encoding for server ~b","Kodowanie znaków dla serwera ~b"}.
|
||||
{"End User Session","Zakończ sesję uzytkownika"}.
|
||||
{"Enter list of {Module, [Options]}","Wprowadź listę {Moduł, [Opcje]}"}.
|
||||
@@ -97,6 +100,7 @@
|
||||
{"Error","Błąd"}.
|
||||
{"Example: [{\"irc.lucky.net\", \"koi8-r\", 6667, \"secret\"}, {\"vendetta.fef.net\", \"iso8859-1\", 7000}, {\"irc.sometestserver.net\", \"utf-8\"}].","Przykład: [{\"wroclaw.irc.pl\",\"utf-8\"}, {\"warszawa.irc.pl\", \"iso8859-2\"}]."}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Pomiń Jabber ID z żądania CAPTCHA"}.
|
||||
{"Export all tables as SQL queries to a file:","Wyeksportuj wszystkie tabele jako zapytania SQL do pliku:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Eksportuj dane wszystkich użytkowników serwera do plików w formacie PIEFXIS (XEP-0227):"}.
|
||||
{"Export data of users in a host to PIEFXIS files (XEP-0227):","Eksportuj dane użytkowników z hosta do plików w formacie PIEFXIS (XEP-0227):"}.
|
||||
{"Family Name","Nazwisko"}.
|
||||
@@ -161,6 +165,7 @@
|
||||
{"Listened Ports at ","Porty nasłuchujące na "}.
|
||||
{"Listened Ports","Porty nasłuchujące"}.
|
||||
{"List of modules to start","Lista modułów do uruchomienia"}.
|
||||
{"List of rooms","Lista pokoi"}.
|
||||
{"Low level update script","Skrypt aktualizacji niskiego poziomu"}.
|
||||
{"Make participants list public","Upublicznij listę uczestników"}.
|
||||
{"Make room CAPTCHA protected","Pokój zabezpieczony captchą"}.
|
||||
@@ -183,8 +188,11 @@
|
||||
{"moderators only","tylko moderatorzy"}.
|
||||
{"Modified modules","Zmodyfikowane moduły"}.
|
||||
{"Module","Moduł"}.
|
||||
{"Modules at ~p","Moduły na ~p"}.
|
||||
{"Modules","Moduły"}.
|
||||
{"Monday","Poniedziałek"}.
|
||||
{"Multicast","Multicast"}.
|
||||
{"Multi-User Chat","Wieloosobowa rozmowa"}.
|
||||
{"Name","Imię"}.
|
||||
{"Name:","Nazwa:"}.
|
||||
{"Never","Nigdy"}.
|
||||
@@ -197,6 +205,7 @@
|
||||
{"No Data","Brak danych"}.
|
||||
{"Node ID","ID węzła"}.
|
||||
{"Node not found","Węzeł nie został znaleziony"}.
|
||||
{"Node ~p","Węzeł ~p"}.
|
||||
{"Nodes","Węzły"}.
|
||||
{"No limit","Bez limitu"}.
|
||||
{"None","Brak"}.
|
||||
@@ -236,6 +245,7 @@
|
||||
{"Path to File","Scieżka do pliku"}.
|
||||
{"Pending","Oczekuje"}.
|
||||
{"Period: ","Przedział czasu: "}.
|
||||
{"Permanent rooms","Stałych pokoi"}.
|
||||
{"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."}.
|
||||
@@ -253,6 +263,7 @@
|
||||
{"Raw","Żródło"}.
|
||||
{"Really delete message of the day?","Na pewno usunąć wiadomość dnia?"}.
|
||||
{"Register a Jabber account","Załóż konto Jabber"}.
|
||||
{"Registered nicknames","Zarejestrowanych nicków"}.
|
||||
{"Registered Users:","Użytkownicy zarejestrowani:"}.
|
||||
{"Registered Users","Użytkownicy zarejestrowani"}.
|
||||
{"Register","Zarejestruj"}.
|
||||
@@ -329,15 +340,18 @@
|
||||
{"There was an error changing the password: ","Podczas próby zmiany hasła wystąpił błąd:"}.
|
||||
{"There was an error creating the account: ","Wystąpił błąd podczas tworzenia konta:"}.
|
||||
{"There was an error deleting the account: ","Podczas usuwania konta wystąpił błąd:"}.
|
||||
{"This IP address is blacklisted in ~s","Ten adres IP został zablokowany w ~s"}.
|
||||
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","Pole nie rozróżnia wielkości liter: słowo Hanna jest takie samo jak hAnna lub haNNa."}.
|
||||
{"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.","Niniejsza strona pozwala na założenie konta Jabber na tym serwerze. Twój JID (Jabber IDentyfikator) będzie miał postać: nazwa_użytkownika@serwer. Przeczytaj dokładnie instrukcję i wypełnij pola."}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","Ta strona pozwala usunąć konto Jabber z tego serwera."}.
|
||||
{"This room is not anonymous","Ten pokój nie jest anonimowy"}.
|
||||
{"Thursday","Czwartek"}.
|
||||
{"Time","Czas"}.
|
||||
{"Time delay","Opóźnienie"}.
|
||||
{"To","Do"}.
|
||||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Zbyt wiele (~p) nieudanych prób logowanie z tego adresu IP (~s). Ten adres zostanie odblokowany o ~s UTC"}.
|
||||
{"Too many unacked stanzas","Zbyt wiele niepotwierdzonych pakietów"}.
|
||||
{"To ~s","Do ~s"}.
|
||||
{"Total rooms","Wszystkich pokoi"}.
|
||||
{"Transactions Aborted:","Transakcje anulowane:"}.
|
||||
{"Transactions Committed:","Transakcje zakończone:"}.
|
||||
{"Transactions Logged:","Transakcje zalogowane:"}.
|
||||
@@ -350,6 +364,7 @@
|
||||
{"Update message of the day (don't send)","Aktualizuj wiadomość dnia (bez wysyłania)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Aktualizuj wiadomość dnia na wszystkich hostach (bez wysyłania)"}.
|
||||
{"Update plan","Plan aktualizacji"}.
|
||||
{"Update ~p","Uaktualnij ~p"}.
|
||||
{"Update script","Skrypt aktualizacji"}.
|
||||
{"Uptime:","Czas pracy:"}.
|
||||
{"Use of STARTTLS required","Wymagane jest użycie STARTTLS"}.
|
||||
@@ -358,6 +373,7 @@
|
||||
{"Username:","Nazwa użytkownika:"}.
|
||||
{"Users Last Activity","Ostatnia aktywność użytkowników"}.
|
||||
{"Users","Użytkownicy"}.
|
||||
{"User ~s","Użytkownik ~s"}.
|
||||
{"User","Użytkownik"}.
|
||||
{"Validate","Potwierdź"}.
|
||||
{"vCard User Search","Wyszukiwanie vCard użytkowników"}.
|
||||
|
||||
+542
-504
File diff suppressed because it is too large
Load Diff
+40
-9
@@ -19,17 +19,21 @@
|
||||
{"Allow users to send invites","Permitir a usuários envio de convites"}.
|
||||
{"Allow users to send private messages","Permitir a usuários enviarem mensagens privadas"}.
|
||||
{"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"}.
|
||||
{"All Users","Todos os usuários"}.
|
||||
{"Announcements","Anúncios"}.
|
||||
{"anyone","qualquer um"}.
|
||||
{"April","Abril"}.
|
||||
{"August","Agosto"}.
|
||||
{"Backup Management","Gestão de Backup"}.
|
||||
{"Backup of ~p","Backup de ~p"}.
|
||||
{"Backup","Salvar cópia de segurança"}.
|
||||
{"Backup to File at ","Salvar backup para arquivo em "}.
|
||||
{"Bad format","Formato incorreto"}.
|
||||
{"Birthday","Aniversário"}.
|
||||
{"CAPTCHA web page","CAPTCHA web page"}.
|
||||
{"Change Password","Mudar senha"}.
|
||||
{"Change User Password","Alterar Senha do Usuário"}.
|
||||
{"Characters not allowed:","Caracteres não aceitos:"}.
|
||||
@@ -52,10 +56,10 @@
|
||||
{"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 Configuration at ","Configuração de Tabelas de Base de dados em "}.
|
||||
{"December","Dezembro"}.
|
||||
{"Default users as participants","Usuários padrões como participantes"}.
|
||||
{"Delete","Eliminar"}.
|
||||
{"Delete message of the day","Apagar mensagem do dia"}.
|
||||
{"Delete message of the day on all hosts","Apagar a mensagem do dia em todos os hosts"}.
|
||||
{"Delete Selected","Remover os selecionados"}.
|
||||
@@ -64,13 +68,15 @@
|
||||
{"Deliver payloads with event notifications","Enviar payloads junto com as notificações de eventos"}.
|
||||
{"Description:","Descrição:"}.
|
||||
{"Disc only copy","Somente copia 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."}.
|
||||
{"Dump Backup to Text File at ","Exportar backup para texto em "}.
|
||||
{"Dump to Text File","Exportar para arquivo de texto"}.
|
||||
{"Dump to Text File","Exportar para arquivo texto"}.
|
||||
{"Edit Properties","Editar propriedades"}.
|
||||
{"Either approve or decline the voice request.","Você deve aprovar/desaprovar a requisição de voz."}.
|
||||
{"ejabberd IRC module","Módulo de IRC para ejabberd"}.
|
||||
{"ejabberd MUC module","Módulo de MUC para ejabberd"}.
|
||||
{"ejabberd Multicast service","ejabberd Multicast service"}.
|
||||
{"ejabberd Publish-Subscribe module","Módulo para Publicar Tópicos do ejabberd"}.
|
||||
{"ejabberd SOCKS5 Bytestreams module","Modulo ejabberd SOCKS5 Bytestreams"}.
|
||||
{"ejabberd vCard module","Módulo vCard para ejabberd"}.
|
||||
@@ -78,6 +84,7 @@
|
||||
{"Elements","Elementos"}.
|
||||
{"Email","Email"}.
|
||||
{"Enable logging","Permitir criação de logs"}.
|
||||
{"Enable message archiving","Habilitar arquivamento de mensagens"}.
|
||||
{"Encoding for server ~b","Codificação para o servidor ~b"}.
|
||||
{"End User Session","Terminar Sessão do Usuário"}.
|
||||
{"Enter list of {Module, [Options]}","Introduza lista de {módulo, [opções]}"}.
|
||||
@@ -93,6 +100,7 @@
|
||||
{"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\"}]."}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Excluir IDs Jabber de serem submetidos ao CAPTCHA"}.
|
||||
{"Export all tables as SQL queries to a file:","Exportar todas as tabelas como SQL para um arquivo:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Exportar todos os dados de todos os usuários no servidor, para arquivos formato PIEFXIS (XEP-0227):"}.
|
||||
{"Export data of users in a host to PIEFXIS files (XEP-0227):","Exportar dados dos usuários em um host, para arquivos PIEFXIS (XEP-0227):"}.
|
||||
{"Family Name","Sobrenome"}.
|
||||
@@ -108,6 +116,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?"}.
|
||||
{"Group ","Grupo "}.
|
||||
{"Groups","Grupos"}.
|
||||
{"has been banned","foi banido"}.
|
||||
@@ -117,6 +126,7 @@
|
||||
{"has been kicked","foi removido"}.
|
||||
{" has set the subject to: "," a posto o assunto: "}.
|
||||
{"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)"}.
|
||||
{"Import Directory","Importar diretório"}.
|
||||
{"Import File","Importar arquivo"}.
|
||||
@@ -125,7 +135,7 @@
|
||||
{"Import users data from a PIEFXIS file (XEP-0227):","Importar usuários de um arquivo PIEFXIS (XEP-0227): "}.
|
||||
{"Import users data from jabberd14 spool directory:","Importar dados dos usuários de um diretório-fila jabberd14:"}.
|
||||
{"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"}.
|
||||
{"Import Users From jabberd14 Spool Files","Importar usuários de arquivos jabberd14 (spool files)"}.
|
||||
{"Invalid affiliation: ~s","Afiliação não válida: ~s"}.
|
||||
{"Invalid role: ~s","Cargo (role) é não válido: ~s"}.
|
||||
{"IP addresses","Endereços IP"}.
|
||||
@@ -152,9 +162,10 @@
|
||||
{"Last month","Último mês"}.
|
||||
{"Last year","Último ano"}.
|
||||
{"leaves the room","Sair da sala"}.
|
||||
{"Listened Ports at ","Portas ouvintes em "}.
|
||||
{"Listened Ports at ","Portas abertas em "}.
|
||||
{"Listened Ports","Portas escutadas"}.
|
||||
{"List of modules to start","Listas de módulos para inicializar"}.
|
||||
{"List of rooms","Lista de salas"}.
|
||||
{"Low level update script","Script de atualização low level"}.
|
||||
{"Make participants list public","Tornar pública a lista de participantes"}.
|
||||
{"Make room CAPTCHA protected","Tornar protegida a senha da sala"}.
|
||||
@@ -168,7 +179,7 @@
|
||||
{"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"}.
|
||||
{"Members:","Miembros:"}.
|
||||
{"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"}.
|
||||
@@ -177,11 +188,15 @@
|
||||
{"moderators only","apenas moderadores"}.
|
||||
{"Modified modules","Módulos atualizados"}.
|
||||
{"Module","Módulo"}.
|
||||
{"Modules at ~p","Módulos em ~p"}.
|
||||
{"Modules","Módulos"}.
|
||||
{"Monday","Segunda"}.
|
||||
{"Multicast","Multicast"}.
|
||||
{"Multi-User Chat","Chat multi-usuário"}.
|
||||
{"Name:","Nome:"}.
|
||||
{"Name","Nome"}.
|
||||
{"Never","Nunca"}.
|
||||
{"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"}.
|
||||
@@ -190,6 +205,7 @@
|
||||
{"No Data","Nenhum dado"}.
|
||||
{"Node ID","ID do Tópico"}.
|
||||
{"Node not found","Nó não encontrado"}.
|
||||
{"Node ~p","Nó ~p"}.
|
||||
{"Nodes","Nós"}.
|
||||
{"No limit","Ilimitado"}.
|
||||
{"None","Nenhum"}.
|
||||
@@ -206,6 +222,7 @@
|
||||
{"Offline Messages:","Mensagens offline"}.
|
||||
{"Offline Messages","Mensagens offline"}.
|
||||
{"OK","OK"}.
|
||||
{"Old Password:","Senha Antiga:"}.
|
||||
{"Online","Conectado"}.
|
||||
{"Online Users","Usuários conectados"}.
|
||||
{"Online Users:","Usuários online"}.
|
||||
@@ -222,11 +239,13 @@
|
||||
{"Password ~b","Senha ~b"}.
|
||||
{"Password:","Senha:"}.
|
||||
{"Password","Senha"}.
|
||||
{"Password Verification:","Verificação de Senha"}.
|
||||
{"Password Verification","Verificação de Senha"}.
|
||||
{"Path to Dir","Caminho para o diretório"}.
|
||||
{"Path to File","Caminho do arquivo"}.
|
||||
{"Pending","Pendente"}.
|
||||
{"Period: ","Período: "}.
|
||||
{"Permanent rooms","Salas permanentes"}.
|
||||
{"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."}.
|
||||
@@ -244,8 +263,10 @@
|
||||
{"Raw","Intocado"}.
|
||||
{"Really delete message of the day?","Deletar realmente a mensagem do dia?"}.
|
||||
{"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"}.
|
||||
{"Remove All Offline Messages","Remover Todas as Mensagens Offline"}.
|
||||
@@ -256,7 +277,7 @@
|
||||
{"Restart","Reiniciar"}.
|
||||
{"Restart Service","Reiniciar Serviço"}.
|
||||
{"Restore Backup from File at ","Restaurar backup a partir do arquivo em "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","Restaurar backup binário após próximo reinicialização do ejabberd (requer menos memória):"}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","Restaurar backup binário após reinicialização do ejabberd (requer menos memória):"}.
|
||||
{"Restore binary backup immediately:","Restaurar backup binário imediatamente"}.
|
||||
{"Restore plain text backup immediately:","Restaurar backup formato texto imediatamente:"}.
|
||||
{"Restore","Restaurar"}.
|
||||
@@ -281,6 +302,7 @@
|
||||
{"Send announcement to all users on all hosts","Enviar aviso para todos os usuários em todos os hosts"}.
|
||||
{"September","Setembro"}.
|
||||
{"Server ~b","Servidor ~b"}.
|
||||
{"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"}.
|
||||
@@ -318,15 +340,18 @@
|
||||
{"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: "}.
|
||||
{"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."}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","Esta página aceita para deletar uma conta Jabber neste servidor."}.
|
||||
{"This room is not anonymous","Essa sala não é anônima"}.
|
||||
{"Thursday","Quinta"}.
|
||||
{"Time delay","Intervalo (Tempo)"}.
|
||||
{"Time","Fecha"}.
|
||||
{"Time","Tempo"}.
|
||||
{"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 unacked stanzas","número excessivo de instâncias sem confirmação"}.
|
||||
{"To","Para"}.
|
||||
{"To ~s","Para ~s"}.
|
||||
{"Total rooms","Salas no total"}.
|
||||
{"Transactions Aborted:","Transações abortadas:"}.
|
||||
{"Transactions Committed:","Transações salvas:"}.
|
||||
{"Transactions Logged:","Transações de log:"}.
|
||||
@@ -338,12 +363,16 @@
|
||||
{"Update","Atualizar"}.
|
||||
{"Update message of the day (don't send)","Atualizar mensagem do dia (não enviar)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Atualizar a mensagem do dia em todos os host (não enviar)"}.
|
||||
{"Update ~p","Atualizar ~p"}.
|
||||
{"Update plan","Plano de Atualização"}.
|
||||
{"Update script","Script de atualização"}.
|
||||
{"Uptime:","Uptime:"}.
|
||||
{"Use of STARTTLS required","É obrigatório uso de STARTTLS"}.
|
||||
{"User JID","Usuário JID"}.
|
||||
{"User Management","Gerenciamento de Usuários"}.
|
||||
{"Username:","Usuário:"}.
|
||||
{"Users Last Activity","Ultimas atividades dos usuários"}.
|
||||
{"User ~s","Usuário ~s"}.
|
||||
{"Users","Usuários"}.
|
||||
{"User","Usuário"}.
|
||||
{"Validate","Validar"}.
|
||||
@@ -354,9 +383,11 @@
|
||||
{"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 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 search","Necessitas um cliente com suporte de x:data para poder buscar"}.
|
||||
{"Your Jabber account was successfully created.","Sua conta jabber foi criada corretamente."}.
|
||||
{"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 desbloquea-las, visite: ~s"}.
|
||||
{"Your messages to ~s are being blocked. To unblock them, visit ~s","Suas mensagens para ~s estão bloqueadas. Para desbloqueá-las, visite: ~s"}.
|
||||
|
||||
+558
-535
File diff suppressed because it is too large
Load Diff
@@ -22,7 +22,6 @@
|
||||
{"Configuration","Configuração"}.
|
||||
{"Connected Resources:","Recursos conectados:"}.
|
||||
{"Country","País"}.
|
||||
{"Delete","Eliminar"}.
|
||||
{"Delete Selected","Eliminar os seleccionados"}.
|
||||
{"Disc only copy","Cópia apenas em disco"}.
|
||||
{"Dump Backup to Text File at ","Exporta cópia de segurança para ficheiro de texto em "}.
|
||||
|
||||
+456
-416
File diff suppressed because it is too large
Load Diff
+18
-2
@@ -28,6 +28,7 @@
|
||||
{"April","апреля"}.
|
||||
{"August","августа"}.
|
||||
{"Backup Management","Управление резервным копированием"}.
|
||||
{"Backup of ~p","Резервное копирование ~p"}.
|
||||
{"Backup to File at ","Резервное копирование в файл на "}.
|
||||
{"Backup","Резервное копирование"}.
|
||||
{"Bad format","Неправильный формат"}.
|
||||
@@ -54,6 +55,7 @@
|
||||
{"Connections parameters","Параметры соединения"}.
|
||||
{"Country","Страна"}.
|
||||
{"CPU Time:","Процессорное время:"}.
|
||||
{"Database Tables at ~p","Таблицы базы данных на ~p"}.
|
||||
{"Database Tables Configuration at ","Конфигурация таблиц базы данных на "}.
|
||||
{"Database","База данных"}.
|
||||
{"December","декабря"}.
|
||||
@@ -62,7 +64,6 @@
|
||||
{"Delete message of the day","Удалить сообщение дня"}.
|
||||
{"Delete Selected","Удалить выделенные"}.
|
||||
{"Delete User","Удалить пользователя"}.
|
||||
{"Delete","Удалить"}.
|
||||
{"Deliver event notifications","Доставлять уведомления о событиях"}.
|
||||
{"Deliver payloads with event notifications","Доставлять вместе с уведомлениями o публикациях сами публикации"}.
|
||||
{"Description:","Описание:"}.
|
||||
@@ -75,6 +76,7 @@
|
||||
{"Either approve or decline the voice request.","Подтвердите или отклоните право голоса."}.
|
||||
{"ejabberd IRC module","ejabberd IRC модуль"}.
|
||||
{"ejabberd MUC module","ejabberd MUC модуль"}.
|
||||
{"ejabberd Multicast service","ejabberd Multicast сервис"}.
|
||||
{"ejabberd Publish-Subscribe module","Модуль ejabberd Публикации-Подписки"}.
|
||||
{"ejabberd SOCKS5 Bytestreams module","ejabberd SOCKS5 Bytestreams модуль"}.
|
||||
{"ejabberd vCard module","ejabberd vCard модуль"}.
|
||||
@@ -82,6 +84,7 @@
|
||||
{"Elements","Элементы"}.
|
||||
{"Email","Электронная почта"}.
|
||||
{"Enable logging","Включить журналирование"}.
|
||||
{"Enable message archiving","Включить хранение сообщений"}.
|
||||
{"Encoding for server ~b","Кодировка сервера ~b"}.
|
||||
{"End User Session","Завершить сеанс пользователя"}.
|
||||
{"Enter list of {Module, [Options]}","Введите список вида {Module, [Options]}"}.
|
||||
@@ -97,6 +100,7 @@
|
||||
{"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"}.
|
||||
{"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):"}.
|
||||
{"Family Name","Фамилия"}.
|
||||
@@ -161,6 +165,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","Сделать комнату защищённой капчей"}.
|
||||
@@ -182,9 +187,12 @@
|
||||
{"Minimum interval between voice requests (in seconds)","Минимальный интервал между запросами на право голоса"}.
|
||||
{"moderators only","только модераторам"}.
|
||||
{"Modified modules","Изменённые модули"}.
|
||||
{"Modules at ~p","Модули на ~p"}.
|
||||
{"Modules","Модули"}.
|
||||
{"Module","Модуль"}.
|
||||
{"Monday","Понедельник"}.
|
||||
{"Multicast","Мультикаст"}.
|
||||
{"Multi-User Chat","Конференция"}.
|
||||
{"Name:","Название:"}.
|
||||
{"Name","Название"}.
|
||||
{"Never","Никогда"}.
|
||||
@@ -197,6 +205,7 @@
|
||||
{"No Data","Нет данных"}.
|
||||
{"Node ID","ID узла"}.
|
||||
{"Node not found","Узел не найден"}.
|
||||
{"Node ~p","Узел ~p"}.
|
||||
{"Nodes","Узлы"}.
|
||||
{"No limit","Не ограничено"}.
|
||||
{"None","Нет"}.
|
||||
@@ -236,6 +245,7 @@
|
||||
{"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), то его резервное копирование следует осуществлять отдельно."}.
|
||||
@@ -253,6 +263,7 @@
|
||||
{"Raw","Необработанный формат"}.
|
||||
{"Really delete message of the day?","Действительно удалить сообщение дня?"}.
|
||||
{"Register a Jabber account","Зарегистрировать Jabber-аккаунт"}.
|
||||
{"Registered nicknames","Зарегистрированные псевдонимы"}.
|
||||
{"Registered Users:","Зарегистрированные пользователи:"}.
|
||||
{"Registered Users","Зарегистрированные пользователи"}.
|
||||
{"Register","Зарегистрировать"}.
|
||||
@@ -329,14 +340,17 @@
|
||||
{"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-аккаунт на этом Jabber-сервере. Ваш JID (Jabber-идентификатор) будет в виде: \"пользователь@сервер\". Пожалуйста, внимательно читайте инструкции для правильного заполнения полей."}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","Здесь Вы можете удалить Jabber-аккаунт с этого сервера."}.
|
||||
{"This room is not anonymous","Эта комната не анонимная"}.
|
||||
{"Thursday","Четверг"}.
|
||||
{"Time delay","По истечение"}.
|
||||
{"Time","Время"}.
|
||||
{"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","Кому"}.
|
||||
{"Transactions Aborted:","Транзакции отмененные:"}.
|
||||
{"Transactions Committed:","Транзакции завершенные:"}.
|
||||
@@ -349,6 +363,7 @@
|
||||
{"Update message of the day (don't send)","Обновить сообщение дня (не рассылать)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Обновить сообщение дня на всех виртуальных серверах (не рассылать)"}.
|
||||
{"Update plan","План обновления"}.
|
||||
{"Update ~p","Обновление ~p"}.
|
||||
{"Update script","Сценарий обновления"}.
|
||||
{"Update","Обновить"}.
|
||||
{"Uptime:","Время работы:"}.
|
||||
@@ -358,6 +373,7 @@
|
||||
{"Username:","Имя пользователя:"}.
|
||||
{"Users Last Activity","Статистика последнего подключения пользователей"}.
|
||||
{"Users","Пользователи"}.
|
||||
{"User ~s","Пользователь ~s"}.
|
||||
{"User","Пользователь"}.
|
||||
{"Validate","Утвердить"}.
|
||||
{"vCard User Search","Поиск пользователей по vCard"}.
|
||||
|
||||
+540
-503
File diff suppressed because it is too large
Load Diff
@@ -62,7 +62,6 @@
|
||||
{"Delete message of the day","Zmazať správu dňa"}.
|
||||
{"Delete Selected","Zmazať vybrané"}.
|
||||
{"Delete User","Vymazať užívateľa"}.
|
||||
{"Delete","Zmazať"}.
|
||||
{"Deliver event notifications","Doručiť oznamy o udalosti"}.
|
||||
{"Deliver payloads with event notifications","Doručiť náklad s upozornením na udalosť"}.
|
||||
{"Description:","Popis:"}.
|
||||
@@ -331,7 +330,6 @@
|
||||
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","Veľké a malé písmená sa nerozlišujú: macbeth je to isté ako 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.","Táto stránka umožňuje refistrovať Jabber účet na tomto serveri. Vaše JID (Jabber IDentifikátor) bude vo formáte: užívateľ@server. Pozorne sledujte inštrukcie, aby ste údaje vypnili správne."}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","Na tejto stránke si môžete zrušiť Jabber účet registrovaný na tomto serveri."}.
|
||||
{"This room is not anonymous","Táto miestnosť nie je anonymná"}.
|
||||
{"Thursday","Štvrtok"}.
|
||||
{"Time","Čas"}.
|
||||
{"Time delay","Časový posun"}.
|
||||
|
||||
+531
-487
File diff suppressed because it is too large
Load Diff
@@ -53,7 +53,6 @@
|
||||
{"Delete message of the day on all hosts","Ta bort dagens meddelande på alla värdar"}.
|
||||
{"Delete message of the day","Ta bort dagens meddelande"}.
|
||||
{"Delete Selected","Tabort valda"}.
|
||||
{"Delete","Ta bort"}.
|
||||
{"Delete User","Ta bort användare"}.
|
||||
{"Deliver event notifications","Skicka eventnotifikation"}.
|
||||
{"Deliver payloads with event notifications","Skicka innehåll tillsammans med notifikationer"}.
|
||||
@@ -293,7 +292,6 @@
|
||||
{"Sunday","Söndag"}.
|
||||
{"The CAPTCHA is valid.","Din CAPTCHA är godkänd."}.
|
||||
{"the password is","Lösenordet är"}.
|
||||
{"This room is not anonymous","Detta rum är inte anonymt"}.
|
||||
{"Thursday","Torsdag"}.
|
||||
{"Time delay","Tidsförsening"}.
|
||||
{"Time","Tid"}.
|
||||
|
||||
+531
-487
File diff suppressed because it is too large
Load Diff
@@ -44,7 +44,6 @@
|
||||
{"Database Tables Configuration at ","การกำหนดค่าตารางฐานข้อมูลที่"}.
|
||||
{"December","ธันวาคม"}.
|
||||
{"Default users as participants","ผู้ใช้เริ่มต้นเป็นผู้เข้าร่วม"}.
|
||||
{"Delete","ลบ"}.
|
||||
{"Delete message of the day","ลบข้อความของวัน"}.
|
||||
{"Delete message of the day on all hosts","ลบข้อความของวันบนโฮสต์ทั้งหมด"}.
|
||||
{"Delete Selected","ลบข้อความที่เลือก"}.
|
||||
@@ -251,7 +250,6 @@
|
||||
{"Subscription","การสมัครสมาชิก"}.
|
||||
{"Sunday","วันอาทิตย์"}.
|
||||
{"the password is","รหัสผ่านคือ"}.
|
||||
{"This room is not anonymous","ห้องนี้ไม่ปิดบังชื่อ"}.
|
||||
{"Thursday","วันพฤหัสบดี"}.
|
||||
{"Time","เวลา"}.
|
||||
{"Time delay","การหน่วงเวลา"}.
|
||||
|
||||
+456
-412
File diff suppressed because it is too large
Load Diff
@@ -61,7 +61,6 @@
|
||||
{"Delete message of the day","Günün mesajını sil"}.
|
||||
{"Delete message of the day on all hosts","Tüm sunuculardaki günün mesajını sil"}.
|
||||
{"Delete Selected","Seçilenleri Sil"}.
|
||||
{"Delete","Sil"}.
|
||||
{"Delete User","Kullanıcıyı Sil"}.
|
||||
{"Deliver event notifications","Olay uyarıları gönderilsin"}.
|
||||
{"Deliver payloads with event notifications","Yükleri (payload) olay uyarıları ile beraber gönder"}.
|
||||
@@ -332,7 +331,6 @@
|
||||
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","Burada büyük küçük harfi yapılmaz: macbeth ile MacBeth ve Macbeth aynıdır."}.
|
||||
{"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.","Bu sayfa bu Jabber sunucusunda bir Jabber hesabı oluşturulmasına olanak tanıyor. Sizin JID'iniz (Jabber Tanımlayıcısı) şu biçemde olacaktır: kullanici_adi@sunucu. Lütfen alanları doğru doldurabilmek için yönergeleri dikkatle okuyunuz."}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","Bu sayfa bu Jabber sunucusundan bir Jabber hesabının kaydını silmeye olanak tanıyor."}.
|
||||
{"This room is not anonymous","Bu oda anonim değil"}.
|
||||
{"Thursday","Perşembe"}.
|
||||
{"Time delay","Zaman gecikmesi"}.
|
||||
{"Time","Zaman"}.
|
||||
|
||||
+531
-487
File diff suppressed because it is too large
Load Diff
@@ -60,7 +60,6 @@
|
||||
{"Delete message of the day","Видалити повідомлення дня"}.
|
||||
{"Delete Selected","Видалити виділені"}.
|
||||
{"Delete User","Видалити Користувача"}.
|
||||
{"Delete","Видалити"}.
|
||||
{"Deliver event notifications","Доставляти сповіщення про події"}.
|
||||
{"Deliver payloads with event notifications","Доставляти разом з повідомленнями про публікації самі публікації"}.
|
||||
{"Description:","Опис:"}.
|
||||
@@ -326,7 +325,6 @@
|
||||
{"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-сервера."}.
|
||||
{"This room is not anonymous","Ця кімната не анонімна"}.
|
||||
{"Thursday","Четвер"}.
|
||||
{"Time delay","Час затримки"}.
|
||||
{"Time","Час"}.
|
||||
|
||||
+531
-487
File diff suppressed because it is too large
Load Diff
@@ -48,7 +48,6 @@
|
||||
{"Delete message of the day","Xóa thư trong ngày"}.
|
||||
{"Delete Selected","Tùy chọn Xóa được Chọn"}.
|
||||
{"Delete User","Xóa Người Sử Dụng"}.
|
||||
{"Delete","Xóa"}.
|
||||
{"Deliver event notifications","Đưa ra các thông báo sự kiện"}.
|
||||
{"Deliver payloads with event notifications","Đưa ra thông tin dung lượng với các thông báo sự kiện"}.
|
||||
{"Description:","Miêu tả:"}.
|
||||
@@ -251,7 +250,6 @@
|
||||
{"Subscription","Đăng ký"}.
|
||||
{"Sunday","Chủ Nhật"}.
|
||||
{"the password is","mật khẩu là"}.
|
||||
{"This room is not anonymous","Phòng này không nặc danh"}.
|
||||
{"Thursday","Thứ Năm"}.
|
||||
{"Time delay","Thời gian trì hoãn"}.
|
||||
{"Time","Thời Gian"}.
|
||||
|
||||
+456
-412
File diff suppressed because it is too large
Load Diff
@@ -47,7 +47,6 @@
|
||||
{"Database Tables Configuration at ","Apontiaedje des tåves del båze di dnêyes so "}.
|
||||
{"December","decimbe"}.
|
||||
{"Default users as participants","Les uzeus sont des pårticipants come prémetowe dujhance"}.
|
||||
{"Delete","Disfacer"}.
|
||||
{"Delete message of the day","Disfacer l' messaedje do djoû"}.
|
||||
{"Delete message of the day on all hosts","Disfacer l' messaedje do djoû so tos les lodjoes"}.
|
||||
{"Delete Selected","Disfacer les elemints tchoezis"}.
|
||||
@@ -260,7 +259,6 @@
|
||||
{"Subscription","Abounmimnt"}.
|
||||
{"Sunday","dimegne"}.
|
||||
{"the password is","li scret est"}.
|
||||
{"This room is not anonymous","Cisse såle ci n' est nén anonime"}.
|
||||
{"Thursday","djudi"}.
|
||||
{"Time","Date"}.
|
||||
{"Time delay","Tårdjaedje"}.
|
||||
|
||||
+456
-412
File diff suppressed because it is too large
Load Diff
@@ -62,7 +62,6 @@
|
||||
{"Delete message of the day","删除每日消息"}.
|
||||
{"Delete Selected","删除已选内容"}.
|
||||
{"Delete User","删除用户"}.
|
||||
{"Delete","删除"}.
|
||||
{"Deliver event notifications","传递事件通知"}.
|
||||
{"Deliver payloads with event notifications","用事件通告传输有效负载"}.
|
||||
{"Description:","描述:"}.
|
||||
@@ -332,7 +331,6 @@
|
||||
{"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 (Jabber ID) 的形式如下: 用户名@服务器. 请仔细阅读说明并正确填写相应字段."}.
|
||||
{"This page allows to unregister a Jabber account in this Jabber server.","此页面允许在此 Jabber 服务器上注销 Jabber 帐户"}.
|
||||
{"This room is not anonymous","此房间不是匿名房间"}.
|
||||
{"Thursday","星期四"}.
|
||||
{"Time delay","时间延迟"}.
|
||||
{"Time","时间"}.
|
||||
|
||||
+531
-487
File diff suppressed because it is too large
Load Diff
+11
-7
@@ -61,8 +61,10 @@ Deps = [{p1_cache_tab, ".*", {git, "https://github.com/processone/cache_tab"}},
|
||||
{esip, ".*", {git, "https://github.com/processone/p1_sip"}},
|
||||
{p1_stun, ".*", {git, "https://github.com/processone/stun"}},
|
||||
{p1_yaml, ".*", {git, "https://github.com/processone/p1_yaml"}},
|
||||
{ehyperloglog, ".*", {git, "https://github.com/vaxelfel/eHyperLogLog.git"}},
|
||||
{p1_utils, ".*", {git, "https://github.com/processone/p1_utils"}}],
|
||||
{p1_utils, ".*", {git, "https://github.com/processone/p1_utils"}},
|
||||
{jiffy, ".*", {git, "https://github.com/davisp/jiffy"}},
|
||||
{oauth2, ".*", {git, "https://github.com/prefiks/oauth2.git"}},
|
||||
{xmlrpc, ".*", {git, "https://github.com/rds13/xmlrpc.git"}}],
|
||||
|
||||
ConfigureCmd = fun(Pkg, Flags) ->
|
||||
{'get-deps',
|
||||
@@ -98,8 +100,6 @@ CfgDeps = lists:flatmap(
|
||||
[{p1_zlib, ".*", {git, "https://github.com/processone/zlib"}}];
|
||||
({riak, true}) ->
|
||||
[{riakc, ".*", {git, "https://github.com/basho/riak-erlang-client", {tag, "1.4.2"}}}];
|
||||
({json, true}) ->
|
||||
[{jiffy, ".*", {git, "https://github.com/davisp/jiffy"}}];
|
||||
({elixir, true}) ->
|
||||
[{rebar_elixir_plugin, ".*", {git, "https://github.com/yrashk/rebar_elixir_plugin"}},
|
||||
{elixir, ".*", {git, "https://github.com/elixir-lang/elixir", {branch, "v1.0"}}}];
|
||||
@@ -140,8 +140,6 @@ CfgXrefs = lists:flatmap(
|
||||
({riak, true}) ->
|
||||
% used in map-reduce function called from riak vm
|
||||
["(\"riak_object\":_/_)"];
|
||||
({json, false}) ->
|
||||
["(\"jiffy\":_/_)"];
|
||||
({zlib, false}) ->
|
||||
["(\"ezlib\":_/_)"];
|
||||
({http, false}) ->
|
||||
@@ -172,6 +170,12 @@ TestConfig = case file:read_file_info(TestConfigFile) of
|
||||
""
|
||||
end,
|
||||
|
||||
AllDeps0 = Deps ++ CfgDeps,
|
||||
AllDeps = case lists:keytake(lager, 1, AllDeps0) of
|
||||
{value, Tuple, Rest} -> [Tuple|Rest];
|
||||
false -> AllDeps0
|
||||
end,
|
||||
|
||||
Config = [{erl_opts, Macros ++ HiPE ++ DebugInfo ++
|
||||
[{src_dirs, [asn1, src | SrcDirs]}]},
|
||||
{sub_dirs, ["rel"]},
|
||||
@@ -185,7 +189,7 @@ Config = [{erl_opts, Macros ++ HiPE ++ DebugInfo ++
|
||||
[{"(XC - UC) || (XU - X - B - "
|
||||
++ string:join(CfgXrefs, " - ") ++ ")", []}]},
|
||||
{post_hooks, PostHooks ++ CfgPostHooks},
|
||||
{deps, Deps ++ CfgDeps}] ++ ElixirConfig,
|
||||
{deps, AllDeps}] ++ ElixirConfig,
|
||||
%%io:format("ejabberd configuration:~n ~p~n", [Config]),
|
||||
Config.
|
||||
|
||||
|
||||
@@ -279,6 +279,8 @@ CREATE TABLE archive (
|
||||
xml text NOT NULL,
|
||||
txt text,
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
kind text,
|
||||
nick text,
|
||||
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
|
||||
Binary file not shown.
-1095
File diff suppressed because it is too large
Load Diff
-1802
File diff suppressed because it is too large
Load Diff
-1782
File diff suppressed because it is too large
Load Diff
@@ -93,6 +93,8 @@ CREATE TABLE archive (
|
||||
xml text NOT NULL,
|
||||
txt text,
|
||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE,
|
||||
kind varchar(10),
|
||||
nick varchar(250),
|
||||
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB CHARACTER SET utf8;
|
||||
|
||||
|
||||
@@ -93,6 +93,8 @@ CREATE TABLE archive (
|
||||
xml text NOT NULL,
|
||||
txt text,
|
||||
id SERIAL,
|
||||
kind text,
|
||||
nick text,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
|
||||
@@ -84,6 +84,7 @@ start() ->
|
||||
cyrsasl_digest:start([]),
|
||||
cyrsasl_scram:start([]),
|
||||
cyrsasl_anonymous:start([]),
|
||||
cyrsasl_oauth:start([]),
|
||||
ok.
|
||||
|
||||
%%
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
%%%----------------------------------------------------------------------
|
||||
%%% File : cyrsasl_oauth.erl
|
||||
%%% Author : Alexey Shchepin <alexey@process-one.net>
|
||||
%%% Purpose : X-OAUTH2 SASL mechanism
|
||||
%%% Created : 17 Sep 2015 by Alexey Shchepin <alexey@process-one.net>
|
||||
%%%
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2015 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.
|
||||
%%%
|
||||
%%%----------------------------------------------------------------------
|
||||
|
||||
-module(cyrsasl_oauth).
|
||||
|
||||
-author('alexey@process-one.net').
|
||||
|
||||
-export([start/1, stop/0, mech_new/6, mech_step/2, parse/1]).
|
||||
|
||||
-behaviour(cyrsasl).
|
||||
|
||||
-record(state, {host, is_user_exists}).
|
||||
|
||||
start(_Opts) ->
|
||||
cyrsasl:register_mechanism(<<"X-OAUTH2">>, ?MODULE, plain),
|
||||
ok.
|
||||
|
||||
stop() -> ok.
|
||||
|
||||
mech_new(Host, _GetPassword, _CheckPassword, _CheckPasswordDigest,
|
||||
IsUserExists, _ClientCertFile) ->
|
||||
{ok, #state{host = Host, is_user_exists = IsUserExists}}.
|
||||
|
||||
mech_step(State, ClientIn) ->
|
||||
case prepare(ClientIn) of
|
||||
[AuthzId, User, Token] ->
|
||||
case (State#state.is_user_exists)(User) of
|
||||
true ->
|
||||
case ejabberd_oauth:check_token(
|
||||
User, State#state.host, <<"sasl_auth">>, Token) of
|
||||
true ->
|
||||
{ok,
|
||||
[{username, User}, {authzid, AuthzId},
|
||||
{auth_module, ejabberd_oauth}]};
|
||||
false ->
|
||||
{error, <<"not-authorized">>, User}
|
||||
end;
|
||||
_ -> {error, <<"not-authorized">>, User}
|
||||
end;
|
||||
_ -> {error, <<"bad-protocol">>}
|
||||
end.
|
||||
|
||||
prepare(ClientIn) ->
|
||||
case parse(ClientIn) of
|
||||
[<<"">>, UserMaybeDomain, Token] ->
|
||||
case parse_domain(UserMaybeDomain) of
|
||||
%% <NUL>login@domain<NUL>pwd
|
||||
[User, _Domain] -> [UserMaybeDomain, User, Token];
|
||||
%% <NUL>login<NUL>pwd
|
||||
[User] -> [<<"">>, User, Token]
|
||||
end;
|
||||
%% login@domain<NUL>login<NUL>pwd
|
||||
[AuthzId, User, Token] -> [AuthzId, User, Token];
|
||||
_ -> error
|
||||
end.
|
||||
|
||||
parse(S) -> parse1(binary_to_list(S), "", []).
|
||||
|
||||
parse1([0 | Cs], S, T) ->
|
||||
parse1(Cs, "", [list_to_binary(lists:reverse(S)) | T]);
|
||||
parse1([C | Cs], S, T) -> parse1(Cs, [C | S], T);
|
||||
%parse1([], [], T) ->
|
||||
% lists:reverse(T);
|
||||
parse1([], S, T) ->
|
||||
lists:reverse([list_to_binary(lists:reverse(S)) | T]).
|
||||
|
||||
parse_domain(S) -> parse_domain1(binary_to_list(S), "", []).
|
||||
|
||||
parse_domain1([$@ | Cs], S, T) ->
|
||||
parse_domain1(Cs, "", [list_to_binary(lists:reverse(S)) | T]);
|
||||
parse_domain1([C | Cs], S, T) ->
|
||||
parse_domain1(Cs, [C | S], T);
|
||||
parse_domain1([], S, T) ->
|
||||
lists:reverse([list_to_binary(lists:reverse(S)) | T]).
|
||||
+16
-5
@@ -29,6 +29,7 @@
|
||||
-export([start/0, stop/0,
|
||||
%% Server
|
||||
status/0, reopen_log/0,
|
||||
set_loglevel/1,
|
||||
stop_kindly/2, send_service_message_all_mucs/2,
|
||||
registered_vhosts/0,
|
||||
reload_config/0,
|
||||
@@ -102,6 +103,11 @@ commands() ->
|
||||
{levelatom, atom},
|
||||
{leveldesc, string}
|
||||
]}}},
|
||||
#ejabberd_commands{name = set_loglevel, tags = [logs, server],
|
||||
desc = "Set the loglevel (0 to 5)",
|
||||
module = ?MODULE, function = set_loglevel,
|
||||
args = [{loglevel, integer}],
|
||||
result = {logger, atom}},
|
||||
|
||||
#ejabberd_commands{name = update_list, tags = [server],
|
||||
desc = "List modified modules that can be updated",
|
||||
@@ -167,6 +173,10 @@ commands() ->
|
||||
desc = "Export all tables as SQL queries to a file",
|
||||
module = ejd2odbc, function = export,
|
||||
args = [{host, string}, {file, string}], result = {res, rescode}},
|
||||
#ejabberd_commands{name = convert_to_scram, tags = [odbc],
|
||||
desc = "Convert the passwords in 'users' ODBC table to SCRAM",
|
||||
module = ejabberd_auth_odbc, function = convert_to_scram,
|
||||
args = [{host, binary}], result = {res, rescode}},
|
||||
|
||||
#ejabberd_commands{name = convert_to_yaml, tags = [config],
|
||||
desc = "Convert the input file from Erlang to YAML format",
|
||||
@@ -183,11 +193,6 @@ commands() ->
|
||||
module = ?MODULE, function = delete_old_messages,
|
||||
args = [{days, integer}], result = {res, rescode}},
|
||||
|
||||
#ejabberd_commands{name = rename_default_nodeplugin, tags = [mnesia],
|
||||
desc = "Update PubSub table from old ejabberd trunk SVN to 2.1.0",
|
||||
module = mod_pubsub, function = rename_default_nodeplugin,
|
||||
args = [], result = {res, rescode}},
|
||||
|
||||
#ejabberd_commands{name = export2odbc, tags = [mnesia],
|
||||
desc = "Export virtual host information from Mnesia tables to SQL files",
|
||||
module = ejd2odbc, function = export,
|
||||
@@ -253,6 +258,12 @@ reopen_log() ->
|
||||
ejabberd_hooks:run(reopen_log_hook, []),
|
||||
ejabberd_logger:reopen_log().
|
||||
|
||||
|
||||
set_loglevel(LogLevel) ->
|
||||
{module, Module} = ejabberd_logger:set(LogLevel),
|
||||
Module.
|
||||
|
||||
|
||||
%%%
|
||||
%%% Stop Kindly
|
||||
%%%
|
||||
|
||||
@@ -53,6 +53,7 @@ start(normal, _Args) ->
|
||||
ejabberd_commands:init(),
|
||||
ejabberd_admin:start(),
|
||||
gen_mod:start(),
|
||||
ext_mod:start(),
|
||||
ejabberd_config:start(),
|
||||
set_settings_from_config(),
|
||||
acl:start(),
|
||||
@@ -67,8 +68,8 @@ start(normal, _Args) ->
|
||||
%ejabberd_debug:eprof_start(),
|
||||
%ejabberd_debug:fprof_start(),
|
||||
maybe_add_nameservers(),
|
||||
ext_mod:start(),
|
||||
ejabberd_auth:start(),
|
||||
ejabberd_oauth:start(),
|
||||
start_modules(),
|
||||
ejabberd_listener:start_listeners(),
|
||||
?INFO_MSG("ejabberd ~s is started in the node ~p", [?VERSION, node()]),
|
||||
|
||||
@@ -281,7 +281,7 @@ is_fresh_enough(TimeStampLast, CacheTime) ->
|
||||
get_last_access(User, Server) ->
|
||||
case ejabberd_sm:get_user_resources(User, Server) of
|
||||
[] ->
|
||||
_US = {User, Server},
|
||||
%% _US = {User, Server},
|
||||
case get_last_info(User, Server) of
|
||||
mod_last_required -> mod_last_required;
|
||||
not_found -> never;
|
||||
@@ -311,7 +311,9 @@ get_mod_last_configured(Server) ->
|
||||
end.
|
||||
|
||||
is_configured(Host, Module) ->
|
||||
gen_mod:is_loaded(Host, Module).
|
||||
Os = ejabberd_config:get_local_option({modules, Host},
|
||||
fun(M) when is_list(M) -> M end),
|
||||
lists:keymember(Module, 1, Os).
|
||||
|
||||
opt_type(extauth_cache) ->
|
||||
fun (false) -> undefined;
|
||||
|
||||
+23
-7
@@ -110,6 +110,7 @@
|
||||
mgmt_max_queue,
|
||||
mgmt_pending_since,
|
||||
mgmt_timeout,
|
||||
mgmt_max_timeout,
|
||||
mgmt_resend,
|
||||
mgmt_stanzas_in = 0,
|
||||
mgmt_stanzas_out = 0,
|
||||
@@ -308,12 +309,16 @@ init([{SockMod, Socket}, Opts]) ->
|
||||
MaxAckQueue = case proplists:get_value(max_ack_queue, Opts) of
|
||||
Limit when is_integer(Limit), Limit > 0 -> Limit;
|
||||
infinity -> infinity;
|
||||
_ -> 500
|
||||
_ -> 1000
|
||||
end,
|
||||
ResumeTimeout = case proplists:get_value(resume_timeout, Opts) of
|
||||
Timeout when is_integer(Timeout), Timeout >= 0 -> Timeout;
|
||||
_ -> 300
|
||||
end,
|
||||
MaxResumeTimeout = case proplists:get_value(max_resume_timeout, Opts) of
|
||||
Max when is_integer(Max), Max >= ResumeTimeout -> Max;
|
||||
_ -> ResumeTimeout
|
||||
end,
|
||||
ResendOnTimeout = case proplists:get_value(resend_on_timeout, Opts) of
|
||||
Resend when is_boolean(Resend) -> Resend;
|
||||
if_offline -> if_offline;
|
||||
@@ -336,6 +341,7 @@ init([{SockMod, Socket}, Opts]) ->
|
||||
mgmt_state = StreamMgmtState,
|
||||
mgmt_max_queue = MaxAckQueue,
|
||||
mgmt_timeout = ResumeTimeout,
|
||||
mgmt_max_timeout = MaxResumeTimeout,
|
||||
mgmt_resend = ResendOnTimeout},
|
||||
{ok, wait_for_stream, StateData, ?C2S_OPEN_TIMEOUT}.
|
||||
|
||||
@@ -2025,6 +2031,7 @@ get_conn_type(StateData) ->
|
||||
p1_tls -> c2s_compressed_tls
|
||||
end;
|
||||
ejabberd_http_bind -> http_bind;
|
||||
ejabberd_http_ws -> websocket;
|
||||
_ -> unknown
|
||||
end.
|
||||
|
||||
@@ -2687,16 +2694,17 @@ perform_stream_mgmt(#xmlel{name = Name, attrs = Attrs}, StateData) ->
|
||||
StateData
|
||||
end.
|
||||
|
||||
handle_enable(#state{mgmt_timeout = ConfigTimeout} = StateData, Attrs) ->
|
||||
handle_enable(#state{mgmt_timeout = DefaultTimeout,
|
||||
mgmt_max_timeout = MaxTimeout} = StateData, Attrs) ->
|
||||
Timeout = case xml:get_attr_s(<<"resume">>, Attrs) of
|
||||
ResumeAttr when ResumeAttr == <<"true">>;
|
||||
ResumeAttr == <<"1">> ->
|
||||
MaxAttr = xml:get_attr_s(<<"max">>, Attrs),
|
||||
case catch jlib:binary_to_integer(MaxAttr) of
|
||||
Max when is_integer(Max), Max > 0, Max =< ConfigTimeout ->
|
||||
Max when is_integer(Max), Max > 0, Max =< MaxTimeout ->
|
||||
Max;
|
||||
_ ->
|
||||
ConfigTimeout
|
||||
DefaultTimeout
|
||||
end;
|
||||
_ ->
|
||||
0
|
||||
@@ -2912,7 +2920,13 @@ handle_unacked_stanzas(StateData)
|
||||
ejabberd_router:route(To, From, Err)
|
||||
end
|
||||
end,
|
||||
F = fun(From, To, El, Time) ->
|
||||
F = fun(From, _To, #xmlel{name = <<"presence">>}, _Time) ->
|
||||
?DEBUG("Dropping presence stanza from ~s",
|
||||
[jlib:jid_to_string(From)]);
|
||||
(From, To, #xmlel{name = <<"iq">>} = El, _Time) ->
|
||||
Err = jlib:make_error_reply(El, ?ERR_SERVICE_UNAVAILABLE),
|
||||
ejabberd_router:route(To, From, Err);
|
||||
(From, To, El, Time) ->
|
||||
%% We'll drop the stanza if it was <forwarded/> by some
|
||||
%% encapsulating protocol as per XEP-0297. One such protocol is
|
||||
%% XEP-0280, which says: "When a receiving server attempts to
|
||||
@@ -2922,7 +2936,7 @@ handle_unacked_stanzas(StateData)
|
||||
%% stanza could easily lead to unexpected results as well.
|
||||
case is_encapsulated_forward(El) of
|
||||
true ->
|
||||
?DEBUG("Dropping forwarded stanza from ~s",
|
||||
?DEBUG("Dropping forwarded message stanza from ~s",
|
||||
[xml:get_attr_s(<<"from">>, El#xmlel.attrs)]);
|
||||
false ->
|
||||
ReRoute(From, To, El, Time)
|
||||
@@ -3010,12 +3024,14 @@ inherit_session_state(#state{user = U, server = S} = StateData, ResumeID) ->
|
||||
end.
|
||||
|
||||
resume_session({Time, PID}) ->
|
||||
(?GEN_FSM):sync_send_all_state_event(PID, {resume_session, Time}, 3000).
|
||||
(?GEN_FSM):sync_send_all_state_event(PID, {resume_session, Time}, 5000).
|
||||
|
||||
make_resume_id(StateData) ->
|
||||
{Time, _} = StateData#state.sid,
|
||||
jlib:term_to_base64({StateData#state.resource, Time}).
|
||||
|
||||
add_resent_delay_info(_State, #xmlel{name = <<"iq">>} = El, _Time) ->
|
||||
El;
|
||||
add_resent_delay_info(#state{server = From}, El, Time) ->
|
||||
jlib:add_delay_info(El, From, Time, <<"Resent">>).
|
||||
|
||||
|
||||
+167
-18
@@ -211,12 +211,15 @@
|
||||
-export([init/0,
|
||||
list_commands/0,
|
||||
get_command_format/1,
|
||||
get_command_format/2,
|
||||
get_command_definition/1,
|
||||
get_tags_commands/0,
|
||||
get_commands/0,
|
||||
register_commands/1,
|
||||
unregister_commands/1,
|
||||
execute_command/2,
|
||||
execute_command/4
|
||||
execute_command/4,
|
||||
opt_type/1
|
||||
]).
|
||||
|
||||
-include("ejabberd_commands.hrl").
|
||||
@@ -265,19 +268,39 @@ list_commands() ->
|
||||
_ = '_'}),
|
||||
[{A, B, C} || [A, B, C] <- Commands].
|
||||
|
||||
-spec list_commands_policy() -> [{atom(), [aterm()], string(), atom()}].
|
||||
|
||||
%% @doc Get a list of all the available commands, arguments, description, and
|
||||
%% policy.
|
||||
list_commands_policy() ->
|
||||
Commands = ets:match(ejabberd_commands,
|
||||
#ejabberd_commands{name = '$1',
|
||||
args = '$2',
|
||||
desc = '$3',
|
||||
policy = '$4',
|
||||
_ = '_'}),
|
||||
[{A, B, C, D} || [A, B, C, D] <- Commands].
|
||||
|
||||
-spec get_command_format(atom()) -> {[aterm()], rterm()} | {error, command_unknown}.
|
||||
|
||||
%% @doc Get the format of arguments and result of a command.
|
||||
get_command_format(Name) ->
|
||||
get_command_format(Name, noauth).
|
||||
|
||||
get_command_format(Name, Auth) ->
|
||||
Admin = is_admin(Name, Auth),
|
||||
Matched = ets:match(ejabberd_commands,
|
||||
#ejabberd_commands{name = Name,
|
||||
args = '$1',
|
||||
result = '$2',
|
||||
policy = '$3',
|
||||
_ = '_'}),
|
||||
case Matched of
|
||||
[] ->
|
||||
{error, command_unknown};
|
||||
[[Args, Result]] ->
|
||||
[[Args, Result, user]] when Admin ->
|
||||
{[{user, binary}, {server, binary} | Args], Result};
|
||||
[[Args, Result, _]] ->
|
||||
{Args, Result}
|
||||
end.
|
||||
|
||||
@@ -295,24 +318,54 @@ get_command_definition(Name) ->
|
||||
execute_command(Name, Arguments) ->
|
||||
execute_command([], noauth, Name, Arguments).
|
||||
|
||||
-spec execute_command([{atom(), [atom()], [any()]}],
|
||||
{binary(), binary(), binary(), boolean()} |
|
||||
noauth | admin,
|
||||
atom(),
|
||||
[any()]
|
||||
) -> any().
|
||||
|
||||
%% @spec (AccessCommands, Auth, Name::atom(), Arguments) -> ResultTerm | {error, Error}
|
||||
%% where
|
||||
%% AccessCommands = [{Access, CommandNames, Arguments}]
|
||||
%% Auth = {User::string(), Server::string(), Password::string()} | noauth
|
||||
%% Auth = {User::string(), Server::string(), Password::string(), Admin::boolean()}
|
||||
%% | noauth
|
||||
%% | admin
|
||||
%% Method = atom()
|
||||
%% Arguments = [any()]
|
||||
%% Error = command_unknown | account_unprivileged | invalid_account_data | no_auth_provided
|
||||
execute_command(AccessCommands, Auth, Name, Arguments) ->
|
||||
execute_command(AccessCommands1, Auth1, Name, Arguments) ->
|
||||
Auth = case is_admin(Name, Auth1) of
|
||||
true -> admin;
|
||||
false -> Auth1
|
||||
end,
|
||||
case ets:lookup(ejabberd_commands, Name) of
|
||||
[Command] ->
|
||||
AccessCommands = get_access_commands(AccessCommands1),
|
||||
try check_access_commands(AccessCommands, Auth, Name, Command, Arguments) of
|
||||
ok -> execute_command2(Command, Arguments)
|
||||
ok -> execute_command2(Auth, Command, Arguments)
|
||||
catch
|
||||
{error, Error} -> {error, Error}
|
||||
end;
|
||||
[] -> {error, command_unknown}
|
||||
end.
|
||||
|
||||
execute_command2(
|
||||
_Auth, #ejabberd_commands{policy = open} = Command, Arguments) ->
|
||||
execute_command2(Command, Arguments);
|
||||
execute_command2(
|
||||
_Auth, #ejabberd_commands{policy = restricted} = Command, Arguments) ->
|
||||
execute_command2(Command, Arguments);
|
||||
execute_command2(
|
||||
_Auth, #ejabberd_commands{policy = admin} = Command, Arguments) ->
|
||||
execute_command2(Command, Arguments);
|
||||
execute_command2(
|
||||
admin, #ejabberd_commands{policy = user} = Command, Arguments) ->
|
||||
execute_command2(Command, Arguments);
|
||||
execute_command2(
|
||||
{User, Server, _, _}, #ejabberd_commands{policy = user} = Command, Arguments) ->
|
||||
execute_command2(Command, [User, Server | Arguments]).
|
||||
|
||||
execute_command2(Command, Arguments) ->
|
||||
Module = Command#ejabberd_commands.module,
|
||||
Function = Command#ejabberd_commands.function,
|
||||
@@ -372,11 +425,20 @@ get_tags_commands() ->
|
||||
%% Error = account_unprivileged | invalid_account_data
|
||||
check_access_commands([], _Auth, _Method, _Command, _Arguments) ->
|
||||
ok;
|
||||
check_access_commands(AccessCommands, Auth, Method, Command, Arguments) ->
|
||||
check_access_commands(AccessCommands, Auth, Method, Command1, Arguments) ->
|
||||
Command =
|
||||
case {Command1#ejabberd_commands.policy, Auth} of
|
||||
{user, admin} ->
|
||||
Command1#ejabberd_commands{
|
||||
args = [{user, binary}, {server, binary} |
|
||||
Command1#ejabberd_commands.args]};
|
||||
_ ->
|
||||
Command1
|
||||
end,
|
||||
AccessCommandsAllowed =
|
||||
lists:filter(
|
||||
fun({Access, Commands, ArgumentRestrictions}) ->
|
||||
case check_access(Access, Auth) of
|
||||
case check_access(Command, Access, Auth) of
|
||||
true ->
|
||||
check_access_command(Commands, Command, ArgumentRestrictions,
|
||||
Method, Arguments);
|
||||
@@ -385,7 +447,7 @@ check_access_commands(AccessCommands, Auth, Method, Command, Arguments) ->
|
||||
end;
|
||||
({Access, Commands}) ->
|
||||
ArgumentRestrictions = [],
|
||||
case check_access(Access, Auth) of
|
||||
case check_access(Command, Access, Auth) of
|
||||
true ->
|
||||
check_access_command(Commands, Command, ArgumentRestrictions,
|
||||
Method, Arguments);
|
||||
@@ -399,29 +461,48 @@ check_access_commands(AccessCommands, Auth, Method, Command, Arguments) ->
|
||||
L when is_list(L) -> ok
|
||||
end.
|
||||
|
||||
-spec check_auth(noauth) -> noauth_provided;
|
||||
({binary(), binary(), binary()}) -> {ok, binary(), binary()}.
|
||||
-spec check_auth(ejabberd_commands(), noauth) -> noauth_provided;
|
||||
(ejabberd_commands(),
|
||||
{binary(), binary(), binary(), boolean()}) ->
|
||||
{ok, binary(), binary()}.
|
||||
|
||||
check_auth(noauth) ->
|
||||
check_auth(_Command, noauth) ->
|
||||
no_auth_provided;
|
||||
check_auth({User, Server, Password}) ->
|
||||
check_auth(Command, {User, Server, {oauth, Token}, _}) ->
|
||||
Scope = erlang:atom_to_binary(Command#ejabberd_commands.name, utf8),
|
||||
case ejabberd_oauth:check_token(User, Server, Scope, Token) of
|
||||
true ->
|
||||
{ok, User, Server};
|
||||
false ->
|
||||
throw({error, invalid_account_data})
|
||||
end;
|
||||
check_auth(_Command, {User, Server, Password, _}) when is_binary(Password) ->
|
||||
%% Check the account exists and password is valid
|
||||
case ejabberd_auth:check_password(User, Server, Password) of
|
||||
true -> {ok, User, Server};
|
||||
_ -> throw({error, invalid_account_data})
|
||||
end.
|
||||
|
||||
check_access(all, _) ->
|
||||
check_access(Command, all, _)
|
||||
when Command#ejabberd_commands.policy == open ->
|
||||
true;
|
||||
check_access(Access, Auth) ->
|
||||
case check_auth(Auth) of
|
||||
check_access(_Command, _Access, admin) ->
|
||||
true;
|
||||
check_access(_Command, _Access, {_User, _Server, _, true}) ->
|
||||
false;
|
||||
check_access(Command, Access, Auth)
|
||||
when Command#ejabberd_commands.policy == open;
|
||||
Command#ejabberd_commands.policy == user ->
|
||||
case check_auth(Command, Auth) of
|
||||
{ok, User, Server} ->
|
||||
check_access(Access, User, Server);
|
||||
check_access2(Access, User, Server);
|
||||
_ ->
|
||||
false
|
||||
end.
|
||||
end;
|
||||
check_access(_Command, _Access, _Auth) ->
|
||||
false.
|
||||
|
||||
check_access(Access, User, Server) ->
|
||||
check_access2(Access, User, Server) ->
|
||||
%% Check this user has access permission
|
||||
case acl:match_rule(Server, Access, jlib:make_jid(User, Server, <<"">>)) of
|
||||
allow -> true;
|
||||
@@ -452,3 +533,71 @@ tag_arguments(ArgsDefs, Args) ->
|
||||
end,
|
||||
ArgsDefs,
|
||||
Args).
|
||||
|
||||
|
||||
get_access_commands(undefined) ->
|
||||
Cmds = get_commands(),
|
||||
[{all, Cmds, []}];
|
||||
get_access_commands(AccessCommands) ->
|
||||
AccessCommands.
|
||||
|
||||
get_commands() ->
|
||||
Opts = ejabberd_config:get_option(
|
||||
commands,
|
||||
fun(V) when is_list(V) -> V end,
|
||||
[]),
|
||||
CommandsList = list_commands_policy(),
|
||||
OpenCmds = [N || {N, _, _, open} <- CommandsList],
|
||||
RestrictedCmds = [N || {N, _, _, restricted} <- CommandsList],
|
||||
AdminCmds = [N || {N, _, _, admin} <- CommandsList],
|
||||
UserCmds = [N || {N, _, _, user} <- CommandsList],
|
||||
Cmds =
|
||||
lists:foldl(
|
||||
fun({add_commands, L}, Acc) ->
|
||||
Cmds = case L of
|
||||
open -> OpenCmds;
|
||||
restricted -> RestrictedCmds;
|
||||
admin -> AdminCmds;
|
||||
user -> UserCmds;
|
||||
_ when is_list(L) -> L
|
||||
end,
|
||||
lists:usort(Cmds ++ Acc);
|
||||
({remove_commands, L}, Acc) ->
|
||||
Cmds = case L of
|
||||
open -> OpenCmds;
|
||||
restricted -> RestrictedCmds;
|
||||
admin -> AdminCmds;
|
||||
user -> UserCmds;
|
||||
_ when is_list(L) -> L
|
||||
end,
|
||||
Acc -- Cmds;
|
||||
(_, Acc) -> Acc
|
||||
end, AdminCmds ++ UserCmds, Opts),
|
||||
Cmds.
|
||||
|
||||
is_admin(_Name, noauth) ->
|
||||
false;
|
||||
is_admin(_Name, admin) ->
|
||||
true;
|
||||
is_admin(_Name, {_User, _Server, _, false}) ->
|
||||
false;
|
||||
is_admin(Name, {User, Server, _, true} = Auth) ->
|
||||
AdminAccess = ejabberd_config:get_option(
|
||||
commands_admin_access,
|
||||
fun(A) when is_atom(A) -> A end,
|
||||
none),
|
||||
case acl:match_rule(Server, AdminAccess,
|
||||
jlib:make_jid(User, Server, <<"">>)) of
|
||||
allow ->
|
||||
case catch check_auth(get_command_definition(Name), Auth) of
|
||||
{ok, _, _} -> true;
|
||||
_ -> false
|
||||
end;
|
||||
deny -> false
|
||||
end.
|
||||
|
||||
opt_type(commands_admin_access) ->
|
||||
fun(A) when is_atom(A) -> A end;
|
||||
opt_type(commands) ->
|
||||
fun(V) when is_list(V) -> V end;
|
||||
opt_type(_) -> [commands, commands_admin_access].
|
||||
|
||||
+65
-37
@@ -120,12 +120,7 @@ read_file(File) ->
|
||||
{include_modules_configs, true}]).
|
||||
|
||||
read_file(File, Opts) ->
|
||||
Terms1 = get_plain_terms_file(File, Opts),
|
||||
Terms_macros = case proplists:get_bool(replace_macros, Opts) of
|
||||
true -> replace_macros(Terms1);
|
||||
false -> Terms1
|
||||
end,
|
||||
Terms = transform_terms(Terms_macros),
|
||||
Terms = get_plain_terms_file(File, Opts),
|
||||
State = lists:foldl(fun search_hosts/2, #state{}, Terms),
|
||||
{Head, Tail} = lists:partition(
|
||||
fun({host_config, _}) -> false;
|
||||
@@ -206,16 +201,24 @@ get_plain_terms_file(File1, Opts) ->
|
||||
BinTerms1 = strings_to_binary(Terms),
|
||||
ModInc = case proplists:get_bool(include_modules_configs, Opts) of
|
||||
true ->
|
||||
filelib:wildcard(ext_mod:modules_dir() ++ "/*/conf/*.yaml");
|
||||
Files = [{filename:rootname(filename:basename(F)), F}
|
||||
|| F <- filelib:wildcard(ext_mod:config_dir() ++ "/*.{yml,yaml}")
|
||||
++ filelib:wildcard(ext_mod:modules_dir() ++ "/*/conf/*.{yml,yaml}")],
|
||||
[proplists:get_value(F,Files) || F <- proplists:get_keys(Files)];
|
||||
_ ->
|
||||
[]
|
||||
[]
|
||||
end,
|
||||
BinTerms = BinTerms1 ++ [{include_config_file, list_to_binary(V)} || V <- ModInc],
|
||||
BinTerms2 = case proplists:get_bool(replace_macros, Opts) of
|
||||
true -> replace_macros(BinTerms);
|
||||
false -> BinTerms
|
||||
end,
|
||||
BinTerms3 = transform_terms(BinTerms2),
|
||||
case proplists:get_bool(include_files, Opts) of
|
||||
true ->
|
||||
include_config_files(BinTerms);
|
||||
include_config_files(BinTerms3);
|
||||
false ->
|
||||
BinTerms
|
||||
BinTerms3
|
||||
end;
|
||||
{error, Reason} ->
|
||||
?ERROR_MSG(Reason, []),
|
||||
@@ -368,6 +371,45 @@ exit_or_halt(ExitText) ->
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%% Support for 'include_config_file'
|
||||
|
||||
get_config_option_key(Name, Val) ->
|
||||
if Name == listen ->
|
||||
[{Key, _, _}] = ejabberd_listener:validate_cfg([Val]),
|
||||
Key;
|
||||
is_tuple(Val) ->
|
||||
element(1, Val);
|
||||
true ->
|
||||
Val
|
||||
end.
|
||||
|
||||
maps_to_lists(IMap) ->
|
||||
maps:fold(fun(Name, Map, Res) when Name == host_config orelse Name == append_host_config ->
|
||||
[{Name, [{Host, maps_to_lists(SMap)} || {Host,SMap} <- maps:values(Map)]} | Res];
|
||||
(Name, Map, Res) when is_map(Map) ->
|
||||
[{Name, maps:values(Map)} | Res];
|
||||
(Name, Val, Res) ->
|
||||
[{Name, Val} | Res]
|
||||
end, [], IMap).
|
||||
|
||||
|
||||
merge_configs(Terms, ResMap) ->
|
||||
lists:foldl(fun({Name, Val}, Map) when is_list(Val) ->
|
||||
Old = maps:get(Name, Map, #{}),
|
||||
New = lists:foldl(fun(SVal, OMap) ->
|
||||
NVal = if Name == host_config orelse Name == append_host_config ->
|
||||
{Host, Opts} = SVal,
|
||||
{_, SubMap} = maps:get(Host, OMap, {Host, #{}}),
|
||||
{Host, merge_configs(Opts, SubMap)};
|
||||
true ->
|
||||
SVal
|
||||
end,
|
||||
maps:put(get_config_option_key(Name, SVal), NVal, OMap)
|
||||
end, Old, Val),
|
||||
maps:put(Name, New, Map);
|
||||
({Name, Val}, Map) ->
|
||||
maps:put(Name, Val, Map)
|
||||
end, ResMap, Terms).
|
||||
|
||||
|
||||
%% @doc Include additional configuration files in the list of terms.
|
||||
%% @spec ([term()]) -> [term()]
|
||||
include_config_files(Terms) ->
|
||||
@@ -385,24 +427,9 @@ include_config_files(Terms) ->
|
||||
include_config_file(File, Opts)
|
||||
end, lists:flatten(FileOpts)),
|
||||
|
||||
SpecialTerms = dict:from_list([{hosts, none}, {listen, none}, {modules, none}]),
|
||||
Partition = fun(L) ->
|
||||
lists:foldr(fun({Name, Val} = Pair, Dict) ->
|
||||
case dict:find(Name, SpecialTerms) of
|
||||
{ok, _} ->
|
||||
dict:store(Name, Val, Dict);
|
||||
_ ->
|
||||
dict:update(rest, fun(L1) -> [Pair|L1] end, Dict)
|
||||
end;
|
||||
(Tuple, Dict2) ->
|
||||
dict:update(rest, fun(L2) -> [Tuple|L2] end, Dict2)
|
||||
end, dict:from_list([{rest, []}]), L)
|
||||
end,
|
||||
|
||||
Merged = dict:merge(fun(_Name, V1, V2) -> V1 ++ V2 end,
|
||||
Partition(Terms1), Partition(Terms2)),
|
||||
Rest = dict:fetch(rest, Merged),
|
||||
dict:to_list(dict:erase(rest, Merged)) ++ Rest.
|
||||
M1 = merge_configs(Terms1, #{}),
|
||||
M2 = merge_configs(Terms2, M1),
|
||||
maps_to_lists(M2).
|
||||
|
||||
transform_include_option({include_config_file, File}) when is_list(File) ->
|
||||
case is_string(File) of
|
||||
@@ -716,21 +743,19 @@ get_option(Opt, F, Default) ->
|
||||
|
||||
get_modules_with_options() ->
|
||||
{ok, Mods} = application:get_key(ejabberd, modules),
|
||||
ExtMods = [Name || {Name, _Details} <- ext_mod:installed()],
|
||||
lists:foldl(
|
||||
fun(Mod, D) ->
|
||||
Attrs = Mod:module_info(attributes),
|
||||
Behavs = proplists:get_value(behaviour, Attrs, []),
|
||||
case lists:member(ejabberd_config, Behavs) or (Mod == ?MODULE) of
|
||||
true ->
|
||||
Opts = Mod:opt_type(''),
|
||||
case catch Mod:opt_type('') of
|
||||
Opts when is_list(Opts) ->
|
||||
lists:foldl(
|
||||
fun(Opt, Acc) ->
|
||||
dict:append(Opt, Mod, Acc)
|
||||
end, D, Opts);
|
||||
false ->
|
||||
{'EXIT', {undef, _}} ->
|
||||
D
|
||||
end
|
||||
end, dict:new(), [?MODULE|Mods]).
|
||||
end, dict:new(), [?MODULE|ExtMods++Mods]).
|
||||
|
||||
validate_opts(#state{opts = Opts} = State) ->
|
||||
ModOpts = get_modules_with_options(),
|
||||
@@ -1143,6 +1168,8 @@ emit_deprecation_warning(Module, NewModule) ->
|
||||
[Module, NewModule])
|
||||
end.
|
||||
|
||||
opt_type(hide_sensitive_log_data) ->
|
||||
fun (H) when is_boolean(H) -> H end;
|
||||
opt_type(hosts) ->
|
||||
fun(L) when is_list(L) ->
|
||||
lists:map(
|
||||
@@ -1153,9 +1180,10 @@ opt_type(hosts) ->
|
||||
opt_type(language) ->
|
||||
fun iolist_to_binary/1;
|
||||
opt_type(_) ->
|
||||
[hosts, language].
|
||||
[hide_sensitive_log_data, hosts, language].
|
||||
|
||||
-spec may_hide_data(string()) -> string().
|
||||
-spec may_hide_data(string()) -> string();
|
||||
(binary()) -> binary().
|
||||
|
||||
may_hide_data(Data) ->
|
||||
case ejabberd_config:get_option(
|
||||
|
||||
@@ -211,7 +211,7 @@ process(Args) ->
|
||||
process2(["--auth", User, Server, Pass | Args], AccessCommands) ->
|
||||
process2(Args, {list_to_binary(User), list_to_binary(Server), list_to_binary(Pass)}, AccessCommands);
|
||||
process2(Args, AccessCommands) ->
|
||||
process2(Args, noauth, AccessCommands).
|
||||
process2(Args, admin, AccessCommands).
|
||||
|
||||
process2(Args, Auth, AccessCommands) ->
|
||||
case try_run_ctp(Args, Auth, AccessCommands) of
|
||||
@@ -283,7 +283,7 @@ call_command([CmdString | Args], Auth, AccessCommands) ->
|
||||
CmdStringU = ejabberd_regexp:greplace(
|
||||
list_to_binary(CmdString), <<"-">>, <<"_">>),
|
||||
Command = list_to_atom(binary_to_list(CmdStringU)),
|
||||
case ejabberd_commands:get_command_format(Command) of
|
||||
case ejabberd_commands:get_command_format(Command, Auth) of
|
||||
{error, command_unknown} ->
|
||||
{error, command_unknown};
|
||||
{ArgsFormat, ResultFormat} ->
|
||||
@@ -412,7 +412,8 @@ get_list_commands() ->
|
||||
end.
|
||||
|
||||
%% Return: {string(), [string()], string()}
|
||||
tuple_command_help({Name, Args, Desc}) ->
|
||||
tuple_command_help({Name, _Args, Desc}) ->
|
||||
{Args, _} = ejabberd_commands:get_command_format(Name, admin),
|
||||
Arguments = [atom_to_list(ArgN) || {ArgN, _ArgF} <- Args],
|
||||
Prepend = case is_supported_args(Args) of
|
||||
true -> "";
|
||||
@@ -723,12 +724,13 @@ print_usage_command(Cmd, C, MaxC, ShCode) ->
|
||||
tags = TagsAtoms,
|
||||
desc = Desc,
|
||||
longdesc = LongDesc,
|
||||
args = ArgsDef,
|
||||
result = ResultDef} = C,
|
||||
|
||||
NameFmt = [" ", ?B("Command Name"), ": ", Cmd, "\n"],
|
||||
|
||||
%% Initial indentation of result is 13 = length(" Arguments: ")
|
||||
{ArgsDef, _} = ejabberd_commands:get_command_format(
|
||||
C#ejabberd_commands.name, admin),
|
||||
Args = [format_usage_ctype(ArgDef, 13) || ArgDef <- ArgsDef],
|
||||
ArgsMargin = lists:duplicate(13, $\s),
|
||||
ArgsListFmt = case Args of
|
||||
|
||||
+13
-2
@@ -160,7 +160,11 @@ init({SockMod, Socket}, Opts) ->
|
||||
default_host = DefaultHost,
|
||||
options = Opts,
|
||||
request_handlers = RequestHandlers},
|
||||
receive_headers(State).
|
||||
try receive_headers(State) of
|
||||
V -> V
|
||||
catch
|
||||
{error, _} -> State
|
||||
end.
|
||||
|
||||
become_controller(_Pid) -> ok.
|
||||
|
||||
@@ -427,13 +431,17 @@ process_request(#state{request_method = Method,
|
||||
false ->
|
||||
make_bad_request(State);
|
||||
{LPath, LQuery, Data} ->
|
||||
{ok, IPHere} =
|
||||
PeerName =
|
||||
case SockMod of
|
||||
gen_tcp ->
|
||||
inet:peername(Socket);
|
||||
_ ->
|
||||
SockMod:peername(Socket)
|
||||
end,
|
||||
IPHere = case PeerName of
|
||||
{ok, V} -> V;
|
||||
{error, _} = E -> throw(E)
|
||||
end,
|
||||
XFF = proplists:get_value('X-Forwarded-For', RequestHeaders, []),
|
||||
IP = analyze_ip_xff(IPHere, XFF, Host),
|
||||
Request = #request{method = Method,
|
||||
@@ -758,6 +766,9 @@ parse_auth(<<"Basic ", Auth64/binary>>) ->
|
||||
{User, <<$:, Pass/binary>>} = erlang:split_binary(Auth, Pos-1),
|
||||
{User, Pass}
|
||||
end;
|
||||
parse_auth(<<"Bearer ", SToken/binary>>) ->
|
||||
Token = str:strip(SToken),
|
||||
{oauth, Token, []};
|
||||
parse_auth(<<_/binary>>) -> undefined.
|
||||
|
||||
parse_urlencoded(S) ->
|
||||
|
||||
+21
-12
@@ -16,7 +16,7 @@
|
||||
-behaviour(gen_fsm).
|
||||
|
||||
%% External exports
|
||||
-export([start_link/3,
|
||||
-export([start_link/4,
|
||||
init/1,
|
||||
handle_event/3,
|
||||
handle_sync_event/4,
|
||||
@@ -35,13 +35,13 @@
|
||||
change_shaper/2,
|
||||
monitor/1,
|
||||
close/1,
|
||||
start/4,
|
||||
start/5,
|
||||
handle_session_start/8,
|
||||
handle_http_put/7,
|
||||
http_put/7,
|
||||
http_get/2,
|
||||
prepare_response/4,
|
||||
process_request/2]).
|
||||
process_request/3]).
|
||||
|
||||
-include("ejabberd.hrl").
|
||||
-include("logger.hrl").
|
||||
@@ -140,17 +140,17 @@
|
||||
%%%----------------------------------------------------------------------
|
||||
%% TODO: If compile with no supervisor option, start the session without
|
||||
%% supervisor
|
||||
start(XMPPDomain, Sid, Key, IP) ->
|
||||
start(XMPPDomain, Sid, Key, IP, HOpts) ->
|
||||
?DEBUG("Starting session", []),
|
||||
SupervisorProc = gen_mod:get_module_proc(XMPPDomain, ?PROCNAME_MHB),
|
||||
case catch supervisor:start_child(SupervisorProc, [Sid, Key, IP]) of
|
||||
case catch supervisor:start_child(SupervisorProc, [Sid, Key, IP, HOpts]) of
|
||||
{ok, Pid} -> {ok, Pid};
|
||||
_ -> check_bind_module(XMPPDomain),
|
||||
{error, "Cannot start HTTP bind session"}
|
||||
end.
|
||||
|
||||
start_link(Sid, Key, IP) ->
|
||||
gen_fsm:start_link(?MODULE, [Sid, Key, IP], ?FSMOPTS).
|
||||
start_link(Sid, Key, IP, HOpts) ->
|
||||
gen_fsm:start_link(?MODULE, [Sid, Key, IP, HOpts], ?FSMOPTS).
|
||||
|
||||
send({http_bind, FsmRef, _IP}, Packet) ->
|
||||
gen_fsm:sync_send_all_state_event(FsmRef,
|
||||
@@ -197,7 +197,7 @@ peername({http_bind, _FsmRef, IP}) -> {ok, IP}.
|
||||
|
||||
|
||||
%% Entry point for data coming from client through ejabberd HTTP server:
|
||||
process_request(Data, IP) ->
|
||||
process_request(Data, IP, HOpts) ->
|
||||
Opts1 = ejabberd_c2s_config:get_c2s_limits(),
|
||||
Opts = [{xml_socket, true} | Opts1],
|
||||
MaxStanzaSize = case lists:keysearch(max_stanza_size, 1,
|
||||
@@ -220,8 +220,9 @@ process_request(Data, IP) ->
|
||||
"dressing' xmlns='",
|
||||
(?NS_HTTP_BIND)/binary, "'/>">>};
|
||||
XmppDomain ->
|
||||
NXmppDomain = jlib:nameprep(XmppDomain),
|
||||
Sid = p1_sha:sha(term_to_binary({now(), make_ref()})),
|
||||
case start(XmppDomain, Sid, <<"">>, IP) of
|
||||
case start(NXmppDomain, Sid, <<"">>, IP, HOpts) of
|
||||
{error, _} ->
|
||||
{500, ?HEADER,
|
||||
<<"<body type='terminate' condition='internal-se"
|
||||
@@ -229,7 +230,7 @@ process_request(Data, IP) ->
|
||||
(?NS_HTTP_BIND)/binary,
|
||||
"'>Internal Server Error</body>">>};
|
||||
{ok, Pid} ->
|
||||
handle_session_start(Pid, XmppDomain, Sid, Rid, Attrs,
|
||||
handle_session_start(Pid, NXmppDomain, Sid, Rid, Attrs,
|
||||
Payload, PayloadSize, IP)
|
||||
end
|
||||
end;
|
||||
@@ -329,10 +330,18 @@ handle_session_start(Pid, XmppDomain, Sid, Rid, Attrs,
|
||||
%% ignore |
|
||||
%% {stop, StopReason}
|
||||
%%----------------------------------------------------------------------
|
||||
init([Sid, Key, IP]) ->
|
||||
init([Sid, Key, IP, HOpts]) ->
|
||||
?DEBUG("started: ~p", [{Sid, Key, IP}]),
|
||||
Opts1 = ejabberd_c2s_config:get_c2s_limits(),
|
||||
Opts = [{xml_socket, true} | Opts1],
|
||||
SOpts = lists:filtermap(fun({stream_managment, _}) -> true;
|
||||
({max_ack_queue, _}) -> true;
|
||||
({resume_timeout, _}) -> true;
|
||||
({max_resume_timeout, _}) -> true;
|
||||
({resend_on_timeout, _}) -> true;
|
||||
(_) -> false
|
||||
end, HOpts),
|
||||
|
||||
Opts = [{xml_socket, true} | SOpts ++ Opts1],
|
||||
Shaper = none,
|
||||
ShaperState = shaper:new(Shaper),
|
||||
Socket = {http_bind, self(), IP},
|
||||
|
||||
@@ -111,8 +111,15 @@ socket_handoff(LocalPath, Request, Socket, SockMod, Buf, Opts) ->
|
||||
|
||||
%%% Internal
|
||||
|
||||
init([{#ws{ip = IP}, _} = WS]) ->
|
||||
Opts = [{xml_socket, true} | ejabberd_c2s_config:get_c2s_limits()],
|
||||
init([{#ws{ip = IP, http_opts = HOpts}, _} = WS]) ->
|
||||
SOpts = lists:filtermap(fun({stream_managment, _}) -> true;
|
||||
({max_ack_queue, _}) -> true;
|
||||
({resume_timeout, _}) -> true;
|
||||
({max_resume_timeout, _}) -> true;
|
||||
({resend_on_timeout, _}) -> true;
|
||||
(_) -> false
|
||||
end, HOpts),
|
||||
Opts = [{xml_socket, true} | ejabberd_c2s_config:get_c2s_limits() ++ SOpts],
|
||||
PingInterval = ejabberd_config:get_option(
|
||||
{websocket_ping_interval, ?MYNAME},
|
||||
fun(I) when is_integer(I), I>=0 -> I end,
|
||||
@@ -263,10 +270,9 @@ setup_timers(StateData) ->
|
||||
Timer = erlang:start_timer(StateData#state.timeout,
|
||||
self(), []),
|
||||
cancel_timer(StateData#state.ping_timer),
|
||||
PingTimer = case {StateData#state.ping_interval, StateData#state.rfc_compilant} of
|
||||
{0, _} -> StateData#state.ping_timer;
|
||||
{_, false} -> StateData#state.ping_timer;
|
||||
{V, _} -> erlang:start_timer(V, self(), [])
|
||||
PingTimer = case StateData#state.ping_interval of
|
||||
0 -> StateData#state.ping_timer;
|
||||
V -> erlang:start_timer(V, self(), [])
|
||||
end,
|
||||
StateData#state{timer = Timer, ping_timer = PingTimer,
|
||||
pong_expected = false}.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
%%%----------------------------------------------------------------------
|
||||
%%% File : idna.erl
|
||||
%%% File : ejabberd_idna.erl
|
||||
%%% Author : Alexey Shchepin <alexey@process-one.net>
|
||||
%%% Purpose : Support for IDNA (RFC3490)
|
||||
%%% Created : 10 Apr 2004 by Alexey Shchepin <alexey@process-one.net>
|
||||
@@ -23,7 +23,7 @@
|
||||
%%%
|
||||
%%%----------------------------------------------------------------------
|
||||
|
||||
-module(idna).
|
||||
-module(ejabberd_idna).
|
||||
|
||||
-author('alexey@process-one.net').
|
||||
|
||||
@@ -157,7 +157,8 @@ set(LogLevel) when is_integer(LogLevel) ->
|
||||
2 -> error;
|
||||
3 -> warning;
|
||||
4 -> info;
|
||||
5 -> debug
|
||||
5 -> debug;
|
||||
E -> throw({wrong_loglevel, E})
|
||||
end,
|
||||
case lager:get_loglevel(lager_console_backend) of
|
||||
LagerLogLevel ->
|
||||
@@ -194,8 +195,10 @@ reopen_log() ->
|
||||
get() ->
|
||||
p1_loglevel:get().
|
||||
|
||||
set(LogLevel) when LogLevel >=0, LogLevel =< 5 ->
|
||||
p1_loglevel:set(LogLevel);
|
||||
set(LogLevel) ->
|
||||
p1_loglevel:set(LogLevel).
|
||||
throw({wrong_loglevel, LogLevel}).
|
||||
|
||||
%%%===================================================================
|
||||
%%% Internal functions
|
||||
|
||||
File diff suppressed because one or more lines are too long
+116
-9
@@ -46,6 +46,10 @@
|
||||
sqlite_file/1,
|
||||
encode_term/1,
|
||||
decode_term/1,
|
||||
odbc_config/0,
|
||||
freetds_config/0,
|
||||
odbcinst_config/0,
|
||||
init_mssql/1,
|
||||
keep_alive/1]).
|
||||
|
||||
%% gen_fsm callbacks
|
||||
@@ -62,7 +66,7 @@
|
||||
|
||||
-record(state,
|
||||
{db_ref = self() :: pid(),
|
||||
db_type = odbc :: pgsql | mysql | sqlite | odbc,
|
||||
db_type = odbc :: pgsql | mysql | sqlite | odbc | mssql,
|
||||
start_interval = 0 :: non_neg_integer(),
|
||||
host = <<"">> :: binary(),
|
||||
max_pending_requests_len :: non_neg_integer(),
|
||||
@@ -78,6 +82,8 @@
|
||||
|
||||
-define(MYSQL_PORT, 3306).
|
||||
|
||||
-define(MSSQL_PORT, 1433).
|
||||
|
||||
-define(MAX_TRANSACTION_RESTARTS, 10).
|
||||
|
||||
-define(TRANSACTION_TIMEOUT, 60000).
|
||||
@@ -432,13 +438,13 @@ outer_transaction(F, NRestarts, _Reason) ->
|
||||
[T]),
|
||||
erlang:exit(implementation_faulty)
|
||||
end,
|
||||
sql_query_internal(<<"begin;">>),
|
||||
sql_query_internal([<<"begin;">>]),
|
||||
put(?NESTING_KEY, PreviousNestingLevel + 1),
|
||||
Result = (catch F()),
|
||||
put(?NESTING_KEY, PreviousNestingLevel),
|
||||
case Result of
|
||||
{aborted, Reason} when NRestarts > 0 ->
|
||||
sql_query_internal(<<"rollback;">>),
|
||||
sql_query_internal([<<"rollback;">>]),
|
||||
outer_transaction(F, NRestarts - 1, Reason);
|
||||
{aborted, Reason} when NRestarts =:= 0 ->
|
||||
?ERROR_MSG("SQL transaction restarts exceeded~n** "
|
||||
@@ -447,11 +453,11 @@ outer_transaction(F, NRestarts, _Reason) ->
|
||||
"== ~p",
|
||||
[?MAX_TRANSACTION_RESTARTS, Reason,
|
||||
erlang:get_stacktrace(), get(?STATE_KEY)]),
|
||||
sql_query_internal(<<"rollback;">>),
|
||||
sql_query_internal([<<"rollback;">>]),
|
||||
{aborted, Reason};
|
||||
{'EXIT', Reason} ->
|
||||
sql_query_internal(<<"rollback;">>), {aborted, Reason};
|
||||
Res -> sql_query_internal(<<"commit;">>), {atomic, Res}
|
||||
sql_query_internal([<<"rollback;">>]), {aborted, Reason};
|
||||
Res -> sql_query_internal([<<"commit;">>]), {atomic, Res}
|
||||
end.
|
||||
|
||||
execute_bloc(F) ->
|
||||
@@ -463,6 +469,7 @@ execute_bloc(F) ->
|
||||
|
||||
sql_query_internal(Query) ->
|
||||
State = get(?STATE_KEY),
|
||||
?DEBUG("SQL: \"~s\"", [Query]),
|
||||
Res = case State#state.db_type of
|
||||
odbc ->
|
||||
to_odbc(odbc:sql_query(State#state.db_ref, Query,
|
||||
@@ -512,8 +519,10 @@ abort_on_driver_error(Reply, From) ->
|
||||
%% Open an ODBC database connection
|
||||
odbc_connect(SQLServer) ->
|
||||
ejabberd:start_app(odbc),
|
||||
odbc:connect(binary_to_list(SQLServer), [{scrollable_cursors, off},
|
||||
{binary_strings, on}]).
|
||||
odbc:connect(binary_to_list(SQLServer),
|
||||
[{scrollable_cursors, off},
|
||||
{tuple_row, off},
|
||||
{binary_strings, on}]).
|
||||
|
||||
%% == Native SQLite code
|
||||
|
||||
@@ -638,7 +647,15 @@ mysql_item_to_odbc(Columns, Recs) ->
|
||||
{selected, [element(2, Column) || Column <- Columns], Recs}.
|
||||
|
||||
to_odbc({selected, Columns, Recs}) ->
|
||||
{selected, [list_to_binary(Column) || Column <- Columns], [tuple_to_list(Rec) || Rec <- Recs]};
|
||||
Rows = [lists:map(
|
||||
fun(I) when is_integer(I) ->
|
||||
jlib:integer_to_binary(I);
|
||||
(B) ->
|
||||
B
|
||||
end, Row) || Row <- Recs],
|
||||
{selected, [list_to_binary(C) || C <- Columns], Rows};
|
||||
to_odbc({error, Reason}) when is_list(Reason) ->
|
||||
{error, list_to_binary(Reason)};
|
||||
to_odbc(Res) ->
|
||||
Res.
|
||||
|
||||
@@ -654,6 +671,7 @@ db_opts(Host) ->
|
||||
fun(mysql) -> mysql;
|
||||
(pgsql) -> pgsql;
|
||||
(sqlite) -> sqlite;
|
||||
(mssql) -> mssql;
|
||||
(odbc) -> odbc
|
||||
end, odbc),
|
||||
Server = ejabberd_config:get_option({odbc_server, Host},
|
||||
@@ -669,6 +687,7 @@ db_opts(Host) ->
|
||||
{odbc_port, Host},
|
||||
fun(P) when is_integer(P), P > 0, P < 65536 -> P end,
|
||||
case Type of
|
||||
mssql -> ?MSSQL_PORT;
|
||||
mysql -> ?MYSQL_PORT;
|
||||
pgsql -> ?PGSQL_PORT
|
||||
end),
|
||||
@@ -681,9 +700,96 @@ db_opts(Host) ->
|
||||
Pass = ejabberd_config:get_option({odbc_password, Host},
|
||||
fun iolist_to_binary/1,
|
||||
<<"">>),
|
||||
case Type of
|
||||
mssql ->
|
||||
Username = get_mssql_user(Server, User),
|
||||
[odbc, <<"DSN=", Host/binary, ";UID=", Username/binary,
|
||||
";PWD=", Pass/binary>>];
|
||||
_ ->
|
||||
[Type, Server, Port, DB, User, Pass]
|
||||
end
|
||||
end.
|
||||
|
||||
init_mssql(Host) ->
|
||||
Server = ejabberd_config:get_option({odbc_server, Host},
|
||||
fun iolist_to_binary/1,
|
||||
<<"localhost">>),
|
||||
Port = ejabberd_config:get_option(
|
||||
{odbc_port, Host},
|
||||
fun(P) when is_integer(P), P > 0, P < 65536 -> P end,
|
||||
?MSSQL_PORT),
|
||||
DB = ejabberd_config:get_option({odbc_database, Host},
|
||||
fun iolist_to_binary/1,
|
||||
<<"ejabberd">>),
|
||||
FreeTDS = io_lib:fwrite("[~s]~n"
|
||||
"\thost = ~s~n"
|
||||
"\tport = ~p~n"
|
||||
"\ttds version = 7.1~n",
|
||||
[Host, Server, Port]),
|
||||
ODBCINST = io_lib:fwrite("[freetds]~n"
|
||||
"Description = MSSQL connection~n"
|
||||
"Driver = libtdsodbc.so~n"
|
||||
"Setup = libtdsS.so~n"
|
||||
"UsageCount = 1~n"
|
||||
"FileUsage = 1~n", []),
|
||||
ODBCINI = io_lib:fwrite("[~s]~n"
|
||||
"Description = MS SQL~n"
|
||||
"Driver = freetds~n"
|
||||
"Servername = ~s~n"
|
||||
"Database = ~s~n"
|
||||
"Port = ~p~n",
|
||||
[Host, Host, DB, Port]),
|
||||
?DEBUG("~s:~n~s", [freetds_config(), FreeTDS]),
|
||||
?DEBUG("~s:~n~s", [odbcinst_config(), ODBCINST]),
|
||||
?DEBUG("~s:~n~s", [odbc_config(), ODBCINI]),
|
||||
case filelib:ensure_dir(freetds_config()) of
|
||||
ok ->
|
||||
try
|
||||
ok = file:write_file(freetds_config(), FreeTDS, [append]),
|
||||
ok = file:write_file(odbcinst_config(), ODBCINST),
|
||||
ok = file:write_file(odbc_config(), ODBCINI, [append]),
|
||||
os:putenv("ODBCSYSINI", tmp_dir()),
|
||||
os:putenv("FREETDS", freetds_config()),
|
||||
os:putenv("FREETDSCONF", freetds_config()),
|
||||
ok
|
||||
catch error:{badmatch, {error, Reason} = Err} ->
|
||||
?ERROR_MSG("failed to create temporary files in ~s: ~s",
|
||||
[tmp_dir(), file:format_error(Reason)]),
|
||||
Err
|
||||
end;
|
||||
{error, Reason} = Err ->
|
||||
?ERROR_MSG("failed to create temporary directory ~s: ~s",
|
||||
[tmp_dir(), file:format_error(Reason)]),
|
||||
Err
|
||||
end.
|
||||
|
||||
get_mssql_user(Server, User) ->
|
||||
HostName = case inet_parse:address(binary_to_list(Server)) of
|
||||
{ok, _} ->
|
||||
Server;
|
||||
{error, _} ->
|
||||
hd(str:tokens(Server, <<".">>))
|
||||
end,
|
||||
UserName = case str:chr(User, $@) of
|
||||
0 ->
|
||||
<<User/binary, $@, HostName/binary>>;
|
||||
_ ->
|
||||
User
|
||||
end,
|
||||
UserName.
|
||||
|
||||
tmp_dir() ->
|
||||
filename:join(["/tmp", "ejabberd"]).
|
||||
|
||||
odbc_config() ->
|
||||
filename:join(tmp_dir(), "odbc.ini").
|
||||
|
||||
freetds_config() ->
|
||||
filename:join(tmp_dir(), "freetds.conf").
|
||||
|
||||
odbcinst_config() ->
|
||||
filename:join(tmp_dir(), "odbcinst.ini").
|
||||
|
||||
max_fsm_queue() ->
|
||||
ejabberd_config:get_option(
|
||||
max_fsm_queue,
|
||||
@@ -708,6 +814,7 @@ opt_type(odbc_type) ->
|
||||
fun (mysql) -> mysql;
|
||||
(pgsql) -> pgsql;
|
||||
(sqlite) -> sqlite;
|
||||
(mssql) -> mssql;
|
||||
(odbc) -> odbc
|
||||
end;
|
||||
opt_type(odbc_username) -> fun iolist_to_binary/1;
|
||||
|
||||
@@ -73,11 +73,14 @@ init([Host]) ->
|
||||
fun(mysql) -> mysql;
|
||||
(pgsql) -> pgsql;
|
||||
(sqlite) -> sqlite;
|
||||
(mssql) -> mssql;
|
||||
(odbc) -> odbc
|
||||
end, odbc),
|
||||
case Type of
|
||||
sqlite ->
|
||||
check_sqlite_db(Host);
|
||||
mssql ->
|
||||
ejabberd_odbc:init_mssql(Host);
|
||||
_ ->
|
||||
ok
|
||||
end,
|
||||
@@ -216,6 +219,7 @@ opt_type(odbc_type) ->
|
||||
fun (mysql) -> mysql;
|
||||
(pgsql) -> pgsql;
|
||||
(sqlite) -> sqlite;
|
||||
(mssql) -> mssql;
|
||||
(odbc) -> odbc
|
||||
end;
|
||||
opt_type(_) ->
|
||||
|
||||
@@ -35,6 +35,9 @@
|
||||
-include("logger.hrl").
|
||||
|
||||
start() ->
|
||||
file:delete(ejabberd_odbc:freetds_config()),
|
||||
file:delete(ejabberd_odbc:odbc_config()),
|
||||
file:delete(ejabberd_odbc:odbcinst_config()),
|
||||
case lists:any(fun(H) -> needs_odbc(H) /= false end,
|
||||
?MYHOSTS) of
|
||||
true ->
|
||||
@@ -77,11 +80,13 @@ needs_odbc(Host) ->
|
||||
fun(mysql) -> mysql;
|
||||
(pgsql) -> pgsql;
|
||||
(sqlite) -> sqlite;
|
||||
(mssql) -> mssql;
|
||||
(odbc) -> odbc
|
||||
end, undefined) of
|
||||
mysql -> {true, p1_mysql};
|
||||
pgsql -> {true, p1_pgsql};
|
||||
sqlite -> {true, sqlite3};
|
||||
mssql -> {true, odbc};
|
||||
odbc -> {true, odbc};
|
||||
undefined -> false
|
||||
end.
|
||||
@@ -90,6 +95,7 @@ opt_type(odbc_type) ->
|
||||
fun (mysql) -> mysql;
|
||||
(pgsql) -> pgsql;
|
||||
(sqlite) -> sqlite;
|
||||
(mssql) -> mssql;
|
||||
(odbc) -> odbc
|
||||
end;
|
||||
opt_type(_) -> [odbc_type].
|
||||
|
||||
@@ -159,8 +159,13 @@ handle_call({starttls, TLSSocket}, _From,
|
||||
c2s_pid = C2SPid,
|
||||
max_stanza_size = MaxStanzaSize} = State) ->
|
||||
close_stream(XMLStreamState),
|
||||
NewXMLStreamState = xml_stream:new(C2SPid,
|
||||
MaxStanzaSize),
|
||||
NewXMLStreamState = case C2SPid of
|
||||
undefined ->
|
||||
XMLStreamState;
|
||||
_ ->
|
||||
xml_stream:new(C2SPid,
|
||||
MaxStanzaSize)
|
||||
end,
|
||||
NewState = State#state{socket = TLSSocket,
|
||||
sock_mod = p1_tls,
|
||||
xml_stream_state = NewXMLStreamState},
|
||||
@@ -245,7 +250,7 @@ handle_info({Tag, _TCPSocket, Data},
|
||||
?HIBERNATE_TIMEOUT};
|
||||
{error, Reason} ->
|
||||
if is_binary(Reason) ->
|
||||
?ERROR_MSG("TLS error = ~s", [Reason]);
|
||||
?DEBUG("TLS error = ~s", [Reason]);
|
||||
true ->
|
||||
ok
|
||||
end,
|
||||
@@ -347,7 +352,12 @@ process_data(Data,
|
||||
shaper_state = ShaperState, c2s_pid = C2SPid} =
|
||||
State) ->
|
||||
?DEBUG("Received XML on stream = ~p", [(Data)]),
|
||||
XMLStreamState1 = xml_stream:parse(XMLStreamState, Data),
|
||||
XMLStreamState1 = case XMLStreamState of
|
||||
undefined ->
|
||||
XMLStreamState;
|
||||
_ ->
|
||||
xml_stream:parse(XMLStreamState, Data)
|
||||
end,
|
||||
{NewShaperState, Pause} = shaper:update(ShaperState, byte_size(Data)),
|
||||
if
|
||||
C2SPid == undefined ->
|
||||
|
||||
@@ -225,7 +225,7 @@ check_peer_certificate(SockMod, Sock, Peer) ->
|
||||
{ok, Cert} ->
|
||||
case SockMod:get_verify_result(Sock) of
|
||||
0 ->
|
||||
case idna:domain_utf8_to_ascii(Peer) of
|
||||
case ejabberd_idna:domain_utf8_to_ascii(Peer) of
|
||||
false ->
|
||||
{error, <<"Cannot decode remote server name">>};
|
||||
AsciiPeer ->
|
||||
@@ -241,8 +241,10 @@ check_peer_certificate(SockMod, Sock, Peer) ->
|
||||
VerifyRes ->
|
||||
{error, p1_tls:get_cert_verify_string(VerifyRes, Cert)}
|
||||
end;
|
||||
{error, _Reason} ->
|
||||
{error, <<"Cannot get peer certificate">>};
|
||||
error ->
|
||||
{error, <<"Cannot get peer certificate">>}
|
||||
{error, <<"Cannot get peer certificate">>}
|
||||
end.
|
||||
|
||||
%%====================================================================
|
||||
@@ -529,6 +531,7 @@ commands() ->
|
||||
desc =
|
||||
"Number of incoming s2s connections on "
|
||||
"the node",
|
||||
policy = admin,
|
||||
module = ?MODULE, function = incoming_s2s_number,
|
||||
args = [], result = {s2s_incoming, integer}},
|
||||
#ejabberd_commands{name = outgoing_s2s_number,
|
||||
@@ -536,6 +539,7 @@ commands() ->
|
||||
desc =
|
||||
"Number of outgoing s2s connections on "
|
||||
"the node",
|
||||
policy = admin,
|
||||
module = ?MODULE, function = outgoing_s2s_number,
|
||||
args = [], result = {s2s_outgoing, integer}}].
|
||||
|
||||
@@ -718,7 +722,7 @@ get_cert_domains(Cert) ->
|
||||
lresource =
|
||||
<<"">>} ->
|
||||
case
|
||||
idna:domain_utf8_to_ascii(LD)
|
||||
ejabberd_idna:domain_utf8_to_ascii(LD)
|
||||
of
|
||||
false ->
|
||||
[];
|
||||
|
||||
@@ -235,7 +235,7 @@ open_socket(init, StateData) ->
|
||||
[{StateData#state.myname, StateData#state.server,
|
||||
StateData#state.new, StateData#state.verify}]),
|
||||
AddrList = case
|
||||
idna:domain_utf8_to_ascii(StateData#state.server)
|
||||
ejabberd_idna:domain_utf8_to_ascii(StateData#state.server)
|
||||
of
|
||||
false -> [];
|
||||
ASCIIAddr -> get_addr_port(ASCIIAddr)
|
||||
|
||||
+4
-1
@@ -763,18 +763,21 @@ commands() ->
|
||||
[#ejabberd_commands{name = connected_users,
|
||||
tags = [session],
|
||||
desc = "List all established sessions",
|
||||
policy = admin,
|
||||
module = ?MODULE, function = connected_users, args = [],
|
||||
result = {connected_users, {list, {sessions, string}}}},
|
||||
#ejabberd_commands{name = connected_users_number,
|
||||
tags = [session, stats],
|
||||
desc = "Get the number of established sessions",
|
||||
policy = admin,
|
||||
module = ?MODULE, function = connected_users_number,
|
||||
args = [], result = {num_sessions, integer}},
|
||||
#ejabberd_commands{name = user_resources,
|
||||
tags = [session],
|
||||
desc = "List user's connected resources",
|
||||
policy = user,
|
||||
module = ?MODULE, function = user_resources,
|
||||
args = [{user, binary}, {host, binary}],
|
||||
args = [],
|
||||
result = {resources, {list, {resource, string}}}},
|
||||
#ejabberd_commands{name = kick_user,
|
||||
tags = [session],
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user