Compare commits
45 Commits
v1.2.0-RC1
...
v1.3.0-RC1
| Author | SHA1 | Date | |
|---|---|---|---|
| 9ebf95cace | |||
| e53c7b3c8a | |||
| abe0680641 | |||
| 5132cb3912 | |||
| 0849e8f540 | |||
| 968f23db7f | |||
| abecc1c9b6 | |||
| 937de43978 | |||
| 52e0a4c59b | |||
| 720936b74a | |||
| 261b143679 | |||
| 6d93b7d2f3 | |||
| d8c55779f8 | |||
| bdc498ce39 | |||
| 1c5297abf1 | |||
| c8c3d7c1a2 | |||
| da490d4006 | |||
| 615e439fd3 | |||
| 41a73cf9df | |||
| 3b00da932b | |||
| 152934c740 | |||
| 68f5af01d9 | |||
| 2df8d5657e | |||
| 7e4fe9a0f8 | |||
| 3f696b63d6 | |||
| 82fdfc7763 | |||
| a00f660411 | |||
| 03b5950d71 | |||
| 7aa16f245b | |||
| 9dc0d566cc | |||
| 3e76a0368f | |||
| 1a76d0aa67 | |||
| b01717c49e | |||
| 3eeb289aa0 | |||
| 0267f4bd69 | |||
| 2cf77adbb5 | |||
| 13b6fa2157 | |||
| c1cd2bbadd | |||
| e11aa93c14 | |||
| 58dadefc99 | |||
| 84ef7d0e55 | |||
| 274eaf29cf | |||
| fd6808b7ea | |||
| 47b1366b13 | |||
| ff82298416 |
@@ -17,7 +17,7 @@
|
||||
|
||||
# NOTE: All configurations could be found here: https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features
|
||||
github:
|
||||
description: "A Q&A platform software for teams at any scales. Whether it's a community forum, help center, or knowledge management platform, you can always count on Answer."
|
||||
description: "A Q&A platform software for teams at any scales. Whether it's a community forum, help center, or knowledge management platform, you can always count on Apache Answer."
|
||||
homepage: https://answer.apache.org
|
||||
labels:
|
||||
- react
|
||||
|
||||
@@ -1,30 +1,36 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
about: Report an issue to help the project improve.
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
## Describe the bug
|
||||
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
### To Reproduce
|
||||
|
||||
Steps to reproduce the behavior:
|
||||
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
### Expected behavior
|
||||
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
### Screenshots
|
||||
|
||||
**Platform (please complete the following information):**
|
||||
- Device: [e.g. Desktop, Mobile]
|
||||
- OS: [e.g. macOS]
|
||||
- Browser [e.g. chrome, safari]
|
||||
- Version [e.g. 22]
|
||||
If applicable, add screenshots or video to help explain your problem.
|
||||
|
||||
### Platform
|
||||
|
||||
- Device: [e.g. Desktop, Mobile]
|
||||
- OS: [e.g. macOS]
|
||||
- Browser and version: [e.g. Chrome, Safari]
|
||||
- Version: [e.g. v1.2.0]
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: Support
|
||||
url: https://answer.apache.org/community
|
||||
about: Contact us if you have any questions while using.
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Enhancement request
|
||||
about: Suggest an enhancement for this project. Improve an existing feature.
|
||||
title: ''
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
## Is your enhancement request related to a problem? Please describe
|
||||
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
## Describe the solution you'd like
|
||||
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
## Describe alternatives you've considered
|
||||
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
@@ -1,17 +1,20 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
about: Suggest an idea or possible new feature for this project.
|
||||
title: ''
|
||||
labels: enhancement
|
||||
labels: feature
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
## Is your feature request related to a problem? Please describe
|
||||
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
## Describe the solution you'd like
|
||||
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
## Describe alternatives you've considered
|
||||
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
@@ -26,6 +26,7 @@ permissions:
|
||||
|
||||
jobs:
|
||||
build-goreleaser:
|
||||
if: ${{ github.repository_owner == 'apache' }}
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
name: Manual Build Docker Image For Release
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
tag_name:
|
||||
type: string
|
||||
required: true
|
||||
description: 'DockerHub img tag name'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
if: ${{ github.repository_owner == 'apache' }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: apache/answer
|
||||
tags: |
|
||||
type=ref,enable=true,priority=600,prefix=,suffix=,event=branch
|
||||
type=semver,pattern={{version}}
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USER }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
file: ./Dockerfile
|
||||
tags: apache/answer:${{ inputs.tag_name }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
@@ -29,6 +29,7 @@ on:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
if: ${{ github.repository_owner == 'apache' }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -51,10 +52,10 @@ jobs:
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v2
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
username: ${{ secrets.DOCKERHUB_USER }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v4
|
||||
|
||||
@@ -23,6 +23,7 @@ on:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
if: ${{ github.repository_owner == 'apache' }}
|
||||
name: Build and Push
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@@ -44,10 +45,10 @@ jobs:
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v2
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
username: ${{ secrets.DOCKERHUB_USER }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v4
|
||||
|
||||
@@ -1,115 +0,0 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
name: Build PR Image
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened, closed]
|
||||
|
||||
jobs:
|
||||
build-answer:
|
||||
name: Build and push `Answer`
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
if: ${{ github.event.action != 'closed' }}
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Generate UUID image name
|
||||
id: uuid
|
||||
run: echo "UUID_WORKER=$(uuidgen)" >> $GITHUB_ENV
|
||||
|
||||
- name: Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: registry.uffizzi.com/${{ env.UUID_WORKER }}
|
||||
tags: |
|
||||
type=raw,value=60d
|
||||
|
||||
- name: Build and Push Image to registry.uffizzi.com - Uffizzi's ephemeral Registry
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
context: .
|
||||
file: ./Dockerfile
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
push: true
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha, mode=max
|
||||
|
||||
render-compose-file:
|
||||
name: Render Docker Compose File
|
||||
# Pass output of this workflow to another triggered by `workflow_run` event.
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- build-answer
|
||||
outputs:
|
||||
compose-file-cache-key: ${{ steps.hash.outputs.hash }}
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v4
|
||||
- name: Render Compose File
|
||||
run: |
|
||||
ANSWER_IMAGE=${{ needs.build-answer.outputs.tags }}
|
||||
export ANSWER_IMAGE
|
||||
export UFFIZZI_URL=\$UFFIZZI_URL
|
||||
# Render simple template from environment variables.
|
||||
envsubst < docker-compose.uffizzi.yml > docker-compose.rendered.yml
|
||||
cat docker-compose.rendered.yml
|
||||
- name: Upload Rendered Compose File as Artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: preview-spec
|
||||
path: docker-compose.rendered.yml
|
||||
retention-days: 2
|
||||
- name: Serialize PR Event to File
|
||||
run: |
|
||||
cat << EOF > event.json
|
||||
${{ toJSON(github.event) }}
|
||||
|
||||
EOF
|
||||
- name: Upload PR Event as Artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: preview-spec
|
||||
path: event.json
|
||||
retention-days: 2
|
||||
|
||||
delete-preview:
|
||||
name: Call for Preview Deletion
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event.action == 'closed' }}
|
||||
steps:
|
||||
# If this PR is closing, we will not render a compose file nor pass it to the next workflow.
|
||||
- name: Serialize PR Event to File
|
||||
run: |
|
||||
cat << EOF > event.json
|
||||
${{ toJSON(github.event) }}
|
||||
|
||||
EOF
|
||||
- name: Upload PR Event as Artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: preview-spec
|
||||
path: event.json
|
||||
retention-days: 2
|
||||
@@ -1,105 +0,0 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
name: Deploy Uffizzi Preview
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows:
|
||||
- "Build PR Image"
|
||||
types:
|
||||
- completed
|
||||
|
||||
|
||||
jobs:
|
||||
cache-compose-file:
|
||||
name: Cache Compose File
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
||||
outputs:
|
||||
compose-file-cache-key: ${{ env.HASH }}
|
||||
pr-number: ${{ env.PR_NUMBER }}
|
||||
steps:
|
||||
- name: 'Download artifacts'
|
||||
# Fetch output (zip archive) from the workflow run that triggered this workflow.
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
run_id: context.payload.workflow_run.id,
|
||||
});
|
||||
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
|
||||
return artifact.name == "preview-spec"
|
||||
})[0];
|
||||
let download = await github.rest.actions.downloadArtifact({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
artifact_id: matchArtifact.id,
|
||||
archive_format: 'zip',
|
||||
});
|
||||
let fs = require('fs');
|
||||
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/preview-spec.zip`, Buffer.from(download.data));
|
||||
|
||||
- name: 'Unzip artifact'
|
||||
run: unzip preview-spec.zip
|
||||
- name: Read Event into ENV
|
||||
run: |
|
||||
echo 'EVENT_JSON<<EOF' >> $GITHUB_ENV
|
||||
cat event.json >> $GITHUB_ENV
|
||||
echo 'EOF' >> $GITHUB_ENV
|
||||
|
||||
- name: Hash Rendered Compose File
|
||||
id: hash
|
||||
# If the previous workflow was triggered by a PR close event, we will not have a compose file artifact.
|
||||
if: ${{ fromJSON(env.EVENT_JSON).action != 'closed' }}
|
||||
run: echo "HASH=$(md5sum docker-compose.rendered.yml | awk '{ print $1 }')" >> $GITHUB_ENV
|
||||
- name: Cache Rendered Compose File
|
||||
if: ${{ fromJSON(env.EVENT_JSON).action != 'closed' }}
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: docker-compose.rendered.yml
|
||||
key: ${{ env.HASH }}
|
||||
|
||||
- name: Read PR Number From Event Object
|
||||
id: pr
|
||||
run: echo "PR_NUMBER=${{ fromJSON(env.EVENT_JSON).number }}" >> $GITHUB_ENV
|
||||
- name: DEBUG - Print Job Outputs
|
||||
if: ${{ runner.debug }}
|
||||
run: |
|
||||
echo "PR number: ${{ env.PR_NUMBER }}"
|
||||
echo "Compose file hash: ${{ env.HASH }}"
|
||||
cat event.json
|
||||
|
||||
deploy-uffizzi-preview:
|
||||
name: Use Remote Workflow to Preview on Uffizzi
|
||||
needs:
|
||||
- cache-compose-file
|
||||
if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
||||
uses: UffizziCloud/preview-action/.github/workflows/reusable.yaml@v2
|
||||
with:
|
||||
# If this workflow was triggered by a PR close event, cache-key will be an empty string
|
||||
# and this reusable workflow will delete the preview deployment.
|
||||
compose-file-cache-key: ${{ needs.cache-compose-file.outputs.compose-file-cache-key }}
|
||||
compose-file-cache-path: docker-compose.rendered.yml
|
||||
server: https://app.uffizzi.com
|
||||
pr-number: ${{ needs.cache-compose-file.outputs.pr-number }}
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
id-token: write
|
||||
+10
-4
@@ -32,7 +32,7 @@ builds:
|
||||
- id: build
|
||||
main: ./cmd/answer/.
|
||||
binary: answer
|
||||
ldflags: -s -w -X github.com/apache/incubator-answer/cmd.Version={{.Version}} -X github.com/apache/incubator-answer/cmd.Revision={{.ShortCommit}} -X github.com/apache/incubator-answer/cmd.Time={{.Date}} -X github.com/apache/incubator-answer/cmd.BuildUser=goreleaser
|
||||
ldflags: -s -w -X github.com/apache/incubator-answer/cmd.Version={{.RawVersion}} -X github.com/apache/incubator-answer/cmd.Revision={{.ShortCommit}} -X github.com/apache/incubator-answer/cmd.Time={{.Date}} -X github.com/apache/incubator-answer/cmd.BuildUser=goreleaser
|
||||
flags: -v
|
||||
goos:
|
||||
- linux
|
||||
@@ -43,7 +43,7 @@ builds:
|
||||
- id: build-windows
|
||||
main: ./cmd/answer/.
|
||||
binary: answer
|
||||
ldflags: -s -w -X github.com/apache/incubator-answer/cmd.Version={{.Version}} -X github.com/apache/incubator-answer/cmd.Revision={{.ShortCommit}} -X github.com/apache/incubator-answer/cmd.Time={{.Date}} -X github.com/apache/incubator-answer/cmd.BuildUser=goreleaser
|
||||
ldflags: -s -w -X github.com/apache/incubator-answer/cmd.Version={{.RawVersion}} -X github.com/apache/incubator-answer/cmd.Revision={{.ShortCommit}} -X github.com/apache/incubator-answer/cmd.Time={{.Date}} -X github.com/apache/incubator-answer/cmd.BuildUser=goreleaser
|
||||
flags: -v
|
||||
goos:
|
||||
- windows
|
||||
@@ -55,7 +55,7 @@ builds:
|
||||
|
||||
archives:
|
||||
- name_template: >-
|
||||
apache-answer-{{ .Version }}-incubating-{{ .Os }}-{{ .Arch }}
|
||||
apache-answer-{{ .RawVersion }}-incubating-bin-{{ .Os }}-{{ .Arch }}
|
||||
files:
|
||||
- src: "docs/release/LICENSE"
|
||||
dst: LICENSE
|
||||
@@ -65,6 +65,7 @@ archives:
|
||||
dst: licenses/
|
||||
- src: "DISCLAIMER"
|
||||
dst: DISCLAIMER
|
||||
wrap_in_directory: true
|
||||
checksum:
|
||||
name_template: 'checksums.txt'
|
||||
snapshot:
|
||||
@@ -76,5 +77,10 @@ changelog:
|
||||
- '^docs:'
|
||||
- '^test:'
|
||||
|
||||
# goreleaser release --snapshot --rm-dist
|
||||
source:
|
||||
enabled: true
|
||||
name_template: apache-answer-{{ .RawVersion }}-incubating-src
|
||||
prefix_template: "apache-answer-{{ .RawVersion }}-incubating-src/"
|
||||
|
||||
# goreleaser release --skip-validate --skip-publish --clean
|
||||
|
||||
|
||||
+7
-3
@@ -20,7 +20,7 @@ LABEL maintainer="aichy@sf.com"
|
||||
|
||||
ARG GOPROXY
|
||||
# ENV GOPROXY ${GOPROXY:-direct}
|
||||
ENV GOPROXY=https://proxy.golang.com.cn,direct
|
||||
# ENV GOPROXY=https://proxy.golang.com.cn,direct
|
||||
|
||||
ENV GOPATH /go
|
||||
ENV GOROOT /usr/local/go
|
||||
@@ -47,7 +47,9 @@ RUN mkdir -p /data/uploads && chmod 777 /data/uploads \
|
||||
FROM alpine
|
||||
LABEL maintainer="linkinstar@apache.org"
|
||||
|
||||
ENV TZ "Asia/Shanghai"
|
||||
ARG TIMEZONE
|
||||
ENV TIMEZONE=${TIMEZONE:-"Asia/Shanghai"}
|
||||
|
||||
RUN apk update \
|
||||
&& apk --no-cache add \
|
||||
bash \
|
||||
@@ -58,7 +60,9 @@ RUN apk update \
|
||||
openssh \
|
||||
sqlite \
|
||||
gnupg \
|
||||
&& echo "Asia/Shanghai" > /etc/timezone
|
||||
tzdata \
|
||||
&& ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \
|
||||
&& echo "${TIMEZONE}" > /etc/timezone
|
||||
|
||||
COPY --from=golang-builder /usr/bin/answer /usr/bin/answer
|
||||
COPY --from=golang-builder /data /data
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
.PHONY: build clean ui
|
||||
|
||||
VERSION=1.2.0
|
||||
VERSION=1.3.0
|
||||
BIN=answer
|
||||
DIR_SRC=./cmd/answer
|
||||
DOCKER_CMD=docker
|
||||
|
||||
GO_ENV=CGO_ENABLED=0 GO111MODULE=on
|
||||
Revision=$(shell git rev-parse --short HEAD)
|
||||
Revision=$(shell git rev-parse --short HEAD 2>/dev/null || echo "")
|
||||
GO_FLAGS=-ldflags="-X github.com/apache/incubator-answer/cmd.Version=$(VERSION) -X 'github.com/apache/incubator-answer/cmd.Revision=$(Revision)' -X 'github.com/apache/incubator-answer/cmd.Time=`date +%s`' -extldflags -static"
|
||||
GO=$(GO_ENV) $(shell which go)
|
||||
|
||||
@@ -43,4 +43,8 @@ install-ui-packages:
|
||||
ui:
|
||||
@cd ui && pnpm pre-install && pnpm build && cd -
|
||||
|
||||
lint: generate
|
||||
@bash ./script/check-asf-header.sh
|
||||
@gofmt -w -l .
|
||||
|
||||
all: clean build
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Apache Answer (incubating)
|
||||
Copyright 2023 The Apache Software Foundation
|
||||
Copyright 2023-2024 The Apache Software Foundation
|
||||
|
||||
This product includes software developed at
|
||||
The Apache Software Foundation (https://www.apache.org/).
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<img alt="logo" src="docs/img/logo.svg" height="99px">
|
||||
</a>
|
||||
|
||||
# Answer - Build Q&A platform
|
||||
# Apache Answer - Build Q&A platform
|
||||
|
||||
A Q&A platform software for teams at any scales. Whether it’s a community forum, help center, or knowledge management platform, you can always count on Answer.
|
||||
|
||||
@@ -23,24 +23,45 @@ To learn more about the project, visit [answer.apache.org](https://answer.apache
|
||||
### Running with docker
|
||||
|
||||
```bash
|
||||
docker run -d -p 9080:80 -v answer-data:/data --name answer answerdev/answer:latest
|
||||
docker run -d -p 9080:80 -v answer-data:/data --name answer apache/answer:1.3.0
|
||||
```
|
||||
|
||||
For more information, see [Installation](https://answer.apache.org/docs/installation)
|
||||
For more information, see [Installation](https://answer.apache.org/docs/installation).
|
||||
|
||||
### Plugins
|
||||
|
||||
Answer provides a plugin system for developers to create custom plugins and expand Answer’s features. You can find the [plugin documentation here](https://answer.apache.org/docs/development/extending/).
|
||||
Answer provides a plugin system for developers to create custom plugins and expand Answer’s features. You can find the [plugin documentation here](https://answer.apache.org/community/plugins).
|
||||
|
||||
We value your feedback and suggestions to improve our documentation. If you have any comments or questions, please feel free to contact us. We’re excited to see what you can create using our plugin system!
|
||||
|
||||
You can also check out the [plugins here](https://github.com/apache/incubator-answer-plugins).
|
||||
You can also check out the [plugins here](https://answer.apache.org/plugins).
|
||||
|
||||
## Building from Source
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Golang >= 1.18
|
||||
- Node.js >= 16.17
|
||||
- pnpm >= 8
|
||||
- mockgen >= 1.6.0
|
||||
- wire >= 0.5.0
|
||||
|
||||
### Build
|
||||
|
||||
```bash
|
||||
# install wire and mockgen for building
|
||||
$ make generate
|
||||
# install frontend dependencies and build
|
||||
$ make ui
|
||||
# install backend dependencies and build
|
||||
$ make build
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions are always welcome!
|
||||
|
||||
See [CONTRIBUTING](https://answer.apache.org/docs/development/contributing/) for ways to get started.
|
||||
See [CONTRIBUTING](https://answer.apache.org/community/contributing) for ways to get started.
|
||||
|
||||
## License
|
||||
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
<a href="https://answer.apache.org">
|
||||
<img alt="logo" src="docs/img/logo.svg" height="99px">
|
||||
</a>
|
||||
|
||||
# Answer - 构建问答社区
|
||||
|
||||
一款问答形式的知识社区开源软件,你可以使用它快速建立你的问答社区,用于产品技术支持、客户支持、用户交流等。
|
||||
|
||||
了解更多关于该项目的内容,请访问 [answer.apache.org](https://answer.apache.org).
|
||||
|
||||
[](https://github.com/apache/incubator-answer/blob/main/LICENSE)
|
||||
[](https://golang.org/)
|
||||
[](https://reactjs.org/)
|
||||
[](https://goreportcard.com/report/github.com/apache/incubator-answer)
|
||||
[](https://discord.gg/Jm7Y4cbUej)
|
||||
|
||||
## 截图
|
||||
|
||||

|
||||
|
||||
## 快速开始
|
||||
|
||||
### 使用 docker 快速搭建
|
||||
|
||||
```bash
|
||||
docker run -d -p 9080:80 -v answer-data:/data --name answer answerdev/answer:latest
|
||||
```
|
||||
|
||||
其他安装配置细节请参考 [Installation](https://answer.apache.org/docs/installation)
|
||||
|
||||
## 贡献
|
||||
|
||||
我们随时欢迎你的贡献!
|
||||
|
||||
参考 [CONTRIBUTING](https://answer.apache.org/docs/development/contributing/) 开始贡献。
|
||||
|
||||
## License
|
||||
|
||||
[Apache License 2.0](https://github.com/apache/incubator-answer/blob/main/LICENSE)
|
||||
+3
-3
@@ -11,7 +11,7 @@ The following table lists the configurable parameters of the answer chart and th
|
||||
| Parameter | Description | Default |
|
||||
| --------- | ----------- | ------- |
|
||||
| `replicaCount` | Number of answer replicas | `1` |
|
||||
| `image.repository` | Image repository | `answerdev/answer` |
|
||||
| `image.repository` | Image repository | `apache/answer` |
|
||||
| `image.pullPolicy` | Image pull policy | `Always` |
|
||||
| `image.tag` | Image tag | `latest` |
|
||||
| `env` | Optional environment variables for answer | `LOG_LEVEL: INFO` |
|
||||
@@ -69,7 +69,7 @@ Publish the chart to Artifacthub and add proper installation instructions. E.G.
|
||||
> **NOTE**: This is not currently a valid installation option.
|
||||
|
||||
```console
|
||||
$ helm repo add answerdev https://charts.answer.apache.org/
|
||||
$ helm repo add apache https://charts.answer.apache.org/
|
||||
$ helm repo update
|
||||
$ helm install answerdev/answer -n mynamespace
|
||||
$ helm install apache/answer -n mynamespace
|
||||
```
|
||||
@@ -15,7 +15,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
{{- if .Values.autoscaling.enabled }}
|
||||
{{ if .Values.autoscaling.enabled -}}
|
||||
apiVersion: autoscaling/v2beta1
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{ if .Values.ingress.enabled -}}
|
||||
{{- $fullName := include "answer.fullname" . -}}
|
||||
{{- $svcPort := .Values.service.port -}}
|
||||
{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
{{- if .Values.persistence.enabled }}
|
||||
{{ if .Values.persistence.enabled -}}
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
{{ if .Values.serviceAccount.create -}}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: answerdev/answer
|
||||
repository: apache/answer
|
||||
pullPolicy: Always
|
||||
# Overrides the image tag whose default is the chart appVersion.
|
||||
tag: "latest"
|
||||
|
||||
+37
-1
@@ -45,6 +45,8 @@ var (
|
||||
// This config is used to upgrade the database from a specific version manually.
|
||||
// If you want to upgrade the database to version 1.1.0, you can use `answer upgrade -f v1.1.0`.
|
||||
upgradeVersion string
|
||||
// The fields that need to be set to the default value
|
||||
configFields []string
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -60,7 +62,9 @@ func init() {
|
||||
|
||||
upgradeCmd.Flags().StringVarP(&upgradeVersion, "from", "f", "", "upgrade from specific version, eg: -f v1.1.0")
|
||||
|
||||
for _, cmd := range []*cobra.Command{initCmd, checkCmd, runCmd, dumpCmd, upgradeCmd, buildCmd, pluginCmd} {
|
||||
configCmd.Flags().StringSliceVarP(&configFields, "with", "w", []string{}, "the fields that need to be set to the default value, eg: -w allow_password_login")
|
||||
|
||||
for _, cmd := range []*cobra.Command{initCmd, checkCmd, runCmd, dumpCmd, upgradeCmd, buildCmd, pluginCmd, configCmd} {
|
||||
rootCmd.AddCommand(cmd)
|
||||
}
|
||||
}
|
||||
@@ -231,6 +235,38 @@ To run answer, use:
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
// configCmd set some config to default value
|
||||
configCmd = &cobra.Command{
|
||||
Use: "config",
|
||||
Short: "set some config to default value",
|
||||
Long: `set some config to default value`,
|
||||
Run: func(_ *cobra.Command, _ []string) {
|
||||
cli.FormatAllPath(dataDirPath)
|
||||
|
||||
c, err := conf.ReadConfig(cli.GetConfigFilePath())
|
||||
if err != nil {
|
||||
fmt.Println("read config failed: ", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
field := &cli.ConfigField{}
|
||||
for _, f := range configFields {
|
||||
switch f {
|
||||
case "allow_password_login":
|
||||
field.AllowPasswordLogin = true
|
||||
default:
|
||||
fmt.Printf("field %s not support\n", f)
|
||||
}
|
||||
}
|
||||
err = cli.SetDefaultConfig(c.Data.Database, c.Data.Cache, field)
|
||||
if err != nil {
|
||||
fmt.Println("set default config failed: ", err.Error())
|
||||
} else {
|
||||
fmt.Println("set default config successfully")
|
||||
}
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
// Execute adds all child commands to the root command and sets flags appropriately.
|
||||
|
||||
+6
-2
@@ -44,9 +44,12 @@ var (
|
||||
// Version is the version of the project
|
||||
Version = "0.0.0"
|
||||
// Revision is the git short commit revision number
|
||||
Revision = "-"
|
||||
// If built without a Git repository, this field will be empty.
|
||||
Revision = ""
|
||||
// Time is the build time of the project
|
||||
Time = "-"
|
||||
Time = ""
|
||||
// GoVersion is the go version of the project
|
||||
GoVersion = "1.19"
|
||||
// log level
|
||||
logLevel = os.Getenv("LOG_LEVEL")
|
||||
// log path
|
||||
@@ -75,6 +78,7 @@ func runApp() {
|
||||
}
|
||||
constant.Version = Version
|
||||
constant.Revision = Revision
|
||||
constant.GoVersion = GoVersion
|
||||
schema.AppStartTime = time.Now()
|
||||
fmt.Println("answer Version:", constant.Version, " Revision:", constant.Revision)
|
||||
|
||||
|
||||
+46
-40
@@ -53,6 +53,7 @@ import (
|
||||
"github.com/apache/incubator-answer/internal/repo/rank"
|
||||
"github.com/apache/incubator-answer/internal/repo/reason"
|
||||
"github.com/apache/incubator-answer/internal/repo/report"
|
||||
"github.com/apache/incubator-answer/internal/repo/review"
|
||||
"github.com/apache/incubator-answer/internal/repo/revision"
|
||||
"github.com/apache/incubator-answer/internal/repo/role"
|
||||
"github.com/apache/incubator-answer/internal/repo/search_common"
|
||||
@@ -64,17 +65,18 @@ import (
|
||||
"github.com/apache/incubator-answer/internal/repo/user_external_login"
|
||||
"github.com/apache/incubator-answer/internal/repo/user_notification_config"
|
||||
"github.com/apache/incubator-answer/internal/router"
|
||||
"github.com/apache/incubator-answer/internal/service"
|
||||
"github.com/apache/incubator-answer/internal/service/action"
|
||||
activity2 "github.com/apache/incubator-answer/internal/service/activity"
|
||||
activity_common2 "github.com/apache/incubator-answer/internal/service/activity_common"
|
||||
"github.com/apache/incubator-answer/internal/service/activity_queue"
|
||||
"github.com/apache/incubator-answer/internal/service/answer_common"
|
||||
auth2 "github.com/apache/incubator-answer/internal/service/auth"
|
||||
collection2 "github.com/apache/incubator-answer/internal/service/collection"
|
||||
"github.com/apache/incubator-answer/internal/service/collection_common"
|
||||
comment2 "github.com/apache/incubator-answer/internal/service/comment"
|
||||
"github.com/apache/incubator-answer/internal/service/comment_common"
|
||||
config2 "github.com/apache/incubator-answer/internal/service/config"
|
||||
"github.com/apache/incubator-answer/internal/service/content"
|
||||
"github.com/apache/incubator-answer/internal/service/dashboard"
|
||||
export2 "github.com/apache/incubator-answer/internal/service/export"
|
||||
"github.com/apache/incubator-answer/internal/service/follow"
|
||||
@@ -88,8 +90,8 @@ import (
|
||||
rank2 "github.com/apache/incubator-answer/internal/service/rank"
|
||||
reason2 "github.com/apache/incubator-answer/internal/service/reason"
|
||||
report2 "github.com/apache/incubator-answer/internal/service/report"
|
||||
"github.com/apache/incubator-answer/internal/service/report_admin"
|
||||
"github.com/apache/incubator-answer/internal/service/report_handle_admin"
|
||||
"github.com/apache/incubator-answer/internal/service/report_handle"
|
||||
review2 "github.com/apache/incubator-answer/internal/service/review"
|
||||
"github.com/apache/incubator-answer/internal/service/revision_common"
|
||||
role2 "github.com/apache/incubator-answer/internal/service/role"
|
||||
"github.com/apache/incubator-answer/internal/service/search_parser"
|
||||
@@ -149,17 +151,13 @@ func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database,
|
||||
userRoleRelService := role2.NewUserRoleRelService(userRoleRelRepo, roleService)
|
||||
userCommon := usercommon.NewUserCommon(userRepo, userRoleRelService, authService, siteInfoCommonService)
|
||||
userExternalLoginRepo := user_external_login.NewUserExternalLoginRepo(dataData)
|
||||
userExternalLoginService := user_external_login2.NewUserExternalLoginService(userRepo, userCommon, userExternalLoginRepo, emailService, siteInfoCommonService, userActiveActivityRepo)
|
||||
userNotificationConfigRepo := user_notification_config.NewUserNotificationConfigRepo(dataData)
|
||||
userNotificationConfigService := user_notification_config2.NewUserNotificationConfigService(userRepo, userNotificationConfigRepo)
|
||||
userService := service.NewUserService(userRepo, userActiveActivityRepo, activityRepo, emailService, authService, siteInfoCommonService, userRoleRelService, userCommon, userExternalLoginService, userNotificationConfigRepo, userNotificationConfigService)
|
||||
captchaRepo := captcha.NewCaptchaRepo(dataData)
|
||||
captchaService := action.NewCaptchaService(captchaRepo)
|
||||
userController := controller.NewUserController(authService, userService, captchaService, emailService, siteInfoCommonService, userNotificationConfigService)
|
||||
commentRepo := comment.NewCommentRepo(dataData, uniqueIDRepo)
|
||||
commentCommonRepo := comment.NewCommentCommonRepo(dataData, uniqueIDRepo)
|
||||
answerRepo := answer.NewAnswerRepo(dataData, uniqueIDRepo, userRankRepo, activityRepo)
|
||||
userExternalLoginService := user_external_login2.NewUserExternalLoginService(userRepo, userCommon, userExternalLoginRepo, emailService, siteInfoCommonService, userActiveActivityRepo, userNotificationConfigService)
|
||||
questionRepo := question.NewQuestionRepo(dataData, uniqueIDRepo)
|
||||
answerRepo := answer.NewAnswerRepo(dataData, uniqueIDRepo, userRankRepo, activityRepo)
|
||||
voteRepo := activity_common.NewVoteRepo(dataData, activityRepo)
|
||||
followRepo := activity_common.NewFollowRepo(dataData, uniqueIDRepo, activityRepo)
|
||||
tagCommonRepo := tag_common.NewTagCommonRepo(dataData, uniqueIDRepo)
|
||||
tagRelRepo := tag.NewTagRelRepo(dataData, uniqueIDRepo)
|
||||
tagRepo := tag.NewTagRepo(dataData, uniqueIDRepo)
|
||||
@@ -167,8 +165,19 @@ func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database,
|
||||
revisionService := revision_common.NewRevisionService(revisionRepo, userRepo)
|
||||
activityQueueService := activity_queue.NewActivityQueueService()
|
||||
tagCommonService := tag_common2.NewTagCommonService(tagCommonRepo, tagRelRepo, tagRepo, revisionService, siteInfoCommonService, activityQueueService)
|
||||
collectionRepo := collection.NewCollectionRepo(dataData, uniqueIDRepo)
|
||||
collectionCommon := collectioncommon.NewCollectionCommon(collectionRepo)
|
||||
answerCommon := answercommon.NewAnswerCommon(answerRepo)
|
||||
metaRepo := meta.NewMetaRepo(dataData)
|
||||
metaService := meta2.NewMetaService(metaRepo)
|
||||
questionCommon := questioncommon.NewQuestionCommon(questionRepo, answerRepo, voteRepo, followRepo, tagCommonService, userCommon, collectionCommon, answerCommon, metaService, configService, activityQueueService, revisionRepo, dataData)
|
||||
userService := content.NewUserService(userRepo, userActiveActivityRepo, activityRepo, emailService, authService, siteInfoCommonService, userRoleRelService, userCommon, userExternalLoginService, userNotificationConfigRepo, userNotificationConfigService, questionCommon)
|
||||
captchaRepo := captcha.NewCaptchaRepo(dataData)
|
||||
captchaService := action.NewCaptchaService(captchaRepo)
|
||||
userController := controller.NewUserController(authService, userService, captchaService, emailService, siteInfoCommonService, userNotificationConfigService)
|
||||
commentRepo := comment.NewCommentRepo(dataData, uniqueIDRepo)
|
||||
commentCommonRepo := comment.NewCommentCommonRepo(dataData, uniqueIDRepo)
|
||||
objService := object_info.NewObjService(answerRepo, questionRepo, commentCommonRepo, tagCommonRepo, tagCommonService)
|
||||
voteRepo := activity_common.NewVoteRepo(dataData, activityRepo)
|
||||
notificationQueueService := notice_queue.NewNotificationQueueService()
|
||||
externalNotificationQueueService := notice_queue.NewNewQuestionNotificationQueueService()
|
||||
commentService := comment2.NewCommentService(commentRepo, commentCommonRepo, userCommon, objService, voteRepo, emailService, userRepo, notificationQueueService, externalNotificationQueueService, activityQueueService)
|
||||
@@ -179,43 +188,37 @@ func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database,
|
||||
rateLimitMiddleware := middleware.NewRateLimitMiddleware(limitRepo)
|
||||
commentController := controller.NewCommentController(commentService, rankService, captchaService, rateLimitMiddleware)
|
||||
reportRepo := report.NewReportRepo(dataData, uniqueIDRepo)
|
||||
reportService := report2.NewReportService(reportRepo, objService)
|
||||
answerActivityRepo := activity.NewAnswerActivityRepo(dataData, activityRepo, userRankRepo, notificationQueueService)
|
||||
answerActivityService := activity2.NewAnswerActivityService(answerActivityRepo, configService)
|
||||
externalNotificationService := notification.NewExternalNotificationService(dataData, userNotificationConfigRepo, followRepo, emailService, userRepo, externalNotificationQueueService, userExternalLoginRepo, siteInfoCommonService)
|
||||
reviewRepo := review.NewReviewRepo(dataData)
|
||||
reviewService := review2.NewReviewService(reviewRepo, objService, userCommon, userRepo, questionRepo, answerRepo, userRoleRelService, externalNotificationQueueService, tagCommonService, notificationQueueService, siteInfoCommonService)
|
||||
questionService := content.NewQuestionService(questionRepo, tagCommonService, questionCommon, userCommon, userRepo, userRoleRelService, revisionService, metaService, collectionCommon, answerActivityService, emailService, notificationQueueService, externalNotificationQueueService, activityQueueService, siteInfoCommonService, externalNotificationService, reviewService, configService)
|
||||
answerService := content.NewAnswerService(answerRepo, questionRepo, questionCommon, userCommon, collectionCommon, userRepo, revisionService, answerActivityService, answerCommon, voteRepo, emailService, userRoleRelService, notificationQueueService, externalNotificationQueueService, activityQueueService, reviewService)
|
||||
reportHandle := report_handle.NewReportHandle(questionService, answerService, commentService)
|
||||
reportService := report2.NewReportService(reportRepo, objService, userCommon, answerRepo, questionRepo, commentCommonRepo, reportHandle, configService)
|
||||
reportController := controller.NewReportController(reportService, rankService, captchaService)
|
||||
serviceVoteRepo := activity.NewVoteRepo(dataData, activityRepo, userRankRepo, notificationQueueService)
|
||||
voteService := service.NewVoteService(serviceVoteRepo, configService, questionRepo, answerRepo, commentCommonRepo, objService)
|
||||
contentVoteRepo := activity.NewVoteRepo(dataData, activityRepo, userRankRepo, notificationQueueService)
|
||||
voteService := content.NewVoteService(contentVoteRepo, configService, questionRepo, answerRepo, commentCommonRepo, objService)
|
||||
voteController := controller.NewVoteController(voteService, rankService, captchaService)
|
||||
followRepo := activity_common.NewFollowRepo(dataData, uniqueIDRepo, activityRepo)
|
||||
tagService := tag2.NewTagService(tagRepo, tagCommonService, revisionService, followRepo, siteInfoCommonService, activityQueueService)
|
||||
tagController := controller.NewTagController(tagService, tagCommonService, rankService)
|
||||
followFollowRepo := activity.NewFollowRepo(dataData, uniqueIDRepo, activityRepo)
|
||||
followService := follow.NewFollowService(followFollowRepo, followRepo, tagCommonRepo)
|
||||
followController := controller.NewFollowController(followService)
|
||||
collectionRepo := collection.NewCollectionRepo(dataData, uniqueIDRepo)
|
||||
collectionGroupRepo := collection.NewCollectionGroupRepo(dataData)
|
||||
collectionCommon := collectioncommon.NewCollectionCommon(collectionRepo)
|
||||
answerCommon := answercommon.NewAnswerCommon(answerRepo)
|
||||
metaRepo := meta.NewMetaRepo(dataData)
|
||||
metaService := meta2.NewMetaService(metaRepo)
|
||||
questionCommon := questioncommon.NewQuestionCommon(questionRepo, answerRepo, voteRepo, followRepo, tagCommonService, userCommon, collectionCommon, answerCommon, metaService, configService, activityQueueService, dataData)
|
||||
collectionService := service.NewCollectionService(collectionRepo, collectionGroupRepo, questionCommon)
|
||||
collectionService := collection2.NewCollectionService(collectionRepo, collectionGroupRepo, questionCommon)
|
||||
collectionController := controller.NewCollectionController(collectionService)
|
||||
answerActivityRepo := activity.NewAnswerActivityRepo(dataData, activityRepo, userRankRepo, notificationQueueService)
|
||||
answerActivityService := activity2.NewAnswerActivityService(answerActivityRepo, configService)
|
||||
externalNotificationService := notification.NewExternalNotificationService(dataData, userNotificationConfigRepo, followRepo, emailService, userRepo, externalNotificationQueueService)
|
||||
questionService := service.NewQuestionService(questionRepo, tagCommonService, questionCommon, userCommon, userRepo, revisionService, metaService, collectionCommon, answerActivityService, emailService, notificationQueueService, externalNotificationQueueService, activityQueueService, siteInfoCommonService, externalNotificationService)
|
||||
answerService := service.NewAnswerService(answerRepo, questionRepo, questionCommon, userCommon, collectionCommon, userRepo, revisionService, answerActivityService, answerCommon, voteRepo, emailService, userRoleRelService, notificationQueueService, externalNotificationQueueService, activityQueueService)
|
||||
questionController := controller.NewQuestionController(questionService, answerService, rankService, siteInfoCommonService, captchaService, rateLimitMiddleware)
|
||||
answerController := controller.NewAnswerController(answerService, rankService, captchaService, rateLimitMiddleware)
|
||||
answerController := controller.NewAnswerController(answerService, rankService, captchaService, siteInfoCommonService, rateLimitMiddleware)
|
||||
searchParser := search_parser.NewSearchParser(tagCommonService, userCommon)
|
||||
searchRepo := search_common.NewSearchRepo(dataData, uniqueIDRepo, userCommon, tagCommonService)
|
||||
searchService := service.NewSearchService(searchParser, searchRepo)
|
||||
searchService := content.NewSearchService(searchParser, searchRepo)
|
||||
searchController := controller.NewSearchController(searchService, captchaService)
|
||||
serviceRevisionService := service.NewRevisionService(revisionRepo, userCommon, questionCommon, answerService, objService, questionRepo, answerRepo, tagRepo, tagCommonService, notificationQueueService, activityQueueService)
|
||||
revisionController := controller.NewRevisionController(serviceRevisionService, rankService)
|
||||
reviewActivityRepo := activity.NewReviewActivityRepo(dataData, activityRepo, userRankRepo, configService)
|
||||
contentRevisionService := content.NewRevisionService(revisionRepo, userCommon, questionCommon, answerService, objService, questionRepo, answerRepo, tagRepo, tagCommonService, notificationQueueService, activityQueueService, reportRepo, reviewService, reviewActivityRepo)
|
||||
revisionController := controller.NewRevisionController(contentRevisionService, rankService)
|
||||
rankController := controller.NewRankController(rankService)
|
||||
reportHandle := report_handle_admin.NewReportHandle(questionCommon, commentRepo, configService, notificationQueueService)
|
||||
reportAdminService := report_admin.NewReportAdminService(reportRepo, userCommon, answerRepo, questionRepo, commentCommonRepo, reportHandle, configService, objService)
|
||||
controller_adminReportController := controller_admin.NewReportController(reportAdminService)
|
||||
userAdminRepo := user.NewUserAdminRepo(dataData, authRepo)
|
||||
userAdminService := user_admin.NewUserAdminService(userAdminRepo, userRoleRelService, authService, userCommon, userActiveActivityRepo, siteInfoCommonService, emailService, questionRepo, answerRepo, commentCommonRepo)
|
||||
userAdminController := controller_admin.NewUserAdminController(userAdminService)
|
||||
@@ -227,10 +230,10 @@ func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database,
|
||||
siteInfoController := controller_admin.NewSiteInfoController(siteInfoService)
|
||||
controllerSiteInfoController := controller.NewSiteInfoController(siteInfoCommonService)
|
||||
notificationRepo := notification2.NewNotificationRepo(dataData)
|
||||
notificationCommon := notificationcommon.NewNotificationCommon(dataData, notificationRepo, userCommon, activityRepo, followRepo, objService, notificationQueueService)
|
||||
notificationService := notification.NewNotificationService(dataData, notificationRepo, notificationCommon, revisionService, userRepo)
|
||||
notificationCommon := notificationcommon.NewNotificationCommon(dataData, notificationRepo, userCommon, activityRepo, followRepo, objService, notificationQueueService, userExternalLoginRepo, siteInfoCommonService)
|
||||
notificationService := notification.NewNotificationService(dataData, notificationRepo, notificationCommon, revisionService, userRepo, reportRepo, reviewService)
|
||||
notificationController := controller.NewNotificationController(notificationService, rankService)
|
||||
dashboardService := dashboard.NewDashboardService(questionRepo, answerRepo, commentCommonRepo, voteRepo, userRepo, reportRepo, configService, siteInfoCommonService, serviceConf, dataData)
|
||||
dashboardService := dashboard.NewDashboardService(questionRepo, answerRepo, commentCommonRepo, voteRepo, userRepo, reportRepo, configService, siteInfoCommonService, serviceConf, reviewService, revisionRepo, dataData)
|
||||
dashboardController := controller.NewDashboardController(dashboardService)
|
||||
uploaderService := uploader.NewUploaderService(serviceConf, siteInfoCommonService)
|
||||
uploadController := controller.NewUploadController(uploaderService)
|
||||
@@ -241,10 +244,13 @@ func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database,
|
||||
activityController := controller.NewActivityController(activityService)
|
||||
roleController := controller_admin.NewRoleController(roleService)
|
||||
pluginConfigRepo := plugin_config.NewPluginConfigRepo(dataData)
|
||||
pluginCommonService := plugin_common.NewPluginCommonService(pluginConfigRepo, configService, dataData)
|
||||
pluginUserConfigRepo := plugin_config.NewPluginUserConfigRepo(dataData)
|
||||
pluginCommonService := plugin_common.NewPluginCommonService(pluginConfigRepo, pluginUserConfigRepo, configService, dataData)
|
||||
pluginController := controller_admin.NewPluginController(pluginCommonService)
|
||||
permissionController := controller.NewPermissionController(rankService)
|
||||
answerAPIRouter := router.NewAnswerAPIRouter(langController, userController, commentController, reportController, voteController, tagController, followController, collectionController, questionController, answerController, searchController, revisionController, rankController, controller_adminReportController, userAdminController, reasonController, themeController, siteInfoController, controllerSiteInfoController, notificationController, dashboardController, uploadController, activityController, roleController, pluginController, permissionController)
|
||||
userPluginController := controller.NewUserPluginController(pluginCommonService)
|
||||
reviewController := controller.NewReviewController(reviewService, rankService, captchaService)
|
||||
answerAPIRouter := router.NewAnswerAPIRouter(langController, userController, commentController, reportController, voteController, tagController, followController, collectionController, questionController, answerController, searchController, revisionController, rankController, userAdminController, reasonController, themeController, siteInfoController, controllerSiteInfoController, notificationController, dashboardController, uploadController, activityController, roleController, pluginController, permissionController, userPluginController, reviewController)
|
||||
swaggerRouter := router.NewSwaggerRouter(swaggerConf)
|
||||
uiRouter := router.NewUIRouter(controllerSiteInfoController, siteInfoCommonService)
|
||||
authUserMiddleware := middleware.NewAuthUserMiddleware(authService, siteInfoCommonService)
|
||||
|
||||
@@ -32,6 +32,4 @@ swaggerui:
|
||||
host: 127.0.0.1
|
||||
address: ':80'
|
||||
service_config:
|
||||
secret_key: "answer"
|
||||
web_host: "http://127.0.0.1:9080"
|
||||
upload_path: "/data/uploads"
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
version: "3.9"
|
||||
|
||||
# uffizzi integration
|
||||
x-uffizzi:
|
||||
ingress:
|
||||
service: answer
|
||||
port: 80
|
||||
|
||||
services:
|
||||
|
||||
answer:
|
||||
image: "${ANSWER_IMAGE}"
|
||||
environment:
|
||||
- AUTO_INSTALL=true
|
||||
- DB_TYPE=mysql
|
||||
- DB_USERNAME=root
|
||||
- DB_PASSWORD=password
|
||||
- DB_HOST=127.0.0.1:3306
|
||||
- DB_NAME=answer
|
||||
- LANGUAGE=en_US
|
||||
- SITE_NAME=answer-test
|
||||
- SITE_URL=http://localhost
|
||||
- CONTACT_EMAIL=test@answer.com
|
||||
- ADMIN_NAME=admin123
|
||||
- ADMIN_PASSWORD=admin123
|
||||
- ADMIN_EMAIL=admin123@admin.com
|
||||
volumes:
|
||||
- answer-data:/data
|
||||
depends_on:
|
||||
mysql:
|
||||
condition: service_healthy
|
||||
links:
|
||||
- db
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 4000M
|
||||
|
||||
mysql:
|
||||
image: mysql:latest
|
||||
environment:
|
||||
- MYSQL_DATABASE=answer
|
||||
- MYSQL_ROOT_PASSWORD=password
|
||||
- MYSQL_USER=mysql
|
||||
- MYSQL_PASSWORD=mysql
|
||||
healthcheck:
|
||||
test: [ "CMD", "mysqladmin" ,"ping", "-uroot", "-ppassword" ]
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci', '--skip-character-set-client-handshake']
|
||||
volumes:
|
||||
- sql_data:/var/lib/mysql
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 500M
|
||||
|
||||
volumes:
|
||||
answer-data:
|
||||
sql_data:
|
||||
+1
-1
@@ -18,7 +18,7 @@
|
||||
version: "3"
|
||||
services:
|
||||
answer:
|
||||
image: answerdev/answer
|
||||
image: apache/answer
|
||||
ports:
|
||||
- '9080:80'
|
||||
restart: on-failure
|
||||
|
||||
+813
-179
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,21 @@
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<svg width="126" height="44" viewBox="0 0 126 44" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="125.49" height="44" rx="6" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 14.4C8 12.1598 8 11.0397 8.43597 10.184C8.81947 9.43139 9.43139 8.81947 10.184 8.43597C11.0397 8 12.1598 8 14.4 8H29.6C31.8402 8 32.9603 8 33.816 8.43597C34.5686 8.81947 35.1805 9.43139 35.564 10.184C36 11.0397 36 12.1598 36 14.4V24.0892C36 26.9608 36 28.3967 35.5628 29.6643C35.1761 30.7853 34.5451 31.8063 33.7153 32.6535C32.7771 33.6115 31.4928 34.2536 28.9244 35.5378L28 36V32H14.4C12.1598 32 11.0397 32 10.184 31.564C9.43139 31.1805 8.81947 30.5686 8.43597 29.816C8 28.9603 8 27.8402 8 25.6V14.4ZM28 20C28 23.3137 25.3137 26 22 26C18.6954 26 16.0148 23.3285 16.0001 20.0274V20H28Z" fill="#0033FF"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 6.4 KiB |
+813
-179
File diff suppressed because it is too large
Load Diff
+509
-124
@@ -29,6 +29,7 @@ definitions:
|
||||
label:
|
||||
type: string
|
||||
value:
|
||||
minimum: 1
|
||||
type: integer
|
||||
type: object
|
||||
handler.RespBody:
|
||||
@@ -357,11 +358,11 @@ definitions:
|
||||
type: object
|
||||
schema.CollectionSwitchReq:
|
||||
properties:
|
||||
bookmark:
|
||||
type: boolean
|
||||
group_id:
|
||||
description: user collection group TagID
|
||||
type: string
|
||||
object_id:
|
||||
description: object TagID
|
||||
type: string
|
||||
required:
|
||||
- group_id
|
||||
@@ -370,11 +371,7 @@ definitions:
|
||||
schema.CollectionSwitchResp:
|
||||
properties:
|
||||
object_collection_count:
|
||||
type: string
|
||||
object_id:
|
||||
type: string
|
||||
switch:
|
||||
type: boolean
|
||||
type: integer
|
||||
type: object
|
||||
schema.ConfigField:
|
||||
properties:
|
||||
@@ -407,6 +404,10 @@ definitions:
|
||||
properties:
|
||||
action:
|
||||
$ref: '#/definitions/schema.UIOptionAction'
|
||||
class_name:
|
||||
type: string
|
||||
field_class_name:
|
||||
type: string
|
||||
input_type:
|
||||
type: string
|
||||
label:
|
||||
@@ -607,6 +608,9 @@ definitions:
|
||||
bio_html:
|
||||
description: bio html
|
||||
type: string
|
||||
color_scheme:
|
||||
description: Color scheme
|
||||
type: string
|
||||
created_at:
|
||||
description: create time
|
||||
type: integer
|
||||
@@ -658,6 +662,9 @@ definitions:
|
||||
username:
|
||||
description: username
|
||||
type: string
|
||||
visit_token:
|
||||
description: visit token
|
||||
type: string
|
||||
website:
|
||||
description: website
|
||||
type: string
|
||||
@@ -829,28 +836,84 @@ definitions:
|
||||
description: url title
|
||||
type: string
|
||||
type: object
|
||||
schema.GetReportListPageResp:
|
||||
properties:
|
||||
answer_accepted:
|
||||
type: boolean
|
||||
answer_count:
|
||||
type: integer
|
||||
answer_id:
|
||||
type: string
|
||||
author_user_info:
|
||||
$ref: '#/definitions/schema.UserBasicInfo'
|
||||
comment_id:
|
||||
type: string
|
||||
created_at:
|
||||
type: integer
|
||||
flag_id:
|
||||
type: string
|
||||
object_id:
|
||||
type: string
|
||||
object_show_status:
|
||||
type: integer
|
||||
object_status:
|
||||
type: integer
|
||||
object_type:
|
||||
enum:
|
||||
- question
|
||||
- answer
|
||||
- comment
|
||||
type: string
|
||||
original_text:
|
||||
type: string
|
||||
parsed_text:
|
||||
type: string
|
||||
question_id:
|
||||
type: string
|
||||
reason:
|
||||
$ref: '#/definitions/schema.ReasonItem'
|
||||
reason_content:
|
||||
type: string
|
||||
submit_at:
|
||||
type: integer
|
||||
submitter_user:
|
||||
$ref: '#/definitions/schema.UserBasicInfo'
|
||||
tags:
|
||||
items:
|
||||
$ref: '#/definitions/schema.TagResp'
|
||||
type: array
|
||||
title:
|
||||
type: string
|
||||
url_title:
|
||||
type: string
|
||||
type: object
|
||||
schema.GetReviewingTypeResp:
|
||||
properties:
|
||||
label:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
todo_amount:
|
||||
type: integer
|
||||
type: object
|
||||
schema.GetRevisionResp:
|
||||
properties:
|
||||
content:
|
||||
description: content parsed
|
||||
content: {}
|
||||
create_at:
|
||||
type: integer
|
||||
id:
|
||||
description: id
|
||||
type: string
|
||||
object_id:
|
||||
description: object id
|
||||
type: string
|
||||
reason:
|
||||
type: string
|
||||
status:
|
||||
description: 'revision status(normal: 1; delete 2)'
|
||||
type: integer
|
||||
title:
|
||||
description: title
|
||||
type: string
|
||||
url_title:
|
||||
type: string
|
||||
use_id:
|
||||
description: user id
|
||||
type: string
|
||||
user_info:
|
||||
$ref: '#/definitions/schema.UserBasicInfo'
|
||||
@@ -941,53 +1004,42 @@ definitions:
|
||||
schema.GetTagResp:
|
||||
properties:
|
||||
created_at:
|
||||
description: created time
|
||||
type: integer
|
||||
description:
|
||||
description: description text
|
||||
type: string
|
||||
display_name:
|
||||
description: display name
|
||||
type: string
|
||||
excerpt:
|
||||
description: excerpt
|
||||
type: string
|
||||
follow_count:
|
||||
description: follower amount
|
||||
type: integer
|
||||
is_follower:
|
||||
description: is follower
|
||||
type: boolean
|
||||
main_tag_slug_name:
|
||||
description: if main tag slug name is not empty, this tag is synonymous with
|
||||
the main tag
|
||||
type: string
|
||||
member_actions:
|
||||
description: MemberActions
|
||||
items:
|
||||
$ref: '#/definitions/schema.PermissionMemberAction'
|
||||
type: array
|
||||
original_text:
|
||||
description: original text
|
||||
type: string
|
||||
parsed_text:
|
||||
description: parsed text
|
||||
type: string
|
||||
question_count:
|
||||
description: question amount
|
||||
type: integer
|
||||
recommend:
|
||||
type: boolean
|
||||
reserved:
|
||||
type: boolean
|
||||
slug_name:
|
||||
description: slug name
|
||||
type: string
|
||||
status:
|
||||
type: string
|
||||
tag_id:
|
||||
description: tag id
|
||||
type: string
|
||||
updated_at:
|
||||
description: updated time
|
||||
type: integer
|
||||
type: object
|
||||
schema.GetTagSynonymsResp:
|
||||
@@ -1003,6 +1055,51 @@ definitions:
|
||||
$ref: '#/definitions/schema.TagSynonym'
|
||||
type: array
|
||||
type: object
|
||||
schema.GetUnreviewedPostPageResp:
|
||||
properties:
|
||||
answer_id:
|
||||
type: string
|
||||
author_user_info:
|
||||
$ref: '#/definitions/schema.UserBasicInfo'
|
||||
comment_id:
|
||||
type: string
|
||||
created_at:
|
||||
type: integer
|
||||
object_id:
|
||||
type: string
|
||||
object_show_status:
|
||||
type: integer
|
||||
object_status:
|
||||
type: integer
|
||||
object_type:
|
||||
enum:
|
||||
- question
|
||||
- answer
|
||||
- comment
|
||||
type: string
|
||||
original_text:
|
||||
type: string
|
||||
parsed_text:
|
||||
type: string
|
||||
question_id:
|
||||
type: string
|
||||
reason:
|
||||
type: string
|
||||
review_id:
|
||||
type: integer
|
||||
submit_at:
|
||||
type: integer
|
||||
submitter_display_name:
|
||||
type: string
|
||||
tags:
|
||||
items:
|
||||
$ref: '#/definitions/schema.TagResp'
|
||||
type: array
|
||||
title:
|
||||
type: string
|
||||
url_title:
|
||||
type: string
|
||||
type: object
|
||||
schema.GetUnreviewedRevisionResp:
|
||||
properties:
|
||||
info:
|
||||
@@ -1020,17 +1117,11 @@ definitions:
|
||||
schema.GetUserNotificationConfigResp:
|
||||
properties:
|
||||
all_new_question:
|
||||
items:
|
||||
$ref: '#/definitions/schema.NotificationChannelConfig'
|
||||
type: array
|
||||
$ref: '#/definitions/schema.NotificationChannelConfig'
|
||||
all_new_question_for_following_tags:
|
||||
items:
|
||||
$ref: '#/definitions/schema.NotificationChannelConfig'
|
||||
type: array
|
||||
$ref: '#/definitions/schema.NotificationChannelConfig'
|
||||
inbox:
|
||||
items:
|
||||
$ref: '#/definitions/schema.NotificationChannelConfig'
|
||||
type: array
|
||||
$ref: '#/definitions/schema.NotificationChannelConfig'
|
||||
type: object
|
||||
schema.GetUserPageResp:
|
||||
properties:
|
||||
@@ -1071,6 +1162,13 @@ definitions:
|
||||
description: username
|
||||
type: string
|
||||
type: object
|
||||
schema.GetUserPluginListResp:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
slug_name:
|
||||
type: string
|
||||
type: object
|
||||
schema.GetVoteWithPageResp:
|
||||
properties:
|
||||
answer_id:
|
||||
@@ -1167,11 +1265,13 @@ definitions:
|
||||
- 1
|
||||
- 2
|
||||
- 3
|
||||
- 99
|
||||
type: integer
|
||||
x-enum-varnames:
|
||||
- PrivilegeLevel1
|
||||
- PrivilegeLevel2
|
||||
- PrivilegeLevel3
|
||||
- PrivilegeLevelCustom
|
||||
schema.PrivilegeOption:
|
||||
properties:
|
||||
level:
|
||||
@@ -1396,6 +1496,21 @@ definitions:
|
||||
required:
|
||||
- id
|
||||
type: object
|
||||
schema.ReasonItem:
|
||||
properties:
|
||||
content_type:
|
||||
type: string
|
||||
description:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
placeholder:
|
||||
type: string
|
||||
reason_key:
|
||||
type: string
|
||||
reason_type:
|
||||
type: integer
|
||||
type: object
|
||||
schema.RecoverAnswerReq:
|
||||
properties:
|
||||
answer_id:
|
||||
@@ -1460,17 +1575,37 @@ definitions:
|
||||
question_id:
|
||||
type: string
|
||||
type: object
|
||||
schema.ReportHandleReq:
|
||||
schema.ReviewReportReq:
|
||||
properties:
|
||||
flagged_content:
|
||||
close_msg:
|
||||
type: string
|
||||
flagged_type:
|
||||
close_type:
|
||||
type: integer
|
||||
id:
|
||||
content:
|
||||
maxLength: 65535
|
||||
minLength: 6
|
||||
type: string
|
||||
flag_id:
|
||||
type: string
|
||||
operation_type:
|
||||
enum:
|
||||
- edit_post
|
||||
- close_post
|
||||
- delete_post
|
||||
- unlist_post
|
||||
- ignore_report
|
||||
type: string
|
||||
tags:
|
||||
items:
|
||||
$ref: '#/definitions/schema.TagItem'
|
||||
type: array
|
||||
title:
|
||||
maxLength: 150
|
||||
minLength: 6
|
||||
type: string
|
||||
required:
|
||||
- flagged_type
|
||||
- id
|
||||
- flag_id
|
||||
- operation_type
|
||||
type: object
|
||||
schema.RevisionAuditReq:
|
||||
properties:
|
||||
@@ -1508,6 +1643,8 @@ definitions:
|
||||
type: array
|
||||
title:
|
||||
type: string
|
||||
url_title:
|
||||
type: string
|
||||
user_info:
|
||||
allOf:
|
||||
- $ref: '#/definitions/schema.SearchObjectUser'
|
||||
@@ -1623,6 +1760,8 @@ definitions:
|
||||
type: object
|
||||
schema.SiteGeneralReq:
|
||||
properties:
|
||||
check_update:
|
||||
type: boolean
|
||||
contact_email:
|
||||
maxLength: 512
|
||||
type: string
|
||||
@@ -1645,6 +1784,8 @@ definitions:
|
||||
type: object
|
||||
schema.SiteGeneralResp:
|
||||
properties:
|
||||
check_update:
|
||||
type: boolean
|
||||
contact_email:
|
||||
maxLength: 512
|
||||
type: string
|
||||
@@ -1683,6 +1824,8 @@ definitions:
|
||||
$ref: '#/definitions/schema.SiteSeoResp'
|
||||
site_users:
|
||||
$ref: '#/definitions/schema.SiteUsersResp'
|
||||
site_write:
|
||||
$ref: '#/definitions/schema.SiteWriteResp'
|
||||
theme:
|
||||
$ref: '#/definitions/schema.SiteThemeResp'
|
||||
version:
|
||||
@@ -1744,6 +1887,8 @@ definitions:
|
||||
type: boolean
|
||||
allow_new_registrations:
|
||||
type: boolean
|
||||
allow_password_login:
|
||||
type: boolean
|
||||
login_required:
|
||||
type: boolean
|
||||
type: object
|
||||
@@ -1757,6 +1902,8 @@ definitions:
|
||||
type: boolean
|
||||
allow_new_registrations:
|
||||
type: boolean
|
||||
allow_password_login:
|
||||
type: boolean
|
||||
login_required:
|
||||
type: boolean
|
||||
type: object
|
||||
@@ -1786,6 +1933,9 @@ definitions:
|
||||
type: object
|
||||
schema.SiteThemeReq:
|
||||
properties:
|
||||
color_scheme:
|
||||
maxLength: 100
|
||||
type: string
|
||||
theme:
|
||||
maxLength: 255
|
||||
type: string
|
||||
@@ -1797,6 +1947,8 @@ definitions:
|
||||
type: object
|
||||
schema.SiteThemeResp:
|
||||
properties:
|
||||
color_scheme:
|
||||
type: string
|
||||
theme:
|
||||
type: string
|
||||
theme_config:
|
||||
@@ -1867,6 +2019,8 @@ definitions:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
restrict_answer:
|
||||
type: boolean
|
||||
type: object
|
||||
schema.SiteWriteResp:
|
||||
properties:
|
||||
@@ -1880,6 +2034,8 @@ definitions:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
restrict_answer:
|
||||
type: boolean
|
||||
type: object
|
||||
schema.TagItem:
|
||||
properties:
|
||||
@@ -1946,18 +2102,40 @@ definitions:
|
||||
type: object
|
||||
schema.UnreviewedRevisionInfoInfo:
|
||||
properties:
|
||||
answer_accepted:
|
||||
type: boolean
|
||||
answer_count:
|
||||
type: integer
|
||||
answer_id:
|
||||
type: string
|
||||
comment_id:
|
||||
type: string
|
||||
content:
|
||||
type: string
|
||||
created_at:
|
||||
type: integer
|
||||
html:
|
||||
type: string
|
||||
object_creator_user_id:
|
||||
type: string
|
||||
object_id:
|
||||
type: string
|
||||
object_type:
|
||||
type: string
|
||||
question_id:
|
||||
type: string
|
||||
show_status:
|
||||
type: integer
|
||||
status:
|
||||
type: integer
|
||||
tags:
|
||||
items:
|
||||
$ref: '#/definitions/schema.TagResp'
|
||||
type: array
|
||||
title:
|
||||
type: string
|
||||
url_title:
|
||||
type: string
|
||||
type: object
|
||||
schema.UpdateCommentReq:
|
||||
properties:
|
||||
@@ -2029,14 +2207,30 @@ definitions:
|
||||
type: object
|
||||
schema.UpdatePrivilegesConfigReq:
|
||||
properties:
|
||||
custom_privileges:
|
||||
items:
|
||||
$ref: '#/definitions/constant.Privilege'
|
||||
type: array
|
||||
level:
|
||||
allOf:
|
||||
- $ref: '#/definitions/schema.PrivilegeLevel'
|
||||
maximum: 3
|
||||
minimum: 1
|
||||
required:
|
||||
- level
|
||||
type: object
|
||||
schema.UpdateReviewReq:
|
||||
properties:
|
||||
review_id:
|
||||
type: integer
|
||||
status:
|
||||
enum:
|
||||
- approve
|
||||
- reject
|
||||
type: string
|
||||
required:
|
||||
- review_id
|
||||
- status
|
||||
type: object
|
||||
schema.UpdateSMTPConfigReq:
|
||||
properties:
|
||||
encryption:
|
||||
@@ -2106,27 +2300,26 @@ definitions:
|
||||
type: object
|
||||
schema.UpdateUserInterfaceRequest:
|
||||
properties:
|
||||
color_scheme:
|
||||
description: Color scheme
|
||||
maxLength: 100
|
||||
type: string
|
||||
language:
|
||||
description: language
|
||||
maxLength: 100
|
||||
type: string
|
||||
required:
|
||||
- color_scheme
|
||||
- language
|
||||
type: object
|
||||
schema.UpdateUserNotificationConfigReq:
|
||||
properties:
|
||||
all_new_question:
|
||||
items:
|
||||
$ref: '#/definitions/schema.NotificationChannelConfig'
|
||||
type: array
|
||||
$ref: '#/definitions/schema.NotificationChannelConfig'
|
||||
all_new_question_for_following_tags:
|
||||
items:
|
||||
$ref: '#/definitions/schema.NotificationChannelConfig'
|
||||
type: array
|
||||
$ref: '#/definitions/schema.NotificationChannelConfig'
|
||||
inbox:
|
||||
items:
|
||||
$ref: '#/definitions/schema.NotificationChannelConfig'
|
||||
type: array
|
||||
$ref: '#/definitions/schema.NotificationChannelConfig'
|
||||
type: object
|
||||
schema.UpdateUserPasswordReq:
|
||||
properties:
|
||||
@@ -2140,6 +2333,17 @@ definitions:
|
||||
- password
|
||||
- user_id
|
||||
type: object
|
||||
schema.UpdateUserPluginConfigReq:
|
||||
properties:
|
||||
config_fields:
|
||||
additionalProperties: {}
|
||||
type: object
|
||||
plugin_slug_name:
|
||||
maxLength: 100
|
||||
type: string
|
||||
required:
|
||||
- plugin_slug_name
|
||||
type: object
|
||||
schema.UpdateUserRoleReq:
|
||||
properties:
|
||||
role_id:
|
||||
@@ -2177,6 +2381,8 @@ definitions:
|
||||
type: string
|
||||
id:
|
||||
type: string
|
||||
language:
|
||||
type: string
|
||||
location:
|
||||
type: string
|
||||
rank:
|
||||
@@ -2251,6 +2457,9 @@ definitions:
|
||||
bio_html:
|
||||
description: bio html
|
||||
type: string
|
||||
color_scheme:
|
||||
description: Color scheme
|
||||
type: string
|
||||
created_at:
|
||||
description: create time
|
||||
type: integer
|
||||
@@ -2302,6 +2511,9 @@ definitions:
|
||||
username:
|
||||
description: username
|
||||
type: string
|
||||
visit_token:
|
||||
description: visit token
|
||||
type: string
|
||||
website:
|
||||
description: website
|
||||
type: string
|
||||
@@ -2466,7 +2678,7 @@ paths:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Status:[available,deleted]
|
||||
description: Status:[available,deleted,pending]
|
||||
parameters:
|
||||
- description: page size
|
||||
in: query
|
||||
@@ -2480,6 +2692,7 @@ paths:
|
||||
enum:
|
||||
- available
|
||||
- deleted
|
||||
- pending
|
||||
in: query
|
||||
name: status
|
||||
type: string
|
||||
@@ -2667,7 +2880,7 @@ paths:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Status:[available,closed,deleted]
|
||||
description: Status:[available,closed,deleted,pending]
|
||||
parameters:
|
||||
- description: page size
|
||||
in: query
|
||||
@@ -2682,6 +2895,7 @@ paths:
|
||||
- available
|
||||
- closed
|
||||
- deleted
|
||||
- pending
|
||||
in: query
|
||||
name: status
|
||||
type: string
|
||||
@@ -2763,76 +2977,6 @@ paths:
|
||||
summary: get reasons by object type and action
|
||||
tags:
|
||||
- reason
|
||||
/answer/admin/api/report/:
|
||||
put:
|
||||
consumes:
|
||||
- application/json
|
||||
description: handle flag
|
||||
parameters:
|
||||
- description: flag
|
||||
in: body
|
||||
name: data
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/schema.ReportHandleReq'
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/handler.RespBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: handle flag
|
||||
tags:
|
||||
- admin
|
||||
/answer/admin/api/reports/page:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: list report records
|
||||
parameters:
|
||||
- description: status
|
||||
enum:
|
||||
- pending
|
||||
- completed
|
||||
in: query
|
||||
name: status
|
||||
required: true
|
||||
type: string
|
||||
- description: object_type
|
||||
enum:
|
||||
- all
|
||||
- question
|
||||
- answer
|
||||
- comment
|
||||
in: query
|
||||
name: object_type
|
||||
required: true
|
||||
type: string
|
||||
- description: page size
|
||||
in: query
|
||||
name: page
|
||||
type: integer
|
||||
- description: page size
|
||||
in: query
|
||||
name: page_size
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/handler.RespBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: list report page
|
||||
tags:
|
||||
- admin
|
||||
/answer/admin/api/roles:
|
||||
get:
|
||||
description: get role list
|
||||
@@ -4659,6 +4803,30 @@ paths:
|
||||
summary: get user personal votes
|
||||
tags:
|
||||
- Activity
|
||||
/answer/api/v1/plugin/status:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: get all plugins status
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: '#/definitions/handler.RespBody'
|
||||
- properties:
|
||||
data:
|
||||
items:
|
||||
$ref: '#/definitions/schema.GetPluginListResp'
|
||||
type: array
|
||||
type: object
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
summary: get all plugins status
|
||||
tags:
|
||||
- Plugin
|
||||
/answer/api/v1/post/render:
|
||||
post:
|
||||
consumes:
|
||||
@@ -5114,6 +5282,150 @@ paths:
|
||||
summary: add report
|
||||
tags:
|
||||
- Report
|
||||
/answer/api/v1/report/review:
|
||||
put:
|
||||
consumes:
|
||||
- application/json
|
||||
description: review report
|
||||
parameters:
|
||||
- description: flag
|
||||
in: body
|
||||
name: data
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/schema.ReviewReportReq'
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/handler.RespBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: review report
|
||||
tags:
|
||||
- Report
|
||||
/answer/api/v1/report/unreviewed/post:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: get unreviewed report post page
|
||||
parameters:
|
||||
- description: page
|
||||
in: query
|
||||
name: page
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: '#/definitions/handler.RespBody'
|
||||
- properties:
|
||||
data:
|
||||
allOf:
|
||||
- $ref: '#/definitions/pager.PageModel'
|
||||
- properties:
|
||||
list:
|
||||
items:
|
||||
$ref: '#/definitions/schema.GetReportListPageResp'
|
||||
type: array
|
||||
type: object
|
||||
type: object
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
summary: get unreviewed report post page
|
||||
tags:
|
||||
- Report
|
||||
/answer/api/v1/review/pending/post:
|
||||
put:
|
||||
consumes:
|
||||
- application/json
|
||||
description: update review
|
||||
parameters:
|
||||
- description: review
|
||||
in: body
|
||||
name: data
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/schema.UpdateReviewReq'
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/handler.RespBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: update review
|
||||
tags:
|
||||
- Review
|
||||
/answer/api/v1/review/pending/post/page:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: get unreviewed post page
|
||||
parameters:
|
||||
- description: page
|
||||
in: query
|
||||
name: page
|
||||
type: integer
|
||||
- description: object_id
|
||||
in: query
|
||||
name: object_id
|
||||
type: string
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: '#/definitions/handler.RespBody'
|
||||
- properties:
|
||||
data:
|
||||
allOf:
|
||||
- $ref: '#/definitions/pager.PageModel'
|
||||
- properties:
|
||||
list:
|
||||
items:
|
||||
$ref: '#/definitions/schema.GetUnreviewedPostPageResp'
|
||||
type: array
|
||||
type: object
|
||||
type: object
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
summary: get unreviewed post page
|
||||
tags:
|
||||
- Review
|
||||
/answer/api/v1/reviewing/type:
|
||||
get:
|
||||
description: get reviewing type
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: '#/definitions/handler.RespBody'
|
||||
- properties:
|
||||
data:
|
||||
items:
|
||||
$ref: '#/definitions/schema.GetReviewingTypeResp'
|
||||
type: array
|
||||
type: object
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
summary: get reviewing type
|
||||
tags:
|
||||
- Revision
|
||||
/answer/api/v1/revisions:
|
||||
get:
|
||||
description: get revision list
|
||||
@@ -5983,6 +6295,79 @@ paths:
|
||||
summary: RetrievePassWord
|
||||
tags:
|
||||
- User
|
||||
/answer/api/v1/user/plugin/config:
|
||||
get:
|
||||
description: get user plugin config
|
||||
parameters:
|
||||
- description: plugin_slug_name
|
||||
in: query
|
||||
name: plugin_slug_name
|
||||
required: true
|
||||
type: string
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: '#/definitions/handler.RespBody'
|
||||
- properties:
|
||||
data:
|
||||
$ref: '#/definitions/schema.GetPluginConfigResp'
|
||||
type: object
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
summary: get user plugin config
|
||||
tags:
|
||||
- UserPlugin
|
||||
put:
|
||||
consumes:
|
||||
- application/json
|
||||
description: update user plugin config
|
||||
parameters:
|
||||
- description: UpdatePluginConfigReq
|
||||
in: body
|
||||
name: data
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/schema.UpdateUserPluginConfigReq'
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/handler.RespBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
summary: update user plugin config
|
||||
tags:
|
||||
- UserPlugin
|
||||
/answer/api/v1/user/plugin/configs:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: get plugin list that used for user.
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: '#/definitions/handler.RespBody'
|
||||
- properties:
|
||||
data:
|
||||
items:
|
||||
$ref: '#/definitions/schema.GetUserPluginListResp'
|
||||
type: array
|
||||
type: object
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
summary: get plugin list that used for user.
|
||||
tags:
|
||||
- UserPlugin
|
||||
/answer/api/v1/user/ranking:
|
||||
get:
|
||||
consumes:
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
module github.com/apache/incubator-answer
|
||||
|
||||
go 1.18
|
||||
@@ -24,7 +41,7 @@ require (
|
||||
github.com/jinzhu/now v1.1.5
|
||||
github.com/lib/pq v1.10.7
|
||||
github.com/microcosm-cc/bluemonday v1.0.21
|
||||
github.com/mojocn/base64Captcha v1.3.5
|
||||
github.com/mojocn/base64Captcha v1.3.6
|
||||
github.com/ory/dockertest/v3 v3.10.0
|
||||
github.com/robfig/cron/v3 v3.0.1
|
||||
github.com/scottleedavis/go-exif-remove v0.0.0-20230314195146-7e059d593405
|
||||
@@ -41,9 +58,9 @@ require (
|
||||
github.com/swaggo/swag v1.16.1
|
||||
github.com/tidwall/gjson v1.14.4
|
||||
github.com/yuin/goldmark v1.4.13
|
||||
golang.org/x/crypto v0.13.0
|
||||
golang.org/x/image v0.1.0
|
||||
golang.org/x/net v0.15.0
|
||||
golang.org/x/crypto v0.21.0
|
||||
golang.org/x/image v0.13.0
|
||||
golang.org/x/net v0.21.0
|
||||
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
modernc.org/sqlite v1.24.0
|
||||
@@ -86,7 +103,6 @@ require (
|
||||
github.com/golang/geo v0.0.0-20190812012225-f41920e961ce // indirect
|
||||
github.com/golang/snappy v0.0.4 // indirect
|
||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
|
||||
github.com/google/subcommands v1.0.1 // indirect
|
||||
github.com/gorilla/css v1.0.0 // indirect
|
||||
github.com/hashicorp/hcl v1.0.0 // indirect
|
||||
github.com/imdario/mergo v0.3.16 // indirect
|
||||
@@ -134,8 +150,8 @@ require (
|
||||
go.uber.org/zap v1.23.0 // indirect
|
||||
golang.org/x/arch v0.3.0 // indirect
|
||||
golang.org/x/mod v0.12.0 // indirect
|
||||
golang.org/x/sys v0.12.0 // indirect
|
||||
golang.org/x/text v0.13.0 // indirect
|
||||
golang.org/x/sys v0.18.0 // indirect
|
||||
golang.org/x/text v0.14.0 // indirect
|
||||
golang.org/x/tools v0.13.0 // indirect
|
||||
google.golang.org/protobuf v1.30.0 // indirect
|
||||
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
|
||||
|
||||
@@ -316,7 +316,6 @@ github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbu
|
||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
|
||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
|
||||
github.com/google/subcommands v1.0.1 h1:/eqq+otEXm5vhfBrbREPCSVQbvofip6kIz+mX5TUH7k=
|
||||
github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk=
|
||||
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
@@ -525,8 +524,8 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN
|
||||
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
|
||||
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||
github.com/mojocn/base64Captcha v1.3.5 h1:Qeilr7Ta6eDtG4S+tQuZ5+hO+QHbiGAJdi4PfoagaA0=
|
||||
github.com/mojocn/base64Captcha v1.3.5/go.mod h1:/tTTXn4WTpX9CfrmipqRytCpJ27Uw3G6I7NcP2WwcmY=
|
||||
github.com/mojocn/base64Captcha v1.3.6 h1:gZEKu1nsKpttuIAQgWHO+4Mhhls8cAKyiV2Ew03H+Tw=
|
||||
github.com/mojocn/base64Captcha v1.3.6/go.mod h1:i5CtHvm+oMbj1UzEPXaA8IH/xHFZ3DGY3Wh3dBpZ28E=
|
||||
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
||||
github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg=
|
||||
github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU=
|
||||
@@ -789,8 +788,8 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y
|
||||
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck=
|
||||
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
|
||||
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
|
||||
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||
@@ -802,11 +801,10 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0
|
||||
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
|
||||
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
|
||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||
golang.org/x/image v0.0.0-20190501045829-6d32002ffd75/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||
golang.org/x/image v0.1.0 h1:r8Oj8ZA2Xy12/b5KZYj3tuv7NG/fBz3TwQVvpJ9l8Rk=
|
||||
golang.org/x/image v0.1.0/go.mod h1:iyPr49SD/G/TBxYVB/9RRtGUT5eNbo2u4NamWeQcD5c=
|
||||
golang.org/x/image v0.13.0 h1:3cge/F/QTkNLauhf2QoE9zp+7sr+ZcL4HnoZmdwg9sg=
|
||||
golang.org/x/image v0.13.0/go.mod h1:6mmbMOeV28HuMTgA6OSRkdXKYw/t5W9Uwn2Yv1r3Yxk=
|
||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
@@ -830,6 +828,7 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
|
||||
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
@@ -877,9 +876,10 @@ golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qx
|
||||
golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
|
||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8=
|
||||
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
|
||||
golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
|
||||
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
@@ -901,6 +901,7 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
|
||||
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
|
||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
@@ -971,8 +972,8 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
|
||||
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
|
||||
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
@@ -988,8 +989,9 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
|
||||
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
@@ -1056,6 +1058,7 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
|
||||
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||
golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ=
|
||||
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
|
||||
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
|
||||
+3
-3
@@ -360,7 +360,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -433,7 +433,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -471,7 +471,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
+3
-3
@@ -360,7 +360,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -433,7 +433,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -471,7 +471,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
+3
-3
@@ -355,7 +355,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -428,7 +428,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -466,7 +466,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
+3
-3
@@ -355,7 +355,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -428,7 +428,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -466,7 +466,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
+3
-3
@@ -355,7 +355,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -428,7 +428,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -466,7 +466,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
+3
-3
@@ -355,7 +355,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -428,7 +428,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -466,7 +466,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
+3
-3
@@ -355,7 +355,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -428,7 +428,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -466,7 +466,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
+3
-3
@@ -360,7 +360,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -433,7 +433,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -471,7 +471,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
+126
-38
@@ -15,7 +15,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
#The following fields are used for back-end
|
||||
# The following fields are used for back-end
|
||||
backend:
|
||||
base:
|
||||
success:
|
||||
@@ -82,6 +82,9 @@ backend:
|
||||
level_3:
|
||||
description:
|
||||
other: Level 3 (high reputation required for mature community)
|
||||
level_custom:
|
||||
description:
|
||||
other: Custom Level
|
||||
rank_question_add_label:
|
||||
other: Ask question
|
||||
rank_answer_add_label:
|
||||
@@ -137,6 +140,9 @@ backend:
|
||||
email_or_password_wrong_error:
|
||||
other: Email and password do not match.
|
||||
error:
|
||||
common:
|
||||
invalid_url:
|
||||
other: Invalid URL.
|
||||
password:
|
||||
space_invalid:
|
||||
other: Heslo nesmí obsahovat mezery.
|
||||
@@ -197,6 +203,8 @@ backend:
|
||||
question:
|
||||
already_deleted:
|
||||
other: This post has been deleted.
|
||||
under_review:
|
||||
other: Your post is awaiting review. It will be visible after it has been approved.
|
||||
not_found:
|
||||
other: Question not found.
|
||||
cannot_deleted:
|
||||
@@ -267,6 +275,8 @@ backend:
|
||||
other: You cannot modify your role.
|
||||
not_allowed_registration:
|
||||
other: Currently the site is not open for registration.
|
||||
not_allowed_login_via_password:
|
||||
other: Currently the site is not allowed to login via password.
|
||||
access_denied:
|
||||
other: Access denied
|
||||
page_access_denied:
|
||||
@@ -480,7 +490,16 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
edit:
|
||||
other: edit
|
||||
review:
|
||||
queued_post:
|
||||
other: Queued post
|
||||
flagged_post:
|
||||
other: Flagged post
|
||||
suggested_post_edit:
|
||||
other: Suggested edits
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: How to Format
|
||||
@@ -520,6 +539,7 @@ ui:
|
||||
http_404: HTTP Error 404
|
||||
http_50X: HTTP Error 500
|
||||
http_403: HTTP Error 403
|
||||
logout: Log Out
|
||||
notifications:
|
||||
title: Notifications
|
||||
inbox: Inbox
|
||||
@@ -598,7 +618,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description
|
||||
tab_url: Image URL
|
||||
@@ -660,6 +680,8 @@ ui:
|
||||
empty: Cannot be empty.
|
||||
msg:
|
||||
empty: Please select a reason.
|
||||
not_a_url: URL format is incorrect.
|
||||
url_not_match: URL origin does not match the current website.
|
||||
tag_modal:
|
||||
title: Create new tag
|
||||
form:
|
||||
@@ -678,6 +700,12 @@ ui:
|
||||
character: URL slug contains unallowed character set.
|
||||
desc:
|
||||
label: Description
|
||||
revision:
|
||||
label: Revision
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
btn_cancel: Cancel
|
||||
btn_submit: Submit
|
||||
btn_post: Post new tag
|
||||
@@ -704,21 +732,7 @@ ui:
|
||||
edit_tag:
|
||||
title: Edit Tag
|
||||
default_reason: Edit tag
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
label: Revision
|
||||
display_name:
|
||||
label: Display name
|
||||
slug_name:
|
||||
label: URL slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
default_first_reason: Add tag
|
||||
btn_save_edits: Save edits
|
||||
btn_cancel: Cancel
|
||||
dates:
|
||||
@@ -731,6 +745,8 @@ ui:
|
||||
x_hours_ago: "{{count}}h ago"
|
||||
hour: hour
|
||||
day: day
|
||||
hours: hours
|
||||
days: days
|
||||
comment:
|
||||
btn_add_comment: Add comment
|
||||
reply_to: Reply to
|
||||
@@ -740,7 +756,7 @@ ui:
|
||||
btn_flag: Flag
|
||||
btn_save_edits: Save edits
|
||||
btn_cancel: Cancel
|
||||
show_more: Show more comments
|
||||
show_more: "{{count}} more comments"
|
||||
tip_question: >-
|
||||
Use comments to ask for more information or suggest improvements. Avoid answering questions in comments.
|
||||
tip_answer: >-
|
||||
@@ -749,6 +765,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Edit Answer
|
||||
default_reason: Edit answer
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +796,7 @@ ui:
|
||||
title: Add Question
|
||||
edit_title: Edit Question
|
||||
default_reason: Edit question
|
||||
default_first_reason: Add question
|
||||
similar_questions: Similar questions
|
||||
form:
|
||||
fields:
|
||||
@@ -833,7 +851,7 @@ ui:
|
||||
placeholder: Search
|
||||
footer:
|
||||
build_on: >-
|
||||
Built on <1> Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
Powered by <1> Apache Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
upload_img:
|
||||
name: Change
|
||||
loading: loading...
|
||||
@@ -963,10 +981,10 @@ ui:
|
||||
label: Location
|
||||
placeholder: "City, Country"
|
||||
notification:
|
||||
heading: Notifications
|
||||
email: Email
|
||||
heading: Email Notifications
|
||||
turn_on: Turn on
|
||||
inbox:
|
||||
label: Email notifications
|
||||
label: Inbox notifications
|
||||
description: Answers to your questions, comments, invites, and more.
|
||||
all_new_question:
|
||||
label: All new questions
|
||||
@@ -1021,7 +1039,7 @@ ui:
|
||||
answers: answers
|
||||
invite_to_answer:
|
||||
title: People Asked
|
||||
desc: Invite people who you think might know the answer.
|
||||
desc: Select people who you think might know the answer.
|
||||
invite: Invite to answer
|
||||
add: Add people
|
||||
search: Search people
|
||||
@@ -1031,6 +1049,7 @@ ui:
|
||||
asked: asked
|
||||
update: Modified
|
||||
edit: edited
|
||||
commented: commented
|
||||
Views: Viewed
|
||||
Follow: Follow
|
||||
Following: Following
|
||||
@@ -1048,10 +1067,12 @@ ui:
|
||||
title: Answers
|
||||
score: Score
|
||||
newest: Newest
|
||||
oldest: Oldest
|
||||
btn_accept: Accept
|
||||
btn_accepted: Accepted
|
||||
write_answer:
|
||||
title: Your Answer
|
||||
edit_answer: Edit my existing answer
|
||||
btn_name: Post your answer
|
||||
add_another_answer: Add another answer
|
||||
confirm_title: Continue to answer
|
||||
@@ -1070,6 +1091,14 @@ ui:
|
||||
confirm_btn: Reopen
|
||||
title: Reopen this post
|
||||
content: Are you sure you want to reopen?
|
||||
list:
|
||||
confirm_btn: List
|
||||
title: List this post
|
||||
content: Are you sure you want to list?
|
||||
unlist:
|
||||
confirm_btn: Unlist
|
||||
title: Unlist this post
|
||||
content: Are you sure you want to unlist?
|
||||
pin:
|
||||
title: Pin this post
|
||||
content: Are you sure you wish to pinned globally? This post will appear at the top of all post lists.
|
||||
@@ -1091,6 +1120,9 @@ ui:
|
||||
save: Save
|
||||
delete: Delete
|
||||
undelete: Undelete
|
||||
list: List
|
||||
unlist: Unlist
|
||||
unlisted: Unlisted
|
||||
login: Log in
|
||||
signup: Sign up
|
||||
logout: Log out
|
||||
@@ -1114,6 +1146,20 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
tag: Tag
|
||||
post_lowercase: post
|
||||
filter: Filter
|
||||
ignore: Ignore
|
||||
submit: Submit
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
pending: Pending
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1399,35 @@ ui:
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
site_statistics: Site Statistics
|
||||
site_statistics: Site statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
comments: "Comments:"
|
||||
votes: "Votes:"
|
||||
active_users: "Active users:"
|
||||
users: "Users:"
|
||||
flags: "Flags:"
|
||||
site_health_status: Site Health Status
|
||||
reviews: "Reviews:"
|
||||
site_health: Site health
|
||||
version: "Version:"
|
||||
https: "HTTPS:"
|
||||
uploading_files: "Uploading files:"
|
||||
upload_folder: "Upload folder:"
|
||||
run_mode: "Running mode:"
|
||||
private: Private
|
||||
public: Public
|
||||
smtp: "SMTP:"
|
||||
timezone: "Timezone:"
|
||||
system_info: System Info
|
||||
system_info: System info
|
||||
go_version: "Go version:"
|
||||
database: "Database:"
|
||||
database_size: "Database size:"
|
||||
storage_used: "Storage used:"
|
||||
uptime: "Uptime:"
|
||||
answer_links: Answer Links
|
||||
links: Links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
forum: Forum
|
||||
documents: Documents
|
||||
feedback: Feedback
|
||||
support: Support
|
||||
@@ -1384,6 +1442,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1470,9 +1530,7 @@ ui:
|
||||
content: A suspended user can't log in.
|
||||
questions:
|
||||
page_title: Questions
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
unlisted: Unlisted
|
||||
post: Post
|
||||
votes: Votes
|
||||
answers: Answers
|
||||
@@ -1480,12 +1538,11 @@ ui:
|
||||
status: Status
|
||||
action: Action
|
||||
change: Change
|
||||
pending: Pending
|
||||
filter:
|
||||
placeholder: "Filter by title, question:id"
|
||||
answers:
|
||||
page_title: Answers
|
||||
normal: Normal
|
||||
deleted: Deleted
|
||||
post: Post
|
||||
votes: Votes
|
||||
created: Created
|
||||
@@ -1518,6 +1575,9 @@ ui:
|
||||
msg: Contact email cannot be empty.
|
||||
validate: Contact email is not valid.
|
||||
text: Email address of key contact responsible for this site.
|
||||
check_update:
|
||||
label: Software updates
|
||||
text: Automatically check for updates
|
||||
interface:
|
||||
page_title: Interface
|
||||
language:
|
||||
@@ -1594,6 +1654,10 @@ ui:
|
||||
text: "You can add privacy policy content here. If you already have a document hosted elsewhere, provide the full URL here."
|
||||
write:
|
||||
page_title: Write
|
||||
restrict_answer:
|
||||
title: Restrict answer
|
||||
label: Each user can only write one answer for each question
|
||||
text: "They can use the edit link to refine and improve their existing answer, instead."
|
||||
recommend_tags:
|
||||
label: Recommend tags
|
||||
text: "Please input tag slug above, one tag per line."
|
||||
@@ -1617,11 +1681,12 @@ ui:
|
||||
themes:
|
||||
label: Themes
|
||||
text: Select an existing theme.
|
||||
color_scheme:
|
||||
label: Color scheme
|
||||
navbar_style:
|
||||
label: Navbar Style
|
||||
text: Select an existing theme.
|
||||
label: Navbar style
|
||||
primary_color:
|
||||
label: Primary Color
|
||||
label: Primary color
|
||||
text: Modify the colors used by your themes
|
||||
css_and_html:
|
||||
page_title: CSS and HTML
|
||||
@@ -1660,6 +1725,10 @@ ui:
|
||||
title: Private
|
||||
label: Login required
|
||||
text: Only logged in users can access this community.
|
||||
password_login:
|
||||
title: Password login
|
||||
label: Allow email and password login
|
||||
text: "WARNING: If turn off, you may be unable to log in if you have not previously configured other login method."
|
||||
installed_plugins:
|
||||
title: Installed Plugins
|
||||
plugin_link: Plugins extend and expand the functionality of Answer. You may find plugins in the <1>Answer Plugin Repository</1>.
|
||||
@@ -1723,6 +1792,22 @@ ui:
|
||||
edit_answer: Edit answer
|
||||
edit_tag: Edit tag
|
||||
empty: No review tasks left.
|
||||
approve_revision_tip: Do you approve this revision?
|
||||
approve_flag_tip: Do you approve this flag?
|
||||
approve_post_tip: Do you approve this post?
|
||||
approve_user_tip: Do you approve this user?
|
||||
suggest_edits: Suggested edits
|
||||
flag_post: Flag post
|
||||
flag_user: Flag user
|
||||
queued_post: Queued post
|
||||
queued_user: Queued user
|
||||
filter_label: Type
|
||||
reputation: reputation
|
||||
flag_post_type: Flagged this post as {{ type }}.
|
||||
flag_user_type: Flagged this user as {{ type }}.
|
||||
edit_post: Edit post
|
||||
list_post: List post
|
||||
unlist_post: Unlist post
|
||||
timeline:
|
||||
undeleted: undeleted
|
||||
deleted: deleted
|
||||
@@ -1773,3 +1858,6 @@ ui:
|
||||
post_hide_list: This post has been hidden from list.
|
||||
post_show_list: This post has been shown to list.
|
||||
post_reopen: This post has been reopened.
|
||||
post_list: This post has been listed.
|
||||
post_unlist: This post has been unlisted.
|
||||
post_pending: Your post is awaiting review. This is a preview, it will be visible after it has been approved.
|
||||
|
||||
+126
-38
@@ -15,7 +15,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
#The following fields are used for back-end
|
||||
# The following fields are used for back-end
|
||||
backend:
|
||||
base:
|
||||
success:
|
||||
@@ -82,6 +82,9 @@ backend:
|
||||
level_3:
|
||||
description:
|
||||
other: Level 3 (high reputation required for mature community)
|
||||
level_custom:
|
||||
description:
|
||||
other: Custom Level
|
||||
rank_question_add_label:
|
||||
other: Ask question
|
||||
rank_answer_add_label:
|
||||
@@ -137,6 +140,9 @@ backend:
|
||||
email_or_password_wrong_error:
|
||||
other: Nid yw e-bost a chyfrinair yn cyfateb.
|
||||
error:
|
||||
common:
|
||||
invalid_url:
|
||||
other: Invalid URL.
|
||||
password:
|
||||
space_invalid:
|
||||
other: Password cannot contain spaces.
|
||||
@@ -197,6 +203,8 @@ backend:
|
||||
question:
|
||||
already_deleted:
|
||||
other: Mae'r postiad hwn wedi'i ddileu.
|
||||
under_review:
|
||||
other: Your post is awaiting review. It will be visible after it has been approved.
|
||||
not_found:
|
||||
other: Cwestiwn heb ei ganfod.
|
||||
cannot_deleted:
|
||||
@@ -267,6 +275,8 @@ backend:
|
||||
other: Ni allwch addasu eich rôl.
|
||||
not_allowed_registration:
|
||||
other: Currently the site is not open for registration.
|
||||
not_allowed_login_via_password:
|
||||
other: Currently the site is not allowed to login via password.
|
||||
access_denied:
|
||||
other: Access denied
|
||||
page_access_denied:
|
||||
@@ -480,7 +490,16 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
edit:
|
||||
other: edit
|
||||
review:
|
||||
queued_post:
|
||||
other: Queued post
|
||||
flagged_post:
|
||||
other: Flagged post
|
||||
suggested_post_edit:
|
||||
other: Suggested edits
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: Sut i Fformatio
|
||||
@@ -520,6 +539,7 @@ ui:
|
||||
http_404: Gwall HTTP 404
|
||||
http_50X: Gwall HTTP 500
|
||||
http_403: Gwall HTTP 403
|
||||
logout: Log Out
|
||||
notifications:
|
||||
title: Hysbysiadau
|
||||
inbox: Mewnflwch
|
||||
@@ -598,7 +618,7 @@ ui:
|
||||
msg:
|
||||
empty: Ni all ffeil fod yn wag.
|
||||
only_image: Dim ond ffeiliau delwedd a ganiateir.
|
||||
max_size: Ni all maint y ffeil fod yn fwy na 4MB.
|
||||
max_size: Ni all maint y ffeil fod yn fwy na 4 MB.
|
||||
desc:
|
||||
label: Disgrifiad
|
||||
tab_url: URL delwedd
|
||||
@@ -660,6 +680,8 @@ ui:
|
||||
empty: Ni all fod yn wag.
|
||||
msg:
|
||||
empty: Dewis rheswm.
|
||||
not_a_url: URL format is incorrect.
|
||||
url_not_match: URL origin does not match the current website.
|
||||
tag_modal:
|
||||
title: Creu tag newydd
|
||||
form:
|
||||
@@ -678,6 +700,12 @@ ui:
|
||||
character: Mae slug URL yn cynnwys set nodau na caniateir.
|
||||
desc:
|
||||
label: Disgrifiad
|
||||
revision:
|
||||
label: Revision
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
btn_cancel: Canslo
|
||||
btn_submit: Cyflwyno
|
||||
btn_post: Post tag newydd
|
||||
@@ -704,21 +732,7 @@ ui:
|
||||
edit_tag:
|
||||
title: Edit Tag
|
||||
default_reason: Edit tag
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
label: Revision
|
||||
display_name:
|
||||
label: Display name
|
||||
slug_name:
|
||||
label: URL slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
default_first_reason: Add tag
|
||||
btn_save_edits: Save edits
|
||||
btn_cancel: Cancel
|
||||
dates:
|
||||
@@ -731,6 +745,8 @@ ui:
|
||||
x_hours_ago: "{{count}}h ago"
|
||||
hour: hour
|
||||
day: day
|
||||
hours: hours
|
||||
days: days
|
||||
comment:
|
||||
btn_add_comment: Add comment
|
||||
reply_to: Reply to
|
||||
@@ -740,7 +756,7 @@ ui:
|
||||
btn_flag: Flag
|
||||
btn_save_edits: Save edits
|
||||
btn_cancel: Cancel
|
||||
show_more: Show more comments
|
||||
show_more: "{{count}} more comments"
|
||||
tip_question: >-
|
||||
Use comments to ask for more information or suggest improvements. Avoid answering questions in comments.
|
||||
tip_answer: >-
|
||||
@@ -749,6 +765,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Edit Answer
|
||||
default_reason: Edit answer
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +796,7 @@ ui:
|
||||
title: Ychwanegu Cwestiwn
|
||||
edit_title: Golygu Cwestiwn
|
||||
default_reason: Golygu Cwestiwn
|
||||
default_first_reason: Add question
|
||||
similar_questions: Cwestiynau tebyg
|
||||
form:
|
||||
fields:
|
||||
@@ -833,7 +851,7 @@ ui:
|
||||
placeholder: Search
|
||||
footer:
|
||||
build_on: >-
|
||||
Built on <1> Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
Powered by <1> Apache Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
upload_img:
|
||||
name: Change
|
||||
loading: loading...
|
||||
@@ -963,10 +981,10 @@ ui:
|
||||
label: Location
|
||||
placeholder: "City, Country"
|
||||
notification:
|
||||
heading: Notifications
|
||||
email: Email
|
||||
heading: Email Notifications
|
||||
turn_on: Turn on
|
||||
inbox:
|
||||
label: Email notifications
|
||||
label: Inbox notifications
|
||||
description: Answers to your questions, comments, invites, and more.
|
||||
all_new_question:
|
||||
label: All new questions
|
||||
@@ -1021,7 +1039,7 @@ ui:
|
||||
answers: answers
|
||||
invite_to_answer:
|
||||
title: People Asked
|
||||
desc: Invite people who you think might know the answer.
|
||||
desc: Select people who you think might know the answer.
|
||||
invite: Invite to answer
|
||||
add: Add people
|
||||
search: Search people
|
||||
@@ -1031,6 +1049,7 @@ ui:
|
||||
asked: asked
|
||||
update: Modified
|
||||
edit: edited
|
||||
commented: commented
|
||||
Views: Viewed
|
||||
Follow: Follow
|
||||
Following: Following
|
||||
@@ -1048,10 +1067,12 @@ ui:
|
||||
title: Answers
|
||||
score: Score
|
||||
newest: Newest
|
||||
oldest: Oldest
|
||||
btn_accept: Accept
|
||||
btn_accepted: Accepted
|
||||
write_answer:
|
||||
title: Your Answer
|
||||
edit_answer: Edit my existing answer
|
||||
btn_name: Post your answer
|
||||
add_another_answer: Add another answer
|
||||
confirm_title: Continue to answer
|
||||
@@ -1070,6 +1091,14 @@ ui:
|
||||
confirm_btn: Reopen
|
||||
title: Reopen this post
|
||||
content: Are you sure you want to reopen?
|
||||
list:
|
||||
confirm_btn: List
|
||||
title: List this post
|
||||
content: Are you sure you want to list?
|
||||
unlist:
|
||||
confirm_btn: Unlist
|
||||
title: Unlist this post
|
||||
content: Are you sure you want to unlist?
|
||||
pin:
|
||||
title: Pin this post
|
||||
content: Are you sure you wish to pinned globally? This post will appear at the top of all post lists.
|
||||
@@ -1091,6 +1120,9 @@ ui:
|
||||
save: Save
|
||||
delete: Delete
|
||||
undelete: Undelete
|
||||
list: List
|
||||
unlist: Unlist
|
||||
unlisted: Unlisted
|
||||
login: Log in
|
||||
signup: Sign up
|
||||
logout: Log out
|
||||
@@ -1114,6 +1146,20 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
tag: Tag
|
||||
post_lowercase: post
|
||||
filter: Filter
|
||||
ignore: Ignore
|
||||
submit: Submit
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
pending: Pending
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1399,35 @@ ui:
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
site_statistics: Site Statistics
|
||||
site_statistics: Site statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
comments: "Comments:"
|
||||
votes: "Votes:"
|
||||
active_users: "Active users:"
|
||||
users: "Users:"
|
||||
flags: "Flags:"
|
||||
site_health_status: Site Health Status
|
||||
reviews: "Reviews:"
|
||||
site_health: Site health
|
||||
version: "Version:"
|
||||
https: "HTTPS:"
|
||||
uploading_files: "Uploading files:"
|
||||
upload_folder: "Upload folder:"
|
||||
run_mode: "Running mode:"
|
||||
private: Private
|
||||
public: Public
|
||||
smtp: "SMTP:"
|
||||
timezone: "Timezone:"
|
||||
system_info: System Info
|
||||
system_info: System info
|
||||
go_version: "Go version:"
|
||||
database: "Database:"
|
||||
database_size: "Database size:"
|
||||
storage_used: "Storage used:"
|
||||
uptime: "Uptime:"
|
||||
answer_links: Answer Links
|
||||
links: Links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
forum: Forum
|
||||
documents: Documents
|
||||
feedback: Feedback
|
||||
support: Support
|
||||
@@ -1384,6 +1442,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1470,9 +1530,7 @@ ui:
|
||||
content: A suspended user can't log in.
|
||||
questions:
|
||||
page_title: Questions
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
unlisted: Unlisted
|
||||
post: Post
|
||||
votes: Votes
|
||||
answers: Answers
|
||||
@@ -1480,12 +1538,11 @@ ui:
|
||||
status: Status
|
||||
action: Action
|
||||
change: Change
|
||||
pending: Pending
|
||||
filter:
|
||||
placeholder: "Filter by title, question:id"
|
||||
answers:
|
||||
page_title: Answers
|
||||
normal: Normal
|
||||
deleted: Deleted
|
||||
post: Post
|
||||
votes: Votes
|
||||
created: Created
|
||||
@@ -1518,6 +1575,9 @@ ui:
|
||||
msg: Contact email cannot be empty.
|
||||
validate: Contact email is not valid.
|
||||
text: Email address of key contact responsible for this site.
|
||||
check_update:
|
||||
label: Software updates
|
||||
text: Automatically check for updates
|
||||
interface:
|
||||
page_title: Interface
|
||||
language:
|
||||
@@ -1594,6 +1654,10 @@ ui:
|
||||
text: "You can add privacy policy content here. If you already have a document hosted elsewhere, provide the full URL here."
|
||||
write:
|
||||
page_title: Write
|
||||
restrict_answer:
|
||||
title: Restrict answer
|
||||
label: Each user can only write one answer for each question
|
||||
text: "They can use the edit link to refine and improve their existing answer, instead."
|
||||
recommend_tags:
|
||||
label: Recommend tags
|
||||
text: "Please input tag slug above, one tag per line."
|
||||
@@ -1617,11 +1681,12 @@ ui:
|
||||
themes:
|
||||
label: Themes
|
||||
text: Select an existing theme.
|
||||
color_scheme:
|
||||
label: Color scheme
|
||||
navbar_style:
|
||||
label: Navbar Style
|
||||
text: Select an existing theme.
|
||||
label: Navbar style
|
||||
primary_color:
|
||||
label: Primary Color
|
||||
label: Primary color
|
||||
text: Modify the colors used by your themes
|
||||
css_and_html:
|
||||
page_title: CSS and HTML
|
||||
@@ -1660,6 +1725,10 @@ ui:
|
||||
title: Private
|
||||
label: Login required
|
||||
text: Only logged in users can access this community.
|
||||
password_login:
|
||||
title: Password login
|
||||
label: Allow email and password login
|
||||
text: "WARNING: If turn off, you may be unable to log in if you have not previously configured other login method."
|
||||
installed_plugins:
|
||||
title: Installed Plugins
|
||||
plugin_link: Plugins extend and expand the functionality of Answer. You may find plugins in the <1>Answer Plugin Repository</1>.
|
||||
@@ -1723,6 +1792,22 @@ ui:
|
||||
edit_answer: Edit answer
|
||||
edit_tag: Edit tag
|
||||
empty: No review tasks left.
|
||||
approve_revision_tip: Do you approve this revision?
|
||||
approve_flag_tip: Do you approve this flag?
|
||||
approve_post_tip: Do you approve this post?
|
||||
approve_user_tip: Do you approve this user?
|
||||
suggest_edits: Suggested edits
|
||||
flag_post: Flag post
|
||||
flag_user: Flag user
|
||||
queued_post: Queued post
|
||||
queued_user: Queued user
|
||||
filter_label: Type
|
||||
reputation: reputation
|
||||
flag_post_type: Flagged this post as {{ type }}.
|
||||
flag_user_type: Flagged this user as {{ type }}.
|
||||
edit_post: Edit post
|
||||
list_post: List post
|
||||
unlist_post: Unlist post
|
||||
timeline:
|
||||
undeleted: undeleted
|
||||
deleted: deleted
|
||||
@@ -1773,3 +1858,6 @@ ui:
|
||||
post_hide_list: This post has been hidden from list.
|
||||
post_show_list: This post has been shown to list.
|
||||
post_reopen: This post has been reopened.
|
||||
post_list: This post has been listed.
|
||||
post_unlist: This post has been unlisted.
|
||||
post_pending: Your post is awaiting review. This is a preview, it will be visible after it has been approved.
|
||||
|
||||
+126
-38
@@ -15,7 +15,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
#The following fields are used for back-end
|
||||
# The following fields are used for back-end
|
||||
backend:
|
||||
base:
|
||||
success:
|
||||
@@ -82,6 +82,9 @@ backend:
|
||||
level_3:
|
||||
description:
|
||||
other: Level 3 (high reputation required for mature community)
|
||||
level_custom:
|
||||
description:
|
||||
other: Custom Level
|
||||
rank_question_add_label:
|
||||
other: Ask question
|
||||
rank_answer_add_label:
|
||||
@@ -137,6 +140,9 @@ backend:
|
||||
email_or_password_wrong_error:
|
||||
other: Email and password do not match.
|
||||
error:
|
||||
common:
|
||||
invalid_url:
|
||||
other: Invalid URL.
|
||||
password:
|
||||
space_invalid:
|
||||
other: Password cannot contain spaces.
|
||||
@@ -197,6 +203,8 @@ backend:
|
||||
question:
|
||||
already_deleted:
|
||||
other: This post has been deleted.
|
||||
under_review:
|
||||
other: Your post is awaiting review. It will be visible after it has been approved.
|
||||
not_found:
|
||||
other: Question not found.
|
||||
cannot_deleted:
|
||||
@@ -267,6 +275,8 @@ backend:
|
||||
other: You cannot modify your role.
|
||||
not_allowed_registration:
|
||||
other: Currently the site is not open for registration.
|
||||
not_allowed_login_via_password:
|
||||
other: Currently the site is not allowed to login via password.
|
||||
access_denied:
|
||||
other: Access denied
|
||||
page_access_denied:
|
||||
@@ -480,7 +490,16 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
edit:
|
||||
other: edit
|
||||
review:
|
||||
queued_post:
|
||||
other: Queued post
|
||||
flagged_post:
|
||||
other: Flagged post
|
||||
suggested_post_edit:
|
||||
other: Suggested edits
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: How to Format
|
||||
@@ -520,6 +539,7 @@ ui:
|
||||
http_404: HTTP Error 404
|
||||
http_50X: HTTP Error 500
|
||||
http_403: HTTP Error 403
|
||||
logout: Log Out
|
||||
notifications:
|
||||
title: Notifications
|
||||
inbox: Inbox
|
||||
@@ -598,7 +618,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description
|
||||
tab_url: Image URL
|
||||
@@ -660,6 +680,8 @@ ui:
|
||||
empty: Cannot be empty.
|
||||
msg:
|
||||
empty: Please select a reason.
|
||||
not_a_url: URL format is incorrect.
|
||||
url_not_match: URL origin does not match the current website.
|
||||
tag_modal:
|
||||
title: Create new tag
|
||||
form:
|
||||
@@ -678,6 +700,12 @@ ui:
|
||||
character: URL slug contains unallowed character set.
|
||||
desc:
|
||||
label: Description
|
||||
revision:
|
||||
label: Revision
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
btn_cancel: Cancel
|
||||
btn_submit: Submit
|
||||
btn_post: Post new tag
|
||||
@@ -704,21 +732,7 @@ ui:
|
||||
edit_tag:
|
||||
title: Edit Tag
|
||||
default_reason: Edit tag
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
label: Revision
|
||||
display_name:
|
||||
label: Display name
|
||||
slug_name:
|
||||
label: URL slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
default_first_reason: Add tag
|
||||
btn_save_edits: Save edits
|
||||
btn_cancel: Cancel
|
||||
dates:
|
||||
@@ -731,6 +745,8 @@ ui:
|
||||
x_hours_ago: "{{count}}h ago"
|
||||
hour: hour
|
||||
day: day
|
||||
hours: hours
|
||||
days: days
|
||||
comment:
|
||||
btn_add_comment: Add comment
|
||||
reply_to: Reply to
|
||||
@@ -740,7 +756,7 @@ ui:
|
||||
btn_flag: Flag
|
||||
btn_save_edits: Save edits
|
||||
btn_cancel: Cancel
|
||||
show_more: Show more comments
|
||||
show_more: "{{count}} more comments"
|
||||
tip_question: >-
|
||||
Use comments to ask for more information or suggest improvements. Avoid answering questions in comments.
|
||||
tip_answer: >-
|
||||
@@ -749,6 +765,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Edit Answer
|
||||
default_reason: Edit answer
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +796,7 @@ ui:
|
||||
title: Add Question
|
||||
edit_title: Edit Question
|
||||
default_reason: Edit question
|
||||
default_first_reason: Add question
|
||||
similar_questions: Similar questions
|
||||
form:
|
||||
fields:
|
||||
@@ -833,7 +851,7 @@ ui:
|
||||
placeholder: Search
|
||||
footer:
|
||||
build_on: >-
|
||||
Built on <1> Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
Powered by <1> Apache Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
upload_img:
|
||||
name: Change
|
||||
loading: loading...
|
||||
@@ -963,10 +981,10 @@ ui:
|
||||
label: Location
|
||||
placeholder: "City, Country"
|
||||
notification:
|
||||
heading: Notifications
|
||||
email: Email
|
||||
heading: Email Notifications
|
||||
turn_on: Turn on
|
||||
inbox:
|
||||
label: Email notifications
|
||||
label: Inbox notifications
|
||||
description: Answers to your questions, comments, invites, and more.
|
||||
all_new_question:
|
||||
label: All new questions
|
||||
@@ -1021,7 +1039,7 @@ ui:
|
||||
answers: answers
|
||||
invite_to_answer:
|
||||
title: People Asked
|
||||
desc: Invite people who you think might know the answer.
|
||||
desc: Select people who you think might know the answer.
|
||||
invite: Invite to answer
|
||||
add: Add people
|
||||
search: Search people
|
||||
@@ -1031,6 +1049,7 @@ ui:
|
||||
asked: asked
|
||||
update: Modified
|
||||
edit: edited
|
||||
commented: commented
|
||||
Views: Viewed
|
||||
Follow: Follow
|
||||
Following: Following
|
||||
@@ -1048,10 +1067,12 @@ ui:
|
||||
title: Answers
|
||||
score: Score
|
||||
newest: Newest
|
||||
oldest: Oldest
|
||||
btn_accept: Accept
|
||||
btn_accepted: Accepted
|
||||
write_answer:
|
||||
title: Your Answer
|
||||
edit_answer: Edit my existing answer
|
||||
btn_name: Post your answer
|
||||
add_another_answer: Add another answer
|
||||
confirm_title: Continue to answer
|
||||
@@ -1070,6 +1091,14 @@ ui:
|
||||
confirm_btn: Reopen
|
||||
title: Reopen this post
|
||||
content: Are you sure you want to reopen?
|
||||
list:
|
||||
confirm_btn: List
|
||||
title: List this post
|
||||
content: Are you sure you want to list?
|
||||
unlist:
|
||||
confirm_btn: Unlist
|
||||
title: Unlist this post
|
||||
content: Are you sure you want to unlist?
|
||||
pin:
|
||||
title: Pin this post
|
||||
content: Are you sure you wish to pinned globally? This post will appear at the top of all post lists.
|
||||
@@ -1091,6 +1120,9 @@ ui:
|
||||
save: Save
|
||||
delete: Delete
|
||||
undelete: Undelete
|
||||
list: List
|
||||
unlist: Unlist
|
||||
unlisted: Unlisted
|
||||
login: Log in
|
||||
signup: Sign up
|
||||
logout: Log out
|
||||
@@ -1114,6 +1146,20 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
tag: Tag
|
||||
post_lowercase: post
|
||||
filter: Filter
|
||||
ignore: Ignore
|
||||
submit: Submit
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
pending: Pending
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1399,35 @@ ui:
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
site_statistics: Site Statistics
|
||||
site_statistics: Site statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
comments: "Comments:"
|
||||
votes: "Votes:"
|
||||
active_users: "Active users:"
|
||||
users: "Users:"
|
||||
flags: "Flags:"
|
||||
site_health_status: Site Health Status
|
||||
reviews: "Reviews:"
|
||||
site_health: Site health
|
||||
version: "Version:"
|
||||
https: "HTTPS:"
|
||||
uploading_files: "Uploading files:"
|
||||
upload_folder: "Upload folder:"
|
||||
run_mode: "Running mode:"
|
||||
private: Private
|
||||
public: Public
|
||||
smtp: "SMTP:"
|
||||
timezone: "Timezone:"
|
||||
system_info: System Info
|
||||
system_info: System info
|
||||
go_version: "Go version:"
|
||||
database: "Database:"
|
||||
database_size: "Database size:"
|
||||
storage_used: "Storage used:"
|
||||
uptime: "Uptime:"
|
||||
answer_links: Answer Links
|
||||
links: Links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
forum: Forum
|
||||
documents: Documents
|
||||
feedback: Feedback
|
||||
support: Support
|
||||
@@ -1384,6 +1442,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1470,9 +1530,7 @@ ui:
|
||||
content: A suspended user can't log in.
|
||||
questions:
|
||||
page_title: Questions
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
unlisted: Unlisted
|
||||
post: Post
|
||||
votes: Votes
|
||||
answers: Answers
|
||||
@@ -1480,12 +1538,11 @@ ui:
|
||||
status: Status
|
||||
action: Action
|
||||
change: Change
|
||||
pending: Pending
|
||||
filter:
|
||||
placeholder: "Filter by title, question:id"
|
||||
answers:
|
||||
page_title: Answers
|
||||
normal: Normal
|
||||
deleted: Deleted
|
||||
post: Post
|
||||
votes: Votes
|
||||
created: Created
|
||||
@@ -1518,6 +1575,9 @@ ui:
|
||||
msg: Contact email cannot be empty.
|
||||
validate: Contact email is not valid.
|
||||
text: Email address of key contact responsible for this site.
|
||||
check_update:
|
||||
label: Software updates
|
||||
text: Automatically check for updates
|
||||
interface:
|
||||
page_title: Interface
|
||||
language:
|
||||
@@ -1594,6 +1654,10 @@ ui:
|
||||
text: "You can add privacy policy content here. If you already have a document hosted elsewhere, provide the full URL here."
|
||||
write:
|
||||
page_title: Write
|
||||
restrict_answer:
|
||||
title: Restrict answer
|
||||
label: Each user can only write one answer for each question
|
||||
text: "They can use the edit link to refine and improve their existing answer, instead."
|
||||
recommend_tags:
|
||||
label: Recommend tags
|
||||
text: "Please input tag slug above, one tag per line."
|
||||
@@ -1617,11 +1681,12 @@ ui:
|
||||
themes:
|
||||
label: Themes
|
||||
text: Select an existing theme.
|
||||
color_scheme:
|
||||
label: Color scheme
|
||||
navbar_style:
|
||||
label: Navbar Style
|
||||
text: Select an existing theme.
|
||||
label: Navbar style
|
||||
primary_color:
|
||||
label: Primary Color
|
||||
label: Primary color
|
||||
text: Modify the colors used by your themes
|
||||
css_and_html:
|
||||
page_title: CSS and HTML
|
||||
@@ -1660,6 +1725,10 @@ ui:
|
||||
title: Private
|
||||
label: Login required
|
||||
text: Only logged in users can access this community.
|
||||
password_login:
|
||||
title: Password login
|
||||
label: Allow email and password login
|
||||
text: "WARNING: If turn off, you may be unable to log in if you have not previously configured other login method."
|
||||
installed_plugins:
|
||||
title: Installed Plugins
|
||||
plugin_link: Plugins extend and expand the functionality of Answer. You may find plugins in the <1>Answer Plugin Repository</1>.
|
||||
@@ -1723,6 +1792,22 @@ ui:
|
||||
edit_answer: Edit answer
|
||||
edit_tag: Edit tag
|
||||
empty: No review tasks left.
|
||||
approve_revision_tip: Do you approve this revision?
|
||||
approve_flag_tip: Do you approve this flag?
|
||||
approve_post_tip: Do you approve this post?
|
||||
approve_user_tip: Do you approve this user?
|
||||
suggest_edits: Suggested edits
|
||||
flag_post: Flag post
|
||||
flag_user: Flag user
|
||||
queued_post: Queued post
|
||||
queued_user: Queued user
|
||||
filter_label: Type
|
||||
reputation: reputation
|
||||
flag_post_type: Flagged this post as {{ type }}.
|
||||
flag_user_type: Flagged this user as {{ type }}.
|
||||
edit_post: Edit post
|
||||
list_post: List post
|
||||
unlist_post: Unlist post
|
||||
timeline:
|
||||
undeleted: undeleted
|
||||
deleted: deleted
|
||||
@@ -1773,3 +1858,6 @@ ui:
|
||||
post_hide_list: This post has been hidden from list.
|
||||
post_show_list: This post has been shown to list.
|
||||
post_reopen: This post has been reopened.
|
||||
post_list: This post has been listed.
|
||||
post_unlist: This post has been unlisted.
|
||||
post_pending: Your post is awaiting review. This is a preview, it will be visible after it has been approved.
|
||||
|
||||
+265
-177
File diff suppressed because it is too large
Load Diff
+3
-3
@@ -360,7 +360,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -433,7 +433,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -471,7 +471,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
+124
-38
@@ -18,6 +18,7 @@
|
||||
# The following fields are used for back-end
|
||||
|
||||
backend:
|
||||
|
||||
base:
|
||||
success:
|
||||
other: Success.
|
||||
@@ -83,6 +84,9 @@ backend:
|
||||
level_3:
|
||||
description:
|
||||
other: Level 3 (high reputation required for mature community)
|
||||
level_custom:
|
||||
description:
|
||||
other: Custom Level
|
||||
rank_question_add_label:
|
||||
other: Ask question
|
||||
rank_answer_add_label:
|
||||
@@ -138,6 +142,9 @@ backend:
|
||||
email_or_password_wrong_error:
|
||||
other: Email and password do not match.
|
||||
error:
|
||||
common:
|
||||
invalid_url:
|
||||
other: Invalid URL.
|
||||
password:
|
||||
space_invalid:
|
||||
other: Password cannot contain spaces.
|
||||
@@ -198,6 +205,8 @@ backend:
|
||||
question:
|
||||
already_deleted:
|
||||
other: This post has been deleted.
|
||||
under_review:
|
||||
other: Your post is awaiting review. It will be visible after it has been approved.
|
||||
not_found:
|
||||
other: Question not found.
|
||||
cannot_deleted:
|
||||
@@ -268,6 +277,8 @@ backend:
|
||||
other: You cannot modify your role.
|
||||
not_allowed_registration:
|
||||
other: Currently the site is not open for registration.
|
||||
not_allowed_login_via_password:
|
||||
other: Currently the site is not allowed to login via password.
|
||||
access_denied:
|
||||
other: Access denied
|
||||
page_access_denied:
|
||||
@@ -485,6 +496,15 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
edit:
|
||||
other: edit
|
||||
review:
|
||||
queued_post:
|
||||
other: Queued post
|
||||
flagged_post:
|
||||
other: Flagged post
|
||||
suggested_post_edit:
|
||||
other: Suggested edits
|
||||
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
@@ -534,6 +554,7 @@ ui:
|
||||
http_404: HTTP Error 404
|
||||
http_50X: HTTP Error 500
|
||||
http_403: HTTP Error 403
|
||||
logout: Log Out
|
||||
notifications:
|
||||
title: Notifications
|
||||
inbox: Inbox
|
||||
@@ -612,7 +633,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description
|
||||
tab_url: Image URL
|
||||
@@ -674,6 +695,8 @@ ui:
|
||||
empty: Cannot be empty.
|
||||
msg:
|
||||
empty: Please select a reason.
|
||||
not_a_url: URL format is incorrect.
|
||||
url_not_match: URL origin does not match the current website.
|
||||
tag_modal:
|
||||
title: Create new tag
|
||||
form:
|
||||
@@ -692,6 +715,13 @@ ui:
|
||||
character: URL slug contains unallowed character set.
|
||||
desc:
|
||||
label: Description
|
||||
revision:
|
||||
label: Revision
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar,
|
||||
improved formatting)
|
||||
btn_cancel: Cancel
|
||||
btn_submit: Submit
|
||||
btn_post: Post new tag
|
||||
@@ -721,22 +751,6 @@ ui:
|
||||
title: Edit Tag
|
||||
default_reason: Edit tag
|
||||
default_first_reason: Add tag
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
label: Revision
|
||||
display_name:
|
||||
label: Display name
|
||||
slug_name:
|
||||
label: URL slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar,
|
||||
improved formatting)
|
||||
btn_save_edits: Save edits
|
||||
btn_cancel: Cancel
|
||||
dates:
|
||||
@@ -749,6 +763,8 @@ ui:
|
||||
x_hours_ago: "{{count}}h ago"
|
||||
hour: hour
|
||||
day: day
|
||||
hours: hours
|
||||
days: days
|
||||
comment:
|
||||
btn_add_comment: Add comment
|
||||
reply_to: Reply to
|
||||
@@ -758,7 +774,7 @@ ui:
|
||||
btn_flag: Flag
|
||||
btn_save_edits: Save edits
|
||||
btn_cancel: Cancel
|
||||
show_more: Show more comments
|
||||
show_more: "{{count}} more comments"
|
||||
tip_question: >-
|
||||
Use comments to ask for more information or suggest improvements. Avoid
|
||||
answering questions in comments.
|
||||
@@ -857,7 +873,7 @@ ui:
|
||||
placeholder: Search
|
||||
footer:
|
||||
build_on: >-
|
||||
Built on <1> Answer </1>- the open-source software that powers Q&A
|
||||
Powered by <1> Apache Answer </1>- the open-source software that powers Q&A
|
||||
communities.<br />Made with love © {{cc}}.
|
||||
upload_img:
|
||||
name: Change
|
||||
@@ -994,10 +1010,10 @@ ui:
|
||||
label: Location
|
||||
placeholder: "City, Country"
|
||||
notification:
|
||||
heading: Notifications
|
||||
email: Email
|
||||
heading: Email Notifications
|
||||
turn_on: Turn on
|
||||
inbox:
|
||||
label: Email notifications
|
||||
label: Inbox notifications
|
||||
description: Answers to your questions, comments, invites, and more.
|
||||
all_new_question:
|
||||
label: All new questions
|
||||
@@ -1052,8 +1068,8 @@ ui:
|
||||
title: Related Questions
|
||||
answers: answers
|
||||
invite_to_answer:
|
||||
title: People Asked
|
||||
desc: Invite people who you think might know the answer.
|
||||
title: Invite People
|
||||
desc: Invite people you think can answer.
|
||||
invite: Invite to answer
|
||||
add: Add people
|
||||
search: Search people
|
||||
@@ -1063,6 +1079,7 @@ ui:
|
||||
asked: asked
|
||||
update: Modified
|
||||
edit: edited
|
||||
commented: commented
|
||||
Views: Viewed
|
||||
Follow: Follow
|
||||
Following: Following
|
||||
@@ -1080,10 +1097,12 @@ ui:
|
||||
title: Answers
|
||||
score: Score
|
||||
newest: Newest
|
||||
oldest: Oldest
|
||||
btn_accept: Accept
|
||||
btn_accepted: Accepted
|
||||
write_answer:
|
||||
title: Your Answer
|
||||
edit_answer: Edit my existing answer
|
||||
btn_name: Post your answer
|
||||
add_another_answer: Add another answer
|
||||
confirm_title: Continue to answer
|
||||
@@ -1103,6 +1122,14 @@ ui:
|
||||
confirm_btn: Reopen
|
||||
title: Reopen this post
|
||||
content: Are you sure you want to reopen?
|
||||
list:
|
||||
confirm_btn: List
|
||||
title: List this post
|
||||
content: Are you sure you want to list?
|
||||
unlist:
|
||||
confirm_btn: Unlist
|
||||
title: Unlist this post
|
||||
content: Are you sure you want to unlist?
|
||||
pin:
|
||||
title: Pin this post
|
||||
content: Are you sure you wish to pinned globally? This post will appear at the top of all post lists.
|
||||
@@ -1130,6 +1157,9 @@ ui:
|
||||
save: Save
|
||||
delete: Delete
|
||||
undelete: Undelete
|
||||
list: List
|
||||
unlist: Unlist
|
||||
unlisted: Unlisted
|
||||
login: Log in
|
||||
signup: Sign up
|
||||
logout: Log out
|
||||
@@ -1153,6 +1183,20 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
tag: Tag
|
||||
post_lowercase: post
|
||||
filter: Filter
|
||||
ignore: Ignore
|
||||
submit: Submit
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
pending: Pending
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1401,23 +1445,35 @@ ui:
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
site_statistics: Site Statistics
|
||||
site_statistics: Site statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
comments: "Comments:"
|
||||
votes: "Votes:"
|
||||
active_users: "Active users:"
|
||||
users: "Users:"
|
||||
flags: "Flags:"
|
||||
site_health_status: Site Health Status
|
||||
reviews: "Reviews:"
|
||||
site_health: Site health
|
||||
version: "Version:"
|
||||
https: "HTTPS:"
|
||||
uploading_files: "Uploading files:"
|
||||
upload_folder: "Upload folder:"
|
||||
run_mode: "Running mode:"
|
||||
private: Private
|
||||
public: Public
|
||||
smtp: "SMTP:"
|
||||
timezone: "Timezone:"
|
||||
system_info: System Info
|
||||
system_info: System info
|
||||
go_version: "Go version:"
|
||||
database: "Database:"
|
||||
database_size: "Database size:"
|
||||
storage_used: "Storage used:"
|
||||
uptime: "Uptime:"
|
||||
answer_links: Answer Links
|
||||
links: Links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
forum: Forum
|
||||
documents: Documents
|
||||
feedback: Feedback
|
||||
support: Support
|
||||
@@ -1432,6 +1488,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1518,9 +1576,7 @@ ui:
|
||||
content: A suspended user can't log in.
|
||||
questions:
|
||||
page_title: Questions
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
unlisted: Unlisted
|
||||
post: Post
|
||||
votes: Votes
|
||||
answers: Answers
|
||||
@@ -1528,12 +1584,11 @@ ui:
|
||||
status: Status
|
||||
action: Action
|
||||
change: Change
|
||||
pending: Pending
|
||||
filter:
|
||||
placeholder: "Filter by title, question:id"
|
||||
answers:
|
||||
page_title: Answers
|
||||
normal: Normal
|
||||
deleted: Deleted
|
||||
post: Post
|
||||
votes: Votes
|
||||
created: Created
|
||||
@@ -1566,6 +1621,9 @@ ui:
|
||||
msg: Contact email cannot be empty.
|
||||
validate: Contact email is not valid.
|
||||
text: Email address of key contact responsible for this site.
|
||||
check_update:
|
||||
label: Software updates
|
||||
text: Automatically check for updates
|
||||
interface:
|
||||
page_title: Interface
|
||||
language:
|
||||
@@ -1642,6 +1700,10 @@ ui:
|
||||
text: "You can add privacy policy content here. If you already have a document hosted elsewhere, provide the full URL here."
|
||||
write:
|
||||
page_title: Write
|
||||
restrict_answer:
|
||||
title: Restrict answer
|
||||
label: Each user can only write one answer for the same question
|
||||
text: "Turn off to allow users to write multiple answers to the same question, which may cause answers to be unfocused."
|
||||
recommend_tags:
|
||||
label: Recommend tags
|
||||
text: "Please input tag slug above, one tag per line."
|
||||
@@ -1665,11 +1727,12 @@ ui:
|
||||
themes:
|
||||
label: Themes
|
||||
text: Select an existing theme.
|
||||
color_scheme:
|
||||
label: Color scheme
|
||||
navbar_style:
|
||||
label: Navbar Style
|
||||
text: Select an existing theme.
|
||||
label: Navbar style
|
||||
primary_color:
|
||||
label: Primary Color
|
||||
label: Primary color
|
||||
text: Modify the colors used by your themes
|
||||
css_and_html:
|
||||
page_title: CSS and HTML
|
||||
@@ -1705,6 +1768,10 @@ ui:
|
||||
title: Private
|
||||
label: Login required
|
||||
text: Only logged in users can access this community.
|
||||
password_login:
|
||||
title: Password login
|
||||
label: Allow email and password login
|
||||
text: "WARNING: If turn off, you may be unable to log in if you have not previously configured other login method."
|
||||
installed_plugins:
|
||||
title: Installed Plugins
|
||||
plugin_link: Plugins extend and expand the functionality of Answer. You may find plugins in the <1>Answer Plugin Repository</1>.
|
||||
@@ -1770,6 +1837,22 @@ ui:
|
||||
edit_answer: Edit answer
|
||||
edit_tag: Edit tag
|
||||
empty: No review tasks left.
|
||||
approve_revision_tip: Do you approve this revision?
|
||||
approve_flag_tip: Do you approve this flag?
|
||||
approve_post_tip: Do you approve this post?
|
||||
approve_user_tip: Do you approve this user?
|
||||
suggest_edits: Suggested edits
|
||||
flag_post: Flag post
|
||||
flag_user: Flag user
|
||||
queued_post: Queued post
|
||||
queued_user: Queued user
|
||||
filter_label: Type
|
||||
reputation: reputation
|
||||
flag_post_type: Flagged this post as {{ type }}.
|
||||
flag_user_type: Flagged this user as {{ type }}.
|
||||
edit_post: Edit post
|
||||
list_post: List post
|
||||
unlist_post: Unlist post
|
||||
timeline:
|
||||
undeleted: undeleted
|
||||
deleted: deleted
|
||||
@@ -1820,3 +1903,6 @@ ui:
|
||||
post_hide_list: This post has been hidden from list.
|
||||
post_show_list: This post has been shown to list.
|
||||
post_reopen: This post has been reopened.
|
||||
post_list: This post has been listed.
|
||||
post_unlist: This post has been unlisted.
|
||||
post_pending: Your post is awaiting review. This is a preview, it will be visible after it has been approved.
|
||||
|
||||
+488
-425
File diff suppressed because it is too large
Load Diff
+200
-112
@@ -15,7 +15,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
#The following fields are used for back-end
|
||||
# The following fields are used for back-end
|
||||
backend:
|
||||
base:
|
||||
success:
|
||||
@@ -31,7 +31,7 @@ backend:
|
||||
forbidden_error:
|
||||
other: عدم اجازه دسترسی.
|
||||
duplicate_request_error:
|
||||
other: Duplicate submission.
|
||||
other: ارسال تکراری.
|
||||
action:
|
||||
report:
|
||||
other: نشان
|
||||
@@ -56,7 +56,7 @@ backend:
|
||||
invite_someone_to_answer:
|
||||
other: ویرایش
|
||||
undelete:
|
||||
other: Undelete
|
||||
other: بازگردانی حذف
|
||||
role:
|
||||
name:
|
||||
user:
|
||||
@@ -82,6 +82,9 @@ backend:
|
||||
level_3:
|
||||
description:
|
||||
other: سطح ۳ (شهرت بالایی برای نیاز هست برای انجمن های تکمیل)
|
||||
level_custom:
|
||||
description:
|
||||
other: سطح دلخواه
|
||||
rank_question_add_label:
|
||||
other: سوال بپرس
|
||||
rank_answer_add_label:
|
||||
@@ -137,6 +140,9 @@ backend:
|
||||
email_or_password_wrong_error:
|
||||
other: ایمیل و رمز وارد شده صحیح نیست.
|
||||
error:
|
||||
common:
|
||||
invalid_url:
|
||||
other: Invalid URL.
|
||||
password:
|
||||
space_invalid:
|
||||
other: رمز عبور نمی تواند شامل فضای خالی باشد.
|
||||
@@ -197,6 +203,8 @@ backend:
|
||||
question:
|
||||
already_deleted:
|
||||
other: این پست حذف شده است.
|
||||
under_review:
|
||||
other: Your post is awaiting review. It will be visible after it has been approved.
|
||||
not_found:
|
||||
other: سوال پیدا نشد.
|
||||
cannot_deleted:
|
||||
@@ -267,6 +275,8 @@ backend:
|
||||
other: شما نمی توانید وظیفه خود را تغییر دهید.
|
||||
not_allowed_registration:
|
||||
other: درحال حاضر سایت برای ثبت نام باز نیست.
|
||||
not_allowed_login_via_password:
|
||||
other: در حال حاضر سایت اجازه ورود از طریق رمز عبور ندارد.
|
||||
access_denied:
|
||||
other: دسترسی مجاز نیست
|
||||
page_access_denied:
|
||||
@@ -431,40 +441,40 @@ backend:
|
||||
title:
|
||||
other: "آدرس ایمیل جدید خود را تایید کنید{{.SiteName}}"
|
||||
body:
|
||||
other: "Confirm your new email address for {{.SiteName}} by clicking on the following link:<br>\n<a href='{{.ChangeEmailUrl}}' target='_blank'>{{.ChangeEmailUrl}}</a><br><br>\n\nIf you did not request this change, please ignore this email.\n"
|
||||
other: "آدرس ایمیل جدید خود را برای {{.SiteName}} با کلیک بر روی پیوند زیر تأیید کنید:\n<br>\n<a href='{{.ChangeEmailUrl}}' target='_blank'>{{.ChangeEmailUrl}}</a><br><br>\n\nاگر این تغییر را درخواست نکردهاید، لطفاً این ایمیل را نادیده بگیرید.\n"
|
||||
new_answer:
|
||||
title:
|
||||
other: "[{{.SiteName}}] {{.DisplayName}} answered your question"
|
||||
other: "[{{.SiteName}}] {{.DisplayName}} به سؤال شما پاسخ داد"
|
||||
body:
|
||||
other: "<a href='{{.AnswerUrl}}'>{{.QuestionTitle}}</a><br><br>\n\n{{.DisplayName}}:<br>\n<blockquote>{{.AnswerSummary}}</blockquote><br>\n<a href='{{.AnswerUrl}}'>View it on {{.SiteName}}</a><br><br>\n\n--<br>\n<small><a href='{{.UnsubscribeUrl}}'>Unsubscribe</a></small>"
|
||||
other: "<a href='{{.AnswerUrl}}'>{{.QuestionTitle}}</a><br><br>\n\n{{.DisplayName}}:<br>\n<blockquote>{{.AnswerSummary}}</blockquote><br>\n<a href='{{.AnswerUrl}}'>مشاهده آن در {{.SiteName}}</a><br><br>\n\n--<br>\n<small><a href='{{.UnsubscribeUrl}}'>لغو اشتراک</a></small>"
|
||||
invited_you_to_answer:
|
||||
title:
|
||||
other: "[{{.SiteName}}] {{.DisplayName}} invited you to answer"
|
||||
other: "[{{.SiteName}}] {{.DisplayName}} شما را به پاسخ دعوت کرد"
|
||||
body:
|
||||
other: "<a href='{{.InviteUrl}}'>{{.QuestionTitle}}</a><br><br>\n\n{{.DisplayName}}:<br>\n<blockquote>I think you may know the answer.</blockquote><br>\n<a href='{{.InviteUrl}}'>View it on {{.SiteName}}</a><br><br>\n\n--<br>\n<small><a href='{{.UnsubscribeUrl}}'>Unsubscribe</a></small>"
|
||||
other: "<a href='{{.InviteUrl}}'>{{.QuestionTitle}}</a><br><br>\n\n{{.DisplayName}}:<br>\n<blockquote>من فکر می کنم شما ممکن است پاسخ را بدانید.</blockquote><br>\n<a href='{{.InviteUrl}}'>مشاهده آن در {{.SiteName}}</a><br><br>\n\n--<br>\n<small><a href='{{.UnsubscribeUrl}}'>لغو اشتراک</a></small>"
|
||||
new_comment:
|
||||
title:
|
||||
other: "[{{.SiteName}}] {{.DisplayName}} commented on your post"
|
||||
other: "[{{.SiteName}}] {{.DisplayName}} روی پست شما نظر داد"
|
||||
body:
|
||||
other: "<a href='{{.CommentUrl}}'>{{.QuestionTitle}}</a><br><br>\n\n{{.DisplayName}}:<br>\n<blockquote>{{.CommentSummary}}</blockquote><br>\n<a href='{{.CommentUrl}}'>View it on {{.SiteName}}</a><br><br>\n\n--<br>\n<small><a href='{{.UnsubscribeUrl}}'>Unsubscribe</a></small>"
|
||||
other: "<a href='{{.CommentUrl}}'>{{.QuestionTitle}}</a><br><br>\n\n{{.DisplayName}}:<br>\n<blockquote>{{.CommentSummary}}</blockquote><br>\n<a href='{{.CommentUrl}}'>مشاهده آن در {{.SiteName}}</a><br><br>\n\n--<br>\n<small><a href='{{.UnsubscribeUrl}}'>لغو اشتراک</a></small>"
|
||||
new_question:
|
||||
title:
|
||||
other: "[{{.SiteName}}] New question: {{.QuestionTitle}}"
|
||||
other: "[{{.SiteName}}] سؤال جدید: {{.QuestionTitle}}"
|
||||
body:
|
||||
other: "<a href='{{.QuestionUrl}}'>{{.QuestionTitle}}</a><br>\n<small>{{.Tags}}</small><br><br>\n\n--<br>\n<small><a href='{{.UnsubscribeUrl}}'>Unsubscribe</a></small>"
|
||||
other: "<a href='{{.QuestionUrl}}'>{{.QuestionTitle}}</a><br>\n<small>{{.Tags}}</small><br><br>\n\n--<br>\n<small><a href='{{.UnsubscribeUrl}}'>لغو اشتراک</a></small>"
|
||||
pass_reset:
|
||||
title:
|
||||
other: "[{{.SiteName }}] Password reset"
|
||||
other: "[{{.SiteName }}] گذرواژه بازنشانی شد"
|
||||
body:
|
||||
other: "Somebody asked to reset your password on {{.SiteName}}.<br><br>\n\nIf it was not you, you can safely ignore this email.<br><br>\n\nClick the following link to choose a new password:<br>\n<a href='{{.PassResetUrl}}' target='_blank'>{{.PassResetUrl}}</a>\n"
|
||||
other: "شخصی بازنشانی رمز عبور شما در {{.SiteName}} میباشد.<br><br>\n\nاگر این شخص شما نبوده اید، میتوانید با خیال راحت این ایمیل را نادیده بگیرید.<br><br>\n\nبرای انتخاب رمز عبور جدید روی پیوند زیر کلیک کنید:<br>\n<a href='{{.PassResetUrl}}' target='_blank'>{{.PassResetUrl}}</a>\n"
|
||||
register:
|
||||
title:
|
||||
other: "[{{.SiteName}}] Confirm your new account"
|
||||
other: "[{{.SiteName}}] حساب کاربری جدید خود را تأیید کنید"
|
||||
body:
|
||||
other: "Welcome to {{.SiteName}}!<br><br>\n\nClick the following link to confirm and activate your new account:<br>\n<a href='{{.RegisterUrl}}' target='_blank'>{{.RegisterUrl}}</a><br><br>\n\nIf the above link is not clickable, try copying and pasting it into the address bar of your web browser.\n"
|
||||
other: "به {{.SiteName}} خوش آمدید!<br><br>\n\nبرای تأیید و فعال سازی حساب کاربری جدید خود روی پیوند زیر کلیک کنید:<br>\n<a href='{{.RegisterUrl}}' target='_blank'>{{.RegisterUrl}}</a><br><br>\n\nاگر پیوند بالا قابل بازشدن نیست، آن را کپی کرده و در نوار آدرس مرورگر وب خود قرار دهید.\n"
|
||||
test:
|
||||
title:
|
||||
other: "[{{.SiteName}}] Test Email"
|
||||
other: "[{{.SiteName}}] ایمیل آزمایشی"
|
||||
body:
|
||||
other: "این یک ایمیل تست است."
|
||||
action_activity_type:
|
||||
@@ -480,12 +490,21 @@ backend:
|
||||
other: پذیرفتن
|
||||
accepted:
|
||||
other: پذیرفته شده
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
edit:
|
||||
other: edit
|
||||
review:
|
||||
queued_post:
|
||||
other: Queued post
|
||||
flagged_post:
|
||||
other: Flagged post
|
||||
suggested_post_edit:
|
||||
other: Suggested edits
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: نحوه فرمت کردن
|
||||
desc: >-
|
||||
<ul class="mb-0"><li><p class="mb-2">to make links</p><pre class="mb-2"><code><https://url.com><br/><br/>[Title](https://url.com)</code></pre></li><li><p class="mb-2">put returns between paragraphs</p></li><li><p class="mb-2"><em>_italic_</em> or **<strong>bold</strong>**</p></li><li><p class="mb-2">indent code by 4 spaces</p></li><li><p class="mb-2">quote by placing <code>></code> at start of line</p></li><li><p class="mb-2">backtick escapes <code>`like _this_`</code></p></li><li><p class="mb-2">create code fences with backticks <code>`</code></p><pre class="mb-0"><code>```<br/>code here<br/>```</code></pre></li></ul>
|
||||
<ul class="mb-0"><li><p class="mb-2">برای ایجاد پیوند</p><pre class="mb-2"><code><https://url.com><br/><br/>[Title](https://url.com)</code></pre></li><li><p class="mb-2">بین پاراگراف ها اینتر قرار بدهید</p></li><li><p class="mb-2"><em>_italic_</em> یا **<strong>پررنگ</strong>**</p></ li><li><p class="mb-2">کد تورفتگی با 4 فاصله</p></li><li><p class="mb-2">نقل قول با قرار دادن <code>>< /code> در ابتدای خط</p></li><li><p class="mb-2">بکتیک فرار می کند <code>`مانند _this_`</code></p></li>< li><p class="mb-2">حصارهای کد با بکتیک ایجاد کنید <code>`</code></p><pre class="mb-0"><code>```<br/>کد اینجا<br/>```</code></pre></li></ul>
|
||||
pagination:
|
||||
prev: قبلی
|
||||
next: بعدی
|
||||
@@ -520,6 +539,7 @@ ui:
|
||||
http_404: خطای 404 HTTP
|
||||
http_50X: خطای 500 HTTP
|
||||
http_403: خطای 403 HTTP
|
||||
logout: خروج
|
||||
notifications:
|
||||
title: اعلانات
|
||||
inbox: پیغامهای دریافتی
|
||||
@@ -598,7 +618,7 @@ ui:
|
||||
msg:
|
||||
empty: فایل نمی تواند خالی باشد.
|
||||
only_image: فقط فایل های تصویری مجاز هستند.
|
||||
max_size: حجم فایل نمی تواند بیشتر از ۴ مگابایت باشد.
|
||||
max_size: حجم فایل نباید بیشتر از 4 مگابایت باشد.
|
||||
desc:
|
||||
label: توضیحات
|
||||
tab_url: لینک عکس
|
||||
@@ -660,6 +680,8 @@ ui:
|
||||
empty: نمیتواند خالی باشد.
|
||||
msg:
|
||||
empty: لطفا یک دلیل را انتخاب کنید.
|
||||
not_a_url: URL format is incorrect.
|
||||
url_not_match: URL origin does not match the current website.
|
||||
tag_modal:
|
||||
title: ساخت تگ جدید
|
||||
form:
|
||||
@@ -678,6 +700,12 @@ ui:
|
||||
character: نامک آدرس شامل کلمات غیر مجاز می باشد.
|
||||
desc:
|
||||
label: توضیحات
|
||||
revision:
|
||||
label: تجدید نظر
|
||||
edit_summary:
|
||||
label: ویرایش خلاصه
|
||||
placeholder: >-
|
||||
تغییرات خود را به طور خلاصه توضیح دهید (املا صحیح، دستور زبان مناسب، قالب بندی بهبود یافته)
|
||||
btn_cancel: لغو
|
||||
btn_submit: ثبت
|
||||
btn_post: پست کردن تگ جدید
|
||||
@@ -696,41 +724,29 @@ ui:
|
||||
delete:
|
||||
title: این برچسب حذف شود
|
||||
tip_with_posts: >-
|
||||
<p>We do not allowed <strong>deleting tag with posts</strong>.</p> <p>Please remove this tag from the posts first.</p>
|
||||
<p>ما به <strong>حذف برچسب دارای پستها</strong> اجازه حذف نمیدهیم.</p> <p>لطفاً ابتدا این برچسب را از پستها حذف کنید.</p>
|
||||
tip_with_synonyms: >-
|
||||
<p>We do not allowed <strong>deleting tag with synonyms</strong>.</p> <p>Please remove the synonyms from this tag first.</p>
|
||||
<p>ما اجازه <strong>حذف برچسب دارای مترادف</strong> را نمیدهیم.</p> <p>لطفاً ابتدا مترادف ها را از این برچسب حذف کنید.</p>
|
||||
tip: مطمئنید که میخواهید حذف شود?
|
||||
close: بستن
|
||||
edit_tag:
|
||||
title: ویرایش تگ
|
||||
default_reason: ویرایش تگ
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
label: بازنگری
|
||||
display_name:
|
||||
label: نام
|
||||
slug_name:
|
||||
label: نامک نشانی اینترنتی
|
||||
info: 'باید از حروف "a-z", "0-9", "+ # -" استفاده شود'
|
||||
desc:
|
||||
label: توضیحات
|
||||
edit_summary:
|
||||
label: ویرایش خلاصه
|
||||
placeholder: >-
|
||||
بطور خلاصه تغییرات را توضیح دهید (اصلاح املایی، اصلاح دستورزبان، بهبود فرمت دهی)
|
||||
default_first_reason: برچسب اضافه کنید
|
||||
btn_save_edits: ذخیره ویرایشها
|
||||
btn_cancel: لغو
|
||||
dates:
|
||||
long_date: MMM D
|
||||
long_date_with_year: "MMM D, YYYY"
|
||||
long_date_with_time: "MMM D, YYYY [at] HH:mm"
|
||||
long_date: ماه ماه ماه روز
|
||||
long_date_with_year: "ماه روز، سال"
|
||||
long_date_with_time: "ماه روز، سال در ساعت:دقیقه"
|
||||
now: حالا
|
||||
x_seconds_ago: "{{count}} ثانیه پیش"
|
||||
x_minutes_ago: "{{count}} دقیقه پیش"
|
||||
x_hours_ago: "{{count}}ساعت پیش"
|
||||
hour: ساعت
|
||||
day: روز
|
||||
hours: ساعات
|
||||
days: روزها
|
||||
comment:
|
||||
btn_add_comment: افزودن نظر
|
||||
reply_to: پاسخ به
|
||||
@@ -740,7 +756,7 @@ ui:
|
||||
btn_flag: نشان
|
||||
btn_save_edits: ذخیره ویرایشها
|
||||
btn_cancel: لغو
|
||||
show_more: نمایش نظرات بیشتر
|
||||
show_more: "{{count}} نظر بیشتر"
|
||||
tip_question: >-
|
||||
از نظرات برای درخواست اطلاعات بیشتر یا پیشنهاد بهبود استفاده کنید. از پاسخ دادن به سوالات در نظرات خودداری کنید.
|
||||
tip_answer: >-
|
||||
@@ -749,6 +765,7 @@ ui:
|
||||
edit_answer:
|
||||
title: ویرایش جواب
|
||||
default_reason: ویرایش جواب
|
||||
default_first_reason: پاسخ را اضافه کنید
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +796,7 @@ ui:
|
||||
title: سوالی اضافه کنید
|
||||
edit_title: سوال را ویرایش کنید
|
||||
default_reason: سوال را ویرایش کنید
|
||||
default_first_reason: سوال اضافه کنید
|
||||
similar_questions: سؤال های مشابه
|
||||
form:
|
||||
fields:
|
||||
@@ -833,7 +851,7 @@ ui:
|
||||
placeholder: جستجو
|
||||
footer:
|
||||
build_on: >-
|
||||
Built on <1> Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
پشتیبانی شده توسط <1> Apache Answer </1> - نرمافزار منبع باز که باهمستان های پرسش و پاسخ را تقویت می کند.<br />ساخته شده با عشق © {{cc}}.
|
||||
upload_img:
|
||||
name: تغییر
|
||||
loading: درحال بارگذاری...
|
||||
@@ -844,22 +862,22 @@ ui:
|
||||
empty: کپچا نمی تواند خالی باشد.
|
||||
inactive:
|
||||
first: >-
|
||||
You're almost done! We sent an activation mail to <bold>{{mail}}</bold>. Please follow the instructions in the mail to activate your account.
|
||||
شما تقریباً آماده شده اید! ما یک ایمیل فعال سازی به <bold>{{mail}}</bold> ارسال کردیم. لطفا دستورالعمل های ایمیل را برای فعال کردن حساب خود دنبال کنید.
|
||||
info: "اگر ایمیل ارسالی را دریافت نکردید، قسمت spam خود را چک کنید."
|
||||
another: >-
|
||||
We sent another activation email to you at <bold>{{mail}}</bold>. It might take a few minutes for it to arrive; be sure to check your spam folder.
|
||||
ایمیل فعالسازی دیگری را به آدرس <bold>{{mail}}</bold> برای شما ارسال کردیم. ممکن است چند دقیقه طول بکشد تا دستتان برسد. پوشه هرزنامه خود را حتما چک کنید.
|
||||
btn_name: ارسال مجدد کد فعالسازی
|
||||
change_btn_name: تغییر ایمیل
|
||||
msg:
|
||||
empty: نمیتواند خالی باشد.
|
||||
resend_email:
|
||||
url_label: Are you sure you want to resend the activation email?
|
||||
url_text: You can also give the activation link above to the user.
|
||||
url_label: آیا مطمئن هستید که می خواهید ایمیل فعال سازی را دوباره ارسال کنید؟
|
||||
url_text: همچنین می توانید لینک فعال سازی بالا را در اختیار کاربر قرار دهید.
|
||||
login:
|
||||
login_to_continue: برای ادامه وارد حساب کاربری شوید
|
||||
info_sign: حساب کاربری ندارید؟ </1>ثبت نام<1>
|
||||
info_login: Already have an account? <1>Log in</1>
|
||||
agreements: By registering, you agree to the <1>privacy policy</1> and <3>terms of service</3>.
|
||||
info_login: از قبل حساب کاربری دارید؟ <1>وارد شوید</1>
|
||||
agreements: با ثبت نام، با <1>خط مشی رازداری</1> و <3>شرایط خدمات</3> موافقت می کنید.
|
||||
forgot_pass: رمزعبور را فراموش کردید?
|
||||
name:
|
||||
label: نام
|
||||
@@ -875,12 +893,12 @@ ui:
|
||||
label: رمز عبور
|
||||
msg:
|
||||
empty: رمز عبور نمی تواند خالی باشد.
|
||||
different: The passwords entered on both sides are inconsistent
|
||||
different: پسوردهای وارد شده در هر دو طرف متناقض هستند
|
||||
account_forgot:
|
||||
page_title: رمزعبور را فراموش کردید
|
||||
btn_name: ارسال ایمیل بازیابی
|
||||
send_success: >-
|
||||
If an account matches <strong>{{mail}}</strong>, you should receive an email with instructions on how to reset your password shortly.
|
||||
اگر یک حساب با <strong>{{mail}}</strong> مطابقت داشته باشد، باید به زودی ایمیلی حاوی دستورالعملهایی درباره نحوه بازنشانی رمز عبور خود دریافت کنید.
|
||||
email:
|
||||
label: ایمیل
|
||||
msg:
|
||||
@@ -889,14 +907,14 @@ ui:
|
||||
btn_cancel: لغو
|
||||
btn_update: نشانی ایمیل را به روز کنید
|
||||
send_success: >-
|
||||
If an account matches <strong>{{mail}}</strong>, you should receive an email with instructions on how to reset your password shortly.
|
||||
اگر یک حساب با <strong>{{mail}}</strong> مطابقت داشته باشد، باید به زودی ایمیلی حاوی دستورالعملهایی درباره نحوه بازنشانی رمز عبور خود دریافت کنید.
|
||||
email:
|
||||
label: ایمیل جدید
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
empty: ایمیل نمی تواند خالی باشد.
|
||||
oauth:
|
||||
connect: Connect with {{ auth_name }}
|
||||
remove: Remove {{ auth_name }}
|
||||
connect: ارتباط با {{ auth_name }}
|
||||
remove: حذف {{ auth_name }}
|
||||
oauth_bind_email:
|
||||
subtitle: یک ایمیل بازیابی به حساب خود اضافه کنید.
|
||||
btn_update: نشانی ایمیل را به روز کنید
|
||||
@@ -963,8 +981,8 @@ ui:
|
||||
label: موقعیت
|
||||
placeholder: "شهر، کشور"
|
||||
notification:
|
||||
heading: اعلانات
|
||||
email: ایمیل
|
||||
heading: اعلان های ایمیلی
|
||||
turn_on: روشن کردن
|
||||
inbox:
|
||||
label: اعلانات ایمیل
|
||||
description: پاسخ به سوالات خود، نظرات، دعوت ها،و بیشتر.
|
||||
@@ -1031,6 +1049,7 @@ ui:
|
||||
asked: پرسیده شده
|
||||
update: تغییر یافته
|
||||
edit: ویرایش شده
|
||||
commented: commented
|
||||
Views: مشاهده شده
|
||||
Follow: دنبال کردن
|
||||
Following: دنبال می کنید
|
||||
@@ -1048,10 +1067,12 @@ ui:
|
||||
title: پاسخ ها
|
||||
score: امتیاز
|
||||
newest: جدیدترین
|
||||
oldest: Oldest
|
||||
btn_accept: پذیرفتن
|
||||
btn_accepted: پذیرفته شده
|
||||
write_answer:
|
||||
title: پاسخ شما
|
||||
edit_answer: پاسخ فعلی من را ویرایش کنید
|
||||
btn_name: پاسخ خود را ارسال کنید
|
||||
add_another_answer: پاسخ دیگری اضافه کنید
|
||||
confirm_title: به پاسخ دادن ادامه دهید
|
||||
@@ -1070,6 +1091,14 @@ ui:
|
||||
confirm_btn: بازگشایی مجدد
|
||||
title: بازگشایی مجدد این پست
|
||||
content: آیا مطمئن هستید که میخواهید بازگشایی مجدد انجام دهید?
|
||||
list:
|
||||
confirm_btn: List
|
||||
title: List this post
|
||||
content: Are you sure you want to list?
|
||||
unlist:
|
||||
confirm_btn: Unlist
|
||||
title: Unlist this post
|
||||
content: Are you sure you want to unlist?
|
||||
pin:
|
||||
title: پست را پین کن
|
||||
content: آیا مطمئن هستید میخواهید پست بصورت عمومی پین شود؟ پست در بالای تمامی پست ها نشان داده خواهد شد.
|
||||
@@ -1082,15 +1111,18 @@ ui:
|
||||
ما <strong>حذف جواب تایید شده</strong> را پیشنهاد نمی کنیم، زیرا انجام این کار خوانندگان آینده را از این دانش محروم می کند.</p><p> حذف مکرر سؤالات پاسخ داده شده می تواند منجر به مسدود شدن حساب شما از سؤال شود. آیا مطمئن هستید که می خواهید حذف کنید?
|
||||
other: مطمئنید که میخواهید حذف شود?
|
||||
tip_answer_deleted: جواب شما حذف شده است
|
||||
undelete_title: Undelete this post
|
||||
undelete_desc: Are you sure you wish to undelete?
|
||||
undelete_title: حذف این پست
|
||||
undelete_desc: آیا مطمئن به بازگردانی هستید؟
|
||||
btns:
|
||||
confirm: تایید
|
||||
cancel: لغو
|
||||
edit: ویرایش
|
||||
save: ذخیره
|
||||
delete: حذف
|
||||
undelete: Undelete
|
||||
undelete: بازگردانی
|
||||
list: List
|
||||
unlist: Unlist
|
||||
unlisted: Unlisted
|
||||
login: ورود
|
||||
signup: عضويت
|
||||
logout: خروج
|
||||
@@ -1107,13 +1139,27 @@ ui:
|
||||
comment: نظر
|
||||
refresh: بارگذاری مجدد
|
||||
resend: ارسال مجدد
|
||||
deactivate: Deactivate
|
||||
active: Active
|
||||
suspend: Suspend
|
||||
unsuspend: Unsuspend
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
deactivate: غیرفعال کردن
|
||||
active: فعال
|
||||
suspend: تعلیق
|
||||
unsuspend: لغو تعلیق
|
||||
close: بستن
|
||||
reopen: بازگشایی
|
||||
ok: تأیید
|
||||
light: روشن
|
||||
dark: تیره
|
||||
system_setting: تنظیمات سامانه
|
||||
default: Default
|
||||
reset: Reset
|
||||
tag: Tag
|
||||
post_lowercase: post
|
||||
filter: Filter
|
||||
ignore: Ignore
|
||||
submit: Submit
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
pending: Pending
|
||||
search:
|
||||
title: نتایج جستجو
|
||||
keywords: کلیدواژه ها
|
||||
@@ -1353,23 +1399,35 @@ ui:
|
||||
dashboard:
|
||||
title: داشبرد
|
||||
welcome: به پاسخ مدیر خوش آمدید!
|
||||
site_statistics: آمار سایت
|
||||
site_statistics: Site statistics
|
||||
questions: "سوالات:"
|
||||
answers: "جواب ها:"
|
||||
comments: "نظرات:"
|
||||
votes: "آرا:"
|
||||
active_users: "کاربران فعال:"
|
||||
users: "Users:"
|
||||
flags: "علامتها:"
|
||||
site_health_status: وضعیت سلامت سایت
|
||||
reviews: "Reviews:"
|
||||
site_health: Site health
|
||||
version: "نسخه:"
|
||||
https: "HTTPS:"
|
||||
uploading_files: "فایل های در حال آپلود:"
|
||||
upload_folder: "Upload folder:"
|
||||
run_mode: "Running mode:"
|
||||
private: Private
|
||||
public: در دسترس عموم
|
||||
smtp: "SMTP:"
|
||||
timezone: "منطقه زمانی:"
|
||||
system_info: اطلاعات سیستم
|
||||
system_info: اطلاعات سامانه
|
||||
go_version: "نسخه Go:"
|
||||
database: "پایگاه داده:"
|
||||
database_size: "اندازه پایگاه داده :"
|
||||
storage_used: "فضای استفاده شده:"
|
||||
uptime: "پایداری:"
|
||||
answer_links: لینک های Answer
|
||||
links: Links
|
||||
plugins: افزونهها
|
||||
github: GitHub
|
||||
blog: بلاگ
|
||||
contact: تماس
|
||||
forum: Forum
|
||||
documents: اسناد
|
||||
feedback: ﺑﺎﺯﺧﻮﺭﺩ
|
||||
support: پشتیبانی
|
||||
@@ -1384,6 +1442,8 @@ ui:
|
||||
allowed: مجاز
|
||||
enabled: فعال
|
||||
disabled: غیرفعال
|
||||
writable: قابل نوشتن
|
||||
not_writable: غیرقابل کُپی
|
||||
flags:
|
||||
title: علامتها
|
||||
pending: در حالت انتظار
|
||||
@@ -1412,9 +1472,9 @@ ui:
|
||||
form:
|
||||
fields:
|
||||
users:
|
||||
label: Bulk add user
|
||||
label: اضافه کردن انبوه کاربر
|
||||
placeholder: "John Smith, john@example.com, BUSYopr2\nAlice, alice@example.com, fpDntV8q"
|
||||
text: Separate “name, email, password” with commas. One user per line.
|
||||
text: '"نام، ایمیل، رمز عبور" را با کاما جدا کنید. یک کاربر در هر خط.'
|
||||
msg: "لطفا ایمیل کاربر را در هر خط یکی وارد کنید."
|
||||
display_name:
|
||||
label: نمایش نام
|
||||
@@ -1433,7 +1493,7 @@ ui:
|
||||
email: ایمیل
|
||||
reputation: محبوبیت
|
||||
created_at: زمان ایجاد
|
||||
delete_at: Deleted Time
|
||||
delete_at: زمان حذف
|
||||
suspend_at: زمان معلق
|
||||
status: وضعیت
|
||||
role: نقش
|
||||
@@ -1457,22 +1517,20 @@ ui:
|
||||
show_logs: نمایش ورود ها
|
||||
add_user: افزودن کاربر
|
||||
deactivate_user:
|
||||
title: Deactivate user
|
||||
content: An inactive user must re-validate their email.
|
||||
title: غیر فعال کردن کاربر
|
||||
content: یک کاربر غیرفعال باید ایمیل خود را دوباره تایید کند.
|
||||
delete_user:
|
||||
title: Delete this user
|
||||
content: Are you sure you want to delete this user? This is permanent!
|
||||
remove: Remove their content
|
||||
label: Remove all questions, answers, comments, etc.
|
||||
text: Don’t check this if you wish to only delete the user’s account.
|
||||
title: این کاربر حذف شود
|
||||
content: آیا مطمئن هستید که میخواهید این کابر را حذف نمایید؟ این اقدام دائمی است!
|
||||
remove: محتوای آنها را حذف کنید
|
||||
label: تمام سوالات، پاسخ ها، نظرات و غیره را حذف کن.
|
||||
text: اگر میخواهید فقط حساب کاربر را حذف کنید، این را بررسی نکنید.
|
||||
suspend_user:
|
||||
title: Suspend this user
|
||||
content: A suspended user can't log in.
|
||||
title: تعلیق این کاربر
|
||||
content: کاربر تعلیق شده نمیتواند وارد شود.
|
||||
questions:
|
||||
page_title: سوالات
|
||||
normal: عادی
|
||||
closed: بسته
|
||||
deleted: حذف شده
|
||||
unlisted: Unlisted
|
||||
post: پست
|
||||
votes: آراء
|
||||
answers: پاسخ ها
|
||||
@@ -1480,12 +1538,11 @@ ui:
|
||||
status: وضعیت
|
||||
action: عمل
|
||||
change: تغییر
|
||||
pending: Pending
|
||||
filter:
|
||||
placeholder: "فیلتر براساس، user:id"
|
||||
answers:
|
||||
page_title: پاسخ ها
|
||||
normal: عادی
|
||||
deleted: حذف شده
|
||||
post: پست
|
||||
votes: آراء
|
||||
created: ایجاد شده
|
||||
@@ -1517,7 +1574,10 @@ ui:
|
||||
label: ایمیل ارتباطی
|
||||
msg: ایمیل مخاطب نمی تواند خالی باشد.
|
||||
validate: ایمیل تماس معتبر نیست.
|
||||
text: Email address of key contact responsible for this site.
|
||||
text: آدرس ایمیل مخاطب کلیدی مسئول این سایت.
|
||||
check_update:
|
||||
label: Software updates
|
||||
text: Automatically check for updates
|
||||
interface:
|
||||
page_title: رابط کاربری
|
||||
language:
|
||||
@@ -1573,27 +1633,31 @@ ui:
|
||||
logo:
|
||||
label: لوگو
|
||||
msg: کد نمی تواند خالی باشد.
|
||||
text: The logo image at the top left of your site. Use a wide rectangular image with a height of 56 and an aspect ratio greater than 3:1. If left blank, the site title text will be shown.
|
||||
text: تصویر لوگو در سمت چپ بالای سایت شما. از یک تصویر مستطیلی عریض با ارتفاع 56 و نسبت تصویر بیشتر از 3:1 استفاده کنید. اگر خالی بماند، متن عنوان سایت نشان داده می شود.
|
||||
mobile_logo:
|
||||
label: Mobile logo
|
||||
text: The logo used on mobile version of your site. Use a wide rectangular image with a height of 56. If left blank, the image from the "logo" setting will be used.
|
||||
label: لوگوی موبایل
|
||||
text: لوگوی مورد استفاده در نسخه موبایلی سایت شما. از یک تصویر مستطیلی عریض با ارتفاع 56 استفاده کنید. اگر خالی بماند، تصویر از تنظیمات "لوگو" استفاده خواهد شد.
|
||||
square_icon:
|
||||
label: Square icon
|
||||
msg: Square icon cannot be empty.
|
||||
text: Image used as the base for metadata icons. Should ideally be larger than 512x512.
|
||||
label: نماد مربعی
|
||||
msg: نماد مربعی نمی تواند خالی باشد.
|
||||
text: تصویر به عنوان پایه نمادهای متادیتا استفاده می شود. در حالت ایده آل باید بزرگتر از 512x512 باشد.
|
||||
favicon:
|
||||
label: Favicon
|
||||
text: A favicon for your site. To work correctly over a CDN it must be a png. Will be resized to 32x32. If left blank, "square icon" will be used.
|
||||
label: نمادک
|
||||
text: فاویکون برای سایت شما. برای اینکه روی CDN به درستی کار کند باید یک png باشد. به 32x32 تغییر اندازه خواهد شد. اگر خالی بماند، از "نماد مربع" استفاده می شود.
|
||||
legal:
|
||||
page_title: قانونی
|
||||
terms_of_service:
|
||||
label: Terms of service
|
||||
text: "You can add terms of service content here. If you already have a document hosted elsewhere, provide the full URL here."
|
||||
label: شرایط خدمات
|
||||
text: "می توانید محتوای شرایط خدمات را در اینجا اضافه کنید. اگر قبلاً سندی دارید که در جای دیگری میزبانی شده است، URL کامل را در اینجا ارائه دهید."
|
||||
privacy_policy:
|
||||
label: Privacy policy
|
||||
label: حریم خصوصی
|
||||
text: "You can add privacy policy content here. If you already have a document hosted elsewhere, provide the full URL here."
|
||||
write:
|
||||
page_title: نوشتن
|
||||
restrict_answer:
|
||||
title: Restrict answer
|
||||
label: Each user can only write one answer for each question
|
||||
text: "They can use the edit link to refine and improve their existing answer, instead."
|
||||
recommend_tags:
|
||||
label: Recommend tags
|
||||
text: "Please input tag slug above, one tag per line."
|
||||
@@ -1605,9 +1669,9 @@ ui:
|
||||
label: Reserved tags
|
||||
text: "Reserved tags can only be added to a post by moderator."
|
||||
seo:
|
||||
page_title: SEO
|
||||
page_title: بهینهسازی عملیات موتورهای جستجو
|
||||
permalink:
|
||||
label: Permalink
|
||||
label: پیوند ثابت
|
||||
text: Custom URL structures can improve the usability, and forward-compatibility of your links.
|
||||
robots:
|
||||
label: robots.txt
|
||||
@@ -1617,11 +1681,12 @@ ui:
|
||||
themes:
|
||||
label: Themes
|
||||
text: Select an existing theme.
|
||||
color_scheme:
|
||||
label: Color scheme
|
||||
navbar_style:
|
||||
label: Navbar Style
|
||||
text: Select an existing theme.
|
||||
label: Navbar style
|
||||
primary_color:
|
||||
label: Primary Color
|
||||
label: Primary color
|
||||
text: Modify the colors used by your themes
|
||||
css_and_html:
|
||||
page_title: CSS and HTML
|
||||
@@ -1660,6 +1725,10 @@ ui:
|
||||
title: Private
|
||||
label: Login required
|
||||
text: Only logged in users can access this community.
|
||||
password_login:
|
||||
title: Password login
|
||||
label: Allow email and password login
|
||||
text: "WARNING: If turn off, you may be unable to log in if you have not previously configured other login method."
|
||||
installed_plugins:
|
||||
title: Installed Plugins
|
||||
plugin_link: Plugins extend and expand the functionality of Answer. You may find plugins in the <1>Answer Plugin Repository</1>.
|
||||
@@ -1673,15 +1742,15 @@ ui:
|
||||
text: Select an existing plugin.
|
||||
name: Name
|
||||
version: Version
|
||||
status: Status
|
||||
action: Action
|
||||
status: وضعیت
|
||||
action: اقدام
|
||||
deactivate: Deactivate
|
||||
activate: Activate
|
||||
settings: Settings
|
||||
activate: فعال سازی
|
||||
settings: تنظیمات
|
||||
settings_users:
|
||||
title: Users
|
||||
title: کاربران
|
||||
avatar:
|
||||
label: Default avatar
|
||||
label: آواتار پیش فرض
|
||||
text: For users without a custom avatar of their own.
|
||||
gravatar_base_url:
|
||||
label: Gravatar Base URL
|
||||
@@ -1723,6 +1792,22 @@ ui:
|
||||
edit_answer: Edit answer
|
||||
edit_tag: Edit tag
|
||||
empty: No review tasks left.
|
||||
approve_revision_tip: Do you approve this revision?
|
||||
approve_flag_tip: Do you approve this flag?
|
||||
approve_post_tip: Do you approve this post?
|
||||
approve_user_tip: Do you approve this user?
|
||||
suggest_edits: Suggested edits
|
||||
flag_post: Flag post
|
||||
flag_user: Flag user
|
||||
queued_post: Queued post
|
||||
queued_user: Queued user
|
||||
filter_label: Type
|
||||
reputation: reputation
|
||||
flag_post_type: Flagged this post as {{ type }}.
|
||||
flag_user_type: Flagged this user as {{ type }}.
|
||||
edit_post: Edit post
|
||||
list_post: List post
|
||||
unlist_post: Unlist post
|
||||
timeline:
|
||||
undeleted: undeleted
|
||||
deleted: deleted
|
||||
@@ -1773,3 +1858,6 @@ ui:
|
||||
post_hide_list: This post has been hidden from list.
|
||||
post_show_list: This post has been shown to list.
|
||||
post_reopen: This post has been reopened.
|
||||
post_list: This post has been listed.
|
||||
post_unlist: This post has been unlisted.
|
||||
post_pending: Your post is awaiting review. This is a preview, it will be visible after it has been approved.
|
||||
|
||||
+3
-3
@@ -360,7 +360,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -433,7 +433,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -471,7 +471,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
+382
-294
File diff suppressed because it is too large
Load Diff
+3
-3
@@ -360,7 +360,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -433,7 +433,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -471,7 +471,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
+1863
File diff suppressed because it is too large
Load Diff
+3
-3
@@ -360,7 +360,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -433,7 +433,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -471,7 +471,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
+3
-3
@@ -355,7 +355,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -428,7 +428,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -466,7 +466,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
@@ -59,3 +59,6 @@ language_options:
|
||||
- label: "Slovak"
|
||||
value: "sk_SK"
|
||||
progress: 62
|
||||
- label: "فارسی"
|
||||
value: "fa_IR"
|
||||
progress: 85
|
||||
|
||||
+126
-38
@@ -15,7 +15,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
#The following fields are used for back-end
|
||||
# The following fields are used for back-end
|
||||
backend:
|
||||
base:
|
||||
success:
|
||||
@@ -82,6 +82,9 @@ backend:
|
||||
level_3:
|
||||
description:
|
||||
other: Level 3 (high reputation required for mature community)
|
||||
level_custom:
|
||||
description:
|
||||
other: Custom Level
|
||||
rank_question_add_label:
|
||||
other: Ask question
|
||||
rank_answer_add_label:
|
||||
@@ -137,6 +140,9 @@ backend:
|
||||
email_or_password_wrong_error:
|
||||
other: Email dan kata sandi tidak cocok.
|
||||
error:
|
||||
common:
|
||||
invalid_url:
|
||||
other: Invalid URL.
|
||||
password:
|
||||
space_invalid:
|
||||
other: Password cannot contain spaces.
|
||||
@@ -197,6 +203,8 @@ backend:
|
||||
question:
|
||||
already_deleted:
|
||||
other: This post has been deleted.
|
||||
under_review:
|
||||
other: Your post is awaiting review. It will be visible after it has been approved.
|
||||
not_found:
|
||||
other: Pertanyaan tidak ditemukan.
|
||||
cannot_deleted:
|
||||
@@ -267,6 +275,8 @@ backend:
|
||||
other: Anda tidak dapat memodifikasi role anda sendiri.
|
||||
not_allowed_registration:
|
||||
other: Currently the site is not open for registration.
|
||||
not_allowed_login_via_password:
|
||||
other: Currently the site is not allowed to login via password.
|
||||
access_denied:
|
||||
other: Access denied
|
||||
page_access_denied:
|
||||
@@ -480,7 +490,16 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
edit:
|
||||
other: edit
|
||||
review:
|
||||
queued_post:
|
||||
other: Queued post
|
||||
flagged_post:
|
||||
other: Flagged post
|
||||
suggested_post_edit:
|
||||
other: Suggested edits
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: Cara memformat
|
||||
@@ -520,6 +539,7 @@ ui:
|
||||
http_404: HTTP Error 404
|
||||
http_50X: HTTP Error 500
|
||||
http_403: HTTP Error 403
|
||||
logout: Log Out
|
||||
notifications:
|
||||
title: Pemberitahuan
|
||||
inbox: Kotak Masuk
|
||||
@@ -598,7 +618,7 @@ ui:
|
||||
msg:
|
||||
empty: File tidak boleh kosong.
|
||||
only_image: Hanya file Gambar yang diperbolehkan.
|
||||
max_size: Ukuran file tidak boleh melebihi 4MB.
|
||||
max_size: Ukuran file tidak boleh melebihi 4 MB.
|
||||
desc:
|
||||
label: Description
|
||||
tab_url: URL gambar
|
||||
@@ -660,6 +680,8 @@ ui:
|
||||
empty: Cannot be empty.
|
||||
msg:
|
||||
empty: Please select a reason.
|
||||
not_a_url: URL format is incorrect.
|
||||
url_not_match: URL origin does not match the current website.
|
||||
tag_modal:
|
||||
title: Create new tag
|
||||
form:
|
||||
@@ -678,6 +700,12 @@ ui:
|
||||
character: URL slug contains unallowed character set.
|
||||
desc:
|
||||
label: Description
|
||||
revision:
|
||||
label: Revision
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
btn_cancel: Cancel
|
||||
btn_submit: Submit
|
||||
btn_post: Post new tag
|
||||
@@ -704,21 +732,7 @@ ui:
|
||||
edit_tag:
|
||||
title: Ubah Tag
|
||||
default_reason: Sunting tag
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
label: Revisi
|
||||
display_name:
|
||||
label: Display name
|
||||
slug_name:
|
||||
label: URL slug
|
||||
info: 'Harus menggunakan set karakter "a-z", "0-9", "+ # - ."'
|
||||
desc:
|
||||
label: Deskripsi
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Jelaskan secara singkat perubahan yang Anda lakukan (ejaan yang diperbaiki, tata bahasa yang diperbaiki, pemformatan yang ditingkatkan)
|
||||
default_first_reason: Add tag
|
||||
btn_save_edits: Simpan suntingan
|
||||
btn_cancel: Batal
|
||||
dates:
|
||||
@@ -731,6 +745,8 @@ ui:
|
||||
x_hours_ago: "{{count}}h ago"
|
||||
hour: jam
|
||||
day: hari
|
||||
hours: hours
|
||||
days: days
|
||||
comment:
|
||||
btn_add_comment: Tambahkan Komentar
|
||||
reply_to: Balas ke
|
||||
@@ -740,7 +756,7 @@ ui:
|
||||
btn_flag: Flag
|
||||
btn_save_edits: Simpan suntingan
|
||||
btn_cancel: Batal
|
||||
show_more: Show more comments
|
||||
show_more: "{{count}} more comments"
|
||||
tip_question: >-
|
||||
Gunakan komentar untuk meminta informasi lebih lanjut atau menyarankan perbaikan. Hindari menjawab pertanyaan di komentar.
|
||||
tip_answer: >-
|
||||
@@ -749,6 +765,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Sunting jawaban
|
||||
default_reason: Edit jawaban
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +796,7 @@ ui:
|
||||
title: Add Question
|
||||
edit_title: Edit Question
|
||||
default_reason: Edit question
|
||||
default_first_reason: Add question
|
||||
similar_questions: Similar questions
|
||||
form:
|
||||
fields:
|
||||
@@ -833,7 +851,7 @@ ui:
|
||||
placeholder: Cari
|
||||
footer:
|
||||
build_on: >-
|
||||
Built on <1> Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
Powered by <1> Apache Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
upload_img:
|
||||
name: Ubah
|
||||
loading: sedang memuat...
|
||||
@@ -963,10 +981,10 @@ ui:
|
||||
label: Location
|
||||
placeholder: "City, Country"
|
||||
notification:
|
||||
heading: Notifications
|
||||
email: Email
|
||||
heading: Email Notifications
|
||||
turn_on: Turn on
|
||||
inbox:
|
||||
label: Email notifications
|
||||
label: Inbox notifications
|
||||
description: Answers to your questions, comments, invites, and more.
|
||||
all_new_question:
|
||||
label: All new questions
|
||||
@@ -1021,7 +1039,7 @@ ui:
|
||||
answers: jawaban
|
||||
invite_to_answer:
|
||||
title: People Asked
|
||||
desc: Invite people who you think might know the answer.
|
||||
desc: Select people who you think might know the answer.
|
||||
invite: Invite to answer
|
||||
add: Add people
|
||||
search: Search people
|
||||
@@ -1031,6 +1049,7 @@ ui:
|
||||
asked: ditanyakan
|
||||
update: Diubah
|
||||
edit: disunting
|
||||
commented: commented
|
||||
Views: Dilihat
|
||||
Follow: Ikuti
|
||||
Following: Mengikuti
|
||||
@@ -1048,10 +1067,12 @@ ui:
|
||||
title: Jawaban
|
||||
score: Nilai
|
||||
newest: Terbaru
|
||||
oldest: Oldest
|
||||
btn_accept: Terima
|
||||
btn_accepted: Diterima
|
||||
write_answer:
|
||||
title: Jawaban Anda
|
||||
edit_answer: Edit my existing answer
|
||||
btn_name: Kirimkan jawaban Anda
|
||||
add_another_answer: Tambahkan jawaban lain
|
||||
confirm_title: Lanjutkan menjawab
|
||||
@@ -1070,6 +1091,14 @@ ui:
|
||||
confirm_btn: Reopen
|
||||
title: Buka kembali postingan ini
|
||||
content: Kamu yakin ingin membuka kembali?
|
||||
list:
|
||||
confirm_btn: List
|
||||
title: List this post
|
||||
content: Are you sure you want to list?
|
||||
unlist:
|
||||
confirm_btn: Unlist
|
||||
title: Unlist this post
|
||||
content: Are you sure you want to unlist?
|
||||
pin:
|
||||
title: Pin this post
|
||||
content: Are you sure you wish to pinned globally? This post will appear at the top of all post lists.
|
||||
@@ -1091,6 +1120,9 @@ ui:
|
||||
save: Simpan
|
||||
delete: Hapus
|
||||
undelete: Undelete
|
||||
list: List
|
||||
unlist: Unlist
|
||||
unlisted: Unlisted
|
||||
login: Masuk
|
||||
signup: Daftar
|
||||
logout: Keluar
|
||||
@@ -1114,6 +1146,20 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
tag: Tag
|
||||
post_lowercase: post
|
||||
filter: Filter
|
||||
ignore: Ignore
|
||||
submit: Submit
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
pending: Pending
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1399,35 @@ ui:
|
||||
dashboard:
|
||||
title: Dasbor
|
||||
welcome: Selamat datang di Answer Admin!
|
||||
site_statistics: Site Statistics
|
||||
site_statistics: Site statistics
|
||||
questions: "Pertanyaan:"
|
||||
answers: "Jawaban:"
|
||||
comments: "Komentar:"
|
||||
votes: "Vote:"
|
||||
active_users: "Pengguna aktif:"
|
||||
users: "Users:"
|
||||
flags: "Flags:"
|
||||
site_health_status: Site Health Status
|
||||
reviews: "Reviews:"
|
||||
site_health: Site health
|
||||
version: "Versi:"
|
||||
https: "HTTPS:"
|
||||
uploading_files: "Mengunggah berkas:"
|
||||
upload_folder: "Upload folder:"
|
||||
run_mode: "Running mode:"
|
||||
private: Private
|
||||
public: Public
|
||||
smtp: "SMTP:"
|
||||
timezone: "Zona Waktu:"
|
||||
system_info: Informasi Sistem
|
||||
system_info: System info
|
||||
go_version: "Go version:"
|
||||
database: "Database:"
|
||||
database_size: "Database size:"
|
||||
storage_used: "Penyimpanan yang terpakai:"
|
||||
uptime: "Uptime:"
|
||||
answer_links: Tautan Answer
|
||||
links: Links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
forum: Forum
|
||||
documents: Dokumen
|
||||
feedback: Masukan
|
||||
support: Dukungan
|
||||
@@ -1384,6 +1442,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1470,9 +1530,7 @@ ui:
|
||||
content: A suspended user can't log in.
|
||||
questions:
|
||||
page_title: Pertanyaan
|
||||
normal: Normal
|
||||
closed: Ditutup
|
||||
deleted: Dihapus
|
||||
unlisted: Unlisted
|
||||
post: Post
|
||||
votes: Vote
|
||||
answers: Jawaban
|
||||
@@ -1480,12 +1538,11 @@ ui:
|
||||
status: Status
|
||||
action: Action
|
||||
change: Ubah
|
||||
pending: Pending
|
||||
filter:
|
||||
placeholder: "Filter berdasarkan judul, question:id"
|
||||
answers:
|
||||
page_title: Jawaban
|
||||
normal: Normal
|
||||
deleted: Deleted
|
||||
post: Post
|
||||
votes: Votes
|
||||
created: Created
|
||||
@@ -1518,6 +1575,9 @@ ui:
|
||||
msg: Contact email cannot be empty.
|
||||
validate: Contact email is not valid.
|
||||
text: Email address of key contact responsible for this site.
|
||||
check_update:
|
||||
label: Software updates
|
||||
text: Automatically check for updates
|
||||
interface:
|
||||
page_title: Interface
|
||||
language:
|
||||
@@ -1594,6 +1654,10 @@ ui:
|
||||
text: "You can add privacy policy content here. If you already have a document hosted elsewhere, provide the full URL here."
|
||||
write:
|
||||
page_title: Write
|
||||
restrict_answer:
|
||||
title: Restrict answer
|
||||
label: Each user can only write one answer for each question
|
||||
text: "They can use the edit link to refine and improve their existing answer, instead."
|
||||
recommend_tags:
|
||||
label: Recommend tags
|
||||
text: "Please input tag slug above, one tag per line."
|
||||
@@ -1617,11 +1681,12 @@ ui:
|
||||
themes:
|
||||
label: Themes
|
||||
text: Select an existing theme.
|
||||
color_scheme:
|
||||
label: Color scheme
|
||||
navbar_style:
|
||||
label: Navbar Style
|
||||
text: Select an existing theme.
|
||||
label: Navbar style
|
||||
primary_color:
|
||||
label: Primary Color
|
||||
label: Primary color
|
||||
text: Modify the colors used by your themes
|
||||
css_and_html:
|
||||
page_title: CSS and HTML
|
||||
@@ -1660,6 +1725,10 @@ ui:
|
||||
title: Private
|
||||
label: Login required
|
||||
text: Only logged in users can access this community.
|
||||
password_login:
|
||||
title: Password login
|
||||
label: Allow email and password login
|
||||
text: "WARNING: If turn off, you may be unable to log in if you have not previously configured other login method."
|
||||
installed_plugins:
|
||||
title: Installed Plugins
|
||||
plugin_link: Plugins extend and expand the functionality of Answer. You may find plugins in the <1>Answer Plugin Repository</1>.
|
||||
@@ -1723,6 +1792,22 @@ ui:
|
||||
edit_answer: Edit answer
|
||||
edit_tag: Edit tag
|
||||
empty: No review tasks left.
|
||||
approve_revision_tip: Do you approve this revision?
|
||||
approve_flag_tip: Do you approve this flag?
|
||||
approve_post_tip: Do you approve this post?
|
||||
approve_user_tip: Do you approve this user?
|
||||
suggest_edits: Suggested edits
|
||||
flag_post: Flag post
|
||||
flag_user: Flag user
|
||||
queued_post: Queued post
|
||||
queued_user: Queued user
|
||||
filter_label: Type
|
||||
reputation: reputation
|
||||
flag_post_type: Flagged this post as {{ type }}.
|
||||
flag_user_type: Flagged this user as {{ type }}.
|
||||
edit_post: Edit post
|
||||
list_post: List post
|
||||
unlist_post: Unlist post
|
||||
timeline:
|
||||
undeleted: undeleted
|
||||
deleted: deleted
|
||||
@@ -1773,3 +1858,6 @@ ui:
|
||||
post_hide_list: This post has been hidden from list.
|
||||
post_show_list: This post has been shown to list.
|
||||
post_reopen: This post has been reopened.
|
||||
post_list: This post has been listed.
|
||||
post_unlist: This post has been unlisted.
|
||||
post_pending: Your post is awaiting review. This is a preview, it will be visible after it has been approved.
|
||||
|
||||
+1148
-1060
File diff suppressed because it is too large
Load Diff
+178
-90
@@ -15,7 +15,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
#The following fields are used for back-end
|
||||
# The following fields are used for back-end
|
||||
backend:
|
||||
base:
|
||||
success:
|
||||
@@ -52,9 +52,9 @@ backend:
|
||||
unpin:
|
||||
other: Unpin
|
||||
show:
|
||||
other: List
|
||||
other: リスト
|
||||
invite_someone_to_answer:
|
||||
other: Edit
|
||||
other: 編集
|
||||
undelete:
|
||||
other: Undelete
|
||||
role:
|
||||
@@ -82,14 +82,17 @@ backend:
|
||||
level_3:
|
||||
description:
|
||||
other: Level 3 (high reputation required for mature community)
|
||||
level_custom:
|
||||
description:
|
||||
other: Custom Level
|
||||
rank_question_add_label:
|
||||
other: Ask question
|
||||
other: 質問する
|
||||
rank_answer_add_label:
|
||||
other: Write answer
|
||||
other: 回答を書く
|
||||
rank_comment_add_label:
|
||||
other: Write comment
|
||||
other: コメントを書く
|
||||
rank_report_add_label:
|
||||
other: Flag
|
||||
other: フラグ
|
||||
rank_comment_vote_up_label:
|
||||
other: Upvote comment
|
||||
rank_link_url_limit_label:
|
||||
@@ -105,7 +108,7 @@ backend:
|
||||
rank_invite_someone_to_answer_label:
|
||||
other: Invite someone to answer
|
||||
rank_tag_add_label:
|
||||
other: Create new tag
|
||||
other: 新しいタグを作成
|
||||
rank_tag_edit_label:
|
||||
other: Edit tag description (need to review)
|
||||
rank_question_edit_label:
|
||||
@@ -133,10 +136,13 @@ backend:
|
||||
password:
|
||||
other: パスワード
|
||||
pass:
|
||||
other: Password
|
||||
other: パスワード
|
||||
email_or_password_wrong_error:
|
||||
other: メールアドレスとパスワードが一致しません。
|
||||
error:
|
||||
common:
|
||||
invalid_url:
|
||||
other: Invalid URL.
|
||||
password:
|
||||
space_invalid:
|
||||
other: Password cannot contain spaces.
|
||||
@@ -197,6 +203,8 @@ backend:
|
||||
question:
|
||||
already_deleted:
|
||||
other: この投稿は削除されました。
|
||||
under_review:
|
||||
other: Your post is awaiting review. It will be visible after it has been approved.
|
||||
not_found:
|
||||
other: 質問が見つかりません。
|
||||
cannot_deleted:
|
||||
@@ -267,8 +275,10 @@ backend:
|
||||
other: You cannot modify your role.
|
||||
not_allowed_registration:
|
||||
other: Currently the site is not open for registration.
|
||||
not_allowed_login_via_password:
|
||||
other: Currently the site is not allowed to login via password.
|
||||
access_denied:
|
||||
other: Access denied
|
||||
other: アクセスが拒否されました
|
||||
page_access_denied:
|
||||
other: You do not have access to this page.
|
||||
add_bulk_users_format_error:
|
||||
@@ -480,7 +490,16 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
edit:
|
||||
other: edit
|
||||
review:
|
||||
queued_post:
|
||||
other: Queued post
|
||||
flagged_post:
|
||||
other: Flagged post
|
||||
suggested_post_edit:
|
||||
other: Suggested edits
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: How to Format
|
||||
@@ -520,6 +539,7 @@ ui:
|
||||
http_404: HTTP エラー 404
|
||||
http_50X: HTTP エラー 500
|
||||
http_403: HTTP エラー 403
|
||||
logout: Log Out
|
||||
notifications:
|
||||
title: 通知
|
||||
inbox: 受信トレイ
|
||||
@@ -529,16 +549,16 @@ ui:
|
||||
show_more: もっと見る
|
||||
someone: Someone
|
||||
inbox_type:
|
||||
all: All
|
||||
posts: Posts
|
||||
invites: Invites
|
||||
votes: Votes
|
||||
all: すべて
|
||||
posts: 投稿
|
||||
invites: 招待
|
||||
votes: 投票
|
||||
suspended:
|
||||
title: あなたのアカウントは停止されています。
|
||||
until_time: "あなたのアカウントは {{ time }} まで停止されました。"
|
||||
forever: このユーザーは永久に停止されました。
|
||||
end: You don't meet a community guideline.
|
||||
contact_us: Contact us
|
||||
contact_us: お問い合わせ
|
||||
editor:
|
||||
blockquote:
|
||||
text: 引用
|
||||
@@ -598,7 +618,7 @@ ui:
|
||||
msg:
|
||||
empty: ファイルは空にできません。
|
||||
only_image: 画像ファイルのみが許可されています。
|
||||
max_size: ファイルサイズは4MBを超えることはできません。
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: 説明
|
||||
tab_url: 画像URL
|
||||
@@ -660,6 +680,8 @@ ui:
|
||||
empty: 入力してください。
|
||||
msg:
|
||||
empty: 理由を選んでください。
|
||||
not_a_url: URL format is incorrect.
|
||||
url_not_match: URL origin does not match the current website.
|
||||
tag_modal:
|
||||
title: 新しいタグを作成
|
||||
form:
|
||||
@@ -670,7 +692,7 @@ ui:
|
||||
empty: 表示名を入力してください。
|
||||
range: 表示名は最大 35 文字までです。
|
||||
slug_name:
|
||||
label: URL slug
|
||||
label: URLスラッグ
|
||||
desc: '文字セット「a-z」、「0-9」、「+ # -」を使用する必要があります。'
|
||||
msg:
|
||||
empty: URL スラッグを空にすることはできません。
|
||||
@@ -678,6 +700,12 @@ ui:
|
||||
character: URL slug contains unallowed character set.
|
||||
desc:
|
||||
label: 説明
|
||||
revision:
|
||||
label: Revision
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
btn_cancel: キャンセル
|
||||
btn_submit: 送信
|
||||
btn_post: 新しいタグを投稿
|
||||
@@ -704,23 +732,9 @@ ui:
|
||||
edit_tag:
|
||||
title: タグを編集
|
||||
default_reason: タグを編集
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
label: Revision
|
||||
display_name:
|
||||
label: Display name
|
||||
slug_name:
|
||||
label: URL slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
default_first_reason: Add tag
|
||||
btn_save_edits: Save edits
|
||||
btn_cancel: Cancel
|
||||
btn_cancel: キャンセル
|
||||
dates:
|
||||
long_date: MMM D
|
||||
long_date_with_year: "MMM D, YYYY"
|
||||
@@ -729,26 +743,29 @@ ui:
|
||||
x_seconds_ago: "{{count}}s ago"
|
||||
x_minutes_ago: "{{count}}m ago"
|
||||
x_hours_ago: "{{count}}h ago"
|
||||
hour: hour
|
||||
day: day
|
||||
hour: 時
|
||||
day: 日
|
||||
hours: 時
|
||||
days: 日
|
||||
comment:
|
||||
btn_add_comment: Add comment
|
||||
btn_add_comment: コメントを追加
|
||||
reply_to: Reply to
|
||||
btn_reply: Reply
|
||||
btn_edit: Edit
|
||||
btn_delete: Delete
|
||||
btn_flag: Flag
|
||||
btn_save_edits: Save edits
|
||||
btn_cancel: Cancel
|
||||
show_more: Show more comments
|
||||
btn_reply: 返信
|
||||
btn_edit: 編集
|
||||
btn_delete: 削除
|
||||
btn_flag: フラグ
|
||||
btn_save_edits: 編集内容を保存
|
||||
btn_cancel: キャンセル
|
||||
show_more: "{{count}} more comments"
|
||||
tip_question: >-
|
||||
Use comments to ask for more information or suggest improvements. Avoid answering questions in comments.
|
||||
tip_answer: >-
|
||||
Use comments to reply to other users or notify them of changes. If you are adding new information, edit your post instead of commenting.
|
||||
tip_vote: It adds something useful to the post
|
||||
edit_answer:
|
||||
title: Edit Answer
|
||||
default_reason: Edit answer
|
||||
title: 回答を編集
|
||||
default_reason: 回答を編集
|
||||
default_first_reason: 回答を追加
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -762,24 +779,25 @@ ui:
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
btn_save_edits: Save edits
|
||||
btn_cancel: Cancel
|
||||
btn_cancel: キャンセル
|
||||
tags:
|
||||
title: Tags
|
||||
title: タグ
|
||||
sort_buttons:
|
||||
popular: Popular
|
||||
name: Name
|
||||
newest: Newest
|
||||
button_follow: Follow
|
||||
button_following: Following
|
||||
tag_label: questions
|
||||
search_placeholder: Filter by tag name
|
||||
popular: 人気
|
||||
name: 名前
|
||||
newest: 最新
|
||||
button_follow: フォロー
|
||||
button_following: フォロー中
|
||||
tag_label: 質問
|
||||
search_placeholder: タグ名でフィルタ
|
||||
no_desc: The tag has no description.
|
||||
more: More
|
||||
ask:
|
||||
title: Add Question
|
||||
edit_title: Edit Question
|
||||
default_reason: Edit question
|
||||
similar_questions: Similar questions
|
||||
title: 質問を追加
|
||||
edit_title: 質問を編集
|
||||
default_reason: 質問を編集
|
||||
default_first_reason: 質問を追加
|
||||
similar_questions: 類似の質問
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -825,18 +843,18 @@ ui:
|
||||
profile: Profile
|
||||
setting: Settings
|
||||
logout: Log out
|
||||
admin: Admin
|
||||
review: Review
|
||||
bookmark: Bookmarks
|
||||
admin: 管理者
|
||||
review: レビュー
|
||||
bookmark: ブックマーク
|
||||
moderation: Moderation
|
||||
search:
|
||||
placeholder: Search
|
||||
placeholder: 検索
|
||||
footer:
|
||||
build_on: >-
|
||||
Built on <1> Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
Powered by <1> Apache Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
upload_img:
|
||||
name: Change
|
||||
loading: loading...
|
||||
name: 変更
|
||||
loading: 読み込み中…
|
||||
pic_auth_code:
|
||||
title: Captcha
|
||||
placeholder: Type the text above
|
||||
@@ -925,7 +943,7 @@ ui:
|
||||
password_confirm:
|
||||
label: Confirm new password
|
||||
settings:
|
||||
page_title: Settings
|
||||
page_title: 設定
|
||||
goto_modify: Go to modify
|
||||
nav:
|
||||
profile: Profile
|
||||
@@ -940,18 +958,18 @@ ui:
|
||||
msg: Display name cannot be empty.
|
||||
msg_range: Display name up to 30 characters.
|
||||
username:
|
||||
label: Username
|
||||
label: ユーザー名
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters.
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
avatar:
|
||||
label: Profile image
|
||||
label: プロフィール画像
|
||||
gravatar: Gravatar
|
||||
gravatar_text: You can change image on
|
||||
custom: Custom
|
||||
custom_text: You can upload your image.
|
||||
default: System
|
||||
default: システム
|
||||
msg: Please upload an avatar
|
||||
bio:
|
||||
label: About me
|
||||
@@ -963,10 +981,10 @@ ui:
|
||||
label: Location
|
||||
placeholder: "City, Country"
|
||||
notification:
|
||||
heading: Notifications
|
||||
email: Email
|
||||
heading: Email Notifications
|
||||
turn_on: Turn on
|
||||
inbox:
|
||||
label: Email notifications
|
||||
label: Inbox notifications
|
||||
description: Answers to your questions, comments, invites, and more.
|
||||
all_new_question:
|
||||
label: All new questions
|
||||
@@ -1021,7 +1039,7 @@ ui:
|
||||
answers: answers
|
||||
invite_to_answer:
|
||||
title: People Asked
|
||||
desc: Invite people who you think might know the answer.
|
||||
desc: Select people who you think might know the answer.
|
||||
invite: Invite to answer
|
||||
add: Add people
|
||||
search: Search people
|
||||
@@ -1031,6 +1049,7 @@ ui:
|
||||
asked: asked
|
||||
update: Modified
|
||||
edit: edited
|
||||
commented: commented
|
||||
Views: Viewed
|
||||
Follow: Follow
|
||||
Following: Following
|
||||
@@ -1048,10 +1067,12 @@ ui:
|
||||
title: 回答
|
||||
score: スコア
|
||||
newest: 最新
|
||||
oldest: Oldest
|
||||
btn_accept: 承認
|
||||
btn_accepted: Accepted
|
||||
write_answer:
|
||||
title: Your Answer
|
||||
edit_answer: Edit my existing answer
|
||||
btn_name: Post your answer
|
||||
add_another_answer: Add another answer
|
||||
confirm_title: Continue to answer
|
||||
@@ -1070,6 +1091,14 @@ ui:
|
||||
confirm_btn: Reopen
|
||||
title: Reopen this post
|
||||
content: Are you sure you want to reopen?
|
||||
list:
|
||||
confirm_btn: List
|
||||
title: List this post
|
||||
content: Are you sure you want to list?
|
||||
unlist:
|
||||
confirm_btn: Unlist
|
||||
title: Unlist this post
|
||||
content: Are you sure you want to unlist?
|
||||
pin:
|
||||
title: Pin this post
|
||||
content: Are you sure you wish to pinned globally? This post will appear at the top of all post lists.
|
||||
@@ -1091,6 +1120,9 @@ ui:
|
||||
save: Save
|
||||
delete: Delete
|
||||
undelete: Undelete
|
||||
list: List
|
||||
unlist: Unlist
|
||||
unlisted: Unlisted
|
||||
login: Log in
|
||||
signup: 新規登録
|
||||
logout: Log out
|
||||
@@ -1114,6 +1146,20 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
tag: Tag
|
||||
post_lowercase: post
|
||||
filter: Filter
|
||||
ignore: Ignore
|
||||
submit: Submit
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
pending: Pending
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1399,35 @@ ui:
|
||||
dashboard:
|
||||
title: ダッシュボード
|
||||
welcome: Welcome to Answer Admin!
|
||||
site_statistics: サイト統計
|
||||
site_statistics: Site statistics
|
||||
questions: "質問:"
|
||||
answers: "回答:"
|
||||
comments: "評論:"
|
||||
votes: "投票:"
|
||||
active_users: "Active users:"
|
||||
users: "Users:"
|
||||
flags: "Flags:"
|
||||
site_health_status: Site Health Status
|
||||
reviews: "Reviews:"
|
||||
site_health: Site health
|
||||
version: "Version:"
|
||||
https: "HTTPS:"
|
||||
uploading_files: "Uploading files:"
|
||||
upload_folder: "Upload folder:"
|
||||
run_mode: "Running mode:"
|
||||
private: Private
|
||||
public: Public
|
||||
smtp: "SMTP:"
|
||||
timezone: "Timezone:"
|
||||
system_info: System Info
|
||||
system_info: System info
|
||||
go_version: "Go version:"
|
||||
database: "Database:"
|
||||
database_size: "Database size:"
|
||||
storage_used: "Storage used:"
|
||||
uptime: "Uptime:"
|
||||
answer_links: Answer Links
|
||||
links: Links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
forum: Forum
|
||||
documents: Documents
|
||||
feedback: フィードバック
|
||||
support: サポート
|
||||
@@ -1384,6 +1442,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1470,9 +1530,7 @@ ui:
|
||||
content: A suspended user can't log in.
|
||||
questions:
|
||||
page_title: 質問
|
||||
normal: 正常
|
||||
closed: 終了
|
||||
deleted: 削除済み
|
||||
unlisted: Unlisted
|
||||
post: 投稿
|
||||
votes: 投票
|
||||
answers: 回答
|
||||
@@ -1480,12 +1538,11 @@ ui:
|
||||
status: ステータス
|
||||
action: Action
|
||||
change: Change
|
||||
pending: Pending
|
||||
filter:
|
||||
placeholder: "Filter by title, question:id"
|
||||
answers:
|
||||
page_title: Answers
|
||||
normal: Normal
|
||||
deleted: Deleted
|
||||
post: Post
|
||||
votes: Votes
|
||||
created: Created
|
||||
@@ -1518,6 +1575,9 @@ ui:
|
||||
msg: Contact email cannot be empty.
|
||||
validate: Contact email is not valid.
|
||||
text: Email address of key contact responsible for this site.
|
||||
check_update:
|
||||
label: Software updates
|
||||
text: Automatically check for updates
|
||||
interface:
|
||||
page_title: Interface
|
||||
language:
|
||||
@@ -1594,6 +1654,10 @@ ui:
|
||||
text: "You can add privacy policy content here. If you already have a document hosted elsewhere, provide the full URL here."
|
||||
write:
|
||||
page_title: Write
|
||||
restrict_answer:
|
||||
title: Restrict answer
|
||||
label: Each user can only write one answer for each question
|
||||
text: "They can use the edit link to refine and improve their existing answer, instead."
|
||||
recommend_tags:
|
||||
label: Recommend tags
|
||||
text: "Please input tag slug above, one tag per line."
|
||||
@@ -1617,11 +1681,12 @@ ui:
|
||||
themes:
|
||||
label: Themes
|
||||
text: Select an existing theme.
|
||||
color_scheme:
|
||||
label: Color scheme
|
||||
navbar_style:
|
||||
label: Navbar Style
|
||||
text: Select an existing theme.
|
||||
label: Navbar style
|
||||
primary_color:
|
||||
label: Primary Color
|
||||
label: Primary color
|
||||
text: Modify the colors used by your themes
|
||||
css_and_html:
|
||||
page_title: CSS and HTML
|
||||
@@ -1660,6 +1725,10 @@ ui:
|
||||
title: Private
|
||||
label: Login required
|
||||
text: Only logged in users can access this community.
|
||||
password_login:
|
||||
title: Password login
|
||||
label: Allow email and password login
|
||||
text: "WARNING: If turn off, you may be unable to log in if you have not previously configured other login method."
|
||||
installed_plugins:
|
||||
title: Installed Plugins
|
||||
plugin_link: Plugins extend and expand the functionality of Answer. You may find plugins in the <1>Answer Plugin Repository</1>.
|
||||
@@ -1671,7 +1740,7 @@ ui:
|
||||
plugins:
|
||||
label: Plugins
|
||||
text: Select an existing plugin.
|
||||
name: Name
|
||||
name: 名前
|
||||
version: Version
|
||||
status: Status
|
||||
action: Action
|
||||
@@ -1723,6 +1792,22 @@ ui:
|
||||
edit_answer: Edit answer
|
||||
edit_tag: Edit tag
|
||||
empty: No review tasks left.
|
||||
approve_revision_tip: Do you approve this revision?
|
||||
approve_flag_tip: Do you approve this flag?
|
||||
approve_post_tip: Do you approve this post?
|
||||
approve_user_tip: Do you approve this user?
|
||||
suggest_edits: Suggested edits
|
||||
flag_post: Flag post
|
||||
flag_user: Flag user
|
||||
queued_post: Queued post
|
||||
queued_user: Queued user
|
||||
filter_label: Type
|
||||
reputation: reputation
|
||||
flag_post_type: Flagged this post as {{ type }}.
|
||||
flag_user_type: Flagged this user as {{ type }}.
|
||||
edit_post: Edit post
|
||||
list_post: List post
|
||||
unlist_post: Unlist post
|
||||
timeline:
|
||||
undeleted: undeleted
|
||||
deleted: deleted
|
||||
@@ -1755,7 +1840,7 @@ ui:
|
||||
comment: Comment
|
||||
no_data: "We couldn't find anything."
|
||||
users:
|
||||
title: Users
|
||||
title: ユーザー
|
||||
users_with_the_most_reputation: Users with the highest reputation scores this week
|
||||
users_with_the_most_vote: Users who voted the most this week
|
||||
staffs: Our community staff
|
||||
@@ -1773,3 +1858,6 @@ ui:
|
||||
post_hide_list: This post has been hidden from list.
|
||||
post_show_list: This post has been shown to list.
|
||||
post_reopen: This post has been reopened.
|
||||
post_list: This post has been listed.
|
||||
post_unlist: This post has been unlisted.
|
||||
post_pending: Your post is awaiting review. This is a preview, it will be visible after it has been approved.
|
||||
|
||||
+126
-38
@@ -15,7 +15,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
#The following fields are used for back-end
|
||||
# The following fields are used for back-end
|
||||
backend:
|
||||
base:
|
||||
success:
|
||||
@@ -82,6 +82,9 @@ backend:
|
||||
level_3:
|
||||
description:
|
||||
other: Level 3 (high reputation required for mature community)
|
||||
level_custom:
|
||||
description:
|
||||
other: Custom Level
|
||||
rank_question_add_label:
|
||||
other: Ask question
|
||||
rank_answer_add_label:
|
||||
@@ -137,6 +140,9 @@ backend:
|
||||
email_or_password_wrong_error:
|
||||
other: Email and password do not match.
|
||||
error:
|
||||
common:
|
||||
invalid_url:
|
||||
other: Invalid URL.
|
||||
password:
|
||||
space_invalid:
|
||||
other: Password cannot contain spaces.
|
||||
@@ -197,6 +203,8 @@ backend:
|
||||
question:
|
||||
already_deleted:
|
||||
other: This post has been deleted.
|
||||
under_review:
|
||||
other: Your post is awaiting review. It will be visible after it has been approved.
|
||||
not_found:
|
||||
other: Question not found.
|
||||
cannot_deleted:
|
||||
@@ -267,6 +275,8 @@ backend:
|
||||
other: You cannot modify your role.
|
||||
not_allowed_registration:
|
||||
other: Currently the site is not open for registration.
|
||||
not_allowed_login_via_password:
|
||||
other: Currently the site is not allowed to login via password.
|
||||
access_denied:
|
||||
other: Access denied
|
||||
page_access_denied:
|
||||
@@ -480,7 +490,16 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
edit:
|
||||
other: edit
|
||||
review:
|
||||
queued_post:
|
||||
other: Queued post
|
||||
flagged_post:
|
||||
other: Flagged post
|
||||
suggested_post_edit:
|
||||
other: Suggested edits
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: How to Format
|
||||
@@ -520,6 +539,7 @@ ui:
|
||||
http_404: HTTP Error 404
|
||||
http_50X: HTTP Error 500
|
||||
http_403: HTTP Error 403
|
||||
logout: Log Out
|
||||
notifications:
|
||||
title: Notifications
|
||||
inbox: Inbox
|
||||
@@ -598,7 +618,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description
|
||||
tab_url: Image URL
|
||||
@@ -660,6 +680,8 @@ ui:
|
||||
empty: Cannot be empty.
|
||||
msg:
|
||||
empty: Please select a reason.
|
||||
not_a_url: URL format is incorrect.
|
||||
url_not_match: URL origin does not match the current website.
|
||||
tag_modal:
|
||||
title: Create new tag
|
||||
form:
|
||||
@@ -678,6 +700,12 @@ ui:
|
||||
character: URL slug contains unallowed character set.
|
||||
desc:
|
||||
label: Description
|
||||
revision:
|
||||
label: Revision
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
btn_cancel: Cancel
|
||||
btn_submit: Submit
|
||||
btn_post: Post new tag
|
||||
@@ -704,21 +732,7 @@ ui:
|
||||
edit_tag:
|
||||
title: Edit Tag
|
||||
default_reason: Edit tag
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
label: Revision
|
||||
display_name:
|
||||
label: Display name
|
||||
slug_name:
|
||||
label: URL slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
default_first_reason: Add tag
|
||||
btn_save_edits: Save edits
|
||||
btn_cancel: Cancel
|
||||
dates:
|
||||
@@ -731,6 +745,8 @@ ui:
|
||||
x_hours_ago: "{{count}}h ago"
|
||||
hour: hour
|
||||
day: day
|
||||
hours: hours
|
||||
days: days
|
||||
comment:
|
||||
btn_add_comment: Add comment
|
||||
reply_to: Reply to
|
||||
@@ -740,7 +756,7 @@ ui:
|
||||
btn_flag: Flag
|
||||
btn_save_edits: Save edits
|
||||
btn_cancel: Cancel
|
||||
show_more: Show more comments
|
||||
show_more: "{{count}} more comments"
|
||||
tip_question: >-
|
||||
Use comments to ask for more information or suggest improvements. Avoid answering questions in comments.
|
||||
tip_answer: >-
|
||||
@@ -749,6 +765,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Edit Answer
|
||||
default_reason: Edit answer
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +796,7 @@ ui:
|
||||
title: Add Question
|
||||
edit_title: Edit Question
|
||||
default_reason: Edit question
|
||||
default_first_reason: Add question
|
||||
similar_questions: Similar questions
|
||||
form:
|
||||
fields:
|
||||
@@ -833,7 +851,7 @@ ui:
|
||||
placeholder: Search
|
||||
footer:
|
||||
build_on: >-
|
||||
Built on <1> Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
Powered by <1> Apache Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
upload_img:
|
||||
name: Change
|
||||
loading: loading...
|
||||
@@ -963,10 +981,10 @@ ui:
|
||||
label: Location
|
||||
placeholder: "City, Country"
|
||||
notification:
|
||||
heading: Notifications
|
||||
email: Email
|
||||
heading: Email Notifications
|
||||
turn_on: Turn on
|
||||
inbox:
|
||||
label: Email notifications
|
||||
label: Inbox notifications
|
||||
description: Answers to your questions, comments, invites, and more.
|
||||
all_new_question:
|
||||
label: All new questions
|
||||
@@ -1021,7 +1039,7 @@ ui:
|
||||
answers: answers
|
||||
invite_to_answer:
|
||||
title: People Asked
|
||||
desc: Invite people who you think might know the answer.
|
||||
desc: Select people who you think might know the answer.
|
||||
invite: Invite to answer
|
||||
add: Add people
|
||||
search: Search people
|
||||
@@ -1031,6 +1049,7 @@ ui:
|
||||
asked: asked
|
||||
update: Modified
|
||||
edit: edited
|
||||
commented: commented
|
||||
Views: Viewed
|
||||
Follow: Follow
|
||||
Following: Following
|
||||
@@ -1048,10 +1067,12 @@ ui:
|
||||
title: Answers
|
||||
score: Score
|
||||
newest: Newest
|
||||
oldest: Oldest
|
||||
btn_accept: Accept
|
||||
btn_accepted: Accepted
|
||||
write_answer:
|
||||
title: Your Answer
|
||||
edit_answer: Edit my existing answer
|
||||
btn_name: Post your answer
|
||||
add_another_answer: Add another answer
|
||||
confirm_title: Continue to answer
|
||||
@@ -1070,6 +1091,14 @@ ui:
|
||||
confirm_btn: Reopen
|
||||
title: Reopen this post
|
||||
content: Are you sure you want to reopen?
|
||||
list:
|
||||
confirm_btn: List
|
||||
title: List this post
|
||||
content: Are you sure you want to list?
|
||||
unlist:
|
||||
confirm_btn: Unlist
|
||||
title: Unlist this post
|
||||
content: Are you sure you want to unlist?
|
||||
pin:
|
||||
title: Pin this post
|
||||
content: Are you sure you wish to pinned globally? This post will appear at the top of all post lists.
|
||||
@@ -1091,6 +1120,9 @@ ui:
|
||||
save: Save
|
||||
delete: Delete
|
||||
undelete: Undelete
|
||||
list: List
|
||||
unlist: Unlist
|
||||
unlisted: Unlisted
|
||||
login: Log in
|
||||
signup: Sign up
|
||||
logout: Log out
|
||||
@@ -1114,6 +1146,20 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
tag: Tag
|
||||
post_lowercase: post
|
||||
filter: Filter
|
||||
ignore: Ignore
|
||||
submit: Submit
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
pending: Pending
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1399,35 @@ ui:
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
site_statistics: Site Statistics
|
||||
site_statistics: Site statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
comments: "Comments:"
|
||||
votes: "Votes:"
|
||||
active_users: "Active users:"
|
||||
users: "Users:"
|
||||
flags: "Flags:"
|
||||
site_health_status: Site Health Status
|
||||
reviews: "Reviews:"
|
||||
site_health: Site health
|
||||
version: "Version:"
|
||||
https: "HTTPS:"
|
||||
uploading_files: "Uploading files:"
|
||||
upload_folder: "Upload folder:"
|
||||
run_mode: "Running mode:"
|
||||
private: Private
|
||||
public: Public
|
||||
smtp: "SMTP:"
|
||||
timezone: "Timezone:"
|
||||
system_info: System Info
|
||||
system_info: System info
|
||||
go_version: "Go version:"
|
||||
database: "Database:"
|
||||
database_size: "Database size:"
|
||||
storage_used: "Storage used:"
|
||||
uptime: "Uptime:"
|
||||
answer_links: Answer Links
|
||||
links: Links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
forum: Forum
|
||||
documents: Documents
|
||||
feedback: Feedback
|
||||
support: Support
|
||||
@@ -1384,6 +1442,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1470,9 +1530,7 @@ ui:
|
||||
content: A suspended user can't log in.
|
||||
questions:
|
||||
page_title: Questions
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
unlisted: Unlisted
|
||||
post: Post
|
||||
votes: Votes
|
||||
answers: Answers
|
||||
@@ -1480,12 +1538,11 @@ ui:
|
||||
status: Status
|
||||
action: Action
|
||||
change: Change
|
||||
pending: Pending
|
||||
filter:
|
||||
placeholder: "Filter by title, question:id"
|
||||
answers:
|
||||
page_title: Answers
|
||||
normal: Normal
|
||||
deleted: Deleted
|
||||
post: Post
|
||||
votes: Votes
|
||||
created: Created
|
||||
@@ -1518,6 +1575,9 @@ ui:
|
||||
msg: Contact email cannot be empty.
|
||||
validate: Contact email is not valid.
|
||||
text: Email address of key contact responsible for this site.
|
||||
check_update:
|
||||
label: Software updates
|
||||
text: Automatically check for updates
|
||||
interface:
|
||||
page_title: Interface
|
||||
language:
|
||||
@@ -1594,6 +1654,10 @@ ui:
|
||||
text: "You can add privacy policy content here. If you already have a document hosted elsewhere, provide the full URL here."
|
||||
write:
|
||||
page_title: Write
|
||||
restrict_answer:
|
||||
title: Restrict answer
|
||||
label: Each user can only write one answer for each question
|
||||
text: "They can use the edit link to refine and improve their existing answer, instead."
|
||||
recommend_tags:
|
||||
label: Recommend tags
|
||||
text: "Please input tag slug above, one tag per line."
|
||||
@@ -1617,11 +1681,12 @@ ui:
|
||||
themes:
|
||||
label: Themes
|
||||
text: Select an existing theme.
|
||||
color_scheme:
|
||||
label: Color scheme
|
||||
navbar_style:
|
||||
label: Navbar Style
|
||||
text: Select an existing theme.
|
||||
label: Navbar style
|
||||
primary_color:
|
||||
label: Primary Color
|
||||
label: Primary color
|
||||
text: Modify the colors used by your themes
|
||||
css_and_html:
|
||||
page_title: CSS and HTML
|
||||
@@ -1660,6 +1725,10 @@ ui:
|
||||
title: Private
|
||||
label: Login required
|
||||
text: Only logged in users can access this community.
|
||||
password_login:
|
||||
title: Password login
|
||||
label: Allow email and password login
|
||||
text: "WARNING: If turn off, you may be unable to log in if you have not previously configured other login method."
|
||||
installed_plugins:
|
||||
title: Installed Plugins
|
||||
plugin_link: Plugins extend and expand the functionality of Answer. You may find plugins in the <1>Answer Plugin Repository</1>.
|
||||
@@ -1723,6 +1792,22 @@ ui:
|
||||
edit_answer: Edit answer
|
||||
edit_tag: Edit tag
|
||||
empty: No review tasks left.
|
||||
approve_revision_tip: Do you approve this revision?
|
||||
approve_flag_tip: Do you approve this flag?
|
||||
approve_post_tip: Do you approve this post?
|
||||
approve_user_tip: Do you approve this user?
|
||||
suggest_edits: Suggested edits
|
||||
flag_post: Flag post
|
||||
flag_user: Flag user
|
||||
queued_post: Queued post
|
||||
queued_user: Queued user
|
||||
filter_label: Type
|
||||
reputation: reputation
|
||||
flag_post_type: Flagged this post as {{ type }}.
|
||||
flag_user_type: Flagged this user as {{ type }}.
|
||||
edit_post: Edit post
|
||||
list_post: List post
|
||||
unlist_post: Unlist post
|
||||
timeline:
|
||||
undeleted: undeleted
|
||||
deleted: deleted
|
||||
@@ -1773,3 +1858,6 @@ ui:
|
||||
post_hide_list: This post has been hidden from list.
|
||||
post_show_list: This post has been shown to list.
|
||||
post_reopen: This post has been reopened.
|
||||
post_list: This post has been listed.
|
||||
post_unlist: This post has been unlisted.
|
||||
post_pending: Your post is awaiting review. This is a preview, it will be visible after it has been approved.
|
||||
|
||||
+3
-3
@@ -360,7 +360,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -433,7 +433,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -471,7 +471,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
+3
-3
@@ -360,7 +360,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -433,7 +433,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -471,7 +471,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
+313
-225
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -360,7 +360,7 @@ ui:
|
||||
msg:
|
||||
empty: Arquivo não pode ser vazio.
|
||||
only_image: Somente um arquivo de imagem é permitido.
|
||||
max_size: O tamanho do arquivo não pode exceder 4MB.
|
||||
max_size: O tamanho do arquivo não pode exceder 4 MB.
|
||||
desc:
|
||||
label: Descrição (opcional)
|
||||
tab_url: URL da imagem
|
||||
|
||||
+127
-39
@@ -15,7 +15,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
#The following fields are used for back-end
|
||||
# The following fields are used for back-end
|
||||
backend:
|
||||
base:
|
||||
success:
|
||||
@@ -82,6 +82,9 @@ backend:
|
||||
level_3:
|
||||
description:
|
||||
other: Nível 3 (Alta reputação necessária para a comunidade adulta)
|
||||
level_custom:
|
||||
description:
|
||||
other: Custom Level
|
||||
rank_question_add_label:
|
||||
other: Perguntar
|
||||
rank_answer_add_label:
|
||||
@@ -137,6 +140,9 @@ backend:
|
||||
email_or_password_wrong_error:
|
||||
other: O e-mail e a palavra-passe não coincidem.
|
||||
error:
|
||||
common:
|
||||
invalid_url:
|
||||
other: Invalid URL.
|
||||
password:
|
||||
space_invalid:
|
||||
other: A senha não pode conter espaços.
|
||||
@@ -197,6 +203,8 @@ backend:
|
||||
question:
|
||||
already_deleted:
|
||||
other: Essa publicação foi deletado.
|
||||
under_review:
|
||||
other: Your post is awaiting review. It will be visible after it has been approved.
|
||||
not_found:
|
||||
other: Pergunta não encontrada.
|
||||
cannot_deleted:
|
||||
@@ -267,6 +275,8 @@ backend:
|
||||
other: Você não pode modificar a sua função.
|
||||
not_allowed_registration:
|
||||
other: Atualmente o site não está aberto para cadastro
|
||||
not_allowed_login_via_password:
|
||||
other: Currently the site is not allowed to login via password.
|
||||
access_denied:
|
||||
other: Acesso negado
|
||||
page_access_denied:
|
||||
@@ -480,7 +490,16 @@ backend:
|
||||
other: aceito
|
||||
accepted:
|
||||
other: aceito
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
edit:
|
||||
other: edit
|
||||
review:
|
||||
queued_post:
|
||||
other: Queued post
|
||||
flagged_post:
|
||||
other: Flagged post
|
||||
suggested_post_edit:
|
||||
other: Suggested edits
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: Como formatar
|
||||
@@ -520,6 +539,7 @@ ui:
|
||||
http_404: HTTP Erro 404
|
||||
http_50X: HTTP Erro 500
|
||||
http_403: HTTP Erro 403
|
||||
logout: Log Out
|
||||
notifications:
|
||||
title: Notificações
|
||||
inbox: Caixa de entrada
|
||||
@@ -598,7 +618,7 @@ ui:
|
||||
msg:
|
||||
empty: Arquivo não pode ser vazio.
|
||||
only_image: Somente um arquivo de imagem é permitido.
|
||||
max_size: O tamanho do arquivo não pode exceder 4MB.
|
||||
max_size: O tamanho do arquivo não pode exceder 4 MB.
|
||||
desc:
|
||||
label: Descrição (opcional)
|
||||
tab_url: URL da imagem
|
||||
@@ -660,6 +680,8 @@ ui:
|
||||
empty: Não pode ser vazio.
|
||||
msg:
|
||||
empty: Por favor selecione um motivo.
|
||||
not_a_url: URL format is incorrect.
|
||||
url_not_match: URL origin does not match the current website.
|
||||
tag_modal:
|
||||
title: Criar novo marcador
|
||||
form:
|
||||
@@ -678,6 +700,12 @@ ui:
|
||||
character: URL slug contém conjunto de caracteres não permitido.
|
||||
desc:
|
||||
label: Descrição (opcional)
|
||||
revision:
|
||||
label: Revision
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
btn_cancel: Cancelar
|
||||
btn_submit: Enviar
|
||||
btn_post: Postar novo marcador
|
||||
@@ -704,25 +732,11 @@ ui:
|
||||
edit_tag:
|
||||
title: Editar marcador
|
||||
default_reason: Editar marcador
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
label: Revisão
|
||||
display_name:
|
||||
label: Nome de exibição
|
||||
slug_name:
|
||||
label: Slug de URL
|
||||
info: 'Deve usar o conjunto de caracteres "a-z", "0-9", "+ # - ."'
|
||||
desc:
|
||||
label: Descrição
|
||||
edit_summary:
|
||||
label: Resumo da edição
|
||||
placeholder: >-
|
||||
Explique resumidamente suas alterações (ortografia corrigida, gramática corrigida, formatação aprimorada)
|
||||
default_first_reason: Add tag
|
||||
btn_save_edits: Salvar edições
|
||||
btn_cancel: Cancelar
|
||||
dates:
|
||||
long_date: D MMM
|
||||
long_date: D MMM
|
||||
long_date_with_year: "D MMM, YYYY"
|
||||
long_date_with_time: "D MMM, YYYY [at] HH:mm"
|
||||
now: agora
|
||||
@@ -731,6 +745,8 @@ ui:
|
||||
x_hours_ago: "{{count}}h atrás"
|
||||
hour: hora
|
||||
day: dia
|
||||
hours: hours
|
||||
days: days
|
||||
comment:
|
||||
btn_add_comment: Adicionar comentário
|
||||
reply_to: Responder a
|
||||
@@ -740,7 +756,7 @@ ui:
|
||||
btn_flag: Marcador
|
||||
btn_save_edits: Salvar edições
|
||||
btn_cancel: Cancelar
|
||||
show_more: Mostrar mais comentários
|
||||
show_more: "{{count}} more comments"
|
||||
tip_question: >-
|
||||
Use os comentários para pedir mais informações ou sugerir melhorias. Evite responder perguntas nos comentários.
|
||||
tip_answer: >-
|
||||
@@ -749,6 +765,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Editar Resposta
|
||||
default_reason: Editar Resposta
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +796,7 @@ ui:
|
||||
title: Adicionar Pergunta
|
||||
edit_title: Editar Pergunta
|
||||
default_reason: Editar pergunta
|
||||
default_first_reason: Add question
|
||||
similar_questions: Similar perguntas
|
||||
form:
|
||||
fields:
|
||||
@@ -833,7 +851,7 @@ ui:
|
||||
placeholder: Procurar
|
||||
footer:
|
||||
build_on: >-
|
||||
Construído com <1> Answer </1>- o software de código aberto que empodera comunidades de Q&A.<br />Feito com amor © {{cc}}.
|
||||
Powered by <1> Apache Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
upload_img:
|
||||
name: Mudar
|
||||
loading: carregando...
|
||||
@@ -963,10 +981,10 @@ ui:
|
||||
label: Localização (opcional)
|
||||
placeholder: "Cidade, País"
|
||||
notification:
|
||||
heading: Notificações
|
||||
email: E-mail
|
||||
heading: Email Notifications
|
||||
turn_on: Turn on
|
||||
inbox:
|
||||
label: Notificações de email
|
||||
label: Inbox notifications
|
||||
description: Responda suas próprias perguntas, comentários, convites e muito mais.
|
||||
all_new_question:
|
||||
label: Todas as perguntas novas
|
||||
@@ -1021,7 +1039,7 @@ ui:
|
||||
answers: respostas
|
||||
invite_to_answer:
|
||||
title: Pessoas Perguntaram
|
||||
desc: Convidar pessoas que você acha que deve saber a resposta.
|
||||
desc: Select people who you think might know the answer.
|
||||
invite: Convidar para responder
|
||||
add: Adicionar pessoas
|
||||
search: Procurar pessoas
|
||||
@@ -1031,6 +1049,7 @@ ui:
|
||||
asked: perguntado
|
||||
update: Modificado
|
||||
edit: modificado
|
||||
commented: commented
|
||||
Views: Visualizado
|
||||
Follow: Seguir
|
||||
Following: Seguindo
|
||||
@@ -1048,10 +1067,12 @@ ui:
|
||||
title: Respostas
|
||||
score: Pontuação
|
||||
newest: Mais recente
|
||||
oldest: Oldest
|
||||
btn_accept: Aceito
|
||||
btn_accepted: Aceito
|
||||
write_answer:
|
||||
title: A sua Resposta
|
||||
edit_answer: Edit my existing answer
|
||||
btn_name: Publicação a sua resposta
|
||||
add_another_answer: Adicionar outra resposta
|
||||
confirm_title: Continuar a responder
|
||||
@@ -1070,6 +1091,14 @@ ui:
|
||||
confirm_btn: Reabrir
|
||||
title: Reabrir esta postagem
|
||||
content: Você tem certeza que deseja reabrir?
|
||||
list:
|
||||
confirm_btn: List
|
||||
title: List this post
|
||||
content: Are you sure you want to list?
|
||||
unlist:
|
||||
confirm_btn: Unlist
|
||||
title: Unlist this post
|
||||
content: Are you sure you want to unlist?
|
||||
pin:
|
||||
title: Fixe esta postagem
|
||||
content: Tem certeza de que deseja fixar globalmente? Esta postagem aparecerá no topo de todas as listas de postagens.
|
||||
@@ -1091,6 +1120,9 @@ ui:
|
||||
save: Salvar
|
||||
delete: Excluir
|
||||
undelete: Undelete
|
||||
list: List
|
||||
unlist: Unlist
|
||||
unlisted: Unlisted
|
||||
login: Entrar
|
||||
signup: Cadastrar-se
|
||||
logout: Sair
|
||||
@@ -1114,6 +1146,20 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
tag: Tag
|
||||
post_lowercase: post
|
||||
filter: Filter
|
||||
ignore: Ignore
|
||||
submit: Submit
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
pending: Pending
|
||||
search:
|
||||
title: Procurar Resultados
|
||||
keywords: Palavras-chave
|
||||
@@ -1353,23 +1399,35 @@ ui:
|
||||
dashboard:
|
||||
title: Painel
|
||||
welcome: Bem vindo ao Answer Administrador!
|
||||
site_statistics: Estatísticas do Site
|
||||
site_statistics: Site statistics
|
||||
questions: "Perguntas:"
|
||||
answers: "Respostas:"
|
||||
comments: "Comentários:"
|
||||
votes: "Votos:"
|
||||
active_users: "Usuários ativos:"
|
||||
users: "Users:"
|
||||
flags: "Marcadores:"
|
||||
site_health_status: Estatísticas da saúde do site
|
||||
reviews: "Reviews:"
|
||||
site_health: Site health
|
||||
version: "Versão:"
|
||||
https: "HTTPS:"
|
||||
uploading_files: "Enviando arquivos:"
|
||||
upload_folder: "Upload folder:"
|
||||
run_mode: "Running mode:"
|
||||
private: Private
|
||||
public: Public
|
||||
smtp: "SMTP:"
|
||||
timezone: "Fuso horário:"
|
||||
system_info: Informações do Sistema
|
||||
system_info: System info
|
||||
go_version: "Go version:"
|
||||
database: "Database:"
|
||||
database_size: "Database size:"
|
||||
storage_used: "Armazenamento usado:"
|
||||
uptime: "Tempo de atividade:"
|
||||
answer_links: Links das Respostas
|
||||
links: Links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
forum: Forum
|
||||
documents: Documentos
|
||||
feedback: Opinião
|
||||
support: Supporte
|
||||
@@ -1384,6 +1442,8 @@ ui:
|
||||
allowed: Permitido
|
||||
enabled: Ativo
|
||||
disabled: Disponível
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Marcadores
|
||||
pending: Pendente
|
||||
@@ -1470,9 +1530,7 @@ ui:
|
||||
content: A suspended user can't log in.
|
||||
questions:
|
||||
page_title: Perguntas
|
||||
normal: Normal
|
||||
closed: Fechado
|
||||
deleted: Removido
|
||||
unlisted: Unlisted
|
||||
post: Publicação
|
||||
votes: Votos
|
||||
answers: Respostas
|
||||
@@ -1480,12 +1538,11 @@ ui:
|
||||
status: Estado
|
||||
action: Ação
|
||||
change: Mudar
|
||||
pending: Pending
|
||||
filter:
|
||||
placeholder: "Filtrar por título, question:id"
|
||||
answers:
|
||||
page_title: Respostas
|
||||
normal: Normal
|
||||
deleted: Removido
|
||||
post: Publicação
|
||||
votes: Votos
|
||||
created: Criado
|
||||
@@ -1518,6 +1575,9 @@ ui:
|
||||
msg: E-mail par contato não pode ser vazio.
|
||||
validate: E-mail par contato não é válido.
|
||||
text: Endereço de e-mail do principal contato responsável por este site.
|
||||
check_update:
|
||||
label: Software updates
|
||||
text: Automatically check for updates
|
||||
interface:
|
||||
page_title: Interface
|
||||
language:
|
||||
@@ -1594,6 +1654,10 @@ ui:
|
||||
text: "Você pode adicionar termos de conteúdo de serviço aqui. Se você já tem um documento hospedado em outro lugar, forneça a URL completa aqui."
|
||||
write:
|
||||
page_title: Escrever
|
||||
restrict_answer:
|
||||
title: Restrict answer
|
||||
label: Each user can only write one answer for each question
|
||||
text: "They can use the edit link to refine and improve their existing answer, instead."
|
||||
recommend_tags:
|
||||
label: Recommend Marcadores
|
||||
text: "Por favor input tag slug above, one tag per line."
|
||||
@@ -1617,11 +1681,12 @@ ui:
|
||||
themes:
|
||||
label: Temas
|
||||
text: Selecionar um tema existente.
|
||||
color_scheme:
|
||||
label: Color scheme
|
||||
navbar_style:
|
||||
label: Estilo da barra de navegação
|
||||
text: Selecionar um tema existente.
|
||||
label: Navbar style
|
||||
primary_color:
|
||||
label: Cor Primária
|
||||
label: Primary color
|
||||
text: Modifica as cores usadas por seus temas
|
||||
css_and_html:
|
||||
page_title: CSS e HTML
|
||||
@@ -1660,6 +1725,10 @@ ui:
|
||||
title: Privado
|
||||
label: Login requirido
|
||||
text: Somente usuários conectados podem acessar esta comunidade.
|
||||
password_login:
|
||||
title: Password login
|
||||
label: Allow email and password login
|
||||
text: "WARNING: If turn off, you may be unable to log in if you have not previously configured other login method."
|
||||
installed_plugins:
|
||||
title: Extensões instaladas
|
||||
plugin_link: Extensões estendem e expandem a funcionalidade da Resposta. Você pode encontrar extensões no <1>Repositório de extensões do Answer</1>.
|
||||
@@ -1723,6 +1792,22 @@ ui:
|
||||
edit_answer: Editar resposta
|
||||
edit_tag: Editar marcador
|
||||
empty: Nenhuma tarefa de revisão restante.
|
||||
approve_revision_tip: Do you approve this revision?
|
||||
approve_flag_tip: Do you approve this flag?
|
||||
approve_post_tip: Do you approve this post?
|
||||
approve_user_tip: Do you approve this user?
|
||||
suggest_edits: Suggested edits
|
||||
flag_post: Flag post
|
||||
flag_user: Flag user
|
||||
queued_post: Queued post
|
||||
queued_user: Queued user
|
||||
filter_label: Type
|
||||
reputation: reputation
|
||||
flag_post_type: Flagged this post as {{ type }}.
|
||||
flag_user_type: Flagged this user as {{ type }}.
|
||||
edit_post: Edit post
|
||||
list_post: List post
|
||||
unlist_post: Unlist post
|
||||
timeline:
|
||||
undeleted: não removido
|
||||
deleted: removido
|
||||
@@ -1773,3 +1858,6 @@ ui:
|
||||
post_hide_list: Esta postagem foi ocultada da lista.
|
||||
post_show_list: Esta postagem foi exibida à lista.
|
||||
post_reopen: Esta publicação foi re-aberta.
|
||||
post_list: This post has been listed.
|
||||
post_unlist: This post has been unlisted.
|
||||
post_pending: Your post is awaiting review. This is a preview, it will be visible after it has been approved.
|
||||
|
||||
+1432
-952
File diff suppressed because it is too large
Load Diff
+947
-859
File diff suppressed because it is too large
Load Diff
+126
-38
@@ -15,7 +15,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
#The following fields are used for back-end
|
||||
# The following fields are used for back-end
|
||||
backend:
|
||||
base:
|
||||
success:
|
||||
@@ -82,6 +82,9 @@ backend:
|
||||
level_3:
|
||||
description:
|
||||
other: Level 3 (high reputation required for mature community)
|
||||
level_custom:
|
||||
description:
|
||||
other: Custom Level
|
||||
rank_question_add_label:
|
||||
other: Ask question
|
||||
rank_answer_add_label:
|
||||
@@ -137,6 +140,9 @@ backend:
|
||||
email_or_password_wrong_error:
|
||||
other: E-mail a heslo sa nezhodujú.
|
||||
error:
|
||||
common:
|
||||
invalid_url:
|
||||
other: Invalid URL.
|
||||
password:
|
||||
space_invalid:
|
||||
other: Password cannot contain spaces.
|
||||
@@ -197,6 +203,8 @@ backend:
|
||||
question:
|
||||
already_deleted:
|
||||
other: Tento príspevok bol odstránený.
|
||||
under_review:
|
||||
other: Your post is awaiting review. It will be visible after it has been approved.
|
||||
not_found:
|
||||
other: Otázka sa nenašla.
|
||||
cannot_deleted:
|
||||
@@ -267,6 +275,8 @@ backend:
|
||||
other: Svoju rolu nemôžete zmeniť.
|
||||
not_allowed_registration:
|
||||
other: Currently the site is not open for registration.
|
||||
not_allowed_login_via_password:
|
||||
other: Currently the site is not allowed to login via password.
|
||||
access_denied:
|
||||
other: Access denied
|
||||
page_access_denied:
|
||||
@@ -480,7 +490,16 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
edit:
|
||||
other: edit
|
||||
review:
|
||||
queued_post:
|
||||
other: Queued post
|
||||
flagged_post:
|
||||
other: Flagged post
|
||||
suggested_post_edit:
|
||||
other: Suggested edits
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: Ako formátovať
|
||||
@@ -520,6 +539,7 @@ ui:
|
||||
http_404: HTTP chyba 404
|
||||
http_50X: HTTP chyba 403
|
||||
http_403: HTTP Error 403
|
||||
logout: Log Out
|
||||
notifications:
|
||||
title: Oznámenia
|
||||
inbox: Doručená pošta
|
||||
@@ -598,7 +618,7 @@ ui:
|
||||
msg:
|
||||
empty: Názov súboru nemôže byť prázdny.
|
||||
only_image: Povolené sú iba obrázkové súbory.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Popis
|
||||
tab_url: URL obrázka
|
||||
@@ -660,6 +680,8 @@ ui:
|
||||
empty: Nemôže byť prázdny.
|
||||
msg:
|
||||
empty: Vyberte dôvod.
|
||||
not_a_url: URL format is incorrect.
|
||||
url_not_match: URL origin does not match the current website.
|
||||
tag_modal:
|
||||
title: Vytvorte novú značku
|
||||
form:
|
||||
@@ -678,6 +700,12 @@ ui:
|
||||
character: URL slug obsahuje nepovolenú znakovú sadu.
|
||||
desc:
|
||||
label: Opis
|
||||
revision:
|
||||
label: Revision
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
btn_cancel: Zrušiť
|
||||
btn_submit: Potvrdiť
|
||||
btn_post: Post new tag
|
||||
@@ -704,21 +732,7 @@ ui:
|
||||
edit_tag:
|
||||
title: Upraviť značku
|
||||
default_reason: Upraviť značku
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
label: Revízia
|
||||
display_name:
|
||||
label: Display name
|
||||
slug_name:
|
||||
label: URL slug
|
||||
info: 'Musíte použiť znakovú sadu "a-z", "0-9", "+ # - ."'
|
||||
desc:
|
||||
label: Opis
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Stručne vysvetlite svoje zmeny (opravený pravopis, opravená gramatika, vylepšené formátovanie)
|
||||
default_first_reason: Add tag
|
||||
btn_save_edits: Uložiť úpravy
|
||||
btn_cancel: Zrušiť
|
||||
dates:
|
||||
@@ -731,6 +745,8 @@ ui:
|
||||
x_hours_ago: "pred {{count}}h"
|
||||
hour: hodina
|
||||
day: deň
|
||||
hours: hours
|
||||
days: days
|
||||
comment:
|
||||
btn_add_comment: Pridať komentár
|
||||
reply_to: Odpovedať
|
||||
@@ -740,7 +756,7 @@ ui:
|
||||
btn_flag: Vlajka
|
||||
btn_save_edits: Uložiť zmeny
|
||||
btn_cancel: Zrušiť
|
||||
show_more: Zobraziť viac komentárov
|
||||
show_more: "{{count}} more comments"
|
||||
tip_question: >-
|
||||
Use comments to ask for more information or suggest improvements. Avoid answering questions in comments.
|
||||
tip_answer: >-
|
||||
@@ -749,6 +765,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Uprav odpoveď
|
||||
default_reason: Uprav odpoveď
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +796,7 @@ ui:
|
||||
title: Pridať otázku
|
||||
edit_title: Upraviť otázku
|
||||
default_reason: Upraviť otázku
|
||||
default_first_reason: Add question
|
||||
similar_questions: Podobné otázky
|
||||
form:
|
||||
fields:
|
||||
@@ -833,7 +851,7 @@ ui:
|
||||
placeholder: Vyhľadávanie
|
||||
footer:
|
||||
build_on: >-
|
||||
Postavené na <1> Answer </1> – softvéri s otvoreným zdrojom, ktorý poháňa komunity otázok a odpovedí.<br />Vyrobené s láskou © {{cc}}.
|
||||
Powered by <1> Apache Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
upload_img:
|
||||
name: Zmena
|
||||
loading: načítavanie...
|
||||
@@ -963,10 +981,10 @@ ui:
|
||||
label: Poloha
|
||||
placeholder: "Mesto, Krajina"
|
||||
notification:
|
||||
heading: Oznámenia
|
||||
email: Email
|
||||
heading: Email Notifications
|
||||
turn_on: Turn on
|
||||
inbox:
|
||||
label: Email notifications
|
||||
label: Inbox notifications
|
||||
description: Answers to your questions, comments, invites, and more.
|
||||
all_new_question:
|
||||
label: All new questions
|
||||
@@ -1021,7 +1039,7 @@ ui:
|
||||
answers: odpovede
|
||||
invite_to_answer:
|
||||
title: People Asked
|
||||
desc: Invite people who you think might know the answer.
|
||||
desc: Select people who you think might know the answer.
|
||||
invite: Invite to answer
|
||||
add: Add people
|
||||
search: Search people
|
||||
@@ -1031,6 +1049,7 @@ ui:
|
||||
asked: opýtané
|
||||
update: Aktualizované
|
||||
edit: upravené
|
||||
commented: commented
|
||||
Views: Videné
|
||||
Follow: Sledovať
|
||||
Following: Sledované
|
||||
@@ -1048,10 +1067,12 @@ ui:
|
||||
title: Odpovede
|
||||
score: Skóre
|
||||
newest: Najnovšie
|
||||
oldest: Oldest
|
||||
btn_accept: Súhlasiť
|
||||
btn_accepted: Prijaté
|
||||
write_answer:
|
||||
title: Vaša odpoveď
|
||||
edit_answer: Edit my existing answer
|
||||
btn_name: Pošlite svoju odpoveď
|
||||
add_another_answer: Pridajte ďalšiu odpoveď
|
||||
confirm_title: Pokračovať v odpovedi
|
||||
@@ -1070,6 +1091,14 @@ ui:
|
||||
confirm_btn: Reopen
|
||||
title: Znovu otvoriť tento príspevok
|
||||
content: Ste si istý, že ho chcete znovu otvoriť?
|
||||
list:
|
||||
confirm_btn: List
|
||||
title: List this post
|
||||
content: Are you sure you want to list?
|
||||
unlist:
|
||||
confirm_btn: Unlist
|
||||
title: Unlist this post
|
||||
content: Are you sure you want to unlist?
|
||||
pin:
|
||||
title: Pin this post
|
||||
content: Are you sure you wish to pinned globally? This post will appear at the top of all post lists.
|
||||
@@ -1091,6 +1120,9 @@ ui:
|
||||
save: Uložiť
|
||||
delete: Vymazať
|
||||
undelete: Undelete
|
||||
list: List
|
||||
unlist: Unlist
|
||||
unlisted: Unlisted
|
||||
login: Prihlásiť sa
|
||||
signup: Registrovať sa
|
||||
logout: Odhlásiť sa
|
||||
@@ -1114,6 +1146,20 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
tag: Tag
|
||||
post_lowercase: post
|
||||
filter: Filter
|
||||
ignore: Ignore
|
||||
submit: Submit
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
pending: Pending
|
||||
search:
|
||||
title: Výsledky vyhľadávania
|
||||
keywords: Kľúčové slová
|
||||
@@ -1353,23 +1399,35 @@ ui:
|
||||
dashboard:
|
||||
title: Nástenka
|
||||
welcome: Vitajte v Administrátorovi odpovedí!
|
||||
site_statistics: Štatistiky stránky
|
||||
site_statistics: Site statistics
|
||||
questions: "Otázky:"
|
||||
answers: "Odpovede:"
|
||||
comments: "Komentáre:"
|
||||
votes: "Hlasy:"
|
||||
active_users: "Aktívni používatelia:"
|
||||
users: "Users:"
|
||||
flags: "Vlajky:"
|
||||
site_health_status: Site Health Status
|
||||
reviews: "Reviews:"
|
||||
site_health: Site health
|
||||
version: "Verzia:"
|
||||
https: "HTTPS:"
|
||||
uploading_files: "Nahrávanie súborov:"
|
||||
upload_folder: "Upload folder:"
|
||||
run_mode: "Running mode:"
|
||||
private: Private
|
||||
public: Public
|
||||
smtp: "SMTP:"
|
||||
timezone: "Časové pásmo:"
|
||||
system_info: Systémové informácie
|
||||
system_info: System info
|
||||
go_version: "Go version:"
|
||||
database: "Database:"
|
||||
database_size: "Database size:"
|
||||
storage_used: "Použité úložisko:"
|
||||
uptime: "Doba prevádzky:"
|
||||
answer_links: Odkazy na odpovede
|
||||
links: Links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
forum: Forum
|
||||
documents: Dokumenty
|
||||
feedback: Spätná väzba
|
||||
support: Podpora
|
||||
@@ -1384,6 +1442,8 @@ ui:
|
||||
allowed: Povolené
|
||||
enabled: Povolené
|
||||
disabled: Zablokované
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Vlajky
|
||||
pending: Prebiehajúce
|
||||
@@ -1470,9 +1530,7 @@ ui:
|
||||
content: A suspended user can't log in.
|
||||
questions:
|
||||
page_title: Otázky
|
||||
normal: Normalne
|
||||
closed: Uzatvorené
|
||||
deleted: Vymazané
|
||||
unlisted: Unlisted
|
||||
post: poslané
|
||||
votes: Hlasy
|
||||
answers: Odpovede
|
||||
@@ -1480,12 +1538,11 @@ ui:
|
||||
status: Stav
|
||||
action: Akcia
|
||||
change: Zmena
|
||||
pending: Pending
|
||||
filter:
|
||||
placeholder: "Filter podľa názvu, otázka:id"
|
||||
answers:
|
||||
page_title: Odpovede
|
||||
normal: Normalne
|
||||
deleted: Vymazané
|
||||
post: Poslané
|
||||
votes: Hlasy
|
||||
created: Vytvorené
|
||||
@@ -1518,6 +1575,9 @@ ui:
|
||||
msg: Kontaktný e-mail nemôže byť prázdny.
|
||||
validate: Kontaktný e-mail je neplatný.
|
||||
text: E-mailová adresa kontaktu zodpovedného za túto stránku.
|
||||
check_update:
|
||||
label: Software updates
|
||||
text: Automatically check for updates
|
||||
interface:
|
||||
page_title: Rozhranie
|
||||
language:
|
||||
@@ -1594,6 +1654,10 @@ ui:
|
||||
text: "Tu môžete pridať obsah zásad ochrany osobných údajov. Ak už máte dokument umiestnený inde, uveďte tu celú URL adresu."
|
||||
write:
|
||||
page_title: Písať
|
||||
restrict_answer:
|
||||
title: Restrict answer
|
||||
label: Each user can only write one answer for each question
|
||||
text: "They can use the edit link to refine and improve their existing answer, instead."
|
||||
recommend_tags:
|
||||
label: Recommend tags
|
||||
text: "Vyššie zadajte tag slug, jednu značku na riadok."
|
||||
@@ -1617,11 +1681,12 @@ ui:
|
||||
themes:
|
||||
label: Témy
|
||||
text: Vyberte existujúcu tému.
|
||||
color_scheme:
|
||||
label: Color scheme
|
||||
navbar_style:
|
||||
label: Štýl navigačnej lišty
|
||||
text: Vyberte existujúcu tému.
|
||||
label: Navbar style
|
||||
primary_color:
|
||||
label: Primárna farba
|
||||
label: Primary color
|
||||
text: Upraviť farby používané vašími motívmi
|
||||
css_and_html:
|
||||
page_title: CSS a HTML
|
||||
@@ -1660,6 +1725,10 @@ ui:
|
||||
title: Súkromné
|
||||
label: Vyžaduje sa prihlásenie
|
||||
text: Do tejto komunity majú prístup iba prihlásení používatelia
|
||||
password_login:
|
||||
title: Password login
|
||||
label: Allow email and password login
|
||||
text: "WARNING: If turn off, you may be unable to log in if you have not previously configured other login method."
|
||||
installed_plugins:
|
||||
title: Installed Plugins
|
||||
plugin_link: Plugins extend and expand the functionality of Answer. You may find plugins in the <1>Answer Plugin Repository</1>.
|
||||
@@ -1723,6 +1792,22 @@ ui:
|
||||
edit_answer: Upraviť odpoveď
|
||||
edit_tag: Upraviť značku
|
||||
empty: Nezostali žiadne úlohy kontroly.
|
||||
approve_revision_tip: Do you approve this revision?
|
||||
approve_flag_tip: Do you approve this flag?
|
||||
approve_post_tip: Do you approve this post?
|
||||
approve_user_tip: Do you approve this user?
|
||||
suggest_edits: Suggested edits
|
||||
flag_post: Flag post
|
||||
flag_user: Flag user
|
||||
queued_post: Queued post
|
||||
queued_user: Queued user
|
||||
filter_label: Type
|
||||
reputation: reputation
|
||||
flag_post_type: Flagged this post as {{ type }}.
|
||||
flag_user_type: Flagged this user as {{ type }}.
|
||||
edit_post: Edit post
|
||||
list_post: List post
|
||||
unlist_post: Unlist post
|
||||
timeline:
|
||||
undeleted: zrušené zmazanie
|
||||
deleted: vymazané
|
||||
@@ -1773,3 +1858,6 @@ ui:
|
||||
post_hide_list: This post has been hidden from list.
|
||||
post_show_list: This post has been shown to list.
|
||||
post_reopen: This post has been reopened.
|
||||
post_list: This post has been listed.
|
||||
post_unlist: This post has been unlisted.
|
||||
post_pending: Your post is awaiting review. This is a preview, it will be visible after it has been approved.
|
||||
|
||||
+3
-3
@@ -355,7 +355,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -428,7 +428,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -466,7 +466,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
+3
-3
@@ -360,7 +360,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description (optional)
|
||||
tab_url: Image URL
|
||||
@@ -433,7 +433,7 @@ ui:
|
||||
range: Display name up to 35 characters.
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc: URL slug up to 35 characters.
|
||||
msg:
|
||||
empty: URL slug cannot be empty.
|
||||
range: URL slug up to 35 characters.
|
||||
@@ -471,7 +471,7 @@ ui:
|
||||
label: Display Name
|
||||
slug_name:
|
||||
label: URL Slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
info: URL slug up to 35 characters.
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
|
||||
+861
-381
File diff suppressed because it is too large
Load Diff
+1863
File diff suppressed because it is too large
Load Diff
+132
-44
@@ -15,7 +15,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
#The following fields are used for back-end
|
||||
# The following fields are used for back-end
|
||||
backend:
|
||||
base:
|
||||
success:
|
||||
@@ -34,15 +34,15 @@ backend:
|
||||
other: Duplicate submission.
|
||||
action:
|
||||
report:
|
||||
other: Flag
|
||||
other: Rapor Et
|
||||
edit:
|
||||
other: Edit
|
||||
delete:
|
||||
other: Delete
|
||||
other: Sil
|
||||
close:
|
||||
other: Close
|
||||
other: Kapat
|
||||
reopen:
|
||||
other: Reopen
|
||||
other: Yeniden Aç
|
||||
forbidden_error:
|
||||
other: Forbidden.
|
||||
pin:
|
||||
@@ -52,7 +52,7 @@ backend:
|
||||
unpin:
|
||||
other: Unpin
|
||||
show:
|
||||
other: List
|
||||
other: Listele
|
||||
invite_someone_to_answer:
|
||||
other: Edit
|
||||
undelete:
|
||||
@@ -82,10 +82,13 @@ backend:
|
||||
level_3:
|
||||
description:
|
||||
other: Level 3 (high reputation required for mature community)
|
||||
level_custom:
|
||||
description:
|
||||
other: Custom Level
|
||||
rank_question_add_label:
|
||||
other: Ask question
|
||||
rank_answer_add_label:
|
||||
other: Write answer
|
||||
other: Cevapla
|
||||
rank_comment_add_label:
|
||||
other: Write comment
|
||||
rank_report_add_label:
|
||||
@@ -137,6 +140,9 @@ backend:
|
||||
email_or_password_wrong_error:
|
||||
other: E-Posta ve parola eşleşmiyor.
|
||||
error:
|
||||
common:
|
||||
invalid_url:
|
||||
other: Invalid URL.
|
||||
password:
|
||||
space_invalid:
|
||||
other: Password cannot contain spaces.
|
||||
@@ -197,6 +203,8 @@ backend:
|
||||
question:
|
||||
already_deleted:
|
||||
other: This post has been deleted.
|
||||
under_review:
|
||||
other: Your post is awaiting review. It will be visible after it has been approved.
|
||||
not_found:
|
||||
other: Soru bulunamadı.
|
||||
cannot_deleted:
|
||||
@@ -267,6 +275,8 @@ backend:
|
||||
other: Kendi rolünüzü değiştiremezsiniz.
|
||||
not_allowed_registration:
|
||||
other: Currently the site is not open for registration.
|
||||
not_allowed_login_via_password:
|
||||
other: Currently the site is not allowed to login via password.
|
||||
access_denied:
|
||||
other: Access denied
|
||||
page_access_denied:
|
||||
@@ -480,7 +490,16 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
edit:
|
||||
other: edit
|
||||
review:
|
||||
queued_post:
|
||||
other: Queued post
|
||||
flagged_post:
|
||||
other: Flagged post
|
||||
suggested_post_edit:
|
||||
other: Suggested edits
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: How to Format
|
||||
@@ -520,6 +539,7 @@ ui:
|
||||
http_404: HTTP Error 404
|
||||
http_50X: HTTP Error 500
|
||||
http_403: HTTP Error 403
|
||||
logout: Log Out
|
||||
notifications:
|
||||
title: Bildirimler
|
||||
inbox: Gelen Kutusu
|
||||
@@ -598,7 +618,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description
|
||||
tab_url: Image URL
|
||||
@@ -660,6 +680,8 @@ ui:
|
||||
empty: Boş olamaz.
|
||||
msg:
|
||||
empty: Lütfen bir sebep seçin.
|
||||
not_a_url: URL format is incorrect.
|
||||
url_not_match: URL origin does not match the current website.
|
||||
tag_modal:
|
||||
title: Yeni etiket oluştur
|
||||
form:
|
||||
@@ -678,6 +700,12 @@ ui:
|
||||
character: URL slug contains unallowed character set.
|
||||
desc:
|
||||
label: Description
|
||||
revision:
|
||||
label: Revision
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
btn_cancel: İptal Et
|
||||
btn_submit: Gönder
|
||||
btn_post: Post new tag
|
||||
@@ -704,21 +732,7 @@ ui:
|
||||
edit_tag:
|
||||
title: Etiketi Düzenle
|
||||
default_reason: Etiketi düzenle
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
label: Revizyon
|
||||
display_name:
|
||||
label: Display name
|
||||
slug_name:
|
||||
label: URL slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc:
|
||||
label: Açıklama
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
default_first_reason: Add tag
|
||||
btn_save_edits: Düzenlemeleri kaydet
|
||||
btn_cancel: Cancel
|
||||
dates:
|
||||
@@ -731,6 +745,8 @@ ui:
|
||||
x_hours_ago: "{{count}}h ago"
|
||||
hour: hour
|
||||
day: day
|
||||
hours: hours
|
||||
days: days
|
||||
comment:
|
||||
btn_add_comment: Add comment
|
||||
reply_to: Reply to
|
||||
@@ -740,7 +756,7 @@ ui:
|
||||
btn_flag: Flag
|
||||
btn_save_edits: Save edits
|
||||
btn_cancel: Cancel
|
||||
show_more: Show more comments
|
||||
show_more: "{{count}} more comments"
|
||||
tip_question: >-
|
||||
Use comments to ask for more information or suggest improvements. Avoid answering questions in comments.
|
||||
tip_answer: >-
|
||||
@@ -749,6 +765,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Edit Answer
|
||||
default_reason: Edit answer
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +796,7 @@ ui:
|
||||
title: Add Question
|
||||
edit_title: Edit Question
|
||||
default_reason: Edit question
|
||||
default_first_reason: Add question
|
||||
similar_questions: Similar questions
|
||||
form:
|
||||
fields:
|
||||
@@ -833,7 +851,7 @@ ui:
|
||||
placeholder: Search
|
||||
footer:
|
||||
build_on: >-
|
||||
Built on <1> Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
Powered by <1> Apache Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
upload_img:
|
||||
name: Change
|
||||
loading: loading...
|
||||
@@ -963,10 +981,10 @@ ui:
|
||||
label: Location
|
||||
placeholder: "City, Country"
|
||||
notification:
|
||||
heading: Notifications
|
||||
email: Email
|
||||
heading: Email Notifications
|
||||
turn_on: Turn on
|
||||
inbox:
|
||||
label: Email notifications
|
||||
label: Inbox notifications
|
||||
description: Answers to your questions, comments, invites, and more.
|
||||
all_new_question:
|
||||
label: All new questions
|
||||
@@ -1021,7 +1039,7 @@ ui:
|
||||
answers: answers
|
||||
invite_to_answer:
|
||||
title: People Asked
|
||||
desc: Invite people who you think might know the answer.
|
||||
desc: Select people who you think might know the answer.
|
||||
invite: Invite to answer
|
||||
add: Add people
|
||||
search: Search people
|
||||
@@ -1031,6 +1049,7 @@ ui:
|
||||
asked: asked
|
||||
update: Modified
|
||||
edit: edited
|
||||
commented: commented
|
||||
Views: Viewed
|
||||
Follow: Follow
|
||||
Following: Following
|
||||
@@ -1048,10 +1067,12 @@ ui:
|
||||
title: Answers
|
||||
score: Score
|
||||
newest: Newest
|
||||
oldest: Oldest
|
||||
btn_accept: Accept
|
||||
btn_accepted: Accepted
|
||||
write_answer:
|
||||
title: Your Answer
|
||||
edit_answer: Edit my existing answer
|
||||
btn_name: Post your answer
|
||||
add_another_answer: Add another answer
|
||||
confirm_title: Continue to answer
|
||||
@@ -1070,6 +1091,14 @@ ui:
|
||||
confirm_btn: Reopen
|
||||
title: Reopen this post
|
||||
content: Are you sure you want to reopen?
|
||||
list:
|
||||
confirm_btn: List
|
||||
title: List this post
|
||||
content: Are you sure you want to list?
|
||||
unlist:
|
||||
confirm_btn: Unlist
|
||||
title: Unlist this post
|
||||
content: Are you sure you want to unlist?
|
||||
pin:
|
||||
title: Pin this post
|
||||
content: Are you sure you wish to pinned globally? This post will appear at the top of all post lists.
|
||||
@@ -1091,6 +1120,9 @@ ui:
|
||||
save: Save
|
||||
delete: Delete
|
||||
undelete: Undelete
|
||||
list: List
|
||||
unlist: Unlist
|
||||
unlisted: Unlisted
|
||||
login: Log in
|
||||
signup: Sign up
|
||||
logout: Log out
|
||||
@@ -1114,6 +1146,20 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
tag: Tag
|
||||
post_lowercase: post
|
||||
filter: Filter
|
||||
ignore: Ignore
|
||||
submit: Submit
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
pending: Pending
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1399,35 @@ ui:
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
site_statistics: Site Statistics
|
||||
site_statistics: Site statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
comments: "Comments:"
|
||||
votes: "Votes:"
|
||||
active_users: "Active users:"
|
||||
users: "Users:"
|
||||
flags: "Flags:"
|
||||
site_health_status: Site Health Status
|
||||
reviews: "Reviews:"
|
||||
site_health: Site health
|
||||
version: "Version:"
|
||||
https: "HTTPS:"
|
||||
uploading_files: "Uploading files:"
|
||||
upload_folder: "Upload folder:"
|
||||
run_mode: "Running mode:"
|
||||
private: Private
|
||||
public: Public
|
||||
smtp: "SMTP:"
|
||||
timezone: "Timezone:"
|
||||
system_info: System Info
|
||||
system_info: System info
|
||||
go_version: "Go version:"
|
||||
database: "Database:"
|
||||
database_size: "Database size:"
|
||||
storage_used: "Storage used:"
|
||||
uptime: "Uptime:"
|
||||
answer_links: Answer Links
|
||||
links: Links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
forum: Forum
|
||||
documents: Documents
|
||||
feedback: Feedback
|
||||
support: Support
|
||||
@@ -1384,6 +1442,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1470,9 +1530,7 @@ ui:
|
||||
content: A suspended user can't log in.
|
||||
questions:
|
||||
page_title: Questions
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
unlisted: Unlisted
|
||||
post: Post
|
||||
votes: Votes
|
||||
answers: Answers
|
||||
@@ -1480,12 +1538,11 @@ ui:
|
||||
status: Status
|
||||
action: Action
|
||||
change: Change
|
||||
pending: Pending
|
||||
filter:
|
||||
placeholder: "Filter by title, question:id"
|
||||
answers:
|
||||
page_title: Answers
|
||||
normal: Normal
|
||||
deleted: Deleted
|
||||
post: Post
|
||||
votes: Votes
|
||||
created: Created
|
||||
@@ -1518,6 +1575,9 @@ ui:
|
||||
msg: Contact email cannot be empty.
|
||||
validate: Contact email is not valid.
|
||||
text: Email address of key contact responsible for this site.
|
||||
check_update:
|
||||
label: Software updates
|
||||
text: Automatically check for updates
|
||||
interface:
|
||||
page_title: Interface
|
||||
language:
|
||||
@@ -1594,6 +1654,10 @@ ui:
|
||||
text: "You can add privacy policy content here. If you already have a document hosted elsewhere, provide the full URL here."
|
||||
write:
|
||||
page_title: Write
|
||||
restrict_answer:
|
||||
title: Restrict answer
|
||||
label: Each user can only write one answer for each question
|
||||
text: "They can use the edit link to refine and improve their existing answer, instead."
|
||||
recommend_tags:
|
||||
label: Recommend tags
|
||||
text: "Please input tag slug above, one tag per line."
|
||||
@@ -1617,11 +1681,12 @@ ui:
|
||||
themes:
|
||||
label: Themes
|
||||
text: Select an existing theme.
|
||||
color_scheme:
|
||||
label: Color scheme
|
||||
navbar_style:
|
||||
label: Navbar Style
|
||||
text: Select an existing theme.
|
||||
label: Navbar style
|
||||
primary_color:
|
||||
label: Primary Color
|
||||
label: Primary color
|
||||
text: Modify the colors used by your themes
|
||||
css_and_html:
|
||||
page_title: CSS and HTML
|
||||
@@ -1660,6 +1725,10 @@ ui:
|
||||
title: Private
|
||||
label: Login required
|
||||
text: Only logged in users can access this community.
|
||||
password_login:
|
||||
title: Password login
|
||||
label: Allow email and password login
|
||||
text: "WARNING: If turn off, you may be unable to log in if you have not previously configured other login method."
|
||||
installed_plugins:
|
||||
title: Installed Plugins
|
||||
plugin_link: Plugins extend and expand the functionality of Answer. You may find plugins in the <1>Answer Plugin Repository</1>.
|
||||
@@ -1723,6 +1792,22 @@ ui:
|
||||
edit_answer: Edit answer
|
||||
edit_tag: Edit tag
|
||||
empty: No review tasks left.
|
||||
approve_revision_tip: Do you approve this revision?
|
||||
approve_flag_tip: Do you approve this flag?
|
||||
approve_post_tip: Do you approve this post?
|
||||
approve_user_tip: Do you approve this user?
|
||||
suggest_edits: Suggested edits
|
||||
flag_post: Flag post
|
||||
flag_user: Flag user
|
||||
queued_post: Queued post
|
||||
queued_user: Queued user
|
||||
filter_label: Type
|
||||
reputation: reputation
|
||||
flag_post_type: Flagged this post as {{ type }}.
|
||||
flag_user_type: Flagged this user as {{ type }}.
|
||||
edit_post: Edit post
|
||||
list_post: List post
|
||||
unlist_post: Unlist post
|
||||
timeline:
|
||||
undeleted: undeleted
|
||||
deleted: deleted
|
||||
@@ -1773,3 +1858,6 @@ ui:
|
||||
post_hide_list: This post has been hidden from list.
|
||||
post_show_list: This post has been shown to list.
|
||||
post_reopen: This post has been reopened.
|
||||
post_list: This post has been listed.
|
||||
post_unlist: This post has been unlisted.
|
||||
post_pending: Your post is awaiting review. This is a preview, it will be visible after it has been approved.
|
||||
|
||||
+729
-641
File diff suppressed because it is too large
Load Diff
+126
-38
@@ -15,7 +15,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
#The following fields are used for back-end
|
||||
# The following fields are used for back-end
|
||||
backend:
|
||||
base:
|
||||
success:
|
||||
@@ -82,6 +82,9 @@ backend:
|
||||
level_3:
|
||||
description:
|
||||
other: Level 3 (high reputation required for mature community)
|
||||
level_custom:
|
||||
description:
|
||||
other: Custom Level
|
||||
rank_question_add_label:
|
||||
other: Đặt câu hỏi
|
||||
rank_answer_add_label:
|
||||
@@ -137,6 +140,9 @@ backend:
|
||||
email_or_password_wrong_error:
|
||||
other: Email and password do not match.
|
||||
error:
|
||||
common:
|
||||
invalid_url:
|
||||
other: Invalid URL.
|
||||
password:
|
||||
space_invalid:
|
||||
other: Password cannot contain spaces.
|
||||
@@ -197,6 +203,8 @@ backend:
|
||||
question:
|
||||
already_deleted:
|
||||
other: This post has been deleted.
|
||||
under_review:
|
||||
other: Your post is awaiting review. It will be visible after it has been approved.
|
||||
not_found:
|
||||
other: Không tìm thấy câu hỏi.
|
||||
cannot_deleted:
|
||||
@@ -267,6 +275,8 @@ backend:
|
||||
other: You cannot modify your role.
|
||||
not_allowed_registration:
|
||||
other: Currently the site is not open for registration.
|
||||
not_allowed_login_via_password:
|
||||
other: Currently the site is not allowed to login via password.
|
||||
access_denied:
|
||||
other: Truy cập bị từ chối
|
||||
page_access_denied:
|
||||
@@ -480,7 +490,16 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
edit:
|
||||
other: edit
|
||||
review:
|
||||
queued_post:
|
||||
other: Queued post
|
||||
flagged_post:
|
||||
other: Flagged post
|
||||
suggested_post_edit:
|
||||
other: Suggested edits
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: How to Format
|
||||
@@ -520,6 +539,7 @@ ui:
|
||||
http_404: HTTP Error 404
|
||||
http_50X: HTTP Error 500
|
||||
http_403: HTTP Error 403
|
||||
logout: Log Out
|
||||
notifications:
|
||||
title: Notifications
|
||||
inbox: Inbox
|
||||
@@ -598,7 +618,7 @@ ui:
|
||||
msg:
|
||||
empty: File cannot be empty.
|
||||
only_image: Only image files are allowed.
|
||||
max_size: File size cannot exceed 4MB.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Description
|
||||
tab_url: Image URL
|
||||
@@ -660,6 +680,8 @@ ui:
|
||||
empty: Cannot be empty.
|
||||
msg:
|
||||
empty: Please select a reason.
|
||||
not_a_url: URL format is incorrect.
|
||||
url_not_match: URL origin does not match the current website.
|
||||
tag_modal:
|
||||
title: Create new tag
|
||||
form:
|
||||
@@ -678,6 +700,12 @@ ui:
|
||||
character: URL slug contains unallowed character set.
|
||||
desc:
|
||||
label: Description
|
||||
revision:
|
||||
label: Revision
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
btn_cancel: Cancel
|
||||
btn_submit: Submit
|
||||
btn_post: Post new tag
|
||||
@@ -704,21 +732,7 @@ ui:
|
||||
edit_tag:
|
||||
title: Edit Tag
|
||||
default_reason: Edit tag
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
label: Revision
|
||||
display_name:
|
||||
label: Display name
|
||||
slug_name:
|
||||
label: URL slug
|
||||
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
|
||||
desc:
|
||||
label: Description
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
default_first_reason: Add tag
|
||||
btn_save_edits: Save edits
|
||||
btn_cancel: Cancel
|
||||
dates:
|
||||
@@ -731,6 +745,8 @@ ui:
|
||||
x_hours_ago: "{{count}}h ago"
|
||||
hour: hour
|
||||
day: day
|
||||
hours: hours
|
||||
days: days
|
||||
comment:
|
||||
btn_add_comment: Add comment
|
||||
reply_to: Reply to
|
||||
@@ -740,7 +756,7 @@ ui:
|
||||
btn_flag: Flag
|
||||
btn_save_edits: Save edits
|
||||
btn_cancel: Cancel
|
||||
show_more: Show more comments
|
||||
show_more: "{{count}} more comments"
|
||||
tip_question: >-
|
||||
Use comments to ask for more information or suggest improvements. Avoid answering questions in comments.
|
||||
tip_answer: >-
|
||||
@@ -749,6 +765,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Edit Answer
|
||||
default_reason: Edit answer
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +796,7 @@ ui:
|
||||
title: Add Question
|
||||
edit_title: Edit Question
|
||||
default_reason: Edit question
|
||||
default_first_reason: Add question
|
||||
similar_questions: Similar questions
|
||||
form:
|
||||
fields:
|
||||
@@ -833,7 +851,7 @@ ui:
|
||||
placeholder: Search
|
||||
footer:
|
||||
build_on: >-
|
||||
Built on <1> Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
Powered by <1> Apache Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
upload_img:
|
||||
name: Change
|
||||
loading: loading...
|
||||
@@ -963,10 +981,10 @@ ui:
|
||||
label: Location
|
||||
placeholder: "City, Country"
|
||||
notification:
|
||||
heading: Notifications
|
||||
email: Email
|
||||
heading: Email Notifications
|
||||
turn_on: Turn on
|
||||
inbox:
|
||||
label: Email notifications
|
||||
label: Inbox notifications
|
||||
description: Answers to your questions, comments, invites, and more.
|
||||
all_new_question:
|
||||
label: All new questions
|
||||
@@ -1021,7 +1039,7 @@ ui:
|
||||
answers: answers
|
||||
invite_to_answer:
|
||||
title: People Asked
|
||||
desc: Invite people who you think might know the answer.
|
||||
desc: Select people who you think might know the answer.
|
||||
invite: Invite to answer
|
||||
add: Add people
|
||||
search: Search people
|
||||
@@ -1031,6 +1049,7 @@ ui:
|
||||
asked: asked
|
||||
update: Modified
|
||||
edit: edited
|
||||
commented: commented
|
||||
Views: Viewed
|
||||
Follow: Follow
|
||||
Following: Following
|
||||
@@ -1048,10 +1067,12 @@ ui:
|
||||
title: Answers
|
||||
score: Score
|
||||
newest: Newest
|
||||
oldest: Oldest
|
||||
btn_accept: Accept
|
||||
btn_accepted: Accepted
|
||||
write_answer:
|
||||
title: Your Answer
|
||||
edit_answer: Edit my existing answer
|
||||
btn_name: Post your answer
|
||||
add_another_answer: Add another answer
|
||||
confirm_title: Continue to answer
|
||||
@@ -1070,6 +1091,14 @@ ui:
|
||||
confirm_btn: Reopen
|
||||
title: Reopen this post
|
||||
content: Are you sure you want to reopen?
|
||||
list:
|
||||
confirm_btn: List
|
||||
title: List this post
|
||||
content: Are you sure you want to list?
|
||||
unlist:
|
||||
confirm_btn: Unlist
|
||||
title: Unlist this post
|
||||
content: Are you sure you want to unlist?
|
||||
pin:
|
||||
title: Pin this post
|
||||
content: Are you sure you wish to pinned globally? This post will appear at the top of all post lists.
|
||||
@@ -1091,6 +1120,9 @@ ui:
|
||||
save: Save
|
||||
delete: Delete
|
||||
undelete: Undelete
|
||||
list: List
|
||||
unlist: Unlist
|
||||
unlisted: Unlisted
|
||||
login: Log in
|
||||
signup: Sign up
|
||||
logout: Log out
|
||||
@@ -1114,6 +1146,20 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
tag: Tag
|
||||
post_lowercase: post
|
||||
filter: Filter
|
||||
ignore: Ignore
|
||||
submit: Submit
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
pending: Pending
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1399,35 @@ ui:
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
site_statistics: Site Statistics
|
||||
site_statistics: Site statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
comments: "Comments:"
|
||||
votes: "Votes:"
|
||||
active_users: "Active users:"
|
||||
users: "Users:"
|
||||
flags: "Flags:"
|
||||
site_health_status: Site Health Status
|
||||
reviews: "Reviews:"
|
||||
site_health: Site health
|
||||
version: "Version:"
|
||||
https: "HTTPS:"
|
||||
uploading_files: "Uploading files:"
|
||||
upload_folder: "Upload folder:"
|
||||
run_mode: "Running mode:"
|
||||
private: Private
|
||||
public: Public
|
||||
smtp: "SMTP:"
|
||||
timezone: "Timezone:"
|
||||
system_info: System Info
|
||||
system_info: System info
|
||||
go_version: "Go version:"
|
||||
database: "Database:"
|
||||
database_size: "Database size:"
|
||||
storage_used: "Storage used:"
|
||||
uptime: "Uptime:"
|
||||
answer_links: Answer Links
|
||||
links: Links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
forum: Forum
|
||||
documents: Documents
|
||||
feedback: Feedback
|
||||
support: Support
|
||||
@@ -1384,6 +1442,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1470,9 +1530,7 @@ ui:
|
||||
content: A suspended user can't log in.
|
||||
questions:
|
||||
page_title: Questions
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
unlisted: Unlisted
|
||||
post: Post
|
||||
votes: Votes
|
||||
answers: Answers
|
||||
@@ -1480,12 +1538,11 @@ ui:
|
||||
status: Status
|
||||
action: Action
|
||||
change: Change
|
||||
pending: Pending
|
||||
filter:
|
||||
placeholder: "Filter by title, question:id"
|
||||
answers:
|
||||
page_title: Answers
|
||||
normal: Normal
|
||||
deleted: Deleted
|
||||
post: Post
|
||||
votes: Votes
|
||||
created: Created
|
||||
@@ -1518,6 +1575,9 @@ ui:
|
||||
msg: Contact email cannot be empty.
|
||||
validate: Contact email is not valid.
|
||||
text: Email address of key contact responsible for this site.
|
||||
check_update:
|
||||
label: Software updates
|
||||
text: Automatically check for updates
|
||||
interface:
|
||||
page_title: Interface
|
||||
language:
|
||||
@@ -1594,6 +1654,10 @@ ui:
|
||||
text: "You can add privacy policy content here. If you already have a document hosted elsewhere, provide the full URL here."
|
||||
write:
|
||||
page_title: Write
|
||||
restrict_answer:
|
||||
title: Restrict answer
|
||||
label: Each user can only write one answer for each question
|
||||
text: "They can use the edit link to refine and improve their existing answer, instead."
|
||||
recommend_tags:
|
||||
label: Recommend tags
|
||||
text: "Please input tag slug above, one tag per line."
|
||||
@@ -1617,11 +1681,12 @@ ui:
|
||||
themes:
|
||||
label: Themes
|
||||
text: Select an existing theme.
|
||||
color_scheme:
|
||||
label: Color scheme
|
||||
navbar_style:
|
||||
label: Navbar Style
|
||||
text: Select an existing theme.
|
||||
label: Navbar style
|
||||
primary_color:
|
||||
label: Primary Color
|
||||
label: Primary color
|
||||
text: Modify the colors used by your themes
|
||||
css_and_html:
|
||||
page_title: CSS and HTML
|
||||
@@ -1660,6 +1725,10 @@ ui:
|
||||
title: Private
|
||||
label: Login required
|
||||
text: Only logged in users can access this community.
|
||||
password_login:
|
||||
title: Password login
|
||||
label: Allow email and password login
|
||||
text: "WARNING: If turn off, you may be unable to log in if you have not previously configured other login method."
|
||||
installed_plugins:
|
||||
title: Installed Plugins
|
||||
plugin_link: Plugins extend and expand the functionality of Answer. You may find plugins in the <1>Answer Plugin Repository</1>.
|
||||
@@ -1723,6 +1792,22 @@ ui:
|
||||
edit_answer: Edit answer
|
||||
edit_tag: Edit tag
|
||||
empty: No review tasks left.
|
||||
approve_revision_tip: Do you approve this revision?
|
||||
approve_flag_tip: Do you approve this flag?
|
||||
approve_post_tip: Do you approve this post?
|
||||
approve_user_tip: Do you approve this user?
|
||||
suggest_edits: Suggested edits
|
||||
flag_post: Flag post
|
||||
flag_user: Flag user
|
||||
queued_post: Queued post
|
||||
queued_user: Queued user
|
||||
filter_label: Type
|
||||
reputation: reputation
|
||||
flag_post_type: Flagged this post as {{ type }}.
|
||||
flag_user_type: Flagged this user as {{ type }}.
|
||||
edit_post: Edit post
|
||||
list_post: List post
|
||||
unlist_post: Unlist post
|
||||
timeline:
|
||||
undeleted: undeleted
|
||||
deleted: deleted
|
||||
@@ -1773,3 +1858,6 @@ ui:
|
||||
post_hide_list: This post has been hidden from list.
|
||||
post_show_list: This post has been shown to list.
|
||||
post_reopen: This post has been reopened.
|
||||
post_list: This post has been listed.
|
||||
post_unlist: This post has been unlisted.
|
||||
post_pending: Your post is awaiting review. This is a preview, it will be visible after it has been approved.
|
||||
|
||||
+281
-193
File diff suppressed because it is too large
Load Diff
+120
-32
@@ -15,7 +15,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
#The following fields are used for back-end
|
||||
# The following fields are used for back-end
|
||||
backend:
|
||||
base:
|
||||
success:
|
||||
@@ -82,6 +82,9 @@ backend:
|
||||
level_3:
|
||||
description:
|
||||
other: Level 3 (high reputation required for mature community)
|
||||
level_custom:
|
||||
description:
|
||||
other: Custom Level
|
||||
rank_question_add_label:
|
||||
other: Ask question
|
||||
rank_answer_add_label:
|
||||
@@ -137,6 +140,9 @@ backend:
|
||||
email_or_password_wrong_error:
|
||||
other: 電郵和密碼不匹配。
|
||||
error:
|
||||
common:
|
||||
invalid_url:
|
||||
other: Invalid URL.
|
||||
password:
|
||||
space_invalid:
|
||||
other: Password cannot contain spaces.
|
||||
@@ -197,6 +203,8 @@ backend:
|
||||
question:
|
||||
already_deleted:
|
||||
other: This post has been deleted.
|
||||
under_review:
|
||||
other: Your post is awaiting review. It will be visible after it has been approved.
|
||||
not_found:
|
||||
other: 找不到問題。
|
||||
cannot_deleted:
|
||||
@@ -267,6 +275,8 @@ backend:
|
||||
other: 您不能修改自己的角色。
|
||||
not_allowed_registration:
|
||||
other: Currently the site is not open for registration.
|
||||
not_allowed_login_via_password:
|
||||
other: Currently the site is not allowed to login via password.
|
||||
access_denied:
|
||||
other: Access denied
|
||||
page_access_denied:
|
||||
@@ -480,7 +490,16 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
edit:
|
||||
other: edit
|
||||
review:
|
||||
queued_post:
|
||||
other: Queued post
|
||||
flagged_post:
|
||||
other: Flagged post
|
||||
suggested_post_edit:
|
||||
other: Suggested edits
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: 如何設定文本格式
|
||||
@@ -520,6 +539,7 @@ ui:
|
||||
http_404: HTTP 錯誤 404
|
||||
http_50X: HTTP 錯誤 500
|
||||
http_403: HTTP 錯誤 403
|
||||
logout: Log Out
|
||||
notifications:
|
||||
title: 通知
|
||||
inbox: 收件夾
|
||||
@@ -660,6 +680,8 @@ ui:
|
||||
empty: 不能為空
|
||||
msg:
|
||||
empty: 請選擇一個原因。
|
||||
not_a_url: URL format is incorrect.
|
||||
url_not_match: URL origin does not match the current website.
|
||||
tag_modal:
|
||||
title: 創建新標籤
|
||||
form:
|
||||
@@ -678,6 +700,12 @@ ui:
|
||||
character: URL 固定連結包含非法字元。
|
||||
desc:
|
||||
label: 描述
|
||||
revision:
|
||||
label: Revision
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
btn_cancel: 取消
|
||||
btn_submit: 提交
|
||||
btn_post: Post new tag
|
||||
@@ -704,21 +732,7 @@ ui:
|
||||
edit_tag:
|
||||
title: 編輯標籤
|
||||
default_reason: 編輯標籤
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
label: 編輯歷史
|
||||
display_name:
|
||||
label: Display name
|
||||
slug_name:
|
||||
label: URL slug
|
||||
info: '必須由 "a-z", "0-9", "+ # - ." 組成'
|
||||
desc:
|
||||
label: 描述
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
簡單描述更改原因 (錯別字、文字表達、格式等等)
|
||||
default_first_reason: Add tag
|
||||
btn_save_edits: 儲存更改
|
||||
btn_cancel: 取消
|
||||
dates:
|
||||
@@ -731,6 +745,8 @@ ui:
|
||||
x_hours_ago: "{{count}} 小時前"
|
||||
hour: 小時
|
||||
day: 天
|
||||
hours: hours
|
||||
days: days
|
||||
comment:
|
||||
btn_add_comment: 添加評論
|
||||
reply_to: 回復
|
||||
@@ -740,7 +756,7 @@ ui:
|
||||
btn_flag: 舉報
|
||||
btn_save_edits: 保存
|
||||
btn_cancel: 取消
|
||||
show_more: 顯示更多評論
|
||||
show_more: "{{count}}條剩餘評論"
|
||||
tip_question: >-
|
||||
通过評論询问更多问题或提出改進建議。避免在評論中回答問題。
|
||||
tip_answer: >-
|
||||
@@ -749,6 +765,7 @@ ui:
|
||||
edit_answer:
|
||||
title: 編輯回答
|
||||
default_reason: 編輯回答
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +796,7 @@ ui:
|
||||
title: 發問
|
||||
edit_title: 編輯問題
|
||||
default_reason: 編輯問題
|
||||
default_first_reason: Add question
|
||||
similar_questions: 相似的問題
|
||||
form:
|
||||
fields:
|
||||
@@ -833,7 +851,7 @@ ui:
|
||||
placeholder: 搜尋
|
||||
footer:
|
||||
build_on: >-
|
||||
基於<1>Answer</1>--為問答社群提供動力的開源軟體。<br />Made with love © {{cc}}.
|
||||
Powered by <1> Apache Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
upload_img:
|
||||
name: 更改
|
||||
loading: 讀取中...
|
||||
@@ -964,7 +982,7 @@ ui:
|
||||
placeholder: "城市, 國家"
|
||||
notification:
|
||||
heading: 通知
|
||||
email: Email
|
||||
turn_on: Turn on
|
||||
inbox:
|
||||
label: Email notifications
|
||||
description: Answers to your questions, comments, invites, and more.
|
||||
@@ -1031,6 +1049,7 @@ ui:
|
||||
asked: 提問於
|
||||
update: 修改於
|
||||
edit: 最後編輯於
|
||||
commented: commented
|
||||
Views: 閱讀次數
|
||||
Follow: 關注
|
||||
Following: 已關注
|
||||
@@ -1048,10 +1067,12 @@ ui:
|
||||
title: 個回答
|
||||
score: 評分
|
||||
newest: 最新
|
||||
oldest: Oldest
|
||||
btn_accept: 採納
|
||||
btn_accepted: 已被採納
|
||||
write_answer:
|
||||
title: 你的回答
|
||||
edit_answer: Edit my existing answer
|
||||
btn_name: 提交你的回答
|
||||
add_another_answer: 添加另一個答案
|
||||
confirm_title: 繼續回答
|
||||
@@ -1070,6 +1091,14 @@ ui:
|
||||
confirm_btn: Reopen
|
||||
title: 重新打開這個貼文
|
||||
content: 確定要重新打開嗎?
|
||||
list:
|
||||
confirm_btn: List
|
||||
title: List this post
|
||||
content: Are you sure you want to list?
|
||||
unlist:
|
||||
confirm_btn: Unlist
|
||||
title: Unlist this post
|
||||
content: Are you sure you want to unlist?
|
||||
pin:
|
||||
title: Pin this post
|
||||
content: Are you sure you wish to pinned globally? This post will appear at the top of all post lists.
|
||||
@@ -1091,6 +1120,9 @@ ui:
|
||||
save: 儲存
|
||||
delete: 刪除
|
||||
undelete: Undelete
|
||||
list: List
|
||||
unlist: Unlist
|
||||
unlisted: Unlisted
|
||||
login: 登入
|
||||
signup: 註冊
|
||||
logout: 登出
|
||||
@@ -1114,6 +1146,20 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
tag: Tag
|
||||
post_lowercase: post
|
||||
filter: Filter
|
||||
ignore: Ignore
|
||||
submit: Submit
|
||||
normal: Normal
|
||||
closed: Closed
|
||||
deleted: Deleted
|
||||
pending: Pending
|
||||
search:
|
||||
title: 搜尋結果
|
||||
keywords: 關鍵詞
|
||||
@@ -1353,23 +1399,35 @@ ui:
|
||||
dashboard:
|
||||
title: 後台管理
|
||||
welcome: 歡迎來到 Answer 後台管理!
|
||||
site_statistics: 站點統計
|
||||
site_statistics: Site statistics
|
||||
questions: "問題:"
|
||||
answers: "回答:"
|
||||
comments: "評論:"
|
||||
votes: "投票:"
|
||||
active_users: "活躍用戶:"
|
||||
users: "Users:"
|
||||
flags: "檢舉:"
|
||||
site_health_status: '健康狀態:'
|
||||
reviews: "Reviews:"
|
||||
site_health: Site health
|
||||
version: "版本"
|
||||
https: "HTTPS:"
|
||||
uploading_files: "上傳文件:"
|
||||
upload_folder: "Upload folder:"
|
||||
run_mode: "Running mode:"
|
||||
private: Private
|
||||
public: Public
|
||||
smtp: "SMTP:"
|
||||
timezone: "時區:"
|
||||
system_info: 系統資訊
|
||||
system_info: System info
|
||||
go_version: "Go version:"
|
||||
database: "Database:"
|
||||
database_size: "Database size:"
|
||||
storage_used: "已用儲存空間:"
|
||||
uptime: "運行時間:"
|
||||
answer_links: 回答連結
|
||||
links: Links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
forum: Forum
|
||||
documents: 文件
|
||||
feedback: 用戶反饋
|
||||
support: 支持
|
||||
@@ -1384,6 +1442,8 @@ ui:
|
||||
allowed: 允許
|
||||
enabled: 已啟用
|
||||
disabled: 停用
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: 檢舉
|
||||
pending: 等待處理
|
||||
@@ -1470,9 +1530,7 @@ ui:
|
||||
content: A suspended user can't log in.
|
||||
questions:
|
||||
page_title: 問題
|
||||
normal: 正常
|
||||
closed: 已關閉
|
||||
deleted: 已刪除
|
||||
unlisted: Unlisted
|
||||
post: 標題
|
||||
votes: 得票數
|
||||
answers: 回答
|
||||
@@ -1480,12 +1538,11 @@ ui:
|
||||
status: 狀態
|
||||
action: 操作
|
||||
change: 更改
|
||||
pending: Pending
|
||||
filter:
|
||||
placeholder: "按標題過濾,問題:id"
|
||||
answers:
|
||||
page_title: 回答
|
||||
normal: 正常
|
||||
deleted: 已刪除
|
||||
post: 發布
|
||||
votes: 得票數
|
||||
created: 創建於
|
||||
@@ -1518,6 +1575,9 @@ ui:
|
||||
msg: 聯絡人信箱不能為空。
|
||||
validate: 聯絡人信箱無效。
|
||||
text: 負責本網站的主要聯絡人的電子郵件信箱。
|
||||
check_update:
|
||||
label: Software updates
|
||||
text: Automatically check for updates
|
||||
interface:
|
||||
page_title: 介面
|
||||
language:
|
||||
@@ -1594,6 +1654,10 @@ ui:
|
||||
text: "您可以在此加入隱私政策內容。如果您已經在別處托管了文檔,請在這裡提供完整的URL。"
|
||||
write:
|
||||
page_title: 編輯
|
||||
restrict_answer:
|
||||
title: Restrict answer
|
||||
label: Each user can only write one answer for each question
|
||||
text: "They can use the edit link to refine and improve their existing answer, instead."
|
||||
recommend_tags:
|
||||
label: Recommend tags
|
||||
text: "請在上方輸入標籤固定連結,每行一個標籤。"
|
||||
@@ -1617,9 +1681,10 @@ ui:
|
||||
themes:
|
||||
label: 主題
|
||||
text: 選擇一個現有主題。
|
||||
color_scheme:
|
||||
label: Color scheme
|
||||
navbar_style:
|
||||
label: 導航欄樣式
|
||||
text: 選擇一個現有主題。
|
||||
primary_color:
|
||||
label: 主色調
|
||||
text: 修改您主題使用的顏色
|
||||
@@ -1660,6 +1725,10 @@ ui:
|
||||
title: 非公開的
|
||||
label: 需要登入
|
||||
text: 只有登入使用者才能訪問這個社群。
|
||||
password_login:
|
||||
title: Password login
|
||||
label: Allow email and password login
|
||||
text: "WARNING: If turn off, you may be unable to log in if you have not previously configured other login method."
|
||||
installed_plugins:
|
||||
title: Installed Plugins
|
||||
plugin_link: Plugins extend and expand the functionality of Answer. You may find plugins in the <1>Answer Plugin Repository</1>.
|
||||
@@ -1723,6 +1792,22 @@ ui:
|
||||
edit_answer: 編輯回答
|
||||
edit_tag: 編輯標籤
|
||||
empty: 沒有剩餘的審核任務。
|
||||
approve_revision_tip: Do you approve this revision?
|
||||
approve_flag_tip: Do you approve this flag?
|
||||
approve_post_tip: Do you approve this post?
|
||||
approve_user_tip: Do you approve this user?
|
||||
suggest_edits: Suggested edits
|
||||
flag_post: Flag post
|
||||
flag_user: Flag user
|
||||
queued_post: Queued post
|
||||
queued_user: Queued user
|
||||
filter_label: Type
|
||||
reputation: reputation
|
||||
flag_post_type: Flagged this post as {{ type }}.
|
||||
flag_user_type: Flagged this user as {{ type }}.
|
||||
edit_post: Edit post
|
||||
list_post: List post
|
||||
unlist_post: Unlist post
|
||||
timeline:
|
||||
undeleted: 未刪除的
|
||||
deleted: 刪除
|
||||
@@ -1773,3 +1858,6 @@ ui:
|
||||
post_hide_list: This post has been hidden from list.
|
||||
post_show_list: This post has been shown to list.
|
||||
post_reopen: This post has been reopened.
|
||||
post_list: This post has been listed.
|
||||
post_unlist: This post has been unlisted.
|
||||
post_pending: Your post is awaiting review. This is a preview, it will be visible after it has been approved.
|
||||
|
||||
@@ -25,6 +25,7 @@ const (
|
||||
)
|
||||
|
||||
var (
|
||||
Version string = ""
|
||||
Revision string = ""
|
||||
Version = ""
|
||||
Revision = ""
|
||||
GoVersion = ""
|
||||
)
|
||||
|
||||
@@ -24,7 +24,7 @@ import "github.com/apache/incubator-answer/internal/base/reason"
|
||||
type Privilege struct {
|
||||
Key string `json:"key"`
|
||||
Label string `json:"label"`
|
||||
Value int `json:"value"`
|
||||
Value int `validate:"gte=1" json:"value"`
|
||||
}
|
||||
|
||||
const (
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package constant
|
||||
|
||||
const (
|
||||
ReasonSpam = "reason.spam"
|
||||
ReasonRudeOrAbusive = "reason.rude_or_abusive"
|
||||
ReasonSomething = "reason.something"
|
||||
ReasonADuplicate = "reason.a_duplicate"
|
||||
ReasonNotAAnswer = "reason.not_a_answer"
|
||||
ReasonNoLongerNeeded = "reason.no_longer_needed"
|
||||
ReasonCommunitySpecific = "reason.community_specific"
|
||||
ReasonNotClarity = "reason.not_clarity"
|
||||
ReasonNormal = "reason.normal"
|
||||
ReasonNormalUser = "reason.normal.user"
|
||||
ReasonClosed = "reason.closed"
|
||||
ReasonDeleted = "reason.deleted"
|
||||
ReasonDeletedUser = "reason.deleted.user"
|
||||
ReasonSuspended = "reason.suspended"
|
||||
ReasonInactive = "reason.inactive"
|
||||
ReasonLooksOk = "reason.looks_ok"
|
||||
ReasonNeedsEdit = "reason.needs_edit"
|
||||
ReasonNeedsClose = "reason.needs_close"
|
||||
ReasonNeedsDelete = "reason.needs_delete"
|
||||
)
|
||||
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package constant
|
||||
|
||||
type ReviewingType string
|
||||
|
||||
const (
|
||||
QueuedPost ReviewingType = "queued_post"
|
||||
QueuedUser ReviewingType = "queued_user"
|
||||
FlaggedPost ReviewingType = "flagged_post"
|
||||
FlaggedUser ReviewingType = "flagged_user"
|
||||
SuggestedPostEdit ReviewingType = "suggested_post_edit"
|
||||
)
|
||||
|
||||
const (
|
||||
ReportOperationEditPost = "edit_post"
|
||||
ReportOperationClosePost = "close_post"
|
||||
ReportOperationDeletePost = "delete_post"
|
||||
ReportOperationUnlistPost = "unlist_post"
|
||||
ReportOperationIgnoreReport = "ignore_report"
|
||||
)
|
||||
|
||||
const (
|
||||
ReviewQueuedPostLabel = "review.queued_post"
|
||||
ReviewFlaggedPostLabel = "review.flagged_post"
|
||||
ReviewSuggestedPostEditLabel = "review.suggested_post_edit"
|
||||
)
|
||||
@@ -37,3 +37,10 @@ const (
|
||||
// PermalinkQuestionIDByShortID /questions/11
|
||||
PermalinkQuestionIDByShortID
|
||||
)
|
||||
|
||||
const (
|
||||
ColorSchemeDefault = "default"
|
||||
ColorSchemeLight = "light"
|
||||
ColorSchemeDark = "dark"
|
||||
ColorSchemeSystem = "system"
|
||||
)
|
||||
|
||||
@@ -23,7 +23,7 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/apache/incubator-answer/internal/service"
|
||||
"github.com/apache/incubator-answer/internal/service/content"
|
||||
"github.com/apache/incubator-answer/internal/service/siteinfo_common"
|
||||
"github.com/robfig/cron/v3"
|
||||
"github.com/segmentfault/pacman/log"
|
||||
@@ -32,13 +32,13 @@ import (
|
||||
// ScheduledTaskManager scheduled task manager
|
||||
type ScheduledTaskManager struct {
|
||||
siteInfoService siteinfo_common.SiteInfoCommonService
|
||||
questionService *service.QuestionService
|
||||
questionService *content.QuestionService
|
||||
}
|
||||
|
||||
// NewScheduledTaskManager new scheduled task manager
|
||||
func NewScheduledTaskManager(
|
||||
siteInfoService siteinfo_common.SiteInfoCommonService,
|
||||
questionService *service.QuestionService,
|
||||
questionService *content.QuestionService,
|
||||
) *ScheduledTaskManager {
|
||||
manager := &ScheduledTaskManager{
|
||||
siteInfoService: siteInfoService,
|
||||
|
||||
@@ -89,18 +89,51 @@ func (am *AuthUserMiddleware) EjectUserBySiteInfo() gin.HandlerFunc {
|
||||
return
|
||||
}
|
||||
|
||||
_, isLogin := ctx.Get(ctxUUIDKey)
|
||||
if !isLogin {
|
||||
// If site in private mode, user must login.
|
||||
userInfo := GetUserInfoFromContext(ctx)
|
||||
if userInfo == nil {
|
||||
handler.HandleResponse(ctx, errors.Unauthorized(reason.UnauthorizedError), nil)
|
||||
ctx.Abort()
|
||||
return
|
||||
}
|
||||
// If user is not active, eject user.
|
||||
if userInfo.EmailStatus != entity.EmailStatusAvailable {
|
||||
handler.HandleResponse(ctx, errors.Forbidden(reason.EmailNeedToBeVerified),
|
||||
&schema.ForbiddenResp{Type: schema.ForbiddenReasonTypeInactive})
|
||||
ctx.Abort()
|
||||
return
|
||||
}
|
||||
ctx.Next()
|
||||
}
|
||||
}
|
||||
|
||||
// MustAuth auth user info. If the user does not log in, an unauthenticated error is displayed
|
||||
func (am *AuthUserMiddleware) MustAuth() gin.HandlerFunc {
|
||||
// MustAuthWithoutAccountAvailable auth user info, any login user can access though user is not active.
|
||||
func (am *AuthUserMiddleware) MustAuthWithoutAccountAvailable() gin.HandlerFunc {
|
||||
return func(ctx *gin.Context) {
|
||||
token := ExtractToken(ctx)
|
||||
if len(token) == 0 {
|
||||
handler.HandleResponse(ctx, errors.Unauthorized(reason.UnauthorizedError), nil)
|
||||
ctx.Abort()
|
||||
return
|
||||
}
|
||||
userInfo, err := am.authService.GetUserCacheInfo(ctx, token)
|
||||
if err != nil || userInfo == nil {
|
||||
handler.HandleResponse(ctx, errors.Unauthorized(reason.UnauthorizedError), nil)
|
||||
ctx.Abort()
|
||||
return
|
||||
}
|
||||
if userInfo.UserStatus == entity.UserStatusDeleted {
|
||||
handler.HandleResponse(ctx, errors.Unauthorized(reason.UnauthorizedError), nil)
|
||||
ctx.Abort()
|
||||
return
|
||||
}
|
||||
ctx.Set(ctxUUIDKey, userInfo)
|
||||
ctx.Next()
|
||||
}
|
||||
}
|
||||
|
||||
// MustAuthAndAccountAvailable auth user info and check user status, only allow active user access.
|
||||
func (am *AuthUserMiddleware) MustAuthAndAccountAvailable() gin.HandlerFunc {
|
||||
return func(ctx *gin.Context) {
|
||||
token := ExtractToken(ctx)
|
||||
if len(token) == 0 {
|
||||
|
||||
@@ -20,9 +20,10 @@
|
||||
package reason
|
||||
|
||||
const (
|
||||
PrivilegeLevel1Desc = "privilege.level_1.description"
|
||||
PrivilegeLevel2Desc = "privilege.level_2.description"
|
||||
PrivilegeLevel3Desc = "privilege.level_3.description"
|
||||
PrivilegeLevel1Desc = "privilege.level_1.description"
|
||||
PrivilegeLevel2Desc = "privilege.level_2.description"
|
||||
PrivilegeLevel3Desc = "privilege.level_3.description"
|
||||
PrivilegeLevelCustomDesc = "privilege.level_custom.description"
|
||||
|
||||
RankQuestionAddLabel = "privilege.rank_question_add_label"
|
||||
RankAnswerAddLabel = "privilege.rank_answer_add_label"
|
||||
|
||||
@@ -45,10 +45,12 @@ const (
|
||||
QuestionCannotClose = "error.question.cannot_close"
|
||||
QuestionCannotUpdate = "error.question.cannot_update"
|
||||
QuestionAlreadyDeleted = "error.question.already_deleted"
|
||||
QuestionUnderReview = "error.question.under_review"
|
||||
AnswerNotFound = "error.answer.not_found"
|
||||
AnswerCannotDeleted = "error.answer.cannot_deleted"
|
||||
AnswerCannotUpdate = "error.answer.cannot_update"
|
||||
AnswerCannotAddByClosedQuestion = "error.answer.question_closed_cannot_add"
|
||||
AnswerRestrictAnswer = "error.answer.restrict_answer"
|
||||
CommentEditWithoutPermission = "error.comment.edit_without_permission"
|
||||
DisallowVote = "error.object.disallow_vote"
|
||||
DisallowFollow = "error.object.disallow_follow"
|
||||
@@ -92,14 +94,15 @@ const (
|
||||
UserCannotUpdateYourRole = "error.user.cannot_update_your_role"
|
||||
TagCannotSetSynonymAsItself = "error.tag.cannot_set_synonym_as_itself"
|
||||
NotAllowedRegistration = "error.user.not_allowed_registration"
|
||||
NotAllowedLoginViaPassword = "error.user.not_allowed_login_via_password"
|
||||
SMTPConfigFromNameCannotBeEmail = "error.smtp.config_from_name_cannot_be_email"
|
||||
AdminCannotUpdateTheirPassword = "error.admin.cannot_update_their_password"
|
||||
AdminCannotModifySelfStatus = "error.admin.cannot_modify_self_status"
|
||||
UserAccessDenied = "error.user.access_denied"
|
||||
UserPageAccessDenied = "error.user.page_access_denied"
|
||||
|
||||
AddBulkUsersFormatError = "error.user.add_bulk_users_format_error"
|
||||
AddBulkUsersAmountError = "error.user.add_bulk_users_amount_error"
|
||||
AddBulkUsersFormatError = "error.user.add_bulk_users_format_error"
|
||||
AddBulkUsersAmountError = "error.user.add_bulk_users_amount_error"
|
||||
InvalidURLError = "error.common.invalid_url"
|
||||
)
|
||||
|
||||
// user external login reasons
|
||||
|
||||
@@ -74,9 +74,14 @@ func NewHTTPServer(debug bool,
|
||||
unAuthV1.Use(authUserMiddleware.Auth(), authUserMiddleware.EjectUserBySiteInfo())
|
||||
answerRouter.RegisterUnAuthAnswerAPIRouter(unAuthV1)
|
||||
|
||||
// register api that must be authenticated but no need to check account status
|
||||
authWithoutStatusV1 := r.Group("/answer/api/v1")
|
||||
authWithoutStatusV1.Use(authUserMiddleware.MustAuthWithoutAccountAvailable())
|
||||
answerRouter.RegisterAuthUserWithAnyStatusAnswerAPIRouter(authWithoutStatusV1)
|
||||
|
||||
// register api that must be authenticated
|
||||
authV1 := r.Group("/answer/api/v1")
|
||||
authV1.Use(authUserMiddleware.MustAuth())
|
||||
authV1.Use(authUserMiddleware.MustAuthAndAccountAvailable())
|
||||
answerRouter.RegisterAnswerAPIRouter(authV1)
|
||||
|
||||
adminauthV1 := r.Group("/answer/admin/api")
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package cli
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/apache/incubator-answer/internal/base/constant"
|
||||
"github.com/apache/incubator-answer/internal/base/data"
|
||||
"github.com/apache/incubator-answer/internal/entity"
|
||||
"xorm.io/xorm"
|
||||
)
|
||||
|
||||
type ConfigField struct {
|
||||
AllowPasswordLogin bool `json:"allow_password_login"`
|
||||
}
|
||||
|
||||
// SetDefaultConfig set default config
|
||||
func SetDefaultConfig(dbConf *data.Database, cacheConf *data.CacheConf, field *ConfigField) error {
|
||||
db, err := data.NewDB(false, dbConf)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
cache, cacheCleanup, err := data.NewCache(cacheConf)
|
||||
if err != nil {
|
||||
fmt.Println("new cache failed")
|
||||
}
|
||||
defer func() {
|
||||
if cache != nil {
|
||||
cache.Flush(context.Background())
|
||||
cacheCleanup()
|
||||
}
|
||||
}()
|
||||
|
||||
if field.AllowPasswordLogin {
|
||||
return defaultLoginConfig(db)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func defaultLoginConfig(x *xorm.Engine) (err error) {
|
||||
fmt.Println("set default login config")
|
||||
|
||||
loginSiteInfo := &entity.SiteInfo{
|
||||
Type: constant.SiteTypeLogin,
|
||||
}
|
||||
exist, err := x.Get(loginSiteInfo)
|
||||
if err != nil {
|
||||
return fmt.Errorf("get config failed: %w", err)
|
||||
}
|
||||
if exist {
|
||||
var content map[string]any
|
||||
_ = json.Unmarshal([]byte(loginSiteInfo.Content), &content)
|
||||
content["allow_password_login"] = true
|
||||
dataByte, _ := json.Marshal(content)
|
||||
loginSiteInfo.Content = string(dataByte)
|
||||
_, err = x.ID(loginSiteInfo.ID).Cols("content").Update(loginSiteInfo)
|
||||
if err != nil {
|
||||
return fmt.Errorf("update site info failed: %w", err)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -30,10 +30,11 @@ import (
|
||||
"github.com/apache/incubator-answer/internal/base/validator"
|
||||
"github.com/apache/incubator-answer/internal/entity"
|
||||
"github.com/apache/incubator-answer/internal/schema"
|
||||
"github.com/apache/incubator-answer/internal/service"
|
||||
"github.com/apache/incubator-answer/internal/service/action"
|
||||
"github.com/apache/incubator-answer/internal/service/content"
|
||||
"github.com/apache/incubator-answer/internal/service/permission"
|
||||
"github.com/apache/incubator-answer/internal/service/rank"
|
||||
"github.com/apache/incubator-answer/internal/service/siteinfo_common"
|
||||
"github.com/apache/incubator-answer/pkg/uid"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/segmentfault/pacman/errors"
|
||||
@@ -41,24 +42,27 @@ import (
|
||||
|
||||
// AnswerController answer controller
|
||||
type AnswerController struct {
|
||||
answerService *service.AnswerService
|
||||
rankService *rank.RankService
|
||||
actionService *action.CaptchaService
|
||||
rateLimitMiddleware *middleware.RateLimitMiddleware
|
||||
answerService *content.AnswerService
|
||||
rankService *rank.RankService
|
||||
actionService *action.CaptchaService
|
||||
siteInfoCommonService siteinfo_common.SiteInfoCommonService
|
||||
rateLimitMiddleware *middleware.RateLimitMiddleware
|
||||
}
|
||||
|
||||
// NewAnswerController new controller
|
||||
func NewAnswerController(
|
||||
answerService *service.AnswerService,
|
||||
answerService *content.AnswerService,
|
||||
rankService *rank.RankService,
|
||||
actionService *action.CaptchaService,
|
||||
siteInfoCommonService siteinfo_common.SiteInfoCommonService,
|
||||
rateLimitMiddleware *middleware.RateLimitMiddleware,
|
||||
) *AnswerController {
|
||||
return &AnswerController{
|
||||
answerService: answerService,
|
||||
rankService: rankService,
|
||||
actionService: actionService,
|
||||
rateLimitMiddleware: rateLimitMiddleware,
|
||||
answerService: answerService,
|
||||
rankService: rankService,
|
||||
actionService: actionService,
|
||||
siteInfoCommonService: siteInfoCommonService,
|
||||
rateLimitMiddleware: rateLimitMiddleware,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,6 +242,24 @@ func (ac *AnswerController) Add(ctx *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
write, err := ac.siteInfoCommonService.GetSiteWrite(ctx)
|
||||
if err != nil {
|
||||
handler.HandleResponse(ctx, err, nil)
|
||||
return
|
||||
}
|
||||
if write.RestrictAnswer {
|
||||
// check if there's already an answer by this user
|
||||
ids, err := ac.answerService.GetCountByUserIDQuestionID(ctx, req.UserID, req.QuestionID)
|
||||
if err != nil {
|
||||
handler.HandleResponse(ctx, err, nil)
|
||||
return
|
||||
}
|
||||
if len(ids) >= 1 {
|
||||
handler.HandleResponse(ctx, errors.Forbidden(reason.AnswerRestrictAnswer), nil)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
answerID, err := ac.answerService.Insert(ctx, req)
|
||||
if err != nil {
|
||||
handler.HandleResponse(ctx, err, nil)
|
||||
|
||||
@@ -22,23 +22,19 @@ package controller
|
||||
import (
|
||||
"github.com/apache/incubator-answer/internal/base/handler"
|
||||
"github.com/apache/incubator-answer/internal/base/middleware"
|
||||
"github.com/apache/incubator-answer/internal/base/reason"
|
||||
"github.com/apache/incubator-answer/internal/schema"
|
||||
"github.com/apache/incubator-answer/internal/service"
|
||||
"github.com/apache/incubator-answer/pkg/converter"
|
||||
"github.com/apache/incubator-answer/internal/service/collection"
|
||||
"github.com/apache/incubator-answer/pkg/uid"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/jinzhu/copier"
|
||||
"github.com/segmentfault/pacman/errors"
|
||||
)
|
||||
|
||||
// CollectionController collection controller
|
||||
type CollectionController struct {
|
||||
collectionService *service.CollectionService
|
||||
collectionService *collection.CollectionService
|
||||
}
|
||||
|
||||
// NewCollectionController new controller
|
||||
func NewCollectionController(collectionService *service.CollectionService) *CollectionController {
|
||||
func NewCollectionController(collectionService *collection.CollectionService) *CollectionController {
|
||||
return &CollectionController{collectionService: collectionService}
|
||||
}
|
||||
|
||||
@@ -57,21 +53,10 @@ func (cc *CollectionController) CollectionSwitch(ctx *gin.Context) {
|
||||
if handler.BindAndCheck(ctx, req) {
|
||||
return
|
||||
}
|
||||
|
||||
req.ObjectID = uid.DeShortID(req.ObjectID)
|
||||
req.UserID = middleware.GetLoginUserIDFromContext(ctx)
|
||||
|
||||
dto := &schema.CollectionSwitchDTO{}
|
||||
_ = copier.Copy(dto, req)
|
||||
|
||||
dto.UserID = middleware.GetLoginUserIDFromContext(ctx)
|
||||
|
||||
if converter.StringToInt64(req.ObjectID) < 1 {
|
||||
return
|
||||
}
|
||||
if converter.StringToInt64(dto.UserID) < 1 {
|
||||
handler.HandleResponse(ctx, errors.Unauthorized(reason.UnauthorizedError), nil)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := cc.collectionService.CollectionSwitch(ctx, dto)
|
||||
resp, err := cc.collectionService.CollectionSwitch(ctx, req)
|
||||
handler.HandleResponse(ctx, err, resp)
|
||||
}
|
||||
|
||||
@@ -46,4 +46,6 @@ var ProviderSetController = wire.NewSet(
|
||||
NewConnectorController,
|
||||
NewUserCenterController,
|
||||
NewPermissionController,
|
||||
NewUserPluginController,
|
||||
NewReviewController,
|
||||
)
|
||||
|
||||
@@ -70,6 +70,7 @@ func (nc *NotificationController) GetRedDot(ctx *gin.Context) {
|
||||
req.CanReviewQuestion = canList[0]
|
||||
req.CanReviewAnswer = canList[1]
|
||||
req.CanReviewTag = canList[2]
|
||||
req.IsAdmin = middleware.GetUserIsAdminModerator(ctx)
|
||||
|
||||
resp, err := nc.notificationService.GetRedDot(ctx, req)
|
||||
handler.HandleResponse(ctx, err, resp)
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/apache/incubator-answer/internal/base/handler"
|
||||
"github.com/apache/incubator-answer/internal/base/middleware"
|
||||
"github.com/apache/incubator-answer/internal/base/pager"
|
||||
@@ -28,8 +30,8 @@ import (
|
||||
"github.com/apache/incubator-answer/internal/base/validator"
|
||||
"github.com/apache/incubator-answer/internal/entity"
|
||||
"github.com/apache/incubator-answer/internal/schema"
|
||||
"github.com/apache/incubator-answer/internal/service"
|
||||
"github.com/apache/incubator-answer/internal/service/action"
|
||||
"github.com/apache/incubator-answer/internal/service/content"
|
||||
"github.com/apache/incubator-answer/internal/service/permission"
|
||||
"github.com/apache/incubator-answer/internal/service/rank"
|
||||
"github.com/apache/incubator-answer/internal/service/siteinfo_common"
|
||||
@@ -37,13 +39,12 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/jinzhu/copier"
|
||||
"github.com/segmentfault/pacman/errors"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// QuestionController question controller
|
||||
type QuestionController struct {
|
||||
questionService *service.QuestionService
|
||||
answerService *service.AnswerService
|
||||
questionService *content.QuestionService
|
||||
answerService *content.AnswerService
|
||||
rankService *rank.RankService
|
||||
siteInfoService siteinfo_common.SiteInfoCommonService
|
||||
actionService *action.CaptchaService
|
||||
@@ -52,8 +53,8 @@ type QuestionController struct {
|
||||
|
||||
// NewQuestionController new controller
|
||||
func NewQuestionController(
|
||||
questionService *service.QuestionService,
|
||||
answerService *service.AnswerService,
|
||||
questionService *content.QuestionService,
|
||||
answerService *content.AnswerService,
|
||||
rankService *rank.RankService,
|
||||
siteInfoService siteinfo_common.SiteInfoCommonService,
|
||||
actionService *action.CaptchaService,
|
||||
@@ -542,7 +543,7 @@ func (qc *QuestionController) AddQuestionByAnswer(ctx *gin.Context) {
|
||||
return
|
||||
}
|
||||
//add the question id to the answer
|
||||
questionInfo, ok := resp.(*schema.QuestionInfo)
|
||||
questionInfo, ok := resp.(*schema.QuestionInfoResp)
|
||||
if ok {
|
||||
answerReq := &schema.AnswerAddReq{}
|
||||
answerReq.QuestionID = uid.DeShortID(questionInfo.ID)
|
||||
@@ -656,10 +657,15 @@ func (qc *QuestionController) UpdateQuestion(ctx *gin.Context) {
|
||||
handler.HandleResponse(ctx, err, resp)
|
||||
return
|
||||
}
|
||||
respInfo, ok := resp.(*schema.QuestionInfoResp)
|
||||
if !ok {
|
||||
handler.HandleResponse(ctx, err, resp)
|
||||
return
|
||||
}
|
||||
if !isAdmin || !linkUrlLimitUser {
|
||||
qc.actionService.ActionRecordAdd(ctx, entity.CaptchaActionEdit, req.UserID)
|
||||
}
|
||||
handler.HandleResponse(ctx, nil, &schema.UpdateQuestionResp{WaitForReview: !req.NoNeedReview})
|
||||
handler.HandleResponse(ctx, nil, &schema.UpdateQuestionResp{UrlTitle: respInfo.UrlTitle, WaitForReview: !req.NoNeedReview})
|
||||
}
|
||||
|
||||
// QuestionRecover recover deleted question
|
||||
@@ -811,6 +817,7 @@ func (qc *QuestionController) PersonalQuestionPage(ctx *gin.Context) {
|
||||
}
|
||||
|
||||
req.LoginUserID = middleware.GetLoginUserIDFromContext(ctx)
|
||||
req.IsAdmin = middleware.GetUserIsAdminModerator(ctx)
|
||||
resp, err := qc.questionService.PersonalQuestionPage(ctx, req)
|
||||
handler.HandleResponse(ctx, err, resp)
|
||||
}
|
||||
@@ -835,6 +842,7 @@ func (qc *QuestionController) PersonalAnswerPage(ctx *gin.Context) {
|
||||
}
|
||||
|
||||
req.LoginUserID = middleware.GetLoginUserIDFromContext(ctx)
|
||||
req.IsAdmin = middleware.GetUserIsAdminModerator(ctx)
|
||||
resp, err := qc.questionService.PersonalAnswerPage(ctx, req)
|
||||
handler.HandleResponse(ctx, err, resp)
|
||||
}
|
||||
@@ -864,14 +872,14 @@ func (qc *QuestionController) PersonalCollectionPage(ctx *gin.Context) {
|
||||
|
||||
// AdminQuestionPage admin question page
|
||||
// @Summary AdminQuestionPage admin question page
|
||||
// @Description Status:[available,closed,deleted]
|
||||
// @Description Status:[available,closed,deleted,pending]
|
||||
// @Tags admin
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Security ApiKeyAuth
|
||||
// @Param page query int false "page size"
|
||||
// @Param page_size query int false "page size"
|
||||
// @Param status query string false "user status" Enums(available, closed, deleted)
|
||||
// @Param status query string false "user status" Enums(available, closed, deleted, pending)
|
||||
// @Param query query string false "question id or title"
|
||||
// @Success 200 {object} handler.RespBody
|
||||
// @Router /answer/admin/api/question/page [get]
|
||||
@@ -888,14 +896,14 @@ func (qc *QuestionController) AdminQuestionPage(ctx *gin.Context) {
|
||||
|
||||
// AdminAnswerPage admin answer page
|
||||
// @Summary AdminAnswerPage admin answer page
|
||||
// @Description Status:[available,deleted]
|
||||
// @Description Status:[available,deleted,pending]
|
||||
// @Tags admin
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Security ApiKeyAuth
|
||||
// @Param page query int false "page size"
|
||||
// @Param page_size query int false "page size"
|
||||
// @Param status query string false "user status" Enums(available,deleted)
|
||||
// @Param status query string false "user status" Enums(available,deleted,pending)
|
||||
// @Param query query string false "answer id or question title"
|
||||
// @Param question_id query string false "question id"
|
||||
// @Success 200 {object} handler.RespBody
|
||||
|
||||
@@ -103,3 +103,54 @@ func (rc *ReportController) AddReport(ctx *gin.Context) {
|
||||
}
|
||||
handler.HandleResponse(ctx, err, nil)
|
||||
}
|
||||
|
||||
// GetUnreviewedReportPostPage get unreviewed report post page
|
||||
// @Summary get unreviewed report post page
|
||||
// @Description get unreviewed report post page
|
||||
// @Tags Report
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Security ApiKeyAuth
|
||||
// @Param page query int false "page"
|
||||
// @Success 200 {object} handler.RespBody{data=pager.PageModel{list=[]schema.GetReportListPageResp}}
|
||||
// @Router /answer/api/v1/report/unreviewed/post [get]
|
||||
func (rc *ReportController) GetUnreviewedReportPostPage(ctx *gin.Context) {
|
||||
req := &schema.GetUnreviewedReportPostPageReq{}
|
||||
if handler.BindAndCheck(ctx, req) {
|
||||
return
|
||||
}
|
||||
|
||||
req.UserID = middleware.GetLoginUserIDFromContext(ctx)
|
||||
req.IsAdmin = middleware.GetUserIsAdminModerator(ctx)
|
||||
|
||||
resp, err := rc.reportService.GetUnreviewedReportPostPage(ctx, req)
|
||||
handler.HandleResponse(ctx, err, resp)
|
||||
}
|
||||
|
||||
// ReviewReport review report
|
||||
// @Summary review report
|
||||
// @Description review report
|
||||
// @Security ApiKeyAuth
|
||||
// @Tags Report
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Security ApiKeyAuth
|
||||
// @Param data body schema.ReviewReportReq true "flag"
|
||||
// @Success 200 {object} handler.RespBody
|
||||
// @Router /answer/api/v1/report/review [put]
|
||||
func (rc *ReportController) ReviewReport(ctx *gin.Context) {
|
||||
req := &schema.ReviewReportReq{}
|
||||
if handler.BindAndCheck(ctx, req) {
|
||||
return
|
||||
}
|
||||
|
||||
req.UserID = middleware.GetLoginUserIDFromContext(ctx)
|
||||
req.IsAdmin = middleware.GetUserIsAdminModerator(ctx)
|
||||
if !req.IsAdmin {
|
||||
handler.HandleResponse(ctx, errors.Forbidden(reason.ForbiddenError), nil)
|
||||
return
|
||||
}
|
||||
|
||||
err := rc.reportService.ReviewReport(ctx, req)
|
||||
handler.HandleResponse(ctx, err, nil)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package controller
|
||||
|
||||
import (
|
||||
"github.com/apache/incubator-answer/internal/base/handler"
|
||||
"github.com/apache/incubator-answer/internal/base/middleware"
|
||||
"github.com/apache/incubator-answer/internal/base/reason"
|
||||
"github.com/apache/incubator-answer/internal/schema"
|
||||
"github.com/apache/incubator-answer/internal/service/action"
|
||||
"github.com/apache/incubator-answer/internal/service/rank"
|
||||
"github.com/apache/incubator-answer/internal/service/review"
|
||||
"github.com/apache/incubator-answer/plugin"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/segmentfault/pacman/errors"
|
||||
)
|
||||
|
||||
// ReviewController review controller
|
||||
type ReviewController struct {
|
||||
reviewService *review.ReviewService
|
||||
rankService *rank.RankService
|
||||
actionService *action.CaptchaService
|
||||
}
|
||||
|
||||
// NewReviewController new controller
|
||||
func NewReviewController(
|
||||
reviewService *review.ReviewService,
|
||||
rankService *rank.RankService,
|
||||
actionService *action.CaptchaService,
|
||||
) *ReviewController {
|
||||
return &ReviewController{
|
||||
reviewService: reviewService,
|
||||
rankService: rankService,
|
||||
actionService: actionService,
|
||||
}
|
||||
}
|
||||
|
||||
// GetUnreviewedPostPage get unreviewed post page
|
||||
// @Summary get unreviewed post page
|
||||
// @Description get unreviewed post page
|
||||
// @Tags Review
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Security ApiKeyAuth
|
||||
// @Param page query int false "page"
|
||||
// @Param object_id query string false "object_id"
|
||||
// @Success 200 {object} handler.RespBody{data=pager.PageModel{list=[]schema.GetUnreviewedPostPageResp}}
|
||||
// @Router /answer/api/v1/review/pending/post/page [get]
|
||||
func (rc *ReviewController) GetUnreviewedPostPage(ctx *gin.Context) {
|
||||
req := &schema.GetUnreviewedPostPageReq{}
|
||||
if handler.BindAndCheck(ctx, req) {
|
||||
return
|
||||
}
|
||||
|
||||
req.UserID = middleware.GetLoginUserIDFromContext(ctx)
|
||||
req.IsAdmin = middleware.GetUserIsAdminModerator(ctx)
|
||||
|
||||
req.ReviewerMapping = make(map[string]string)
|
||||
_ = plugin.CallReviewer(func(base plugin.Reviewer) error {
|
||||
info := base.Info()
|
||||
req.ReviewerMapping[info.SlugName] = info.Name.Translate(ctx)
|
||||
return nil
|
||||
})
|
||||
|
||||
resp, err := rc.reviewService.GetUnreviewedPostPage(ctx, req)
|
||||
handler.HandleResponse(ctx, err, resp)
|
||||
}
|
||||
|
||||
// UpdateReview update review
|
||||
// @Summary update review
|
||||
// @Description update review
|
||||
// @Security ApiKeyAuth
|
||||
// @Tags Review
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Security ApiKeyAuth
|
||||
// @Param data body schema.UpdateReviewReq true "review"
|
||||
// @Success 200 {object} handler.RespBody
|
||||
// @Router /answer/api/v1/review/pending/post [put]
|
||||
func (rc *ReviewController) UpdateReview(ctx *gin.Context) {
|
||||
req := &schema.UpdateReviewReq{}
|
||||
if handler.BindAndCheck(ctx, req) {
|
||||
return
|
||||
}
|
||||
|
||||
req.UserID = middleware.GetLoginUserIDFromContext(ctx)
|
||||
req.IsAdmin = middleware.GetUserIsAdminModerator(ctx)
|
||||
if !req.IsAdmin {
|
||||
handler.HandleResponse(ctx, errors.Forbidden(reason.ForbiddenError), nil)
|
||||
return
|
||||
}
|
||||
|
||||
err := rc.reviewService.UpdateReview(ctx, req)
|
||||
handler.HandleResponse(ctx, err, nil)
|
||||
}
|
||||
@@ -26,7 +26,7 @@ import (
|
||||
"github.com/apache/incubator-answer/internal/base/reason"
|
||||
"github.com/apache/incubator-answer/internal/entity"
|
||||
"github.com/apache/incubator-answer/internal/schema"
|
||||
"github.com/apache/incubator-answer/internal/service"
|
||||
"github.com/apache/incubator-answer/internal/service/content"
|
||||
"github.com/apache/incubator-answer/internal/service/permission"
|
||||
"github.com/apache/incubator-answer/internal/service/rank"
|
||||
"github.com/apache/incubator-answer/pkg/obj"
|
||||
@@ -37,13 +37,13 @@ import (
|
||||
|
||||
// RevisionController revision controller
|
||||
type RevisionController struct {
|
||||
revisionListService *service.RevisionService
|
||||
revisionListService *content.RevisionService
|
||||
rankService *rank.RankService
|
||||
}
|
||||
|
||||
// NewRevisionController new controller
|
||||
func NewRevisionController(
|
||||
revisionListService *service.RevisionService,
|
||||
revisionListService *content.RevisionService,
|
||||
rankService *rank.RankService,
|
||||
) *RevisionController {
|
||||
return &RevisionController{
|
||||
@@ -191,3 +191,32 @@ func (rc *RevisionController) CheckCanUpdateRevision(ctx *gin.Context) {
|
||||
resp, err := rc.revisionListService.CheckCanUpdateRevision(ctx, req)
|
||||
handler.HandleResponse(ctx, err, resp)
|
||||
}
|
||||
|
||||
// GetReviewingType get reviewing type
|
||||
// @Summary get reviewing type
|
||||
// @Description get reviewing type
|
||||
// @Tags Revision
|
||||
// @Produce json
|
||||
// @Security ApiKeyAuth
|
||||
// @Success 200 {object} handler.RespBody{data=[]schema.GetReviewingTypeResp}
|
||||
// @Router /answer/api/v1/reviewing/type [get]
|
||||
func (rc *RevisionController) GetReviewingType(ctx *gin.Context) {
|
||||
req := &schema.GetReviewingTypeReq{}
|
||||
req.UserID = middleware.GetLoginUserIDFromContext(ctx)
|
||||
canList, err := rc.rankService.CheckOperationPermissions(ctx, req.UserID, []string{
|
||||
permission.QuestionAudit,
|
||||
permission.AnswerAudit,
|
||||
permission.TagAudit,
|
||||
})
|
||||
if err != nil {
|
||||
handler.HandleResponse(ctx, err, nil)
|
||||
return
|
||||
}
|
||||
req.CanReviewQuestion = canList[0]
|
||||
req.CanReviewAnswer = canList[1]
|
||||
req.CanReviewTag = canList[2]
|
||||
req.IsAdmin = middleware.GetUserIsAdminModerator(ctx)
|
||||
|
||||
resp, err := rc.revisionListService.GetReviewingType(ctx, req)
|
||||
handler.HandleResponse(ctx, err, resp)
|
||||
}
|
||||
|
||||
@@ -27,8 +27,8 @@ import (
|
||||
"github.com/apache/incubator-answer/internal/base/validator"
|
||||
"github.com/apache/incubator-answer/internal/entity"
|
||||
"github.com/apache/incubator-answer/internal/schema"
|
||||
"github.com/apache/incubator-answer/internal/service"
|
||||
"github.com/apache/incubator-answer/internal/service/action"
|
||||
"github.com/apache/incubator-answer/internal/service/content"
|
||||
"github.com/apache/incubator-answer/plugin"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/segmentfault/pacman/errors"
|
||||
@@ -36,13 +36,13 @@ import (
|
||||
|
||||
// SearchController tag controller
|
||||
type SearchController struct {
|
||||
searchService *service.SearchService
|
||||
searchService *content.SearchService
|
||||
actionService *action.CaptchaService
|
||||
}
|
||||
|
||||
// NewSearchController new controller
|
||||
func NewSearchController(
|
||||
searchService *service.SearchService,
|
||||
searchService *content.SearchService,
|
||||
actionService *action.CaptchaService,
|
||||
) *SearchController {
|
||||
return &SearchController{
|
||||
|
||||
@@ -87,6 +87,10 @@ func (sc *SiteInfoController) GetSiteInfo(ctx *gin.Context) {
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
resp.Write, err = sc.siteInfoService.GetSiteWrite(ctx)
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
|
||||
handler.HandleResponse(ctx, nil, resp)
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user