Merge branch 'develop' into feature/display-context-items

This commit is contained in:
Nikita Gopienko 2023-04-18 13:19:54 +03:00
commit a4c98147db
439 changed files with 2339 additions and 2394 deletions

View File

@ -2,50 +2,200 @@ FROM ubuntu:20.04 AS base
ENV DEBIAN_FRONTEND="noninteractive"
ENV TZ="Etc/UTC"
WORKDIR /tmp/workdir
RUN apt-get -yqq update && \
apt-get install -yq --no-install-recommends ca-certificates expat libgomp1 && \
apt-get autoremove -y && \
apt-get clean -y
RUN apt-get -yqq update && \
apt-get install -yq --no-install-recommends ca-certificates expat libgomp1 && \
apt-get autoremove -y && \
apt-get clean -y
FROM base as build
ENV FFMPEG_VERSION=6.0 \
AOM_VERSION=v1.0.0 \
CHROMAPRINT_VERSION=1.5.0 \
FDKAAC_VERSION=0.1.5 \
FONTCONFIG_VERSION=2.12.4 \
FREETYPE_VERSION=2.10.4 \
FRIBIDI_VERSION=0.19.7 \
KVAZAAR_VERSION=2.0.0 \
LAME_VERSION=3.100 \
LIBASS_VERSION=0.13.7 \
LIBPTHREAD_STUBS_VERSION=0.4 \
LIBVIDSTAB_VERSION=1.1.0 \
LIBXCB_VERSION=1.13.1 \
XCBPROTO_VERSION=1.13 \
OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
OPUS_VERSION=1.2 \
OPENJPEG_VERSION=2.1.2 \
THEORA_VERSION=1.1.1 \
VORBIS_VERSION=1.3.5 \
VPX_VERSION=1.8.0 \
WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
X265_VERSION=3.4 \
VPX_VERSION=1.8.0 \
XAU_VERSION=1.0.9 \
XORG_MACROS_VERSION=1.19.2 \
XPROTO_VERSION=7.0.31 \
XVID_VERSION=1.3.4 \
LIBXML2_VERSION=2.9.12 \
LIBBLURAY_VERSION=1.1.2 \
LIBZMQ_VERSION=4.3.2 \
LIBSRT_VERSION=1.4.1 \
LIBARIBB24_VERSION=1.0.3 \
LIBPNG_VERSION=1.6.9 \
LIBVMAF_VERSION=2.1.1 \
SRC=/usr/local
ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG MAKEFLAGS="-j2"
ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig"
ARG PREFIX=/opt/ffmpeg
ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64"
ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz"
ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2"
ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz"
ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz"
RUN buildDeps="autoconf \
automake \
cmake \
curl \
bzip2 \
libexpat1-dev \
g++ \
gcc \
git \
gperf \
libtool \
make \
meson \
nasm \
perl \
pkg-config \
python \
libssl-dev \
yasm \
zlib1g-dev" && \
ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG MAKEFLAGS="-j2"
ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig"
ARG PREFIX=/opt/ffmpeg
ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64"
ARG DEBIAN_FRONTEND=noninteractive
RUN buildDeps="autoconf \
automake \
cmake \
curl \
bzip2 \
libexpat1-dev \
g++ \
gcc \
git \
gperf \
libtool \
make \
meson \
nasm \
perl \
pkg-config \
python \
libssl-dev \
yasm \
zlib1g-dev" && \
apt-get -yqq update && \
apt-get install -yq --no-install-recommends ${buildDeps}
### libvpx
## libvmaf https://github.com/Netflix/vmaf
RUN \
if which meson || false; then \
echo "Building VMAF." && \
DIR=/tmp/vmaf && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \
tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \
cd /tmp/vmaf/libvmaf && \
meson build --buildtype release --prefix=${PREFIX} && \
ninja -vC build && \
ninja -vC build install && \
mkdir -p ${PREFIX}/share/model/ && \
cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \
rm -rf ${DIR}; \
else \
echo "VMAF skipped."; \
fi
## opencore-amr https://sourceforge.net/projects/opencore-amr/
RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
make install && \
rm -rf ${DIR}
## x264 http://www.videolan.org/developers/x264.html
RUN \
DIR=/tmp/x264 && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${X264_VERSION}.tar.bz2 | \
tar -jx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared --enable-pic --disable-cli && \
make && \
make install && \
rm -rf ${DIR}
### x265 http://x265.org/
RUN \
DIR=/tmp/x265 && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sL https://github.com/videolan/x265/archive/refs/tags/${X265_VERSION}.tar.gz | \
tar -zx && \
cd x265-${X265_VERSION}/build/linux && \
sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
sed -i "/^cmake/ s/$/ -DENABLE_CLI=OFF/" multilib.sh && \
./multilib.sh && \
make -C 8bit install && \
rm -rf ${DIR}
### libogg https://www.xiph.org/ogg/
RUN \
DIR=/tmp/ogg && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz && \
echo ${OGG_SHA256SUM} | sha256sum --check && \
tar -zx --strip-components=1 -f libogg-${OGG_VERSION}.tar.gz && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
make install && \
rm -rf ${DIR}
### libopus https://www.opus-codec.org/
RUN \
DIR=/tmp/opus && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz && \
echo ${OPUS_SHA256SUM} | sha256sum --check && \
tar -zx --strip-components=1 -f opus-${OPUS_VERSION}.tar.gz && \
autoreconf -fiv && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
make install && \
rm -rf ${DIR}
### libvorbis https://xiph.org/vorbis/
RUN \
DIR=/tmp/vorbis && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz && \
echo ${VORBIS_SHA256SUM} | sha256sum --check && \
tar -zx --strip-components=1 -f libvorbis-${VORBIS_VERSION}.tar.gz && \
./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
make && \
make install && \
rm -rf ${DIR}
### libtheora http://www.theora.org/
RUN \
DIR=/tmp/theora && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${THEORA_VERSION}.tar.gz && \
echo ${THEORA_SHA256SUM} | sha256sum --check && \
tar -zx --strip-components=1 -f libtheora-${THEORA_VERSION}.tar.gz && \
./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
make && \
make install && \
rm -rf ${DIR}
### libvpx https://www.webmproject.org/code/
RUN \
DIR=/tmp/vpx && \
mkdir -p ${DIR} && \
@ -57,22 +207,349 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
## Download ffmpeg
### libwebp https://developers.google.com/speed/webp/
RUN \
DIR=/tmp/vebp && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
make install && \
rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sL https://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --disable-frontend && \
make && \
make install && \
rm -rf ${DIR}
### xvid https://www.xvid.com/
RUN \
DIR=/tmp/xvid && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO http://downloads.xvid.org/downloads/xvidcore-${XVID_VERSION}.tar.gz && \
echo ${XVID_SHA256SUM} | sha256sum --check && \
tar -zx -f xvidcore-${XVID_VERSION}.tar.gz && \
cd xvidcore/build/generic && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" && \
make && \
make install && \
rm -rf ${DIR}
### fdk-aac https://github.com/mstorsjo/fdk-aac
RUN \
DIR=/tmp/fdk-aac && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${FDKAAC_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
autoreconf -fiv && \
./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
make && \
make install && \
rm -rf ${DIR}
## openjpeg https://github.com/uclouvain/openjpeg
RUN \
DIR=/tmp/openjpeg && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sL https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
make && \
make install && \
rm -rf ${DIR}
## freetype https://www.freetype.org/
RUN \
DIR=/tmp/freetype && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPE_VERSION}.tar.gz && \
echo ${FREETYPE_SHA256SUM} | sha256sum --check && \
tar -zx --strip-components=1 -f freetype-${FREETYPE_VERSION}.tar.gz && \
./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
make && \
make install && \
rm -rf ${DIR}
## libvstab https://github.com/georgmartius/vid.stab
RUN \
DIR=/tmp/vid.stab && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz && \
echo ${LIBVIDSTAB_SHA256SUM} | sha256sum --check && \
tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
make && \
make install && \
rm -rf ${DIR}
## fridibi https://www.fribidi.org/
RUN \
DIR=/tmp/fribidi && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://github.com/fribidi/fribidi/archive/${FRIBIDI_VERSION}.tar.gz && \
echo ${FRIBIDI_SHA256SUM} | sha256sum --check && \
tar -zx --strip-components=1 -f ${FRIBIDI_VERSION}.tar.gz && \
sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib bin/' Makefile.am && \
./bootstrap --no-config --auto && \
./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
make -j1 && \
make install && \
rm -rf ${DIR}
## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
RUN \
DIR=/tmp/fontconfig && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG_VERSION}.tar.bz2 && \
tar -jx --strip-components=1 -f fontconfig-${FONTCONFIG_VERSION}.tar.bz2 && \
./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
make && \
make install && \
rm -rf ${DIR}
## libass https://github.com/libass/libass
RUN \
DIR=/tmp/libass && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz && \
echo ${LIBASS_SHA256SUM} | sha256sum --check && \
tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
./autogen.sh && \
./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
make && \
make install && \
rm -rf ${DIR}
## kvazaar https://github.com/ultravideo/kvazaar
RUN \
DIR=/tmp/kvazaar && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://github.com/ultravideo/kvazaar/archive/v${KVAZAAR_VERSION}.tar.gz && \
tar -zx --strip-components=1 -f v${KVAZAAR_VERSION}.tar.gz && \
./autogen.sh && \
./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
make && \
make install && \
rm -rf ${DIR}
RUN \
DIR=/tmp/aom && \
git clone --branch ${AOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
cd ${DIR} ; \
rm -rf CMakeCache.txt CMakeFiles ; \
mkdir -p ./aom_build ; \
cd ./aom_build ; \
cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
make ; \
make install ; \
rm -rf ${DIR}
## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/
RUN \
DIR=/tmp/xorg-macros && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \
tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \
./configure --srcdir=${DIR} --prefix="${PREFIX}" && \
make && \
make install && \
rm -rf ${DIR}
RUN \
DIR=/tmp/xproto && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \
tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \
./configure --srcdir=${DIR} --prefix="${PREFIX}" && \
make && \
make install && \
rm -rf ${DIR}
RUN \
DIR=/tmp/libXau && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \
tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \
./configure --srcdir=${DIR} --prefix="${PREFIX}" && \
make && \
make install && \
rm -rf ${DIR}
RUN \
DIR=/tmp/libpthread-stubs && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \
tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \
./configure --prefix="${PREFIX}" && \
make && \
make install && \
rm -rf ${DIR}
RUN \
DIR=/tmp/libxcb-proto && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \
tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \
ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \
./configure --prefix="${PREFIX}" && \
make && \
make install && \
rm -rf ${DIR}
RUN \
DIR=/tmp/libxcb && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \
tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \
ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \
./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
make && \
make install && \
rm -rf ${DIR}
## libxml2 - for libbluray
RUN \
DIR=/tmp/libxml2 && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \
tar -xz --strip-components=1 && \
./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \
make && \
make install && \
rm -rf ${DIR}
## libbluray - Requires libxml, freetype, and fontconfig
RUN \
DIR=/tmp/libbluray && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \
echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \
tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \
./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \
make && \
make install && \
rm -rf ${DIR}
## libzmq https://github.com/zeromq/libzmq/
RUN \
DIR=/tmp/libzmq && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \
echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \
tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \
./autogen.sh && \
./configure --prefix="${PREFIX}" && \
make && \
make check && \
make install && \
rm -rf ${DIR}
## libsrt https://github.com/Haivision/srt
RUN \
DIR=/tmp/srt && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \
tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \
cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
make && \
make install && \
rm -rf ${DIR}
## libpng
RUN \
DIR=/tmp/png && \
mkdir -p ${DIR} && \
cd ${DIR} && \
git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \
./autogen.sh && \
./configure --prefix="${PREFIX}" && \
make check && \
make install && \
rm -rf ${DIR}
## libaribb24
RUN \
DIR=/tmp/b24 && \
mkdir -p ${DIR} && \
cd ${DIR} && \
curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \
echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \
tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \
autoreconf -fiv && \
./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \
make && \
make install && \
rm -rf ${DIR}
## Download ffmpeg https://ffmpeg.org/
RUN \
DIR=/tmp/ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \
make ; make install
## Build ffmpeg
## Build ffmpeg https://ffmpeg.org/
RUN \
DIR=/tmp/ffmpeg && cd ${DIR} && \
./configure \
--disable-debug \
--disable-doc \
--disable-ffplay \
--enable-fontconfig \
--enable-gpl \
--enable-libaom \
--enable-libaribb24 \
--enable-libass \
--enable-libbluray \
--enable-libfdk_aac \
--enable-libfreetype \
--enable-libkvazaar \
--enable-libmp3lame \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-libopenjpeg \
--enable-libopus \
--enable-libsrt \
--enable-libtheora \
--enable-libvidstab \
--enable-libvmaf \
--enable-libvorbis \
--enable-libvpx \
--enable-libwebp \
--enable-libx264 \
--enable-libx265 \
--enable-libxcb \
--enable-libxvid \
--enable-libzmq \
--enable-nonfree \
--enable-openssl \
--enable-postproc \
--enable-shared \
--enable-small \
--enable-version3 \
--extra-cflags="-I${PREFIX}/include" \
--extra-ldflags="-L${PREFIX}/lib" \
--extra-libs=-ldl \
@ -81,6 +558,7 @@ RUN \
make clean && \
make && \
make install && \
make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \
make distclean && \
hash -r && \
cd tools && \

View File

@ -2,4 +2,9 @@ PUSHD %~dp0..
set dir=%~dp0..
echo %dir%
dotnet test common\Tests\Frontend.Translations.Tests\Frontend.Translations.Tests.csproj --filter Name~SpellCheckTest -l:html --environment "BASE_DIR=%dir%" --results-directory "%dir%/TestsResults"
set save=false
if /I "%1" == "-s" set save=%2 & shift
shift
dotnet test common\Tests\Frontend.Translations.Tests\Frontend.Translations.Tests.csproj --filter Name~SpellCheckTest -l:html --environment "BASE_DIR=%dir%" --environment "SAVE=%save%" --results-directory "%dir%/TestsResults"

View File

@ -3,6 +3,15 @@ echo "Run script directory:" $dir
dir=$(builtin cd $rd/../; pwd)
save=false
while getopts s: flag
do
case "${flag}" in
s) save=${OPTARG};;
esac
done
echo "Root directory:" $dir
dotnet test $dir/common/Tests/Frontend.Translations.Tests/Frontend.Translations.Tests.csproj --filter Name~SpellCheckTest -l:html --results-directory "$dir/TestsResults" --environment "BASE_DIR=$dir"
dotnet test $dir/common/Tests/Frontend.Translations.Tests/Frontend.Translations.Tests.csproj --filter Name~SpellCheckTest -l:html --results-directory "$dir/TestsResults" --environment "BASE_DIR=$dir" --environment "SAVE=$save"

View File

