diff --git a/.docker/.gitkeep b/.docker/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.docker/build/.gitkeep b/.docker/build/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.docker/config/.gitkeep b/.docker/config/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.docker/database/mongo/data/.gitkeep b/.docker/database/mongo/data/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.docker/database/postgresql/data/.gitkeep b/.docker/database/postgresql/data/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.docker/database/redis/data/.gitkeep b/.docker/database/redis/data/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.docker/public/uploads/.gitkeep b/.docker/public/uploads/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 16fc4a0de0..67aee91b9a 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -21,8 +21,6 @@ jobs: steps: - uses: actions/checkout@v4 - with: - fetch-depth: 0 - name: Set up QEMU uses: docker/setup-qemu-action@v3 @@ -37,6 +35,9 @@ jobs: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Get current date in NST + run: echo "CURRENT_DATE_NST=$(date +'%Y%m%d-%H%M%S' -d '-3 hours -30 minutes')" >> $GITHUB_ENV + - name: Docker meta id: meta uses: docker/metadata-action@v5 @@ -48,12 +49,22 @@ jobs: type=semver,pattern={{major}}.x type=raw,value=latest,enable={{is_default_branch}} type=ref,event=branch,enable=${{ github.event.repository.default_branch != github.ref }} + type=raw,value=${{ env.CURRENT_DATE_NST }} + flavor: | + latest=true + + - name: Cache node_modules + id: cache-node-modules + uses: actions/cache@v4 + with: + path: var-cache-node-modules + key: var-cache-node-modules-${{ hashFiles('Dockerfile', 'install/package.json') }} - name: Build and push Docker images uses: docker/build-push-action@v5 with: cache-from: type=gha - cache-to: type=gha,mode=max + cache-to: type=gha,mode=min context: . file: ./Dockerfile platforms: linux/amd64,linux/arm64,linux/arm/v7 diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 0733c4d02f..b2a52caf42 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -63,7 +63,7 @@ jobs: - 5432:5432 redis: - image: 'redis:7.2.3' + image: 'redis:7.2.4' # Set health checks to wait until redis has started options: >- --health-cmd "redis-cli ping" @@ -192,7 +192,7 @@ jobs: run: npm run coverage - name: Test coverage - uses: coverallsapp/github-action@3dfc5567390f6fa9267c0ee9c251e4c8c3f18949 # v2.2.3 + uses: coverallsapp/github-action@643bc377ffa44ace6394b2b5d0d3950076de9f63 # v2.3.0 if: matrix.coverage with: github-token: ${{ secrets.GITHUB_TOKEN }} @@ -206,7 +206,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Coveralls Finished - uses: coverallsapp/github-action@3dfc5567390f6fa9267c0ee9c251e4c8c3f18949 # v2.2.3 + uses: coverallsapp/github-action@643bc377ffa44ace6394b2b5d0d3950076de9f63 # v2.3.0 with: github-token: ${{ secrets.GITHUB_TOKEN }} parallel-finished: true diff --git a/.gitignore b/.gitignore index 887ef337b0..42a1b3c705 100644 --- a/.gitignore +++ b/.gitignore @@ -71,4 +71,5 @@ package-lock.json link-plugins.sh test.sh -.docker/ \ No newline at end of file +.docker/** +!**/.gitkeep \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e8fc4fdb1..cf08b1240e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,57 @@ +#### v3.7.5 (2024-05-03) + +##### Chores + +* incrementing version number - v3.7.4 (6678744c) +* update changelog for v3.7.4 (8a1b281b) +* incrementing version number - v3.7.3 (2d62b6f6) +* incrementing version number - v3.7.2 (cc257e7e) +* incrementing version number - v3.7.1 (712365a5) +* incrementing version number - v3.7.0 (9a6153d7) +* incrementing version number - v3.6.7 (86a17e38) +* incrementing version number - v3.6.6 (6604bf37) +* incrementing version number - v3.6.5 (6c653625) +* incrementing version number - v3.6.4 (83d131b4) +* incrementing version number - v3.6.3 (fc7d2bfd) +* incrementing version number - v3.6.2 (0f577a57) +* incrementing version number - v3.6.1 (f1a69468) +* incrementing version number - v3.6.0 (4cdf85f8) +* incrementing version number - v3.5.3 (ed0e8783) +* incrementing version number - v3.5.2 (52fbb2da) +* incrementing version number - v3.5.1 (4c543488) +* incrementing version number - v3.5.0 (d06fb4f0) +* incrementing version number - v3.4.3 (5c984250) +* incrementing version number - v3.4.2 (3f0dac38) +* incrementing version number - v3.4.1 (01e69574) +* incrementing version number - v3.4.0 (fd9247c5) +* incrementing version number - v3.3.9 (5805e770) +* incrementing version number - v3.3.8 (a5603565) +* incrementing version number - v3.3.7 (b26f1744) +* incrementing version number - v3.3.6 (7fb38792) +* incrementing version number - v3.3.4 (a67f84ea) +* incrementing version number - v3.3.3 (f94d239b) +* incrementing version number - v3.3.2 (ec9dac97) +* incrementing version number - v3.3.1 (151cc68f) +* incrementing version number - v3.3.0 (fc1ad70f) +* incrementing version number - v3.2.3 (b06d3e63) +* incrementing version number - v3.2.2 (758ecfcd) +* incrementing version number - v3.2.1 (20145074) +* incrementing version number - v3.2.0 (9ecac38e) +* incrementing version number - v3.1.7 (0b4e81ab) +* incrementing version number - v3.1.6 (b3a3b130) +* incrementing version number - v3.1.5 (ec19343a) +* incrementing version number - v3.1.4 (2452783c) +* incrementing version number - v3.1.3 (3b4e9d3f) +* incrementing version number - v3.1.2 (40fa3489) +* incrementing version number - v3.1.1 (40250733) +* incrementing version number - v3.1.0 (0cb386bd) +* incrementing version number - v3.0.1 (26f6ea49) +* incrementing version number - v3.0.0 (224e08cd) + +##### Bug Fixes + +* #12543, use PATCH (420c8999) + #### v3.7.4 (2024-04-17) ##### Chores diff --git a/Dockerfile b/Dockerfile index 14f61d3ada..9778513430 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,51 +1,74 @@ -FROM --platform=$BUILDPLATFORM node:lts as npm +FROM node:lts as build -RUN mkdir -p /usr/src/build && \ - chown -R node:node /usr/src/build -WORKDIR /usr/src/build +ENV NODE_ENV=production \ + DAEMON=false \ + SILENT=false \ + USER=nodebb \ + UID=1001 \ + GID=1001 -ARG NODE_ENV -ENV NODE_ENV $NODE_ENV +WORKDIR /usr/src/app/ -COPY --chown=node:node install/package.json /usr/src/build/package.json +COPY . /usr/src/app/ -USER node +# Install corepack to allow usage of other package managers +RUN corepack enable + +# Removing unnecessary files for us +RUN find . -mindepth 1 -maxdepth 1 -name '.*' ! -name '.' ! -name '..' -exec bash -c 'echo "Deleting {}"; rm -rf {}' \; + +# Prepage package.json +RUN cp /usr/src/app/install/package.json /usr/src/app/ + +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive \ + apt-get -y --no-install-recommends install \ + tini + +RUN groupadd --gid ${GID} ${USER} \ + && useradd --uid ${UID} --gid ${GID} --home-dir /usr/src/app/ --shell /bin/bash ${USER} \ + && chown -R ${USER}:${USER} /usr/src/app/ + +USER ${USER} RUN npm install --omit=dev + # TODO: generate lockfiles for each package manager + ## pnpm import \ -FROM node:lts as rebuild +FROM node:lts-slim AS final -ARG BUILDPLATFORM -ARG TARGETPLATFORM +ENV NODE_ENV=production \ + DAEMON=false \ + SILENT=false \ + USER=nodebb \ + UID=1001 \ + GID=1001 -RUN mkdir -p /usr/src/build && \ - chown -R node:node /usr/src/build +WORKDIR /usr/src/app/ -COPY --from=npm /usr/src/build /usr/src/build +COPY --from=build --chown=${USER}:${USER} /usr/src/app/ /usr/src/app/install/docker/setup.json /usr/src/app/ +COPY --from=build --chown=${USER}:${USER} /usr/bin/tini /usr/src/app/install/docker/entrypoint.sh /usr/local/bin/ -RUN if [ $BUILDPLATFORM != $TARGETPLATFORM ]; then \ - npm rebuild && \ - npm cache clean --force; fi +RUN corepack enable \ + && groupadd --gid ${GID} ${USER} \ + && useradd --uid ${UID} --gid ${GID} --home-dir /usr/src/app/ --shell /bin/bash ${USER} \ + && mkdir -p /usr/src/app/logs/ /opt/config/ \ + && chown -R ${USER}:${USER} /usr/src/app/ /opt/config/ \ + && chmod +x /usr/local/bin/entrypoint.sh \ + && chmod +x /usr/local/bin/tini -FROM node:lts-slim as run +# TODO: Have docker-compose use environment variables to create files like setup.json and config.json. +# COPY --from=hairyhenderson/gomplate:stable /gomplate /usr/local/bin/gomplate -ARG NODE_ENV -ENV NODE_ENV=$NODE_ENV \ - daemon=false \ - silent=false - -RUN mkdir -p /usr/src/app && \ - chown -R node:node /usr/src/app - -COPY --chown=node:node --from=rebuild /usr/src/build /usr/src/app - - -WORKDIR /usr/src/app - -USER node - -COPY --chown=node:node . /usr/src/app +USER ${USER} EXPOSE 4567 -VOLUME ["/usr/src/app/node_modules", "/usr/src/app/build", "/usr/src/app/public/uploads", "/opt/config"] -ENTRYPOINT ["./install/docker/entrypoint.sh"] \ No newline at end of file + +VOLUME ["/usr/src/app/node_modules", "/usr/src/app/build", "/usr/src/app/public/uploads", "/opt/config/"] + +# Utilising tini as our init system within the Docker container for graceful start-up and termination. +# Tini serves as an uncomplicated init system, adept at managing the reaping of zombie processes and forwarding signals. +# This approach is crucial to circumvent issues with unmanaged subprocesses and signal handling in containerised environments. +# By integrating tini, we enhance the reliability and stability of our Docker containers. +# Ensures smooth start-up and shutdown processes, and reliable, safe handling of signal processing. +ENTRYPOINT ["tini", "--", "entrypoint.sh"] \ No newline at end of file diff --git a/dev.Dockerfile b/dev.Dockerfile new file mode 100644 index 0000000000..a2b3867ed5 --- /dev/null +++ b/dev.Dockerfile @@ -0,0 +1,76 @@ +FROM node:lts AS git + +ENV USER=nodebb \ + UID=1001 \ + GID=1001 + +WORKDIR /usr/src/app/ + +RUN groupadd --gid ${GID} ${USER} \ + && useradd --uid ${UID} --gid ${GID} --home-dir /usr/src/app/ --shell /bin/bash ${USER} \ + && chown -R ${USER}:${USER} /usr/src/app/ + +RUN apt-get update \ + && apt-get -y --no-install-recommends install tini + +USER ${USER} + +# Change to the git branch you want to test +RUN git clone --recurse-submodules -j8 --depth 1 https://github.com/NodeBB/NodeBB.git . + +RUN find . -mindepth 1 -maxdepth 1 -name '.*' ! -name '.' ! -name '..' -exec bash -c 'echo "Deleting {}"; rm -rf {}' \; + +FROM node:lts AS node_modules_touch + +ENV NODE_ENV=development \ + USER=nodebb \ + UID=1001 \ + GID=1001 + +WORKDIR /usr/src/app/ + +RUN corepack enable \ + && groupadd --gid ${GID} ${USER} \ + && useradd --uid ${UID} --gid ${GID} --home-dir /usr/src/app/ --shell /bin/bash ${USER} \ + && chown -R ${USER}:${USER} /usr/src/app/ + +COPY --from=git --chown=${USER}:${USER} /usr/src/app/install/package.json /usr/src/app/ + +USER ${USER} + +RUN npm install + +FROM node:lts-slim AS final + +ENV NODE_ENV=development \ + DAEMON=false \ + SILENT=false \ + USER=nodebb \ + UID=1001 \ + GID=1001 + +WORKDIR /usr/src/app/ + +COPY --from=build --chown=${USER}:${USER} /usr/src/app/ /usr/src/app/install/docker/setup.json /usr/src/app/ +COPY --from=build --chown=${USER}:${USER} /usr/bin/tini /usr/src/app/install/docker/entrypoint.sh /usr/local/bin/ +COPY --from=node_modules_touch --chown=${USER}:${USER} /usr/src/app/ /usr/src/app/ +COPY --from=git --chown=${USER}:${USER} /usr/src/app/ /usr/src/app/ + +RUN corepack enable \ + && groupadd --gid ${GID} ${USER} \ + && useradd --uid ${UID} --gid ${GID} --home-dir /usr/src/app/ --shell /bin/bash ${USER} \ + && mkdir -p /usr/src/app/logs/ /opt/config/ \ + && chown -R ${USER}:${USER} /usr/src/app/ /opt/config/ \ + && chmod +x /usr/local/bin/entrypoint.sh \ + && chmod +x /usr/local/bin/tini + +# TODO: Have docker-compose use environment variables to create files like setup.json and config.json. +# COPY --from=hairyhenderson/gomplate:stable /gomplate /usr/local/bin/gomplate + +USER ${USER} + +EXPOSE 4567 + +VOLUME ["/usr/src/app/node_modules", "/usr/src/app/build", "/usr/src/app/public/uploads", "/opt/config/"] + +ENTRYPOINT ["tini", "--", "entrypoint.sh"] \ No newline at end of file diff --git a/docker-compose-pgsql.yml b/docker-compose-pgsql.yml new file mode 100644 index 0000000000..64619e4c0f --- /dev/null +++ b/docker-compose-pgsql.yml @@ -0,0 +1,70 @@ +version: '3.8' + +services: + nodebb: + build: . + # image: ghcr.io/nodebb/nodebb:latest + restart: unless-stopped + ports: + - '4567:4567' # comment this out if you don't want to expose NodeBB to the host, or change the first number to any port you want + volumes: + - nodebb-build:/usr/src/app/build + - nodebb-uploads:/usr/src/app/public/uploads + - nodebb-config:/opt/config + - ./install/docker/setup.json:/usr/src/app/setup.json + + postgres: + image: postgres:16.3-alpine + restart: unless-stopped + environment: + POSTGRES_USER: nodebb + POSTGRES_PASSWORD: nodebb + POSTGRES_DB: nodebb + volumes: + - postgres-data:/var/lib/postgresql/data + + redis: + image: redis:7.2.4-alpine + restart: unless-stopped + command: ['redis-server', '--appendonly', 'yes', '--loglevel', 'warning'] + # command: ["redis-server", "--save", "60", "1", "--loglevel", "warning"] # uncomment if you want to use snapshotting instead of AOF + volumes: + - redis-data:/data + profiles: + - redis + +volumes: + postgres-data: + driver: local + driver_opts: + o: bind + type: none + device: ./.docker/database/postgresql/data + + redis-data: + driver: local + driver_opts: + o: bind + type: none + device: ./.docker/database/redis + + nodebb-build: + driver: local + driver_opts: + o: bind + type: none + device: ./.docker/build + + nodebb-uploads: + driver: local + driver_opts: + o: bind + type: none + device: ./.docker/public/uploads + + nodebb-config: + driver: local + driver_opts: + o: bind + type: none + device: ./.docker/config diff --git a/docker-compose-redis.yml b/docker-compose-redis.yml new file mode 100644 index 0000000000..7d6ddf09ca --- /dev/null +++ b/docker-compose-redis.yml @@ -0,0 +1,51 @@ +version: '3.8' + +services: + nodebb: + build: . + # image: ghcr.io/nodebb/nodebb:latest + restart: unless-stopped + ports: + - '4567:4567' # comment this out if you don't want to expose NodeBB to the host, or change the first number to any port you want + volumes: + - nodebb-build:/usr/src/app/build + - nodebb-uploads:/usr/src/app/public/uploads + - nodebb-config:/opt/config + - ./install/docker/setup.json:/usr/src/app/setup.json + + redis: + image: redis:7.2.4-alpine + restart: unless-stopped + command: ['redis-server', '--appendonly', 'yes', '--loglevel', 'warning'] + # command: ["redis-server", "--save", "60", "1", "--loglevel", "warning"] # uncomment if you want to use snapshotting instead of AOF + volumes: + - redis-data:/data + +volumes: + redis-data: + driver: local + driver_opts: + o: bind + type: none + device: ./.docker/database/redis + + nodebb-build: + driver: local + driver_opts: + o: bind + type: none + device: ./.docker/build + + nodebb-uploads: + driver: local + driver_opts: + o: bind + type: none + device: ./.docker/public/uploads + + nodebb-config: + driver: local + driver_opts: + o: bind + type: none + device: ./.docker/config diff --git a/docker-compose.yml b/docker-compose.yml index fe20dcdc18..0742c437a6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,53 +3,89 @@ version: '3.8' services: nodebb: build: . + # image: ghcr.io/nodebb/nodebb:latest restart: unless-stopped ports: - - "4567:4567/tcp" # comment this out if you don't want to expose NodeBB to the host, or change the first number to any port you want - # uncomment if you want to use another container as a reverse proxy - # expose: - # - 4567 + - '4567:4567' # comment this out if you don't want to expose NodeBB to the host, or change the first number to any port you want volumes: - - ./.docker/build:/usr/src/app/build - - ./.docker/public/uploads:/usr/src/app/public/uploads - - ./.docker:/opt/config + - nodebb-build:/usr/src/app/build + - nodebb-uploads:/usr/src/app/public/uploads + - nodebb-config:/opt/config - ./install/docker/setup.json:/usr/src/app/setup.json + mongo: - image: "mongo:7-jammy" + image: 'mongo:7-jammy' restart: unless-stopped - expose: - - "27017" + ports: + - '27017:27017' environment: MONGO_INITDB_ROOT_USERNAME: nodebb MONGO_INITDB_ROOT_PASSWORD: nodebb MONGO_INITDB_DATABASE: nodebb volumes: - - ./.docker/database/mongo/config:/etc/mongo - - ./.docker/database/mongo/data:/data/db + - mongo-data:/data/db - ./install/docker/mongodb-user-init.js:/docker-entrypoint-initdb.d/user-init.js - profiles: - - mongo - postgres: - image: postgres:16.2-alpine + redis: + image: redis:7.2.4-alpine + restart: unless-stopped + command: ['redis-server', '--appendonly', 'yes', '--loglevel', 'warning'] + # command: ['redis-server', '--save', '60', '1', '--loglevel', 'warning'] # uncomment if you want to use snapshotting instead of AOF + volumes: + - redis-data:/data + profiles: + - redis + + postgres: + image: postgres:16.1-alpine restart: unless-stopped - expose: - - "5432" environment: POSTGRES_USER: nodebb POSTGRES_PASSWORD: nodebb POSTGRES_DB: nodebb volumes: - - ./.docker/database/postgresql/data:/var/lib/postgresql/data + - postgres-data:/var/lib/postgresql/data profiles: - postgres - redis: - image: redis:7.2.3-alpine - restart: unless-stopped - command: ["redis-server", "--appendonly", "yes", "--loglevel", "warning"] - # command: ["redis-server", "--save", "60", "1", "--loglevel", "warning"] # uncomment if you want to use snapshotting instead of AOF - expose: - - "6379" - volumes: - - ./.docker/database/redis:/data - profiles: - - redis \ No newline at end of file + +volumes: + mongo-data: + driver: local + driver_opts: + o: bind + type: none + device: ./.docker/database/mongo/data + + redis-data: + driver: local + driver_opts: + o: bind + type: none + device: ./.docker/database/redis + + postgres-data: + driver: local + driver_opts: + o: bind + type: none + device: ./.docker/database/postgresql/data + + nodebb-build: + driver: local + driver_opts: + o: bind + type: none + device: ./.docker/build + + nodebb-uploads: + driver: local + driver_opts: + o: bind + type: none + device: ./.docker/public/uploads + + nodebb-config: + driver: local + driver_opts: + o: bind + type: none + device: ./.docker/config diff --git a/install/docker/entrypoint.sh b/install/docker/entrypoint.sh index e5b2036321..dd17d707e7 100755 --- a/install/docker/entrypoint.sh +++ b/install/docker/entrypoint.sh @@ -1,46 +1,198 @@ #!/bin/bash -export CONFIG_DIR="${CONFIG_DIR:-/opt/config}" -export CONFIG=$CONFIG_DIR/config.json -export FORCE_BUILD_BEFORE_START="${FORCE_BUILD_BEFORE_START:-false}" +set -e -# Supported verbs: install (web install), setup (interactive CLI session). Default: web install -# TODO: constraint it using a hash set (or hash table) -export NODEBB_INIT_VERB="${NODEBB_INIT_VERB:-install}" -# Setup variable for backward compatibility, default: -export SETUP="${SETUP:-}" +# Function to set default values for environment variables +set_defaults() { + export CONFIG_DIR="${CONFIG_DIR:-/opt/config}" + export CONFIG="$CONFIG_DIR/config.json" + export NODEBB_INIT_VERB="${NODEBB_INIT_VERB:-install}" + export NODEBB_BUILD_VERB="${NODEBB_BUILD_VERB:-build}" + export START_BUILD="${START_BUILD:-${FORCE_BUILD_BEFORE_START:-false}}" + export SETUP="${SETUP:-}" + export PACKAGE_MANAGER="${PACKAGE_MANAGER:-npm}" + export OVERRIDE_UPDATE_LOCK="${OVERRIDE_UPDATE_LOCK:-false}" +} -mkdir -p $CONFIG_DIR - -# if the folder is mounted as a volume this can fail, the check below is to ensure there is still write access -chmod -fR 760 $CONFIG_DIR 2> /dev/null - -if [[ ! -w $CONFIG_DIR ]]; then - echo "panic: no write permission for $CONFIG_DIR" - exit 1 -fi - -[[ -f $CONFIG_DIR/package.json ]] || cp install/package.json $CONFIG_DIR/package.json -[[ -f $CONFIG_DIR/package-lock.json ]] || touch $CONFIG_DIR/package-lock.json - -ln -fs $CONFIG_DIR/package.json package.json -ln -fs $CONFIG_DIR/package-lock.json package-lock.json - -npm install --omit=dev - -if [[ -n $SETUP ]]; then - echo "Setup environmental variable detected" - echo "Starting setup session" - ./nodebb setup --config=$CONFIG -elif [ -f $CONFIG ]; then - echo "Config file exist at $CONFIG, assuming it is a valid config" - echo "Starting forum" - if [ "$FORCE_BUILD_BEFORE_START" = true ]; then - ./nodebb build --config=$CONFIG +# Function to check if a directory exists and is writable +check_directory() { + local dir="$1" + if [ ! -d "$dir" ]; then + echo "Error: Directory $dir does not exist. Creating..." + mkdir -p "$dir" || { + echo "Error: Failed to create directory $dir" + exit 1 + } fi - ./nodebb start --config=$CONFIG -else - echo "Config file not found at $CONFIG" + if [ ! -w "$dir" ]; then + echo "Warning: No write permission for directory $dir, attempting to fix..." + chown -R $USER:$USER "$dir" || true # attempt to change ownership, do not exit on failure + chmod -R 760 "$dir" || true # attempt to change permissions, do not exit on failure + if [ ! -w "$dir" ]; then + echo "Error: No write permission for directory $dir. Exiting..." + exit 1 + fi + fi +} + +# Function to copy or link package.json and lock files based on package manager +copy_or_link_files() { + local src_dir="$1" + local dest_dir="$2" + local package_manager="$3" + local lock_file + + case "$package_manager" in + yarn) lock_file="yarn.lock" ;; + npm) lock_file="package-lock.json" ;; + pnpm) lock_file="pnpm-lock.yaml" ;; + *) + echo "Unknown package manager: $package_manager" + exit 1 + ;; + esac + + # Check if source and destination files are the same + if [ "$(realpath "$src_dir/package.json")" != "$(realpath "$dest_dir/package.json")" ] || [ "$OVERRIDE_UPDATE_LOCK" = true ]; then + cp "$src_dir/package.json" "$dest_dir/package.json" + fi + + if [ "$(realpath "$src_dir/$lock_file")" != "$(realpath "$dest_dir/$lock_file")" ] || [ "$OVERRIDE_UPDATE_LOCK" = true ]; then + cp "$src_dir/$lock_file" "$dest_dir/$lock_file" + fi + + # Remove unnecessary lock files in src_dir + rm -f "$src_dir/"{yarn.lock,package-lock.json,pnpm-lock.yaml} + + # Symbolically link the copied files in src_dir to dest_dir + ln -fs "$dest_dir/package.json" "$src_dir/package.json" + ln -fs "$dest_dir/$lock_file" "$src_dir/$lock_file" +} + +# Function to install dependencies using pnpm +install_dependencies() { + case "$PACKAGE_MANAGER" in + yarn) yarn install || { + echo "Failed to install dependencies with yarn" + exit 1 + } ;; + npm) npm install || { + echo "Failed to install dependencies with npm" + exit 1 + } ;; + pnpm) pnpm install || { + echo "Failed to install dependencies with pnpm" + exit 1 + } ;; + *) + echo "Unknown package manager: $PACKAGE_MANAGER" + exit 1 + ;; + esac +} + +# Function to start setup session +start_setup_session() { + local config="$1" + echo "Starting setup session" + exec /usr/src/app/nodebb setup --config="$config" +} + +# Handle building and upgrading NodeBB +build_forum() { + local config="$1" + local start_build="$2" + local package_hash=$(md5sum install/package.json | head -c 32) + if [ "$package_hash" = "$(cat $CONFIG_DIR/install_hash.md5 || true)" ]; then + echo "package.json was updated. Upgrading..." + /usr/src/app/nodebb upgrade --config="$config" || { + echo "Failed to build NodeBB. Exiting..." + exit 1 + } + elif [ "$start_build" = true ]; then + echo "Build before start is enabled. Building..." + /usr/src/app/nodebb "${NODEBB_BUILD_VERB}" --config="$config" || { + echo "Failed to build NodeBB. Exiting..." + exit 1 + } + else + echo "No changes in package.json. Skipping build..." + return + fi + echo -n $package_hash > $CONFIG_DIR/install_hash.md5 +} + + +# Function to start forum +start_forum() { + local config="$1" + local start_build="$2" + + build_forum "$config" "$start_build" + + case "$PACKAGE_MANAGER" in + yarn) + yarn start --config="$config" --no-silent --no-daemon || { + echo "Failed to start forum with yarn" + exit 1 + } + ;; + npm) + npm start -- --config="$config" --no-silent --no-daemon || { + echo "Failed to start forum with npm" + exit 1 + } + ;; + pnpm) + pnpm start -- --config="$config" --no-silent --no-daemon || { + echo "Failed to start forum with pnpm" + exit 1 + } + ;; + *) + echo "Unknown package manager: $PACKAGE_MANAGER" + exit 1 + ;; + esac +} + +# Function to start installation session +start_installation_session() { + local nodebb_init_verb="$1" + local config="$2" + + echo "Config file not found at $config" echo "Starting installation session" - ./nodebb "${NODEBB_INIT_VERB}" --config=$CONFIG -fi \ No newline at end of file + exec /usr/src/app/nodebb "$nodebb_init_verb" --config="$config" +} + +# Function for debugging and logging +debug_log() { + local message="$1" + echo "DEBUG: $message" +} + +# Main function +main() { + set_defaults + check_directory "$CONFIG_DIR" + copy_or_link_files /usr/src/app "$CONFIG_DIR" "$PACKAGE_MANAGER" + install_dependencies + + debug_log "PACKAGE_MANAGER: $PACKAGE_MANAGER" + debug_log "CONFIG location: $CONFIG" + debug_log "START_BUILD: $START_BUILD" + + if [ -n "$SETUP" ]; then + start_setup_session "$CONFIG" + fi + + if [ -f "$CONFIG" ]; then + start_forum "$CONFIG" "$START_BUILD" + else + start_installation_session "$NODEBB_INIT_VERB" "$CONFIG" + fi +} + +# Execute main function +main "$@" diff --git a/install/docker/setup.json b/install/docker/setup.json index 3fad840593..a9fa9017bb 100644 --- a/install/docker/setup.json +++ b/install/docker/setup.json @@ -1,21 +1,23 @@ { - "mongo": { - "host": "mongo", - "port": 27017, - "database": "nodebb", - "username": "nodebb", - "password": "nodebb" - }, - "redis": { - "host": "redis", - "port": 6379, - "database": 0 - }, - "postgres": { - "host": "postgres", - "port": 5432, - "database": "nodebb", - "username": "nodebb", - "password": "nodebb" + "defaults": { + "mongo": { + "host": "mongo", + "port": 27017, + "database": "nodebb", + "username": "nodebb", + "password": "nodebb" + }, + "redis": { + "host": "redis", + "port": 6379, + "database": 0 + }, + "postgres": { + "host": "postgres", + "port": 5432, + "database": "nodebb", + "username": "nodebb", + "password": "nodebb" + } } } \ No newline at end of file diff --git a/install/package.json b/install/package.json index 016610af80..adbd064e6e 100644 --- a/install/package.json +++ b/install/package.json @@ -29,15 +29,15 @@ }, "dependencies": { "@adactive/bootstrap-tagsinput": "0.8.2", - "@fontsource/inter": "5.0.16", - "@fontsource/poppins": "5.0.8", - "@fortawesome/fontawesome-free": "6.5.1", + "@fontsource/inter": "5.0.18", + "@fontsource/poppins": "5.0.14", + "@fortawesome/fontawesome-free": "6.5.2", "@isaacs/ttlcache": "1.4.1", "@popperjs/core": "2.11.8", - "ace-builds": "1.32.7", - "archiver": "7.0.0", + "ace-builds": "1.33.2", + "archiver": "7.0.1", "async": "3.2.5", - "autoprefixer": "10.4.18", + "autoprefixer": "10.4.19", "bcryptjs": "2.4.3", "benchpressjs": "2.5.1", "body-parser": "1.20.2", @@ -58,13 +58,13 @@ "connect-pg-simple": "9.0.1", "connect-redis": "7.1.1", "cookie-parser": "1.4.6", - "cron": "3.1.6", - "cropperjs": "1.6.1", + "cron": "3.1.7", + "cropperjs": "1.6.2", "csrf-sync": "4.0.3", "daemon": "1.1.0", "diff": "5.2.0", - "esbuild": "0.20.1", - "express": "4.18.3", + "esbuild": "0.21.2", + "express": "4.19.2", "express-session": "1.18.0", "express-useragent": "1.0.15", "fetch-cookie": "3.0.1", @@ -74,64 +74,64 @@ "helmet": "7.1.0", "html-to-text": "9.0.5", "imagesloaded": "5.0.0", - "ipaddr.js": "2.1.0", + "ipaddr.js": "2.2.0", "jquery": "3.7.1", "jquery-deserialize": "2.0.0", "jquery-form": "4.3.0", "jquery-serializeobject": "1.0.0", - "jquery-ui": "1.13.2", + "jquery-ui": "1.13.3", "jsesc": "3.0.2", "json2csv": "5.0.7", "jsonwebtoken": "9.0.2", "lodash": "4.17.21", "logrotate-stream": "0.2.9", - "lru-cache": "10.2.0", + "lru-cache": "10.2.2", "mime": "3.0.0", "mkdirp": "3.0.1", - "mongodb": "6.5.0", + "mongodb": "6.6.1", "morgan": "1.10.0", "mousetrap": "1.6.5", "multiparty": "4.2.3", "nconf": "0.12.1", - "nodebb-plugin-2factor": "7.4.0", - "nodebb-plugin-composer-default": "10.2.33", + "nodebb-plugin-2factor": "7.5.0", + "nodebb-plugin-composer-default": "10.2.35", "nodebb-plugin-dbsearch": "6.2.3", - "nodebb-plugin-emoji": "5.1.13", + "nodebb-plugin-emoji": "5.1.15", "nodebb-plugin-emoji-android": "4.0.0", "nodebb-plugin-markdown": "12.2.6", - "nodebb-plugin-mentions": "4.4.0", + "nodebb-plugin-mentions": "4.5.2", "nodebb-plugin-ntfy": "1.7.4", - "nodebb-plugin-spam-be-gone": "2.2.1", + "nodebb-plugin-spam-be-gone": "2.2.2", "nodebb-rewards-essentials": "1.0.0", - "nodebb-theme-harmony": "1.2.49", + "nodebb-theme-harmony": "1.2.55", "nodebb-theme-lavender": "7.1.8", - "nodebb-theme-peace": "2.2.4", - "nodebb-theme-persona": "13.3.14", - "nodebb-widget-essentials": "7.0.15", - "nodemailer": "6.9.11", + "nodebb-theme-peace": "2.2.5", + "nodebb-theme-persona": "13.3.19", + "nodebb-widget-essentials": "7.0.16", + "nodemailer": "6.9.13", "nprogress": "0.2.0", "passport": "0.7.0", "passport-http-bearer": "1.0.1", "passport-local": "1.0.0", - "pg": "8.11.3", - "pg-cursor": "2.10.3", - "postcss": "8.4.35", + "pg": "8.11.5", + "pg-cursor": "2.10.5", + "postcss": "8.4.38", "postcss-clean": "1.2.0", "progress-webpack-plugin": "1.0.16", "prompt": "1.3.0", - "ioredis": "5.3.2", - "rimraf": "5.0.5", + "ioredis": "5.4.1", + "rimraf": "5.0.7", "rss": "1.2.2", "rtlcss": "4.1.1", - "sanitize-html": "2.12.1", - "sass": "1.71.1", - "semver": "7.6.0", + "sanitize-html": "2.13.0", + "sass": "1.77.1", + "semver": "7.6.2", "serve-favicon": "2.5.0", "sharp": "0.32.6", "sitemap": "7.1.1", - "socket.io": "4.7.4", - "socket.io-client": "4.7.4", - "@socket.io/redis-adapter": "8.2.1", + "socket.io": "4.7.5", + "socket.io-client": "4.7.5", + "@socket.io/redis-adapter": "8.3.0", "sortablejs": "1.15.2", "spdx-license-list": "6.9.0", "spider-detector": "2.0.1", @@ -141,12 +141,12 @@ "timeago": "1.6.7", "tinycon": "0.6.8", "toobusy-js": "0.5.1", - "tough-cookie": "4.1.3", - "validator": "13.11.0", - "webpack": "5.90.3", + "tough-cookie": "4.1.4", + "validator": "13.12.0", + "webpack": "5.91.0", "webpack-merge": "5.10.0", - "winston": "3.11.0", - "workerpool": "9.1.0", + "winston": "3.13.0", + "workerpool": "9.1.1", "xml": "1.0.1", "xregexp": "5.1.1", "yargs": "17.7.2", @@ -154,8 +154,8 @@ }, "devDependencies": { "@apidevtools/swagger-parser": "10.1.0", - "@commitlint/cli": "19.0.3", - "@commitlint/config-angular": "19.0.3", + "@commitlint/cli": "19.3.0", + "@commitlint/config-angular": "19.3.0", "coveralls": "3.1.1", "eslint": "8.57.0", "eslint-config-nodebb": "0.2.1", @@ -165,14 +165,14 @@ "husky": "8.0.3", "jsdom": "24.0.0", "lint-staged": "15.2.2", - "mocha": "10.3.0", + "mocha": "10.4.0", "mocha-lcov-reporter": "1.3.0", "mockdate": "3.0.5", "nyc": "15.1.0", - "smtp-server": "3.13.3" + "smtp-server": "3.13.4" }, "optionalDependencies": { - "sass-embedded": "1.71.1" + "sass-embedded": "1.77.1" }, "resolutions": { "*/jquery": "3.7.1" @@ -195,4 +195,4 @@ "url": "https://github.com/barisusakli" } ] -} \ No newline at end of file +} diff --git a/public/language/ar/admin/advanced/events.json b/public/language/ar/admin/advanced/events.json index 0b785ae80c..9bf019eb74 100644 --- a/public/language/ar/admin/advanced/events.json +++ b/public/language/ar/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "نوع الحدث", "filter-start": "تاريخ البدء", "filter-end": "تاريخ الانتهاء", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "لكل صفحة" } \ No newline at end of file diff --git a/public/language/ar/admin/manage/users.json b/public/language/ar/admin/manage/users.json index 73d5632016..985604ca56 100644 --- a/public/language/ar/admin/manage/users.json +++ b/public/language/ar/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/ar/admin/settings/navigation.json b/public/language/ar/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/ar/admin/settings/navigation.json +++ b/public/language/ar/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/ar/flags.json b/public/language/ar/flags.json index 68de95b4e4..7c8f9a1e0d 100644 --- a/public/language/ar/flags.json +++ b/public/language/ar/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/ar/top.json b/public/language/ar/top.json index 6e1e05674e..ea4ad644c1 100644 --- a/public/language/ar/top.json +++ b/public/language/ar/top.json @@ -1,4 +1,4 @@ { - "title": "Top", - "no-top-topics": "No top topics" + "title": "أعلى الصفحة", + "no-top-topics": "لا توجد مواضيع أعلى الصفحة" } \ No newline at end of file diff --git a/public/language/ar/user.json b/public/language/ar/user.json index cd9ebd292b..ff6035449c 100644 --- a/public/language/ar/user.json +++ b/public/language/ar/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "محظور", + "unbanned": "Unbanned", "muted": "كتم", + "unmuted": "Unmuted", "offline": "غير متصل", "deleted": "محذوف", "username": "إسم المستخدم", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "تأكيد الفصل", "sso.dissociate-confirm": "هل تريد بالتأكيد فصل حسابك عن %1؟", "info.latest-flags": "أحدث العلامات", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "لم يتم العثور على مشاركات معلمة", "info.ban-history": "سجل الحظر الأحدث", "info.no-ban-history": "هذا المستخدم لم يتم حظره مطلقا", "info.banned-until": "محظور حتى %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "محظور بشكل دائم", "info.banned-reason-label": "سبب", "info.banned-no-reason": "لم يتم إعطاء سبب.", diff --git a/public/language/bg/admin/advanced/events.json b/public/language/bg/admin/advanced/events.json index 9cfaddd583..5bb299567f 100644 --- a/public/language/bg/admin/advanced/events.json +++ b/public/language/bg/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Вид събитие", "filter-start": "Начална дата", "filter-end": "Крайна дата", + "filter-user": "Филтриране по потребител", + "filter-user.placeholder": "Въведете име на потребител, за да филтрирате…", + "filter-group": "Филтриране по група", + "filter-group.placeholder": "Въведете име на група, за да филтрирате…", "filter-per-page": "На страница" } \ No newline at end of file diff --git a/public/language/bg/admin/manage/users.json b/public/language/bg/admin/manage/users.json index f5b049a406..8cec91e08e 100644 --- a/public/language/bg/admin/manage/users.json +++ b/public/language/bg/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "Беше изпратено е-писмо за потвърждение до %1", "alerts.x-users-found": "Намерени потребители: %1 (%2 секунди)", "alerts.select-a-single-user-to-change-email": "Изберете един потребител, чиято е-поща да промените", + "export": "Изнасяне", + "export-users-fields-title": "Изберете полета за CSV", + "export-field-email": "Е-поща", + "export-field-username": "Потребителско име", + "export-field-uid": "Потребителски идентификатор", + "export-field-ip": "IP адрес", + "export-field-joindate": "Дата на присъединяване", + "export-field-lastonline": "Последно на линия", + "export-field-lastposttime": "Време на последния отговор", + "export-field-reputation": "Репутация", + "export-field-postcount": "Брой публикации", + "export-field-topiccount": "Брой теми", + "export-field-profileviews": "Преглеждания на профила", + "export-field-followercount": "Брой последователи", + "export-field-followingcount": "Брой последвани", + "export-field-fullname": "Пълно име", + "export-field-website": "Уеб сайт", + "export-field-location": "Местоположение", + "export-field-birthday": "Рождена дата", + "export-field-signature": "Подпис", + "export-field-aboutme": "За потребителя", + "export-users-started": "Изнасяне на потребителите във формат „csv“… Това може да отнеме известно време. Ще получите известие, когато е готово.", "export-users-completed": "Потребителите са изнесени във формат „csv“, щракнете за сваляне.", "email": "Е-поща", diff --git a/public/language/bg/admin/settings/navigation.json b/public/language/bg/admin/settings/navigation.json index 88842778bd..90332bf37c 100644 --- a/public/language/bg/admin/settings/navigation.json +++ b/public/language/bg/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "Идентификатор: незадължително", "properties": "Свойства:", - "groups": "Групи:", + "show-to-groups": "Показване на групите:", "open-new-window": "Отваряне в нов прозорец", "dropdown": "Падащо меню", "dropdown-placeholder": "Въведете елементите на падащото меню по-долу. Пример:
<li><a class="dropdown-item" href="https://myforum.com">Връзка 1</a></li>", diff --git a/public/language/bg/flags.json b/public/language/bg/flags.json index 4f5cf13bf6..e643d375dc 100644 --- a/public/language/bg/flags.json +++ b/public/language/bg/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Групови действия", "bulk-resolve": "Разрешаване на доклад(и)", "bulk-success": "%1 доклада са обновени", - "flagged-timeago-readable": "Докладвано (%2)", + "flagged-timeago": "Докладвано ", "auto-flagged": "[Авт. докладвано] Получени %1 отрицателни гласа." } \ No newline at end of file diff --git a/public/language/bg/user.json b/public/language/bg/user.json index 687ea013a4..e7b3229bad 100644 --- a/public/language/bg/user.json +++ b/public/language/bg/user.json @@ -1,7 +1,9 @@ { "user-menu": "Потребителско меню", "banned": "Блокиран", + "unbanned": "Деблокиран", "muted": "Заглушен", + "unmuted": "Премахнато заглушаване", "offline": "Извън линия", "deleted": "Изтрит", "username": "Потребителско име", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Потвърждаване на прекъсването", "sso.dissociate-confirm": "Наистина ли искате да прекъснете връзката на акаунта си от „%1“?", "info.latest-flags": "Последни доклади", + "info.profile": "Профил", + "info.post": "Публикация", + "info.view-flag": "Преглед на доклада", + "info.reported-by": "Докладвано от:", "info.no-flags": "Не са намерени докладвани публикации", "info.ban-history": "Скорошна история на блокиранията", "info.no-ban-history": "Този потребител никога не е бил блокиран", "info.banned-until": "Блокиран до %1", "info.banned-expiry": "Давност", + "info.ban-expired": "Блокирането е изтекло", "info.banned-permanently": "Блокиран за постоянно", "info.banned-reason-label": "Причина", "info.banned-no-reason": "Няма посочена причина.", diff --git a/public/language/bn/admin/advanced/events.json b/public/language/bn/admin/advanced/events.json index 9327eef8d3..a249bb9721 100644 --- a/public/language/bn/admin/advanced/events.json +++ b/public/language/bn/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/bn/admin/manage/users.json b/public/language/bn/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/bn/admin/manage/users.json +++ b/public/language/bn/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/bn/admin/settings/navigation.json b/public/language/bn/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/bn/admin/settings/navigation.json +++ b/public/language/bn/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/bn/flags.json b/public/language/bn/flags.json index 996e027833..0a42e3877f 100644 --- a/public/language/bn/flags.json +++ b/public/language/bn/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/bn/user.json b/public/language/bn/user.json index 3d52e32c20..3498f5c101 100644 --- a/public/language/bn/user.json +++ b/public/language/bn/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "নিষিদ্ধ", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "অফলাইন", "deleted": "Deleted", "username": "সদস্যের নাম", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Latest Flags", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "No Flagged Posts Found", "info.ban-history": "Recent Ban History", "info.no-ban-history": "This user has never been banned", "info.banned-until": "Banned until %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Banned permanently", "info.banned-reason-label": "Reason", "info.banned-no-reason": "No reason given.", diff --git a/public/language/cs/admin/advanced/events.json b/public/language/cs/admin/advanced/events.json index 2ac368b809..19d44ec316 100644 --- a/public/language/cs/admin/advanced/events.json +++ b/public/language/cs/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Typ události", "filter-start": "Datum začátku", "filter-end": "Datum konce", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Na stránku" } \ No newline at end of file diff --git a/public/language/cs/admin/manage/users.json b/public/language/cs/admin/manage/users.json index 1a3676012e..c10480b8fc 100644 --- a/public/language/cs/admin/manage/users.json +++ b/public/language/cs/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "E-mail s pozvánkou byl odeslán na %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/cs/admin/settings/navigation.json b/public/language/cs/admin/settings/navigation.json index 5d2f93fcb2..a4ad7fe1dc 100644 --- a/public/language/cs/admin/settings/navigation.json +++ b/public/language/cs/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: doporučené", "properties": "Vlastnosti:", - "groups": "Skupiny:", + "show-to-groups": "Show to Groups:", "open-new-window": "Otevřít v novém okně", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/cs/flags.json b/public/language/cs/flags.json index 04f13634b9..3e65c52caf 100644 --- a/public/language/cs/flags.json +++ b/public/language/cs/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/cs/user.json b/public/language/cs/user.json index e88135c71c..d2d2e04ea9 100644 --- a/public/language/cs/user.json +++ b/public/language/cs/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Zablokován", + "unbanned": "Unbanned", "muted": "Ztlumen", + "unmuted": "Unmuted", "offline": "Nepřipojen", "deleted": "Odstraněno", "username": "Uživatelské jméno", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Potvrdit odloučení", "sso.dissociate-confirm": "Jste si jist/a, že chcete odloučit váš účet z %1?", "info.latest-flags": "Poslední označené", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Nebyly nalezeny žádné označené příspěvky", "info.ban-history": "Poslední historie blokovaných", "info.no-ban-history": "Tento uživatel nebyl nikdy zablokován", "info.banned-until": "Zablokován do %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Trvale zablokován", "info.banned-reason-label": "Důvod", "info.banned-no-reason": "Bez důvodu", diff --git a/public/language/da/admin/advanced/events.json b/public/language/da/admin/advanced/events.json index ab141028f4..507b5d852c 100644 --- a/public/language/da/admin/advanced/events.json +++ b/public/language/da/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/da/admin/manage/users.json b/public/language/da/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/da/admin/manage/users.json +++ b/public/language/da/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/da/admin/settings/navigation.json b/public/language/da/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/da/admin/settings/navigation.json +++ b/public/language/da/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/da/flags.json b/public/language/da/flags.json index 996e027833..0a42e3877f 100644 --- a/public/language/da/flags.json +++ b/public/language/da/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/da/user.json b/public/language/da/user.json index a9479b0181..c60d54fbba 100644 --- a/public/language/da/user.json +++ b/public/language/da/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Banlyst", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Offline", "deleted": "Deleted", "username": "Brugernavn", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Latest Flags", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "No Flagged Posts Found", "info.ban-history": "Recent Ban History", "info.no-ban-history": "This user has never been banned", "info.banned-until": "Banned until %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Banned permanently", "info.banned-reason-label": "Reason", "info.banned-no-reason": "No reason given.", diff --git a/public/language/de/admin/advanced/events.json b/public/language/de/admin/advanced/events.json index 70f60c38dc..bd966b32ca 100644 --- a/public/language/de/admin/advanced/events.json +++ b/public/language/de/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Ereignistyp", "filter-start": "Anfangsdatum", "filter-end": "Enddatum", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Pro Seite" } \ No newline at end of file diff --git a/public/language/de/admin/dashboard.json b/public/language/de/admin/dashboard.json index ceb163174b..9229f720aa 100644 --- a/public/language/de/admin/dashboard.json +++ b/public/language/de/admin/dashboard.json @@ -95,7 +95,7 @@ "expand-analytics": "Analytik erweitern", "clear-search-history": "Suchverlauf löschen", "clear-search-history-confirm": "Bist du dir sicher, dass du den gesamten Suchverlauf löschen möchten?", - "search-term": "Term", - "search-count": "Count", - "view-all": "View all" + "search-term": "Bezeichnung", + "search-count": "Anzahl", + "view-all": "Zeige alle" } diff --git a/public/language/de/admin/manage/users.json b/public/language/de/admin/manage/users.json index f8aa4fc9cf..2abd288cce 100644 --- a/public/language/de/admin/manage/users.json +++ b/public/language/de/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "Eine Einladungsemail wurde an %1 gesendet", "alerts.x-users-found": "%1 Benutzer gefunden, (%2 Sekunden)", "alerts.select-a-single-user-to-change-email": "Wähle einen einzelnen Benutzer zum Ändern der E-Mail", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Der Export von Benutzern als CSV kann eine Weile dauern. Sie erhalten eine Benachrichtigung, wenn es abgeschlossen ist.", "export-users-completed": "Benutzer wurden als CSV exportiert, klicke hier, um sie herunterzuladen.", "email": "E-Mail", diff --git a/public/language/de/admin/settings/navigation.json b/public/language/de/admin/settings/navigation.json index 0fe6f19e9c..fbbb4f5ca0 100644 --- a/public/language/de/admin/settings/navigation.json +++ b/public/language/de/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Eigenschaften:", - "groups": "Gruppen:", + "show-to-groups": "Show to Groups:", "open-new-window": "In neuem Fenster öffnen", "dropdown": "Dropdown", "dropdown-placeholder": "Platziere deine Dropdown-Menüpunkte unten, d. h.:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/de/flags.json b/public/language/de/flags.json index 4c2f29fca6..339df24292 100644 --- a/public/language/de/flags.json +++ b/public/language/de/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Massenaktionen", "bulk-resolve": "Meldung(en) bereiningen", "bulk-success": "%1 Meldungen aktualisiert", - "flagged-timeago-readable": "Gemeldet (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Automatisch gemeldet] %1 Abwertungen erhalten." } \ No newline at end of file diff --git a/public/language/de/user.json b/public/language/de/user.json index 875c9aeb75..86be2c274f 100644 --- a/public/language/de/user.json +++ b/public/language/de/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Gesperrt", + "unbanned": "Unbanned", "muted": "Stummgeschaltet", + "unmuted": "Unmuted", "offline": "Offline", "deleted": "Gelöscht", "username": "Benutzername", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Trennung bestätigen", "sso.dissociate-confirm": "Bist du sicher, dass du dein Konto von %1 trennen willst?", "info.latest-flags": "Neuste Meldungen", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Keine gemeldeten Beiträge gefunden", "info.ban-history": "Sperrungsverlauf", "info.no-ban-history": "Dieser Benutzer wurde noch nie gesperrt", "info.banned-until": "Gesperrt bis zum %1", "info.banned-expiry": "Ablauf", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Permanent gesperrt", "info.banned-reason-label": "Grund", "info.banned-no-reason": "Kein Grund angegeben.", diff --git a/public/language/el/admin/advanced/events.json b/public/language/el/admin/advanced/events.json index 9327eef8d3..a249bb9721 100644 --- a/public/language/el/admin/advanced/events.json +++ b/public/language/el/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/el/admin/manage/users.json b/public/language/el/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/el/admin/manage/users.json +++ b/public/language/el/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/el/admin/settings/navigation.json b/public/language/el/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/el/admin/settings/navigation.json +++ b/public/language/el/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/el/flags.json b/public/language/el/flags.json index 996e027833..0a42e3877f 100644 --- a/public/language/el/flags.json +++ b/public/language/el/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/el/user.json b/public/language/el/user.json index ed2e05ac00..07f3fb63ac 100644 --- a/public/language/el/user.json +++ b/public/language/el/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Αποκλεισμένος/η", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Εκτός Σύνδεσης", "deleted": "Deleted", "username": "Όνομα Χρήστη", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Latest Flags", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "No Flagged Posts Found", "info.ban-history": "Recent Ban History", "info.no-ban-history": "This user has never been banned", "info.banned-until": "Banned until %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Banned permanently", "info.banned-reason-label": "Reason", "info.banned-no-reason": "No reason given.", diff --git a/public/language/en-GB/admin/advanced/events.json b/public/language/en-GB/admin/advanced/events.json index 9327eef8d3..a249bb9721 100644 --- a/public/language/en-GB/admin/advanced/events.json +++ b/public/language/en-GB/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/en-GB/admin/manage/users.json b/public/language/en-GB/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/en-GB/admin/manage/users.json +++ b/public/language/en-GB/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/en-GB/flags.json b/public/language/en-GB/flags.json index 996e027833..0a42e3877f 100644 --- a/public/language/en-GB/flags.json +++ b/public/language/en-GB/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/en-GB/user.json b/public/language/en-GB/user.json index 1b338268bf..b010898322 100644 --- a/public/language/en-GB/user.json +++ b/public/language/en-GB/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Banned", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Offline", "deleted": "Deleted", "username": "User Name", @@ -179,11 +181,16 @@ "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Latest Flags", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "No Flagged Posts Found", "info.ban-history": "Recent Ban History", "info.no-ban-history": "This user has never been banned", "info.banned-until": "Banned until %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Banned permanently", "info.banned-reason-label": "Reason", "info.banned-no-reason": "No reason given.", diff --git a/public/language/en-US/admin/advanced/events.json b/public/language/en-US/admin/advanced/events.json index 9327eef8d3..a249bb9721 100644 --- a/public/language/en-US/admin/advanced/events.json +++ b/public/language/en-US/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/en-US/admin/manage/users.json b/public/language/en-US/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/en-US/admin/manage/users.json +++ b/public/language/en-US/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/en-US/admin/settings/navigation.json b/public/language/en-US/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/en-US/admin/settings/navigation.json +++ b/public/language/en-US/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/en-US/flags.json b/public/language/en-US/flags.json index 996e027833..0a42e3877f 100644 --- a/public/language/en-US/flags.json +++ b/public/language/en-US/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/en-US/user.json b/public/language/en-US/user.json index b1a19d7ecd..8fba89a9de 100644 --- a/public/language/en-US/user.json +++ b/public/language/en-US/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Banned", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Offline", "deleted": "Deleted", "username": "User Name", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Latest Flags", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "No Flagged Posts Found", "info.ban-history": "Recent Ban History", "info.no-ban-history": "This user has never been banned", "info.banned-until": "Banned until %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Banned permanently", "info.banned-reason-label": "Reason", "info.banned-no-reason": "No reason given.", diff --git a/public/language/en-x-pirate/admin/advanced/events.json b/public/language/en-x-pirate/admin/advanced/events.json index 9327eef8d3..a249bb9721 100644 --- a/public/language/en-x-pirate/admin/advanced/events.json +++ b/public/language/en-x-pirate/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/manage/users.json b/public/language/en-x-pirate/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/en-x-pirate/admin/manage/users.json +++ b/public/language/en-x-pirate/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/en-x-pirate/admin/settings/navigation.json b/public/language/en-x-pirate/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/en-x-pirate/admin/settings/navigation.json +++ b/public/language/en-x-pirate/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/en-x-pirate/flags.json b/public/language/en-x-pirate/flags.json index 996e027833..0a42e3877f 100644 --- a/public/language/en-x-pirate/flags.json +++ b/public/language/en-x-pirate/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/en-x-pirate/user.json b/public/language/en-x-pirate/user.json index a2e50e1384..8653a1e096 100644 --- a/public/language/en-x-pirate/user.json +++ b/public/language/en-x-pirate/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Blackmarked", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Asleep at the wheel", "deleted": "Deleted", "username": "User Name", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Latest Flags", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "No Flagged Posts Found", "info.ban-history": "Recent Ban History", "info.no-ban-history": "This user has never been banned", "info.banned-until": "Banned until %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Banned permanently", "info.banned-reason-label": "Reason", "info.banned-no-reason": "No reason given.", diff --git a/public/language/es/admin/advanced/events.json b/public/language/es/admin/advanced/events.json index cd9474c5a5..70f60ef2e2 100644 --- a/public/language/es/admin/advanced/events.json +++ b/public/language/es/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Tipo de evento", "filter-start": "Fecha de inicio", "filter-end": "Fecha fin", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "por página" } \ No newline at end of file diff --git a/public/language/es/admin/manage/users.json b/public/language/es/admin/manage/users.json index 786cb6113b..d9761ab686 100644 --- a/public/language/es/admin/manage/users.json +++ b/public/language/es/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "Un email de invitación ha sido enviado a %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/es/admin/settings/navigation.json b/public/language/es/admin/settings/navigation.json index 41195b34e7..08de3e65ce 100644 --- a/public/language/es/admin/settings/navigation.json +++ b/public/language/es/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: opcional", "properties": "Propiedades:", - "groups": "Grupos:", + "show-to-groups": "Show to Groups:", "open-new-window": "Abrir en una ventana nueva", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/es/flags.json b/public/language/es/flags.json index 7abed4fbf4..0bffeb16ee 100644 --- a/public/language/es/flags.json +++ b/public/language/es/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/es/user.json b/public/language/es/user.json index 996dfd3986..de0d5f59c2 100644 --- a/public/language/es/user.json +++ b/public/language/es/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Baneado", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Desconectado", "deleted": "Borrado", "username": "Nombre de usuario", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirmar Disociación", "sso.dissociate-confirm": "Está seguro de que desea disociar su cuenta de %1?", "info.latest-flags": "Ultimos reportes", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Ningun mensaje reportado encontrado", "info.ban-history": "Histórico reciente de bans", "info.no-ban-history": "Este usuario nunca ha sido baneado", "info.banned-until": "Baneado hasta %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Baneado permanentemente", "info.banned-reason-label": "Motivo", "info.banned-no-reason": "Motivo no especificado", diff --git a/public/language/et/admin/advanced/events.json b/public/language/et/admin/advanced/events.json index 912b9e8e4d..83ca085438 100644 --- a/public/language/et/admin/advanced/events.json +++ b/public/language/et/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/et/admin/manage/users.json b/public/language/et/admin/manage/users.json index ffe0a8c960..0637aed1b0 100644 --- a/public/language/et/admin/manage/users.json +++ b/public/language/et/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "Kutse on saadetud %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/et/admin/settings/navigation.json b/public/language/et/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/et/admin/settings/navigation.json +++ b/public/language/et/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/et/flags.json b/public/language/et/flags.json index 996e027833..0a42e3877f 100644 --- a/public/language/et/flags.json +++ b/public/language/et/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/et/user.json b/public/language/et/user.json index 97f65ad637..dc531559d9 100644 --- a/public/language/et/user.json +++ b/public/language/et/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Banned", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Väljas", "deleted": "Deleted", "username": "Kasutajanimi", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Viimased raporteerimised", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Raporteeritud postitusi ei leitud", "info.ban-history": "Hiljutiste keeldude ajalugu", "info.no-ban-history": "Seda kasutajat pole kunagi keelustatud", "info.banned-until": "Keelustatud kuni %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Igavesti keelustatud", "info.banned-reason-label": "Reason", "info.banned-no-reason": "No reason given.", diff --git a/public/language/fa-IR/admin/advanced/events.json b/public/language/fa-IR/admin/advanced/events.json index 98f7b5c69a..f2488c1306 100644 --- a/public/language/fa-IR/admin/advanced/events.json +++ b/public/language/fa-IR/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/fa-IR/admin/manage/users.json b/public/language/fa-IR/admin/manage/users.json index f5f3218558..b33e63a855 100644 --- a/public/language/fa-IR/admin/manage/users.json +++ b/public/language/fa-IR/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/fa-IR/admin/settings/navigation.json b/public/language/fa-IR/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/fa-IR/admin/settings/navigation.json +++ b/public/language/fa-IR/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/fa-IR/flags.json b/public/language/fa-IR/flags.json index 0ad056c4c8..4a268bb030 100644 --- a/public/language/fa-IR/flags.json +++ b/public/language/fa-IR/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "عملیات گروهی", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 گزارش بروزرسانی شد", - "flagged-timeago-readable": "گزارش شده (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/fa-IR/user.json b/public/language/fa-IR/user.json index 8e7d43a40c..a55866ce70 100644 --- a/public/language/fa-IR/user.json +++ b/public/language/fa-IR/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "اخراج شده", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "آفلاین", "deleted": "حذف شده", "username": "نام کاربری", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "آیا مطمئنی می خواهی اتصال %1 به حسابت را لغو کنی؟", "info.latest-flags": "آخرین نشانه گذاری‌ها", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "پست گزارش شده ای یافت نشد", "info.ban-history": "تاریخچه مسدودیت های اخیر", "info.no-ban-history": "این کاربر هرگز مسدود نشده است", "info.banned-until": "مسدود شده تا %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "مسدود شده به طور دائم", "info.banned-reason-label": "دلیل", "info.banned-no-reason": "هیچ دلیلی ارایه نشد.", diff --git a/public/language/fi/admin/advanced/events.json b/public/language/fi/admin/advanced/events.json index 9699faf2d0..a90b76b12b 100644 --- a/public/language/fi/admin/advanced/events.json +++ b/public/language/fi/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Tapahtuman tyyppi", "filter-start": "Aloituspäivä", "filter-end": "Lopetuspäivä", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Sivulla" } \ No newline at end of file diff --git a/public/language/fi/admin/manage/users.json b/public/language/fi/admin/manage/users.json index bfcb17d23f..9c342dd035 100644 --- a/public/language/fi/admin/manage/users.json +++ b/public/language/fi/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "Kutsuviesti lähetettiin osoitteeseen %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Käyttäjiä viedään CSV-muotoon ja tämä saatta kestää jonkin aikaa. Saat ilmoituksen kun se on suoritettu.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Sähköposti", diff --git a/public/language/fi/admin/settings/navigation.json b/public/language/fi/admin/settings/navigation.json index 0323a24c80..814c47108a 100644 --- a/public/language/fi/admin/settings/navigation.json +++ b/public/language/fi/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Ryhmät:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/fi/flags.json b/public/language/fi/flags.json index 73eade3503..2132e64f13 100644 --- a/public/language/fi/flags.json +++ b/public/language/fi/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/fi/user.json b/public/language/fi/user.json index 37ed2e6286..6522417524 100644 --- a/public/language/fi/user.json +++ b/public/language/fi/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Bannattu", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Offline", "deleted": "Poistettu", "username": "Käyttäjän nimi", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Latest Flags", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "No Flagged Posts Found", "info.ban-history": "Estohistorian viimeisimmät", "info.no-ban-history": "This user has never been banned", "info.banned-until": "Banned until %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Banned permanently", "info.banned-reason-label": "Syy", "info.banned-no-reason": "Syytä ei ole annettu", diff --git a/public/language/fr/admin/advanced/events.json b/public/language/fr/admin/advanced/events.json index 65af7c70a8..d5e1a1461d 100644 --- a/public/language/fr/admin/advanced/events.json +++ b/public/language/fr/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Évènements", "filter-start": "Date de début", "filter-end": "Date de fin", + "filter-user": "Filtrer par Utilisateur", + "filter-user.placeholder": "Tapez le nom d'utilisateur à filtrer...", + "filter-group": "Filtrer par groupe", + "filter-group.placeholder": "Tapez le nom du groupe à filtrer...", "filter-per-page": "Par page" } \ No newline at end of file diff --git a/public/language/fr/admin/dashboard.json b/public/language/fr/admin/dashboard.json index 39ce6b210f..eb7bc530e3 100644 --- a/public/language/fr/admin/dashboard.json +++ b/public/language/fr/admin/dashboard.json @@ -95,7 +95,7 @@ "expand-analytics": "Développer les statistiques", "clear-search-history": "Effacer l'historique", "clear-search-history-confirm": "Êtes-vous sûr de vouloir effacer tout l'historique de recherche ?", - "search-term": "Term", - "search-count": "Count", + "search-term": "Terme", + "search-count": "Nombre", "view-all": "Voir tout" } diff --git a/public/language/fr/admin/manage/users.json b/public/language/fr/admin/manage/users.json index c6e7f02a12..5f0c9a17fe 100644 --- a/public/language/fr/admin/manage/users.json +++ b/public/language/fr/admin/manage/users.json @@ -121,9 +121,31 @@ "alerts.email-sent-to": "Un e-mail d'invitation a été envoyé à %1", "alerts.x-users-found": "%1 utilisateur(s) trouvé(s), (%2 secondes)", "alerts.select-a-single-user-to-change-email": "Sélectionner un utilisateur pour modifier l'adresse e-mail", + "export": "Exporter", + "export-users-fields-title": "Sélectionner champs CSV", + "export-field-email": "E-mail", + "export-field-username": "Nom d'utilisateur", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Date d'inscription", + "export-field-lastonline": "Dernière connexion", + "export-field-lastposttime": "Dernier message", + "export-field-reputation": "Réputation", + "export-field-postcount": "Nombre de messages", + "export-field-topiccount": "Nombre de sujets", + "export-field-profileviews": "Vues", + "export-field-followercount": "Abonnés", + "export-field-followingcount": "Abonnements", + "export-field-fullname": "Nom complet", + "export-field-website": "Site Web", + "export-field-location": "Localisation", + "export-field-birthday": "Anniversaire", + "export-field-signature": "Signature", + "export-field-aboutme": "A propos", + "export-users-started": "L'exportation d'utilisateurs au format CSV peut prendre un certain temps. Vous recevrez une notification lorsqu'elle sera terminée.", "export-users-completed": "Utilisateurs exportés au format CSV, cliquer ici pour télécharger.", - "email": "e-mail", + "email": "E-mail", "password": "Mot de passe", "manage": "Gérer" } \ No newline at end of file diff --git a/public/language/fr/admin/settings/cookies.json b/public/language/fr/admin/settings/cookies.json index 4473a402d1..a118d06ed9 100644 --- a/public/language/fr/admin/settings/cookies.json +++ b/public/language/fr/admin/settings/cookies.json @@ -4,7 +4,7 @@ "consent.message": "Message de notification", "consent.acceptance": "Message d'acceptation", "consent.link-text": "Texte du lien vers la politique de confidentialité", - "consent.link-url": "URL du lien vers la politique", + "consent.link-url": "Lien URL vers la politique", "consent.blank-localised-default": "Laisser vide pour utiliser les textes localisés par défaut de NodeBB", "settings": "Réglages", "cookie-domain": "Domaine de session du cookie", diff --git a/public/language/fr/admin/settings/navigation.json b/public/language/fr/admin/settings/navigation.json index a3da06fe34..677e35da8f 100644 --- a/public/language/fr/admin/settings/navigation.json +++ b/public/language/fr/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID : optionnel", "properties": "Propriétés :", - "groups": "Groupes :", + "show-to-groups": "Show to Groups:", "open-new-window": "Ouvrir dans une nouvelle fenêtre", "dropdown": "Menu déroulant", "dropdown-placeholder": "Placer vos éléments de menu déroulant ci-dessous, par exemple :
https://myforum.com", diff --git a/public/language/fr/admin/settings/post.json b/public/language/fr/admin/settings/post.json index cdf8f11baa..af324eb412 100644 --- a/public/language/fr/admin/settings/post.json +++ b/public/language/fr/admin/settings/post.json @@ -4,11 +4,11 @@ "sorting.post-default": "Tri des messages par défaut", "sorting.oldest-to-newest": "Du plus ancien au plus récent", "sorting.newest-to-oldest": "Du plus récent au plus ancien", - "sorting.recently-replied": "Recently Replied", - "sorting.recently-created": "Recently Created", + "sorting.recently-replied": "Répondu récemment ", + "sorting.recently-created": "Créé récemment ", "sorting.most-votes": "Avec le plus de votes", "sorting.most-posts": "Avec le plus de messages", - "sorting.most-views": "Most Views", + "sorting.most-views": "Les plus vus", "sorting.topic-default": "Tri des sujets par défaut", "length": "Longueur de message", "post-queue": "File d'attente", diff --git a/public/language/fr/aria.json b/public/language/fr/aria.json index 6f023dcae0..2274e862be 100644 --- a/public/language/fr/aria.json +++ b/public/language/fr/aria.json @@ -1,8 +1,8 @@ { - "post-sort-option": "Post sort option, %1", - "topic-sort-option": "Topic sort option, %1", - "user-avatar-for": "User avatar for %1", - "user-watched-tags": "User watched tags", - "delete-upload-button": "Delete upload button", - "group-page-link-for": "Group page link for %1" + "post-sort-option": "Option de tri des messages, %1", + "topic-sort-option": "Option de tri des sujets, %1", + "user-avatar-for": "Avatar de l'utilisateur pour %1", + "user-watched-tags": "L'utilisateur a regardé les tags", + "delete-upload-button": "Supprimer le bouton de téléchargement", + "group-page-link-for": "Lien vers la page de groupe pour %1" } \ No newline at end of file diff --git a/public/language/fr/error.json b/public/language/fr/error.json index 35557b09e9..06403eb7a0 100644 --- a/public/language/fr/error.json +++ b/public/language/fr/error.json @@ -184,8 +184,8 @@ "user-already-flagged": "Vous avez déjà signalé cet utilisateur", "post-flagged-too-many-times": "Ce message a déjà été signalé par d'autres", "user-flagged-too-many-times": "Cet utilisateur a déjà été signalé par d'autres", - "too-many-post-flags-per-day": "You can only flag %1 post(s) per day", - "too-many-user-flags-per-day": "You can only flag %1 user(s) per day", + "too-many-post-flags-per-day": "Vous pouvez seulement signaler %1 message(s) par jour", + "too-many-user-flags-per-day": "Vous pouvez seulement signaler %1 utilisateur(s) par jour", "cant-flag-privileged": "Vous n'êtes pas autorisé à signaler les profils ou le contenu des utilisateurs privilégiés (modérateurs / modérateurs globaux / administrateurs)", "cant-locate-flag-report": "Impossible de trouver le signalement", "self-vote": "Vous ne pouvez pas voter sur votre propre message", @@ -221,7 +221,7 @@ "already-unblocked": "Cet utilisateur est déjà débloqué", "no-connection": "Il semble y avoir un problème avec votre connexion internet", "socket-reconnect-failed": "Serveur inaccessible pour le moment. Cliquez ici pour réessayer ou réessayez plus tard", - "invalid-plugin-id": "Invalid plugin ID", + "invalid-plugin-id": "ID de plugin invalide", "plugin-not-whitelisted": "Impossible d'installer le plugin, seuls les plugins mis en liste blanche dans le gestionnaire de packages NodeBB peuvent être installés via l'ACP", "plugins-set-in-configuration": "Vous n'êtes pas autorisé à modifier l'état des plugins car ils sont définis au moment de l'exécution (config.json, variables d'environnement ou arguments de terminal), veuillez plutôt modifier la configuration.", "theme-not-set-in-configuration": "Lors de la définition des plugins actifs, le changement de thème nécessite d'ajouter le nouveau thème à la liste des plugins actifs avant de le mettre à jour dans l'ACP", diff --git a/public/language/fr/flags.json b/public/language/fr/flags.json index beb5e3046f..ccf2565f6e 100644 --- a/public/language/fr/flags.json +++ b/public/language/fr/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Actions en vrac", "bulk-resolve": "Signalement(s) résolu(s)", "bulk-success": "%1 signalements mis à jour", - "flagged-timeago-readable": "Signalé (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Signalement] A reçu %1 votes négatifs." } \ No newline at end of file diff --git a/public/language/fr/tags.json b/public/language/fr/tags.json index 5ac8a5b1a7..29f376434a 100644 --- a/public/language/fr/tags.json +++ b/public/language/fr/tags.json @@ -3,7 +3,7 @@ "no-tag-topics": "Il n'y a aucun sujet ayant ce mot-clé", "no-tags-found": "Aucun mot-clé trouvé", "tags": "Mots-clés", - "enter-tags-here": "Enter tags, %1 - %2 characters.", + "enter-tags-here": "Saisir des tags, %1 - %2 caractères.", "enter-tags-here-short": "Entrez des mots-clés...", "no-tags": "Il n'y a pas encore de mots-clés.", "select-tags": "Sélectionner les mots-clés", diff --git a/public/language/fr/themes/harmony.json b/public/language/fr/themes/harmony.json index 5e979ff6d2..2957f7ac04 100644 --- a/public/language/fr/themes/harmony.json +++ b/public/language/fr/themes/harmony.json @@ -3,11 +3,11 @@ "skins": "Habillages", "collapse": "Réduire", "expand": "Développer", - "sidebar-toggle": "Sidebar Toggle", + "sidebar-toggle": "Réduire la barre latérale", "login-register-to-search": "Connectez-vous ou inscrivez-vous pour faire une recherche.", "settings.title": "Configuration du thème", "settings.enableQuickReply": "Activer les réponses rapides", - "settings.enableBreadcrumbs": "Enable breadcrumbs", + "settings.enableBreadcrumbs": "Activer le fil d'Ariane", "settings.centerHeaderElements": "Centrer les éléments d'en-tête", "settings.mobileTopicTeasers": "Afficher les teasers de sujet sur mobile", "settings.stickyToolbar": "Barre d'outils", diff --git a/public/language/fr/topic.json b/public/language/fr/topic.json index dd2c1b51a2..462a21d139 100644 --- a/public/language/fr/topic.json +++ b/public/language/fr/topic.json @@ -182,8 +182,8 @@ "sort-by": "Trier", "oldest-to-newest": "Du plus ancien au plus récent", "newest-to-oldest": "Du plus récent au plus ancien", - "recently-replied": "Recently Replied", - "recently-created": "Recently Created", + "recently-replied": "Réponses récentes", + "recently-created": "Nouveaux sujets", "most-votes": "Les plus votés", "most-posts": "Meilleurs messages", "most-views": "Les plus vus", diff --git a/public/language/fr/user.json b/public/language/fr/user.json index d45962b762..9bbc717fb1 100644 --- a/public/language/fr/user.json +++ b/public/language/fr/user.json @@ -1,7 +1,9 @@ { "user-menu": "Menu de l'utilisateur", "banned": "Banni", + "unbanned": "Unbanned", "muted": "Muet", + "unmuted": "Unmuted", "offline": "Hors-ligne", "deleted": "Effacé", "username": "Nom d'utilisateur", @@ -142,10 +144,10 @@ "follow-topics-you-create": "S'abonner aux sujets que vous créez", "grouptitle": "Nom du groupe", "group-order-help": "Sélectionner un groupe et utiliser les flèches pour organiser les titres", - "show-group-title": "Show group title", - "hide-group-title": "Hide group title", - "order-group-up": "Order group up", - "order-group-down": "Order group down", + "show-group-title": "Afficher le titre du groupe", + "hide-group-title": "Masquer le titre du groupe", + "order-group-up": "Classer vers le haut", + "order-group-down": "Classer vers le bas", "no-group-title": "Aucun titre de groupe", "select-skin": "Sélectionner un habillage", "default": "Défaut (%1)", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirmer la dissociation", "sso.dissociate-confirm": "Êtes-vous sûr de vouloir dissocier votre compte de %1 ?", "info.latest-flags": "Derniers signalements", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Aucun signalement trouvé", "info.ban-history": "Historique de bannissement récent", "info.no-ban-history": "Cet utilisateur n'a jamais été banni", "info.banned-until": "Banni jusqu'au %1", "info.banned-expiry": "Expiration", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Banni de façon permanente", "info.banned-reason-label": "Raison", "info.banned-no-reason": "Aucune raison donnée", diff --git a/public/language/gl/admin/advanced/events.json b/public/language/gl/admin/advanced/events.json index 9327eef8d3..a249bb9721 100644 --- a/public/language/gl/admin/advanced/events.json +++ b/public/language/gl/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/gl/admin/manage/users.json b/public/language/gl/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/gl/admin/manage/users.json +++ b/public/language/gl/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/gl/admin/settings/navigation.json b/public/language/gl/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/gl/admin/settings/navigation.json +++ b/public/language/gl/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/gl/flags.json b/public/language/gl/flags.json index 295e7a1f1a..2dd293a0dd 100644 --- a/public/language/gl/flags.json +++ b/public/language/gl/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/gl/user.json b/public/language/gl/user.json index d4ec222e5c..f07ed633df 100644 --- a/public/language/gl/user.json +++ b/public/language/gl/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Expulsado", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Desconectado", "deleted": "Deleted", "username": "Nome de usuario", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Últimos reportes", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Non se atopou ninguna mensaxe reportada", "info.ban-history": "Histórico recente de bans", "info.no-ban-history": "Este usuario nunca foi baneado", "info.banned-until": "Baneado hasta %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Baneado permanentemente", "info.banned-reason-label": "Motivo", "info.banned-no-reason": "Motivo non especificado", diff --git a/public/language/he/admin/advanced/events.json b/public/language/he/admin/advanced/events.json index baac86f2d6..10cfb34164 100644 --- a/public/language/he/admin/advanced/events.json +++ b/public/language/he/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "סוג אירוע", "filter-start": "מתאריך", "filter-end": "עד תאריך", + "filter-user": "סינון לפי משתמש", + "filter-user.placeholder": "הקלד שם משתמש לסינון...", + "filter-group": "סינון לפי קבוצה", + "filter-group.placeholder": "הקלד שם קבוצה לסינון...", "filter-per-page": "פריטים בכל דף" } \ No newline at end of file diff --git a/public/language/he/admin/manage/users.json b/public/language/he/admin/manage/users.json index a2edf09079..605a71b38f 100644 --- a/public/language/he/admin/manage/users.json +++ b/public/language/he/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "מייל הזמנה נשלח ל-%1", "alerts.x-users-found": "%1 משתמש(ים) נמצאו, (%2 שניות)", "alerts.select-a-single-user-to-change-email": "בחר משתמש בודד כדי לשנות את האימייל", + "export": "ייצוא", + "export-users-fields-title": "בחר שדות ב-CSV", + "export-field-email": "דוא\"ל", + "export-field-username": "שם משתמש", + "export-field-uid": "מזהה משתמש", + "export-field-ip": "IP", + "export-field-joindate": "תאריך הצטרפות", + "export-field-lastonline": "נראה לאחרונה", + "export-field-lastposttime": "זמן פוסט אחרון", + "export-field-reputation": "מוניטין", + "export-field-postcount": "כמות פוסטים", + "export-field-topiccount": "כמות נושאים", + "export-field-profileviews": "ציפיות בפרופיל", + "export-field-followercount": "מספר עוקבים", + "export-field-followingcount": "מספר עקיבות", + "export-field-fullname": "שם מלא", + "export-field-website": "אתר אינטרנט", + "export-field-location": "מיקום", + "export-field-birthday": "יום הולדת", + "export-field-signature": "חתימה", + "export-field-aboutme": "אודותיי", + "export-users-started": "מייצא משתמשים כ-csv, הדבר עשוי להימשך זמן מה. תקבל הודעה עם השלמתה.", "export-users-completed": "משתמשים יוצאו כ-csv, לחץ כאן להורדה.", "email": "אימייל", diff --git a/public/language/he/admin/settings/navigation.json b/public/language/he/admin/settings/navigation.json index 69d79fc3e5..9824b5390b 100644 --- a/public/language/he/admin/settings/navigation.json +++ b/public/language/he/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "id: אופציונאלי", "properties": "הרשאות:", - "groups": "קבוצות:", + "show-to-groups": "הצג לקבוצות:", "open-new-window": "ייפתח בכרטיסייה חדשה", "dropdown": "תפריט נפתח", "dropdown-placeholder": "מקמו את פריטי התפריט הנפתח , באופן הבא:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/he/admin/settings/post.json b/public/language/he/admin/settings/post.json index 5c2f14a0ef..c317b33e0d 100644 --- a/public/language/he/admin/settings/post.json +++ b/public/language/he/admin/settings/post.json @@ -4,11 +4,11 @@ "sorting.post-default": "מיון ברירת מחדל של פוסטים", "sorting.oldest-to-newest": "מישן לחדש", "sorting.newest-to-oldest": "מחדש לישן", - "sorting.recently-replied": "Recently Replied", - "sorting.recently-created": "Recently Created", + "sorting.recently-replied": "הושב לאחרונה", + "sorting.recently-created": "נוצר לאחרונה", "sorting.most-votes": "רוב ההצבעות", "sorting.most-posts": "הכי הרבה פוסטים", - "sorting.most-views": "Most Views", + "sorting.most-views": "צפיות מרובות", "sorting.topic-default": "מיון ברירת מחדל של נושאים", "length": "אורך פוסט", "post-queue": "תור פוסטים", diff --git a/public/language/he/aria.json b/public/language/he/aria.json index 3dab117f49..0812134c09 100644 --- a/public/language/he/aria.json +++ b/public/language/he/aria.json @@ -2,7 +2,7 @@ "post-sort-option": "אפשרות מיון פוסטים, %1", "topic-sort-option": "אפשרות מיון נושאים, %1", "user-avatar-for": "סמליל משתמש עבור %1", - "user-watched-tags": "User watched tags", - "delete-upload-button": "Delete upload button", - "group-page-link-for": "Group page link for %1" + "user-watched-tags": "צפיית משתמש בתגיות", + "delete-upload-button": "כפתור מחיקת העלאה", + "group-page-link-for": "%1 קבוצת דפים מקושרים " } \ No newline at end of file diff --git a/public/language/he/flags.json b/public/language/he/flags.json index d6a8a8e9c5..a4d4eccb90 100644 --- a/public/language/he/flags.json +++ b/public/language/he/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "פעולות כלליות", "bulk-resolve": "השלמת דיווחים", "bulk-success": "%1 דיווחים עודכנו", - "flagged-timeago-readable": "מדווחים (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[דיווח אוטומטי] פוסט זה קיבל %1 הצבעות למטה." } \ No newline at end of file diff --git a/public/language/he/login.json b/public/language/he/login.json index 8ce6aa9e4c..69ab89cb01 100644 --- a/public/language/he/login.json +++ b/public/language/he/login.json @@ -7,6 +7,6 @@ "failed-login-attempt": "ההתחברות נכשלה", "login-successful": "התחברת בהצלחה!", "dont-have-account": "אין לך חשבון עדיין?", - "logged-out-due-to-inactivity": "התנתקת מפאנל האדמין בגלל חוסר אקטיביות", + "logged-out-due-to-inactivity": "התנתקת מפאנל הניהול בעקבות חוסר פעילות", "caps-lock-enabled": "Caps Lock מופעל" } \ No newline at end of file diff --git a/public/language/he/themes/harmony.json b/public/language/he/themes/harmony.json index 9833d8217e..67cdfdf0fe 100644 --- a/public/language/he/themes/harmony.json +++ b/public/language/he/themes/harmony.json @@ -7,7 +7,7 @@ "login-register-to-search": "התחברו או הירשמו כדי לחפש.", "settings.title": "הגדרות ערכת נושא", "settings.enableQuickReply": "הפעלת תגובה מהירה", - "settings.enableBreadcrumbs": "Enable breadcrumbs", + "settings.enableBreadcrumbs": "אפשר סימני דרך", "settings.centerHeaderElements": "מרכוז אלמנטים של כותרת", "settings.mobileTopicTeasers": "הצגת טיזרים של נושאים בנייד", "settings.stickyToolbar": "הצמד את סרגל הכלים בעת גלילה", diff --git a/public/language/he/topic.json b/public/language/he/topic.json index 98f60636e8..bda2e1e7ce 100644 --- a/public/language/he/topic.json +++ b/public/language/he/topic.json @@ -175,15 +175,15 @@ "composer.thumb-file-label": "או העלו קובץ", "composer.thumb-remove": "ניקוי שדות", "composer.drag-and-drop-images": "גררו תמונות לכאן", - "more-users-and-guests": "%1 משתמשים נוספים ו-%2 אורחים", - "more-users": "%1 משתמשים נוספים", - "more-guests": "%1 אורחים נוספים", + "more-users-and-guests": "%1 עוד משתמש(ים) ו-%2 אורח(ים)", + "more-users": "%1 עוד משתמש(ים)", + "more-guests": "%1 עוד אורח(ים)", "users-and-others": "%1 ו-%2 אחרים", "sort-by": "מיון לפי", "oldest-to-newest": "מהישן לחדש", "newest-to-oldest": "מהחדש לישן", - "recently-replied": "Recently Replied", - "recently-created": "Recently Created", + "recently-replied": "הושב לאחרונה", + "recently-created": "נוצר לאחרונה", "most-votes": "הכי הרבה הצבעות", "most-posts": "הכי הרבה פוסטים", "most-views": "הכי הרבה צפיות", diff --git a/public/language/he/user.json b/public/language/he/user.json index 5c68e75b70..7b91ca75d9 100644 --- a/public/language/he/user.json +++ b/public/language/he/user.json @@ -1,7 +1,9 @@ { "user-menu": "תפריט משתמש", "banned": "מורחק", + "unbanned": "Unbanned", "muted": "מושתק", + "unmuted": "Unmuted", "offline": "לא מחובר", "deleted": "נמחק", "username": "שם משתמש", @@ -142,10 +144,10 @@ "follow-topics-you-create": "עקוב אחר נושאים שייצרת", "grouptitle": "כותרת הקבוצה", "group-order-help": "בחר קבוצה והשתמש בחצים על מנת לארגן כותרות", - "show-group-title": "Show group title", - "hide-group-title": "Hide group title", - "order-group-up": "Order group up", - "order-group-down": "Order group down", + "show-group-title": "הצג כותרת קבוצה", + "hide-group-title": "הסתר כותרת קבוצה", + "order-group-up": "מיין קבוצה ישר", + "order-group-down": "מיין קבוצה הפוך", "no-group-title": "ללא כותרת לקבוצה", "select-skin": "בחר מראה", "default": "ברירת מחדל (%1)", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "אשר ביטול שיוך", "sso.dissociate-confirm": "האם אתה בטוח שאתה רוצה לבטל שיוך חשבונך מ%1?", "info.latest-flags": "דיווחים אחרונים", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "לא נמצאו פוסטים מדווחים", "info.ban-history": "היסטוריית הרחקות", "info.no-ban-history": "משתמש זה לא הורחק מעולם", "info.banned-until": "הורחק עד %1", "info.banned-expiry": "פג תוקף", + "info.ban-expired": "Ban expired", "info.banned-permanently": "הורחק לצמיתות", "info.banned-reason-label": "סיבה", "info.banned-no-reason": "לא ניתנה סיבה.", diff --git a/public/language/hr/admin/advanced/events.json b/public/language/hr/admin/advanced/events.json index a6896562b3..eb61430fe6 100644 --- a/public/language/hr/admin/advanced/events.json +++ b/public/language/hr/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/hr/admin/manage/users.json b/public/language/hr/admin/manage/users.json index e6ed69a613..764cea28ea 100644 --- a/public/language/hr/admin/manage/users.json +++ b/public/language/hr/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "Email pozivnica je poslana %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/hr/admin/settings/navigation.json b/public/language/hr/admin/settings/navigation.json index f26633bb75..8e1d62adfd 100644 --- a/public/language/hr/admin/settings/navigation.json +++ b/public/language/hr/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: opcionalno", "properties": "Postavke", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Otvori u novom prozoru", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/hr/flags.json b/public/language/hr/flags.json index 467feb9f00..e9ea1ab90c 100644 --- a/public/language/hr/flags.json +++ b/public/language/hr/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/hr/user.json b/public/language/hr/user.json index a006735356..5bc99ceadc 100644 --- a/public/language/hr/user.json +++ b/public/language/hr/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Blokiran", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Nije na mreži", "deleted": "Deleted", "username": "Korisničko ime", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Zadnja zastava", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Nema objava sa zastavama", "info.ban-history": "Povijest nedavno blokiranih", "info.no-ban-history": "Ovaj korisnik nikad nije bio blokiran", "info.banned-until": "Blokiran do %1!", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Trajno blokiran", "info.banned-reason-label": "Razlog", "info.banned-no-reason": "Razlog nije dan.", diff --git a/public/language/hu/admin/admin.json b/public/language/hu/admin/admin.json index 8248580557..9fe669de04 100644 --- a/public/language/hu/admin/admin.json +++ b/public/language/hu/admin/admin.json @@ -4,15 +4,15 @@ "acp-title": "%1 | NodeBB Adminisztrációs vezérlőpult", "settings-header-contents": "Tartalmak", - "changes-saved": "Changes Saved", - "changes-saved-message": "Your changes to the NodeBB configuration have been saved.", + "changes-saved": "Változások mentve", + "changes-saved-message": "A NodeBB konfigurációjának módosításai mentésre kerültek.", "changes-not-saved": "A változtatások nincsenek elmentve", "changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)", - "save-changes": "Save changes", + "save-changes": "Változások mentése", "min": "Min:", "max": "Max:", - "view": "View", - "edit": "Edit", - "add": "Add", - "select-icon": "Select Icon" + "view": "Megnéz", + "edit": "Szerkeszt", + "add": "Hozzáad", + "select-icon": "Válassz ikont" } \ No newline at end of file diff --git a/public/language/hu/admin/advanced/database.json b/public/language/hu/admin/advanced/database.json index b903a088c9..cafdbc1ce6 100644 --- a/public/language/hu/admin/advanced/database.json +++ b/public/language/hu/admin/advanced/database.json @@ -17,7 +17,7 @@ "mongo.file-size": "Fájlméret", "mongo.resident-memory": "Rezidens memória", "mongo.virtual-memory": "Virtuális memória", - "mongo.mapped-memory": "Mapped Memory", + "mongo.mapped-memory": "Leképezett memória", "mongo.bytes-in": "Bejövő bájtok", "mongo.bytes-out": "Kimenő bájtok", "mongo.num-requests": "Kérések száma", diff --git a/public/language/hu/admin/advanced/events.json b/public/language/hu/admin/advanced/events.json index ae63ff3573..18223d80d8 100644 --- a/public/language/hu/admin/advanced/events.json +++ b/public/language/hu/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Esemény típus", "filter-start": "Kezdő dátum", "filter-end": "Befejező dátum", + "filter-user": "Szűrés felhasználónként", + "filter-user.placeholder": "Írj be egy felhasználónevet a szűréshez...", + "filter-group": "Szűrés csoportonként", + "filter-group.placeholder": "Írj be egy csoportnevet a szűréshez...", "filter-per-page": "Oldalanként" } \ No newline at end of file diff --git a/public/language/hu/admin/dashboard.json b/public/language/hu/admin/dashboard.json index 2667ac9af7..1016b5b833 100644 --- a/public/language/hu/admin/dashboard.json +++ b/public/language/hu/admin/dashboard.json @@ -95,7 +95,7 @@ "expand-analytics": "Expand analytics", "clear-search-history": "Clear Search History", "clear-search-history-confirm": "Are you sure you want to clear entire search history?", - "search-term": "Term", - "search-count": "Count", - "view-all": "View all" + "search-term": "Feltétel", + "search-count": "Számláló", + "view-all": "Összes mutatása" } diff --git a/public/language/hu/admin/extend/widgets.json b/public/language/hu/admin/extend/widgets.json index 26f852ed3b..090f1b1996 100644 --- a/public/language/hu/admin/extend/widgets.json +++ b/public/language/hu/admin/extend/widgets.json @@ -5,7 +5,7 @@ "none-installed": "Nincs elérhető modul! Aktiváld a widget essentials beépülőt a beépülők oldalon.", "clone-from": "Modul klónozása innen", "containers.available": "Elérhető tárolók", - "containers.explanation": "Drag and drop on top of any widget", + "containers.explanation": "Húzd rá az alábbiakat bármely modulra", "containers.none": "Nincs", "container.well": "Well", "container.jumbotron": "Jumbotron", @@ -30,6 +30,6 @@ "start-date": "Start date", "end-date": "End date", "hide-on-mobile": "Elrejtés mobilon", - "hide-drafts": "Hide drafts", - "show-drafts": "Show drafts" + "hide-drafts": "Piszkozat elrejtése", + "show-drafts": "Piszkozat megjelenítése" } \ No newline at end of file diff --git a/public/language/hu/admin/manage/privileges.json b/public/language/hu/admin/manage/privileges.json index 2d7b67bb95..3ec3b259a3 100644 --- a/public/language/hu/admin/manage/privileges.json +++ b/public/language/hu/admin/manage/privileges.json @@ -8,7 +8,7 @@ "edit-privileges": "Jogosultságok szerkesztése", "select-clear-all": "Mind kiválasztása/törlése", "chat": "Csevegés", - "chat-with-privileged": "Chat with Privileged", + "chat-with-privileged": "Csevegés kivételezéssel", "upload-images": "Képek feltöltése", "upload-files": "Fájlok feltöltése", "signature": "Aláírás", diff --git a/public/language/hu/admin/manage/users.json b/public/language/hu/admin/manage/users.json index 9a564d8d7d..75bb4aec4a 100644 --- a/public/language/hu/admin/manage/users.json +++ b/public/language/hu/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "Meghívó email elküldve %1 részére", "alerts.x-users-found": "%1 talált felhasználó (%2 másodperc)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Exportálás", + "export-users-fields-title": "Választott CSV mezők", + "export-field-email": "Email", + "export-field-username": "Felhasználónév", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Regisztráció dátuma", + "export-field-lastonline": "Utoljára elérhető", + "export-field-lastposttime": "Utolsó hozzászólás ideje", + "export-field-reputation": "Hírnév", + "export-field-postcount": "Hozzászólások száma", + "export-field-topiccount": "Témák száma", + "export-field-profileviews": "Profil megtekintések", + "export-field-followercount": "Követők száma", + "export-field-followingcount": "Követések száma", + "export-field-fullname": "Teljes név", + "export-field-website": "Weboldal", + "export-field-location": "Lakhely", + "export-field-birthday": "Születésnap", + "export-field-signature": "Aláírás", + "export-field-aboutme": "Rólam", + "export-users-started": "Felhasználók exportálása CSV formátumban. Ez eltarthat egy darabig. Értesítést fogsz kapni, ha elkészült.", "export-users-completed": "Felhasználók exportálva CSV formátumban, kattints ide a letöltéshez.", "email": "Email", diff --git a/public/language/hu/admin/settings/navigation.json b/public/language/hu/admin/settings/navigation.json index 14adda31e1..12a0210e99 100644 --- a/public/language/hu/admin/settings/navigation.json +++ b/public/language/hu/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "HTML azonosító: nem kötelező", "properties": "Tulajdonságok:", - "groups": "Csoportok:", + "show-to-groups": "Show to Groups:", "open-new-window": "Megnyitás új ablakban", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/hu/admin/settings/post.json b/public/language/hu/admin/settings/post.json index 4fc9580d9f..e368a205ec 100644 --- a/public/language/hu/admin/settings/post.json +++ b/public/language/hu/admin/settings/post.json @@ -4,11 +4,11 @@ "sorting.post-default": "Alapértelmezett rendezés", "sorting.oldest-to-newest": "Régebbitől az újabb felé", "sorting.newest-to-oldest": "Újabbtól a régebbi felé", - "sorting.recently-replied": "Recently Replied", - "sorting.recently-created": "Recently Created", + "sorting.recently-replied": "Nemrég megválaszolt", + "sorting.recently-created": "Nemrég létrehozott", "sorting.most-votes": "Legtöbb szavazat", "sorting.most-posts": "Legtöbb hozzászólás", - "sorting.most-views": "Most Views", + "sorting.most-views": "Legtöbb Megtekintés", "sorting.topic-default": "Alapértelmezett témekör rendezés", "length": "Hozzászólás hossza", "post-queue": "Hozzászólás várólista", diff --git a/public/language/hu/admin/settings/reputation.json b/public/language/hu/admin/settings/reputation.json index 90650e75fa..d98443850e 100644 --- a/public/language/hu/admin/settings/reputation.json +++ b/public/language/hu/admin/settings/reputation.json @@ -23,12 +23,12 @@ "flags.limit-per-target": "Bizonyos dolgokat legfeljebb hányszor lehessen megjelölni", "flags.limit-per-target-placeholder": "Alapértelmezett: 0", "flags.limit-per-target-help": "Amikor egy hozzászólás vagy felhasználó több megjelölést kap, akkor minden megjelölés "jelentésnek" számít és hozzáadódik az eredeti megjelöléshez. Adj meg 0-tól eltérő értéket egy maximális jelölési szám beállításához.", - "flags.limit-post-flags-per-day": "Maximum number of times a user can flag posts in a day", - "flags.limit-post-flags-per-day-help": "Set to 0 to disable, (default: 10)", - "flags.limit-user-flags-per-day": "Maximum number of times a user can flag users in a day", - "flags.limit-user-flags-per-day-help": "Set to 0 to disable, (default: 10)", - "flags.auto-flag-on-downvote-threshold": "Number of downvotes to auto flag posts", - "flags.auto-flag-on-downvote-threshold-help": "Set to 0 to disable, (default: 0)", + "flags.limit-post-flags-per-day": "Egy felhasználó egy nap maximum hányszor jelölheti meg a hozzászólásokat", + "flags.limit-post-flags-per-day-help": "Állítsd 0-ra a tiltáshoz, (alapértelmezetten: 10)", + "flags.limit-user-flags-per-day": "Egy felhasználó egy nap maximum hányszor jelölhet meg felhasználókat", + "flags.limit-user-flags-per-day-help": "Állítsd 0-ra a tiltáshoz, (alapértelmezetten: 10)", + "flags.auto-flag-on-downvote-threshold": "Nemtetszések száma a hozzászólás automatikus megjelöléséhez", + "flags.auto-flag-on-downvote-threshold-help": "Állítsd 0-ra a tiltáshoz, (alapértelmezetten: 0)", "flags.auto-resolve-on-ban": "A felhasználó összes megjelölésének feloldása, amikor kitiltásra kerül", "flags.action-on-resolve": "Tegye a következőket, ha egy megjelölés megoldódott", "flags.action-on-reject": "Tegye a következőket, ha egy megjelölés visszautasított", diff --git a/public/language/hu/admin/settings/user.json b/public/language/hu/admin/settings/user.json index 5ebb8b5bee..49934fec5c 100644 --- a/public/language/hu/admin/settings/user.json +++ b/public/language/hu/admin/settings/user.json @@ -79,14 +79,14 @@ "follow-replied-topics": "Minden témakör követése, amire válaszoltál", "default-notification-settings": "Alapértelmezett értesítési beállítások", "categoryWatchState": "Alapértelmezett kategóriafigyelés", - "categoryWatchState.tracking": "Tracking", + "categoryWatchState.tracking": "Követés", "categoryWatchState.notwatching": "Nem megfigyelt", "categoryWatchState.ignoring": "Mellőzés", - "restrictions-new": "New User Restrictions", - "restrictions.rep-threshold": "Reputation threshold before these restrictions are lifted", - "restrictions.seconds-between-new": "Seconds between posts for new users", - "restrictions.seconds-before-new": "Seconds before a new user can make their first post", - "restrictions.seconds-edit-after-new": "Number of seconds a post remains editable for new users (set to 0 to disable)", - "restrictions.milliseconds-between-messages": "Time between chat messages for new users (ms)", - "restrictions.groups-exempt-from-new-user-restrictions": "Select groups that should be exempt from the new user restrictions" + "restrictions-new": "Új felhasználók korlátozása", + "restrictions.rep-threshold": "Szükséges hírnév szint ezen korlátozások feloldásához", + "restrictions.seconds-between-new": "Hozzászólások közötti kötelező szünet új felhasználóknak (másodpercben)", + "restrictions.seconds-before-new": "Szükséges eltelt idő, mielőtt egy új felhasználó hozzászólást írhat (másodpercben)", + "restrictions.seconds-edit-after-new": "Hány másodpercig maradjanak a hozzászólások szerkeszthetőek az új felhasználóknak (0: nincs korlátozás)", + "restrictions.milliseconds-between-messages": "Csevegési üzenetek közötti idő új felhasználóknak ezredmásodpercben", + "restrictions.groups-exempt-from-new-user-restrictions": "Válaszd ki azokat a csoportokat, amelyek mentesülnek az új felhasználói korlátozások alól." } diff --git a/public/language/hu/aria.json b/public/language/hu/aria.json index 6f023dcae0..d42435acad 100644 --- a/public/language/hu/aria.json +++ b/public/language/hu/aria.json @@ -1,8 +1,8 @@ { - "post-sort-option": "Post sort option, %1", - "topic-sort-option": "Topic sort option, %1", - "user-avatar-for": "User avatar for %1", - "user-watched-tags": "User watched tags", - "delete-upload-button": "Delete upload button", - "group-page-link-for": "Group page link for %1" + "post-sort-option": "Hozzászólás rendezés, %1", + "topic-sort-option": "Téma rendezés, %1", + "user-avatar-for": "Felhasználó avatár %1", + "user-watched-tags": "Felhasználó által figyelt címkék", + "delete-upload-button": "Feltöltő gomb törlése", + "group-page-link-for": "Csoport oldal linkje %1" } \ No newline at end of file diff --git a/public/language/hu/category.json b/public/language/hu/category.json index e58125b3f1..9779cff0aa 100644 --- a/public/language/hu/category.json +++ b/public/language/hu/category.json @@ -10,15 +10,15 @@ "watch": "Figyelés", "ignore": "Mellőzés", "watching": "Figyelés", - "tracking": "Tracking", + "tracking": "Követés", "not-watching": "Nem megfigyelt", "ignoring": "Mellőzés", - "watching.description": "Notify me of new topics.
Show topics in unread & recent", - "tracking.description": "Shows topics in unread & recent", + "watching.description": "Értesítsen az új válaszokról.
Témakör megjelenítése olvasatlanként.", + "tracking.description": "Témakörök mutatása a friss és olvasatlanok között", "not-watching.description": "Olvasatlan témakörök elrejtése, csak a friss témák mutatása", - "ignoring.description": "Do not show topics in unread & recent", + "ignoring.description": "Olvasatlan és friss témakörök elrejtése", "watching.message": "Most már figyeled ennek a kategóriának és az alkategóriáinak a frissítéseit", - "tracking.message": "You are now tracking updates from this category and all subcategories", + "tracking.message": "Most már figyeled ennek a kategóriának és az alkategóriáinak a frissítéseit", "notwatching.message": "Nem figyeled ennek a kategóriának és alkategóriáinak frissítéseit", "ignoring.message": "Nem kapsz most már frissítéseket erről a kategóriáról és az alkategóriáiról", "watched-categories": "Figyelt kategóriák", diff --git a/public/language/hu/error.json b/public/language/hu/error.json index a5f2a5190a..124ab066db 100644 --- a/public/language/hu/error.json +++ b/public/language/hu/error.json @@ -32,7 +32,7 @@ "folder-exists": "Mappa létezik", "invalid-pagination-value": "Érvénytelen lapozási érték, legalább %1 kell lennie és legfeljebb %2 -nak/nek", "username-taken": "Foglalt felhasználónév", - "email-taken": "Email address is already taken.", + "email-taken": "Ez az email cím már foglalt.", "email-nochange": "The email entered is the same as the email already on file.", "email-invited": "Ez az email cím már meg lett hívva", "email-not-confirmed": "Posting in some categories or topics is enabled once your email is confirmed, please click here to send a confirmation email.", @@ -91,7 +91,7 @@ "category-not-selected": "A kategória nincs kiválasztva.", "too-many-posts": "Csak %1 másodpercenként hozhatsz létre új bejegyzést - kérlek várj egy kicsit mielőtt új bejegyzést tennél közzé", "too-many-posts-newbie": "Új felhasználóként csak egyszer készíthetsz bejegyzést %1 másodpercen belül, amíg el nem éred a %2 szintet - kérlek várj egy kicsit mielőtt új bejegyzést tennél közzé", - "too-many-posts-newbie-minutes": "As a new user, you can only post once every %1 minute(s) until you have earned %2 reputation - please wait before posting again", + "too-many-posts-newbie-minutes": "Új felhasználóként csak egyszer készíthetsz bejegyzést %1 másodpercen belül, amíg el nem éred a %2 szintet - kérlek várj egy kicsit mielőtt új bejegyzést tennél közzé", "already-posting": "Már írsz egy bejegyzést", "tag-too-short": "Kérlek hosszabb címkét adj meg. A címke legalább %1 karaktert kell, hogy tartalmazzon", "tag-too-long": "Kérlek rövidebb címkét adj meg. A címkék nem lehetnek hosszabbak %1 karakternél", @@ -184,10 +184,10 @@ "user-already-flagged": "Már megjelölted ez a felhasználót", "post-flagged-too-many-times": "Ez a bejegyzés már meg lett jelölve egy másik felhasználó által", "user-flagged-too-many-times": "Ez a felhasználó már meg lett jelölve egy másik felhasználó által", - "too-many-post-flags-per-day": "You can only flag %1 post(s) per day", - "too-many-user-flags-per-day": "You can only flag %1 user(s) per day", + "too-many-post-flags-per-day": "Naponta csak %1 bejegyzést jelölhetsz meg", + "too-many-user-flags-per-day": "Naponta csak %1 felhasználót jelölhetsz meg", "cant-flag-privileged": "Nem jelentheted be felhatalmazott felhasználókat vagy a bejegyzéseik tartalmát (moderátor/globális moderátor/adminok)", - "cant-locate-flag-report": "Cannot locate flag report", + "cant-locate-flag-report": "Bejelentés nem található", "self-vote": "Nem szavazhatsz a saját hozzászólásodra", "too-many-upvotes-today": "Naponta csak %1 alkalommal szavazhat pozitívan", "too-many-upvotes-today-user": "Egy felhasználóra naponta csak %1 alkalommal szavazhat pozitívan", @@ -221,7 +221,7 @@ "already-unblocked": "Ennek a felhasználóknak már fel van oldva a tiltása", "no-connection": "Probléma van az internet kapcsolatoddal", "socket-reconnect-failed": "Nem lehet elérni a szervert. Kattints ide az újra próbáláshoz vagy várj egy kicsit", - "invalid-plugin-id": "Invalid plugin ID", + "invalid-plugin-id": "Érvénytelen plugin ID", "plugin-not-whitelisted": "Ez a bővítmény nem telepíthető – csak olyan bővítmények telepíthetőek amiket a NodeBB Package Manager az ACP-n keresztül tud telepíteni", "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", diff --git a/public/language/hu/flags.json b/public/language/hu/flags.json index 3b46cc7cc4..8cfcca9f6a 100644 --- a/public/language/hu/flags.json +++ b/public/language/hu/flags.json @@ -1,6 +1,6 @@ { "state": "Állapot", - "report": "Report", + "report": "Jelentés", "reports": "Jelentés", "first-reported": "Először jelentve", "no-flags": "Hurrá! Nincs megjelölés.", @@ -9,8 +9,8 @@ "update": "Frissítés", "updated": "Frissítve", "resolved": "Megoldva", - "report-added": "Added", - "report-rescinded": "Rescinded", + "report-added": "Hozzáadva", + "report-rescinded": "Visszavont", "target-purged": "A tartalom amire a jelölő mutat már meg lett tiszítva vagy nem létezik.", "target-aboutme-empty": "This user has no "About Me" set.", @@ -90,6 +90,6 @@ "bulk-actions": "Tömeges műveletek", "bulk-resolve": "Megoldott jelölés", "bulk-success": "%1 jelölő frissítve", - "flagged-timeago-readable": "Megjelölve (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Automatikus Megjelölés] %1 negatív szavazatot kapott." } \ No newline at end of file diff --git a/public/language/hu/global.json b/public/language/hu/global.json index d268ac6361..eec736ebc7 100644 --- a/public/language/hu/global.json +++ b/public/language/hu/global.json @@ -24,15 +24,15 @@ "cancel": "Cancel", "close": "Bezárás", "pagination": "Lapozás", - "pagination.previouspage": "Previous Page", - "pagination.nextpage": "Next Page", - "pagination.firstpage": "First Page", - "pagination.lastpage": "Last Page", + "pagination.previouspage": "Előző oldal", + "pagination.nextpage": "Következő oldal", + "pagination.firstpage": "Első oldal", + "pagination.lastpage": "Utolsó oldal", "pagination.out-of": "%1 / %2", "pagination.enter-index": "Ugrás a bejegyzés indexére", - "pagination.go-to-page": "Go to page", - "pagination.page-x": "Page %1", - "header.brand-logo": "Brand Logo", + "pagination.go-to-page": "Tovább az oldalra", + "pagination.page-x": "%1. oldal", + "header.brand-logo": "Logó", "header.admin": "Admin", "header.categories": "Kategóriák", "header.recent": "Legutóbbi", @@ -140,12 +140,12 @@ "edited": "Szerkesztett", "disabled": "Letiltva", "select": "Kiválaszt", - "selected": "Selected", + "selected": "Kiválasztva", "copied": "Copied", "user-search-prompt": "Írj be valamit, hogy felhasználókra keress...", "hidden": "Rejtve", "sort": "Rendezés", "actions": "Actions", - "rss-feed": "RSS Feed", - "skip-to-content": "Skip to content" + "rss-feed": "RSS Hírcsatorna", + "skip-to-content": "Ugrás a tartalomra" } \ No newline at end of file diff --git a/public/language/hu/modules.json b/public/language/hu/modules.json index 966ae38ef4..d59eab74e2 100644 --- a/public/language/hu/modules.json +++ b/public/language/hu/modules.json @@ -68,8 +68,8 @@ "chat.in-room": "Ebben a szobában", "chat.kick": "Kirúgás", "chat.show-ip": "IP cím mutatása", - "chat.copy-text": "Copy Text", - "chat.copy-link": "Copy Link", + "chat.copy-text": "Szöveg másolása", + "chat.copy-link": "Link másolása", "chat.owner": "Szoba tulajdonos", "chat.grant-rescind-ownership": "Grant/Rescind Ownership", "chat.system.user-join": "%1 has joined the room ", diff --git a/public/language/hu/notifications.json b/public/language/hu/notifications.json index 43eeda6b5e..e1398d636e 100644 --- a/public/language/hu/notifications.json +++ b/public/language/hu/notifications.json @@ -13,14 +13,14 @@ "all": "Mind", "topics": "Témakör", "tags": "Tags", - "categories": "Categories", + "categories": "Kategóriák", "replies": "Válasz", "chat": "Chat", "group-chat": "Csoport Csevegők", "public-chat": "Public Chats", "follows": "Követés", "upvote": "Kedvelés", - "awards": "Awards", + "awards": "Jutalmak", "new-flags": "Új megjelölés", "my-flags": "Hozzám társított megjelölés", "bans": "Kitiltás", @@ -56,7 +56,7 @@ "user-posted-topic-with-tag-dual": "%1 has posted a new topic with tags %2 and %3", "user-posted-topic-with-tag-triple": "%1 has posted a new topic with tags %2, %3 and %4", "user-posted-topic-with-tag-multiple": "%1 has posted a new topic with tags %2", - "user-posted-topic-in-category": "%1 has posted a new topic in %2", + "user-posted-topic-in-category": "%1 új témakört hozott létre: %2", "user-started-following-you": "%1 elkezdett követni téged.", "user-started-following-you-dual": "%1 és%2 elkezdett követni téged.", "user-started-following-you-triple": "%1, %2 and %3 started following you.", @@ -83,7 +83,7 @@ "notificationType-upvote": "Mikor valaki kedveli a hozzászólásod", "notificationType-new-topic": "Mikor egy követett felhasználód hozzászól", "notificationType-new-topic-with-tag": "When a topic is posted with a tag you follow", - "notificationType-new-topic-in-category": "When a topic is posted in a category you are watching", + "notificationType-new-topic-in-category": "Amikor egy téma a megfigyelt kategóriában jelenik meg.", "notificationType-new-reply": "Mikor egy általad figyelt témakörre válasz érkezik", "notificationType-post-edit": "Mikor egy a megfigyelt témakörön belül módosítanak egy bejegyzést", "notificationType-follow": "Mikor valaki elkezd követni téged", @@ -97,5 +97,5 @@ "notificationType-post-queue": "Mikor egy új hozzászólás várólistára kerül", "notificationType-new-post-flag": "Mikor egy hozzászólás megjelölésre kerül", "notificationType-new-user-flag": "Mikor egy felhasználó megjelölésre kerül", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "Amikor új jutalomban részesülsz" } \ No newline at end of file diff --git a/public/language/hu/post-queue.json b/public/language/hu/post-queue.json index ae86261b30..90062aaf46 100644 --- a/public/language/hu/post-queue.json +++ b/public/language/hu/post-queue.json @@ -3,10 +3,10 @@ "post-queue": "Hozzászólási várósor", "no-queued-posts": "Nincsenek hozzászólások a bejegyzési sorban.", "no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.", - "enabling-help": "The post queue is currently disabled. To enable this feature, go to Settings → Post → Post Queue and enable Post Queue.", + "enabling-help": "A hozzászólási várólista jelenleg Letiltva. A bekapcsoláshoz menj a Beállítások → Hozzászólások → Hozzászólás várólista-hoz és engedélyezd a Hozzászólás várólistát", "back-to-list": "Vissza a bejegyzési sorhoz", - "public-intro": "If you have any queued posts, they will be shown here.", - "public-description": "This forum is configured to automatically queue posts from new accounts, pending moderator approval.
If you have queued posts awaiting approval, you will be able to see them here.", + "public-intro": "Ha vannak várakozó hozzászólások, azok itt fognak megjelenni.", + "public-description": "Ez a fórum úgy van beállítva, hogy az új felhasználók hozzászólásai várólistára kerülnek, amíg a moderátorok jóváhagyják azokat.
Ha vannak jóváhagyásra váró hozzászólásaid, akkor azokat itt láthatod.", "user": "Felhasználó", "when": "Amikor", "category": "Kategória", diff --git a/public/language/hu/rewards.json b/public/language/hu/rewards.json index f923cf1500..459e5f27b3 100644 --- a/public/language/hu/rewards.json +++ b/public/language/hu/rewards.json @@ -1,10 +1,10 @@ { - "awarded-x-reputation": "You have been awarded %1 reputation", - "awarded-group-membership": "You have been added to the group %1", + "awarded-x-reputation": "%1 hírnevet kaptál", + "awarded-group-membership": "Hozzáadtak a %1 csoporthoz.", - "essentials/user.reputation-conditional-value": "(Reputation %1 %2)", - "essentials/user.postcount-conditional-value": "(Post Count %1 %2)", - "essentials/user.lastonline-conditional-value": "(Last Online %1 %2)", - "essentials/user.joindate-conditional-value": "(Join Date %1 %2)", - "essentials/user.daysregistered-conditional-value": "(Days Registered %1 %2)" + "essentials/user.reputation-conditional-value": "(Hírnév %1 %2)", + "essentials/user.postcount-conditional-value": "(Hozzászólások %1 %2)", + "essentials/user.lastonline-conditional-value": "(Utoljára elérhető %1 %2)", + "essentials/user.joindate-conditional-value": "(Csatlakozott %1 %2)", + "essentials/user.daysregistered-conditional-value": "(%1 %2 Napja regisztrált)" } \ No newline at end of file diff --git a/public/language/hu/search.json b/public/language/hu/search.json index 699107e1f5..7c9147d1be 100644 --- a/public/language/hu/search.json +++ b/public/language/hu/search.json @@ -7,7 +7,7 @@ "in-titles": "Címekben", "in-titles-posts": "Címekben és bejegyzésekben", "in-posts": "Bejegyzésekben", - "in-bookmarks": "In bookmarks", + "in-bookmarks": "Könyvjelzőkben", "in-categories": "Kategóriákban", "in-users": "Felhasználóknál", "in-tags": "Címkékben", diff --git a/public/language/hu/social.json b/public/language/hu/social.json index 2ba690a187..b0beb0b1cf 100644 --- a/public/language/hu/social.json +++ b/public/language/hu/social.json @@ -7,6 +7,6 @@ "sign-up-with-google": "Sign up with Google", "log-in-with-facebook": "Log in with Facebook", "continue-with-facebook": "Continue with Facebook", - "sign-in-with-linkedin": "Sign in with LinkedIn", - "sign-up-with-linkedin": "Sign up with LinkedIn" + "sign-in-with-linkedin": "Belépés LinkedIn-el", + "sign-up-with-linkedin": "Regisztráció LinkedIn-el" } \ No newline at end of file diff --git a/public/language/hu/tags.json b/public/language/hu/tags.json index 519311bf72..95a122d70c 100644 --- a/public/language/hu/tags.json +++ b/public/language/hu/tags.json @@ -3,7 +3,7 @@ "no-tag-topics": "Nem létezik témakör ezzel a címkével.", "no-tags-found": "Nem találhatók címkék", "tags": "Címkék", - "enter-tags-here": "Enter tags, %1 - %2 characters.", + "enter-tags-here": "Adj hozzám címkéket %1 - %2 karakter között.", "enter-tags-here-short": "Címke megadása...", "no-tags": "Még nincsenek címkék.", "select-tags": "Címkék kiválasztása", diff --git a/public/language/hu/themes/harmony.json b/public/language/hu/themes/harmony.json index 4e75b9f716..545972cc95 100644 --- a/public/language/hu/themes/harmony.json +++ b/public/language/hu/themes/harmony.json @@ -3,17 +3,17 @@ "skins": "Skins", "collapse": "Collapse", "expand": "Expand", - "sidebar-toggle": "Sidebar Toggle", + "sidebar-toggle": "Oldalsáv kapcsoló", "login-register-to-search": "Login or register to search.", "settings.title": "Theme settings", "settings.enableQuickReply": "Enable quick reply", - "settings.enableBreadcrumbs": "Enable breadcrumbs", + "settings.enableBreadcrumbs": "Kenyérmorzsa linkek engedélyezése", "settings.centerHeaderElements": "Center header elements", "settings.mobileTopicTeasers": "Show topic teasers on mobile", "settings.stickyToolbar": "Sticky toolbar", "settings.stickyToolbar.help": "The toolbar on topic and category pages will stick to the top of the page", "settings.autohideBottombar": "Auto hide bottom bar", "settings.autohideBottombar.help": "The bottom bar on mobile view will be hidden when the page is scrolled down", - "settings.openSidebars": "Open sidebars", + "settings.openSidebars": "Oldalsáv nyitása", "settings.chatModals": "Enable chat modals" } \ No newline at end of file diff --git a/public/language/hu/topic.json b/public/language/hu/topic.json index 3a9c408503..052985eb72 100644 --- a/public/language/hu/topic.json +++ b/public/language/hu/topic.json @@ -15,7 +15,7 @@ "replies-to-this-post": "%1 válasz", "one-reply-to-this-post": "1 válasz", "last-reply-time": "Utolsó válasz", - "reply-options": "Reply options", + "reply-options": "Válasz opciók", "reply-as-topic": "Válasz témakörként", "guest-login-reply": "Lépj be a válaszoláshoz", "login-to-view": "🔒 Jelentkezz be, hogy megtekinthesd", @@ -35,7 +35,7 @@ "pinned": "Rögzített", "pinned-with-expiry": "Kitűzve eddig: %1", "scheduled": "Időzített", - "deleted": "Deleted", + "deleted": "Törölve", "moved": "Áthelyezett", "moved-from": "Áthelyezés innen %1", "copy-code": "Copy Code", @@ -182,8 +182,8 @@ "sort-by": "Rendezés", "oldest-to-newest": "Régebbiek elől", "newest-to-oldest": "Újabbak elől", - "recently-replied": "Recently Replied", - "recently-created": "Recently Created", + "recently-replied": "Nemrég megválaszolt", + "recently-created": "Nemrég létrehozott", "most-votes": "Legtöbb szavazat", "most-posts": "Legtöbb bejegyzés", "most-views": "Legtöbb Megtekintés", @@ -208,13 +208,13 @@ "last-post": "Utolsó bejegyzés", "go-to-my-next-post": "Ugrás a következő bejegyzésemre", "no-more-next-post": "Neked nincs több bejegyzésed ebben a témakörben", - "open-composer": "Open composer", + "open-composer": "Composer megnyitása", "post-quick-reply": "Gyors válasz", "navigator.index": "Bejegyzés %1 / %2", "navigator.unread": "%1 olvasatlan", - "upvote-post": "Upvote post", - "downvote-post": "Downvote post", - "post-tools": "Post tools", - "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "upvote-post": "Bejegyzés kedvelése", + "downvote-post": "Bejegyzés nem kedvelése", + "post-tools": "Bejegyzés eszközök", + "unread-posts-link": "Olvasatlan bejegyzés link", + "thumb-image": "Téma bélyegkép" } \ No newline at end of file diff --git a/public/language/hu/unread.json b/public/language/hu/unread.json index 292d092bd1..a1ed4bd1a8 100644 --- a/public/language/hu/unread.json +++ b/public/language/hu/unread.json @@ -3,7 +3,7 @@ "no-unread-topics": "Nincs olvasatlan témakör.", "load-more": "További betöltése", "mark-as-read": "Megjelölés olvasottként", - "mark-as-unread": "Mark as Unread", + "mark-as-unread": "Megjelölés olvasatlanként", "selected": "Kiválasztva", "all": "Mind", "all-categories": "Minden kategória", diff --git a/public/language/hu/user.json b/public/language/hu/user.json index 909a322c52..083785c9e3 100644 --- a/public/language/hu/user.json +++ b/public/language/hu/user.json @@ -1,7 +1,9 @@ { - "user-menu": "User menu", + "user-menu": "Felhasználói menü", "banned": "Kitiltva", + "unbanned": "Unbanned", "muted": "Némítva", + "unmuted": "Unmuted", "offline": "Nem elérhető", "deleted": "Törölve", "username": "Felhasználónév", @@ -142,10 +144,10 @@ "follow-topics-you-create": "Témakör figyelése, amit létrehozol", "grouptitle": "Csoport címe", "group-order-help": "Válassz ki egy csoportot és használd a nyilakat, hogy elrendezd a címeket", - "show-group-title": "Show group title", - "hide-group-title": "Hide group title", - "order-group-up": "Order group up", - "order-group-down": "Order group down", + "show-group-title": "Csoportcím mutatása", + "hide-group-title": "Csoportcím elrejtése", + "order-group-up": "Csoport mozgatása feljebb", + "order-group-down": "Csoport mozgatása lejjebb", "no-group-title": "Nincs csoportcím", "select-skin": "Válassz egy kinézetet", "default": "Default (%1)", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Leválasztás megerősítése", "sso.dissociate-confirm": "Biztos le akarod választani a fiókod (%1) ?", "info.latest-flags": "Legutóbbi megjelölések", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Nem található megjelölt hozzászólás", "info.ban-history": "Kitiltási előzmény", "info.no-ban-history": "A felhasználó sosem volt kitiltva", "info.banned-until": "Kitiltás lejárata: %1", "info.banned-expiry": "Lejárat", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Végleges kitiltás", "info.banned-reason-label": "Oka", "info.banned-no-reason": "Az oka nincs megadva.", diff --git a/public/language/hy/admin/advanced/events.json b/public/language/hy/admin/advanced/events.json index 7c7155341a..1e0e497766 100644 --- a/public/language/hy/admin/advanced/events.json +++ b/public/language/hy/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Իրադարձության տեսակը", "filter-start": "Մեկնարկի ամսաթիվ", "filter-end": "Ավարտի ամսաթիվ", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Մեկ էջի համար" } \ No newline at end of file diff --git a/public/language/hy/admin/manage/users.json b/public/language/hy/admin/manage/users.json index 439d22d1af..f9fd1dffa7 100644 --- a/public/language/hy/admin/manage/users.json +++ b/public/language/hy/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "Հրավերի նամակ է ուղարկվել %1-ին", "alerts.x-users-found": "Գտնվել է %1 օգտատեր, (%2 վայրկյան)", "alerts.select-a-single-user-to-change-email": "Էլ. փոստը փոխելու համար ընտրեք մեկ օգտատեր", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Օգտագործողների արտահանում որպես csv, դա կարող է որոշ ժամանակ տևել: Դուք ծանուցում կստանաք, երբ այն ավարտվի:", "export-users-completed": "Օգտատերերը արտահանվել են որպես csv, ներբեռնելու համար սեղմեք այստեղ:", "email": "Էլ. հասցե", diff --git a/public/language/hy/admin/settings/navigation.json b/public/language/hy/admin/settings/navigation.json index 16d65a8818..4e77beb216 100644 --- a/public/language/hy/admin/settings/navigation.json +++ b/public/language/hy/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: ընտրովի ", "properties": "Հատկություններ", - "groups": "Խմբեր", + "show-to-groups": "Show to Groups:", "open-new-window": "Բացել նոր պատուհանում", "dropdown": "Բացվող", "dropdown-placeholder": "Տեղադրեք ձեր բացվող ընտրացանկի տարրերը ստորև, այսինքն՝
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/hy/flags.json b/public/language/hy/flags.json index 68ea85b320..e7eaa204e1 100644 --- a/public/language/hy/flags.json +++ b/public/language/hy/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Զանգվածային գործողություններ", "bulk-resolve": "Լուծել դրոշակ(ներ)ը", "bulk-success": "%1 դրոշները թարմացվել են", - "flagged-timeago-readable": "Նշված (% 2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Ստացել է %1 դեմ ձայն:" } \ No newline at end of file diff --git a/public/language/hy/user.json b/public/language/hy/user.json index 0461c15bfd..27c5e0b5af 100644 --- a/public/language/hy/user.json +++ b/public/language/hy/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Բլոկավորված", + "unbanned": "Unbanned", "muted": "Ձայն անջատված", + "unmuted": "Unmuted", "offline": "Օֆլայն", "deleted": "Ջնջված", "username": "Օգտատիրոջ անունը", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Հաստատեք տարանջատումը", "sso.dissociate-confirm": "Վստա՞հ եք, որ ցանկանում եք անջատել ձեր հաշիվը %1-ից:", "info.latest-flags": "Վերջին դրոշները", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Դրոշակավորված գրառումներ չեն գտնվել", "info.ban-history": "Արգելքի վերջին պատմությունը", "info.no-ban-history": "Այս օգտատերը երբեք չի արգելափակվել", "info.banned-until": "Արգելված է մինչև %1", "info.banned-expiry": "Ժամկետը", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Ընդմիշտ արգելված է", "info.banned-reason-label": "Պատճառ", "info.banned-no-reason": "Ոչ մի պատճառ չի նշվում:", diff --git a/public/language/id/admin/advanced/events.json b/public/language/id/admin/advanced/events.json index 9327eef8d3..a249bb9721 100644 --- a/public/language/id/admin/advanced/events.json +++ b/public/language/id/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/id/admin/manage/users.json b/public/language/id/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/id/admin/manage/users.json +++ b/public/language/id/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/id/admin/settings/navigation.json b/public/language/id/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/id/admin/settings/navigation.json +++ b/public/language/id/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/id/flags.json b/public/language/id/flags.json index 996e027833..0a42e3877f 100644 --- a/public/language/id/flags.json +++ b/public/language/id/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/id/user.json b/public/language/id/user.json index 2bbe3b831b..a8e0f29e1e 100644 --- a/public/language/id/user.json +++ b/public/language/id/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Banned", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Offline", "deleted": "Deleted", "username": "Nama Pengguna", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Latest Flags", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "No Flagged Posts Found", "info.ban-history": "Recent Ban History", "info.no-ban-history": "This user has never been banned", "info.banned-until": "Banned until %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Banned permanently", "info.banned-reason-label": "Reason", "info.banned-no-reason": "No reason given.", diff --git a/public/language/it/admin/advanced/events.json b/public/language/it/admin/advanced/events.json index 39b1f2f802..9bf4a8d612 100644 --- a/public/language/it/admin/advanced/events.json +++ b/public/language/it/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Tipo evento", "filter-start": "Data d'inizio", "filter-end": "Data di fine", + "filter-user": "Filtra per utente", + "filter-user.placeholder": "Digita il nome utente da filtrare...", + "filter-group": "Filtra per gruppo", + "filter-group.placeholder": "Digita il nome del gruppo da filtrare...", "filter-per-page": "Per pagina" } \ No newline at end of file diff --git a/public/language/it/admin/manage/groups.json b/public/language/it/admin/manage/groups.json index 978be53017..39e705b8b5 100644 --- a/public/language/it/admin/manage/groups.json +++ b/public/language/it/admin/manage/groups.json @@ -9,7 +9,7 @@ "badge": "Badge", "properties": "Proprieta", "description": "Descrizione del gruppo", - "member-count": "Numero Membri", + "member-count": "Numero membri", "system": "Sistema", "hidden": "Nascosto", "private": "Privato", diff --git a/public/language/it/admin/manage/users.json b/public/language/it/admin/manage/users.json index f7c1848426..11eba905a6 100644 --- a/public/language/it/admin/manage/users.json +++ b/public/language/it/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "Un invito è stato inviato tramite mail a %1", "alerts.x-users-found": "%1 utente(i) trovato(i), (%2 secondi)", "alerts.select-a-single-user-to-change-email": "Seleziona un singolo utente per modificare l'email", + "export": "Esporta", + "export-users-fields-title": "Seleziona campi CSV", + "export-field-email": "Email", + "export-field-username": "Nome utente", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Data iscrizione", + "export-field-lastonline": "Ultima volta online", + "export-field-lastposttime": "Ora ultimo post", + "export-field-reputation": "Reputazione", + "export-field-postcount": "Numero post", + "export-field-topiccount": "Numero discussioni", + "export-field-profileviews": "Visualizzazioni profilo", + "export-field-followercount": "Numero quanti ti seguono", + "export-field-followingcount": "Numero quanti segui", + "export-field-fullname": "Nome e cognome", + "export-field-website": "Sito web", + "export-field-location": "Ubicazione", + "export-field-birthday": "Compleanno", + "export-field-signature": "Firma", + "export-field-aboutme": "Su di me", + "export-users-started": "L'esportazione di utenti come csv potrebbe richiedere del tempo. Riceverai una notifica al termine.", "export-users-completed": "Utenti esportati come csv, clicca qui per scaricare.", "email": "Email", diff --git a/public/language/it/admin/settings/navigation.json b/public/language/it/admin/settings/navigation.json index c422cefc0d..eb28a32976 100644 --- a/public/language/it/admin/settings/navigation.json +++ b/public/language/it/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: opzionale", "properties": "Proprietà:", - "groups": "Gruppi:", + "show-to-groups": "Mostra ai gruppi:", "open-new-window": "Apri in una nuova finestra", "dropdown": "Menu a tendina", "dropdown-placeholder": "Posiziona le voci del menu a discesa qui sotto, es.:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/it/admin/settings/post.json b/public/language/it/admin/settings/post.json index 1aa3640d00..91330937cb 100644 --- a/public/language/it/admin/settings/post.json +++ b/public/language/it/admin/settings/post.json @@ -4,11 +4,11 @@ "sorting.post-default": "Ordinamento post predefinito", "sorting.oldest-to-newest": "Dal meno recente al più recente", "sorting.newest-to-oldest": "Dal più recente al meno recente", - "sorting.recently-replied": "Recently Replied", - "sorting.recently-created": "Recently Created", + "sorting.recently-replied": "Risposte recenti", + "sorting.recently-created": "Creato di recente", "sorting.most-votes": "Più Voti", "sorting.most-posts": "Più post", - "sorting.most-views": "Most Views", + "sorting.most-views": "Più visualizzazioni", "sorting.topic-default": "Ordinamento Discussione Predefinito", "length": "Lunghezza post", "post-queue": "Coda post", diff --git a/public/language/it/error.json b/public/language/it/error.json index b905051c56..fa8cb7480f 100644 --- a/public/language/it/error.json +++ b/public/language/it/error.json @@ -16,7 +16,7 @@ "invalid-username": "Nome utente non valido", "invalid-email": "Email non valida", "invalid-fullname": "Nome completo non valido", - "invalid-location": "Posizione non valida", + "invalid-location": "Ubicazione non valida", "invalid-birthday": "Compleanno non valido", "invalid-title": "Titolo non valido", "invalid-user-data": "Dati utente non validi", diff --git a/public/language/it/flags.json b/public/language/it/flags.json index 3ce3929f4f..8a06c1a932 100644 --- a/public/language/it/flags.json +++ b/public/language/it/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Azioni in blocco", "bulk-resolve": "Risolvi segnalazione(i)", "bulk-success": "%1 segnalazioni aggiornate", - "flagged-timeago-readable": "Segnalato (%2)", + "flagged-timeago": "Segnalato ", "auto-flagged": "[Contrassegnato automaticamente] Ha ricevuto %1 voti negativi." } \ No newline at end of file diff --git a/public/language/it/groups.json b/public/language/it/groups.json index d68f349aec..184e394d06 100644 --- a/public/language/it/groups.json +++ b/public/language/it/groups.json @@ -34,7 +34,7 @@ "details.add-member": "Aggiungi Membro", "details.owner-options": "Amministratore Gruppo", "details.group-name": "Nome Gruppo", - "details.member-count": "Numero Membri", + "details.member-count": "Numero membri", "details.creation-date": "Data Creazione", "details.description": "Descrizione", "details.member-post-cids": "ID categoria da cui visualizzare i post", diff --git a/public/language/it/search.json b/public/language/it/search.json index 2d2912aa11..7888ce550d 100644 --- a/public/language/it/search.json +++ b/public/language/it/search.json @@ -29,7 +29,7 @@ "type-a-username": "Digita un nome utente", "search-child-categories": "Cerca nelle sottocategorie", "has-tags": "Ha i tag", - "reply-count": "Numero Risposte", + "reply-count": "Numero risposte", "replies": "Risposte", "replies-atleast-count": "Risposte: Almeno %1", "replies-atmost-count": "Risposte: Al massimo %1", diff --git a/public/language/it/themes/harmony.json b/public/language/it/themes/harmony.json index e276315a8a..130e1f2c48 100644 --- a/public/language/it/themes/harmony.json +++ b/public/language/it/themes/harmony.json @@ -7,7 +7,7 @@ "login-register-to-search": "Accedi o registrati per effettuare la ricerca.", "settings.title": "Impostazioni tema", "settings.enableQuickReply": "Abilita risposta rapida", - "settings.enableBreadcrumbs": "Enable breadcrumbs", + "settings.enableBreadcrumbs": "Abilita breadcrumb", "settings.centerHeaderElements": "Centra elementi dell'intestazione", "settings.mobileTopicTeasers": "Mostra le anteprime delle discussioni su mobile", "settings.stickyToolbar": "Barra degli strumenti adesiva", diff --git a/public/language/it/topic.json b/public/language/it/topic.json index 2d353d298c..9a8b08ef11 100644 --- a/public/language/it/topic.json +++ b/public/language/it/topic.json @@ -182,8 +182,8 @@ "sort-by": "Ordina per", "oldest-to-newest": "Da Vecchi a Nuovi", "newest-to-oldest": "Da Nuovi a Vecchi", - "recently-replied": "Recently Replied", - "recently-created": "Recently Created", + "recently-replied": "Risposte recenti", + "recently-created": "Creato di recente", "most-votes": "Più Voti", "most-posts": "Più Post", "most-views": "Più visualizzazioni", diff --git a/public/language/it/user.json b/public/language/it/user.json index 4451b13765..7f5bac3720 100644 --- a/public/language/it/user.json +++ b/public/language/it/user.json @@ -1,7 +1,9 @@ { "user-menu": "Menu utente", "banned": "Bannato", + "unbanned": "Non bannato", "muted": "Silenziato", + "unmuted": "Non silenziato", "offline": "Non in linea", "deleted": "Eliminato", "username": "Nome Utente", @@ -11,9 +13,9 @@ "confirm-email": "Conferma Email", "account-info": "Informazioni dell'account", "admin-actions-label": "Azioni amministrative", - "ban-account": "BAN dell'account", + "ban-account": "Ban dell'account", "ban-account-confirm": "Sei sicuro di voler bannare questo utente?", - "unban-account": "Togli il BAN", + "unban-account": "Togli il ban dell'account", "mute-account": "Silenzia account", "unmute-account": "Disattiva silenzia account", "delete-account": "Elimina Account", @@ -28,7 +30,7 @@ "account-content-deleted": "Contenuto dell'account eliminato", "fullname": "Nome e Cognome", "website": "Sito Internet", - "location": "Località", + "location": "Ubicazione", "age": "Età", "joined": "Iscrizione", "lastonline": "Ultimo Accesso", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Conferma dissociazione", "sso.dissociate-confirm": "Sei sicuro di voler dissociare il tuo account da %1?", "info.latest-flags": "Ultime segnalazioni", + "info.profile": "Profilo", + "info.post": "Post", + "info.view-flag": "Visualizza segnalazioni", + "info.reported-by": "Segnalato da:", "info.no-flags": "Non è stato trovato nessun post segnalato", "info.ban-history": "Storico dei Ban recenti", "info.no-ban-history": "Questo utente non è mai stato bannato", "info.banned-until": "Bannato fino %1", "info.banned-expiry": "Scadenza", + "info.ban-expired": "Ban scaduto", "info.banned-permanently": "Bannato permanentemente", "info.banned-reason-label": "Motivo", "info.banned-no-reason": "Non è stata data nessuna motivazione.", diff --git a/public/language/ja/admin/advanced/events.json b/public/language/ja/admin/advanced/events.json index eec8144ea9..cde8111fca 100644 --- a/public/language/ja/admin/advanced/events.json +++ b/public/language/ja/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/ja/admin/manage/users.json b/public/language/ja/admin/manage/users.json index af9f98a27a..692728ee54 100644 --- a/public/language/ja/admin/manage/users.json +++ b/public/language/ja/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "招待メールが%1に送られました。", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/ja/admin/settings/navigation.json b/public/language/ja/admin/settings/navigation.json index e586e49ea0..52567e3d04 100644 --- a/public/language/ja/admin/settings/navigation.json +++ b/public/language/ja/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: 任意", "properties": "プロパティ:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "新しいウィンドウで開く", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/ja/flags.json b/public/language/ja/flags.json index a9c04bbefc..f3d3297224 100644 --- a/public/language/ja/flags.json +++ b/public/language/ja/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/ja/user.json b/public/language/ja/user.json index ed85c32353..bba4d3a261 100644 --- a/public/language/ja/user.json +++ b/public/language/ja/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "BANされた", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "オフライン", "deleted": "削除されました", "username": "ユーザー名", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "離脱の際に確認する", "sso.dissociate-confirm": "アカウントと %1 の関連付けを解除しますか?", "info.latest-flags": "最近のフラグ", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "フラグのついた投稿はありません", "info.ban-history": "最近停止した履歴", "info.no-ban-history": "このユーザーは停止されていません", "info.banned-until": "%1まで停止", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "永久に停止", "info.banned-reason-label": "理由", "info.banned-no-reason": "理由なし。", diff --git a/public/language/ko/admin/advanced/events.json b/public/language/ko/admin/advanced/events.json index a321faae97..492fd6e895 100644 --- a/public/language/ko/admin/advanced/events.json +++ b/public/language/ko/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "이벤트 유형", "filter-start": "시작 날짜", "filter-end": "종료 날짜", + "filter-user": "사용자명으로 필터링", + "filter-user.placeholder": "필터링할 사용자명 입력...", + "filter-group": "그룹명으로 필터링", + "filter-group.placeholder": "필터링할 그룹명 입력...", "filter-per-page": "페이지 당" } \ No newline at end of file diff --git a/public/language/ko/admin/manage/users.json b/public/language/ko/admin/manage/users.json index e9e31e1008..cf251e654b 100644 --- a/public/language/ko/admin/manage/users.json +++ b/public/language/ko/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "%1에게 초대 이메일이 전송되었습니다.", "alerts.x-users-found": "%1 명의 사용자 찾음, (%2 초)", "alerts.select-a-single-user-to-change-email": "이메일을 변경할 사용자를 선택하세요", + "export": "내보내기", + "export-users-fields-title": "CSV 필드 선택", + "export-field-email": "이메일", + "export-field-username": "사용자 이름", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "가입일", + "export-field-lastonline": "최종 접속", + "export-field-lastposttime": "마지막 작성 시간", + "export-field-reputation": "평판", + "export-field-postcount": "게시물 수", + "export-field-topiccount": "토픽 수", + "export-field-profileviews": "프로필 조회수", + "export-field-followercount": "팔로워", + "export-field-followingcount": "팔로잉", + "export-field-fullname": "전체 이름", + "export-field-website": "웹사이트", + "export-field-location": "위치", + "export-field-birthday": "생일", + "export-field-signature": "서명", + "export-field-aboutme": "자기 소개", + "export-users-started": "사용자를 CSV로 내보내는 중입니다. 시간이 걸릴 수 있습니다. 완료되면 알려드리겠습니다.", "export-users-completed": "사용자를 CSV로 내보냈습니다. 여기를 클릭하여 다운로드하세요.", "email": "이메일", diff --git a/public/language/ko/admin/settings/group.json b/public/language/ko/admin/settings/group.json index 70795c399b..9dc1077d31 100644 --- a/public/language/ko/admin/settings/group.json +++ b/public/language/ko/admin/settings/group.json @@ -9,5 +9,5 @@ "max-title-length": "최대 그룹 제목 길이", "cover-image": "그룹 커버 이미지", "default-cover": "기본 커버 이미지", - "default-cover-help": "쉼표로 구분된 기본 그룹 커버 이미지를 추가하면, 업로드된 커버 이미지가 없는 그룹에 대한 기본 커버 이미지를 지정할 수 있습니다" + "default-cover-help": "쉼표로 구분된 기본 그룹 커버 이미지를 추가하면, 업로드한 커버 이미지가 없는 그룹에 대한 기본 커버 이미지를 지정할 수 있습니다" } \ No newline at end of file diff --git a/public/language/ko/admin/settings/navigation.json b/public/language/ko/admin/settings/navigation.json index 2498547e71..36104520b9 100644 --- a/public/language/ko/admin/settings/navigation.json +++ b/public/language/ko/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: 선택 사항", "properties": "속성:", - "groups": "그룹:", + "show-to-groups": "Show to Groups:", "open-new-window": "새 창에서 열기", "dropdown": "드롭다운", "dropdown-placeholder": "아래에 드롭다운 메뉴 항목을 배치하세요. 예를 들어:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/ko/admin/settings/post.json b/public/language/ko/admin/settings/post.json index e39ec0ae85..a1865ce621 100644 --- a/public/language/ko/admin/settings/post.json +++ b/public/language/ko/admin/settings/post.json @@ -4,11 +4,11 @@ "sorting.post-default": "기본 게시물 정렬", "sorting.oldest-to-newest": "오래된 순", "sorting.newest-to-oldest": "최신 순", - "sorting.recently-replied": "Recently Replied", - "sorting.recently-created": "Recently Created", + "sorting.recently-replied": "최근 답글 순", + "sorting.recently-created": "최근 게시 순", "sorting.most-votes": "최다 투표 순", "sorting.most-posts": "최다 게시물 순", - "sorting.most-views": "Most Views", + "sorting.most-views": "최대 조회 순", "sorting.topic-default": "기본 토픽 정렬", "length": "게시물 길이", "post-queue": "게시물 대기열", diff --git a/public/language/ko/admin/settings/uploads.json b/public/language/ko/admin/settings/uploads.json index 19b8ae72ed..bc241fecb3 100644 --- a/public/language/ko/admin/settings/uploads.json +++ b/public/language/ko/admin/settings/uploads.json @@ -41,5 +41,5 @@ "keep-all-user-images": "서버에 이전 버전의 아바타와 프로필 커버를 유지", "profile-covers": "프로필 커버", "default-covers": "기본 커버 이미지", - "default-covers-help": "업로드된 커버 이미지가 없는 계정에 대한 쉼표로 구분된 기본 커버 이미지 추가" + "default-covers-help": "업로드한 커버 이미지가 없는 계정에 대한 쉼표로 구분된 기본 커버 이미지 추가" } diff --git a/public/language/ko/admin/settings/user.json b/public/language/ko/admin/settings/user.json index 3e495288e7..a167e8e5ed 100644 --- a/public/language/ko/admin/settings/user.json +++ b/public/language/ko/admin/settings/user.json @@ -7,7 +7,7 @@ "allow-login-with.username": "사용자 이름만", "account-settings": "계정 설정", "gdpr-enabled": "GDPR 동의 수집 활성화", - "gdpr-enabled-help": "활성화하면 모든 신규 가입자는 일반 데이터 보호 규정(GDPR)에 따라서 데이터 수집 및 사용에 대한 명시적 동의를 해야합니다.
참고: GDPR를 활성화해도 기존 사용자에게 동의를 강제하지 않습니다.
강제하려면 GDPR 플러그인을 설치해야 합니다.", + "gdpr-enabled-help": "활성화하면 모든 신규 가입자는 유럽연합 일반 데이터 보호 규정(GDPR)에 따라서 데이터 수집 및 사용에 대한 명시적 동의를 해야합니다.
참고: GDPR를 활성화해도 기존 사용자에게 동의를 강제하지 않습니다.
강제하려면 GDPR 플러그인을 설치해야 합니다.", "disable-username-changes": "사용자 이름 변경 비활성화", "disable-email-changes": "이메일 변경 비활성화", "disable-password-changes": "비밀번호 변경 비활성화", diff --git a/public/language/ko/aria.json b/public/language/ko/aria.json index 5c93ef15b3..af166d9a39 100644 --- a/public/language/ko/aria.json +++ b/public/language/ko/aria.json @@ -2,7 +2,7 @@ "post-sort-option": "게시물 정렬 옵션, %1", "topic-sort-option": "토픽 정렬 옵션, %1", "user-avatar-for": "%1 유저 아바타", - "user-watched-tags": "User watched tags", - "delete-upload-button": "Delete upload button", - "group-page-link-for": "Group page link for %1" + "user-watched-tags": "사용자 관심 태그", + "delete-upload-button": "업로드 버튼 삭제", + "group-page-link-for": "그룹 페이지 링크, %1" } \ No newline at end of file diff --git a/public/language/ko/category.json b/public/language/ko/category.json index 6f5650d87b..f50c4e9ace 100644 --- a/public/language/ko/category.json +++ b/public/language/ko/category.json @@ -9,18 +9,18 @@ "no-new-posts": "새로운 게시물이 없습니다.", "watch": "관심", "ignore": "무시", - "watching": "주시 중", - "tracking": "추적 중", + "watching": "알림 받기", + "tracking": "관심", "not-watching": "관심 중지", "ignoring": "무시 중", "watching.description": "새 토픽 알림.
읽지 않은 & 최근 토픽 표시", "tracking.description": "읽지 않은 & 최근 토픽 표시", "not-watching.description": "읽지 않은 토픽 표시 안 함, 최근 토픽 표시", "ignoring.description": "읽지 않은 & 최근 토픽 표시 안 함", - "watching.message": "이 카테고리와 모든 하위 카테고리의 업데이트를 주시합니다.", - "tracking.message": "이 카테고리와 모든 하위 카테고리의 업데이트를 추적합니다.", - "notwatching.message": "이 카테고리와 모든 하위 카테고리의 업데이트를 주시하지 않습니다.", - "ignoring.message": "이 카테고리와 모든 하위 카테고리의 업데이트를 무시합니다.", - "watched-categories": "주시 중인 카테고리", + "watching.message": "이 카테고리와 모든 하위 카테고리 업데이트를 주시합니다.", + "tracking.message": "이 카테고리와 모든 하위 카테고리 업데이트를 추적합니다.", + "notwatching.message": "이 카테고리와 모든 하위 카테고리 업데이트의 알림을 수신하지 않습니다.", + "ignoring.message": "이 카테고리와 모든 하위 카테고리 업데이트를 무시합니다.", + "watched-categories": "알림을 받는 중인 카테고리", "x-more-categories": "%1개의 추가 카테고리" } \ No newline at end of file diff --git a/public/language/ko/email.json b/public/language/ko/email.json index d33e35ff26..1b3cbba3dc 100644 --- a/public/language/ko/email.json +++ b/public/language/ko/email.json @@ -5,30 +5,30 @@ "invite": "%1님의 초대", "greeting-no-name": "안녕하세요", "greeting-with-name": "%1님 안녕하세요", - "email.verify-your-email.subject": "이메일을 인증해주세요", - "email.verify.text1": "이메일 주소를 변경하거나 확인하도록 요청하셨습니다", - "email.verify.text2": "보안상의 사유로 이메일 주소 소유권이 확인된 후에만 파일에 있는 이메일 주소를 변경하거나 확인합니다. 요청하지 않았다면 추가 조치가 필요하지 않습니다.", + "email.verify-your-email.subject": "이메일을 인증해주세요.", + "email.verify.text1": "이메일 주소를 변경하거나 확인하도록 요청하셨습니다.", + "email.verify.text2": "보안상의 사유로 이메일 주소 소유권이 확인된 후에만 이메일 주소를 변경하거나 확인합니다.
요청하지 않았다면 추가 조치가 필요하지 않습니다.", "email.verify.text3": "이 이메일 주소를 확인하면 현재 이메일 주소가 (%1)으로 변경 됩니다.", "welcome.text1": "%1에 등록해 주셔서 감사합니다!", - "welcome.text2": "계정을 완전히 활성화하려면 등록시 사용한 이메일 주소를 소유하고 있다는 것을 확인해야 합니다.", - "welcome.text3": "관리자가 등록 신청을 승인했습니다. 이제 사용자 이름/비밀번호로 로그인할 수 있습니다.", - "welcome.cta": "여기를 클릭하여 이메일 주소를 확인하세요", - "invitation.text1": "%1님이 %2에 가입할 수 있도록 초대하셨습니다", + "welcome.text2": "계정을 완전히 활성화하려면, 등록한 이메일 주소를 소유하고 있다는 것을 확인해야 합니다.", + "welcome.text3": "관리자가 등록 신청을 승인했습니다.
이제부터 사용자 이름/비밀번호로 로그인할 수 있습니다.", + "welcome.cta": "클릭하여 이메일 주소를 확인하세요", + "invitation.text1": "%1님이 %2에 가입할 수 있도록 초대하셨습니다.", "invitation.text2": "초대는 %1일 후에 만료됩니다.", - "invitation.cta": "계정을 생성하려면 여기를 클릭하세요.", - "reset.text1": "비밀번호 재설정 요청을 받았습니다. 비밀번호를 잊어버린 것일 수 있습니다. 그렇지 않은 경우에는 이 이메일을 무시해 주세요.", + "invitation.cta": "계정을 생성하려면 클릭하세요.", + "reset.text1": "비밀번호 재설정 요청을 받았습니다.
비밀번호를 잊어 버리셨나요?

그렇지 않은 경우에는 이 이메일을 무시해 주세요.", "reset.text2": "비밀번호 재설정을 계속하려면 다음 링크를 클릭하세요:", - "reset.cta": "비밀번호 재설정을 위해 여기를 클릭하세요", - "reset.notify.subject": "비밀번호를 성공적으로 변경했습니다", - "reset.notify.text1": "%1일에 비밀번호가 성공적으로 변경했음을 알려드립니다.", + "reset.cta": "비밀번호 재설정", + "reset.notify.subject": "비밀번호를 성공적으로 변경했습니다.", + "reset.notify.text1": "%1일에 비밀번호를 성공적으로 변경했음을 알려드립니다.", "reset.notify.text2": "이를 승인하지 않은 경우 즉시 관리자에게 알려주세요.", "digest.unread-rooms": "읽지 않은 채팅방", "digest.room-name-unreadcount": "%1 (%2개의 읽지 않은)", "digest.latest-topics": "%1에서 최신 토픽", "digest.top-topics": "%1에서 인기 있는 토픽", "digest.popular-topics": "%1에서 인기 있는 토픽", - "digest.cta": "%1을 방문하려면 여기를 클릭하세요", - "digest.unsub.info": "이 다이제스트는 구독 설정에 따라 보냈습니다.", + "digest.cta": "%1에 방문하려면 클릭하세요.", + "digest.unsub.info": "이 다이제스트는 구독 설정에 따라 보냈습니다.
", "digest.day": "일", "digest.week": "주", "digest.month": "월", @@ -38,21 +38,21 @@ "digest.title.month": "나의 월간 다이제스트", "notif.chat.new-message-from-user": "\\\"%1\\\"님의 새 메시지", "notif.chat.new-message-from-user-in-room": "%2의 %1님의 새 메시지", - "notif.chat.cta": "대화를 계속하려면 여기를 클릭하세요", - "notif.chat.unsub.info": "이 채팅 알림은 구독 설정에 따라 보냈습니다.", - "notif.post.unsub.info": "이 게시물 알림은 구독 설정에 따라 보냈습니다.", - "notif.post.unsub.one-click": "또는 다음을 클릭하여 향후 이메일을 받지 않도록 구독을 취소할 수 있습니다", + "notif.chat.cta": "대화를 계속하려면 클릭하세요.", + "notif.chat.unsub.info": "이 채팅 알림은 구독 설정에 따라 보냈습니다.
", + "notif.post.unsub.info": "이 게시물 알림은 구독 설정에 따라 보냈습니다.
", + "notif.post.unsub.one-click": "향후 이메일을 받지 않도록 구독을 취소할 수 있습니다
", "notif.cta": "포럼으로", "notif.cta-new-reply": "게시물 보기", "notif.cta-new-chat": "채팅 보기", "notif.test.short": "알림 테스트 중", "notif.test.long": "알림 이메일을 테스트합니다. 도와주세요!", "test.text1": "NodeBB의 이메일러가 올바르게 설정되었는지 확인하기 위한 테스트 이메일입니다.", - "unsub.cta": "이 설정을 변경하려면 여기를 클릭하세요", + "unsub.cta": "이 설정을 변경하려면 클릭하세요", "unsubscribe": "구독 취소", "unsub.success": "%1 메일링 리스트에서 더 이상 이메일을 받지 않습니다", "unsub.failure.title": "구독 취소 실패", - "unsub.failure.message": "죄송합니다. 링크에 문제가 있어 메일링 리스트에서 구독을 취소하지 못했습니다. 그러나 사용자 설정으로 이메일 설정을 변경할 수 있습니다.

(오류: %1)", + "unsub.failure.message": "죄송합니다. 링크에 문제가 있어 메일링 리스트에서 구독을 취소하지 못했습니다.
그러나 사용자 설정으로 이메일 설정을 변경할 수 있습니다.

(오류: %1)", "banned.subject": "%1에서 차단되었습니다", "banned.text1": "%1 사용자가 %2에서 차단되었습니다.", "banned.text2": "이 차단은 %1까지 유지됩니다.", diff --git a/public/language/ko/error.json b/public/language/ko/error.json index 880d9eec11..cb6153953c 100644 --- a/public/language/ko/error.json +++ b/public/language/ko/error.json @@ -37,7 +37,7 @@ "email-invited": "이미 초대된 이메일입니다", "email-not-confirmed": "이메일을 검증하지 않았으므로 일부 카테고리나 토픽에 글을 게시할 수 없습니다. 확인 이메일을 보내려면 여기를 클릭하세요.", "email-not-confirmed-chat": "이메일을 검증하지 않았으므로 채팅할 수 없습니다. 이메일을 확인하려면 여기를 클릭하세요.", - "email-not-confirmed-email-sent": "이메일을 검증하지 않았습니다. 확인 이메일을 받으려면 받은 편지함을 확인하세요. 이메일을 검증하지 않은 경우 일부 카테고리에서 글을 게시하거나 채팅할 수 없습니다.", + "email-not-confirmed-email-sent": "이메일을 검증하지 않았습니다. 받은 편지함에서 확인 이메일을 확인하세요. 이메일을 검증하지 않은 경우 일부 카테고리에서 글을 게시하거나 채팅할 수 없습니다.", "no-email-to-confirm": "계정에 이메일이 설정되어 있지 않습니다. 계정 복구에 이메일이 필요하며 일부 카테고리에서 글을 게시하거나 채팅하는 데 필요할 수 있습니다. 이메일을 입력하려면 여기를 클릭하세요.", "user-doesnt-have-email": "사용자 \\\"%1\\\"에게 이메일이 설정되어 있지 않습니다.", "email-confirm-failed": "이메일을 확인하지 못했습니다. 나중에 다시 시도하세요.", @@ -54,7 +54,7 @@ "user-banned-reason": "죄송합니다. 이 계정은 차단되었습니다 (사유: %1)", "user-banned-reason-until": "죄송합니다. 이 계정은 %1까지 차단되었습니다 (사유: %2)", "user-too-new": "첫 번째 글을 작성하기 전에 %1초를 기다려야 합니다", - "blacklisted-ip": "커뮤니티에 대한 IP 주소가 차단되었습니다. 이 문제가 오류임을 생각하면 관리자에게 문의하세요.", + "blacklisted-ip": "커뮤니티에 대한 IP 주소가 차단되었습니다. 이 문제가 오류라고 생각하면 관리자에게 문의하세요.", "cant-blacklist-self-ip": "자신의 IP를 차단할 수 없습니다", "ban-expiry-missing": "이 차단에 대한 종료 날짜를 제공하세요", "no-category": "카테고리가 존재하지 않습니다", diff --git a/public/language/ko/flags.json b/public/language/ko/flags.json index 24fab65245..7ad1688255 100644 --- a/public/language/ko/flags.json +++ b/public/language/ko/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "대량 작업", "bulk-resolve": "신고 해결", "bulk-success": "%1개의 신고가 업데이트되었습니다", - "flagged-timeago-readable": "에 신고됨 (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[자동 신고] %1개의 반대를 받았습니다." } \ No newline at end of file diff --git a/public/language/ko/global.json b/public/language/ko/global.json index 78f6341062..86adb576b7 100644 --- a/public/language/ko/global.json +++ b/public/language/ko/global.json @@ -71,7 +71,7 @@ "x-topics": "%1 개의 토픽", "x-reputation": "%1 평판", "best": "최고", - "controversial": "논란의 여지 있는", + "controversial": "찬반이 팽팽한", "votes": "투표", "x-votes": "%1 개의 투표", "voters": "투표자", @@ -129,7 +129,7 @@ "enter-page-number": "페이지 번호 입력", "upload-file": "파일 업로드", "upload": "업로드", - "uploads": "업로드된 파일", + "uploads": "업로드한 파일", "allowed-file-types": "허용된 파일 유형은 %1입니다", "unsaved-changes": "저장되지 않은 변경 사항이 있습니다. 정말로 이동하시겠습니까?", "reconnecting-message": "%1
연결이 끊어졌습니다.
잠시 기다려주세요.", diff --git a/public/language/ko/ip-blacklist.json b/public/language/ko/ip-blacklist.json index 637d2a95e1..63be967432 100644 --- a/public/language/ko/ip-blacklist.json +++ b/public/language/ko/ip-blacklist.json @@ -1,6 +1,6 @@ { "lead": "여기에서 IP 차단목록을 구성하세요.", - "description": "가끔은 사용자 계정 차단만으로는 충분한 경우가 없습니다. 때로는 포럼에 대한 액세스를 특정 IP 또는 IP 범위로 제한하는 것이 포럼을 보호하는 가장 좋은 방법일 수 있습니다. 이러한 시나리오에서는 문제가 되는 IP 주소나 전체 CIDR 블록을 이 차단목록에 추가하면 해당 IP는 로그인하거나 새 계정을 등록할 수 없습니다.", + "description": "가끔은 사용자 계정 차단만으로는 충분하지 않은 경우가 있습니다. 때로는 포럼에 대한 액세스를 특정 IP 또는 IP 범위로 제한하는 것이 포럼을 보호하는 가장 좋은 방법일 수 있습니다. 이러한 시나리오에서는 문제가 되는 IP 주소나 전체 CIDR 블록을 이 차단목록에 추가하면 해당 IP는 로그인하거나 새 계정을 등록할 수 없습니다.", "active-rules": "활성 규칙", "validate": "차단목록 유효성 검사", "apply": "차단목록 적용", diff --git a/public/language/ko/modules.json b/public/language/ko/modules.json index 83064f4937..29760612b9 100644 --- a/public/language/ko/modules.json +++ b/public/language/ko/modules.json @@ -79,8 +79,8 @@ "composer.show-preview": "미리보기 표시", "composer.hide-preview": "미리보기 숨기기", "composer.help": "도움말", - "composer.user-said-in": "%2에서 %1님이 말했습니다:", - "composer.user-said": "%1님이 말했습니다:", + "composer.user-said-in": "%2 에서 %1 님이 말했습니다:", + "composer.user-said": "%1 님이 말했습니다:", "composer.discard": "이 게시물을 삭제하시겠습니까?", "composer.submit-and-lock": "제출 및 잠금", "composer.toggle-dropdown": "드롭다운 전환", @@ -103,8 +103,8 @@ "composer.upload-file": "파일 업로드", "composer.zen-mode": "젠 모드", "composer.select-category": "카테고리 선택", - "composer.textarea.placeholder": "여기에 게시물 내용을 입력하세요. 이미지는 끌어다 놓으세요.", - "composer.post-queue-alert": "안녕하세요👋!
이 포럼은 게시물 대기열 시스템을 사용합니다. 새 사용자이므로 게시물은 관리팀의 승인 후에 표시됩니다.", + "composer.textarea.placeholder": "여기에 게시물 내용을 입력하세요. 이미지 첨부는 간편하게 끌어다 놓으시면 됩니다.", + "composer.post-queue-alert": "안녕하세요👋!
이 포럼은 게시물 대기열 시스템을 사용합니다. 새 사용자이므로 게시물은 관리팀의 승인 후에 표시됩니다.", "composer.schedule-for": "다음 날짜로 토픽 예약", "composer.schedule-date": "날짜", "composer.schedule-time": "시간", diff --git a/public/language/ko/notifications.json b/public/language/ko/notifications.json index f7a92e4d14..1e9b72af2b 100644 --- a/public/language/ko/notifications.json +++ b/public/language/ko/notifications.json @@ -26,8 +26,8 @@ "bans": "차단", "new-message-from": "%1님의 새로운 메시지", "new-messages-from": "%2님의 %1개의 새로운 메시지", - "new-message-in": "%1에서의 새로운 메시지", - "new-messages-in": "%2에서의 %1개의 새로운 메시지", + "new-message-in": "%1에서 새로운 메시지", + "new-messages-in": "%2에서 %1개의 새로운 메시지", "user-posted-in-public-room": "%1님이 %3에 게시했습니다.", "user-posted-in-public-room-dual": "%1%2님이 %4에 게시했습니다.", "user-posted-in-public-room-triple": "%1, %2%3님이 %5에 게시했습니다.", diff --git a/public/language/ko/pages.json b/public/language/ko/pages.json index 47027b9f80..5116a5de1e 100644 --- a/public/language/ko/pages.json +++ b/public/language/ko/pages.json @@ -57,7 +57,7 @@ "account/upvoted": "%1님이 추천한 게시물", "account/downvoted": "%1님이 비추천한 게시물", "account/best": "%1님이 작성한 최고의 게시물", - "account/controversial": "%1님이 작성한 논란이 될 수 있는 게시물", + "account/controversial": "%1님이 작성한 찬반이 팽팽한 게시물", "account/blocks": "%1님의 차단한 사용자", "account/uploads": "%1님의 업로드", "account/sessions": "로그인 세션", diff --git a/public/language/ko/register.json b/public/language/ko/register.json index 17e041e6c7..edfb14448f 100644 --- a/public/language/ko/register.json +++ b/public/language/ko/register.json @@ -18,7 +18,7 @@ "terms-of-use": "이용 약관", "agree-to-terms-of-use": "이용 약관에 동의합니다", "terms-of-use-error": "이용 약관에 동의해야 합니다", - "registration-added-to-queue": "회원가입이 승인 대기열에 추가되었습니다. 관리자가 승인하면 이메일을 받게 됩니다.", + "registration-added-to-queue": "회원가입이 승인 대기열에 추가되었습니다. 관리자가 승인하면 알림 이메일을 받게 됩니다.", "registration-queue-average-time": "회원 가입 승인 평균 시간은 %1시간 %2분입니다.", "registration-queue-auto-approve-time": "이 포럼의 회원 자격이 최대 %1시간 안에 완전히 활성화됩니다.", "interstitial.intro": "계정을 업데이트하기 위해 추가 정보를 요청합니다…", diff --git a/public/language/ko/reset_password.json b/public/language/ko/reset_password.json index 8621ac0737..6b6657027d 100644 --- a/public/language/ko/reset_password.json +++ b/public/language/ko/reset_password.json @@ -4,13 +4,13 @@ "password-changed.title": "비밀번호 변경됨", "password-changed.message": "

비밀번호가 성공적으로 재설정되었습니다. 다시 로그인해주세요.", "wrong-reset-code.title": "잘못된 재설정 코드", - "wrong-reset-code.message": "재설정 코드가 올바르지 않습니다. 다시 시도하거나 새로운 재설정 코드를 요청하세요.", + "wrong-reset-code.message": "재설정 코드가 올바르지 않습니다.
다시 시도하거나 새로운 재설정 코드를 요청하세요.", "new-password": "새 비밀번호", "repeat-password": "비밀번호 확인", "changing-password": "비밀번호 변경 중", "enter-email": "계정을 재설정하는 방법에 대한 지침을 이메일로 보내드리겠습니다. 이메일 주소를 입력해주세요.", "enter-email-address": "이메일 주소 입력", - "password-reset-sent": "지정된 주소가 기존 사용자 계정과 일치하는 경우, 비밀번호 재설정 이메일이 전송되었습니다. 주의: 분당 한 번의 이메일만 전송됩니다.", + "password-reset-sent": "지정된 주소가 기존 사용자 계정과 일치하는 경우에만, 비밀번호 재설정 이메일을 전송합니다. 주의: 분당 한 번의 이메일만 전송됩니다.", "invalid-email": "잘못된 이메일 / 해당 이메일이 존재하지 않습니다!", "password-too-short": "입력한 비밀번호가 너무 짧습니다. 다른 비밀번호를 선택해주세요.", "passwords-do-not-match": "입력한 두 비밀번호가 일치하지 않습니다.", diff --git a/public/language/ko/themes/harmony.json b/public/language/ko/themes/harmony.json index f6731fbdd4..b60d445f68 100644 --- a/public/language/ko/themes/harmony.json +++ b/public/language/ko/themes/harmony.json @@ -7,7 +7,7 @@ "login-register-to-search": "검색하려면 로그인하거나 등록하세요.", "settings.title": "테마 설정", "settings.enableQuickReply": "빠른 답장 활성화", - "settings.enableBreadcrumbs": "Enable breadcrumbs", + "settings.enableBreadcrumbs": "사이트 이동 경로 활성화", "settings.centerHeaderElements": "헤더 요소 가운데 정렬", "settings.mobileTopicTeasers": "모바일에서 토픽 미리보기 표시", "settings.stickyToolbar": "툴바 고정", diff --git a/public/language/ko/topic.json b/public/language/ko/topic.json index e6093ba750..da898ee9cc 100644 --- a/public/language/ko/topic.json +++ b/public/language/ko/topic.json @@ -182,8 +182,8 @@ "sort-by": "정렬 기준", "oldest-to-newest": "오래된 순", "newest-to-oldest": "최신 순", - "recently-replied": "Recently Replied", - "recently-created": "Recently Created", + "recently-replied": "최근 답글 순", + "recently-created": "최근 게시 순", "most-votes": "가장 많은 투표", "most-posts": "가장 많은 게시물", "most-views": "가장 많은 조회수", diff --git a/public/language/ko/uploads.json b/public/language/ko/uploads.json index c61569c92d..5129100d96 100644 --- a/public/language/ko/uploads.json +++ b/public/language/ko/uploads.json @@ -3,7 +3,7 @@ "select-file-to-upload": "업로드할 파일을 선택하세요!", "upload-success": "파일이 성공적으로 업로드되었습니다!", "maximum-file-size": "최대 %1 KB", - "no-uploads-found": "업로드된 파일이 없습니다", + "no-uploads-found": "업로드한 파일이 없습니다", "public-uploads-info": "업로드는 공개되어 있으며, 모든 방문자가 볼 수 있습니다.", "private-uploads-info": "업로드는 비공개이며, 로그인한 사용자만 볼 수 있습니다." } \ No newline at end of file diff --git a/public/language/ko/user.json b/public/language/ko/user.json index ee64f19b4b..6c95172b49 100644 --- a/public/language/ko/user.json +++ b/public/language/ko/user.json @@ -1,7 +1,9 @@ { "user-menu": "사용자 메뉴", "banned": "차단됨", + "unbanned": "Unbanned", "muted": "음소거됨", + "unmuted": "Unmuted", "offline": "오프라인", "deleted": "삭제됨", "username": "사용자 이름", @@ -68,7 +70,7 @@ "edit": "편집", "edit-profile": "프로필 편집", "default-picture": "기본 아이콘", - "uploaded-picture": "업로드된 이미지", + "uploaded-picture": "업로드한 이미지", "upload-new-picture": "새 이미지 업로드", "upload-new-picture-from-url": "URL에서 새 이미지 업로드", "current-password": "현재 비밀번호", @@ -87,7 +89,7 @@ "weak-password": "약한 비밀번호입니다.", "upload-picture": "이미지 업로드", "upload-a-picture": "이미지 업로드", - "remove-uploaded-picture": "업로드된 이미지 삭제", + "remove-uploaded-picture": "업로드한 이미지 삭제", "upload-cover-picture": "커버 이미지 업로드", "remove-cover-picture-confirm": "커버 이미지를 삭제하시겠습니까?", "crop-picture": "이미지 자르기", @@ -142,10 +144,10 @@ "follow-topics-you-create": "만든 토픽을 지켜보기", "grouptitle": "그룹 제목", "group-order-help": "그룹을 선택하고 화살표를 사용하여 제목을 정렬합니다", - "show-group-title": "Show group title", - "hide-group-title": "Hide group title", - "order-group-up": "Order group up", - "order-group-down": "Order group down", + "show-group-title": "그룹 제목 표시", + "hide-group-title": "그룹 제목 숨김", + "order-group-up": "그룹 순서 상향 조정", + "order-group-down": "그룹 순서 하향 조정", "no-group-title": "그룹 제목 없음", "select-skin": "스킨 선택", "default": "기본 (%1)", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "분리 확인", "sso.dissociate-confirm": "계정을 %1에서 분리하시겠습니까?", "info.latest-flags": "최신 신고", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "신고된 게시물이 없습니다", "info.ban-history": "최근 차단 기록", "info.no-ban-history": "이 사용자는 현재까지 차단된 적이 없습니다.", "info.banned-until": "%1까지 차단됨", "info.banned-expiry": "만료", + "info.ban-expired": "Ban expired", "info.banned-permanently": "영구 차단됨", "info.banned-reason-label": "사유", "info.banned-no-reason": "사유를 제공하지 않았습니다.", @@ -190,7 +197,7 @@ "consent.digest-frequency": "사용자 설정에서 명시적으로 변경하지 않은 경우, 이 커뮤니티는 매 %1마다 이메일 다이제스트를 전송합니다.", "consent.digest-off": "사용자 설정에서 명시적으로 변경하지 않은 경우, 이 커뮤니티는 이메일 다이제스트를 보내지 않습니다.", "consent.received": "이 웹 사이트가 귀하의 정보를 수집하고 처리할 수 있도록 동의를 제공했습니다. 추가 조치가 필요하지 않습니다.", - "consent.not-received": "데이터 수집 및 처리에 대한 동의를 제공하지 않았습니다. 언제든지 이 웹 사이트의 관리팀이 일반 데이터 보호 규정을 준수하기 위해 귀하의 계정을 삭제하기로 결정할 수 있습니다.", + "consent.not-received": "데이터 수집 및 처리에 대한 동의를 제공하지 않았습니다. 언제든지 이 웹 사이트의 관리팀이 유럽연합 일반 데이터 보호 규정(GDPR)을 준수하기 위해 귀하의 계정을 삭제하기로 결정할 수 있습니다.", "consent.give": "동의하기", "consent.right-of-access": "접근 권한이 있습니다", "consent.right-of-access-description": "요청 시 이 웹 사이트에서 수집한 데이터에 액세스할 수 있습니다. 해당 데이터의 사본을 아래의 적절한 버튼을 클릭하여 검색할 수 있습니다.", @@ -202,14 +209,14 @@ "consent.right-to-data-portability-description": "귀하와 귀하의 계정에 관한 수집된 데이터에 대한 기계 판독 가능한 내보내기를 요청할 수 있습니다. 해당 버튼을 클릭하여 이를 수행할 수 있습니다.", "consent.export-profile": "프로필 내보내기 (.json)", "consent.export-profile-success": "프로필 내보내는 중입니다. 완료되면 알림을 받게 됩니다.", - "consent.export-uploads": "업로드된 콘텐츠 내보내기 (.zip)", + "consent.export-uploads": "업로드한 콘텐츠 내보내기 (.zip)", "consent.export-uploads-success": "업로드 내보내는 중입니다. 완료되면 알림을 받게 됩니다.", "consent.export-posts": "게시물 내보내기 (.csv)", "consent.export-posts-success": "게시물 내보내는 중입니다. 완료되면 알림을 받게 됩니다.", - "emailUpdate.intro": "아래에 이메일 주소를 입력하세요. 이 포럼에서는 이메일 주소를 예약된 다이제스트 및 알림에 사용하며, 비밀번호 분실 시 계정 복구에 사용합니다.", + "emailUpdate.intro": "아래에 이메일 주소를 입력하세요.
이 포럼에서는 이메일 주소를 예약된 다이제스트 및 알림에 사용하며, 비밀번호 분실 시 계정 복구에 사용합니다.", "emailUpdate.optional": "이 필드는 선택 사항입니다. 귀하의 이메일 주소를 제공할 의무는 없지만, 유효한 이메일을 제공하지 않으면 계정을 복구하거나 이메일로 로그인할 수 없습니다.", "emailUpdate.required": "이 필드는 필수입니다.", - "emailUpdate.change-instructions": "입력한 이메일 주소로 고유 링크가 포함된 확인 이메일이 전송됩니다. 해당 링크에 액세스하여 이메일 주소의 소유권을 확인하면 계정이 활성 상태가 됩니다. 언제든지 계정 페이지에서 파일에 있는 이메일을 업데이트할 수 있습니다.", + "emailUpdate.change-instructions": "입력한 이메일 주소로 고유 링크가 포함된 확인 이메일이 전송됩니다.
해당 링크에 액세스하여 이메일 주소의 소유권을 확인하면 계정이 활성 상태가 됩니다.
언제든지 계정 페이지에서 파일에 있는 이메일을 업데이트할 수 있습니다.", "emailUpdate.password-challenge": "계정 소유권을 확인하려면 비밀번호를 입력하세요.", "emailUpdate.pending": "이메일 주소가 현재 확인되지 않았지만, 확인 요청이 전송되었습니다. 해당 요청을 무효화하고 새로운 확인 요청을 보내려면 아래의 양식을 작성하세요." } \ No newline at end of file diff --git a/public/language/lt/admin/advanced/events.json b/public/language/lt/admin/advanced/events.json index 9327eef8d3..a249bb9721 100644 --- a/public/language/lt/admin/advanced/events.json +++ b/public/language/lt/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/lt/admin/manage/users.json b/public/language/lt/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/lt/admin/manage/users.json +++ b/public/language/lt/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/lt/admin/settings/navigation.json b/public/language/lt/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/lt/admin/settings/navigation.json +++ b/public/language/lt/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/lt/flags.json b/public/language/lt/flags.json index 2bce567011..af84a9ca82 100644 --- a/public/language/lt/flags.json +++ b/public/language/lt/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/lt/user.json b/public/language/lt/user.json index 2ccef87c25..1d9d72c74a 100644 --- a/public/language/lt/user.json +++ b/public/language/lt/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Užblokuotas", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Atsijungęs", "deleted": "Ištrinti", "username": "Vartotojo vardas", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Latest Flags", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Nerasta pažymėtų pranešimų", "info.ban-history": "Blokavimų istorija", "info.no-ban-history": "Šis narys nebuvo užblokuotas.", "info.banned-until": "Užblokuotas iki %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Užblokuotas visam laikui", "info.banned-reason-label": "Priežastis", "info.banned-no-reason": "Be priežasties", diff --git a/public/language/lv/admin/advanced/events.json b/public/language/lv/admin/advanced/events.json index 1e1a1ce393..5569812a85 100644 --- a/public/language/lv/admin/advanced/events.json +++ b/public/language/lv/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/lv/admin/manage/users.json b/public/language/lv/admin/manage/users.json index 2be6eb54b3..b5f1e883d2 100644 --- a/public/language/lv/admin/manage/users.json +++ b/public/language/lv/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "Ielūguma e-pasts ir nosūtīts %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/lv/admin/settings/navigation.json b/public/language/lv/admin/settings/navigation.json index 8148ce1179..fd8267d392 100644 --- a/public/language/lv/admin/settings/navigation.json +++ b/public/language/lv/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: neobligāts", "properties": "Īpašības:", - "groups": "Grupas:", + "show-to-groups": "Show to Groups:", "open-new-window": "Rādīt jaunā logā", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/lv/flags.json b/public/language/lv/flags.json index 52abe02493..471948c0a5 100644 --- a/public/language/lv/flags.json +++ b/public/language/lv/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/lv/user.json b/public/language/lv/user.json index 3b7e69c34d..d64918c487 100644 --- a/public/language/lv/user.json +++ b/public/language/lv/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Bloķētie", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Bezsaistē", "deleted": "Izdzēstie", "username": "Vārds", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Apstiprināt atsaistīšanu", "sso.dissociate-confirm": "Vai tiešām vēlies atsaistīt Tavu kontu no %1?", "info.latest-flags": "Jaunākās atzīmes", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Nav atzīmēto rakstu", "info.ban-history": "Nesenā bloķēšanas vēsture", "info.no-ban-history": "Šis lietotājs nekad nav bijis bloķēts", "info.banned-until": "Bloķēts līdz %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Bloķēts pastāvīgi", "info.banned-reason-label": "Iemesls", "info.banned-no-reason": "Bez iemesla.", diff --git a/public/language/ms/admin/advanced/events.json b/public/language/ms/admin/advanced/events.json index 9327eef8d3..a249bb9721 100644 --- a/public/language/ms/admin/advanced/events.json +++ b/public/language/ms/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/ms/admin/manage/users.json b/public/language/ms/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/ms/admin/manage/users.json +++ b/public/language/ms/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/ms/admin/settings/navigation.json b/public/language/ms/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/ms/admin/settings/navigation.json +++ b/public/language/ms/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/ms/flags.json b/public/language/ms/flags.json index 996e027833..0a42e3877f 100644 --- a/public/language/ms/flags.json +++ b/public/language/ms/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/ms/user.json b/public/language/ms/user.json index 5e53e71cd9..f2ae132b26 100644 --- a/public/language/ms/user.json +++ b/public/language/ms/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Diharamkan", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Luar talian", "deleted": "Deleted", "username": "Nama pengguna", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Latest Flags", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "No Flagged Posts Found", "info.ban-history": "Recent Ban History", "info.no-ban-history": "This user has never been banned", "info.banned-until": "Banned until %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Banned permanently", "info.banned-reason-label": "Reason", "info.banned-no-reason": "No reason given.", diff --git a/public/language/nb/admin/advanced/events.json b/public/language/nb/admin/advanced/events.json index 9327eef8d3..a249bb9721 100644 --- a/public/language/nb/admin/advanced/events.json +++ b/public/language/nb/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/nb/admin/manage/users.json b/public/language/nb/admin/manage/users.json index c415eaccaa..df1253e834 100644 --- a/public/language/nb/admin/manage/users.json +++ b/public/language/nb/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "En invitasjonse-post har blitt sendt til %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/nb/admin/settings/navigation.json b/public/language/nb/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/nb/admin/settings/navigation.json +++ b/public/language/nb/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/nb/flags.json b/public/language/nb/flags.json index c20ce424ef..29000dec26 100644 --- a/public/language/nb/flags.json +++ b/public/language/nb/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Massehandlinger", "bulk-resolve": "Løse Flagg(ene).", "bulk-success": "%1 flagg er oppdaterte ", - "flagged-timeago-readable": "Flaggede 11 (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/nb/user.json b/public/language/nb/user.json index e04784c87d..ee7ab00a19 100644 --- a/public/language/nb/user.json +++ b/public/language/nb/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Utestengt", + "unbanned": "Unbanned", "muted": "Dempet", + "unmuted": "Unmuted", "offline": "Frakoblet", "deleted": "Slettet", "username": "Brukernavn", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Bekreft seperasjon", "sso.dissociate-confirm": "Er du sikker på at du vil separere kontoen din fra %1?", "info.latest-flags": "Seneste flagg", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Ingen flaggede innlegg funnet", "info.ban-history": "Nylig utestengingshistorikk", "info.no-ban-history": "Denne brukeren har aldri blitt utestengt", "info.banned-until": "Utestengt til %1", "info.banned-expiry": "Utløp", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Utestengt permanent", "info.banned-reason-label": "Årsak", "info.banned-no-reason": "ingen årsak oppgitt", diff --git a/public/language/nl/admin/advanced/events.json b/public/language/nl/admin/advanced/events.json index 3c08c8484b..8ef647489e 100644 --- a/public/language/nl/admin/advanced/events.json +++ b/public/language/nl/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start datum", "filter-end": "Eind datum", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per pagina" } \ No newline at end of file diff --git a/public/language/nl/admin/manage/users.json b/public/language/nl/admin/manage/users.json index df2bb773bc..5f695d38bd 100644 --- a/public/language/nl/admin/manage/users.json +++ b/public/language/nl/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/nl/admin/settings/navigation.json b/public/language/nl/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/nl/admin/settings/navigation.json +++ b/public/language/nl/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/nl/flags.json b/public/language/nl/flags.json index 758ad2d54c..7faecd1af0 100644 --- a/public/language/nl/flags.json +++ b/public/language/nl/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk acties", "bulk-resolve": "Los markering(en) op", "bulk-success": "%1 markeringen aangepast", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/nl/user.json b/public/language/nl/user.json index 5788ab8150..98daec6848 100644 --- a/public/language/nl/user.json +++ b/public/language/nl/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Verbannen", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Offline", "deleted": "Verwijderd", "username": "Gebruikersnaam", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Bevestig ontkoppeling", "sso.dissociate-confirm": "Weet u zeker dat u uw account wilt ontkoppelen van %1?", "info.latest-flags": "Laatste markeringen", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Geen gemarkeerde berichten gevonden", "info.ban-history": "Recente verban-geschiedenis", "info.no-ban-history": "Deze gebruiker is nooit eerder verbannen", "info.banned-until": "Verbannen tot %1", "info.banned-expiry": "Verloopt", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Voor altijd verbannen", "info.banned-reason-label": "Reden", "info.banned-no-reason": "Geen reden opgegeven", diff --git a/public/language/pl/admin/advanced/cache.json b/public/language/pl/admin/advanced/cache.json index 3e5d05a726..5fe5e88e76 100644 --- a/public/language/pl/admin/advanced/cache.json +++ b/public/language/pl/admin/advanced/cache.json @@ -1,5 +1,5 @@ { - "cache": "Cache", + "cache": "Pamięć podręczna", "post-cache": "Pamięć podręczna postów", "group-cache": "Pamięć podręczna grupy", "local-cache": "Lokalna pamięć podręczna", diff --git a/public/language/pl/admin/advanced/database.json b/public/language/pl/admin/advanced/database.json index 84ab3c70fe..aa0bc253be 100644 --- a/public/language/pl/admin/advanced/database.json +++ b/public/language/pl/admin/advanced/database.json @@ -36,14 +36,14 @@ "redis.memory-frag-ratio": "Proporcja fragmentacji pamięci", "redis.total-connections-recieved": "Otrzymanych połączeń", "redis.total-commands-processed": "Przetworzonych komend", - "redis.iops": "Natychmiastowe Operacje Na Sekundę", + "redis.iops": "Natychmiastowe operacje na sekundę", "redis.iinput": "Chwilowe wejście na sekundę", "redis.ioutput": "Natychmiastowe wyjście na sekundę", "redis.total-input": "Całkowite wejście", "redis.total-output": "Całkowite wyjście", - "redis.keyspace-hits": "Trafione Klucze", - "redis.keyspace-misses": "Nietrafione Klucze", + "redis.keyspace-hits": "Trafione klucze", + "redis.keyspace-misses": "Nietrafione klucze", "redis.raw-info": "Informacje Redis", "postgres": "Postgres", diff --git a/public/language/pl/admin/advanced/errors.json b/public/language/pl/admin/advanced/errors.json index 1846da1313..17c548813e 100644 --- a/public/language/pl/admin/advanced/errors.json +++ b/public/language/pl/admin/advanced/errors.json @@ -1,5 +1,5 @@ { - "errors": "Errors", + "errors": "Błędy", "figure-x": "Błąd %1", "error-events-per-day": "%1 zdarzeń dziennie", "error.404": "404 Nie znaleziono", diff --git a/public/language/pl/admin/advanced/events.json b/public/language/pl/admin/advanced/events.json index 10f00cd1ba..695ca4e29f 100644 --- a/public/language/pl/admin/advanced/events.json +++ b/public/language/pl/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Typ zdarzenia", "filter-start": "Data początkowa", "filter-end": "Data końcowa", + "filter-user": "Flitruj wg użytkownika", + "filter-user.placeholder": "Literuj aby wyszukać nazwę użytkownika...", + "filter-group": "Filtruj wg grupy", + "filter-group.placeholder": "Wpisz nazwę grupy aby odfiltrować...", "filter-per-page": "Na stronę" } \ No newline at end of file diff --git a/public/language/pl/admin/appearance/customise.json b/public/language/pl/admin/appearance/customise.json index 3c33ed3d88..9a679dce58 100644 --- a/public/language/pl/admin/appearance/customise.json +++ b/public/language/pl/admin/appearance/customise.json @@ -1,5 +1,5 @@ { - "customise": "Customise", + "customise": "Dostosuj", "custom-css": "Niestandardowe CSS/SASS", "custom-css.description": "Wprowadź tutaj własne deklaracje CSS/SASS, które zostaną zastosowane w wszystkich innych stylach.", "custom-css.enable": "Włącz niestandardowe CSS/SASS", @@ -15,6 +15,6 @@ "custom-css.livereload": "Włącz dynamiczne przeładowanie", "custom-css.livereload.description": "Włącz, jeśli chcesz wymusić odświeżenie wszystkich sesji na każdym urządzeniu na Twoim koncie zawsze, gdy klikniesz „zapisz”.", "bsvariables": "_variables.scss", - "bsvariables.description": "Override bootstrap variables here. You can also use a tool like bootstrap.build and paste the output here.
Changes require a rebuild & restart.", - "bsvariables.enable": "Enable _variables.scss" + "bsvariables.description": "Tutaj przeciąż zmienne bootstrap. Możesz też użyć narzędzia jak bootstrap.build i wkleić jego wynik tutaj.
Zmiany wymagają przebudowy i restartu.", + "bsvariables.enable": "Włącz _variables.scss" } \ No newline at end of file diff --git a/public/language/pl/admin/appearance/themes.json b/public/language/pl/admin/appearance/themes.json index 3350ecbdbc..1d34b620c7 100644 --- a/public/language/pl/admin/appearance/themes.json +++ b/public/language/pl/admin/appearance/themes.json @@ -9,5 +9,5 @@ "revert-confirm": "Czy na pewno chcesz przywrócić domyślny styl NodeBB?", "theme-changed": "Styl zmieniony", "revert-success": "Pomyślnie przywrócono domyślny styl NodeBB.", - "restart-to-activate": "Proszę odbudować i zrestartować NodeBB aby w pełni aktywować ten styl." + "restart-to-activate": "Proszę przebudować i zrestartować NodeBB aby w pełni aktywować ten styl." } \ No newline at end of file diff --git a/public/language/pl/admin/dashboard.json b/public/language/pl/admin/dashboard.json index 96f3971cf0..5e7684f78a 100644 --- a/public/language/pl/admin/dashboard.json +++ b/public/language/pl/admin/dashboard.json @@ -2,7 +2,7 @@ "forum-traffic": "Ruch na forum", "page-views": "Wyświetlenia strony", "unique-visitors": "Unikalni goście", - "logins": "Loginy", + "logins": "Logowania", "new-users": "Nowi użytkownicy", "posts": "Posty", "topics": "Tematy", @@ -30,8 +30,8 @@ "upgrade-available": "Pojawiła się nowa wersja (v%1). Rozważ aktualizację NodeBB.", "prerelease-upgrade-available": "To jest przestarzała wersja NodeBB sprzed wydania. Pojawiła się nowa wersja (v%1). Rozważ aktualizację NodeBB.", "prerelease-warning": "To jest NodeBB w wersji sprzed wydania. Może zawierać nieoczekiwane błędy. ", - "fallback-emailer-not-found": "Fallback emailer not found!", - "running-in-development": "Forum is running in development mode. The forum may be open to potential vulnerabilities; please contact your system administrator", + "fallback-emailer-not-found": "Zapasowy e-mailer nie znaleziony!", + "running-in-development": "Forum jest uruchomione w trybie rozwojowym (roboczym). Przez to może być podatne na potencjalne zagrożenia. Skontaktuj się z administratorem.", "latest-lookup-failed": "Nie udało się sprawdzić, jaka jest najnowsza dostępna wersja NodeBB", "notices": "Powiadomienia", @@ -47,7 +47,7 @@ "restart-warning": "Przebudowa i restart NodeBB zerwie na kilka sekund wszystkie aktywne połączenia. ", "restart-disabled": "Zablokowano przebudowę i restart, ponieważ wygląda na to, że nie uruchamiasz NodeBB poprzez właściwy serwis.", "maintenance-mode": "Tryb serwisowy", - "maintenance-mode-title": "Kliknij tutaj, by skonfigurować tryb konserwacji dla NodeBB", + "maintenance-mode-title": "Kliknij tutaj, by skonfigurować tryb serwisowy dla NodeBB", "dark-mode": "Tryb ciemny", "realtime-chart-updates": "Wykresy aktualizowane na żywo", @@ -81,16 +81,16 @@ "last-restarted-by": "Ostatnio restartowany przez", "no-users-browsing": "Brak przeglądających", - "back-to-dashboard": "Powrót do Dashboardu", + "back-to-dashboard": "Powrót do kokpitu", "details.no-users": "Żaden użytkownik nie dołączył w wybranym okresie", "details.no-topics": "Żadne tematy nie zostały opublikowane w wybranym okresie", "details.no-searches": "Nie wykonano żadnych wyszukiwań w wybranym okresie", - "details.no-logins": "Żadne logi nie zostały zapisane w wybranym okresie", - "details.logins-static": "NodeBB zapisuje dane sesji tylko na %1 dzień, dlatego tabela poniżej zawierać będzie tylko ostatnią aktywną sesję", + "details.no-logins": "Żadne logowania nie zostały zarejestrowane w wybranym okresie", + "details.logins-static": "NodeBB zapisuje dane sesji tylko na %1 dni, dlatego tabela poniżej zawierać będzie tylko ostatnio aktywne sesje", "details.logins-login-time": "Czas logowania", "start": "Początek", "end": "Koniec", - "filter": "Filter", + "filter": "Filtruj", "view-as-json": "Zobacz w formacie JSON", "expand-analytics": "Rozwiń analitykę", "clear-search-history": "Usuń historię wyszukiwania", diff --git a/public/language/pl/admin/development/info.json b/public/language/pl/admin/development/info.json index 1be54e0553..32667ed213 100644 --- a/public/language/pl/admin/development/info.json +++ b/public/language/pl/admin/development/info.json @@ -1,7 +1,7 @@ { "you-are-on": "Jesteś na %1:%2", "ip": "IP %1", - "nodes-responded": "%1 węzły odpowiedziały w ciągu %2ms!", + "nodes-responded": "%1 maszyn odpowiedziało w ciągu %2ms!", "host": "host", "primary": "główne / uruchomione zadania", "pid": "pid", diff --git a/public/language/pl/admin/development/logger.json b/public/language/pl/admin/development/logger.json index ee8f86a0bf..9b795ee444 100644 --- a/public/language/pl/admin/development/logger.json +++ b/public/language/pl/admin/development/logger.json @@ -4,7 +4,7 @@ "description": "Poprzez zaznaczenie tych pól wyboru otrzymasz logi na twój terminal. Zamiast tego jeśli podasz ścieżkę, logi zostaną tam zapisane. Logowanie HTTP jest przydatne dla zbierania statystyk o tym kto, kiedy i co czytał na forum. W dodatku do logowania żądań HTTP, możemy też zapisywać zdarzenia socket.io. Logowanie Socket.io, w powiązaniu z monitorowaniem redis-cli, może być bardzo przydatne podczas poznawania mechanizmów wewnętrznych NodeBB.", "explanation": "Zaznacz/odznacz aby właczyc albo wyłączyć dziennik. Restart nie jest wymagany.", "enable-http": "Zapisuj wydarzenia HTTP", - "enable-socket": "Zapisuj zdarzenia Socket.io", + "enable-socket": "Zapisuj zdarzenia socket.io", "file-path": "Ścieżka dziennika", "file-path-placeholder": "/sciezka/do/pliku.log ::: pozostaw pusty aby zapisywac do terminala", diff --git a/public/language/pl/admin/extend/widgets.json b/public/language/pl/admin/extend/widgets.json index 97177017e8..4832c1169f 100644 --- a/public/language/pl/admin/extend/widgets.json +++ b/public/language/pl/admin/extend/widgets.json @@ -7,7 +7,7 @@ "containers.available": "Dostępne kontenery", "containers.explanation": "Przeciągnij i upuść na dowolny widget", "containers.none": "Żadna", - "container.well": "Well", + "container.well": "Studnia", "container.jumbotron": "Jumbotron", "container.card": "Karta", "container.card-header": "Nagłówek karty", @@ -27,9 +27,9 @@ "container.placeholder": "Przeciągnij i upuść kontener lub wpisz tutaj HTML.", "show-to-groups": "Pokaż dla grup", "hide-from-groups": "Ukryj dla grup", - "start-date": "Start date", - "end-date": "End date", - "hide-on-mobile": "Ukraj na urządzeniach mobilnych", + "start-date": "Data początku", + "end-date": "Data końca", + "hide-on-mobile": "Ukryj na urządzeniach mobilnych", "hide-drafts": "Ukryj wersje robocze", "show-drafts": "Pokaż wersje robocze" } \ No newline at end of file diff --git a/public/language/pl/admin/manage/categories.json b/public/language/pl/admin/manage/categories.json index b391b15a80..939732ffad 100644 --- a/public/language/pl/admin/manage/categories.json +++ b/public/language/pl/admin/manage/categories.json @@ -12,7 +12,7 @@ "text-color": "Kolor tekstu", "bg-image-size": "Wielkość obrazka tła", "custom-class": "Niestandardowa klasa", - "num-recent-replies": "Ile ostatnich odpowiedzi", + "num-recent-replies": "# ostatnich odpowiedzi", "ext-link": "Zewnętrzny odnośnik", "subcategories-per-page": "Subkategorie na stronę", "is-section": "Traktuj tę kategorię jako sekcję", diff --git a/public/language/pl/admin/manage/groups.json b/public/language/pl/admin/manage/groups.json index 4dd829778b..ad0390e3d8 100644 --- a/public/language/pl/admin/manage/groups.json +++ b/public/language/pl/admin/manage/groups.json @@ -3,10 +3,10 @@ "add-group": "Dodaj grupę", "edit-group": "Edytuj grupę", "back-to-groups": "Wróć do grup", - "view-group": "View group", + "view-group": "Pokaż grupę", "icon-and-title": "Ikona i tytuł", "name": "Nazwa grupy", - "badge": "Plakietka", + "badge": "Etykieta", "properties": "Właściwości", "description": "Opis grupy", "member-count": "Liczba członków", diff --git a/public/language/pl/admin/manage/privileges.json b/public/language/pl/admin/manage/privileges.json index 3dd128d947..558f77dffb 100644 --- a/public/language/pl/admin/manage/privileges.json +++ b/public/language/pl/admin/manage/privileges.json @@ -6,9 +6,9 @@ "group-privileges": "Uprawnienia grup", "user-privileges": "Uprawnienia użytkownika", "edit-privileges": "Edytuj uprawnienia", - "select-clear-all": "Select/Clear All", + "select-clear-all": "Wybierz/wyczyść wszystko", "chat": "Dostęp do czatu", - "chat-with-privileged": "Czatuj z uprzywilejowanymi", + "chat-with-privileged": "Czatuj z uprawnionymi", "upload-images": "Przesyłanie zdjęć", "upload-files": "Przesyłanie plików", "signature": "Dodanie podpisu", @@ -40,27 +40,27 @@ "delete-topics": "Usuwanie tematów", "purge": "Wymazywanie", "moderate": "Moderowanie", - "admin-dashboard": "Dashboard", + "admin-dashboard": "Kokpit", "admin-categories": "Kategorie", "admin-privileges": "Uprawnienia", "admin-users": "Użytkownicy", - "admin-admins-mods": "Admini i mody", + "admin-admins-mods": "Administratorzy i Moderatorzy", "admin-groups": "Grupy", "admin-tags": "Tagi", "admin-settings": "Ustawienia", "alert.confirm-moderate": "Czy na pewno chcesz przyznać uprawnienia moderacji dla tej grupy użytkowników? Ta grupa jest publiczna i każdy użytkownik może do niej dołączyć.", - "alert.confirm-admins-mods": "Are you sure you wish to grant the "Admins & Mods" privilege to this user/group? Users with this privilege are able to promote and demote other users into privileged positions, including super administrator", + "alert.confirm-admins-mods": "Czy na pewno przyznać prawo "Administratorzy i Moderatorzy" tej grupie lub użytkownikowi? Użytkownicy z takim przywilejem mogą nadawać lub odbierać przywileje innym, włączając w to przywilej super administratora", "alert.confirm-save": "Potwierdź zamiar zapisania uprawnień", "alert.confirm-discard": "Czy na pewno chcesz odrzucić wprowadzone zmiany w uprawnieniach?", "alert.discarded": "Odrzucono zmiany w uprawnieniach", - "alert.confirm-copyToAll": "Are you sure you wish to apply this set of %1 to all categories?", - "alert.confirm-copyToAllGroup": "Are you sure you wish to apply this group's set of %1 to all categories?", - "alert.confirm-copyToChildren": "Are you sure you wish to apply this set of %1 to all descendant (child) categories?", - "alert.confirm-copyToChildrenGroup": "Are you sure you wish to apply this group's set of %1 to all descendant (child) categories?", + "alert.confirm-copyToAll": "Czy chcesz wykorzystać nastaw %1 w względem wszystkich działów?", + "alert.confirm-copyToAllGroup": "Czy na pewno chcesz nadać właściwości grupy %1 względem wszystkich działów?", + "alert.confirm-copyToChildren": "Czy chcesz nadać nastaw %1 dla wszystkich podkategorii?", + "alert.confirm-copyToChildrenGroup": "Czy chcesz wykorzystać nastaw %1 dla wszystkich podkategorii?", "alert.no-undo": "Tej czynności nie można cofnąć.", "alert.admin-warning": "Administratorzy domyślnie otrzymują wszelkie uprawnienia", "alert.copyPrivilegesFrom-title": "Wybierz kategorię, z której skopiować", - "alert.copyPrivilegesFrom-warning": "This will copy %1 from the selected category.", - "alert.copyPrivilegesFromGroup-warning": "This will copy this group's set of %1 from the selected category." + "alert.copyPrivilegesFrom-warning": "To skopiuje %1 z wybranej kategorii.", + "alert.copyPrivilegesFromGroup-warning": "Tak nadasz właściwości grupy %1 z wybranego działu." } \ No newline at end of file diff --git a/public/language/pl/admin/manage/users.json b/public/language/pl/admin/manage/users.json index 638c432dc2..7b3c5c0f0f 100644 --- a/public/language/pl/admin/manage/users.json +++ b/public/language/pl/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "Wysłano zaproszenie do %1", "alerts.x-users-found": "Znaleziono %1 użytkownika(-ów), (czas wyszukiwania: %2 s)", "alerts.select-a-single-user-to-change-email": "Wybierz jednego użytkownika do zmiany e-maila", + "export": "Eksport", + "export-users-fields-title": "Wybierz pola CSV", + "export-field-email": "Email", + "export-field-username": "Nazwa użytkownika", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Dołączył(a)", + "export-field-lastonline": "Ostanio online", + "export-field-lastposttime": "Czas ostatniego wpisu", + "export-field-reputation": "Reputacja", + "export-field-postcount": "Liczba postów", + "export-field-topiccount": "Licznik wątku", + "export-field-profileviews": "Wyświetleń profilu", + "export-field-followercount": "Liczba śledzących", + "export-field-followingcount": "Liczba śledzonych", + "export-field-fullname": "Imię i nazwisko", + "export-field-website": "Strona WWW", + "export-field-location": "Miejscowość", + "export-field-birthday": "Data urodzin", + "export-field-signature": "Sygnaturka", + "export-field-aboutme": "O mnie", + "export-users-started": "Trwa eksport użytkowników do csv. To może chwilkę potrwać. Otrzymasz powiadomienie, gdy ten proces się skończy.", "export-users-completed": "Ukończono eksport użytkowników do csv, kliknij tutaj aby pobrać plik.", "email": "E-mail", diff --git a/public/language/pl/admin/menu.json b/public/language/pl/admin/menu.json index c09fe44dba..e8ffcb96fa 100644 --- a/public/language/pl/admin/menu.json +++ b/public/language/pl/admin/menu.json @@ -1,10 +1,10 @@ { - "section-dashboard": "Dashboards", - "dashboard/overview": "Overview", - "dashboard/logins": "Logins", - "dashboard/users": "Users", - "dashboard/topics": "Topics", - "dashboard/searches": "Searches", + "section-dashboard": "Kokpity", + "dashboard/overview": "Ogólny", + "dashboard/logins": "Logowania", + "dashboard/users": "Użytkownicy", + "dashboard/topics": "Tematy", + "dashboard/searches": "Wyszukiwania", "section-general": "Ogólne", "section-manage": "Zarządzanie", @@ -65,23 +65,23 @@ "section-advanced": "Zaawansowane", "advanced/database": "Baza danych", "advanced/events": "Zdarzenia", - "advanced/hooks": "Hooks", + "advanced/hooks": "Ścieżki", "advanced/logs": "Logi", "advanced/errors": "Błędy", "advanced/cache": "Pamięć", "development/logger": "Loger", "development/info": "Informacja", - "rebuild-and-restart-forum": "Odbudowa i restart forum", - "rebuild-and-restart": "Rebuild & Restart", + "rebuild-and-restart-forum": "Przebudowa i restart forum", + "rebuild-and-restart": "Przebudowa i restart", "restart-forum": "Restartuj forum", "restart": "Restart", "logout": "Wyloguj się", "view-forum": "Zobacz forum", - "search.placeholder": "Search settings", + "search.placeholder": "Szukaj ustawienia", "search.no-results": "Brak wyników...", - "search.search-forum": "Szukaj w forum ", + "search.search-forum": "Szukaj na forum ", "search.keep-typing": "Wpisz więcej, aby zobaczyć wyniki ...", "search.start-typing": "Zacznij pisać, aby zobaczyć wyniki ...", diff --git a/public/language/pl/admin/settings/advanced.json b/public/language/pl/admin/settings/advanced.json index 11accd5768..522818a4d1 100644 --- a/public/language/pl/admin/settings/advanced.json +++ b/public/language/pl/admin/settings/advanced.json @@ -1,28 +1,28 @@ { - "maintenance-mode": "Tryb konserwacji", - "maintenance-mode.help": "Kiedy forum jest w trybie konserwacji, wszystkie żądania będą przekierowane do statycznej strony oczekiwania. Administratorzy nie są objęci tym przekierowaniem i mogą normalnie korzystać ze strony.", - "maintenance-mode.status": "Kod stanu trybu konserwacji", - "maintenance-mode.message": "Komunikat na ekranie konserwacji", - "maintenance-mode.groups-exempt-from-maintenance-mode": "Wybierz grupy, które powinny być wyjątkiem od trybu konswerwacji", + "maintenance-mode": "Tryb serwisowy", + "maintenance-mode.help": "Kiedy forum jest w trybie serwisowym, wszystkie żądania będą przekierowane do statycznej strony oczekiwania. Administratorzy nie są objęci tym przekierowaniem i mogą normalnie korzystać ze strony.", + "maintenance-mode.status": "Kod stanu trybu serwisowego", + "maintenance-mode.message": "Komunikat na ekranie serwisowym", + "maintenance-mode.groups-exempt-from-maintenance-mode": "Wybierz grupy, które powinny być wyjątkiem od trybu serwisowego", "headers": "Nagłówki", "headers.allow-from": "Ustaw ALLOW-FROM, aby umieścić NodeBB w ramce iFrame", - "headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame", - "headers.csp-frame-ancestors-help": "'none', 'self'(default) or list of URIs to allow.", + "headers.csp-frame-ancestors": "Ustaw nagłówek Content-Security-Policy aby zamieścić NodeBB w iFrame.", + "headers.csp-frame-ancestors-help": "'none', 'self' (domyślne) albo lista adresów URI, na które zezwalać.", "headers.powered-by": "Dopasuj nagłówek \"Powered By\" wysyłany przez NodeBB", "headers.acao": "Kontrola-Dostępu-Zezwól-Żródło", "headers.acao-regex": "Kontrola-Dostępu-Zezwól-Źródło Wyrażenie Regularne", "headers.acao-help": "Aby zablokować dostęp do wszystkich stron, pozostaw puste.", "headers.acao-regex-help": "Tutaj wprowadź wyrażenia regularne, aby dopasować dynamiczne źródła. Aby zablokować dostęp do wszystkich stron, pozostaw puste.", - "headers.acac": "Kontrola-Dostępu-Zezwól- Dane Logowania", + "headers.acac": "Kontrola-Dostępu-Zezwól-Dane Logowania", "headers.acam": "Kontrola-Dostępu-Zezwól-Metody", "headers.acah": "Kontrola-Dostępu-Zezwól-Nagłówki", "headers.coep": "Cross-Origin-Embedder-Policy", - "headers.coep-help": "When enabled (default), will set the header to require-corp", + "headers.coep-help": "Gdy włączone (domyślnie) ustawi nagłówekrequire-corp", "headers.coop": "Cross-Origin-Opener-Policy", "headers.corp": "Cross-Origin-Resource-Policy", "headers.permissions-policy": "Permissions-Policy", - "headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see this for more info.", - "hsts": "Strict Transport Security", + "headers.permissions-policy-help": "Pozwala ustawić nagłówek uprawnień jak np. \"geolocation=*, camera=()\", zobacz tutaj aby uzyskać więcej informacji.", + "hsts": "HTTP Strict Transport Security", "hsts.enabled": "Włączony HSTS (zalecane)", "hsts.maxAge": "Maksymalny wiek HSTS", "hsts.subdomains": "Uwzględnij subdomeny w nagłówku HSTS", @@ -42,9 +42,9 @@ "sockets.delay": "Opóźnienie ponownego łączenia", "analytics.settings": "Ustawienia analityki", - "analytics.max-cache": "Maksymalna wartość cache analityki", - "analytics.max-cache-help": "On high-traffic installs, the cache could be exhausted continuously if there are more concurrent active users than the Max Cache value. (Restart required)", + "analytics.max-cache": "Maksymalna wartość pamięci podręcznej analityki", + "analytics.max-cache-help": "Przy dużym ruchu na forum weź poprawkę na to aby zapewnić pamięć podręczną przekraczającą liczbę odwiedzających stronę w tej samej chwili (potrzebny restartart).", "compression.settings": "Ustawienia Kompresji", "compression.enable": "Włącz Kompresję", - "compression.help": "This setting enables gzip compression. For a high-traffic website in production, the best way to put compression in place is to implement it at a reverse proxy level. You can enable it here for testing purposes." + "compression.help": "To ustawienie włącza kompresję gzip. Na stronach produkcyjnych o dużym ruchu, najlepiej ustawić kompresję na poziomie reverse-proxy. Możesz włączyć je tutaj na cele testów." } \ No newline at end of file diff --git a/public/language/pl/admin/settings/api.json b/public/language/pl/admin/settings/api.json index b94423a964..4fcdb48b68 100644 --- a/public/language/pl/admin/settings/api.json +++ b/public/language/pl/admin/settings/api.json @@ -3,27 +3,27 @@ "settings": "Ustawienia", "lead-text": "Na tej stronie możesz skonfigurować dostęp do Write API w NodeBB.", "intro": "Domyślnie Write API uwierzytelnia użytkowników na podstawie ich sesji cookie, ale NodeBB obsługuje również uwierzytelnianie okaziciela za pomocą tokenów generowanych za pośrednictwem tej strony.", - "warning": "Be advised — treat tokens like passwords. If they are leaked, your account should be considered compromised.", + "warning": "Pamiętaj — traktuj tokeny jak hasła. Jeśli wyciekły, uznaj swoje konto jako przejęte.", "docs": "Kliknij tutaj, aby zobaczyć pełną specyfikację API", "require-https": "Wymagaj użycia API tylko przez HTTPS", - "require-https-caveat": "Notatka: Niektóre instalacje z modułami równoważenia obciążenia mogą przekazywać swoje żądania do NodeBB za pomocą protokołu HTTP, w takim przypadku ta opcja powinna pozostać wyłączona.", + "require-https-caveat": "Uwaga: Niektóre instalacje z modułami równoważenia obciążenia mogą przekazywać swoje żądania do NodeBB za pomocą protokołu HTTP, w takim przypadku ta opcja powinna pozostać wyłączona.", "uid": "ID Użytkownika", "token": "Token", - "uid-help-text": "Specify a User ID to associate with this token. If the user ID is 0, it will be considered a master token, which can assume the identity of other users based on the _uid parameter", + "uid-help-text": "Wyznacz ID użytkownika przypisanego do tego tokena. Jeśli ID użytkownika będzie ustawione na 0, to token zostanie uznany za główny i będzie mógł przyjmować tożsamość innych użytkowników na podstawie parametru _uid", "description": "Opis", "last-seen": "Ostatnio widziany", "created": "Utworzony", - "create-token": "Create Token", - "update-token": "Update Token", - "master-token": "Master token", + "create-token": "Utwórz token", + "update-token": "Zaktualizuj token", + "master-token": "Główny token", "last-seen-never": "Ten klucz nigdy nie został użyty.", "no-description": "Brak opisu.", "actions": "Akcje", "edit": "Edytuj", - "roll": "Roll", + "roll": "Wygeneruj ponownie", - "delete-confirm": "Are you sure you wish to delete this token? It will not be recoverable.", - "roll-confirm": "Are you sure you wish to regenerate this token? The old token will be immediately revoked and will not be recoverable." + "delete-confirm": "Czy na pewno chcesz usunąć ten token? Tego nie da się odwrócić.", + "roll-confirm": "Czy na pewno chcesz wygenerować ponownie ten token? Stary token zostanie natychmiast odwołany i będzie nie do odzyskania." } \ No newline at end of file diff --git a/public/language/pl/admin/settings/chat.json b/public/language/pl/admin/settings/chat.json index efe61f88f7..c2f9b0dd49 100644 --- a/public/language/pl/admin/settings/chat.json +++ b/public/language/pl/admin/settings/chat.json @@ -4,12 +4,12 @@ "disable": "Wyłącz czat", "disable-editing": "Wyłącz edycję/usuwanie wiadomości czat", "disable-editing-help": "Ograniczenie to nie dotyczy administratorów i moderatorów globalnych", - "max-length": "Maksymalna długość wiadomości czat", - "max-chat-room-name-length": "Maximum length of chat room names", + "max-length": "Maksymalna długość wiadomości czatu", + "max-chat-room-name-length": "Maksymalna długość nazw pokojów czatu", "max-room-size": "Maksymalna liczba użytkowników w pokojach czatu", "delay": "Czas pomiędzy wiadomościami czatu (ms)", "notification-delay": "Opóźnienie powiadomień dla wiadomości czatu", - "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." + "notification-delay-help": "Kolejne wiadomości wysłane między tym czasem są szeregowane, a użytkownik jest powiadamiany raz na czas opóźnienia. Ustaw 0, aby wyłączyć opóźnienie.", + "restrictions.seconds-edit-after": "Liczba sekund, przez którą wiadomość czatu pozostanie edytowalna.", + "restrictions.seconds-delete-after": "Liczba sekund, przez którą wiadomość czatu pozostanie usuwalna." } \ No newline at end of file diff --git a/public/language/pl/admin/settings/email.json b/public/language/pl/admin/settings/email.json index 5c58056dec..322e56fa79 100644 --- a/public/language/pl/admin/settings/email.json +++ b/public/language/pl/admin/settings/email.json @@ -13,8 +13,8 @@ "smtp-transport-help": "Możesz wybrać z listy dobrze znanych usług lub wskazać usługę niestandardową.", "smtp-transport.service": "Wybierz usługę", "smtp-transport.service-custom": "Usługa niestandardowa", - "smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.", - "smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the App Passwords page.", + "smtp-transport.service-help": "Wybierz nazwę usługi aby wykorzystać wcześniej przygotowane ustawienia. Własne dane wprowadzisz wybierając "Inny serwer" i korzystając z pól poniżej.", + "smtp-transport.gmail-warning1": "O ile korzystasz z GMail jako dostawcy skrzynki e-mail będzie trzeba skorzystać z opcji "App Password" aby NodeBB uzyskało prawa dostępu. Wygenerujesz jedno z nich na stronie App Passwords .", "smtp-transport.gmail-warning2": "Aby uzyskać więcej informacji o tym obejściu, proszę zobaczyć ten artykuł NodeMailer. Alternatywą jest użyć zewnętrznej wtyczki do maili, jak SendGrid, Mailgun, itp. Przejrzyj dostępne wtyczki tutaj.", "smtp-transport.auto-enable-toast": "Wygląda na to, że konfigurujesz transport SMTP. Włączyliśmy dla Ciebie opcję \"Transport SMTP\".", "smtp-transport.host": "Host SMTP", @@ -42,11 +42,11 @@ "subscriptions.hour-help": "Wprowadź liczbę odpowiadającą godzinie, o której mają być wysyłane regularne e-maile z podsumowaniem (np. 0 dla północy lub 17 dla 17:00). Pamiętaj, że godzina jest godziną serwera i nie musi zgadzać się z czasem lokalnym administratora. Przybliżony czas serwera to:
Wysłanie kolejnego e-maila z podsumowaniem zaplanowano na ", "notifications.remove-images": "Usuń obrazy z powiadomień mailowych", "require-email-address": "Wymagaj od nowych użytkowników podawania adresu e-mail", - "require-email-address-warning": "By default, users can opt-out of entering an email address by leaving the field blank. Enabling this option means new users will have to enter and confirm an email address in order to proceed with registration and subsequent access to the forum. It does not ensure user will enter a real email address, nor even an address they own.", - "send-validation-email": "Send validation emails when an email is added or changed", + "require-email-address-warning": "Domyślnie użytkownicy mogą odstąpić od podania adresu e-mail pozostawiając pole puste. Włączenie tej opcji powoduje, że nowi użytkownicy będą musieli podać i potwierdzić adres e-mail, aby przejść rejestrację i uzyskać dostęp do forum. Nie gwarantuje to, że użytkownik poda prawdziwy adres e-mail, albo adres, który należy do niego.", + "send-validation-email": "Wyślij e-mail weryfikacyjny jeśli adres e-mail został dodany lub zmieniony", "include-unverified-emails": "Wysyłaj maile odbiorcom, którzy nie potwierdzili wprost swoich adresów", - "include-unverified-warning": "By default, users with emails associated with their account have already been verified, but there are situations where this is not the case (e.g. SSO logins, grandfathered users, etc). Enable this setting at your own risk – sending emails to unverified addresses may be a violation of regional anti-spam laws.", + "include-unverified-warning": "Zwykle adresy e=mail użytkowników są potwierdzone. Jednak zdarzają się odstępstępstwa jak np. logowania przez zewnętrzne SSO. Włącz tę funkcję na własną odpowiedzialność – pamiętając, że może to doprowadzić do naruszeń związanych z walką ze spamem.", "prompt": "Proś użytkowników by podawali i potwierdzali swoje adresy e-mail", - "prompt-help": "If a user does not have an email set, or their email is not confirmed, a warning will be shown on screen.", + "prompt-help": "Jeśli użytkownik nie ma ustawionego adresu e-mail, albo jego adres nie jest potwierdzony, na ekranie zostanie wyświetlone ostrzeżenie.", "sendEmailToBanned": "Wysyłaj maile także do zbanowanych użytkowników" } diff --git a/public/language/pl/admin/settings/general.json b/public/language/pl/admin/settings/general.json index 8d42fb4804..46f8649a73 100644 --- a/public/language/pl/admin/settings/general.json +++ b/public/language/pl/admin/settings/general.json @@ -1,5 +1,5 @@ { - "general-settings": "General Settings", + "general-settings": "Ustawienia ogólne", "on-this-page": "Na tej stronie:", "site-settings": "Ustawienia strony", "title": "Tytuł strony", @@ -7,7 +7,7 @@ "title.short-placeholder": "Jeśli nie wskazano krótkiego tytułu, użyty zostanie tytuł strony", "title.url": "Adres odnośnika tytułu", "title.url-placeholder": "Adres URL strony tytułowej", - "title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index. Note: This is not the external URL used in emails, etc. That is set by the url property in config.json", + "title.url-help": "Po kliknięciu w tytuł użytkownik przejdzie pod ten adres. Jeśli to pole jest puste, użytkownik zostanie przeniesiony na stronę główną forum. Uwaga: To nie jest adres zewnętrzny używany w wiadomościach e-mail, itp. Taki adres ustala właściwość url w config.json", "title.name": "Nazwa twojej społeczności", "title.show-in-header": "Pokazuj tytuł strony w nagłówku", "browser-title": "Tytuł karty przeglądarki", @@ -24,7 +24,7 @@ "logo.upload": "Prześlij", "logo.url": "Adres odnośnika logo", "logo.url-placeholder": "Adres URL logo strony", - "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.
Note: This is not the external URL used in emails, etc. That is set by the url property in config.json", + "logo.url-help": "Po kliknięciu w logo użytkownik przejdzie pod ten adres. Jeśli to pole jest puste, użytkownik zostanie przeniesiony na stronę główną forum.
Uwaga: To nie jest adres zewnętrzny używany w wiadomościach e-mail, itp. Taki adres ustala właściwość url w config.json", "logo.alt-text": "Alternatywny tekst", "log.alt-text-placeholder": "Alternatywny tekst dla dostępności", "favicon": "Favikona", @@ -33,14 +33,14 @@ "touch-icon": "Ikonka dotykowa", "touch-icon.upload": "Prześlij", "touch-icon.help": "Rekomendowana wielkość: 512x512, tylko format PNG. Jeśli nie ustalono ikony dotykowej, użyta zostanie favikona.", - "maskable-icon": "Maskable (Homescreen) Icon", - "maskable-icon.help": "Recommended size and format: 512x512, PNG format only. If no maskable icon is specified, NodeBB will fall back to the Touch Icon.", + "maskable-icon": "Ikona ekranu głównego", + "maskable-icon.help": "Rekomendowana wielkość: 512x512, tylko format PNG. Jeśli nie ustalono tej ikony, użyta zostanie ikona dotykowa.", "outgoing-links": "Odnośniki wychodzące", "outgoing-links.warning-page": "Używaj strony ostrzegawczej o odnośnikach wychodzących", "search": "Szukaj", "search-default-in": "Szukaj w", "search-default-in-quick": "Szybkie wyszukiwanie w", - "search-default-sort-by": "Sort by", + "search-default-sort-by": "Sortuj według", "outgoing-links.whitelist": "Domeny na białej liście pozwalającej ominąć stronę ostrzegawczą", "site-colors": "Metadane kolorów strony", "theme-color": "Kolor przewodni", @@ -48,5 +48,5 @@ "background-color-help": "Kolor wykorzystywany jako tło ekranu ładowania gdy strona jest zainstalowana jako PWA", "undo-timeout": "Czas na cofnięcie", "undo-timeout-help": "Niektóre operacje, jak przenoszenie tematów, pozwolą moderatorowi cofnąć swoje akcje w przeciągu pewnego czasu. Ustaw 0 aby wyłączyć cofanie całkowicie.", - "topic-tools": "Topic Tools" + "topic-tools": "Narzędzia tematu" } diff --git a/public/language/pl/admin/settings/navigation.json b/public/language/pl/admin/settings/navigation.json index c62c83f88b..0846e17dff 100644 --- a/public/language/pl/admin/settings/navigation.json +++ b/public/language/pl/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: opcjonalnie", "properties": "Ustawienia:", - "groups": "Grupy:", + "show-to-groups": "Pokaż grupom:", "open-new-window": "Otwórz w nowym oknie", "dropdown": "Lista rozwijana", "dropdown-placeholder": "Umieść pozycje menu rozwijanego poniżej, np.:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/pl/admin/settings/post.json b/public/language/pl/admin/settings/post.json index 4b9335de79..36bed5fb95 100644 --- a/public/language/pl/admin/settings/post.json +++ b/public/language/pl/admin/settings/post.json @@ -4,11 +4,11 @@ "sorting.post-default": "Domyślne sortowanie postów", "sorting.oldest-to-newest": "Od najstarszych do najnowszych", "sorting.newest-to-oldest": "Od najnowszych do najstarszych", - "sorting.recently-replied": "Recently Replied", - "sorting.recently-created": "Recently Created", + "sorting.recently-replied": "Najnowsze odpowiedzi", + "sorting.recently-created": "Ostatnio utworzone", "sorting.most-votes": "Najwięcej głosów", "sorting.most-posts": "Najwięcej postów", - "sorting.most-views": "Most Views", + "sorting.most-views": "Najwięcej wyświetleń", "sorting.topic-default": "Domyślne sortowanie tematów", "length": "Długość postu", "post-queue": "Kolejka postów", @@ -31,15 +31,15 @@ "timestamp.cut-off": "Termin odcięcia (w dniach)", "timestamp.cut-off-help": "Daty oraz godziny będą wyświetlane w sposób relatywny (np. \"3 godziny temu\" / \"5 dni temu\"), oraz przetłumaczone na różne\n\t\t\t\t\tjęzyki. Po określonym czasie, ten tekst może zostać zmieniony, aby wyświetlać sformatowane daty.\n\t\t\t\t\t(np. 4 Lut 2017 12:45).
(domyślnie: 30, lub jeden miesiąc). Ustaw 0, aby zawsze wyświetlać daty; pozostaw puste, aby korzystać z tylko z relatywnych opisów.", "timestamp.necro-threshold": "Próg nekro (w dniach)", - "timestamp.necro-threshold-help": "Komunikat zostanie wyświetlony między postami, jeśli czas między nimi jest dłuższy niż próg nekro. (Domyślnie: 7 lub jeden tydzień). Ustaw na 0, aby wyłączyć.", - "timestamp.topic-views-interval": "Increment topic views interval (in minutes)", - "timestamp.topic-views-interval-help": "Topic views will only increment once every X minutes as defined by this setting.", - "teaser": "Zwiastun postu", + "timestamp.necro-threshold-help": "Komunikat zostanie wyświetlony między postami, jeśli czas między nimi jest dłuższy niż próg nekro. (Domyślnie: 7 lub tydzień). Ustaw na 0, aby wyłączyć.", + "timestamp.topic-views-interval": "Przestój w podnoszeniu liczby wyświetleń tematów (w minutach)", + "timestamp.topic-views-interval-help": "Liczba wyświetleń tematów będzie podnosić się co najwyżej co każde X minut, jak zdefiniowano tutaj.", + "teaser": "Zajawka wpisu", "teaser.last-post": "Ostatni – Pokaż ostatni post, włączając pierwszy post, w razie braku odpowiedzi", "teaser.last-reply": "Ostatni – Pokaż ostatnią odpowiedź lub komunikat „Brak odpowiedzi” w razie ich braku", "teaser.first": "Pierwszy", "showPostPreviewsOnHover": "Pokaż podgląd postu po najechaniu myszą", - "unread-and-recent": "Unread & Recent Settings", + "unread-and-recent": "Ustawienia nieprzeczytanych i ostatnich", "unread.cutoff": "Dni do odcięcia nieprzeczytanych ", "unread.min-track-last": "Minimalna liczba postów w temacie przed śledzeniem ostatnio przeczytanego", "recent.max-topics": "Maksymalna liczba postów na stronie /recent", @@ -56,7 +56,7 @@ "composer.enable-plugin-help": "Zezwalaj wtyczkom na dodawanie zawartości do zakładki pomocy", "composer.custom-help": "Własny tekst pomocy", "backlinks": "Odniesienia wstecz", - "backlinks.enabled": "Włącz odniesienia wstecz tematów", + "backlinks.enabled": "Włącz wzmianki o wątku", "backlinks.help": "Jeśli post odnosi się do innego tematu, odnośnik do tego posta zostanie umieszczony w temacie, do którego się odnosi i umiejscowiony w chwili napisania.", "ip-tracking": "Śledzenie IP", "ip-tracking.each-post": "Śledź adres IP dla każdego postu", diff --git a/public/language/pl/admin/settings/tags.json b/public/language/pl/admin/settings/tags.json index 07f3443466..2f6b887a22 100644 --- a/public/language/pl/admin/settings/tags.json +++ b/public/language/pl/admin/settings/tags.json @@ -1,9 +1,9 @@ { "tag": "Ustawienia tagów", "link-to-manage": "Zarządzaj tagami", - "system-tags": "System tagów", + "system-tags": "Systemowe tagi", "system-tags-help": "Tylko uprzywilejowani użytkownicy będą mogli używać tych tagów.", - "tags-per-topic": "Tags per topic", + "tags-per-topic": "Tagów na jeden temat", "min-per-topic": "Minimalna liczba tagów na temat", "max-per-topic": "Maksymalna liczba tagów na temat", "min-length": "Minimalna długość tagu", diff --git a/public/language/pl/admin/settings/user.json b/public/language/pl/admin/settings/user.json index be47f56286..8a3e22336a 100644 --- a/public/language/pl/admin/settings/user.json +++ b/public/language/pl/admin/settings/user.json @@ -7,14 +7,14 @@ "allow-login-with.username": "Tylko nazwy użytkownika", "account-settings": "Ustawienia konta", "gdpr-enabled": "Włącz gromadzenie danych (RODO)", - "gdpr-enabled-help": "Po włączeniu wszyscy nowi użytkownicy będą musieli jednoznacznie wyrazić zgodę na gromadzenie i wykorzystanie danych na mocy ogólnego rozporządzenia o ochronie danych (RODO). Uwaga: włączenie RODO nie zmusza istniejących użytkowników do wyrażenia zgody. Aby to zrobić, musisz zainstalować wtyczkę GDPR.", + "gdpr-enabled-help": "Po włączeniu wszyscy nowi użytkownicy będą musieli jednoznacznie wyrazić zgodę na gromadzenie i wykorzystanie danych na mocy ogólnego rozporządzenia o ochronie danych (RODO). Uwaga: włączenie RODO nie zmusza istniejących użytkowników do wyrażenia zgody. Aby to zrobić, musisz zainstalować wtyczkę GDPR.", "disable-username-changes": "Wyłącz możliwość zmiany nazwy użytkownika", "disable-email-changes": "Wyłącz możliwość zmiany adresu e-mail", "disable-password-changes": "Wyłącz możliwość zmiany hasła", "allow-account-deletion": "Zezwalaj na usunięcie konta", "hide-fullname": "Ukrywaj pełne imię i nazwisko przed innymi użytkownikami", "hide-email": "Ukryj adresy e-mail użytkowników", - "show-fullname-as-displayname": "Show user's full name as their display name if available", + "show-fullname-as-displayname": "Pokazuj imię i nazwisko w miejsce podpisu, o ile dostępne", "themes": "Style", "disable-user-skins": "Nie zezwalaj użytkownikom na wybranie niestandardowej skórki", "account-protection": "Ochrona konta", @@ -46,7 +46,7 @@ "registration-approval-type.help": "Normalny - użytkownicy są rejestrowani natychmiast.
\nZatwierdzenie administratora - rejestracje użytkowników są umieszczane w kolejce zatwierdzania dla administratorów.
\n Kolejka zatwierdzania dla IPs - Normalne dla nowych użytkowników, kolejka zatwierdzania dla adresów IP, które już mają konto.
", "registration-queue-auto-approve-time": "Czas automatycznej akceptacji", "registration-queue-auto-approve-time-help": "Godzin do automatycznej akceptacji użytkownika. 0 by wyłączyć.", - "registration-queue-show-average-time": "Show users average time it takes to approve a new user", + "registration-queue-show-average-time": "Pokazuj użytkownikom średni czas, jaki zajmuje akceptacja nowego użytkownika", "registration.max-invites": "Maksymalnie liczba zaproszeń na użytkownika", "max-invites": "Maksymalnie liczba zaproszeń na użytkownika", "max-invites-help": "0 dla braku ograniczeń. Administratorzy otrzymują nieskończoną liczbę zaproszeń
Aplikowane tylko dla \"Tylko zaproszeni\"", @@ -62,7 +62,7 @@ "user-search-results-per-page": "Liczba użytkowników wyświetlająca się w wynikach szukania", "default-user-settings": "Domyślne ustawienia użytkownika", "show-email": "Pokazuj adres e-mail", - "show-fullname": "Pokazuj pełną nazwę uzytkownika", + "show-fullname": "Pokazuj imię i nazwisko uzytkownika", "restrict-chat": "Przyjmuj wiadomości na czacie tylko od osób, które obserwuję", "outgoing-new-tab": "Otwieraj odnośniki wychodzące na nowej karcie", "topic-search": "Włącz wyszukiwanie wewnątrz tematów", diff --git a/public/language/pl/aria.json b/public/language/pl/aria.json index 89489d54e2..2f4597abbc 100644 --- a/public/language/pl/aria.json +++ b/public/language/pl/aria.json @@ -3,6 +3,6 @@ "topic-sort-option": "Opcja sortowania tematów, %1", "user-avatar-for": "Awatar dla %1", "user-watched-tags": "Tagi obserwowane przez użytkownika", - "delete-upload-button": "Delete upload button", - "group-page-link-for": "Group page link for %1" + "delete-upload-button": "Przycisk kasowania załącznika", + "group-page-link-for": "Odsyłacz dla grupy %1" } \ No newline at end of file diff --git a/public/language/pl/category.json b/public/language/pl/category.json index 8c4b8c0fc3..f422bb0811 100644 --- a/public/language/pl/category.json +++ b/public/language/pl/category.json @@ -11,7 +11,7 @@ "ignore": "Ignoruj", "watching": "Obserwowane", "tracking": "Śledzenie", - "not-watching": "Nie obserwowane", + "not-watching": "Nieobserwowane", "ignoring": "Ignorowane", "watching.description": "Powiadom mnie o nowych tematach.
Pokaż tematy w nieprzeczytanych i ostatnich.", "tracking.description": "Pokaż tematy w nieprzeczytanych i w ostatnim czasie", diff --git a/public/language/pl/email.json b/public/language/pl/email.json index e2f81eaf91..d8f306f4cf 100644 --- a/public/language/pl/email.json +++ b/public/language/pl/email.json @@ -22,8 +22,8 @@ "reset.notify.subject": "Hasło zmienione pomyślnie", "reset.notify.text1": "Informujemy, że Twoje hasło na %1 zostało zmienione.", "reset.notify.text2": "Jeśli nie wyraziłeś na to zgody, niezwłocznie poinformuj administratora.", - "digest.unread-rooms": "Unread rooms", - "digest.room-name-unreadcount": "%1 (%2 unread)", + "digest.unread-rooms": "Nieprzeczytane pokoje", + "digest.room-name-unreadcount": "%1 (%2 nieprzeczytanych)", "digest.latest-topics": "Ostatnie tematy z %1", "digest.top-topics": "Topowe tematy z %1", "digest.popular-topics": "Najpopularniejsze tematy z %1", @@ -36,8 +36,8 @@ "digest.title.day": "Twoje dzienne podsumowanie", "digest.title.week": "Twoje tygodniowe podsumowanie", "digest.title.month": "Twoje miesięczne podsumowanie", - "notif.chat.new-message-from-user": "New message from \"%1\"", - "notif.chat.new-message-from-user-in-room": "New message from %1 in room %2", + "notif.chat.new-message-from-user": "Nowa wiadomość od \"%1\"", + "notif.chat.new-message-from-user-in-room": "Nowa wiadomość od %1 w pokoju %2", "notif.chat.cta": "Kliknij tutaj, aby kontynuować rozmowę", "notif.chat.unsub.info": "To powiadomienie o czacie zostało wysłane zgodnie z Twoimi ustawieniami.", "notif.post.unsub.info": "To powiadomienie o poście zostało wysłane zgodnie z Twoimi ustawieniami.", @@ -51,7 +51,7 @@ "unsub.cta": "Kliknij tutaj, aby zmienić te ustawienia", "unsubscribe": "Wypisz się", "unsub.success": "Nie będziesz już otrzymywać wiadomości e-mail z %1", - "unsub.failure.title": "Nie udało się odsubskrybować", + "unsub.failure.title": "Nie udało się wypisać", "unsub.failure.message": "Niestety nie udało nam się wypisać Cię z listy mailingowej, ponieważ wystąpił problem z linkiem. Możesz jednak zmienić swoje preferencje dotyczące poczty e-mail, przechodząc do Twoich ustawień.

(błąd: %1)", "banned.subject": "Zostałeś zbanowany na %1", "banned.text1": "Użytkownik %1 został zbanowany na %2.", diff --git a/public/language/pl/error.json b/public/language/pl/error.json index 69e36146d9..5f4f596cbf 100644 --- a/public/language/pl/error.json +++ b/public/language/pl/error.json @@ -23,7 +23,7 @@ "invalid-password": "Błędne hasło", "invalid-login-credentials": "Niewłaściwe dane logowania", "invalid-username-or-password": "Podaj nazwę użytkownika i hasło", - "invalid-search-term": "Błędne wyszukiwane wyrażenie", + "invalid-search-term": "Błędne szukane wyrażenie", "invalid-url": "Błąd w adresie URL", "invalid-event": "Nieprawidłowe zdarzenie: %1", "local-login-disabled": "System lokalnego logowania został wyłączony dla kont bez uprawnień.", @@ -66,7 +66,7 @@ "no-flag": "Nie ma takiej flagi", "no-chat-room": "Nie ma takiego pokoju", "no-privileges": "Nie masz przywileju wykonywania tej akcji", - "category-disabled": "Kategoria wyłączona.", + "category-disabled": "Kategoria wyłączona", "topic-locked": "Temat zablokowany", "post-edit-duration-expired": "Możesz edytować posty tylko przez %1 sekund(y) po ich napisaniu", "post-edit-duration-expired-minutes": "Możesz edytować posty tylko przez %1 minut(y) po ich napisaniu", @@ -139,7 +139,7 @@ "group-already-requested": "Twoje podanie o członkostwo zostało już wysłane", "group-join-disabled": "Nie możesz teraz dołączyć do tej grupy", "group-leave-disabled": "Obecnie nie możesz opuścić tej grupy", - "group-user-not-pending": "User does not have a pending request to join this group.", + "group-user-not-pending": "Użytkownik nie ma oczekującego podania o członkostwo w tej grupie.", "gorup-user-not-invited": "Nie zaproszono użytkownika do tej grupy.", "post-already-deleted": "Ten post został już skasowany", "post-already-restored": "Ten post został już przywrócony", @@ -203,9 +203,9 @@ "invite-maximum-met": "Zaprosiłeś maksymalną liczbę osób (%1 z %2).", "no-session-found": "Nie znaleziono sesji logowania", "not-in-room": "Użytkownika nie ma w pokoju", - "cant-kick-self": "Nie możesz wyrzucić samego siebie z grupy", + "cant-kick-self": "Nie możesz wyrzucić z grupy samego siebie", "no-users-selected": "Nie wybrano żadnych użytkowników", - "no-groups-selected": "No group(s) selected", + "no-groups-selected": "Nie wybrano żadnych grup", "invalid-home-page-route": "Niepoprawny odnośnik strony domowej", "invalid-session": "Nieprawidłowa sesja", "invalid-session-text": "Wygląda na to, że Twoja sesja wygasła. Proszę odśwież stronę.", @@ -222,13 +222,13 @@ "no-connection": "Sprawdź swoje połączenie z internetem", "socket-reconnect-failed": "W tej chwili nie można połączyć się z serwerem. Kliknij tutaj, aby spróbować ponownie, lub spróbuj ponownie później", "invalid-plugin-id": "Niepoprawny identyfikator wtyczki", - "plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP", + "plugin-not-whitelisted": "Nie da się zainstalować tej wtyczki – tylko wtyczki z białej listy menadżera pakietów NodeBB mogą być instalowane przez ACP", "plugins-set-in-configuration": "Nie możesz zmienić stanu wtyczki, bo został on zdefiniowany przy uruchamianiu (config.json, zmienne środowiskowe lub argumenty z terminala). Zamiast tego zmień konfigurację.", - "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", + "theme-not-set-in-configuration": "Pamiętaj o zależności między aktywnymi wtyczkami a wystrojem, który ma z nimi współpracować.", "topic-event-unrecognized": "Zdarzenie w temacie '%1' nierozpoznane", "cant-set-child-as-parent": "Nie można ustawić podkategorii jako kategorii nadrzędnej", "cant-set-self-as-parent": "Nie można ustawić kategorii nadrzędnej do samej siebie", - "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", + "api.master-token-no-uid": "Otrzymano główny token bez odpowiedniego `_uid` w treści wywołania", "api.400": "Coś było nie tak z przekazaną treścią żądania.", "api.401": "Poprawna sesja logowanie nie została znaleziona. Proszę zaloguj się i spróbuj ponownie.", "api.403": "Nie masz uprawnień do wykonania tego żądania", @@ -236,7 +236,7 @@ "api.426": "HTTPS jest wymagany dla żądań do API zapisu, wyślij ponownie żądanie przez HTTPS", "api.429": "Został przekroczony limit żądań, proszę spróbuj ponownie później", "api.500": "Wystąpił nieoczekiwany błąd podczas próby obsługi Twojego żądania.", - "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow", + "api.501": "Ścieżka jaką próbujesz wywołać, nie jest jeszcze zaimplementowana. Spróbuj ponownie jutro.", "api.503": "Ścieżka z którą próbujesz się połączyć, jest obecnie niedostępna z powodu konfiguracji serwera", "api.reauth-required": "Zasób, do którego próbujesz uzyskać dostęp, wymaga (być może ponownego) uwierzytelnienia." } \ No newline at end of file diff --git a/public/language/pl/flags.json b/public/language/pl/flags.json index 4a35a6e3b4..c85dab16da 100644 --- a/public/language/pl/flags.json +++ b/public/language/pl/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Operacje masowe", "bulk-resolve": "Oznacz flagi jako rozwiązane", "bulk-success": "Zaktualizowano %1 flag", - "flagged-timeago-readable": "Oflagowano (%2)", + "flagged-timeago": "Oznaczone ", "auto-flagged": "[Automatyczna Flaga] Otrzymano %1 głosów przeciw." } \ No newline at end of file diff --git a/public/language/pl/global.json b/public/language/pl/global.json index 3f79dd1c0d..48cedbc82d 100644 --- a/public/language/pl/global.json +++ b/public/language/pl/global.json @@ -1,5 +1,5 @@ { - "home": "Strona startowa", + "home": "Start", "search": "Szukaj", "buttons.close": "Zamknij", "403.title": "Dostęp zabroniony", @@ -20,7 +20,7 @@ "you-have-successfully-logged-in": "Logowanie powiodło się", "save-changes": "Zapisz zmiany", "save": "Zapisz", - "create": "Create", + "create": "Stwórz", "cancel": "Anuluj", "close": "Zamknij", "pagination": "Dzielenie na strony", @@ -32,7 +32,7 @@ "pagination.enter-index": "Skocz do postu", "pagination.go-to-page": "Skocz do strony", "pagination.page-x": "Strona %1", - "header.brand-logo": "Logo marki", + "header.brand-logo": "Logo forum", "header.admin": "Administracja", "header.categories": "Kategorie", "header.recent": "Ostatnie", @@ -80,7 +80,7 @@ "downvoters": "Głosujący przeciw", "downvoted": "Oddane głosy przeciw", "views": "Wyświetlenia", - "posters": "Plakaty", + "posters": "Uczestników", "reputation": "Reputacja", "lastpost": "Ostatni post", "firstpost": "Pierwszy post", @@ -98,7 +98,7 @@ "user-posted-ago": "%1 napisał %2", "guest-posted-ago": "Gość napisał %1", "last-edited-by": "ostatnio edytowany przez %1", - "edited-timestamp": "Edytowano %1", + "edited-timestamp": "Zmieniono %1", "norecentposts": "Brak ostatnich postów", "norecenttopics": "Brak ostatnich tematów", "recentposts": "Ostatnie posty", diff --git a/public/language/pl/modules.json b/public/language/pl/modules.json index 1f9b5ebd1b..06e1de129d 100644 --- a/public/language/pl/modules.json +++ b/public/language/pl/modules.json @@ -37,9 +37,9 @@ "chat.no-pinned-messages": "Nie ma przypiętych wiadomości", "chat.pin-message": "Przypnij wiadomość", "chat.unpin-message": "Odepnij wiadomość", - "chat.public-rooms": "Publiczne pokoje (%1)", + "chat.public-rooms": "Pokoje publiczne (%1)", "chat.private-rooms": "Prywatne pokoje (%1)", - "chat.create-room": "Stwórz pokój czatu", + "chat.create-room": "Nowy pokój", "chat.private.option": "Prywatny (widzialny tylko dla osób dodanych do pokoju)", "chat.public.option": "Publiczny (widzialny dla wszystkich użytkowników w wybranych grupach)", "chat.public.groups-help": "Aby założyć pokój czatu, który jest widzialny dla wszystkich użytkowników, wybierz zarejestrowanych użytkowników z listy grupy.", @@ -109,7 +109,7 @@ "composer.schedule-date": "Data", "composer.schedule-time": "Czas", "composer.cancel-scheduling": "Anuluj planowanie", - "composer.change-schedule-date": "Change Date", + "composer.change-schedule-date": "Zmień datę", "composer.set-schedule-date": "Ustaw datę", "composer.discard-all-drafts": "Wyrzuć wszystkie wersje robocze", "composer.no-drafts": "Nie masz wersji roboczych", @@ -117,14 +117,14 @@ "bootbox.ok": "OK", "bootbox.cancel": "Anuluj", "bootbox.confirm": "Potwierdź", - "bootbox.submit": "Zatwierdź", + "bootbox.submit": "Wyślij", "bootbox.send": "Wyślij", "cover.dragging-title": "Pozycjonowanie tła", "cover.dragging-message": "Przeciągnij zdjęcie tła do wybranej pozycji i kliknij „Zapisz”", "cover.saved": "Tło zapisane", "thumbs.modal.title": "Zarządzaj miniaturkami tematów", - "thumbs.modal.no-thumbs": "Żadne miniaturki nie zostały znalezione", - "thumbs.modal.resize-note": "Note: To forum jest skonfigurowane tak aby zmienić rozmiar miniaturek tematów do maksymalnej szerokości %1px", + "thumbs.modal.no-thumbs": "Żadne miniaturki nie zostały znalezione.", + "thumbs.modal.resize-note": "Uwaga: To forum jest skonfigurowane tak aby zmienić rozmiar miniaturek tematów do maksymalnej szerokości %1px", "thumbs.modal.add": "Dodaj miniaturkę", "thumbs.modal.remove": "Usuń miniaturkę", "thumbs.modal.confirm-remove": "Czy jesteś pewny że chcesz usunąć tą miniaturkę?" diff --git a/public/language/pl/notifications.json b/public/language/pl/notifications.json index 1d788b558b..093845b447 100644 --- a/public/language/pl/notifications.json +++ b/public/language/pl/notifications.json @@ -12,7 +12,7 @@ "you-have-unread-notifications": "Masz nieprzeczytane powiadomienia.", "all": "Wszystko", "topics": "Tematy", - "tags": "Tags", + "tags": "Tagi", "categories": "Kategorie", "replies": "Odpowiedzi", "chat": "Czaty", @@ -28,10 +28,10 @@ "new-messages-from": "%1 nowych wiadomości od %2", "new-message-in": "Nowa wiadomość w %1", "new-messages-in": "%1 nowych wiadomości w %2", - "user-posted-in-public-room": "%1 wrote in %3", - "user-posted-in-public-room-dual": "%1 and %2 wrote in %4", - "user-posted-in-public-room-triple": "%1, %2 and %3 wrote in %5", - "user-posted-in-public-room-multiple": "%1, %2 and %3 others wrote in %5", + "user-posted-in-public-room": "%1 napisał w %3", + "user-posted-in-public-room-dual": "%1 i %2 napisali w %4", + "user-posted-in-public-room-triple": "%1, %2 i %3 napisali w %5", + "user-posted-in-public-room-multiple": "%1, %2 i %3 innych napisali w %5", "upvoted-your-post-in": "%1 zagłosował na Twój post w %2", "upvoted-your-post-in-dual": "%1 oraz %2 zagłosowali na Twój post w %3.", "upvoted-your-post-in-triple": "%1, %2 i%3 zagłosowali na Twój post w %4.", @@ -82,7 +82,7 @@ "notification-and-email": "Powiadomienie oraz e-mail", "notificationType-upvote": "Kiedy ktoś zagłosuje na Twój post", "notificationType-new-topic": "Kiedy ktoś, kogo obserwujesz, utworzy temat", - "notificationType-new-topic-with-tag": "Kiedy dodano temat z tagiem, który obserwujesz", + "notificationType-new-topic-with-tag": "Kiedy pojawi się temat z tagiem, który obserwujesz", "notificationType-new-topic-in-category": "Kiedy dodano temat w kategorii, którą obserwujesz", "notificationType-new-reply": "Kiedy ktoś doda nową odpowiedź w temacie, który obserwujesz", "notificationType-post-edit": "Kiedy post jest edytowany w temacie, który obserwujesz", diff --git a/public/language/pl/register.json b/public/language/pl/register.json index 4bdbbe7512..274eafa147 100644 --- a/public/language/pl/register.json +++ b/public/language/pl/register.json @@ -8,11 +8,11 @@ "email-address": "Adres e-mail", "email-address-placeholder": "Wpisz swój adres e-mail", "username": "Nazwa użytkownika", - "username-placeholder": "Wpisz nazwę użytkownika", + "username-placeholder": "Wpisz nazwę użytkownika", "password": "Hasło", "password-placeholder": "Wpisz hasło", - "confirm-password": "Potwierdź hasło", - "confirm-password-placeholder": "Potwierdź hasło", + "confirm-password": "Potwierdź hasło", + "confirm-password-placeholder": "Potwierdź hasło", "register-now-button": "Zarejestruj się", "alternative-registration": "Alternatywna rejestracja", "terms-of-use": "Warunki korzystania z serwisu", diff --git a/public/language/pl/search.json b/public/language/pl/search.json index 0fcf2e982c..77a3dafda9 100644 --- a/public/language/pl/search.json +++ b/public/language/pl/search.json @@ -43,7 +43,7 @@ "older-than": "Starsze niż", "any-date": "Kiedykolwiek", "yesterday": "Wczoraj", - "one-week": "Jeden tydzień temu", + "one-week": "Tydzień temu", "two-weeks": "Dwa tygodnie temu", "one-month": "Jeden miesiąc temu", "three-months": "Trzy miesiące temu", @@ -75,28 +75,28 @@ "category": "Kategoria", "descending": "W kolejności malejącej", "ascending": "W kolejności rosnącej", - "sort-by-relevance-desc": "Sort by: Relevance in descending order", - "sort-by-relevance-asc": "Sort by: Relevance in ascending order", - "sort-by-timestamp-desc": "Sort by: Post time in descending order", - "sort-by-timestamp-asc": "Sort by: Post time in ascending order", - "sort-by-votes-desc": "Sort by: Votes in descending order", - "sort-by-votes-asc": "Sort by: Votes in ascending order", - "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order", - "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order", - "sort-by-topic.title-desc": "Sort by: Topic title in descending order", - "sort-by-topic.title-asc": "Sort by: Topic title in ascending order", - "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order", - "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order", - "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order", - "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order", - "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order", - "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order", - "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order", - "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order", - "sort-by-user.username-desc": "Sort by: Username in descending order", - "sort-by-user.username-asc": "Sort by: Username in ascending order", - "sort-by-category.name-desc": "Sort by: Category in descending order", - "sort-by-category.name-asc": "Sort by: Category in ascending order", + "sort-by-relevance-desc": "Sortuj po: trafność, malejąco", + "sort-by-relevance-asc": "Sortuj po: trafność, rosnąco", + "sort-by-timestamp-desc": "Sortuj po: czas publikacji, malejąco", + "sort-by-timestamp-asc": "Sortuj po: czas publikacji, rosnąco", + "sort-by-votes-desc": "Sortuj po: liczba głosów, malejąco", + "sort-by-votes-asc": "Sortuj po: liczba głosów, rosnąco", + "sort-by-topic.lastposttime-desc": "Sortuj po: czas ostatniej odpowiedzi, malejąco", + "sort-by-topic.lastposttime-asc": "Sortuj po: czas ostatniej odpowiedzi, rosnąco", + "sort-by-topic.title-desc": "Sortuj po: tytuł tematu, malejąco", + "sort-by-topic.title-asc": "Sortuj po: tytuł tematu, rosnąco", + "sort-by-topic.postcount-desc": "Sortuj po: liczba odpowiedzi, malejąco", + "sort-by-topic.postcount-asc": "Sortuj po: liczba odpowiedzi, rosnąco", + "sort-by-topic.viewcount-desc": "Sortuj po: liczba wyświetleń, malejąco", + "sort-by-topic.viewcount-asc": "Sortuj po: liczba wyświetleń, rosnąco", + "sort-by-topic.votes-desc": "Sortuj po: głosy na tematy, malejąco", + "sort-by-topic.votes-asc": "Sortuj po: głosy na tematy, rosnąco", + "sort-by-topic.timestamp-desc": "Sortuj po: czas rozpoczęcia tematu, malejąco", + "sort-by-topic.timestamp-asc": "Sortuj po: czas rozpoczęcia tematu, rosnąco", + "sort-by-user.username-desc": "Sortuj po: nazwa użytkownika, malejąco", + "sort-by-user.username-asc": "Sortuj po: nazwa użytkownika, rosnąco", + "sort-by-category.name-desc": "Sortuj po: kategoria, malejąco", + "sort-by-category.name-asc": "Sortuj po: kategoria, rosnąco", "save": "Zapisz", "save-preferences": "Zapisz ustawienia", "clear-preferences": "Wyczyść ustawienia", diff --git a/public/language/pl/success.json b/public/language/pl/success.json index 48756bb7bc..7535eb38b7 100644 --- a/public/language/pl/success.json +++ b/public/language/pl/success.json @@ -1,6 +1,6 @@ { "success": "Udało się", - "topic-post": "Twój post został wysłany.", + "topic-post": "Dodałeś(aś) wpis.", "post-queued": "Twój post oczekuje w kolejce na zatwierdzenie. Otrzymasz powiadomienie o jego akceptacji lub odrzuceniu.", "authentication-successful": "Uwierzytelnienie powiodło się", "settings-saved": "Ustawienia zostały zapisane!" diff --git a/public/language/pl/tags.json b/public/language/pl/tags.json index fcbecbf50c..777d3ff18f 100644 --- a/public/language/pl/tags.json +++ b/public/language/pl/tags.json @@ -7,11 +7,11 @@ "enter-tags-here-short": "Wpisz tagi...", "no-tags": "Jeszcze nie ma tagów.", "select-tags": "Wybierz tagi", - "tag-whitelist": "Tag Whitelist", - "watching": "Watching", - "not-watching": "Not Watching", - "watching.description": "Notify me of new topics.", - "not-watching.description": "Do not notify me of new topics.", + "tag-whitelist": "Dozwolone tagi", + "watching": "Obserwuj", + "not-watching": "Nie obserwujesz", + "watching.description": "Powiadom mnie o nowych tematach.", + "not-watching.description": "Nie powiadamiaj mnie o nowych tematach.", "following-tag.message": "Teraz będziesz otrzymywać powiadomienia, kiedy ktoś napisze w temacie z takim tagiem.", "not-following-tag.message": "Nie będziesz otrzymywać powiadomień, kiedy ktoś napisze w temacie z takim tagiem." } \ No newline at end of file diff --git a/public/language/pl/themes/harmony.json b/public/language/pl/themes/harmony.json index bb9d7e4b66..e939e1d5d6 100644 --- a/public/language/pl/themes/harmony.json +++ b/public/language/pl/themes/harmony.json @@ -7,11 +7,11 @@ "login-register-to-search": "Aby wyszukiwać zaloguj się lub zarejestruj.", "settings.title": "Ustawienia stylu", "settings.enableQuickReply": "Włącz szybkie odpowiadanie", - "settings.enableBreadcrumbs": "Enable breadcrumbs", + "settings.enableBreadcrumbs": "Pokazuj łącza do wszystkich stron nadrzędnych", "settings.centerHeaderElements": "Wyśrodkuj elementy nagłówka", - "settings.mobileTopicTeasers": "Show topic teasers on mobile", - "settings.stickyToolbar": "Sticky toolbar", - "settings.stickyToolbar.help": "The toolbar on topic and category pages will stick to the top of the page", + "settings.mobileTopicTeasers": "Pokazuj zwiastuny tematów na telefonie", + "settings.stickyToolbar": "Przyklejaj pasek narzędziowy", + "settings.stickyToolbar.help": "Pasek z narzędziami na stronach tematów i kategorii będzie przyklejony do góry strony", "settings.autohideBottombar": "Automatycznie chowaj dolny panel", "settings.autohideBottombar.help": "Dolny panel schowa się w widoku mobilnym, jeśli strona zostanie przesunięta w dół", "settings.openSidebars": "Otwórz panele boczne", diff --git a/public/language/pl/themes/persona.json b/public/language/pl/themes/persona.json index 4225827f01..6d11ddd40a 100644 --- a/public/language/pl/themes/persona.json +++ b/public/language/pl/themes/persona.json @@ -2,7 +2,7 @@ "settings.title": "Ustawienia stylu", "settings.intro": "Możesz tu ustawić swój styl wyświetlania. Ustawienia są zachowywane osobno dla każdego urządzenia, więc możesz ustawić różne rzeczy na różnych urządzeniach (komputer, telefon, itd.)", "settings.mobile-menu-side": "Przełącz, po której stronie jest dane menu mobilne", - "settings.autoHidingNavbar": "Automatically hide the navbar on scroll", + "settings.autoHidingNavbar": "Ukryj pasek nawigacyjny przy przewijaniu", "settings.autoHidingNavbar-xs": "Malutkie ekrany (np. telefony trzymane pionowo)", "settings.autoHidingNavbar-sm": "Małe ekrany (np. telefony, tablety)", "settings.autoHidingNavbar-md": "Ekrany średniej wielkości (np. tablety trzymane poziomo)", diff --git a/public/language/pl/topic.json b/public/language/pl/topic.json index a54d668e71..9b1c79f6b5 100644 --- a/public/language/pl/topic.json +++ b/public/language/pl/topic.json @@ -18,7 +18,7 @@ "reply-options": "Opcje odpowiedzi", "reply-as-topic": "Odpowiedz, zakładając nowy temat", "guest-login-reply": "Zaloguj się, aby odpowiedzieć", - "login-to-view": "Zaloguj się by zobaczyć", + "login-to-view": "🔒 Zaloguj się, aby zobaczyć", "edit": "Edytuj", "delete": "Usuń", "delete-event": "Usuń zdarzenie", @@ -42,27 +42,27 @@ "copy-ip": "Kopiuj IP", "ban-ip": "Blokuj IP", "view-history": "Historia edycji", - "wrote-ago": "wrote ", + "wrote-ago": "napisał(a) ", "wrote-on": "napisał ", - "replied-to-user-ago": "odpowiedział na %3 ", - "replied-to-user-on": "odpowiedział na %3 o ", - "user-locked-topic-ago": "%1 locked this topic %2", + "replied-to-user-ago": "odpowiedział %3 ", + "replied-to-user-on": "odpowiedział %3 o ", + "user-locked-topic-ago": "%1 zablokował ten temat %2", "user-locked-topic-on": "%1 zablokował ten temat dnia %2", - "user-unlocked-topic-ago": "%1 unlocked this topic %2", + "user-unlocked-topic-ago": "%1 odblokował ten temat %2", "user-unlocked-topic-on": "%1 odblokował ten temat dnia %2", "user-pinned-topic-ago": "%1 przypiął ten temat %2", "user-pinned-topic-on": "%1 przypiął ten temat dnia %2", "user-unpinned-topic-ago": "%1 odpiął ten temat %2", "user-unpinned-topic-on": "%1 odpiął ten temat dnia %2", - "user-deleted-topic-ago": "%1 deleted this topic %2", + "user-deleted-topic-ago": "%1 usunął ten temat %2", "user-deleted-topic-on": "%1 usunął ten temat dnia %2", - "user-restored-topic-ago": "%1 restored this topic %2", + "user-restored-topic-ago": "%1 przywrócił ten temat %2", "user-restored-topic-on": "%1 przywrócił ten temat dnia %2", - "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", + "user-moved-topic-from-ago": "%1 przeniósł ten temat z %2 %3", "user-moved-topic-from-on": "%1 przeniósł ten temat z %2 dnia %3", - "user-queued-post-ago": "%1 queued post for approval %3", - "user-queued-post-on": "%1 dodał do kolejki post dnia %3", - "user-referenced-topic-ago": "%1 referenced this topic %3", + "user-queued-post-ago": "%1 dodał do kolejki post do zatwierdzenia %3", + "user-queued-post-on": "%1 dodał do kolejki post do zatwierdzenia dnia %3", + "user-referenced-topic-ago": "%1 odniósł się do tego tematu %3", "user-referenced-topic-on": "%1 odniósł się do tego tematu dnia %3", "user-forked-topic-ago": "%1 rozdzielił ten temat %3", "user-forked-topic-on": "%1 rozdzielił ten temat dnia %3", @@ -105,7 +105,7 @@ "thread-tools.change-owner": "Zmień właściciela", "thread-tools.select-category": "Wybierz kategorię", "thread-tools.fork": "Rozdziel temat", - "thread-tools.tag": "Tag Topic", + "thread-tools.tag": "Nadaj tag tematowi", "thread-tools.delete": "Usuń temat", "thread-tools.delete-posts": "Usuń posty", "thread-tools.delete-confirm": "Czy na pewno chcesz usunąć ten temat?", @@ -134,7 +134,7 @@ "bookmarks.has-no-bookmarks": "Nie masz jeszcze żadnych postów w zakładkach.", "copy-permalink": "Skopiuj link", "loading-more-posts": "Załaduj więcej postów", - "move-topic": "Przenieś temat", + "move-topic": "Przenieś temat", "move-topics": "Przenieś tematy", "move-post": "Przenieś post", "post-moved": "Post został przeniesiony!", @@ -155,7 +155,7 @@ "merge-new-title-for-topic": "Nowy tytuł tematu", "topic-id": "Identyfikator tematu", "move-posts-instruction": "Kliknij na posty, które chcesz przenieść, po czym podaj ID tematu lub przejdź do tematu docelowego.", - "move-topic-instruction": "Select the target category and then click move", + "move-topic-instruction": "Wybierz kategorię docelową i kliknij przenieś", "change-owner-instruction": "Kliknij w posty, które chcesz przypisać do innego użytkownika", "composer.title-placeholder": "Tutaj wpisz tytuł tematu...", "composer.handle-placeholder": "Tutaj wpisz swoje imię/nazwę", @@ -182,16 +182,16 @@ "sort-by": "Sortuj według", "oldest-to-newest": "Najpierw najstarsze", "newest-to-oldest": "Najpierw najnowsze", - "recently-replied": "Recently Replied", - "recently-created": "Recently Created", + "recently-replied": "Świeże odpowiedzi", + "recently-created": "Świeżo utworzone", "most-votes": "Najwięcej głosów", "most-posts": "Najwięcej postów", "most-views": "Najwięcej wyświetleń", "stale.title": "Stworzyć nowy temat?", "stale.warning": "Temat, na który chcesz udzielić odpowiedzi, jest dość stary. Czy nie wolisz utworzyć nowego tematu i jedynie odnieść się do tego?", "stale.create": "Stwórz nowy temat", - "stale.reply-anyway": "Odpowiedz na ten temat", - "link-back": "Re: [%1](%2)", + "stale.reply-anyway": "Odpowiedz na ten temat i tak", + "link-back": "Odp: [%1](%2)", "diffs.title": "Historia edycji postu", "diffs.description": "Ten post zawiera %1 zmian. Kliknij w którąś ze zmian poniżej, aby zobaczyć treść postu w momencie jej dokonania.", "diffs.no-revisions-description": "Ten post zawiera %1 zmian.", @@ -212,8 +212,8 @@ "post-quick-reply": "Szybka odpowiedź", "navigator.index": "Post %1 z %2", "navigator.unread": "%1 nieprzeczytanych", - "upvote-post": "Zagłosuj za postem", - "downvote-post": "Zagłosuj przeciw postowi", + "upvote-post": "Podoba się", + "downvote-post": "Nie podoba się", "post-tools": "Narzędzia postów", "unread-posts-link": "Link nieprzeczytanych postów", "thumb-image": "Obraz miniaturki tematu" diff --git a/public/language/pl/user.json b/public/language/pl/user.json index 66d5b8af71..3a9018a475 100644 --- a/public/language/pl/user.json +++ b/public/language/pl/user.json @@ -1,7 +1,9 @@ { "user-menu": "Menu użytkownika", "banned": "Zbanowany", + "unbanned": "Odblokowane", "muted": "Wyciszony", + "unmuted": "Wyciszenie anulowane", "offline": "Offline", "deleted": "Usunięty", "username": "Nazwa użytkownika", @@ -11,9 +13,9 @@ "confirm-email": "Potwierdź adres e-mail", "account-info": "Informacje o koncie", "admin-actions-label": "Działania administacyjne", - "ban-account": "Zbanuj konto", + "ban-account": "Zablokuj konto", "ban-account-confirm": "Na pewno chcesz zbanować tego użytkownika?", - "unban-account": "Odbanuj konto", + "unban-account": "Odblokuj konto", "mute-account": "Wycisz konto", "unmute-account": "Wyłącz wyciszenie konta", "delete-account": "Usuń konto", @@ -79,7 +81,7 @@ "change-password-error-match": "Hasła muszą pasować!", "change-password-error-privileges": "Nie masz uprawnień do zmiany tego hasła.", "change-password-success": "Twoje hasło zostało zaktualizowane!", - "confirm-password": "Potwierdź hasło", + "confirm-password": "Potwierdź hasło", "password": "Hasło", "username-taken-workaround": "Wybrany login jest już zajęty, więc zmieniliśmy go trochę. Proponujemy %1", "password-same-as-username": "Twoje hasło jest takie samo jak nazwa użytkownika. Wybierz inne hasło.", @@ -95,7 +97,7 @@ "avatar-background-colour": "Kolor tła awatara", "settings": "Ustawienia", "show-email": "Wyświetlaj mój adres e-mail", - "show-fullname": "Wyświetlaj moją pełną nazwę", + "show-fullname": "Pokaż imię i nazwisko", "restrict-chats": "Przyjmuj wiadomości na czacie tylko od osób, które obserwuję", "digest-label": "Przysyłaj okresowe podsumowanie wiadomości na forum", "digest-description": "Subskrybuj, aby otrzymywać maile dla tego forum (nowe powiadomienia i tematy) zgodnie z ustalonym harmonogramem", @@ -111,10 +113,10 @@ "has-no-topics": "Ten użytkownik nie stworzył jeszcze żadnych tematów.", "has-no-watched-topics": "Ten użytkownik nie obserwuje jeszcze żadnych tematów.", "has-no-ignored-topics": "Użytkownik nie pominął jeszcze żadnego tematu.", - "has-no-upvoted-posts": "Ten użytkownik jeszcze nie głosował za w żadnym temacie", + "has-no-upvoted-posts": "Ten użytkownik jeszcze nie głosował za w żadnym temacie.", "has-no-downvoted-posts": "Ten użytkownik jeszcze nie głosował przeciw w żadnym temacie.", "has-no-controversial-posts": "Ten użytkownik nie ma jeszcze żadnych postów z ujemną reputacją.", - "has-no-blocks": "Nie zablokowałeś jeszcze żadnych użytkowników", + "has-no-blocks": "Brak zablokowanych użytkowników.", "email-hidden": "Adres e-mail ukryty", "hidden": "ukryty", "paginate-description": "Dziel tematy i posty na strony zamiast używać nieskończonego przewijania", @@ -123,7 +125,7 @@ "category-topic-sort": "Sortowanie tematów w kategoriach", "topic-post-sort": "Sortowanie postów w tematach", "max-items-per-page": "Maksymalnie %1", - "acp-language": "Język Strony Administratora", + "acp-language": "Język panelu administracyjnego", "notifications": "Powiadomienia", "upvote-notif-freq": "Częstotliwość informowania o pozytywnych głosach", "upvote-notif-freq.all": "Wszystkie głosy za", @@ -142,18 +144,18 @@ "follow-topics-you-create": "Obserwuj tematy, które utworzyłeś", "grouptitle": "Nazwa grupy", "group-order-help": "Wybierz grupę i użyj strzałek, aby je uporządkować", - "show-group-title": "Show group title", - "hide-group-title": "Hide group title", - "order-group-up": "Order group up", - "order-group-down": "Order group down", + "show-group-title": "Pokaż nazwę grupy", + "hide-group-title": "Ukryj nazwę grupy", + "order-group-up": "Umieść grupę wyżej", + "order-group-down": "Umieść grupę niżej", "no-group-title": "Brak nazwy grupy", "select-skin": "Wybierz skórkę", "default": "Domyślna (%1)", "no-skin": "Brak skórki", "select-homepage": "Wybierz stronę startową", - "homepage": "Strona startowa", + "homepage": "Strona główna", "homepage-description": "Wybierz preferowaną stronę startową lub „None”, jeśli chcesz używać strony domyślnej.", - "custom-route": "Niestandardowa strona startowa", + "custom-route": "Własna strona startowa", "custom-route-help": "Wprowadź ścieżkę bez poprzedzającego slasha (np: \"recent\" albo \"category/2/general-discussion\")", "sso.title": "Usługi pojedynczego logowania", "sso.associated": "Powiązane z", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Potwierdź odwiązanie", "sso.dissociate-confirm": "Czy na pewno odwiązać Twoje konto od %1?", "info.latest-flags": "Ostatnie flagi", + "info.profile": "Profil", + "info.post": "Wpis", + "info.view-flag": "Zobacz flagę", + "info.reported-by": "Zgłoszenie dodał:", "info.no-flags": "Brak oflagowanych postów", "info.ban-history": "Historia ostatnich banów", "info.no-ban-history": "Ten użytkownik nigdy nie był zbanowany", "info.banned-until": "Zbanowany do %1", "info.banned-expiry": "Wygaśnięcie", + "info.ban-expired": "Blokada wygasła", "info.banned-permanently": "Zbanowany permanentnie", "info.banned-reason-label": "Powód", "info.banned-no-reason": "Nie podano powodu.", diff --git a/public/language/pl/users.json b/public/language/pl/users.json index 4aacaf9cda..768cf44112 100644 --- a/public/language/pl/users.json +++ b/public/language/pl/users.json @@ -2,7 +2,7 @@ "all-users": "Wszyscy użytkownicy", "latest-users": "Nowi użytkownicy", "top-posters": "Najwięcej postów", - "most-reputation": "Najlepsza reputacja", + "most-reputation": "Najwyższa reputacja", "most-flags": "Najwięcej flag", "search": "Szukaj", "enter-username": "Wpisz nazwę użytkownika", diff --git a/public/language/pt-BR/admin/advanced/events.json b/public/language/pt-BR/admin/advanced/events.json index 8e8a5c9e10..6e96bda4e9 100644 --- a/public/language/pt-BR/admin/advanced/events.json +++ b/public/language/pt-BR/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Tipo de Evento", "filter-start": "Data de Início", "filter-end": "Data de Fim", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Por Página" } \ No newline at end of file diff --git a/public/language/pt-BR/admin/manage/users.json b/public/language/pt-BR/admin/manage/users.json index 6bb45a1700..f3b25247cf 100644 --- a/public/language/pt-BR/admin/manage/users.json +++ b/public/language/pt-BR/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "Um e-mail de convite foi enviado para %1", "alerts.x-users-found": "%1 usuário(s) encontrados, (%2 segundos)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exportando usuários como csv, isso pode demorar um pouco. Você receberá uma notificação quando isso for concluído.", "export-users-completed": "Usuários exportados como csv, clique aqui para fazer o download.", "email": "Email", diff --git a/public/language/pt-BR/admin/settings/navigation.json b/public/language/pt-BR/admin/settings/navigation.json index 2394e4a261..d47c0ec603 100644 --- a/public/language/pt-BR/admin/settings/navigation.json +++ b/public/language/pt-BR/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: opcional", "properties": "Propriedades:", - "groups": "Grupos:", + "show-to-groups": "Show to Groups:", "open-new-window": "Abrir em uma nova janela", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/pt-BR/flags.json b/public/language/pt-BR/flags.json index 7a76c15595..2ad5e9499d 100644 --- a/public/language/pt-BR/flags.json +++ b/public/language/pt-BR/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Ações em Massa", "bulk-resolve": "Resolver Sinalização(ões)", "bulk-success": "%1 sinalizações atualizadas", - "flagged-timeago-readable": "Sinalizado (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/pt-BR/user.json b/public/language/pt-BR/user.json index 9c30b86584..07e8be4f25 100644 --- a/public/language/pt-BR/user.json +++ b/public/language/pt-BR/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Banido", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Offline", "deleted": "Deletado", "username": "Nome de Usuário", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirmar Desassociação", "sso.dissociate-confirm": "Tem certeza de que deseja desassociar a sua conta de %1?", "info.latest-flags": "Últimas Sinalizações", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Nenhum Post Sinalizado Encontrado", "info.ban-history": "Histórico de Banimentos Recentes", "info.no-ban-history": "Este usuário nunca foi banido", "info.banned-until": "Banido até %1", "info.banned-expiry": "Validade", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Banido permanentemente", "info.banned-reason-label": "Motivo", "info.banned-no-reason": "Sem motivo escolhido.", diff --git a/public/language/pt-PT/admin/advanced/events.json b/public/language/pt-PT/admin/advanced/events.json index cf244ff23c..3e76845f53 100644 --- a/public/language/pt-PT/admin/advanced/events.json +++ b/public/language/pt-PT/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Tipo de Evento", "filter-start": "Data de Início", "filter-end": "Data de Fim", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Por Página" } \ No newline at end of file diff --git a/public/language/pt-PT/admin/manage/users.json b/public/language/pt-PT/admin/manage/users.json index c59c0f1b11..4a09c39341 100644 --- a/public/language/pt-PT/admin/manage/users.json +++ b/public/language/pt-PT/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "Foi enviado um e-mail de convite para %1", "alerts.x-users-found": "%1 utilizador(es) encontrado(s), (%2 segundos)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/pt-PT/admin/settings/navigation.json b/public/language/pt-PT/admin/settings/navigation.json index d395ac853e..805cea4996 100644 --- a/public/language/pt-PT/admin/settings/navigation.json +++ b/public/language/pt-PT/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: opcional", "properties": "Propriedades:", - "groups": "Grupos:", + "show-to-groups": "Show to Groups:", "open-new-window": "Abrir numa nova janela", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/pt-PT/flags.json b/public/language/pt-PT/flags.json index 14a80cd665..58f5327900 100644 --- a/public/language/pt-PT/flags.json +++ b/public/language/pt-PT/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/pt-PT/user.json b/public/language/pt-PT/user.json index 73f5b44094..cc5f1654ba 100644 --- a/public/language/pt-PT/user.json +++ b/public/language/pt-PT/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Banido", + "unbanned": "Unbanned", "muted": "Silenciado", + "unmuted": "Unmuted", "offline": "Offline", "deleted": "Apagar", "username": "Nome de utilizador", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirmar Dissociação", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Denúncias Recentes", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Não foram encontradas publicações denunciadas", "info.ban-history": "Histórico de expulsões recentes", "info.no-ban-history": "Este utilizador nunca foi banido", "info.banned-until": "Banido até %1", "info.banned-expiry": "Expiração", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Banido permanentemente", "info.banned-reason-label": "Razão", "info.banned-no-reason": "Sem razão atribuida.", diff --git a/public/language/ro/admin/advanced/events.json b/public/language/ro/admin/advanced/events.json index 9327eef8d3..a249bb9721 100644 --- a/public/language/ro/admin/advanced/events.json +++ b/public/language/ro/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/ro/admin/manage/users.json b/public/language/ro/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/ro/admin/manage/users.json +++ b/public/language/ro/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/ro/admin/settings/navigation.json b/public/language/ro/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/ro/admin/settings/navigation.json +++ b/public/language/ro/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/ro/flags.json b/public/language/ro/flags.json index 996e027833..0a42e3877f 100644 --- a/public/language/ro/flags.json +++ b/public/language/ro/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/ro/user.json b/public/language/ro/user.json index b64c4b3047..1eb8ceb61d 100644 --- a/public/language/ro/user.json +++ b/public/language/ro/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Banat", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Deconectat", "deleted": "Deleted", "username": "Nume utilizator", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Latest Flags", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "No Flagged Posts Found", "info.ban-history": "Recent Ban History", "info.no-ban-history": "This user has never been banned", "info.banned-until": "Banned until %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Banned permanently", "info.banned-reason-label": "Reason", "info.banned-no-reason": "No reason given.", diff --git a/public/language/ru/admin/advanced/events.json b/public/language/ru/admin/advanced/events.json index 76d76ae807..f1d1c69dea 100644 --- a/public/language/ru/admin/advanced/events.json +++ b/public/language/ru/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Тип события", "filter-start": "Дата начала", "filter-end": "Дата окончания", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Записей на страницу" } \ No newline at end of file diff --git a/public/language/ru/admin/manage/users.json b/public/language/ru/admin/manage/users.json index 207b7934f0..983c7cf00a 100644 --- a/public/language/ru/admin/manage/users.json +++ b/public/language/ru/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "Письмо с приглашением для %1 отправлено", "alerts.x-users-found": "%1 пользователь(ей) найдено, (%2 секунды)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Экспорт пользователей в формате CSV может занять некоторое время. Вы получите уведомление, по завершению процесса.", "export-users-completed": "Пользователи, экспортированные в формате csv, нажмите здесь, чтобы загрузить.", "email": "Email", diff --git a/public/language/ru/admin/settings/navigation.json b/public/language/ru/admin/settings/navigation.json index d0149b36ef..945646eb3c 100644 --- a/public/language/ru/admin/settings/navigation.json +++ b/public/language/ru/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: опционально", "properties": "Свойства:", - "groups": "Группы:", + "show-to-groups": "Show to Groups:", "open-new-window": "Открывать в новом окне", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/ru/flags.json b/public/language/ru/flags.json index 3be16016df..b812c9fa7e 100644 --- a/public/language/ru/flags.json +++ b/public/language/ru/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Жалоба %1 обновлена", "bulk-resolve": "Решить жалобы", "bulk-success": "Жалоба %1 обновлена", - "flagged-timeago-readable": "Получена жалоба (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Автожалоба] Получено %1 голосов против." } \ No newline at end of file diff --git a/public/language/ru/unread.json b/public/language/ru/unread.json index 5acc50c569..bcd913759e 100644 --- a/public/language/ru/unread.json +++ b/public/language/ru/unread.json @@ -3,7 +3,7 @@ "no-unread-topics": "Нет непрочитанных тем.", "load-more": "Загрузить еще", "mark-as-read": "Пометить как прочитанное", - "mark-as-unread": "Mark as Unread", + "mark-as-unread": "Пометить как непрочитанное", "selected": "Выбрано", "all": "Все", "all-categories": "Все категории", diff --git a/public/language/ru/user.json b/public/language/ru/user.json index 0b4228a68d..309cd62e5c 100644 --- a/public/language/ru/user.json +++ b/public/language/ru/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Заблокирован", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Не в сети", "deleted": "Удалён", "username": "Имя пользователя", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Подтверждение открепления", "sso.dissociate-confirm": "Вы уверены, что хотите открепить свою учётную запись от %1?", "info.latest-flags": "Последние жалобы", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Жалоб не найдено", "info.ban-history": "История блокировок", "info.no-ban-history": "Этот пользователь никогда не был заблокирован", "info.banned-until": "Заблокирован до %1", "info.banned-expiry": "Истечение", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Заблокирован навсегда", "info.banned-reason-label": "Причина", "info.banned-no-reason": "Без объяснения причин.", diff --git a/public/language/rw/admin/advanced/events.json b/public/language/rw/admin/advanced/events.json index 9327eef8d3..a249bb9721 100644 --- a/public/language/rw/admin/advanced/events.json +++ b/public/language/rw/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/rw/admin/manage/users.json b/public/language/rw/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/rw/admin/manage/users.json +++ b/public/language/rw/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/rw/admin/settings/navigation.json b/public/language/rw/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/rw/admin/settings/navigation.json +++ b/public/language/rw/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/rw/flags.json b/public/language/rw/flags.json index 996e027833..0a42e3877f 100644 --- a/public/language/rw/flags.json +++ b/public/language/rw/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/rw/user.json b/public/language/rw/user.json index 84f689bf6d..bacfa18089 100644 --- a/public/language/rw/user.json +++ b/public/language/rw/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Yarirukanwe", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Ntari ku Murongo", "deleted": "Deleted", "username": "Izina ry'Umuntu", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Latest Flags", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "No Flagged Posts Found", "info.ban-history": "Recent Ban History", "info.no-ban-history": "This user has never been banned", "info.banned-until": "Banned until %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Banned permanently", "info.banned-reason-label": "Reason", "info.banned-no-reason": "No reason given.", diff --git a/public/language/sc/admin/advanced/events.json b/public/language/sc/admin/advanced/events.json index 9327eef8d3..a249bb9721 100644 --- a/public/language/sc/admin/advanced/events.json +++ b/public/language/sc/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/sc/admin/manage/users.json b/public/language/sc/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/sc/admin/manage/users.json +++ b/public/language/sc/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/sc/admin/settings/navigation.json b/public/language/sc/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/sc/admin/settings/navigation.json +++ b/public/language/sc/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/sc/flags.json b/public/language/sc/flags.json index 996e027833..0a42e3877f 100644 --- a/public/language/sc/flags.json +++ b/public/language/sc/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/sc/user.json b/public/language/sc/user.json index 6c54f489fc..8bcc7db6ca 100644 --- a/public/language/sc/user.json +++ b/public/language/sc/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Blocadu", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Non in lìnia", "deleted": "Deleted", "username": "Nùmene de Impitadore", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Latest Flags", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "No Flagged Posts Found", "info.ban-history": "Recent Ban History", "info.no-ban-history": "This user has never been banned", "info.banned-until": "Banned until %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Banned permanently", "info.banned-reason-label": "Reason", "info.banned-no-reason": "No reason given.", diff --git a/public/language/sk/admin/advanced/events.json b/public/language/sk/admin/advanced/events.json index dd57fa95a9..526def47bb 100644 --- a/public/language/sk/admin/advanced/events.json +++ b/public/language/sk/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/sk/admin/manage/users.json b/public/language/sk/admin/manage/users.json index 59aa33d56b..419fcd368f 100644 --- a/public/language/sk/admin/manage/users.json +++ b/public/language/sk/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "E-mail s pozvánkou bol odoslaný na %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/sk/admin/settings/navigation.json b/public/language/sk/admin/settings/navigation.json index c1bb688792..cb58063f42 100644 --- a/public/language/sk/admin/settings/navigation.json +++ b/public/language/sk/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: doporučené", "properties": "Vlastnosti:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Otvoriť v novom okne", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/sk/flags.json b/public/language/sk/flags.json index d55b9e5827..e06be6f7e5 100644 --- a/public/language/sk/flags.json +++ b/public/language/sk/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/sk/user.json b/public/language/sk/user.json index bef921e67d..d20fa88acd 100644 --- a/public/language/sk/user.json +++ b/public/language/sk/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Zablokovaný", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Nepripojený", "deleted": "Odstránené", "username": "Používateľské meno", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Potvrdiť odlúčenie", "sso.dissociate-confirm": "Ste si istý, že chcete odlúčiť Váš účet z %1?", "info.latest-flags": "Najnovšie príznaky", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Neboli nájdené žiadne označené príspevky", "info.ban-history": "Nedávna história zablokovania", "info.no-ban-history": "Tento člen nebol nikdy zablokovaný", "info.banned-until": "Zablokovaný až do %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Zablokovaný natrvalo", "info.banned-reason-label": "Dôvod", "info.banned-no-reason": "Neboli uvedené žiadne dôvody.", diff --git a/public/language/sl/admin/advanced/events.json b/public/language/sl/admin/advanced/events.json index 896da0bd3a..094091c9a3 100644 --- a/public/language/sl/admin/advanced/events.json +++ b/public/language/sl/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Tip dogodka", "filter-start": "Začetni datum", "filter-end": "Končni datum", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Na stran" } \ No newline at end of file diff --git a/public/language/sl/admin/manage/users.json b/public/language/sl/admin/manage/users.json index 45570ccade..f930400561 100644 --- a/public/language/sl/admin/manage/users.json +++ b/public/language/sl/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "E -poštno sporočilo s povabilom je bilo poslano %1", "alerts.x-users-found": "%1 najdenih uporabnik(ov), (%2 sekund)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Izvoz uporabnikov kot CSV lahko traja nekaj časa. Ko bo končano, boste prejeli obvestilo.", "export-users-completed": "Uporabniki, izvoženi kot CSV, kliknite tukaj za prenos.", "email": "E-poštni naslov", diff --git a/public/language/sl/admin/settings/navigation.json b/public/language/sl/admin/settings/navigation.json index 2c52824df0..a078108c8b 100644 --- a/public/language/sl/admin/settings/navigation.json +++ b/public/language/sl/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: izbirno", "properties": "Lastnosti:", - "groups": "Skupine", + "show-to-groups": "Show to Groups:", "open-new-window": "Odpri v novem oknu", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/sl/flags.json b/public/language/sl/flags.json index 4b9a03f6eb..07e544aef2 100644 --- a/public/language/sl/flags.json +++ b/public/language/sl/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/sl/user.json b/public/language/sl/user.json index 719a55e30e..2c72679d73 100644 --- a/public/language/sl/user.json +++ b/public/language/sl/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Izločen", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Odjavljeni", "deleted": "Izbrisano", "username": "Uporabniško ime", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Confirm Dissociation", "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?", "info.latest-flags": "Latest Flags", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "No Flagged Posts Found", "info.ban-history": "Recent Ban History", "info.no-ban-history": "This user has never been banned", "info.banned-until": "Banned until %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Banned permanently", "info.banned-reason-label": "Razlog", "info.banned-no-reason": "Razlog ni podan.", diff --git a/public/language/sq-AL/admin/advanced/events.json b/public/language/sq-AL/admin/advanced/events.json index 9327eef8d3..a249bb9721 100644 --- a/public/language/sq-AL/admin/advanced/events.json +++ b/public/language/sq-AL/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/sq-AL/admin/manage/users.json b/public/language/sq-AL/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/sq-AL/admin/manage/users.json +++ b/public/language/sq-AL/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/sq-AL/admin/settings/navigation.json b/public/language/sq-AL/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/sq-AL/admin/settings/navigation.json +++ b/public/language/sq-AL/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/sq-AL/flags.json b/public/language/sq-AL/flags.json index db14cae57d..ceb5b91d94 100644 --- a/public/language/sq-AL/flags.json +++ b/public/language/sq-AL/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Veprime në mas", "bulk-resolve": "Zgjidhja e raportim(eve)", "bulk-success": "%1 raportime u përditësuan", - "flagged-timeago-readable": "I raportuar (% 2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[I vetë Raportuar] Mori %1 vota kundër." } \ No newline at end of file diff --git a/public/language/sq-AL/user.json b/public/language/sq-AL/user.json index 39ad28303b..a5904e748b 100644 --- a/public/language/sq-AL/user.json +++ b/public/language/sq-AL/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "I ndaluar", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Jashtë linje", "deleted": "Fshirë", "username": "Emri i përdoruesit", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Konfirmo shkëputjen", "sso.dissociate-confirm": "Jeni i sigurt që dëshironi të shkëputni llogarinë tuaj nga %1?", "info.latest-flags": "Raportimet më të fundit", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Nuk u gjet asnjë postim i shënuar", "info.ban-history": "Historia e fundit e ndalimit", "info.no-ban-history": "Ky përdorues nuk është ndaluar kurrë", "info.banned-until": "Ndaluar deri në %1", "info.banned-expiry": "Skadimi", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Ndaluar përgjithmonë", "info.banned-reason-label": "Arsye", "info.banned-no-reason": "Asnjë arsye e dhënë.", diff --git a/public/language/sr/admin/advanced/events.json b/public/language/sr/admin/advanced/events.json index 9327eef8d3..a249bb9721 100644 --- a/public/language/sr/admin/advanced/events.json +++ b/public/language/sr/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/sr/admin/manage/users.json b/public/language/sr/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/sr/admin/manage/users.json +++ b/public/language/sr/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/sr/admin/settings/navigation.json b/public/language/sr/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/sr/admin/settings/navigation.json +++ b/public/language/sr/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/sr/flags.json b/public/language/sr/flags.json index 67168e53f5..759dc847ba 100644 --- a/public/language/sr/flags.json +++ b/public/language/sr/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Масовне радње", "bulk-resolve": "Реши заставицу/е", "bulk-success": "Ажурираних заставица: %1", - "flagged-timeago-readable": "Означено заставицом (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Аутоматски означено заставицом] Примљено је %1 негативних гласова." } \ No newline at end of file diff --git a/public/language/sr/user.json b/public/language/sr/user.json index 9c35c037ed..4f53352bb8 100644 --- a/public/language/sr/user.json +++ b/public/language/sr/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Забрањен", + "unbanned": "Unbanned", "muted": "Привремено искључен", + "unmuted": "Unmuted", "offline": "Ван мреже", "deleted": "Избрисано", "username": "Корисничко име", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Потврди одвајање", "sso.dissociate-confirm": "Да ли сте сигурни да желите да одвојите овај налог од %1?", "info.latest-flags": "Најновији означени заставицом", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Нема пронађених порука означених заставицом", "info.ban-history": "Историја недавно забрањених налога", "info.no-ban-history": "Овај корисник никада није био забрањен", "info.banned-until": "Забрањен до %1", "info.banned-expiry": "Истиче", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Забрањен трајно", "info.banned-reason-label": "Разлог", "info.banned-no-reason": "Није дат разлог.", diff --git a/public/language/sv/admin/advanced/events.json b/public/language/sv/admin/advanced/events.json index 9327eef8d3..a249bb9721 100644 --- a/public/language/sv/admin/advanced/events.json +++ b/public/language/sv/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/sv/admin/manage/users.json b/public/language/sv/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/sv/admin/manage/users.json +++ b/public/language/sv/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/sv/admin/settings/navigation.json b/public/language/sv/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/sv/admin/settings/navigation.json +++ b/public/language/sv/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/sv/flags.json b/public/language/sv/flags.json index eb9a6520b0..edf03a3e44 100644 --- a/public/language/sv/flags.json +++ b/public/language/sv/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/sv/user.json b/public/language/sv/user.json index c73f5f3897..ca6c60fc6d 100644 --- a/public/language/sv/user.json +++ b/public/language/sv/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Bannlyst", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Offline", "deleted": "Raderad", "username": "Användarnamn", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Bekräfta frånkoppling", "sso.dissociate-confirm": "Är du säker att du vill koppla bort ditt konto från %1?", "info.latest-flags": "Senaste flaggade", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Inga flaggade inlägg hittades", "info.ban-history": "Ban historik", "info.no-ban-history": "Den här användaren har aldrig varit bannad", "info.banned-until": "Bannad tills %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Permanent bannad", "info.banned-reason-label": "Anledning", "info.banned-no-reason": "Ingen anledning angiven", diff --git a/public/language/th/admin/admin.json b/public/language/th/admin/admin.json index ee88fab2c3..0e905bc30d 100644 --- a/public/language/th/admin/admin.json +++ b/public/language/th/admin/admin.json @@ -1,18 +1,18 @@ { - "alert.confirm-rebuild-and-restart": "Are you sure you wish to rebuild and restart NodeBB?", + "alert.confirm-rebuild-and-restart": "คุณต้องการสร้างระบบและเริ่มต้นการทำงาน NodeBB ใหม่หรือไม่?", "alert.confirm-restart": "คุณต้องการเริ่มการทำงาน NodeBB ใหม่หรือไม่?", "acp-title": "%1 | แผงควบคุมของผู้ดูแลระบบ", "settings-header-contents": "เนื้อหา", - "changes-saved": "Changes Saved", - "changes-saved-message": "Your changes to the NodeBB configuration have been saved.", - "changes-not-saved": "Changes Not Saved", - "changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)", - "save-changes": "Save changes", - "min": "Min:", - "max": "Max:", - "view": "View", - "edit": "Edit", - "add": "Add", - "select-icon": "Select Icon" + "changes-saved": "บันทึกการเปลี่ยนแปลงแล้ว", + "changes-saved-message": "การเปลี่ยนการตั้งค่า NodeBB ของคุณถูกบันทึกแล้ว", + "changes-not-saved": "การเปลี่ยนแปลงไม่ถูกบันทึก", + "changes-not-saved-message": "NodeBB เจอปัญหาระหว่างการบันทึกการเปลี่ยนแปลงของคุณ (%1)", + "save-changes": "บันทึกการเปลี่ยนแปลง", + "min": "ต่ำสุด:", + "max": "สูงสุด:", + "view": "ดู", + "edit": "แก้ไข", + "add": "เพิ่ม", + "select-icon": "เลือกไอคอน" } \ No newline at end of file diff --git a/public/language/th/admin/advanced/cache.json b/public/language/th/admin/advanced/cache.json index 0c7af6cd99..a82ddf0724 100644 --- a/public/language/th/admin/advanced/cache.json +++ b/public/language/th/admin/advanced/cache.json @@ -1,9 +1,9 @@ { "cache": "Cache", "post-cache": "แคชข้อความ", - "group-cache": "Group Cache", - "local-cache": "Local Cache", - "object-cache": "Object Cache", + "group-cache": "แคชกลุ่ม", + "local-cache": "แคชโลคอล", + "object-cache": "แคชออพเจ็กท์", "percent-full": "เต็ม %1%", "post-cache-size": "ขนาดแคชของข้อความ", "items-in-cache": "รายการที่ถูกแคช" diff --git a/public/language/th/admin/advanced/database.json b/public/language/th/admin/advanced/database.json index e01bf5d723..6b89f77aaa 100644 --- a/public/language/th/admin/advanced/database.json +++ b/public/language/th/admin/advanced/database.json @@ -17,18 +17,18 @@ "mongo.file-size": "ขนาดไฟล์", "mongo.resident-memory": "หน่วยความจำถาวร", "mongo.virtual-memory": "หน่วยความจำเสมือน", - "mongo.mapped-memory": "Mapped Memory", - "mongo.bytes-in": "Bytes In", - "mongo.bytes-out": "Bytes Out", - "mongo.num-requests": "Number of Requests", + "mongo.mapped-memory": "หน่วยความจำที่ถูกแมป", + "mongo.bytes-in": "จำนวนไบต์ที่รับเข้า", + "mongo.bytes-out": "จำนวนไบต์ที่ส่งออก", + "mongo.num-requests": "จำนวนการร้องขอ", "mongo.raw-info": "ข้อมูลดิบของ MongoDB", - "mongo.unauthorized": "NodeBB was unable to query the MongoDB database for relevant statistics. Please ensure that the user in use by NodeBB contains the "clusterMonitor" role for the "admin" database.", + "mongo.unauthorized": "NodeBB ไม่สามารถดึงข้อมูลจากฐานข้อมูล MongoDB เพื่อคำนวนสถิติที่เกี่ยวข้อง โปรดตรวจสอบว่าชื่อผู้ใช้งานที่ใช้โดย NodeBB ได้สิทธิ์ "clusterMonitor" สำหรับฐานข้อมูล "admin"", "redis": "Redis", "redis.version": "Redis เวอร์ชั่น", - "redis.keys": "Keys", - "redis.expires": "Expires", - "redis.avg-ttl": "Average TTL", + "redis.keys": "จำนวนคีย์", + "redis.expires": "หมดอายุ", + "redis.avg-ttl": "TTL เฉลี่ย", "redis.connected-clients": "ไคลเอ็นท์ที่เชื่อมต่อแล้ว", "redis.connected-slaves": "Slaves ที่เชื่อมต่อแล้ว", "redis.blocked-clients": "ไคลเอ็นท์ที่ถูกบล็อค", @@ -37,16 +37,16 @@ "redis.total-connections-recieved": "การเชื่อมต่อที่ได้รับทั้งหมด", "redis.total-commands-processed": "คำสั่งที่ประมวลผลแล้วทั้งหมด", "redis.iops": "การทำงานพร้อมกันต่อวินาที", - "redis.iinput": "Instantaneous Input Per Second", - "redis.ioutput": "Instantaneous Output Per Second", - "redis.total-input": "Total Input", - "redis.total-output": "Total Ouput", + "redis.iinput": "ข้อมูลเข้าต่อวินาที", + "redis.ioutput": "ข้อมูลออกต่อวินาที", + "redis.total-input": "ข้อมูลเข้าทั้งหมด", + "redis.total-output": "ข้อมูลออกทั้งหมด", - "redis.keyspace-hits": "Keyspace Hits", - "redis.keyspace-misses": "Keyspace Misses", + "redis.keyspace-hits": "Keyspace ที่พบ", + "redis.keyspace-misses": "Keyspace ที่ไม่พบ", "redis.raw-info": "ข้อมูลดิบของ Redis", "postgres": "Postgres", - "postgres.version": "PostgreSQL Version", - "postgres.raw-info": "Postgres Raw Info" + "postgres.version": "PostgreSQL เวอร์ชัน", + "postgres.raw-info": "ข้อมูลดิบของ Postgres" } diff --git a/public/language/th/admin/advanced/errors.json b/public/language/th/admin/advanced/errors.json index 7e7985ed9c..d1a60a7bb3 100644 --- a/public/language/th/admin/advanced/errors.json +++ b/public/language/th/admin/advanced/errors.json @@ -1,6 +1,6 @@ { "errors": "Errors", - "figure-x": "การปรับแต่ง %1", + "figure-x": "รูปที่ %1", "error-events-per-day": "%1 อีเวนท์ต่อวัน", "error.404": "404 ไม่พบเพจ", "error.503": "503 เซอร์วิสไม่พร้อมใช้งาน", @@ -9,7 +9,7 @@ "clear-error-log": "ล้างผลบันทึกความผิดพลาด", "route": "เส้นทาง", "count": "นับจำนวน", - "no-routes-not-found": "เอาแล้วซิ! พบความผิดพลาดรหัส 404", + "no-routes-not-found": "ไชโย! ไม่พบความผิดพลาดรหัส 404", "clear404-confirm": "คุณแน่ใจแล้วใช่ไหมว่าต้องการล้างผลบันทึกความผิดพลาดรหัส 404?", "clear404-success": "บันทึกความผิดพลาด \"404 ไม่พบเพจ\" ถูกล้างเรียบร้อยแล้ว" } \ No newline at end of file diff --git a/public/language/th/admin/advanced/events.json b/public/language/th/admin/advanced/events.json index 52746558d3..7545b05c04 100644 --- a/public/language/th/admin/advanced/events.json +++ b/public/language/th/admin/advanced/events.json @@ -1,13 +1,17 @@ { - "events": "อีเวนท์", + "events": "Events", "no-events": "ไม่มีอีเวนท์", "control-panel": "แผงควบคุมอีเวนท์", - "delete-events": "Delete Events", - "confirm-delete-all-events": "Are you sure you want to delete all logged events?", - "filters": "Filters", - "filters-apply": "Apply Filters", - "filter-type": "Event Type", - "filter-start": "Start Date", - "filter-end": "End Date", - "filter-per-page": "Per Page" + "delete-events": "ลบอีเว้นท์", + "confirm-delete-all-events": "คุณต้องการจะลบอีเว้นท์ที่เก็บไว้ทั้งหมดหรือไม่?", + "filters": "ฟิลเตอร์", + "filters-apply": "ใช้งานฟิลเตอร์", + "filter-type": "ประเภทอีเว้นท์", + "filter-start": "วันที่เริ่มต้น", + "filter-end": "วันที่สิ้นสุด", + "filter-user": "ฟิลเตอร์โดยผู้ใช้", + "filter-user.placeholder": "พิมพ์ชื่อผู้ใช้เพื่อฟิลเตอร์", + "filter-group": "ฟิลเตอร์โดยกลุ่ม", + "filter-group.placeholder": "พิมพ์ชื่อกลุ่มเพื่อฟิลเตอร์", + "filter-per-page": "ต่อหน้า" } \ No newline at end of file diff --git a/public/language/th/admin/advanced/logs.json b/public/language/th/admin/advanced/logs.json index ba7e879560..ecd0296af7 100644 --- a/public/language/th/admin/advanced/logs.json +++ b/public/language/th/admin/advanced/logs.json @@ -1,5 +1,5 @@ { - "logs": "บันทึกผลกิจกรรม", + "logs": "Logs", "control-panel": "แผงควบคุมบันทึกผลกิจกรรม", "reload": "โหลดบันทึกผลกิจกรรมอีกครั้ง", "clear": "ล้างบันทึกผลกิจกรรม", diff --git a/public/language/th/admin/appearance/customise.json b/public/language/th/admin/appearance/customise.json index a7b479126f..f9d55fc61e 100644 --- a/public/language/th/admin/appearance/customise.json +++ b/public/language/th/admin/appearance/customise.json @@ -1,20 +1,20 @@ { "customise": "Customise", - "custom-css": "Custom CSS/SASS", - "custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.", - "custom-css.enable": "Enable Custom CSS/SASS", + "custom-css": "ปรับแต่ง CSS/SASS", + "custom-css.description": "ป้อน CSS/SASS ของคุณที่นี่ ซึ่งจะเรียกใช้งานหลังสไตล์อื่นทั้งหมด", + "custom-css.enable": "เปิดการปรับแต่ง CSS/SASS", "custom-js": "ปรับแต่งจาวาสคริปต์", "custom-js.description": "ป้อนจาวาสคริปต์ของคุณเองที่นี่ จะดำเนินการหลังจากโหลดหน้าเว็บเสร็จสมบูรณ์แล้ว", "custom-js.enable": "เปิดการปรับแต่งจาวาสคริปต์", "custom-header": "ปรับแต่งส่วนหัว", - "custom-header.description": "Enter custom HTML here (ex. Meta Tags, etc.), which will be appended to the <head> section of your forum's markup. Script tags are allowed, but are discouraged, as the Custom Javascript tab is available.", + "custom-header.description": "ใส่ HTML ที่ปรับแต่งที่นี่ (เช่น แท็ก Meta ฯลฯ) ซึ่งจะต่อท้ายในส่วน <head> ในมาร์คอัพของฟอรัมคุณ แท็ก Script สามารถใช้ได้แต่ไม่แนะนำ เนื่องจากสามารถปรับแต่งได้ที่แท็บ ปรับแต่งจาวาสคริปต์", "custom-header.enable": "เปิดการปรับแต่งส่วนหัว", "custom-css.livereload": "เปิดการบังคับให้มีผลในทันที", "custom-css.livereload.description": "การเปิดนี้จะบังคับทุกเซสชั่นบนทุกอุปกรณ์ภายใต้บัญชีของคุณให้ถูกรีเฟรชทันทีที่คุณกดบันทึก", "bsvariables": "_variables.scss", - "bsvariables.description": "Override bootstrap variables here. You can also use a tool like bootstrap.build and paste the output here.
Changes require a rebuild & restart.", - "bsvariables.enable": "Enable _variables.scss" + "bsvariables.description": "แทนที่ค่าตัวแปร bootstrap ที่นี่ คุณยังสามารถใช้เครื่องมือ bootstrap.build และคัดลอกผลลัพธ์ลงในนี้
การเปลี่ยนแปลงต้องทำ rebuild และเริ่มต้นใหม่", + "bsvariables.enable": "เปิด _variables.scss" } \ No newline at end of file diff --git a/public/language/th/admin/appearance/skins.json b/public/language/th/admin/appearance/skins.json index e42d9bdca4..2af418a75c 100644 --- a/public/language/th/admin/appearance/skins.json +++ b/public/language/th/admin/appearance/skins.json @@ -1,16 +1,16 @@ { "skins": "Skins", - "bootswatch-skins": "Bootswatch Skins", - "custom-skins": "Custom Skins", - "add-skin": "Add Skin", - "save-custom-skins": "Save Custom Skins", - "save-custom-skins-success": "Custom skins saved successfully", - "custom-skin-name": "Custom Skin Name", - "custom-skin-variables": "Custom Skin Variables", + "bootswatch-skins": "หน้ากากจาก Bootswatch", + "custom-skins": "หน้ากากปรับแต่ง", + "add-skin": "เพิ่มหน้ากาก", + "save-custom-skins": "บันทึกหน้ากากที่ปรับแต่ง", + "save-custom-skins-success": "บันทึกหน้ากากปรับแต่งสำเร็จแล้ว", + "custom-skin-name": "ชื่อของหน้ากากปรับแต่ง", + "custom-skin-variables": "ตัวแปรของหน้ากากปรับแต่ง", "loading": "กำลังโหลดหน้ากาก", "homepage": "หน้าแรก", "select-skin": "เลือกหน้ากาก", - "revert-skin": "Revert Skin", + "revert-skin": "ย้อนกลับหน้ากาก", "current-skin": "หน้ากากปัจจุบัน", "skin-updated": "หน้ากากถูกอัปเดทแล้ว", "applied-success": "%1 หน้ากากถูกใช้เสร็จสิ้นแล้ว", diff --git a/public/language/th/admin/appearance/themes.json b/public/language/th/admin/appearance/themes.json index da26b0dbd6..253a9004e1 100644 --- a/public/language/th/admin/appearance/themes.json +++ b/public/language/th/admin/appearance/themes.json @@ -3,11 +3,11 @@ "checking-for-installed": "กำลังตรวจสอบธีมที่ถูกติดตั้งแล้ว", "homepage": "หน้าแรก", "select-theme": "เลือกธีม", - "revert-theme": "Revert Theme", + "revert-theme": "ย้อนกลับธีม", "current-theme": "ธีมปัจจุบัน", "no-themes": "ไม่พบธีมที่ถูกติดตั้งแล้ว", "revert-confirm": "คุณแน่ใจแล้วใช่ไหมที่ต้องการกลับไปใช้ธีมพื้นฐานของ NodeBB?", "theme-changed": "ธีมถูกเปลี่ยนแล้ว", "revert-success": "คุณได้ทำการเปลี่ยน NodeBB ของคุณให้กลับไปใช้ธีมพื้นฐานของมันแล้ว", - "restart-to-activate": "Please rebuild and restart your NodeBB to fully activate this theme." + "restart-to-activate": "โปรดสร้างระบบใหม่และเริ่มต้น NodeBB เพื่อเปิดใช้งานธีมใหม่" } \ No newline at end of file diff --git a/public/language/th/admin/dashboard.json b/public/language/th/admin/dashboard.json index 6ad973f5f3..dda2fc3916 100644 --- a/public/language/th/admin/dashboard.json +++ b/public/language/th/admin/dashboard.json @@ -1,54 +1,54 @@ { "forum-traffic": "Forum Traffic", - "page-views": "Page Views", - "unique-visitors": "Unique Visitors", - "logins": "Logins", - "new-users": "New Users", - "posts": "Posts", - "topics": "Topics", - "page-views-seven": "Last 7 Days", - "page-views-thirty": "Last 30 Days", - "page-views-last-day": "Last 24 hours", - "page-views-custom": "Custom Date Range", - "page-views-custom-start": "Range Start", - "page-views-custom-end": "Range End", - "page-views-custom-help": "Enter a date range of page views you would like to view. If no date picker is available, the accepted format is YYYY-MM-DD", - "page-views-custom-error": "Please enter a valid date range in the format YYYY-MM-DD", + "page-views": "จำนวนครั้งที่ดูหน้าเพจ", + "unique-visitors": "จำนวนผู้ใช้ที่ไม่ซ้ำกัน", + "logins": "จำนวนล็อกอิน", + "new-users": "ผู้ใช้ใหม่", + "posts": "จำนวนโพสต์", + "topics": "จำนวนกระทู้", + "page-views-seven": "7 วันล่าสุด", + "page-views-thirty": "30 วันล่าสุด", + "page-views-last-day": "24 ชั่วโมงที่แล้ว", + "page-views-custom": "ช่วงเวลาที่กำหนดเอง", + "page-views-custom-start": "ช่วงเวลาเริ่มต้น", + "page-views-custom-end": "ช่วงเวลาสิ้นสุด", + "page-views-custom-help": "ใส่ช่วงวันที่ที่คุณต้องการดูค่า ถ้ากดเลือกวันที่ไม่ได้ ให้กรอกวันที่ในรูปแบบ YYYY-MM-DD", + "page-views-custom-error": "โปรดกรอกวันที่ที่ถูกต้องในรูปแบบ YYYY-MM-DD", - "stats.yesterday": "Yesterday", - "stats.today": "Today", - "stats.last-week": "Last Week", - "stats.this-week": "This Week", - "stats.last-month": "Last Month", - "stats.this-month": "This Month", - "stats.all": "All Time", + "stats.yesterday": "เมื่อวาน", + "stats.today": "วันนี้", + "stats.last-week": "สัปดาห์ที่แล้ว", + "stats.this-week": "สัปดาห์นี้", + "stats.last-month": "เดือนที่แล้ว", + "stats.this-month": "เดือนนี้", + "stats.all": "ช่วงเวลาทั้งหมด", - "updates": "Updates", - "running-version": "You are running NodeBB v%1.", - "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", - "up-to-date": "You are up-to-date ", - "upgrade-available": "A new version (v%1) has been released. Consider upgrading your NodeBB.", - "prerelease-upgrade-available": "This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.", - "prerelease-warning": "This is a pre-release version of NodeBB. Unintended bugs may occur. ", - "fallback-emailer-not-found": "Fallback emailer not found!", - "running-in-development": "Forum is running in development mode. The forum may be open to potential vulnerabilities; please contact your system administrator", - "latest-lookup-failed": "Failed to look up latest available version of NodeBB", + "updates": "จำนวนอัพเดท", + "running-version": "คุณกำลังใช้ NodeBB v%1.", + "keep-updated": "ให้แน่ใจว่า NodeBB ของคุณเป็นรุ่นล่าสุด เพื่อมีการแก้ไขความปลอดภัยและข้อบกพร่องล่าสุด", + "up-to-date": "คุณใช้ รุ่นล่าสุด ", + "upgrade-available": "มีเวอร์ชันใหม่ (v%1) ออกมาแล้ว โปรดพิจารณา อัพเกรด NodeBB ของคุณ.", + "prerelease-upgrade-available": "นี่เป็นรุ่นทดลองของ NodeBB ที่ล้าสมัยแล้ว มีเวอร์ชั่นใหม่ (v%1) ออกมา โปรดพิจารณา อัพเกรด NodeBB ของคุณ.", + "prerelease-warning": "นี่เป็น รุ่นทดลอง ของ NodeBB อาจมีข้อบกพร่องที่ไม่ตั้งใจ", + "fallback-emailer-not-found": "ไม่พบตัวส่งอีเมลสำรอง!", + "running-in-development": "ฟอรั่มกำลังทำงานในโหมดพัฒนา ฟอรั่มอาจมีช่องโหว่ให้โจมตี โปรดติดต่อผู้ดูแลระบบของคุณ", + "latest-lookup-failed": "ไม่สามารถหาเวอร์ชั่นล่าสุดของ NodeBB ได้", - "notices": "Notices", - "restart-not-required": "Restart not required", - "restart-required": "Restart required", - "search-plugin-installed": "Search Plugin installed", - "search-plugin-not-installed": "Search Plugin not installed", - "search-plugin-tooltip": "Install a search plugin from the plugin page in order to activate search functionality", + "notices": "หมายเหตุ", + "restart-not-required": "ไม่จำเป็นต้องเริ่มต้นระบบใหม่", + "restart-required": "จำเป็นต้องเริ่มต้นระบบใหม่", + "search-plugin-installed": "ติดตั้งปลั๊กอินสำหรับค้นหาแล้ว", + "search-plugin-not-installed": "ยังไม่ได้ติดตั้งปลั๊กอินสำหรับค้นหา", + "search-plugin-tooltip": "ติดตั้งปลั๊กอินสำหรับค้นหาจากหน้าปลั๊กอินเพื่อเปิดใช้งานการค้นหา", - "control-panel": "System Control", - "rebuild-and-restart": "Rebuild & Restart", - "restart": "Restart", - "restart-warning": "Rebuilding or Restarting your NodeBB will drop all existing connections for a few seconds.", - "restart-disabled": "Rebuilding and Restarting your NodeBB has been disabled as you do not seem to be running it via the appropriate daemon.", - "maintenance-mode": "Maintenance Mode", - "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", - "dark-mode": "Dark Mode", + "control-panel": "การควบคุมระบบ", + "rebuild-and-restart": "สร้างใหม่ & เริ่มต้นระบบใหม่", + "restart": "เริ่มต้นระบบใหม่", + "restart-warning": "การสร้างหรือเริ่มต้นระบบ NodeBB ของคุณจะทำให้การเชื่อมต่อถูกตัดเป็นเวลาหลายวินาที", + "restart-disabled": "การสร้างและเริ่มต้นระบบ NodeBB ของคุณไม่เปิดให้ใช้งาน เนื่องจากคุณไม่ได้เรียกใช้จาก daemon ที่ถูกต้อง", + "maintenance-mode": "โหมดการซ่อมบำรุง", + "maintenance-mode-title": "คลิกที่นี่เพื่อเข้าสู่โหมดการซ่อมบำรุงของ NodeBB", + "dark-mode": "โหมดมืด", "realtime-chart-updates": "Realtime Chart Updates", "active-users": "Active Users", @@ -87,15 +87,15 @@ "details.no-searches": "No searches have been made within the selected timeframe", "details.no-logins": "No logins have been recorded within the selected timeframe", "details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions", - "details.logins-login-time": "Login Time", - "start": "Start", - "end": "End", - "filter": "Filter", - "view-as-json": "View as JSON", - "expand-analytics": "Expand analytics", - "clear-search-history": "Clear Search History", - "clear-search-history-confirm": "Are you sure you want to clear entire search history?", - "search-term": "Term", - "search-count": "Count", - "view-all": "View all" + "details.logins-login-time": "เวลาที่ล็อกอิน", + "start": "เริ่มต้น", + "end": "สิ้นสุด", + "filter": "ฟิลเตอร์", + "view-as-json": "ดูในรูปแบบ JSON", + "expand-analytics": "ขยายดู analytics", + "clear-search-history": "ล้างประวัติการค้นหา", + "clear-search-history-confirm": "คุณต้องการล้างประวัติการค้นหาทั้งหมดหรือไม่?", + "search-term": "ข้อความ", + "search-count": "จำนวนครั้ง", + "view-all": "ดูทั้งหมด" } diff --git a/public/language/th/admin/extend/widgets.json b/public/language/th/admin/extend/widgets.json index 5d2832feed..41d352d04b 100644 --- a/public/language/th/admin/extend/widgets.json +++ b/public/language/th/admin/extend/widgets.json @@ -1,35 +1,35 @@ { "widgets": "Widgets", - "available": "Available Widgets", - "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", - "none-installed": "No widgets found! Activate the widget essentials plugin in the plugins control panel.", - "clone-from": "Clone widgets from", - "containers.available": "Available Containers", - "containers.explanation": "Drag and drop on top of any widget", - "containers.none": "None", - "container.well": "Well", - "container.jumbotron": "Jumbotron", - "container.card": "Card", - "container.card-header": "Card Header", - "container.card-body": "Card Body", - "container.alert": "Alert", + "available": "วิดเจ็ดที่มี", + "explanation": "เลือกวิดเจ็ตจากเมนูดรอปดาวน์ จากนั้นลากไปปล่อยในบริเวณของวิดเจ็ตในเทมเพลตด้านซ้ายมือ", + "none-installed": "ไม่พบวิดเจ็ต! โปรดเรียกใช้งานปลั๊กอิน widget essentials ในแผงควบคุม Plugins", + "clone-from": "คัดลอกวิดเจ็ตจาก", + "containers.available": "คอนเทนเนอร์ที่มี", + "containers.explanation": "ลากแล้วปล่อยลงบนวิดเจ็ตใดๆ", + "containers.none": "ไม่มี", + "container.well": "แถบขนาดเล็ก", + "container.jumbotron": "แถบขนาดใหญ่", + "container.card": "การ์ด", + "container.card-header": "ส่วนหัวของการ์ด", + "container.card-body": "ข้างในการ์ด", + "container.alert": "แจ้งเตือน", - "alert.confirm-delete": "Are you sure you wish to delete this widget?", - "alert.updated": "Widgets Updated", - "alert.update-success": "Successfully updated widgets", - "alert.clone-success": "Successfully cloned widgets", + "alert.confirm-delete": "คุณต้องการจะลบวิดเจ็ตนี้หรือไม่?", + "alert.updated": "วิดเจ็ตถูกอัพเดทแล้ว", + "alert.update-success": "การอัพเดทวิดเจ็ตสำเร็จ", + "alert.clone-success": "การคัดลอกวิดเจ็ตสำเร็จ", - "error.select-clone": "Please select a page to clone from", + "error.select-clone": "โปรดเลือกหน้าที่จะคัดลอกมา", - "title": "Title", - "title.placeholder": "Title (only shown on some containers)", - "container": "Container", - "container.placeholder": "Drag and drop a container or enter HTML here.", - "show-to-groups": "Show to groups", - "hide-from-groups": "Hide from groups", - "start-date": "Start date", - "end-date": "End date", - "hide-on-mobile": "Hide on mobile", - "hide-drafts": "Hide drafts", - "show-drafts": "Show drafts" + "title": "ชื่อ", + "title.placeholder": "ชื่อ (แสดงเฉพาะบางคอนเทนเนอร์)", + "container": "คอนเทนเนอร์", + "container.placeholder": "ลากและปล่อยคอนเทนเนอร์หรือป้อน HTML ตรงนี้", + "show-to-groups": "แสดงให้กลุ่ม", + "hide-from-groups": "ซ่อนจากกลุ่ม", + "start-date": "วันที่เริ่มต้น", + "end-date": "วันที่สิ้นสุด", + "hide-on-mobile": "ซ่อนบนมือถือ", + "hide-drafts": "ซ่อนข้อความร่าง", + "show-drafts": "แสดงข้อความร่าง" } \ No newline at end of file diff --git a/public/language/th/admin/manage/users.json b/public/language/th/admin/manage/users.json index ae77c5372e..482fc0148f 100644 --- a/public/language/th/admin/manage/users.json +++ b/public/language/th/admin/manage/users.json @@ -1,42 +1,42 @@ { "manage-users": "Manage Users", "users": "ผู้ใช้", - "edit": "Actions", + "edit": "จัดการ", "make-admin": "ทำให้เป็นแอดมิน", "remove-admin": "ยกเลิกการเป็นแอดมิน", - "change-email": "Change Email", - "new-email": "New Email", + "change-email": "เปลี่ยนอีเมล", + "new-email": "เพิ่มอีเมลใหม่", "validate-email": "ยืนยันอีเมล", "send-validation-email": "ส่งอีเมลยืนยัน", - "change-password": "Change Password", + "change-password": "เปลี่ยนรหัสผ่าน", "password-reset-email": "ส่งการล้างค่ารหัสผ่านทางอีเมล", - "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban", - "ban-users": "Ban User(s)", - "temp-ban": "ผู้ใช้งานที่โดนแบนชั่วคราว", + "force-password-reset": "บังคับรีเซ็ตรหัสผ่านและออกจากระบบ", + "ban": "แบน", + "ban-users": "แบนผู้ใช้", + "temp-ban": "แบนผู้ใช้ชั่วคราว", "unban": "ยกเลิกการแบนผู้ใช้งาน", "reset-lockout": "ยกเลิกการกักกัน", - "reset-flags": "ยกเลิกการการเฝ้าระวัง", - "delete": "Delete", - "delete-users": "Delete User(s)", - "delete-content": "Delete User(s) Content", - "purge": "Delete User(s) and Content", + "reset-flags": "ยกเลิกรายงาน", + "delete": "ลบ", + "delete-users": "ลบผู้ใช้งาน", + "delete-content": "ลบเนื้อหาของผู้ใช้งาน", + "purge": "ลบผู้ใช้งานและเนื้อหา", "download-csv": "ดาวน์โหลด CSV", - "manage-groups": "Manage Groups", - "set-reputation": "Set Reputation", - "add-group": "Add Group", - "create": "Create User", - "invite": "Invite by Email", + "manage-groups": "จัดการกลุ่ม", + "set-reputation": "ตั้งค่าชื่อเสียง", + "add-group": "เพิ่มกลุ่ม", + "create": "สร้างผู้ใช้งาน", + "invite": "เชิญทางอีเมล", "new": "ผู้ใช้งานใหม่", - "filter-by": "Filter by", + "filter-by": "ฟิลเตอร์ตาม", "pills.unvalidated": "ยังไม่ได้ยืนยัน", - "pills.validated": "Validated", + "pills.validated": "ยืนยันแล้ว", "pills.banned": "แบน", - "50-per-page": "50 per page", - "100-per-page": "100 per page", - "250-per-page": "250 per page", - "500-per-page": "500 per page", + "50-per-page": "50 รายการต่อหน้า", + "100-per-page": "100 รายการต่อหน้า", + "250-per-page": "250 รายการต่อหน้า", + "500-per-page": "500 รายการต่อหน้า", "search.uid": "ตามรหัสผู้ใช้", "search.uid-placeholder": "ป้อนหมายเลขผู้ใช้เพื่อค้นหา", @@ -55,15 +55,15 @@ "users.uid": "uid", "users.username": "ชื่อผู้ใช้", "users.email": "อีเมล", - "users.no-email": "(no email)", - "users.validated": "Validated", - "users.not-validated": "Not Validated", - "users.validation-pending": "Validation Pending", - "users.validation-expired": "Validation Expired", + "users.no-email": "(ไม่มีอีเมล)", + "users.validated": "ยืนยันแล้ว", + "users.not-validated": "ยังไม่ได้ยืนยัน", + "users.validation-pending": "รอยืนยัน", + "users.validation-expired": "หมดเวลายืนยัน", "users.ip": "IP", "users.postcount": "จำนวนกระทู้", "users.reputation": "ชื่อเสียง", - "users.flags": "ติดตาม", + "users.flags": "ถูกรายงาน", "users.joined": "เข้าร่วม", "users.last-online": "ออนไลน์ครั้งสุดท้าย", "users.banned": "แบน", @@ -74,7 +74,7 @@ "create.password": "รหัสผ่าน", "create.password-confirm": "ยืนยันรหัสผ่าน", - "temp-ban.length": "Length", + "temp-ban.length": "ความยาว", "temp-ban.reason": "เหตุผล (ตัวเลือก)", "temp-ban.hours": "ชั่วโมง", "temp-ban.days": "วัน", @@ -82,12 +82,12 @@ "alerts.confirm-ban": "คุณต้องการที่จะแบนผู้ใช้คนนี้ ถาวร ?", "alerts.confirm-ban-multi": "คุณต้องการที่จะแบนผู้ใช้กลุ่มนี้ ถาวร ?", - "alerts.ban-success": "ผู้ใช้งานที่โดนแบน", + "alerts.ban-success": "ผู้ใช้โดนแบนแล้ว!", "alerts.button-ban-x": "แบน %1 ผู้ใช้งาน", - "alerts.unban-success": "ยกเลิกการแบนผู้ใช้งาน", + "alerts.unban-success": "ยกเลิกการแบนผู้ใช้แล้ว!", "alerts.lockout-reset-success": "ยกเลิกการกักกัน", - "alerts.password-change-success": "Password(s) changed!", - "alerts.flag-reset-success": "ยกเลิกการติดตาม", + "alerts.password-change-success": "รหัสผ่านถูกเปลี่ยนแล้ว!", + "alerts.flag-reset-success": "ยกเลิกรายงานแล้ว!", "alerts.no-remove-yourself-admin": "คุณไม่สามารถที่จะยกเลิกตัวเองจากการเป็นผู้ดูแลระบบ", "alerts.make-admin-success": "ขณะนี้ผู้ใช้เป็นผู้ดูแลระบบแล้ว", "alerts.confirm-remove-admin": "คุณต้องการลบผู้ดูแลระบบคนนี้หรือไม่?", @@ -99,11 +99,11 @@ "alerts.confirm-remove-moderator": "คุณต้องการนำผู้ดูแลนี้ออกหรือไม่?", "alerts.remove-moderator-success": "ผู้ใช้ไม่ได้เป็นผู้ดูแลอีกต่อไป", "alerts.confirm-validate-email": "คุณต้องการที่ยืนยันอีเมลของผู้ใช้เหล่านี้หรือไม่?", - "alerts.confirm-force-password-reset": "Are you sure you want to force the password reset and log out these user(s)?", + "alerts.confirm-force-password-reset": "คุณต้องการให้ผู้ใช้เหล่านี้ถูกรีเซ็ตรหัสผ่านและออกจากระบบหรือไม่?", "alerts.validate-email-success": "อีเมลที่ได้รับการยืนยัน", - "alerts.validate-force-password-reset-success": "User(s) passwords have been reset and their existing sessions have been revoked.", + "alerts.validate-force-password-reset-success": "รหัสผ่านของผู้ใช้งานถูกรีเซ็ต และการเข้าระบบถูกถอดออก", "alerts.password-reset-confirm": "คุณต้องการที่จะส่งอีเมลการล้างค่ารหัสผ่านให้กับผู้ใช้เหล่านี้หรือไม่?", - "alerts.password-reset-email-sent": "Password reset email sent.", + "alerts.password-reset-email-sent": "อีเมลรีเซ็ตรหัสผ่านถูกส่งแล้ว", "alerts.confirm-delete": "Warning!

Do you really want to delete user(s)?

This action is not reversible! Only the user account will be deleted, their posts and topics will remain.

", "alerts.delete-success": "ผู้ใช้งานโดนลบ!", "alerts.confirm-delete-content": "Warning!

Do you really want to delete these user(s) content?

This action is not reversible! The users' accounts will remain, but their posts and topics will be deleted.

", @@ -112,15 +112,37 @@ "alerts.create": "สร้างผู้ใช้งาน", "alerts.button-create": "สร้าง", "alerts.button-cancel": "ยกเลิก", - "alerts.button-change": "Change", + "alerts.button-change": "เปลี่ยน", "alerts.error-passwords-different": "รหัสผ่านจะต้องเหมือนกัน! ", "alerts.error-x": "ผิดพลาด

%1

", "alerts.create-success": "ผู้ใช้งานถูกสร้าง!", - "alerts.prompt-email": "Emails: ", + "alerts.prompt-email": "อีเมล: ", "alerts.email-sent-to": "อีเมลคำเชิญถูกส่งไปที่ %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "ส่งออกไฟล์", + "export-users-fields-title": "เลือกฟิลด์สำหรับ CSV", + "export-field-email": "อีเมล", + "export-field-username": "ชื่อผู้ใช้งาน", + "export-field-uid": "หมายเลขผู้ใช้งาน", + "export-field-ip": "IP", + "export-field-joindate": "วันที่เข้าร่วม", + "export-field-lastonline": "ออนไลน์ล่าสุด", + "export-field-lastposttime": "โพสต์ล่าสุด", + "export-field-reputation": "ชื่อเสียง", + "export-field-postcount": "จำนวนโพสต์", + "export-field-topiccount": "จำนวนกระทู้", + "export-field-profileviews": "จำนวนการดูหน้าโปรไฟล์", + "export-field-followercount": "จำนวนผู้ติดตาม", + "export-field-followingcount": "จำนวนการติดตาม", + "export-field-fullname": "ชื่อเต็ม", + "export-field-website": "เว็บไซต์", + "export-field-location": "สถานที่", + "export-field-birthday": "วันเกิด", + "export-field-signature": "ลายเซ็น", + "export-field-aboutme": "เกี่ยวกับฉัน", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/th/admin/settings/navigation.json b/public/language/th/admin/settings/navigation.json index 931ac5f4ba..3a71061ecf 100644 --- a/public/language/th/admin/settings/navigation.json +++ b/public/language/th/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: optional", "properties": "Properties:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Open in a new window", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/th/aria.json b/public/language/th/aria.json index 6f023dcae0..85aa375bfc 100644 --- a/public/language/th/aria.json +++ b/public/language/th/aria.json @@ -1,8 +1,8 @@ { - "post-sort-option": "Post sort option, %1", - "topic-sort-option": "Topic sort option, %1", - "user-avatar-for": "User avatar for %1", - "user-watched-tags": "User watched tags", - "delete-upload-button": "Delete upload button", - "group-page-link-for": "Group page link for %1" + "post-sort-option": "ตัวเลือกการจัดเรียงโพสต์ %1", + "topic-sort-option": "ตัวเลือกการจัดเรียงกระทู้ %1", + "user-avatar-for": "อวาตาร์ผู้ใช้สำหรับ %1", + "user-watched-tags": "แท็กที่ผู้ใช้เฝ้าดู", + "delete-upload-button": "ลบปุ่มอัพโหลด", + "group-page-link-for": "ลิงก์ไปหน้ากลุ่มสำหรับ %1" } \ No newline at end of file diff --git a/public/language/th/category.json b/public/language/th/category.json index 81de3410b5..33eec3759a 100644 --- a/public/language/th/category.json +++ b/public/language/th/category.json @@ -3,24 +3,24 @@ "subcategories": "หมวดหมู่ย่อย", "new-topic-button": "ตั้งกระทู้", "guest-login-post": "เข้าสู่ระบบเพื่อโพสต์", - "no-topics": "ยังไม่มีกระทู้ในหมวดนี้
โพสต์กระทู้แรก?", + "no-topics": "ยังไม่มีกระทู้ในหมวดนี้
ลองโพสต์กระทู้แรกดูมั้ย?", "browsing": "เรียกดู", "no-replies": "ยังไม่มีใครตอบ", "no-new-posts": "ไม่มีกระทู้ใหม่", - "watch": "ตามดู", + "watch": "เฝ้าดู", "ignore": "ไม่ต้องสนใจอีก", - "watching": "กำลังตามดู", - "tracking": "Tracking", - "not-watching": "Not Watching", - "ignoring": "เมินเฉย", - "watching.description": "Notify me of new topics.
Show topics in unread & recent", - "tracking.description": "Shows topics in unread & recent", - "not-watching.description": "Do not show topics in unread, show in recent", - "ignoring.description": "Do not show topics in unread & recent", - "watching.message": "You are now watching updates from this category and all subcategories", - "tracking.message": "You are now tracking updates from this category and all subcategories", - "notwatching.message": "You are not watching updates from this category and all subcategories", - "ignoring.message": "You are now ignoring updates from this category and all subcategories", - "watched-categories": "หมวดหมู่ที่ดูแล้ว", - "x-more-categories": "%1 more categories" + "watching": "กำลังเฝ้าดู", + "tracking": "กำลังติดตาม", + "not-watching": "ไม่ได้เฝ้าดู", + "ignoring": "ไม่สนใจ", + "watching.description": "แจ้งเตือนฉันเมื่อมีกระทู้ใหม่
แสดงกระทู้ในหน้า ไม่ได้อ่าน และ ล่าสุด", + "tracking.description": "แสดงกระทู้ในหน้า ไม่ได้อ่าน และ ล่าสุด", + "not-watching.description": "ไม่ต้องแสดงกระทู้ในหน้า ไม่ได้อ่าน แต่แสดงในหน้า ล่าสุด", + "ignoring.description": "ไม่ต้องแสดงกระทู้ในหน้า ไม่ได้อ่าน และ ล่าสุด", + "watching.message": "คุณกำลังเฝ้าดูการอัพเดทจากหมวดหมู่นี้และทุกหมวดหมู่ย่อย", + "tracking.message": "คุณกำลังติดตามการอัพเดทจากหมวดหมู่นี้และทุกหมวดหมู่ย่อย", + "notwatching.message": "คุณไม่ได้เฝ้าดูการอัพเดทจากหมวดหมู่นี้และทุกหมวดหมู่ย่อย", + "ignoring.message": "คุณไม่สนใจการอัพเดทจากหมวดหมู่นี้และทุกหมวดหมู่ย่อย", + "watched-categories": "หมวดหมู่ที่เฝ้าดู", + "x-more-categories": "มีอีก %1 หมวดหมู่" } \ No newline at end of file diff --git a/public/language/th/email.json b/public/language/th/email.json index 7daeb735c8..6bfbfa20d1 100644 --- a/public/language/th/email.json +++ b/public/language/th/email.json @@ -1,61 +1,61 @@ { - "test-email.subject": "Test Email", - "password-reset-requested": "Password Reset Requested!", - "welcome-to": "ยินดีต้อนรับ %1", + "test-email.subject": "อีเมลทดสอบ", + "password-reset-requested": "ขอให้ตั้งรหัสผ่านใหม่แล้ว!", + "welcome-to": "ยินดีต้อนรับสู่ %1", "invite": "คำเชิญจาก %1", "greeting-no-name": "สวัสดี", "greeting-with-name": "สวัสดี %1", - "email.verify-your-email.subject": "Please verify your email", - "email.verify.text1": "You've requested that we change or confirm your email address", - "email.verify.text2": "For security purposes, we only change or confirm the email address on file once its ownership has been confirmed via email. If you did not request this, no action is required on your part.", - "email.verify.text3": "Once you confirm this email address, we will replace your current email address with this one (%1).", + "email.verify-your-email.subject": "โปรดยืนยันอีเมลของคุณ", + "email.verify.text1": "คุณได้ร้องขอให้เราเปลี่ยนหรือยืนยันอีเมลของคุณ", + "email.verify.text2": "ด้วยเหตุผลของความปลอดภัย เราจะเปลี่ยนหรือยืนยันอีเมลที่เก็บไว้ก็ต่อเมื่อได้รับการยืนยันความเป็นเจ้าของผ่านทางอีเมล ถ้าคุณไม่ได้ร้องขอนี้ คุณไม่ต้องทำอะไร", + "email.verify.text3": "ทันทีที่คุณยืนยันที่อยู่อีเมลนี้ เราจะเปลี่ยนอีเมลปัจจุบันของคุณเป็นอีเมลนี้แทน (%1)", "welcome.text1": "ขอบคุณที่ลงทะเบียนกับ %1", "welcome.text2": "เพื่อให้การบัญชีของคุณใช้งานได้อย่างเสร็จสมบูรณ์ เราจำเป็นต้องยืนยันว่าคุณเป็นเจ้าของที่แท้จริงของอีเมล์ที่ใช้สมัครสมาชิก", - "welcome.text3": "ผู้ดูแลระบบได้ทำการยอมรับการสมัครสมาชิกของคุณแล้ว คุณสามารถเข้าสู่ระบบด้วย ชื่อผู้ใช้/รหัสผ่าน ได้แล้วตอนนี้", + "welcome.text3": "ผู้ดูแลระบบยอมรับการสมัครสมาชิกของคุณแล้ว คุณสามารถเข้าสู่ระบบด้วย ชื่อผู้ใช้/รหัสผ่าน ได้แล้วตอนนี้", "welcome.cta": "กดตรงนี้เพื่อยืนยันอีเมลของคุณ", "invitation.text1": "%1 ได้เชิญคุณให้เข้าร่วม %2", - "invitation.text2": "Your invitation will expire in %1 days.", - "invitation.cta": "Click here to create your account.", + "invitation.text2": "คำเชิญของคุณจะหมดอายุใน %1 วัน", + "invitation.cta": "คลิกที่นี่เพื่อสร้างบัญชีของคุณ", "reset.text1": "เราได้รับคำร้องให้ตั้งค่ารหัสผ่านใหม่ของคุณ อาจจะเป็นเพราะว่าคุณลืมรหัสผ่านและได้ทำการส่งคำขอเข้ามา หากไม่ใช่ กรุณาเพิกเฉยต่ออีเมล์นี้และไม่ต้องดำเนินการใดๆทั้งสิ้น", "reset.text2": "เพื่อดำเนินการตั้งรหัสผ่านใหม่ต่อไป, โปรดกดที่ลิ้งค์นี้:", "reset.cta": "กดตรงนี้เพื่อตั้งรหัสผ่านใหม่", - "reset.notify.subject": "ตั้งค่ารหัสผ่านใหม่เรียบร้อยแล้ว", + "reset.notify.subject": "รหัสผ่านได้เปลี่ยนเรียบร้อยแล้ว", "reset.notify.text1": "เรากำลังแจ้งคุณว่าตอน %1 รหัสผ่านของคุณถูกเปลี่ยนเรียบร้อยแล้ว", "reset.notify.text2": "หากคุณไม่ได้เป็นคนอนุญาตสิ่งนี้ กรุณาแจ้งไปยังผู้ดูแลระบบโดยทันที", - "digest.unread-rooms": "Unread rooms", - "digest.room-name-unreadcount": "%1 (%2 unread)", - "digest.latest-topics": "หัวข้อสนทนาล่าสุดจาก %1", - "digest.top-topics": "Top topics from %1", - "digest.popular-topics": "Popular topics from %1", + "digest.unread-rooms": "ห้องที่ยังไม่ได้อ่าน", + "digest.room-name-unreadcount": "%1 (ยังไม่ได้อ่าน %2)", + "digest.latest-topics": "กระทู้ล่าสุดจาก %1", + "digest.top-topics": "กระทู้อันดับต้นๆจาก %1", + "digest.popular-topics": "กระทู้ยอดนิยมจาก %1", "digest.cta": "กดตรงนี้เพื่อเข้าดู %1", - "digest.unsub.info": "คำชี้แจงถูกส่งไปให้คุณแล้ว เนื่องมาจากการตั้งค่าสมาชิกของคุณ", + "digest.unsub.info": "สรุปเนื้อหานี้ถูกส่งไปให้คุณแล้ว เนื่องมาจากการตั้งค่าสมาชิกของคุณ", "digest.day": "วัน", "digest.week": "สัปดาห์", "digest.month": "เดือน", - "digest.subject": "คำชี้แจงสำหรับ %1", - "digest.title.day": "Your Daily Digest", - "digest.title.week": "Your Weekly Digest", - "digest.title.month": "Your Monthly Digest", - "notif.chat.new-message-from-user": "New message from \"%1\"", - "notif.chat.new-message-from-user-in-room": "New message from %1 in room %2", + "digest.subject": "สรุปเนื้อหาสำหรับ %1", + "digest.title.day": "สรุปเนื้อหารายวันของคุณ", + "digest.title.week": "สรุปเนื้อหารายสัปดาห์ของคุณ", + "digest.title.month": "สรุปเนื้อหารายเดือนของคุณ", + "notif.chat.new-message-from-user": "ข้อความใหม่จาก \"%1\"", + "notif.chat.new-message-from-user-in-room": "ข้อความใหม่จาก %1 ในห้อง %2", "notif.chat.cta": "กดตรงนี้เพื่อกลับไปยังบทสนทนา", "notif.chat.unsub.info": "การแจ้งเตือนแชทนี้ถูกส่งไปหาคุณเนื่องจากการตั้งค่าสมาชิกของคุณ", "notif.post.unsub.info": "การแจ้งเตือนกระทู้นี้ถูกส่งไปยังคุณเนื่องการตั้งค่าสมาชิกของคุณ", - "notif.post.unsub.one-click": "Alternatively, unsubscribe from future emails like this, by clicking", - "notif.cta": "To the forum", - "notif.cta-new-reply": "View Post", - "notif.cta-new-chat": "View Chat", - "notif.test.short": "Testing Notifications", - "notif.test.long": "This is a test of the notifications email. Send help!", + "notif.post.unsub.one-click": "อีกทางเลือกหนึ่ง ยกเลิกการรับอีเมลแบบนี้ในอนาคตโดยการกด", + "notif.cta": "ไปยังฟอรั่ม", + "notif.cta-new-reply": "ดูกระทู้", + "notif.cta-new-chat": "ดูแชท", + "notif.test.short": "การทดสอบการแจ้งเตือน", + "notif.test.long": "นี่เป็นการทดสอบอีเมลแจ้งเตือน โปรดส่งความช่วยเหลือ!", "test.text1": "นี่คืออีเมลทดสอบเพื่อยืนยันว่าระบบอีเมลมีการตั้งค่าที่ถูกต้องสำหรับ NodeBB ของคุณ", "unsub.cta": "กดตรงนี้เพื่อเปลี่ยนแปลงการตั้งค่า", - "unsubscribe": "unsubscribe", - "unsub.success": "You will no longer receive emails from the %1 mailing list", - "unsub.failure.title": "Unable to unsubscribe", - "unsub.failure.message": "Unfortunately, we were not able to unsubscribe you from the mailing list, as there was an issue with the link. However, you can alter your email preferences by going to your user settings.

(error: %1)", + "unsubscribe": "ยกเลิกการติดตาม", + "unsub.success": "คุณจะไม่ได้รับอีเมลจากกลุ่มอีเมล %1", + "unsub.failure.title": "ไม่สามารถยกเลิกการติดตามได้", + "unsub.failure.message": "เราไม่สามารถยกเลิกการเป็นสมาชิกกลุ่มอีเมลของคุณเนื่องจากลิงก์มีปัญหา แต่คุณสามารถเปลี่ยนการตั้งค่าอีเมลโดยไปที่ ตั้งค่า ของคุณ.

(ข้อผิดพลาด: %1)", "banned.subject": "คุณถูกแบนจาก %1 แล้ว", - "banned.text1": "ผู้ใช้ %1 ได้ถูกแบนจาก %2", - "banned.text2": "การแบนนี้จะใช้เวลาจนถึง %1", + "banned.text1": "ผู้ใช้ %1 ได้ถูกแบนจาก %2", + "banned.text2": "การแบนนี้มีผลจนถึง %1", "banned.text3": "นี่คือเหตุผลที่ทำไมคุณถึงถูกแบน", "closing": "ขอบคุณ!" } \ No newline at end of file diff --git a/public/language/th/error.json b/public/language/th/error.json index 607e91d450..b9ade6bfae 100644 --- a/public/language/th/error.json +++ b/public/language/th/error.json @@ -1,87 +1,87 @@ { "invalid-data": "ข้อมูลไม่ถูกต้อง", "invalid-json": "รูปแบบ JSON ไม่ถูกต้อง", - "wrong-parameter-type": "A value of type %3 was expected for property `%1`, but %2 was received instead", - "required-parameters-missing": "Required parameters were missing from this API call: %1", - "not-logged-in": "คุณยังไม่ได้ลงชื่อเข้าระบบ", + "wrong-parameter-type": "ต้องการข้อมูลประเภท %3 สำหรับค่า `%1` แต่ได้รับค่า %2 แทน", + "required-parameters-missing": "ขาดพารามิเตอร์ที่จำเป็นต่อการเรียก API นี้: %1", + "not-logged-in": "คุณยังไม่ได้เข้าสู่ระบบ", "account-locked": "บัญชีของคุณถูกระงับการใช้งานชั่วคราว", "search-requires-login": "\"ฟังก์ชั่นการค้นหา\" ต้องการบัญชีผู้ใช้ กรุณาเข้าสู่ระบบหรือสมัครสมาชิก", "goback": "กดย้อนกลับเพื่อกลับไปยังหน้าที่แล้ว", - "invalid-cid": "Category ID ไม่ถูกต้อง", - "invalid-tid": "Topic ID ไม่ถูกต้อง", - "invalid-pid": "Post ID ไม่ถูกต้อง", - "invalid-uid": "User ID ไม่ถูกต้อง", - "invalid-mid": "Invalid Chat Message ID", - "invalid-date": "A valid date must be provided", + "invalid-cid": "รหัสหมวดหมู่ไม่ถูกต้อง", + "invalid-tid": "รหัสกระทู้ไม่ถูกต้อง", + "invalid-pid": "รหัสโพสต์ไม่ถูกต้อง", + "invalid-uid": "รหัสผู้ใช้งานไม่ถูกต้อง", + "invalid-mid": "รหัสข้อความแชทไม่ถูกต้อง", + "invalid-date": "ต้องใส่วันที่ที่ถูกต้อง", "invalid-username": "ชื่อผู้ใช้ไม่ถูกต้อง", "invalid-email": "อีเมลไม่ถูกต้อง", - "invalid-fullname": "Invalid Fullname", - "invalid-location": "Invalid Location", - "invalid-birthday": "Invalid Birthday", - "invalid-title": "Invalid title", - "invalid-user-data": "User Data ไม่ถูกต้อง", + "invalid-fullname": "ชื่อเต็มไม่ถูกต้อง", + "invalid-location": "สถานที่ไม่ถูกต้อง", + "invalid-birthday": "วันเกิดไม่ถูกต้อง", + "invalid-title": "คำนำหน้าชื่อไม่ถูกต้อง", + "invalid-user-data": "ข้อมูลผู้ใช้งานไม่ถูกต้อง", "invalid-password": "รหัสผ่านไม่ถูกต้อง", - "invalid-login-credentials": "session login หมดอายุ", + "invalid-login-credentials": "เซสชันการเข้าสู้ระบบหมดอายุ", "invalid-username-or-password": "กรุณาระบุชื่อผู้ใช้และรหัสผ่าน", "invalid-search-term": "ข้อความค้นหาไม่ถูกต้อง", - "invalid-url": "Invalid URL", - "invalid-event": "Invalid event: %1", - "local-login-disabled": "Local login system has been disabled for non-privileged accounts.", - "csrf-invalid": "เราไม่สามารถนำท่านเข้าสู่ระบบได้ เหมือนกับว่าเซสชั่นหมดอายุแล้ว กรุณาลองใหม่อีกครั้ง", - "invalid-path": "Invalid path", - "folder-exists": "Folder exists", - "invalid-pagination-value": "หมายเลขหน้าไม่ถูกต้อง จำเป็นต้องเป็นตัวเลขอย่างน้อย %1 และอย่างมาก %2", - "username-taken": "ชื่อผู้ใช้นี้มีการใช้แล้ว", - "email-taken": "Email address is already taken.", - "email-nochange": "The email entered is the same as the email already on file.", - "email-invited": "Email was already invited", - "email-not-confirmed": "Posting in some categories or topics is enabled once your email is confirmed, please click here to send a confirmation email.", - "email-not-confirmed-chat": "คุณไม่สามารถแชทได้จนกว่าอีเมล์ของคุณจะได้รับการยืนยัน กรุณาคลิกที่นี่เพื่อยืนยันอีกมเมล์ของคุณ", - "email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You may not be able to post in some categories or chat until your email is confirmed.", - "no-email-to-confirm": "Your account does not have an email set. An email is necessary for account recovery, and may be necessary for chatting and posting in some categories. Please click here to enter an email.", - "user-doesnt-have-email": "User \"%1\" does not have an email set.", + "invalid-url": "URL ไม่ถูกต้อง", + "invalid-event": "อีเว้นต์ไม่ถูกต้อง: %1", + "local-login-disabled": "การเข้าสู่ระบบแบบโลคอลไม่เปิดสำหรับบัญชีธรรมดา", + "csrf-invalid": "เราไม่สามารถนำท่านเข้าสู่ระบบได้ น่าจะเพราะเซสชั่นหมดอายุแล้ว กรุณาลองใหม่อีกครั้ง", + "invalid-path": "พาทไม่ถูกต้อง", + "folder-exists": "มีโฟลเดอร์อยู่แล้ว", + "invalid-pagination-value": "ค่าสำหรับการแบ่งหน้าไม่ถูกต้อง จำเป็นต้องเป็นตัวเลขอย่างน้อย %1 และอย่างมาก %2", + "username-taken": "ชื่อผู้ใช้นี้ถูกใช้ไปแล้ว", + "email-taken": "ที่อยู่อีเมลถูกใช้ไปแล้ว", + "email-nochange": "อีเมลที่ป้อนเข้ามาซ้ำกับอีเมลที่จัดเก็บไว้อยู่แล้ว", + "email-invited": "อีเมลถูกเชิญอยู่ก่อนแล้ว", + "email-not-confirmed": "การโพสต์ลงบางหมวดหมู่หรือกระทู้จะทำได้เมื่ออีเมลได้รับการยืนยัน โปรดคลิกที่นี่เพื่อส่งอีเมลยืนยัน", + "email-not-confirmed-chat": "คุณไม่สามารถแชทได้จนกว่าอีเมล์ของคุณได้รับการยืนยัน กรุณาคลิกที่นี่เพื่อยืนยันอีกมเมล์ของคุณ", + "email-not-confirmed-email-sent": "อีเมลของคุณยังไม่ได้รับการยืนยัน โปรดตรวจสอบกล่องอินบ็อกซ์ของคุณสำหรับอีเมลยืนยัน คุณอาจไม่สามารถแชทหรือโพสต์ลงในบางหมวดหมู่จนกว่าอีเมลของคุณจะได้รับการยืนยัน", + "no-email-to-confirm": "บัญชีของคุณยังไม่ได้ตั้งค่าอีเมล อีเมลจำเป็นสำหรับการกู้บัญชี และอาจจำเป็นสำหรับการแชทและโพสต์ลงบางหมวดหมู่ โปรดคลิกที่นี่เพื่อใส่ค่าอีเมล", + "user-doesnt-have-email": "ผู้ใช้ \"%1\" ยังไม่ได้ตั้งค่าอีเมล", "email-confirm-failed": "เราไม่สามารถยืนยันอีเมลของคุณ ณ ขณะนี้ กรุณาลองใหม่อีกครั้งภายหลัง", - "confirm-email-already-sent": "อีเมล์ยืนยันตัวตนถูกส่งไปยังคุณเรียบร้อยแล้ว กรุณารอ %1 นาที(s) ก่อนการตัดสินใจส่งอีกครั้ง", - "confirm-email-expired": "Confirmation email expired", - "sendmail-not-found": "ไม่พบการประมวลผลสำหรับการส่งอีเมล์ กรุณาตรวจสอบให้แน่ใจว่าได้มีการติดตั้งโปรแกรมการประมวลผลแล้วโดยผู้ใช้ที่กำลังใช้ NodeBB", - "digest-not-enabled": "This user does not have digests enabled, or the system default is not configured to send digests", + "confirm-email-already-sent": "อีเมลยืนยันตัวตนถูกส่งไปให้คุณเรียบร้อยแล้ว กรุณารอ %1 นาที ก่อนที่จะส่งอีกครั้ง", + "confirm-email-expired": "อีเมลยืนยันหมดอายุแล้ว", + "sendmail-not-found": "ไม่พบโปรแกรมส่งอีเมล์ กรุณาตรวจสอบว่าติดตั้งโปรแกรมนี้แล้ว และสามารถเรียกใช้ได้โดยผู้ใช้ที่รัน NodeBB", + "digest-not-enabled": "ผู้ใช้รายนี้ไม่ได้เปิดใช้ สรุปเนื้อหา หรือระบบไม่ได้ตั้งค่าให้ส่งสรุปเนื้อหา", "username-too-short": "ชื่อบัญชีผู้ใช้ สั้นเกินไป", "username-too-long": "ชื่อบัญชีผู้ใช้ ยาวเกินไป", "password-too-long": "รหัสผ่านยาวเกินไป", - "reset-rate-limited": "Too many password reset requests (rate limited)", - "reset-same-password": "Please use a password that is different from your current one", - "user-banned": "ผู้ใช้ได้รับการแบน", - "user-banned-reason": "ขออภัย บัญชีผู้ใช้นี้ได้รับการแบน (เหตุผล : %1)", - "user-banned-reason-until": "ขออภัย บัญชีผู้ใช้นี้ได้รับการแบนจนถึง %1 (เหตุผล : %2)", - "user-too-new": "ขออภัย คุณจำเป็นต้องรอ %1 วินาที(s) ก่อนการสร้างกระทู้แรกของคุณ", - "blacklisted-ip": "ขออภัย IP Address ของคุณถูกแบนจากชุมชนนี้ หากคุณคิดว่านี่เป็นเออเร่อของระบบ กรุณาติดต่อผู้ดูแลระบบ", - "cant-blacklist-self-ip": "You can't blacklist your own IP", + "reset-rate-limited": "มีคำขอให้เปลี่ยนรหัสผ่านมากเกินไป (ถึงขีดจำกัด)", + "reset-same-password": "โปรดใช้รหัสผ่านที่แตกต่างจากรหัสปัจจุบัน", + "user-banned": "ผู้ใช้โดนแบน", + "user-banned-reason": "ขออภัย บัญชีผู้ใช้นี้ถูกแบนแล้ว (เหตุผล: %1)", + "user-banned-reason-until": "ขออภัย บัญชีผู้ใช้นี้ถูกแบนถึง %1 (เหตุผล: %2)", + "user-too-new": "ขออภัย คุณต้องรออีก %1 วินาที ก่อนการสร้างโพสต์แรกของคุณ", + "blacklisted-ip": "ขออภัย IP Address ของคุณถูกแบนจากชุมชนนี้ หากคุณคิดว่านี่เป็นข้อผิดพลาด กรุณาติดต่อผู้ดูแลระบบ", + "cant-blacklist-self-ip": "คุณไม่สามารถแบล็กลิสต์ IP ของคุณเองได้", "ban-expiry-missing": "กรุณาระบุวันสิ้นสุดสำหรับการแบนในครั้งนี้", - "no-category": "ยังไม่มี Category นี้", - "no-topic": "ยังไม่มี Topic นี้", - "no-post": "ยังไม่มี Post นี้", - "no-group": "ยังไม่มี Group นี้", + "no-category": "ยังไม่มีหมวดหมู่นี้", + "no-topic": "ยังไม่มีกระทู้นี้", + "no-post": "ยังไม่มีโพสต์นี้", + "no-group": "ยังไม่มีกลุ่มนี้", "no-user": "ยังไม่มีผู้ใช้งานนี้", "no-teaser": "ยังไม่มีทีเซอร์นี้", - "no-flag": "Flag does not exist", - "no-chat-room": "Chat room does not exist", + "no-flag": "ยังไม่มีการรายงานนี้", + "no-chat-room": "ยังไม่มีห้องแชทนี้", "no-privileges": "คุณมีสิทธิ์ไม่เพียงพอที่จะทำรายการนี้", - "category-disabled": "Category นี้ถูกปิดการใช้งานแล้ว", + "category-disabled": "หมวดหมู่นี้ถูกปิดการใช้งานแล้ว", "topic-locked": "กระทู้ถูกล็อก", - "post-edit-duration-expired": "คุณได้รับอนุญาตให้แก้ไขโพสต์ได้หลังจากโพสต์ไปแล้ว %1  วินาที (s)", - "post-edit-duration-expired-minutes": "คุณได้รับการอนุญาตให้แก้ไขโพสต์ได้หลังจากโพสต์ไปแล้ว %1 นาที (s)", - "post-edit-duration-expired-minutes-seconds": "คุณได้รับการอนุญาตให้แก้ไขโพสต์ได้หลังจากโพสต์ไปแล้ว %1 นาที(s) %2 วินาที(s)", - "post-edit-duration-expired-hours": "คุณได้รับการอนุญาตให้แก้ไขโพสต์ได้หลังจากโพสต์ไปแล้ว %1 ชั่วโมง(s)", - "post-edit-duration-expired-hours-minutes": "คุณได้รับการอนุญาตให้แก้ไขโพสต์ได้หลังจากโพสต์ไปแล้ว %1 ชั่วโมง(s) %2 นาที(s)", - "post-edit-duration-expired-days": "คุณได้รับการอนุญาตให้แก้ไขโพสต์ได้หลังจากโพสต์ไปแล้ว %1 วัน(s)", - "post-edit-duration-expired-days-hours": "คุณได้รับการอนุญาตให้แก้ไขโพสต์ได้หลังจากโพสต์ไปแล้ว %1 วัน(s) %2 ชั่วโมง(s)", - "post-delete-duration-expired": "คุณได้รับการอนุญาตให้ลบโพสต์ได้หลังจากโพสต์ไปแล้ว %1 วินาที(s)", - "post-delete-duration-expired-minutes": "คุณได้รับการอนุญาตให้ลบโพสต์ได้หลังจากโพสต์ไปแล้ว %1 นาที(s)", - "post-delete-duration-expired-minutes-seconds": "คุณได้รับการอนุญาตให้ลบโพสต์ได้หลังจากโพสต์ไปแล้ว %1 นาที(s) %2 วินาที(s)", - "post-delete-duration-expired-hours": "คุณได้รับการอนุญาตให้ลบโพสต์ได้หลังจากโพสต์ไปแล้ว %1 ชั่วโมง(s)", - "post-delete-duration-expired-hours-minutes": "คุณได้รับการอนุญาตให้ลบโพสต์ได้หลังจากโพสต์ไปแล้ว %1 ชั่วโมง(s) %2 นาที(s)", - "post-delete-duration-expired-days": "คุณได้รับการอนุญาตให้ลบโพสต์ได้หลังจากโพสต์ไปแล้ว %1 วัน(s)", - "post-delete-duration-expired-days-hours": "คุณได้รับการอนุญาตให้ลบโพสต์ได้หลังจากโพสต์ไปแล้ว %1 วัน(s) %2 ชั่วโมง(s)", + "post-edit-duration-expired": "คุณสามารถแก้ไขโพสต์ได้หลังจากโพสต์ไปแล้วไม่เกิน %1 วินาที", + "post-edit-duration-expired-minutes": "คุณสามารถแก้ไขโพสต์ได้หลังจากโพสต์ไปแล้วไม่เกิน %1 นาที", + "post-edit-duration-expired-minutes-seconds": "คุณสามารถแก้ไขโพสต์ได้หลังจากโพสต์ไปแล้วไม่เกิน %1 นาที %2 วินาที", + "post-edit-duration-expired-hours": "คุณสามารถแก้ไขโพสต์ได้หลังจากโพสต์ไปแล้วไม่เกิน %1 ชั่วโมง", + "post-edit-duration-expired-hours-minutes": "คุณสามารถแก้ไขโพสต์ได้หลังจากโพสต์ไปแล้วไม่เกิน %1 ชั่วโมง %2 นาที", + "post-edit-duration-expired-days": "คุณสามารถแก้ไขโพสต์ได้หลังจากโพสต์ไปแล้วไม่เกิน %1 วัน", + "post-edit-duration-expired-days-hours": "คุณสามารถแก้ไขโพสต์ได้หลังจากโพสต์ไปแล้วไม่เกิน %1 วัน %2 ชั่วโมง", + "post-delete-duration-expired": "คุณสามารถลบโพสต์ได้หลังจากโพสต์ไปแล้วไม่เกิน %1 วินาที", + "post-delete-duration-expired-minutes": "คุณสามารถลบโพสต์ได้หลังจากโพสต์ไปแล้วไม่เกิน %1 นาที", + "post-delete-duration-expired-minutes-seconds": "คุณสามารถลบโพสต์ได้หลังจากโพสต์ไปแล้วไม่เกิน %1 นาที %2 วินาที", + "post-delete-duration-expired-hours": "คุณสามารถลบโพสต์ได้หลังจากโพสต์ไปแล้วไม่เกิน %1 ชั่วโมง", + "post-delete-duration-expired-hours-minutes": "คุณสามารถลบโพสต์ได้หลังจากโพสต์ไปแล้วไม่เกิน %1 ชั่วโมง %2 นาที", + "post-delete-duration-expired-days": "คุณสามารถลบโพสต์ได้หลังจากโพสต์ไปแล้วไม่เกิน %1 วัน", + "post-delete-duration-expired-days-hours": "คุณสามารถลบโพสต์ได้หลังจากโพสต์ไปแล้วไม่เกิน %1 วัน %2 ชั่วโมง", "cant-delete-topic-has-reply": "คุณไม่สามารถลบกระทู้ได้หลังจากกระทู้ของคุณถูกตอบกลับ", "cant-delete-topic-has-replies": "คุณไม่สามารถลบกระทู้ได้หลังจากกระทู้มีจำนวนตอบกลับ %1", "content-too-short": "กรุณาโพสต์ข้อความให้ยาวขึ้น โพสต์ควรมีข้อความอย่างน้อย %1 ตัวอักษร(s)", @@ -90,44 +90,44 @@ "title-too-long": "กรุณากรอกชื่อให้สั้นลง ชื่อไม่สามารถยาวกว่า %1 ตัวอักษร(s)", "category-not-selected": "ไม่มีการเลือกหมวดหมู่", "too-many-posts": "คุณสามารถโพสต์ได้เพียงครั้งเดียวเท่านั้นในทุกๆ %1 วินาที(s) - โปรดรอสักครู่ก่อนการโพสต์อีกครั้ง", - "too-many-posts-newbie": "เนื่องด้วยการเป็นผู้ใช้งานใหม่ คุณสามารถโพสต์ได้เพียงครั้งเดียวเท่านั้นในทุกๆ %1 วินาที(s) จนกว่าคุณจะได้รับ %2 ชื่อเสียง - โปรดรอสักครู่ก่อนการโพสต์อีกครั้ง", - "too-many-posts-newbie-minutes": "As a new user, you can only post once every %1 minute(s) until you have earned %2 reputation - please wait before posting again", - "already-posting": "You are already posting", + "too-many-posts-newbie": "เนื่องด้วยการเป็นผู้ใช้งานใหม่ คุณสามารถโพสต์ได้เพียงครั้งเดียวเท่านั้นในทุกๆ %1 วินาที จนกว่าคุณจะได้รับ %2 ชื่อเสียง - โปรดรอสักครู่ก่อนการโพสต์อีกครั้ง", + "too-many-posts-newbie-minutes": "เนื่องด้วยการเป็นผู้ใช้งานใหม่ คุณสปรโามารถโพสต์ได้หนึ่งครั้งทุกๆ %1 นาทีจนกว่าคุณจะได้รับ %2 ชื่อเสียง - โปรดรอสักครู่ก่อนการโพสต์อีกครั้ง", + "already-posting": "คุณกำลังโพสต์อยู่แล้ว", "tag-too-short": "กรุณากรอกแท็กให้ยาวขึ้น แท็กควรมีข้อความอย่างน้อย %1 ตัวอักษร(s)", "tag-too-long": "กรุณากรอกแท็กให้สั้นลง แท็กไม่สามารถยาวกว่า %1 ตัวอักษร(s)", - "tag-not-allowed": "Tag not allowed", - "not-enough-tags": "จำนวนแท็กไม่พอ กระทู้ต้องมีอย่างน้อย %1 แท็ก(s)", - "too-many-tags": "แท็กเยอะเกินไป กระทู้ไม่สามารถมีแท็กมากกว่า %1 แท็ก(s)", - "cant-use-system-tag": "You can not use this system tag.", - "cant-remove-system-tag": "You can not remove this system tag.", + "tag-not-allowed": "ไม่อนุญาตแท็ก", + "not-enough-tags": "จำนวนแท็กไม่พอ กระทู้ต้องมีอย่างน้อย %1 แท็ก", + "too-many-tags": "แท็กเยอะเกินไป กระทู้ไม่สามารถมีแท็กมากกว่า %1 แท็ก", + "cant-use-system-tag": "คุณไม่สามารถใช้แท็กระบบอันนี้", + "cant-remove-system-tag": "คุณไม่สามารถลบแท็กระบบอันนี้", "still-uploading": "กรุณารอการอัพโหลดเพื่อเสร็จสิ้น", "file-too-big": "ขนาดไฟล์ที่ใหญ่ที่สุดที่ได้รับการอนุญาตคือ %1 kB - กรุณาอัพโหลดไฟล์ที่เล็กลง", "guest-upload-disabled": "การอัพโหลดของ Guest ถูกปิด", - "cors-error": "Unable to upload image due to misconfigured CORS", - "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.", - "upload-error-fallback": "Unable to upload image — %1", - "scheduling-to-past": "Please select a date in the future.", - "invalid-schedule-date": "Please enter a valid date and time.", - "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.", - "cant-merge-scheduled": "Scheduled topics cannot be merged.", - "cant-move-posts-to-scheduled": "Can't move posts to a scheduled topic.", - "cant-move-from-scheduled-to-existing": "Can't move posts from a scheduled topic to an existing topic.", + "cors-error": "ไม่สามารถอัพโหลดรูปได้เนื่องจากการตั้งค่า CORS ผิดพลาด", + "upload-ratelimit-reached": "คุณอัพโหลดไฟล์มากเกินในพร้อมกัน โปรดลองอีกครั้งภายหลัง", + "upload-error-fallback": "ไม่สามารถอัพโหลดรูปภาพ — %1", + "scheduling-to-past": "โปรดเลือกวันที่ในอนาคต", + "invalid-schedule-date": "โปรดใส่วันที่และเวลาที่ถูกต้อง", + "cant-pin-scheduled": "กระทู้ที่ตั้งเวลาไว้ไม่สามารถปักหมุดหรือยกเลิกปักหมุดได้", + "cant-merge-scheduled": "กระทู้ที่ตั้งเวลาไว้ไม่สามารถนำไปรวมได้", + "cant-move-posts-to-scheduled": "ไม่สามารถย้ายโพสต์ไปยังกระทู้ที่ตั้งเวลาไว้", + "cant-move-from-scheduled-to-existing": "ไม่สามารถย้ายโพสต์จากกระทู้ที่ตั้งเวลาไว้ไปยังกระทู้อื่น", "already-bookmarked": "คุณได้ติดบุ๊กมาร์คของโพสต์นี้แล้ว", "already-unbookmarked": "คุณได้ลบบุ๊กมาร์คของโพสต์นี้แล้ว", "cant-ban-other-admins": "คุณแบนแอดมินไม่ได้!!!", - "cant-mute-other-admins": "You can't mute other admins!", - "user-muted-for-hours": "You have been muted, you will be able to post in %1 hour(s)", - "user-muted-for-minutes": "You have been muted, you will be able to post in %1 minute(s)", - "cant-make-banned-users-admin": "You can't make banned users admin.", + "cant-mute-other-admins": "คุณไม่สามารถจำกัดการโพสต์แอดมินคนอื่น!", + "user-muted-for-hours": "คุณถูกจำกัดการโพสต์แล้ว คุณสามารถโพสต์ได้ในอีก %1 ชั่วโมง", + "user-muted-for-minutes": "คุณถูกจำกัดการโพสต์แล้ว คุณสามารถโพสต์ได้ในอีก %1 นาที", + "cant-make-banned-users-admin": "คุณไม่สามารถตั้งผู้ใช้ที่โดนแบนให้เป็นแอดมิน", "cant-remove-last-admin": "คุณเป็นแอดมินเพียงคนเดียว กรุณาเพิ่มผู้ใช้คนอื่นเป็นแอดมิน ก่อนการลบตัวเองออกจากแอดมิน", - "account-deletion-disabled": "Account deletion is disabled", + "account-deletion-disabled": "ไม่เปิดให้สามารถลบบัญชี", "cant-delete-admin": "ลบสิทธิพิเศษของแอดมินจากบัญชีผู้ใช้นี้ ก่อนทำการลบ", - "already-deleting": "Already deleting", - "invalid-image": "Invalid image", + "already-deleting": "กำลังลบอยู่แล้ว", + "invalid-image": "ภาพไม่ถูกต้อง", "invalid-image-type": "ประเภทรูปภาพไม่ถูกต้อง ประเภทที่ได้รับการอนุญาติคือ : %1", "invalid-image-extension": "นามสกุลรูปภาพไม่ถูกต้อง", "invalid-file-type": "ประเภทไฟล์ไม่ถูกต้อง ประเภทที่ได้รับการอนุญาติคือ : %1", - "invalid-image-dimensions": "Image dimensions are too big", + "invalid-image-dimensions": "ภาพขนาดใหญ่เกินไป", "group-name-too-short": "ชื่อกลุ่มสั้นเกินไป", "group-name-too-long": "ชื่อกลุ่มยาวเกินไป", "group-already-exists": "มีกลุ่มนี้อยู่แล้ว", @@ -137,10 +137,10 @@ "group-needs-owner": "กลุ่มนี้ต้องการเจ้าของอย่างน้อย 1 คน", "group-already-invited": "ผู้ใช้นี้ถูกเชิญแล้ว", "group-already-requested": "คำร้องขอเป็นสมาชิกถูกส่งแล้ว", - "group-join-disabled": "You are not able to join this group at this time", - "group-leave-disabled": "You are not able to leave this group at this time", - "group-user-not-pending": "User does not have a pending request to join this group.", - "gorup-user-not-invited": "User has not been invited to join this group.", + "group-join-disabled": "คุณไม่สามารถเข้าร่วมกลุ่มนี้ในขณะนี้", + "group-leave-disabled": "คุณไม่สามารถออกจากกลุ่มนี้ในขณะนี้", + "group-user-not-pending": "ผู้ไช้ไม่มีการร้องขอเพื่อเข้าร่วมกลุ่มนี้", + "gorup-user-not-invited": "ผู้ไช้ไม่ถูกเชิญให้เข้าร่วมกลุ่มนี้", "post-already-deleted": "โพสต์นี้ได้ถูกลบไปแล้ว", "post-already-restored": "โพสต์นี้ถูกกู้คืนเรียบร้อยแล้ว", "topic-already-deleted": "กระทู้นี้ถูกลบไปแล้ว", @@ -159,75 +159,75 @@ "chat-message-too-long": "ข้อความแชทไม่สามารถยาวเกิน %1 ตัวอักษรได้", "cant-edit-chat-message": "คุณไม่ได้รับอนุญาติให้แก้ไขข้อความ", "cant-delete-chat-message": "คุณไม่ได้รับอนุญาตให้ลบข้อความ", - "chat-edit-duration-expired": "You are only allowed to edit chat messages for %1 second(s) after posting", - "chat-delete-duration-expired": "You are only allowed to delete chat messages for %1 second(s) after posting", - "chat-deleted-already": "This chat message has already been deleted.", - "chat-restored-already": "This chat message has already been restored.", - "chat-room-does-not-exist": "Chat room does not exist.", - "cant-add-users-to-chat-room": "Can't add users to chat room.", - "cant-remove-users-from-chat-room": "Can't remove users from chat room.", - "chat-room-name-too-long": "Chat room name too long. Names can't be longer than %1 characters.", + "chat-edit-duration-expired": "คุณสามารถแก้ไขข้อความแชทได้ภายใน %1 วินาทีหลังการโพสต์", + "chat-delete-duration-expired": "คุณสามารถลบข้อความแชทได้ภายใน %1 วินาทีหลังการโพสต์", + "chat-deleted-already": "ข้อความแชทนี้ถูกลบแล้ว", + "chat-restored-already": "ข้อความแชทนี้ถูกกู้กลับมาแล้ว", + "chat-room-does-not-exist": "ไม่มีห้องแชทนี้", + "cant-add-users-to-chat-room": "ไม่สามารถเพิ่มผู้ใช้งานลงในห้องแชท", + "cant-remove-users-from-chat-room": "ไม่สามารถลบผู้ใช้งานจากห้องแชท", + "chat-room-name-too-long": "ชื่อห้องแชทยาวเกินไป ต้องยาวไม่เกิน %1 ตัวอักษร", "already-voting-for-this-post": "คุณได้โหวตโพสต์นี้แล้ว", "reputation-system-disabled": "ระบบชื่อเสียงถูกปิดใช้งาน", "downvoting-disabled": "\"การโหวตลง\" ถูกปิดใช้งาน", - "not-enough-reputation-to-chat": "You need %1 reputation to chat", - "not-enough-reputation-to-upvote": "You need %1 reputation to upvote", - "not-enough-reputation-to-downvote": "You need %1 reputation to downvote", - "not-enough-reputation-to-post-links": "You need %1 reputation to post links", - "not-enough-reputation-to-flag": "You need %1 reputation to flag this post", - "not-enough-reputation-min-rep-website": "You need %1 reputation to add a website", - "not-enough-reputation-min-rep-aboutme": "You need %1 reputation to add an about me", - "not-enough-reputation-min-rep-signature": "You need %1 reputation to add a signature", - "not-enough-reputation-min-rep-profile-picture": "You need %1 reputation to add a profile picture", - "not-enough-reputation-min-rep-cover-picture": "You need %1 reputation to add a cover picture", - "post-already-flagged": "You have already flagged this post", - "user-already-flagged": "You have already flagged this user", - "post-flagged-too-many-times": "This post has been flagged by others already", - "user-flagged-too-many-times": "This user has been flagged by others already", - "too-many-post-flags-per-day": "You can only flag %1 post(s) per day", - "too-many-user-flags-per-day": "You can only flag %1 user(s) per day", - "cant-flag-privileged": "You are not allowed to flag the profiles or content of privileged users (moderators/global moderators/admins)", - "cant-locate-flag-report": "Cannot locate flag report", - "self-vote": "You cannot vote on your own post", - "too-many-upvotes-today": "You can only upvote %1 times a day", - "too-many-upvotes-today-user": "You can only upvote a user %1 times a day", - "too-many-downvotes-today": "You can only downvote %1 times a day", - "too-many-downvotes-today-user": "You can only downvote a user %1 times a day", - "reload-failed": "NodeBB encountered a problem while reloading: \"%1\". NodeBB will continue to serve the existing client-side assets, although you should undo what you did just prior to reloading.", + "not-enough-reputation-to-chat": "คุณต้องมีชื่อเสียง %1 เพื่อแชท", + "not-enough-reputation-to-upvote": "คุณต้องมีชื่อเสียง %1 เพื่อโหวดขึ้น", + "not-enough-reputation-to-downvote": "คุณต้องมีชื่อเสียง %1 เพื่อโหวดลง", + "not-enough-reputation-to-post-links": "คุณต้องมีชื่อเสียง %1 เพื่อแปะลิงก์", + "not-enough-reputation-to-flag": "คุณต้องมีชื่อเสียง %1 เพื่อรายงานโพสต์นี้", + "not-enough-reputation-min-rep-website": "คุณต้องมีชื่อเสียง %1 เพื่อเพิ่มเว็บไซต์", + "not-enough-reputation-min-rep-aboutme": "คุณต้องมีชื่อเสียง %1 เพื่อเพิ่มข้อมูลเกี่ยวกับฉัน", + "not-enough-reputation-min-rep-signature": "คุณต้องมีชื่อเสียง %1 เพื่อเพิ่มลายเซ็น", + "not-enough-reputation-min-rep-profile-picture": "คุณต้องมีชื่อเสียง %1 เพื่อเพิ่มภาพโปรไฟล์", + "not-enough-reputation-min-rep-cover-picture": "คุณต้องมีชื่อเสียง %1 เพื่อเพิ่มภาพหน้าปก", + "post-already-flagged": "คุณรายงานโพสต์นี้แล้ว", + "user-already-flagged": "คุณรายงานผู้ใช้คนนี้แล้ว", + "post-flagged-too-many-times": "โพสต์นี้ถูกรายงานโดยผู้อื่นแล้ว", + "user-flagged-too-many-times": "ผู้ใช้งานนี้ถูกรายงานโดยผู้อื่นแล้ว", + "too-many-post-flags-per-day": "คุณสามารถรายงานได้ %1 โพสต์ต่อวัน", + "too-many-user-flags-per-day": "คุณสามารถรายงานได้ %1 ผู้ใช้งานต่อวัน", + "cant-flag-privileged": "คุณไม่อนุญาตให้รายงานโปรไฟล์หรือเนื้อหาจากผู้ใช้งานที่ได้สิทธิ์พิเศษ (moderators/global moderators/admins)", + "cant-locate-flag-report": "ไม่พบข้อมูลการรายงาน", + "self-vote": "คุณไม่สามารถโหวดโพสต์ของคุณเอง", + "too-many-upvotes-today": "คุณสามารถโหวดขึ้นได้ %1 ครั้งต่อวัน", + "too-many-upvotes-today-user": "คุณสามารถโหวดผู้ใช้งานขึ้นได้ %1 ครั้งต่อวัน", + "too-many-downvotes-today": "คุณสามารถโหวดลงได้ %1 ครั้งต่อวัน", + "too-many-downvotes-today-user": "คุณสามารถโหวดผู้ใช้งานลงได้ %1 ครั้งต่อวัน", + "reload-failed": "NodeBB พบปัญหาในขณะที่กำลังโหลด: \"%1\" NodeBB จะยังคงส่งข้อมูลไปยัง asset ฝั่งผู้ใช้ที่ยังคงอยู่ แต่คุณควรย้อนกลับสิ่งที่คุณกำลังทำก่อนโหลดหน้าใหม่", "registration-error": "การสมัครสมาชิกผิดพลาด", "parse-error": "มีบางอย่างผิดพลาดขณะรอการตอบกลับจากเซิร์ฟเวอร์", "wrong-login-type-email": "กรุณาใช้อีเมล์ของคุณในการเข้าสู่ระบบ", "wrong-login-type-username": "กรุณาใช้ชื่อผู้ใช้ของคุณในการเข้าสู่ระบบ", - "sso-registration-disabled": "Registration has been disabled for %1 accounts, please register with an email address first", - "sso-multiple-association": "You cannot associate multiple accounts from this service to your NodeBB account. Please dissociate your existing account and try again.", - "invite-maximum-met": "คุณได้ทำการเชิญผู้คนจำนวนมากที่สุด (%1 out of %2).", + "sso-registration-disabled": "การสมัครสมาชิกไม่เปิดใช้งานสำหรับบัญชี %1 โปรสมัครด้วยที่อยู่อีเมลก่อน", + "sso-multiple-association": "คุณไม่สามารถเชื่อมฃหลายบัญชีจากบริการนี้มายังบัญชี NodeBB ของคุณ โปรดยกเลิกการเชื่อมที่มีอยู่แล้วและลองอีกครั้ง", + "invite-maximum-met": "คุณได้ทำการเชิญผู้คนสูงสุดเท่าที่ทำได้ (%1 จาก %2)", "no-session-found": "ไม่พบการเข้าสู่ระบบ", "not-in-room": "ผู้ใช้ไม่อยู่ในห้อง", "cant-kick-self": "คุณไม่สามารถเตะตัวเองออกจากกลุ่มได้", "no-users-selected": "ไม่มีผู้ใช้ที่เลือก", - "no-groups-selected": "No group(s) selected", + "no-groups-selected": "ไม่มีกลุ่มที่เลือก", "invalid-home-page-route": "เส้นทางไปหน้าแรกผิดพลาด", - "invalid-session": "Invalid Session", - "invalid-session-text": "It looks like your login session is no longer active. Please refresh this page.", - "session-mismatch": "Session Mismatch", - "session-mismatch-text": "It looks like your login session no longer matches with the server. Please refresh this page.", - "no-topics-selected": "No topics selected!", - "cant-move-to-same-topic": "Can't move post to same topic!", - "cant-move-topic-to-same-category": "Can't move topic to the same category!", - "cannot-block-self": "You cannot block yourself!", - "cannot-block-privileged": "You cannot block administrators or global moderators", - "cannot-block-guest": "Guest are not able to block other users", - "already-blocked": "This user is already blocked", - "already-unblocked": "This user is already unblocked", - "no-connection": "There seems to be a problem with your internet connection", - "socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later", - "invalid-plugin-id": "Invalid plugin ID", - "plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP", - "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", - "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", - "topic-event-unrecognized": "Topic event '%1' unrecognized", - "cant-set-child-as-parent": "Can't set child as parent category", - "cant-set-self-as-parent": "Can't set self as parent category", + "invalid-session": "เซสชันผิดพลาด", + "invalid-session-text": "ดูเหมือนเซสชันการเข้าสู่ระบบไม่มีแล้ว โปรดโหลดหน้านี้อีกครั้ง", + "session-mismatch": "เซสชันไม่ตรง", + "session-mismatch-text": "ดูเหมือนเซสชันการเข้าสู่ระบบไม่ตรงกับที่เซิร์ฟเวอร์ โปรดโหลดหน้านี้อีกครั้ง", + "no-topics-selected": "ไม่มีกระทู้ที่เลือก!", + "cant-move-to-same-topic": "ไม่สามารถย้ายไปกระทู้เดิม!", + "cant-move-topic-to-same-category": "ไม่สามารถย้ายกระทู้ไปหมวดหมู่เดิม!", + "cannot-block-self": "คุณไม่สามารถบล็อกตัวเองได้!", + "cannot-block-privileged": "คุณไม่สามารถบล็อกผู้ดูแลระบบหรือ moderator ส่วนกลาง", + "cannot-block-guest": "ผู้มาเยือนไม่สามารถบล็อกผู้ใช้งานอื่น", + "already-blocked": "ผู้ใช้คนนี้ถูกบล็อกอยู่แล้ว", + "already-unblocked": "ผู้ใช้คนนี้ถูกปลดบล็อกอยู่แล้ว", + "no-connection": "ดูเหมือนมีปัญหาการเชื่อมต่ออินเทอร์เน็ตของคุณ", + "socket-reconnect-failed": "ไม่สามารถติดต่อกับเซิร์ฟเวอร์ในขณะนี้ คลิกที่นี่เพื่อลองใหม่ หรือลองอีกครั้งภายหลัง", + "invalid-plugin-id": "รหัสปลั๊กอินไม่ถูกต้อง", + "plugin-not-whitelisted": "ไม่สามารถติดตั้งปลั๊กอิน – เฉพาะปลั๊กอินที่ได้รับอนุญาตจาก NodeBB Package Manager ถึงจะติดตั้งผ่านแผงควบคุมผู้ดูแลระบบได้", + "plugins-set-in-configuration": "คุณไม่สามารถเปลี่ยนสถานะของปลั๊กอินเนื่องจากถูกกำหนดตอนรัน (ไฟล์ config.json, ตัวแปร environmental หรือระบุตอนสั่งในบรรทัดคำสั่ง) โปรดปรับที่การตั้งค่าแทน", + "theme-not-set-in-configuration": "เมื่อกำหนดปลั๊กอันที่กำลังทำงานในส่วนตั้งค่า การเปลี่ยนธีมต้องเพิ่มทีมในรายการปลั๊กอินที่กำลังใช้งานก่อนที่จะเปลี่ยนในแผงควบคุมผู้ดูแล", + "topic-event-unrecognized": "ไม่รู้จักอีเวนต์กระทู้ '%1'", + "cant-set-child-as-parent": "ไม่สามารถตั้งหมวดหมู่ย่อยให้เป็นหมวดหมู่หลักได้", + "cant-set-self-as-parent": "ไม่สามารถตั้งหมวดนี้ให้เป็นหมวดหมู่หลักได้", "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body", "api.400": "Something was wrong with the request payload you passed in.", "api.401": "A valid login session was not found. Please log in and try again.", diff --git a/public/language/th/flags.json b/public/language/th/flags.json index 1fdaf3d15d..9813a063eb 100644 --- a/public/language/th/flags.json +++ b/public/language/th/flags.json @@ -1,65 +1,65 @@ { "state": "สถานะ", - "report": "Report", - "reports": "Reports", - "first-reported": "First Reported", - "no-flags": "ไชโย ไม่เจอธงใดๆเลย", - "x-flags-found": "%1 flag(s) found.", + "report": "รายงาน", + "reports": "รายงาน", + "first-reported": "ถูกรายงานครั้งแรก", + "no-flags": "ไชโย ไม่พบการรายงานเลย", + "x-flags-found": "พบการรายงาน %1 รายการ", "assignee": "ผู้ได้รับมอบหมาย", "update": "อัพเดท", - "updated": "ได้รับการอัพเดท", - "resolved": "Resolved", - "report-added": "Added", - "report-rescinded": "Rescinded", - "target-purged": "เนื้อหาที่ธงนี้อ้างถึงถูกลบออกและไม่มีอยู่ในระบบอีกต่อไป", - "target-aboutme-empty": "This user has no "About Me" set.", + "updated": "อัพเดทแล้ว", + "resolved": "แก้ปัญหาแล้ว", + "report-added": "ถูกเพิ่มแล้ว", + "report-rescinded": "ยกเลิกแล้ว", + "target-purged": "เนื้อหาที่ถูกรายงาน ถูกลบออกและไม่มีอยู่ในระบบอีกต่อไป", + "target-aboutme-empty": "ผู้ใช้งานคนนี้ไม่ได้ใส่ข้อมูล "เกี่ยวกับฉัน"", - "graph-label": "Daily Flags", + "graph-label": "การรายงานรายวัน", "quick-filters": "ฟิลเตอร์แบบด่วน", - "filter-active": "ไม่มีฟิลเตอร์ใดๆในรายการปักธง", + "filter-active": "รายการมีฟิลเตอร์หนึ่งหรือหลายตัวทำงาน", "filter-reset": "ลบฟิลเตอร์ออก", "filters": "ตัวเลือกฟิลเตอร์", - "filter-reporterId": "Reporter", - "filter-targetUid": "Reportee", - "filter-type": "ประเภทการปักธง", + "filter-reporterId": "ผู้รายงาน", + "filter-targetUid": "ผู้ถูกรายงาน", + "filter-type": "ประเภทรายงาน", "filter-type-all": "เนื้อหาทั้งหมด", "filter-type-post": "โพสต์", - "filter-type-user": "User", + "filter-type-user": "ผู้ใช้งาน", "filter-state": "สถานะ", - "filter-assignee": "Assignee", + "filter-assignee": "ผู้ได้รับมอบหมาย", "filter-cid": "หมวดหมู่", "filter-quick-mine": "ถูกมอบหมายให้ฉัน", "filter-cid-all": "ทุกหมวดหมู่", "apply-filters": "ใช้งานฟิลเตอร์", - "more-filters": "More Filters", - "fewer-filters": "Fewer Filters", + "more-filters": "เพิ่มเติมฟิลเตอร์", + "fewer-filters": "ลดฟิลเตอร์", - "quick-actions": "Quick Actions", - "flagged-user": "ผู้ใช้ที่ถูกปักธง", + "quick-actions": "จัดการอย่างเร็ว", + "flagged-user": "ผู้ใช้ที่ถูกรายงาน", "view-profile": "ดูโปรไฟล์", "start-new-chat": "เริ่มแชทใหม่", - "go-to-target": "ดูเป้าหมายการปักธง", - "assign-to-me": "Assign To Me", - "delete-post": "Delete Post", - "purge-post": "Purge Post", - "restore-post": "Restore Post", - "delete": "Delete Flag", + "go-to-target": "ดูเป้าหมายของรายงาน", + "assign-to-me": "มอบหมายให้ฉัน", + "delete-post": "ลบโพสต์", + "purge-post": "ล้างโพสต์", + "restore-post": "กู้คืนโพสต์", + "delete": "ลบการรายงาน", "user-view": "ดูโปรไฟล์", "user-edit": "แก้ไขโปรไฟล์", - "notes": "โน๊ตปักธง", + "notes": "โน๊ตของรายงาน", "add-note": "เพิ่มโน้ต", - "edit-note": "Edit Note", + "edit-note": "แก้ไขโน้ต", "no-notes": "ไม่มีโน้ตที่แชร์", - "delete-note-confirm": "Are you sure you want to delete this flag note?", - "delete-flag-confirm": "Are you sure you want to delete this flag?", + "delete-note-confirm": "คุณแน่ใจว่าต้องการลบโน้ตของรายการอันนี้?", + "delete-flag-confirm": "คุณแน่ใจว่าต้องการลบการรายงานอันนี้?", "note-added": "โน้ตถูกเพิ่มแล้ว", - "note-deleted": "Note Deleted", - "flag-deleted": "Flag Deleted", + "note-deleted": "โน้ตถูกลบแล้ว", + "flag-deleted": "การรายงานถูกลบแล้ว", - "history": "Account & Flag History", - "no-history": "ไม่มีประวัติปักธง", + "history": "บัญชี และ ประวัติการรายงาน", + "no-history": "ไม่มีประวัติการรายงาน", "state-all": "สถานะทั้งหมด", "state-open": "เพิ่มใหม่/เปิด", @@ -68,28 +68,28 @@ "state-rejected": "ถูกปฏิเสธ", "no-assignee": "ไม่ได้รับการมอบหมาย", - "sort": "Sort by", - "sort-newest": "Newest first", - "sort-oldest": "Oldest first", - "sort-reports": "Most reports", - "sort-all": "All flag types...", - "sort-posts-only": "Posts only...", - "sort-downvotes": "Most downvotes", - "sort-upvotes": "Most upvotes", - "sort-replies": "Most replies", + "sort": "เรียงตาม", + "sort-newest": "เริ่มจากล่าสุดก่อน", + "sort-oldest": "เริ่มจากเก่าสุดก่อน", + "sort-reports": "รายงานมากที่สุด", + "sort-all": "ประเภทของรายงานทั้งหมด...", + "sort-posts-only": "เฉพาะโพสต์...", + "sort-downvotes": "โหวดลงมากสุด", + "sort-upvotes": "โหวดขึ้นมากสุด", + "sort-replies": "ตอบกลับมากสุด", - "modal-title": "Report Content", - "modal-body": "กรุณาระเหตุผลสำหรับการปักธง %1 %2 สำหรับการรีวิว หรือไม่ก็ใช้หนึ่งในปุ่มกดรายงานด่วนถ้าเป็นไปได้", + "modal-title": "เนื้อหาที่รายงาน", + "modal-body": "กรุณาระบุเหตุผลสำหรับการรายงาน %1 %2 เพื่อใช้พิจารณา หรือไม่ก็กดปุ่มรายงานทันที่ถ้าใช้ได้", "modal-reason-spam": "สแปม", "modal-reason-offensive": "น่ารังเกียจ", "modal-reason-other": "อื่น ๆ (ระบุด้านล่าง)", - "modal-reason-custom": "เหตุผลว่าทำไมถึงรายงานเนื้อหานี้...", + "modal-reason-custom": "เหตุผลที่รายงานเนื้อหานี้...", "modal-submit": "ส่งรายงาน", - "modal-submit-success": "เนื้อหาถูกรายงานตามความเหมาะสมแล้ว", + "modal-submit-success": "เนื้อหาถูกรายงานตามเพื่อรอตรวจสอบแล้ว", - "bulk-actions": "Bulk Actions", - "bulk-resolve": "Resolve Flag(s)", - "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", - "auto-flagged": "[Auto Flagged] Received %1 downvotes." + "bulk-actions": "จัดการทีละมากๆ", + "bulk-resolve": "แก้ปัญหารายงาน", + "bulk-success": "รายงาน %1 อันถูกอัพเดท", + "flagged-timeago": "ถูกรายงาน ", + "auto-flagged": "[รายงานอัตโนมัติ] ถูกโหวดลง %1 ครั้ง" } \ No newline at end of file diff --git a/public/language/th/global.json b/public/language/th/global.json index 50eef94538..f5aac99b63 100644 --- a/public/language/th/global.json +++ b/public/language/th/global.json @@ -4,13 +4,13 @@ "buttons.close": "ปิด", "403.title": "คุณถูกปฏิเสธการเข้าใช้", "403.message": "ดูเหมือนว่าคุณจะได้รับการสกัดกั้นในหน้าเว็บที่คุณไม่สามารถเข้าถึงได้", - "403.login": "Perhaps you should try logging in?", + "403.login": "คุณควรจะ ลองเข้าสู่ระบบ?", "404.title": "ไม่พบ", - "404.message": "You seem to have stumbled upon a page that does not exist.
Return to the home page.
", + "404.message": "ดูเหมือนว่าคุณจะเข้ามายังหน้าที่ไม่มีอยู่
กลับไปที่ หน้าแรก
", "500.title": "ระบบภายในเกิดข้อผิดพลาด", "500.message": "อุ่ย! มีสิ่งที่ไม่ถูกต้องเกิดขึ้น!", "400.title": "คำร้องขอที่เลวร้าย", - "400.message": "It looks like this link is malformed, please double-check and try again.
Return to the home page.
", + "400.message": "ดูเหมือนว่าลิงก์นี้ไม่ถูกต้อง โปรดตรวจสอบและลองอีกครั้ง
กลับไปที่ หน้าแรก
", "register": "ลงทะเบียน", "login": "เข้าสู่ระบบ", "please-log-in": "กรุณาเข้าสู่ระบบ", @@ -20,75 +20,75 @@ "you-have-successfully-logged-in": "คุณได้เข้าสู่ระบบแล้ว", "save-changes": "บันทึกการเปลี่ยนแปลง", "save": "บันทึก", - "create": "Create", - "cancel": "Cancel", + "create": "สร้าง", + "cancel": "ยกเลิก", "close": "ปิด", "pagination": "การแบ่งหน้า", - "pagination.previouspage": "Previous Page", - "pagination.nextpage": "Next Page", - "pagination.firstpage": "First Page", - "pagination.lastpage": "Last Page", + "pagination.previouspage": "หน้าก่อน", + "pagination.nextpage": "หน้าถัดไป", + "pagination.firstpage": "หน้าแรก", + "pagination.lastpage": "หน้าสุดท้าย", "pagination.out-of": "%1 จาก %2", - "pagination.enter-index": "Go to post index", - "pagination.go-to-page": "Go to page", - "pagination.page-x": "Page %1", - "header.brand-logo": "Brand Logo", + "pagination.enter-index": "ไปที่สารบัญของโพสต์", + "pagination.go-to-page": "ไปที่หน้า", + "pagination.page-x": "หน้า %1", + "header.brand-logo": "โลโก้แบรนด์", "header.admin": "ผู้ดูแลระบบ", "header.categories": "หมวดหมู่", "header.recent": "ล่าสุด", "header.unread": "ไม่ได้อ่าน", "header.tags": "แท็ก", "header.popular": "ฮิต", - "header.top": "Top", + "header.top": "อันดับสูงสุด", "header.users": "ผู้ใช้", "header.groups": "กลุ่ม", "header.chats": "สนทนา", "header.notifications": "แจ้งเตือน", "header.search": "ค้นหา", "header.profile": "รายละเอียด", - "header.account": "Account", + "header.account": "บัญชี", "header.navigation": "เมนูนำทาง", - "header.manage": "Manage", - "header.drafts": "Drafts", + "header.manage": "จัดการ", + "header.drafts": "ร่างข้อความ", "notifications.loading": "กำลังโหลดข้อแจ้งเตือน", "chats.loading": "กำลังโหลดหัวข้อสนทนา", - "drafts.loading": "Loading Drafts", + "drafts.loading": "กำลังโหลดร่างข้อความ", "motd.welcome": "ยินดีต้อนรับสู่ NodeBB แพลตฟอร์มการสนทนาแห่งอนาคต", "alert.success": "สำเร็จ", "alert.error": "ผิดพลาด", - "alert.warning": "Warning", - "alert.info": "Info", - "alert.banned": "เเบน", - "alert.banned.message": "You have just been banned, your access is now restricted.", - "alert.unbanned": "Unbanned", - "alert.unbanned.message": "Your ban has been lifted.", + "alert.warning": "คำเตือน", + "alert.info": "ข้อมูล", + "alert.banned": "ถูกแบน", + "alert.banned.message": "คุณถูกแบนแล้ว การเข้าถึงของคุณถูกจำกัด", + "alert.unbanned": "ถูกปลดแบน", + "alert.unbanned.message": "การแบนของคุณถูกยกเลิกแล้ว", "alert.unfollow": "คุณได้ยกเลิกติดตาม %1 !", "alert.follow": "คุณกำลังติดตาม %1 !", "users": "ผู้ใช้", "topics": "กระทู้", - "posts": "กระทู้", - "x-posts": "%1 posts", - "x-topics": "%1 topics", - "x-reputation": "%1 reputation", + "posts": "โพสต์", + "x-posts": "%1 โพสต์", + "x-topics": "%1 กระทู้", + "x-reputation": "ชื่อเสียง %1", "best": "ดีที่สุด", - "controversial": "Controversial", + "controversial": "มีข้อโต้แย้ง", "votes": "โหวต", - "x-votes": "%1 votes", - "voters": "Voters", + "x-votes": "%1 โหวด", + "voters": "ผู้โหวด", "upvoters": "ผู้ที่โหวดขึ้น", "upvoted": "โหวตแล้ว", "downvoters": "ผู้ที่โหวตลง", "downvoted": "โหวตลง", - "views": "ดู", - "posters": "Posters", + "views": "ยอดดู", + "posters": "ผู้โพสต์", "reputation": "ชื่อเสียง", - "lastpost": "Last post", - "firstpost": "First post", - "about": "About", + "lastpost": "โพสต์สุดท้าย", + "firstpost": "โพสต์แรก", + "about": "เกี่ยวกับ", "read-more": "อ่านต่อ", "more": "เพิ่มเติม", - "none": "None", - "posted-ago-by-guest": "โพสต์ %1 โดย Guest", + "none": "ไม่มี", + "posted-ago-by-guest": "โพสต์ %1 โดยแขกผู้มาเยือน", "posted-ago-by": "โพสต์ %1 โดย %2", "posted-ago": "โพสต์ %1", "posted-in": "โพสต์ใน %1", @@ -96,15 +96,15 @@ "posted-in-ago": "โพสต์ใน %1 %2", "posted-in-ago-by": "โพสต์ใน %1 %2 โดย %3", "user-posted-ago": "%1 โพสต์ %2", - "guest-posted-ago": "Guest โพสต์ %1", + "guest-posted-ago": "ผู้มาเยือนโพสต์ %1", "last-edited-by": "แก้ไขล่าสุดโดย %1", - "edited-timestamp": "Edited %1", + "edited-timestamp": "แก้ไข %1", "norecentposts": "ไม่มีกระทู้ล่าสุด", "norecenttopics": "ไม่มีกระทู้ล่าสุด", "recentposts": "กระทู้ล่าสุด", "recentips": "IP ที่ใช้เข้าสู่ระบบล่าสุด", "moderator-tools": "เครื่องมือผู้ดูแลระบบ", - "status": "Status", + "status": "สถานะ", "online": "ออนไลน์", "away": "ไม่อยู่", "dnd": "ห้ามรบกวน", @@ -114,9 +114,9 @@ "language": "ภาษา", "guest": "แขก", "guests": "แขก", - "former-user": "A Former User", - "system-user": "System", - "unknown-user": "Unknown user", + "former-user": "อดีตผู้ใช้งาน", + "system-user": "ระบบ", + "unknown-user": "ผู้ใช้งานที่ไม่รู้จัก", "updated.title": "ฟอรั่มที่ถูกอัพเดทแล้ว", "updated.message": "ฟอรั่มนี้เพิ่งได้รับการอัพเดทให้เป็นเวอร์ชั่นล่าสุด คลิกที่นี่เพื่อรีเฟรชหน้าเพจ", "privacy": "ความเป็นส่วนตัว", @@ -127,9 +127,9 @@ "sessions": "ข้อมูลการเข้าสู่ระบบ", "ip-address": "ไอพีแอดเดรส", "enter-page-number": "กรอกหมายเลขหน้า", - "upload-file": "อัพโหลดไฟล์", - "upload": "อัพโหลด", - "uploads": "Uploads", + "upload-file": "อัปโหลดไฟล์", + "upload": "อัปโหลด", + "uploads": "อัปโหลด", "allowed-file-types": "ประเภทไฟล์ที่ได้รับการอนุญาติคือ %1", "unsaved-changes": "การเปลี่ยนแปลงของคุณจะไม่ได้รับการบันทึก คุณแน่ใจหรือว่าต้องการออกจากที่นี่?", "reconnecting-message": "เหมือนกับว่าการเชื่อมต่อของคุณเพื่อไปยัง %1 นั้นขาดหาย กรุณารอสักครู่ เรากำลังพยายามเชื่อมต่อใหม่", @@ -140,12 +140,12 @@ "edited": "ถูกแก้ไขแล้ว", "disabled": "ปิด", "select": "เลือก", - "selected": "Selected", - "copied": "Copied", - "user-search-prompt": "Type something here to find users...", - "hidden": "Hidden", - "sort": "Sort", - "actions": "Actions", - "rss-feed": "RSS Feed", - "skip-to-content": "Skip to content" + "selected": "ถูกเลือกแล้ว", + "copied": "คัดลอกแล้ว", + "user-search-prompt": "พิมพ์ที่นี่เพื่อค้นหาผู้ใช้งาน...", + "hidden": "ถูกซ่อนไว้", + "sort": "เรียงลำดับ", + "actions": "จัดการ", + "rss-feed": "ฟีด RSS", + "skip-to-content": "ข้ามไปยังเนื้อหา" } \ No newline at end of file diff --git a/public/language/th/groups.json b/public/language/th/groups.json index 1fc0ff13e0..4b32fe99cd 100644 --- a/public/language/th/groups.json +++ b/public/language/th/groups.json @@ -1,7 +1,7 @@ { - "all-groups": "All groups", + "all-groups": "กลุ่มทั้งหมด", "groups": "กลุ่ม", - "members": "Members", + "members": "สมาชิก", "view-group": "ดูกลุ่ม", "owner": "เจ้าของกลุ่ม", "new-group": "สร้างกลุ่มใหม่", @@ -24,24 +24,24 @@ "details.pending": "สมาชิกที่กำลังรอการตอบรับ", "details.invited": "สมาชิกที่ได้รับเชิญ", "details.has-no-posts": "กลุ่มนี้ยังไม่มีโพสต์จากสมาชิก", - "details.latest-posts": "โพสล่าสุด", + "details.latest-posts": "โพสต์ล่าสุด", "details.private": "ส่วนตัว", "details.disableJoinRequests": "ปิดคำขอ", - "details.disableLeave": "Disallow users from leaving the group", + "details.disableLeave": "ไม่อนุญาตให้ผู้ใช้งานออกจากกลุ่ม", "details.grant": "ให้ / ยกเลิกการเป็นเจ้าของ", "details.kick": "เตะออก", "details.kick-confirm": "คุณแน่ใจใช่ไหมว่าต้องการลบสมาชิกคนนี้ออกจากกลุ่ม?", - "details.add-member": "Add Member", + "details.add-member": "เพิ่มสมาชิก", "details.owner-options": "การจัดการกลุ่ม", "details.group-name": "ชื่อกลุ่ม", "details.member-count": "จำนวนสมาชิก", "details.creation-date": "สร้างวันที่", "details.description": "คำอธิบาย", - "details.member-post-cids": "Category IDs to display posts from", + "details.member-post-cids": "รหัสหมวดหมู่ที่ต้องการแสดงโพสต์", "details.badge-preview": "สัญลักษณ์พรีวิว", "details.change-icon": "เปลี่ยนไอคอน", - "details.change-label-colour": "Change Label Colour", - "details.change-text-colour": "Change Text Colour", + "details.change-label-colour": "เปลี่ยนสี label", + "details.change-text-colour": "เปลี่ยนสีข้อความ", "details.badge-text": "สัญลักษณ์ข้อความ", "details.userTitleEnabled": "แสดงสัญลักษณ์", "details.private-help": "หากเป็นไปได้ การเข้าร่วมกลุ่มต้องได้รับการอนุมัติจากเจ้าของกลุ่ม", @@ -50,13 +50,13 @@ "details.delete-group": "ลบกลุ่ม", "details.private-system-help": "กลุ่มส่วนตัวถูกปิดใช้งานโดยเลเวลระบบ ตัวเลือกนี้จะไม่ได้ทำอะไรทั้งสิ้น", "event.updated": "ข้อมูลกลุ่มได้รับการบันทึกแล้ว", - "event.deleted": "กลุ่ม \"%1\"  ได้ถูกลบไปแล้ว", + "event.deleted": "กลุ่ม \"%1\" ได้ถูกลบไปแล้ว", "membership.accept-invitation": "ยอมรับคำเชิญ", - "membership.accept.notification-title": "You are now a member of %1", + "membership.accept.notification-title": "ตอนนี้คุณเป็นสมาชิกของ %1", "membership.invitation-pending": "คำเชิญที่รอการอนุมัติ", "membership.join-group": "เข้าร่วมกลุ่ม", "membership.leave-group": "ออกจากกลุ่ม", - "membership.leave.notification-title": "%1 has left group %2", + "membership.leave.notification-title": "%1 ได้ออกจากกลุ่ม %2", "membership.reject": "ปฏิเสธ", "new-group.group-name": "ชื่อกลุ่ม:", "upload-group-cover": "อัพโหลดหน้าปกกลุ่ม", diff --git a/public/language/th/ip-blacklist.json b/public/language/th/ip-blacklist.json index 588fbd62b6..5534a9ab7b 100644 --- a/public/language/th/ip-blacklist.json +++ b/public/language/th/ip-blacklist.json @@ -1,19 +1,19 @@ { - "lead": "Configure your IP blacklist here.", - "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", - "active-rules": "Active Rules", - "validate": "Validate Blacklist", - "apply": "Apply Blacklist", - "hints": "Syntax Hints", - "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", - "hint-2": "You can add in comments by starting lines with the # symbol.", + "lead": "ตั้งค่าการขึ้นบัญชีดำ IP ที่นี่", + "description": "บางครั้งการแบนผู้ใช้งานยังไม่เพียงพอ การจำกัดการเข้าถึงฟอรั่มจาก IP หรือช่วงของ IP ที่ระบุเป็นวิธีที่ดีที่สุดที่ใช้ป้องกันฟอรั่ม ในสถานการณ์นี้ คุณสามารถเพิ่ม IP หรือบล็อก CIDR ที่เป็นปัญหาลงในบัญชีดำนี้ แล้วพวกเขาจะไม่สามารถสมัครบัญชีใหม่หรือเข้าสู่ระบบได้", + "active-rules": "กฎที่กำลังใช้งาน", + "validate": "ตรวจสอบความถูกต้อง", + "apply": "นำไปใช้งาน", + "hints": "คำช่วยเหลือรูปแบบคำสั่ง", + "hint-1": "กำหนดที่อยู่ IP 1 ค่าต่อ 1 บรรทัด คุณสามารถเพิ่มที่อยู่ IP หรือ IP บล็อกที่สอดคล้องกับรูปแบบ CIDR (เช่น 192.168.100.0/22).", + "hint-2": "คุณสามารถใส่คำอธิบายโดยใช้เครื่องหมาย # ที่ต้นบรรทัด", - "validate.x-valid": "%1 out of %2 rule(s) valid.", - "validate.x-invalid": "The following %1 rules are invalid:", + "validate.x-valid": "กฎ %1 จากทั้งหมด %2 กดมีค่าถูกต้อง", + "validate.x-invalid": "กฏ %1 กฎต่อไปนี้ไม่ถูกต้อง", - "alerts.applied-success": "Blacklist Applied", + "alerts.applied-success": "บัญชีดำถูกนำไปใช้งานแล้ว", - "analytics.blacklist-hourly": "Figure 1 – Blacklist hits per hour", - "analytics.blacklist-daily": "Figure 2 – Blacklist hits per day", - "ip-banned": "IP banned" + "analytics.blacklist-hourly": "รูปที่ 1 – จำนวนฮิตจากบัญชีดำต่อชั่วโมง", + "analytics.blacklist-daily": "รูปที่ 2 – จำนวนฮิตจากบัญชีดำต่อวัน", + "ip-banned": "IP ถูกขึ้นบัญชีดำ" } \ No newline at end of file diff --git a/public/language/th/login.json b/public/language/th/login.json index d880087f94..99c54083d3 100644 --- a/public/language/th/login.json +++ b/public/language/th/login.json @@ -7,6 +7,6 @@ "failed-login-attempt": "เข้าสู่ระบบสำเร็จ", "login-successful": "คุณเข้าสู่ระบบเรียบร้อยแล้ว", "dont-have-account": "คุณยังไม่มีบัญชีเข้าระบบ?", - "logged-out-due-to-inactivity": "คุณได้ออกจากระบบ Admin Control Panel แล้ว เนื่องจากว่าไม่มีกิจกรรมใดๆมาสักระยะ", - "caps-lock-enabled": "Caps Lock is enabled" + "logged-out-due-to-inactivity": "คุณได้ออกจากแผงควบคุมผู้ดูแลระบบแล้ว เนื่องจากว่าไม่มีกิจกรรมใดๆมาสักระยะ", + "caps-lock-enabled": "ปุ่ม Caps Lock เปิดอยู่" } \ No newline at end of file diff --git a/public/language/th/modules.json b/public/language/th/modules.json index 4b680a2356..2a3ae08a34 100644 --- a/public/language/th/modules.json +++ b/public/language/th/modules.json @@ -1,28 +1,28 @@ { - "chat.room-id": "Room %1", + "chat.room-id": "ห้อง %1", "chat.chatting-with": "คุยกับ", - "chat.placeholder": "Type chat message here, drag & drop images, press enter to send", - "chat.placeholder.mobile": "Type chat message here", - "chat.scroll-up-alert": "Go to most recent message", - "chat.usernames-and-x-others": "%1 & %2 others", - "chat.chat-with-usernames": "Chat with %1", - "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", + "chat.placeholder": "พิมพ์ข้อความแชทที่นี้ ลากและปล่อยรูปภาพ กดปุ่ม enter เพื่อส่ง", + "chat.placeholder.mobile": "พิมพ์ข้อความแชทที่นี่", + "chat.scroll-up-alert": "ไปที่ข้อความล่าสุด", + "chat.usernames-and-x-others": "%1, %2 และผู้อื่น", + "chat.chat-with-usernames": "แชทกับ %1", + "chat.chat-with-usernames-and-x-others": "แชทกับ %1, %2 และผู้อื่น", "chat.send": "ส่ง", "chat.no-active": "คุณไม่มีแชทที่คุยอยู่", - "chat.user-typing-1": "%1 is typing ...", - "chat.user-typing-2": "%1 and %2 are typing ...", - "chat.user-typing-3": "%1, %2 and %3 are typing ...", - "chat.user-typing-n": "%1, %2 and %3 others are typing ...", + "chat.user-typing-1": "%1 กำลังพิมพ์ ...", + "chat.user-typing-2": "%1 และ %2 กำลังพิมพ์ ...", + "chat.user-typing-3": "%1, %2 และ %3 กำลังพิมพ์ ...", + "chat.user-typing-n": "%1, %2 และอีก %3 คนกำลังพิมพ์ ...", "chat.user-has-messaged-you": "%1 ได้ส่งข้อความถึงคุณ", - "chat.replying-to": "Replying to %1", - "chat.see-all": "All chats", - "chat.mark-all-read": "Mark all read", + "chat.replying-to": "ตอบกลับไปยัง %1", + "chat.see-all": "แชททั้งหมด", + "chat.mark-all-read": "ทำเครื่องหมายว่าอ่านทั้งหมดแล้ว", "chat.no-messages": "กรุณาเลือกผู้รับเพื่อดูประวัติข้อความ", "chat.no-users-in-room": "ไม่มีผู้ใช้ในห้องนี้", "chat.recent-chats": "แชทล่าสุด", "chat.contacts": "ติดต่อ", "chat.message-history": "ประวัติข้อความ", - "chat.message-deleted": "Message Deleted", + "chat.message-deleted": "ข้อความถูกลบแล้ว", "chat.options": "ตัวเลือกแชท", "chat.pop-out": "Pop out แชท", "chat.minimize": "ย่อเล็กสุด", @@ -32,53 +32,53 @@ "chat.three-months": "3 เดือน", "chat.delete-message-confirm": "คุณแน่ใจแล้วใช่ไหมว่าต้องการจะลบข้อความนี้?", "chat.retrieving-users": "กำลังเรียกข้อมูลผู้ใช้", - "chat.view-users-list": "View users list", - "chat.pinned-messages": "Pinned Messages", - "chat.no-pinned-messages": "There are no pinned messages", - "chat.pin-message": "Pin Message", - "chat.unpin-message": "Unpin Message", - "chat.public-rooms": "Public Rooms (%1)", - "chat.private-rooms": "Private Rooms (%1)", - "chat.create-room": "Create Chat Room", - "chat.private.option": "Private (Only visible to users added to room)", - "chat.public.option": "Public (Visible to every user in selected groups)", - "chat.public.groups-help": "To create a chat room that is visible to all users select registered-users from the group list.", + "chat.view-users-list": "ดูรายชื่อผู้ใช้งาน", + "chat.pinned-messages": "ข้อความที่ปักหมุด", + "chat.no-pinned-messages": "ไม่มีข้อความที่ปักหมุด", + "chat.pin-message": "ปักหมุดข้อความ", + "chat.unpin-message": "ยกเลิกการปักหมุดข้อความ", + "chat.public-rooms": "ห้องสาธารณะ (%1)", + "chat.private-rooms": "ห้องส่วนตัว (%1)", + "chat.create-room": "สร้างห้องแชท", + "chat.private.option": "ส่วนตัว (เฉพาะผู้ใช้งานที่ถูกเพิ่มลงในห้องถึงมองเห็น)", + "chat.public.option": "สาธารณะ (ผู้ใช้งานทุกคนในกลุ่มที่เลือกมองเห็น)", + "chat.public.groups-help": "ถ้าต้องการสร้างห้องแชทที่เห็นโดยทุกคน เลือก registered-users จากรายชื่อกลุ่ม", "chat.manage-room": "จัดการห้องแชท", - "chat.add-user": "Add User", - "chat.notification-settings": "Notification Settings", - "chat.default-notification-setting": "Default Notification Setting", - "chat.notification-setting-room-default": "Room Default", - "chat.notification-setting-none": "No notifications", - "chat.notification-setting-at-mention-only": "@mention only", - "chat.notification-setting-all-messages": "All messages", - "chat.select-groups": "Select Groups", - "chat.add-user-help": "Search for users here. When selected, the user will be added to the chat. The new user will not be able to see chat messages written before they were added to the conversation. Only room owners () may remove users from chat rooms.", + "chat.add-user": "เพิ่มผู้ใช้งาน", + "chat.notification-settings": "การตั้งค่าการแจ้งเตือน", + "chat.default-notification-setting": "ค่าเริ่มต้นการแจ้งเตือน", + "chat.notification-setting-room-default": "ค่าเริ่มต้นของห้อง", + "chat.notification-setting-none": "ไม่มีการแจ้งเตือน", + "chat.notification-setting-at-mention-only": "เฉพาะเมื่อ @ถูกพูดถึง", + "chat.notification-setting-all-messages": "ข้อความทั้งหมด", + "chat.select-groups": "เลือกกลุ่ม", + "chat.add-user-help": "ค้นหาผู้ใช้งานที่นี่ เมื่อเลือกแล้วผู้ใช้งานจะถูกเพิ่มลงในแชท ผู้ใช้งานจะยังไม่เห็นข้อความแชทจนกว่าจะถูกเพิ่มเข้าไปในการสนทนา เฉพาะเจ้าของห้อง () เท่านั้นที่จะลบผู้ใช้งานออกจากห้องแชท", "chat.confirm-chat-with-dnd-user": "ผู้ใช้นี้ได้ตั้งค่าสถานะเป็น (ห้ามรบกวน) คุณยังอยากจะคุยกับเขาอยู่ไหม?", - "chat.room-name-optional": "Room Name (Optional)", - "chat.rename-room": "Rename Room", + "chat.room-name-optional": "ชื่อห้อง (ไม่มีก็ได้)", + "chat.rename-room": "เปลี่ยนชื่อห้อง", "chat.rename-placeholder": "ใส่ชื่อห้องของคุณที่นี่", "chat.rename-help": "ชื่อห้องจะสามารถดูได้โดยผู้เข้าร่วมทั้งหมดในห้อง", - "chat.leave": "Leave", - "chat.leave-room": "Leave Room", + "chat.leave": "ออก", + "chat.leave-room": "ออกจากห้อง", "chat.leave-prompt": "คุณแน่ใจหรือไม่ว่าต้องการออกจากการแชทนี้", "chat.leave-help": "การออกจากการแชทนี้จะเป็นการลบคุณออกจากการติดต่อในอนาคตในการแชทนี้ หากคุณถูกเพิ่มเข้ามาใหม่ในอนาคตคุณจะไม่เห็นประวัติการแชทก่อนที่จะเข้าร่วมใหม่", - "chat.delete": "Delete", - "chat.delete-room": "Delete Room", - "chat.delete-prompt": "Are you sure you wish to delete this chat room?", + "chat.delete": "ลบ", + "chat.delete-room": "ลบห้อง", + "chat.delete-prompt": "ต้องการจะลบห้องแชทนี้หรือไม่?", "chat.in-room": "ในห้องนี้", - "chat.kick": "Kick", - "chat.show-ip": "Show IP", - "chat.copy-text": "Copy Text", - "chat.copy-link": "Copy Link", - "chat.owner": "Room Owner", - "chat.grant-rescind-ownership": "Grant/Rescind Ownership", - "chat.system.user-join": "%1 has joined the room ", - "chat.system.user-leave": "%1 has left the room ", - "chat.system.room-rename": "%2 has renamed this room to \"%1\" ", + "chat.kick": "เตะออก", + "chat.show-ip": "แสดง IP", + "chat.copy-text": "คัดลอกข้อความ", + "chat.copy-link": "คัดลอกลิงก์", + "chat.owner": "เจ้าของห้อง", + "chat.grant-rescind-ownership": "ให้หรือถอดความเป็นเจ้าของ", + "chat.system.user-join": "%1 ได้เข้าร่วมห้อง ", + "chat.system.user-leave": "%1 ได้ออกจากห้อง ", + "chat.system.room-rename": "%2 ได้เปลี่ยนชื่อห้องนี้เป็น \"%1\" ", "composer.compose": "เขียน", "composer.show-preview": "แสดงพรีวิว", "composer.hide-preview": "ซ่อนพรีวิว", - "composer.help": "Help", + "composer.help": "ความช่วยเหลือ", "composer.user-said-in": "%1 พูดใน %2:", "composer.user-said": "%1 พูด:", "composer.discard": "คุณแน่ใจแล้วใช่ไหมว่าจะทิ้งโพสต์นี้?", @@ -87,45 +87,45 @@ "composer.uploading": "กำลังอัพโหลด %1", "composer.formatting.bold": "ตัวหนา", "composer.formatting.italic": "ตัวเอียง", - "composer.formatting.heading": "Heading", - "composer.formatting.heading1": "Heading 1", - "composer.formatting.heading2": "Heading 2", - "composer.formatting.heading3": "Heading 3", - "composer.formatting.heading4": "Heading 4", - "composer.formatting.heading5": "Heading 5", - "composer.formatting.heading6": "Heading 6", + "composer.formatting.heading": "หัวเรื่อง", + "composer.formatting.heading1": "หัวเรื่อง 1", + "composer.formatting.heading2": "หัวเรื่อง 2", + "composer.formatting.heading3": "หัวเรื่อง 3", + "composer.formatting.heading4": "หัวเรื่อง 4", + "composer.formatting.heading5": "หัวเรื่อง 5", + "composer.formatting.heading6": "หัวเรื่อง 6", "composer.formatting.list": "รายการ", "composer.formatting.strikethrough": "ขีดเส้นใต้", - "composer.formatting.code": "Code", - "composer.formatting.link": "ลิ้งค์", - "composer.formatting.picture": "Image Link", + "composer.formatting.code": "โค้ด", + "composer.formatting.link": "ลิงก์", + "composer.formatting.picture": "ลิงก์รูปภาพ", "composer.upload-picture": "อัพโหลดรูปภาพ", "composer.upload-file": "อัพโหลดไฟล์", "composer.zen-mode": "เซ็นโหมด", "composer.select-category": "เลือกหมวดหมู่", - "composer.textarea.placeholder": "Enter your post content here, drag and drop images", - "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", - "composer.schedule-for": "Schedule topic for", - "composer.schedule-date": "Date", - "composer.schedule-time": "Time", - "composer.cancel-scheduling": "Cancel Scheduling", - "composer.change-schedule-date": "Change Date", - "composer.set-schedule-date": "Set Date", - "composer.discard-all-drafts": "Discard all drafts", - "composer.no-drafts": "You have no drafts", - "composer.discard-draft-confirm": "Do you want to discard this draft?", + "composer.textarea.placeholder": "ป้อนเนื้อหาของโพสต์ที่นี่ ลากและปล่อยรูปภาพ", + "composer.post-queue-alert": "สวัสดี👋!
ฟอรั่มนี้ใช้ระบบคิวการโพสต์ เนื่องจากคุณเป็นผู้ใช้งานใหม่ โพสต์จะถูกซ่อนจนกว่าจะได้รับอนุมัติจากทีมดูแลของเรา", + "composer.schedule-for": "ตั้งเวลากระทู้", + "composer.schedule-date": "วันที่", + "composer.schedule-time": "เวลา", + "composer.cancel-scheduling": "ยกเลิกการตั้งเวลา", + "composer.change-schedule-date": "เปลี่ยนวันที่และเวลา", + "composer.set-schedule-date": "ตั้งค่าวันที่และเวลา", + "composer.discard-all-drafts": "ลบข้อความร่างทั้งหมด", + "composer.no-drafts": "คุณไม่มีข้อความร่าง", + "composer.discard-draft-confirm": "คุณต้องการลบข้อความร่างนี้หรือไม่?", "bootbox.ok": "ตกลง", "bootbox.cancel": "ยกเลิก", "bootbox.confirm": "ยืนยัน", - "bootbox.submit": "Submit", - "bootbox.send": "Send", + "bootbox.submit": "ส่ง", + "bootbox.send": "ส่ง", "cover.dragging-title": "ตำแหน่งภาพหน้าปก", "cover.dragging-message": "ลากภาพหน้าปกเพื่อเลือกตำแหน่งแล้วกด \"บันทึก\"", "cover.saved": "ภาพหน้าปกและตำแหน่งได้รับการบันทึกแล้ว", - "thumbs.modal.title": "Manage topic thumbnails", - "thumbs.modal.no-thumbs": "No thumbnails found.", - "thumbs.modal.resize-note": "Note: This forum is configured to resize topic thumbnails down to a maximum width of %1px", - "thumbs.modal.add": "Add thumbnail", - "thumbs.modal.remove": "Remove thumbnail", - "thumbs.modal.confirm-remove": "Are you sure you want to remove this thumbnail?" + "thumbs.modal.title": "จัดการภาพย่อของกระทู้", + "thumbs.modal.no-thumbs": "ไม่พบภาพย่อ", + "thumbs.modal.resize-note": "หมายเหตุ: ฟอรั่มนี้ถูกตั้งค่าให้ย่อขนาดของภาพย่อกระทู้ลงเหลือกว้างสุด %1px", + "thumbs.modal.add": "เพิ่มภาพย่อ", + "thumbs.modal.remove": "ลบภาพย่อ", + "thumbs.modal.confirm-remove": "คุณต้องการลบภาพย่อนี้หรือไม่?" } \ No newline at end of file diff --git a/public/language/th/notifications.json b/public/language/th/notifications.json index e984c973cf..b367a012fb 100644 --- a/public/language/th/notifications.json +++ b/public/language/th/notifications.json @@ -1,101 +1,101 @@ { "title": "แจ้งเตือน", "no-notifs": "คุณไม่มีข้อแจ้งเตือนใหม่", - "see-all": "All notifications", - "mark-all-read": "Mark all read", + "see-all": "การแจ้งเตือนทั้งหมด", + "mark-all-read": "ทำเครื่องหมายทั้งหมดว่าอ่านแล้ว", "back-to-home": "กลับสู่ %1", "outgoing-link": "ลิงค์ออก", "outgoing-link-message": "ตอนนี้คุณกำลังออกจาก %1", "continue-to": "ดำเนินการต่อไปยัง %1", "return-to": "กลับสู่ %1", - "new-notification": "You have a new notification", - "you-have-unread-notifications": "คุณมีคำเตือนที่ยังไม่ได้อ่าน", + "new-notification": "คุณมีการแจ้งเตือนใหม่", + "you-have-unread-notifications": "คุณมีการแจ้งเตือนที่ยังไม่ได้อ่าน", "all": "ทั้งหมด", "topics": "กระทู้", - "tags": "Tags", - "categories": "Categories", + "tags": "แท็ก", + "categories": "หมวดหมู่", "replies": "คำตอบ", "chat": "แชท", - "group-chat": "Group Chats", - "public-chat": "Public Chats", + "group-chat": "แชทกลุ่ม", + "public-chat": "แชทสาธารณะ", "follows": "ติดตาม", "upvote": "โหวตขึ้น", - "awards": "Awards", - "new-flags": "ปักธงใหม่", - "my-flags": "ธงที่ถูกปักให้ฉัน", + "awards": "รางวัล", + "new-flags": "รายงานใหม่", + "my-flags": "รายงานที่ถูกมอบหมายให้ฉัน", "bans": "แบน", "new-message-from": "ข้อความใหม่จาก %1", - "new-messages-from": "%1 new messages from %2", - "new-message-in": "New message in %1", - "new-messages-in": "%1 new messages in %2", - "user-posted-in-public-room": "%1 wrote in %3", - "user-posted-in-public-room-dual": "%1 and %2 wrote in %4", - "user-posted-in-public-room-triple": "%1, %2 and %3 wrote in %5", - "user-posted-in-public-room-multiple": "%1, %2 and %3 others wrote in %5", + "new-messages-from": "%1 ข้อความใหม่จาก %2", + "new-message-in": "ข้อความใหม่ใน %1", + "new-messages-in": "%1 ข้อความใหม่ใน %2", + "user-posted-in-public-room": "%1 ได้เขียนลงใน %3", + "user-posted-in-public-room-dual": "%1 และ %2 ได้เขียนลงใน %4", + "user-posted-in-public-room-triple": "%1, %2 และ %3 ได้เขียนลงใน %5", + "user-posted-in-public-room-multiple": "%1, %2 และอีก %3 คน ได้เขียนลงใน %5", "upvoted-your-post-in": "%1 ได้โหวตโพสต์ของคุณขึ้นใน %2", "upvoted-your-post-in-dual": "%1 และ %2ได้โหวตโพสต์ของคุณขึ้นใน %3", - "upvoted-your-post-in-triple": "%1, %2 and %3 have upvoted your post in %4.", - "upvoted-your-post-in-multiple": "%1, %2 and %3 others have upvoted your post in %4.", + "upvoted-your-post-in-triple": "%1, %2 และ %3 ได้โหวตโพสต์ของคุณขึ้นใน %4.", + "upvoted-your-post-in-multiple": "%1, %2 และอีก %3 คน ได้โหวตโพสต์ของคุณขึ้นใน %4.", "moved-your-post": "%1 ได้ย้ายโพสต์ของคุณไปยัง %2", "moved-your-topic": "%1 ได้ย้าย %2", - "user-flagged-post-in": "%1 ได้ปักธงโพสต์ใน %2", - "user-flagged-post-in-dual": "%1และ %2ได้ปักธงโพสต์ใน %3", - "user-flagged-post-in-triple": "%1, %2 and %3 flagged a post in %4", - "user-flagged-post-in-multiple": "%1, %2 and %3 others flagged a post in %4", - "user-flagged-user": "%1 ได้ปักธงโปรไฟล์ผู้ใช้ (%2)", - "user-flagged-user-dual": "%1และ%2ได้ปักธงโปรไฟล์ผู้ใช้ (%3)", - "user-flagged-user-triple": "%1, %2 and %3 flagged a user profile (%4)", - "user-flagged-user-multiple": "%1, %2 and %3 others flagged a user profile (%4)", - "user-posted-to": "%1 ได้โพสต์คำตอบไปยัง : %2", - "user-posted-to-dual": "%1และ %2ได้โพสต์คำตอบไปยัง : %3", - "user-posted-to-triple": "%1, %2 and %3 have posted replies to: %4", - "user-posted-to-multiple": "%1, %2 and %3 others have posted replies to: %4", + "user-flagged-post-in": "%1 ได้รายงานโพสต์ใน %2", + "user-flagged-post-in-dual": "%1และ %2ได้รายงานโพสต์ใน %3", + "user-flagged-post-in-triple": "%1, %2 และ %3 ได้รายงานโพสต์ใน %4", + "user-flagged-post-in-multiple": "%1, %2 และอีก %3 คนได้รายงานโพสต์ใน %4", + "user-flagged-user": "%1 ได้รายงานโปรไฟล์ผู้ใช้ (%2)", + "user-flagged-user-dual": "%1และ%2ได้รายงานโปรไฟล์ผู้ใช้ (%3)", + "user-flagged-user-triple": "%1, %2 และ %3 ได้รายงานโปรไฟล์ผู้ใช้ (%4)", + "user-flagged-user-multiple": "%1, %2 และอีก %3 คนได้รายงานโปรไฟล์ผู้ใช้ (%4)", + "user-posted-to": "%1 ได้โพสต์คำตอบไปยัง %2", + "user-posted-to-dual": "%1และ %2ได้โพสต์คำตอบไปยัง %3", + "user-posted-to-triple": "%1, %2 และ %3 ได้โพสต์คำตอบไปยัง %4", + "user-posted-to-multiple": "%1, %2 และอีก %3 คน ได้โพสต์คำตอบไปยัง %4", "user-posted-topic": "%1ได้โพสต์กระทู้ใหม่ : %2", - "user-edited-post": "%1 has edited a post in %2", - "user-posted-topic-with-tag": "%1 has posted a new topic with tag %2", - "user-posted-topic-with-tag-dual": "%1 has posted a new topic with tags %2 and %3", - "user-posted-topic-with-tag-triple": "%1 has posted a new topic with tags %2, %3 and %4", - "user-posted-topic-with-tag-multiple": "%1 has posted a new topic with tags %2", - "user-posted-topic-in-category": "%1 has posted a new topic in %2", + "user-edited-post": "%1 ได้แก้ไขโพสต์ใน %2", + "user-posted-topic-with-tag": "%1 ได้โพสต์กระทู้ใหม่ที่ติดแท็ก %2", + "user-posted-topic-with-tag-dual": "%1 ได้โพสต์กระทู้ใหม่ที่ติดแท็ก %2 และ %3", + "user-posted-topic-with-tag-triple": "%1 ได้โพสต์กระทู้ใหม่ที่ติดแท็ก %2, %3 และ %4", + "user-posted-topic-with-tag-multiple": "%1 ได้โพสต์กระทู้ใหม่ที่ติดแท็ก %2", + "user-posted-topic-in-category": "%1 ได้โพสต์กระทู้ใหม่ใน %2", "user-started-following-you": "%1 ได้เริ่มติดตามคุณ", "user-started-following-you-dual": "%1และ%2ได้เริ่มติดตามคุณ", - "user-started-following-you-triple": "%1, %2 and %3 started following you.", - "user-started-following-you-multiple": "%1, %2 and %3 others started following you.", + "user-started-following-you-triple": "%1, %2 และ %3 ได้เริ่มติดตามคุณ", + "user-started-following-you-multiple": "%1, %2 และอีก %3 คน ได้เริ่มติดตามคุณ", "new-register": "%1ได้ส่งคำขอสมัครสมาชิก", "new-register-multiple": "มี%1คำขอสมัครสมาชิกที่รอการรีวิว", - "flag-assigned-to-you": "ปักธง %1ได้ถูกปักธงให้คุณ", + "flag-assigned-to-you": "%1 รายงานได้ถูกมอบหมายให้คุณ", "post-awaiting-review": "โพสกำลังรอการพิจารณา", - "profile-exported": "%1 profile exported, click to download", - "posts-exported": "%1 posts exported, click to download", - "uploads-exported": "%1 uploads exported, click to download", - "users-csv-exported": "Users csv exported, click to download", - "post-queue-accepted": "Your queued post has been accepted. Click here to see your post.", - "post-queue-rejected": "Your queued post has been rejected.", - "post-queue-notify": "Queued post received a notification:
\"%1\"", - "email-confirmed": "Email ได้รับการยืนยันแล้ว", - "email-confirmed-message": "ขอบคุณที่ยืนยัน Email ของคุณ บัญชีของคุณสามารถใช้งานได้แล้ว", - "email-confirm-error-message": "มีปัญหาในการยืนยัน Email ของคุณ บางทีรหัสไม่ถูกต้องหรือหมดอายุแล้ว", - "email-confirm-sent": "Email เพื่อยืนยันได้ส่งไปแล้ว", + "profile-exported": "ส่งออกข้อมูลโปรไฟล์ของ %1 เสร็จแล้ว คลิกเพื่อดาวน์โหลด", + "posts-exported": "ส่งออกข้อมูลโพสต์ของ %1 เสร็จแล้ว คลิกเพื่อดาวน์โหลด", + "uploads-exported": "ส่งออกข้อมูลอัปโหลดของ %1 เสร็จแล้ว คลิกเพื่อดาวน์โหลด", + "users-csv-exported": "ส่งออกข้อมูล csv ของผู้ใช้งานเสร็จแล้ว คลิกเพื่อดาวน์โหลด", + "post-queue-accepted": "โพสต์ที่รอคิวของคุณได้รับการอนุมัติแล้ว คลิกที่นี่เพื่อดูโพสต์ของคุณ", + "post-queue-rejected": "โพสต์ที่รอคิวของคุณได้รับการปฏิเสธ", + "post-queue-notify": "ได้รับแจ้งเตือนสำหรับโพสต์ที่รอคิว:
\"%1\"", + "email-confirmed": "อีเมลได้รับการยืนยันแล้ว", + "email-confirmed-message": "ขอบคุณที่ยืนยันอีเมลของคุณ บัญชีของคุณสามารถใช้งานได้แล้ว", + "email-confirm-error-message": "มีปัญหาในการยืนยันอีเมลของคุณ รหัสอาจไม่ถูกต้องหรือหมดอายุแล้ว", + "email-confirm-sent": "ส่งอีเมลยืนยันแล้ว", "none": "ไม่มี", "notification-only": "แจ้งเตือนอย่างเดียว", "email-only": "อีเมลอย่างเดียว", "notification-and-email": "การแจ้งเตือนและอีเมล", "notificationType-upvote": "เมื่อมีคนโหวตอัพให้โพสต์คุณ", "notificationType-new-topic": "เมื่อมีคนติดตามโพสต์คุณ", - "notificationType-new-topic-with-tag": "When a topic is posted with a tag you follow", - "notificationType-new-topic-in-category": "When a topic is posted in a category you are watching", - "notificationType-new-reply": "เมื่อมีการตอบกลับในโพสต์ที่คุณกำลังติดตาม", - "notificationType-post-edit": "When a post is edited in a topic you are watching", + "notificationType-new-topic-with-tag": "เมื่อมีกระทู้ที่โพสต์โดยใช้แท็กที่คุณติดตาม", + "notificationType-new-topic-in-category": "เมื่อมีกระทู้ถูกโพสต์ในหมวดหมู่ที่คุณกำลังเฝ้าดู", + "notificationType-new-reply": "เมื่อมีการตอบกลับในโพสต์ที่คุณกำลังเฝ้าดู", + "notificationType-post-edit": "เมื่อโพสต์ถูกแก้ไขในกระทู้ที่คุณกำลังเฝ้าดู", "notificationType-follow": "เมื่อมีคนติดตามคุณ", "notificationType-new-chat": "เมื่อคุณได้รับข้อความใหม่", - "notificationType-new-group-chat": "When you receive a group chat message", - "notificationType-new-public-chat": "When you receive a public group chat message", + "notificationType-new-group-chat": "เมื่อคุณได้รับข้อความแชทแบบกลุ่ม", + "notificationType-new-public-chat": "เมื่อคุณได้รับข้อความแชทกลุ่มที่เป็นสาธารณะ", "notificationType-group-invite": "เมื่อคุณได้รับเชิญเข้ากลุ่ม", - "notificationType-group-leave": "When a user leaves your group", - "notificationType-group-request-membership": "When someone requests to join a group you own", + "notificationType-group-leave": "เมื่อผู้ใช้งานออกจากกลุ่มของคุณ", + "notificationType-group-request-membership": "เมื่อบางคนร้องขอที่จะเข้าร่วมกลุ่มที่คุณเป็นเจ้าของ", "notificationType-new-register": "เมื่อมีคนถูกเพิ่มในคิวลงทะเบียน", "notificationType-post-queue": "เมื่อมีโพสต์ใหม่อยู่ในคิว", - "notificationType-new-post-flag": "เมื่อโพสต์ถูกตั้งค่าสถานะ", - "notificationType-new-user-flag": "เมื่อผู้ใช้ถูกตั้งค่าสถานะ", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-post-flag": "เมื่อโพสต์ถูกรายงาน", + "notificationType-new-user-flag": "เมื่อผู้ใช้ถูกรายงาน", + "notificationType-new-reward": "เมื่อคุณได้รับรางวัล" } \ No newline at end of file diff --git a/public/language/th/pages.json b/public/language/th/pages.json index 054c46f451..02b27e9839 100644 --- a/public/language/th/pages.json +++ b/public/language/th/pages.json @@ -6,36 +6,36 @@ "popular-month": "กระทู้ฮิตเดือนนี้", "popular-alltime": "กระทู้ฮิตตลาดกาล", "recent": "กระทู้ล่าสุด", - "top-day": "Top voted topics today", - "top-week": "Top voted topics this week", - "top-month": "Top voted topics this month", - "top-alltime": "Top Voted Topics", + "top-day": "กระทู้ที่ได้รับโหวดสูงสุดวันนี้", + "top-week": "กระทู้ที่ได้รับโหวดสูงสุดสัปดาห์นี้", + "top-month": "กระทู้ที่ได้รับโหวดสูงสุดเดือนนี้", + "top-alltime": "กระทู้ที่ได้รับโหวดสูงสุด", "moderator-tools": "เครื่องมือผู้ดูแลระบบ", - "flagged-content": "เนื้อหาที่ถูกปักธง", + "flagged-content": "เนื้อหาที่ถูกรายงาน", "ip-blacklist": "ไอดีที่ถูกขึ้นบัญชีดำ", - "post-queue": "คิวโพส", - "registration-queue": "Registration Queue", + "post-queue": "คิวการโพสต์", + "registration-queue": "คิวการลงทะเบียน", "users/online": "ผู้ใช้ออนไลน์", "users/latest": "ผู้ใช้ล่าสุด", "users/sort-posts": "ผู้ใช้ที่โพสต์เยอะที่สุด", - "users/sort-reputation": "ผู้ใช้ที่มีชื่อเสียงโด่งดังที่สุด", + "users/sort-reputation": "ผู้ใช้ที่มีชื่อเสียงมากที่สุด", "users/banned": "ผู้ใช้ที่ถูกแบน", - "users/most-flags": "ผู้ใช้ที่ถูกปักธงมากที่สุด", + "users/most-flags": "ผู้ใช้ที่ถูกรายงานมากที่สุด", "users/search": "ค้นหาผู้ใช้", "notifications": "การแจ้งเตือน", "tags": "แท็ก", - "tag": "หัวข้อที่ติดแท็กใต้ "%1"", + "tag": "กระทู้ที่ติดแท็ก "%1"", "register": "สมัครบัญชีผู้ใช้", "registration-complete": "สมัครสมาชิกสำเร็จเรียบร้อย", "login": "เข้าสู่ระบบบัญชีของคุณ", "reset": "ตั้งค่ารหัสผ่านใหม่ให้บัญชีของคุณ", "categories": "หมวดหมู่", "groups": "กลุ่ม", - "group": "%1 กลุ่ม", + "group": "กลุ่ม %1", "chats": "แชท", "chat": "กำลังแชทกับ %1", - "flags": "ธง", - "flag-details": "ธง %1 รายละเอียด", + "flags": "รายงาน", + "flag-details": "รายละเอียดของรายงาน %1 ", "account/edit": "กำลังแก้ไข \"%1\"", "account/edit/password": "กำลังแก้ไขรหัสผ่านของ \"%1\"", "account/edit/username": "กำลังแก้ไขชื่อผู้ใช้ \"%1\"", @@ -43,26 +43,26 @@ "account/info": "ข้อมูลบัญชี", "account/following": "ผู้คน %1 ติดตาม", "account/followers": "ผู้คนที่ติดตาม %1", - "account/posts": "โพสต์ถูกสร้างโดย %1", - "account/latest-posts": "Latest posts made by %1", - "account/topics": "กระทู้ถูกสร้างโดย %1", + "account/posts": "โพสต์ที่เขียนโดย %1", + "account/latest-posts": "โพสต์ล่าสุดที่เขียนโดย %1", + "account/topics": "กระทู้ที่สร้างโดย %1", "account/groups": "กลุ่มของ %1", - "account/watched-categories": "%1's Watched Categories", - "account/watched-tags": "%1's Watched Tags", + "account/watched-categories": "หมวดหมู่ที่เฝ้าดูของ %1", + "account/watched-tags": "แท็กที่เฝ้าดูของ %1", "account/bookmarks": "บุ๊กมาร์คโพสต์ของ %1", "account/settings": "การตั้งค่าผู้ใช้", - "account/settings-of": "Changing settings of %1", + "account/settings-of": "กำลังเปลี่ยนแปลงการตั้งค่าของ %1", "account/watched": "กระทู้ที่ถูกดูโดย %1", "account/ignored": "กระทู้ที่ถูกละเว้นโดย %1", "account/upvoted": "โพสต์ที่ถูกโหวตขึ้นโดย %1", "account/downvoted": "โพสต์ที่โหวตลงโดย %1", "account/best": "โพสต์ดีที่สุดที่ถูกสร้างโดย %1", - "account/controversial": "Controversial posts made by %1", - "account/blocks": "Blocked users for %1", - "account/uploads": "Uploads by %1", - "account/sessions": "Login Sessions", + "account/controversial": "โพสต์ที่เกิดข้อโต้แยงของ %1", + "account/blocks": "ผู้ใช้งานที่ถูกบล็อกของ %1", + "account/uploads": "ข้อมูลที่อัพโหลดโดย %1", + "account/sessions": "เซสชันการเข้าสู่ระบบ", "confirm": "อีเมล์ได้รับการยืนยันแล้ว", - "maintenance.text": "%1 is currently undergoing maintenance.
Please come back another time.", + "maintenance.text": "%1 ตอนนี้กำลังอยู่ระหว่างการปิดปรับปรุง
โปรดเข้ามาใหม่ภายหลัง", "maintenance.messageIntro": "ผู้ดูแลระบบได้ฝากข้อความต่อไปนี้เอาไว้", "throttled.text": "%1 ไม่สามารถเข้าถึงได้ในขณะนี้เนื่องจากมีการโหลดที่หนักมากเกินไป กรุณากลับเข้ามาอีกครั้งในภายหลัง" } \ No newline at end of file diff --git a/public/language/th/post-queue.json b/public/language/th/post-queue.json index 021ed0d83f..117c166ffa 100644 --- a/public/language/th/post-queue.json +++ b/public/language/th/post-queue.json @@ -1,42 +1,42 @@ { - "post-queue": "Post Queue", - "no-queued-posts": "There are no posts in the post queue.", - "no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.", - "enabling-help": "The post queue is currently disabled. To enable this feature, go to Settings → Post → Post Queue and enable Post Queue.", - "back-to-list": "Back to Post Queue", - "public-intro": "If you have any queued posts, they will be shown here.", - "public-description": "This forum is configured to automatically queue posts from new accounts, pending moderator approval.
If you have queued posts awaiting approval, you will be able to see them here.", - "user": "User", - "when": "When", - "category": "Category", - "title": "Title", - "content": "Content", + "post-queue": "คิวการโพสต์", + "no-queued-posts": "ไม่มีโพสต์อยู่ในคิว", + "no-single-post": "กระทู้หรือโพสต์ที่คุณกำลังมองหาไม่ได้อยู่ในคิวอีกแล้ว ซึ่งน่าจะได้รับการอนุมัติหรือลบไปแล้ว", + "enabling-help": "คิวการโพสต์ตอนนี้ไม่ได้เปิดใช้งาน ถ้าต้องการเปิดใช้งานความสามารถนี้ ไปที่ตั้งค่า → โพสต์ → คิวการโพสต์ และเปิดใช้งานคิวการโพสต์", + "back-to-list": "กลับไปยังคิวการโพสต์", + "public-intro": "ถ้าคุณมีโพสต์ที่กำลังรอคิว โพสต์เหล่านั้นจะปรากฏตรงนี้", + "public-description": "ฟอรั่มนี้ถูกตั้งค่าให้โพสต์จากบัญชีใหม่ต้องเข้าคิวรอการอนุมัติโดยผู้ดูแล
ถ้าคุณมีโพสต์ที่กำลังรอคิวอนุมัติ ก็จะเห็นได้จากตรงนี้", + "user": "ผู้ใช้งาน", + "when": "เมื่อ", + "category": "หมวดหมู่", + "title": "ชื่อหัวข้อ", + "content": "เนื้อหา", "posted": "Posted", - "reply-to": "Reply to \"%1\"", - "content-editable": "Click on content to edit", - "category-editable": "Click on category to edit", - "title-editable": "Click on title to edit", - "reply": "Reply", - "topic": "Topic", - "accept": "Accept", - "reject": "Reject", - "remove": "Remove", - "notify": "Notify", - "notify-user": "Notify User", - "confirm-reject": "Do you want to reject this post?", - "confirm-remove": "Do you want to remove this post?", - "bulk-actions": "Bulk Actions", - "accept-all": "Accept All", - "accept-selected": "Accept Selected", - "reject-all": "Reject All", - "reject-all-confirm": "Do you want to reject all posts?", - "reject-selected": "Reject Selected", - "reject-selected-confirm": "Do you want to reject %1 selected posts?", - "remove-all": "Remove all", - "remove-all-confirm": "Do you want to remove all posts?", - "remove-selected": "Remove Selected", - "remove-selected-confirm": "Do you want to remove %1 selected posts?", - "bulk-accept-success": "%1 posts accepted", - "bulk-reject-success": "%1 posts rejected" + "reply-to": "ตอบกลับไปยัง \"%1\"", + "content-editable": "คลิกที่เนื้อหาเพื่อแก้ไข", + "category-editable": "คลิกที่หมวดหมู่เพื่อแก้ไข", + "title-editable": "คลิกที่หัวข้อเพื่อแก้ไข", + "reply": "ตอบกลับ", + "topic": "กระทู้", + "accept": "อนุมัติ", + "reject": "ปฏิเสธ", + "remove": "ลบออก", + "notify": "แจ้งเตือน", + "notify-user": "แจ้งเตือนผู้ใช้งาน", + "confirm-reject": "คุณต้องการปฏิเสธโพสต์นี้หรือไม่?", + "confirm-remove": "คุณต้องการลบโพสต์นี้หรือไม่??", + "bulk-actions": "คำสั่งทีละมากๆ", + "accept-all": "ยอมรับทั้งหมด", + "accept-selected": "ยอมรับที่เลือก", + "reject-all": "ปฏิเสธทั้งหมด", + "reject-all-confirm": "คุณต้องการปฏิเสธโพสต์ทั้งหมดหรือไม่?", + "reject-selected": "ปฏิเสธที่เลือก", + "reject-selected-confirm": "คุณต้องการปฏิเสธโพสต์ที่เลือกจำนวน %1 โพสต์หรือไม่?", + "remove-all": "ลบทั้งหมด", + "remove-all-confirm": "คุณต้องการลบโพสต์ทั้งหมดหรือไม่?", + "remove-selected": "ลบที่เลือก", + "remove-selected-confirm": "คุณต้องการลบโพสต์ที่เลือกจำนวน %1 โพสต์หรือไม่?", + "bulk-accept-success": "%1 โพสต์ถูกยอมรับ", + "bulk-reject-success": "%1 โพสต์ถูกปฏิเสธ" } \ No newline at end of file diff --git a/public/language/th/recent.json b/public/language/th/recent.json index 8c4638cffa..8cc9ae294b 100644 --- a/public/language/th/recent.json +++ b/public/language/th/recent.json @@ -7,5 +7,5 @@ "alltime": "ตลอดกาล", "no-recent-topics": "ไม่มีกระทู้ล่าสุด", "no-popular-topics": "ไม่มีกระทู้ฮิต", - "load-new-posts": "Load new posts" + "load-new-posts": "โหลดโพสต์ใหม่" } \ No newline at end of file diff --git a/public/language/th/register.json b/public/language/th/register.json index fa5eb00a42..93c52bb1dd 100644 --- a/public/language/th/register.json +++ b/public/language/th/register.json @@ -1,10 +1,10 @@ { "register": "ลงทะเบียน", - "already-have-account": "Already have an account?", + "already-have-account": "มีบัญชีอยู่แล้วหรือยัง?", "cancel-registration": "ยกเลิกการสมัคร", - "help.email": "ผู้ใช้อื่น ๆ จะไม่สามารถมองเห็นอีเมลของคุณโดยดีฟอลต์", - "help.username-restrictions": "ชื่อผู้ใช้ที่ไม่ซ้ำกับผู้อื่น จะต้องมีความยาวระหว่าง% %1 และ %2 ตัวอักษร ผู้ใช้อื่นๆ สามารถพูดถึงคุณโดย @ชื่อผู้ใช้", - "help.minimum-password-length": "ความยาวรหัสผ่านของคุณต้องมีอย่างน้อย %1 ตัวอักษร", + "help.email": "ตามค่าเริ่มต้นของผู้ใช้ ผู้ใช้อื่นๆ จะไม่สามารถมองเห็นอีเมลของคุณ", + "help.username-restrictions": "ชื่อผู้ใช้ที่ไม่ซ้ำกับผู้อื่น และยาวระหว่าง %1 และ %2 ตัวอักษร ผู้ใช้อื่นๆ สามารถกล่าวถึงคุณโดยใช้ @ชื่อผู้ใช้", + "help.minimum-password-length": "รหัสผ่านของคุณต้องยาวอย่างน้อย %1 ตัวอักษร", "email-address": "อีเมล์", "email-address-placeholder": "ใส่อีเมล์", "username": "ชื่อผู้ใช้", @@ -13,21 +13,21 @@ "password-placeholder": "ใส่รหัสผ่าน", "confirm-password": "ยืนยันรหัสผ่าน", "confirm-password-placeholder": "ยืนยันรหัสผ่าน", - "register-now-button": "ลงทะเบียน", - "alternative-registration": "เข้าสู่ระบบโดยทางอื่น", - "terms-of-use": "เงื่อนไขการใช้งาน", + "register-now-button": "สมัครสมาชิก", + "alternative-registration": "สมัครสมาชิกโดยทางอื่น", + "terms-of-use": "ข้อตกลงการใช้งาน", "agree-to-terms-of-use": "ยอมรับข้อตกลงในการใช้งาน", - "terms-of-use-error": "คุณต้องยอมรับเงื่อนไขการใช้งานก่อน", + "terms-of-use-error": "คุณต้องยอมรับข้อตกลงการใช้งานก่อน", "registration-added-to-queue": "การสมัครใช้งานของถูกเพิ่มเข้าไปยังระบบเพิ่อรอการอนุมัติแล้ว คุณจะได้รับอีเมล์เมื่อการสมัครใช้งานของคุณถูกยอมรับโดยผู้ดูแลระบบหรือแอดมิน", - "registration-queue-average-time": "Our average time for approving memberships is %1 hours %2 minutes.", - "registration-queue-auto-approve-time": "Your membership to this forum will be fully activated in up to %1 hours.", - "interstitial.intro": "We'd like some additional information in order to update your account…", - "interstitial.intro-new": "We'd like some additional information before we can create your account…", - "interstitial.errors-found": "Please review the entered information:", - "gdpr-agree-data": "I consent to the collection and processing of my personal information on this website.", - "gdpr-agree-email": "I consent to receive digest and notification emails from this website.", - "gdpr-consent-denied": "You must give consent to this site to collect/process your information, and to send you emails.", - "invite.error-admin-only": "Direct user registration has been disabled. Please contact an administrator for more details.", - "invite.error-invite-only": "Direct user registration has been disabled. You must be invited by an existing user in order to access this forum.", - "invite.error-invalid-data": "The registration data received does not correspond to our records. Please contact an administrator for more details" + "registration-queue-average-time": "เวลาเฉลี่ยที่ใช้ในการอนุมัติสมาชิกคือ %1 ชั่วโมง %2 นาที", + "registration-queue-auto-approve-time": "ความเป็นสมาชิกฟอรั่มนี้ของคุณจะสมบูรณ์ในอีก %1 ชั่วโมง", + "interstitial.intro": "เราอยากได้ข้อมูลเพิ่มเติมเพื่อปรับปรุงบัญชีของคุณ…", + "interstitial.intro-new": "เราอยากได้ข้อมูลเพิ่มเติมก่อนที่จะสร้างบัญชีของคุณ…", + "interstitial.errors-found": "โปรดตรวจสอบข้อมูลที่ใส่:", + "gdpr-agree-data": "ฉันยินยอมให้มีการเก็บรวบรวมและประมวลผลข้อมูลส่วนบุคคลของฉันในเว็บนี้", + "gdpr-agree-email": "ฉันยินยอมที่จะรับอีเมลสรุปเนื้อหาและการแจ้งเตือนจากเว็บนี้", + "gdpr-consent-denied": "คุณต้องยินยอมให้เว็บนี้สามารถเก็บรวบรวม/ประมวลผลข้อมูลของคุณ และส่งอีเมลให้คุณ", + "invite.error-admin-only": "การสมัครสมาชิกโดยตรงไม่ถูกเปิดใช้งาน กรุณาติดต่อกับผู้ดูแลระบบสำหรับข้อมูลเพิ่มเติม", + "invite.error-invite-only": "การสมัครสมาชิกโดยตรงไม่ถูกเปิดใช้งาน คุณต้องได้รับเชิญจากผู้ใช้งานอื่นที่มีอยู่เพื่อเข้าถึงฟอรั่มนี้", + "invite.error-invalid-data": "ข้อมูลการลงทะเบียนที่ได้รับไม่ตรงกับบันทึกของเรา กรุณาติดต่อผู้ดูแลระบบสำหรับข้อมูลเพิ่มเติม" } \ No newline at end of file diff --git a/public/language/th/reset_password.json b/public/language/th/reset_password.json index 7492ceccc4..0b50d2f758 100644 --- a/public/language/th/reset_password.json +++ b/public/language/th/reset_password.json @@ -1,16 +1,16 @@ { "reset-password": "รีเซ็ตรหัสผ่าน", - "update-password": "ปรับปรุงรหัสผ่าน", + "update-password": "แก้ไขรหัสผ่าน", "password-changed.title": "รหัสผ่านได้เปลี่ยนแปลงแล้ว", "password-changed.message": "

ตั้งค่ารหัสผ่านสำเร็จ กรุณาเข้าสู่ระบบอีกครั้ง", "wrong-reset-code.title": "รหัสรีเซ็ตไม่ถูกต้อง", "wrong-reset-code.message": "รหัสรีเซ็ตที่ได้รับไม่ถูกต้อง กรุณาลองใหม่อีกครั้งหรือ ขอรหัสรีเซ็ตใหม่", "new-password": "รหัสผ่านใหม่", "repeat-password": "ยืนยันรหัสผ่าน", - "changing-password": "Changing Password", + "changing-password": "กำลังเปลี่ยนรหัสผ่าน", "enter-email": "กรุณาใส่อีเมลของคุณ เราจะส่งอีเมลให้คุณพร้อมคำแนะนำเกี่ยวกับวิธีการรีเซ็ตบัญชีของคุณ", "enter-email-address": "ใส่อีเมล์", - "password-reset-sent": "If the specified address corresponds to an existing user account, a password reset email was sent. Please note that only one email will be sent per minute.", + "password-reset-sent": "ถ้าที่อยู่ที่ระบุตรงกับบัญชีที่มีอยู่แล้ว จะส่งอีเมลรีเซ็ตรหัสผ่านไปให้ โปรดเข้าใจว่าจะส่งอีเมลได้แค่ครั้งเดียวทุกหนึ่งนาที", "invalid-email": "อีเมล์ไม่ถูกต้อง / อีเมล์ไม่มีอยู่!", "password-too-short": "รหัสผ่านที่คุณกำหนดยังสั้นเกินไป กรุณากำหนดรหัสผ่านของคุณใหม่", "passwords-do-not-match": "รหัสผ่านทั้ง 2 ที่ใส่ไม่ตรงกัน", diff --git a/public/language/th/rewards.json b/public/language/th/rewards.json index f923cf1500..e7898c9534 100644 --- a/public/language/th/rewards.json +++ b/public/language/th/rewards.json @@ -1,10 +1,10 @@ { - "awarded-x-reputation": "You have been awarded %1 reputation", - "awarded-group-membership": "You have been added to the group %1", + "awarded-x-reputation": "คุณได้รับชื่อเสียงเพิ่มขึ้น %1", + "awarded-group-membership": "คุณถูกเพิ่มลงในกลุ่ม %1", - "essentials/user.reputation-conditional-value": "(Reputation %1 %2)", - "essentials/user.postcount-conditional-value": "(Post Count %1 %2)", - "essentials/user.lastonline-conditional-value": "(Last Online %1 %2)", - "essentials/user.joindate-conditional-value": "(Join Date %1 %2)", - "essentials/user.daysregistered-conditional-value": "(Days Registered %1 %2)" + "essentials/user.reputation-conditional-value": "(ชื่อเสียง %1 %2)", + "essentials/user.postcount-conditional-value": "(จำนวนโพสต์ %1 %2)", + "essentials/user.lastonline-conditional-value": "(ออนไลน์ล่าสุด %1 %2)", + "essentials/user.joindate-conditional-value": "(วันที่เข้าร่วม %1 %2)", + "essentials/user.daysregistered-conditional-value": "(จำนวนวันที่ลงทะเบียน %1 %2)" } \ No newline at end of file diff --git a/public/language/th/search.json b/public/language/th/search.json index cab3c226c2..3474c80771 100644 --- a/public/language/th/search.json +++ b/public/language/th/search.json @@ -1,44 +1,44 @@ { - "type-to-search": "Type to search", - "results-matching": "%1 ผลลัพธ์ ตรงตามที่ระบุ \"%2\", (%3 วินาที)", + "type-to-search": "พิมพ์เพื่อค้นหา", + "results-matching": "ผลลัพธ์ %1 รายการตรงตามที่ระบุ \"%2\" (%3 วินาที)", "no-matches": "ไม่พบผลลัพธ์ที่สอดคล้อง", "advanced-search": "การค้นหาแบบละเอียด", "in": "ใน", - "in-titles": "In titles", - "in-titles-posts": "In titles and posts", - "in-posts": "In posts", - "in-bookmarks": "In bookmarks", - "in-categories": "In categories", - "in-users": "In users", - "in-tags": "In tags", - "categories": "Categories", - "all-categories": "All categories", - "categories-x": "Categories: %1", - "categories-watched-categories": "Categories: Watched categories", - "type-a-category": "Type a category", - "tags": "Tags", - "tags-x": "Tags: %1", - "type-a-tag": "Type a tag", - "match-words": "Match words", - "match-all-words": "Match all words", - "match-any-word": "Match any word", - "all": "All", - "any": "Any", + "in-titles": "ในชื่อหัวข้อ", + "in-titles-posts": "ในชื่อหัวข้อและโพสต์", + "in-posts": "ในโพสต์", + "in-bookmarks": "ในบุ๊กมาร์ก", + "in-categories": "ในหมวดหมู่", + "in-users": "ในชื่อผู้ใช้งาน", + "in-tags": "ในแท็ก", + "categories": "หมวดหมู่", + "all-categories": "หมวดหมู่ทั้งหมด", + "categories-x": "หมวดหมู่: %1", + "categories-watched-categories": "หมวดหมู่: หมวดหมู่ที่เฝ้าดู", + "type-a-category": "พิมพ์หมวดหมู่", + "tags": "แท็ก", + "tags-x": "แท็ก: %1", + "type-a-tag": "พิมพ์ชื่อแท็ก", + "match-words": "คำที่ตรงกัน", + "match-all-words": "ต้องตรงกันทุกคำ", + "match-any-word": "ตรงกันคำใดคำหนึ่ง", + "all": "ทั้งหมด", + "any": "อย่างใดอย่างหนึ่ง", "posted-by": "บันทึกโดย", - "posted-by-usernames": "Posted by: %1", - "type-a-username": "Type a username", + "posted-by-usernames": "โพสต์โดย: %1", + "type-a-username": "พิมพ์ชื่อผู้ใช้งาน", "search-child-categories": "ค้นหาหมวดหมู่ย่อย", "has-tags": "มีแท็ก", "reply-count": "จำนวนข้อความตอบกลับ", - "replies": "Replies", - "replies-atleast-count": "Replies: At least %1", - "replies-atmost-count": "Replies: At most %1", + "replies": "การตอบกลับ", + "replies-atleast-count": "การตอบกลับ: อย่างน้อย %1", + "replies-atmost-count": "การตอบกลับ: อย่างมาก %1", "at-least": "อย่างน้อยที่สุด", "at-most": "อย่างมากที่สุด", "relevance": "ที่เกี่ยวข้อง", - "time": "Time", + "time": "เวลา", "post-time": "เวลาโพสต์", - "votes": "Votes", + "votes": "โหวด", "newer-than": "ใหม่กว่า", "older-than": "เก่ากว่า", "any-date": "วันที่ใดๆ", @@ -49,25 +49,25 @@ "three-months": "3 เดือน", "six-months": "6 เดือน", "one-year": "1 ปี", - "time-newer-than-86400": "Time: Newer than yesterday", - "time-older-than-86400": "Time: Older than yesterday", - "time-newer-than-604800": "Time: Newer than one week", - "time-older-than-604800": "Time: Older than one week", - "time-newer-than-1209600": "Time: Newer than two weeks", - "time-older-than-1209600": "Time: Older than two weeks", - "time-newer-than-2592000": "Time: Newer than one month", - "time-older-than-2592000": "Time: Older than one month", - "time-newer-than-7776000": "Time: Newer than three months", - "time-older-than-7776000": "Time: Older than three months", - "time-newer-than-15552000": "Time: Newer than six months", - "time-older-than-15552000": "Time: Older than six months", - "time-newer-than-31104000": "Time: Newer than one year", - "time-older-than-31104000": "Time: Older than one year", + "time-newer-than-86400": "เวลา: ใหม่กว่าเมื่อวาน", + "time-older-than-86400": "เวลา: เก่ากว่าเมื่อวาน", + "time-newer-than-604800": "เวลา: ไม่ถึง 1 สัปดาห์", + "time-older-than-604800": "เวลา: เก่าเกิน 1 สัปดาห์", + "time-newer-than-1209600": "เวลา: ไม่ถึง 2 สัปดาห์", + "time-older-than-1209600": "เวลา: เก่าเกิน 2 สัปดาห์", + "time-newer-than-2592000": "เวลา: ไม่ถึง 1 เดือน", + "time-older-than-2592000": "เวลา: เก่าเกิน 1 เดือน", + "time-newer-than-7776000": "เวลา: ไม่ถึง 3 เดือน", + "time-older-than-7776000": "เวลา: เก่าเกิน 3 เดือน", + "time-newer-than-15552000": "เวลา: ไม่ถึง 6 เดือน", + "time-older-than-15552000": "เวลา: เก่าเกิน 6 เดือน", + "time-newer-than-31104000": "เวลา: ไม่ถึง 1 ปี", + "time-older-than-31104000": "เวลา: เก่าเกิน 1 ปี", "sort-by": "จัดเรียงโดย", - "sort": "Sort", + "sort": "เรียงลำดับ", "last-reply-time": "เวลาตอบกลับล่าสุด", "topic-title": "หัวข้อกระทู้", - "topic-votes": "Topic votes", + "topic-votes": "จำนวนโหวดในกระทู้", "number-of-replies": "จำนวนข้อความตอบกลับ", "number-of-views": "จำนวนดู", "topic-start-date": "วันที่เริ่มกระทู้", @@ -75,36 +75,36 @@ "category": "หมวดหมู่", "descending": "เรียงจากมากไปน้อย", "ascending": "เรียงจากน้อยไปมาก", - "sort-by-relevance-desc": "Sort by: Relevance in descending order", - "sort-by-relevance-asc": "Sort by: Relevance in ascending order", - "sort-by-timestamp-desc": "Sort by: Post time in descending order", - "sort-by-timestamp-asc": "Sort by: Post time in ascending order", - "sort-by-votes-desc": "Sort by: Votes in descending order", - "sort-by-votes-asc": "Sort by: Votes in ascending order", - "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order", - "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order", - "sort-by-topic.title-desc": "Sort by: Topic title in descending order", - "sort-by-topic.title-asc": "Sort by: Topic title in ascending order", - "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order", - "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order", - "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order", - "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order", - "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order", - "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order", - "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order", - "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order", - "sort-by-user.username-desc": "Sort by: Username in descending order", - "sort-by-user.username-asc": "Sort by: Username in ascending order", - "sort-by-category.name-desc": "Sort by: Category in descending order", - "sort-by-category.name-asc": "Sort by: Category in ascending order", - "save": "Save", + "sort-by-relevance-desc": "เรียงตาม: ความเกี่ยวข้องจากมากไปหาน้อย", + "sort-by-relevance-asc": "เรียงตาม: ความเกี่ยวข้องจากน้อยไปหามาก", + "sort-by-timestamp-desc": "เรียงตาม: เวลาที่โพสต์จากมากไปหาน้อย", + "sort-by-timestamp-asc": "เรียงตาม: เวลาที่โพสต์จากน้อยไปหามาก", + "sort-by-votes-desc": "เรียงตาม: จำนวนโหวดจากมากไปหาน้อย", + "sort-by-votes-asc": "เรียงตาม: จำนวนโหวดจากน้อยไปหามาก", + "sort-by-topic.lastposttime-desc": "เรียงตาม: การตอบกลับล่าสุดจากมากไปหาน้อย", + "sort-by-topic.lastposttime-asc": "เรียงตาม: การตอบกลับล่าสุดจากน้อยไปหามาก", + "sort-by-topic.title-desc": "เรียงตาม: ชื่อกระทู้จากมากไปหาน้อย", + "sort-by-topic.title-asc": "เรียงตาม: ชื่อกระทู้จากน้อยไปหามาก", + "sort-by-topic.postcount-desc": "เรียงตาม: จำนวนตอบกลับจากมากไปหาน้อย", + "sort-by-topic.postcount-asc": "เรียงตาม: จำนวนตอบกลับจากน้อยไปหามาก", + "sort-by-topic.viewcount-desc": "เรียงตาม: ยอดวิวจากมากไปหาน้อย", + "sort-by-topic.viewcount-asc": "เรียงตาม: ยอดวิวจากน้อยไปหามาก", + "sort-by-topic.votes-desc": "เรียงตาม: จำนวนโหวดกระทู้จากมากไปหาน้อย", + "sort-by-topic.votes-asc": "เรียงตาม: จำนวนโหวดกระทู้จากน้อยไปหามาก", + "sort-by-topic.timestamp-desc": "เรียงตาม: วันที่เริ่มต้นกระทู้จากมากไปหาน้อย", + "sort-by-topic.timestamp-asc": "เรียงตาม: วันที่เริ่มต้นกระทู้จากน้อยไปหามาก", + "sort-by-user.username-desc": "เรียงตาม: ชื่อผู้ใช้งานจากมากไปหาน้อย", + "sort-by-user.username-asc": "เรียงตาม: ชื่อผู้ใช้งานจากน้อยไปหามาก", + "sort-by-category.name-desc": "เรียงตาม: หมวดหมู่จากมากไปหาน้อย", + "sort-by-category.name-asc": "เรียงตาม: หมวดหมู่จากน้อยไปหามาก", + "save": "บันทึก", "save-preferences": "บันทึกการตั้งค่า", "clear-preferences": "ล้างการตั้งค่า", "search-preferences-saved": "ค้นหาการตั้งค่าที่บันทึกไว้", "search-preferences-cleared": "ค้นหาการตั้งค่าที่ลบล้างไป", "show-results-as": "แสดงผลลัพธ์แบบ", - "show-results-as-topics": "Show results as topics", - "show-results-as-posts": "Show results as posts", - "see-more-results": "See more results (%1)", - "search-in-category": "Search in \"%1\"" + "show-results-as-topics": "แสดงผลลัพธ์เป็นกระทู้", + "show-results-as-posts": "แสดงผลลัพธ์เป็นโพสต์", + "see-more-results": "แสดงผลลัพธ์อีก (%1)", + "search-in-category": "ค้นหาใน \"%1\"" } \ No newline at end of file diff --git a/public/language/th/social.json b/public/language/th/social.json index 2ba690a187..7930476093 100644 --- a/public/language/th/social.json +++ b/public/language/th/social.json @@ -1,12 +1,12 @@ { - "sign-in-with-twitter": "Sign in with Twitter", - "sign-up-with-twitter": "Sign up with Twitter", - "sign-in-with-github": "Sign in with Github", - "sign-up-with-github": "Sign up with Github", - "sign-in-with-google": "Sign in with Google", - "sign-up-with-google": "Sign up with Google", - "log-in-with-facebook": "Log in with Facebook", - "continue-with-facebook": "Continue with Facebook", - "sign-in-with-linkedin": "Sign in with LinkedIn", - "sign-up-with-linkedin": "Sign up with LinkedIn" + "sign-in-with-twitter": "เข้าสู่ระบบด้วยบัญชี Twitter", + "sign-up-with-twitter": "สร้างบัญชีใหม่ด้วยบัญชี Twitter", + "sign-in-with-github": "เข้าสู่ระบบด้วยบัญชี Github", + "sign-up-with-github": "สร้างบัญชีใหม่ด้วยบัญชี Github", + "sign-in-with-google": "เข้าสู่ระบบด้วยบัญชี Google", + "sign-up-with-google": "สร้างบัญชีใหม่ด้วยบัญชี Google", + "log-in-with-facebook": "เข้าสู่ระบบด้วยบัญชี Facebook", + "continue-with-facebook": "ไปต่อโดยใช้บัญชี Facebook", + "sign-in-with-linkedin": "เข้าสู่ระบบด้วยบัญชี LinkedIn", + "sign-up-with-linkedin": "สร้างบัญชีใหม่ด้วยบัญชี LinkedIn" } \ No newline at end of file diff --git a/public/language/th/success.json b/public/language/th/success.json index 7751c7b027..06679166f3 100644 --- a/public/language/th/success.json +++ b/public/language/th/success.json @@ -1,7 +1,7 @@ { "success": "สำเร็จ", - "topic-post": "คุณลงข้อความสำเร็จแล้ว", - "post-queued": "Your post is queued for approval. You will get a notification when it is accepted or rejected.", - "authentication-successful": "การระบุตัวตนสำเร็จแล้ว", + "topic-post": "คุณโพสต์สำเร็จแล้ว", + "post-queued": "โพสต์ของคุณอยู่ในคิวรออนุมัติ คุณจะได้รับการแจ้งเตือนเมื่อถูกอนุมัติหรือปฏิเสธ", + "authentication-successful": "การตรวจสอบตัวตนสำเร็จแล้ว", "settings-saved": "การตั้งค่าได้ถูกบันทึกแล้ว" } \ No newline at end of file diff --git a/public/language/th/tags.json b/public/language/th/tags.json index 7e88e71010..4220445f4f 100644 --- a/public/language/th/tags.json +++ b/public/language/th/tags.json @@ -1,17 +1,17 @@ { - "all-tags": "All tags", - "no-tag-topics": "ไม่มีหัวข้อสนทนาที่เกี่ยวข้องกับป้ายคำศัพท์นี้", - "no-tags-found": "No tags found", - "tags": "ป้ายคำศัพท์", - "enter-tags-here": "Enter tags, %1 - %2 characters.", - "enter-tags-here-short": "ใส่ป้ายคำศัพท์ ...", - "no-tags": "ยังไม่มีป้ายคำศัพท์", - "select-tags": "Select Tags", - "tag-whitelist": "Tag Whitelist", - "watching": "Watching", - "not-watching": "Not Watching", - "watching.description": "Notify me of new topics.", - "not-watching.description": "Do not notify me of new topics.", - "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", - "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." + "all-tags": "แท็กทั้งหมด", + "no-tag-topics": "ไม่มีหัวข้อสนทนาที่ติดแท็กนี้", + "no-tags-found": "ไม่พบแท็ก", + "tags": "แท็ก", + "enter-tags-here": "ใส่แท็ก %1 - %2 ตัวอักษร", + "enter-tags-here-short": "ติดแท็ก ...", + "no-tags": "ยังไม่มีแท็ก", + "select-tags": "เลือกแท็ก", + "tag-whitelist": "แท็กที่ได้รับอนุญาต", + "watching": "เฝ้าดู", + "not-watching": "ไม่ได้เฝ้าดู", + "watching.description": "แจ้งเตือนฉันเมื่อมีกระทู้ใหม่", + "not-watching.description": "ไม่ต้องแจ้งเตือนฉันเมื่อมีกระทู้ใหม่", + "following-tag.message": "คุณจะได้รับการแจ้งเตือนเมื่อบางคนตั้งกระทู้โดยใช้แท็กนี้", + "not-following-tag.message": "คุณจะไม่ได้รับการแจ้งเตือนเมื่อบางคนตั้งกระทู้โดยใช้แท็กนี้" } \ No newline at end of file diff --git a/public/language/th/themes/harmony.json b/public/language/th/themes/harmony.json index 4e75b9f716..ad25121e17 100644 --- a/public/language/th/themes/harmony.json +++ b/public/language/th/themes/harmony.json @@ -1,19 +1,19 @@ { - "theme-name": "Harmony Theme", - "skins": "Skins", - "collapse": "Collapse", - "expand": "Expand", - "sidebar-toggle": "Sidebar Toggle", - "login-register-to-search": "Login or register to search.", - "settings.title": "Theme settings", - "settings.enableQuickReply": "Enable quick reply", - "settings.enableBreadcrumbs": "Enable breadcrumbs", - "settings.centerHeaderElements": "Center header elements", - "settings.mobileTopicTeasers": "Show topic teasers on mobile", - "settings.stickyToolbar": "Sticky toolbar", - "settings.stickyToolbar.help": "The toolbar on topic and category pages will stick to the top of the page", - "settings.autohideBottombar": "Auto hide bottom bar", - "settings.autohideBottombar.help": "The bottom bar on mobile view will be hidden when the page is scrolled down", - "settings.openSidebars": "Open sidebars", - "settings.chatModals": "Enable chat modals" + "theme-name": "ธีม Harmony", + "skins": "สกิน", + "collapse": "ย่อ", + "expand": "ขยาย", + "sidebar-toggle": "สลับตำแหน่งแถบข้าง", + "login-register-to-search": "เข้าสู่ระบบหรือสมัครบัญชีเพื่อค้นหา", + "settings.title": "การตั้งค่าธีม", + "settings.enableQuickReply": "เปิดใช้งานการตอบกลับทันที", + "settings.enableBreadcrumbs": "เปิดใช้งานแถบนำทาง", + "settings.centerHeaderElements": "ทำให้ข้อความส่วนหัวอยู่ตรงกลาง", + "settings.mobileTopicTeasers": "แสดงตัวอย่างเนื้อหากระทู้บนมือถือ", + "settings.stickyToolbar": "แถบเครื่องมือแบบ sticky", + "settings.stickyToolbar.help": "แถบเครื่องมือในหน้ากระทู้และหมวดหมู่จะอยู่ด้านบนสุดของหน้าเสมอ", + "settings.autohideBottombar": "ซ่อนแถบล่าง", + "settings.autohideBottombar.help": "แถบล่างบนมือถือจะถูกซ่อนเมื่อเลื่อนหน้าลง", + "settings.openSidebars": "เปิดแถบข้าง", + "settings.chatModals": "เปิดใช้งานหน้าต่างแชท" } \ No newline at end of file diff --git a/public/language/th/themes/persona.json b/public/language/th/themes/persona.json index e7d1945303..11e98dd070 100644 --- a/public/language/th/themes/persona.json +++ b/public/language/th/themes/persona.json @@ -1,10 +1,10 @@ { - "settings.title": "Theme settings", - "settings.intro": "You can customise your theme settings here. Settings are stored on a per-device basis, so you are able to have different settings on different devices (phone, tablet, desktop, etc.)", - "settings.mobile-menu-side": "Switch which side each mobile menu is on", - "settings.autoHidingNavbar": "Automatically hide the navbar on scroll", - "settings.autoHidingNavbar-xs": "Very small screens (e.g. phones in portrait mode)", - "settings.autoHidingNavbar-sm": "Smaller screens (e.g. phones, some tablets)", - "settings.autoHidingNavbar-md": "Medium sized screens (e.g. tablets in landscape mode)", - "settings.autoHidingNavbar-lg": "Larger screens (e.g. desktop computers)" + "settings.title": "การตั้งค่าธีม", + "settings.intro": "คุณสามารถปรับแต่งการตั้งค่าธีมที่นี่ การตั้งค่าจะเก็บแยกแต่ละอุปกรณ์ ดังนั้นคุณสามารถมีการตั้งค่าที่แตกต่างกันบนอุปกรณ์คนละตัว (มือถือ แทปเล็ต เดสก์ท็อป ฯลฯ)", + "settings.mobile-menu-side": "สลับว่าเมนูบนมือถืออยู่ด้านไหน", + "settings.autoHidingNavbar": "ซ่อนแถบนำทางอัตโนมัติขณะเลื่อนดู", + "settings.autoHidingNavbar-xs": "จอขนาดเล็กมาก (มือถือดูในแนวตั้ง)", + "settings.autoHidingNavbar-sm": "จอขนาดเล็ก (เช่น มือถือ แท็บเล็ตบางเครื่อง)", + "settings.autoHidingNavbar-md": "จอขนาดกลาง (เช่น แท็บเล็ตเมื่อดูในแนวนอน)", + "settings.autoHidingNavbar-lg": "จอขนาดใหญ่ (เช่น คอมพิวเตอร์เดสก์ท็อป)" } \ No newline at end of file diff --git a/public/language/th/top.json b/public/language/th/top.json index 6e1e05674e..01c880b29c 100644 --- a/public/language/th/top.json +++ b/public/language/th/top.json @@ -1,4 +1,4 @@ { - "title": "Top", - "no-top-topics": "No top topics" + "title": "อันดับสูงสุด", + "no-top-topics": "ไม่มีกระทู้ติดอันดับ" } \ No newline at end of file diff --git a/public/language/th/topic.json b/public/language/th/topic.json index b20dd2603f..bab6bbde82 100644 --- a/public/language/th/topic.json +++ b/public/language/th/topic.json @@ -1,91 +1,91 @@ { "topic": "กระทู้", - "title": "Title", + "title": "ชื่อหัวข้อ", "no-topics-found": "ไม่พบกระทู้", - "no-posts-found": "ไม่พบโพส", - "post-is-deleted": "ลบ Post นี้เรียบร้อยแล้ว!", + "no-posts-found": "ไม่พบโพสต์", + "post-is-deleted": "ลบโพสต์นี้เรียบร้อยแล้ว!", "topic-is-deleted": "กระทู้นี้ถูกลบไปแล้ว!", - "profile": "รายละเอียด", - "posted-by": "โพสโดย %1", - "posted-by-guest": "โพสโดย Guest", + "profile": "โปรไฟล์", + "posted-by": "โพสต์โดย %1", + "posted-by-guest": "โพสต์โดยแขกผู้มาเยือน", "chat": "แชท", "notify-me": "แจ้งเตือนเมื่อการตอบใหม่ในกระทู้นี้", - "quote": "คำอ้างอิง", + "quote": "อ้างถึงข้อความเดิม", "reply": "ตอบ", - "replies-to-this-post": "%1 คำตอบ", - "one-reply-to-this-post": "1 การตอบกลับ", + "replies-to-this-post": "ตอบกลับ %1 ครั้ง", + "one-reply-to-this-post": "ตอบกลับ 1 ครั้ง", "last-reply-time": "คำตอบล่าสุด", - "reply-options": "Reply options", + "reply-options": "ตัวเลือกการตอบ", "reply-as-topic": "ตอบโดยตั้งกระทู้ใหม่", "guest-login-reply": "เข้าสู่ระบบเพื่อตอบกลับ", - "login-to-view": "🔒 Log in to view", + "login-to-view": "🔒 เข้าสู้ระบบเพื่อดู", "edit": "แก้ไข", "delete": "ลบ", - "delete-event": "Delete Event", - "delete-event-confirm": "Are you sure you want to delete this event?", + "delete-event": "ลบอีเว้นท์", + "delete-event-confirm": "คุณต้องการจะลบอีเว้นท์นี้หรือไม่?", "purge": "ล้าง", "restore": "กู้", "move": "ย้าย", - "change-owner": "Change Owner", + "change-owner": "เปลี่ยนเจ้าของ", "fork": "แยก", "link": "ลิงค์", "share": "แชร์", "tools": "เครื่องมือ", "locked": "ถูกล็อก", "pinned": "ถูกปักหมุด", - "pinned-with-expiry": "Pinned until %1", - "scheduled": "Scheduled", - "deleted": "Deleted", - "moved": "ถูกย้าย", - "moved-from": "Moved from %1", - "copy-code": "Copy Code", + "pinned-with-expiry": "ถูกปักหมุดจนถึง %1", + "scheduled": "ตั้งเวลาแล้ว", + "deleted": "ถูกลบแล้ว", + "moved": "ถูกย้ายแล้ว", + "moved-from": "ถูกย้ายจาก %1", + "copy-code": "คัดลอกโค้ด", "copy-ip": "คัดลอก IP", "ban-ip": "แบน IP", "view-history": "แก้ไขประวัติ", - "wrote-ago": "wrote ", - "wrote-on": "wrote on ", - "replied-to-user-ago": "replied to %3 ", - "replied-to-user-on": "replied to %3 on ", - "user-locked-topic-ago": "%1 locked this topic %2", - "user-locked-topic-on": "%1 locked this topic on %2", - "user-unlocked-topic-ago": "%1 unlocked this topic %2", - "user-unlocked-topic-on": "%1 unlocked this topic on %2", - "user-pinned-topic-ago": "%1 pinned this topic %2", - "user-pinned-topic-on": "%1 pinned this topic on %2", - "user-unpinned-topic-ago": "%1 unpinned this topic %2", - "user-unpinned-topic-on": "%1 unpinned this topic on %2", - "user-deleted-topic-ago": "%1 deleted this topic %2", - "user-deleted-topic-on": "%1 deleted this topic on %2", - "user-restored-topic-ago": "%1 restored this topic %2", - "user-restored-topic-on": "%1 restored this topic on %2", - "user-moved-topic-from-ago": "%1 moved this topic from %2 %3", - "user-moved-topic-from-on": "%1 moved this topic from %2 on %3", - "user-queued-post-ago": "%1 queued post for approval %3", - "user-queued-post-on": "%1 queued post for approval on %3", - "user-referenced-topic-ago": "%1 referenced this topic %3", - "user-referenced-topic-on": "%1 referenced this topic on %3", - "user-forked-topic-ago": "%1 forked this topic %3", - "user-forked-topic-on": "%1 forked this topic on %3", - "bookmark-instructions": "คลิกที่นี่เพื่อกลับไปยังโพสต์ล่าสุดในหัวข้อนี้", - "flag-post": "Flag this post", - "flag-user": "Flag this user", - "already-flagged": "Already Flagged", - "view-flag-report": "View Flag Report", - "resolve-flag": "Resolve Flag", - "merged-message": "This topic has been merged into %2", - "forked-message": "This topic was forked from %2", - "deleted-message": "Topic นี้ถูกลบไปแล้ว เฉพาะผู้ใช้งานที่มีสิทธิ์ในการจัดการ Topic เท่านั้นที่จะมีสิทธิ์ในการเข้าชม", + "wrote-ago": "เขียนเมื่อ ", + "wrote-on": "เขียนเมื่อ ", + "replied-to-user-ago": "ตอบกลับไปยัง %3 เมื่อ ", + "replied-to-user-on": "ตอบกลับไปยัง %3 เมื่อ ", + "user-locked-topic-ago": "%1 ล็อกกระทู้นี้เมื่อ %2", + "user-locked-topic-on": "%1 ล็อกกระทู้นี้เมื่อ %2", + "user-unlocked-topic-ago": "%1 ปลดล็อกกระทู้นี้เมื่อ %2", + "user-unlocked-topic-on": "%1 ปลดล็อกกระทู้นี้เมื่อ %2", + "user-pinned-topic-ago": "%1 ปักหมุดกระทู้นี้เมื่อ %2", + "user-pinned-topic-on": "%1 ปักหมุดกระทู้นี้เมื่อ %2", + "user-unpinned-topic-ago": "%1 ยกเลิกปักหมุดกระทู้นี้เมื่อ %2", + "user-unpinned-topic-on": "%1 ยกเลิกปักหมุดกระทู้นี้เมื่อ %2", + "user-deleted-topic-ago": "%1 ลบกระทู้นี้เมื่อ %2", + "user-deleted-topic-on": "%1 ลบกระทู้นี้เมื่อ %2", + "user-restored-topic-ago": "%1 กู้คืนกระทู้นี้เมื่อ %2", + "user-restored-topic-on": "%1 กู้คืนกระทู้นี้เมื่อ %2", + "user-moved-topic-from-ago": "%1 ย้ายกระทู้นี้จาก %2 เมื่อ %3", + "user-moved-topic-from-on": "%1 ย้ายกระทู้นี้จาก %2 เมื่อ %3", + "user-queued-post-ago": "%1 โพสต์ อยู่ในคิว รออนุมัติเมื่อ %3", + "user-queued-post-on": "%1 โพสต์ อยู่ในคิว รออนุมัติเมื่อ %3", + "user-referenced-topic-ago": "%1 อ้างอิง กระทู้นี้เมื่อ %3", + "user-referenced-topic-on": "%1 อ้างอิง กระทู้นี้เมื่อ %3", + "user-forked-topic-ago": "%1 แยก กระทู้นี้เมื่อ %3", + "user-forked-topic-on": "%1 แยก กระทู้นี้เมื่อ %3", + "bookmark-instructions": "คลิกที่นี่เพื่อกลับไปยังโพสต์ที่อ่านล่าสุดในหัวข้อนี้", + "flag-post": "รายงานโพสต์นี้", + "flag-user": "รายงานผู้ใช้นี้", + "already-flagged": "ถูกรายงานอยู่แล้ว", + "view-flag-report": "ดูข้อมูลการรายงาน", + "resolve-flag": "จัดการรายงาน", + "merged-message": "กระทู้นี้ถูกรวมเข้าไปใน %2", + "forked-message": "กระทู้นี้แยกมาจาก %2", + "deleted-message": "กระทู้นี้ถูกลบไปแล้ว เฉพาะผู้ใช้งานที่มีสิทธิ์ในการจัดการกระทู้เท่านั้นที่จะมีสิทธิ์ในการเข้าชม", "following-topic.message": "คุณจะได้รับการแจ้งเตือนเมื่อมีคนโพสต์ในกระทู้นี้", "not-following-topic.message": "คุณจะเห็นกระทู้นี้ในรายการของกระทู้ที่ยังไม่ได้อ่าน แต่คุณจะไม่ได้รับการแจ้งเตือนเมื่่อมีคนตอบกระทู้นี้", "ignoring-topic.message": "คุณจะไม่เห็นกระทู้นี้ในรายการของกระทู้ที่ยังไม่ได้อ่านอีกต่อไป คุณจะได้รับการแจ้งเตือนเมื่อมีคนกล่าวถึงคุณหรือโพสต์ของคุณถูกโหวตขึ้น", "login-to-subscribe": "กรุณาลงทะเบียนหรือเข้าสู่ระบบเพื่อที่จะติดตามกระทู้นี้", "markAsUnreadForAll.success": "ทำเครื่องหมายว่ายังไม่ได้อ่านทั้งหมด", - "mark-unread": "ถูกมาร์คว่ายังไม่ได้อ่าน", - "mark-unread.success": "กระทู้ที่ถูกมาร์คว่ายังไม่ได้อ่าน", - "watch": "ติดตาม", - "unwatch": "ยังไม่ได้ติดตาม", - "watch.title": "ให้แจ้งเตือนเมื่อมีการตอบกลับ Topic นี้", - "unwatch.title": "ยกเลิกการติดตาม Topic นี้", + "mark-unread": "ทำเครื่องหมายว่ายังไม่ได้อ่าน", + "mark-unread.success": "กระทู้ถูกทำเครื่องหมายว่ายังไม่ได้อ่าน", + "watch": "เฝ้าดู", + "unwatch": "ยกเลิกการเฝ้าดู", + "watch.title": "ให้แจ้งเตือนเมื่อมีการตอบกลับกระทู้นี้", + "unwatch.title": "ยกเลิกการเฝ้าดูกระทู้นี้", "share-this-post": "แชร์โพสต์นี้", "watching": "กำลังดู", "not-watching": "ไม่ดูแล้ว", @@ -93,81 +93,81 @@ "watching.description": "เตือนฉันเมื่อมีคำตอบใหม่
แสดงกระทู้ในรายการที่ยังไม่ได้อ่าน", "not-watching.description": "อย่าเตือนฉันเมือมีคำตอบใหม่
แสดงกระทู้ในรายการที่ยังไม่ได้อ่านหากหมวดหมู่นี้ไม่ได้รับการเมินเฉย", "ignoring.description": "อย่าเตือนฉันเมื่อมีคำตอบใหม่
อย่าแสดงกระทู้ในรายการที่ยังไม่ได้อ่าน", - "thread-tools.title": "เครื่องมือช่วยจัดการ Topic", + "thread-tools.title": "เครื่องมือช่วยจัดการกระทู้", "thread-tools.markAsUnreadForAll": "มาร์คว่ายังไม่ยังอ่านทั้งหมด", "thread-tools.pin": "ปักหมุดกระทู้", "thread-tools.unpin": "เลิกปักหมุดกระทู้", "thread-tools.lock": "ล็อคกระทู้", "thread-tools.unlock": "ปลดล็อคกระทู้", "thread-tools.move": "ย้ายกระทู้", - "thread-tools.move-posts": "Move Posts", + "thread-tools.move-posts": "ย้ายโพสต์", "thread-tools.move-all": "ย้ายทั้งหมด", - "thread-tools.change-owner": "Change Owner", - "thread-tools.select-category": "เลือกประเภท", + "thread-tools.change-owner": "เปลี่ยนเจ้าของ", + "thread-tools.select-category": "เลือกหมวดหมู่", "thread-tools.fork": "แยกกระทู้", - "thread-tools.tag": "Tag Topic", + "thread-tools.tag": "แท็กกระทู้", "thread-tools.delete": "ลบกระทู้", "thread-tools.delete-posts": "ลบโพสต์", - "thread-tools.delete-confirm": "มั่นใจแล้วหรือไม่ที่จะลบ Topic นี้?", + "thread-tools.delete-confirm": "มั่นใจแล้วหรือไม่ที่จะลบกระทู้นี้นี้?", "thread-tools.restore": "กู้กระทู้", - "thread-tools.restore-confirm": "มั่นใจแล้วหรือไม่ที่จะกู้คืน Topic นี้?", + "thread-tools.restore-confirm": "มั่นใจแล้วหรือไม่ที่จะกู้คืนกระทู้นี้?", "thread-tools.purge": "ล้างกระทู้", "thread-tools.purge-confirm": "คุณแน่ใจแล้วใช้ไมว่าต้องการล้างกระทู้นี้?", "thread-tools.merge-topics": "รวมกระทู้", - "thread-tools.merge": "Merge Topic", - "topic-move-success": "This topic will be moved to \"%1\" shortly. Click here to undo.", - "topic-move-multiple-success": "These topics will be moved to \"%1\" shortly. Click here to undo.", - "topic-move-all-success": "All topics will be moved to \"%1\" shortly. Click here to undo.", - "topic-move-undone": "Topic move undone", - "topic-move-posts-success": "Posts will be moved shortly. Click here to undo.", - "topic-move-posts-undone": "Post move undone", + "thread-tools.merge": "รวมกระทู้", + "topic-move-success": "กระทู้นี้จะถูกย้ายไป \"%1\" ในอีกไม่นาน คลิกที่นี่เพื่อย้อนกลับเหมือนเดิม", + "topic-move-multiple-success": "กระทู้เหล่านี้จะถูกย้ายไป \"%1\" ในอีกไม่นาน คลิกที่นี่เพื่อย้อนกลับเหมือนเดิม", + "topic-move-all-success": "ทุกกระทู้จะถูกย้ายไป \"%1\" ในอีกไม่นาน คลิกที่นี่เพื่อย้อนกลับเหมือนเดิม", + "topic-move-undone": "ย้อนกลับการย้ายกระทู้แล้ว", + "topic-move-posts-success": "โพสต์จะถูกย้ายในอีกไม่นาน คลิกที่นี่เพื่อย้อนกลับเหมือนเดิม", + "topic-move-posts-undone": "ย้อนกลับการย้ายโพสต์แล้ว", "post-delete-confirm": "คุณแน่ใจแล้วใช่ไหมว่าต้องการลบโพสต์นี้", "post-restore-confirm": "คุณแน่ใจแล้วใช้ไหมว่าต้องการกู้คืนโพสต์นี้", "post-purge-confirm": "คุณแน่ใจแล้วใช่ไหมว่าต้องการล้างโพสต์นี้", - "pin-modal-expiry": "Expiration Date", - "pin-modal-help": "You can optionally set an expiration date for the pinned topic(s) here. Alternatively, you can leave this field blank to have the topic stay pinned until it is manually unpinned.", + "pin-modal-expiry": "วันหมดอายุ", + "pin-modal-help": "คุณสามารถเลือกจะตั้งค่าวันหมดอายุสำหรับกระทู้ปักหมุดที่นี่ คูณยังสามารถปล่อยให้ฟิลด์นี้ว่างเพื่อให้กระทู้ยังคงถูกปักหมดจนกว่าจะยกเลิกด้วยมือ", "load-categories": "กำลังโหลดหมวดหมู่", "confirm-move": "ย้าย", "confirm-fork": "แยก", "bookmark": "บุ๊กมาร์ก", "bookmarks": "บุ๊กมาร์ก", "bookmarks.has-no-bookmarks": "คุณยังไม่มีบุ๊กมาร์กใดๆเลย", - "copy-permalink": "Copy Permalink", + "copy-permalink": "คัดลอกลิงก์ถาวร", "loading-more-posts": "โหลดโพสเพิ่มเติม", "move-topic": "ย้ายกระทู้", "move-topics": "ย้ายกระทู้", "move-post": "ย้ายโพส", "post-moved": "โพสต์ถูกย้ายแล้ว!", "fork-topic": "แยกกระทู้", - "enter-new-topic-title": "Enter new topic title", - "fork-topic-instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic", + "enter-new-topic-title": "ใส่ชื่อกระทู้ใหม่", + "fork-topic-instruction": "คลิกที่โพสต์ที่คุณต้องการแยก ใส่ชื่อของกระทู้ใหม่และกดแยกกระทู้", "fork-no-pids": "ไม่มีโพสต์ที่เลือก!", - "no-posts-selected": "No posts selected!", - "x-posts-selected": "%1 post(s) selected", - "x-posts-will-be-moved-to-y": "%1 post(s) will be moved to \"%2\"", - "fork-pid-count": "%1 โพสต์(s) ที่เลือก", + "no-posts-selected": "ไม่มีโพสต์ที่เลือก!", + "x-posts-selected": "มี %1 โพสต์ถูกเลือก", + "x-posts-will-be-moved-to-y": "%1 โพสต์จะถูกย้ายไป \"%2\"", + "fork-pid-count": "มี %1 โพสต์ที่ถูกเลือก", "fork-success": "แตกกระทู้สำเร็จแล้ว! คลิกที่นี่เพื่อไปยั้งกระทู้ที่คุณแตกประเด็น", "delete-posts-instruction": "คลิกโพสต์ที่คุณต้องการลบ/ล้าง", - "merge-topics-instruction": "Click the topics you want to merge or search for them", - "merge-topic-list-title": "List of topics to be merged", - "merge-options": "Merge options", - "merge-select-main-topic": "Select the main topic", - "merge-new-title-for-topic": "New title for topic", - "topic-id": "Topic ID", - "move-posts-instruction": "Click the posts you want to move then enter a topic ID or go to the target topic", - "move-topic-instruction": "Select the target category and then click move", - "change-owner-instruction": "Click the posts you want to assign to another user", + "merge-topics-instruction": "คลิกที่กระทู้ที่คุณต้องการจะรวม หรือค้นหามัน", + "merge-topic-list-title": "รายการกระทู้ที่จะรวมกัน", + "merge-options": "ตัวเลือกการรวม", + "merge-select-main-topic": "เลือกกระทู้หลัก", + "merge-new-title-for-topic": "ชื่อใหม่สำหรับกระทู้", + "topic-id": "รหัสกระทู้", + "move-posts-instruction": "คลิกที่โพสต์ที่คุณต้องการย้ายแล้วใส่รหัสกระทู้ หรือไปยังกระทู้ปลายทาง", + "move-topic-instruction": "เลือกหมวดหมู่ปลายทางและคลิกย้าย", + "change-owner-instruction": "คลิกที่โพสต์ที่คุณต้องการมอบหมายให้ผู้ใช้งานอีกคน", "composer.title-placeholder": "ป้อนชื่อกระทู้ของคุณที่นี่ ...", - "composer.handle-placeholder": "Enter your name/handle here", - "composer.hide": "Hide", + "composer.handle-placeholder": "ป้อนชื่อหรือชื่อเล่นของคุณที่นี่", + "composer.hide": "ซ่อน", "composer.discard": "ยกเลิก", "composer.submit": "ส่ง", - "composer.additional-options": "Additional Options", - "composer.post-later": "Post Later", - "composer.schedule": "Schedule", + "composer.additional-options": "ตัวเลือกเพิ่มเติม", + "composer.post-later": "โพสต์ทีหลัง", + "composer.schedule": "ตั้งเวลา", "composer.replying-to": "ตอบไปยัง %1", "composer.new-topic": "กระทู้ใหม่", - "composer.editing-in": "Editing post in %1", + "composer.editing-in": "แก้ไขโพสต์ใน %1", "composer.uploading": "กำลังอัพโหลด ...", "composer.thumb-url-label": "วาง URL ของภาพของกระทู้นี้", "composer.thumb-title": "เพิ่มภาพให้กับกระทู้นี้", @@ -175,18 +175,18 @@ "composer.thumb-file-label": "หรืออัปโหลดไฟล์", "composer.thumb-remove": "ล้างฟิลด์", "composer.drag-and-drop-images": "ลากและวางภาพที่นี่", - "more-users-and-guests": "ผู้ใช้อีก %1 คน (s) และ %2 guest(s)", - "more-users": "อีก %1 ผู้ใช้(s)", - "more-guests": "อีก %1 guest(s)", - "users-and-others": "%1 และคนอื่นๆอีก %2", + "more-users-and-guests": "ผู้ใช้อีก %1 คน และ ผู้มาเยือนอีก %2 คน", + "more-users": "ผู้ใช้อีก %1 คน", + "more-guests": "ผู้มาเยือนอีก %1 คน", + "users-and-others": "%1 และคนอื่นๆอีก %2 คน", "sort-by": "เรียงตาม", "oldest-to-newest": "เก่าสุดไปยังใหม่สุด", "newest-to-oldest": "ใหม่สุดไปยังเก่าสุด", - "recently-replied": "Recently Replied", - "recently-created": "Recently Created", - "most-votes": "Most Votes", - "most-posts": "Most Posts", - "most-views": "Most Views", + "recently-replied": "เพิ่งตอบล่าสุด", + "recently-created": "เพิ่งสร้างล่าสุด", + "most-votes": "โหวดมากสุด", + "most-posts": "โพสต์มากสุด", + "most-views": "จำนวนวิวมากสุด", "stale.title": "ตั้งกระทู้ใหม่แทนไหม?", "stale.warning": "กระทู้ที่คุณกำลังตอบเก่าไปหน่อยนะ อยากจะลองตั้งกระทู้ใหม่แทนไหมล่ะ? แล้วก็อ้างอิงกระทู้นี้ไปยังคำตอบของคุณ", "stale.create": "ตั้งกระทู้ใหม่", @@ -195,26 +195,26 @@ "diffs.title": "แก้ไขประวัติโพสต์", "diffs.description": "โพสนี้มี %1 การแก้ไข คลิกที่การแก้ไขด้านล่างเพื่อดูเนื้อหาโพสต์ตามเวลาที่เลือก", "diffs.no-revisions-description": "โพสนี้มี %1การแก้ไข", - "diffs.current-revision": "current revision", - "diffs.original-revision": "original revision", - "diffs.restore": "Restore this revision", - "diffs.restore-description": "A new revision will be appended to this post's edit history after restoring.", - "diffs.post-restored": "Post successfully restored to earlier revision", - "diffs.delete": "Delete this revision", - "diffs.deleted": "Revision deleted", - "timeago-later": "%1 later", - "timeago-earlier": "%1 earlier", - "first-post": "First post", - "last-post": "Last post", - "go-to-my-next-post": "Go to my next post", - "no-more-next-post": "You don't have more posts in this topic", - "open-composer": "Open composer", - "post-quick-reply": "Quick reply", - "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread", - "upvote-post": "Upvote post", - "downvote-post": "Downvote post", - "post-tools": "Post tools", - "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "diffs.current-revision": "รุ่นปัจจุบัน", + "diffs.original-revision": "รุ่นแรก", + "diffs.restore": "คืนกลับเป็นรุ่นนี้", + "diffs.restore-description": "รุ่นใหม่จะนำไปต่อท้ายในประวัติการแก้ไขของโพสต์นี้หลังจากคืนกลับแล้ว", + "diffs.post-restored": "การคืนกลับโพสต์เป็นรุ่นก่อนหน้าสำเร็จ", + "diffs.delete": "ลบรุ่นนี้", + "diffs.deleted": "รุ่นถูกลบแล้ว", + "timeago-later": "ถัดไป %1", + "timeago-earlier": "ก่อนหน้า %1", + "first-post": "โพสต์แรก", + "last-post": "โพสต์ล่าสุด", + "go-to-my-next-post": "ไปโพสต์ถัดไปของฉัน", + "no-more-next-post": "คุณได้มีโพสต์อีกในกระทู้นี้", + "open-composer": "เปิดคอมโพสเซอร์", + "post-quick-reply": "ตอบกลับอย่างรวดเร็ว", + "navigator.index": "โพสต์ %1 จากทั้งหมด %2", + "navigator.unread": "ยังไม่ได้อ่าน %1", + "upvote-post": "โหวดขึ้นโพสต์นี้", + "downvote-post": "โหวดลงโพสต์นี้", + "post-tools": "เครื่องมือโพสต์", + "unread-posts-link": "ลิงก์ไปโพสต์ที่ยังไม่ได้อ่าน", + "thumb-image": "รูปย่อของกระทู้" } \ No newline at end of file diff --git a/public/language/th/unread.json b/public/language/th/unread.json index 91833ee24d..50ac5d389f 100644 --- a/public/language/th/unread.json +++ b/public/language/th/unread.json @@ -1,16 +1,16 @@ { "title": "ไม่ได้อ่าน", - "no-unread-topics": "ไม่มีกระทู้ที่ยังไม่ได้อ่านเป็น", + "no-unread-topics": "ไม่มีกระทู้ที่ยังไม่ได้อ่าน", "load-more": "โหลดเพิ่มเติม", "mark-as-read": "ทำเครื่องหมายว่าอ่านแล้ว", - "mark-as-unread": "Mark as Unread", + "mark-as-unread": "ทำเครื่องหมายว่ายังไม่ได้อ่าน", "selected": "เลือก", "all": "ทั้งหมด", "all-categories": "หมวดหมู่ทั้งหมด", - "topics-marked-as-read.success": "Topic ถูกทำเครื่องหมายว่าอ่านแล้วเรียบร้อย", + "topics-marked-as-read.success": "กระทู้ทั้งหมดถูกทำเครื่องหมายว่าอ่านแล้วเรียบร้อย", "all-topics": "กระทู้ทั้งหมด", "new-topics": "ตั้งกระทู้ใหม่", - "watched-topics": "กระทู้ที่ดูแล้ว", + "watched-topics": "กระทู้ที่เฝ้าดู", "unreplied-topics": "กระทู้ที่ไม่ได้ตอบ", "multiple-categories-selected": "เลือกหลายรายการ" } \ No newline at end of file diff --git a/public/language/th/uploads.json b/public/language/th/uploads.json index 8b189723fb..7415fed7a7 100644 --- a/public/language/th/uploads.json +++ b/public/language/th/uploads.json @@ -3,7 +3,7 @@ "select-file-to-upload": "กรุณาเลือกไฟล์ที่จะอัพโหลด", "upload-success": "อัพโหลดไฟล์เรียบร้อยแล้ว", "maximum-file-size": "มากที่สุดได้ %1 kb", - "no-uploads-found": "No uploads found", - "public-uploads-info": "Uploads are public, all visitors can see them.", - "private-uploads-info": "Uploads are private, only logged in users can see them." + "no-uploads-found": "ไม่พบการอัพโหลด", + "public-uploads-info": "อัพโหลดเป็นสาธารณะ ทุกคนสามารถมองเห็นได้", + "private-uploads-info": "อัพโหลดเป็นส่วนตัว เฉพาะผู้ใช้ที่ล็อกอินเท่านั้นที่จะมองเห็น" } \ No newline at end of file diff --git a/public/language/th/user.json b/public/language/th/user.json index 3690fe6304..e68b9dc4f0 100644 --- a/public/language/th/user.json +++ b/public/language/th/user.json @@ -1,7 +1,9 @@ { - "user-menu": "User menu", + "user-menu": "เมนูผู้ใช้งาน", "banned": "ถูกแบน", - "muted": "Muted", + "unbanned": "ถูกปลดแบน", + "muted": "ถูกจำกัดการโพสต์", + "unmuted": "ถูกยกเลิกจำกัดการโพสต์", "offline": "ออฟไลน์", "deleted": "ลบแล้ว", "username": "ชื่อผู้ใช้", @@ -10,22 +12,22 @@ "email": "อีเมล์", "confirm-email": "ยืนยันอีเมล์", "account-info": "ข้อมูลบัญชี", - "admin-actions-label": "Administrative Actions", + "admin-actions-label": "เครื่องมือผู้ดูแลระบบ", "ban-account": "แบนบัญชี", "ban-account-confirm": "คุณต้องการแบนผู้ใช้นี้หรือไม่?", "unban-account": "ปลดแบน", - "mute-account": "Mute Account", - "unmute-account": "Unmute Account", + "mute-account": "จำกัดการโพสต์", + "unmute-account": "ยกเลิกการจำกัดการโพสต์", "delete-account": "ลบบัญชี", - "delete-account-as-admin": "Delete Account", - "delete-content": "Delete Account Content", - "delete-all": "Delete Account and Content", - "delete-account-confirm": "Are you sure you want to anonymize your posts and delete your account?
This action is irreversible and you will not be able to recover any of your data

Enter your password to confirm that you wish to destroy this account.", - "delete-this-account-confirm": "Are you sure you want to delete this account while leaving its contents behind?
This action is irreversible, posts will be anonymized, and you will not be able to restore post associations with the deleted account

", - "delete-account-content-confirm": "Are you sure you want to delete this account's content (posts/topics/uploads)?
This action is irreversible and you will not be able to recover any data

", - "delete-all-confirm": "Are you sure you want to delete this account and all of its content (posts/topics/uploads)?
This action is irreversible and you will not be able to recover any data

", + "delete-account-as-admin": "ลบบัญชี", + "delete-content": "ลบเนื้อหาบัญชี", + "delete-all": "ลบบัญชีและเนื้อหา", + "delete-account-confirm": "คุณต้องการทำให้โพสต์ของคุณเป็นโพสต์นิรนามและลบบัญชีของคุณหรือไม่?
การกระทำนี้ไม่สามารถย้อนกลับได้ และคุณไม่สามารถกู้ข้อมูลของคุณอีก

โปรดป้อนรหัสผ่านเพื่อยืนยันว่าคุณต้องการทำลายบัญชีนี้ทิ้ง", + "delete-this-account-confirm": "คุณต้องการจะลบบัญชีนี้และปล่อยเนื้อหาที่เคยโพสต์ไว้หรือไม่?
การกระทำนี้ไม่สามารถย้อนกลับได้ และคุณจะไม่สามารถกู้คืนความสัมพันธ์ระหว่างโพสต์กับบัญชีที่ถูกลบ

", + "delete-account-content-confirm": "คุณต้องการลบเนื้อหา (โพสต์/กระทู้/ข้อมูลที่อัพโหลด) ของคุณหรือไม่?
การกระทำนี้ไม่สามารถย้อนกลับได้ และคุณไม่สามารถกู้คืนข้อมูลใดๆได้

", + "delete-all-confirm": "คุณต้องการลบบัญชีนี้และเนื้อหา (โพสต์/กระทู้/ข้อมูลที่อัพโหลด) หรือไม่?
การกระทำนี้ไม่สามารถย้อนกลับได้ และคุณไม่สามารถกู้คืนข้อมูลใดๆได้

", "account-deleted": "บัญชีถูกลบแล้ว", - "account-content-deleted": "Account content deleted", + "account-content-deleted": "เนื้อหาของบัญชีถูกลบแล้ว", "fullname": "ชื่อเต็ม", "website": "เว็บไซต์", "location": "สถานที่", @@ -36,19 +38,19 @@ "profile-views": "ดูข้อมูลส่วนตัว", "reputation": "ชื่อเสียง", "bookmarks": "ที่คั่นหน้า", - "watched-categories": "Watched categories", - "watched-tags": "Watched tags", - "change-all": "Change All", + "watched-categories": "หมวดหมู่ที่เฝ้าดู", + "watched-tags": "แท็กที่เฝ้าดู", + "change-all": "เปลี่ยนทั้งหมด", "watched": "ดูแล้ว", "ignored": "ยกเว้นแล้ว", - "default-category-watch-state": "Default category watch state", + "default-category-watch-state": "ค่าเริ่มต้นของสถานะการเฝ้าดู", "followers": "คนติดตาม", "following": "ติดตาม", - "blocks": "Blocks", - "blocked-users": "Blocked users", - "block-toggle": "Toggle Block", - "block-user": "Block User", - "unblock-user": "Unblock User", + "blocks": "บล็อก", + "blocked-users": "ผู้ใช้งานที่ถูกบล็อก", + "block-toggle": "สลับการบล็อก", + "block-user": "บล็อกผู้ใช้งาน", + "unblock-user": "ยกเลิกการบล็อกผู้ใช้งาน", "aboutme": "เกี่ยวกับฉัน", "signature": "ลายเซ็น", "birthday": "วันเกิด", @@ -63,8 +65,8 @@ "change-picture": "เปลี่ยนรูป", "change-username": "เปลี่ยนชื่อผู้ใช้", "change-email": "เปลี่ยนอีเมล", - "email-updated": "Email Updated", - "email-same-as-password": "Please enter your current password to continue – you've entered your new email again", + "email-updated": "อัพเดทอีเมลแล้ว", + "email-same-as-password": "โปรดป้อนรหัสผ่านปัจจุบันของคุณเพื่อไปต่อ – คุณได้ป้อนอีเมลของคุณอีกครั้ง", "edit": "แก้ไข", "edit-profile": "แก้ไขข้อมูลส่วนตัว", "default-picture": "แก้ไขไอคอน", @@ -72,19 +74,19 @@ "upload-new-picture": "อัพโหลดรูปใหม่", "upload-new-picture-from-url": "อัปโหลดรูปจาก URL", "current-password": "รหัสผ่านปัจจุบัน", - "new-password": "New Password", + "new-password": "รหัสผ่านใหม่", "change-password": "เปลี่ยนรหัสผ่าน", "change-password-error": "รหัสผ่านใช้ไม่ได้", "change-password-error-wrong-current": "รหัสผ่านปัจจุบันไม่ถูกต้อง", "change-password-error-match": "รหัสผ่านต้องเหมือนกัน", - "change-password-error-privileges": "คุณไม่มีสิทธิในการเปลี่ยนรหัสผ่าน", + "change-password-error-privileges": "คุณไม่มีสิทธิเปลี่ยนรหัสผ่านนี้", "change-password-success": "รหัสผ่านของคุณได้รับการแก้ไขแล้ว", "confirm-password": "ยืนยันรหัสผ่าน", "password": "รหัสผ่าน", "username-taken-workaround": "ชื้อผู้ใช้นี้ถูกใช้แล้ว เราทำการแก้ไขชื่อผู้ใช้ของคุณเล็กน้อยเป็น %1", "password-same-as-username": "คุณใช้รหัสผ่านเดียวกับชื่อผู้ใช้ กรุณาเปลี่ยนรหัสผ่านใหม่", "password-same-as-email": "คุณใช้รหัสผ่านเดียวกับอีเมล กรุณาเปลี่ยนรหัสผ่านใหม่", - "weak-password": "พาสเวิร์ดเดาได้ง่าย", + "weak-password": "รหัสผ่านเดาได้ง่าย", "upload-picture": "อัพโหลดรูป", "upload-a-picture": "อัพโหลดรูป", "remove-uploaded-picture": "ลบภาพที่อัพโหลดไว้", @@ -92,124 +94,129 @@ "remove-cover-picture-confirm": "คุณต้องการลบภาพหน้าปกใช่หรือไม่?", "crop-picture": "ตัดภาพ", "upload-cropped-picture": "ตัดภาพและอัพโหลด", - "avatar-background-colour": "Avatar background colour", + "avatar-background-colour": "สีพื้นของรูปอวาตาร์", "settings": "ตั้งค่า", "show-email": "แสดงอีเมลของฉัน", "show-fullname": "แสดงชื่อจริงของฉัน", "restrict-chats": "รับข้อความสนทนาจากคนที่ฉันติดตามเท่านั้น", - "digest-label": "สมัครรับข่าวสารจาก Digest", - "digest-description": "สมัครรับอีเมลอัพเดทข้อมูลของบอร์ดสนทนา (ข้อความแจ้งเตือนและหัวข้อใหม่ๆ) ตามรายการที่ตั้งไว้", + "digest-label": "สมัครรับสรุปเนื้อหา", + "digest-description": "สมัครรับอีเมลอัพเดทข้อมูลของบอร์ดสนทนา (ข้อความแจ้งเตือนและกระทู้ใหม่ๆ) ตามเวลาที่ตั้งไว้", "digest-off": "ปิด", "digest-daily": "รายวัน", "digest-weekly": "รายสัปดาห์", - "digest-biweekly": "Bi-Weekly", + "digest-biweekly": "รายสองสัปดาห์", "digest-monthly": "รายเดือน", "has-no-follower": "ผู้ใช้รายนี้ไม่มีใครติดตาม :(", "follows-no-one": "ผู้ใช้รายนี้ไม่ติดตามใคร :(", - "has-no-posts": "ผู้ใช้นี้ไม่ได้โพสต์ข้อความใดๆ", - "has-no-best-posts": "This user does not have any upvoted posts yet.", - "has-no-topics": "ผู้ใช้นี้ยังไม่เคยตั้งกระทู้ใดๆ", - "has-no-watched-topics": "ผู้ใช้นี้ไม่ได้ติดตามกระทู้ใดๆ", - "has-no-ignored-topics": "ผู้ใช้นี้ไม่ได้ละเว้นกระทู้ใดๆ", - "has-no-upvoted-posts": "ผู้ใช้นี้ไม่ได้โหวตขึ้นให้ข้อความใดๆ", - "has-no-downvoted-posts": "ผู้ใช้นี้ไม่ได้โหวตลงให้ข้อความใดๆ", - "has-no-controversial-posts": "This user does not have any downvoted posts yet.", - "has-no-blocks": "You have blocked no users.", - "email-hidden": "ซ่อนอีเมล", + "has-no-posts": "ผู้ใช้รายนี้ยังไม่ได้โพสต์ข้อความใดๆ", + "has-no-best-posts": "ผู้ใช้รายนี้ยังไม่มีโพสต์ที่ได้รับโหวดขึ้นเลย", + "has-no-topics": "ผู้ใช้รายนี้ยังไม่เคยตั้งกระทู้ใดๆ", + "has-no-watched-topics": "ผู้ใช้รายนี้ไม่ได้ติดตามกระทู้ใดๆ", + "has-no-ignored-topics": "ผู้ใช้รายนี้ไม่ได้ละเว้นกระทู้ใดๆ", + "has-no-upvoted-posts": "ผู้ใช้รายนี้ไม่ได้โหวตขึ้นให้ข้อความใดๆ", + "has-no-downvoted-posts": "ผู้ใช้รายนี้ไม่ได้โหวตลงให้ข้อความใดๆ", + "has-no-controversial-posts": "ผู้ใช้รายนี้ยังไม่มีโพสต์ที่ได้รับโหวดลงเลย", + "has-no-blocks": "คุณไม่ได้บล็อกผู้ใช้งานใด", + "email-hidden": "อีเมลถูก", "hidden": "ซ่อน", "paginate-description": "ใช้การแบ่งหน้ากระทู้และข้อความแทนการเลื่อนต่อเรื่อยๆ", "topics-per-page": "จำนวนกระทู้ต่อหน้า", "posts-per-page": "จำนวนข้อความต่อหน้า", - "category-topic-sort": "Category topic sort", - "topic-post-sort": "Topic post sort", + "category-topic-sort": "การเรียงกระทู้ในหมวดหมู่", + "topic-post-sort": "การเรียงโพสต์ในกระทู้", "max-items-per-page": "สูงสุด %1", "acp-language": "ภาษาในหน้าผู้ดูแลระบบ", - "notifications": "Notifications", - "upvote-notif-freq": "แจ้งเตือนความถี่โหวตขึ้น", + "notifications": "การแจ้งเตือน", + "upvote-notif-freq": "ความถี่การแจ้งเตือนโหวตขึ้น", "upvote-notif-freq.all": "โหวตขึ้นทั้งหมด", - "upvote-notif-freq.first": "First Per Post", - "upvote-notif-freq.everyTen": "ทุกๆ 10 โหวตขึ้น", - "upvote-notif-freq.threshold": "On 1, 5, 10, 25, 50, 100, 150, 200...", + "upvote-notif-freq.first": "ครั้งแรกของแต่ละโพสต์", + "upvote-notif-freq.everyTen": "ทุกๆการโหวตขึ้น 10 ครั้ง", + "upvote-notif-freq.threshold": "ทุกๆ 1, 5, 10, 25, 50, 100, 150, 200...", "upvote-notif-freq.logarithmic": "ทุกๆ 10, 100, 1000...", "upvote-notif-freq.disabled": "ปิด", "browsing": "เปิดดูการตั้งค่า", "open-links-in-new-tab": "เปิดลิงค์ในแท็บใหม่", - "enable-topic-searching": "เปิดใช้การค้นหาแบบ In-Topic", + "enable-topic-searching": "เปิดใช้การค้นหาภายในกระทู้", "topic-search-help": "หากเปิดใช้งาน, \"การค้นหาภายในกระทู้\" จะแทนที่ระบบ \"การค้นหาจากค่าเริ่มต้นของเบราเซอร์\" และจะทำให้คุณค้นหาข้อมูลต่างๆภายในกระทู้ได้ แทนที่จะเป็นการหาแค่สิ่งที่แสดงบนหน้าจอเท่านั้น", - "update-url-with-post-index": "Update url with post index while browsing topics", + "update-url-with-post-index": "อัพเดท url ด้วย post index ในขณะที่ดูกระทู้", "scroll-to-my-post": "หลังจากได้ทำการโพสต์ตอบกลับ ให้แสดงโพสต์ใหม่", "follow-topics-you-reply-to": "ดูกระทู้ที่คุณตอบ", "follow-topics-you-create": "ดูกระทู้ที่คุณตั้ง", "grouptitle": "ชื่อกลุ่ม", - "group-order-help": "Select a group and use the arrows to order titles", - "show-group-title": "Show group title", - "hide-group-title": "Hide group title", - "order-group-up": "Order group up", - "order-group-down": "Order group down", + "group-order-help": "เลือกกลุ่มและใช้ลูกครเพื่อเรียงลำดับชื่อ", + "show-group-title": "แสดงชื่อกลุ่ม", + "hide-group-title": "ซ่อนชื่อกลุ่ม", + "order-group-up": "เรียงลำดับกลุ่มจากน้อยไปหามาก", + "order-group-down": "เรียงลำดับกลุ่มจากมากไปหาน้อย", "no-group-title": "ไม่มีชื่อกลุ่ม", "select-skin": "เลือกสกิน", - "default": "Default (%1)", - "no-skin": "No Skin", + "default": "ค่าเริ่มต้น (%1)", + "no-skin": "ไม่มีสกิน", "select-homepage": "เลือกหน้าแรก", "homepage": "หน้าแรก", "homepage-description": "เลือกหน้าที่จะใช้เป็นหน้าแรกของฟอรั่ม หรือเลือก None เพื่อใช้ค่าเริ่มต้น", "custom-route": "กำหนดเส้นทางไปหน้าแรกเอง", - "custom-route-help": "Enter a route name here, without any preceding slash (e.g. \"recent\" or \"category/2/general-discussion\")", + "custom-route-help": "ใส่ชื่อ route ตรงนี้โดยที่ไม่มีเครื่องหมาาย / ข้างหน้า (เช่น \"recent\" หรือ \"category/2/general-discussion\")", "sso.title": "บริการ Single Sign-on", "sso.associated": "เกี่ยวข้องกับ", "sso.not-associated": "คลิกที่นี่เพื่อเชื่อมโยงกับ", "sso.dissociate": "แยกตัวออก", "sso.dissociate-confirm-title": "ยืนยันการแยกตัวออก", "sso.dissociate-confirm": "คุณแน่ใจหรือไม่ว่าต้องการแยกบัญชีออกจาก %1?", - "info.latest-flags": "ปักธงล่าสุด", - "info.no-flags": "ไม่พบโพสต์ที่ถูกปักธง", + "info.latest-flags": "รายงานล่าสุด", + "info.profile": "โปรไฟล์", + "info.post": "โพสต์", + "info.view-flag": "ดูรายงาน", + "info.reported-by": "ถูกรายงานโดย:", + "info.no-flags": "ไม่พบโพสต์ที่ถูกรายงาน", "info.ban-history": "ประวัติแบนล่าสุด", "info.no-ban-history": "ผู้ใช้นี้ถูกแบนแล้ว", "info.banned-until": "แบนจนกว่า %1", - "info.banned-expiry": "Expiry", + "info.banned-expiry": "หมดอายุ", + "info.ban-expired": "การแบนหมดอายุ", "info.banned-permanently": "แบนอย่างถาวร", "info.banned-reason-label": "เหตุผล", - "info.banned-no-reason": "ไม่มีเหตุผล", - "info.mute-history": "Recent Mute History", - "info.no-mute-history": "This user has never been muted", - "info.muted-until": "Muted until %1", - "info.muted-expiry": "Expiry", - "info.muted-no-reason": "No reason given.", + "info.banned-no-reason": "ไม่ได้ให้เหตุผลไว้", + "info.mute-history": "ประวัติการถูกจำกัดการโพสต์", + "info.no-mute-history": "ผู้ใช้รายนี้ไม่เคยถูกจำกัดการโพสต์", + "info.muted-until": "ถูกจำกัดการโพสต์จนถึง %1", + "info.muted-expiry": "หมดอายุ", + "info.muted-no-reason": "ไม่ได้ให้เหตุผลไว้", "info.username-history": "ประวัติผู้ใช้", "info.email-history": "ประวัติอีเมล์", - "info.moderation-note": "โน๊ตของ Moderation", - "info.moderation-note.success": "โน้ตของ Moderation ถูกบันทึกแล้ว", + "info.moderation-note": "โน๊ตของผู้ควบคุม", + "info.moderation-note.success": "โน๊ตของผู้ควบคุมถูกบันทึกแล้ว", "info.moderation-note.add": "เพิ่มโน้ต", - "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.", - "revoke-session": "Revoke Session", - "browser-version-on-platform": "%1 %2 on %3", - "consent.title": "Your Rights & Consent", - "consent.lead": "This community forum collects and processes your personal information.", - "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.

We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights & Consent page.

If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.", - "consent.email-intro": "Occasionally, we may send emails to your registered email address in order to provide updates and/or to notify you of new activity that is pertinent to you. You can customise the frequency of the community digest (including disabling it outright), as well as select which types of notifications to receive via email, via your user settings page.", - "consent.digest-frequency": "Unless explicitly changed in your user settings, this community delivers email digests every %1.", - "consent.digest-off": "Unless explicitly changed in your user settings, this community does not send out email digests", - "consent.received": "You have provided consent for this website to collect and process your information. No additional action is required.", - "consent.not-received": "You have not provided consent for data collection and processing. At any time this website's administration may elect to delete your account in order to become compliant with the General Data Protection Regulation.", - "consent.give": "Give consent", - "consent.right-of-access": "You have the Right of Access", - "consent.right-of-access-description": "You have the right to access any data collected by this website upon request. You can retrieve a copy of this data by clicking the appropriate button below.", - "consent.right-to-rectification": "You have the Right to Rectification", - "consent.right-to-rectification-description": "You have the right to change or update any inaccurate data provided to us. Your profile can be updated by editing your profile, and post content can always be edited. If this is not the case, please contact this site's administrative team.", - "consent.right-to-erasure": "You have the Right to Erasure", - "consent.right-to-erasure-description": "At any time, you are able to revoke your consent to data collection and/or processing by deleting your account. Your individual profile can be deleted, although your posted content will remain. If you wish to delete both your account and your content, please contact the administrative team for this website.", - "consent.right-to-data-portability": "You have the Right to Data Portability", - "consent.right-to-data-portability-description": "You may request from us a machine-readable export of any collected data about you and your account. You can do so by clicking the appropriate button below.", - "consent.export-profile": "Export Profile (.json)", - "consent.export-profile-success": "Exporting profile, you will get a notification when it is complete.", - "consent.export-uploads": "Export Uploaded Content (.zip)", - "consent.export-uploads-success": "Exporting uploads, you will get a notification when it is complete.", - "consent.export-posts": "Export Posts (.csv)", - "consent.export-posts-success": "Exporting posts, you will get a notification when it is complete.", - "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.", - "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.", - "emailUpdate.required": "This field is required.", - "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.", - "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership.", - "emailUpdate.pending": "Your email address has not yet been confirmed, but an email has been sent out requesting confirmation. If you wish to invalidate that request and send a new confirmation request, please fill in the form below." + "sessions.description": "หน้านี้ให้คุณสามารถดูเชสชันปัจจุบันในฟอรั่มนี้ และเพิกถอนเซสชันถ้าจำเป็น คุณสามารถเพิกถอนเซสชันของคุณเองโดยการออกจากระบบ", + "revoke-session": "เพิกถอนเซสชัน", + "browser-version-on-platform": "%1 %2 บน %3", + "consent.title": "สิทธิ์และความยินยอมของคุณ", + "consent.lead": "ฟอรั่มนี้รวบรวมและประมวลผลข้อมูลส่วนบุคคลของคุณ", + "consent.intro": "เราใช้ข้อมูลนี้เพื่อให้คุณได้รับประสบการณ์ที่ปรับเข้ากับคุณในชุมชนนี้ และเชื่อมต่อการโพสต์ของคุณกับบัญชีคุณ ระหว่างขั้นตอนการลงทะเบียนเราจะขอให้คุณให้ข้อมูล ชื่อผู้ใช้งาน และที่อยู่อีเมล คุณยังสามารถใส่ข้อมูลเพิ่มเติมเพื่อทำให้โปรไฟล์ของคุณบนเว็บนี้สมบูรณ์

เราเก็บข้อมูลเหล่านี้ตลอดอายุบัญชีของคุณ และคุณสามารถเพิกถอนความยินยอมเมื่อใดก็ได้โดยการลบบัญชีของคุณ คุณยังสามารถคัดลอกข้อมูลที่คุณมีส่วนร่วมที่เว็บนี้เมื่อใดก็ได้ผ่านทางหน้า สิทธิ์และความยินยอมของคุณ

ถ้าคุณมีคำถามหรือข้อกังวล เราแนะนำให้คุณติดต่อกับทีมผู้ดูแลฟอรั่มนี้", + "consent.email-intro": "เราอาจส่งอีเมลเป็นครั้งคราวไปยังที่อยู่อีเมลที่ลงทะเบียนไว้ของคุณเพื่ออัพเดทข่าวสารหรือแจ้งเตือนกิจกรรมใหม่ที่เกี่ยวข้องกับคุณ คุณสามารถปรับแต่งความถี่การส่งเนื้อสรุป (รวมถึงปิดการทำงาน) รวมถึงประเภทของข้อมูลที่จะส่งทางอีเมล ผ่านทางหน้าการตั้งค่าผู้ใช้ของคุณ", + "consent.digest-frequency": "ถ้าคุณไม่ได้เปลี่ยนการตั่งค่าผู้ใช้งานของคุณ ชุมชนนี้ส่งอีเมลสรุปทุกๆ %1", + "consent.digest-off": "ถ้าคุณไม่ได้เปลี่ยนการตั่งค่าผู้ใช้งานของคุณ ชุมชนนี้จะไม่ส่งอีเมลข้อมูลสรุป", + "consent.received": "คุณได้ให้ความยินยอมแก่เว็บนี้ให้เก็บและประมวลผลข้อมูลของคุณ​แล้ว ไม่มีเรื่องอื่นที่ต้องทำอีก", + "consent.not-received": "คุณยังไม่ให้ความยินยอมในการเก็บและประมวลผลข้อมูล ผู้ดูแลเว็บนี้อาจเลือกที่จะลบบัญชีของคุณเมื่อใดก็ได้เพื่อให้เป็นไปตามกฎหมายคุ้มครองข้อมูลส่วนบุคคล", + "consent.give": "ให้ความยินยอม", + "consent.right-of-access": "คุณมีสิทธิ์ในการเข้าถึงข้อมูล", + "consent.right-of-access-description": "คุณมีสิทธิ์ในการเข้าถึงข้อมูลใดๆที่เก็บรวบรวมโดยเว็บนี้ คุณสามารถคัดลอกข้อมูลนี้โดยการกดที่ปุ่มที่เกี่ยวข้องด้านล่าง", + "consent.right-to-rectification": "คุณมีสิทธิ์ในการแก้ไขให้ถูกต้อง", + "consent.right-to-rectification-description": "คุณมีสิทธิ์ในการแก้ไขหรือปรับปรุงข้อมูลผิดพลาดที่คุณส่งให้แก่เรา โปรไฟล์ของคุณสามารถปรับปรุงได้โดยการแก้ไขโปรไฟล์ของคุณ เนื้อหาที่โพสต์สามารถแก้ไขได้เสมอ ถ้าไม่เป็นเช่นนั้น โปรดติดต่อกับทีมดูแลเว็บนี้", + "consent.right-to-erasure": "คุณมีสิทธิ์ในการลบข้อมูล", + "consent.right-to-erasure-description": "คุณสามารถเพิกถอนความยินยอมในการเก็บรวบรวมและ/หรือการประมวลผลข้อมูลในเวลาใดๆโดยการลบบัญชีของคุณ โปรไฟล์ส่วนบุคคลของคุณสามารถถูกลบได้ แต่เนื้อหาที่คุณโพสต์ยังคงอยู่ ถ้าคุณต้องการลบทั้งบัญชีของคุณและเนื้อหาของคุณ​โปรดติดต่อทีมดูแลเว็บนี้", + "consent.right-to-data-portability": "คุณมีสิทธ์ในการโอนย้ายข้อมูล", + "consent.right-to-data-portability-description": "คุณสามารถขอข้อมูลที่เก็บรวบรวมเกี่ยวกับคุณและบัญชีของคุณในรูปแบบที่เครื่องเข้าใจได้ คุณสามารถทำได้โดยการกดปุ่มที่เกี่ยวข้องข้างล่าง", + "consent.export-profile": "ส่งออกโปรไฟล์ (.json)", + "consent.export-profile-success": "กำลังส่งออกโปรไฟล์ คุณจะได้รับการแจ้งเตือมเมื่อทำงานเสร็จสิ้น", + "consent.export-uploads": "ส่งออกเนื้อหาที่อัปโหลด (.zip)", + "consent.export-uploads-success": "กำลังส่งออกอัปโหลด คุณจะได้รับการแจ้งเตือมเมื่อทำงานเสร็จสิ้น", + "consent.export-posts": "ส่งออกโพสต์ (.csv)", + "consent.export-posts-success": "กำลังส่งออกโพสต์ คุณจะได้รับการแจ้งเตือมเมื่อทำงานเสร็จสิ้น", + "emailUpdate.intro": "โปรดใส่ที่อยู่อีเมลของคุณด้านล่าง ฟอรั่มนี้ใช้อีเมลของคุณเพื่อส่งสรุปเนื้อหาและการแจ้งเตือน ตลอดจนการกู้บัญชีกรณีที่ลืมรหัสผ่าน", + "emailUpdate.optional": "ข้อมูลนี้ไม่จำเป็น คุณไม่ถูกบังคับให้ใส่อีเมลของคุณ แต่ถ้าไม่มีอีเมลที่ถูกต้องคุณจะไม่สามารถกู้บัญชีของคุณหรือเข้าสู่ระบด้วยอีเมลของคุณ", + "emailUpdate.required": "ข้อมูลนี้จำเป็น", + "emailUpdate.change-instructions": "อีเมลยืนยันจะถูกส่งไปยังที่อยู่อีเมลพร้อมกับลิงก์เฉพาะ การเปิดลิงก์นั้นจะเป็นการยืนยันความเป็นเจ้าของที่อยู่อีเมลของคุณ และเปิดการใช้งานในบัญชีของคุณ คุณสามารถเปลี่ยนแปลงอีเมลที่บันทึกไว้เมื่อใดก็ได้จากหน้าบัญชีของคุณ", + "emailUpdate.password-challenge": "โปรดป้อนรหัสผ่านเพื่อยืนยันความเป็นเจ้าของบัญชี", + "emailUpdate.pending": "ที่อยู่อีเมลของคุณยังไม่ได้รับการยืนยัน แต่มีการส่งอีเมลขอยืนยันออกไปแล้ว ถ้าคุณต้องการทำให้การร้องขอนั้นเป็นโมฆะและส่งการขอยืนยันใหม่ โปรดกรอกในแบบฟอร์มด้านล่าง" } \ No newline at end of file diff --git a/public/language/th/users.json b/public/language/th/users.json index e16d7f8522..e2cb57f4ea 100644 --- a/public/language/th/users.json +++ b/public/language/th/users.json @@ -1,19 +1,19 @@ { - "all-users": "All Users", + "all-users": "ผู้ใช้งานทั้งหมด", "latest-users": "ผู้ใช้งานล่าสุด", "top-posters": "ผู้ที่โพสต์มากที่สุด", "most-reputation": "ผู้ที่มีชื่อเสียงมากที่สุด", "most-flags": "ผู้ที่ถูกรายงานมากที่สุด", "search": "ค้นหา", "enter-username": "กรอกชื่อผู้ใช้เพื่อค้นหา", - "search-user-for-chat": "Search for a user to start chat", + "search-user-for-chat": "ค้นหาผู้ใช้เพื่อเริ่มต้นแชท", "load-more": "โหลดเพิ่มเติม", - "users-found-search-took": "พบ %1 ผู้ใช้(s)! การค้นหาใช้เวลาทั้งหมด %2 วินาที", - "filter-by": "การกรอง", + "users-found-search-took": "พบผู้ใช้ %1 คน! การค้นหาใช้เวลาทั้งหมด %2 วินาที", + "filter-by": "กรองโดย", "online-only": "กำลังออนไลน์เท่านั้น", "invite": "เชิญ", - "prompt-email": "Emails:", - "groups-to-join": "Groups to be joined when invite is accepted:", + "prompt-email": "อีเมล:", + "groups-to-join": "กลุ่มที่จะได้เข้าร่วมเมื่อคำเชิญได้รับการตอบรับ:", "invitation-email-sent": "อีเมลคำเชิญถูกส่งไปยัง %1 เรียบร้อย", "user-list": "รายการผู้ใช้", "recent-topics": "กระทู้ล่าสุด", diff --git a/public/language/tr/admin/advanced/database.json b/public/language/tr/admin/advanced/database.json index 94e4fd6c21..51527eb08d 100644 --- a/public/language/tr/admin/advanced/database.json +++ b/public/language/tr/admin/advanced/database.json @@ -17,7 +17,7 @@ "mongo.file-size": "Dosya Boyutu", "mongo.resident-memory": "Yerleşik Bellek", "mongo.virtual-memory": "Sanal Bellek", - "mongo.mapped-memory": "Mapped Memory", + "mongo.mapped-memory": "Planlanan Bellek", "mongo.bytes-in": "alınan bayt", "mongo.bytes-out": "gönderilen bayt", "mongo.num-requests": "İsteklerin Sayısı", diff --git a/public/language/tr/admin/advanced/events.json b/public/language/tr/admin/advanced/events.json index 4cc97c46f4..57cad49c65 100644 --- a/public/language/tr/admin/advanced/events.json +++ b/public/language/tr/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Aktivite türü", "filter-start": "Başlangıç zamanı", "filter-end": "Bitiş zamanı", + "filter-user": "Kullanıcı ismine göre filtrele", + "filter-user.placeholder": "Filtrelemek için kullanıcı adı girin...", + "filter-group": "Gruba göre filtrele", + "filter-group.placeholder": "Filtrelemek için grup adı girin...", "filter-per-page": "Sayfa Başına" } \ No newline at end of file diff --git a/public/language/tr/admin/dashboard.json b/public/language/tr/admin/dashboard.json index 391195d94c..a6ef8394c2 100644 --- a/public/language/tr/admin/dashboard.json +++ b/public/language/tr/admin/dashboard.json @@ -95,7 +95,7 @@ "expand-analytics": "Expand analytics", "clear-search-history": "Clear Search History", "clear-search-history-confirm": "Are you sure you want to clear entire search history?", - "search-term": "Term", - "search-count": "Count", - "view-all": "View all" + "search-term": "Koşul", + "search-count": "Sayı", + "view-all": "Hepsini Görüntüle" } diff --git a/public/language/tr/admin/extend/widgets.json b/public/language/tr/admin/extend/widgets.json index b5c8052a22..41e26ab4ee 100644 --- a/public/language/tr/admin/extend/widgets.json +++ b/public/language/tr/admin/extend/widgets.json @@ -5,7 +5,7 @@ "none-installed": "Bileşen bulunamadı! Eklentiler kontrol panelinden bileşen eklentisini aktifleştirmelisiniz!", "clone-from": "Bileşenleri klonla", "containers.available": "Kullanılabilir Kutucuklar", - "containers.explanation": "Drag and drop on top of any widget", + "containers.explanation": "Herhangi bir bileşen üstüne sürükleyip bırakabilirsiniz", "containers.none": "Kutucuk Yok", "container.well": "Çukur", "container.jumbotron": "Büyük Gösterim", @@ -30,6 +30,6 @@ "start-date": "Başlangıç tarihi", "end-date": "Bitiş tarihi", "hide-on-mobile": "Mobilde gösterme", - "hide-drafts": "Hide drafts", - "show-drafts": "Show drafts" + "hide-drafts": "Taslakları Gizle", + "show-drafts": "Taslakları Göster" } \ No newline at end of file diff --git a/public/language/tr/admin/manage/privileges.json b/public/language/tr/admin/manage/privileges.json index 3f9442084e..b4193c4116 100644 --- a/public/language/tr/admin/manage/privileges.json +++ b/public/language/tr/admin/manage/privileges.json @@ -8,7 +8,7 @@ "edit-privileges": "Ayrıcalıkları Düzenle", "select-clear-all": "Hepsini Seç/Temizle", "chat": "Sohbet", - "chat-with-privileged": "Chat with Privileged", + "chat-with-privileged": "Ayrıcalıklı kişilerle sohbet", "upload-images": "Resim Yükle", "upload-files": "Dosya Yükle", "signature": "İmza", diff --git a/public/language/tr/admin/manage/users.json b/public/language/tr/admin/manage/users.json index eee1f680ee..b383cb167c 100644 --- a/public/language/tr/admin/manage/users.json +++ b/public/language/tr/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "%1'e bir davet e-postası gönderildi", "alerts.x-users-found": "%1 kullanıcı bulundu, (%2 saniye)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Dışa Aktar", + "export-users-fields-title": "CSV Alanlarını seçin", + "export-field-email": "E-posta adresi", + "export-field-username": "Kullanıcı Adı", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Katılım tarihi", + "export-field-lastonline": "Son Çevrimiçi Tarihi", + "export-field-lastposttime": "Son İleti Tarihi", + "export-field-reputation": "Saygınlık", + "export-field-postcount": "İleti Sayısı", + "export-field-topiccount": "Başlık Sayısı", + "export-field-profileviews": "Profil Görüntülenmesi", + "export-field-followercount": "Takipçi Sayısı", + "export-field-followingcount": "Takip Edilen Sayısı", + "export-field-fullname": "Tam Ad", + "export-field-website": "Websitesi", + "export-field-location": "Konum", + "export-field-birthday": "Doğum Tarihi", + "export-field-signature": "İmza", + "export-field-aboutme": "Hakkında", + "export-users-started": "Kullanıcılar csv olarak aktarılmak üzere hazırlanıyor, bu işlem zaman alabilir. İşlem tamamlandığında bildirim alacaksınız!", "export-users-completed": "Kullanıcılar csv olarak hazırlandı, indirmek için tıklayınız", "email": "Email", diff --git a/public/language/tr/admin/settings/navigation.json b/public/language/tr/admin/settings/navigation.json index 11cbd021b9..f9c62511a6 100644 --- a/public/language/tr/admin/settings/navigation.json +++ b/public/language/tr/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: opsiyonel", "properties": "Özellikler:", - "groups": "Gruplar", + "show-to-groups": "Bu gruplara göster:", "open-new-window": "Yeni pencerede aç", "dropdown": "Açılır liste", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/tr/admin/settings/post.json b/public/language/tr/admin/settings/post.json index 01162a2a95..786cabc03e 100644 --- a/public/language/tr/admin/settings/post.json +++ b/public/language/tr/admin/settings/post.json @@ -4,11 +4,11 @@ "sorting.post-default": "Varsayılan İleti Sıralaması", "sorting.oldest-to-newest": "En Eskiden En Yeniye", "sorting.newest-to-oldest": "En Yeniden En Eskiye", - "sorting.recently-replied": "Recently Replied", - "sorting.recently-created": "Recently Created", + "sorting.recently-replied": "Yeni Cevaplanmış ", + "sorting.recently-created": "Yeni Oluşturulmuş", "sorting.most-votes": "En Çok Oylanan", "sorting.most-posts": "En çok yazılanlar", - "sorting.most-views": "Most Views", + "sorting.most-views": "En çok görüntülenen", "sorting.topic-default": "Varsayılan Konu Sıralaması", "length": "İleti Uzunluğu", "post-queue": "İleti Kuyruğu", diff --git a/public/language/tr/admin/settings/reputation.json b/public/language/tr/admin/settings/reputation.json index 39e27aff29..850e692e36 100644 --- a/public/language/tr/admin/settings/reputation.json +++ b/public/language/tr/admin/settings/reputation.json @@ -23,12 +23,12 @@ "flags.limit-per-target": "Maksimum şikayet edilme sayısı", "flags.limit-per-target-placeholder": "Varsayılan: 0", "flags.limit-per-target-help": "Bir gönderi veya kullanıcı birden çok kez şikayet edildiğinde, her ek şikayet bir \"rapor\" olarak kabul edilir ve orijinal şikayete eklenir. Bir öğenin alabileceği rapor sayısını sınırlamak için bu seçeneği sıfırdan farklı bir sayıya ayarlayın.", - "flags.limit-post-flags-per-day": "Maximum number of times a user can flag posts in a day", - "flags.limit-post-flags-per-day-help": "Set to 0 to disable, (default: 10)", - "flags.limit-user-flags-per-day": "Maximum number of times a user can flag users in a day", - "flags.limit-user-flags-per-day-help": "Set to 0 to disable, (default: 10)", - "flags.auto-flag-on-downvote-threshold": "Number of downvotes to auto flag posts", - "flags.auto-flag-on-downvote-threshold-help": "Set to 0 to disable, (default: 0)", + "flags.limit-post-flags-per-day": "Üyelerin bir günde şikayet edebilecekleri maksimum ileti sayısı", + "flags.limit-post-flags-per-day-help": "Devredışı bırakmak için 0 girin, (varsayılan: 10)", + "flags.limit-user-flags-per-day": "Üyelerin bir günde şikayet edebilecekleri maksimum kullanıcı sayısı", + "flags.limit-user-flags-per-day-help": "Devredışı bırakmak için 0 girin, (varsayılan: 10)", + "flags.auto-flag-on-downvote-threshold": "İletileri otomatik olarak şikayet etmek için gerekli olan eksi oy sayısı", + "flags.auto-flag-on-downvote-threshold-help": "Devredışı bırakmak için 0 girin, (varsayılan: 0)", "flags.auto-resolve-on-ban": "Bir kullanıcı forumdan yasaklandığında otomatik olarak şikayetlerini çözülmüş say", "flags.action-on-resolve": "Bir şikayet çözümlendiğinde şunu yap", "flags.action-on-reject": "Bir şikayet reddedildiğinde şunu yap", diff --git a/public/language/tr/aria.json b/public/language/tr/aria.json index 6f023dcae0..ea8dd9938b 100644 --- a/public/language/tr/aria.json +++ b/public/language/tr/aria.json @@ -1,8 +1,8 @@ { - "post-sort-option": "Post sort option, %1", - "topic-sort-option": "Topic sort option, %1", - "user-avatar-for": "User avatar for %1", - "user-watched-tags": "User watched tags", - "delete-upload-button": "Delete upload button", - "group-page-link-for": "Group page link for %1" + "post-sort-option": "İleti Sıralama Seçenekleri, %1", + "topic-sort-option": "Konu Sıralama Seçenekleri, %1", + "user-avatar-for": "%1 için üye avatarı", + "user-watched-tags": "Üyenin takip ettiği etiketler", + "delete-upload-button": "Yükleme butonunu sil", + "group-page-link-for": "%1 için grup sayfa bağlantısı" } \ No newline at end of file diff --git a/public/language/tr/error.json b/public/language/tr/error.json index d6a14c36ea..5001e2807f 100644 --- a/public/language/tr/error.json +++ b/public/language/tr/error.json @@ -32,7 +32,7 @@ "folder-exists": "Dosya mevcut", "invalid-pagination-value": "Geçersiz sayfa numarası girdiniz, en az %1 ve en fazla %2 olabilir", "username-taken": "Kullanıcı İsmi Alınmış", - "email-taken": "Email address is already taken.", + "email-taken": "Bu e-posta adresi halihazırda başka biri tarafından kullanılıyor. ", "email-nochange": "Girdiğiniz e-posta var olan e-posta ile aynı", "email-invited": "E-posta halihazırda davet edilmiş", "email-not-confirmed": "Ancak e-postanız onaylandıktan sonra bazı kategorilere veya konulara ileti gönderebilirsiniz; lütfen bir onay e-postası almak için buraya tıklayın.", @@ -91,7 +91,7 @@ "category-not-selected": "Kategori bulunamadı. Lütfen bir kategori seçiniz.", "too-many-posts": "%1 saniye içinde yalnızca bir ileti gönderebilirsiniz - lütfen tekrar ileti göndermeden önce bekleyiniz.", "too-many-posts-newbie": "Yeni bir kullanıcı olarak, %2 saygınlık puanı kazanana kadar %1 saniye içinde bir ileti gönderebilirsiniz - lütfen tekrar ileti göndermeden önce bekleyiniz.", - "too-many-posts-newbie-minutes": "As a new user, you can only post once every %1 minute(s) until you have earned %2 reputation - please wait before posting again", + "too-many-posts-newbie-minutes": "Yeni bir kullanıcı olarak, %2 saygınlık puanı kazanana kadar %1 saniye içinde bir ileti gönderebilirsiniz - lütfen tekrar ileti göndermeden önce bekleyiniz.", "already-posting": "Halihazırda ileti gönderiyorsunuz...", "tag-too-short": "Lütfen daha uzun bir etiket girin. Etiketler en az %1 karakter içermelidir.", "tag-too-long": "Lütfen daha kısa bir etiket girin. Etiketler %1 karakterden uzun olamaz.", @@ -184,8 +184,8 @@ "user-already-flagged": "Bu kullanıcıyı önceden şikayet etmişsiniz.", "post-flagged-too-many-times": "Bu ileti başkaları tarafından halihazırda şikayet edilmiş.", "user-flagged-too-many-times": "Bu kullanıcı başkaları tarafından halihazırda şikayet edilmiş.", - "too-many-post-flags-per-day": "You can only flag %1 post(s) per day", - "too-many-user-flags-per-day": "You can only flag %1 user(s) per day", + "too-many-post-flags-per-day": "Günde sadece %1 iletiyi şikayet edebilirsiniz", + "too-many-user-flags-per-day": "Günde sadece %1 üyeyi şikayet edebilirsiniz", "cant-flag-privileged": "Yöneticilerin profillerini veya içeriklerini bayraklayamazsınız.", "cant-locate-flag-report": "Şikayet Raporu bulunamadı", "self-vote": "Kendi iletinize oy veremezsiniz", @@ -221,7 +221,7 @@ "already-unblocked": "Bu kullanıcı zaten engellenmedi", "no-connection": "İnternet bağlantınızda sorun var gibi görünüyor", "socket-reconnect-failed": "Şu anda sunucuya ulaşılamıyor. Tekrar denemek için buraya tıklayın, veya daha sonra tekrar deneyin.", - "invalid-plugin-id": "Invalid plugin ID", + "invalid-plugin-id": "Geçersiz Eklenti ID", "plugin-not-whitelisted": "– eklentisi yüklenemedi, sadece NodeBB Paket Yöneticisi tarafından onaylanan eklentiler kontrol panelinden kurulabilir", "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.", "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP", diff --git a/public/language/tr/flags.json b/public/language/tr/flags.json index c5ca32a7ed..b0664c3c5e 100644 --- a/public/language/tr/flags.json +++ b/public/language/tr/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Toplu Aksiyonlar", "bulk-resolve": "Şikayetleri Çözümle", "bulk-success": "%1 şikayet güncellendi", - "flagged-timeago-readable": "Şikayet Edilme Zamanı (%2)", + "flagged-timeago": "Şikayet edildi ", "auto-flagged": "[Otomatik Şikayet] %1 tane eksi oy aldı." } \ No newline at end of file diff --git a/public/language/tr/global.json b/public/language/tr/global.json index 4dd57c9c76..deb913076b 100644 --- a/public/language/tr/global.json +++ b/public/language/tr/global.json @@ -24,15 +24,15 @@ "cancel": "İptal et", "close": "Kapat", "pagination": "Sayfalara numara koyma", - "pagination.previouspage": "Previous Page", - "pagination.nextpage": "Next Page", - "pagination.firstpage": "First Page", - "pagination.lastpage": "Last Page", + "pagination.previouspage": "Önceki Sayfa", + "pagination.nextpage": "Sonraki Sayfa", + "pagination.firstpage": "İlk Sayfa", + "pagination.lastpage": "Son Sayfa", "pagination.out-of": "%1 - %2", "pagination.enter-index": "İleti dizinine git", - "pagination.go-to-page": "Go to page", - "pagination.page-x": "Page %1", - "header.brand-logo": "Brand Logo", + "pagination.go-to-page": "Şu Sayfaya Git", + "pagination.page-x": "Sayfa %1", + "header.brand-logo": "Marka Logo", "header.admin": "Yönetim", "header.categories": "Kategoriler", "header.recent": "Güncel", @@ -140,12 +140,12 @@ "edited": "Düzenlendi", "disabled": "Devre dışı", "select": "Seç", - "selected": "Selected", + "selected": "Seçili", "copied": "Kopyalandı", "user-search-prompt": "Kullanıcı bulmak için buraya yazın ...", "hidden": "Gizli", "sort": "Sırala", "actions": "Eylemler", - "rss-feed": "RSS Feed", - "skip-to-content": "Skip to content" + "rss-feed": "RSS Akışı", + "skip-to-content": "İçeriğe atla" } \ No newline at end of file diff --git a/public/language/tr/modules.json b/public/language/tr/modules.json index 0012f90210..61aa0841b7 100644 --- a/public/language/tr/modules.json +++ b/public/language/tr/modules.json @@ -68,8 +68,8 @@ "chat.in-room": "Bu odada", "chat.kick": "Dışarı At", "chat.show-ip": "IP Göster", - "chat.copy-text": "Copy Text", - "chat.copy-link": "Copy Link", + "chat.copy-text": "Yazıyı Kopyala", + "chat.copy-link": "Bağlantıyı Kopyala", "chat.owner": "Oda Sahibi", "chat.grant-rescind-ownership": "Grant/Rescind Ownership", "chat.system.user-join": "%1 odaya katıldı ", diff --git a/public/language/tr/notifications.json b/public/language/tr/notifications.json index 9517894245..4b432e2d32 100644 --- a/public/language/tr/notifications.json +++ b/public/language/tr/notifications.json @@ -9,7 +9,7 @@ "continue-to": "%1 'a devam et", "return-to": "%1 'a geri dön", "new-notification": "Yeni bir bildiriminiz var", - "you-have-unread-notifications": "Okunmamış bildirimleriniz var.", + "you-have-unread-notifications": "Okunmamış bildirimleriniz var", "all": "Hepsi", "topics": "Konular", "tags": "Etiketler", @@ -32,10 +32,10 @@ "user-posted-in-public-room-dual": "%1 ve %2 şu odaya yazdı: %4", "user-posted-in-public-room-triple": "%1, %2 ve %3 şu odaya yazdılar: %5", "user-posted-in-public-room-multiple": "%1, %2 ve %3 diğer kullanıcı şu odaya yazdılar: %5", - "upvoted-your-post-in": "%1 şu konudaki iletinizi beğendi: %2.", + "upvoted-your-post-in": "%1 şu konudaki iletinizi beğendi: %2", "upvoted-your-post-in-dual": "%1 ve %2 şu konudaki iletinizi beğendi: %3", - "upvoted-your-post-in-triple": "%1, %2 ve %3 şu konudaki iletinizi beğendi: %4.", - "upvoted-your-post-in-multiple": "%1, %2 ve %3 diğer kullanıcı şu konudaki iletinizi beğendi: %4.", + "upvoted-your-post-in-triple": "%1, %2 ve %3 şu konudaki iletinizi beğendi: %4", + "upvoted-your-post-in-multiple": "%1, %2 ve %3 diğer kullanıcı şu konudaki iletinizi beğendi: %4", "moved-your-post": "%1, iletinizi şuraya taşıdı: %2", "moved-your-topic": "%1 şuraya taşındı: %2", "user-flagged-post-in": "%1 şu konudaki bir iletiyi şikayet etti: %2", @@ -57,12 +57,12 @@ "user-posted-topic-with-tag-triple": "%1 şu etiketleri kullanarak yeni bir konu oluşturdu: %2, %3 ve %4", "user-posted-topic-with-tag-multiple": "%1 şu etiketleri kullanarak yeni bir konu oluşturdu: %2", "user-posted-topic-in-category": "%1 şu kategoride yeni bir başlık oluşturdu: %2", - "user-started-following-you": "%1 sizi takip etmeye başladı.", + "user-started-following-you": "%1 sizi takip etmeye başladı", "user-started-following-you-dual": "%1 ve %2 sizi takip etmeye başladı.", - "user-started-following-you-triple": "%1, %2 and %3 started following you.", - "user-started-following-you-multiple": "%1, %2 and %3 others started following you.", - "new-register": "%1 kayıt olma isteği gönderdi.", - "new-register-multiple": "Beklemede %1 kayıt olma isteği bulunmaktadır.", + "user-started-following-you-triple": "%1, %2 and %3 started following you", + "user-started-following-you-multiple": "%1, %2 and %3 others started following you", + "new-register": "%1 kayıt olma isteği gönderdi", + "new-register-multiple": "Beklemede %1 kayıt olma isteği bulunmaktadır", "flag-assigned-to-you": "Şikayet %1 size devredildi", "post-awaiting-review": "İnceleme bekleyen ileti(ler) var", "profile-exported": "%1 profili hazırlandı, indirmek için tıklayınız", @@ -70,7 +70,7 @@ "uploads-exported": "%1 yüklemeleri hazırlandı, indirmek için tıklayınız", "users-csv-exported": "Kullanıcılar csv hazırlandı, indirmek için tıklayınız", "post-queue-accepted": "Sıradaki gönderiniz kabul edildi. Gönderinizi görmek için buraya tıklayın.", - "post-queue-rejected": "Sıraya alınmış gönderiniz reddedildi.", + "post-queue-rejected": "Sıraya alınmış gönderiniz reddedildi", "post-queue-notify": "Onay sırasındaki ileti için bir bildirim var:
\"%1\"", "email-confirmed": "E-posta onaylandı", "email-confirmed-message": "E-postanızı onayladığınız için teşekkürler. Hesabınız tamamen aktif edildi.", diff --git a/public/language/tr/post-queue.json b/public/language/tr/post-queue.json index fe7955c35a..1cb68ec41c 100644 --- a/public/language/tr/post-queue.json +++ b/public/language/tr/post-queue.json @@ -6,7 +6,7 @@ "enabling-help": "İleti Kuyruğu şu an etkinsizdir. Bu ayarı etkinleştirmek için şuraya gidin Ayarlar → İleti → İleti Kuyruğu ve İleti Kuyruğunu aktive edin.", "back-to-list": "İleti Kuyruğuna Geri Dön", "public-intro": "Onay sırasına alınmış iletiler varsa, burada gösterilecektir.", - "public-description": "This forum is configured to automatically queue posts from new accounts, pending moderator approval.
If you have queued posts awaiting approval, you will be able to see them here.", + "public-description": "Bu forum, yeni hesaplardan gelen gönderileri moderatör onayı için otomatik olarak kuyruğa alacak şekilde yapılandırılmıştır.
Onay bekleyen gönderileriniz varsa, bunları burada görebileceksiniz.", "user": "Kullanıcı", "when": "Zaman", "category": "Kategori", @@ -18,7 +18,7 @@ "category-editable": "Düzenlemek için kategoriye tıklayın", "title-editable": "Düzenlemek için başlığa tıklayın", "reply": "Yeni Yanıt", - "topic": "Yeni Başlık", + "topic": "Başlık", "accept": "Onayla", "reject": "Reddet", "remove": "Sil", diff --git a/public/language/tr/rewards.json b/public/language/tr/rewards.json index 783f3fc021..4afda8fe73 100644 --- a/public/language/tr/rewards.json +++ b/public/language/tr/rewards.json @@ -2,9 +2,9 @@ "awarded-x-reputation": "%1 saygınlık puanı ile ödüllendirildiniz", "awarded-group-membership": "Şu gruba eklendiniz: %1", - "essentials/user.reputation-conditional-value": "(Reputation %1 %2)", - "essentials/user.postcount-conditional-value": "(Post Count %1 %2)", - "essentials/user.lastonline-conditional-value": "(Last Online %1 %2)", - "essentials/user.joindate-conditional-value": "(Join Date %1 %2)", - "essentials/user.daysregistered-conditional-value": "(Days Registered %1 %2)" + "essentials/user.reputation-conditional-value": "(Saygınlık %1 %2)", + "essentials/user.postcount-conditional-value": "(İleti Sayısı %1 %2)", + "essentials/user.lastonline-conditional-value": "(Son Çevrimiçi Zamanı %1 %2)", + "essentials/user.joindate-conditional-value": "(Kayıt Günü %1 %2)", + "essentials/user.daysregistered-conditional-value": "(Kayıtlı Gün Sayısı %1 %2)" } \ No newline at end of file diff --git a/public/language/tr/search.json b/public/language/tr/search.json index 73227232a6..742d7225de 100644 --- a/public/language/tr/search.json +++ b/public/language/tr/search.json @@ -7,7 +7,7 @@ "in-titles": "Başlıklarda", "in-titles-posts": "Başlıklarda ve iletilerde", "in-posts": "İletilerde", - "in-bookmarks": "In bookmarks", + "in-bookmarks": "Yer imlerinde", "in-categories": "Kategorilerde", "in-users": "Kullanıcılarda", "in-tags": "Etiketlerde", diff --git a/public/language/tr/social.json b/public/language/tr/social.json index c155ebec42..835124b5f5 100644 --- a/public/language/tr/social.json +++ b/public/language/tr/social.json @@ -7,6 +7,6 @@ "sign-up-with-google": "Google ile Kaydol", "log-in-with-facebook": "Facebook ile Giriş Yap", "continue-with-facebook": "Facebook ile devam et", - "sign-in-with-linkedin": "Sign in with LinkedIn", - "sign-up-with-linkedin": "Sign up with LinkedIn" + "sign-in-with-linkedin": "LinkedIn ile Giriş Yap", + "sign-up-with-linkedin": "LinkedIn ile Kaydol" } \ No newline at end of file diff --git a/public/language/tr/tags.json b/public/language/tr/tags.json index af4847c2cf..353036d474 100644 --- a/public/language/tr/tags.json +++ b/public/language/tr/tags.json @@ -3,7 +3,7 @@ "no-tag-topics": "Bu etiketli başlık yok.", "no-tags-found": "Etiket bulunamadı", "tags": "Etiketler", - "enter-tags-here": "Enter tags, %1 - %2 characters.", + "enter-tags-here": "Etiket ekle, %1 - %2 karakter.", "enter-tags-here-short": "Etiketleri gir...", "no-tags": "Henüz etiket yok.", "select-tags": "Etiketleri Seç", diff --git a/public/language/tr/themes/harmony.json b/public/language/tr/themes/harmony.json index b0320f3437..4c3582602a 100644 --- a/public/language/tr/themes/harmony.json +++ b/public/language/tr/themes/harmony.json @@ -3,17 +3,17 @@ "skins": "Deriler", "collapse": "Daralt", "expand": "Genişlet", - "sidebar-toggle": "Sidebar Toggle", + "sidebar-toggle": "Yan menü değiştirici", "login-register-to-search": "Aramak için giriş yapın veya kaydolun", "settings.title": "Tema Ayarları", "settings.enableQuickReply": "Hızlı Cevabı Etkinleştir", - "settings.enableBreadcrumbs": "Enable breadcrumbs", + "settings.enableBreadcrumbs": "Başlıklar için yol izini (breadcrumbs) göster", "settings.centerHeaderElements": "Tepedeki Merkezi Öğeler", "settings.mobileTopicTeasers": "Başlık Önizlemelerini mobilde göster", "settings.stickyToolbar": "Yapışkan Araç Çubuğu", "settings.stickyToolbar.help": "Kategori ve konu sayfalarındaki araç çubuğu sayfanın üstünde sabitlenmiş şekilde kalacak", "settings.autohideBottombar": "Alttaki şeridi otomatik olarak gizle", "settings.autohideBottombar.help": "Sayfanın altındaki şerit sayfayı aşağıya doğru kaydırırken mobilde gizlenecek", - "settings.openSidebars": "Open sidebars", + "settings.openSidebars": "Yan menüleri aç", "settings.chatModals": "Enable chat modals" } \ No newline at end of file diff --git a/public/language/tr/topic.json b/public/language/tr/topic.json index 16bcde79fc..fd677501d3 100644 --- a/public/language/tr/topic.json +++ b/public/language/tr/topic.json @@ -182,8 +182,8 @@ "sort-by": "Sırala", "oldest-to-newest": "En eskiden en yeniye", "newest-to-oldest": "En yeniden en eskiye", - "recently-replied": "Recently Replied", - "recently-created": "Recently Created", + "recently-replied": "Yeni Cevaplanmış", + "recently-created": "Yeni Oluşturulmuş", "most-votes": "En çok oylanan", "most-posts": "En çok ileti yazılan", "most-views": "Çok Görüntülenen", diff --git a/public/language/tr/unread.json b/public/language/tr/unread.json index 2b956b5fc9..c9585b275f 100644 --- a/public/language/tr/unread.json +++ b/public/language/tr/unread.json @@ -3,7 +3,7 @@ "no-unread-topics": "Okunmamış konu mevcut değil.", "load-more": "Daha Fazla", "mark-as-read": "Okundu Olarak İşaretle", - "mark-as-unread": "Mark as Unread", + "mark-as-unread": "Okunmadı Olarak İşaretle", "selected": "Seçili", "all": "Hepsi", "all-categories": "Tüm kategoriler", diff --git a/public/language/tr/user.json b/public/language/tr/user.json index ca6dd6e33e..19ff16fc21 100644 --- a/public/language/tr/user.json +++ b/public/language/tr/user.json @@ -1,7 +1,9 @@ { "user-menu": "Kullanıcı menüsü", "banned": "Yasaklı", + "unbanned": "Yasağı kaldırıldı", "muted": "Sessiz", + "unmuted": "Sesi açıldı", "offline": "Çevrimdışı", "deleted": "Silindi", "username": "Kullanıcı Adı", @@ -142,10 +144,10 @@ "follow-topics-you-create": "Oluşturduğum başlıkları takip et", "grouptitle": "Grup Unvanları", "group-order-help": "Bir grup seçin ve unvanları sıralamak için yön tuşlarını kullanın", - "show-group-title": "Show group title", - "hide-group-title": "Hide group title", - "order-group-up": "Order group up", - "order-group-down": "Order group down", + "show-group-title": "Grup başlığını göster", + "hide-group-title": "Grup başlığını gizle", + "order-group-up": "Grubu üste çıkar", + "order-group-down": "Grubu aşağı indir", "no-group-title": "Grup unvanı yok", "select-skin": "Bir arayüz seçin", "default": "Varsayılan (%1)", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Ayrışmayı Onayla", "sso.dissociate-confirm": "%1 'den ayrışmak istediğinizden emin misiniz?", "info.latest-flags": "Son Şikayetler", + "info.profile": "Profil", + "info.post": "İleti", + "info.view-flag": "Şikayeti görüntüle", + "info.reported-by": "Şikayet eden:", "info.no-flags": "Şikayet edilen bir ileti bulunamadı", "info.ban-history": "Yasaklama Geçmişi", "info.no-ban-history": "Bu kullanıcı daha önce hiç yasaklanmadı", "info.banned-until": "Yasaklama süresi %1", "info.banned-expiry": "Bitiş", + "info.ban-expired": "Yasak süresi bitti", "info.banned-permanently": "Kalıcı şekilde yasakla", "info.banned-reason-label": "Gerekçe", "info.banned-no-reason": "Gerekçe belirtilmedi.", diff --git a/public/language/uk/admin/advanced/events.json b/public/language/uk/admin/advanced/events.json index bc7a31a655..b53d8972a5 100644 --- a/public/language/uk/admin/advanced/events.json +++ b/public/language/uk/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Event Type", "filter-start": "Start Date", "filter-end": "End Date", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Per Page" } \ No newline at end of file diff --git a/public/language/uk/admin/manage/users.json b/public/language/uk/admin/manage/users.json index 7c5b9cd3ab..d5b0dcc132 100644 --- a/public/language/uk/admin/manage/users.json +++ b/public/language/uk/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "Запрошення надіслано за адресою %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/uk/admin/settings/navigation.json b/public/language/uk/admin/settings/navigation.json index 821b46fe18..1d77fa0755 100644 --- a/public/language/uk/admin/settings/navigation.json +++ b/public/language/uk/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: необов'язковий", "properties": "Властивості:", - "groups": "Groups:", + "show-to-groups": "Show to Groups:", "open-new-window": "Відкривати у новому вікні", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/uk/flags.json b/public/language/uk/flags.json index 985718c01e..38800b17e7 100644 --- a/public/language/uk/flags.json +++ b/public/language/uk/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/uk/user.json b/public/language/uk/user.json index ece07e838e..8f712b26e1 100644 --- a/public/language/uk/user.json +++ b/public/language/uk/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Заблокований", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "Не в мережі", "deleted": "Видалено", "username": "Ім'я користувача", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Підтвердьте від'єднання", "sso.dissociate-confirm": "Ви впевнені, що хочете від'єднати свій акаунт від %1?", "info.latest-flags": "Останні скарги", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Не знайдено постів зі скаргами", "info.ban-history": "Історія банів", "info.no-ban-history": "Цього користувача ніколи не банили", "info.banned-until": "Забанений до %1", "info.banned-expiry": "Expiry", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Забанений назавжди", "info.banned-reason-label": "Причина", "info.banned-no-reason": "Причина не вказана", diff --git a/public/language/vi/admin/advanced/events.json b/public/language/vi/admin/advanced/events.json index 47a1c8e065..8113569d43 100644 --- a/public/language/vi/admin/advanced/events.json +++ b/public/language/vi/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "Loại Sự Kiện", "filter-start": "Ngày Bắt Đầu", "filter-end": "Ngày Kết Thúc", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "Mỗi Trang" } \ No newline at end of file diff --git a/public/language/vi/admin/manage/users.json b/public/language/vi/admin/manage/users.json index b4e7e9da7b..ce47082f43 100644 --- a/public/language/vi/admin/manage/users.json +++ b/public/language/vi/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "Email mời đã được gửi đến %1", "alerts.x-users-found": "Tìm được %1 người dùng (%2 giây)", "alerts.select-a-single-user-to-change-email": "Chọn một người dùng để thay đổi email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Xuất người dùng dưới dạng csv, quá trình này có thể mất một lúc. Bạn sẽ nhận được thông báo khi hoàn tất.", "export-users-completed": "Đã xuất người dùng ra csv, bấm vào đây tải xuống.", "email": "Email", diff --git a/public/language/vi/admin/settings/navigation.json b/public/language/vi/admin/settings/navigation.json index f9548db054..054160bc86 100644 --- a/public/language/vi/admin/settings/navigation.json +++ b/public/language/vi/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID: không bắt buộc", "properties": "Thuộc tính:", - "groups": "Nhóm:", + "show-to-groups": "Show to Groups:", "open-new-window": "Mở trong một cửa sổ mới", "dropdown": "Thả xuống", "dropdown-placeholder": "Đặt các mục menu thả xuống của bạn bên dưới, tức là:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/vi/flags.json b/public/language/vi/flags.json index ef370696ee..9ab84ccb33 100644 --- a/public/language/vi/flags.json +++ b/public/language/vi/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "‎Hành động hàng loạt‎", "bulk-resolve": "Xử Lý Cờ", "bulk-success": "%1 cờ đã cập nhật", - "flagged-timeago-readable": "Đã Gắn Cờ (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Tự động được gắn cờ] Đã nhận được %1 phiếu phản đối." } \ No newline at end of file diff --git a/public/language/vi/user.json b/public/language/vi/user.json index 7d8b201b38..1480a91a23 100644 --- a/public/language/vi/user.json +++ b/public/language/vi/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "Bị cấm", + "unbanned": "Unbanned", "muted": "Đã Im Lặng", + "unmuted": "Unmuted", "offline": "Ngoại tuyến", "deleted": "Đã xoá", "username": "Tên Đăng Nhập", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "Xác nhận việc tách khỏi", "sso.dissociate-confirm": "Bạn có chắc chắn muốn tách tài khoản của mình khỏi %1?", "info.latest-flags": "Gắn cờ mới nhất", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "Không Tìm Thấy Bài Bị Gắn Cờ", "info.ban-history": "Lịch Sử Cấm Gần Đây", "info.no-ban-history": "Người dùng này chưa bao giờ bị cấm", "info.banned-until": "Bị cấm cho đến %1", "info.banned-expiry": "Hết hạn", + "info.ban-expired": "Ban expired", "info.banned-permanently": "Bị cấm vĩnh viễn", "info.banned-reason-label": "Lý do", "info.banned-no-reason": "Không có lí do.", diff --git a/public/language/zh-CN/admin/advanced/database.json b/public/language/zh-CN/admin/advanced/database.json index 7f18de230b..7652d9e4c8 100644 --- a/public/language/zh-CN/admin/advanced/database.json +++ b/public/language/zh-CN/admin/advanced/database.json @@ -17,7 +17,7 @@ "mongo.file-size": "文件大小", "mongo.resident-memory": "驻留内存", "mongo.virtual-memory": "虚拟内存", - "mongo.mapped-memory": "Mapped Memory", + "mongo.mapped-memory": "已映射内存", "mongo.bytes-in": "字节输入", "mongo.bytes-out": "字节输出", "mongo.num-requests": "请求数量", diff --git a/public/language/zh-CN/admin/advanced/events.json b/public/language/zh-CN/admin/advanced/events.json index 76ebdaffc5..b6c3eba1c4 100644 --- a/public/language/zh-CN/admin/advanced/events.json +++ b/public/language/zh-CN/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "事件类型", "filter-start": "开始时间", "filter-end": "结束时间", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "每页" } \ No newline at end of file diff --git a/public/language/zh-CN/admin/dashboard.json b/public/language/zh-CN/admin/dashboard.json index 69b1f33da5..5cea605a5c 100644 --- a/public/language/zh-CN/admin/dashboard.json +++ b/public/language/zh-CN/admin/dashboard.json @@ -96,6 +96,6 @@ "clear-search-history": "清空搜索历史", "clear-search-history-confirm": "您确定您要删除搜索历史吗?", "search-term": "Term", - "search-count": "Count", - "view-all": "View all" + "search-count": "计数", + "view-all": "浏览全部" } diff --git a/public/language/zh-CN/admin/extend/widgets.json b/public/language/zh-CN/admin/extend/widgets.json index deef7aa881..d88d368e44 100644 --- a/public/language/zh-CN/admin/extend/widgets.json +++ b/public/language/zh-CN/admin/extend/widgets.json @@ -5,7 +5,7 @@ "none-installed": "未发现窗口部件!请在插件控制面板中启用必要的窗口部件插件。", "clone-from": "从窗口部件克隆", "containers.available": "可用的容器", - "containers.explanation": "Drag and drop on top of any widget", + "containers.explanation": "拖放任意组件到顶部", "containers.none": "无", "container.well": "Well", "container.jumbotron": "超大屏幕", @@ -30,6 +30,6 @@ "start-date": "开始日期", "end-date": "结束日期", "hide-on-mobile": "在移动端隐藏", - "hide-drafts": "Hide drafts", - "show-drafts": "Show drafts" + "hide-drafts": "隐藏草稿", + "show-drafts": "显示草稿" } \ No newline at end of file diff --git a/public/language/zh-CN/admin/manage/privileges.json b/public/language/zh-CN/admin/manage/privileges.json index fddda3f2a8..7bb5c09667 100644 --- a/public/language/zh-CN/admin/manage/privileges.json +++ b/public/language/zh-CN/admin/manage/privileges.json @@ -8,7 +8,7 @@ "edit-privileges": "编辑权限", "select-clear-all": "选择/清除 全部", "chat": "对话", - "chat-with-privileged": "Chat with Privileged", + "chat-with-privileged": "使用特权聊天", "upload-images": "上传图片", "upload-files": "上传文件", "signature": "签名档", diff --git a/public/language/zh-CN/admin/manage/users.json b/public/language/zh-CN/admin/manage/users.json index 6a380e2133..e474cc27d3 100644 --- a/public/language/zh-CN/admin/manage/users.json +++ b/public/language/zh-CN/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "已发送邀请给 %1", "alerts.x-users-found": "找到 %1 位用户(耗时 %2 秒)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "选择CSV文件", + "export-field-email": "邮件", + "export-field-username": "用户名", + "export-field-uid": "用户ID", + "export-field-ip": "IP", + "export-field-joindate": "注册日期", + "export-field-lastonline": "最后在线", + "export-field-lastposttime": "最后发帖时间", + "export-field-reputation": "声望", + "export-field-postcount": "发帖数", + "export-field-topiccount": "发帖数", + "export-field-profileviews": "资料浏览", + "export-field-followercount": "粉丝数", + "export-field-followingcount": "关注数", + "export-field-fullname": "全名", + "export-field-website": "网站", + "export-field-location": "位置", + "export-field-birthday": "生日", + "export-field-signature": "签名档", + "export-field-aboutme": "关于我", + "export-users-started": "导出用户为 csv,这可能需要一些时间。当导出完成时你会收到通知。", "export-users-completed": "用户列表已被导出为 CSV 文件,点击以下载。", "email": "Email", diff --git a/public/language/zh-CN/admin/settings/navigation.json b/public/language/zh-CN/admin/settings/navigation.json index 78aa03c388..b0b0d94ed7 100644 --- a/public/language/zh-CN/admin/settings/navigation.json +++ b/public/language/zh-CN/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID:可选", "properties": "属性:", - "groups": "群组:", + "show-to-groups": "Show to Groups:", "open-new-window": "在新窗口中打开", "dropdown": "下拉列表", "dropdown-placeholder": "将你的下拉菜单项目放在下面,即:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/zh-CN/admin/settings/post.json b/public/language/zh-CN/admin/settings/post.json index b123295c1e..92e8c1b2d8 100644 --- a/public/language/zh-CN/admin/settings/post.json +++ b/public/language/zh-CN/admin/settings/post.json @@ -4,11 +4,11 @@ "sorting.post-default": "默认帖子排序", "sorting.oldest-to-newest": "从旧到新", "sorting.newest-to-oldest": "从新到旧", - "sorting.recently-replied": "Recently Replied", - "sorting.recently-created": "Recently Created", + "sorting.recently-replied": "最近回复", + "sorting.recently-created": "最近创建", "sorting.most-votes": "最多点赞", "sorting.most-posts": "最多回复", - "sorting.most-views": "Most Views", + "sorting.most-views": "最多浏览", "sorting.topic-default": "默认主题排序", "length": "帖子字数", "post-queue": "发帖队列", diff --git a/public/language/zh-CN/admin/settings/reputation.json b/public/language/zh-CN/admin/settings/reputation.json index 0573f1db49..6bbf2f50ce 100644 --- a/public/language/zh-CN/admin/settings/reputation.json +++ b/public/language/zh-CN/admin/settings/reputation.json @@ -23,12 +23,12 @@ "flags.limit-per-target": "可以举报某事物的最大次数", "flags.limit-per-target-placeholder": "默认:0", "flags.limit-per-target-help": "当一个帖子或用户被举报不止一次时,每个额外的举报会被认为是一个“报告”并附加到原来的举报中。设置此选项为非零的数以限制一个帖子或用户能被举报的次数。", - "flags.limit-post-flags-per-day": "Maximum number of times a user can flag posts in a day", - "flags.limit-post-flags-per-day-help": "Set to 0 to disable, (default: 10)", - "flags.limit-user-flags-per-day": "Maximum number of times a user can flag users in a day", - "flags.limit-user-flags-per-day-help": "Set to 0 to disable, (default: 10)", - "flags.auto-flag-on-downvote-threshold": "Number of downvotes to auto flag posts", - "flags.auto-flag-on-downvote-threshold-help": "Set to 0 to disable, (default: 0)", + "flags.limit-post-flags-per-day": "用户每日最多举报帖子次数", + "flags.limit-post-flags-per-day-help": "设置为0表示禁止(默认:10)", + "flags.limit-user-flags-per-day": "用户每日可以举报人数", + "flags.limit-user-flags-per-day-help": "设置为0表示禁止(默认:10)", + "flags.auto-flag-on-downvote-threshold": "被踩多少次数自动转为举报帖子", + "flags.auto-flag-on-downvote-threshold-help": "设置为0表示禁止(默认:10)", "flags.auto-resolve-on-ban": "当用户被封禁时,自动解决全部此用户提交的举报", "flags.action-on-resolve": "当举报被解决时做以下事", "flags.action-on-reject": "当举报被拒绝时做以下事", diff --git a/public/language/zh-CN/admin/settings/user.json b/public/language/zh-CN/admin/settings/user.json index 925f9ff00c..045919aab7 100644 --- a/public/language/zh-CN/admin/settings/user.json +++ b/public/language/zh-CN/admin/settings/user.json @@ -79,14 +79,14 @@ "follow-replied-topics": "关注您回复的主题", "default-notification-settings": "默认通知设置", "categoryWatchState": "默认版块关注状态", - "categoryWatchState.tracking": "Tracking", + "categoryWatchState.tracking": "跟踪", "categoryWatchState.notwatching": "未关注", "categoryWatchState.ignoring": "已忽略", - "restrictions-new": "New User Restrictions", - "restrictions.rep-threshold": "Reputation threshold before these restrictions are lifted", - "restrictions.seconds-between-new": "Seconds between posts for new users", - "restrictions.seconds-before-new": "Seconds before a new user can make their first post", - "restrictions.seconds-edit-after-new": "Number of seconds a post remains editable for new users (set to 0 to disable)", - "restrictions.milliseconds-between-messages": "Time between chat messages for new users (ms)", - "restrictions.groups-exempt-from-new-user-restrictions": "Select groups that should be exempt from the new user restrictions" + "restrictions-new": "新用户限制", + "restrictions.rep-threshold": "取消发帖间隔限制所需的声望值", + "restrictions.seconds-between-new": "新用户发布帖子间隔的秒数", + "restrictions.seconds-before-new": "新用户多少秒后可以发第一帖", + "restrictions.seconds-edit-after-new": "帖子保持可编辑的秒数(设置为 0 表示禁用)", + "restrictions.milliseconds-between-messages": "聊天信息间的毫秒数", + "restrictions.groups-exempt-from-new-user-restrictions": "选择不受新用户限制的分组" } diff --git a/public/language/zh-CN/aria.json b/public/language/zh-CN/aria.json index 6f023dcae0..c69f1844a9 100644 --- a/public/language/zh-CN/aria.json +++ b/public/language/zh-CN/aria.json @@ -1,8 +1,8 @@ { - "post-sort-option": "Post sort option, %1", - "topic-sort-option": "Topic sort option, %1", - "user-avatar-for": "User avatar for %1", - "user-watched-tags": "User watched tags", - "delete-upload-button": "Delete upload button", - "group-page-link-for": "Group page link for %1" + "post-sort-option": "帖子分类选项,1%", + "topic-sort-option": "主题分类选项,%1", + "user-avatar-for": "用户头像%1", + "user-watched-tags": "用户关注标签", + "delete-upload-button": "删除上传按钮", + "group-page-link-for": "群组页面链接%1" } \ No newline at end of file diff --git a/public/language/zh-CN/category.json b/public/language/zh-CN/category.json index 64fd876938..5b8301fcf6 100644 --- a/public/language/zh-CN/category.json +++ b/public/language/zh-CN/category.json @@ -10,15 +10,15 @@ "watch": "关注", "ignore": "忽略", "watching": "已关注", - "tracking": "Tracking", + "tracking": "跟踪", "not-watching": "未关注", "ignoring": "已忽略", - "watching.description": "Notify me of new topics.
Show topics in unread & recent", - "tracking.description": "Shows topics in unread & recent", + "watching.description": "有新主题时通知我。
在未读/最近主题中显示。", + "tracking.description": "显示未读和最近的主题", "not-watching.description": "不显示未读主题,显示最近主题", - "ignoring.description": "Do not show topics in unread & recent", + "ignoring.description": "不在未读和最近主题显示", "watching.message": "您关注了此版块和全部子版块的动态。", - "tracking.message": "You are now tracking updates from this category and all subcategories", + "tracking.message": "您关注了此版块和全部子版块的动态。", "notwatching.message": "您未关注了此版块和全部子版块的动态。", "ignoring.message": "您未关注此版块和全部子版块的动态。", "watched-categories": "已关注的版块", diff --git a/public/language/zh-CN/error.json b/public/language/zh-CN/error.json index b7c794e479..4b4f00050b 100644 --- a/public/language/zh-CN/error.json +++ b/public/language/zh-CN/error.json @@ -32,7 +32,7 @@ "folder-exists": "文件夹已存在", "invalid-pagination-value": "无效的分页数值,必须介于 %1 和 %2 之间", "username-taken": "此用户名已被占用", - "email-taken": "Email address is already taken.", + "email-taken": "邮箱地址已被注册", "email-nochange": "输入的邮件地址和已存档的邮件地址相同。", "email-invited": "已通过电子邮件进行邀请", "email-not-confirmed": "您需要验证您的邮箱后才能在版块或主题中发布帖子,请点击此处以发送验证邮件。", @@ -91,7 +91,7 @@ "category-not-selected": "未选择版块。", "too-many-posts": "发帖需要间隔 %1 秒以上 - 请稍候再发帖", "too-many-posts-newbie": "因为您是新用户,所以限制每隔 %1 秒才能发帖一次,直到您有 %2 点声望为止 —— 请稍候再发帖", - "too-many-posts-newbie-minutes": "As a new user, you can only post once every %1 minute(s) until you have earned %2 reputation - please wait before posting again", + "too-many-posts-newbie-minutes": "因为您是新用户,所以限制每隔 %1 秒才能发帖一次,直到您有 %2 点声望为止 —— 请稍候再发帖", "already-posting": "您已在发布帖子", "tag-too-short": "请输入一个更长的标签。标签应当包含不少于 %1 个字符", "tag-too-long": "请输入一个更短的标签。标签不能超过 %1 个字符", @@ -184,10 +184,10 @@ "user-already-flagged": "您已举报此用户", "post-flagged-too-many-times": "此贴已被其他用户举报", "user-flagged-too-many-times": "此用户已被其他用户举报", - "too-many-post-flags-per-day": "You can only flag %1 post(s) per day", - "too-many-user-flags-per-day": "You can only flag %1 user(s) per day", + "too-many-post-flags-per-day": "你每日可以举报%1 个帖子", + "too-many-user-flags-per-day": "你每日可以举报 %1个用户", "cant-flag-privileged": "您不能举报特权用户(版主/全局版主/管理员)的内容或资料", - "cant-locate-flag-report": "Cannot locate flag report", + "cant-locate-flag-report": "无法确定举报报告", "self-vote": "您不能对您自己的帖子投票", "too-many-upvotes-today": "您每天仅可进行 %1 次顶贴", "too-many-upvotes-today-user": "您每天只能对一个用户顶 %1 次", @@ -221,7 +221,7 @@ "already-unblocked": "此用户已被取消屏蔽", "no-connection": "您的网络连接似乎存在问题", "socket-reconnect-failed": "目前无法连接到服务器。请点击这里重试,或稍后再试", - "invalid-plugin-id": "Invalid plugin ID", + "invalid-plugin-id": "无效插件ID", "plugin-not-whitelisted": "无法安装插件 – 只有被NodeBB包管理器列入白名单的插件才能通过ACP安装。", "plugins-set-in-configuration": "您不能修改插件状态因为它们在运行时中被定义(config.json,环境变量或终端选项),请转而修改配置。", "theme-not-set-in-configuration": "在配置中定义活跃的插件时,需要先将新主题加入活跃插件的列表,才能在管理员控制面板中修改主题", diff --git a/public/language/zh-CN/flags.json b/public/language/zh-CN/flags.json index 63b43be5ac..9f215e5643 100644 --- a/public/language/zh-CN/flags.json +++ b/public/language/zh-CN/flags.json @@ -1,6 +1,6 @@ { "state": "状态", - "report": "Report", + "report": "报告", "reports": "报告", "first-reported": "首次报告", "no-flags": "啊哈!没发现任何的举报。", @@ -9,8 +9,8 @@ "update": "更新", "updated": "已更新", "resolved": "已解决", - "report-added": "Added", - "report-rescinded": "Rescinded", + "report-added": "已添加", + "report-rescinded": "已撤销", "target-purged": "被举报的内容已经被清除,不再可用。", "target-aboutme-empty": "这个用户没有设置 "关于我" 。", @@ -90,6 +90,6 @@ "bulk-actions": "批量操作", "bulk-resolve": "处理举报", "bulk-success": "已更新%1个举报", - "flagged-timeago-readable": "被举报于 (%2) ", + "flagged-timeago": "Flagged ", "auto-flagged": "【自动举报】收到 %1 个踩" } \ No newline at end of file diff --git a/public/language/zh-CN/global.json b/public/language/zh-CN/global.json index ab6ccbb36d..6055623934 100644 --- a/public/language/zh-CN/global.json +++ b/public/language/zh-CN/global.json @@ -140,12 +140,12 @@ "edited": "已编辑", "disabled": "禁用", "select": "选择", - "selected": "Selected", + "selected": "已选", "copied": "已复制", "user-search-prompt": "输入以查找用户", "hidden": "隐藏", "sort": "排序", "actions": "操作", - "rss-feed": "RSS Feed", - "skip-to-content": "Skip to content" + "rss-feed": "RSS 订阅", + "skip-to-content": "跳转至内容" } \ No newline at end of file diff --git a/public/language/zh-CN/notifications.json b/public/language/zh-CN/notifications.json index 5356a0be4c..981482c16c 100644 --- a/public/language/zh-CN/notifications.json +++ b/public/language/zh-CN/notifications.json @@ -13,14 +13,14 @@ "all": "所有", "topics": "主题", "tags": "Tags", - "categories": "Categories", + "categories": "版块", "replies": "回复", "chat": "聊天", "group-chat": "群聊", "public-chat": "Public Chats", "follows": "关注", "upvote": "顶", - "awards": "Awards", + "awards": "奖励", "new-flags": "新举报", "my-flags": "指派举报给我", "bans": "封禁", @@ -56,7 +56,7 @@ "user-posted-topic-with-tag-dual": "%1 has posted a new topic with tags %2 and %3", "user-posted-topic-with-tag-triple": "%1 has posted a new topic with tags %2, %3 and %4", "user-posted-topic-with-tag-multiple": "%1 has posted a new topic with tags %2", - "user-posted-topic-in-category": "%1 has posted a new topic in %2", + "user-posted-topic-in-category": "%1 发表了新主题:%2", "user-started-following-you": "%1关注了您。", "user-started-following-you-dual": "%1%2 关注了您。", "user-started-following-you-triple": "%1, %2 and %3 started following you.", @@ -83,7 +83,7 @@ "notificationType-upvote": "当有人顶了我的帖子时", "notificationType-new-topic": "当您关注的人发布了主题时", "notificationType-new-topic-with-tag": "When a topic is posted with a tag you follow", - "notificationType-new-topic-in-category": "When a topic is posted in a category you are watching", + "notificationType-new-topic-in-category": "当你关注的版块有主题发布时", "notificationType-new-reply": "当您正在查看的主题中有新回复时", "notificationType-post-edit": "当您关注的主题有帖子被编辑时", "notificationType-follow": "当有人关注您时", @@ -97,5 +97,5 @@ "notificationType-post-queue": "当有新帖子等待审核时", "notificationType-new-post-flag": "当有新的帖子举报时", "notificationType-new-user-flag": "当有新的用户信息举报时", - "notificationType-new-reward": "When you earn a new reward" + "notificationType-new-reward": "当你获得新奖励时" } \ No newline at end of file diff --git a/public/language/zh-CN/post-queue.json b/public/language/zh-CN/post-queue.json index ad4df11d34..7d318866e8 100644 --- a/public/language/zh-CN/post-queue.json +++ b/public/language/zh-CN/post-queue.json @@ -5,8 +5,8 @@ "no-single-post": "您正在查看的主题或帖子已经不在队列中。它可能已经被批准或删除。", "enabling-help": "The post queue is currently disabled. To enable this feature, go to Settings → Post → Post Queue and enable Post Queue.", "back-to-list": "回到发帖队列", - "public-intro": "If you have any queued posts, they will be shown here.", - "public-description": "This forum is configured to automatically queue posts from new accounts, pending moderator approval.
If you have queued posts awaiting approval, you will be able to see them here.", + "public-intro": "如果你有帖子等待发布,它们会显示在这里", + "public-description": "本论坛设置为新用户帖子进入发布队列,等待版主审核。
如果你有帖子等待发布,它们会显示在这里。", "user": "用户", "when": "当", "category": "版块", diff --git a/public/language/zh-CN/rewards.json b/public/language/zh-CN/rewards.json index f923cf1500..dbc21866b0 100644 --- a/public/language/zh-CN/rewards.json +++ b/public/language/zh-CN/rewards.json @@ -1,10 +1,10 @@ { - "awarded-x-reputation": "You have been awarded %1 reputation", - "awarded-group-membership": "You have been added to the group %1", + "awarded-x-reputation": "你已经获得%1声望", + "awarded-group-membership": "你已加入群组%1", - "essentials/user.reputation-conditional-value": "(Reputation %1 %2)", - "essentials/user.postcount-conditional-value": "(Post Count %1 %2)", - "essentials/user.lastonline-conditional-value": "(Last Online %1 %2)", - "essentials/user.joindate-conditional-value": "(Join Date %1 %2)", - "essentials/user.daysregistered-conditional-value": "(Days Registered %1 %2)" + "essentials/user.reputation-conditional-value": "(声望%1 %2)", + "essentials/user.postcount-conditional-value": "(帖子数%1 %2)", + "essentials/user.lastonline-conditional-value": "(最后在线时间%1 %2)", + "essentials/user.joindate-conditional-value": "(注册日期%1 %2)", + "essentials/user.daysregistered-conditional-value": "(注册天数%1 %2)" } \ No newline at end of file diff --git a/public/language/zh-CN/search.json b/public/language/zh-CN/search.json index 1132d3da44..8cd7bc355b 100644 --- a/public/language/zh-CN/search.json +++ b/public/language/zh-CN/search.json @@ -7,7 +7,7 @@ "in-titles": "在标题中", "in-titles-posts": "在标题和帖子中", "in-posts": "在帖子中", - "in-bookmarks": "In bookmarks", + "in-bookmarks": "在书签中", "in-categories": "在板块中", "in-users": "在用户中", "in-tags": "在标签中", diff --git a/public/language/zh-CN/social.json b/public/language/zh-CN/social.json index ae8a4a5874..ff9388001d 100644 --- a/public/language/zh-CN/social.json +++ b/public/language/zh-CN/social.json @@ -7,6 +7,6 @@ "sign-up-with-google": "通过 Google 注册", "log-in-with-facebook": "通过 Facebook 登录", "continue-with-facebook": "继续使用 Facebook 登录", - "sign-in-with-linkedin": "Sign in with LinkedIn", - "sign-up-with-linkedin": "Sign up with LinkedIn" + "sign-in-with-linkedin": "通过LinkedIn登录", + "sign-up-with-linkedin": "通过LinkedIn注册" } \ No newline at end of file diff --git a/public/language/zh-CN/tags.json b/public/language/zh-CN/tags.json index e892b5bddb..d68b9825fa 100644 --- a/public/language/zh-CN/tags.json +++ b/public/language/zh-CN/tags.json @@ -3,7 +3,7 @@ "no-tag-topics": "此标签还没有主题帖。", "no-tags-found": "没有找到标签", "tags": "标签", - "enter-tags-here": "Enter tags, %1 - %2 characters.", + "enter-tags-here": "输入标签,限制%1 - %2个字符", "enter-tags-here-short": "输入标签...", "no-tags": "尚无标签。", "select-tags": "选择标签", diff --git a/public/language/zh-CN/themes/harmony.json b/public/language/zh-CN/themes/harmony.json index 9a657d723c..62c9c1b4c6 100644 --- a/public/language/zh-CN/themes/harmony.json +++ b/public/language/zh-CN/themes/harmony.json @@ -3,17 +3,17 @@ "skins": "皮肤", "collapse": "折叠", "expand": "展开", - "sidebar-toggle": "Sidebar Toggle", + "sidebar-toggle": "侧栏滚动", "login-register-to-search": "登录或注册以进行搜索。", "settings.title": "主题设置", "settings.enableQuickReply": "启用快速回复", - "settings.enableBreadcrumbs": "Enable breadcrumbs", + "settings.enableBreadcrumbs": "启用面包屑导航", "settings.centerHeaderElements": "标题元素居中", "settings.mobileTopicTeasers": "在移动设备显示话题预告", "settings.stickyToolbar": "附着工具条", "settings.stickyToolbar.help": "主题和类别页面上的工具条将附着在页面顶部", "settings.autohideBottombar": "自动隐藏底栏", "settings.autohideBottombar.help": "当页面向下滚动时,移动设备视图的底栏将被隐藏", - "settings.openSidebars": "Open sidebars", + "settings.openSidebars": "打开侧栏", "settings.chatModals": "启用聊天模式" } \ No newline at end of file diff --git a/public/language/zh-CN/topic.json b/public/language/zh-CN/topic.json index 3ccd7422bc..42a6d6a334 100644 --- a/public/language/zh-CN/topic.json +++ b/public/language/zh-CN/topic.json @@ -15,7 +15,7 @@ "replies-to-this-post": "%1 条回复", "one-reply-to-this-post": "1 条回复", "last-reply-time": "最后回复", - "reply-options": "Reply options", + "reply-options": "回复选项", "reply-as-topic": "在新帖中回复", "guest-login-reply": "登录后回复", "login-to-view": "🔒登录查看", @@ -35,7 +35,7 @@ "pinned": "已固定", "pinned-with-expiry": "置顶直到 %1", "scheduled": "已定时", - "deleted": "Deleted", + "deleted": "删除", "moved": "已移动", "moved-from": "移自%1版", "copy-code": "复制代码", @@ -182,8 +182,8 @@ "sort-by": "排序", "oldest-to-newest": "从旧到新", "newest-to-oldest": "从新到旧", - "recently-replied": "Recently Replied", - "recently-created": "Recently Created", + "recently-replied": "最近回复", + "recently-created": "最近创建", "most-votes": "最多赞同", "most-posts": "回复最多", "most-views": "最多浏览", @@ -208,13 +208,13 @@ "last-post": "最后一个帖子", "go-to-my-next-post": "转到我的下一个帖子", "no-more-next-post": "您在此主题中没有更多的帖子了", - "open-composer": "Open composer", + "open-composer": "打开编辑器", "post-quick-reply": "快速回复", "navigator.index": "发布 %2 的 %1", "navigator.unread": "未读 %1", - "upvote-post": "Upvote post", - "downvote-post": "Downvote post", - "post-tools": "Post tools", - "unread-posts-link": "Unread posts link", - "thumb-image": "Topic thumbnail image" + "upvote-post": "顶贴", + "downvote-post": "踩帖", + "post-tools": "帖子工具", + "unread-posts-link": "未读帖子链接", + "thumb-image": "主题缩略图" } \ No newline at end of file diff --git a/public/language/zh-CN/user.json b/public/language/zh-CN/user.json index 2606315658..5ce0e61c62 100644 --- a/public/language/zh-CN/user.json +++ b/public/language/zh-CN/user.json @@ -1,7 +1,9 @@ { "user-menu": "用户菜单", "banned": "已封禁", + "unbanned": "Unbanned", "muted": "禁言", + "unmuted": "Unmuted", "offline": "离线", "deleted": "已删除", "username": "用户名", @@ -142,10 +144,10 @@ "follow-topics-you-create": "关注您创建的主题", "grouptitle": "用户组称号", "group-order-help": "选择群组然后使用箭头排列称号", - "show-group-title": "Show group title", - "hide-group-title": "Hide group title", - "order-group-up": "Order group up", - "order-group-down": "Order group down", + "show-group-title": "显示群组标题", + "hide-group-title": "隐藏群组标题", + "order-group-up": "用户组上移", + "order-group-down": "用户组下移", "no-group-title": "不展示群组称号", "select-skin": "选择皮肤", "default": "默认(%1)", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "确认解除关联", "sso.dissociate-confirm": "您确定您要将您的账号与 %1 解除关联吗?", "info.latest-flags": "最新举报", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "没有找到被举报的帖子", "info.ban-history": "最近封禁历史", "info.no-ban-history": "该用户从未被封禁", "info.banned-until": "封禁到 %1", "info.banned-expiry": "到期", + "info.ban-expired": "Ban expired", "info.banned-permanently": "永久封禁", "info.banned-reason-label": "原因", "info.banned-no-reason": "没有原因", diff --git a/public/language/zh-TW/admin/advanced/events.json b/public/language/zh-TW/admin/advanced/events.json index c801c04f18..c37ccc84e4 100644 --- a/public/language/zh-TW/admin/advanced/events.json +++ b/public/language/zh-TW/admin/advanced/events.json @@ -9,5 +9,9 @@ "filter-type": "事件類型", "filter-start": "開始時間", "filter-end": "結束時間", + "filter-user": "Filter by User", + "filter-user.placeholder": "Type user name to filter...", + "filter-group": "Filter by Group", + "filter-group.placeholder": "Type group name to filter...", "filter-per-page": "每頁" } \ No newline at end of file diff --git a/public/language/zh-TW/admin/manage/users.json b/public/language/zh-TW/admin/manage/users.json index d523e0c39c..103be7aad4 100644 --- a/public/language/zh-TW/admin/manage/users.json +++ b/public/language/zh-TW/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "已發送邀請給 %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/language/zh-TW/admin/settings/navigation.json b/public/language/zh-TW/admin/settings/navigation.json index b9414b37e2..3e0c51748a 100644 --- a/public/language/zh-TW/admin/settings/navigation.json +++ b/public/language/zh-TW/admin/settings/navigation.json @@ -10,7 +10,7 @@ "id": "ID:可選", "properties": "屬性:", - "groups": "群組:", + "show-to-groups": "Show to Groups:", "open-new-window": "在新窗口中打開", "dropdown": "Dropdown", "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", diff --git a/public/language/zh-TW/flags.json b/public/language/zh-TW/flags.json index b361076616..090984504c 100644 --- a/public/language/zh-TW/flags.json +++ b/public/language/zh-TW/flags.json @@ -90,6 +90,6 @@ "bulk-actions": "Bulk Actions", "bulk-resolve": "Resolve Flag(s)", "bulk-success": "%1 flags updated", - "flagged-timeago-readable": "Flagged (%2)", + "flagged-timeago": "Flagged ", "auto-flagged": "[Auto Flagged] Received %1 downvotes." } \ No newline at end of file diff --git a/public/language/zh-TW/user.json b/public/language/zh-TW/user.json index e87f23c83e..5a08fe71d9 100644 --- a/public/language/zh-TW/user.json +++ b/public/language/zh-TW/user.json @@ -1,7 +1,9 @@ { "user-menu": "User menu", "banned": "已停權", + "unbanned": "Unbanned", "muted": "Muted", + "unmuted": "Unmuted", "offline": "離線", "deleted": "已刪除", "username": "使用者名", @@ -162,11 +164,16 @@ "sso.dissociate-confirm-title": "確認解除關聯", "sso.dissociate-confirm": "您確定要將您的帳戶與 %1 解除關聯嗎?", "info.latest-flags": "最新舉報", + "info.profile": "Profile", + "info.post": "Post", + "info.view-flag": "View flag", + "info.reported-by": "Reported by:", "info.no-flags": "沒有找到被舉報的貼文", "info.ban-history": "最近停權紀錄", "info.no-ban-history": "該使用者從未被停權", "info.banned-until": "停權直到 %1", "info.banned-expiry": "過期", + "info.ban-expired": "Ban expired", "info.banned-permanently": "永久禁用", "info.banned-reason-label": "原因", "info.banned-no-reason": "沒有原因", diff --git a/public/openapi/read/admin/manage/admins-mods.yaml b/public/openapi/read/admin/manage/admins-mods.yaml index c5db50d839..7bb63ec3aa 100644 --- a/public/openapi/read/admin/manage/admins-mods.yaml +++ b/public/openapi/read/admin/manage/admins-mods.yaml @@ -18,87 +18,16 @@ get: categoryMods: type: array items: - type: object - properties: - cid: - type: number - description: A category identifier assigned upon category creation (this value cannot be changed) - name: - type: string - description: The category's name/title - description: - type: string - description: A variable-length description of the category (usually displayed underneath the category name) - descriptionParsed: - type: string - description: A variable-length description of the category (usually displayed underneath the category name). Unlike `description`, this value here will have been run through any parsers installed on the forum (e.g. Markdown) - icon: - type: string - description: A FontAwesome icon string - example: fa-comments-o - bgColor: - type: string - description: Theme-related, a six-character hexadecimal string representing the background colour of the category - color: - type: string - description: Theme-related, a six-character hexadecimal string representing the foreground/text colour of the category - slug: - type: string - description: An URL-safe variant of the category title. This value is automatically generated. - readOnly: true - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - topic_count: - type: number - description: The number of topics in the category - post_count: - type: number - description: The number of posts in the category - disabled: - type: number - description: Whether or not this category is disabled. - order: - type: number - description: A number representing the category's place in the hierarchy - link: - type: string - description: If set, attempting to access the forum will go to this external link instead (theme-specific) - numRecentReplies: - type: number - description: The number of posts to render in the API response (this is mostly used at the theme level) - class: - type: string - description: Values that are appended to the `class` attribute of the category's parent/root element - imageClass: - type: string - enum: [auto, cover, contain] - description: The `background-position` of the category background image, if one is set - isSection: - type: number - minTags: - type: number - description: Minimum tags per topic in this category - maxTags: - type: number - description: Maximum tags per topic in this category - postQueue: - type: number - totalPostCount: - type: number - description: The number of posts in the category - totalTopicCount: - type: number - description: The number of topics in the category - subCategoriesPerPage: - type: number - description: The number of subcategories to display on the categories and category page - moderators: - type: array - items: - $ref: ../../../components/schemas/UserObject.yaml#/UserObjectSlim - subCategoryCount: - type: number + allOf: + - $ref: ../../../components/schemas/CategoryObject.yaml#/CategoryObject + - type: object + properties: + moderators: + type: array + items: + $ref: ../../../components/schemas/UserObject.yaml#/UserObjectSlim + subCategoryCount: + type: number selectedCategory: nullable: true anyOf: diff --git a/public/openapi/read/user/userslug/info.yaml b/public/openapi/read/user/userslug/info.yaml index 110e252be5..66c3ba0730 100644 --- a/public/openapi/read/user/userslug/info.yaml +++ b/public/openapi/read/user/userslug/info.yaml @@ -69,6 +69,8 @@ get: properties: value: type: string + byUid: + type: string timestamp: type: number timestampISO: @@ -81,6 +83,10 @@ get: properties: value: type: string + byUid: + type: string + byUser: + type: object timestamp: type: number timestampISO: diff --git a/public/openapi/write/posts/pid/summary.yaml b/public/openapi/write/posts/pid/summary.yaml index 29d46c4129..59d5599065 100644 --- a/public/openapi/write/posts/pid/summary.yaml +++ b/public/openapi/write/posts/pid/summary.yaml @@ -31,40 +31,4 @@ get: status: $ref: ../../../components/schemas/Status.yaml#/Status response: - type: object - properties: - pid: - type: number - tid: - type: number - description: A topic identifier - content: - type: string - uid: - type: number - description: A user identifier - timestamp: - type: number - deleted: - type: number - upvotes: - type: number - downvotes: - type: number - replies: - type: number - votes: - type: number - timestampISO: - type: string - user: - type: object - additionalProperties: {} - topic: - type: object - additionalProperties: {} - category: - type: object - additionalProperties: {} - isMainPost: - type: boolean \ No newline at end of file + $ref: ../../../components/schemas/PostObject.yaml#/PostObject diff --git a/public/src/admin/advanced/events.js b/public/src/admin/advanced/events.js index 112c76f985..ecf494bf31 100644 --- a/public/src/admin/advanced/events.js +++ b/public/src/admin/advanced/events.js @@ -1,7 +1,7 @@ 'use strict'; -define('admin/advanced/events', ['bootbox', 'alerts'], function (bootbox, alerts) { +define('admin/advanced/events', ['bootbox', 'alerts', 'autocomplete'], function (bootbox, alerts, autocomplete) { const Events = {}; Events.init = function () { @@ -30,6 +30,21 @@ define('admin/advanced/events', ['bootbox', 'alerts'], function (bootbox, alerts }); }); + $('#user-group-select').on('change', function () { + const val = $(this).val(); + $('#username').toggleClass('hidden', val !== 'username'); + if (val !== 'username') { + $('#username').val(''); + } + $('#group').toggleClass('hidden', val !== 'group'); + if (val !== 'group') { + $('#group').val(''); + } + }); + + autocomplete.user($('#username')); + autocomplete.group($('#group')); + $('#apply').on('click', Events.refresh); }; diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index 16a4918d63..0f8dffaa29 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -27,15 +27,60 @@ define('admin/manage/users', [ timeout: 0, }); }); - socket.emit('admin.user.exportUsersCSV', {}, function (err) { - if (err) { - return alerts.error(err); - } - alerts.alert({ - alert_id: 'export-users-start', - message: '[[admin/manage/users:export-users-started]]', - timeout: (ajaxify.data.userCount / 5000) * 500, - }); + + const defaultFields = [ + { label: '[[admin/manage/users:export-field-email]]', field: 'email', selected: true }, + { label: '[[admin/manage/users:export-field-username]]', field: 'username', selected: true }, + { label: '[[admin/manage/users:export-field-uid]]', field: 'uid', selected: true }, + { label: '[[admin/manage/users:export-field-ip]]', field: 'ip', selected: true }, + { label: '[[admin/manage/users:export-field-joindate]]', field: 'joindate', selected: false }, + { label: '[[admin/manage/users:export-field-lastonline]]', field: 'lastonline', selected: false }, + { label: '[[admin/manage/users:export-field-lastposttime]]', field: 'lastposttime', selected: false }, + { label: '[[admin/manage/users:export-field-reputation]]', field: 'reputation', selected: false }, + { label: '[[admin/manage/users:export-field-postcount]]', field: 'postcount', selected: false }, + { label: '[[admin/manage/users:export-field-topiccount]]', field: 'topiccount', selected: false }, + { label: '[[admin/manage/users:export-field-profileviews]]', field: 'profileviews', selected: false }, + { label: '[[admin/manage/users:export-field-followercount]]', field: 'followerCount', selected: false }, + { label: '[[admin/manage/users:export-field-followingcount]]', field: 'followingCount', selected: false }, + { label: '[[admin/manage/users:export-field-fullname]]', field: 'fullname', selected: false }, + { label: '[[admin/manage/users:export-field-website]]', field: 'website', selected: false }, + { label: '[[admin/manage/users:export-field-location]]', field: 'location', selected: false }, + { label: '[[admin/manage/users:export-field-birthday]]', field: 'birthday', selected: false }, + { label: '[[admin/manage/users:export-field-signature]]', field: 'signature', selected: false }, + { label: '[[admin/manage/users:export-field-aboutme]]', field: 'aboutme', selected: false }, + ]; + const options = defaultFields.map((field, i) => (` +

+ + +
` + )).join(''); + + const modal = bootbox.dialog({ + message: options, + title: '[[admin/manage/users:export-users-fields-title]]', + buttons: { + submit: { + label: '[[admin/manage/users:export]]', + callback: function () { + const fields = modal.find('[data-field]').filter( + (index, el) => $(el).is(':checked') + ).map((index, el) => $(el).attr('data-field')).get(); + socket.emit('admin.user.exportUsersCSV', { fields }, function (err) { + if (err) { + return alerts.error(err); + } + alerts.alert({ + alert_id: 'export-users-start', + message: '[[admin/manage/users:export-users-started]]', + timeout: Math.max(5000, (ajaxify.data.userCount / 5000) * 500), + }); + }); + }, + }, + }, }); return false; @@ -214,11 +259,11 @@ define('admin/manage/users', [ } Benchpress.render('modals/temporary-ban', {}).then(function (html) { - bootbox.dialog({ - className: 'ban-modal', + const modal = bootbox.dialog({ title: '[[user:ban-account]]', message: html, show: true, + onEscape: true, buttons: { close: { label: '[[global:close]]', @@ -227,7 +272,7 @@ define('admin/manage/users', [ submit: { label: '[[admin/manage/users:alerts.button-ban-x, ' + uids.length + ']]', callback: function () { - const formData = $('.ban-modal form').serializeArray().reduce(function (data, cur) { + const formData = modal.find('form').serializeArray().reduce(function (data, cur) { data[cur.name] = cur.value; return data; }, {}); @@ -257,10 +302,37 @@ define('admin/manage/users', [ return false; // specifically to keep the menu open } - Promise.all(uids.map(function (uid) { - return api.del('/users/' + uid + '/ban'); - })).then(() => { - onSuccess('[[admin/manage/users:alerts.unban-success]]', '.ban', false); + Benchpress.render('modals/unban', {}).then(function (html) { + const modal = bootbox.dialog({ + title: '[[user:unban-account]]', + message: html, + show: true, + onEscape: true, + buttons: { + close: { + label: '[[global:close]]', + className: 'btn-link', + }, + submit: { + label: '[[user:unban-account]]', + callback: function () { + const formData = modal.find('form').serializeArray().reduce(function (data, cur) { + data[cur.name] = cur.value; + return data; + }, {}); + + + Promise.all(uids.map(function (uid) { + return api.del('/users/' + uid + '/ban', { + reason: formData.reason || '', + }); + })).then(() => { + onSuccess('[[admin/manage/users:alerts.unban-success]]', '.ban', false); + }).catch(alerts.error); + }, + }, + }, + }); }); }); diff --git a/public/src/client/account/info.js b/public/src/client/account/info.js index 71adca7b11..f044860cd6 100644 --- a/public/src/client/account/info.js +++ b/public/src/client/account/info.js @@ -12,26 +12,71 @@ define('forum/account/info', ['forum/account/header', 'alerts', 'forum/account/s function handleModerationNote() { $('[component="account/save-moderation-note"]').on('click', function () { - const note = $('[component="account/moderation-note"]').val(); - socket.emit('user.setModerationNote', { uid: ajaxify.data.uid, note: note }, function (err) { + const noteEl = $('[component="account/moderation-note"]'); + const note = noteEl.val(); + socket.emit('user.setModerationNote', { + uid: ajaxify.data.uid, + note: note, + }, function (err, notes) { if (err) { return alerts.error(err); } - $('[component="account/moderation-note"]').val(''); - alerts.success('[[user:info.moderation-note.success]]'); - const timestamp = Date.now(); - const data = [{ - note: utils.escapeHTML(note), - user: app.user, - timestamp: timestamp, - timestampISO: utils.toISOString(timestamp), - }]; - app.parseAndTranslate('account/info', 'moderationNotes', { moderationNotes: data }, function (html) { + noteEl.val(''); + + app.parseAndTranslate('account/info', 'moderationNotes', { moderationNotes: notes }, function (html) { $('[component="account/moderation-note/list"]').prepend(html); html.find('.timeago').timeago(); }); }); }); + + + $('[component="account/moderation-note/edit"]').on('click', function () { + const parent = $(this).parents('[data-id]'); + const contentArea = parent.find('[component="account/moderation-note/content-area"]'); + const editArea = parent.find('[component="account/moderation-note/edit-area"]'); + contentArea.addClass('hidden'); + editArea.removeClass('hidden'); + editArea.find('textarea').trigger('focus').putCursorAtEnd(); + }); + + $('[component="account/moderation-note/save-edit"]').on('click', function () { + const parent = $(this).parents('[data-id]'); + const contentArea = parent.find('[component="account/moderation-note/content-area"]'); + const editArea = parent.find('[component="account/moderation-note/edit-area"]'); + contentArea.removeClass('hidden'); + const textarea = editArea.find('textarea'); + + socket.emit('user.editModerationNote', { + uid: ajaxify.data.uid, + id: parent.attr('data-id'), + note: textarea.val(), + }, function (err, notes) { + if (err) { + return alerts.error(err); + } + textarea.css({ + height: textarea.prop('scrollHeight') + 'px', + }); + editArea.addClass('hidden'); + contentArea.find('.content').html(notes[0].note); + }); + }); + + $('[component="account/moderation-note/cancel-edit"]').on('click', function () { + const parent = $(this).parents('[data-id]'); + const contentArea = parent.find('[component="account/moderation-note/content-area"]'); + const editArea = parent.find('[component="account/moderation-note/edit-area"]'); + contentArea.removeClass('hidden'); + editArea.addClass('hidden'); + }); + + $('[component="account/moderation-note/edit-area"] textarea').each((i, el) => { + const $el = $(el); + $el.css({ + height: $el.prop('scrollHeight') + 'px', + }).parent().addClass('hidden'); + }); } return Info; diff --git a/public/src/client/chats/message-search.js b/public/src/client/chats/message-search.js index d6490c8b3e..24da351a76 100644 --- a/public/src/client/chats/message-search.js +++ b/public/src/client/chats/message-search.js @@ -77,7 +77,7 @@ define('forum/chats/message-search', [ async function displayResults(data) { removeResults(); - if (!data.length) { + if (!data.messages.length) { resultListEl.removeClass('hidden'); chatContent.addClass('hidden'); return resultListEl.find('[component="chat/message/search/no-results"]').removeClass('hidden'); @@ -85,7 +85,7 @@ define('forum/chats/message-search', [ resultListEl.find('[component="chat/message/search/no-results"]').addClass('hidden'); const html = await app.parseAndTranslate('partials/chats/messages', { - messages: data, + messages: data.messages, isAdminOrGlobalMod: app.user.isAdmin || app.user.isGlobalMod, }); diff --git a/public/src/client/topic/change-owner.js b/public/src/client/topic/change-owner.js index 4f82dda2ad..b0b4e5be6c 100644 --- a/public/src/client/topic/change-owner.js +++ b/public/src/client/topic/change-owner.js @@ -73,7 +73,7 @@ define('forum/topic/change-owner', [ if (err) { return alerts.error(err); } - ajaxify.refresh(); + ajaxify.go(`/post/${postSelect.pids[0]}`); closeModal(); }); diff --git a/public/src/client/topic/merge.js b/public/src/client/topic/merge.js index 1dce760c1b..7c96f0b9e7 100644 --- a/public/src/client/topic/merge.js +++ b/public/src/client/topic/merge.js @@ -38,10 +38,22 @@ define('forum/topic/merge', ['search', 'alerts', 'api'], function (search, alert searchOptions: { in: 'titles', }, + dropdown: { + maxWidth: '400px', + maxHeight: '350px', + }, }); modal.on('click', '[data-tid]', function () { - if ($(this).attr('data-tid')) { - Merge.addTopic($(this).attr('data-tid')); + const addTid = $(this).attr('data-tid'); + if (addTid) { + Merge.addTopic(addTid); + } + return false; + }); + modal.on('click', '[data-remove-tid]', function () { + const removeTid = $(this).attr('data-remove-tid'); + if (removeTid) { + Merge.removeTopic(removeTid); } return false; }); @@ -54,23 +66,33 @@ define('forum/topic/merge', ['search', 'alerts', 'api'], function (search, alert callback = callback || function () {}; api.get(`/topics/${tid}`, {}).then(function (topicData) { const title = topicData ? topicData.title : 'No title'; - if (selectedTids[tid]) { - delete selectedTids[tid]; - } else { - selectedTids[tid] = title; - } + selectedTids[tid] = title; checkButtonEnable(); showTopicsSelected(); callback(); }).catch(alerts.error); }; + Merge.removeTopic = function (tid) { + if (selectedTids[tid]) { + delete selectedTids[tid]; + } + checkButtonEnable(); + showTopicsSelected(); + }; + function onTopicClicked(ev) { if (!modal) { return; } - const tid = $(this).parents('[component="category/topic"]').attr('data-tid'); - Merge.addTopic(tid); + const topicEl = $(this).parents('[component="category/topic"]'); + const isSelected = topicEl.hasClass('selected'); + const tid = topicEl.attr('data-tid'); + if (isSelected) { + Merge.addTopic(tid); + } else { + Merge.removeTopic(tid); + } ev.preventDefault(); ev.stopPropagation(); @@ -116,10 +138,13 @@ define('forum/topic/merge', ['search', 'alerts', 'api'], function (search, alert topics: topics, }, function (html) { modal.find('.topics-section').html(html.find('.topics-section').html()); - modal.find('.merge-main-topic-select').html(html.find('.merge-main-topic-select').html()); + modal.find('.merge-main-topic-select').html( + html.find('.merge-main-topic-select').html() + ); }); } else { modal.find('.topics-section').translateHtml('[[error:no-topics-selected]]'); + modal.find('.merge-main-topic-select').html(''); } } diff --git a/public/src/modules/accounts/moderate.js b/public/src/modules/accounts/moderate.js index 3a230f098a..9b1308a8e1 100644 --- a/public/src/modules/accounts/moderate.js +++ b/public/src/modules/accounts/moderate.js @@ -11,98 +11,105 @@ define('forum/account/moderate', [ AccountModerate.banAccount = function (theirid, onSuccess) { theirid = theirid || ajaxify.data.theirid; - Benchpress.render('modals/temporary-ban', {}).then(function (html) { - bootbox.dialog({ - className: 'ban-modal', - title: '[[user:ban-account]]', - message: html, - show: true, - buttons: { - close: { - label: '[[global:close]]', - className: 'btn-link', - }, - submit: { - label: '[[user:ban-account]]', - callback: function () { - const formData = $('.ban-modal form').serializeArray().reduce(function (data, cur) { - data[cur.name] = cur.value; - return data; - }, {}); + throwModal({ + tpl: 'modals/temporary-ban', + title: '[[user:ban-account]]', + onSubmit: function (formData) { + const until = formData.length > 0 ? ( + Date.now() + (formData.length * 1000 * 60 * 60 * (parseInt(formData.unit, 10) ? 24 : 1)) + ) : 0; + api.put('/users/' + theirid + '/ban', { + until: until, + reason: formData.reason || '', + }).then(() => { + if (typeof onSuccess === 'function') { + return onSuccess(); + } - const until = formData.length > 0 ? ( - Date.now() + (formData.length * 1000 * 60 * 60 * (parseInt(formData.unit, 10) ? 24 : 1)) - ) : 0; - - api.put('/users/' + theirid + '/ban', { - until: until, - reason: formData.reason || '', - }).then(() => { - if (typeof onSuccess === 'function') { - return onSuccess(); - } - - ajaxify.refresh(); - }).catch(alerts.error); - }, - }, - }, - }); + ajaxify.refresh(); + }).catch(alerts.error); + }, }); }; AccountModerate.unbanAccount = function (theirid) { - api.del('/users/' + theirid + '/ban').then(() => { - ajaxify.refresh(); - }).catch(alerts.error); + throwModal({ + tpl: 'modals/unban', + title: '[[user:unban-account]]', + onSubmit: function (formData) { + api.del('/users/' + theirid + '/ban', { + reason: formData.reason || '', + }).then(() => { + ajaxify.refresh(); + }).catch(alerts.error); + }, + }); }; AccountModerate.muteAccount = function (theirid, onSuccess) { theirid = theirid || ajaxify.data.theirid; - Benchpress.render('modals/temporary-mute', {}).then(function (html) { - bootbox.dialog({ - className: 'mute-modal', - title: '[[user:mute-account]]', + throwModal({ + tpl: 'modals/temporary-mute', + title: '[[user:mute-account]]', + onSubmit: function (formData) { + const until = formData.length > 0 ? ( + Date.now() + (formData.length * 1000 * 60 * 60 * (parseInt(formData.unit, 10) ? 24 : 1)) + ) : 0; + + api.put('/users/' + theirid + '/mute', { + until: until, + reason: formData.reason || '', + }).then(() => { + if (typeof onSuccess === 'function') { + return onSuccess(); + } + ajaxify.refresh(); + }).catch(alerts.error); + }, + }); + }; + + AccountModerate.unmuteAccount = function (theirid) { + throwModal({ + tpl: 'modals/unmute', + title: '[[user:unmute-account]]', + onSubmit: function (formData) { + api.del('/users/' + theirid + '/mute', { + reason: formData.reason || '', + }).then(() => { + ajaxify.refresh(); + }).catch(alerts.error); + }, + }); + }; + + function throwModal(options) { + Benchpress.render(options.tpl, {}).then(function (html) { + const modal = bootbox.dialog({ + title: options.title, message: html, show: true, + onEscape: true, buttons: { close: { label: '[[global:close]]', className: 'btn-link', }, submit: { - label: '[[user:mute-account]]', + label: options.title, callback: function () { - const formData = $('.mute-modal form').serializeArray().reduce(function (data, cur) { + const formData = modal.find('form').serializeArray().reduce(function (data, cur) { data[cur.name] = cur.value; return data; }, {}); - const until = formData.length > 0 ? ( - Date.now() + (formData.length * 1000 * 60 * 60 * (parseInt(formData.unit, 10) ? 24 : 1)) - ) : 0; - - api.put('/users/' + theirid + '/mute', { - until: until, - reason: formData.reason || '', - }).then(() => { - if (typeof onSuccess === 'function') { - return onSuccess(); - } - ajaxify.refresh(); - }).catch(alerts.error); + options.onSubmit(formData); }, }, }, }); }); - }; - - AccountModerate.unmuteAccount = function (theirid) { - api.del('/users/' + theirid + '/mute').then(() => { - ajaxify.refresh(); - }).catch(alerts.error); - }; + } return AccountModerate; }); diff --git a/public/src/modules/api.js b/public/src/modules/api.js index 447c9602cd..fcee6b94b0 100644 --- a/public/src/modules/api.js +++ b/public/src/modules/api.js @@ -22,9 +22,10 @@ async function call(options, callback) { return result; } catch (err) { if (err.message === 'A valid login session was not found. Please log in and try again.') { + const { url } = await fireHook('filter:admin.reauth', { url: 'login' }); return confirm('[[error:api.reauth-required]]', (ok) => { if (ok) { - ajaxify.go('login'); + ajaxify.go(url); } }); } @@ -65,7 +66,7 @@ async function xhr(options) { const isJSON = contentType && contentType.startsWith('application/json'); let response; - if (options.method !== 'head') { + if (options.method !== 'HEAD') { if (isJSON) { response = await res.json(); } else { @@ -94,14 +95,14 @@ export function get(route, data, onSuccess) { export function head(route, data, onSuccess) { return call({ url: route + (data && Object.keys(data).length ? ('?' + $.param(data)) : ''), - method: 'head', + method: 'HEAD', }, onSuccess); } export function post(route, data, onSuccess) { return call({ url: route, - method: 'post', + method: 'POST', data, headers: { 'x-csrf-token': config.csrf_token, @@ -123,7 +124,7 @@ export function patch(route, data, onSuccess) { export function put(route, data, onSuccess) { return call({ url: route, - method: 'put', + method: 'PUT', data, headers: { 'x-csrf-token': config.csrf_token, @@ -134,7 +135,7 @@ export function put(route, data, onSuccess) { export function del(route, data, onSuccess) { return call({ url: route, - method: 'delete', + method: 'DELETE', data, headers: { 'x-csrf-token': config.csrf_token, diff --git a/public/src/modules/search.js b/public/src/modules/search.js index f0550dd864..0d87e398f4 100644 --- a/public/src/modules/search.js +++ b/public/src/modules/search.js @@ -136,6 +136,7 @@ define('search', [ text.slice(start, start + 80) + (text.length - start > 80 ? '...' : '')); }); + data.dropdown = { maxWidth: '400px', maxHeight: '500px', ...options.dropdown }; app.parseAndTranslate('partials/quick-search-results', data, function (html) { if (html.length) { html.find('.timeago').timeago(); diff --git a/src/api/users.js b/src/api/users.js index 2bd4779409..931e75b36b 100644 --- a/src/api/users.js +++ b/src/api/users.js @@ -18,8 +18,7 @@ const plugins = require('../plugins'); const events = require('../events'); const translator = require('../translator'); const sockets = require('../socket.io'); - -// const api = require('.'); +const utils = require('../utils'); const usersAPI = module.exports; @@ -253,7 +252,8 @@ usersAPI.unban = async function (caller, data) { throw new Error('[[error:no-privileges]]'); } - await user.bans.unban(data.uid); + const unbanData = await user.bans.unban(data.uid, data.reason); + await db.setObjectField(`uid:${data.uid}:unban:${unbanData.timestamp}`, 'fromUid', caller.uid); sockets.in(`uid_${data.uid}`).emit('event:unbanned'); @@ -284,6 +284,7 @@ usersAPI.mute = async function (caller, data) { const now = Date.now(); const muteKey = `uid:${data.uid}:mute:${now}`; const muteData = { + type: 'mute', fromUid: caller.uid, uid: data.uid, timestamp: now, @@ -316,7 +317,19 @@ usersAPI.unmute = async function (caller, data) { } await db.deleteObjectFields(`user:${data.uid}`, ['mutedUntil', 'mutedReason']); - + const now = Date.now(); + const unmuteKey = `uid:${data.uid}:unmute:${now}`; + const unmuteData = { + type: 'unmute', + fromUid: caller.uid, + uid: data.uid, + timestamp: now, + }; + if (data.reason) { + unmuteData.reason = data.reason; + } + await db.sortedSetAdd(`uid:${data.uid}:unmutes:timestamp`, now, unmuteKey); + await db.setObject(unmuteKey, unmuteData); await events.log({ type: 'user-unmute', uid: caller.uid, @@ -441,7 +454,7 @@ usersAPI.addEmail = async (caller, { email, skipConfirmation, uid }) => { throw new Error('[[error:email-taken]]'); } await user.setUserField(uid, 'email', email); - await user.email.confirmByUid(uid); + await user.email.confirmByUid(uid, caller.uid); } } else { await usersAPI.update(caller, { uid, email }); @@ -491,7 +504,7 @@ usersAPI.confirmEmail = async (caller, { uid, email, sessionId }) => { await user.email.confirmByCode(code, sessionId); return true; } else if (current && current === email) { // i.e. old account w/ unconf. email in user hash - await user.email.confirmByUid(uid); + await user.email.confirmByUid(uid, caller.uid); return true; } @@ -691,6 +704,9 @@ usersAPI.generateExport = async (caller, { uid, type }) => { if (!validTypes.includes(type)) { throw new Error('[[error:invalid-data]]'); } + if (!utils.isNumber(uid) || !(parseInt(uid, 10) > 0)) { + throw new Error('[[error:invalid-uid]]'); + } const count = await db.incrObjectField('locks', `export:${uid}${type}`); if (count > 1) { throw new Error('[[error:already-exporting]]'); diff --git a/src/categories/index.js b/src/categories/index.js index 54346d5a64..b266788b3a 100644 --- a/src/categories/index.js +++ b/src/categories/index.js @@ -64,7 +64,7 @@ Categories.getCategoryById = async function (data) { category: category, ...data, }); - return result.category; + return { ...result.category }; }; Categories.getAllCidsFromSet = async function (key) { @@ -370,7 +370,7 @@ async function getSelectData(cids, fields) { } Categories.buildForSelectCategories = function (categories, fields, parentCid) { - function recursive(category, categoriesData, level, depth) { + function recursive({ ...category }, categoriesData, level, depth) { const bullet = level ? '• ' : ''; category.value = category.cid; category.level = level; diff --git a/src/cli/manage.js b/src/cli/manage.js index f69c786680..82472d115e 100644 --- a/src/cli/manage.js +++ b/src/cli/manage.js @@ -130,7 +130,11 @@ async function listPlugins() { async function listEvents(count = 10) { await db.init(); - const eventData = await events.getEvents('', 0, count - 1); + const eventData = await events.getEvents({ + filter: '', + start: 0, + stop: count - 1, + }); console.log(chalk.bold(`\nDisplaying last ${count} administrative events...`)); eventData.forEach((event) => { console.log(` * ${chalk.green(String(event.timestampISO))} ${chalk.yellow(String(event.type))}${event.text ? ` ${event.text}` : ''} (uid: ${event.uid ? event.uid : 0})`); diff --git a/src/controllers/admin/events.js b/src/controllers/admin/events.js index 3d59892090..bc94437975 100644 --- a/src/controllers/admin/events.js +++ b/src/controllers/admin/events.js @@ -3,6 +3,8 @@ const db = require('../../database'); const events = require('../../events'); const pagination = require('../../pagination'); +const user = require('../../user'); +const groups = require('../../groups'); const eventsController = module.exports; @@ -11,18 +13,35 @@ eventsController.get = async function (req, res) { const itemsPerPage = parseInt(req.query.perPage, 10) || 20; const start = (page - 1) * itemsPerPage; const stop = start + itemsPerPage - 1; + let uids; + if (req.query.username) { + uids = [await user.getUidByUsername(req.query.username)]; + } else if (req.query.group) { + uids = await groups.getMembers(req.query.group, 0, -1); + } // Limit by date let from = req.query.start ? new Date(req.query.start) || undefined : undefined; let to = req.query.end ? new Date(req.query.end) || undefined : new Date(); - from = from && from.setHours(0, 0, 0, 0); // setHours returns a unix timestamp (Number, not Date) - to = to && to.setHours(23, 59, 59, 999); // setHours returns a unix timestamp (Number, not Date) + from = from && from.setUTCHours(0, 0, 0, 0); // setHours returns a unix timestamp (Number, not Date) + to = to && to.setUTCHours(23, 59, 59, 999); // setHours returns a unix timestamp (Number, not Date) const currentFilter = req.query.type || ''; - const [eventCount, eventData, counts] = await Promise.all([ - db.sortedSetCount(`events:time${currentFilter ? `:${currentFilter}` : ''}`, from || '-inf', to), - events.getEvents(currentFilter, start, stop, from || '-inf', to), + events.getEventCount({ + filter: currentFilter, + uids, + from: from || '-inf', + to, + }), + events.getEvents({ + filter: currentFilter, + uids, + start, + stop, + from: from || '-inf', + to, + }), db.sortedSetsCard([''].concat(events.types).map(type => `events:time${type ? `:${type}` : ''}`)), ]); diff --git a/src/controllers/admin/groups.js b/src/controllers/admin/groups.js index a1a7c6fd1c..8c6ca96e6c 100644 --- a/src/controllers/admin/groups.js +++ b/src/controllers/admin/groups.js @@ -34,6 +34,9 @@ groupsController.list = async function (req, res) { groupsController.get = async function (req, res, next) { const slug = slugify(req.params.name); const groupName = await groups.getGroupNameByGroupSlug(slug); + if (!groupName) { + return next(); + } const [groupNames, group] = await Promise.all([ getGroupNames(), groups.get(groupName, { uid: req.uid, truncateUserList: true, userListCount: 20 }), @@ -59,14 +62,13 @@ groupsController.get = async function (req, res, next) { }; async function getGroupNames() { - const groupNames = await db.getSortedSetRange('groups:createtime', 0, -1); + const groupNames = Object.values(await db.getObject('groupslug:groupname')); return groupNames.filter(name => ( name !== 'registered-users' && name !== 'verified-users' && name !== 'unverified-users' && - name !== groups.BANNED_USERS && - !groups.isPrivilegeGroup(name) - )); + name !== groups.BANNED_USERS + )).sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase())); } groupsController.getCSV = async function (req, res) { diff --git a/src/database/mongo.js b/src/database/mongo.js index 753bd13427..131916cb6f 100644 --- a/src/database/mongo.js +++ b/src/database/mongo.js @@ -22,31 +22,31 @@ mongoModule.questions = [ { name: 'mongo:uri', description: 'MongoDB connection URI: (leave blank if you wish to specify host, port, username/password and database individually)\nFormat: mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]', - default: nconf.get('mongo:uri') || '', + default: nconf.get('mongo:uri') || nconf.get('defaults:mongo:uri') || '', hideOnWebInstall: true, }, { name: 'mongo:host', description: 'Host IP or address of your MongoDB instance', - default: nconf.get('mongo:host') || '127.0.0.1', + default: nconf.get('mongo:host') || nconf.get('defaults:mongo:host') || '127.0.0.1', ask: isUriNotSpecified, }, { name: 'mongo:port', description: 'Host port of your MongoDB instance', - default: nconf.get('mongo:port') || 27017, + default: nconf.get('mongo:port') || nconf.get('defaults:mongo:port') || 27017, ask: isUriNotSpecified, }, { name: 'mongo:username', description: 'MongoDB username', - default: nconf.get('mongo:username') || '', + default: nconf.get('mongo:username') || nconf.get('defaults:mongo:username') || '', ask: isUriNotSpecified, }, { name: 'mongo:password', description: 'Password of your MongoDB database', - default: nconf.get('mongo:password') || '', + default: nconf.get('mongo:password') || nconf.get('defaults:mongo:password') || '', hidden: true, ask: isUriNotSpecified, before: function (value) { value = value || nconf.get('mongo:password') || ''; return value; }, @@ -54,7 +54,7 @@ mongoModule.questions = [ { name: 'mongo:database', description: 'MongoDB database name', - default: nconf.get('mongo:database') || 'nodebb', + default: nconf.get('mongo:database') || nconf.get('defaults:mongo:database') || 'nodebb', ask: isUriNotSpecified, }, ]; diff --git a/src/database/postgres.js b/src/database/postgres.js index 6e034b7d0c..84a456ca86 100644 --- a/src/database/postgres.js +++ b/src/database/postgres.js @@ -13,34 +13,34 @@ postgresModule.questions = [ { name: 'postgres:host', description: 'Host IP or address of your PostgreSQL instance', - default: nconf.get('postgres:host') || '127.0.0.1', + default: nconf.get('postgres:host') || nconf.get('defaults:postgres:host') || '127.0.0.1', }, { name: 'postgres:port', description: 'Host port of your PostgreSQL instance', - default: nconf.get('postgres:port') || 5432, + default: nconf.get('postgres:port') || nconf.get('defaults:postgres:port') || 5432, }, { name: 'postgres:username', description: 'PostgreSQL username', - default: nconf.get('postgres:username') || '', + default: nconf.get('postgres:username') || nconf.get('defaults:postgres:username') || '', }, { name: 'postgres:password', description: 'Password of your PostgreSQL database', hidden: true, - default: nconf.get('postgres:password') || '', + default: nconf.get('postgres:password') || nconf.get('defaults:postgres:password') || '', before: function (value) { value = value || nconf.get('postgres:password') || ''; return value; }, }, { name: 'postgres:database', description: 'PostgreSQL database name', - default: nconf.get('postgres:database') || 'nodebb', + default: nconf.get('postgres:database') || nconf.get('defaults:postgres:database') || 'nodebb', }, { name: 'postgres:ssl', description: 'Enable SSL for PostgreSQL database access', - default: nconf.get('postgres:ssl') || false, + default: nconf.get('postgres:ssl') || nconf.get('defaults:postgres:ssl') || false, }, ]; diff --git a/src/database/redis.js b/src/database/redis.js index 22d13cc9e4..15a40c9fb4 100644 --- a/src/database/redis.js +++ b/src/database/redis.js @@ -11,24 +11,24 @@ redisModule.questions = [ { name: 'redis:host', description: 'Host IP or address of your Redis instance', - default: nconf.get('redis:host') || '127.0.0.1', + default: nconf.get('redis:host') || nconf.get('defaults:redis:host') || '127.0.0.1', }, { name: 'redis:port', description: 'Host port of your Redis instance', - default: nconf.get('redis:port') || 6379, + default: nconf.get('redis:port') || nconf.get('defaults:redis:port') || 6379, }, { name: 'redis:password', description: 'Password of your Redis database', hidden: true, - default: nconf.get('redis:password') || '', + default: nconf.get('redis:password') || nconf.get('defaults:redis:password') || '', before: function (value) { value = value || nconf.get('redis:password') || ''; return value; }, }, { name: 'redis:database', description: 'Which database to use (0..n)', - default: nconf.get('redis:database') || 0, + default: nconf.get('redis:database') || nconf.get('defaults:redis:database') || 0, }, ]; diff --git a/src/events.js b/src/events.js index 7329aa486e..41e1f0d29b 100644 --- a/src/events.js +++ b/src/events.js @@ -87,30 +87,114 @@ events.log = async function (data) { const eid = await db.incrObjectField('global', 'nextEid'); data.timestamp = Date.now(); data.eid = eid; - + const setKeys = [ + 'events:time', + `events:time:${data.type}`, + ]; + if (data.hasOwnProperty('uid') && data.uid) { + setKeys.push(`events:time:uid:${data.uid}`); + } await Promise.all([ - db.sortedSetsAdd([ - 'events:time', - `events:time:${data.type}`, - ], data.timestamp, eid), + db.sortedSetsAdd(setKeys, data.timestamp, eid), db.setObject(`event:${eid}`, data), ]); plugins.hooks.fire('action:events.log', { data: data }); }; -events.getEvents = async function (filter, start, stop, from, to) { - // from/to optional - if (from === undefined) { - from = '-inf'; +// filter, start, stop, from(optional), to(optional), uids(optional) +events.getEvents = async function (options) { + // backwards compatibility + if (arguments.length > 1) { + // eslint-disable-next-line prefer-rest-params + const args = Array.prototype.slice.call(arguments); + options = { + filter: args[0], + start: args[1], + stop: args[2], + from: args[3], + to: args[4], + }; } - if (to === undefined) { - to = '+inf'; + // from/to optional + const from = options.hasOwnProperty('from') ? options.from : '-inf'; + const to = options.hasOwnProperty('to') ? options.to : '+inf'; + const { filter, start, stop, uids } = options; + let eids = []; + + if (Array.isArray(uids)) { + if (filter === '') { + eids = await db.getSortedSetRevRangeByScore( + uids.map(uid => `events:time:uid:${uid}`), + start, + stop === -1 ? -1 : stop - start + 1, + to, + from + ); + } else { + eids = await Promise.all( + uids.map( + uid => db.getSortedSetRevIntersect({ + sets: [`events:time:uid:${uid}`, `events:time:${filter}`], + start: 0, + stop: -1, + weights: [1, 0], + withScores: true, + }) + ) + ); + + eids = _.flatten(eids) + .filter( + i => (from === '-inf' || i.score >= from) && (to === '+inf' || i.score <= to) + ) + .sort((a, b) => b.score - a.score) + .slice(start, stop + 1) + .map(i => i.value); + } + } else { + eids = await db.getSortedSetRevRangeByScore( + `events:time${filter ? `:${filter}` : ''}`, + start, + stop === -1 ? -1 : stop - start + 1, + to, + from + ); } - const eids = await db.getSortedSetRevRangeByScore(`events:time${filter ? `:${filter}` : ''}`, start, stop === -1 ? -1 : stop - start + 1, to, from); return await events.getEventsByEventIds(eids); }; +events.getEventCount = async (options) => { + const { filter, uids, from, to } = options; + + if (Array.isArray(uids)) { + if (filter === '') { + const counts = await Promise.all( + uids.map(uid => db.sortedSetCount(`events:time:uid:${uid}`, from, to)) + ); + return counts.reduce((prev, cur) => prev + cur, 0); + } + + const eids = await Promise.all( + uids.map( + uid => db.getSortedSetRevIntersect({ + sets: [`events:time:uid:${uid}`, `events:time:${filter}`], + start: 0, + stop: -1, + weights: [1, 0], + withScores: true, + }) + ) + ); + + return _.flatten(eids).filter( + i => (from === '-inf' || i.score >= from) && (to === '+inf' || i.score <= to) + ).length; + } + + return await db.sortedSetCount(`events:time${filter ? `:${filter}` : ''}`, from || '-inf', to); +}; + events.getEventsByEventIds = async (eids) => { let eventsData = await db.getObjects(eids.map(eid => `event:${eid}`)); eventsData = eventsData.filter(Boolean); @@ -163,7 +247,11 @@ async function addUserData(eventsData, field, objectName) { events.deleteEvents = async function (eids) { const keys = eids.map(eid => `event:${eid}`); const eventData = await db.getObjectsFields(keys, ['type']); - const sets = _.uniq(['events:time'].concat(eventData.map(e => `events:time:${e.type}`))); + const sets = _.uniq( + ['events:time'] + .concat(eventData.map(e => `events:time:${e.type}`)) + .concat(eventData.map(e => `events:time:uid:${e.uid}`)) + ); await Promise.all([ db.deleteAll(keys), db.sortedSetRemove(sets, eids), diff --git a/src/flags.js b/src/flags.js index e3932f3bd8..00bce1d9bd 100644 --- a/src/flags.js +++ b/src/flags.js @@ -914,7 +914,7 @@ Flags.notify = async function (flagObj, uid, notifySelf = false) { }); uids = uids.concat(modUids[0]); } else if (flagObj.type === 'user') { - const targetDisplayname = flagObj.target && flagObj.target.user ? flagObj.target.user.displayname : '[[global:guest]]'; + const targetDisplayname = flagObj.target && flagObj.target.displayname ? flagObj.target.displayname : '[[global:guest]]'; notifObj = await notifications.create({ type: 'new-user-flag', bodyShort: `[[notifications:user-flagged-user, ${displayname}, ${targetDisplayname}]]`, diff --git a/src/groups/create.js b/src/groups/create.js index 74ef56a41f..5172038052 100644 --- a/src/groups/create.js +++ b/src/groups/create.js @@ -18,8 +18,11 @@ module.exports = function (Groups) { Groups.validateGroupName(data.name); - const exists = await meta.userOrGroupExists(data.name); - if (exists) { + const [exists, privGroupExists] = await Promise.all([ + meta.userOrGroupExists(data.name), + privilegeGroupExists(data.name), + ]); + if (exists || privGroupExists) { throw new Error('[[error:group-already-exists]]'); } @@ -58,7 +61,9 @@ module.exports = function (Groups) { ]); } - await db.setObjectField('groupslug:groupname', groupData.slug, groupData.name); + if (!Groups.isPrivilegeGroup(groupData.name)) { + await db.setObjectField('groupslug:groupname', groupData.slug, groupData.name); + } groupData = await Groups.getGroupData(groupData.name); plugins.hooks.fire('action:group.create', { group: groupData }); @@ -71,6 +76,10 @@ module.exports = function (Groups) { Groups.isPrivilegeGroup(data.name); } + async function privilegeGroupExists(name) { + return Groups.isPrivilegeGroup(name) && await db.isSortedSetMember('groups:createtime', name); + } + Groups.validateGroupName = function (name) { if (!name) { throw new Error('[[error:group-name-too-short]]'); diff --git a/src/groups/delete.js b/src/groups/delete.js index 1fc8beef02..449640c190 100644 --- a/src/groups/delete.js +++ b/src/groups/delete.js @@ -28,7 +28,9 @@ module.exports = function (Groups) { ); }); const sets = groupNames.map(groupName => `${groupName.toLowerCase()}:${groupName}`); - const fields = groupNames.map(groupName => slugify(groupName)); + const groupSlugs = groupNames + .filter(groupName => !Groups.isPrivilegeGroup(groupName)) + .map(groupName => slugify(groupName)); await Promise.all([ db.deleteAll(keys), @@ -38,7 +40,7 @@ module.exports = function (Groups) { 'groups:visible:memberCount', ], groupNames), db.sortedSetRemove('groups:visible:name', sets), - db.deleteObjectFields('groupslug:groupname', fields), + db.deleteObjectFields('groupslug:groupname', groupSlugs), removeGroupsFromPrivilegeGroups(groupNames), ]); Groups.cache.reset(); diff --git a/src/groups/search.js b/src/groups/search.js index d1fd8892be..3e0dfd2def 100644 --- a/src/groups/search.js +++ b/src/groups/search.js @@ -9,13 +9,13 @@ module.exports = function (Groups) { return []; } query = String(query).toLowerCase(); - let groupNames = await db.getSortedSetRange('groups:createtime', 0, -1); + let groupNames = Object.values(await db.getObject('groupslug:groupname')); if (!options.hideEphemeralGroups) { groupNames = Groups.ephemeralGroups.concat(groupNames); } - groupNames = groupNames.filter(name => name.toLowerCase().includes(query) && - name !== Groups.BANNED_USERS && // hide banned-users in searches - !Groups.isPrivilegeGroup(name)); + groupNames = groupNames.filter( + name => name.toLowerCase().includes(query) && name !== Groups.BANNED_USERS // hide banned-users in searches + ); groupNames = groupNames.slice(0, 100); let groupsData; diff --git a/src/groups/update.js b/src/groups/update.js index 9da76c9180..804268c587 100644 --- a/src/groups/update.js +++ b/src/groups/update.js @@ -191,8 +191,10 @@ module.exports = function (Groups) { await updateConfig(oldName, newName); await updateChatRooms(oldName, newName); await db.setObject(`group:${oldName}`, { name: newName, slug: slugify(newName) }); - await db.deleteObjectField('groupslug:groupname', group.slug); - await db.setObjectField('groupslug:groupname', slugify(newName), newName); + if (!Groups.isPrivilegeGroup(oldName) && !Groups.isPrivilegeGroup(newName)) { + await db.deleteObjectField('groupslug:groupname', group.slug); + await db.setObjectField('groupslug:groupname', slugify(newName), newName); + } const allGroups = await db.getSortedSetRange('groups:createtime', 0, -1); const keys = allGroups.map(group => `group:${group}:members`); diff --git a/src/socket.io/admin/user.js b/src/socket.io/admin/user.js index 6c5e0c5b28..db9a49ac1f 100644 --- a/src/socket.io/admin/user.js +++ b/src/socket.io/admin/user.js @@ -70,7 +70,7 @@ User.validateEmail = async function (socket, uids) { if (email) { await user.setUserField(uid, 'email', email); } - await user.email.confirmByUid(uid); + await user.email.confirmByUid(uid, socket.uid); } }; @@ -162,7 +162,7 @@ User.setReputation = async function (socket, data) { ]); }; -User.exportUsersCSV = async function (socket) { +User.exportUsersCSV = async function (socket, data) { await events.log({ type: 'exportUsersCSV', uid: socket.uid, @@ -170,7 +170,7 @@ User.exportUsersCSV = async function (socket) { }); setTimeout(async () => { try { - await user.exportUsersCSV(); + await user.exportUsersCSV(data.fields); if (socket.emit) { socket.emit('event:export-users-csv'); } diff --git a/src/socket.io/uploads.js b/src/socket.io/uploads.js index 66b7266b01..17fcee2065 100644 --- a/src/socket.io/uploads.js +++ b/src/socket.io/uploads.js @@ -4,32 +4,41 @@ const socketUser = require('./user'); const socketGroup = require('./groups'); const image = require('../image'); const meta = require('../meta'); +const plugins = require('../plugins'); const inProgress = {}; const uploads = module.exports; uploads.upload = async function (socket, data) { - const methodToFunc = { - 'user.uploadCroppedPicture': socketUser.uploadCroppedPicture, - 'user.updateCover': socketUser.updateCover, - 'groups.cover.update': socketGroup.cover.update, - }; - if (!socket.uid || !data || !data.chunk || - !data.params || !data.params.method || !methodToFunc.hasOwnProperty(data.params.method)) { + if (!socket.uid || !data || !data.chunk || !data.params || !data.params.method) { + throw new Error('[[error:invalid-data]]'); + } + const { method } = data.params; + const defaultMaxSize = method === 'user.uploadCroppedPicture' ? + meta.config.maximumProfileImageSize : meta.config.maximumCoverImageSize; + + const { methods, maxSize } = await plugins.hooks.fire('filter:uploads.upload', { + methods: { + 'user.uploadCroppedPicture': socketUser.uploadCroppedPicture, + 'user.updateCover': socketUser.updateCover, + 'groups.cover.update': socketGroup.cover.update, + }, + maxSize: defaultMaxSize, + data: data, + }); + + if (!methods.hasOwnProperty(data.params.method)) { throw new Error('[[error:invalid-data]]'); } inProgress[socket.id] = inProgress[socket.id] || Object.create(null); const socketUploads = inProgress[socket.id]; - const { method } = data.params; socketUploads[method] = socketUploads[method] || { imageData: '' }; socketUploads[method].imageData += data.chunk; try { - const maxSize = data.params.method === 'user.uploadCroppedPicture' ? - meta.config.maximumProfileImageSize : meta.config.maximumCoverImageSize; const size = image.sizeFromBase64(socketUploads[method].imageData); if (size > maxSize * 1024) { @@ -39,7 +48,7 @@ uploads.upload = async function (socket, data) { return; } data.params.imageData = socketUploads[method].imageData; - const result = await methodToFunc[data.params.method](socket, data.params); + const result = await methods[method](socket, data.params); delete socketUploads[method]; return result; } catch (err) { diff --git a/src/socket.io/user.js b/src/socket.io/user.js index 443e73678f..51e5dc9f71 100644 --- a/src/socket.io/user.js +++ b/src/socket.io/user.js @@ -152,6 +152,27 @@ SocketUser.setModerationNote = async function (socket, data) { } await user.appendModerationNote({ uid: data.uid, noteData }); + return await user.getModerationNotes(data.uid, 0, 0); +}; + +SocketUser.editModerationNote = async function (socket, data) { + if (!socket.uid || !data || !data.uid || !data.note || !data.id) { + throw new Error('[[error:invalid-data]]'); + } + const noteData = { + note: data.note, + timestamp: data.id, + }; + let canEdit = await privileges.users.canEdit(socket.uid, data.uid); + if (!canEdit) { + canEdit = await user.isModeratorOfAnyCategory(socket.uid); + } + if (!canEdit) { + throw new Error('[[error:no-privileges]]'); + } + + await user.setModerationNote({ uid: data.uid, noteData }); + return await user.getModerationNotesByIds(data.uid, [data.id]); }; SocketUser.deleteUpload = async function (socket, data) { diff --git a/src/topics/events.js b/src/topics/events.js index 68d26406a5..13ab489c63 100644 --- a/src/topics/events.js +++ b/src/topics/events.js @@ -230,6 +230,7 @@ Events.log = async (tid, payload) => { ]); let events = await modifyEvent({ + uid: payload.uid, eventIds: [eventId], timestamps: [timestamp], events: [payload], diff --git a/src/topics/sorted.js b/src/topics/sorted.js index 92cc2f6ed6..98292f0ddb 100644 --- a/src/topics/sorted.js +++ b/src/topics/sorted.js @@ -45,7 +45,7 @@ module.exports = function (Topics) { let tids = []; if (params.term !== 'alltime') { if (params.sort === 'posts') { - tids = await getTidsWithMostPostsInTerm(params.term); + tids = await getTidsWithMostPostsInTerm(params.cids, params.uid, params.term); } else { tids = await Topics.getLatestTidsFromSet('topics:tid', 0, -1, params.term); } @@ -84,8 +84,20 @@ module.exports = function (Topics) { return 'topics:recent'; } - async function getTidsWithMostPostsInTerm(term) { - const pids = await db.getSortedSetRevRangeByScore('posts:pid', 0, -1, '+inf', Date.now() - Topics.getSinceFromTerm(term)); + async function getTidsWithMostPostsInTerm(cids, uid, term) { + if (Array.isArray(cids)) { + cids = await privileges.categories.filterCids('topics:read', cids, uid); + } else { + cids = await categories.getCidsByPrivilege('categories:cid', uid, 'topics:read'); + } + + const pids = await db.getSortedSetRevRangeByScore( + cids.map(cid => `cid:${cid}:pids`), + 0, + 1000, + '+inf', + Date.now() - Topics.getSinceFromTerm(term) + ); const postObjs = await db.getObjectsFields(pids.map(pid => `post:${pid}`), ['tid']); const tidToCount = {}; postObjs.forEach((post) => { @@ -93,7 +105,8 @@ module.exports = function (Topics) { tidToCount[post.tid] += 1; }); - return _.uniq(postObjs.map(post => String(post.tid))).sort((t1, t2) => tidToCount[t2] - tidToCount[t1]); + return _.uniq(postObjs.map(post => String(post.tid))) + .sort((t1, t2) => tidToCount[t2] - tidToCount[t1]); } async function getWatchedTopics(params) { diff --git a/src/upgrades/3.8.0/events-uid-filter.js b/src/upgrades/3.8.0/events-uid-filter.js new file mode 100644 index 0000000000..f9a2d5b6a2 --- /dev/null +++ b/src/upgrades/3.8.0/events-uid-filter.js @@ -0,0 +1,31 @@ +/* eslint-disable no-await-in-loop */ + +'use strict'; + +const db = require('../../database'); +const batch = require('../../batch'); + +module.exports = { + name: 'Add user filter to acp events', + timestamp: Date.UTC(2024, 3, 1), + method: async function () { + const { progress } = this; + + await batch.processSortedSet(`events:time`, async (eids) => { + const eventData = await db.getObjects(eids.map(eid => `event:${eid}`)); + const bulkAdd = []; + eventData.forEach((event) => { + if (event && event.hasOwnProperty('uid') && event.uid && event.eid) { + bulkAdd.push( + [`events:time:uid:${event.uid}`, event.timestamp || Date.now(), event.eid] + ); + } + }); + await db.sortedSetAddBulk(bulkAdd); + progress.incr(eids.length); + }, { + batch: 500, + progress, + }); + }, +}; diff --git a/src/upgrades/3.8.0/remove-privilege-slugs.js b/src/upgrades/3.8.0/remove-privilege-slugs.js new file mode 100644 index 0000000000..bfd589f6fc --- /dev/null +++ b/src/upgrades/3.8.0/remove-privilege-slugs.js @@ -0,0 +1,31 @@ +/* eslint-disable no-await-in-loop */ + +'use strict'; + +const db = require('../../database'); +const groups = require('../../groups'); +const batch = require('../../batch'); + +module.exports = { + name: 'Remove privilege groups from groupslug:groupname object', + timestamp: Date.UTC(2024, 3, 8), + method: async function () { + const { progress } = this; + + const slugsToNames = await db.getObject(`groupslug:groupname`); + const privilegeGroups = []; + for (const [slug, name] of Object.entries(slugsToNames)) { + if (groups.isPrivilegeGroup(name)) { + privilegeGroups.push(slug); + } + } + + progress.total = privilegeGroups.length; + await batch.processArray(privilegeGroups, async (slugs) => { + progress.incr(slugs.length); + await db.deleteObjectFields(`groupslug:groupname`, slugs); + }, { + batch: 500, + }); + }, +}; diff --git a/src/upgrades/3.8.0/user-upload-folders.js b/src/upgrades/3.8.0/user-upload-folders.js new file mode 100644 index 0000000000..5be9990a06 --- /dev/null +++ b/src/upgrades/3.8.0/user-upload-folders.js @@ -0,0 +1,86 @@ +'use strict'; + + +const fs = require('fs'); +const nconf = require('nconf'); +const path = require('path'); +const { mkdirp } = require('mkdirp'); + +const db = require('../../database'); +const batch = require('../../batch'); + + +module.exports = { + name: 'Create user upload folders', + timestamp: Date.UTC(2024, 2, 28), + method: async function () { + const { progress } = this; + + const folder = path.join(nconf.get('upload_path'), 'profile'); + + const userPicRegex = /^\d+-profile/; + const files = (await fs.promises.readdir(folder, { withFileTypes: true })) + .filter(item => !item.isDirectory() && String(item.name).match(userPicRegex)) + .map(item => item.name); + + progress.total = files.length; + await batch.processArray(files, async (files) => { + progress.incr(files.length); + await Promise.all(files.map(async (file) => { + const uid = file.split('-')[0]; + if (parseInt(uid, 10) > 0) { + await mkdirp(path.join(folder, `uid-${uid}`)); + await fs.promises.rename( + path.join(folder, file), + path.join(folder, `uid-${uid}`, file), + ); + } + })); + }, { + batch: 500, + }); + + await batch.processSortedSet('users:joindate', async (uids) => { + progress.incr(uids.length); + const usersData = await db.getObjects(uids.map(uid => `user:${uid}`)); + const bulkSet = []; + usersData.forEach((userData) => { + const setObj = {}; + if (userData && userData.picture && + userData.picture.includes(`/uploads/profile/${userData.uid}-`) && + !userData.picture.includes(`/uploads/profile/uid-${userData.uid}/${userData.uid}-`)) { + setObj.picture = userData.picture.replace( + `/uploads/profile/${userData.uid}-`, + `/uploads/profile/uid-${userData.uid}/${userData.uid}-` + ); + } + + if (userData && userData.uploadedpicture && + userData.uploadedpicture.includes(`/uploads/profile/${userData.uid}-`) && + !userData.uploadedpicture.includes(`/uploads/profile/uid-${userData.uid}/${userData.uid}-`)) { + setObj.uploadedpicture = userData.uploadedpicture.replace( + `/uploads/profile/${userData.uid}-`, + `/uploads/profile/uid-${userData.uid}/${userData.uid}-` + ); + } + + if (userData && userData['cover:url'] && + userData['cover:url'].includes(`/uploads/profile/${userData.uid}-`) && + !userData['cover:url'].includes(`/uploads/profile/uid-${userData.uid}/${userData.uid}-`)) { + setObj['cover:url'] = userData['cover:url'].replace( + `/uploads/profile/${userData.uid}-`, + `/uploads/profile/uid-${userData.uid}/${userData.uid}-` + ); + } + + if (Object.keys(setObj).length) { + bulkSet.push([`user:${userData.uid}`, setObj]); + } + }); + await db.setObjectBulk(bulkSet); + }, { + batch: 500, + progress: progress, + }); + }, +}; diff --git a/src/user/admin.js b/src/user/admin.js index b29adcf86f..369aafee50 100644 --- a/src/user/admin.js +++ b/src/user/admin.js @@ -5,6 +5,7 @@ const fs = require('fs'); const path = require('path'); const winston = require('winston'); const validator = require('validator'); +const json2csvAsync = require('json2csv').parseAsync; const { baseDir } = require('../constants').paths; const db = require('../database'); @@ -47,41 +48,39 @@ module.exports = function (User) { return csvContent; }; - User.exportUsersCSV = async function () { + User.exportUsersCSV = async function (fieldsToExport = ['email', 'username', 'uid', 'ip']) { winston.verbose('[user/exportUsersCSV] Exporting User CSV data'); const { fields, showIps } = await plugins.hooks.fire('filter:user.csvFields', { - fields: ['email', 'username', 'uid'], - showIps: true, + fields: fieldsToExport, + showIps: fieldsToExport.includes('ip'), }); + + if (!showIps && fields.includes('ip')) { + fields.splice(fields.indexOf('ip'), 1); + } const fd = await fs.promises.open( path.join(baseDir, 'build/export', 'users.csv'), 'w' ); - fs.promises.appendFile(fd, `${fields.join(',')}${showIps ? ',ip' : ''}\n`); - await batch.processSortedSet('users:joindate', async (uids) => { - const usersData = await User.getUsersFields(uids, fields.slice()); - let userIPs = ''; - let ips = []; - + fs.promises.appendFile(fd, `${fields.map(f => `"${f}"`).join(',')}\n`); + await batch.processSortedSet('group:administrators:members', async (uids) => { + const userFieldsToLoad = fields.filter(field => field !== 'ip' && field !== 'password'); + const usersData = await User.getUsersFields(uids, userFieldsToLoad); + let userIps = []; if (showIps) { - ips = await db.getSortedSetsMembers(uids.map(uid => `uid:${uid}:ip`)); + userIps = await db.getSortedSetsMembers(uids.map(uid => `uid:${uid}:ip`)); } - let line = ''; usersData.forEach((user, index) => { - line += `${fields - .map(field => (isFinite(user[field]) ? `'${user[field]}'` : user[field])) - .join(',')}`; - if (showIps) { - userIPs = ips[index] ? ips[index].join(',') : ''; - line += `,"${userIPs}"\n`; - } else { - line += '\n'; + if (Array.isArray(userIps[index])) { + user.ip = userIps[index].join(','); } }); - await fs.promises.appendFile(fd, line); + const opts = { fields, header: false }; + const csv = await json2csvAsync(usersData, opts); + await fs.promises.appendFile(fd, csv); }, { batch: 5000, interval: 250, diff --git a/src/user/bans.js b/src/user/bans.js index 8a7352d29e..465f6300e6 100644 --- a/src/user/bans.js +++ b/src/user/bans.js @@ -26,6 +26,7 @@ module.exports = function (User) { const banKey = `uid:${uid}:ban:${now}`; const banData = { + type: 'ban', uid: uid, timestamp: now, expire: until > now ? until : 0, @@ -63,24 +64,39 @@ module.exports = function (User) { return banData; }; - User.bans.unban = async function (uids) { - uids = Array.isArray(uids) ? uids : [uids]; + User.bans.unban = async function (uids, reason = '') { + const isArray = Array.isArray(uids); + uids = isArray ? uids : [uids]; const userData = await User.getUsersFields(uids, ['email:confirmed']); await db.setObject(uids.map(uid => `user:${uid}`), { 'banned:expire': 0 }); - + const now = Date.now(); + const unbanDataArray = []; /* eslint-disable no-await-in-loop */ for (const user of userData) { const systemGroupsToJoin = [ 'registered-users', (parseInt(user['email:confirmed'], 10) === 1 ? 'verified-users' : 'unverified-users'), ]; - await groups.leave(groups.BANNED_USERS, user.uid); - // An unbanned user would lost its previous "Global Moderator" status - await groups.join(systemGroupsToJoin, user.uid); + const unbanKey = `uid:${user.uid}:unban:${now}`; + const unbanData = { + type: 'unban', + uid: user.uid, + reason, + timestamp: now, + }; + await Promise.all([ + db.sortedSetAdd(`uid:${user.uid}:unbans:timestamp`, now, unbanKey), + db.setObject(unbanKey, unbanData), + groups.leave(groups.BANNED_USERS, user.uid), + // An unbanned user would lost its previous "Global Moderator" status + groups.join(systemGroupsToJoin, user.uid), + ]); + unbanDataArray.push(unbanData); } await db.sortedSetRemove(['users:banned', 'users:banned:expire'], uids); + return isArray ? unbanDataArray : unbanDataArray[0]; }; User.bans.isBanned = async function (uids) { diff --git a/src/user/data.js b/src/user/data.js index e21cf92921..c7e2d8b828 100644 --- a/src/user/data.js +++ b/src/user/data.js @@ -258,7 +258,7 @@ module.exports = function (User) { user.banned_until = unban ? 0 : user['banned:expire']; user.banned_until_readable = user.banned_until && !unban ? utils.toISOString(user.banned_until) : 'Not Banned'; if (unban) { - await User.bans.unban(user.uid); + await User.bans.unban(user.uid, '[[user:info.ban-expired]]'); user.banned = false; } } diff --git a/src/user/delete.js b/src/user/delete.js index 681eabeec1..9efd8802ae 100644 --- a/src/user/delete.js +++ b/src/user/delete.js @@ -227,7 +227,7 @@ module.exports = function (User) { } async function deleteImages(uid) { - const folder = path.join(nconf.get('upload_path'), 'profile'); - await rimraf(`${uid}-profile{avatar,cover}*`, { glob: { cwd: folder } }); + const folder = path.join(nconf.get('upload_path'), 'profile', `uid-${uid}`); + await rimraf(folder); } }; diff --git a/src/user/email.js b/src/user/email.js index c54a986828..aec9379f41 100644 --- a/src/user/email.js +++ b/src/user/email.js @@ -214,10 +214,11 @@ UserEmail.confirmByCode = async function (code, sessionId) { }; // confirm uid's email via ACP -UserEmail.confirmByUid = async function (uid) { +UserEmail.confirmByUid = async function (uid, callerUid = 0) { if (!(parseInt(uid, 10) > 0)) { throw new Error('[[error:invalid-uid]]'); } + callerUid = callerUid || uid; const currentEmail = await user.getUserField(uid, 'email'); if (!currentEmail) { throw new Error('[[error:invalid-email]]'); @@ -241,7 +242,7 @@ UserEmail.confirmByUid = async function (uid) { db.sortedSetAddBulk([ ['email:uid', uid, currentEmail.toLowerCase()], ['email:sorted', 0, `${currentEmail.toLowerCase()}:${uid}`], - [`user:${uid}:emails`, Date.now(), `${currentEmail}:${Date.now()}`], + [`user:${uid}:emails`, Date.now(), `${currentEmail}:${Date.now()}:${callerUid}`], ]), user.setUserField(uid, 'email:confirmed', 1), groups.join('verified-users', uid), diff --git a/src/user/info.js b/src/user/info.js index d4667bd83f..6b488fe41e 100644 --- a/src/user/info.js +++ b/src/user/info.js @@ -7,6 +7,8 @@ const db = require('../database'); const posts = require('../posts'); const topics = require('../topics'); const utils = require('../utils'); +const plugins = require('../plugins'); +const Flags = require('../flags'); module.exports = function (User) { User.getLatestBanInfo = async function (uid) { @@ -32,28 +34,19 @@ module.exports = function (User) { User.getModerationHistory = async function (uid) { let [flags, bans, mutes] = await Promise.all([ db.getSortedSetRevRangeWithScores(`flags:byTargetUid:${uid}`, 0, 19), - db.getSortedSetRevRange(`uid:${uid}:bans:timestamp`, 0, 19), - db.getSortedSetRevRange(`uid:${uid}:mutes:timestamp`, 0, 19), + db.getSortedSetRevRange([ + `uid:${uid}:bans:timestamp`, `uid:${uid}:unbans:timestamp`, + ], 0, 19), + db.getSortedSetRevRange([ + `uid:${uid}:mutes:timestamp`, `uid:${uid}:unmutes:timestamp`, + ], 0, 19), ]); - // Get pids from flag objects const keys = flags.map(flagObj => `flag:${flagObj.value}`); - const payload = await db.getObjectsFields(keys, ['type', 'targetId']); - - // Only pass on flag ids from posts - flags = payload.reduce((memo, cur, idx) => { - if (cur.type === 'post') { - memo.push({ - value: parseInt(cur.targetId, 10), - score: flags[idx].score, - }); - } - - return memo; - }, []); + const payload = await db.getObjectsFields(keys, ['flagId', 'type', 'targetId', 'datetime']); [flags, bans, mutes] = await Promise.all([ - getFlagMetadata(flags), + getFlagMetadata(payload), formatBanMuteData(bans, '[[user:info.banned-no-reason]]'), formatBanMuteData(mutes, '[[user:info.muted-no-reason]]'), ]); @@ -67,28 +60,45 @@ module.exports = function (User) { User.getHistory = async function (set) { const data = await db.getSortedSetRevRangeWithScores(set, 0, -1); - return data.map((set) => { + data.forEach((set) => { set.timestamp = set.score; set.timestampISO = utils.toISOString(set.score); - set.value = validator.escape(String(set.value.split(':')[0])); + const parts = set.value.split(':'); + set.value = validator.escape(String(parts[0])); + set.byUid = validator.escape(String(parts[2] || '')); delete set.score; - return set; }); + + const uids = _.uniq(data.map(d => d && d.byUid).filter(Boolean)); + const usersData = await User.getUsersFields(uids, ['uid', 'username', 'userslug', 'picture']); + const uidToUser = _.zipObject(uids, usersData); + data.forEach((d) => { + if (d.byUid) { + d.byUser = uidToUser[d.byUid]; + } + }); + return data; }; async function getFlagMetadata(flags) { - const pids = flags.map(flagObj => parseInt(flagObj.value, 10)); + const postFlags = flags.filter(flag => flag && flag.type === 'post'); + const reports = await Promise.all(flags.map(flag => Flags.getReports(flag.flagId))); + + flags.forEach((flag, idx) => { + if (flag) { + flag.timestamp = parseInt(flag.datetime, 10); + flag.timestampISO = utils.toISOString(flag.datetime); + flag.reports = reports[idx]; + } + }); + + const pids = postFlags.map(flagObj => parseInt(flagObj.targetId, 10)); const postData = await posts.getPostsFields(pids, ['tid']); const tids = postData.map(post => post.tid); const topicData = await topics.getTopicsFields(tids, ['title']); - flags = flags.map((flagObj, idx) => { - flagObj.pid = flagObj.value; - flagObj.timestamp = flagObj.score; - flagObj.timestampISO = new Date(flagObj.score).toISOString(); - - delete flagObj.value; - delete flagObj.score; + postFlags.forEach((flagObj, idx) => { + flagObj.pid = flagObj.targetId; if (!tids[idx]) { flagObj.targetPurged = true; } @@ -113,30 +123,38 @@ module.exports = function (User) { User.getModerationNotes = async function (uid, start, stop) { const noteIds = await db.getSortedSetRevRange(`uid:${uid}:moderation:notes`, start, stop); + return await User.getModerationNotesByIds(uid, noteIds); + }; + + User.getModerationNotesByIds = async (uid, noteIds) => { const keys = noteIds.map(id => `uid:${uid}:moderation:note:${id}`); const notes = await db.getObjects(keys); const uids = []; - const noteData = notes.map((note) => { + notes.forEach((note, idx) => { if (note) { + note.id = noteIds[idx]; uids.push(note.uid); note.timestampISO = utils.toISOString(note.timestamp); - note.note = validator.escape(String(note.note)); } - return note; }); - const userData = await User.getUsersFields(uids, ['uid', 'username', 'userslug', 'picture']); - noteData.forEach((note, index) => { + await Promise.all(notes.map(async (note, index) => { if (note) { + note.rawNote = validator.escape(String(note.note)); + note.note = await plugins.hooks.fire('filter:parse.raw', String(note.note)); note.user = userData[index]; } - }); - return noteData; + })); + return notes; }; User.appendModerationNote = async ({ uid, noteData }) => { await db.sortedSetAdd(`uid:${uid}:moderation:notes`, noteData.timestamp, noteData.timestamp); await db.setObject(`uid:${uid}:moderation:note:${noteData.timestamp}`, noteData); }; + + User.setModerationNote = async ({ uid, noteData }) => { + await db.setObject(`uid:${uid}:moderation:note:${noteData.timestamp}`, noteData); + }; }; diff --git a/src/user/jobs/export-uploads.js b/src/user/jobs/export-uploads.js index a3bc097a49..89c623211e 100644 --- a/src/user/jobs/export-uploads.js +++ b/src/user/jobs/export-uploads.js @@ -74,14 +74,8 @@ process.on('message', async (msg) => { winston.verbose(`[user/export/uploads] Collating uploads for uid ${targetUid}`); await user.collateUploads(targetUid, archive); - const uploadedPicture = await user.getUserField(targetUid, 'uploadedpicture'); - if (uploadedPicture) { - const filePath = uploadedPicture.replace(nconf.get('upload_url'), ''); - archive.file(path.join(nconf.get('upload_path'), filePath), { - name: path.basename(filePath), - }); - } - + const profileUploadPath = path.join(nconf.get('upload_path'), `profile/uid-${targetUid}`); + archive.directory(profileUploadPath, 'profile'); archive.finalize(); } }); diff --git a/src/user/picture.js b/src/user/picture.js index d3d2a22f68..fbff7fd225 100644 --- a/src/user/picture.js +++ b/src/user/picture.js @@ -50,7 +50,7 @@ module.exports = function (User) { const extension = file.typeToExtension(image.mimeFromBase64(data.imageData)); const filename = `${data.uid}-profilecover-${Date.now()}${extension}`; - const uploadData = await image.uploadImage(filename, 'profile', picture); + const uploadData = await image.uploadImage(filename, `profile/uid-${data.uid}`, picture); await deleteCurrentPicture(data.uid, 'cover:url'); await User.setUserField(data.uid, 'cover:url', uploadData.url); @@ -96,7 +96,7 @@ module.exports = function (User) { }); const filename = generateProfileImageFilename(data.uid, extension); - const uploadedImage = await image.uploadImage(filename, 'profile', { + const uploadedImage = await image.uploadImage(filename, `profile/uid-${data.uid}`, { uid: data.uid, path: newPath, name: 'profileAvatar', @@ -140,7 +140,7 @@ module.exports = function (User) { }); const filename = generateProfileImageFilename(data.uid, extension); - const uploadedImage = await image.uploadImage(filename, 'profile', picture); + const uploadedImage = await image.uploadImage(filename, `profile/uid-${data.uid}`, picture); await deleteCurrentPicture(data.uid, 'uploadedpicture'); await User.updateProfile(data.callerUid, { @@ -224,10 +224,10 @@ module.exports = function (User) { async function getPicturePath(uid, field) { const value = await User.getUserField(uid, field); - if (!value || !value.startsWith(`${nconf.get('relative_path')}/assets/uploads/profile/`)) { + if (!value || !value.startsWith(`${nconf.get('relative_path')}/assets/uploads/profile/uid-${uid}`)) { return false; } const filename = value.split('/').pop(); - return path.join(nconf.get('upload_path'), 'profile', filename); + return path.join(nconf.get('upload_path'), `profile/uid-${uid}`, filename); } }; diff --git a/src/user/profile.js b/src/user/profile.js index 9c1792f0f6..9d65037bbe 100644 --- a/src/user/profile.js +++ b/src/user/profile.js @@ -48,7 +48,7 @@ module.exports = function (User) { if (field === 'email') { return await updateEmail(updateUid, data.email); } else if (field === 'username') { - return await updateUsername(updateUid, data.username); + return await updateUsername(updateUid, data.username, uid); } else if (field === 'fullname') { return await updateFullname(updateUid, data.fullname); } @@ -247,7 +247,7 @@ module.exports = function (User) { } } - async function updateUsername(uid, newUsername) { + async function updateUsername(uid, newUsername, callerUid) { if (!newUsername) { return; } @@ -260,7 +260,7 @@ module.exports = function (User) { await Promise.all([ updateUidMapping('username', uid, newUsername, userData.username), updateUidMapping('userslug', uid, newUserslug, userData.userslug), - db.sortedSetAdd(`user:${uid}:usernames`, now, `${newUsername}:${now}`), + db.sortedSetAdd(`user:${uid}:usernames`, now, `${newUsername}:${now}:${callerUid}`), ]); await db.sortedSetRemove('username:sorted', `${userData.username.toLowerCase()}:${uid}`); await db.sortedSetAdd('username:sorted', 0, `${newUsername.toLowerCase()}:${uid}`); diff --git a/src/views/admin/advanced/events.tpl b/src/views/admin/advanced/events.tpl index 0eafb03749..f20eca0547 100644 --- a/src/views/admin/advanced/events.tpl +++ b/src/views/admin/advanced/events.tpl @@ -50,6 +50,14 @@ +
+ + + +
diff --git a/src/views/modals/merge-topic.tpl b/src/views/modals/merge-topic.tpl index 7b4af828a4..2fc99924f2 100644 --- a/src/views/modals/merge-topic.tpl +++ b/src/views/modals/merge-topic.tpl @@ -1,10 +1,5 @@
-
- -
+
[[topic:thread-tools.merge-topics]]
@@ -17,13 +12,23 @@
+ +

[[topic:merge-topic-list-title]]

[[topic:merge-options]] @@ -34,9 +39,9 @@

diff --git a/src/views/modals/unban.tpl b/src/views/modals/unban.tpl new file mode 100644 index 0000000000..4a3ab69896 --- /dev/null +++ b/src/views/modals/unban.tpl @@ -0,0 +1,10 @@ +

+
+
+
+ + +
+
+
+
diff --git a/src/views/modals/unmute.tpl b/src/views/modals/unmute.tpl new file mode 100644 index 0000000000..4a3ab69896 --- /dev/null +++ b/src/views/modals/unmute.tpl @@ -0,0 +1,10 @@ +
+
+
+
+ + +
+
+
+
diff --git a/src/views/partials/acceptTos.tpl b/src/views/partials/acceptTos.tpl index d077d692b1..59aa2a5aa7 100644 --- a/src/views/partials/acceptTos.tpl +++ b/src/views/partials/acceptTos.tpl @@ -1,5 +1,5 @@
- +
{termsOfUse}
diff --git a/test/socket.io.js b/test/socket.io.js index c2a0a68ad6..eacab90ac5 100644 --- a/test/socket.io.js +++ b/test/socket.io.js @@ -687,7 +687,7 @@ describe('socket.io', () => { await socketUser.reset.send({ uid: 0 }, 'regular@test.com'); const [count, eventsData] = await Promise.all([ db.sortedSetCount('reset:issueDate', 0, Date.now()), - events.getEvents('', 0, 0), + events.getEvents({ filter: '', start: 0, stop: 0 }), ]); assert.strictEqual(count, 2); @@ -705,7 +705,7 @@ describe('socket.io', () => { ); const [count, eventsData] = await Promise.all([ db.sortedSetCount('reset:issueDate', 0, Date.now()), - events.getEvents('', 0, 0), + events.getEvents({ filter: '', start: 0, stop: 0 }), ]); assert.strictEqual(count, 2); diff --git a/test/user.js b/test/user.js index 4d65ffaa64..668ec4ec8b 100644 --- a/test/user.js +++ b/test/user.js @@ -1683,7 +1683,7 @@ describe('User', () => { await setTimeout(50); await socketUser.setModerationNote({ uid: adminUid }, { uid: testUid, note: '