mirror of
https://github.com/spacebarchat/server.git
synced 2024-11-11 05:02:37 +01:00
Merge branch 'master' into util
This commit is contained in:
commit
bdc0cc723c
2
api/.dockerignore
Normal file
2
api/.dockerignore
Normal file
@ -0,0 +1,2 @@
|
||||
node_modules
|
||||
dist
|
4
api/.env.example
Normal file
4
api/.env.example
Normal file
@ -0,0 +1,4 @@
|
||||
MONGO_URL=mongodb://localhost/fosscord
|
||||
PORT=3001
|
||||
PRODUCTION=TRUE
|
||||
THREADS=# automatically use all available cores, only available if production = true
|
1
api/.github/FUNDING.yml
vendored
Normal file
1
api/.github/FUNDING.yml
vendored
Normal file
@ -0,0 +1 @@
|
||||
open_collective: fosscord
|
20
api/.github/ISSUE_TEMPLATE/-feature--.md
vendored
Normal file
20
api/.github/ISSUE_TEMPLATE/-feature--.md
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
name: "[Feature] "
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**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**
|
||||
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.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
71
api/.github/workflows/codeql-analysis.yml
vendored
Normal file
71
api/.github/workflows/codeql-analysis.yml
vendored
Normal file
@ -0,0 +1,71 @@
|
||||
# For most projects, this workflow file will not need changing; you simply need
|
||||
# to commit it to your repository.
|
||||
#
|
||||
# You may wish to alter this file to override the set of languages analyzed,
|
||||
# or to provide custom queries or build logic.
|
||||
#
|
||||
# ******** NOTE ********
|
||||
# We have attempted to detect the languages in your repository. Please check
|
||||
# the `language` matrix defined below to confirm you have the correct set of
|
||||
# supported CodeQL languages.
|
||||
#
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ master ]
|
||||
schedule:
|
||||
- cron: '25 10 * * 5'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'javascript' ]
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
|
||||
# Learn more:
|
||||
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v1
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
|
||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||
# and modify them (or add more) to build your code if your project
|
||||
# uses a compiled language
|
||||
|
||||
#- run: |
|
||||
# make bootstrap
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
47
api/.github/workflows/docker-publish.yml
vendored
Normal file
47
api/.github/workflows/docker-publish.yml
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
name: docker-publish
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
-
|
||||
name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
-
|
||||
name: Cache Docker layers
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: /tmp/.buildx-cache
|
||||
key: ${{ runner.os }}-buildx-${{ github.sha }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-buildx-
|
||||
-
|
||||
name: Login to DockerHub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
-
|
||||
name: Build and push
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
tags: ${{ secrets.DOCKERHUB_TAGS }}
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
cache-to: type=local,dest=/tmp/.buildx-cache-new
|
||||
-
|
||||
# Hackfix to cleanup cache; replace after buildx 0.6 and BuildKit 0.9 are released
|
||||
# https://github.com/docker/build-push-action/pull/406#issuecomment-879184394
|
||||
name: Move cache fix
|
||||
run: |
|
||||
rm -rf /tmp/.buildx-cache
|
||||
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
|
88
api/.github/workflows/release.yml
vendored
Normal file
88
api/.github/workflows/release.yml
vendored
Normal file
@ -0,0 +1,88 @@
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
# Sequence of patterns matched against refs/tags
|
||||
tags:
|
||||
- "v*" # Push events to matching v*, i.e. v1.0, v20.15.10
|
||||
|
||||
name: Publish Release
|
||||
|
||||
jobs:
|
||||
insiders-build:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [windows, macos, ubuntu]
|
||||
include:
|
||||
- os: windows
|
||||
build: npm run bundle:windows
|
||||
artifact: fosscord-api-windows.exe
|
||||
- os: macos
|
||||
build: npm run bundle:macos
|
||||
artifact: fosscord-api-macos.app.tgz
|
||||
- os: ubuntu
|
||||
build: npm run bundle:linux
|
||||
artifact: fosscord-api-linux.tgz
|
||||
runs-on: ${{ matrix.os }}-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 14
|
||||
- run: npm install
|
||||
- run: npm run build
|
||||
- run: ${{ matrix.build }}
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ${{ matrix.artifact }}
|
||||
path: ${{ matrix.artifact }}
|
||||
|
||||
release:
|
||||
needs: [insiders-build]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Extract version
|
||||
id: extract_version
|
||||
uses: Saionaro/extract-package-version@v1.0.6
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: fosscord-api-windows-${{ github.sha }}.exe
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: fosscord-api-macos-${{ github.sha }}.app.tgz
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: fosscord-api-linux-${{ github.sha }}.tgz
|
||||
- uses: actions/create-release@v1
|
||||
id: create-release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: v${{ steps.extract_version.outputs.version }}
|
||||
release_name: Release ${{ steps.extract_version.outputs.version }}
|
||||
draft: false
|
||||
prerelease: true # TODO: change this to false
|
||||
- uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create-release.outputs.upload_url }}
|
||||
asset_path: fosscord-api-windows-${{ github.sha }}.exe
|
||||
asset_name: fosscord-api-windows.exe
|
||||
asset_content_type: application/vnd.microsoft.portable-executable
|
||||
- uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create-release.outputs.upload_url }}
|
||||
asset_path: fosscord-api-macos-${{ github.sha }}.app.tgz
|
||||
asset_name: fosscord-api-macos.app.tgz
|
||||
asset_content_type: application/gzip
|
||||
- uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create-release.outputs.upload_url }}
|
||||
asset_path: fosscord-api-linux-${{ github.sha }}.tgz
|
||||
asset_name: fosscord-api-linux.tgz
|
||||
asset_content_type: application/gzip
|
112
api/.gitignore
vendored
Normal file
112
api/.gitignore
vendored
Normal file
@ -0,0 +1,112 @@
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
lerna-debug.log*
|
||||
|
||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
*.lcov
|
||||
|
||||
# nyc test coverage
|
||||
.nyc_output
|
||||
|
||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Bower dependency directory (https://bower.io/)
|
||||
bower_components
|
||||
|
||||
# node-waf configuration
|
||||
.lock-wscript
|
||||
|
||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
jspm_packages/
|
||||
|
||||
# TypeScript v1 declaration files
|
||||
typings/
|
||||
|
||||
# TypeScript cache
|
||||
*.tsbuildinfo
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Microbundle cache
|
||||
.rpt2_cache/
|
||||
.rts2_cache_cjs/
|
||||
.rts2_cache_es/
|
||||
.rts2_cache_umd/
|
||||
|
||||
# Optional REPL history
|
||||
.node_repl_history
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# dotenv environment variables file
|
||||
.env
|
||||
.env.test
|
||||
|
||||
# parcel-bundler cache (https://parceljs.org/)
|
||||
.cache
|
||||
|
||||
# Next.js build output
|
||||
.next
|
||||
|
||||
# Nuxt.js build / generate output
|
||||
.nuxt
|
||||
dist
|
||||
build
|
||||
|
||||
# Gatsby files
|
||||
.cache/
|
||||
# Comment in the public line in if your project uses Gatsby and *not* Next.js
|
||||
# https://nextjs.org/blog/next-9-1#public-directory-support
|
||||
# public
|
||||
|
||||
# vuepress build output
|
||||
.vuepress/dist
|
||||
|
||||
# Serverless directories
|
||||
.serverless/
|
||||
|
||||
# FuseBox cache
|
||||
.fusebox/
|
||||
|
||||
# DynamoDB Local files
|
||||
.dynamodb/
|
||||
|
||||
# TernJS port file
|
||||
.tern-port
|
||||
|
||||
.DS_STORE
|
||||
src/ready.json
|
||||
|
||||
# Docker
|
||||
.docker/config/*
|
||||
!.docker/config/.keep
|
1
api/.npmignore
Normal file
1
api/.npmignore
Normal file
@ -0,0 +1 @@
|
||||
!dist/
|
6
api/.prettierrc
Normal file
6
api/.prettierrc
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"tabWidth": 4,
|
||||
"useTabs": true,
|
||||
"printWidth": 140,
|
||||
"trailingComma": "none"
|
||||
}
|
28
api/.vscode/launch.json
vendored
Normal file
28
api/.vscode/launch.json
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"sourceMaps": true,
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Launch Server",
|
||||
"program": "${workspaceFolder}/dist/start.js",
|
||||
"preLaunchTask": "tsc: build - tsconfig.json",
|
||||
"outFiles": ["${workspaceFolder}/dist/**/*.js"],
|
||||
"envFile": "${workspaceFolder}/.env"
|
||||
},
|
||||
{
|
||||
"name": "Debug current file",
|
||||
"program": "${file}",
|
||||
"request": "launch",
|
||||
"skipFiles": ["<node_internals>/**"],
|
||||
"runtimeArgs": ["--nolazy", "-r", "ts-node/register/transpile-only"],
|
||||
"preLaunchTask": "tsc: build - tsconfig.json",
|
||||
"type": "node",
|
||||
"resolveSourceMapLocations": ["${workspaceFolder}/**", "!**/node_modules/**"]
|
||||
}
|
||||
]
|
||||
}
|
12
api/Dockerfile
Normal file
12
api/Dockerfile
Normal file
@ -0,0 +1,12 @@
|
||||
FROM node:lts-alpine
|
||||
# needed for native packages (bcrypt, canvas)
|
||||
RUN apk add --no-cache make gcc g++ python cairo-dev jpeg-dev pango-dev giflib-dev
|
||||
WORKDIR /usr/src/fosscord-api
|
||||
COPY package.json .
|
||||
COPY package-lock.json .
|
||||
RUN npm rebuild bcrypt --build-from-source && npm install canvas --build-from-source
|
||||
RUN npm install
|
||||
COPY . .
|
||||
EXPOSE 3001
|
||||
RUN npm run build-docker
|
||||
CMD ["node", "dist/start.js"]
|
14
api/LICENSE
Normal file
14
api/LICENSE
Normal file
@ -0,0 +1,14 @@
|
||||
Copyright (C) 2021 Fosscord and contributors
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
67
api/README.md
Normal file
67
api/README.md
Normal file
@ -0,0 +1,67 @@
|
||||
<p align="center">
|
||||
<img width="100" src="https://raw.githubusercontent.com/fosscord/fosscord/master/assets/logo_big_transparent.png" />
|
||||
</p>
|
||||
<h1 align="center">Fosscord HTTP API Server</h1>
|
||||
|
||||
<p>
|
||||
<a href="https://discord.gg/ZrnGQP6p3d">
|
||||
<img src="https://img.shields.io/discord/806142446094385153?color=7489d5&logo=discord&logoColor=ffffff" />
|
||||
</a>
|
||||
<img src="https://img.shields.io/static/v1?label=Status&message=Development&color=blue">
|
||||
<a title="Crowdin" target="_blank" href="https://translate.fosscord.com/"><img src="https://badges.crowdin.net/fosscord/localized.svg"></a>
|
||||
<a href="https://opencollective.com/fosscord">
|
||||
<img src="https://opencollective.com/fosscord/tiers/badge.svg">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## [About](https://github.com/fosscord/fosscord-api/wiki)
|
||||
|
||||
This repository contains the Fosscord HTTP API Server
|
||||
|
||||
## Bug Tracker
|
||||
|
||||
[Project Board](https://fosscord.notion.site/2c7fe9e73f9842d3bab3a4912dedd091)
|
||||
|
||||
## API
|
||||
|
||||
We use [express](https://expressjs.com/) for the HTTP Server and
|
||||
[lambert-server](https://www.npmjs.com/package/lambert-server) for route handling and body validation (customized).
|
||||
|
||||
## Contribution
|
||||
|
||||
You should be familiar with:
|
||||
|
||||
- [Git](https://git-scm.com/)
|
||||
- [NodeJS](https://nodejs.org/)
|
||||
- [TypeScript](https://www.typescriptlang.org/)
|
||||
- [MongoDB/mongoose](http://mongoosejs.com/)
|
||||
|
||||
and the other technologies we use
|
||||
|
||||
### Getting Started
|
||||
|
||||
Clone the Repository:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/fosscord/fosscord-api
|
||||
cd discord-server
|
||||
```
|
||||
|
||||
#### Install (dev)dependencies:
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm install --only=dev
|
||||
```
|
||||
|
||||
#### Starting:
|
||||
|
||||
```
|
||||
npm start
|
||||
```
|
||||
|
||||
#### Debugging:
|
||||
|
||||
**Vscode:**
|
||||
The Launch file configuration is in `./vscode/launch.json`,
|
||||
so you can just debug the server by pressing `F5` or the `> Launch Server` button
|
1
api/__tests__/routes/auth/login.ts
Normal file
1
api/__tests__/routes/auth/login.ts
Normal file
@ -0,0 +1 @@
|
||||
it("works", () => {});
|
115
api/assets/endpoints.json
Normal file
115
api/assets/endpoints.json
Normal file
@ -0,0 +1,115 @@
|
||||
{
|
||||
"USER_CHANNELS": "/users/@me/channels",
|
||||
"USER_ACTIVITY_STATISTICS": "/users/@me/activities/statistics/applications",
|
||||
"ACTIVITIES": "/activities",
|
||||
"LOBBIES": "/lobbies",
|
||||
"LOBBY_SEARCH": "/lobbies/search",
|
||||
"NETWORKING_TOKEN": "/networking/token",
|
||||
"USER_GAMES_NOTIFICATIONS": "/users/@me/settings/game-notifications",
|
||||
"USER_GAMES_NOTIFICATIONS_OVERRIDES": "/users/@me/settings/game-notifications/overrides",
|
||||
"UNVERIFIED_APPLICATIONS": "/unverified-applications",
|
||||
"UNVERIFIED_APPLICATIONS_ICONS": "/unverified-applications/icons",
|
||||
"BULK_ACK": "/read-states/ack-bulk",
|
||||
"GUILDS": "/guilds",
|
||||
"CHANNELS": "/channels",
|
||||
"TUTORIAL_INDICATORS": "/tutorial/indicators",
|
||||
"TUTORIAL_INDICATORS_SUPPRESS": "/tutorial/indicators/suppress",
|
||||
"USERS": "/users",
|
||||
"ME": "/users/@me",
|
||||
"DELETE_ACCOUNT": "/users/@me/delete",
|
||||
"DISABLE_ACCOUNT": "/users/@me/disable",
|
||||
"DEVICES": "/users/@me/devices",
|
||||
"SETTINGS": "/users/@me/settings",
|
||||
"SETTINGS_CONSENT": "/users/@me/consent",
|
||||
"PHONE": "/users/@me/phone",
|
||||
"VERIFY_PHONE": "/users/@me/phone/verify",
|
||||
"VERIFY_PHONE_NEW": "/phone-verifications/verify",
|
||||
"RESEND_PHONE": "/phone-verifications/resend",
|
||||
"CONNECTIONS": "/users/@me/connections",
|
||||
"CONNECTION_SYNC_CONTACTS": "/users/@me/connections/contacts/@me/external-friend-list-entries",
|
||||
"NOTES": "/users/@me/notes",
|
||||
"MENTIONS": "/users/@me/mentions",
|
||||
"CAPTCHA": "/users/@me/captcha/verify",
|
||||
"EXPERIMENTS": "/experiments",
|
||||
"LOGIN": "/auth/login",
|
||||
"LOGIN_MFA": "/auth/mfa/totp",
|
||||
"LOGIN_SMS": "/auth/mfa/sms",
|
||||
"LOGIN_SMS_SEND": "/auth/mfa/sms/send",
|
||||
"REMOTE_AUTH_INITIALIZE": "/users/@me/remote-auth",
|
||||
"REMOTE_AUTH_CANCEL": "/users/@me/remote-auth/cancel",
|
||||
"REMOTE_AUTH_FINISH": "/users/@me/remote-auth/finish",
|
||||
"LOGOUT": "/auth/logout",
|
||||
"REGISTER": "/auth/register",
|
||||
"REGISTER_PHONE": "/auth/register/phone",
|
||||
"TRACK": "/science",
|
||||
"SSO": "/sso",
|
||||
"VERIFY": "/auth/verify",
|
||||
"AUTHORIZE_IP": "/auth/authorize-ip",
|
||||
"VERIFY_RESEND": "/auth/verify/resend",
|
||||
"FORGOT_PASSWORD": "/auth/forgot",
|
||||
"RESET_PASSWORD": "/auth/reset",
|
||||
"ICE": "/voice/ice",
|
||||
"REPORT": "/report",
|
||||
"REPORT_V2": "/reports",
|
||||
"REPORT_OPTIONS": "/report/options",
|
||||
"INTEGRATIONS": "/integrations",
|
||||
"GATEWAY": "/gateway",
|
||||
"APPLICATIONS_DETECTABLE": "/applications/detectable",
|
||||
"OAUTH2_AUTHORIZE": "/oauth2/authorize",
|
||||
"OAUTH2_AUTHORIZE_WEBHOOK_CHANNELS": "/oauth2/authorize/webhook-channels",
|
||||
"OAUTH2_CURRENT_AUTH": "/oauth2/@me",
|
||||
"OAUTH2_TOKENS": "/oauth2/tokens",
|
||||
"OAUTH2_WHITELIST_ACCEPT": "/oauth2/whitelist/accept",
|
||||
"MFA_TOTP_ENABLE": "/users/@me/mfa/totp/enable",
|
||||
"MFA_TOTP_DISABLE": "/users/@me/mfa/totp/disable",
|
||||
"MFA_SMS_ENABLE": "/users/@me/mfa/sms/enable",
|
||||
"MFA_SMS_DISABLE": "/users/@me/mfa/sms/disable",
|
||||
"MFA_CODES": "/users/@me/mfa/codes",
|
||||
"DISABLE_EMAIL_NOTIFICATIONS": "/users/disable-email-notifications",
|
||||
"GUILD_PREMIUM_SUBSCRIPTION_COOLDOWN": "/users/@me/guilds/premium/subscriptions/cooldown",
|
||||
"USER_GUILD_PREMIUM_SUBSCRIPTIONS": "/users/@me/guilds/premium/subscriptions",
|
||||
"USER_PREMIUM_GUILD_SUBSCRIPTION_SLOTS": "/users/@me/guilds/premium/subscription-slots",
|
||||
"BILLING_STRIPE_SETUP_INTENT_SECRET": "/users/@me/billing/stripe/setup-intents",
|
||||
"BILLING_PAYMENT_SOURCES": "/users/@me/billing/payment-sources",
|
||||
"BILLING_PAYMENTS": "/users/@me/billing/payments",
|
||||
"BILLING_BRAINTREE_POPUP_BRIDGE": "/billing/braintree/popup-bridge",
|
||||
"BILLING_BRAINTREE_POPUP_BRIDGE_CALLBACK": "/billing/braintree/popup-bridge/callback",
|
||||
"BILLING_SUBSCRIPTIONS": "/users/@me/billing/subscriptions",
|
||||
"BILLING_APPLY_APPLE_RECEIPT": "/billing/apple/apply-receipt",
|
||||
"BILLING_INVOICE_PREVIEW": "/users/@me/billing/invoices/preview",
|
||||
"USER_AGREEMENTS": "/users/@me/agreements",
|
||||
"HANDOFF": "/auth/handoff",
|
||||
"HANDOFF_EXCHANGE": "/auth/handoff/exchange",
|
||||
"LIBRARY": "/users/@me/library",
|
||||
"AUTH_CONSENT_REQUIRED": "/auth/consent-required",
|
||||
"USER_HARVEST": "/users/@me/harvest",
|
||||
"APPLICATION_BRANCHES": "/branches",
|
||||
"APPLICATIONS_PUBLIC": "/applications/public",
|
||||
"APPLICATIONS_TRENDING": "/applications/trending/global",
|
||||
"STORE_PUBLISHED_LISTINGS_APPLICATIONS": "/store/published-listings/applications",
|
||||
"STORE_PUBLISHED_LISTINGS_SKUS": "/store/published-listings/skus",
|
||||
"ENTITLEMENTS_GIFTABLE": "/users/@me/entitlements/gifts",
|
||||
"PROMOTIONS": "/promotions",
|
||||
"PROMOTION_ACK": "/promotions/ack",
|
||||
"HYPESQUAD_ONLINE": "/hypesquad/online",
|
||||
"GIFS_SEARCH": "/gifs/search",
|
||||
"GIFS_TRENDING": "/gifs/trending",
|
||||
"GIFS_TRENDING_GIFS": "/gifs/trending-gifs",
|
||||
"GIFS_SELECT": "/gifs/select",
|
||||
"GIFS_SUGGEST": "/gifs/suggest",
|
||||
"GIFS_TRENDING_SEARCH": "/gifs/trending-search",
|
||||
"USER_GIFT_CODE_CREATE": "/users/@me/entitlements/gift-codes",
|
||||
"USER_GIFT_CODES": "/users/@me/entitlements/gift-codes",
|
||||
"GUILD_DISCOVERY": "/discoverable-guilds",
|
||||
"GUILD_DISCOVERY_CATEGORIES": "/discovery/categories",
|
||||
"GUILD_DISCOVERY_VALID_TERM": "/discovery/valid-term",
|
||||
"USER_AFFINITIES": "/users/@me/affinities/users",
|
||||
"GUILD_AFFINITIES": "/users/@me/affinities/guilds",
|
||||
"XBOX_GAME_PASS_PROMOTION": "/promotions/xbox-game-pass",
|
||||
"XBOX_GAME_PASS_PROMOTION_REDEEM": "/promotions/xbox-game-pass/redeem",
|
||||
"FUNIMATION_PROMOTION": "/promotions/funimation",
|
||||
"PARTNERS_CONNECTIONS": "/partners/connections",
|
||||
"PARTNERS_APPLY": "/partners/apply",
|
||||
"USER_STICKER_PACKS": "/users/@me/sticker-packs",
|
||||
"INTERACTIONS": "/interactions"
|
||||
}
|
26
api/assets/features.json
Normal file
26
api/assets/features.json
Normal file
@ -0,0 +1,26 @@
|
||||
[
|
||||
"ANIMATED_ICON",
|
||||
"BANNER",
|
||||
"COMMERCE",
|
||||
"COMMUNITY",
|
||||
"DISCOVERABLE",
|
||||
"DISCOVERABLE_DISABLED",
|
||||
"ENABLED_DISCOVERABLE_BEFORE",
|
||||
"HUB",
|
||||
"INVITE_SPLASH",
|
||||
"MONETIZATION_ENABLED",
|
||||
"MORE_EMOJI",
|
||||
"MORE_STICKERS",
|
||||
"NEWS",
|
||||
"PARTNERED",
|
||||
"PREVIEW_ENABLED",
|
||||
"PRIVATE_THREADS",
|
||||
"SEVEN_DAY_THREAD_ARCHIVE",
|
||||
"THREE_DAY_THREAD_ARCHIVE",
|
||||
"THREADS_ENABLED",
|
||||
"TICKETED_EVENTS_ENABLED",
|
||||
"VANITY_URL",
|
||||
"VERIFIED",
|
||||
"VIP_REGIONS",
|
||||
"WELCOME_SCREEN_ENABLED"
|
||||
]
|
136
api/assets/openapi.yaml
Normal file
136
api/assets/openapi.yaml
Normal file
@ -0,0 +1,136 @@
|
||||
openapi: 3.0.3
|
||||
info:
|
||||
title: Fosscord
|
||||
version: '9'
|
||||
license:
|
||||
name: GNU AGPLv3
|
||||
url: https://www.gnu.org/licenses/agpl.txt
|
||||
x-last-modified: 1625409195984
|
||||
x-logo:
|
||||
url: ''
|
||||
servers:
|
||||
- url: https://api.fosscord.com
|
||||
description: ''
|
||||
x-last-modified: 1625407844365
|
||||
paths:
|
||||
/users/:id:
|
||||
summary: get user
|
||||
description: test
|
||||
get:
|
||||
tags: []
|
||||
responses:
|
||||
'200':
|
||||
$ref: '#/components/responses/User'
|
||||
x-last-modified: 1625409722629
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
required: true
|
||||
deprecated: false
|
||||
x-last-modified: 1625409813480
|
||||
x-last-modified: 1625409704895
|
||||
components:
|
||||
schemas:
|
||||
User:
|
||||
type: object
|
||||
properties:
|
||||
avatar:
|
||||
type: string
|
||||
example:
|
||||
- d83f330fc30367f859bc6ee358b14319
|
||||
bot:
|
||||
type: boolean
|
||||
example:
|
||||
- false
|
||||
desktop:
|
||||
type: boolean
|
||||
example:
|
||||
- false
|
||||
discriminator:
|
||||
type: string
|
||||
example:
|
||||
- '0001'
|
||||
email:
|
||||
type: string
|
||||
example:
|
||||
- example@example.org
|
||||
flags:
|
||||
type: string
|
||||
example:
|
||||
- '0'
|
||||
id:
|
||||
type: string
|
||||
example:
|
||||
- '732645009894277321'
|
||||
mfa_enabled:
|
||||
type: boolean
|
||||
example:
|
||||
- false
|
||||
mobile:
|
||||
type: boolean
|
||||
example:
|
||||
- false
|
||||
nsfw_allowed:
|
||||
type: boolean
|
||||
example:
|
||||
- true
|
||||
premium:
|
||||
type: boolean
|
||||
example:
|
||||
- false
|
||||
premium_type:
|
||||
type: number
|
||||
example:
|
||||
- 0
|
||||
public_flags:
|
||||
type: string
|
||||
example:
|
||||
- '0'
|
||||
username:
|
||||
type: string
|
||||
example:
|
||||
- Example
|
||||
verified:
|
||||
type: boolean
|
||||
example:
|
||||
- true
|
||||
example:
|
||||
avatar: d83f330fc30367f859bc6ee358b14319
|
||||
bot: false
|
||||
desktop: false
|
||||
discriminator: '0001'
|
||||
email: example@example.org
|
||||
flags: '0'
|
||||
id: '732645009894277321'
|
||||
mfa_enabled: false
|
||||
mobile: false
|
||||
nsfw_allowed: true
|
||||
premium: false
|
||||
premium_type: 0
|
||||
public_flags: '0'
|
||||
username: Example
|
||||
verified: true
|
||||
x-last-modified: 1625409630283
|
||||
required: []
|
||||
description: test
|
||||
securitySchemes:
|
||||
JWTAuth:
|
||||
scheme: bearer
|
||||
bearerFormat: JWT
|
||||
type: http
|
||||
description: |-
|
||||
Example:
|
||||
> Authorization: Bot <token>
|
||||
x-last-modified: 1625407825787
|
||||
headers: {}
|
||||
responses:
|
||||
User:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/User'
|
||||
x-last-modified: 1625409578903
|
||||
parameters: {}
|
||||
security:
|
||||
- JWTAuth: []
|
||||
tags: []
|
526
api/assets/openapi.yml
Normal file
526
api/assets/openapi.yml
Normal file
@ -0,0 +1,526 @@
|
||||
swagger: "2.0"
|
||||
info:
|
||||
description: "Fosscord backend api docs"
|
||||
version: "1.0.0"
|
||||
title: "Fosscord Backend API"
|
||||
termsOfService: "https://github.com/fosscord/fosscord/blob/master/LICENSE"
|
||||
license:
|
||||
name: "AGPL 3.0"
|
||||
url: "https://www.gnu.org/licenses/agpl-3.0.html"
|
||||
host: "dev.fosscord.com"
|
||||
basePath: "/api/v9"
|
||||
tags:
|
||||
- name: "Audit Log"
|
||||
description: "Guild Audit Log resource"
|
||||
externalDocs:
|
||||
description: "Find out more"
|
||||
url: "https://discord.com/developers/docs/resources/audit-log"
|
||||
- name: "Channel"
|
||||
description: "Channel resource"
|
||||
externalDocs:
|
||||
description: "Find out more"
|
||||
url: "https://discord.com/developers/docs/resources/channel"
|
||||
schemes:
|
||||
- "https"
|
||||
- "http"
|
||||
paths:
|
||||
/guilds/{guildId}/audit-logs:
|
||||
get:
|
||||
summary: "Returns an audit log object for the guild. Requires the 'VIEW_AUDIT_LOG' permission."
|
||||
tags:
|
||||
- Audit Log
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/guildId"
|
||||
- name: user_id
|
||||
in: query
|
||||
type: string
|
||||
description: "Type of snowflake - Filter the log for actions made by a user"
|
||||
- name: action_type
|
||||
in: query
|
||||
type: integer
|
||||
description: "The type of audit log event"
|
||||
- name: before
|
||||
in: query
|
||||
type: string
|
||||
description: "Type of snowflake - Filter the log before a certain entry id"
|
||||
- name: limit
|
||||
in: query
|
||||
type: integer
|
||||
description: "How many entries are returned (default 50, minimum 1, maximum 100)"
|
||||
responses:
|
||||
'200':
|
||||
description: "Audit Log Object"
|
||||
schema:
|
||||
$ref: "#/definitions/Audit%20Log"
|
||||
/channels/{channelId}:
|
||||
get:
|
||||
summary: "Get a channel by ID. Returns a channel object. If the channel is a thread, a thread member object is included in the returned result."
|
||||
tags:
|
||||
- Channel
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/channelId"
|
||||
responses:
|
||||
'200':
|
||||
description: "Channel Object"
|
||||
schema:
|
||||
$ref: "#/definitions/Channel"
|
||||
patch:
|
||||
summary: "Update a channel's settings. Returns a channel on success, and a 400 BAD REQUEST on invalid parameters. All JSON parameters are optional."
|
||||
tags:
|
||||
- Channel
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/channelId"
|
||||
- name: body (Group DM)
|
||||
in: body
|
||||
description: "The request body when modifying Group DM channels - Fires a Channel Update Gateway event."
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: "1-100 character channel name"
|
||||
icon:
|
||||
type: string
|
||||
format: byte
|
||||
description: "base64 encoded icon"
|
||||
- name: body (Guild channel)
|
||||
in: body
|
||||
description: "Requires the MANAGE_CHANNELS permission for the guild. Fires a Channel Update Gateway event. If modifying a category, individual Channel Update events will fire for each child channel that also changes. If modifying permission overwrites, the MANAGE_ROLES permission is required. Only permissions your bot has in the guild or channel can be allowed/denied (unless your bot has a MANAGE_ROLES overwrite in the channel)."
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: "1-100 character channel name"
|
||||
type:
|
||||
type: integer
|
||||
description: "The type of channel; only conversion between text and news is supported and only in guilds with the \"NEWS\" feature"
|
||||
position:
|
||||
type: integer
|
||||
default: null
|
||||
description: "The position of the channel in the left-hand listing"
|
||||
topic:
|
||||
type: string
|
||||
default: null
|
||||
description: "0-1024 character channel topic"
|
||||
nsfw:
|
||||
type: boolean
|
||||
default: null
|
||||
description: "Whether the channel is nsfw"
|
||||
rate_limit_per_user:
|
||||
type: integer
|
||||
default: null
|
||||
description: "Amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission manage_messages or manage_channel, are unaffected"
|
||||
bitrate:
|
||||
type: integer
|
||||
default: null
|
||||
description: "The bitrate (in bits) of the voice channel; 8000 to 96000 (128000 for VIP servers)"
|
||||
user_limit:
|
||||
type: integer
|
||||
default: null
|
||||
description: "The user limit of the voice channel; 0 refers to no limit, 1 to 99 refers to a user limit"
|
||||
permission_overwrites:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/definitions/Overwrite"
|
||||
default: null
|
||||
description: "Channel or category-specific permissions"
|
||||
parent_id:
|
||||
$ref: "#/definitions/Snowflake"
|
||||
default: null
|
||||
description: "Id of the new parent category for a channel"
|
||||
rtc_region:
|
||||
type: string
|
||||
default: null
|
||||
description: "Channel voice region id, automatic when set to null"
|
||||
video_quality_mode:
|
||||
type: integer
|
||||
default: null
|
||||
description: "The camera video quality mode of the voice channel"
|
||||
default_auto_archive_duration:
|
||||
type: integer
|
||||
default: null
|
||||
description: "The default duration for newly created threads in the channel, in minutes, to automatically archive the thread after recent activity"
|
||||
- name: body (Thread)
|
||||
in: body
|
||||
description: "When setting archived to false, when locked is also false, only the SEND_MESSAGES permission is required.Otherwise, requires the MANAGE_THREADS permission. Fires a Thread Update Gateway event. Requires the thread to have archived set to false or be set to false in the request."
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: "1-100 character channel name"
|
||||
archived:
|
||||
type: boolean
|
||||
description: "Whether the channel is archived"
|
||||
auto_archive_duration:
|
||||
type: integer
|
||||
description: "Duration in minutes to automatically archive the thread after recent activity, can be set to: 60, 1440, 4320, 10080 (The 3 day and 7 day archive durations require the server to be boosted. The guild features will indicate if a server is able to use those settings)"
|
||||
locked:
|
||||
type: boolean
|
||||
description: "When a thread is locked, only users with MANAGE_THREADS can unarchive it"
|
||||
rate_limit_per_user:
|
||||
type: integer
|
||||
default: null
|
||||
description: "Amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission manage_messages, manage_thread, or manage_channel, are unaffected"
|
||||
responses:
|
||||
'200':
|
||||
description: "Channel Object"
|
||||
schema:
|
||||
$ref: "#/definitions/Channel"
|
||||
'400':
|
||||
description: "Bad Request due to invalid parameters"
|
||||
delete:
|
||||
summary: "Delete a channel, or close a private message. Requires the MANAGE_CHANNELS permission for the guild, or MANAGE_THREADS if the channel is a thread. Deleting a category does not delete its child channels; they will have their parent_id removed and a Channel Update Gateway event will fire for each of them. Returns a channel object on success. Fires a Channel Delete Gateway event (or Thread Delete if the channel was a thread)."
|
||||
tags:
|
||||
- Channel
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/channelId"
|
||||
responses:
|
||||
'200':
|
||||
description: "Channel deleted sucessfully"
|
||||
/channels/{channelId}/messages:
|
||||
get:
|
||||
summary: "Returns the messages for a channel. If operating on a guild channel, this endpoint requires the VIEW_CHANNEL permission to be present on the current user. If the current user is missing the 'READ_MESSAGE_HISTORY' permission in the channel then this will return no messages (since they cannot read the message history). Returns an array of message objects on success."
|
||||
tags:
|
||||
- Channel
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/channelId"
|
||||
- name: around
|
||||
in: query
|
||||
type: string
|
||||
description: "Type of snowflake - Get messages around this message ID"
|
||||
- name: before
|
||||
in: query
|
||||
type: string
|
||||
description: "Type of snowflake - Get messages before this message ID"
|
||||
- name: after
|
||||
in: query
|
||||
type: string
|
||||
description: "Type of snowflake - Get messages after this message ID"
|
||||
- name: limit
|
||||
in: query
|
||||
type: integer
|
||||
description: "Max number of messages to return (1-100)"
|
||||
default: 50
|
||||
responses:
|
||||
'200':
|
||||
description: "Returns an array of message objects on success"
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/definitions/Message"
|
||||
/channels/{channelId}/messages/{messageId}:
|
||||
get:
|
||||
summary: "Returns a specific message in the channel. If operating on a guild channel, this endpoint requires the 'READ_MESSAGE_HISTORY' permission to be present on the current user. Returns a message object on success."
|
||||
tags:
|
||||
- Channel
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/channelId"
|
||||
- $ref: "#/definitionsParam/messageId"
|
||||
responses:
|
||||
'200':
|
||||
description: "Returns a message object on success"
|
||||
schema:
|
||||
$ref: "#/definitions/Message"
|
||||
post:
|
||||
summary: "Post a message to a guild text or DM channel. Returns a message object. Fires a Message Create Gateway event. See message formatting for more information on how to properly format messages."
|
||||
tags:
|
||||
- Channel
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/channelId"
|
||||
- $ref: "#/definitionsParam/messageId"
|
||||
- name: body
|
||||
in: body
|
||||
required: true
|
||||
description: "Request body that contains the necessary data for creating messages"
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
content:
|
||||
type: string
|
||||
description: "The message contents (up to 2000 characters)"
|
||||
tts:
|
||||
type: boolean
|
||||
description: "True if this is a TTS message"
|
||||
default: null
|
||||
file:
|
||||
type: string
|
||||
format: binary
|
||||
description: "The contents of the file being sent"
|
||||
embeds:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/definitions/Embed"
|
||||
description: "Embedded rich content (up to 6000 characters)"
|
||||
payload_json:
|
||||
type: string
|
||||
description: "JSON encoded body of non-file params"
|
||||
default: null
|
||||
allowed_mentions:
|
||||
$ref: "#/definitions/Allowed%20Mention"
|
||||
description: "Allowed mentions for the message"
|
||||
default: null
|
||||
message_refrence:
|
||||
$ref: "#/definitions/Message%20Refrence"
|
||||
description: "Include to make your message a reply"
|
||||
default: null
|
||||
components:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/definitions/Message%20Component"
|
||||
default: null
|
||||
responses:
|
||||
'200':
|
||||
description: "Returns a message object on success"
|
||||
schema:
|
||||
$ref: "#/definitions/Message"
|
||||
patch:
|
||||
summary: "Edit a previously sent message. The fields content, embeds, and flags can be edited by the original message author. Other users can only edit flags and only if they have the MANAGE_MESSAGES permission in the corresponding channel. When specifying flags, ensure to include all previously set flags/bits in addition to ones that you are modifying. Only flags documented in the table below may be modified by users (unsupported flag changes are currently ignored without error)."
|
||||
tags:
|
||||
- Channel
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/channelId"
|
||||
- $ref: "#/definitionsParam/messageId"
|
||||
- name: body
|
||||
in: body
|
||||
required: true
|
||||
description: "Request body that contains the necessary data for editing messages"
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
content:
|
||||
type: string
|
||||
description: "The message contents (up to 2000 characters)"
|
||||
embeds:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/definitions/Embed"
|
||||
description: "Embedded rich content (up to 6000 characters)"
|
||||
flags:
|
||||
type: integer
|
||||
description: "Edit the flags of a message (only SUPPRESS_EMBEDS can currently be set/unset)"
|
||||
file:
|
||||
type: string
|
||||
format: binary
|
||||
description: "The contents of the file being sent/edited"
|
||||
payload_json:
|
||||
type: string
|
||||
description: "JSON encoded body of non-file params (multipart/form-data only)"
|
||||
default: null
|
||||
allowed_mentions:
|
||||
$ref: "#/definitions/Allowed%20Mention"
|
||||
description: "Allowed mentions for the message"
|
||||
default: null
|
||||
message_refrence:
|
||||
$ref: "#/definitions/Message%20Refrence"
|
||||
description: "Include to make your message a reply"
|
||||
default: null
|
||||
components:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/definitions/Message%20Component"
|
||||
default: null
|
||||
responses:
|
||||
'200':
|
||||
description: "Message edited"
|
||||
delete:
|
||||
summary: "Delete a message. If operating on a guild channel and trying to delete a message that was not sent by the current user, this endpoint requires the MANAGE_MESSAGES permission. Returns a 204 empty response on success. Fires a Message Delete Gateway event."
|
||||
tags:
|
||||
- Channel
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/channelId"
|
||||
- $ref: "#/definitionsParam/messageId"
|
||||
responses:
|
||||
'204':
|
||||
description: "Returns a 204 empty response on success."
|
||||
/channels/{channelId}/messages/{messageId}/crosspost:
|
||||
post:
|
||||
summary: "Crosspost a message in a News Channel to following channels. This endpoint requires the 'SEND_MESSAGES' permission, if the current user sent the message, or additionally the 'MANAGE_MESSAGES' permission, for all other messages, to be present for the current user."
|
||||
tags:
|
||||
- Channel
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/channelId"
|
||||
- $ref: "#/definitionsParam/messageId"
|
||||
responses:
|
||||
'200':
|
||||
description: "Returns a message object on success"
|
||||
schema:
|
||||
$ref: "#/definitions/Message"
|
||||
/channels/{channelId}/messages/{messageId}/reactions/{emoji}/@me:
|
||||
put:
|
||||
summary: "Create a reaction for the message. This endpoint requires the 'READ_MESSAGE_HISTORY' permission to be present on the current user. Additionally, if nobody else has reacted to the message using this emoji, this endpoint requires the 'ADD_REACTIONS' permission to be present on the current user. Returns a 204 empty response on success. The emoji must be URL Encoded or the request will fail with 10014: Unknown Emoji. To use custom emoji, you must encode it in the format name:id with the emoji name and emoji id."
|
||||
tags:
|
||||
- Channel
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/channelId"
|
||||
- $ref: "#/definitionsParam/messageId"
|
||||
- $ref: "#/definitionsParam/emoji"
|
||||
responses:
|
||||
'204':
|
||||
description: "Returns a 204 empty response on success."
|
||||
delete:
|
||||
summary: "Delete a reaction the current user has made for the message. Returns a 204 empty response on success. The emoji must be URL Encoded or the request will fail with 10014: Unknown Emoji. To use custom emoji, you must encode it in the format name:id with the emoji name and emoji id."
|
||||
tags:
|
||||
- Channel
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/channelId"
|
||||
- $ref: "#/definitionsParam/messageId"
|
||||
- $ref: "#/definitionsParam/emoji"
|
||||
responses:
|
||||
'204':
|
||||
description: "Returns a 204 empty response on success."
|
||||
/channels/{channelId}/messages/{messageId}/reactions/{emoji}/{userId}:
|
||||
delete:
|
||||
summary: "Deletes another user's reaction. This endpoint requires the 'MANAGE_MESSAGES' permission to be present on the current user. Returns a 204 empty response on success. The emoji must be URL Encoded or the request will fail with 10014: Unknown Emoji. To use custom emoji, you must encode it in the format name:id with the emoji name and emoji id."
|
||||
tags:
|
||||
- Channel
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/channelId"
|
||||
- $ref: "#/definitionsParam/messageId"
|
||||
- $ref: "#/definitionsParam/emoji"
|
||||
- $ref: "#/definitionsParam/userId"
|
||||
responses:
|
||||
'204':
|
||||
description: "Returns a 204 empty response on success."
|
||||
/channels/{channelId}/messages/{messageId}/reactions/{emoji}:
|
||||
get:
|
||||
summary: "Get a list of users that reacted with this emoji. Returns an array of user objects on success. The emoji must be URL Encoded or the request will fail with 10014: Unknown Emoji. To use custom emoji, you must encode it in the format name:id with the emoji name and emoji id."
|
||||
tags:
|
||||
- Channel
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/channelId"
|
||||
- $ref: "#/definitionsParam/messageId"
|
||||
- $ref: "#/definitionsParam/emoji"
|
||||
- name: after
|
||||
in: query
|
||||
type: string
|
||||
description: "Type of snowflake - Get users after this user ID"
|
||||
- name: limit
|
||||
in: query
|
||||
type: integer
|
||||
description: "Max number of users to return (1-100)"
|
||||
default: 25
|
||||
responses:
|
||||
'200':
|
||||
description: "Returns an array of user objects on success"
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/definitions/User"
|
||||
delete:
|
||||
summary: "Deletes all the reactions for a given emoji on a message. This endpoint requires the MANAGE_MESSAGES permission to be present on the current user. Fires a Message Reaction Remove Emoji Gateway event. The emoji must be URL Encoded or the request will fail with 10014: Unknown Emoji. To use custom emoji, you must encode it in the format name:id with the emoji name and emoji id."
|
||||
tags:
|
||||
- Channel
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/channelId"
|
||||
- $ref: "#/definitionsParam/messageId"
|
||||
- $ref: "#/definitionsParam/emoji"
|
||||
responses:
|
||||
'204':
|
||||
description: "Returns a 204 empty response on success."
|
||||
/channels/{channelId}/messages/{messageId}/reactions:
|
||||
delete:
|
||||
summary: "Deletes all reactions on a message. This endpoint requires the 'MANAGE_MESSAGES' permission to be present on the current user. Fires a Message Reaction Remove All Gateway event."
|
||||
tags:
|
||||
- Channel
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/channelId"
|
||||
- $ref: "#/definitionsParam/messageId"
|
||||
responses:
|
||||
'204':
|
||||
description: "Returns a 204 empty response on success."
|
||||
/channels/{channelId}/messages/bulk-delete:
|
||||
post:
|
||||
summary: "Delete multiple messages in a single request. This endpoint can only be used on guild channels and requires the MANAGE_MESSAGES permission. Returns a 204 empty response on success. Fires a Message Delete Bulk Gateway event."
|
||||
tags:
|
||||
- Channel
|
||||
parameters:
|
||||
- $ref: "#/definitionsParam/channelId"
|
||||
responses:
|
||||
'204':
|
||||
description: "Returns a 204 empty response on success."
|
||||
definitions:
|
||||
Snowflake:
|
||||
type: string
|
||||
pattern: "^\\d+$"
|
||||
Audit Log:
|
||||
type: object
|
||||
properties:
|
||||
webhooks:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/definitions/Webhook"
|
||||
description: "List of webhooks found in the audit log"
|
||||
users:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/definitions/User"
|
||||
description: "List of users found in the audit log"
|
||||
audit_log_entries:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/definitions/Audit%20Log%20Entry"
|
||||
description: "List of audit log entries"
|
||||
integrations:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/definitions/Integration"
|
||||
description: "List of partial integration objects"
|
||||
Audit Log Entry:
|
||||
type: object
|
||||
Webhook:
|
||||
type: object
|
||||
User:
|
||||
type: object
|
||||
Integration:
|
||||
type: object
|
||||
Channel:
|
||||
type: object
|
||||
Overwrite:
|
||||
type: object
|
||||
Message:
|
||||
type: object
|
||||
Embed:
|
||||
type: object
|
||||
Allowed Mention:
|
||||
type: object
|
||||
Message Refrence:
|
||||
type: object
|
||||
Message Component:
|
||||
type: object
|
||||
definitionsParam:
|
||||
channelId:
|
||||
name: channelId
|
||||
in: path
|
||||
required: true
|
||||
type: string
|
||||
description: "Type of snowflake - A channel Id"
|
||||
messageId:
|
||||
name: messageId
|
||||
in: path
|
||||
required: true
|
||||
type: string
|
||||
description: "Type of snowflake - A message ID"
|
||||
guildId:
|
||||
name: guildId
|
||||
in: path
|
||||
required: true
|
||||
type: string
|
||||
description: "Type of snowflake - A guild ID"
|
||||
emoji:
|
||||
name: emoji
|
||||
in: path
|
||||
required: true
|
||||
type: string
|
||||
format: url
|
||||
description: "The emoji ID to use"
|
||||
userId:
|
||||
name: userId
|
||||
in: path
|
||||
required: true
|
||||
type: string
|
||||
description: "Type of snowflake - A user ID"
|
||||
externalDocs:
|
||||
description: "Discord API"
|
||||
url: "https://discord.com/developers/docs/"
|
BIN
api/assets/widget/banner1.png
Normal file
BIN
api/assets/widget/banner1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.8 KiB |
BIN
api/assets/widget/banner2.png
Normal file
BIN
api/assets/widget/banner2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.7 KiB |
BIN
api/assets/widget/banner3.png
Normal file
BIN
api/assets/widget/banner3.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.2 KiB |
BIN
api/assets/widget/banner4.png
Normal file
BIN
api/assets/widget/banner4.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
BIN
api/assets/widget/shield.png
Normal file
BIN
api/assets/widget/shield.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 726 B |
50
api/client_test/index.html
Normal file
50
api/client_test/index.html
Normal file
@ -0,0 +1,50 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Discord Test Client</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app-mount"></div>
|
||||
<script>
|
||||
window.__OVERLAY__ = /overlay/.test(location.pathname);
|
||||
window.__BILLING_STANDALONE__ = /^\/billing/.test(location.pathname);
|
||||
window.GLOBAL_ENV = {
|
||||
API_ENDPOINT: "/api",
|
||||
API_VERSION: 9,
|
||||
GATEWAY_ENDPOINT: `${location.protocol === "https:" ? "wss://" : "ws://"}${location.hostname}:3002`,
|
||||
WEBAPP_ENDPOINT: "",
|
||||
CDN_HOST: `${location.hostname}:3003`,
|
||||
ASSET_ENDPOINT: "",
|
||||
MEDIA_PROXY_ENDPOINT: "https://media.discordapp.net",
|
||||
WIDGET_ENDPOINT: `//${location.host}/widget`,
|
||||
INVITE_HOST: `${location.hostname}`,
|
||||
GUILD_TEMPLATE_HOST: "discord.new",
|
||||
GIFT_CODE_HOST: "discord.gift",
|
||||
RELEASE_CHANNEL: "stable",
|
||||
MARKETING_ENDPOINT: "//discord.com",
|
||||
BRAINTREE_KEY: "production_5st77rrc_49pp2rp4phym7387",
|
||||
STRIPE_KEY: "pk_live_CUQtlpQUF0vufWpnpUmQvcdi",
|
||||
NETWORKING_ENDPOINT: "//router.discordapp.net",
|
||||
RTC_LATENCY_ENDPOINT: "//latency.discord.media/rtc",
|
||||
PROJECT_ENV: "production",
|
||||
REMOTE_AUTH_ENDPOINT: "//remote-auth-gateway.discord.gg",
|
||||
SENTRY_TAGS: { buildId: "75e36d9", buildType: "normal" },
|
||||
MIGRATION_SOURCE_ORIGIN: "https://discordapp.com",
|
||||
MIGRATION_DESTINATION_ORIGIN: "https://discord.com",
|
||||
HTML_TIMESTAMP: Date.now(),
|
||||
ALGOLIA_KEY: "aca0d7082e4e63af5ba5917d5e96bed0"
|
||||
};
|
||||
localStorage.removeItem("gatewayURL");
|
||||
localStorage.setItem(
|
||||
"DeveloperOptionsStore",
|
||||
`{"trace":false,"canary":false,"logGatewayEvents":true,"logOverlayEvents":false,"logAnalyticsEvents":false,"sourceMapsEnabled":false,"axeEnabled":false}`
|
||||
);
|
||||
</script>
|
||||
<script src="/assets/f4cfdce920759d48b997.js"></script>
|
||||
<script src="/assets/fee63b3d875ea42099e2.js"></script>
|
||||
<script src="/assets/f291c7bb28bfcc2c10ab.js"></script>
|
||||
<script src="/assets/2d959037561522bd3b2a.js"></script>
|
||||
</body>
|
||||
</html>
|
3
api/crowdin.yml
Normal file
3
api/crowdin.yml
Normal file
@ -0,0 +1,3 @@
|
||||
files:
|
||||
- source: /locales/en/*.json
|
||||
translation: /locales/%two_letters_code%/%original_file_name%
|
192
api/jest.config.ts
Normal file
192
api/jest.config.ts
Normal file
@ -0,0 +1,192 @@
|
||||
/*
|
||||
* For a detailed explanation regarding each configuration property and type check, visit:
|
||||
* https://jestjs.io/docs/en/configuration.html
|
||||
*/
|
||||
|
||||
export default {
|
||||
// All imported modules in your tests should be mocked automatically
|
||||
// automock: false,
|
||||
|
||||
// Stop running tests after `n` failures
|
||||
// bail: 0,
|
||||
|
||||
// The directory where Jest should store its cached dependency information
|
||||
// cacheDirectory: "/private/var/folders/yw/1x3cqgtd4wvg2m2w4pjv5ctm0000gn/T/jest_dx",
|
||||
|
||||
// Automatically clear mock calls and instances between every test
|
||||
// clearMocks: false,
|
||||
|
||||
// Indicates whether the coverage information should be collected while executing the test
|
||||
// collectCoverage: false,
|
||||
|
||||
// An array of glob patterns indicating a set of files for which coverage information should be collected
|
||||
// collectCoverageFrom: undefined,
|
||||
|
||||
// The directory where Jest should output its coverage files
|
||||
coverageDirectory: "coverage",
|
||||
|
||||
// An array of regexp pattern strings used to skip coverage collection
|
||||
coveragePathIgnorePatterns: ["/node_modules/"],
|
||||
|
||||
// Indicates which provider should be used to instrument code for coverage
|
||||
coverageProvider: "v8",
|
||||
|
||||
// A list of reporter names that Jest uses when writing coverage reports
|
||||
// coverageReporters: [
|
||||
// "json",
|
||||
// "text",
|
||||
// "lcov",
|
||||
// "clover"
|
||||
// ],
|
||||
|
||||
// An object that configures minimum threshold enforcement for coverage results
|
||||
// coverageThreshold: undefined,
|
||||
|
||||
// A path to a custom dependency extractor
|
||||
// dependencyExtractor: undefined,
|
||||
|
||||
// Make calling deprecated APIs throw helpful error messages
|
||||
// errorOnDeprecated: false,
|
||||
|
||||
// Force coverage collection from ignored files using an array of glob patterns
|
||||
// forceCoverageMatch: [],
|
||||
|
||||
// A path to a module which exports an async function that is triggered once before all test suites
|
||||
// globalSetup: undefined,
|
||||
|
||||
// A path to a module which exports an async function that is triggered once after all test suites
|
||||
// globalTeardown: undefined,
|
||||
|
||||
// A set of global variables that need to be available in all test environments
|
||||
// globals: {},
|
||||
|
||||
// The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers.
|
||||
// maxWorkers: "50%",
|
||||
|
||||
// An array of directory names to be searched recursively up from the requiring module's location
|
||||
// moduleDirectories: [
|
||||
// "node_modules"
|
||||
// ],
|
||||
|
||||
// An array of file extensions your modules use
|
||||
// moduleFileExtensions: [
|
||||
// "js",
|
||||
// "json",
|
||||
// "jsx",
|
||||
// "ts",
|
||||
// "tsx",
|
||||
// "node"
|
||||
// ],
|
||||
|
||||
// A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module
|
||||
// moduleNameMapper: {},
|
||||
|
||||
// An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
|
||||
// modulePathIgnorePatterns: [],
|
||||
|
||||
// Activates notifications for test results
|
||||
// notify: false,
|
||||
|
||||
// An enum that specifies notification mode. Requires { notify: true }
|
||||
// notifyMode: "failure-change",
|
||||
|
||||
// A preset that is used as a base for Jest's configuration
|
||||
// preset: undefined,
|
||||
|
||||
// Run tests from one or more projects
|
||||
// projects: undefined,
|
||||
|
||||
// Use this configuration option to add custom reporters to Jest
|
||||
// reporters: undefined,
|
||||
|
||||
// Automatically reset mock state between every test
|
||||
// resetMocks: false,
|
||||
|
||||
// Reset the module registry before running each individual test
|
||||
// resetModules: false,
|
||||
|
||||
// A path to a custom resolver
|
||||
// resolver: undefined,
|
||||
|
||||
// Automatically restore mock state between every test
|
||||
// restoreMocks: false,
|
||||
|
||||
// The root directory that Jest should scan for tests and modules within
|
||||
// rootDir: undefined,
|
||||
|
||||
// A list of paths to directories that Jest should use to search for files in
|
||||
// roots: [
|
||||
// "<rootDir>"
|
||||
// ],
|
||||
|
||||
// Allows you to use a custom runner instead of Jest's default test runner
|
||||
// runner: "jest-runner",
|
||||
|
||||
// The paths to modules that run some code to configure or set up the testing environment before each test
|
||||
// setupFiles: [],
|
||||
|
||||
// A list of paths to modules that run some code to configure or set up the testing framework before each test
|
||||
// setupFilesAfterEnv: [],
|
||||
|
||||
// The number of seconds after which a test is considered as slow and reported as such in the results.
|
||||
// slowTestThreshold: 5,
|
||||
|
||||
// A list of paths to snapshot serializer modules Jest should use for snapshot testing
|
||||
// snapshotSerializers: [],
|
||||
|
||||
// The test environment that will be used for testing
|
||||
testEnvironment: "node",
|
||||
|
||||
// Options that will be passed to the testEnvironment
|
||||
// testEnvironmentOptions: {},
|
||||
|
||||
// Adds a location field to test results
|
||||
// testLocationInResults: false,
|
||||
|
||||
// The glob patterns Jest uses to detect test files
|
||||
testMatch: [
|
||||
"**/__tests__/**/*.[jt]s?(x)",
|
||||
// "**/?(*.)+(spec|test).[tj]s?(x)"
|
||||
],
|
||||
|
||||
// An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
|
||||
// testPathIgnorePatterns: [
|
||||
// "/node_modules/"
|
||||
// ],
|
||||
|
||||
// The regexp pattern or array of patterns that Jest uses to detect test files
|
||||
// testRegex: [],
|
||||
|
||||
// This option allows the use of a custom results processor
|
||||
// testResultsProcessor: undefined,
|
||||
|
||||
// This option allows use of a custom test runner
|
||||
// testRunner: "jasmine2",
|
||||
|
||||
// This option sets the URL for the jsdom environment. It is reflected in properties such as location.href
|
||||
// testURL: "http://localhost",
|
||||
|
||||
// Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout"
|
||||
// timers: "real",
|
||||
|
||||
// A map from regular expressions to paths to transformers
|
||||
// transform: undefined,
|
||||
|
||||
// An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
|
||||
// transformIgnorePatterns: [
|
||||
// "/node_modules/",
|
||||
// "\\.pnp\\.[^\\/]+$"
|
||||
// ],
|
||||
|
||||
// An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them
|
||||
// unmockedModulePathPatterns: undefined,
|
||||
|
||||
// Indicates whether each individual test should be reported during the run
|
||||
// verbose: undefined,
|
||||
|
||||
// An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode
|
||||
// watchPathIgnorePatterns: [],
|
||||
|
||||
// Whether to use watchman for file crawling
|
||||
// watchman: true,
|
||||
};
|
11
api/jsconfig.json
Normal file
11
api/jsconfig.json
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"@util/*": ["./src/util/*"],
|
||||
"@middlewares/*": ["./src/middlewares/*"],
|
||||
"@schema/*": ["./src/schema/*"]
|
||||
}
|
||||
},
|
||||
"include": ["src"]
|
||||
}
|
18
api/locales/af/af
Normal file
18
api/locales/af/af
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/af/auth.json
Normal file
16
api/locales/af/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "E-Mail or Phone not found",
|
||||
"INVALID_PASSWORD": "Invalid Password",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "New user registration is disabled",
|
||||
"INVITE_ONLY": "You must be invited to register",
|
||||
"EMAIL_INVALID": "Invalid Email",
|
||||
"EMAIL_ALREADY_REGISTERED": "Email is already registered",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older",
|
||||
"CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.",
|
||||
"USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another"
|
||||
}
|
||||
}
|
18
api/locales/af/common.json
Normal file
18
api/locales/af/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be an object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unknown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
18
api/locales/ar/ar
Normal file
18
api/locales/ar/ar
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/ar/auth.json
Normal file
16
api/locales/ar/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "البريد الإلكتروني أو الهاتف غير موجود",
|
||||
"INVALID_PASSWORD": "كلمة المرور غير صالحة",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "تم تعطيل تسجيل المستخدم الجديد",
|
||||
"INVITE_ONLY": "يجب دعوتك للتسجيل",
|
||||
"EMAIL_INVALID": "البريد الإلكتروني خاطئ",
|
||||
"EMAIL_ALREADY_REGISTERED": "البريد الإلكتروني مسجل بالفعل",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "يجب أن تكون {{years}} سنة أو أكثر",
|
||||
"CONSENT_REQUIRED": "يجب أن توافق على شروط الخدمة وسياسة الخصوصية.",
|
||||
"USERNAME_TOO_MANY_USERS": "عدد كبير جدا من المستخدمين لديهم اسم المستخدم هذا، الرجاء محاولة اسم آخر"
|
||||
}
|
||||
}
|
18
api/locales/ar/common.json
Normal file
18
api/locales/ar/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "هذا الحقل مطلوب",
|
||||
"BASE_TYPE_STRING": "يجب أن يكون هذا الحقل سلسلة من الأحرف",
|
||||
"BASE_TYPE_NUMBER": "يجب أن يكون هذا الحقل رقم",
|
||||
"BASE_TYPE_BIGINT": "يجب أن يكون هذا الحقل أكبر",
|
||||
"BASE_TYPE_BOOLEAN": "يجب أن يكون هذا الحقل منطقيا",
|
||||
"BASE_TYPE_CHOICES": "يجب أن يكون هذا الحقل واحدا من ({{types}})",
|
||||
"BASE_TYPE_CLASS": "يجب أن يكون هذا الحقل مثيل {{type}}",
|
||||
"BASE_TYPE_OBJECT": "يجب أن يكون هذا الحقل كائناً",
|
||||
"BASE_TYPE_ARRAY": "يجب أن يكون هذا الحقل مصفوفة",
|
||||
"UNKOWN_FIELD": "مفتاح غير معروف: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "يجب أن يكون هذا الحقل {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "عنوان البريد الإلكتروني ليس مشكّل جيدا",
|
||||
"DATE_TYPE_PARSE": "لا يمكن تحليل {{date}}. يجب أن يكون ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "يجب أن يكون بين {{length}} في الطول"
|
||||
}
|
||||
}
|
16
api/locales/be/auth.json
Normal file
16
api/locales/be/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "Дадзены адрас электроннай пошты ці тэлефон не знойдзены",
|
||||
"INVALID_PASSWORD": "Няправільны пароль",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "Рэгістрацыя новага карыстальніка адключана",
|
||||
"INVITE_ONLY": "Вас павінны запрасіць, каб зарэгістравацца",
|
||||
"EMAIL_INVALID": "Няправільны адрас электроннай пошты",
|
||||
"EMAIL_ALREADY_REGISTERED": "Дадзены адрас электроннай пошты ўжо зарэгістраваны",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "Вам павінна быць не менш за {{years}} гадоў або больш",
|
||||
"CONSENT_REQUIRED": "Вы павінны пагадзіцца з Умовамі прадастаўлення паслуг і Палітыкай прыватнасці.",
|
||||
"USERNAME_TOO_MANY_USERS": "Занадта шмат карыстальнікаў маюць гэтае імя карыстальніка, калі ласка, паспрабуйце іншае"
|
||||
}
|
||||
}
|
18
api/locales/be/common.json
Normal file
18
api/locales/be/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "Гэта поле з'яўляецца абавязковым",
|
||||
"BASE_TYPE_STRING": "Гэта поле павінна быць string",
|
||||
"BASE_TYPE_NUMBER": "Гэта поле павінна быць number",
|
||||
"BASE_TYPE_BIGINT": "Гэта поле павінна быць bigint",
|
||||
"BASE_TYPE_BOOLEAN": "Гэта поле павінна быць boolean",
|
||||
"BASE_TYPE_CHOICES": "Гэта поле павінна быць адным з ({{types}})",
|
||||
"BASE_TYPE_CLASS": "Гэта поле павінна быць асобнікам {{type}}",
|
||||
"BASE_TYPE_OBJECT": "Гэта поле павінна быць аб'ектам",
|
||||
"BASE_TYPE_ARRAY": "Гэта поле павінна быць масівам",
|
||||
"UNKOWN_FIELD": "Невядомае поле: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "Гэта поле павінна быць {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Няправільны фармат адрасы электроннай пошты",
|
||||
"DATE_TYPE_PARSE": "Немагчыма разабраць {{date}}. Яна павінна быць у ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Павінна быць паміж {{length}} у даўжыню"
|
||||
}
|
||||
}
|
16
api/locales/bg/auth.json
Normal file
16
api/locales/bg/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "Невалиден имейл адрес или телефонен номер",
|
||||
"INVALID_PASSWORD": "Невалидна парола",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "Регистрацията на нов потребител е деактивирана",
|
||||
"INVITE_ONLY": "Вие трябва да бъдете поканени, за да можете да се регистрирате",
|
||||
"EMAIL_INVALID": "Невалиден имейл",
|
||||
"EMAIL_ALREADY_REGISTERED": "Имейлът вече е регистриран",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "Трябва да сте навършили {{years}} или повече години",
|
||||
"CONSENT_REQUIRED": "Трябва да се съгласите с Общите условия и Политиката за поверителност.",
|
||||
"USERNAME_TOO_MANY_USERS": "Твърде много потребители имат това потребителско име, моля опитайте друго"
|
||||
}
|
||||
}
|
18
api/locales/bg/common.json
Normal file
18
api/locales/bg/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "Това поле е задължително",
|
||||
"BASE_TYPE_STRING": "Това поле трябва да е низ",
|
||||
"BASE_TYPE_NUMBER": "Това поле трябва да е число",
|
||||
"BASE_TYPE_BIGINT": "Това поле трябва да е голямо",
|
||||
"BASE_TYPE_BOOLEAN": "Това поле трябва да бъде булево",
|
||||
"BASE_TYPE_CHOICES": "Това поле трябва да бъде едно от ({{types}})",
|
||||
"BASE_TYPE_CLASS": "Това поле трябва да бъде екземпляр на {{type}}",
|
||||
"BASE_TYPE_OBJECT": "Това поле трябва да бъде обект",
|
||||
"BASE_TYPE_ARRAY": "Това поле трябва да бъде масив",
|
||||
"UNKOWN_FIELD": "Непознат ключ: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "Това поле трябва да е {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Невалиден имейл адрес",
|
||||
"DATE_TYPE_PARSE": "Не може да се анализира {{date}}. Трябва да е ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Трябва да е с дължина между {{length}}"
|
||||
}
|
||||
}
|
16
api/locales/ca/auth.json
Normal file
16
api/locales/ca/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "E-Mail or Phone not found",
|
||||
"INVALID_PASSWORD": "Invalid Password",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "New user registration is disabled",
|
||||
"INVITE_ONLY": "You must be invited to register",
|
||||
"EMAIL_INVALID": "Invalid Email",
|
||||
"EMAIL_ALREADY_REGISTERED": "Email is already registered",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older",
|
||||
"CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.",
|
||||
"USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another"
|
||||
}
|
||||
}
|
18
api/locales/ca/ca
Normal file
18
api/locales/ca/ca
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
18
api/locales/ca/common.json
Normal file
18
api/locales/ca/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be an object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unknown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/cs/auth.json
Normal file
16
api/locales/cs/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "E-Mail nebo telefon nenalezen",
|
||||
"INVALID_PASSWORD": "Neplatné heslo",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "Registrace nového uživatele je zakázána",
|
||||
"INVITE_ONLY": "Musíte být pozváni k registraci",
|
||||
"EMAIL_INVALID": "Invalid Email",
|
||||
"EMAIL_ALREADY_REGISTERED": "E-mail je již registrován",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "Musíš být {{years}} let nebo starší",
|
||||
"CONSENT_REQUIRED": "Musíte souhlasit s obchodními podmínkami a zásadami ochrany osobních údajů.",
|
||||
"USERNAME_TOO_MANY_USERS": "Příliš mnoho uživatelů má toto uživatelské jméno, zkuste prosím jiné"
|
||||
}
|
||||
}
|
18
api/locales/cs/common.json
Normal file
18
api/locales/cs/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "Toto pole je povinné",
|
||||
"BASE_TYPE_STRING": "Toto pole musí být řetězec",
|
||||
"BASE_TYPE_NUMBER": "Toto pole musí být číslo",
|
||||
"BASE_TYPE_BIGINT": "Toto pole musí být velké",
|
||||
"BASE_TYPE_BOOLEAN": "Toto pole musí být logická hodnota",
|
||||
"BASE_TYPE_CHOICES": "Toto pole musí být jedno z ({{types}})",
|
||||
"BASE_TYPE_CLASS": "Toto pole musí být instancí {{type}}",
|
||||
"BASE_TYPE_OBJECT": "Toto pole musí být objekt",
|
||||
"BASE_TYPE_ARRAY": "Toto pole musí být pole",
|
||||
"UNKOWN_FIELD": "Neznámý klíč: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "Toto pole musí být {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Není dobře vytvořená e-mailová adresa",
|
||||
"DATE_TYPE_PARSE": "Nelze naparsovat {{date}}. Mělo by být ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Musí být mezi {{length}} délkou"
|
||||
}
|
||||
}
|
18
api/locales/cs/cs
Normal file
18
api/locales/cs/cs
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/da/auth.json
Normal file
16
api/locales/da/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "E-mail eller telefon ikke fundet",
|
||||
"INVALID_PASSWORD": "Ugyldig Adgangskode",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "Ny brugerregistrering er deaktiveret",
|
||||
"INVITE_ONLY": "Du skal inviteres til at registrere dig",
|
||||
"EMAIL_INVALID": "Invalid Email",
|
||||
"EMAIL_ALREADY_REGISTERED": "E-mail er allerede registreret",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "Du skal være {{years}} år eller ældre",
|
||||
"CONSENT_REQUIRED": "Du skal acceptere Servicevilkår og privatlivspolitik.",
|
||||
"USERNAME_TOO_MANY_USERS": "For mange brugere har dette brugernavn, prøv venligst et andet"
|
||||
}
|
||||
}
|
18
api/locales/da/common.json
Normal file
18
api/locales/da/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "Dette felt er påkrævet",
|
||||
"BASE_TYPE_STRING": "Dette felt skal være en streng",
|
||||
"BASE_TYPE_NUMBER": "Dette felt skal være et tal",
|
||||
"BASE_TYPE_BIGINT": "Dette felt skal være en bigint",
|
||||
"BASE_TYPE_BOOLEAN": "Dette felt skal være en boolsk",
|
||||
"BASE_TYPE_CHOICES": "Dette felt skal være et af ({{types}})",
|
||||
"BASE_TYPE_CLASS": "Dette felt skal være en instans på {{type}}",
|
||||
"BASE_TYPE_OBJECT": "Dette felt skal være et objekt",
|
||||
"BASE_TYPE_ARRAY": "Dette felt skal være et array",
|
||||
"UNKOWN_FIELD": "Ukendt nøgle: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "Dette felt skal være {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Ikke en velformet e-mailadresse",
|
||||
"DATE_TYPE_PARSE": "Kunne ikke fortolke {{date}}. Bør være ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Skal være mellem {{length}} i længden"
|
||||
}
|
||||
}
|
15
api/locales/da/da
Normal file
15
api/locales/da/da
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "E-Mail or Phone not found",
|
||||
"INVALID_PASSWORD": "Invalid Password"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "New user registration is disabled",
|
||||
"INVITE_ONLY": "You must be invited to register",
|
||||
"EMAIL_INVALID": "Invalid Email",
|
||||
"EMAIL_ALREADY_REGISTERED": "Email is already registered",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older",
|
||||
"CONSENT_REQUIRED": "You must agree to Terms of Service and Privacy Policy.",
|
||||
"USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another"
|
||||
}
|
||||
}
|
16
api/locales/de/auth.json
Normal file
16
api/locales/de/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "E-Mail oder Telefonnummer nicht gefunden",
|
||||
"INVALID_PASSWORD": "Ungültiges Passwort",
|
||||
"ACCOUNT_DISABLED": "Dieses Konto ist gesperrt"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "Die Registrierung ist deaktiviert",
|
||||
"INVITE_ONLY": "Du musst eingeladen werden, um dich zu registrieren",
|
||||
"EMAIL_INVALID": "Ungültige E-Mail-Adresse",
|
||||
"EMAIL_ALREADY_REGISTERED": "Die E-Mail-Adresse wird bereits verwendet",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "Du musst mindestens {{years}} Jahre oder älter sein",
|
||||
"CONSENT_REQUIRED": "Du musst den Nutzungsbedingungen und den Datenschutzbestimmungen zustimmen.",
|
||||
"USERNAME_TOO_MANY_USERS": "Zu viele Benutzer haben bereits diesen Benutzernamen, bitte wähle einen anderen"
|
||||
}
|
||||
}
|
18
api/locales/de/common.json
Normal file
18
api/locales/de/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "Dieses Feld ist erforderlich",
|
||||
"BASE_TYPE_STRING": "Dieses Feld muss ein String sein",
|
||||
"BASE_TYPE_NUMBER": "Dieses Feld muss eine Zahl sein",
|
||||
"BASE_TYPE_BIGINT": "Dieses Feld muss ein bigint sein",
|
||||
"BASE_TYPE_BOOLEAN": "Dieses Feld muss ein boolean sein",
|
||||
"BASE_TYPE_CHOICES": "Dieses Feld muss eines von ({{types}}) sein",
|
||||
"BASE_TYPE_CLASS": "Dieses Feld muss {{type}} sein",
|
||||
"BASE_TYPE_OBJECT": "Dieses Feld muss ein Objekt sein",
|
||||
"BASE_TYPE_ARRAY": "Dieses Feld muss ein Array sein",
|
||||
"UNKOWN_FIELD": "Unbekanntes Feld: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "Dieses Feld muss {{value}} sein",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Keine gültige E-Mail-Adresse",
|
||||
"DATE_TYPE_PARSE": "Konnte {{date}} nicht lesen. Muss ISO8601 entsprechen",
|
||||
"BASE_TYPE_BAD_LENGTH": "Muss zwischen {{length}} lang sein"
|
||||
}
|
||||
}
|
18
api/locales/de/de
Normal file
18
api/locales/de/de
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/el/auth.json
Normal file
16
api/locales/el/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "Το e-mail ή το τηλέφωνο δεν βρέθηκε",
|
||||
"INVALID_PASSWORD": "Μη Έγκυρος Κωδικός",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "Η εγγραφή νέου χρήστη είναι απενεργοποιημένη",
|
||||
"INVITE_ONLY": "Πρέπει να προσκληθείτε να εγγραφείτε",
|
||||
"EMAIL_INVALID": "Invalid Email",
|
||||
"EMAIL_ALREADY_REGISTERED": "Το email έχει ήδη καταχωρηθεί",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "Πρέπει να είστε {{years}} ετών ή μεγαλύτεροι",
|
||||
"CONSENT_REQUIRED": "Πρέπει να συμφωνήσετε με τους Όρους Παροχής Υπηρεσιών και την Πολιτική Απορρήτου.",
|
||||
"USERNAME_TOO_MANY_USERS": "Πάρα πολλοί χρήστες έχουν αυτό το όνομα χρήστη, παρακαλώ δοκιμάστε ένα άλλο"
|
||||
}
|
||||
}
|
18
api/locales/el/common.json
Normal file
18
api/locales/el/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "Αυτό το πεδίο είναι υποχρεωτικό",
|
||||
"BASE_TYPE_STRING": "Αυτό το πεδίο πρέπει να είναι μια συμβολοσειρά",
|
||||
"BASE_TYPE_NUMBER": "Αυτό το πεδίο πρέπει να είναι αριθμός",
|
||||
"BASE_TYPE_BIGINT": "Αυτό το πεδίο πρέπει να είναι μεγαλοπρεπής",
|
||||
"BASE_TYPE_BOOLEAN": "Αυτό το πεδίο πρέπει να είναι boolean",
|
||||
"BASE_TYPE_CHOICES": "Αυτό το πεδίο πρέπει να είναι ένα από{{types}})",
|
||||
"BASE_TYPE_CLASS": "Αυτό το πεδίο πρέπει να είναι ένα παράδειγμα {{type}}",
|
||||
"BASE_TYPE_OBJECT": "Αυτό το πεδίο πρέπει να είναι αντικείμενο",
|
||||
"BASE_TYPE_ARRAY": "Αυτό το πεδίο πρέπει να είναι ένας πίνακας",
|
||||
"UNKOWN_FIELD": "Άγνωστο κλειδί: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "Αυτό το πεδίο πρέπει να είναι {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Δεν είναι καλά σχηματισμένη διεύθυνση ηλεκτρονικού ταχυδρομείου",
|
||||
"DATE_TYPE_PARSE": "Αδυναμία ανάλυσης του {{date}}. Πρέπει να είναι ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Πρέπει να είναι μεταξύ {{length}} σε μήκος"
|
||||
}
|
||||
}
|
18
api/locales/el/el
Normal file
18
api/locales/el/el
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/en/auth.json
Normal file
16
api/locales/en/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "E-Mail or Phone not found",
|
||||
"INVALID_PASSWORD": "Invalid Password",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "New user registration is disabled",
|
||||
"INVITE_ONLY": "You must be invited to register",
|
||||
"EMAIL_INVALID": "Invalid Email",
|
||||
"EMAIL_ALREADY_REGISTERED": "Email is already registered",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older",
|
||||
"CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.",
|
||||
"USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another"
|
||||
}
|
||||
}
|
18
api/locales/en/common.json
Normal file
18
api/locales/en/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be an object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unknown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
18
api/locales/en/en
Normal file
18
api/locales/en/en
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/eo/auth.json
Normal file
16
api/locales/eo/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "E-Mail aŭ Telefonnumero ne trovis",
|
||||
"INVALID_PASSWORD": "Pasfrazo ne validas",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "Nova uzanta reĝistro estas malebligita",
|
||||
"INVITE_ONLY": "Vi devas esti invitita de iu membro",
|
||||
"EMAIL_INVALID": "Retpoŝto ne estas valida",
|
||||
"EMAIL_ALREADY_REGISTERED": "Tiu retpoŝto estas jam registrita",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "Vi povas esti {{years}} jaroj aŭ pli aĝa",
|
||||
"CONSENT_REQUIRED": "Vi devi konsenti Kondiĉo de Servo kaj Politiko de privateco.",
|
||||
"USERNAME_TOO_MANY_USERS": "Pli multaj uzantoj havas tiu salutnomo, bonvolu provi ankoraŭ"
|
||||
}
|
||||
}
|
18
api/locales/eo/common.json
Normal file
18
api/locales/eo/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "Tio kampo estas bezona",
|
||||
"BASE_TYPE_STRING": "Tio kampo devas string",
|
||||
"BASE_TYPE_NUMBER": "Tio kampo devas numbero",
|
||||
"BASE_TYPE_BIGINT": "Tio kampo devas bigint",
|
||||
"BASE_TYPE_BOOLEAN": "Tio kampo devas bulea",
|
||||
"BASE_TYPE_CHOICES": "Tio kampo devas unu de ({{types}})",
|
||||
"BASE_TYPE_CLASS": "Tio kampo devas kazo de {{type}}",
|
||||
"BASE_TYPE_OBJECT": "Tio kampo devas objekto",
|
||||
"BASE_TYPE_ARRAY": "Tio kampo devas tabelo",
|
||||
"UNKOWN_FIELD": "Nekonata ŝlosilo: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "Tio kampo devas {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Formado de retpoŝto estas nevalida",
|
||||
"DATE_TYPE_PARSE": "Nevalida dato {{date}}. Devas ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Devas sub {{length}} en longo"
|
||||
}
|
||||
}
|
16
api/locales/es/auth.json
Normal file
16
api/locales/es/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "E-Mail o teléfono no encontrado",
|
||||
"INVALID_PASSWORD": "Contraseña Incorrecta",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "El registro de un nuevo usuario no se encuentra habilitado",
|
||||
"INVITE_ONLY": "Tenés que ser invitado para poder registrarte",
|
||||
"EMAIL_INVALID": "Email inválido",
|
||||
"EMAIL_ALREADY_REGISTERED": "Este E-mail ya está registrado",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "Necesitas tener {{years}} años o más",
|
||||
"CONSENT_REQUIRED": "Tenés que aceptar los Términos de Servicio y la Política de Privacidad.",
|
||||
"USERNAME_TOO_MANY_USERS": "Demasiados usuarios tienen este nombre de usuario, por favor intente con otro"
|
||||
}
|
||||
}
|
18
api/locales/es/common.json
Normal file
18
api/locales/es/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "Este campo es obligatorio",
|
||||
"BASE_TYPE_STRING": "Este campo debe ser un texto",
|
||||
"BASE_TYPE_NUMBER": "Este campo debe ser un número",
|
||||
"BASE_TYPE_BIGINT": "Este campo debe ser un tamaño grande",
|
||||
"BASE_TYPE_BOOLEAN": "Este campo debe ser un boolean",
|
||||
"BASE_TYPE_CHOICES": "Este campo debe ser uno de ({{types}})",
|
||||
"BASE_TYPE_CLASS": "Este campo debe ser una instancia de {{type}}",
|
||||
"BASE_TYPE_OBJECT": "Este campo debe ser un objeto",
|
||||
"BASE_TYPE_ARRAY": "Este campo debe ser una matriz",
|
||||
"UNKOWN_FIELD": "Clave desconocida: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "Este campo debe ser {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "No es una dirección de email bien formada",
|
||||
"DATE_TYPE_PARSE": "No se pudo analizar {{date}}. Debe ser ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Debe estar entre {{length}} de longitud"
|
||||
}
|
||||
}
|
18
api/locales/es/es
Normal file
18
api/locales/es/es
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/fi/auth.json
Normal file
16
api/locales/fi/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "Sähköpostia tai puhelinta ei löydy",
|
||||
"INVALID_PASSWORD": "Virheellinen Salasana",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "Uuden käyttäjän rekisteröinti pois käytöstä",
|
||||
"INVITE_ONLY": "Sinut on kutsuttava rekisteröitymään",
|
||||
"EMAIL_INVALID": "Invalid Email",
|
||||
"EMAIL_ALREADY_REGISTERED": "Sähköposti on jo rekisteröity",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "Sinun täytyy olla {{years}} vuotta tai vanhempi",
|
||||
"CONSENT_REQUIRED": "Sinun on hyväksyttävä käyttöehdot ja tietosuojakäytäntö.",
|
||||
"USERNAME_TOO_MANY_USERS": "Liian monilla käyttäjillä on tämä käyttäjänimi, yritä toista"
|
||||
}
|
||||
}
|
18
api/locales/fi/common.json
Normal file
18
api/locales/fi/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "Tämä kenttä on pakollinen",
|
||||
"BASE_TYPE_STRING": "Tämän kentän on oltava merkkijono",
|
||||
"BASE_TYPE_NUMBER": "Tämän kentän on oltava numero",
|
||||
"BASE_TYPE_BIGINT": "Tämän kentän on oltava isoin",
|
||||
"BASE_TYPE_BOOLEAN": "Tämän kentän on oltava totuus",
|
||||
"BASE_TYPE_CHOICES": "Tämän kentän on oltava yksi ({{types}})",
|
||||
"BASE_TYPE_CLASS": "Tämän kentän on oltava {{type}} instanssi",
|
||||
"BASE_TYPE_OBJECT": "Tämän kentän on oltava objekti",
|
||||
"BASE_TYPE_ARRAY": "Tämän kentän on oltava array",
|
||||
"UNKOWN_FIELD": "Tuntematon avain: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "Tämän kentän on oltava {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Sähköpostiosoite ei ole hyvin muodostettu",
|
||||
"DATE_TYPE_PARSE": "Ei voitu jäsentää {{date}}. Pitäisi olla ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Pituuden on oltava välillä {{length}}"
|
||||
}
|
||||
}
|
18
api/locales/fi/fi
Normal file
18
api/locales/fi/fi
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/fr/auth.json
Normal file
16
api/locales/fr/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "E-Mail ou Téléphone introuvable",
|
||||
"INVALID_PASSWORD": "Mot de passe invalide",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "L'inscription aux nouveaux utilisateurs est désactivée",
|
||||
"INVITE_ONLY": "Vous devez être invité à s'inscrire",
|
||||
"EMAIL_INVALID": "Adresse e-mail invalide",
|
||||
"EMAIL_ALREADY_REGISTERED": "L'adresse e-mail est déjà enregistrée",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "Vous devez avoir {{years}} ans ou plus",
|
||||
"CONSENT_REQUIRED": "Vous devez accepter les conditions d'utilisation et la politique de confidentialité.",
|
||||
"USERNAME_TOO_MANY_USERS": "Trop d'utilisateurs ont ce nom d'utilisateur, veuillez en essayer un autre"
|
||||
}
|
||||
}
|
18
api/locales/fr/common.json
Normal file
18
api/locales/fr/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "Ce champ est obligatoire",
|
||||
"BASE_TYPE_STRING": "Ce champ doit être une chaîne de caractères",
|
||||
"BASE_TYPE_NUMBER": "Ce champ doit être un nombre",
|
||||
"BASE_TYPE_BIGINT": "Ce champ doit être un bigint",
|
||||
"BASE_TYPE_BOOLEAN": "Ce champ doit être un boolean",
|
||||
"BASE_TYPE_CHOICES": "Ce champ doit être l'un des ({{types}})",
|
||||
"BASE_TYPE_CLASS": "Ce champ doit être une instance de {{type}}",
|
||||
"BASE_TYPE_OBJECT": "Ce champ doit être un objet",
|
||||
"BASE_TYPE_ARRAY": "Ce champ doit être un tableau",
|
||||
"UNKOWN_FIELD": "Clé inconnue: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "Ce champ doit être {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Adresse e-mail mal formaté",
|
||||
"DATE_TYPE_PARSE": "Impossible d'analyser {{date}}. Doit être ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Doit être entre {{length}} de longueur"
|
||||
}
|
||||
}
|
18
api/locales/fr/fr
Normal file
18
api/locales/fr/fr
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/he/auth.json
Normal file
16
api/locales/he/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "E-Mail or Phone not found",
|
||||
"INVALID_PASSWORD": "Invalid Password",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "New user registration is disabled",
|
||||
"INVITE_ONLY": "You must be invited to register",
|
||||
"EMAIL_INVALID": "Invalid Email",
|
||||
"EMAIL_ALREADY_REGISTERED": "Email is already registered",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older",
|
||||
"CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.",
|
||||
"USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another"
|
||||
}
|
||||
}
|
18
api/locales/he/common.json
Normal file
18
api/locales/he/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be an object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unknown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
18
api/locales/he/he
Normal file
18
api/locales/he/he
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/hi/auth.json
Normal file
16
api/locales/hi/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "ईमेल या फ़ोन नहीं मिला",
|
||||
"INVALID_PASSWORD": "अमान्य पासवर्ड",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "नया उपयोगकर्ता पंजीकरण अक्षम है",
|
||||
"INVITE_ONLY": "आपको पंजीकरण के लिए आमंत्रण किया गया है",
|
||||
"EMAIL_INVALID": "अमान्य ई-मेल",
|
||||
"EMAIL_ALREADY_REGISTERED": "ईमेल पहले से ही पंजीकृत है.",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "आपकी उम्र [[years]] वर्ष होनी चाहिए",
|
||||
"CONSENT_REQUIRED": "आपको सेवाओं और गोपनीयता नीति से सहमत होना होगा",
|
||||
"USERNAME_TOO_MANY_USERS": "बहुत से उपयोगकर्ताओं के पास यह उपयोगकर्ता नाम है, कृपया दूसरा प्रयास करें"
|
||||
}
|
||||
}
|
18
api/locales/hi/common.json
Normal file
18
api/locales/hi/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "यह फ़ील्ड आवश्यक है",
|
||||
"BASE_TYPE_STRING": "यह फ़ील्ड एक स्ट्रिंग होनी चाहिए",
|
||||
"BASE_TYPE_NUMBER": "यह फ़ील्ड एक संख्या होनी चाहिए",
|
||||
"BASE_TYPE_BIGINT": "यह फ़ील्ड एक बिगिन्ट होनी चाहिए",
|
||||
"BASE_TYPE_BOOLEAN": "यह फ़ील्ड एक बूलियन होनी चाहिए",
|
||||
"BASE_TYPE_CHOICES": "यह फ़ील्ड एक प्रकार का [[[types]]] होना चाहिए",
|
||||
"BASE_TYPE_CLASS": "यह फ़ील्ड एक प्रकार का [[[types]]] होना चाहिए",
|
||||
"BASE_TYPE_OBJECT": "यह फ़ील्ड एक ऑब्जेक्ट होनी चाहिए",
|
||||
"BASE_TYPE_ARRAY": "यह फ़ील्ड एक ऐरे होनी चाहिए",
|
||||
"UNKOWN_FIELD": "अज्ञात कुंजी: [[key]]",
|
||||
"BASE_TYPE_CONSTANT": "यह क्षेत्र {{value}} होना चाहिए",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "खराब ईमेल एड्रेस",
|
||||
"DATE_TYPE_PARSE": "{{date}} की पदव्याख्या नहीं हो पाई है। ISO8601 होना चाहिए",
|
||||
"BASE_TYPE_BAD_LENGTH": "लंबाई {{length}} के बीच में होनी चाहिए"
|
||||
}
|
||||
}
|
18
api/locales/hi/hi
Normal file
18
api/locales/hi/hi
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/hr/auth.json
Normal file
16
api/locales/hr/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "Email ili broj mobitela nije pronađen",
|
||||
"INVALID_PASSWORD": "Pogrešna lozinka",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "Registracija novog korisnika je onemogućena",
|
||||
"INVITE_ONLY": "Morate biti pozvani da se registrirate",
|
||||
"EMAIL_INVALID": "Nevažeći email",
|
||||
"EMAIL_ALREADY_REGISTERED": "Email je već registriran",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "Morate imati {{years}} godina ili više",
|
||||
"CONSENT_REQUIRED": "Morate se složiti s uvjetima pružanja usluge i pravila o privatnosti.",
|
||||
"USERNAME_TOO_MANY_USERS": "Previše korisnika ima ovo korisničko ime, molimo vas da pokušate sa drugim"
|
||||
}
|
||||
}
|
18
api/locales/hr/common.json
Normal file
18
api/locales/hr/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "Ovo polje je obavezno",
|
||||
"BASE_TYPE_STRING": "Ovo polje mora biti niz",
|
||||
"BASE_TYPE_NUMBER": "Ovo polje mora biti broj",
|
||||
"BASE_TYPE_BIGINT": "Ovo polje mora biti bigint",
|
||||
"BASE_TYPE_BOOLEAN": "Ovo polje mora biti boolean",
|
||||
"BASE_TYPE_CHOICES": "Ovo polje mora biti jedno od ({{types}})",
|
||||
"BASE_TYPE_CLASS": "Ovo polje mora biti primjer od {{type}}",
|
||||
"BASE_TYPE_OBJECT": "Ovo polje mora biti objekt",
|
||||
"BASE_TYPE_ARRAY": "Ovo polje mora biti niz",
|
||||
"UNKOWN_FIELD": "Nepoznati ključ: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "Ovo polje mora biti {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Nije dobro oblikovana Email adresa",
|
||||
"DATE_TYPE_PARSE": "Nije moguće raščlaniti {{date}}. Treba biti ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Mora biti između {{length}} u duljini"
|
||||
}
|
||||
}
|
16
api/locales/hu/auth.json
Normal file
16
api/locales/hu/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "Nincs ilyen E-Mail vagy Telefon",
|
||||
"INVALID_PASSWORD": "Érvénytelen jelszó",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "Új felhasználók regisztrációja nem engedélyezett",
|
||||
"INVITE_ONLY": "Csak meghívottak regisztrálhatnak",
|
||||
"EMAIL_INVALID": "Érvénytelen Email",
|
||||
"EMAIL_ALREADY_REGISTERED": "Az Email már regisztrálva van",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "{{years}} éves vagy idősebbnek kell lenned",
|
||||
"CONSENT_REQUIRED": "El kell fogadnod a Felhasználási Feltételeket és az Adatvédelmi Nyilatkozatot.",
|
||||
"USERNAME_TOO_MANY_USERS": "Túl sok felhasználó használja ezt a nevet, kérlek próbálj egy másikat"
|
||||
}
|
||||
}
|
18
api/locales/hu/common.json
Normal file
18
api/locales/hu/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "Ez a mező kötelező",
|
||||
"BASE_TYPE_STRING": "Ennek a mezőnek string-nek kell lennie",
|
||||
"BASE_TYPE_NUMBER": "Ennek a mezőnek számnak kell lennie",
|
||||
"BASE_TYPE_BIGINT": "Ennek a mezőnek bigint-nek kell lennie",
|
||||
"BASE_TYPE_BOOLEAN": "Ennek a mezőnek boolean-nek kell lennie",
|
||||
"BASE_TYPE_CHOICES": "Ennek a mezőnek {{types}} típusúnak kell lennie",
|
||||
"BASE_TYPE_CLASS": "Ennek a mezőnek {{type}} típusúnak kell lennie",
|
||||
"BASE_TYPE_OBJECT": "Ennek a mezőnek object-nek kell lennie",
|
||||
"BASE_TYPE_ARRAY": "Ennek a mezőnek array-nek kell lennie",
|
||||
"UNKOWN_FIELD": "Ismeretlen kulcs: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "A mezőnek {{value}} kell lennie",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Nem jól megformázott email cím",
|
||||
"DATE_TYPE_PARSE": "Nem sikerült elemezni {{date}}. ISO8901-nak kéne lennie",
|
||||
"BASE_TYPE_BAD_LENGTH": "{{length}} között kell lennie hosszban"
|
||||
}
|
||||
}
|
18
api/locales/hu/hu
Normal file
18
api/locales/hu/hu
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/id/auth.json
Normal file
16
api/locales/id/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "E-Mail or Phone not found",
|
||||
"INVALID_PASSWORD": "Invalid Password",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "New user registration is disabled",
|
||||
"INVITE_ONLY": "You must be invited to register",
|
||||
"EMAIL_INVALID": "Invalid Email",
|
||||
"EMAIL_ALREADY_REGISTERED": "Email is already registered",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older",
|
||||
"CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.",
|
||||
"USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another"
|
||||
}
|
||||
}
|
18
api/locales/id/common.json
Normal file
18
api/locales/id/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be an object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unknown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/it/auth.json
Normal file
16
api/locales/it/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "E-Mail o numero di telefono non trovato",
|
||||
"INVALID_PASSWORD": "Password Non Valida",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "La registrazione di nuovi utenti è disabilitata",
|
||||
"INVITE_ONLY": "Devi essere stato invitato per registrarti",
|
||||
"EMAIL_INVALID": "Indirizzo e-mail non valido",
|
||||
"EMAIL_ALREADY_REGISTERED": "Email già registrata",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "Devi avere almeno {{years}} anni",
|
||||
"CONSENT_REQUIRED": "È necessario accettare i Termini di Servizio e l'Informativa sulla privacy.",
|
||||
"USERNAME_TOO_MANY_USERS": "Troppi utenti hanno questo nickname, per favore provane un altro"
|
||||
}
|
||||
}
|
18
api/locales/it/common.json
Normal file
18
api/locales/it/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "Questo campo è obbligatorio",
|
||||
"BASE_TYPE_STRING": "Questo campo deve essere una stringa",
|
||||
"BASE_TYPE_NUMBER": "Questo campo deve essere un numero",
|
||||
"BASE_TYPE_BIGINT": "Questo campo deve essere un numero intero",
|
||||
"BASE_TYPE_BOOLEAN": "Questo campo deve essere un numero booleano",
|
||||
"BASE_TYPE_CHOICES": "Questo campo deve essere uno di ({{types}})",
|
||||
"BASE_TYPE_CLASS": "Questo campo deve essere un'istanza di {{type}}",
|
||||
"BASE_TYPE_OBJECT": "Questo campo deve essere un oggetto",
|
||||
"BASE_TYPE_ARRAY": "Questo campo deve essere un array",
|
||||
"UNKOWN_FIELD": "Chiave non riconosciuta: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "Questo campo deve essere {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Questo indirizzo e-mail non è in un formato valido",
|
||||
"DATE_TYPE_PARSE": "Impossibile analizzare {{date}}. Dovrebbe essere ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Deve essere compreso tra {{length}} in lunghezza"
|
||||
}
|
||||
}
|
18
api/locales/it/it
Normal file
18
api/locales/it/it
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/ja/auth.json
Normal file
16
api/locales/ja/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "メールまたは電話が見つかりません",
|
||||
"INVALID_PASSWORD": "無効なパスワード",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "新しいユーザー登録は無効です",
|
||||
"INVITE_ONLY": "登録するには招待する必要があります",
|
||||
"EMAIL_INVALID": "Invalid Email",
|
||||
"EMAIL_ALREADY_REGISTERED": "メールアドレスは既に登録されています",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "{{years}} 歳以上である必要があります",
|
||||
"CONSENT_REQUIRED": "利用規約およびプライバシーポリシーに同意する必要があります。",
|
||||
"USERNAME_TOO_MANY_USERS": "このユーザー名を持つユーザーが多すぎます。別のユーザーをお試しください。"
|
||||
}
|
||||
}
|
18
api/locales/ja/common.json
Normal file
18
api/locales/ja/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "このフィールドは必須項目です",
|
||||
"BASE_TYPE_STRING": "このフィールドは文字列でなければなりません",
|
||||
"BASE_TYPE_NUMBER": "このフィールドは数値でなければなりません",
|
||||
"BASE_TYPE_BIGINT": "このフィールドはbigintでなければなりません",
|
||||
"BASE_TYPE_BOOLEAN": "このフィールドはブール値でなければなりません",
|
||||
"BASE_TYPE_CHOICES": "このフィールドは ({{types}} ) のいずれかでなければなりません",
|
||||
"BASE_TYPE_CLASS": "このフィールドは {{type}} のインスタンスでなければなりません",
|
||||
"BASE_TYPE_OBJECT": "このフィールドはオブジェクトでなければなりません",
|
||||
"BASE_TYPE_ARRAY": "このフィールドは配列でなければなりません",
|
||||
"UNKOWN_FIELD": "不明なキー: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "このフィールドは {{value}} でなければなりません",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "メールアドレスが正しくありません",
|
||||
"DATE_TYPE_PARSE": "{{date}}を解析できませんでした。ISO8601である必要があります",
|
||||
"BASE_TYPE_BAD_LENGTH": "{{length}} 以内でなければなりません"
|
||||
}
|
||||
}
|
18
api/locales/ja/ja
Normal file
18
api/locales/ja/ja
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/ko/auth.json
Normal file
16
api/locales/ko/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "이메일 또는 전화번호를 찾을 수 없습니다",
|
||||
"INVALID_PASSWORD": "비밀번호가 틀렸습니다",
|
||||
"ACCOUNT_DISABLED": "이 계정은 비활성화되었습니다"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "신규 사용자의 등록이 비활성화되었습니다",
|
||||
"INVITE_ONLY": "초대받은 사람만 가입할 수 있습니다",
|
||||
"EMAIL_INVALID": "이메일이 유효하지 않습니다",
|
||||
"EMAIL_ALREADY_REGISTERED": "이미 등록된 이메일입니다",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "최소 {{years}} 이상이어야 합니다",
|
||||
"CONSENT_REQUIRED": "서비스 약관 및 개인정보 취급방침에 동의하셔야 합니다.",
|
||||
"USERNAME_TOO_MANY_USERS": "이 사용자명을 쓰는 사용자가 너무 많습니다. 다른 사용자명을 시도하세요"
|
||||
}
|
||||
}
|
18
api/locales/ko/common.json
Normal file
18
api/locales/ko/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "필수로 기입해야 합니다",
|
||||
"BASE_TYPE_STRING": "문자열을 입력해야 합니다",
|
||||
"BASE_TYPE_NUMBER": "숫자를 입력해야 합니다",
|
||||
"BASE_TYPE_BIGINT": "bigint를 입력해야 합니다",
|
||||
"BASE_TYPE_BOOLEAN": "논리값을 입력해야 합니다",
|
||||
"BASE_TYPE_CHOICES": "값의 유형이 ({{types}}) 중 하나여야 합니다",
|
||||
"BASE_TYPE_CLASS": "값의 유형이 {{type}}(이)여야 합니다",
|
||||
"BASE_TYPE_OBJECT": "객체를 입력해야 합니다",
|
||||
"BASE_TYPE_ARRAY": "배열을 입력해야 합니다",
|
||||
"UNKOWN_FIELD": "알 수 없는 키: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "{{value}}(을)를 입력해야 합니다",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "올바른 이메일 주소 형식이 아닙니다",
|
||||
"DATE_TYPE_PARSE": "{{date}} 형식을 분석할 수 없습니다. ISO8601을 따라야 합니다",
|
||||
"BASE_TYPE_BAD_LENGTH": "길이가 {{length}} 사이여야 합니다"
|
||||
}
|
||||
}
|
15
api/locales/ko/ko
Normal file
15
api/locales/ko/ko
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "E-Mail or Phone not found",
|
||||
"INVALID_PASSWORD": "Invalid Password"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "New user registration is disabled",
|
||||
"INVITE_ONLY": "You must be invited to register",
|
||||
"EMAIL_INVALID": "Invalid Email",
|
||||
"EMAIL_ALREADY_REGISTERED": "Email is already registered",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older",
|
||||
"CONSENT_REQUIRED": "You must agree to Terms of Service and Privacy Policy.",
|
||||
"USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another"
|
||||
}
|
||||
}
|
16
api/locales/lt/auth.json
Normal file
16
api/locales/lt/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "El. Paštas ar telefonas nerastas",
|
||||
"INVALID_PASSWORD": "Neteisingas slaptažodis",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "Naujų vartotojų registracija išjungta",
|
||||
"INVITE_ONLY": "Jūs turite būti pakviesti registruotis",
|
||||
"EMAIL_INVALID": "Netinkamas el. pašto adresas",
|
||||
"EMAIL_ALREADY_REGISTERED": "El. pašto adresas jau užregistruotas",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "Jūs turite būti {{years}} metų ar vyresni",
|
||||
"CONSENT_REQUIRED": "Jūs turite sutikti su paslaugos teikimo sąlygomis ir privatumo politika.",
|
||||
"USERNAME_TOO_MANY_USERS": "Per daug vartotojų turi šį vartotojo vardą, prašome naudoti kitą"
|
||||
}
|
||||
}
|
18
api/locales/lt/common.json
Normal file
18
api/locales/lt/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "Šis laukelis privalomas",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be an object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unknown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Neteisingai suformuotas el. pašto adresas",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/nl/auth.json
Normal file
16
api/locales/nl/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "E-mailadres of telefoon niet gevonden",
|
||||
"INVALID_PASSWORD": "Ongeldig wachtwoord",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "Registratie voor nieuwe gebruikers is uitgeschakeld",
|
||||
"INVITE_ONLY": "U moet worden uitgenodigd om te registreren",
|
||||
"EMAIL_INVALID": "Invalid Email",
|
||||
"EMAIL_ALREADY_REGISTERED": "Dit e-mailadres is al geregistreerd",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "Je moet {{years}} jaar of ouder zijn",
|
||||
"CONSENT_REQUIRED": "U moet akkoord gaan met de Algemene Voorwaarden en het Privacybeleid.",
|
||||
"USERNAME_TOO_MANY_USERS": "Te veel gebruikers hebben deze gebruikersnaam, probeer een andere"
|
||||
}
|
||||
}
|
18
api/locales/nl/common.json
Normal file
18
api/locales/nl/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "Dit veld is verplicht",
|
||||
"BASE_TYPE_STRING": "Dit veld moet een tekenreeks zijn",
|
||||
"BASE_TYPE_NUMBER": "Dit veld moet een getal zijn",
|
||||
"BASE_TYPE_BIGINT": "Dit veld moet een bigint zijn",
|
||||
"BASE_TYPE_BOOLEAN": "Dit veld moet een Booleaanse waarde zijn",
|
||||
"BASE_TYPE_CHOICES": "Dit veld moet een van ({{types}} ) zijn",
|
||||
"BASE_TYPE_CLASS": "Dit veld moet een exemplaar zijn van {{type}}",
|
||||
"BASE_TYPE_OBJECT": "Dit veld moet een object zijn",
|
||||
"BASE_TYPE_ARRAY": "Dit veld moet een array zijn",
|
||||
"UNKOWN_FIELD": "Onbekend sleutel: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "Dit veld moet {{value}} zijn",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Niet een geldig e-mailadres",
|
||||
"DATE_TYPE_PARSE": "Kan {{date}}niet parsen. Moet ISO8601 zijn",
|
||||
"BASE_TYPE_BAD_LENGTH": "Moet tussen {{length}} in lengte zijn"
|
||||
}
|
||||
}
|
18
api/locales/nl/nl
Normal file
18
api/locales/nl/nl
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/no/auth.json
Normal file
16
api/locales/no/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "Fant ikke e-postadresse eller telefon",
|
||||
"INVALID_PASSWORD": "Ugyldig passord",
|
||||
"ACCOUNT_DISABLED": "This account is disabled"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "Ny brukerregistrering er deaktivert",
|
||||
"INVITE_ONLY": "Du må bli invitert for å registrere deg",
|
||||
"EMAIL_INVALID": "Invalid Email",
|
||||
"EMAIL_ALREADY_REGISTERED": "E-postadressen er allerede registrert",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "Du må være {{years}} eller eldre",
|
||||
"CONSENT_REQUIRED": "Du må godta vilkårene for bruk og personvernerklæringen.",
|
||||
"USERNAME_TOO_MANY_USERS": "For mange brukere har dette brukernavnet, prøv et annet"
|
||||
}
|
||||
}
|
18
api/locales/no/common.json
Normal file
18
api/locales/no/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "Dette feltet er obligatorisk",
|
||||
"BASE_TYPE_STRING": "Dette feltet må være en streng",
|
||||
"BASE_TYPE_NUMBER": "Dette feltet må være et tall",
|
||||
"BASE_TYPE_BIGINT": "Dette feltet må være en stor",
|
||||
"BASE_TYPE_BOOLEAN": "Dette feltet må være en boolsk verdi",
|
||||
"BASE_TYPE_CHOICES": "Dette feltet må være ett av ({{types}})",
|
||||
"BASE_TYPE_CLASS": "Dette feltet må være en forekomst av {{type}}",
|
||||
"BASE_TYPE_OBJECT": "Dette feltet må være et objekt",
|
||||
"BASE_TYPE_ARRAY": "Dette feltet må være en liste",
|
||||
"UNKOWN_FIELD": "Ukjent nøkkel: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "Dette feltet må være {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Ikke et gyldig e-postadresse format",
|
||||
"DATE_TYPE_PARSE": "Kunne ikke analysere {{date}}. Skal være ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Må være mellom {{length}} i lengde"
|
||||
}
|
||||
}
|
18
api/locales/no/no
Normal file
18
api/locales/no/no
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "This field is required",
|
||||
"BASE_TYPE_STRING": "This field must be a string",
|
||||
"BASE_TYPE_NUMBER": "This field must be a number",
|
||||
"BASE_TYPE_BIGINT": "This field must be a bigint",
|
||||
"BASE_TYPE_BOOLEAN": "This field must be a boolean",
|
||||
"BASE_TYPE_CHOICES": "This field must be one of ({{types}})",
|
||||
"BASE_TYPE_CLASS": "This field must be an instance of {{type}}",
|
||||
"BASE_TYPE_OBJECT": "This field must be a object",
|
||||
"BASE_TYPE_ARRAY": "This field must be an array",
|
||||
"UNKOWN_FIELD": "Unkown key: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "This field must be {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address",
|
||||
"DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length"
|
||||
}
|
||||
}
|
16
api/locales/pl/auth.json
Normal file
16
api/locales/pl/auth.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"login": {
|
||||
"INVALID_LOGIN": "E-mail lub telefon nie znaleziony",
|
||||
"INVALID_PASSWORD": "Nieprawidłowe hasło",
|
||||
"ACCOUNT_DISABLED": "Konto jest zablokowane"
|
||||
},
|
||||
"register": {
|
||||
"REGISTRATION_DISABLED": "Rejestracja nowego użytkownika jest wyłączona",
|
||||
"INVITE_ONLY": "Musisz być zaproszony do rejestracji",
|
||||
"EMAIL_INVALID": "Nieprawidłowy email",
|
||||
"EMAIL_ALREADY_REGISTERED": "E-mail jest już zarejestrowany",
|
||||
"DATE_OF_BIRTH_UNDERAGE": "Musisz mieć {{years}} lat lub więcej",
|
||||
"CONSENT_REQUIRED": "Musisz zaakceptować Regulamin i Politykę Prywatności.",
|
||||
"USERNAME_TOO_MANY_USERS": "Zbyt wielu użytkowników ma tę nazwę użytkownika, spróbuj inną"
|
||||
}
|
||||
}
|
18
api/locales/pl/common.json
Normal file
18
api/locales/pl/common.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"field": {
|
||||
"BASE_TYPE_REQUIRED": "To pole jest wymagane",
|
||||
"BASE_TYPE_STRING": "To pole musi być ciągiem znaków",
|
||||
"BASE_TYPE_NUMBER": "To pole musi być liczbą",
|
||||
"BASE_TYPE_BIGINT": "To pole musi być bigint",
|
||||
"BASE_TYPE_BOOLEAN": "To pole musi być wartością logiczną",
|
||||
"BASE_TYPE_CHOICES": "To pole musi być jednym z ({{types}})",
|
||||
"BASE_TYPE_CLASS": "To pole musi być instancją {{type}}",
|
||||
"BASE_TYPE_OBJECT": "To pole musi być obiektem",
|
||||
"BASE_TYPE_ARRAY": "To pole musi być tablicą",
|
||||
"UNKOWN_FIELD": "Nieznany klucz: {{key}}",
|
||||
"BASE_TYPE_CONSTANT": "To pole musi być {{value}}",
|
||||
"EMAIL_TYPE_INVALID_EMAIL": "Źle sformułowany adres e-mail",
|
||||
"DATE_TYPE_PARSE": "Nie można przetworzyć {{date}}. Powinno być ISO8601",
|
||||
"BASE_TYPE_BAD_LENGTH": "Musi być pomiędzy {{length}}"
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user