@ -71,7 +71,7 @@ public class Criteria : ICloneable
/// Add nested Criteria
/// </summary>
/// <param name="nested"></param>
/// <returns>себя</returns>
/// <returns>Self</returns>
public Criteria Add(Criteria nested)
{
_nestedCriteras.Add(nested);

View File

@ -305,7 +305,7 @@ public class LdapOperationJob : DistributedTaskProgress
var ldapCurrentAcccessSettings = _settingsManager.Load<LdapCurrentAcccessSettings>().GetDefault();
_settingsManager.Save(ldapCurrentAcccessSettings);
//не снимать права при выключении
// don't remove permissions on shutdown
//var rights = new List<LdapSettings.AccessRight>();
//TakeUsersRights(rights);

View File

@ -67,9 +67,7 @@ public class UserManager
private readonly UserFormatter _userFormatter;
private readonly QuotaSocketManager _quotaSocketManager;
private readonly TenantQuotaFeatureStatHelper _tenantQuotaFeatureStatHelper;
private Tenant _tenant;
private Tenant Tenant => _tenant ??= _tenantManager.GetCurrentTenant();
private Tenant Tenant => _tenantManager.GetCurrentTenant();
public UserManager()
{
@ -971,7 +969,7 @@ public class UserManager
{
return null;
}
return new Group
{
Id = g.ID,

View File

@ -123,7 +123,7 @@ public class WorkContext
INotifySender emailSender = _notifyServiceSender;
INotifySender telegramSender = _telegramSender;
INotifySender pushSender = _pushSender;
var postman = _configuration["core:notify:postman"];
@ -161,6 +161,11 @@ public class WorkContext
}
}
public void RegisterSendMethod(Func<DateTime, Task> method, string cron)
{
NotifyEngine.RegisterSendMethod(method, cron);
}
public void RegisterSendMethod(Action<DateTime> method, string cron)
{
NotifyEngine.RegisterSendMethod(method, cron);

View File

@ -26,6 +26,8 @@
using ASC.Core.Common.EF;
using Microsoft.EntityFrameworkCore;
namespace ASC.Core.Data;
[Scope]
@ -550,53 +552,45 @@ public class EFUserService : IUserService
public void SetUserPhoto(int tenant, Guid id, byte[] photo)
{
using var userDbContext = _dbContextFactory.CreateDbContext();
var strategy = userDbContext.Database.CreateExecutionStrategy();
strategy.Execute(async () =>
var userPhoto = userDbContext.Photos.FirstOrDefault(r => r.UserId == id && r.Tenant == tenant);
if (photo != null && photo.Length != 0)
{
using var userDbContext = _dbContextFactory.CreateDbContext();
using var tr = await userDbContext.Database.BeginTransactionAsync();
var userPhoto = await userDbContext.Photos.FirstOrDefaultAsync(r => r.UserId == id && r.Tenant == tenant);
if (photo != null && photo.Length != 0)
if (userPhoto == null)
{
if (userPhoto == null)
userPhoto = new UserPhoto
{
userPhoto = new UserPhoto
{
Tenant = tenant,
UserId = id,
Photo = photo
};
}
else
{
userPhoto.Photo = photo;
}
await userDbContext.AddOrUpdateAsync(r => userDbContext.Photos, userPhoto);
var userEntity = new User
{
Id = id,
LastModified = DateTime.UtcNow,
Tenant = tenant
Tenant = tenant,
UserId = id,
Photo = photo
};
userDbContext.Entry(userEntity).Property(x => x.LastModified).IsModified = true;
}
else if (userPhoto != null)
else
{
userDbContext.Photos.Remove(userPhoto);
userPhoto.Photo = photo;
}
await userDbContext.SaveChangesAsync();
await tr.CommitAsync();
}).GetAwaiter()
.GetResult();
userDbContext.AddOrUpdate(userDbContext.Photos, userPhoto);
var userEntity = new User
{
Id = id,
LastModified = DateTime.UtcNow,
Tenant = tenant
};
userDbContext.Users.Attach(userEntity);
userDbContext.Entry(userEntity).Property(x => x.LastModified).IsModified = true;
}
else if (userPhoto != null)
{
userDbContext.Photos.Remove(userPhoto);
}
userDbContext.SaveChanges();
}
private IQueryable<User> GetUserQuery(UserDbContext userDbContext, int tenant)

View File

@ -100,6 +100,25 @@ public class NotifyEngine : INotifyEngine, IDisposable
_methodsEvent.Set();
}
internal void RegisterSendMethod(Func<DateTime, Task> method, string cron)
{
ArgumentNullException.ThrowIfNull(method);
ArgumentNullOrEmptyException.ThrowIfNullOrEmpty(cron);
var w = new SendMethodWrapper(method, cron, _logger);
lock (_sendMethods)
{
if (!_notifyScheduler.IsAlive)
{
_notifyScheduler.Start();
}
_sendMethods.Remove(w);
_sendMethods.Add(w);
}
_methodsEvent.Set();
}
internal void UnregisterSendMethod(Action<DateTime> method)
{
ArgumentNullException.ThrowIfNull(method);
@ -124,7 +143,7 @@ public class NotifyEngine : INotifyEngine, IDisposable
copy = _sendMethods.ToList();
}
foreach(var w in copy)
foreach (var w in copy)
{
if (!w.ScheduleDate.HasValue)
{
@ -590,6 +609,7 @@ public class NotifyEngine : INotifyEngine, IDisposable
private readonly SemaphoreSlim _semaphore;
private readonly CronExpression _cronExpression;
private readonly Action<DateTime> _method;
private readonly Func<DateTime, Task> _asyncMethod;
private readonly ILogger _logger;
public DateTime? ScheduleDate { get; private set; }
@ -608,6 +628,11 @@ public class NotifyEngine : INotifyEngine, IDisposable
UpdateScheduleDate(DateTime.UtcNow);
}
public SendMethodWrapper(Func<DateTime, Task> method, string cron, ILogger log) : this((Action<DateTime>)null, cron, log)
{
_asyncMethod = method;
}
public void UpdateScheduleDate(DateTime d)
{
try
@ -626,11 +651,18 @@ public class NotifyEngine : INotifyEngine, IDisposable
public async Task InvokeSendMethod(DateTime d)
{
await _semaphore.WaitAsync();
await Task.Run(() =>
await Task.Run(async () =>
{
try
{
_method(d);
if (_method != null)
{
_method(d);
}
else if (_asyncMethod != null)
{
await _asyncMethod(d);
}
}
catch (Exception e)
{
@ -642,7 +674,7 @@ public class NotifyEngine : INotifyEngine, IDisposable
public override bool Equals(object obj)
{
return obj is SendMethodWrapper w && _method.Equals(w._method);
return obj is SendMethodWrapper w && ((_method != null && _method.Equals(w._method)) || (_asyncMethod != null && _asyncMethod.Equals(w._asyncMethod)));
}
public override int GetHashCode()

View File

@ -57,8 +57,8 @@ public class Feed
public string ContextId { get; set; }
public bool IsAllDayEvent { get; set; }
// это значит, что новость может обновляться (пр. добавление комментариев);
// следовательно и права доступа могут устаревать
// this means that the news can be updated (eg adding comments);
// hence permissions may be outdated
public bool Variate { get; private set; }
public Feed() { }

View File

@ -1,10 +1,10 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программой.
// Исполняемая версия:4.0.30319.42000
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
@ -13,12 +13,12 @@ namespace ASC.Migration.Resources {
/// <summary>
/// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// Этот класс создан автоматически классом StronglyTypedResourceBuilder
// с помощью такого средства, как ResGen или Visual Studio.
// Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
// с параметром /str или перестройте свой проект VS.
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
@ -33,7 +33,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
@ -47,8 +47,8 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Перезаписывает свойство CurrentUICulture текущего потока для всех
/// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
@ -61,7 +61,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Clearing temporary data.
/// Looks up a localized string similar to Clearing temporary data.
/// </summary>
internal static string ClearingTemporaryData {
get {
@ -70,7 +70,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Data processing....
/// Looks up a localized string similar to Data processing....
/// </summary>
internal static string DataProcessing {
get {
@ -79,7 +79,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Data processing completed.
/// Looks up a localized string similar to Data processing completed.
/// </summary>
internal static string DataProcessingCompleted {
get {
@ -88,7 +88,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Database parsing.
/// Looks up a localized string similar to Database parsing.
/// </summary>
internal static string DumpParse {
get {
@ -97,7 +97,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Mail`s Contacts.
/// Looks up a localized string similar to Mail`s Contacts.
/// </summary>
internal static string GoogleModuleNameContacts {
get {
@ -106,7 +106,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Google Drive`s Files.
/// Looks up a localized string similar to Google Drive`s Files.
/// </summary>
internal static string GoogleModuleNameDocuments {
get {
@ -115,7 +115,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Group migration {0} ({1}/{2}).
/// Looks up a localized string similar to Group migration {0} ({1}/{2}).
/// </summary>
internal static string GroupMigration {
get {
@ -124,7 +124,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Migrating user contacts {0} ({1}/{2}).
/// Looks up a localized string similar to Migrating user contacts {0} ({1}/{2}).
/// </summary>
internal static string MigratingUserContacts {
get {
@ -133,7 +133,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Migrating user files {0} ({1}/{2}).
/// Looks up a localized string similar to Migrating user files {0} ({1}/{2}).
/// </summary>
internal static string MigratingUserFiles {
get {
@ -142,7 +142,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Migration canceled.
/// Looks up a localized string similar to Migration canceled.
/// </summary>
internal static string MigrationCanceled {
get {
@ -151,7 +151,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Migration completed.
/// Looks up a localized string similar to Migration completed.
/// </summary>
internal static string MigrationCompleted {
get {
@ -160,7 +160,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Calendar.
/// Looks up a localized string similar to Calendar.
/// </summary>
internal static string ModuleNameCalendar {
get {
@ -169,7 +169,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Groups.
/// Looks up a localized string similar to Groups.
/// </summary>
internal static string ModuleNameGroups {
get {
@ -178,7 +178,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Mail.
/// Looks up a localized string similar to Mail.
/// </summary>
internal static string ModuleNameMail {
get {
@ -187,7 +187,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Users.
/// Looks up a localized string similar to Users.
/// </summary>
internal static string ModuleNameUsers {
get {
@ -196,7 +196,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Contacts.
/// Looks up a localized string similar to Contacts.
/// </summary>
internal static string NextcloudModuleNameContacts {
get {
@ -205,7 +205,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на User`s Files.
/// Looks up a localized string similar to User`s Files.
/// </summary>
internal static string NextcloudModuleNameDocuments {
get {
@ -214,7 +214,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Calendar.
/// Looks up a localized string similar to Calendar.
/// </summary>
internal static string OnlyofficeModuleNameCalendar {
get {
@ -223,7 +223,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Documents.
/// Looks up a localized string similar to Documents.
/// </summary>
internal static string OnlyofficeModuleNameDocuments {
get {
@ -232,7 +232,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Mail.
/// Looks up a localized string similar to Mail.
/// </summary>
internal static string OnlyofficeModuleNameMail {
get {
@ -241,7 +241,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на People.
/// Looks up a localized string similar to People.
/// </summary>
internal static string OnlyofficeModuleNamePeople {
get {
@ -250,7 +250,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Preparing for migration.
/// Looks up a localized string similar to Preparing for migration.
/// </summary>
internal static string PreparingForMigration {
get {
@ -259,7 +259,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Starting data processing....
/// Looks up a localized string similar to Starting data processing....
/// </summary>
internal static string StartOfDataProcessing {
get {
@ -268,7 +268,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Unzipping....
/// Looks up a localized string similar to Unzipping....
/// </summary>
internal static string Unzipping {
get {
@ -277,7 +277,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Unzipping completed....
/// Looks up a localized string similar to Unzipping completed....
/// </summary>
internal static string UnzippingFinished {
get {
@ -286,7 +286,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на User calendar migration {0} ({1}/{2}).
/// Looks up a localized string similar to User calendar migration {0} ({1}/{2}).
/// </summary>
internal static string UserCalendarMigration {
get {
@ -295,7 +295,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на User migration {0} ({1}/{2}).
/// Looks up a localized string similar to User migration {0} ({1}/{2}).
/// </summary>
internal static string UserMigration {
get {
@ -304,7 +304,7 @@ namespace ASC.Migration.Resources {
}
/// <summary>
/// Ищет локализованную строку, похожую на Failed to import user: {0} ({1}/{2}).
/// Looks up a localized string similar to Failed to import user: {0} ({1}/{2}).
/// </summary>
internal static string UserSkipped {
get {

View File

@ -28,7 +28,10 @@ const accessKeyId = aws.accessKeyId;
const secretAccessKey = aws.secretAccessKey;
const awsRegion = aws.region;
const logGroupName = aws.logGroupName;
const logStreamName = aws.logStreamName;
const logStreamName = aws.logStreamName.replace("${hostname}", os.hostname())
.replace("${applicationContext}", "SocketIO")
.replace("${guid}", randomUUID())
.replace("${date}", date.format(new Date(), 'YYYY/MM/DDTHH.mm.ss'));
if (!fs.existsSync(dirName)) {
fs.mkdirSync(dirName);
@ -54,17 +57,7 @@ var options = {
cloudWatch: {
name: 'aws',
level: "debug",
logStreamName: () => {
const hostname = os.hostname();
const now = new Date();
const guid = randomUUID();
const dateAsString = date.format(now, 'YYYY/MM/DDTHH.mm.ss');
return logStreamName.replace("${hostname}", hostname)
.replace("${applicationContext}", "SocketIO")
.replace("${guid}", guid)
.replace("${date}", dateAsString);
},
logStreamName: logStreamName,
logGroupName: logGroupName,
awsRegion: awsRegion,
jsonMessage: true,

View File

@ -58,7 +58,10 @@ const accessKeyId = aws.accessKeyId;
const secretAccessKey = aws.secretAccessKey;
const awsRegion = aws.region;
const logGroupName = aws.logGroupName;
const logStreamName = aws.logStreamName;
const logStreamName = aws.logStreamName.replace("${hostname}", os.hostname())
.replace("${applicationContext}", "SsoAuth")
.replace("${guid}", randomUUID())
.replace("${date}", date.format(new Date(), 'YYYY/MM/DDTHH.mm.ss'));
let transports = [];
@ -77,17 +80,7 @@ if (aws != null && aws.accessKeyId !== '')
transports.push(new WinstonCloudWatch({
name: 'aws',
level: "debug",
logStreamName: () => {
const hostname = os.hostname();
const now = new Date();
const guid = randomUUID();
const dateAsString = date.format(now, 'YYYY/MM/DDTHH.mm.ss');
return logStreamName.replace("${hostname}", hostname)
.replace("${applicationContext}", "SsoAuth")
.replace("${guid}", guid)
.replace("${date}", dateAsString);
},
logStreamName: logStreamName,
logGroupName: logGroupName,
awsRegion: awsRegion,
jsonMessage: true,

View File

@ -72,7 +72,10 @@ const accessKeyId = aws.accessKeyId;
const secretAccessKey = aws.secretAccessKey;
const awsRegion = aws.region;
const logGroupName = aws.logGroupName;
const logStreamName = aws.logStreamName;
const logStreamName = aws.logStreamName.replace("${hostname}", os.hostname())
.replace("${applicationContext}", "WebDav")
.replace("${guid}", randomUUID())
.replace("${date}", date.format(new Date(), 'YYYY/MM/DDTHH.mm.ss'));
let transports = [
new (winston.transports.Console)(),
@ -85,17 +88,7 @@ if (aws != null && aws.accessKeyId !== '')
transports.push(new WinstonCloudWatch({
name: 'aws',
level: "debug",
logStreamName: () => {
const hostname = os.hostname();
const now = new Date();
const guid = randomUUID();
const dateAsString = date.format(now, 'YYYY/MM/DDTHH.mm.ss');
return logStreamName.replace("${hostname}", hostname)
.replace("${applicationContext}", "WebDav")
.replace("${guid}", guid)
.replace("${date}", dateAsString);
},
logStreamName: logStreamName,
logGroupName: logGroupName,
awsRegion: awsRegion,
jsonMessage: true,

View File

@ -32,7 +32,10 @@ const accessKeyId = aws.accessKeyId;
const secretAccessKey = aws.secretAccessKey;
const awsRegion = aws.region;
const logGroupName = aws.logGroupName;
const logStreamName = aws.logStreamName;
const logStreamName = aws.logStreamName.replace("${hostname}", os.hostname())
.replace("${applicationContext}", "WebPlugins")
.replace("${guid}", randomUUID())
.replace("${date}", date.format(new Date(), 'YYYY/MM/DDTHH.mm.ss'));
const options = {
file: {
@ -54,18 +57,8 @@ const options = {
cloudWatch: {
name: 'aws',
level: "debug",
logStreamName: () => {
const hostname = os.hostname();
const now = new Date();
const guid = randomUUID();
const dateAsString = date.format(now, 'YYYY/MM/DDTHH.mm.ss');
return logStreamName.replace("${hostname}", hostname)
.replace("${applicationContext}", "WebPlugins")
.replace("${guid}", guid)
.replace("${date}", dateAsString);
},
logGroupName:logGroupName,
logStreamName: logStreamName,
logGroupName: logGroupName,
awsRegion: awsRegion,
jsonMessage: true,
awsOptions: {

View File

@ -56,6 +56,20 @@ public class LocalesTest
}
}
public static bool Save
{
get
{
bool save;
if (bool.TryParse(Environment.GetEnvironmentVariable("SAVE"), out save))
{
return save;
}
return false;
}
}
public List<string> Workspaces { get; set; }
public List<TranslationFile> TranslationFiles { get; set; }
public List<JavaScriptFile> JavaScriptFiles { get; set; }
@ -69,13 +83,19 @@ public class LocalesTest
//public List<JsonEncodingError> WrongEncodingJsonErrors { get; set; }
private static readonly string _md5ExcludesPath = Path.GetFullPath(Utils.ConvertPathToOS("../../../md5-excludes.json"));
private static readonly string _spellCheckCommonExcludesPath = Path.GetFullPath(Utils.ConvertPathToOS("../../../spellcheck-excludes-common.json"));
private static readonly string _spellCheckExcludesPath = Path.GetFullPath(Utils.ConvertPathToOS("../../../spellcheck-excludes.json"));
//private static string _encodingExcludesPath = "../../../encoding-excludes.json";
private static readonly List<string> _md5Excludes = File.Exists(_md5ExcludesPath)
private static readonly List<string> Md5Excludes = File.Exists(_md5ExcludesPath)
? JsonConvert.DeserializeObject<List<string>>(File.ReadAllText(_md5ExcludesPath))
: new List<string>();
private static readonly List<string> SpellCheckCommonExcludes = File.Exists(_spellCheckCommonExcludesPath)
? JsonConvert.DeserializeObject<List<string>>(File.ReadAllText(_spellCheckCommonExcludesPath))
: new List<string>();
//private static List<string> encodingExcludes = File.Exists(_encodingExcludesPath)
// ? JsonConvert.DeserializeObject<List<string>>(File.ReadAllText(_encodingExcludesPath))
// : new List<string>();
@ -334,7 +354,11 @@ public class LocalesTest
TestContext.Progress.WriteLine($"Found CommonTranslations = {CommonTranslations.Count()}. First path is '{CommonTranslations.FirstOrDefault()?.Path}'");
TestContext.Progress.WriteLine($"Found _md5Excludes = {_md5Excludes.Count()} Path to file '{_md5ExcludesPath}'");
TestContext.Progress.WriteLine($"Found Md5Excludes = {Md5Excludes.Count} Path to file '{_md5ExcludesPath}'");
TestContext.Progress.WriteLine($"Found SpellCheckCommonExcludes = {SpellCheckCommonExcludes.Count} Path to file '{_spellCheckCommonExcludesPath}'");
TestContext.Progress.WriteLine($"Save spell check excludes = {Save} Path to file '{_spellCheckExcludesPath}'");
}
@ -375,7 +399,7 @@ public class LocalesTest
var errorsCount = 0;
var message = $"Next keys have spell check issues:\r\n\r\n";
//var list = new List<SpellCheckExclude>();
var list = new List<SpellCheckExclude>();
var groupByLng = TranslationFiles
.GroupBy(t => t.Language)
@ -392,7 +416,7 @@ public class LocalesTest
{
var dicPaths = SpellCheck.GetDictionaryPaths(group.Language);
//var spellCheckExclude = new SpellCheckExclude(group.Language);
var spellCheckExclude = new SpellCheckExclude(group.Language);
using (var dictionaryStream = File.OpenRead(dicPaths.DictionaryPath))
using (var affixStream = File.OpenRead(dicPaths.AffixPath))
@ -407,27 +431,44 @@ public class LocalesTest
if (result.HasProblems)
{
message += $"{++i}. lng='{group.Language}' file='{g.FilePath}'\r\nkey='{item.Key}' value='{item.Value}'\r\nIncorrect words:\r\n{string.Join("\r\n", result.SpellIssues.Select(issue => $"'{issue.Word}' Suggestion: '{issue.Suggestions.FirstOrDefault()}'"))}\r\n\r\n";
var incorrectWords = result.SpellIssues
.Where(t => !SpellCheckCommonExcludes
.Exists(e => e.Equals(t.Word, StringComparison.InvariantCultureIgnoreCase)))
.Select(issue => $"'{issue.Word}' " +
$"Suggestion: '{issue.Suggestions.FirstOrDefault()}'")
.ToList();
if (!incorrectWords.Any())
continue;
message += $"{++i}. lng='{group.Language}' file='{g.FilePath}'\r\nkey='{item.Key}' " +
$"value='{item.Value}'\r\nIncorrect words:\r\n" +
$"{string.Join("\r\n", incorrectWords)}\r\n\r\n";
errorsCount++;
/*foreach (var word in result.SpellIssues
if (Save)
{
foreach (var word in result.SpellIssues
.Where(issue => issue.Suggestions.Any())
.Select(issue => issue.Word))
{
if (!spellCheckExclude.Excludes.Contains(word))
{
spellCheckExclude.Excludes.Add(word);
}
}*/
.Select(issue => issue.Word))
{
if (!spellCheckExclude.Excludes.Contains(word))
{
spellCheckExclude.Excludes.Add(word);
}
}
}
}
}
}
}
//spellCheckExclude.Excludes.Sort();
//list.Add(spellCheckExclude);
if (Save)
{
spellCheckExclude.Excludes.Sort();
list.Add(spellCheckExclude);
}
}
catch (NotSupportedException)
{
@ -436,8 +477,12 @@ public class LocalesTest
}
}
//string json = JsonConvert.SerializeObject(list, Formatting.Indented);
//File.WriteAllText("../../../spellcheck-excludes.json", json, Encoding.UTF8);
if (Save)
{
string json = JsonConvert.SerializeObject(list, Formatting.Indented);
File.WriteAllText(_spellCheckExcludesPath, json, Encoding.UTF8);
TestContext.Progress.WriteLine($"File spellcheck-excludes.json has been saved to '{_spellCheckExcludesPath}'");
}
Assert.AreEqual(0, errorsCount, message);
}
@ -459,7 +504,7 @@ public class LocalesTest
{
var duplicatesByMD5 = TranslationFiles
.Where(t => t.Language != "pt-BR")
.Where(t => !_md5Excludes.Contains(t.Md5Hash))
.Where(t => !Md5Excludes.Contains(t.Md5Hash))
.GroupBy(t => t.Md5Hash)
.Where(grp => grp.Count() > 1)
.Select(grp => new { Key = grp.Key, Count = grp.Count(), Paths = grp.ToList().Select(f => f.FilePath) })
@ -763,7 +808,10 @@ public class LocalesTest
continue;
}
var exepts = new List<string> { "Error", "Done", "Warning", "Alert", "Info" };
var notCommonKeys = module.AppliedJsTranslationKeys
.Except(exepts)
.Where(k => !k.StartsWith("Common:"))
.OrderBy(t => t)
.ToList();

View File

@ -0,0 +1,20 @@
[
"Amazon",
"AWS",
"DocSpace",
"ONLYOFFICE",
"ID",
"IP",
"IPv4",
"IPv",
"DNS",
"SVG",
"PNG",
"NameId",
"IdP",
"Sp",
"macOS",
"SAML",
"Stripe",
"SDK"
]

View File

@ -69,15 +69,15 @@
"enable": [ "box", "dropboxv2", "docusign", "google", "onedrive", "sharepoint", "nextcloud", "owncloud", "webdav", "kdrive" ]
},
"docservice": {
"coauthor-docs": [ ".csv", ".docm", ".docx", ".docxf", ".dotm", ".dotx", ".oform", ".potm", ".potx", ".ppsm", ".pptm", ".ppsx", ".pptx", ".txt", ".xlsm", ".xlsx", ".xltm", ".xltx" ],
"commented-docs": [ ".docm", ".docx", ".docxf", ".dotm", ".dotx", ".potm", ".potx", ".ppsm", ".pptm", ".ppsx", ".pptx", ".xlsm", ".xlsx", ".xltm", ".xltx" ],
"convert-docs": [ ".doc", ".dot", ".dps", ".dpt", ".epub", ".et", ".ett", ".fb2", ".fodp", ".fods", ".fodt", ".htm", ".html", ".mht", ".mhtml", ".odp", ".ods", ".odt", ".otp", ".ots", ".ott", ".pot", ".pps", ".ppt", ".rtf", ".stw", ".sxc", "sxi", ".sxw", ".wps", ".wpt", ".xls", ".xlsb", ".xlt", ".xml" ],
"edited-docs": [ "csv", ".doc", ".docm", ".docx", ".docxf", ".dot", ".dotm", ".dotx", ".dps", ".dpt", ".epub", ".et", ".ett", ".fb2", ".fodp", ".fods", ".fodt", ".htm", ".html", ".mht", ".mhtml", ".odp", ".ods", ".odt", ".oform", ".otp", ".ots", ".ott", ".pot", ".potm", ".potx", ".pps", ".ppsm", ".ppsx", ".ppt", ".pptm", ".pptx", ".rtf", ".stw", ".sxc", "sxi", ".sxw", ".txt", ".wps", ".wpt", ".xls", ".xlsb", ".xlsm", ".xlsx", ".xlt", ".xltm", ".xltx", ".xml" ],
"encrypted-docs": [ ".docm", ".docx", ".docxf", ".dotm", ".dotx", ".oform", ".potm", ".potx", ".ppsm", ".pptm", ".ppsx", ".pptx", ".xlsm", ".xlsx", ".xltm", ".xltx" ],
"coauthor-docs": [ ".pptx", ".ppsx", ".xlsx", ".csv", ".docx", ".docxf", ".oform", ".txt" ],
"commented-docs": [ ".docx", ".docxf", ".xlsx", ".pptx" ],
"convert-docs": [ ".pptm", ".ppt", ".ppsm", ".pps", ".potx", ".potm", ".pot", ".odp", ".fodp", ".otp", ".xlsm", ".xls", ".xltx", ".xltm", ".xlt", ".ods", ".fods", ".ots", ".docm", ".doc", ".dotx", ".dotm", ".dot", ".odt", ".fodt", ".ott", ".rtf", ".xml" ],
"edited-docs": [ ".pptx", ".pptm", ".ppt", ".ppsx", ".ppsm", ".pps", ".potx", ".potm", ".pot", ".odp", ".fodp", ".otp", ".xlsx", ".xlsm", ".xls", ".xltx", ".xltm", ".xlt", ".ods", ".fods", ".ots", ".csv", ".docx", ".docxf", ".oform", ".docm", ".doc", ".dotx", ".dotm", ".dot", ".odt", ".fodt", ".ott", ".txt", ".rtf", ".mht", ".html", ".htm" ],
"encrypted-docs": [ ".docx", ".docxf", ".xlsx", ".pptx", ".oform" ],
"formfilling-docs": [ ".oform" ],
"customfilter-docs": [ ".xlsm", ".xlsx", ".xltm", ".xltx" ],
"reviewed-docs": [ ".docm", ".docx", ".docxf", ".dotm", ".dotx" ],
"viewed-docs": [ ".csv", ".djvu", ".doc", ".docm", ".docx", ".docxf", ".dot", ".dotm", ".dotx", ".dps", ".dpt", ".epub", ".et", ".ett", ".fb2", ".fodp", ".fods", ".fodt", ".gdoc", ".gsheet", ".gslides", ".htm", ".html", ".mht", ".mhtml", ".odp", ".ods", ".odt", ".oform", ".otp", ".ots", ".ott", ".oxps", ".pdf", ".pot", ".potm", ".potx", ".pps", ".ppsm", ".ppsx", ".ppt", ".pptm", ".pptx", ".rtf", ".stw", ".sxc", "sxi", ".sxw", ".txt", ".wps", ".wpt", ".xls", ".xlsb", ".xlsm", ".xlsx", ".xlt", ".xltm", ".xltx", ".xml", ".xps" ],
"customfilter-docs": [ ".xlsx" ],
"reviewed-docs": [ ".docx", ".docxf" ],
"viewed-docs": [ ".pptx", ".pptm", ".ppt", ".ppsx", ".ppsm", ".pps", ".potx", ".potm", ".pot", ".odp", ".fodp", ".otp", ".gslides", ".xlsx", ".xlsm", ".xls", ".xltx", ".xltm", ".xlt", ".ods", ".fods", ".ots", ".gsheet", ".csv", ".docx", ".docxf", ".oform", ".docm", ".doc", ".dotx", ".dotm", ".dot", ".odt", ".fodt", ".ott", ".gdoc", ".txt", ".rtf", ".mht", ".html", ".htm", ".xml", ".fb2", ".epub", ".pdf", ".djvu", ".xps", ".oxps" ],
"secret": {
"value": "secret",
"header": "AuthorizationJwt"

View File

@ -15994,122 +15994,6 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>ThirdPartyStorageTitle</name>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>az-Latn-AZ</language>
<approved>false</approved>
</translation>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>cs-CZ</language>
<approved>false</approved>
</translation>
<translation>
<language>de-DE</language>
<approved>false</approved>
</translation>
<translation>
<language>el-GR</language>
<approved>false</approved>
</translation>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-ES</language>
<approved>false</approved>
</translation>
<translation>
<language>fi-FI</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>false</approved>
</translation>
<translation>
<language>hy-AM</language>
<approved>false</approved>
</translation>
<translation>
<language>it-IT</language>
<approved>false</approved>
</translation>
<translation>
<language>ja-JP</language>
<approved>false</approved>
</translation>
<translation>
<language>ko-KR</language>
<approved>false</approved>
</translation>
<translation>
<language>lo-LA</language>
<approved>false</approved>
</translation>
<translation>
<language>lv-LV</language>
<approved>false</approved>
</translation>
<translation>
<language>nl-NL</language>
<approved>false</approved>
</translation>
<translation>
<language>pl-PL</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-BR</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-PT</language>
<approved>false</approved>
</translation>
<translation>
<language>ro-RO</language>
<approved>false</approved>
</translation>
<translation>
<language>ru-RU</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>sl-SI</language>
<approved>false</approved>
</translation>
<translation>
<language>tr-TR</language>
<approved>false</approved>
</translation>
<translation>
<language>uk-UA</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>ViewOnlyRoomDescription</name>
<description/>
@ -17512,122 +17396,6 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>MoveToTrashFileFromPersonal</name>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>az-Latn-AZ</language>
<approved>false</approved>
</translation>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>cs-CZ</language>
<approved>false</approved>
</translation>
<translation>
<language>de-DE</language>
<approved>false</approved>
</translation>
<translation>
<language>el-GR</language>
<approved>false</approved>
</translation>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-ES</language>
<approved>false</approved>
</translation>
<translation>
<language>fi-FI</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>false</approved>
</translation>
<translation>
<language>hy-AM</language>
<approved>false</approved>
</translation>
<translation>
<language>it-IT</language>
<approved>false</approved>
</translation>
<translation>
<language>ja-JP</language>
<approved>false</approved>
</translation>
<translation>
<language>ko-KR</language>
<approved>false</approved>
</translation>
<translation>
<language>lo-LA</language>
<approved>false</approved>
</translation>
<translation>
<language>lv-LV</language>
<approved>false</approved>
</translation>
<translation>
<language>nl-NL</language>
<approved>false</approved>
</translation>
<translation>
<language>pl-PL</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-BR</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-PT</language>
<approved>false</approved>
</translation>
<translation>
<language>ro-RO</language>
<approved>false</approved>
</translation>
<translation>
<language>ru-RU</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>sl-SI</language>
<approved>false</approved>
</translation>
<translation>
<language>tr-TR</language>
<approved>false</approved>
</translation>
<translation>
<language>uk-UA</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>MoveToTrashFolder</name>
<description/>
@ -17976,122 +17744,6 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>MoveToTrashItemsFromPersonal</name>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>az-Latn-AZ</language>
<approved>false</approved>
</translation>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>cs-CZ</language>
<approved>false</approved>
</translation>
<translation>
<language>de-DE</language>
<approved>false</approved>
</translation>
<translation>
<language>el-GR</language>
<approved>false</approved>
</translation>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-ES</language>
<approved>false</approved>
</translation>
<translation>
<language>fi-FI</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>false</approved>
</translation>
<translation>
<language>hy-AM</language>
<approved>false</approved>
</translation>
<translation>
<language>it-IT</language>
<approved>false</approved>
</translation>
<translation>
<language>ja-JP</language>
<approved>false</approved>
</translation>
<translation>
<language>ko-KR</language>
<approved>false</approved>
</translation>
<translation>
<language>lo-LA</language>
<approved>false</approved>
</translation>
<translation>
<language>lv-LV</language>
<approved>false</approved>
</translation>
<translation>
<language>nl-NL</language>
<approved>false</approved>
</translation>
<translation>
<language>pl-PL</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-BR</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-PT</language>
<approved>false</approved>
</translation>
<translation>
<language>ro-RO</language>
<approved>false</approved>
</translation>
<translation>
<language>ru-RU</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>sl-SI</language>
<approved>false</approved>
</translation>
<translation>
<language>tr-TR</language>
<approved>false</approved>
</translation>
<translation>
<language>uk-UA</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>MoveToTrashTitle</name>
<description/>
@ -26494,122 +26146,6 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>EmptyFilterDescriptionTextRooms</name>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>az-Latn-AZ</language>
<approved>false</approved>
</translation>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>cs-CZ</language>
<approved>false</approved>
</translation>
<translation>
<language>de-DE</language>
<approved>false</approved>
</translation>
<translation>
<language>el-GR</language>
<approved>false</approved>
</translation>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-ES</language>
<approved>false</approved>
</translation>
<translation>
<language>fi-FI</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>false</approved>
</translation>
<translation>
<language>hy-AM</language>
<approved>false</approved>
</translation>
<translation>
<language>it-IT</language>
<approved>false</approved>
</translation>
<translation>
<language>ja-JP</language>
<approved>false</approved>
</translation>
<translation>
<language>ko-KR</language>
<approved>false</approved>
</translation>
<translation>
<language>lo-LA</language>
<approved>false</approved>
</translation>
<translation>
<language>lv-LV</language>
<approved>false</approved>
</translation>
<translation>
<language>nl-NL</language>
<approved>false</approved>
</translation>
<translation>
<language>pl-PL</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-BR</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-PT</language>
<approved>false</approved>
</translation>
<translation>
<language>ro-RO</language>
<approved>false</approved>
</translation>
<translation>
<language>ru-RU</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>sl-SI</language>
<approved>false</approved>
</translation>
<translation>
<language>tr-TR</language>
<approved>false</approved>
</translation>
<translation>
<language>uk-UA</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>EmptyFilterSubheadingText</name>
<description/>
@ -58096,122 +57632,6 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>PowerUserDescription</name>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>az-Latn-AZ</language>
<approved>false</approved>
</translation>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>cs-CZ</language>
<approved>false</approved>
</translation>
<translation>
<language>de-DE</language>
<approved>false</approved>
</translation>
<translation>
<language>el-GR</language>
<approved>false</approved>
</translation>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-ES</language>
<approved>false</approved>
</translation>
<translation>
<language>fi-FI</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>false</approved>
</translation>
<translation>
<language>hy-AM</language>
<approved>false</approved>
</translation>
<translation>
<language>it-IT</language>
<approved>false</approved>
</translation>
<translation>
<language>ja-JP</language>
<approved>false</approved>
</translation>
<translation>
<language>ko-KR</language>
<approved>false</approved>
</translation>
<translation>
<language>lo-LA</language>
<approved>false</approved>
</translation>
<translation>
<language>lv-LV</language>
<approved>false</approved>
</translation>
<translation>
<language>nl-NL</language>
<approved>false</approved>
</translation>
<translation>
<language>pl-PL</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-BR</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-PT</language>
<approved>false</approved>
</translation>
<translation>
<language>ro-RO</language>
<approved>false</approved>
</translation>
<translation>
<language>ru-RU</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>sl-SI</language>
<approved>false</approved>
</translation>
<translation>
<language>tr-TR</language>
<approved>false</approved>
</translation>
<translation>
<language>uk-UA</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>PriceCalculation</name>
<description/>
@ -66367,122 +65787,6 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>MessageEmailActivationInstuctionsSentOnEmail</name>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>az-Latn-AZ</language>
<approved>false</approved>
</translation>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>cs-CZ</language>
<approved>false</approved>
</translation>
<translation>
<language>de-DE</language>
<approved>false</approved>
</translation>
<translation>
<language>el-GR</language>
<approved>false</approved>
</translation>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-ES</language>
<approved>false</approved>
</translation>
<translation>
<language>fi-FI</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>false</approved>
</translation>
<translation>
<language>hy-AM</language>
<approved>false</approved>
</translation>
<translation>
<language>it-IT</language>
<approved>false</approved>
</translation>
<translation>
<language>ja-JP</language>
<approved>false</approved>
</translation>
<translation>
<language>ko-KR</language>
<approved>false</approved>
</translation>
<translation>
<language>lo-LA</language>
<approved>false</approved>
</translation>
<translation>
<language>lv-LV</language>
<approved>false</approved>
</translation>
<translation>
<language>nl-NL</language>
<approved>false</approved>
</translation>
<translation>
<language>pl-PL</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-BR</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-PT</language>
<approved>false</approved>
</translation>
<translation>
<language>ro-RO</language>
<approved>false</approved>
</translation>
<translation>
<language>ru-RU</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>sl-SI</language>
<approved>false</approved>
</translation>
<translation>
<language>tr-TR</language>
<approved>false</approved>
</translation>
<translation>
<language>uk-UA</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>MyProfile</name>
<description/>
@ -68349,122 +67653,6 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>SearchEmptyRoomsDescription</name>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>az-Latn-AZ</language>
<approved>false</approved>
</translation>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>cs-CZ</language>
<approved>false</approved>
</translation>
<translation>
<language>de-DE</language>
<approved>false</approved>
</translation>
<translation>
<language>el-GR</language>
<approved>false</approved>
</translation>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-ES</language>
<approved>false</approved>
</translation>
<translation>
<language>fi-FI</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>false</approved>
</translation>
<translation>
<language>hy-AM</language>
<approved>false</approved>
</translation>
<translation>
<language>it-IT</language>
<approved>false</approved>
</translation>
<translation>
<language>ja-JP</language>
<approved>false</approved>
</translation>
<translation>
<language>ko-KR</language>
<approved>false</approved>
</translation>
<translation>
<language>lo-LA</language>
<approved>false</approved>
</translation>
<translation>
<language>lv-LV</language>
<approved>false</approved>
</translation>
<translation>
<language>nl-NL</language>
<approved>false</approved>
</translation>
<translation>
<language>pl-PL</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-BR</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-PT</language>
<approved>false</approved>
</translation>
<translation>
<language>ro-RO</language>
<approved>false</approved>
</translation>
<translation>
<language>ru-RU</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>sl-SI</language>
<approved>false</approved>
</translation>
<translation>
<language>tr-TR</language>
<approved>false</approved>
</translation>
<translation>
<language>uk-UA</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
</children>
</file_node>
<file_node>
@ -90293,122 +89481,6 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>ThirdPartyStorage</name>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>az-Latn-AZ</language>
<approved>false</approved>
</translation>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>cs-CZ</language>
<approved>false</approved>
</translation>
<translation>
<language>de-DE</language>
<approved>false</approved>
</translation>
<translation>
<language>el-GR</language>
<approved>false</approved>
</translation>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-ES</language>
<approved>false</approved>
</translation>
<translation>
<language>fi-FI</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>false</approved>
</translation>
<translation>
<language>hy-AM</language>
<approved>false</approved>
</translation>
<translation>
<language>it-IT</language>
<approved>false</approved>
</translation>
<translation>
<language>ja-JP</language>
<approved>false</approved>
</translation>
<translation>
<language>ko-KR</language>
<approved>false</approved>
</translation>
<translation>
<language>lo-LA</language>
<approved>false</approved>
</translation>
<translation>
<language>lv-LV</language>
<approved>false</approved>
</translation>
<translation>
<language>nl-NL</language>
<approved>false</approved>
</translation>
<translation>
<language>pl-PL</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-BR</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-PT</language>
<approved>false</approved>
</translation>
<translation>
<language>ro-RO</language>
<approved>false</approved>
</translation>
<translation>
<language>ru-RU</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>sl-SI</language>
<approved>false</approved>
</translation>
<translation>
<language>tr-TR</language>
<approved>false</approved>
</translation>
<translation>
<language>uk-UA</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>ThirdPartyStorageDescription</name>
<description/>

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@
"DeleteProfileConfirmation": "Diqqət! Hesabınızı silmək üzrəsiniz.",
"DeleteProfileConfirmationInfo": "\"Hesabımı silin\" seçiminə klikləməklə bizim <1>Məxfilik siyasətimizlə razılaşırsınız.</1>",
"DeleteProfileSuccessMessage": "Hesabınız uğurla silinmişdir.",
"DeleteProfileSuccessMessageInfo": "Hesabınızın və onunla bağlı məlumatların silinməsi haqqında daha ətraflı öyrənmək üçün bizim Məxfilik Siyasətimizə nəzər yetirin.",
"DeleteProfileSuccessMessageInfo": "Hesabınızın və onunla bağlı məlumatların silinməsi haqqında daha ətraflı öyrənmək üçün bizim <1>Məxfilik Siyasətimizə</1> nəzər yetirin.",
"EmailAndPasswordCopiedToClipboard": "E-poçt ünvanı və şifrə mübadilə buferinə kopyalandı.",
"EnterAppCodeDescription": "Öz tətbiqinizdən əldə etdiyiniz 6 rəqəmli kodu daxil edin. Əgər telefonunuz əlçatan deyilsə, o zaman ehtiyat kodlarından istifadə edin.",
"EnterAppCodeTitle": "Doğrulama tətbiqindən kodu daxil edin",

View File

@ -1,6 +1,6 @@
{
"ConflictResolveDescription": "<1>{{file}}</1> adlı fayl artıq <1>{{folder}}</1> qovluğunda mövcuddur. ",
"ConflictResolveDescriptionFiles": "{{filesCount}} sənəd sayı artıq <1>{{folder}}<1> qovluğunda mövcuddur.",
"ConflictResolveDescriptionFiles": "{{filesCount}} sənəd sayı artıq <1>{{folder}}</1> qovluğunda mövcuddur.",
"ConflictResolveSelectAction": "Xahiş edirik əməliyyatı seçin:",
"ConflictResolveTitle": "Üzərinə yazmanın təsdiqlənməsi",
"CreateDescription": "Qovluqda iki fərqli fayl olacaq. ",

View File

@ -20,9 +20,8 @@
"ThirdPartyStorageComboBoxPlaceholder": "Yaddaş seçin",
"ThirdPartyStorageDescription": "Bu otaq üçün məlumat yaddaşı kimi üçüncü tərəf xidmətlərindən istifadə edin. Bu otağın məlumatlarını saxlamaq üçün əlaqələndirilmiş yaddaşda yeni qovluq yaradılacaq.",
"ThirdPartyStorageNoStorageAlert": "Əvvəllər \"İnteqrasiya\" bölməsində müvafiq xidməti birləşdirməlisiniz. Əks halda bağlantı mümkün olmayacaq.",
"ThirdPartyStoragePermanentSettingDescription": "Fayllar \"{{thirdpartyTitle}}\" qovluğunda üçüncü tərəf {{thirdpartyFolderName}} deposunda saxlanılır.\n<strong>{{thirdpartyPath}}</strong>",
"ThirdPartyStoragePermanentSettingDescription": "Fayllar {{thirdpartyTitle}} qovluğunda üçüncü tərəf \"{{thirdpartyFolderName}}\" deposunda saxlanılır.\n<strong>{{thirdpartyPath}}</strong>",
"ThirdPartyStorageRoomAdminNoStorageAlert": "Üçüncü tərəfin yaddaşına qoşulmaq üçün DocSpace parametrlərinin İnteqrasiya bölməsində müvafiq xidməti əlavə etməlisiniz. İnteqrasiyanı aktivləşdirmək üçün DocSpace sahibi və ya administratorla əlaqə saxlayın.",
"ThirdPartyStorageTitle": "Üçüncü tərəf yaddaşı",
"ViewOnlyRoomDescription": "Hazır sənədlərə, hesabatlara, sənədləşməyə və digər fayllara baxmaq üçün paylaşın.",
"ViewOnlyRoomTitle": "Yalnız baxış otağı"
}

View File

@ -6,11 +6,9 @@
"DeleteRooms": "Bu otaqları silmək üzrəsiniz. Onları bərpa edə bilməzsiniz.",
"MoveToTrashButton": "Zibil qutusuna yerləşdir",
"MoveToTrashFile": "Bu faylı silmək üzrəsiniz. Nəzərə alın ki, fayl kimsə ilə paylaşılıbsa, əlçatan olmayacaq. Fayl 30 gün ərzində həmişəlik silinəcək. Davam etmək istədiyinizə əminsiniz?",
"MoveToTrashFileFromPersonal": "Bu faylı silmək üzrəsiniz. Davam etmək istədiyinizə əminsiniz?",
"MoveToTrashFolder": "Siz bu qovluğu silmək üzrəsiniz. Nəzərə alın ki, bunu kimsə ilə paylaşmısınızsa, istifadə edilə bilməz. Davam etmək istədiyinizə əminsiniz?",
"MoveToTrashFolderFromPersonal": "Bu qovluğu silmək üzrəsiniz. Davam etmək istədiyinizə əminsiniz?",
"MoveToTrashItems": "Bu elementləri silmək üzrəsiniz. Nəzərə alın ki, elementləri kimsə ilə paylaşmısınızsa, onlar əlçatan olmayacaq. Davam etmək istədiyinizə əminsiniz?",
"MoveToTrashItemsFromPersonal": "Bu elementləri silmək üzrəsiniz. Davam etmək istədiyinizə əminsiniz?",
"MoveToTrashTitle": "Zibil qutusuna atılsın?",
"UnsubscribeButton": "Abunəlikdən çıx",
"UnsubscribeNote": "Siyahıda göstərilən elementlərdən abunəliyi dayandırmağı əminsinizmi?",

View File

@ -1,3 +1,7 @@
{
"SaveOrChange": "Tələb olunan parametri azaldın və ya cari qiymət planınızı saxlayın."
"CannotChangePlan": "İstifadə olunan yaddaşın həcmi və ya admin/ekspert istifadəçilərin sayı seçilmiş planın məhdudiyyətlərini keçdiyi üçün planınızı dəyişə bilməzsiniz:",
"ChangePricingPlan": "Qiymət planını dəyişdirin",
"PlanStorageLimit": "Yeni tarifin məhdudiyyəti <1>{{yaddaşDəyəri}}</1> yaddaş və cari istifadə etdiyiniz yaddaş <1>{{cariYaddaşDəyəri}}</1>-dir.",
"PlanUsersLimit": "Siz komandanı <1>{{istifadəçilərinSayı}}</1> admin/ekspert istifadəçi səviyyəsinə endirmək istəyirsiniz və DocSpace-də belə istifadəçilərin cari sayı <1>{{cariİstifadəçilərinSayı}}</1>-dir.",
"SaveOrChange": "Bu DocSpace-in sahibi olaraq, hesabınızı silməzdən əvvəl sahibliyi başqa istifadəçiyə ötürməlisiniz. Davam etmək üçün yeni sahibkar seçin."
}

View File

@ -1,7 +1,7 @@
{
"ChooseFormatText": "Yüklənəcək hər bir faylın formatını seçin ",
"ConvertMessage": "Əgər faylın konvertasiyasını seçsəz, bəzi məlumatlar itə bilər.",
"ConvertToZip": "Fayllar .zip formatına sıxlaşdırılacaq",
"ConvertToZip": "<strong>Fayllar .zip</strong> formatına sıxlaşdırılacaq",
"CustomFormat": "Fərdi format",
"OriginalFormat": "Orijinal format"
}

View File

@ -27,7 +27,6 @@
"EditRoom": "Otağı redaktə edin",
"EmptyFile": "Boş fayl",
"EmptyFilterDescriptionText": "Heç bir fayl və ya qovluq bu süzgəcə uyğun deyil. Xahiş edirik digər süzgəc parametrindən istifadə edin və ya bütün faylların göstərilməsi üçün süzgəci sıfırlayın.",
"EmptyFilterDescriptionTextRooms": "Bu filtrə uyğun otaq yoxdur. Bütün otaqlara baxmaq üçün fərqli filtri və ya təmiz filtri sınayın.",
"EmptyFilterSubheadingText": "Bu süzgəc üçün heç bir fayl tapılmadı",
"EmptyFolderDecription": "Faylları buraya çəkin və ya yenilərini yaradın",
"EmptyFolderDescriptionUser": "Adminlər tərəfindən yüklənmiş fayl və qovluqlar burada görünəcək.",

View File

@ -26,6 +26,7 @@
"FeedUpdateUser": "{{role}} rolu təyin edildi",
"FileExtension": "Fayl uzantısı",
"FilesEmptyScreenText": "Fayl və qovluq detallarına burada baxın",
"HistoryEmptyScreenText": "Hərəkət tarixçəsi burada göstəriləcək",
"ItemsSelected": "Seçilmiş elementlər",
"LastModifiedBy": "tərəfindən Son Dəyişiklik",
"PendingInvitations": "Gözləyən dəvətlər",

View File

@ -9,6 +9,6 @@
"StorageAndUserHeader": "Yaddaş və administratorlar/ekspert istifadəçilər limitləri aşmaq üzrədir.",
"StorageQuotaDescription": "Siz lazımsız faylları silə və ya DocSpace üçün daha uyğun qiymət planı tapmaq üçün <1>{{clickHere}}</1> edə bilərsiniz.",
"StorageQuotaHeader": "Yaddaş sahəsinin həcmi keçmək üzrədir : {{currentValue}} / {{maxValue}}",
"UserQuotaDescription": "Portalınız üçün daha yaxşı qiymət planı tapmaq üçün <1>{{Burayaklikləyin}}</1>.",
"UserQuotaDescription": "Portalınız üçün daha yaxşı qiymət planı tapmaq üçün <1>{{clickHere}}</1>.",
"UserQuotaHeader": "Admin/ekspert istifadəçilərin sayı keçmək üzrədir: {{currentValue}} / {{maxValue}}."
}

View File

@ -26,7 +26,6 @@
"Payer": "Ödəyici",
"PayerDescription": "Bu istifadəçi ödəniş təfərrüatlarına daxil ola bilər və kvota təyin edib ödəniş edə bilən yeganə istifadəçidir. DocSpace sahibi və ödəniş meneceri özləri Stripe müştəri portalından istifadə edərək ödəniş meneceri rolunu yenidən təyin edə bilərlər.",
"PaymentOverdue": "Yeni istifadəçilər əlavə etmək mümkün deyil.",
"PowerUserDescription": "Ekspert istifadəçilər otaqda fayllar yarada və redaktə edə bilərlər, lakin otaqlar yarada, istifadəçiləri idarə edə və ya parametrlərə daxil ola bilməzlər.",
"PriceCalculation": "Qiymətinizi hesablayın",
"QuotaPaidUserLimitError": "Ödənişli istifadəçi limitinə çatıldı. <1>Ödənişlər</1>",
"RenewSubscription": "{{planName}} Plan abunəliyini yeniləyin",

View File

@ -16,7 +16,6 @@
"LogoutBtn": ıxış",
"LogoutDescription": "Qeyd. Bundan başqa bütün aktiv bağlantılar hazırda istifadə edildiyi üçün sistemdən çıxacaq.",
"LogoutFrom": "{{platform}} {{browser}} çıxılsın?",
"MessageEmailActivationInstuctionsSentOnEmail": " <strong>{{ email }}</strong> elektron poçta emailin aktivlşdirilməsi haqqında təlimat göndərilmişdir.",
"MyProfile": "Mənim profilim",
"ProviderSuccessfullyConnected": "Provayder müvəffəqiyyətlə qoşuldu",
"ProviderSuccessfullyDisconnected": "Provayderin əlaqəsi müvəffəqiyyətlə kəsildi",

View File

@ -1,6 +1,5 @@
{
"EmptyRoomsDescription": "Lütfən, Otaqlarımda ilk otağı yaradın.",
"EmptyRoomsHeader": "Burada hələ otaq yoxdur",
"RoomList": "Otaq siyahısı",
"SearchEmptyRoomsDescription": "Bu filtrə uyğun otaq yoxdur. Bütün otaqlara baxmaq üçün fərqli filtri və ya təmiz filtri sınayın."
"RoomList": "Otaq siyahısı"
}

View File

@ -139,8 +139,8 @@
"PortalRenaming": "Portalın Adının dəyişdirilməsi",
"PortalRenamingDescription": "Burada portal ünvanınızı dəyişə bilərsiniz.",
"PortalRenamingLabelText": "Yeni portal adı",
"PortalRenamingMobile": "onlyoffice.com/onlyoffice.eu portal ünvanının yanında görünəcək hissəni daxil edin. Qeyd edin: Yadda saxla düyməsini kliklədikdən sonra köhnə portal ünvanınız yeni istifadəçiləri üçün əlçatan olacaq.",
"PortalRenamingSettingsTooltip": "onlyoffice.com/onlyoffice.eu portal ünvanının yanında görünəcək hissəni daxil edin.",
"PortalRenamingMobile": "{{domain}} portal ünvanının yanında görünəcək hissəni daxil edin. Qeyd edin: Yadda saxla düyməsini kliklədikdən sonra köhnə portal ünvanınız yeni istifadəçiləri üçün əlçatan olacaq.",
"PortalRenamingSettingsTooltip": "<0>{{text}}</0> {{domain}} portal ünvanının yanında görünəcək hissəni daxil edin.",
"ProductUserOpportunities": "Profillərə və qruplara baxın",
"RecoveryFileNotSelected": "Bərpa xətası. Bərpa olunacaq fayl seçilməyib.",
"RestoreBackup": "Məlumatların bərpası",
@ -178,7 +178,6 @@
"ThirdPartyPropsDeactivated": "Uğurla deaktiv edildi",
"ThirdPartyResource": "Üçüncü tərəf resursu",
"ThirdPartyResourceDescription": "Ehtiyat nüsxələr üçüncü tərəf hesablarda da (Dropbox, Box.com, OneDrive və ya Google Drive) saxlana bilər. Buna görə də, ehtiyat nüsxələrinizi yadda saxlaya bilmək üçün əvvəlcə öz üçüncü tərəf hesabınızı (Dropbox, Box.com, OneDrive və ya Google Drive) ilə əlaqələndirməlisiniz.",
"ThirdPartyStorage": "Üçüncü Tərəf Yaddaşı",
"ThirdPartyStorageDescription": "Ehtiyat nüsxələr üçüncü tərəf yaddaşlarında da saxlana bilər. Bunu etmək üçün əvvəlcə 'İnteqrasiya' bölməsində müvafiq xidmətə qoşulmalısınız. Əks halda, aşağıdakı ayarlar aktivləşdirilməyəcək.",
"ThirdPartyTitleDescription": "Avtorizasiya açarları ilə öz portalınızla üçüncü tərəf xidmətlərini əlaqələndirə bilərsiniz. Facebook, Google və ya LinkedIn ilə asanlıqla giriş edin; Dropbox, OneDrive əlavə edərək Sənədlər modulundan olan fayllar üzərində oradan işləyin.",
"TimeZone": "Saat Qurşağı",

View File

@ -28,7 +28,7 @@
"Folders": "Qovluqlar",
"FormTemplates": "Anket şablonları",
"LinkCopySuccess": "Link buferə köçürüldü",
"LinkValidTime": "Bu link yalnız {{gün_sayı}} gün ərzində etibarlıdır.",
"LinkValidTime": "Bu link yalnız {{days_count}} gün ərzində etibarlıdır.",
"MobileAndroid": "Google Play-dən ONLYOFFICE Sənədlərini əldə edin",
"MobileIos": "App Store-da ONLYOFFICE Sənədləri endirin",
"MobileLinux": "Linux üçün ONLYOFFICE Masaüstü Redaktorları endirin",

View File

@ -7,7 +7,7 @@
"DeleteProfileConfirmation": "Внимание! На път сте да изтриете профила си.",
"DeleteProfileConfirmationInfo": "Като натиснете \"Изтрий профила ми\", се съгласявате с нашата <1>Политика за поверителност.</1>",
"DeleteProfileSuccessMessage": "Профилът Ви беше изтрит успешно.",
"DeleteProfileSuccessMessageInfo": "Вижте Политиката ни за поверителност, за да научите повече за изтриването на профила Ви и данните, свързани с него.",
"DeleteProfileSuccessMessageInfo": "Вижте <1>Политиката ни за поверителност</1>, за да научите повече за изтриването на профила Ви и данните, свързани с него.",
"EmailAndPasswordCopiedToClipboard": "Имейлът и паролата са копирани в клипборда",
"EnterAppCodeDescription": "Въведете 6-цифрения код, генериран от приложението Ви. Ако нямате достъп до телефона си, използвайте резервните кодове.",
"EnterAppCodeTitle": "Въведете кода от приложението за удостоверяване",

View File

@ -1,6 +1,6 @@
{
"ConflictResolveDescription": "Файл с име <1>{{file}}</1> вече съществува в папка <1>{{folder}}</1>.",
"ConflictResolveDescriptionFiles": "{{filesCount}} документа с едно и също име вече съществуват в папката <1>{{folder}}<1>.",
"ConflictResolveDescriptionFiles": "{{filesCount}} документа с едно и също име вече съществуват в папката <1>{{folder}}</1>.",
"ConflictResolveSelectAction": "Моля, изберете действие:",
"ConflictResolveTitle": "Потвърждение за презаписване",
"CreateDescription": "Ще има два различни файла в папката.",

View File

@ -22,7 +22,6 @@
"ThirdPartyStorageNoStorageAlert": "Преди това трябва да свържете съответната услуга в раздела „Интеграция“. В противен случай връзката няма да бъде възможна.",
"ThirdPartyStoragePermanentSettingDescription": "Файловете се съхраняват в {{thirdpartyTitle}} хранилище на трета страна в папката \"{{thirdpartyFolderName}}\".\n<strong>{{thirdpartyPath}}</strong>",
"ThirdPartyStorageRoomAdminNoStorageAlert": "За да свържете хранилище на трета страна, трябва да добавите съответната услуга в секцията Интеграция на настройките на DocSpace. Свържете се със собственика или администратора на DocSpace, за да активирате интеграцията.",
"ThirdPartyStorageTitle": "Хранилища на трети страни",
"ViewOnlyRoomDescription": "Споделяйте всякакви готови документи, отчети, документация и други файлове за преглед.",
"ViewOnlyRoomTitle": "Стая само за преглед"
}

View File

@ -6,11 +6,9 @@
"DeleteRooms": "На път сте да изтриете тези стаи. Няма да можете да ги възстановите.",
"MoveToTrashButton": "Премести в Кошчето",
"MoveToTrashFile": "На път сте да изтриете този файл? Моля, обърнете внимание, че ако сте го споделили с някого, той ще стане недостъпен. Сигурен ли си, че искаш да продължиш?",
"MoveToTrashFileFromPersonal": "На път сте да изтриете този файл. Сигурни ли сте, че искате да продължите?",
"MoveToTrashFolder": "На път сте да изтриете тази папка? Моля, обърнете внимание, че ако сте го споделили с някого, той ще стане недостъпен. Сигурен ли си, че искаш да продължиш?",
"MoveToTrashFolderFromPersonal": "На път сте да изтриете тази папка. Сигурни ли сте, че искате да продължите?",
"MoveToTrashItems": "На път сте да изтриете тези елементи. Моля, имайте предвид, че ако сте ги споделили с някого, те ще станат недостъпни. Сигурни ли сте, че искате да продължите?",
"MoveToTrashItemsFromPersonal": "На път сте да изтриете тези елементи. Сигурни ли сте, че искате да продължите?",
"MoveToTrashTitle": "Преместване в кошчето?",
"UnsubscribeButton": "Отписване",
"UnsubscribeNote": "Сигурни ли сте, че искате да се отпишете от избраните елементи от списъка?",

View File

@ -1,3 +1,7 @@
{
"SaveOrChange": "Намалете необходимия параметър или запазете текущия си ценови план."
"CannotChangePlan": "Не може да промените плана си, защото броят използвано пространство в хранилището или броя администратори/опитни потребители надвишава лимита на избрания план:",
"ChangePricingPlan": "Променете абонаментния план",
"PlanStorageLimit": "Ограничението на новата тарифа е <1>{{storageValue}}</1> пространство в хранилището, а в момента сте ползвали <1>{{currentStorageValue}}</1>.",
"PlanUsersLimit": "Вие искате да понижите екипа си до <1>{{usersCount}}</1> администратори/опитни потребители, а текущият брой такива потребители във вашият DocSpace е <1>{{currentUsersCount}}</1>.",
"SaveOrChange": "Моля, елиминирайте разликите в проблемните параметри, за да продължите или изберете да активирате абонаментен план."
}

View File

@ -27,7 +27,6 @@
"EditRoom": "Редактиране на стая",
"EmptyFile": "Изпразни файл",
"EmptyFilterDescriptionText": "Нито един файл или папка не пасват на този филтър. Изпробвайте друг или изчистете филтъра, за да видите всички файлове. ",
"EmptyFilterDescriptionTextRooms": "Няма стаи, които отговарят на този филтър. Опитайте с други филтри или ги махнете, за да видите всички стаи.",
"EmptyFilterSubheadingText": "Няма файлове, които да бъдат показани за този филтър тук",
"EmptyFolderDecription": "Пуснете файловете тук или създайте нови",
"EmptyFolderDescriptionUser": "Тук ще се показват файлове и папки, качени от администраторите.",

View File

@ -26,6 +26,7 @@
"FeedUpdateUser": "е назначена ролята {{role}}",
"FileExtension": "Разширение на файл",
"FilesEmptyScreenText": "Вижте подробности за файловете и папките тук",
"HistoryEmptyScreenText": "Историята на дейностите ще бъде показана тук",
"ItemsSelected": "Избрани елементи",
"LastModifiedBy": "Последно модифициран от",
"PendingInvitations": "Чакащи покани",

View File

@ -11,7 +11,7 @@
"EnterWidth": "Въведете ширина",
"FolderId": "ID на папка",
"FrameId": "ID на рамката",
"Header": "Удар с глава",
"Header": "Заглавие",
"ItemsCount": "Елементите се броят",
"JavascriptSdk": "Javascript SDK",
"Menu": "Меню",

View File

@ -26,7 +26,6 @@
"Payer": "Платец",
"PayerDescription": "Този потребител има достъп до подробности за плащането и е единственият потребител, който може да коригира квотата и да извършва плащания. Собственикът на DocSpace, както и самият управител на плащанията, могат да преназначат ролята на управител на плащанията с помощта на портала за клиенти на Stripe.",
"PaymentOverdue": "Не могат да се добавят нови потребители.",
"PowerUserDescription": "Опитните потребители могат да създават и редактират файлове в стаята, но не могат да създават стаи, да управляват потребители или да осъществяват достъп до настройките.",
"PriceCalculation": "Изчислете цената си",
"QuotaPaidUserLimitError": "Лимитът за платени потребители е достигнат. <1>Плащания</1>",
"RenewSubscription": "Подновете абонамента за плана {{planName}}",

View File

@ -16,7 +16,6 @@
"LogoutBtn": "Изход",
"LogoutDescription": "Забележка. Всички активни връзки с изключение на тази ще бъдат отписани, тъй като тази връзка се използва в момента.",
"LogoutFrom": "Изход от {{platform}} {{browser}}?",
"MessageEmailActivationInstuctionsSentOnEmail": "Инструкциите за активиране на имейла бяха изпратени на имейл адрес <strong>{{ email }}</strong>.",
"MyProfile": "Моят профил",
"ProviderSuccessfullyConnected": "Доставчикът е свързан успешно",
"ProviderSuccessfullyDisconnected": "Връзката с доставчика беше прекъсната успешно",

View File

@ -1,6 +1,5 @@
{
"EmptyRoomsDescription": "Моля, създайте първата стая в Моите стаи.",
"EmptyRoomsHeader": "Тук все още няма стаи",
"RoomList": "Списък със стаи",
"SearchEmptyRoomsDescription": "Няма стаи, които отговарят на този филтър. Опитайте с други филтри или ги махнете, за да видите всички стаи."
"RoomList": "Списък със стаи"
}

View File

@ -139,8 +139,8 @@
"PortalRenaming": "Преименуване на портала",
"PortalRenamingDescription": "Тук можете да промените адреса на вашия портал.",
"PortalRenamingLabelText": "Ново име на портала",
"PortalRenamingMobile": "Въведете частта, която ще се появи до адреса на портала onlyoffice.com/onlyoffice.eu. Моля, обърнете внимание {2}: старият ви портал ще стане достъпен за нови потребители, след като кликнете върху Запази Бутон.",
"PortalRenamingSettingsTooltip": "<0>{{text}}</0> Въведете частта, която ще се появи до адреса на портала onlyoffice.com/onlyoffice.eu.",
"PortalRenamingMobile": "Въведете частта, която ще се появи до адреса на портала {{domain}}. Моля, обърнете внимание: старият ви портал ще стане достъпен за нови потребители, след като кликнете върху Запази Бутон.",
"PortalRenamingSettingsTooltip": "<0>{{text}}</0> Въведете частта, която ще се появи до адреса на портала {{domain}}.",
"ProductUserOpportunities": "Преглед на профили и групи",
"RecoveryFileNotSelected": "Грешка при възстановяване. Файлът за възстановяване не е избран.",
"RestoreBackup": "Възстановяване на данни",
@ -178,7 +178,6 @@
"ThirdPartyPropsDeactivated": "Деактивирано успешно",
"ThirdPartyResource": "Ресурс на трета страна",
"ThirdPartyResourceDescription": "Архивното копие може да бъде запазено във вашия профил от трета страна (Dropbox, Box.com, OneDrive или Google Drive). Трябва да свържете своя профил от трета страна (Dropbox, Box.com, OneDrive или Google Drive) преди да можете да запазите резервното си копие там.",
"ThirdPartyStorage": "Памет за трети страни",
"ThirdPartyStorageDescription": "Архивното копие може да бъде запазено в хранилище на трета страна. Преди това трябва да свържете съответната услуга в секцията 'Интеграция'. В противен случай следните настройки ще бъдат неактивни.",
"ThirdPartyTitleDescription": "С Ключовете за удостоверяване можете да свържете услуги от трето лице към портала си. Влезте лесно с Facebook, Google или LinkedIn; добавете Dropbox, OneDrive и др., за да работите със съхранявани там файлове от Модула за документи.",
"TimeZone": "Часова зона",

View File

@ -7,7 +7,7 @@
"DeleteProfileConfirmation": "Pozor! Chystáte se smazat svůj účet.",
"DeleteProfileConfirmationInfo": "Kliknutím na \"Smazat můj účet\" souhlasíte s našimi <1>Zásadami ochrany osobních údajů.</1>",
"DeleteProfileSuccessMessage": "Váš účet byl úspěšně smazán.",
"DeleteProfileSuccessMessageInfo": "Více informací o vymazání vašeho účtu a údajů s ním spojených naleznete v našich Zásadách ochrany osobních údajů.",
"DeleteProfileSuccessMessageInfo": "Více informací o vymazání vašeho účtu a údajů s ním spojených naleznete v našich <1>Zásadách ochrany</1> osobních údajů.",
"EmailAndPasswordCopiedToClipboard": "Email a heslo zkopírované do schránky",
"EnterAppCodeDescription": "Zadejte šestimístný kód vygenerovaný z vaší aplikace. Pokud nemáte přístup k telefonu, použijte záložní kódy.",
"EnterAppCodeTitle": "Zadejte kód z ověřovací aplikace",
@ -24,7 +24,7 @@
"Reactivate": "Znovu aktivovat",
"SetAppButton": "Připojit aplikaci",
"SetAppDescription": "Dvoufázové ověřování je povoleno. Nakonfigurujte aplikaci autentizátoru, abyste mohli pokračovat v práci v DocSpace. Můžete použít aplikaci Google Authenticator pro <1>Android</1> a <4>iOS</4> nebo Authenticator pro <8>Windows Phone</8>.",
"SetAppInstallDescription": "Chcete-li aplikaci připojit, naskenujte kód QR nebo ručně zadejte svůj tajný klíč <1>{{{ secretKey }}</1> a poté zadejte šestimístný kód z aplikace do pole níže.",
"SetAppInstallDescription": "Chcete-li aplikaci připojit, naskenujte kód QR nebo ručně zadejte svůj tajný klíč <1>{{ secretKey }}</1> a poté zadejte šestimístný kód z aplikace do pole níže.",
"SetAppTitle": "Nastavení aplikace autentizačního zařízení",
"SuccessDeactivate": "Váš účet byl úspěšně deaktivován. Za 10 sekund budete přesměrováni na <1>stránku</1>.",
"SuccessReactivate": "Váš účet byl úspěšně reaktivován. Za 10 sekund budete přesměrováni na <1>portál</1>.",

View File

@ -1,6 +1,6 @@
{
"ConflictResolveDescription": "Soubor s názvem <1>{{file}}</1> již existuje ve složce <1>{{folder}}</1>.",
"ConflictResolveDescriptionFiles": "Ve složce <1>{{folder}}<1> již existuje {{filesCount}} dokumentů se stejným názvem.",
"ConflictResolveDescriptionFiles": "Ve složce <1>{{folder}}</1> již existuje {{filesCount}} dokumentů se stejným názvem.",
"ConflictResolveSelectAction": "Prosím, vyberte akci:",
"ConflictResolveTitle": "Potvrzení o přepsání",
"CreateDescription": "Ve složce budou dva různé soubory.",

View File

@ -20,9 +20,8 @@
"ThirdPartyStorageComboBoxPlaceholder": "Vyberte úložiště",
"ThirdPartyStorageDescription": "Jako úložiště dat pro tuto místnost použijte služby třetích stran. V připojeném úložišti bude vytvořena nová složka pro ukládání dat této místnosti.",
"ThirdPartyStorageNoStorageAlert": "Předtím je třeba připojit příslušnou službu v části „Integrace“. V opačném případě nebude připojení možné.",
"ThirdPartyStoragePermanentSettingDescription": "Soubory jsou uloženy v úložišti třetí strany {{thirdpartyTitle}} ve složce {{thirdpartyFolderName}}“.\n<strong>{{thirdpartyPath}}</strong>",
"ThirdPartyStoragePermanentSettingDescription": "Soubory jsou uloženy v úložišti třetí strany {{thirdpartyTitle}} ve složce \"{{thirdpartyFolderName}}“.\n<strong>{{thirdpartyPath}}</strong>",
"ThirdPartyStorageRoomAdminNoStorageAlert": "Chcete-li připojit úložiště třetí strany, musíte přidat příslušnou službu v části Integrace v nastavení služby DocSpace. Pro povolení integrace se obraťte na vlastníka nebo správce služby DocSpace.",
"ThirdPartyStorageTitle": "Úložiště třetích stran",
"ViewOnlyRoomDescription": "Sdílejte připravené dokumenty, zprávy, dokumentaci a další soubory k prohlížení.",
"ViewOnlyRoomTitle": "Místnost pouze k prohlížení"
}

View File

@ -6,11 +6,9 @@
"DeleteRooms": "Tyto místnosti se chystáte smazat. Nebudete je moci obnovit.",
"MoveToTrashButton": "Přesunout do koše",
"MoveToTrashFile": "Chystáte se odstranit tento soubor. Upozorňujeme, že pokud jste jej s někým sdíleli, stane se nedostupným. Soubor bude trvale odstraněn za 30 dní. Určitě chcete pokračovat?",
"MoveToTrashFileFromPersonal": "Chystáte se odstranit tento soubor. Určitě chcete pokračovat?",
"MoveToTrashFolder": "Chystáte se odstranit tuto složku. Upozorňujeme, že pokud jste ji s někým sdíleli, stane se nedostupnou. Opravdu chcete pokračovat?",
"MoveToTrashFolderFromPersonal": "Chystáte se odstranit tuto složku. Určitě chcete pokračovat?",
"MoveToTrashItems": "Chystáte se odstranit tyto položky. Upozorňujeme, že pokud jste je s někým sdíleli, stanou se nedostupnými. Určitě chcete pokračovat?",
"MoveToTrashItemsFromPersonal": "Chystáte se odstranit tyto položky. Určitě chcete pokračovat?",
"MoveToTrashTitle": "Přesunout do koše?",
"UnsubscribeButton": "Zrušit odběr",
"UnsubscribeNote": "Určitě chcete zrušit odběr vybraných položek ze seznamu?",

View File

@ -1,4 +1,5 @@
{
"DeleteOwnerRestrictionText": "Pokud jste vlastníkem tohoto prostoru DocSpace, musíte před odstraněním svého účtu převést vlastnictví na jiného uživatele. Chcete-li pokračovat, zvolte nového vlastníka.",
"DeleteProfileInfo": "Odeslat pokyny ke smazání profilu na e-mailovou adresu",
"DeleteProfileTitle": "Dialogové okno pro odstranění profilu"
}

View File

@ -1,3 +1,7 @@
{
"SaveOrChange": "Snižte požadovaný parametr nebo zachovejte stávající cenový tarif."
"CannotChangePlan": "Tarif nelze změnit, protože použitý objem úložiště nebo počet správců/oprávněných uživatelů přesahuje omezení zvoleného tarifu:",
"ChangePricingPlan": "Změnit cenový tarif",
"PlanStorageLimit": "Omezení nového tarifu je <1>{{storageValue}}</1> úložného prostoru a váš aktuální využívaný úložný prostor je <1>{{currentStorageValue}}</1>.",
"PlanUsersLimit": "Přejete si snížit úroveň týmu na <1>{{usersCount}}</1> administrátorů/správců a aktuální počet těchto uživatelů ve vašem prostoru DocSpace je <1>{{currentUsersCount}}</1>.",
"SaveOrChange": "Chcete-li pokračovat, odstraňte prosím nesoulad v konfliktním parametru nebo si ponechte svůj aktivní cenový tarif."
}

View File

@ -1,7 +1,7 @@
{
"ChooseFormatText": "Zvolte formát každého stahovaného souboru",
"ConvertMessage": "Pokud zvolíte převod souboru do jiného formátu než původního, může dojít ke ztrátě některých dat.",
"ConvertToZip": "Soubory budou zkomprimovány do souboru .zip",
"ConvertToZip": "Soubory budou zkomprimovány do <strong>souboru .zip</strong>",
"CustomFormat": "Vlastní formát",
"OriginalFormat": "Původní formát"
}

View File

@ -27,7 +27,6 @@
"EditRoom": "Místnost pro úpravy",
"EmptyFile": "Prázdný soubor",
"EmptyFilterDescriptionText": "Tomuto filtru neodpovídají žádné soubory ani složky. Vyzkoušejte jiný nebo vymažte filtr pro zobrazení všech souborů.",
"EmptyFilterDescriptionTextRooms": "Tomuto filtru neodpovídají žádné místnosti. Vyzkoušejte jiný filtr nebo vymažte filtr pro zobrazení všech místností.",
"EmptyFilterSubheadingText": "Pro tento filtr nejsou žádné soubory k zobrazení",
"EmptyFolderDecription": "Vložte sem soubory nebo vytvořte nové",
"EmptyFolderDescriptionUser": "Zde se objeví soubory a složky nahrané správci.",
@ -45,7 +44,7 @@
"FinalizeVersion": "Dokončit verzi",
"Folder": "Složka",
"FolderRemoved": "Složka přesunuta do koše",
"FolderRenamed": "Složka '{{{folderTitle}}' je přejmenována na '{{newFoldedTitle}}'",
"FolderRenamed": "Složka '{{folderTitle}}' je přejmenována na '{{newFoldedTitle}}'",
"Forms": "Formuláře",
"FormsTemplates": "Šablony formulářů",
"GoToMyRooms": "Přejít do sekce Moje místnosti",

View File

@ -26,6 +26,7 @@
"FeedUpdateUser": "byla přidělena role {{role}}",
"FileExtension": "Přípona souboru",
"FilesEmptyScreenText": "Podrobnosti o souboru a složce naleznete zde",
"HistoryEmptyScreenText": "Historie aktivit se zobrazí zde",
"ItemsSelected": "Vybrané položky",
"LastModifiedBy": "Naposledy upravil(a)",
"PendingInvitations": "Čekající pozvánky",

View File

@ -26,7 +26,6 @@
"Payer": "Plátce",
"PayerDescription": "Tento uživatel má přístup k platebním údajům a je jediným uživatelem, který může upravovat kvóty a provádět platby. Vlastník prostoru DocSpace, stejně jako samotný správce platby, může roli správce platby přeřadit pomocí zákaznického portálu Stripe.",
"PaymentOverdue": "Nelze přidávat nové uživatele.",
"PowerUserDescription": "Výkonní uživatelé mohou vytvářet a upravovat soubory v místnosti, ale nemohou vytvářet místnosti, spravovat uživatele ani přistupovat k nastavením.",
"PriceCalculation": "Vypočítejte si cenu",
"QuotaPaidUserLimitError": "Byl dosažen limit placených uživatelů. <1>Platby</1>",
"RenewSubscription": "Obnovit předplatné tarifu {{planName}}",

View File

@ -16,7 +16,6 @@
"LogoutBtn": "Odhlášení",
"LogoutDescription": "Poznámka. Všechna aktivní připojení kromě tohoto připojení budou odhlášena, protože jsou právě používána.",
"LogoutFrom": "Odhlášení z {{platform}} {{browser}} ?",
"MessageEmailActivationInstuctionsSentOnEmail": "Pokyny k aktivaci e-mailu byly odeslány na e-mailovou adresu <strong>{{ email }}</strong>.",
"MyProfile": "Můj profil",
"ProviderSuccessfullyConnected": "Poskytovatel úspěšně připojen",
"ProviderSuccessfullyDisconnected": "Poskytovatel úspěšně odpojen",

View File

@ -1,6 +1,5 @@
{
"EmptyRoomsDescription": "Vytvořte první místnost v části Moje místnosti.",
"EmptyRoomsHeader": "Zatím zde nejsou žádné místnosti",
"RoomList": "Seznam místností",
"SearchEmptyRoomsDescription": "Tomuto filtru neodpovídají žádné místnosti. Vyzkoušejte jiný filtr nebo vymažte filtr pro zobrazení všech místností."
"RoomList": "Seznam místností"
}

View File

@ -139,8 +139,8 @@
"PortalRenaming": "Přejmenování portálu",
"PortalRenamingDescription": "Zde můžete změnit Vaši adresu portálu.",
"PortalRenamingLabelText": "Nový název portálu",
"PortalRenamingMobile": "Vložte část, která se objeví vedle onlyoffice.com/onlyoffice.eu portálové adresy. Upozornění: Vaše stará portálová adresa bude dostupná pouze pro uživatele poté, co kliknete na tlačítko Uložit.",
"PortalRenamingSettingsTooltip": "<0>{{text}}</0> Vložte část, která se objeví vedle onlyoffice.com/onlyoffice.eu portálové adresy.",
"PortalRenamingMobile": "Vložte část, která se objeví vedle {{domain}} portálové adresy. Upozornění: Vaše stará portálová adresa bude dostupná pouze pro uživatele poté, co kliknete na tlačítko Uložit.",
"PortalRenamingSettingsTooltip": "<0>{{text}}</0> Vložte část, která se objeví vedle {{domain}} portálové adresy.",
"ProductUserOpportunities": "Zobrazit profily a skupiny",
"RecoveryFileNotSelected": "Chyba při obnově. Soubor pro obnovení nebyl vybrán.",
"RestoreBackup": "Obnova dat",
@ -178,7 +178,6 @@
"ThirdPartyPropsDeactivated": "Úspěšně deaktivováno",
"ThirdPartyResource": "Zdroj třetí strany",
"ThirdPartyResourceDescription": "Zálohu lze uložit na účet třetí strany (Dropbox, Box.com, OneDrive nebo Disk Google). Předtím, než tam budete moci zálohu uložit, musíte účet třetí strany (Dropbox, Box.com, OneDrive nebo Disk Google).",
"ThirdPartyStorage": "Úložiště třetích stran",
"ThirdPartyStorageDescription": "Zálohu lze uložit do úložiště třetí strany. Předtím je třeba připojit příslušnou službu v části 'Integrace'. V opačném případě budou následující nastavení neaktivní.",
"ThirdPartyTitleDescription": "Pomocí autorizačních klíčů můžete k portálu připojit služby třetích stran. Snadno se přihlásíte pomocí Facebooku, Google nebo LinkedIn; z modulu Dokumenty přidáte Dropbox, OneDrive atd. a budete moci pracovat se soubory, které jsou tam uloženy.",
"TimeZone": "Časové pásmo",

View File

@ -7,7 +7,7 @@
"DeleteProfileConfirmation": "Achtung! Dies wird Ihr Konto löschen.",
"DeleteProfileConfirmationInfo": "Wenn Sie auf \"Mein Konto löschen\" klicken, akzeptieren Sie unsere <1>Datenschutzerklärung.</1>",
"DeleteProfileSuccessMessage": "Ihr Konto wurde erfolgreich gelöscht. ",
"DeleteProfileSuccessMessageInfo": "Erfahren Sie mehr über Löschen Ihres Portals und aller Daten in unserer Datenschutzerklärung.",
"DeleteProfileSuccessMessageInfo": "Erfahren Sie mehr über Löschen Ihres Portals und aller Daten in unserer <1>Datenschutzerklärung</1>.",
"EmailAndPasswordCopiedToClipboard": "E-Mail und Passwort wurde in die Zwischenablage kopiert",
"EnterAppCodeDescription": "Geben Sie den sechsstelligen Code aus Ihrer App ein. Wenn Sie keinen Zugriff auf Ihr Handy haben, können Sie mit Back-up-Codes anmelden.",
"EnterAppCodeTitle": "Code aus der Authentifizierungs-App eingeben",

View File

@ -22,7 +22,6 @@
"ThirdPartyStorageNoStorageAlert": "Zuvor müssen Sie den entsprechenden Dienst im Abschnitt \"Integration\" verbinden. Andernfalls wird die Verbindung nicht möglich sein.",
"ThirdPartyStoragePermanentSettingDescription": "Die Dateien werden in einem Drittspeicher {{thirdpartyTitle}} im Ordner \"{{thirdpartyFolderName}}\" gespeichert.\n<strong>{{thirdpartyPath}}</strong>",
"ThirdPartyStorageRoomAdminNoStorageAlert": "Um einen Speicherplatz eines Drittanbieters zu verbinden, müssen Sie den entsprechenden Dienst im Abschnitt Integration der DocSpace-Einstellungen hinzufügen. Kontaktieren Sie den DocSpace-Besitzer oder -Administrator, um die Integration zu aktivieren.",
"ThirdPartyStorageTitle": "Speicherdienst von Drittanbietern",
"ViewOnlyRoomDescription": "Teilen Sie fertige Dokumente, Berichte, Dokumentation und anderen Dateien zur Ansicht.",
"ViewOnlyRoomTitle": "Raum nur mit Aussicht"
}

View File

@ -6,11 +6,9 @@
"DeleteRooms": "Sie möchten diese Räume löschen. Dies kann nicht rückgängig gemacht.",
"MoveToTrashButton": "In den Papierkorb verschieben",
"MoveToTrashFile": "Möchten Sie wirklich das Dokument löschen? Bitte beachten Sie, dass es nicht mehr verfügbar wird, wenn Sie es mit jemandem geteilt haben. Möchten Sie fortsetzen?",
"MoveToTrashFileFromPersonal": "Sie möchten diese Datei löschen. Fortfahren?",
"MoveToTrashFolder": "Möchten Sie wirklich den Ordner löschen? Bitte beachten Sie, dass es nicht mehr verfügbar wird, wenn Sie ihn mit jemandem geteilt haben. Möchten Sie fortsetzen?",
"MoveToTrashFolderFromPersonal": "Sie möchten diesen Ordner löschen. Fortfahren?",
"MoveToTrashItems": "Möchten Sie wirklich diese Elemente löschen? Bitte beachten Sie, dass die Dateien nicht mehr verfügbar werden, wenn Sie diese vorher freigegeben haben. Möchten Sie fortsetzen?",
"MoveToTrashItemsFromPersonal": "Sie löschen diese Objekte. Fortfahren?",
"MoveToTrashTitle": "In Papierkorb verschieben?",
"UnsubscribeButton": "Abbestellen",
"UnsubscribeNote": "Sind Sie sicher, dass Sie die ausgewählten Elemente aus der Liste abbestellen möchten?",

View File

@ -1,7 +1,7 @@
{
"CannotChangePlan": "Sie können Ihren Tarif nicht ändern, weil das verwendete Speichervolumen oder die Anzahl der Admins/Power-Benutzer Limits des gewählten Tarifs überschreitet:",
"ChangePricingPlan": "Preisplan ändern",
"PlanStorageLimit": "Die Beschränkung des neuen Tarifs ist <1>{{StorageValue}}</1> an Speicherplatz, und Ihr aktuell verwendeter Speicherplatz ist <1>{{currentStorageValue}}</1>.",
"PlanStorageLimit": "Die Beschränkung des neuen Tarifs ist <1>{{storageValue}}</1> an Speicherplatz, und Ihr aktuell verwendeter Speicherplatz ist <1>{{currentStorageValue}}</1>.",
"PlanUsersLimit": "Sie möchten das Team auf <1>{{usersCount}}</1> Admins/Power-Benutzer herabstufen, und die aktuelle Anzahl solcher Benutzer in Ihrem DocSpace ist <1>{{currentUsersCount}}</1>.",
"SaveOrChange": "Bitte beseitigen Sie die Diskrepanz in den widersprüchlichen Parametern, um fortzufahren oder Ihren aktiven Preisplan beizubehalten."
}

View File

@ -1,7 +1,7 @@
{
"ChooseFormatText": "Wählen Sie ein Format für das Herunterladen von Dateien aus",
"ConvertMessage": "Wenn Sie das Dateiformat ändern, können Sie möglicherweise einige Daten verloren.",
"ConvertToZip": "Dateien werden in eine ZIP-Datei archiviert",
"ConvertToZip": "Dateien werden in eine <strong>ZIP-Datei</strong> archiviert",
"CustomFormat": "Benutzerdefiniertes Format",
"OriginalFormat": "Originalformat"
}

View File

@ -27,7 +27,6 @@
"EditRoom": "Raum bearbeiten",
"EmptyFile": "Leere Datei",
"EmptyFilterDescriptionText": "Keine Dateien oder Ordner entsprechen diesem Filter. Versuchen Sie einen anderen Filter oder entfernen Sie diesen, um alle Dateien zu sehen.",
"EmptyFilterDescriptionTextRooms": "Keine Räume entsprechen diesem Filter. Versuchen Sie einen anderen Filter oder löschen Sie den Filter, um alle Räume anzuzeigen.",
"EmptyFilterSubheadingText": "Hier gibt es keine Dateien, die diesem Filter entsprechen",
"EmptyFolderDecription": "Dateien hier ablegen oder neue erstellen",
"EmptyFolderDescriptionUser": "Von Administratoren hochgeladene Dateien und Ordner werden hier angezeigt.",

View File

@ -1,20 +1,20 @@
{
"Ascending": "Aufsteigend",
"CopyWindowCode": "Fenster-Einbettungscode kopieren",
"DataDisplay": "Einstellungen für die Datenanzeige",
"DataDisplay": "Einstellungen der Datenanzeige",
"Descending": "Absteigend",
"Destroy": "Zerstören",
"EnterCount": "Anzahl eingeben",
"EnterHeight": "Höhe eingeben",
"EnterId": "ID eingeben",
"EnterPage": "Nummernseite eingeben",
"EnterPage": "Seitenzahl eingeben",
"EnterWidth": "Breite eingeben",
"FolderId": "Ordner-ID",
"FrameId": "Frame-ID",
"Header": "Header",
"ItemsCount": "Artikel zählen",
"JavascriptSdk": "Javascript-SDK",
"Menu": "Speisekarte",
"Header": "Kopfzeile",
"ItemsCount": "Anzahl der Artikel",
"JavascriptSdk": "JavaScript-SDK",
"Menu": "Menü",
"Page": "Seite",
"SearchTerm": "Suchbegriff",
"SortOrder": "Sortierreihenfolge",

View File

@ -26,7 +26,6 @@
"Payer": "Zahler",
"PayerDescription": "Dieser Benutzer hat Zugriff auf die Zahlungsdetails und ist der einzige Benutzer, der die Quote anpassen und Zahlungen vornehmen kann. Der DocSpace-Besitzer sowie der zahlende Manager selbst können die Rolle des zahlenden Managers über das Stripe-Kundenportal neu zuweisen.",
"PaymentOverdue": "Es können keine neuen Benutzer hinzugefügt werden.",
"PowerUserDescription": "Hauptbenutzer können Dateien im Raum erstellen und bearbeiten, aber keine Räume erstellen, Benutzer verwalten oder auf Einstellungen zugreifen.",
"PriceCalculation": "Berechnen Sie Ihren Preis",
"QuotaPaidUserLimitError": "Das Limit von Benutzern wurde erreicht. <1>Zahlungen</1>",
"RenewSubscription": "Abonnement des {{planName}}-Plans erneuern",

View File

@ -16,7 +16,6 @@
"LogoutBtn": "Abmelden",
"LogoutDescription": "Hinweis. Alle aktiven Verbindungen mit Ausnahme dieser Verbindung werden abgemeldet, da sie gerade in Gebrauch ist.",
"LogoutFrom": "Abmelden von {{platform}} {{browser}} ?",
"MessageEmailActivationInstuctionsSentOnEmail": "Die Hinweise für die Aktivierung wurden an <strong>{{ email }}</strong> versandt.",
"MyProfile": "Mein Profil",
"ProviderSuccessfullyConnected": "Anbieter erfolgreich verbunden",
"ProviderSuccessfullyDisconnected": "Anbieter erfolgreich getrennt",

View File

@ -1,6 +1,5 @@
{
"EmptyRoomsDescription": "Bitte erstellen Sie den ersten Raum in Meine Räume.",
"EmptyRoomsHeader": "Noch keine Räume vorhanden",
"RoomList": "Raumliste",
"SearchEmptyRoomsDescription": "Keine Räume entsprechen diesem Filter. Versuchen Sie einen anderen Filter oder löschen Sie den Filter, um alle Räume anzuzeigen."
"RoomList": "Raumliste"
}

View File

@ -121,7 +121,7 @@
"PasswordMinLenght": "Minimale Kennwortlänge",
"Path": "Pfad",
"PleaseNote": "Sei bemerkt",
"PleaseNoteDescription": "<0>{{pleaseNote}}</0>: Ihre alte Portal-Adresse steht zu Verfügung für neue Benutzer, sobald Sie die Druckschalter <2>{{save}}</2> klicken.",
"PleaseNoteDescription": "<0>{{pleaseNote}}</0>: sobald Sie auf die Schaltfläche <2>{{save}}</2> klicken, ist Ihre alte Space-Adresse für neue Benutzer nicht mehr verfügbar.",
"Plugins": "Plugins",
"PortalAccess": "Zugang zum Portal",
"PortalAccessSubTitle": "In diesem Bereich können Sie den Benutzern einen sicheren und nahtlosen Zugang zum Portal gewähren.",
@ -139,8 +139,8 @@
"PortalRenaming": "Portalumbenennung",
"PortalRenamingDescription": "Hier können Sie Ihre Portaladresse ändern.",
"PortalRenamingLabelText": "Neuer Portalname",
"PortalRenamingMobile": "Geben Sie den Teil ein, der neben der onlyoffice.com/onlyoffice.eu Portal-Adresse angezeigt wird. Sei bemerkt: Ihre alte Portal-Adresse steht zu Verfügung für neue Benutzer, sobald Sie die Druckschalter Speichern klicken.",
"PortalRenamingSettingsTooltip": "<0>{{text}}</0> Geben Sie den Teil ein, der neben der onlyoffice.com/onlyoffice.eu Portal-Adresse angezeigt wird.",
"PortalRenamingMobile": "Geben Sie den Teil ein, der neben der Adresse des {{domain}}-Space erscheint. Bitte beachten Sie: sobald Sie auf die Schaltfläche Speichern klicken, ist Ihre alte Space-Adresse für neue Benutzer nicht mehr verfügbar.",
"PortalRenamingSettingsTooltip": "<0>{{text}}</0> Geben Sie den Teil ein, der neben der {{domain}} Portal-Adresse angezeigt wird.",
"ProductUserOpportunities": "Profile und Gruppen anschauen",
"RecoveryFileNotSelected": "Fehler bei der Wiederherstellung. Datei zur Wiederherstellung nicht ausgewählt.",
"RestoreBackup": "Datenwiederherstellung",
@ -178,7 +178,6 @@
"ThirdPartyPropsDeactivated": "Deaktivierung erfolgreich",
"ThirdPartyResource": "Ressource eines Drittanbieters",
"ThirdPartyResourceDescription": "Die Sicherungskopie kann in Ihrem Konto bei einem Drittanbieter (Dropbox, Box.com, OneDrive oder Google Drive) gespeichert werden. Sie müssen Ihr Konto (Dropbox, Box.com, OneDrive oder Google Drive) verbinden, bevor Sie Ihr Backup dort speichern können.",
"ThirdPartyStorage": "Drittanbieter",
"ThirdPartyStorageDescription": "Backups können auf einem Speicher eines Drittanbieters gespeichert werden. Zuvor müssen Sie den entsprechenden Dienst im Abschnitt 'Integration' verbinden. Andernfalls sind die folgenden Einstellungen nicht verfügbar",
"ThirdPartyTitleDescription": "Mit Berechtigungsschlüsseln können Sie Ihr Portal mit den Drittleistungen verbinden. Loggen Sie sich einfacher mit Facebook, Google oder LinkedIn. Fügen Sie Dropbox, OneDrive usw. hinzu, um mit dort gespeicherten Dateien aus dem Modul Dokumente zu arbeiten.",
"TimeZone": "Zeitzone",

View File

@ -7,7 +7,7 @@
"DeleteProfileConfirmation": "Προσοχή! Πρόκειται να διαγράψετε τον λογαριασμό σας.",
"DeleteProfileConfirmationInfo": "Κάνοντας κλικ στο \"Διαγραφή του λογαριασμού μου\" συμφωνείτε με την <1>πολιτική απορρήτου μας.</1>",
"DeleteProfileSuccessMessage": "Ο λογαριασμός σας διαγράφηκε επιτυχώς.",
"DeleteProfileSuccessMessageInfo": "Ανατρέξτε στην πολιτική απορρήτου μας για να μάθετε περισσότερα σχετικά με τη διαγραφή του λογαριασμού σας και των δεδομένων που σχετίζονται με αυτόν.",
"DeleteProfileSuccessMessageInfo": "Ανατρέξτε στην <1>πολιτική απορρήτου</1> μας για να μάθετε περισσότερα σχετικά με τη διαγραφή του λογαριασμού σας και των δεδομένων που σχετίζονται με αυτόν.",
"EmailAndPasswordCopiedToClipboard": "Το Email και ο κωδικός πρόσβασης αντιγράφηκαν στο πρόχειρο",
"EnterAppCodeDescription": "Εισαγάγετε τον 6ψήφιο κωδικό που δημιουργήθηκε από την εφαρμογή σας. Αν δεν έχετε πρόσβαση στο τηλέφωνό σας, χρησιμοποιήστε τους εφεδρικούς κωδικούς.",
"EnterAppCodeTitle": "Εισαγάγετε τον κωδικό από την εφαρμογή επαληθευτή",

View File

@ -20,9 +20,8 @@
"ThirdPartyStorageComboBoxPlaceholder": "Επιλέξτε αποθηκευτικό χώρο",
"ThirdPartyStorageDescription": "Χρησιμοποιήστε υπηρεσίες τρίτων ως χώρο αποθήκευσης δεδομένων για αυτό το δωμάτιο. Θα δημιουργηθεί ένας νέος φάκελος για την αποθήκευση των δεδομένων αυτού του δωματίου στον συνδεδεμένο αποθηκευτικό χώρο",
"ThirdPartyStorageNoStorageAlert": "Πριν, πρέπει να συνδέσετε την αντίστοιχη υπηρεσία στην ενότητα «Ενσωμάτωση». Διαφορετικά, η σύνδεση δεν θα είναι δυνατή.",
"ThirdPartyStoragePermanentSettingDescription": "Τα αρχεία αποθηκεύονται σε έναν αποθηκευτικό χώρο τρίτου μέρους {{thirdpartyTitle}} στον φάκελο «{{thirdpartyFolderName}}».\n<strong>{{thirdpartyPath}}</strong>",
"ThirdPartyStoragePermanentSettingDescription": "Τα αρχεία αποθηκεύονται σε έναν αποθηκευτικό χώρο τρίτου μέρους {{thirdpartyTitle}} στον φάκελο \"{{thirdpartyFolderName}}\".\n<strong>{{thirdpartyPath}}</strong>",
"ThirdPartyStorageRoomAdminNoStorageAlert": "Για να συνδέσετε έναν αποθηκευτικό χώρο τρίτου μέρους, πρέπει να προσθέσετε την αντίστοιχη υπηρεσία στην ενότητα «Ενσωμάτωση» των ρυθμίσεων του DocSpace. Επικοινωνήστε με τον ιδιοκτήτη ή τον διαχειριστή του DocSpace για να ενεργοποιήσετε την ενσωμάτωση.",
"ThirdPartyStorageTitle": "Αποθήκευση τρίτου μέρους",
"ViewOnlyRoomDescription": "Κοινή χρήση τυχόν έτοιμων εγγράφων, αναφορών, τεκμηρίωσης και άλλων αρχείων για προβολή.",
"ViewOnlyRoomTitle": "Δωμάτιο μόνο για προβολή"
}

View File

@ -6,11 +6,9 @@
"DeleteRooms": "Πρόκειται να διαγράψετε αυτά τα δωμάτια. Δεν θα μπορέσετε να τα επαναφέρετε.",
"MoveToTrashButton": "Μετακίνηση στον Κάδο απορριμμάτων",
"MoveToTrashFile": "Πρόκειται να διαγράψετε αυτό το αρχείο. Λάβετε υπόψη ότι αν το έχετε μοιραστεί με κάποιον, δεν θα είναι διαθέσιμο. Το αρχείο θα διαγραφεί οριστικά σε 30 ημέρες. Θέλετε σίγουρα να συνεχίσετε;",
"MoveToTrashFileFromPersonal": "Πρόκειται να διαγράψετε αυτό το αρχείο. Θέλετε σίγουρα να συνεχίσετε;",
"MoveToTrashFolder": "Πρόκειται να διαγράψετε αυτόν τον φάκελο. Λάβετε υπόψη ότι αν τον έχετε μοιραστεί με κάποιον, δεν θα είναι διαθέσιμος. Θέλετε σίγουρα να συνεχίσετε;",
"MoveToTrashFolderFromPersonal": "Πρόκειται να διαγράψετε αυτόν τον φάκελο. Θέλετε σίγουρα να συνεχίσετε;",
"MoveToTrashItems": "Πρόκειται να διαγράψετε αυτά τα στοιχεία. Λάβετε υπόψη ότι αν τα έχετε μοιραστεί με κάποιον, θα γίνουν μη διαθέσιμα. Θέλετε σίγουρα να συνεχίσετε;",
"MoveToTrashItemsFromPersonal": "Πρόκειται να διαγράψετε αυτά τα στοιχεία. Θέλετε σίγουρα να συνεχίσετε;",
"MoveToTrashTitle": "Μετακίνηση στον κάδο απορριμμάτων;",
"UnsubscribeButton": "Κατάργηση εγγραφής",
"UnsubscribeNote": "Θέλετε σίγουρα να καταργήσετε την εγγραφή σας από τα επιλεγμένα στοιχεία της λίστας;",

View File

@ -1,4 +1,5 @@
{
"DeleteOwnerRestrictionText": "Όντας ιδιοκτήτης αυτού του DocSpace, πρέπει να μεταβιβάσετε την ιδιοκτησία σε άλλον χρήστη πριν προβείτε σε διαγραφή του λογαριασμού σας. Επιλέξτε έναν νέο ιδιοκτήτη για να συνεχίσετε.",
"DeleteProfileInfo": "Στείλτε τις οδηγίες διαγραφής προφίλ στη διεύθυνση email",
"DeleteProfileTitle": "Διάλογος διαγραφής προφίλ"
}

View File

@ -1,3 +1,7 @@
{
"SaveOrChange": "Μειώστε την απαιτούμενη παράμετρο ή διατηρήστε το τρέχον τιμολογιακό σας πρόγραμμα."
"CannotChangePlan": "Δεν μπορείτε να αλλάξετε το πρόγραμμά σας επειδή ο χρησιμοποιούμενος όγκος αποθήκευσης ή ο αριθμός των διαχειριστών/χρηστών ισχύος υπερβαίνει τους περιορισμούς του επιλεγμένου προγράμματος:",
"ChangePricingPlan": "Αλλαγή προγράμματος τιμολόγησης",
"PlanStorageLimit": "Ο περιορισμός του νέου τιμολογίου είναι <1>{{storageValue}}</1> του αποθηκευτικού χώρου και ο τρέχων χρησιμοποιούμενος αποθηκευτικός χώρος σας είναι <1>{{currentStorageValue}}</1>.",
"PlanUsersLimit": "Επιθυμείτε να υποβαθμίσετε την ομάδα σε <1>{{usersCount}}</1> διαχειριστές/χρήστες ισχύος και ο τρέχων αριθμός τέτοιων χρηστών στο DocSpace σας είναι <1>{{currentUsersCount}}</1>.",
"SaveOrChange": "Εξαλείψτε την αναντιστοιχία στην αντικρουόμενη παράμετρο για να συνεχίσετε ή να διατηρήσετε το ενεργό σας πρόγραμμα τιμολόγησης."
}

View File

@ -1,7 +1,7 @@
{
"ChooseFormatText": "Επιλέξτε τη μορφή για κάθε αρχείο προς λήψη",
"ConvertMessage": "Εάν επιλέξετε να μετατρέψετε το αρχείο σε μορφή διαφορετική από την αρχική, ενδέχεται να χαθούν ορισμένα δεδομένα.",
"ConvertToZip": "Τα αρχεία θα συμπιεστούν στο αρχείο .zip",
"ConvertToZip": "Τα αρχεία θα συμπιεστούν στο <strong>αρχείο .zip</strong>",
"CustomFormat": "Προσαρμοσμένη μορφή",
"OriginalFormat": "Αρχική μορφή"
}

View File

@ -17,7 +17,7 @@
"CollaborationRooms": "Συνεργασία",
"ContainsSpecCharacter": "Ο τίτλος δεν μπορεί να περιέχει τους ακόλουθους χαρακτήρες: *+:\"<>?|/",
"Convert": "Μετατροπή",
"CopyItem": "Το <strong>{{{title}}</strong> αντιγράφηκε",
"CopyItem": "Το <strong>{{title}}</strong> αντιγράφηκε",
"CopyItems": "<strong> {{qty}} </strong> στοιχεία αντιγράφηκαν",
"CreateRoom": "Δημιουργία δωματίου",
"CustomRooms": "Προσαρμοσμένα",
@ -27,7 +27,6 @@
"EditRoom": "Επεξεργασία δωματίου",
"EmptyFile": "Κενό αρχείο",
"EmptyFilterDescriptionText": "Με αυτό το φίλτρο δεν ταιριάζει κανένα αρχείο ή φάκελος. Δοκιμάστε ένα διαφορετικό ή καταργήστε το φίλτρο για να δείτε όλα τα αρχεία.",
"EmptyFilterDescriptionTextRooms": "Δεν υπάρχουν δωμάτια που να ταιριάζουν σε αυτό το φίλτρο. Δοκιμάστε μια άλλη επιλογή ή καταργήστε το φίλτρο για να δείτε όλα τα δωμάτια.",
"EmptyFilterSubheadingText": "Δεν υπάρχουν αρχεία για εμφάνιση για αυτό το φίλτρο",
"EmptyFolderDecription": "Αποθέστε εδώ αρχεία ή δημιουργήστε νέα",
"EmptyFolderDescriptionUser": "Τα αρχεία και οι φάκελοι που ανεβάζουν οι διαχειριστές θα εμφανίζονται εδώ.",
@ -58,7 +57,7 @@
"MarkRead": "Σήμανση ως αναγνωσμένου",
"MarkedAsFavorite": "Προστέθηκε στα αγαπημένα",
"Media": "Πολυμέσα",
"MoveItem": "Το <strong>{{{title}}</strong> μετακινήθηκε",
"MoveItem": "Το <strong>{{title}}</strong> μετακινήθηκε",
"MoveItems": "<strong>{{qty}}</strong> στοιχεία έχουν μετακινηθεί",
"MoveOrCopy": "Μετακίνηση ή αντιγραφή",
"MoveTo": "Μετακίνηση σε",

View File

@ -26,6 +26,7 @@
"FeedUpdateUser": "έχει εκχωρηθεί ο ρόλος {{role}}",
"FileExtension": "Επέκταση αρχείου",
"FilesEmptyScreenText": "Δείτε εδώ λεπτομέρειες αρχείου και φακέλου",
"HistoryEmptyScreenText": "Το ιστορικό δραστηριοτήτων θα εμφανίζεται εδώ",
"ItemsSelected": "Επιλεγμένα στοιχεία",
"LastModifiedBy": "Τελευταία Τροποποίηση Από",
"PendingInvitations": "Εκκρεμείς προσκλήσεις",

View File

@ -11,7 +11,7 @@
"EnterWidth": "Εισαγάγετε πλάτος",
"FolderId": "Αναγνωριστικό φακέλου",
"FrameId": "Ταυτότητα πλαισίου",
"Header": "Επί κεφαλής",
"Header": "Κεφαλίδα",
"ItemsCount": "Τα στοιχεία μετράνε",
"JavascriptSdk": "Javascript sdk",
"Menu": "Μενού",

View File

@ -26,7 +26,6 @@
"Payer": "Πληρωτής",
"PayerDescription": "Αυτός ο χρήστης έχει πρόσβαση στα στοιχεία πληρωμής και είναι ο μόνος χρήστης που μπορεί να προσαρμόσει την ποσόστωση και να πραγματοποιήσει πληρωμές. Ο ιδιοκτήτης του DocSpace, καθώς και ο ίδιος ο διαχειριστής πληρωμών, μπορούν να αναθέσουν εκ νέου το ρόλο του διαχειριστή πληρωμών χρησιμοποιώντας την πύλη πελατών της Stripe.",
"PaymentOverdue": "Δεν είναι δυνατή η προσθήκη νέων χρηστών.",
"PowerUserDescription": "Οι χρήστες ισχύος μπορούν να δημιουργήσουν και να επεξεργαστούν αρχεία στο δωμάτιο, αλλά δεν μπορούν να δημιουργήσουν δωμάτια, να διαχειριστούν χρήστες ή να έχουν πρόσβαση στις ρυθμίσεις.",
"PriceCalculation": "Υπολογίστε την τιμή σας",
"QuotaPaidUserLimitError": "Έχει επιτευχθεί το όριο των χρηστών με πληρωμή. <1>Πληρωμές</1>",
"RenewSubscription": "Ανανεώστε τη συνδρομή στο πρόγραμμα {{planName}}",

View File

@ -16,7 +16,6 @@
"LogoutBtn": "Αποσύνδεση",
"LogoutDescription": "Σημείωση. Όλες οι ενεργές συνδέσεις θα τερματιστούν, εκτός από αυτήν τη σύνδεση, καθώς χρησιμοποιείται αυτήν τη στιγμή.",
"LogoutFrom": "Αποσύνδεση από {{platform}} {{browser}};",
"MessageEmailActivationInstuctionsSentOnEmail": "Οι οδηγίες ενεργοποίησης email έχουν σταλεί στη διεύθυνση email <strong>{{ email }}</strong>.",
"MyProfile": "Το προφίλ μου",
"ProviderSuccessfullyConnected": "Ο πάροχος συνδέθηκε επιτυχώς",
"ProviderSuccessfullyDisconnected": "Ο πάροχος αποσυνδέθηκε επιτυχώς",

View File

@ -1,6 +1,5 @@
{
"EmptyRoomsDescription": "Δημιουργήστε το πρώτο δωμάτιο στο «Τα δωμάτια μου».",
"EmptyRoomsHeader": "Δεν υπάρχουν ακόμα δωμάτια εδώ",
"RoomList": "Λίστα δωματίων",
"SearchEmptyRoomsDescription": "Δεν υπάρχουν δωμάτια που να ταιριάζουν σε αυτό το φίλτρο. Δοκιμάστε μια άλλη επιλογή ή καταργήστε το φίλτρο για να δείτε όλα τα δωμάτια."
"RoomList": "Λίστα δωματίων"
}

View File

@ -95,8 +95,8 @@
"IPSecurityHelper": "Μπορείτε να ορίσετε τις επιτρεπόμενες διευθύνσεις IP χρησιμοποιώντας είτε ακριβείς διευθύνσεις IP στη μορφή IPv4 (#.#.#.#.#, όπου # είναι μια αριθμητική τιμή από 0 έως 255) είτε εύρος IP (στη μορφή #.#.#.#.#-#.#.#.#.#.#).",
"IPSecurityWarningHelper": "Αρχικά, πρέπει να καθορίσετε την τρέχουσα IP σας ή την περιοχή IP στην οποία ανήκει η τρέχουσα διεύθυνση IP σας, διαφορετικά η πρόσβαση στον χώρο θα μπλοκαριστεί αμέσως μετά την αποθήκευση των ρυθμίσεων. Ο ιδιοκτήτης του χώρου θα έχει πρόσβαση στον χώρο από οποιαδήποτε διεύθυνση IP.",
"LanguageAndTimeZoneSettingsDescription": "Αλλάξτε τη γλώσσα για όλους τους χρήστες της πύλης και ρυθμίστε τη ζώνη ώρας, ώστε όλα τα συμβάντα της πύλης να εμφανίζονται με τη σωστή ημερομηνία και ώρα.",
"LanguageTimeSettingsTooltip": "<0>{{text}}</0>: είναι ένας τρόπος για να αλλάξετε τη γλώσσα ολόκληρης της πύλης για όλους τους χρήστες της πύλης και να ρυθμίσετε τη ζώνη ώρας, ώστε όλα τα γεγονότα της πύλης {{ organizationName }} να εμφανίζονται με τη σωστή ημερομηνία και ώρα",
"LanguageTimeSettingsTooltipDescription": "Για να τεθούν σε ισχύ οι παράμετροι που ορίσατε κάντε κλικ στο κουμπί <1>{{save}}</1> στο κάτω μέρος της ενότητας.<3>{{{learnMore}}</3>",
"LanguageTimeSettingsTooltip": "<0>{{text}}</0>: είναι ένας τρόπος για να αλλάξετε τη γλώσσα ολόκληρης της πύλης για όλους τους χρήστες της πύλης και να ρυθμίσετε τη ζώνη ώρας, ώστε όλα τα γεγονότα της πύλης {{ organizationName }} να εμφανίζονται με τη σωστή ημερομηνία και ώρα.",
"LanguageTimeSettingsTooltipDescription": "Για να τεθούν σε ισχύ οι παράμετροι που ορίσατε κάντε κλικ στο κουμπί <1>{{save}}</1> στο κάτω μέρος της ενότητας.<3>{{learnMore}}</3>",
"Lifetime": "Διάρκεια ζωής (λεπτά)",
"LimitThemesTooltip": "Μπορείτε να δημιουργήσετε μόνο 3 προσαρμοσμένα θέματα. Για να δημιουργήσετε ένα νέο, πρέπει να διαγράψετε ένα από τα προηγούμενα θέματα.",
"LocalFile": "Τοπικό αρχείο",
@ -121,7 +121,7 @@
"PasswordMinLenght": "Ελάχιστο μήκος συνθηματικού",
"Path": "Μονοπάτι",
"PleaseNote": "Έχετε υπόψιν",
"PleaseNoteDescription": "< 0>{{pleaseNote}}</0>: η παλιά διεύθυνση της πύλης σας θα γίνει διαθέσιμη στους νέους χρήστες μόλις κάνετε κλικ στο κουμπί <2>{{{save}}</2>.",
"PleaseNoteDescription": "< 0>{{pleaseNote}}</0>: η παλιά διεύθυνση της πύλης σας θα γίνει διαθέσιμη στους νέους χρήστες μόλις κάνετε κλικ στο κουμπί <2>{{save}}</2>.",
"Plugins": "Πρόσθετα",
"PortalAccess": "Πρόσβαση στην πύλη",
"PortalAccessSubTitle": "Αυτή η ενότητα σάς επιτρέπει να παρέχετε στους χρήστες ασφαλείς και βολικούς τρόπους πρόσβασης στην πύλη.",
@ -139,8 +139,8 @@
"PortalRenaming": "Μετονομασία πύλης",
"PortalRenamingDescription": "Εδώ μπορείτε να αλλάξετε τη διεύθυνση της πύλης σας.",
"PortalRenamingLabelText": "Νέο όνομα πύλης",
"PortalRenamingMobile": "Εισαγάγετε το μέρος που θα εμφανίζεται δίπλα στη διεύθυνση της πύλης onlyoffice.com/onlyoffice.eu. Σημείωση: η παλιά διεύθυνση της πύλης σας θα γίνει διαθέσιμη για τους νέους χρήστες μόλις κάνετε κλικ στο κουμπί Αποθήκευση.",
"PortalRenamingSettingsTooltip": "<0>{{text}}</0> Εισαγάγετε το μέρος που θα εμφανίζεται δίπλα στη διεύθυνση της πύλης onlyoffice.com/onlyoffice.eu.",
"PortalRenamingMobile": "Εισαγάγετε το μέρος που θα εμφανίζεται δίπλα στη διεύθυνση της πύλης {{domain}}. Σημείωση: η παλιά διεύθυνση της πύλης σας θα γίνει διαθέσιμη για τους νέους χρήστες μόλις κάνετε κλικ στο κουμπί Αποθήκευση.",
"PortalRenamingSettingsTooltip": "<0>{{text}}</0> Εισαγάγετε το μέρος που θα εμφανίζεται δίπλα στη διεύθυνση της πύλης {{domain}}.",
"ProductUserOpportunities": "Προβολή προφίλ και ομάδων",
"RecoveryFileNotSelected": "Σφάλμα ανάκτησης. Το αρχείο ανάκτησης δεν έχει επιλεγεί.",
"RestoreBackup": "Επαναφορά Δεδομένων",
@ -178,7 +178,6 @@
"ThirdPartyPropsDeactivated": "Απενεργοποιήθηκε με επιτυχία",
"ThirdPartyResource": "Πόρος τρίτου μέρους",
"ThirdPartyResourceDescription": "Το αντίγραφο ασφαλείας μπορεί να αποθηκευτεί στον λογαριασμό τρίτου μέρους σας (Dropbox, Box.com, OneDrive ή Google Drive). Πρέπει να συνδέσετε τον λογαριασμό τρίτου μέρους σας (Dropbox, Box.com, OneDrive ή Google Drive) πριν μπορέσετε να αποθηκεύσετε το αντίγραφο ασφαλείας σας εκεί.",
"ThirdPartyStorage": "Αποθήκευση τρίτων",
"ThirdPartyStorageDescription": "Το αντίγραφο ασφαλείας μπορεί να αποθηκευτεί σε αποθηκευτικό χώρο τρίτου μέρους. Πριν από αυτό, πρέπει να συνδέσετε την αντίστοιχη υπηρεσία στην ενότητα 'Ενοποίηση'. Διαφορετικά, οι παρακάτω ρυθμίσεις θα είναι ανενεργές.",
"ThirdPartyTitleDescription": "Με τα κλειδιά εξουσιοδότησης, μπορείτε να συνδέσετε υπηρεσίες τρίτων μερών στην πύλη σας. Συνδεθείτε εύκολα με το Facebook, το Google ή το LinkedIn, προσθέστε το Dropbox, το OneDrive κ.λπ. για να εργάζεστε με αρχεία που είναι αποθηκευμένα εκεί από την ενότητα Έγγραφα.",
"TimeZone": "Ζώνη ώρας",

View File

@ -5,7 +5,7 @@
"CopyExternalLink": "Αντιγραφή εξωτερικού συνδέσμου",
"CustomFilter": "Προσαρμοσμένο φίλτρο",
"DenyAccess": "Άρνηση πρόσβασης",
"EncryptedFileSharing": "Το αρχείο <strong>{{{title}}</strong> κοινοποιήθηκε επιτυχώς",
"EncryptedFileSharing": "Το αρχείο <strong>{{title}}</strong> κοινοποιήθηκε επιτυχώς",
"ExternalLink": "Εξωτερικός σύνδεσμος",
"FormFilling": "Συμπλήρωση εντύπων",
"InternalLink": "Εσωτερικός σύνδεσμος",

View File

@ -22,7 +22,6 @@
"ThirdPartyStorageNoStorageAlert": "Before, you need to connect the corresponding service in the “Integration” section. Otherwise, the connection will not be possible.",
"ThirdPartyStoragePermanentSettingDescription": "Files are stored in a third-party {{thirdpartyTitle}} storage in the \"{{thirdpartyFolderName}}\" folder.\n<strong>{{thirdpartyPath}}</strong>",
"ThirdPartyStorageRoomAdminNoStorageAlert": "To connect a third-party storage, you need to add the corresponding service in the Integration section of DocSpace settings. Contact DocSpace owner or administrator to enable the integration.",
"ThirdPartyStorageTitle": "Third-party storage",
"ViewOnlyRoomDescription": "Share any ready documents, reports, documentation, and other files for viewing.",
"ViewOnlyRoomTitle": "View-only room"
}

View File

@ -6,11 +6,9 @@
"DeleteRooms": "You are about to delete these rooms. You wont be able to restore them.",
"MoveToTrashButton": "Move to Trash",
"MoveToTrashFile": "You are about to delete this file. Please note that if you have shared it with someone, it will become unavailable. The file will be permanently deleted in 30 days. Are you sure you want to continue?",
"MoveToTrashFileFromPersonal": "You are about to delete this file. Are you sure you want to continue?",
"MoveToTrashFolder": "You are about to delete this folder. Please note that if you have shared it with someone, it will become unavailable. Are you sure you want to continue?",
"MoveToTrashFolderFromPersonal": "You are about to delete this folder. Are you sure you want to continue?",
"MoveToTrashItems": "You are about to delete these items. Please note that if you have shared them with someone, they will become unavailable. Are you sure you want to continue?",
"MoveToTrashItemsFromPersonal": "You are about to delete these items. Are you sure you want to continue?",
"MoveToTrashTitle": "Move to Trash?",
"UnsubscribeButton": "Unsubscribe",
"UnsubscribeNote": "Are you sure you want to unsubscribe from the selected items from the list?",

View File

@ -27,7 +27,6 @@
"EditRoom": "Edit room",
"EmptyFile": "Empty file",
"EmptyFilterDescriptionText": "No files or folders match this filter. Try a different one or clear filter to view all files. ",
"EmptyFilterDescriptionTextRooms": "No rooms match this filter. Try a different one or clear filter to view all rooms.",
"EmptyFilterSubheadingText": "No files to be displayed for this filter here",
"EmptyFolderDecription": "Drop files here or create new ones",
"EmptyFolderDescriptionUser": "Files and folders uploaded by admins will appeared here.",

View File

@ -7,7 +7,7 @@
"EnterCount": "Enter count",
"EnterHeight": "Enter height",
"EnterId": "Enter id",
"EnterPage": "Enter number page",
"EnterPage": "Enter page number",
"EnterWidth": "Enter width",
"FolderId": "Folder id",
"FrameId": "Frame id",

View File

@ -24,9 +24,8 @@
"ManagerTypesDescription": "Admin account types and their privileges",
"Pay": "Pay",
"Payer": "Payer",
"PayerDescription": "This user has access to payment details and is the only user who can adjust the quota and make payments. The DocSpace owner, as well as the paying manager themselves, can reassign the paying manger role using the Stripe customer portal.",
"PayerDescription": "This user has access to payment details and is the only user who can adjust the quota and make payments. The DocSpace owner, as well as the paying manager themselves, can reassign the paying manager role using the Stripe customer portal.",
"PaymentOverdue": "Cannot add new users.",
"PowerUserDescription": "Power users can create and edit files in the room, but can't create rooms, manage users, or access settings.",
"PriceCalculation": "Calculate your price",
"QuotaPaidUserLimitError": "The paid user limit has been reached. <1>Payments</1>",
"RenewSubscription": "Renew subscription to {{planName}} plan",

View File

@ -16,7 +16,6 @@
"LogoutBtn": "Log out",
"LogoutDescription": "Note. All active connections except this connection will be logged out, as it is currently in use.",
"LogoutFrom": "Log out from {{platform}} {{browser}} ?",
"MessageEmailActivationInstuctionsSentOnEmail": "The email activation instructions have been sent to the <strong>{{ email }}</strong> email address.",
"MyProfile": "My profile",
"ProviderSuccessfullyConnected": "Provider successfully connected",
"ProviderSuccessfullyDisconnected": "Provider successfully disconnected",

View File

@ -1,6 +1,5 @@
{
"EmptyRoomsDescription": "Please create the first room in My rooms.",
"EmptyRoomsHeader": "No rooms here yet",
"RoomList": "Room list",
"SearchEmptyRoomsDescription": "No rooms match this filter. Try a different one or clear filter to view all rooms."
"RoomList": "Room list"
}

View File

@ -121,14 +121,14 @@
"PasswordMinLenght": "Minimal password length",
"Path": "Path",
"PleaseNote": "Please note",
"PleaseNoteDescription": "<0>{{pleaseNote}}</0>: your old space address will become available to new users once you click the <2>{{save}}</2> button.",
"PleaseNoteDescription": "<0>{{pleaseNote}}</0>: your old space address will become unavailable to new users once you click the <2>{{save}}</2> button.",
"Plugins": "Plugins",
"PortalAccess": "Portal access",
"PortalAccess": "DocSpace access",
"PortalAccessSubTitle": "This section allows you to provide users with safe and convenient ways to access the space.",
"PortalDeactivation": "Deactivate DocSpace",
"PortalDeactivationDescription": "Use this option to deactivate your space temporarily.",
"PortalDeactivationHelper": "If you wish to deactivate this DocSpace, your space and all information associated with it will be blocked so that no one has access to it for a particular period. To do that, click the Deactivate button. A link to confirm the operation will be sent to the email address of the space owner.\nIn case you want to come back to the space and continue using it, you will need to use the second link provided in the confirmation email. So, please, keep this email in a safe place.",
"PortalDeletion": "Portal Deletion",
"PortalDeletion": "DocSpace Deletion",
"PortalDeletionDescription": "Use this option to delete your space permanently.",
"PortalDeletionEmailSended": "A link to confirm the operation has been sent to {{ownerEmail}} (the email address of the space owner).",
"PortalDeletionHelper": "If you do not think you will use the space and would like to delete your space permanently, submit your request using the Delete button. Please, keep in mind that you will not be able to reactivate your space or recover any information associated with it.",
@ -136,11 +136,11 @@
"PortalNameEmpty": "Account name is empty",
"PortalNameIncorrect": "Incorrect account name",
"PortalNameLength": "The account name must be between {{minLength}} and {{maxLength}} characters long",
"PortalRenaming": "Space Renaming",
"PortalRenaming": "DocSpace Renaming",
"PortalRenamingDescription": "Here you can change your space address.",
"PortalRenamingLabelText": "New space name",
"PortalRenamingMobile": "Enter the part that will appear next to the onlyoffice.io space address. Please note: your old space address will become available to new users once you click the Save button.",
"PortalRenamingSettingsTooltip": "<0>{{text}}</0> Enter the part that will appear next to the onlyoffice.io space address.",
"PortalRenamingMobile": "Enter the part that will appear next to the {{domain}} space address. Please note: your old space address will become unavailable to new users once you click the Save button.",
"PortalRenamingSettingsTooltip": "<0>{{text}}</0> Enter the part that will appear next to the {{domain}} space address.",
"ProductUserOpportunities": "View profiles and groups",
"RecoveryFileNotSelected": "Recovery error. Recovery file not selected.",
"RestoreBackup": "Restore",
@ -178,7 +178,6 @@
"ThirdPartyPropsDeactivated": "Deactivated successfully",
"ThirdPartyResource": "Third-party resource",
"ThirdPartyResourceDescription": "Backup can be saved to your third-party account (Dropbox, Box.com, OneDrive or Google Drive). You need to connect your third-party account (Dropbox, Box.com, OneDrive or Google Drive) before you will be able to save your backup there.",
"ThirdPartyStorage": "Third-party storage",
"ThirdPartyStorageDescription": "Backup can be saved to a third-party storage. Before, you need to connect the corresponding service in the 'Integration' section. Otherwise, the following settings will be inactive.",
"ThirdPartyTitleDescription": "With Authorization keys, you can connect third-party services to your space. Sign in easily with Facebook, Google, or LinkedIn. Add Dropbox, OneDrive, and other accounts to work with files stored there.",
"TimeZone": "Time zone",

View File

@ -6,7 +6,7 @@
"ChangeUser": "Cambiar usuario",
"DeactivateOrDeletePortal": "Desactivar o eliminar DocSpace",
"DoTheSame": "Haga lo mismo que los administradores",
"ManagePortal": "Gestionar la configuración del portal",
"ManagePortal": "Gestionar la configuración de DocSpace",
"ManageUser": "Gestionar las cuentas de usuarios",
"NewPortalOwner": "Nuevo propietario de DocSpace",
"PortalOwnerCan": "El propietario de DocSpace puede:",

View File

@ -22,7 +22,6 @@
"ThirdPartyStorageNoStorageAlert": "Sobre todo, debe conectar el servicio correspondiente en la sección \"Integración\". En caso contrario, la conexión no será posible.",
"ThirdPartyStoragePermanentSettingDescription": "Los archivos se guardan en el almacenamiento de terceros {{thirdpartyTitle}} en la carpeta \"{{thirdpartyFolderName}}\".\n<strong>{{thirdpartyPath}}</strong>",
"ThirdPartyStorageRoomAdminNoStorageAlert": "Para conectar un almacenamiento de terceros, debe añadir el servicio correspondiente en la sección Integración de la configuración de DocSpace. Póngase en contacto con el propietario o administrador de DocSpace para habilitar la integración.",
"ThirdPartyStorageTitle": "Almacenamiento de terceros",
"ViewOnlyRoomDescription": "Comparta cualquier documento, informe, documentación y otros archivos listos para su visualización.",
"ViewOnlyRoomTitle": "Sala de solo lectura"
}

View File

@ -6,11 +6,9 @@
"DeleteRooms": "Está a punto de eliminar estas salas. No podrá restaurarlas.",
"MoveToTrashButton": "Mover a la papelera",
"MoveToTrashFile": "Está a punto de eliminar este archivo. Por favor, tenga en cuenta que si lo ha compartido con alguien, dejará de estar disponible. El archivo se eliminará definitivamente en 30 días. ¿Está seguro de que desea continuar?",
"MoveToTrashFileFromPersonal": "Está a punto de eliminar este archivo. ¿Está seguro de que desea continuar?",
"MoveToTrashFolder": "Está a punto de eliminar esta carpeta. Por favor, tenga en cuenta que si la ha compartido con alguien, dejará de estar disponible. ¿Está seguro de que desea continuar?",
"MoveToTrashFolderFromPersonal": "Está a punto de eliminar esta carpeta. ¿Está seguro de que desea continuar?",
"MoveToTrashItems": "Está a punto de eliminar estos elementos. Por favor, tenga en cuenta que si los ha compartido con alguien, dejarán de estar disponibles. ¿Está seguro de que desea continuar?",
"MoveToTrashItemsFromPersonal": "Está a punto de eliminar estos elementos. ¿Está seguro de que desea continuar?",
"MoveToTrashTitle": "ver a la papelera?",
"UnsubscribeButton": "Cancelar suscripción",
"UnsubscribeNote": "¿Está seguro de que quiere cancelar la suscripción a los elementos seleccionados de la lista?",

View File

@ -2,6 +2,6 @@
"CannotChangePlan": "No puede cambiar su plan porque el volumen de almacenamiento utilizado o el número de administradores/usuarios avanzados excede las limitaciones del plan seleccionado:",
"ChangePricingPlan": "Cambiar el plan de precios",
"PlanStorageLimit": "La limitación de la nueva tarifa es <1>{{storageValue}}</1> de almacenamiento, y su almacenamiento usado actualmente es <1>{{currentStorageValue}}</1>.",
"PlanUsersLimit": "Desea cambiar el equipo a <1>{{usersCount}}</1> administradores/usuarios avanzados, y el número actual de tales usuarios en su DocSpace es <1>{currentUsersCount}}</1>.",
"PlanUsersLimit": "Desea cambiar el equipo a <1>{{usersCount}}</1> administradores/usuarios avanzados, y el número actual de tales usuarios en su DocSpace es <1>{{currentUsersCount}}</1>.",
"SaveOrChange": "Por favor, elimine la falta de coincidencia en el parámetro para proceder o mantener su plan de precios activo."
}

View File

@ -1,7 +1,7 @@
{
"ChooseFormatText": "Elija el formato de cada archivo que desea descargar",
"ConvertMessage": "Si usted decide convertir el archivo en un formato diferente al original, es posible que se pierdan algunos datos.",
"ConvertToZip": "Los archivos se comprimirán en el archivo .zip",
"ConvertToZip": "Los archivos se comprimirán en el <strong>archivo .zip</strong>",
"CustomFormat": "Formato personalizado",
"OriginalFormat": "Formato original"
}

View File

@ -27,7 +27,6 @@
"EditRoom": "Editar sala",
"EmptyFile": "Archivo vacío",
"EmptyFilterDescriptionText": "Ningún archivo o carpeta coincide con este filtro. Pruebe con otro o borre el filtro para ver todos los archivos. ",
"EmptyFilterDescriptionTextRooms": "No hay salas que coincidan con este filtro. Pruebe con otro o borre el filtro para ver todas las salas.",
"EmptyFilterSubheadingText": "No hay archivos que se muestren para este filtro aquí",
"EmptyFolderDecription": "Coloque los archivos aquí o cree otros nuevos",
"EmptyFolderDescriptionUser": "Los archivos y carpetas subidos por los administradores aparecerán aquí.",

View File

@ -1,22 +1,22 @@
{
"Ascending": "Ascendente",
"CopyWindowCode": "Copiar el código de incrustación de la ventana",
"DataDisplay": "Configuración de visualización de datos",
"Descending": "Descendiendo",
"DataDisplay": "Configuración de la visualización de datos",
"Descending": "Descendente",
"Destroy": "Destruir",
"EnterCount": "Ingresar cuenta",
"EnterHeight": "Ingrese la altura",
"EnterId": "Ingrese ID",
"EnterPage": "Introduzca el número de página",
"EnterWidth": "Introducir ancho",
"FolderId": "Identificación de la carpeta",
"FrameId": "Identificación del marco",
"Header": "Encabezamiento",
"ItemsCount": "Cuenta de artículos",
"JavascriptSdk": "SDK de Javascript",
"EnterCount": "Especificar recuento",
"EnterHeight": "Introducir altura",
"EnterId": "Introducir id",
"EnterPage": "Introducir número de la página",
"EnterWidth": "Especificar ancho",
"FolderId": "Id de la carpeta",
"FrameId": "Id del marco",
"Header": "Encabezado",
"ItemsCount": "Recuento de elementos",
"JavascriptSdk": "Sdk de Javascript",
"Menu": "Menú",
"Page": "Página",
"SearchTerm": "Término de búsqueda",
"SortOrder": "Orden de clasificación",
"SortOrder": "Criterio de ordenación",
"WindowParameters": "Parámetros de la ventana"
}

View File

@ -26,7 +26,6 @@
"Payer": "Pagador",
"PayerDescription": "Este usuario tiene acceso a los detalles de pago y es el único que puede ajustar la cuota y realizar pagos. El propietario de DocSpace, así como el propio gestor de pagos, pueden reasignar el rol de gestor de pagos mediante el portal de cliente de Stripe.",
"PaymentOverdue": "No se puede añadir nuevos usuarios.",
"PowerUserDescription": "Los usuarios avanzados pueden crear y editar archivos en la sala, pero no pueden crear salas, gestionar usuarios ni acceder a la configuración.",
"PriceCalculation": "Calcule su precio",
"QuotaPaidUserLimitError": "Se ha alcanzado el límite de usuarios de pago. <1>Pagos</1>",
"RenewSubscription": "Renovar suscripción al plan {{planName}}",
@ -38,7 +37,7 @@
"UpgradeNow": "Actualizar ahora",
"UpgradePlan": "Actualizar plan",
"UpgradePlanInfo": "La adición de nuevos usuarios excederá el número máximo de miembros de la sala permitidos por su plan de precios actual.",
"UserNotFound": "No se ha encontrado el usuario <1>{{email}}</1.",
"UserNotFound": "No se ha encontrado el usuario <1>{{email}}</1>.",
"UserNotFoundMatchingEmail": "No hemos podido encontrar al usuario con el correo electrónico de Stripe correspondiente.",
"YourPrice": "Su precio"
}

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