Compare commits
40 Commits
v1.2.0-RC1
...
v1.2.5-RC1
| Author | SHA1 | Date | |
|---|---|---|---|
| 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
|
||||
+8
-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
|
||||
@@ -76,5 +76,9 @@ changelog:
|
||||
- '^docs:'
|
||||
- '^test:'
|
||||
|
||||
# goreleaser release --snapshot --rm-dist
|
||||
source:
|
||||
enabled: true
|
||||
name_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.2.5
|
||||
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.2.5
|
||||
```
|
||||
|
||||
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)
|
||||
|
||||
|
||||
+9
-7
@@ -149,9 +149,9 @@ 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)
|
||||
userExternalLoginService := user_external_login2.NewUserExternalLoginService(userRepo, userCommon, userExternalLoginRepo, emailService, siteInfoCommonService, userActiveActivityRepo, userNotificationConfigService)
|
||||
userService := service.NewUserService(userRepo, userActiveActivityRepo, activityRepo, emailService, authService, siteInfoCommonService, userRoleRelService, userCommon, userExternalLoginService, userNotificationConfigRepo, userNotificationConfigService)
|
||||
captchaRepo := captcha.NewCaptchaRepo(dataData)
|
||||
captchaService := action.NewCaptchaService(captchaRepo)
|
||||
@@ -201,11 +201,11 @@ func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database,
|
||||
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)
|
||||
externalNotificationService := notification.NewExternalNotificationService(dataData, userNotificationConfigRepo, followRepo, emailService, userRepo, externalNotificationQueueService, userExternalLoginRepo, siteInfoCommonService)
|
||||
questionService := service.NewQuestionService(questionRepo, tagCommonService, questionCommon, userCommon, userRepo, userRoleRelService, 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)
|
||||
@@ -227,7 +227,7 @@ 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)
|
||||
notificationCommon := notificationcommon.NewNotificationCommon(dataData, notificationRepo, userCommon, activityRepo, followRepo, objService, notificationQueueService, userExternalLoginRepo, siteInfoCommonService)
|
||||
notificationService := notification.NewNotificationService(dataData, notificationRepo, notificationCommon, revisionService, userRepo)
|
||||
notificationController := controller.NewNotificationController(notificationService, rankService)
|
||||
dashboardService := dashboard.NewDashboardService(questionRepo, answerRepo, commentCommonRepo, voteRepo, userRepo, reportRepo, configService, siteInfoCommonService, serviceConf, dataData)
|
||||
@@ -241,10 +241,12 @@ 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)
|
||||
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)
|
||||
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
|
||||
|
||||
+235
-46
@@ -3685,6 +3685,49 @@ const docTemplate = `{
|
||||
}
|
||||
}
|
||||
},
|
||||
"/answer/api/v1/plugin/status": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"ApiKeyAuth": []
|
||||
}
|
||||
],
|
||||
"description": "get all plugins status",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"Plugin"
|
||||
],
|
||||
"summary": "get all plugins status",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/handler.RespBody"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.GetPluginListResp"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/answer/api/v1/post/render": {
|
||||
"post": {
|
||||
"security": [
|
||||
@@ -5852,6 +5895,132 @@ const docTemplate = `{
|
||||
}
|
||||
}
|
||||
},
|
||||
"/answer/api/v1/user/plugin/config": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"ApiKeyAuth": []
|
||||
}
|
||||
],
|
||||
"description": "get user plugin config",
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"UserPlugin"
|
||||
],
|
||||
"summary": "get user plugin config",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "plugin_slug_name",
|
||||
"name": "plugin_slug_name",
|
||||
"in": "query",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/handler.RespBody"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"$ref": "#/definitions/schema.GetPluginConfigResp"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"put": {
|
||||
"security": [
|
||||
{
|
||||
"ApiKeyAuth": []
|
||||
}
|
||||
],
|
||||
"description": "update user plugin config",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"UserPlugin"
|
||||
],
|
||||
"summary": "update user plugin config",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "UpdatePluginConfigReq",
|
||||
"name": "data",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/schema.UpdateUserPluginConfigReq"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/handler.RespBody"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/answer/api/v1/user/plugin/configs": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"ApiKeyAuth": []
|
||||
}
|
||||
],
|
||||
"description": "get plugin list that used for user.",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"UserPlugin"
|
||||
],
|
||||
"summary": "get plugin list that used for user.",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/handler.RespBody"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.GetUserPluginListResp"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/answer/api/v1/user/ranking": {
|
||||
"get": {
|
||||
"security": [
|
||||
@@ -6859,12 +7028,13 @@ const docTemplate = `{
|
||||
"object_id"
|
||||
],
|
||||
"properties": {
|
||||
"bookmark": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"group_id": {
|
||||
"description": "user collection group TagID",
|
||||
"type": "string"
|
||||
},
|
||||
"object_id": {
|
||||
"description": "object TagID",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
@@ -6873,13 +7043,7 @@ const docTemplate = `{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"object_collection_count": {
|
||||
"type": "string"
|
||||
},
|
||||
"object_id": {
|
||||
"type": "string"
|
||||
},
|
||||
"switch": {
|
||||
"type": "boolean"
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -7278,6 +7442,10 @@ const docTemplate = `{
|
||||
"description": "username",
|
||||
"type": "string"
|
||||
},
|
||||
"visit_token": {
|
||||
"description": "visit token",
|
||||
"type": "string"
|
||||
},
|
||||
"website": {
|
||||
"description": "website",
|
||||
"type": "string"
|
||||
@@ -7679,27 +7847,21 @@ const docTemplate = `{
|
||||
"type": "object",
|
||||
"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": {
|
||||
@@ -7707,22 +7869,18 @@ const docTemplate = `{
|
||||
"type": "string"
|
||||
},
|
||||
"member_actions": {
|
||||
"description": "MemberActions",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.PermissionMemberAction"
|
||||
}
|
||||
},
|
||||
"original_text": {
|
||||
"description": "original text",
|
||||
"type": "string"
|
||||
},
|
||||
"parsed_text": {
|
||||
"description": "parsed text",
|
||||
"type": "string"
|
||||
},
|
||||
"question_count": {
|
||||
"description": "question amount",
|
||||
"type": "integer"
|
||||
},
|
||||
"recommend": {
|
||||
@@ -7732,15 +7890,15 @@ const docTemplate = `{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
@@ -7790,22 +7948,13 @@ const docTemplate = `{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"all_new_question": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
}
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
},
|
||||
"all_new_question_for_following_tags": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
}
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
},
|
||||
"inbox": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
}
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -7862,6 +8011,17 @@ const docTemplate = `{
|
||||
}
|
||||
}
|
||||
},
|
||||
"schema.GetUserPluginListResp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"slug_name": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"schema.GetVoteWithPageResp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -8491,6 +8651,9 @@ const docTemplate = `{
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"url_title": {
|
||||
"type": "string"
|
||||
},
|
||||
"user_info": {
|
||||
"description": "user info",
|
||||
"allOf": [
|
||||
@@ -8746,6 +8909,9 @@ const docTemplate = `{
|
||||
"site_users": {
|
||||
"$ref": "#/definitions/schema.SiteUsersResp"
|
||||
},
|
||||
"site_write": {
|
||||
"$ref": "#/definitions/schema.SiteWriteResp"
|
||||
},
|
||||
"theme": {
|
||||
"$ref": "#/definitions/schema.SiteThemeResp"
|
||||
},
|
||||
@@ -8837,6 +9003,9 @@ const docTemplate = `{
|
||||
"allow_new_registrations": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"allow_password_login": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"login_required": {
|
||||
"type": "boolean"
|
||||
}
|
||||
@@ -8857,6 +9026,9 @@ const docTemplate = `{
|
||||
"allow_new_registrations": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"allow_password_login": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"login_required": {
|
||||
"type": "boolean"
|
||||
}
|
||||
@@ -9019,6 +9191,9 @@ const docTemplate = `{
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"restrict_answer": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9039,6 +9214,9 @@ const docTemplate = `{
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"restrict_answer": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9378,22 +9556,13 @@ const docTemplate = `{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"all_new_question": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
}
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
},
|
||||
"all_new_question_for_following_tags": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
}
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
},
|
||||
"inbox": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
}
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9414,6 +9583,22 @@ const docTemplate = `{
|
||||
}
|
||||
}
|
||||
},
|
||||
"schema.UpdateUserPluginConfigReq": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"plugin_slug_name"
|
||||
],
|
||||
"properties": {
|
||||
"config_fields": {
|
||||
"type": "object",
|
||||
"additionalProperties": {}
|
||||
},
|
||||
"plugin_slug_name": {
|
||||
"type": "string",
|
||||
"maxLength": 100
|
||||
}
|
||||
}
|
||||
},
|
||||
"schema.UpdateUserRoleReq": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
@@ -9640,6 +9825,10 @@ const docTemplate = `{
|
||||
"description": "username",
|
||||
"type": "string"
|
||||
},
|
||||
"visit_token": {
|
||||
"description": "visit token",
|
||||
"type": "string"
|
||||
},
|
||||
"website": {
|
||||
"description": "website",
|
||||
"type": "string"
|
||||
|
||||
@@ -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 |
+235
-46
@@ -3654,6 +3654,49 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/answer/api/v1/plugin/status": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"ApiKeyAuth": []
|
||||
}
|
||||
],
|
||||
"description": "get all plugins status",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"Plugin"
|
||||
],
|
||||
"summary": "get all plugins status",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/handler.RespBody"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.GetPluginListResp"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/answer/api/v1/post/render": {
|
||||
"post": {
|
||||
"security": [
|
||||
@@ -5821,6 +5864,132 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/answer/api/v1/user/plugin/config": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"ApiKeyAuth": []
|
||||
}
|
||||
],
|
||||
"description": "get user plugin config",
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"UserPlugin"
|
||||
],
|
||||
"summary": "get user plugin config",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "plugin_slug_name",
|
||||
"name": "plugin_slug_name",
|
||||
"in": "query",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/handler.RespBody"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"$ref": "#/definitions/schema.GetPluginConfigResp"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"put": {
|
||||
"security": [
|
||||
{
|
||||
"ApiKeyAuth": []
|
||||
}
|
||||
],
|
||||
"description": "update user plugin config",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"UserPlugin"
|
||||
],
|
||||
"summary": "update user plugin config",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "UpdatePluginConfigReq",
|
||||
"name": "data",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/schema.UpdateUserPluginConfigReq"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/handler.RespBody"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/answer/api/v1/user/plugin/configs": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"ApiKeyAuth": []
|
||||
}
|
||||
],
|
||||
"description": "get plugin list that used for user.",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"UserPlugin"
|
||||
],
|
||||
"summary": "get plugin list that used for user.",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/handler.RespBody"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.GetUserPluginListResp"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/answer/api/v1/user/ranking": {
|
||||
"get": {
|
||||
"security": [
|
||||
@@ -6828,12 +6997,13 @@
|
||||
"object_id"
|
||||
],
|
||||
"properties": {
|
||||
"bookmark": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"group_id": {
|
||||
"description": "user collection group TagID",
|
||||
"type": "string"
|
||||
},
|
||||
"object_id": {
|
||||
"description": "object TagID",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
@@ -6842,13 +7012,7 @@
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"object_collection_count": {
|
||||
"type": "string"
|
||||
},
|
||||
"object_id": {
|
||||
"type": "string"
|
||||
},
|
||||
"switch": {
|
||||
"type": "boolean"
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -7247,6 +7411,10 @@
|
||||
"description": "username",
|
||||
"type": "string"
|
||||
},
|
||||
"visit_token": {
|
||||
"description": "visit token",
|
||||
"type": "string"
|
||||
},
|
||||
"website": {
|
||||
"description": "website",
|
||||
"type": "string"
|
||||
@@ -7648,27 +7816,21 @@
|
||||
"type": "object",
|
||||
"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": {
|
||||
@@ -7676,22 +7838,18 @@
|
||||
"type": "string"
|
||||
},
|
||||
"member_actions": {
|
||||
"description": "MemberActions",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.PermissionMemberAction"
|
||||
}
|
||||
},
|
||||
"original_text": {
|
||||
"description": "original text",
|
||||
"type": "string"
|
||||
},
|
||||
"parsed_text": {
|
||||
"description": "parsed text",
|
||||
"type": "string"
|
||||
},
|
||||
"question_count": {
|
||||
"description": "question amount",
|
||||
"type": "integer"
|
||||
},
|
||||
"recommend": {
|
||||
@@ -7701,15 +7859,15 @@
|
||||
"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"
|
||||
}
|
||||
}
|
||||
@@ -7759,22 +7917,13 @@
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"all_new_question": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
}
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
},
|
||||
"all_new_question_for_following_tags": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
}
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
},
|
||||
"inbox": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
}
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -7831,6 +7980,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"schema.GetUserPluginListResp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"slug_name": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"schema.GetVoteWithPageResp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -8460,6 +8620,9 @@
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"url_title": {
|
||||
"type": "string"
|
||||
},
|
||||
"user_info": {
|
||||
"description": "user info",
|
||||
"allOf": [
|
||||
@@ -8715,6 +8878,9 @@
|
||||
"site_users": {
|
||||
"$ref": "#/definitions/schema.SiteUsersResp"
|
||||
},
|
||||
"site_write": {
|
||||
"$ref": "#/definitions/schema.SiteWriteResp"
|
||||
},
|
||||
"theme": {
|
||||
"$ref": "#/definitions/schema.SiteThemeResp"
|
||||
},
|
||||
@@ -8806,6 +8972,9 @@
|
||||
"allow_new_registrations": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"allow_password_login": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"login_required": {
|
||||
"type": "boolean"
|
||||
}
|
||||
@@ -8826,6 +8995,9 @@
|
||||
"allow_new_registrations": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"allow_password_login": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"login_required": {
|
||||
"type": "boolean"
|
||||
}
|
||||
@@ -8988,6 +9160,9 @@
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"restrict_answer": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9008,6 +9183,9 @@
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"restrict_answer": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9347,22 +9525,13 @@
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"all_new_question": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
}
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
},
|
||||
"all_new_question_for_following_tags": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
}
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
},
|
||||
"inbox": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
}
|
||||
"$ref": "#/definitions/schema.NotificationChannelConfig"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9383,6 +9552,22 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"schema.UpdateUserPluginConfigReq": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"plugin_slug_name"
|
||||
],
|
||||
"properties": {
|
||||
"config_fields": {
|
||||
"type": "object",
|
||||
"additionalProperties": {}
|
||||
},
|
||||
"plugin_slug_name": {
|
||||
"type": "string",
|
||||
"maxLength": 100
|
||||
}
|
||||
}
|
||||
},
|
||||
"schema.UpdateUserRoleReq": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
@@ -9609,6 +9794,10 @@
|
||||
"description": "username",
|
||||
"type": "string"
|
||||
},
|
||||
"visit_token": {
|
||||
"description": "visit token",
|
||||
"type": "string"
|
||||
},
|
||||
"website": {
|
||||
"description": "website",
|
||||
"type": "string"
|
||||
|
||||
+144
-38
@@ -357,11 +357,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 +370,7 @@ definitions:
|
||||
schema.CollectionSwitchResp:
|
||||
properties:
|
||||
object_collection_count:
|
||||
type: string
|
||||
object_id:
|
||||
type: string
|
||||
switch:
|
||||
type: boolean
|
||||
type: integer
|
||||
type: object
|
||||
schema.ConfigField:
|
||||
properties:
|
||||
@@ -658,6 +654,9 @@ definitions:
|
||||
username:
|
||||
description: username
|
||||
type: string
|
||||
visit_token:
|
||||
description: visit token
|
||||
type: string
|
||||
website:
|
||||
description: website
|
||||
type: string
|
||||
@@ -941,53 +940,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:
|
||||
@@ -1020,17 +1008,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 +1053,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:
|
||||
@@ -1508,6 +1497,8 @@ definitions:
|
||||
type: array
|
||||
title:
|
||||
type: string
|
||||
url_title:
|
||||
type: string
|
||||
user_info:
|
||||
allOf:
|
||||
- $ref: '#/definitions/schema.SearchObjectUser'
|
||||
@@ -1683,6 +1674,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 +1737,8 @@ definitions:
|
||||
type: boolean
|
||||
allow_new_registrations:
|
||||
type: boolean
|
||||
allow_password_login:
|
||||
type: boolean
|
||||
login_required:
|
||||
type: boolean
|
||||
type: object
|
||||
@@ -1757,6 +1752,8 @@ definitions:
|
||||
type: boolean
|
||||
allow_new_registrations:
|
||||
type: boolean
|
||||
allow_password_login:
|
||||
type: boolean
|
||||
login_required:
|
||||
type: boolean
|
||||
type: object
|
||||
@@ -1867,6 +1864,8 @@ definitions:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
restrict_answer:
|
||||
type: boolean
|
||||
type: object
|
||||
schema.SiteWriteResp:
|
||||
properties:
|
||||
@@ -1880,6 +1879,8 @@ definitions:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
restrict_answer:
|
||||
type: boolean
|
||||
type: object
|
||||
schema.TagItem:
|
||||
properties:
|
||||
@@ -2116,17 +2117,11 @@ definitions:
|
||||
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 +2135,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:
|
||||
@@ -2302,6 +2308,9 @@ definitions:
|
||||
username:
|
||||
description: username
|
||||
type: string
|
||||
visit_token:
|
||||
description: visit token
|
||||
type: string
|
||||
website:
|
||||
description: website
|
||||
type: string
|
||||
@@ -4659,6 +4668,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:
|
||||
@@ -5983,6 +6016,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
|
||||
@@ -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
|
||||
|
||||
@@ -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=
|
||||
|
||||
+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:
|
||||
|
||||
+62
-33
@@ -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:
|
||||
@@ -267,6 +270,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 +485,7 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: How to Format
|
||||
@@ -520,6 +525,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 +604,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
|
||||
@@ -678,6 +684,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 +716,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 +729,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 +740,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 +749,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Edit Answer
|
||||
default_reason: Edit answer
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +780,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 +835,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 +965,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 +1023,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
|
||||
@@ -1052,6 +1054,7 @@ ui:
|
||||
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
|
||||
@@ -1114,6 +1117,11 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1361,33 @@ 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
|
||||
site_health_status: Site health status
|
||||
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
|
||||
answer_links: Answer links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
documents: Documents
|
||||
feedback: Feedback
|
||||
support: Support
|
||||
@@ -1384,6 +1402,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1594,6 +1614,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 +1641,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 +1685,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>.
|
||||
|
||||
+62
-33
@@ -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:
|
||||
@@ -267,6 +270,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 +485,7 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: Sut i Fformatio
|
||||
@@ -520,6 +525,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 +604,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
|
||||
@@ -678,6 +684,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 +716,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 +729,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 +740,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 +749,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Edit Answer
|
||||
default_reason: Edit answer
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +780,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 +835,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 +965,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 +1023,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
|
||||
@@ -1052,6 +1054,7 @@ ui:
|
||||
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
|
||||
@@ -1114,6 +1117,11 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1361,33 @@ 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
|
||||
site_health_status: Site health status
|
||||
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
|
||||
answer_links: Answer links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
documents: Documents
|
||||
feedback: Feedback
|
||||
support: Support
|
||||
@@ -1384,6 +1402,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1594,6 +1614,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 +1641,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 +1685,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>.
|
||||
|
||||
+62
-33
@@ -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:
|
||||
@@ -267,6 +270,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 +485,7 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: How to Format
|
||||
@@ -520,6 +525,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 +604,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
|
||||
@@ -678,6 +684,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 +716,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 +729,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 +740,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 +749,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Edit Answer
|
||||
default_reason: Edit answer
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +780,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 +835,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 +965,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 +1023,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
|
||||
@@ -1052,6 +1054,7 @@ ui:
|
||||
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
|
||||
@@ -1114,6 +1117,11 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1361,33 @@ 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
|
||||
site_health_status: Site health status
|
||||
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
|
||||
answer_links: Answer links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
documents: Documents
|
||||
feedback: Feedback
|
||||
support: Support
|
||||
@@ -1384,6 +1402,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1594,6 +1614,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 +1641,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 +1685,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>.
|
||||
|
||||
+111
-82
@@ -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: Verboten.
|
||||
duplicate_request_error:
|
||||
other: Duplicate submission.
|
||||
other: Doppelte Einreichung.
|
||||
action:
|
||||
report:
|
||||
other: Melden
|
||||
@@ -56,7 +56,7 @@ backend:
|
||||
invite_someone_to_answer:
|
||||
other: Bearbeiten
|
||||
undelete:
|
||||
other: Undelete
|
||||
other: Wiederherstellen
|
||||
role:
|
||||
name:
|
||||
user:
|
||||
@@ -75,13 +75,16 @@ backend:
|
||||
privilege:
|
||||
level_1:
|
||||
description:
|
||||
other: Stufe 1 (weniger Ansehen erforderlich für privates Team, Gruppe)
|
||||
other: Level 1 (less reputation required for private team, group)
|
||||
level_2:
|
||||
description:
|
||||
other: Stufe 2 (geringes Ansehen für Startup-Community erforderlich)
|
||||
other: Level 2 (low reputation required for startup community)
|
||||
level_3:
|
||||
description:
|
||||
other: Stufe 3 (hohes Ansehen für reife Gemeinschaft erforderlich)
|
||||
other: Level 3 (high reputation required for mature community)
|
||||
level_custom:
|
||||
description:
|
||||
other: Custom Level
|
||||
rank_question_add_label:
|
||||
other: Fragen stellen
|
||||
rank_answer_add_label:
|
||||
@@ -179,9 +182,9 @@ backend:
|
||||
captcha_verification_failed:
|
||||
other: Captcha ist falsch.
|
||||
disallow_follow:
|
||||
other: Es ist dir nicht erlaubt, zu folgen.
|
||||
other: Es ist dir nicht erlaubt zu folgen.
|
||||
disallow_vote:
|
||||
other: Du darfst nicht abstimmen.
|
||||
other: Es ist dir nicht erlaubt abzustimmen.
|
||||
disallow_vote_your_self:
|
||||
other: Du kannst nicht für deinen eigenen Beitrag stimmen.
|
||||
not_found:
|
||||
@@ -202,7 +205,7 @@ backend:
|
||||
cannot_deleted:
|
||||
other: Keine Berechtigung zum Löschen.
|
||||
cannot_close:
|
||||
other: Keine Erlaubnis zum Schließen.
|
||||
other: Keine Berechtigung zum Schließen.
|
||||
cannot_update:
|
||||
other: Keine Berechtigung zum Aktualisieren.
|
||||
rank:
|
||||
@@ -214,9 +217,9 @@ backend:
|
||||
other: Dafür brauchst du mindestens {{.Rank}} Ansehen.
|
||||
report:
|
||||
handle_failed:
|
||||
other: Berichtshandle fehlgeschlagen.
|
||||
other: Bearbeiten der Meldung fehlgeschlagen.
|
||||
not_found:
|
||||
other: Report nicht gefunden.
|
||||
other: Meldung nicht gefunden.
|
||||
tag:
|
||||
already_exist:
|
||||
other: Tag existiert bereits.
|
||||
@@ -242,7 +245,7 @@ backend:
|
||||
other: Design nicht gefunden.
|
||||
revision:
|
||||
review_underway:
|
||||
other: Kann momentan nicht bearbeiten, es gibt eine Version in der Warteschlange.
|
||||
other: Kann derzeit nicht bearbeitet werden, es existiert eine Version in der Überprüfungswarteschlange.
|
||||
no_permission:
|
||||
other: Keine Berechtigung zum Überarbeiten.
|
||||
user:
|
||||
@@ -267,6 +270,8 @@ backend:
|
||||
other: Du kannst deine Rolle nicht ändern.
|
||||
not_allowed_registration:
|
||||
other: Derzeit ist die Seite nicht für die Anmeldung geöffnet.
|
||||
not_allowed_login_via_password:
|
||||
other: Currently the site is not allowed to login via password.
|
||||
access_denied:
|
||||
other: Zugriff verweigert
|
||||
page_access_denied:
|
||||
@@ -300,68 +305,68 @@ backend:
|
||||
other: Dieser Beitrag ist eine Werbung oder Vandalismus. Er ist nicht nützlich oder relevant für das aktuelle Thema.
|
||||
rude_or_abusive:
|
||||
name:
|
||||
other: rude or abusive
|
||||
other: unhöflich oder beleidigend
|
||||
desc:
|
||||
other: Eine vernünftige Person würde diesen Inhalt als unangemessen für einen respektvollen Diskurs empfinden.
|
||||
a_duplicate:
|
||||
name:
|
||||
other: a duplicate
|
||||
other: ein Duplikat
|
||||
desc:
|
||||
other: Diese Frage wurde schon einmal gestellt und hat bereits eine Antwort.
|
||||
placeholder:
|
||||
other: Gib den Link zur bestehenden Frage ein
|
||||
not_a_answer:
|
||||
name:
|
||||
other: not an answer
|
||||
other: keine Antwort
|
||||
desc:
|
||||
other: Das wurde als Antwort gepostet, aber es versucht nicht, die Frage zu beantworten. Sie sollte entweder bearbeitet, kommentiert, als weitere Frage gestellt oder ganz gelöscht werden.
|
||||
no_longer_needed:
|
||||
name:
|
||||
other: no longer needed
|
||||
other: nicht mehr benötigt
|
||||
desc:
|
||||
other: Dieser Kommentar ist veraltet oder nicht relevant für diesen Beitrag.
|
||||
something:
|
||||
name:
|
||||
other: something else
|
||||
other: anderer Grund
|
||||
desc:
|
||||
other: Dieser Posten erfordert die Aufmerksamkeit des Personals aus einem anderen, oben nicht genannten Grund.
|
||||
other: Dieser Beitrag erfordert die Aufmerksamkeit der Temmitglieder aus einem anderen, oben nicht genannten Grund.
|
||||
placeholder:
|
||||
other: Lass uns wissen, worüber du dir Sorgen machst
|
||||
community_specific:
|
||||
name:
|
||||
other: a community-specific reason
|
||||
other: ein Community-spezifischer Grund
|
||||
desc:
|
||||
other: Diese Frage entspricht nicht den Gemeinschaftsrichtlinien.
|
||||
not_clarity:
|
||||
name:
|
||||
other: needs details or clarity
|
||||
other: benötigt Details oder Klarheit
|
||||
desc:
|
||||
other: Diese Frage enthält derzeit mehrere Fragen in einer. Sie sollte sich auf ein einziges Problem konzentrieren.
|
||||
looks_ok:
|
||||
name:
|
||||
other: looks OK
|
||||
other: sieht OK aus
|
||||
desc:
|
||||
other: Dieser Beitrag ist gut so wie er ist und nicht von schlechter Qualität.
|
||||
needs_edit:
|
||||
name:
|
||||
other: needs edit, and I did it
|
||||
other: muss bearbeitet werden, und ich habe es getan
|
||||
desc:
|
||||
other: Verbessere und korrigiere Probleme mit diesem Beitrag selbst.
|
||||
needs_close:
|
||||
name:
|
||||
other: needs close
|
||||
other: muss geschlossen werden
|
||||
desc:
|
||||
other: Eine geschlossene Frage kann nicht beantwortet werden, aber du kannst sie trotzdem bearbeiten, abstimmen und kommentieren.
|
||||
needs_delete:
|
||||
name:
|
||||
other: needs delete
|
||||
other: muss gelöscht werden
|
||||
desc:
|
||||
other: Dieser Beitrag wird gelöscht.
|
||||
question:
|
||||
close:
|
||||
duplicate:
|
||||
name:
|
||||
other: spam
|
||||
other: Spam
|
||||
desc:
|
||||
other: Diese Frage ist bereits gestellt worden und hat bereits eine Antwort.
|
||||
guideline:
|
||||
@@ -405,7 +410,7 @@ backend:
|
||||
reply_to_you:
|
||||
other: hat Ihnen geantwortet
|
||||
mention_you:
|
||||
other: mentioned you
|
||||
other: hat dich erwähnt
|
||||
your_question_is_closed:
|
||||
other: Deine Frage wurde geschlossen
|
||||
your_question_was_deleted:
|
||||
@@ -415,23 +420,23 @@ backend:
|
||||
your_comment_was_deleted:
|
||||
other: Dein Kommentar wurde gelöscht
|
||||
up_voted_question:
|
||||
other: upvoted question
|
||||
other: positiv bewertete Frage
|
||||
down_voted_question:
|
||||
other: downvoted question
|
||||
other: negativ bewertete Frage
|
||||
up_voted_answer:
|
||||
other: upvoted answer
|
||||
other: positiv bewertete Antwort
|
||||
down_voted_answer:
|
||||
other: downvoted answer
|
||||
other: negativ bewertete Antwort
|
||||
up_voted_comment:
|
||||
other: upvoted comment
|
||||
other: positiv bewerteter Kommentar
|
||||
invited_you_to_answer:
|
||||
other: invited you to answer
|
||||
other: hat dich eingeladen, zu antworten
|
||||
email_tpl:
|
||||
change_email:
|
||||
title:
|
||||
other: "[{{.SiteName}}] Bestätige deine neue E-Mail-Adresse"
|
||||
body:
|
||||
other: "Bestätige deine neue E-Mail-Adresse für {{.SiteName}}, indem du auf den folgenden Link klickst:<br> <a href='{{.ChangeEmailUrl}}' target='_blank'>{{.ChangeEmailUrl}} </a><br><br>\n\nWenn du diese Änderung nicht beantragt hast, ignoriere bitte diese E-Mail."
|
||||
other: "Bestätige deine neue E-Mail-Adresse für {{.SiteName}}, indem du auf den folgenden Link klickst:<br>\n<a href='{{.ChangeEmailUrl}}' target='_blank'>{{.ChangeEmailUrl}}</a><br><br>\n\nWenn du diese Änderung nicht beantragt hast, ignoriere bitte diese E-Mail."
|
||||
new_answer:
|
||||
title:
|
||||
other: "[{{.SiteName}}] {{.DisplayName}} hat deine Frage beantwortet"
|
||||
@@ -446,7 +451,7 @@ backend:
|
||||
title:
|
||||
other: "[{{.SiteName}}] {{.DisplayName}} hat deinen Beitrag kommentiert"
|
||||
body:
|
||||
other: "<a href='{{.CommentUrl}}'>{{.QuestionTitle}}</a><br><br>\n\n{{.DisplayName}}:<br>\n<blockquote>{{.CommentSummary}}</blockquote><br>\n<a href='{{.CommentUrl}}'>Auf {{.SiteName}} ansehen</a><br><br>\n\n--<br>\n<small><a href='{{.UnsubscribeUrl}}'>Abbstellen</a></small>"
|
||||
other: "<a href='{{.CommentUrl}}'>{{.QuestionTitle}}</a><br><br>\n\n{{.DisplayName}}:<br>\n<blockquote>{{.CommentSummary}}</blockquote><br>\n<a href='{{.CommentUrl}}'>Auf {{.SiteName}} ansehen</a><br><br>\n\n--<br>\n<small><a href='{{.UnsubscribeUrl}}'>Abbestellen</a></small>"
|
||||
new_question:
|
||||
title:
|
||||
other: "[{{.SiteName}}] Neue Frage: {{.QuestionTitle}}"
|
||||
@@ -469,23 +474,23 @@ backend:
|
||||
other: "Dies ist eine Test-Email."
|
||||
action_activity_type:
|
||||
upvote:
|
||||
other: upvote
|
||||
other: positiv bewerten
|
||||
upvoted:
|
||||
other: upvoted
|
||||
other: positiv bewertet
|
||||
downvote:
|
||||
other: downvote
|
||||
other: negativ bewerten
|
||||
downvoted:
|
||||
other: downvoted
|
||||
other: negativ bewertet
|
||||
accept:
|
||||
other: accept
|
||||
other: akzeptieren
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
other: akzeptiert
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: Wie man formatiert
|
||||
desc: >-
|
||||
<ul class="mb-0"><li><p class="mb-2">um Links zu erstellen</p><pre class="mb-2"><code><https://url.com><br/><br/>[Title](https://url.com)</code></pre></li><li><p class="mb-2">put gibt zurück zwischen Absätzen</p></li><li><p class="mb-2"><em>_italic_</em> oder **<strong>fett</strong>**</p></li><li><p class="mb-2">Code um 4 Leerzeichen einrücken</p></li><li><p class="mb-2">Zitat durch Platzieren von <code>></code> am Zeilenanfang</p></li><li><p class="mb-2">Backtick-Escapes <code>`like _this_`</code></p></li><li><p class="mb-2">erzeuge Codezäune mit Backticks <code>`</code></p><pre class="mb-0"><code>```<br/>code hier<br/>```</code></pre></li></ul>
|
||||
<ul class="mb-0"><li><p class="mb-2">um Links</p><pre class="mb-2"><code><https://url.com><br/><br/>[Titel](https://url.com)</code></pre></li><li><p class="mb-2">Zwischen den Absätzen Zeilenumbrüche einfügen</p></li><li><p class="mb-2"><em>_italic_</em> oder **<strong>fett</strong>**</p></li><li><p class="mb-2">Code um 4 Leerzeichen einrücken</p></li><li><p class="mb-2">Zitat durch Setzen von <code>> </code> am Anfang der Zeile</p></li><li><p class="mb-2">Backtick-Escapes <code>`wie _this_`</code></p></li><li><p class="mb-2">Codeumrandungen mit Backticks <code>`</code></p><pre class="mb-0"><code>`<br/>Code hier<br/>``</code></pre></li></ul>
|
||||
pagination:
|
||||
prev: Zurück
|
||||
next: Weiter
|
||||
@@ -514,19 +519,20 @@ ui:
|
||||
change_email: E-Mails ändern
|
||||
install: Installation beantworten
|
||||
upgrade: Antwort-Upgrade
|
||||
maintenance: Website-Pflege
|
||||
maintenance: Website-Wartung
|
||||
users: Benutzer
|
||||
oauth_callback: In Bearbeitung
|
||||
http_404: HTTP-Fehler 404
|
||||
http_50X: HTTP-Fehler 500
|
||||
http_403: HTTP Fehler 403
|
||||
logout: Log Out
|
||||
notifications:
|
||||
title: Benachrichtigungen
|
||||
inbox: Posteingang
|
||||
achievement: Erfolge
|
||||
new_alerts: Neue Benachrichtigungen
|
||||
all_read: Alle als gelesen markieren
|
||||
show_more: Mehr Anzeigen
|
||||
show_more: Mehr anzeigen
|
||||
someone: Jemand
|
||||
inbox_type:
|
||||
all: Alle
|
||||
@@ -550,7 +556,7 @@ ui:
|
||||
sequence_diagram: Sequenzdiagramm
|
||||
class_diagram: Klassen Diagramm
|
||||
state_diagram: Zustandsdiagramm
|
||||
entity_relationship_diagram: Entity-Relationship-Diagramm
|
||||
entity_relationship_diagram: Entitätsbeziehungsdiagramm
|
||||
user_defined_diagram: Benutzerdefiniertes Diagramm
|
||||
gantt_chart: Gantt-Diagramm
|
||||
pie_chart: Kuchendiagramm
|
||||
@@ -598,7 +604,7 @@ ui:
|
||||
msg:
|
||||
empty: Datei darf nicht leer sein.
|
||||
only_image: Nur Bilddateien sind erlaubt.
|
||||
max_size: Die Dateigröße darf 4MB nicht überschreiten.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: Beschreibung
|
||||
tab_url: Bild URL
|
||||
@@ -678,6 +684,12 @@ ui:
|
||||
character: URL-Slug enthält nicht erlaubten Zeichensatz.
|
||||
desc:
|
||||
label: Beschreibung
|
||||
revision:
|
||||
label: Revision
|
||||
edit_summary:
|
||||
label: Edit summary
|
||||
placeholder: >-
|
||||
Briefly explain your changes (corrected spelling, fixed grammar, improved formatting)
|
||||
btn_cancel: Abbrechen
|
||||
btn_submit: Senden
|
||||
btn_post: Neuen Tag erstellen
|
||||
@@ -704,21 +716,7 @@ ui:
|
||||
edit_tag:
|
||||
title: Tag bearbeiten
|
||||
default_reason: Tag bearbeiten
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
label: Revision
|
||||
display_name:
|
||||
label: Anzeigename
|
||||
slug_name:
|
||||
label: URL-Slug
|
||||
info: 'Muss den Zeichensatz "a-z", "0-9", "+ # - ." verwenden'
|
||||
desc:
|
||||
label: Beschreibung
|
||||
edit_summary:
|
||||
label: Zusammenfassung bearbeiten
|
||||
placeholder: >-
|
||||
Erkläre kurz deine Änderungen (korrigierte Rechtschreibung, korrigierte Grammatik, verbesserte Formatierung)
|
||||
default_first_reason: Schlagwort hinzufügen
|
||||
btn_save_edits: Änderungen speichern
|
||||
btn_cancel: Stornieren
|
||||
dates:
|
||||
@@ -731,6 +729,8 @@ ui:
|
||||
x_hours_ago: "vor {{count}}h"
|
||||
hour: stunde
|
||||
day: tag
|
||||
hours: hours
|
||||
days: days
|
||||
comment:
|
||||
btn_add_comment: Einen Kommentar hinzufügen
|
||||
reply_to: Antwort an
|
||||
@@ -740,15 +740,16 @@ ui:
|
||||
btn_flag: Flagge
|
||||
btn_save_edits: Änderungen speichern
|
||||
btn_cancel: Stornieren
|
||||
show_more: Weitere Kommentare anzeigen
|
||||
show_more: "{{count}} more comments"
|
||||
tip_question: >-
|
||||
Verwende Kommentare, um nach weiteren Informationen zu fragen oder Verbesserungen vorzuschlagen. Vermeide es, Fragen in Kommentaren zu beantworten.
|
||||
tip_answer: >-
|
||||
Verwende Stellungsnahmen, um anderen Nutzern zu antworten oder sie über Änderungen zu informieren. Wenn du neue Informationen hinzufügst, bearbeite deinen Beitrag, anstatt zu kommentieren.
|
||||
tip_vote: It adds something useful to the post
|
||||
tip_vote: Es fügt dem Beitrag etwas Nützliches hinzu
|
||||
edit_answer:
|
||||
title: Antwort bearbeiten
|
||||
default_reason: Antwort bearbeiten
|
||||
default_first_reason: Antwort hinzufügen
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +780,7 @@ ui:
|
||||
title: Frage hinzufügen
|
||||
edit_title: Frage bearbeiten
|
||||
default_reason: Frage bearbeiten
|
||||
default_first_reason: Frage hinzufügen
|
||||
similar_questions: Ähnliche Fragen
|
||||
form:
|
||||
fields:
|
||||
@@ -808,7 +810,7 @@ ui:
|
||||
Erkläre kurz deine Änderungen (korrigierte Rechtschreibung, korrigierte Grammatik, verbesserte Formatierung)
|
||||
btn_post_question: Poste deine Frage
|
||||
btn_save_edits: Änderungen speichern
|
||||
answer_question: Answer your own question
|
||||
answer_question: Eigene Frage beantworten
|
||||
post_question&answer: Poste deine Frage und Antwort
|
||||
tag_selector:
|
||||
add_btn: Schlagwort hinzufügen
|
||||
@@ -833,7 +835,7 @@ ui:
|
||||
placeholder: Suchen
|
||||
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: Ändern
|
||||
loading: wird geladen...
|
||||
@@ -868,14 +870,14 @@ ui:
|
||||
range: Name mit bis zu 30 Zeichen.
|
||||
character: 'Muss den Zeichensatz "a-z", "0-9", " - . _" verwenden'
|
||||
email:
|
||||
label: Email
|
||||
label: E-Mail
|
||||
msg:
|
||||
empty: E-Mail-Feld darf nicht leer sein.
|
||||
password:
|
||||
label: Passwort
|
||||
msg:
|
||||
empty: Passwort-Feld darf nicht leer sein.
|
||||
different: The passwords entered on both sides are inconsistent
|
||||
different: Die beiden eingegebenen Passwörter stimmen nicht überein
|
||||
account_forgot:
|
||||
page_title: Dein Passwort vergessen
|
||||
btn_name: Schicke mir eine E-Mail zur Wiederherstellung
|
||||
@@ -963,10 +965,10 @@ ui:
|
||||
label: Standort
|
||||
placeholder: "Stadt, Land"
|
||||
notification:
|
||||
heading: Benachrichtigungen
|
||||
email: E-Mail
|
||||
heading: Email Notifications
|
||||
turn_on: Turn on
|
||||
inbox:
|
||||
label: Email-Benachrichtigungen
|
||||
label: Inbox notifications
|
||||
description: Antworten auf deine Fragen, Kommentare, Einladungen und mehr.
|
||||
all_new_question:
|
||||
label: Alle neuen Fragen
|
||||
@@ -1010,7 +1012,7 @@ ui:
|
||||
modal_confirm_btn: Entfernen
|
||||
remove_success: Erfolgreich entfernt
|
||||
toast:
|
||||
update: update success
|
||||
update: Aktualisierung erfolgreich
|
||||
update_password: Das Kennwort wurde erfolgreich geändert.
|
||||
flag_success: Danke fürs Markieren.
|
||||
forbidden_operate_self: Verboten, an sich selbst zu operieren
|
||||
@@ -1021,7 +1023,7 @@ ui:
|
||||
answers: antworten
|
||||
invite_to_answer:
|
||||
title: Menschen gefragt
|
||||
desc: Lade Leute ein, von denen du denkst, dass sie die Antwort wissen könnten.
|
||||
desc: Select people who you think might know the answer.
|
||||
invite: Zur Antwort einladen
|
||||
add: Personen hinzufügen
|
||||
search: Personen suchen
|
||||
@@ -1052,6 +1054,7 @@ ui:
|
||||
btn_accepted: Akzeptiert
|
||||
write_answer:
|
||||
title: Deine Antwort
|
||||
edit_answer: Edit my existing answer
|
||||
btn_name: Poste deine Antwort
|
||||
add_another_answer: Weitere Antwort hinzufügen
|
||||
confirm_title: Antworten fortsetzen
|
||||
@@ -1114,6 +1117,11 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
search:
|
||||
title: Suchergebnisse
|
||||
keywords: Schlüsselwörter
|
||||
@@ -1353,23 +1361,33 @@ ui:
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Willkommen beim Answer-Admin!
|
||||
site_statistics: Site-Statistiken
|
||||
site_statistics: Site statistics
|
||||
questions: "Fragen:"
|
||||
answers: "Antworten:"
|
||||
comments: "Kommentare:"
|
||||
votes: "Stimmen:"
|
||||
active_users: "Aktive Benutzer:"
|
||||
users: "Users:"
|
||||
flags: "Meldungen:"
|
||||
site_health_status: Website-Gesundheitsstatus
|
||||
site_health_status: Site health status
|
||||
version: "Version:"
|
||||
https: "HTTPS:"
|
||||
uploading_files: "Dateien hochladen:"
|
||||
upload_folder: "Upload folder:"
|
||||
run_mode: "Running mode:"
|
||||
private: Private
|
||||
public: Public
|
||||
smtp: "SMTP:"
|
||||
timezone: "Zeitzone:"
|
||||
system_info: Systeminformationen
|
||||
system_info: System info
|
||||
go_version: "Go version:"
|
||||
database: "Database:"
|
||||
database_size: "Database size:"
|
||||
storage_used: "Verwendeter Speicher:"
|
||||
uptime: "Betriebszeit:"
|
||||
answer_links: Antwortlinks
|
||||
answer_links: Answer links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
documents: Dokumentation
|
||||
feedback: Rückmeldung
|
||||
support: Unterstützung
|
||||
@@ -1384,6 +1402,8 @@ ui:
|
||||
allowed: Erlaubt
|
||||
enabled: Ermöglicht
|
||||
disabled: Behinderte
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Meldungen
|
||||
pending: Ausstehend
|
||||
@@ -1467,7 +1487,7 @@ ui:
|
||||
text: Don’t check this if you wish to only delete the user’s account.
|
||||
suspend_user:
|
||||
title: Suspend this user
|
||||
content: A suspended user can't log in.
|
||||
content: Ein gesperrter Benutzer kann sich nicht einloggen.
|
||||
questions:
|
||||
page_title: Fragen
|
||||
normal: Normal
|
||||
@@ -1594,6 +1614,10 @@ ui:
|
||||
text: "Du kannst hier Inhalte zur Datenschutzerklärung hinzufügen. Wenn du bereits ein Dokument hast, das anderswo gehostet wird, gib hier die vollständige URL an."
|
||||
write:
|
||||
page_title: Schreiben
|
||||
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: Empfohlene Tags
|
||||
text: "Bitte gib den Tag-Slug oben ein, ein Tag pro Zeile."
|
||||
@@ -1617,11 +1641,12 @@ ui:
|
||||
themes:
|
||||
label: Themen
|
||||
text: Wähle ein bestehendes Thema aus.
|
||||
color_scheme:
|
||||
label: Color scheme
|
||||
navbar_style:
|
||||
label: Navbar-Stil
|
||||
text: Wähle ein bestehendes Thema aus.
|
||||
label: Navbar style
|
||||
primary_color:
|
||||
label: Primärfarbe
|
||||
label: Primary color
|
||||
text: Ändere die Farben, die von deinen Themes verwendet werden
|
||||
css_and_html:
|
||||
page_title: CSS and HTML
|
||||
@@ -1660,6 +1685,10 @@ ui:
|
||||
title: Privatgelände
|
||||
label: Anmeldung erforderlich
|
||||
text: Nur angemeldete Benutzer können auf diese Community zugreifen.
|
||||
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: Installierte Plugins
|
||||
plugin_link: Plugins erweitern und ergänzen die Funktionalität von Answer. Du kannst Plugins im <1>Answer Plugin Repository</1> finden.
|
||||
|
||||
+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:
|
||||
|
||||
+58
-32
@@ -83,6 +83,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:
|
||||
@@ -268,6 +271,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:
|
||||
@@ -534,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
|
||||
@@ -612,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
|
||||
@@ -692,6 +698,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 +734,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 +746,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 +757,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 +856,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 +993,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
|
||||
@@ -1053,7 +1052,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
|
||||
@@ -1084,6 +1083,7 @@ ui:
|
||||
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
|
||||
@@ -1153,6 +1153,11 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1401,23 +1406,33 @@ 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
|
||||
site_health_status: Site health status
|
||||
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
|
||||
answer_links: Answer links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
documents: Documents
|
||||
feedback: Feedback
|
||||
support: Support
|
||||
@@ -1432,6 +1447,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1642,6 +1659,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."
|
||||
@@ -1665,11 +1686,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 +1727,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>.
|
||||
|
||||
+424
-420
File diff suppressed because it is too large
Load Diff
+62
-33
@@ -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_custom:
|
||||
description:
|
||||
other: Custom Level
|
||||
rank_question_add_label:
|
||||
other: سوال بپرس
|
||||
rank_answer_add_label:
|
||||
@@ -267,6 +270,8 @@ backend:
|
||||
other: شما نمی توانید وظیفه خود را تغییر دهید.
|
||||
not_allowed_registration:
|
||||
other: درحال حاضر سایت برای ثبت نام باز نیست.
|
||||
not_allowed_login_via_password:
|
||||
other: Currently the site is not allowed to login via password.
|
||||
access_denied:
|
||||
other: دسترسی مجاز نیست
|
||||
page_access_denied:
|
||||
@@ -480,7 +485,7 @@ backend:
|
||||
other: پذیرفتن
|
||||
accepted:
|
||||
other: پذیرفته شده
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: نحوه فرمت کردن
|
||||
@@ -520,6 +525,7 @@ ui:
|
||||
http_404: خطای 404 HTTP
|
||||
http_50X: خطای 500 HTTP
|
||||
http_403: خطای 403 HTTP
|
||||
logout: Log Out
|
||||
notifications:
|
||||
title: اعلانات
|
||||
inbox: پیغامهای دریافتی
|
||||
@@ -598,7 +604,7 @@ ui:
|
||||
msg:
|
||||
empty: فایل نمی تواند خالی باشد.
|
||||
only_image: فقط فایل های تصویری مجاز هستند.
|
||||
max_size: حجم فایل نمی تواند بیشتر از ۴ مگابایت باشد.
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: توضیحات
|
||||
tab_url: لینک عکس
|
||||
@@ -678,6 +684,12 @@ ui:
|
||||
character: نامک آدرس شامل کلمات غیر مجاز می باشد.
|
||||
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,21 +716,7 @@ ui:
|
||||
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: Add tag
|
||||
btn_save_edits: ذخیره ویرایشها
|
||||
btn_cancel: لغو
|
||||
dates:
|
||||
@@ -731,6 +729,8 @@ ui:
|
||||
x_hours_ago: "{{count}}ساعت پیش"
|
||||
hour: ساعت
|
||||
day: روز
|
||||
hours: hours
|
||||
days: days
|
||||
comment:
|
||||
btn_add_comment: افزودن نظر
|
||||
reply_to: پاسخ به
|
||||
@@ -740,7 +740,7 @@ ui:
|
||||
btn_flag: نشان
|
||||
btn_save_edits: ذخیره ویرایشها
|
||||
btn_cancel: لغو
|
||||
show_more: نمایش نظرات بیشتر
|
||||
show_more: "{{count}} more comments"
|
||||
tip_question: >-
|
||||
از نظرات برای درخواست اطلاعات بیشتر یا پیشنهاد بهبود استفاده کنید. از پاسخ دادن به سوالات در نظرات خودداری کنید.
|
||||
tip_answer: >-
|
||||
@@ -749,6 +749,7 @@ ui:
|
||||
edit_answer:
|
||||
title: ویرایش جواب
|
||||
default_reason: ویرایش جواب
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +780,7 @@ ui:
|
||||
title: سوالی اضافه کنید
|
||||
edit_title: سوال را ویرایش کنید
|
||||
default_reason: سوال را ویرایش کنید
|
||||
default_first_reason: Add question
|
||||
similar_questions: سؤال های مشابه
|
||||
form:
|
||||
fields:
|
||||
@@ -833,7 +835,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}}.
|
||||
Powered by <1> Apache Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
upload_img:
|
||||
name: تغییر
|
||||
loading: درحال بارگذاری...
|
||||
@@ -963,10 +965,10 @@ ui:
|
||||
label: موقعیت
|
||||
placeholder: "شهر، کشور"
|
||||
notification:
|
||||
heading: اعلانات
|
||||
email: ایمیل
|
||||
heading: Email Notifications
|
||||
turn_on: Turn on
|
||||
inbox:
|
||||
label: اعلانات ایمیل
|
||||
label: Inbox notifications
|
||||
description: پاسخ به سوالات خود، نظرات، دعوت ها،و بیشتر.
|
||||
all_new_question:
|
||||
label: تمامی سوالات جدید
|
||||
@@ -1021,7 +1023,7 @@ ui:
|
||||
answers: جواب ها
|
||||
invite_to_answer:
|
||||
title: مردم پرسیدند
|
||||
desc: افرادی را دعوت کنید که فکر می کنید ممکن است پاسخ را بدانند.
|
||||
desc: Select people who you think might know the answer.
|
||||
invite: دعوت به پاسخ
|
||||
add: افزودن افراد
|
||||
search: جستجوی افراد
|
||||
@@ -1052,6 +1054,7 @@ ui:
|
||||
btn_accepted: پذیرفته شده
|
||||
write_answer:
|
||||
title: پاسخ شما
|
||||
edit_answer: Edit my existing answer
|
||||
btn_name: پاسخ خود را ارسال کنید
|
||||
add_another_answer: پاسخ دیگری اضافه کنید
|
||||
confirm_title: به پاسخ دادن ادامه دهید
|
||||
@@ -1114,6 +1117,11 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
search:
|
||||
title: نتایج جستجو
|
||||
keywords: کلیدواژه ها
|
||||
@@ -1353,23 +1361,33 @@ ui:
|
||||
dashboard:
|
||||
title: داشبرد
|
||||
welcome: به پاسخ مدیر خوش آمدید!
|
||||
site_statistics: آمار سایت
|
||||
site_statistics: Site statistics
|
||||
questions: "سوالات:"
|
||||
answers: "جواب ها:"
|
||||
comments: "نظرات:"
|
||||
votes: "آرا:"
|
||||
active_users: "کاربران فعال:"
|
||||
users: "Users:"
|
||||
flags: "علامتها:"
|
||||
site_health_status: وضعیت سلامت سایت
|
||||
site_health_status: Site health status
|
||||
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: لینک های Answer
|
||||
answer_links: Answer links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
documents: اسناد
|
||||
feedback: ﺑﺎﺯﺧﻮﺭﺩ
|
||||
support: پشتیبانی
|
||||
@@ -1384,6 +1402,8 @@ ui:
|
||||
allowed: مجاز
|
||||
enabled: فعال
|
||||
disabled: غیرفعال
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: علامتها
|
||||
pending: در حالت انتظار
|
||||
@@ -1594,6 +1614,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: نوشتن
|
||||
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 +1641,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 +1685,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>.
|
||||
|
||||
+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:
|
||||
|
||||
+281
-252
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
@@ -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:
|
||||
|
||||
+62
-33
@@ -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:
|
||||
@@ -267,6 +270,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 +485,7 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: Cara memformat
|
||||
@@ -520,6 +525,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 +604,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
|
||||
@@ -678,6 +684,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 +716,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 +729,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 +740,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 +749,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Sunting jawaban
|
||||
default_reason: Edit jawaban
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +780,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 +835,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 +965,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 +1023,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
|
||||
@@ -1052,6 +1054,7 @@ ui:
|
||||
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
|
||||
@@ -1114,6 +1117,11 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1361,33 @@ 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
|
||||
site_health_status: Site health status
|
||||
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
|
||||
answer_links: Answer links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
documents: Dokumen
|
||||
feedback: Masukan
|
||||
support: Dukungan
|
||||
@@ -1384,6 +1402,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1594,6 +1614,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 +1641,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 +1685,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>.
|
||||
|
||||
+62
-33
@@ -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:
|
||||
@@ -267,6 +270,8 @@ backend:
|
||||
other: Non puoi modificare il tuo ruolo.
|
||||
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 +485,7 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: Come formattare
|
||||
@@ -520,6 +525,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 +604,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
|
||||
@@ -678,6 +684,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 +716,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 +729,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 +740,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 +749,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Edit Answer
|
||||
default_reason: Edit answer
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +780,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 +835,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 +965,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 +1023,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
|
||||
@@ -1052,6 +1054,7 @@ ui:
|
||||
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
|
||||
@@ -1114,6 +1117,11 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1361,33 @@ 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
|
||||
site_health_status: Site health status
|
||||
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
|
||||
answer_links: Answer links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
documents: Documents
|
||||
feedback: Feedback
|
||||
support: Support
|
||||
@@ -1384,6 +1402,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1594,6 +1614,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 +1641,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 +1685,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>.
|
||||
|
||||
+114
-85
@@ -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,7 +136,7 @@ backend:
|
||||
password:
|
||||
other: パスワード
|
||||
pass:
|
||||
other: Password
|
||||
other: パスワード
|
||||
email_or_password_wrong_error:
|
||||
other: メールアドレスとパスワードが一致しません。
|
||||
error:
|
||||
@@ -267,8 +270,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 +485,7 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: How to Format
|
||||
@@ -520,6 +525,7 @@ ui:
|
||||
http_404: HTTP エラー 404
|
||||
http_50X: HTTP エラー 500
|
||||
http_403: HTTP エラー 403
|
||||
logout: Log Out
|
||||
notifications:
|
||||
title: 通知
|
||||
inbox: 受信トレイ
|
||||
@@ -529,16 +535,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 +604,7 @@ ui:
|
||||
msg:
|
||||
empty: ファイルは空にできません。
|
||||
only_image: 画像ファイルのみが許可されています。
|
||||
max_size: ファイルサイズは4MBを超えることはできません。
|
||||
max_size: File size cannot exceed 4 MB.
|
||||
desc:
|
||||
label: 説明
|
||||
tab_url: 画像URL
|
||||
@@ -670,7 +676,7 @@ ui:
|
||||
empty: 表示名を入力してください。
|
||||
range: 表示名は最大 35 文字までです。
|
||||
slug_name:
|
||||
label: URL slug
|
||||
label: URLスラッグ
|
||||
desc: '文字セット「a-z」、「0-9」、「+ # -」を使用する必要があります。'
|
||||
msg:
|
||||
empty: URL スラッグを空にすることはできません。
|
||||
@@ -678,6 +684,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 +716,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 +727,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 +763,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 +827,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 +927,7 @@ ui:
|
||||
password_confirm:
|
||||
label: Confirm new password
|
||||
settings:
|
||||
page_title: Settings
|
||||
page_title: 設定
|
||||
goto_modify: Go to modify
|
||||
nav:
|
||||
profile: Profile
|
||||
@@ -940,18 +942,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 +965,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 +1023,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
|
||||
@@ -1052,6 +1054,7 @@ ui:
|
||||
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
|
||||
@@ -1114,6 +1117,11 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1361,33 @@ 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
|
||||
site_health_status: Site health status
|
||||
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
|
||||
answer_links: Answer links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
documents: Documents
|
||||
feedback: フィードバック
|
||||
support: サポート
|
||||
@@ -1384,6 +1402,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1594,6 +1614,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 +1641,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 +1685,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 +1700,7 @@ ui:
|
||||
plugins:
|
||||
label: Plugins
|
||||
text: Select an existing plugin.
|
||||
name: Name
|
||||
name: 名前
|
||||
version: Version
|
||||
status: Status
|
||||
action: Action
|
||||
@@ -1755,7 +1784,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
|
||||
|
||||
+63
-34
@@ -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:
|
||||
@@ -267,6 +270,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 +485,7 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: How to Format
|
||||
@@ -520,6 +525,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 +604,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
|
||||
@@ -671,13 +677,19 @@ 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.
|
||||
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 +716,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 +729,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 +740,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 +749,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Edit Answer
|
||||
default_reason: Edit answer
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +780,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 +835,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 +965,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 +1023,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
|
||||
@@ -1052,6 +1054,7 @@ ui:
|
||||
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
|
||||
@@ -1114,6 +1117,11 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1361,33 @@ 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
|
||||
site_health_status: Site health status
|
||||
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
|
||||
answer_links: Answer links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
documents: Documents
|
||||
feedback: Feedback
|
||||
support: Support
|
||||
@@ -1384,6 +1402,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1594,6 +1614,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 +1641,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 +1685,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>.
|
||||
|
||||
+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:
|
||||
|
||||
+242
-213
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
|
||||
|
||||
+63
-34
@@ -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:
|
||||
@@ -267,6 +270,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 +485,7 @@ backend:
|
||||
other: aceito
|
||||
accepted:
|
||||
other: aceito
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: Como formatar
|
||||
@@ -520,6 +525,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 +604,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
|
||||
@@ -678,6 +684,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 +716,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 +729,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 +740,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 +749,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Editar Resposta
|
||||
default_reason: Editar Resposta
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +780,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 +835,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 +965,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 +1023,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
|
||||
@@ -1052,6 +1054,7 @@ ui:
|
||||
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
|
||||
@@ -1114,6 +1117,11 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
search:
|
||||
title: Procurar Resultados
|
||||
keywords: Palavras-chave
|
||||
@@ -1353,23 +1361,33 @@ 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
|
||||
site_health_status: Site health status
|
||||
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
|
||||
answer_links: Answer links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
documents: Documentos
|
||||
feedback: Opinião
|
||||
support: Supporte
|
||||
@@ -1384,6 +1402,8 @@ ui:
|
||||
allowed: Permitido
|
||||
enabled: Ativo
|
||||
disabled: Disponível
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Marcadores
|
||||
pending: Pendente
|
||||
@@ -1594,6 +1614,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 +1641,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 +1685,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>.
|
||||
|
||||
+1367
-946
File diff suppressed because it is too large
Load Diff
+684
-655
File diff suppressed because it is too large
Load Diff
+62
-33
@@ -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:
|
||||
@@ -267,6 +270,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 +485,7 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: Ako formátovať
|
||||
@@ -520,6 +525,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 +604,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
|
||||
@@ -678,6 +684,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 +716,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 +729,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 +740,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 +749,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Uprav odpoveď
|
||||
default_reason: Uprav odpoveď
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +780,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 +835,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 +965,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 +1023,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
|
||||
@@ -1052,6 +1054,7 @@ ui:
|
||||
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
|
||||
@@ -1114,6 +1117,11 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
search:
|
||||
title: Výsledky vyhľadávania
|
||||
keywords: Kľúčové slová
|
||||
@@ -1353,23 +1361,33 @@ 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
|
||||
site_health_status: Site health status
|
||||
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
|
||||
answer_links: Answer links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
documents: Dokumenty
|
||||
feedback: Spätná väzba
|
||||
support: Podpora
|
||||
@@ -1384,6 +1402,8 @@ ui:
|
||||
allowed: Povolené
|
||||
enabled: Povolené
|
||||
disabled: Zablokované
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Vlajky
|
||||
pending: Prebiehajúce
|
||||
@@ -1594,6 +1614,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 +1641,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 +1685,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>.
|
||||
|
||||
+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:
|
||||
|
||||
+776
-355
File diff suppressed because it is too large
Load Diff
+62
-33
@@ -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:
|
||||
@@ -267,6 +270,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 +485,7 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: How to Format
|
||||
@@ -520,6 +525,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 +604,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
|
||||
@@ -678,6 +684,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 +716,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 +729,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 +740,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 +749,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Edit Answer
|
||||
default_reason: Edit answer
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +780,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 +835,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 +965,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 +1023,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
|
||||
@@ -1052,6 +1054,7 @@ ui:
|
||||
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
|
||||
@@ -1114,6 +1117,11 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1361,33 @@ 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
|
||||
site_health_status: Site health status
|
||||
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
|
||||
answer_links: Answer links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
documents: Documents
|
||||
feedback: Feedback
|
||||
support: Support
|
||||
@@ -1384,6 +1402,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1594,6 +1614,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 +1641,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 +1685,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>.
|
||||
|
||||
+62
-33
@@ -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:
|
||||
@@ -267,6 +270,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 +485,7 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: How to Format
|
||||
@@ -520,6 +525,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 +604,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
|
||||
@@ -678,6 +684,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 +716,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 +729,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 +740,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 +749,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Edit Answer
|
||||
default_reason: Edit answer
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +780,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 +835,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 +965,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 +1023,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
|
||||
@@ -1052,6 +1054,7 @@ ui:
|
||||
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
|
||||
@@ -1114,6 +1117,11 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1361,33 @@ 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
|
||||
site_health_status: Site health status
|
||||
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
|
||||
answer_links: Answer links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
documents: Documents
|
||||
feedback: Feedback
|
||||
support: Support
|
||||
@@ -1384,6 +1402,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1594,6 +1614,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 +1641,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 +1685,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>.
|
||||
|
||||
+62
-33
@@ -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:
|
||||
@@ -267,6 +270,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 +485,7 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: How to Format
|
||||
@@ -520,6 +525,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 +604,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
|
||||
@@ -678,6 +684,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 +716,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 +729,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 +740,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 +749,7 @@ ui:
|
||||
edit_answer:
|
||||
title: Edit Answer
|
||||
default_reason: Edit answer
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +780,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 +835,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 +965,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 +1023,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
|
||||
@@ -1052,6 +1054,7 @@ ui:
|
||||
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
|
||||
@@ -1114,6 +1117,11 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
search:
|
||||
title: Search Results
|
||||
keywords: Keywords
|
||||
@@ -1353,23 +1361,33 @@ 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
|
||||
site_health_status: Site health status
|
||||
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
|
||||
answer_links: Answer links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
documents: Documents
|
||||
feedback: Feedback
|
||||
support: Support
|
||||
@@ -1384,6 +1402,8 @@ ui:
|
||||
allowed: Allowed
|
||||
enabled: Enabled
|
||||
disabled: Disabled
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: Flags
|
||||
pending: Pending
|
||||
@@ -1594,6 +1614,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 +1641,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 +1685,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>.
|
||||
|
||||
+213
-184
File diff suppressed because it is too large
Load Diff
+56
-27
@@ -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:
|
||||
@@ -267,6 +270,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 +485,7 @@ backend:
|
||||
other: accept
|
||||
accepted:
|
||||
other: accepted
|
||||
#The following fields are used for interface presentation(Front-end)
|
||||
# The following fields are used for interface presentation(Front-end)
|
||||
ui:
|
||||
how_to_format:
|
||||
title: 如何設定文本格式
|
||||
@@ -520,6 +525,7 @@ ui:
|
||||
http_404: HTTP 錯誤 404
|
||||
http_50X: HTTP 錯誤 500
|
||||
http_403: HTTP 錯誤 403
|
||||
logout: Log Out
|
||||
notifications:
|
||||
title: 通知
|
||||
inbox: 收件夾
|
||||
@@ -678,6 +684,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 +716,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 +729,8 @@ ui:
|
||||
x_hours_ago: "{{count}} 小時前"
|
||||
hour: 小時
|
||||
day: 天
|
||||
hours: hours
|
||||
days: days
|
||||
comment:
|
||||
btn_add_comment: 添加評論
|
||||
reply_to: 回復
|
||||
@@ -740,7 +740,7 @@ ui:
|
||||
btn_flag: 舉報
|
||||
btn_save_edits: 保存
|
||||
btn_cancel: 取消
|
||||
show_more: 顯示更多評論
|
||||
show_more: "{{count}}條剩餘評論"
|
||||
tip_question: >-
|
||||
通过評論询问更多问题或提出改進建議。避免在評論中回答問題。
|
||||
tip_answer: >-
|
||||
@@ -749,6 +749,7 @@ ui:
|
||||
edit_answer:
|
||||
title: 編輯回答
|
||||
default_reason: 編輯回答
|
||||
default_first_reason: Add answer
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -779,6 +780,7 @@ ui:
|
||||
title: 發問
|
||||
edit_title: 編輯問題
|
||||
default_reason: 編輯問題
|
||||
default_first_reason: Add question
|
||||
similar_questions: 相似的問題
|
||||
form:
|
||||
fields:
|
||||
@@ -833,7 +835,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 +966,7 @@ ui:
|
||||
placeholder: "城市, 國家"
|
||||
notification:
|
||||
heading: 通知
|
||||
email: Email
|
||||
turn_on: Turn on
|
||||
inbox:
|
||||
label: Email notifications
|
||||
description: Answers to your questions, comments, invites, and more.
|
||||
@@ -1052,6 +1054,7 @@ ui:
|
||||
btn_accepted: 已被採納
|
||||
write_answer:
|
||||
title: 你的回答
|
||||
edit_answer: Edit my existing answer
|
||||
btn_name: 提交你的回答
|
||||
add_another_answer: 添加另一個答案
|
||||
confirm_title: 繼續回答
|
||||
@@ -1114,6 +1117,11 @@ ui:
|
||||
close: Close
|
||||
reopen: Reopen
|
||||
ok: OK
|
||||
light: Light
|
||||
dark: Dark
|
||||
system_setting: System setting
|
||||
default: Default
|
||||
reset: Reset
|
||||
search:
|
||||
title: 搜尋結果
|
||||
keywords: 關鍵詞
|
||||
@@ -1353,23 +1361,33 @@ ui:
|
||||
dashboard:
|
||||
title: 後台管理
|
||||
welcome: 歡迎來到 Answer 後台管理!
|
||||
site_statistics: 站點統計
|
||||
site_statistics: Site statistics
|
||||
questions: "問題:"
|
||||
answers: "回答:"
|
||||
comments: "評論:"
|
||||
votes: "投票:"
|
||||
active_users: "活躍用戶:"
|
||||
users: "Users:"
|
||||
flags: "檢舉:"
|
||||
site_health_status: '健康狀態:'
|
||||
site_health_status: Site health status
|
||||
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: 回答連結
|
||||
answer_links: Answer links
|
||||
plugins: Plugins
|
||||
github: GitHub
|
||||
blog: Blog
|
||||
contact: Contact
|
||||
documents: 文件
|
||||
feedback: 用戶反饋
|
||||
support: 支持
|
||||
@@ -1384,6 +1402,8 @@ ui:
|
||||
allowed: 允許
|
||||
enabled: 已啟用
|
||||
disabled: 停用
|
||||
writable: Writable
|
||||
not_writable: Not writable
|
||||
flags:
|
||||
title: 檢舉
|
||||
pending: 等待處理
|
||||
@@ -1594,6 +1614,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 +1641,10 @@ ui:
|
||||
themes:
|
||||
label: 主題
|
||||
text: 選擇一個現有主題。
|
||||
color_scheme:
|
||||
label: Color scheme
|
||||
navbar_style:
|
||||
label: 導航欄樣式
|
||||
text: 選擇一個現有主題。
|
||||
primary_color:
|
||||
label: 主色調
|
||||
text: 修改您主題使用的顏色
|
||||
@@ -1660,6 +1685,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>.
|
||||
|
||||
@@ -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 (
|
||||
|
||||
@@ -37,3 +37,10 @@ const (
|
||||
// PermalinkQuestionIDByShortID /questions/11
|
||||
PermalinkQuestionIDByShortID
|
||||
)
|
||||
|
||||
const (
|
||||
ColorSchemeDefault = "default"
|
||||
ColorSchemeLight = "light"
|
||||
ColorSchemeDark = "dark"
|
||||
ColorSchemeSystem = "system"
|
||||
)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -49,6 +49,7 @@ const (
|
||||
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,6 +93,7 @@ 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"
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -34,6 +34,7 @@ import (
|
||||
"github.com/apache/incubator-answer/internal/service/action"
|
||||
"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,10 +42,11 @@ import (
|
||||
|
||||
// AnswerController answer controller
|
||||
type AnswerController struct {
|
||||
answerService *service.AnswerService
|
||||
rankService *rank.RankService
|
||||
actionService *action.CaptchaService
|
||||
rateLimitMiddleware *middleware.RateLimitMiddleware
|
||||
answerService *service.AnswerService
|
||||
rankService *rank.RankService
|
||||
actionService *action.CaptchaService
|
||||
siteInfoCommonService siteinfo_common.SiteInfoCommonService
|
||||
rateLimitMiddleware *middleware.RateLimitMiddleware
|
||||
}
|
||||
|
||||
// NewAnswerController new controller
|
||||
@@ -52,13 +54,15 @@ func NewAnswerController(
|
||||
answerService *service.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,14 +22,10 @@ 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/pkg/uid"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/jinzhu/copier"
|
||||
"github.com/segmentfault/pacman/errors"
|
||||
)
|
||||
|
||||
// CollectionController collection controller
|
||||
@@ -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,5 @@ var ProviderSetController = wire.NewSet(
|
||||
NewConnectorController,
|
||||
NewUserCenterController,
|
||||
NewPermissionController,
|
||||
NewUserPluginController,
|
||||
)
|
||||
|
||||
@@ -656,10 +656,15 @@ func (qc *QuestionController) UpdateQuestion(ctx *gin.Context) {
|
||||
handler.HandleResponse(ctx, err, resp)
|
||||
return
|
||||
}
|
||||
respInfo, ok := resp.(*schema.QuestionInfo)
|
||||
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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ package controller
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/apache/incubator-answer/internal/entity"
|
||||
"html/template"
|
||||
"net/http"
|
||||
"regexp"
|
||||
@@ -318,7 +319,7 @@ func (tc *TemplateController) QuestionInfo(ctx *gin.Context) {
|
||||
return
|
||||
}
|
||||
siteInfo.Canonical = fmt.Sprintf("%s/questions/%s/%s", siteInfo.General.SiteUrl, id, encodeTitle)
|
||||
if siteInfo.SiteSeo.Permalink == constant.PermalinkQuestionID {
|
||||
if siteInfo.SiteSeo.Permalink == constant.PermalinkQuestionID || siteInfo.SiteSeo.Permalink == constant.PermalinkQuestionIDByShortID {
|
||||
siteInfo.Canonical = fmt.Sprintf("%s/questions/%s", siteInfo.General.SiteUrl, id)
|
||||
}
|
||||
jsonLD := &schema.QAPageJsonLD{}
|
||||
@@ -376,6 +377,7 @@ func (tc *TemplateController) QuestionInfo(ctx *gin.Context) {
|
||||
"detail": detail,
|
||||
"answers": answers,
|
||||
"comments": comments,
|
||||
"noindex": detail.Show == entity.QuestionHide,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -384,7 +384,7 @@ func (uc *UserController) UserModifyPassWord(ctx *gin.Context) {
|
||||
req.AccessToken = middleware.ExtractToken(ctx)
|
||||
isAdmin := middleware.GetUserIsAdminModerator(ctx)
|
||||
if !isAdmin {
|
||||
captchaPass := uc.actionService.ActionRecordVerifyCaptcha(ctx, entity.CaptchaActionPassword, req.UserID,
|
||||
captchaPass := uc.actionService.ActionRecordVerifyCaptcha(ctx, entity.CaptchaActionEditUserinfo, req.UserID,
|
||||
req.CaptchaID, req.CaptchaCode)
|
||||
if !captchaPass {
|
||||
errFields := append([]*validator.FormErrorField{}, &validator.FormErrorField{
|
||||
@@ -394,7 +394,7 @@ func (uc *UserController) UserModifyPassWord(ctx *gin.Context) {
|
||||
handler.HandleResponse(ctx, errors.BadRequest(reason.CaptchaVerificationFailed), errFields)
|
||||
return
|
||||
}
|
||||
_, err := uc.actionService.ActionRecordAdd(ctx, entity.CaptchaActionPassword, req.UserID)
|
||||
_, err := uc.actionService.ActionRecordAdd(ctx, entity.CaptchaActionEditUserinfo, req.UserID)
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
@@ -424,7 +424,7 @@ func (uc *UserController) UserModifyPassWord(ctx *gin.Context) {
|
||||
}
|
||||
err = uc.userService.UserModifyPassword(ctx, req)
|
||||
if err == nil {
|
||||
uc.actionService.ActionRecordDel(ctx, entity.CaptchaActionPassword, req.UserID)
|
||||
uc.actionService.ActionRecordDel(ctx, entity.CaptchaActionEditUserinfo, req.UserID)
|
||||
}
|
||||
handler.HandleResponse(ctx, err, nil)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,153 @@
|
||||
/*
|
||||
* 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 (
|
||||
"encoding/json"
|
||||
"github.com/apache/incubator-answer/internal/base/middleware"
|
||||
"github.com/apache/incubator-answer/internal/base/reason"
|
||||
"github.com/segmentfault/pacman/errors"
|
||||
"net/http"
|
||||
|
||||
"github.com/apache/incubator-answer/internal/base/handler"
|
||||
"github.com/apache/incubator-answer/internal/schema"
|
||||
"github.com/apache/incubator-answer/internal/service/plugin_common"
|
||||
"github.com/apache/incubator-answer/plugin"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// UserPluginController role controller
|
||||
type UserPluginController struct {
|
||||
pluginCommonService *plugin_common.PluginCommonService
|
||||
}
|
||||
|
||||
// NewUserPluginController new controller
|
||||
func NewUserPluginController(pluginCommonService *plugin_common.PluginCommonService) *UserPluginController {
|
||||
return &UserPluginController{pluginCommonService: pluginCommonService}
|
||||
}
|
||||
|
||||
// GetUserPluginList get plugin list that used for user.
|
||||
// @Summary get plugin list that used for user.
|
||||
// @Description get plugin list that used for user.
|
||||
// @Tags UserPlugin
|
||||
// @Security ApiKeyAuth
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} handler.RespBody{data=[]schema.GetUserPluginListResp}
|
||||
// @Router /answer/api/v1/user/plugin/configs [get]
|
||||
func (pc *UserPluginController) GetUserPluginList(ctx *gin.Context) {
|
||||
resp := make([]*schema.GetUserPluginListResp, 0)
|
||||
_ = plugin.CallUserConfig(func(base plugin.UserConfig) error {
|
||||
info := base.Info()
|
||||
if plugin.StatusManager.IsEnabled(info.SlugName) {
|
||||
resp = append(resp, &schema.GetUserPluginListResp{
|
||||
Name: info.Name.Translate(ctx),
|
||||
SlugName: info.SlugName,
|
||||
})
|
||||
}
|
||||
return nil
|
||||
})
|
||||
handler.HandleResponse(ctx, nil, resp)
|
||||
}
|
||||
|
||||
// GetUserPluginConfig get user plugin config
|
||||
// @Summary get user plugin config
|
||||
// @Description get user plugin config
|
||||
// @Tags UserPlugin
|
||||
// @Security ApiKeyAuth
|
||||
// @Produce json
|
||||
// @Param plugin_slug_name query string true "plugin_slug_name"
|
||||
// @Success 200 {object} handler.RespBody{data=schema.GetPluginConfigResp}
|
||||
// @Router /answer/api/v1/user/plugin/config [get]
|
||||
func (pc *UserPluginController) GetUserPluginConfig(ctx *gin.Context) {
|
||||
req := &schema.GetUserPluginConfigReq{}
|
||||
if handler.BindAndCheck(ctx, req) {
|
||||
return
|
||||
}
|
||||
|
||||
req.UserID = middleware.GetLoginUserIDFromContext(ctx)
|
||||
|
||||
resp := &schema.GetUserPluginConfigResp{}
|
||||
_ = plugin.CallUserConfig(func(fn plugin.UserConfig) error {
|
||||
if fn.Info().SlugName != req.PluginSlugName {
|
||||
return nil
|
||||
}
|
||||
info := fn.Info()
|
||||
resp.Name = info.Name.Translate(ctx)
|
||||
resp.SlugName = info.SlugName
|
||||
resp.SetConfigFields(ctx, fn.UserConfigFields())
|
||||
return nil
|
||||
})
|
||||
|
||||
configValue, err := pc.pluginCommonService.GetUserPluginConfig(ctx, req)
|
||||
if err != nil {
|
||||
handler.HandleResponse(ctx, err, nil)
|
||||
return
|
||||
}
|
||||
if len(configValue) > 0 {
|
||||
configValueMapping := make(map[string]any)
|
||||
_ = json.Unmarshal([]byte(configValue), &configValueMapping)
|
||||
for _, field := range resp.ConfigFields {
|
||||
if value, ok := configValueMapping[field.Name]; ok {
|
||||
field.Value = value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
handler.HandleResponse(ctx, err, resp)
|
||||
}
|
||||
|
||||
// UpdatePluginUserConfig update user plugin config
|
||||
// @Summary update user plugin config
|
||||
// @Description update user plugin config
|
||||
// @Tags UserPlugin
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Security ApiKeyAuth
|
||||
// @Param data body schema.UpdateUserPluginConfigReq true "UpdatePluginConfigReq"
|
||||
// @Success 200 {object} handler.RespBody
|
||||
// @Router /answer/api/v1/user/plugin/config [put]
|
||||
func (pc *UserPluginController) UpdatePluginUserConfig(ctx *gin.Context) {
|
||||
req := &schema.UpdateUserPluginConfigReq{}
|
||||
if handler.BindAndCheck(ctx, req) {
|
||||
return
|
||||
}
|
||||
if !plugin.StatusManager.IsEnabled(req.PluginSlugName) {
|
||||
handler.HandleResponse(ctx, errors.New(http.StatusBadRequest, reason.RequestFormatError), nil)
|
||||
return
|
||||
}
|
||||
|
||||
req.UserID = middleware.GetLoginUserIDFromContext(ctx)
|
||||
|
||||
configFields, _ := json.Marshal(req.ConfigFields)
|
||||
err := plugin.CallUserConfig(func(fn plugin.UserConfig) error {
|
||||
if fn.Info().SlugName == req.PluginSlugName {
|
||||
return fn.UserConfigReceiver(req.UserID, configFields)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
handler.HandleResponse(ctx, err, nil)
|
||||
return
|
||||
}
|
||||
|
||||
err = pc.pluginCommonService.UpdatePluginUserConfig(ctx, req)
|
||||
handler.HandleResponse(ctx, err, nil)
|
||||
}
|
||||
@@ -31,12 +31,12 @@ import (
|
||||
|
||||
// PluginController role controller
|
||||
type PluginController struct {
|
||||
PluginCommonService *plugin_common.PluginCommonService
|
||||
pluginCommonService *plugin_common.PluginCommonService
|
||||
}
|
||||
|
||||
// NewPluginController new controller
|
||||
func NewPluginController(PluginCommonService *plugin_common.PluginCommonService) *PluginController {
|
||||
return &PluginController{PluginCommonService: PluginCommonService}
|
||||
func NewPluginController(pluginCommonService *plugin_common.PluginCommonService) *PluginController {
|
||||
return &PluginController{pluginCommonService: pluginCommonService}
|
||||
}
|
||||
|
||||
// GetAllPluginStatus get all plugins status
|
||||
@@ -150,7 +150,7 @@ func (pc *PluginController) UpdatePluginStatus(ctx *gin.Context) {
|
||||
}
|
||||
|
||||
plugin.StatusManager.Enable(req.PluginSlugName, req.Enabled)
|
||||
err := pc.PluginCommonService.UpdatePluginStatus(ctx)
|
||||
err := pc.pluginCommonService.UpdatePluginStatus(ctx)
|
||||
handler.HandleResponse(ctx, err, nil)
|
||||
}
|
||||
|
||||
@@ -220,6 +220,6 @@ func (pc *PluginController) UpdatePluginConfig(ctx *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
err = pc.PluginCommonService.UpdatePluginConfig(ctx, req)
|
||||
err = pc.pluginCommonService.UpdatePluginConfig(ctx, req)
|
||||
handler.HandleResponse(ctx, err, nil)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* 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 entity
|
||||
|
||||
// PluginUserConfig plugin config
|
||||
type PluginUserConfig struct {
|
||||
ID int `xorm:"not null pk autoincr INT(11) id"`
|
||||
UserID string `xorm:"not null default 0 BIGINT(20) UNIQUE(uk_up) user_id"`
|
||||
PluginSlugName string `xorm:"VARCHAR(128) UNIQUE(uk_up) plugin_slug_name"`
|
||||
Value string `xorm:"TEXT value"`
|
||||
}
|
||||
|
||||
// TableName config table name
|
||||
func (PluginUserConfig) TableName() string {
|
||||
return "plugin_user_config"
|
||||
}
|
||||
@@ -56,7 +56,7 @@ type User struct {
|
||||
Status int `xorm:"not null default 1 INT(11) status"`
|
||||
AuthorityGroup int `xorm:"not null default 1 INT(11) authority_group"`
|
||||
DisplayName string `xorm:"not null default '' VARCHAR(30) display_name"`
|
||||
Avatar string `xorm:"not null default '' VARCHAR(255) avatar"`
|
||||
Avatar string `xorm:"not null default '' VARCHAR(1024) avatar"`
|
||||
Mobile string `xorm:"not null VARCHAR(20) mobile"`
|
||||
Bio string `xorm:"not null TEXT bio"`
|
||||
BioHTML string `xorm:"not null TEXT bio_html"`
|
||||
@@ -65,6 +65,7 @@ type User struct {
|
||||
IPInfo string `xorm:"not null default '' VARCHAR(255) ip_info"`
|
||||
IsAdmin bool `xorm:"not null default false BOOL is_admin"`
|
||||
Language string `xorm:"not null default '' VARCHAR(100) language"`
|
||||
ColorScheme string `xorm:"not null default '' VARCHAR(100) color_scheme"`
|
||||
}
|
||||
|
||||
// TableName user table name
|
||||
|
||||
@@ -72,6 +72,7 @@ func (m *Mentor) InitDB() error {
|
||||
m.do("init site info seo config", m.initSiteInfoSEOConfig)
|
||||
m.do("init site info user config", m.initSiteInfoUsersConfig)
|
||||
m.do("init site info privilege rank", m.initSiteInfoPrivilegeRank)
|
||||
m.do("init site info write", m.initSiteInfoWrite)
|
||||
return m.err
|
||||
}
|
||||
|
||||
@@ -179,6 +180,7 @@ func (m *Mentor) initSiteInfoLoginConfig() {
|
||||
loginConfig := map[string]bool{
|
||||
"allow_new_registrations": true,
|
||||
"allow_email_registrations": true,
|
||||
"allow_password_login": true,
|
||||
"login_required": m.userData.LoginRequired,
|
||||
}
|
||||
loginConfigDataBytes, _ := json.Marshal(loginConfig)
|
||||
@@ -241,3 +243,15 @@ func (m *Mentor) initSiteInfoPrivilegeRank() {
|
||||
Status: 1,
|
||||
})
|
||||
}
|
||||
|
||||
func (m *Mentor) initSiteInfoWrite() {
|
||||
writeData := map[string]interface{}{
|
||||
"restrict_answer": true,
|
||||
}
|
||||
writeDataBytes, _ := json.Marshal(writeData)
|
||||
_, m.err = m.engine.Context(m.ctx).Insert(&entity.SiteInfo{
|
||||
Type: "write",
|
||||
Content: string(writeDataBytes),
|
||||
Status: 1,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -67,6 +67,7 @@ var (
|
||||
&entity.PluginConfig{},
|
||||
&entity.UserExternalLogin{},
|
||||
&entity.UserNotificationConfig{},
|
||||
&entity.PluginUserConfig{},
|
||||
}
|
||||
|
||||
roles = []*entity.Role{
|
||||
|
||||
@@ -93,6 +93,8 @@ var migrations = []Migration{
|
||||
NewMigration("v1.1.2", "add notification config", addNoticeConfig, true),
|
||||
NewMigration("v1.1.3", "set default user notification config", setDefaultUserNotificationConfig, false),
|
||||
NewMigration("v1.2.0", "add recover answer permission", addRecoverPermission, true),
|
||||
NewMigration("v1.2.1", "add password login control", addPasswordLoginControl, true),
|
||||
NewMigration("v1.2.5", "add notification plugin and theme config", addNotificationPluginAndThemeConfig, true),
|
||||
}
|
||||
|
||||
func GetMigrations() []Migration {
|
||||
@@ -129,7 +131,7 @@ func ExpectedVersion() int64 {
|
||||
func Migrate(debug bool, dbConf *data.Database, cacheConf *data.CacheConf, upgradeToSpecificVersion string) error {
|
||||
cache, cacheCleanup, err := data.NewCache(cacheConf)
|
||||
if err != nil {
|
||||
fmt.Println("new check failed:", err.Error())
|
||||
fmt.Println("new cache failed:", err.Error())
|
||||
}
|
||||
engine, err := data.NewDB(debug, dbConf)
|
||||
if err != nil {
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
/*
|
||||
* 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 migrations
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/apache/incubator-answer/internal/base/constant"
|
||||
"github.com/apache/incubator-answer/internal/entity"
|
||||
"github.com/apache/incubator-answer/internal/schema"
|
||||
"xorm.io/xorm"
|
||||
)
|
||||
|
||||
func addPasswordLoginControl(ctx context.Context, x *xorm.Engine) error {
|
||||
loginSiteInfo := &entity.SiteInfo{
|
||||
Type: constant.SiteTypeLogin,
|
||||
}
|
||||
exist, err := x.Context(ctx).Get(loginSiteInfo)
|
||||
if err != nil {
|
||||
return fmt.Errorf("get config failed: %w", err)
|
||||
}
|
||||
if exist {
|
||||
content := &schema.SiteLoginReq{}
|
||||
_ = json.Unmarshal([]byte(loginSiteInfo.Content), content)
|
||||
content.AllowPasswordLogin = true
|
||||
data, _ := json.Marshal(content)
|
||||
loginSiteInfo.Content = string(data)
|
||||
_, err = x.Context(ctx).ID(loginSiteInfo.ID).Cols("content").Update(loginSiteInfo)
|
||||
if err != nil {
|
||||
return fmt.Errorf("update site info failed: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
writeSiteInfo := &entity.SiteInfo{
|
||||
Type: constant.SiteTypeWrite,
|
||||
}
|
||||
exist, err = x.Context(ctx).Get(writeSiteInfo)
|
||||
if err != nil {
|
||||
return fmt.Errorf("get config failed: %w", err)
|
||||
}
|
||||
if exist {
|
||||
content := &schema.SiteWriteReq{}
|
||||
_ = json.Unmarshal([]byte(writeSiteInfo.Content), content)
|
||||
content.RestrictAnswer = true
|
||||
data, _ := json.Marshal(content)
|
||||
writeSiteInfo.Content = string(data)
|
||||
_, err = x.Context(ctx).ID(writeSiteInfo.ID).Cols("content").Update(writeSiteInfo)
|
||||
if err != nil {
|
||||
return fmt.Errorf("update site info failed: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
type User struct {
|
||||
Avatar string `xorm:"not null default '' VARCHAR(1024) avatar"`
|
||||
}
|
||||
return x.Context(ctx).Sync(new(User))
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* 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 migrations
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/apache/incubator-answer/internal/entity"
|
||||
"xorm.io/xorm"
|
||||
)
|
||||
|
||||
func addNotificationPluginAndThemeConfig(ctx context.Context, x *xorm.Engine) error {
|
||||
type User struct {
|
||||
ID string `xorm:"not null pk autoincr BIGINT(20) id"`
|
||||
ColorScheme string `xorm:"not null default '' VARCHAR(100) color_scheme"`
|
||||
}
|
||||
return x.Context(ctx).Sync(new(entity.PluginUserConfig), new(User))
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user