mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
Compare commits
7
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1455fc39e4 | ||
|
|
7a865dbda9 | ||
|
|
dfeaec0f7b | ||
|
|
e20d8da942 | ||
|
|
cc1634d082 | ||
|
|
2f28956abc | ||
|
|
057a1c34a0 |
@@ -1,11 +0,0 @@
|
||||
reviews:
|
||||
path_filters:
|
||||
- "!app/config/specs/**"
|
||||
- "!docs/examples/**"
|
||||
- "!docs/references/**"
|
||||
- "!docs/sdks/**"
|
||||
auto_review:
|
||||
base_branches:
|
||||
- main
|
||||
- 1.6.x
|
||||
- 1.7.x
|
||||
@@ -1,33 +1,23 @@
|
||||
_APP_ENV=development
|
||||
_APP_EDITION=self-hosted
|
||||
_APP_LOCALE=en
|
||||
_APP_WORKER_PER_CORE=6
|
||||
_APP_COMPRESSION_MIN_SIZE_BYTES=1024
|
||||
_APP_CONSOLE_WHITELIST_ROOT=disabled
|
||||
_APP_CONSOLE_WHITELIST_EMAILS=
|
||||
_APP_CONSOLE_SESSION_ALERTS=enabled
|
||||
_APP_CONSOLE_WHITELIST_IPS=
|
||||
_APP_CONSOLE_COUNTRIES_DENYLIST=AQ
|
||||
_APP_CONSOLE_HOSTNAMES=localhost,appwrite.io,*.appwrite.io
|
||||
_APP_SYSTEM_EMAIL_NAME=Appwrite
|
||||
_APP_SYSTEM_EMAIL_ADDRESS=noreply@appwrite.io
|
||||
_APP_SYSTEM_TEAM_EMAIL=team@appwrite.io
|
||||
_APP_EMAIL_SECURITY=security@appwrite.io
|
||||
_APP_EMAIL_CERTIFICATES=certificates@appwrite.io
|
||||
_APP_SYSTEM_EMAIL_ADDRESS=team@appwrite.io
|
||||
_APP_SYSTEM_SECURITY_EMAIL_ADDRESS=security@appwrite.io
|
||||
_APP_SYSTEM_RESPONSE_FORMAT=
|
||||
_APP_CUSTOM_DOMAIN_DENY_LIST=
|
||||
_APP_OPTIONS_ABUSE=disabled
|
||||
_APP_OPTIONS_ROUTER_PROTECTION=disabled
|
||||
_APP_OPTIONS_FORCE_HTTPS=disabled
|
||||
_APP_OPTIONS_ROUTER_FORCE_HTTPS=disabled
|
||||
_APP_OPTIONS_FUNCTIONS_FORCE_HTTPS=disabled
|
||||
_APP_OPENSSL_KEY_V1=your-secret-key
|
||||
_APP_DOMAIN=traefik
|
||||
_APP_DOMAIN=localhost
|
||||
_APP_DOMAIN_FUNCTIONS=functions.localhost
|
||||
_APP_DOMAIN_SITES=sites.localhost
|
||||
_APP_DOMAIN_TARGET_CNAME=test.appwrite.io
|
||||
_APP_DOMAIN_TARGET_A=127.0.0.1
|
||||
_APP_DOMAIN_TARGET_AAAA=::1
|
||||
_APP_RULES_FORMAT=md5
|
||||
_APP_DOMAIN_TARGET=localhost
|
||||
_APP_REDIS_HOST=redis
|
||||
_APP_REDIS_PORT=6379
|
||||
_APP_REDIS_PASS=
|
||||
@@ -43,7 +33,6 @@ _APP_STORAGE_S3_ACCESS_KEY=
|
||||
_APP_STORAGE_S3_SECRET=
|
||||
_APP_STORAGE_S3_REGION=us-east-1
|
||||
_APP_STORAGE_S3_BUCKET=
|
||||
_APP_STORAGE_S3_ENDPOINT=
|
||||
_APP_STORAGE_DO_SPACES_ACCESS_KEY=
|
||||
_APP_STORAGE_DO_SPACES_SECRET=
|
||||
_APP_STORAGE_DO_SPACES_REGION=us-east-1
|
||||
@@ -73,31 +62,28 @@ _APP_SMS_FROM=+123456789
|
||||
_APP_SMS_PROJECTS_DENY_LIST=
|
||||
_APP_STORAGE_LIMIT=30000000
|
||||
_APP_STORAGE_PREVIEW_LIMIT=20000000
|
||||
_APP_COMPUTE_SIZE_LIMIT=30000000
|
||||
_APP_FUNCTIONS_SIZE_LIMIT=30000000
|
||||
_APP_FUNCTIONS_TIMEOUT=900
|
||||
_APP_SITES_TIMEOUT=30
|
||||
_APP_COMPUTE_BUILD_TIMEOUT=900
|
||||
_APP_COMPUTE_CPUS=8
|
||||
_APP_COMPUTE_MEMORY=8192
|
||||
_APP_COMPUTE_INACTIVE_THRESHOLD=600
|
||||
_APP_COMPUTE_MAINTENANCE_INTERVAL=600
|
||||
_APP_COMPUTE_RUNTIMES_NETWORK=runtimes
|
||||
_APP_FUNCTIONS_BUILD_TIMEOUT=900
|
||||
_APP_FUNCTIONS_CPUS=1
|
||||
_APP_FUNCTIONS_MEMORY=1024
|
||||
_APP_FUNCTIONS_INACTIVE_THRESHOLD=600
|
||||
_APP_FUNCTIONS_MAINTENANCE_INTERVAL=600
|
||||
_APP_FUNCTIONS_RUNTIMES_NETWORK=runtimes
|
||||
_APP_EXECUTOR_SECRET=your-secret-key
|
||||
_APP_EXECUTOR_HOST=http://exc1/v1
|
||||
_APP_EXECUTOR_HOST=http://proxy/v1
|
||||
_APP_FUNCTIONS_RUNTIMES=php-8.0,node-18.0,python-3.9,ruby-3.1
|
||||
_APP_SITES_RUNTIMES=static-1,node-22,flutter-3.29
|
||||
_APP_MAINTENANCE_INTERVAL=86400
|
||||
_APP_MAINTENANCE_DELAY=
|
||||
_APP_MAINTENANCE_RETENTION_CACHE=2592000
|
||||
_APP_MAINTENANCE_RETENTION_EXECUTION=1209600
|
||||
_APP_MAINTENANCE_RETENTION_ABUSE=86400
|
||||
_APP_MAINTENANCE_RETENTION_AUDIT=1209600
|
||||
_APP_MAINTENANCE_RETENTION_AUDIT_CONSOLE=15778800
|
||||
_APP_USAGE_AGGREGATION_INTERVAL=30
|
||||
_APP_STATS_RESOURCES_INTERVAL=30
|
||||
_APP_MAINTENANCE_RETENTION_USAGE_HOURLY=8640000
|
||||
_APP_MAINTENANCE_RETENTION_SCHEDULES=86400
|
||||
_APP_USAGE_STATS=enabled
|
||||
_APP_LOGGING_PROVIDER=
|
||||
_APP_LOGGING_CONFIG=
|
||||
_APP_GRAPHQL_MAX_BATCH_SIZE=10
|
||||
_APP_GRAPHQL_MAX_COMPLEXITY=250
|
||||
@@ -117,6 +103,4 @@ _APP_MESSAGE_SMS_TEST_DSN=
|
||||
_APP_MESSAGE_EMAIL_TEST_DSN=
|
||||
_APP_MESSAGE_PUSH_TEST_DSN=
|
||||
_APP_WEBHOOK_MAX_FAILED_ATTEMPTS=10
|
||||
_APP_PROJECT_REGIONS=default
|
||||
_APP_FUNCTIONS_CREATION_ABUSE_LIMIT=5000
|
||||
_APP_STATS_USAGE_DUAL_WRITING_DBS=database_db_main
|
||||
_APP_PROJECT_REGIONS=default
|
||||
@@ -1,120 +0,0 @@
|
||||
name: Benchmark
|
||||
concurrency:
|
||||
group: '${{ github.workflow }}-${{ github.ref }}'
|
||||
cancel-in-progress: true
|
||||
env:
|
||||
IMAGE: appwrite-dev
|
||||
CACHE_KEY: 'appwrite-dev-${{ github.event.pull_request.head.sha }}'
|
||||
'on':
|
||||
- pull_request
|
||||
jobs:
|
||||
setup:
|
||||
name: Setup & Build Appwrite Image
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
- name: Build Appwrite
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
push: false
|
||||
tags: '${{ env.IMAGE }}'
|
||||
load: true
|
||||
cache-from: type=gha
|
||||
cache-to: 'type=gha,mode=max'
|
||||
outputs: 'type=docker,dest=/tmp/${{ env.IMAGE }}.tar'
|
||||
build-args: |
|
||||
DEBUG=false
|
||||
TESTING=true
|
||||
VERSION=dev
|
||||
- name: Cache Docker Image
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
key: '${{ env.CACHE_KEY }}'
|
||||
path: '/tmp/${{ env.IMAGE }}.tar'
|
||||
benchmarking:
|
||||
name: Benchmark
|
||||
runs-on: ubuntu-latest
|
||||
needs: setup
|
||||
permissions:
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
- name: Load Cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
key: '${{ env.CACHE_KEY }}'
|
||||
path: '/tmp/${{ env.IMAGE }}.tar'
|
||||
fail-on-cache-miss: true
|
||||
- name: Load and Start Appwrite
|
||||
run: |
|
||||
sed -i 's/traefik/localhost/g' .env
|
||||
docker load --input /tmp/${{ env.IMAGE }}.tar
|
||||
docker compose up -d
|
||||
sleep 10
|
||||
- name: Install Oha
|
||||
run: |
|
||||
echo "deb [signed-by=/usr/share/keyrings/azlux-archive-keyring.gpg] http://packages.azlux.fr/debian/ stable main" | sudo tee /etc/apt/sources.list.d/azlux.list
|
||||
sudo wget -O /usr/share/keyrings/azlux-archive-keyring.gpg https://azlux.fr/repo.gpg
|
||||
sudo apt update
|
||||
sudo apt install oha
|
||||
- name: Benchmark PR
|
||||
run: 'oha -z 180s http://localhost/v1/health/version -j > benchmark.json'
|
||||
- name: Cleaning
|
||||
run: docker compose down -v
|
||||
- name: Installing latest version
|
||||
run: |
|
||||
rm docker-compose.yml
|
||||
rm .env
|
||||
curl https://appwrite.io/install/compose -o docker-compose.yml
|
||||
curl https://appwrite.io/install/env -o .env
|
||||
sed -i 's/_APP_OPTIONS_ABUSE=enabled/_APP_OPTIONS_ABUSE=disabled/g' .env
|
||||
docker compose up -d
|
||||
sleep 10
|
||||
- name: Benchmark Latest
|
||||
run: oha -z 180s http://localhost/v1/health/version -j > benchmark-latest.json
|
||||
- name: Prepare comment
|
||||
run: |
|
||||
echo '## :sparkles: Benchmark results' > benchmark.txt
|
||||
echo ' ' >> benchmark.txt
|
||||
echo "- Requests per second: $(jq -r '.summary.requestsPerSec|tonumber?|floor|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' benchmark.json)" >> benchmark.txt
|
||||
echo "- Requests with 200 status code: $(jq -r '.statusCodeDistribution."200"|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' benchmark.json)" >> benchmark.txt
|
||||
echo "- P99 latency: $(jq -r '.latencyPercentiles.p99' benchmark.json )" >> benchmark.txt
|
||||
echo " " >> benchmark.txt
|
||||
echo " " >> benchmark.txt
|
||||
echo "## :zap: Benchmark Comparison" >> benchmark.txt
|
||||
echo " " >> benchmark.txt
|
||||
echo "| Metric | This PR | Latest version | " >> benchmark.txt
|
||||
echo "| --- | --- | --- | " >> benchmark.txt
|
||||
echo "| RPS | $(jq -r '.summary.requestsPerSec|tonumber?|floor|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' benchmark.json) | $(jq -r '.summary.requestsPerSec|tonumber|floor|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' benchmark-latest.json) | " >> benchmark.txt
|
||||
echo "| 200 | $(jq -r '.statusCodeDistribution."200"|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' benchmark.json) | $(jq -r '.statusCodeDistribution."200"|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' benchmark-latest.json) | " >> benchmark.txt
|
||||
echo "| P99 | $(jq -r '.latencyPercentiles.p99' benchmark.json ) | $(jq -r '.latencyPercentiles.p99' benchmark-latest.json ) | " >> benchmark.txt
|
||||
- name: Save results
|
||||
uses: actions/upload-artifact@v4
|
||||
if: '${{ !cancelled() }}'
|
||||
with:
|
||||
name: benchmark.json
|
||||
path: benchmark.json
|
||||
retention-days: 7
|
||||
- name: Find Comment
|
||||
if: github.event.pull_request.head.repo.full_name == github.repository
|
||||
uses: peter-evans/find-comment@v3
|
||||
id: fc
|
||||
with:
|
||||
issue-number: '${{ github.event.pull_request.number }}'
|
||||
comment-author: 'github-actions[bot]'
|
||||
body-includes: Benchmark results
|
||||
- name: Comment on PR
|
||||
if: github.event.pull_request.head.repo.full_name == github.repository
|
||||
uses: peter-evans/create-or-update-comment@v4
|
||||
with:
|
||||
comment-id: '${{ steps.fc.outputs.comment-id }}'
|
||||
issue-number: '${{ github.event.pull_request.number }}'
|
||||
body-path: benchmark.txt
|
||||
edit-mode: replace
|
||||
@@ -1,19 +0,0 @@
|
||||
name: Check dependencies
|
||||
|
||||
# Adapted from https://google.github.io/osv-scanner/github-action/#scan-on-pull-request
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [main, 1.*.x]
|
||||
merge_group:
|
||||
branches: [main, 1.*.x]
|
||||
|
||||
permissions:
|
||||
# Require writing security events to upload SARIF file to security tab
|
||||
security-events: write
|
||||
# Only need to read contents
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
scan-pr:
|
||||
uses: "google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml@v1.7.1"
|
||||
@@ -10,7 +10,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Cleanup
|
||||
run: |
|
||||
|
||||
@@ -13,13 +13,8 @@ on:
|
||||
schedule:
|
||||
- cron: '0 16 * * 0'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
permissions:
|
||||
security-events: write
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
@@ -34,7 +29,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
# We must fetch at least the immediate parents so that if this is
|
||||
# a pull request then we can checkout the head.
|
||||
|
||||
@@ -12,7 +12,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
name: Nightly Security Scan
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *' # 12am UTC daily runtime
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
scan-image:
|
||||
name: Scan Docker Image
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Build the Docker image
|
||||
run: docker build . -t appwrite_image:latest
|
||||
- name: Run Trivy vulnerability scanner on image
|
||||
uses: aquasecurity/trivy-action@0.20.0
|
||||
with:
|
||||
image-ref: 'appwrite_image:latest'
|
||||
format: 'sarif'
|
||||
output: 'trivy-image-results.sarif'
|
||||
ignore-unfixed: 'false'
|
||||
severity: 'CRITICAL,HIGH'
|
||||
- name: Upload Docker Image Scan Results
|
||||
uses: github/codeql-action/upload-sarif@v2
|
||||
with:
|
||||
sarif_file: 'trivy-image-results.sarif'
|
||||
|
||||
scan-code:
|
||||
name: Scan Code
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v4
|
||||
- name: Run Trivy vulnerability scanner on filesystem
|
||||
uses: aquasecurity/trivy-action@0.20.0
|
||||
with:
|
||||
scan-type: 'fs'
|
||||
format: 'sarif'
|
||||
output: 'trivy-fs-results.sarif'
|
||||
severity: 'CRITICAL,HIGH'
|
||||
- name: Upload Code Scan Results
|
||||
uses: github/codeql-action/upload-sarif@v2
|
||||
with:
|
||||
sarif_file: 'trivy-fs-results.sarif'
|
||||
@@ -1,105 +0,0 @@
|
||||
name: PR Security Scan
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, synchronize, reopened]
|
||||
|
||||
jobs:
|
||||
scan:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
fetch-depth: 0
|
||||
submodules: 'recursive'
|
||||
|
||||
- name: Build the Docker image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
push: false
|
||||
load: true
|
||||
tags: pr_image:${{ github.sha }}
|
||||
|
||||
- name: Run Trivy vulnerability scanner on image
|
||||
uses: aquasecurity/trivy-action@0.20.0
|
||||
with:
|
||||
image-ref: 'pr_image:${{ github.sha }}'
|
||||
format: 'json'
|
||||
output: 'trivy-image-results.json'
|
||||
severity: 'CRITICAL,HIGH'
|
||||
|
||||
- name: Run Trivy vulnerability scanner on source code
|
||||
uses: aquasecurity/trivy-action@0.20.0
|
||||
with:
|
||||
scan-type: 'fs'
|
||||
scan-ref: '.'
|
||||
format: 'json'
|
||||
output: 'trivy-fs-results.json'
|
||||
severity: 'CRITICAL,HIGH'
|
||||
|
||||
- name: Process Trivy scan results
|
||||
id: process-results
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const fs = require('fs');
|
||||
let commentBody = '## Security Scan Results for PR\n\n';
|
||||
|
||||
function processResults(results, title) {
|
||||
let sectionBody = `### ${title}\n\n`;
|
||||
if (results.Results && results.Results.some(result => result.Vulnerabilities && result.Vulnerabilities.length > 0)) {
|
||||
sectionBody += '| Package | Version | Vulnerability | Severity |\n';
|
||||
sectionBody += '|---------|---------|----------------|----------|\n';
|
||||
|
||||
const uniqueVulns = new Set();
|
||||
results.Results.forEach(result => {
|
||||
if (result.Vulnerabilities) {
|
||||
result.Vulnerabilities.forEach(vuln => {
|
||||
const vulnKey = `${vuln.PkgName}-${vuln.InstalledVersion}-${vuln.VulnerabilityID}`;
|
||||
if (!uniqueVulns.has(vulnKey)) {
|
||||
uniqueVulns.add(vulnKey);
|
||||
sectionBody += `| ${vuln.PkgName} | ${vuln.InstalledVersion} | [${vuln.VulnerabilityID}](https://nvd.nist.gov/vuln/detail/${vuln.VulnerabilityID}) | ${vuln.Severity} |\n`;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
sectionBody += '🎉 No vulnerabilities found!\n';
|
||||
}
|
||||
return sectionBody;
|
||||
}
|
||||
|
||||
try {
|
||||
const imageResults = JSON.parse(fs.readFileSync('trivy-image-results.json', 'utf8'));
|
||||
const fsResults = JSON.parse(fs.readFileSync('trivy-fs-results.json', 'utf8'));
|
||||
|
||||
commentBody += processResults(imageResults, "Docker Image Scan Results");
|
||||
commentBody += '\n';
|
||||
commentBody += processResults(fsResults, "Source Code Scan Results");
|
||||
|
||||
} catch (error) {
|
||||
commentBody += `There was an error while running the security scan: ${error.message}\n`;
|
||||
commentBody += 'Please contact the core team for assistance.';
|
||||
}
|
||||
|
||||
core.setOutput('comment-body', commentBody);
|
||||
- name: Find Comment
|
||||
uses: peter-evans/find-comment@v3
|
||||
id: fc
|
||||
with:
|
||||
issue-number: ${{ github.event.pull_request.number }}
|
||||
comment-author: 'github-actions[bot]'
|
||||
body-includes: Security Scan Results for PR
|
||||
|
||||
- name: Create or update comment
|
||||
uses: peter-evans/create-or-update-comment@v3
|
||||
with:
|
||||
issue-number: ${{ github.event.pull_request.number }}
|
||||
comment-id: ${{ steps.fc.outputs.comment-id }}
|
||||
body: ${{ steps.process-results.outputs.comment-body }}
|
||||
edit-mode: replace
|
||||
@@ -12,7 +12,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 2
|
||||
submodules: recursive
|
||||
@@ -26,7 +26,7 @@ jobs:
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ vars.DOCKERHUB_USERNAME }}
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Extract metadata (tags, labels) for Docker
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
# We must fetch at least the immediate parents so that if this is
|
||||
# a pull request then we can checkout the head.
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ vars.DOCKERHUB_USERNAME }}
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Extract metadata (tags, labels) for Docker
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
name: "Console SDK Preview"
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'app/config/specs/*-latest-console.json'
|
||||
|
||||
|
||||
jobs:
|
||||
setup:
|
||||
name: Setup & Build Console SDK
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Load and Start Appwrite
|
||||
run: |
|
||||
docker compose build
|
||||
docker compose up -d
|
||||
docker compose exec appwrite sdks --platform=console --sdk=web --version=latest --git=no
|
||||
sudo chown -R $USER:$USER ./app/sdks/console-web
|
||||
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- name: Build and Publish SDK
|
||||
working-directory: ./app/sdks/console-web
|
||||
run: |
|
||||
npm install
|
||||
npm run build
|
||||
npx pkg-pr-new publish --comment=update
|
||||
@@ -1,23 +0,0 @@
|
||||
name: Mark stale issues
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *" # Midnight Runtime
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/stale@v9
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
stale-issue-message: "This issue has been labeled as a 'question', indicating that it requires additional information from the requestor. It has been inactive for 7 days. If no further activity occurs, this issue will be closed in 14 days."
|
||||
stale-issue-label: "stale"
|
||||
days-before-stale: 7
|
||||
days-before-close: 14
|
||||
remove-stale-when-updated: true
|
||||
close-issue-message: "This issue has been closed due to inactivity. If you still require assistance, please provide the requested information."
|
||||
close-issue-reason: "not_planned"
|
||||
operations-per-run: 100
|
||||
only-labels: "question"
|
||||
@@ -1,16 +0,0 @@
|
||||
name: "Static code analysis"
|
||||
|
||||
on: [pull_request]
|
||||
jobs:
|
||||
lint:
|
||||
name: CodeQL
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Check out the repo
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Run CodeQL
|
||||
run: |
|
||||
docker run --rm -v $PWD:/app composer:2.6 sh -c \
|
||||
"composer install --profile --ignore-platform-reqs && composer check"
|
||||
+14
-228
@@ -8,47 +8,23 @@ env:
|
||||
IMAGE: appwrite-dev
|
||||
CACHE_KEY: appwrite-dev-${{ github.event.pull_request.head.sha }}
|
||||
|
||||
on: [ pull_request ]
|
||||
on: [pull_request]
|
||||
|
||||
jobs:
|
||||
check_database_changes:
|
||||
name: Check if utopia-php/database changed
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
database_changed: ${{ steps.check.outputs.database_changed }}
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Fetch base branch
|
||||
run: git fetch origin ${{ github.event.pull_request.base.ref }}
|
||||
|
||||
- name: Check for utopia-php/database changes
|
||||
id: check
|
||||
run: |
|
||||
if git diff origin/${{ github.event.pull_request.base.ref }} HEAD -- composer.lock | grep -q '"name": "utopia-php/database"'; then
|
||||
echo "Database version changed, going to run all mode tests."
|
||||
echo "database_changed=true" >> "$GITHUB_ENV"
|
||||
echo "database_changed=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "database_changed=false" >> "$GITHUB_ENV"
|
||||
echo "database_changed=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
setup:
|
||||
name: Setup & Build Appwrite Image
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Build Appwrite
|
||||
uses: docker/build-push-action@v6
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
context: .
|
||||
push: false
|
||||
@@ -63,7 +39,7 @@ jobs:
|
||||
VERSION=dev
|
||||
|
||||
- name: Cache Docker Image
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
key: ${{ env.CACHE_KEY }}
|
||||
path: /tmp/${{ env.IMAGE }}.tar
|
||||
@@ -75,10 +51,10 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Load Cache
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
key: ${{ env.CACHE_KEY }}
|
||||
path: /tmp/${{ env.IMAGE }}.tar
|
||||
@@ -90,9 +66,6 @@ jobs:
|
||||
docker compose up -d
|
||||
sleep 10
|
||||
|
||||
- name: Logs
|
||||
run: docker compose logs appwrite
|
||||
|
||||
- name: Doctor
|
||||
run: docker compose exec -T appwrite doctor
|
||||
|
||||
@@ -108,10 +81,10 @@ jobs:
|
||||
needs: setup
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Load Cache
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
key: ${{ env.CACHE_KEY }}
|
||||
path: /tmp/${{ env.IMAGE }}.tar
|
||||
@@ -122,14 +95,6 @@ jobs:
|
||||
docker load --input /tmp/${{ env.IMAGE }}.tar
|
||||
docker compose up -d
|
||||
sleep 10
|
||||
|
||||
- name: Wait for Open Runtimes
|
||||
timeout-minutes: 3
|
||||
run: |
|
||||
while ! docker compose logs openruntimes-executor | grep -q "Executor is ready."; do
|
||||
echo "Waiting for Executor to come online"
|
||||
sleep 1
|
||||
done
|
||||
|
||||
- name: Run General Tests
|
||||
run: docker compose exec -T appwrite test /usr/src/code/tests/e2e/General --debug
|
||||
@@ -138,72 +103,6 @@ jobs:
|
||||
name: E2E Service Test
|
||||
runs-on: ubuntu-latest
|
||||
needs: setup
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
service: [
|
||||
Account,
|
||||
Avatars,
|
||||
Console,
|
||||
Databases,
|
||||
Functions,
|
||||
FunctionsSchedule,
|
||||
GraphQL,
|
||||
Health,
|
||||
Locale,
|
||||
Projects,
|
||||
Realtime,
|
||||
Sites,
|
||||
Proxy,
|
||||
Storage,
|
||||
Teams,
|
||||
Users,
|
||||
Webhooks,
|
||||
VCS,
|
||||
Messaging,
|
||||
Migrations
|
||||
]
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Load Cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
key: ${{ env.CACHE_KEY }}
|
||||
path: /tmp/${{ env.IMAGE }}.tar
|
||||
fail-on-cache-miss: true
|
||||
|
||||
- name: Load and Start Appwrite
|
||||
run: |
|
||||
docker load --input /tmp/${{ env.IMAGE }}.tar
|
||||
docker compose up -d
|
||||
sleep 30
|
||||
|
||||
- name: Wait for Open Runtimes
|
||||
timeout-minutes: 3
|
||||
run: |
|
||||
while ! docker compose logs openruntimes-executor | grep -q "Executor is ready."; do
|
||||
echo "Waiting for Executor to come online"
|
||||
sleep 1
|
||||
done
|
||||
|
||||
- name: Run ${{ matrix.service }} tests with Project table mode
|
||||
run: |
|
||||
echo "Using project tables"
|
||||
export _APP_DATABASE_SHARED_TABLES=
|
||||
export _APP_DATABASE_SHARED_TABLES_V1=
|
||||
|
||||
docker compose exec -T \
|
||||
-e _APP_DATABASE_SHARED_TABLES \
|
||||
-e _APP_DATABASE_SHARED_TABLES_V1 \
|
||||
appwrite test /usr/src/code/tests/e2e/Services/${{ matrix.service }} --debug --exclude=devKeys
|
||||
|
||||
e2e_shared_mode_test:
|
||||
name: E2E Shared Mode Service Test
|
||||
runs-on: ubuntu-latest
|
||||
needs: [ setup, check_database_changes ]
|
||||
if: needs.check_database_changes.outputs.database_changed == 'true'
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -214,34 +113,25 @@ jobs:
|
||||
Console,
|
||||
Databases,
|
||||
Functions,
|
||||
FunctionsSchedule,
|
||||
GraphQL,
|
||||
Health,
|
||||
Locale,
|
||||
Projects,
|
||||
Realtime,
|
||||
Sites,
|
||||
Proxy,
|
||||
Storage,
|
||||
Teams,
|
||||
Users,
|
||||
Webhooks,
|
||||
VCS,
|
||||
Messaging,
|
||||
Migrations,
|
||||
Tokens
|
||||
]
|
||||
tables-mode: [
|
||||
'Shared V1',
|
||||
'Shared V2',
|
||||
]
|
||||
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Load Cache
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
key: ${{ env.CACHE_KEY }}
|
||||
path: /tmp/${{ env.IMAGE }}.tar
|
||||
@@ -251,111 +141,7 @@ jobs:
|
||||
run: |
|
||||
docker load --input /tmp/${{ env.IMAGE }}.tar
|
||||
docker compose up -d
|
||||
sleep 30
|
||||
sleep 25
|
||||
|
||||
- name: Wait for Open Runtimes
|
||||
timeout-minutes: 3
|
||||
run: |
|
||||
while ! docker compose logs openruntimes-executor | grep -q "Executor is ready."; do
|
||||
echo "Waiting for Executor to come online"
|
||||
sleep 1
|
||||
done
|
||||
|
||||
- name: Run ${{ matrix.service }} tests with ${{ matrix.tables-mode }} table mode
|
||||
run: |
|
||||
if [ "${{ matrix.tables-mode }}" == "Shared V1" ]; then
|
||||
echo "Using shared tables V1"
|
||||
export _APP_DATABASE_SHARED_TABLES=database_db_main
|
||||
export _APP_DATABASE_SHARED_TABLES_V1=database_db_main
|
||||
elif [ "${{ matrix.tables-mode }}" == "Shared V2" ]; then
|
||||
echo "Using shared tables V2"
|
||||
export _APP_DATABASE_SHARED_TABLES=database_db_main
|
||||
export _APP_DATABASE_SHARED_TABLES_V1=
|
||||
fi
|
||||
|
||||
docker compose exec -T \
|
||||
-e _APP_DATABASE_SHARED_TABLES \
|
||||
-e _APP_DATABASE_SHARED_TABLES_V1 \
|
||||
appwrite test /usr/src/code/tests/e2e/Services/${{ matrix.service }} --debug --exclude=devKeys
|
||||
|
||||
e2e_dev_keys:
|
||||
name: E2E Service Test (Dev Keys)
|
||||
runs-on: ubuntu-latest
|
||||
needs: setup
|
||||
strategy:
|
||||
fail-fast: false
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Load Cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
key: ${{ env.CACHE_KEY }}
|
||||
path: /tmp/${{ env.IMAGE }}.tar
|
||||
fail-on-cache-miss: true
|
||||
|
||||
- name: Load and Start Appwrite
|
||||
run: |
|
||||
docker load --input /tmp/${{ env.IMAGE }}.tar
|
||||
sed -i 's/_APP_OPTIONS_ABUSE=disabled/_APP_OPTIONS_ABUSE=enabled/' .env
|
||||
docker compose up -d
|
||||
sleep 30
|
||||
|
||||
- name: Run Projects tests with dev keys in ${{ matrix.tables-mode }} table mode
|
||||
run: |
|
||||
echo "Using project tables"
|
||||
export _APP_DATABASE_SHARED_TABLES=
|
||||
export _APP_DATABASE_SHARED_TABLES_V1=
|
||||
|
||||
docker compose exec -T \
|
||||
-e _APP_DATABASE_SHARED_TABLES \
|
||||
-e _APP_DATABASE_SHARED_TABLES_V1 \
|
||||
appwrite test /usr/src/code/tests/e2e/Services/Projects --debug --group=devKeys
|
||||
|
||||
e2e_dev_keys_shared_mode:
|
||||
name: E2E Shared Mode Service Test (Dev Keys)
|
||||
runs-on: ubuntu-latest
|
||||
needs: [ setup, check_database_changes ]
|
||||
if: needs.check_database_changes.outputs.database_changed == 'true'
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
tables-mode: [
|
||||
'Shared V1',
|
||||
'Shared V2',
|
||||
]
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Load Cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
key: ${{ env.CACHE_KEY }}
|
||||
path: /tmp/${{ env.IMAGE }}.tar
|
||||
fail-on-cache-miss: true
|
||||
|
||||
- name: Load and Start Appwrite
|
||||
run: |
|
||||
docker load --input /tmp/${{ env.IMAGE }}.tar
|
||||
sed -i 's/_APP_OPTIONS_ABUSE=disabled/_APP_OPTIONS_ABUSE=enabled/' .env
|
||||
docker compose up -d
|
||||
sleep 30
|
||||
|
||||
- name: Run Projects tests with dev keys in ${{ matrix.tables-mode }} table mode
|
||||
run: |
|
||||
if [ "${{ matrix.tables-mode }}" == "Shared V1" ]; then
|
||||
echo "Using shared tables V1"
|
||||
export _APP_DATABASE_SHARED_TABLES=database_db_main
|
||||
export _APP_DATABASE_SHARED_TABLES_V1=database_db_main
|
||||
elif [ "${{ matrix.tables-mode }}" == "Shared V2" ]; then
|
||||
echo "Using shared tables V2"
|
||||
export _APP_DATABASE_SHARED_TABLES=database_db_main
|
||||
export _APP_DATABASE_SHARED_TABLES_V1=
|
||||
fi
|
||||
|
||||
docker compose exec -T \
|
||||
-e _APP_DATABASE_SHARED_TABLES \
|
||||
-e _APP_DATABASE_SHARED_TABLES_V1 \
|
||||
appwrite test /usr/src/code/tests/e2e/Services/Projects --debug --group=devKeys
|
||||
- name: Run ${{matrix.service}} Tests
|
||||
run: docker compose exec -T appwrite test /usr/src/code/tests/e2e/Services/${{matrix.service}} --debug
|
||||
|
||||
@@ -3,18 +3,14 @@
|
||||
/node_modules/
|
||||
/tests/resources/storage/
|
||||
/tests/resources/functions/**/code.tar.gz
|
||||
/tests/resources/sites/**/code.tar.gz
|
||||
/app/sdks/*
|
||||
/.idea/
|
||||
!/.idea/workspace.xml
|
||||
!/.idea/php.xml
|
||||
.DS_Store
|
||||
.php_cs.cache
|
||||
.phpactor.json
|
||||
debug/
|
||||
app/sdks
|
||||
dev/yasd_init.php
|
||||
.phpunit.result.cache
|
||||
Makefile
|
||||
appwrite.json
|
||||
/.zed/
|
||||
@@ -0,0 +1,4 @@
|
||||
[submodule "app/console"]
|
||||
path = app/console
|
||||
url = https://github.com/appwrite/console
|
||||
branch = 4.0.4
|
||||
+8
-1
@@ -7,7 +7,6 @@ tasks:
|
||||
docker pull composer
|
||||
command: |
|
||||
docker run --rm --interactive --tty \
|
||||
--user "$(id -u):$(id -g)" \
|
||||
--volume $PWD:/app \
|
||||
composer install \
|
||||
--ignore-platform-reqs \
|
||||
@@ -24,3 +23,11 @@ vscode:
|
||||
extensions:
|
||||
- ms-azuretools.vscode-docker
|
||||
- zobo.php-intellisense
|
||||
|
||||
github:
|
||||
# https://www.gitpod.io/docs/prebuilds#github-specific-configuration
|
||||
prebuilds:
|
||||
# enable for pull requests coming from forks (defaults to false)
|
||||
pullRequestsFromForks: true
|
||||
# add a check to pull requests (defaults to true)
|
||||
addCheck: false
|
||||
|
||||
+1
-508
@@ -1,515 +1,8 @@
|
||||
# Version 1.6.1
|
||||
|
||||
## What's Changed
|
||||
|
||||
### Notable changes
|
||||
|
||||
* Remove JPEG fallback for webp by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8746
|
||||
* Add heic and avif support by @lohanidamodar in https://github.com/appwrite/appwrite/pull/7718
|
||||
* Add new runtimes by @Meldiron in https://github.com/appwrite/appwrite/pull/8771
|
||||
* Remove audits deletion by @shimonewman in https://github.com/appwrite/appwrite/pull/8766
|
||||
* Bump assistant by @loks0n in https://github.com/appwrite/appwrite/pull/8801
|
||||
* Change max queries values to 500 by @fogelito in https://github.com/appwrite/appwrite/pull/8802
|
||||
* Allow '.wav' as 'audio/x-wav' as well by @basert in https://github.com/appwrite/appwrite/pull/8846
|
||||
* Use 1 instead of 0.5 cpu for default function specification by @loks0n in https://github.com/appwrite/appwrite/pull/8848
|
||||
* Update function runtimes by @christyjacob4 in https://github.com/appwrite/appwrite/pull/8781
|
||||
* Add a realtime heartbeat by @TorstenDittmann in https://github.com/appwrite/appwrite/pull/8943
|
||||
|
||||
### Fixes
|
||||
|
||||
* Trigger functions event only if event is not paused by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8526
|
||||
* Update docker-compose to restart usage-dump by @feschaffa in https://github.com/appwrite/appwrite/pull/8642
|
||||
* Fix typo in scheduler base by @fogelito in https://github.com/appwrite/appwrite/pull/8691
|
||||
* Add domain and force HTTPS env vars to mail worker by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8722
|
||||
* Fix webp by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8732
|
||||
* Ignore junction tables by @fogelito in https://github.com/appwrite/appwrite/pull/8728
|
||||
* Fix logger throwing fatal error by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8724
|
||||
* Fix missing protocol for testing SMTP by @byawitz in https://github.com/appwrite/appwrite/pull/8749
|
||||
* Make create execution async loose by @loks0n in https://github.com/appwrite/appwrite/pull/8707
|
||||
* Fix invalid cursor value by @fogelito in https://github.com/appwrite/appwrite/pull/8109
|
||||
* Fix target deletes by @abnegate in https://github.com/appwrite/appwrite/pull/8833
|
||||
* Fix translation commas by @loks0n in https://github.com/appwrite/appwrite/pull/8892
|
||||
* Fix Migrations having source creds being overwritten and add Migration tests by @PineappleIOnic in https://github.com/appwrite/appwrite/pull/8897
|
||||
* Fix validator usage for updating string size by @abnegate in https://github.com/appwrite/appwrite/pull/8890
|
||||
* Fix create user event not triggering by @loks0n in https://github.com/appwrite/appwrite/pull/8718
|
||||
* Improve error handling and logging in the database worker by @fogelito in https://github.com/appwrite/appwrite/pull/8944
|
||||
* Remove inaccurate info about leaving the URL parameter empty by @ebenezerdon in https://github.com/appwrite/appwrite/pull/8963
|
||||
* Ensure indexes are updated when updating an attribute key by @fogelito in https://github.com/appwrite/appwrite/pull/8971
|
||||
* Remove duplicate dart-2.16 runtime template by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8972
|
||||
* Fix team invites with existing session by @TorstenDittmann in https://github.com/appwrite/appwrite/pull/9006
|
||||
* Improve handling of HTTP requests by dispatching to safe workers by @Meldiron in https://github.com/appwrite/appwrite/pull/9016
|
||||
* Fix users create session secret by @stnguyen90 in https://github.com/appwrite/appwrite/pull/9019
|
||||
* Fix swoole task warning by @Meldiron in https://github.com/appwrite/appwrite/pull/9025
|
||||
|
||||
### Miscellaneous
|
||||
|
||||
* Update Init copy by @adityaoberai in https://github.com/appwrite/appwrite/pull/8557
|
||||
* Fix security scan permissions and comment by @EVDOG4LIFE in https://github.com/appwrite/appwrite/pull/8525
|
||||
* Add Trivy security scans by @btme0011 in https://github.com/appwrite/appwrite/pull/6876
|
||||
* Update database stack by @abnegate in https://github.com/appwrite/appwrite/pull/8564
|
||||
* Bump database by @abnegate in https://github.com/appwrite/appwrite/pull/8573
|
||||
* Sync main with 1.5.x by @PineappleIOnic in https://github.com/appwrite/appwrite/pull/8589
|
||||
* Add AWS to one-click installs by @byawitz in https://github.com/appwrite/appwrite/pull/8593
|
||||
* Update Init copy in readme by @adityaoberai in https://github.com/appwrite/appwrite/pull/8618
|
||||
* Sync main into 1.6.x by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8685
|
||||
* Sync 1.6.x into main by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8686
|
||||
* Feat coroutines by @Meldiron in https://github.com/appwrite/appwrite/pull/7826
|
||||
* Sync main into 1.6.x by @Meldiron in https://github.com/appwrite/appwrite/pull/8719
|
||||
* Sentence casing endpoint API reference by @choir241 in https://github.com/appwrite/appwrite/pull/8617
|
||||
* DB storage metrics by @PineappleIOnic in https://github.com/appwrite/appwrite/pull/8404
|
||||
* Fix exception thrown when optional array attribute does not exist by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8391
|
||||
* Add projects channels to realtime by @TorstenDittmann in https://github.com/appwrite/appwrite/pull/8735
|
||||
* Base for console roles support by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8565
|
||||
* Remove DB disk storage calculation by @christyjacob4 in https://github.com/appwrite/appwrite/pull/8745
|
||||
* Messaging adapter default values by @shimonewman in https://github.com/appwrite/appwrite/pull/8742
|
||||
* Add payload response type by @loks0n in https://github.com/appwrite/appwrite/pull/8720
|
||||
* Fix flaky functions tests by @loks0n in https://github.com/appwrite/appwrite/pull/8682
|
||||
* Migrations Backups by @fogelito in https://github.com/appwrite/appwrite/pull/8186
|
||||
* Add test for response and request filters by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8697
|
||||
* Bump version in SECURITY.md by @EVDOG4LIFE in https://github.com/appwrite/appwrite/pull/8755
|
||||
* Add originalId attribute to databases collection by @fogelito in https://github.com/appwrite/appwrite/pull/8764
|
||||
* Fix Walter References by @ItzNotABug in https://github.com/appwrite/appwrite/pull/8757
|
||||
* Update database by @abnegate in https://github.com/appwrite/appwrite/pull/8769
|
||||
* Move new attributes by @abnegate in https://github.com/appwrite/appwrite/pull/8777
|
||||
* Add ping endpoint by @loks0n in https://github.com/appwrite/appwrite/pull/8761
|
||||
* Fix GitHub action caching by @loks0n in https://github.com/appwrite/appwrite/pull/8772
|
||||
* Chore release ruby SDK by @abnegate in https://github.com/appwrite/appwrite/pull/8767
|
||||
* Call migration success on success by @abnegate in https://github.com/appwrite/appwrite/pull/8782
|
||||
* Update utopia-php/system to 0.9.0 by @basert in https://github.com/appwrite/appwrite/pull/8780
|
||||
* Move createDocument from api to worker by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8776
|
||||
* Add missing indexes by @christyjacob4 in https://github.com/appwrite/appwrite/pull/8803
|
||||
* Update database by @abnegate in https://github.com/appwrite/appwrite/pull/8809
|
||||
* Fix typo in BLR region by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8756
|
||||
* Add tests for project variables by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8815
|
||||
* Replace 'Expires' with 'Cache-Control: private' header to avoid CDN caching by @basert in https://github.com/appwrite/appwrite/pull/8836
|
||||
* Allow blocking based on resource attributes by @basert in https://github.com/appwrite/appwrite/pull/8812
|
||||
* Check if resource is blocked inside functions worker by @basert in https://github.com/appwrite/appwrite/pull/8855
|
||||
* Fix missing allow attribute by @abnegate in https://github.com/appwrite/appwrite/pull/8889
|
||||
* Revert function execution order by @basert in https://github.com/appwrite/appwrite/pull/8857
|
||||
* Use resource type constants by @basert in https://github.com/appwrite/appwrite/pull/8895
|
||||
* Update Database lib by @PineappleIOnic in https://github.com/appwrite/appwrite/pull/8680
|
||||
* Update database by @abnegate in https://github.com/appwrite/appwrite/pull/8917
|
||||
* Update database by @abnegate in https://github.com/appwrite/appwrite/pull/8923
|
||||
* Update database for transaction counter fixes with retries by @abnegate in https://github.com/appwrite/appwrite/pull/8927
|
||||
* Validate string permissions by @fogelito in https://github.com/appwrite/appwrite/pull/8929
|
||||
* Add PubSub adapter support by @basert in https://github.com/appwrite/appwrite/pull/8905
|
||||
* List memberships as client by @loks0n in https://github.com/appwrite/appwrite/pull/8913
|
||||
* Fix XDebug Extension not being removed by @PineappleIOnic in https://github.com/appwrite/appwrite/pull/8891
|
||||
* Update database by @abnegate in https://github.com/appwrite/appwrite/pull/8946
|
||||
* Use utopia compression by @loks0n in https://github.com/appwrite/appwrite/pull/8938
|
||||
* Make compression minimum size configurable by @loks0n in https://github.com/appwrite/appwrite/pull/8947
|
||||
* Revert "Update database" by @christyjacob4 in https://github.com/appwrite/appwrite/pull/8949
|
||||
* Fix setpaused by @loks0n in https://github.com/appwrite/appwrite/pull/8948
|
||||
* Use getDocument instead of find() for rules by @christyjacob4 in https://github.com/appwrite/appwrite/pull/8951
|
||||
* Remove double fetch from migrations worker by @PineappleIOnic in https://github.com/appwrite/appwrite/pull/8956
|
||||
* Fix memberships privacy MFA by @loks0n in https://github.com/appwrite/appwrite/pull/8969
|
||||
* Add telemetry by @basert in https://github.com/appwrite/appwrite/pull/8960
|
||||
* Send migration errors individually by @PineappleIOnic in https://github.com/appwrite/appwrite/pull/8959
|
||||
* Add console sdk previews by @TorstenDittmann in https://github.com/appwrite/appwrite/pull/8990
|
||||
* Unset index length by @fogelito in https://github.com/appwrite/appwrite/pull/8978
|
||||
* Update base to 0.9.5 by @basert in https://github.com/appwrite/appwrite/pull/9005
|
||||
* Sync main into 1.6.x by @TorstenDittmann in https://github.com/appwrite/appwrite/pull/9011
|
||||
* Improved shared tables V2 by @abnegate in https://github.com/appwrite/appwrite/pull/9013
|
||||
* Ensure backwards compatibility for 1.6.x by @christyjacob4 in https://github.com/appwrite/appwrite/pull/9018
|
||||
|
||||
# Version 1.6.0
|
||||
|
||||
## What's Changed
|
||||
|
||||
### Notable changes
|
||||
|
||||
* Allow execution filter attributes in [#7607](https://github.com/appwrite/appwrite/pull/7607)
|
||||
* Add dynamic API keys for function executions in [#7512](https://github.com/appwrite/appwrite/pull/7512)
|
||||
* Add metrics for successful and failed builds in [#8210](https://github.com/appwrite/appwrite/pull/8210)
|
||||
* Update logging config to use a DSN approach in [#8187](https://github.com/appwrite/appwrite/pull/8187)
|
||||
* Add projects.createJWT endpoint for dynamic keys in [#8213](https://github.com/appwrite/appwrite/pull/8213)
|
||||
* Add users.createJWT() endpoint for local function development in [#8207](https://github.com/appwrite/appwrite/pull/8207)
|
||||
* Added cancel build endpoint in [#7605](https://github.com/appwrite/appwrite/pull/7605)
|
||||
* Add CLI as a function deployment type in [#8215](https://github.com/appwrite/appwrite/pull/8215)
|
||||
* Add vcs.getRepositoryContents() endpoint in [#8330](https://github.com/appwrite/appwrite/pull/8330)
|
||||
* Add appwrite version in function variables in [#8336](https://github.com/appwrite/appwrite/pull/8336)
|
||||
* Add support for scheduled executions in [#8243](https://github.com/appwrite/appwrite/pull/8243)
|
||||
* Add endpoint to delete execution in [#8337](https://github.com/appwrite/appwrite/pull/8337)
|
||||
* OPR v4 support in [#8323](https://github.com/appwrite/appwrite/pull/8323)
|
||||
* Mock OTP and phone numbers in [#7565](https://github.com/appwrite/appwrite/pull/7565)
|
||||
* Support scheduled executions in [#8355](https://github.com/appwrite/appwrite/pull/8355)
|
||||
* Add alert for new sessions in [#8315](https://github.com/appwrite/appwrite/pull/8315)
|
||||
* Update delete authenticator to remove OTP Validation in [#8367](https://github.com/appwrite/appwrite/pull/8367)
|
||||
* Track project last activity in [#8366](https://github.com/appwrite/appwrite/pull/8366)
|
||||
* Containerize the console in [#8406](https://github.com/appwrite/appwrite/pull/8406)
|
||||
* Implement MBSeconds Metric on 1.5.X in [#8385](https://github.com/appwrite/appwrite/pull/8385)
|
||||
* Support JWTs without session ID in [#8420](https://github.com/appwrite/appwrite/pull/8420)
|
||||
* 1.6.x sdks in [#8359](https://github.com/appwrite/appwrite/pull/8359)
|
||||
* Base migration for 1.6.x in [#8417](https://github.com/appwrite/appwrite/pull/8417)
|
||||
* 1.6.x migrations and filters in [#8403](https://github.com/appwrite/appwrite/pull/8403)
|
||||
* Add APPWRITE_REGION in function variables in [#8394](https://github.com/appwrite/appwrite/pull/8394)
|
||||
* Support dynamic keys for domain executions in [#8428](https://github.com/appwrite/appwrite/pull/8428)
|
||||
* Bump DBIP to latest version in [#8467](https://github.com/appwrite/appwrite/pull/8467)
|
||||
* Automatically restart function on crash in [#8473](https://github.com/appwrite/appwrite/pull/8473)
|
||||
* Don't send session alerts for otp and magic-url logins in [#8459](https://github.com/appwrite/appwrite/pull/8459)
|
||||
* Mark 4XX executions as successful in [#8493](https://github.com/appwrite/appwrite/pull/8493)
|
||||
* Add dynamic keys in builds in [#8492](https://github.com/appwrite/appwrite/pull/8492)
|
||||
* Allow deployment queries on type and size in [#8515](https://github.com/appwrite/appwrite/pull/8515)
|
||||
* Add OTP email template in [#8501](https://github.com/appwrite/appwrite/pull/8501)
|
||||
* Update console links in [#8523](https://github.com/appwrite/appwrite/pull/8523)
|
||||
* Add multipart support in [#8477](https://github.com/appwrite/appwrite/pull/8477)
|
||||
* Separate deployment sizes in [#8556](https://github.com/appwrite/appwrite/pull/8556)
|
||||
* Add go runtime in [#8572](https://github.com/appwrite/appwrite/pull/8572)
|
||||
* Add react native platform in [#8562](https://github.com/appwrite/appwrite/pull/8562)
|
||||
* Merge deployments and build storage metrics together in API in [#8443](https://github.com/appwrite/appwrite/pull/8443)
|
||||
* Support string attribute resizing in [#8597](https://github.com/appwrite/appwrite/pull/8597)
|
||||
* Support renaming attributes in [#8544](https://github.com/appwrite/appwrite/pull/8544)
|
||||
* Add VCS vars to deployments & executions in [#8631](https://github.com/appwrite/appwrite/pull/8631)
|
||||
* Function storage metrics in [#8668](https://github.com/appwrite/appwrite/pull/8668)
|
||||
* External messaging usage count in [#8672](https://github.com/appwrite/appwrite/pull/8672)
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix execution duration in [#8357](https://github.com/appwrite/appwrite/pull/8357)
|
||||
* Fix file size calculations in [#8432](https://github.com/appwrite/appwrite/pull/8432)
|
||||
* Fix disabled function logging in [#8398](https://github.com/appwrite/appwrite/pull/8398)
|
||||
* Fix function redeployments in [#8434](https://github.com/appwrite/appwrite/pull/8434)
|
||||
* Add value to variables template in [#8483](https://github.com/appwrite/appwrite/pull/8483)
|
||||
* Fix build size limits in [#8396](https://github.com/appwrite/appwrite/pull/8396)
|
||||
* Fix deployment method name in [#8490](https://github.com/appwrite/appwrite/pull/8490)
|
||||
* Fix function disconnecting from git in [#8500](https://github.com/appwrite/appwrite/pull/8500)
|
||||
* Increase buckets metadata in [#8452](https://github.com/appwrite/appwrite/pull/8452)
|
||||
* Fix deploy from git with space in [#8517](https://github.com/appwrite/appwrite/pull/8517)
|
||||
* Fix missing build logs in [#8484](https://github.com/appwrite/appwrite/pull/8484)
|
||||
* Delete team memberships synchronously in [#8217](https://github.com/appwrite/appwrite/pull/8217)
|
||||
* Fix Anyof validator in specs in [#8543](https://github.com/appwrite/appwrite/pull/8543)
|
||||
* Fix missing function variables in [#8554](https://github.com/appwrite/appwrite/pull/8554)
|
||||
* Fix deadlock in [#8609](https://github.com/appwrite/appwrite/pull/8609)
|
||||
* Fix domain execution stats in [#8608](https://github.com/appwrite/appwrite/pull/8608)
|
||||
* Update console redirect to include query params in [#8619](https://github.com/appwrite/appwrite/pull/8619)
|
||||
* Update abuse-key for mfa challenge endpoints in [#8649](https://github.com/appwrite/appwrite/pull/8649)
|
||||
* Fix cross-project scheduler stability in [#8641](https://github.com/appwrite/appwrite/pull/8641)
|
||||
* Fix vcs deployment size in [#8640](https://github.com/appwrite/appwrite/pull/8640)
|
||||
* Fix logging behaviour for Functions in [#8627](https://github.com/appwrite/appwrite/pull/8627)
|
||||
* Add retention env vars to deletes worker in [#8662](https://github.com/appwrite/appwrite/pull/8662)
|
||||
* Fix scheduled executions data in [#8639](https://github.com/appwrite/appwrite/pull/8639)
|
||||
|
||||
### Miscellaneous
|
||||
|
||||
* Sync 1.6.x with main in [#8163](https://github.com/appwrite/appwrite/pull/8163)
|
||||
* Remove build ID from rebuild deployment endpoint in [#8214](https://github.com/appwrite/appwrite/pull/8214)
|
||||
* 1.6.x specs in [#8304](https://github.com/appwrite/appwrite/pull/8304)
|
||||
* Sync with main in [#8295](https://github.com/appwrite/appwrite/pull/8295)
|
||||
* Fix 1.6.x failing tests in [#8333](https://github.com/appwrite/appwrite/pull/8333)
|
||||
* Ensure CI/CD works in [#8350](https://github.com/appwrite/appwrite/pull/8350)
|
||||
* Update specs in [#8356](https://github.com/appwrite/appwrite/pull/8356)
|
||||
* Sync main to 1.6.x in [#8430](https://github.com/appwrite/appwrite/pull/8430)
|
||||
* Add scheduledAt in execution response model in [#8425](https://github.com/appwrite/appwrite/pull/8425)
|
||||
* Move functions marketplace to appwrite in [#8427](https://github.com/appwrite/appwrite/pull/8427)
|
||||
* Refactor deployment check in function tests in [#8444](https://github.com/appwrite/appwrite/pull/8444)
|
||||
* Add ci/cd benchmark in [#8414](https://github.com/appwrite/appwrite/pull/8414)
|
||||
* Upgrade SDK version in [#8465](https://github.com/appwrite/appwrite/pull/8465)
|
||||
* Improve session alert in [#8399](https://github.com/appwrite/appwrite/pull/8399)
|
||||
* Address review comments in [#8422](https://github.com/appwrite/appwrite/pull/8422)
|
||||
* Add scopes to function template in [#8496](https://github.com/appwrite/appwrite/pull/8496)
|
||||
* Update benchmark comment in [#8507](https://github.com/appwrite/appwrite/pull/8507)
|
||||
* Add key to runtime model in [#8503](https://github.com/appwrite/appwrite/pull/8503)
|
||||
* Upgrade logger in [#8497](https://github.com/appwrite/appwrite/pull/8497)
|
||||
* Change default email addresses in [#8466](https://github.com/appwrite/appwrite/pull/8466)
|
||||
* Improve scheduled executions in [#8412](https://github.com/appwrite/appwrite/pull/8412)
|
||||
* Sync 1.5.x into main in [#8509](https://github.com/appwrite/appwrite/pull/8509)
|
||||
* Sync 1.6 with main in [#8529](https://github.com/appwrite/appwrite/pull/8529)
|
||||
* Fix templates CORS in [#8528](https://github.com/appwrite/appwrite/pull/8528)
|
||||
* Update size to specification for variable runtimes in [#8537](https://github.com/appwrite/appwrite/pull/8537)
|
||||
* Add boundary to multipart header in [#8539](https://github.com/appwrite/appwrite/pull/8539)
|
||||
* Support manual templates in [#8527](https://github.com/appwrite/appwrite/pull/8527)
|
||||
* Reorder runtimes in [#8540](https://github.com/appwrite/appwrite/pull/8540)
|
||||
* Fix 1.6 bugs in [#8358](https://github.com/appwrite/appwrite/pull/8358)
|
||||
* Add seconds precision to scheduledAt in [#8546](https://github.com/appwrite/appwrite/pull/8546)
|
||||
* Update docker base image in [#8485](https://github.com/appwrite/appwrite/pull/8485)
|
||||
* Update create execution return type in [#8542](https://github.com/appwrite/appwrite/pull/8542)
|
||||
* Default fallback to for templateBranch in [#8547](https://github.com/appwrite/appwrite/pull/8547)
|
||||
* Fix env vars functions test in [#8555](https://github.com/appwrite/appwrite/pull/8555)
|
||||
* Fix session alerts in [#8550](https://github.com/appwrite/appwrite/pull/8550)
|
||||
* Add runtime controls in [#8384](https://github.com/appwrite/appwrite/pull/8384)
|
||||
* Revert request type to json in create execution in [#8563](https://github.com/appwrite/appwrite/pull/8563)
|
||||
* Sync 1.6.x Filters and Migrations with latest in [#8553](https://github.com/appwrite/appwrite/pull/8553)
|
||||
* Update sdks in [#8551](https://github.com/appwrite/appwrite/pull/8551)
|
||||
* Update Docs in [#8567](https://github.com/appwrite/appwrite/pull/8567)
|
||||
* Headers validator benchmark in [#8561](https://github.com/appwrite/appwrite/pull/8561)
|
||||
* Fix go version in [#8571](https://github.com/appwrite/appwrite/pull/8571)
|
||||
* Update dependencies in [#8574](https://github.com/appwrite/appwrite/pull/8574)
|
||||
* Upgrade console in [#8575](https://github.com/appwrite/appwrite/pull/8575)
|
||||
* 1.6.x logging test in [#8580](https://github.com/appwrite/appwrite/pull/8580)
|
||||
* Bump console sdk in [#8581](https://github.com/appwrite/appwrite/pull/8581)
|
||||
* Update sdks in [#8582](https://github.com/appwrite/appwrite/pull/8582)
|
||||
* Add changelogs for dart and flutter in [#8587](https://github.com/appwrite/appwrite/pull/8587)
|
||||
* Add payload validator in [#8594](https://github.com/appwrite/appwrite/pull/8594)
|
||||
* Update geodb in [#8615](https://github.com/appwrite/appwrite/pull/8615)
|
||||
* Update createdeployment methodtype to upload in [#8616](https://github.com/appwrite/appwrite/pull/8616)
|
||||
* Remove tenant in document filter in [#8624](https://github.com/appwrite/appwrite/pull/8624)
|
||||
* Improve mail datetime format in [#8628](https://github.com/appwrite/appwrite/pull/8628)
|
||||
* Fix router function execution logging in [#8625](https://github.com/appwrite/appwrite/pull/8625)
|
||||
* Add Functions templates async test in [#8622](https://github.com/appwrite/appwrite/pull/8622)
|
||||
* Update console in [#8629](https://github.com/appwrite/appwrite/pull/8629)
|
||||
* 1.6.1 in [#8630](https://github.com/appwrite/appwrite/pull/8630)
|
||||
* Update version in [#8646](https://github.com/appwrite/appwrite/pull/8646)
|
||||
* Phone auth metric rename in [#8648](https://github.com/appwrite/appwrite/pull/8648)
|
||||
* Pretty print specs in [#8643](https://github.com/appwrite/appwrite/pull/8643)
|
||||
* Fix messaging metrics in [#8674](https://github.com/appwrite/appwrite/pull/8674)
|
||||
* Bump console to 5.0.6 in [#8585](https://github.com/appwrite/appwrite/pull/8585)
|
||||
|
||||
# Version 1.5.10
|
||||
|
||||
## What's Changed
|
||||
|
||||
### Notable changes
|
||||
|
||||
* Bump console to version 4.3.30 in [#8520](https://github.com/appwrite/appwrite/pull/8520)
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix migration stuck at "Starting Data Migration [...]" in [#8519](https://github.com/appwrite/appwrite/pull/8519)
|
||||
|
||||
# Version 1.5.9
|
||||
|
||||
## What's Changed
|
||||
|
||||
### Notable changes
|
||||
|
||||
* Add Darija (Moroccan Arabic) translation file in [7501](https://github.com/appwrite/appwrite/pull/7501)
|
||||
* Bump console to version 4.3.29 in [8504](https://github.com/appwrite/appwrite/pull/8504)
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix domain check in [8472](https://github.com/appwrite/appwrite/pull/8472)
|
||||
* Fix "API must be called in the coroutine" in [8495](https://github.com/appwrite/appwrite/pull/8495)
|
||||
* Bump executor version from 0.5.5 to 0.5.7 in [8502](https://github.com/appwrite/appwrite/pull/8502)
|
||||
|
||||
### Miscellaneous
|
||||
* Add profiler for debugging in [8397](https://github.com/appwrite/appwrite/pull/8397)
|
||||
* Document APIs that don't support redirects in [8233](https://github.com/appwrite/appwrite/pull/8233)
|
||||
|
||||
# Version 1.5.8
|
||||
|
||||
## What's Changed
|
||||
|
||||
### Notable changes
|
||||
|
||||
* Support Twilio messaging service SID in [8222](https://github.com/appwrite/appwrite/pull/8222)
|
||||
* Improve cache performance in [8230](https://github.com/appwrite/appwrite/pull/8230)
|
||||
* Add hk in translations in [8179](https://github.com/appwrite/appwrite/pull/8179)
|
||||
* Update pwd abuse in [8255](https://github.com/appwrite/appwrite/pull/8255)
|
||||
* Remove detailed trace in [8374](https://github.com/appwrite/appwrite/pull/8374)
|
||||
* Remove relationship attributes from realtime event payloads in [8381](https://github.com/appwrite/appwrite/pull/8381)
|
||||
* Sanitize URLs in emails in [8415](https://github.com/appwrite/appwrite/pull/8415)
|
||||
* Bump console to version 4.3.27 in [8482](https://github.com/appwrite/appwrite/pull/8482)
|
||||
|
||||
### Fixes
|
||||
|
||||
* Ensure usage is counted for errors in [8120](https://github.com/appwrite/appwrite/pull/8120)
|
||||
* Fix MFA for OAuth2 only accounts in [8245](https://github.com/appwrite/appwrite/pull/8245)
|
||||
* Delete Expired Targets Per Project in [8239](https://github.com/appwrite/appwrite/pull/8239)
|
||||
* Don't set the target field if the existing target document is false in [8236](https://github.com/appwrite/appwrite/pull/8236)
|
||||
* Disable validation for project DBs during migration in [8298](https://github.com/appwrite/appwrite/pull/8298)
|
||||
* Add `default` to Collection Attributes in Migration in [8271](https://github.com/appwrite/appwrite/pull/8271)
|
||||
* Fix Create bucket endpoint validator for maximum file size in [8275](https://github.com/appwrite/appwrite/pull/8275)
|
||||
* Disable validation for subquery to prevent error in [8297](https://github.com/appwrite/appwrite/pull/8297)
|
||||
* Fix 'Missing required attribute "expire"' on `users.createSession()` in [8308](https://github.com/appwrite/appwrite/pull/8308)
|
||||
* Fix certificate emails in [8292](https://github.com/appwrite/appwrite/pull/8292)
|
||||
* Fix browser-cached deleted file in [8264](https://github.com/appwrite/appwrite/pull/8264)
|
||||
* Fix migration of firebase users [8377](https://github.com/appwrite/appwrite/pull/8377)
|
||||
* Fix `path` for vcs function deployments in [8408](https://github.com/appwrite/appwrite/pull/8408)
|
||||
* Fix calculations in [8431](https://github.com/appwrite/appwrite/pull/8431)
|
||||
* Fix bugs with migrations in [8442](https://github.com/appwrite/appwrite/pull/8442)
|
||||
* Fix queueForUsage not triggering for domain executions in [8463](https://github.com/appwrite/appwrite/pull/8463)
|
||||
* Fix realtime permission change in [8416](https://github.com/appwrite/appwrite/pull/8416)
|
||||
|
||||
### Miscellaneous
|
||||
|
||||
* Bump base image from 0.9.0 to 0.9.1 in [8238](https://github.com/appwrite/appwrite/pull/8238)
|
||||
* Use latest Platform and add Core module in [7936](https://github.com/appwrite/appwrite/pull/7936)
|
||||
* Add Test to Validate Headers aren't Overridden in [8228](https://github.com/appwrite/appwrite/pull/8228)
|
||||
* Fix hyperlink in storage docs in [8269](https://github.com/appwrite/appwrite/pull/8269)
|
||||
* Update cache & database in [8285](https://github.com/appwrite/appwrite/pull/8285)
|
||||
* Fix flaky certificate test in [8316](https://github.com/appwrite/appwrite/pull/8316)
|
||||
* Fix flaky function test in [8317](https://github.com/appwrite/appwrite/pull/8317)
|
||||
* Update account API reference in [8305](https://github.com/appwrite/appwrite/pull/8305)
|
||||
* Update functions API reference in [8346](https://github.com/appwrite/appwrite/pull/8346)
|
||||
* Implement deploymentsStorage metric for projects API in [8258](https://github.com/appwrite/appwrite/pull/8258)
|
||||
* Add new audit events in [8424](https://github.com/appwrite/appwrite/pull/8424)
|
||||
* Move mbSeconds into 1.5.x in [8449](https://github.com/appwrite/appwrite/pull/8449)
|
||||
* Clean projects cache while migrating in [8395](https://github.com/appwrite/appwrite/pull/8395)
|
||||
* Use git tags for function template in [8445](https://github.com/appwrite/appwrite/pull/8445)
|
||||
|
||||
# Version 1.5.7
|
||||
## What's Changed
|
||||
|
||||
### Fixes
|
||||
* Fix database exception wrapping by @abnegate in https://github.com/appwrite/appwrite/pull/7787
|
||||
* Fix exception wrap order by @abnegate in https://github.com/appwrite/appwrite/pull/7818
|
||||
* Fix membership query to use internalId by @lohanidamodar in https://github.com/appwrite/appwrite/pull/7834
|
||||
* Fix vcs silent mode by @vermakhushboo in https://github.com/appwrite/appwrite/pull/7683
|
||||
* Fix function domain permissions by @stnguyen90 in https://github.com/appwrite/appwrite/pull/7852
|
||||
* Fix tests required for Cloud by @lohanidamodar in https://github.com/appwrite/appwrite/pull/7777
|
||||
* Fix OAuth error code by @vermakhushboo in https://github.com/appwrite/appwrite/pull/7893
|
||||
* Fix connection reclaim logic. by @eldadfux in https://github.com/appwrite/appwrite/pull/6886
|
||||
* Fix shared queue name by @abnegate in https://github.com/appwrite/appwrite/pull/8092
|
||||
* Fix syntax error by @abnegate in https://github.com/appwrite/appwrite/pull/8093
|
||||
* Fix missing id attribute error by @abnegate in https://github.com/appwrite/appwrite/pull/8094
|
||||
* Fix tests for CL by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8076
|
||||
* Fix project deletes for shared tables by @abnegate in https://github.com/appwrite/appwrite/pull/8107
|
||||
* Handle SQL error code 'HY000' in realtime by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8106
|
||||
* Fix: Don't Override `robots.txt` for Other Domains by @ItzNotABug in https://github.com/appwrite/appwrite/pull/8185
|
||||
* Escape function build command by @stnguyen90 in https://github.com/appwrite/appwrite/pull/7808
|
||||
* Create failed execution from worker if deployment doesn't exist by @vermakhushboo in https://github.com/appwrite/appwrite/pull/7896
|
||||
* Fix: admin mode on console by @TorstenDittmann in https://github.com/appwrite/appwrite/pull/7951
|
||||
* Fix file size default limit by @shimonewman in https://github.com/appwrite/appwrite/pull/7843
|
||||
* Fix: Python failing builds by @Meldiron in https://github.com/appwrite/appwrite/pull/8078
|
||||
* Fix shared project delete by @abnegate in https://github.com/appwrite/appwrite/pull/8142
|
||||
* Fix TextMagic class name by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8132
|
||||
* Prevent functions domain and subdomain to be added as custom domain by @lohanidamodar in https://github.com/appwrite/appwrite/pull/7933
|
||||
* Fix don't publish max users exceed by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8067
|
||||
* Fix invalid cache document id by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8183
|
||||
* Fix not hiding tokens for clients via realtime by @abnegate in https://github.com/appwrite/appwrite/pull/7870
|
||||
|
||||
### Miscellaneous
|
||||
* Upload 400s to separate error logger by @PineappleIOnic in https://github.com/appwrite/appwrite/pull/7784
|
||||
* Admin mode use teamInternalId by @lohanidamodar in https://github.com/appwrite/appwrite/pull/7835
|
||||
* Chore: update avatars API by @christyjacob4 in https://github.com/appwrite/appwrite/pull/7840
|
||||
* Use internal ids for query by @lohanidamodar in https://github.com/appwrite/appwrite/pull/7838
|
||||
* Remove cloud related scripts by @shimonewman in https://github.com/appwrite/appwrite/pull/7414
|
||||
* Update VCS Comment by @vermakhushboo in https://github.com/appwrite/appwrite/pull/7854
|
||||
* Transaction and reconnection fixes by @fogelito in https://github.com/appwrite/appwrite/pull/7877
|
||||
* Feat configurable collections by @christyjacob4 in https://github.com/appwrite/appwrite/pull/7882
|
||||
* Remove var_dump calls by @stnguyen90 in https://github.com/appwrite/appwrite/pull/7884
|
||||
* Storage DO adapter http version by @lohanidamodar in https://github.com/appwrite/appwrite/pull/7905
|
||||
* Update executor version by @vermakhushboo in https://github.com/appwrite/appwrite/pull/7910
|
||||
* Comment timer tick by @vermakhushboo in https://github.com/appwrite/appwrite/pull/7911
|
||||
* Update db for relationships and object as array attributes fixes by @abnegate in https://github.com/appwrite/appwrite/pull/7917
|
||||
* Bump executor version to 0.5.1 by @vermakhushboo in https://github.com/appwrite/appwrite/pull/7925
|
||||
* Update database by @abnegate in https://github.com/appwrite/appwrite/pull/7937
|
||||
* Reclaim only current connection by @abnegate in https://github.com/appwrite/appwrite/pull/7941
|
||||
* Match memberships on internal ID by @abnegate in https://github.com/appwrite/appwrite/pull/7953
|
||||
* Chore: queue retry update by @shimonewman in https://github.com/appwrite/appwrite/pull/7991
|
||||
* Chore task addition by @shimonewman in https://github.com/appwrite/appwrite/pull/7992
|
||||
* Databases.php collection not found by @fogelito in https://github.com/appwrite/appwrite/pull/7341
|
||||
* Update database by @abnegate in https://github.com/appwrite/appwrite/pull/8036
|
||||
* Feat upgrade db by @abnegate in https://github.com/appwrite/appwrite/pull/8050
|
||||
* Handle string error codes by @fogelito in https://github.com/appwrite/appwrite/pull/7878
|
||||
* Migration Logging Improvements by @PineappleIOnic in https://github.com/appwrite/appwrite/pull/8057
|
||||
* Remove logger code from avatars.php by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8065
|
||||
* Update chunk size to 7 MB by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8060
|
||||
* Shared tables support by @abnegate in https://github.com/appwrite/appwrite/pull/7206
|
||||
* Ensure namespace is set if override equals shared tables by @abnegate in https://github.com/appwrite/appwrite/pull/8091
|
||||
* Update database by @abnegate in https://github.com/appwrite/appwrite/pull/8095
|
||||
* Disable sending realtime stats by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8104
|
||||
* Increase chunk size to 10 MB by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8099
|
||||
* Update db by @abnegate in https://github.com/appwrite/appwrite/pull/8113
|
||||
* Update executor image name to exc-1 by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8123
|
||||
* Catch DB errors on delete by @abnegate in https://github.com/appwrite/appwrite/pull/8143
|
||||
* Update Logger and migrations, implement sampler. by @PineappleIOnic in https://github.com/appwrite/appwrite/pull/8146
|
||||
* Increase shared tables projects by @abnegate in https://github.com/appwrite/appwrite/pull/8161
|
||||
* Feat: improve cold start error, merge to cloud by @loks0n in https://github.com/appwrite/appwrite/pull/8165
|
||||
* Add tests for scheduled functions by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8164
|
||||
* Remove throw PdoException in Error hook by @fogelito in https://github.com/appwrite/appwrite/pull/8169
|
||||
* Refactor localdevice injection by @byawitz in https://github.com/appwrite/appwrite/pull/8173
|
||||
* Usage sms per country code count by @shimonewman in https://github.com/appwrite/appwrite/pull/7592
|
||||
* GetEnv on worker.php by @shimonewman in https://github.com/appwrite/appwrite/pull/8026
|
||||
* Feat get env by @shimonewman in https://github.com/appwrite/appwrite/pull/8180
|
||||
* Chore: remove compose version by @loks0n in https://github.com/appwrite/appwrite/pull/8148
|
||||
* Chore update executor host default var by @abnegate in https://github.com/appwrite/appwrite/pull/8190
|
||||
* Wrap realtime stats in an edition check by @abnegate in https://github.com/appwrite/appwrite/pull/8192
|
||||
* Update executor image name by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8147
|
||||
* Feat: improve header demo values by @loks0n in https://github.com/appwrite/appwrite/pull/8089
|
||||
* Feat: add warning header by @loks0n in https://github.com/appwrite/appwrite/pull/8063
|
||||
|
||||
# Version 1.5.6
|
||||
## What's Changed
|
||||
|
||||
### Notable Changes
|
||||
|
||||
* Prevent functions domain to be used as custom domain in [#7934](https://github.com/appwrite/appwrite/pull/7934)
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix auth mode check in [#7980](https://github.com/appwrite/appwrite/pull/7980)
|
||||
* Fix templates not copying hidden files in [#7610](https://github.com/appwrite/appwrite/pull/7610)
|
||||
* Use `resourceInternalId` for Querying Function Deployments in [#8038](https://github.com/appwrite/appwrite/pull/8038)
|
||||
* Fix Email OTP not verifying account in [#8084](https://github.com/appwrite/appwrite/pull/8084)
|
||||
* Fix MFA email verification code font in [#8082](https://github.com/appwrite/appwrite/pull/8082)
|
||||
* Don't kick user and require verification after enabling MFA in [#8081](https://github.com/appwrite/appwrite/pull/8081)
|
||||
* Fix typo in credit-cards.php credit card image filename in [#8074](https://github.com/appwrite/appwrite/pull/8074)
|
||||
* Fix Deprecated Warning in Doctor.php in [#8105](https://github.com/appwrite/appwrite/pull/8105)
|
||||
* Set limit to retrieve all stats for the usage range in [#8117](https://github.com/appwrite/appwrite/pull/8117)
|
||||
* Fix email used for name when user is created via Apple OAuth2 in [#8102](https://github.com/appwrite/appwrite/pull/8102)
|
||||
|
||||
### Miscellaneous
|
||||
|
||||
* Add GitHub action to close stale issues in [#7927](https://github.com/appwrite/appwrite/pull/7927)
|
||||
* Document the standard we follow for country codes in [#8014](https://github.com/appwrite/appwrite/pull/8014)
|
||||
* Add OSV Scanner for vulnerability scans in [#6506](https://github.com/appwrite/appwrite/pull/6506)
|
||||
* Fix stale action close reason in [#8046](https://github.com/appwrite/appwrite/pull/8046)
|
||||
* Add OSV Scanner for vulnerability scans in [#8021](https://github.com/appwrite/appwrite/pull/8021)
|
||||
* Fix some typos in comments in [#7993](https://github.com/appwrite/appwrite/pull/7993)
|
||||
* Replace missing domain paths in README.md in [#8049](https://github.com/appwrite/appwrite/pull/8049)
|
||||
* Add the React Native SDK in [#7776](https://github.com/appwrite/appwrite/pull/7776)
|
||||
* Bump database in [#8080](https://github.com/appwrite/appwrite/pull/8080)
|
||||
* Add documentation for metrics in [#8088](https://github.com/appwrite/appwrite/pull/8088)
|
||||
* Add new country Palestine with its translations in [#8031](https://github.com/appwrite/appwrite/pull/8031)
|
||||
* Update users create token description in [#8129](https://github.com/appwrite/appwrite/pull/8129)
|
||||
* Bump dependencies in [#8130](https://github.com/appwrite/appwrite/pull/8130)
|
||||
|
||||
# Version 1.5.5
|
||||
## What's Changed
|
||||
### Notable changes
|
||||
|
||||
* Change SMS verification message to only have the code in [#7912](https://github.com/appwrite/appwrite/pull/7912)
|
||||
* Add new country `Taiwan` with its translations in [#7873](https://github.com/appwrite/appwrite/pull/7873)
|
||||
* Add Hong Kong (HK) to countries list in [#7962](https://github.com/appwrite/appwrite/pull/7962)
|
||||
* Add French Polynesia flag to flags.php in [#8007](https://github.com/appwrite/appwrite/pull/8007)
|
||||
* Enable auto upgrade for mariadb container in [#8020](https://github.com/appwrite/appwrite/pull/8020)
|
||||
|
||||
## Fixes
|
||||
|
||||
* Use team internal ID for checks and queries for membership in [#7836](https://github.com/appwrite/appwrite/pull/7836)
|
||||
* Use internal IDs for queries and checks in [#7839](https://github.com/appwrite/appwrite/pull/7839)
|
||||
* Remove redundant commas in [#7764](https://github.com/appwrite/appwrite/pull/7764)
|
||||
* Remove a redundant call to fetch the topic document again in [#7894](https://github.com/appwrite/appwrite/pull/7894)
|
||||
* Fix wrong refresh var for Autodesk in [#7897](https://github.com/appwrite/appwrite/pull/7897)
|
||||
* Fix email attachment example in [#7681](https://github.com/appwrite/appwrite/pull/7681)
|
||||
* Add missing chunkId param to create file abuse key in [#7913](https://github.com/appwrite/appwrite/pull/7913)
|
||||
* Fix delete message event not firing in [#7906](https://github.com/appwrite/appwrite/pull/7906)
|
||||
* Fix worker crash when using custom SMTP provider in [#7915](https://github.com/appwrite/appwrite/pull/7915)
|
||||
* Update email attachments param in [#7885](https://github.com/appwrite/appwrite/pull/7885)
|
||||
* Fix MFA protected group in [#7947](https://github.com/appwrite/appwrite/pull/7947)
|
||||
* Fix recovery code removal in [#7950](https://github.com/appwrite/appwrite/pull/7950)
|
||||
* Add recovery code to List factors in [#7949](https://github.com/appwrite/appwrite/pull/7949)
|
||||
* Fix challenge type check in [#7981](https://github.com/appwrite/appwrite/pull/7981)
|
||||
* Fix MFA links in specs in [#7966](https://github.com/appwrite/appwrite/pull/7966)
|
||||
* Add missing 'apis' attribute to projects collection in [#7997](https://github.com/appwrite/appwrite/pull/7997)
|
||||
* Update user create error message for console to be console specific in [#7996](https://github.com/appwrite/appwrite/pull/7996)
|
||||
* Add DB environment variables to appwrite-worker-mails in [#8002](https://github.com/appwrite/appwrite/pull/8002)
|
||||
* Delete related attributes on delete collection in [#7985](https://github.com/appwrite/appwrite/pull/7985)
|
||||
* Fix server errors from invalid or outdated cookies in [#8008](https://github.com/appwrite/appwrite/pull/8008)
|
||||
* Fix delete MFA authenticator response model in [#8005](https://github.com/appwrite/appwrite/pull/8005)
|
||||
* Fix MFA with admin mode in [#7984](https://github.com/appwrite/appwrite/pull/7984)
|
||||
|
||||
## Miscellaneous
|
||||
|
||||
* Update getEnv to use system lib in [#7895](https://github.com/appwrite/appwrite/pull/7895)
|
||||
* Update SDK and docs links in readme in [#7978](https://github.com/appwrite/appwrite/pull/7978)
|
||||
* Update README.md in [#6358](https://github.com/appwrite/appwrite/pull/6358)
|
||||
* Bump console to version 4.0.6 in [#8017](https://github.com/appwrite/appwrite/pull/8017)
|
||||
|
||||
# Version 1.5.4
|
||||
## What's Changed
|
||||
### Fixes
|
||||
|
||||
* Fix function build command in [#7813](https://github.com/appwrite/appwrite/pull/7813)
|
||||
* Bump executor version to fix docker conflict error in [#7804](https://github.com/appwrite/appwrite/pull/7804)
|
||||
* Fix webhooks failed connection in [#7848](https://github.com/appwrite/appwrite/pull/7848)
|
||||
* Fix msg91 params in [#7824](https://github.com/appwrite/appwrite/pull/7824)
|
||||
* Fix functions domain permissions in [#7853](https://github.com/appwrite/appwrite/pull/7853)
|
||||
|
||||
### Miscellaneous
|
||||
|
||||
* Bump console to version 4.0.5 in [#7863](https://github.com/appwrite/appwrite/pull/7863)
|
||||
* Fix function build command by @abnegate in https://github.com/appwrite/appwrite/pull/7813
|
||||
|
||||
# Version 1.5.3
|
||||
## What's Changed
|
||||
|
||||
+9
-209
@@ -1,6 +1,6 @@
|
||||
# Contributing
|
||||
|
||||
We would :heart: you to contribute to Appwrite and help make it better! We want contributing to Appwrite to be fun, enjoyable, and educational for anyone and everyone. All contributions are welcome, including issues, and new docs, as well as updates and tweaks, blog posts, workshops, and more.
|
||||
We would ❤️ you to contribute to Appwrite and help make it better! We want contributing to Appwrite to be fun, enjoyable, and educational for anyone and everyone. All contributions are welcome, including issues, and new docs, as well as updates and tweaks, blog posts, workshops, and more.
|
||||
|
||||
## Here for Hacktoberfest?
|
||||
If you're here to contribute during Hacktoberfest, we're so happy to see you here. Appwrite has been a long-time participant of Hacktoberfest and we welcome you, whatever your experience level. This year, we're **only taking contributions for issues tagged** `hacktoberfest`, so we can focus our resources to support your contributions.
|
||||
@@ -9,13 +9,13 @@ You can [find issues using this query](https://github.com/search?q=org%3Aappwrit
|
||||
|
||||
## How to Start?
|
||||
|
||||
If you are worried or don’t know where to start, check out the next section that explains what kind of help we could use and where you can get involved. You can send your questions to [@appwrite on Twitter](https://twitter.com/appwrite) or to anyone from the [Appwrite team on Discord](https://appwrite.io/discord). You can also submit an issue, and a maintainer can guide you!
|
||||
If you are worried or don’t know where to start, check out the next section that explains what kind of help we could use and where you can get involved. You can send your questions to [@appwrite](https://twitter.com/appwrite) on Twitter or to anyone from the [Appwrite team on Discord](https://appwrite.io/discord). You can also submit an issue, and a maintainer can guide you!
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
Help us keep Appwrite open and inclusive. Please read and follow our [Code of Conduct](https://github.com/appwrite/.github/blob/main/CODE_OF_CONDUCT.md).
|
||||
|
||||
## Submit a Pull Request :rocket:
|
||||
## Submit a Pull Request 🚀
|
||||
|
||||
Branch naming convention is as following
|
||||
|
||||
@@ -65,13 +65,13 @@ Now, go a step further by running the linter using the following command to manu
|
||||
composer lint <your file path>
|
||||
```
|
||||
|
||||
This will give you a list of errors to rectify. If you need more information on the errors, you can pass in additional command line arguments to get more verbose information. More lists of available arguments can be found [on PHP_Codesniffer usage Wiki](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Usage). A very useful command line argument is `--report=diff`. This will give you the expected changes by the linter for easy fixing of formatting issues.
|
||||
This will give you a list of errors to rectify. If you need more information on the errors, you can pass in additional command line arguments to get more verbose information. More lists of available arguments can be found [here](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Usage). A very useful command line argument is `--report=diff`. This will give you the expected changes by the linter for easy fixing of formatting issues.
|
||||
|
||||
```bash
|
||||
composer lint --report=diff <your file path>
|
||||
```
|
||||
|
||||
5. Push changes to GitHub
|
||||
5. Push changes to GitHub.
|
||||
|
||||
```
|
||||
$ git push origin [name_of_your_new_branch]
|
||||
@@ -148,14 +148,6 @@ Learn more at our [Technology Stack](#technology-stack) section.
|
||||
- [Microservices vs Monolithic](https://www.mulesoft.com/resources/api/microservices-vs-monolithic#:~:text=Microservices%20architecture%20vs%20monolithic%20architecture&text=A%20monolithic%20application%20is%20built%20as%20a%20single%20unit.&text=To%20make%20any%20alterations%20to,formally%20with%20business%2Doriented%20APIs.)
|
||||
- [MVVM](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel) - Appwrite console architecture
|
||||
|
||||
##### Container Namespace Conventions
|
||||
To keep our services easy to understand within Docker we follow a naming convention for all our containers depending on it's intended use.
|
||||
|
||||
`appwrite-worker-X` - Workers (`src/Appwrite/Platform/Workers/*`)
|
||||
`appwrite-task-X` - Tasks (`src/Appwrite/Platform/Tasks/*`)
|
||||
|
||||
Other containes should be named the same as their service, for example `redis` should just be called `redis`.
|
||||
|
||||
##### Security
|
||||
|
||||
- [Appwrite Auth and ACL](https://github.com/appwrite/appwrite/blob/master/docs/specs/authentication.drawio.svg)
|
||||
@@ -163,28 +155,6 @@ Other containes should be named the same as their service, for example `redis` s
|
||||
- [Encryption](https://medium.com/searchencrypt/what-is-encryption-how-does-it-work-e8f20e340537#:~:text=Encryption%20is%20a%20process%20that,%2C%20or%20decrypt%2C%20the%20information.)
|
||||
- [Hashing](https://searchsqlserver.techtarget.com/definition/hashing#:~:text=Hashing%20is%20the%20transformation%20of,it%20using%20the%20original%20value.)
|
||||
|
||||
## Modules
|
||||
|
||||
As Appwrite grows, we noticed approach of having all service endpoints in `app/controllers/api/[service].php` is not maintainable. Not only it creates massive files, it also doesnt contain all product's features such as workers or tasks. While there might still be some occurances of those controller files, we avoid it in all new development, and gradually migrate existing controllers to **HTTP modules**.
|
||||
|
||||
### HTTP Endpoints
|
||||
|
||||
Every endpoint file follows below structure, making it consistent with HTTP REST endpoint path:
|
||||
|
||||
```
|
||||
src/Appwrite/Platform/Modules/[service]/Http/[resource]/[action].php
|
||||
```
|
||||
|
||||
Tips and tricks:
|
||||
|
||||
1. If endpoint doesn't have resource, use service name as resource name too
|
||||
> Example: `Modules/Sites/Http/Sites/Get.php`
|
||||
|
||||
2. If there are multiple resources, use then all in folder structure
|
||||
> Example: `Modules/Sites/Http/Deployments/Builds/Create.php`
|
||||
|
||||
3. Action can only be `Get`, `Create`, `Update`, `Delete` or `XList`
|
||||
|
||||
## Architecture
|
||||
|
||||
Appwrite's current structure is a combination of both [Monolithic](https://en.wikipedia.org/wiki/Monolithic_application) and [Microservice](https://en.wikipedia.org/wiki/Microservices) architectures.
|
||||
@@ -323,7 +293,7 @@ Adding a new dependency should have vital value for the product with minimum pos
|
||||
|
||||
## Introducing New Features
|
||||
|
||||
We would :sparkling_heart: you to contribute to Appwrite, but we also want to ensure Appwrite is loyal to its vision and mission statement :pray:.
|
||||
We would 💖 you to contribute to Appwrite, but we also want to ensure Appwrite is loyal to its vision and mission statement 🙏.
|
||||
|
||||
For us to find the right balance, please open an issue explaining your ideas before introducing a new pull request.
|
||||
|
||||
@@ -331,146 +301,6 @@ This will allow the Appwrite community to sufficiently discuss the new feature v
|
||||
|
||||
This is also important for the Appwrite lead developers to be able to provide technical input and potentially a different emphasis regarding the feature design and architecture. Some bigger features might need to go through our [RFC process](https://github.com/appwrite/rfc).
|
||||
|
||||
## Adding New Usage Metrics
|
||||
|
||||
These are the current metrics we collect usage stats for:
|
||||
|
||||
| Metric | Description |
|
||||
|--------|-------------------------------------------------|
|
||||
| teams | Total number of teams per project |
|
||||
| users | Total number of users per project|
|
||||
| executions | Total number of executions per project |
|
||||
| databases | Total number of databases per project |
|
||||
| databases.storage | Total amount of storage used by all databases per project (in bytes) |
|
||||
| collections | Total number of collections per project |
|
||||
| {databaseInternalId}.collections | Total number of collections per database|
|
||||
| {databaseInternalId}.storage | Sum of database storage (in bytes) |
|
||||
| documents | Total number of documents per project |
|
||||
| {databaseInternalId}.{collectionInternalId}.documents | Total number of documents per collection |
|
||||
| {databaseInternalId}.{collectionInternalId}.storage | Sum of database storage used by the collection (in bytes) |
|
||||
| buckets | Total number of buckets per project |
|
||||
| files | Total number of files per project |
|
||||
| {bucketInternalId}.files.storage | Sum of files.storage per bucket (in bytes) |
|
||||
| functions | Total number of functions per project |
|
||||
| deployments | Total number of deployments per project |
|
||||
| builds | Total number of builds per project |
|
||||
| {resourceType}.{resourceInternalId}.deployments | Total number of deployments per function |
|
||||
| executions | Total number of executions per project |
|
||||
| {functionInternalId}.executions | Total number of executions per function |
|
||||
| files.storage | Sum of files storage per project (in bytes) |
|
||||
| deployments.storage | Sum of deployments storage per project (in bytes) |
|
||||
| {resourceType}.{resourceInternalId}.deployments.storage | Sum of deployments storage per function (in bytes) |
|
||||
| builds.storage | Sum of builds storage per project (in bytes) |
|
||||
| builds.compute | Sum of compute duration per project (in seconds) |
|
||||
| {functionInternalId}.builds.storage | Sum of builds storage per function (in bytes) |
|
||||
| {functionInternalId}.builds.compute | Sum of compute duration per function (in seconds) |
|
||||
| network.requests | Total number of network requests per project |
|
||||
| executions.compute | Sum of compute duration per project (in seconds) |
|
||||
| network.inbound | Sum of network inbound traffic per project (in bytes)|
|
||||
| network.outbound | Sum of network outbound traffic per project (in bytes)|
|
||||
|
||||
> Note: The curly brackets in the metric name represents a template and is replaced with a value when the metric is processed.
|
||||
|
||||
Metrics are collected within 3 scopes Daily, monthly, an infinity. Adding new usage metric in order to aggregate usage stats is very simple, but very much dependent on where do you want to collect
|
||||
statistics ,via API or via background worker. For both cases you will need to add a `const` variable in `app/init.php` under the usage metrics list using the naming convention `METRIC_<RESOURCE_NAME>` as shown below.
|
||||
|
||||
```php
|
||||
// Usage metrics
|
||||
const METRIC_FUNCTIONS = 'functions';
|
||||
const METRIC_DEPLOYMENTS = 'deployments';
|
||||
const METRIC_DEPLOYMENTS_STORAGE = 'deployments.storage';
|
||||
```
|
||||
|
||||
Next follow the appropriate steps below depending on whether you're adding the metric to the API or the worker.
|
||||
|
||||
**API**
|
||||
|
||||
In file `app/controllers/shared/api.php` On the database listener, add to an existing or create a new switch case. Add a call to the usage worker with your new metric const like so:
|
||||
|
||||
```php
|
||||
case $document->getCollection() === 'teams':
|
||||
$queueForStatsUsage
|
||||
->addMetric(METRIC_TEAMS, $value); // per project
|
||||
break;
|
||||
```
|
||||
There are cases when you need to handle metric that has a parent entity, like buckets.
|
||||
Files are linked to a parent bucket, you should verify you remove the files stats when you delete a bucket.
|
||||
|
||||
In that case you need also to handle children removal using addReduce() method call.
|
||||
|
||||
```php
|
||||
|
||||
case $document->getCollection() === 'buckets': //buckets
|
||||
$queueForStatsUsage
|
||||
->addMetric(METRIC_BUCKETS, $value); // per project
|
||||
if ($event === Database::EVENT_DOCUMENT_DELETE) {
|
||||
$queueForStatsUsage
|
||||
->addReduce($document);
|
||||
}
|
||||
break;
|
||||
|
||||
```
|
||||
|
||||
In addition, you will also need to add some logic to the `reduce()` method of the Usage worker located in `/src/Appwrite/Platform/Workers/Usage.php`, like so:
|
||||
|
||||
```php
|
||||
case $document->getCollection() === 'buckets':
|
||||
$files = $dbForProject->getDocument('stats', md5(self::INFINITY_PERIOD . str_replace('{bucketInternalId}', $document->getInternalId(), METRIC_BUCKET_ID_FILES)));
|
||||
$storage = $dbForProject->getDocument('stats', md5(self::INFINITY_PERIOD . str_replace('{bucketInternalId}', $document->getInternalId(), METRIC_BUCKET_ID_FILES_STORAGE)));
|
||||
|
||||
if (!empty($files['value'])) {
|
||||
$metrics[] = [
|
||||
'key' => METRIC_FILES,
|
||||
'value' => ($files['value'] * -1),
|
||||
];
|
||||
}
|
||||
|
||||
if (!empty($storage['value'])) {
|
||||
$metrics[] = [
|
||||
'key' => METRIC_FILES_STORAGE,
|
||||
'value' => ($storage['value'] * -1),
|
||||
];
|
||||
}
|
||||
break;
|
||||
```
|
||||
|
||||
**Background worker**
|
||||
|
||||
You need to inject the usage queue in the desired worker on the constructor method
|
||||
```php
|
||||
/**
|
||||
* @throws Exception
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this
|
||||
->desc('Functions worker')
|
||||
->groups(['functions'])
|
||||
->inject('message')
|
||||
->inject('dbForProject')
|
||||
->inject('queueForFunctions')
|
||||
->inject('queueForEvents')
|
||||
->inject('queueForStatsUsage')
|
||||
->inject('log')
|
||||
->callback(fn (Message $message, Database $dbForProject, Func $queueForFunctions, Event $queueForEvents, StatsUsage $queueForStatsUsage, Log $log) => $this->action($message, $dbForProject, $queueForFunctions, $queueForEvents, $queueForStatsUsage, $log));
|
||||
}
|
||||
```
|
||||
|
||||
and then trigger the queue with the new metric like so:
|
||||
|
||||
```php
|
||||
$queueForStatsUsage
|
||||
->addMetric(METRIC_BUILDS, 1)
|
||||
->addMetric(METRIC_BUILDS_STORAGE, $build->getAttribute('size', 0))
|
||||
->addMetric(METRIC_BUILDS_COMPUTE, (int)$build->getAttribute('duration', 0) * 1000)
|
||||
->addMetric(str_replace('{functionInternalId}', $function->getInternalId(), METRIC_FUNCTION_ID_BUILDS), 1)
|
||||
->addMetric(str_replace('{functionInternalId}', $function->getInternalId(), METRIC_FUNCTION_ID_BUILDS_STORAGE), $build->getAttribute('size', 0))
|
||||
->addMetric(str_replace('{functionInternalId}', $function->getInternalId(), METRIC_FUNCTION_ID_BUILDS_COMPUTE), (int)$build->getAttribute('duration', 0) * 1000)
|
||||
->setProject($project)
|
||||
->trigger();
|
||||
```
|
||||
|
||||
|
||||
## Build
|
||||
|
||||
To build a new version of the Appwrite server, all you need to do is run the build.sh file like this:
|
||||
@@ -514,26 +344,14 @@ Things to remember when releasing SDKs:
|
||||
|
||||
## Debug
|
||||
|
||||
Appwrite uses [XDebug](https://github.com/xdebug/xdebug) debugger, which can be made available during build of Appwrite. You can connect to the debugger using VS Code's [PHP Debug](https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug) extension.
|
||||
Appwrite uses [XDebug](https://github.com/xdebug/xdebug) debugger, which can be made available during build of Appwrite. You can connect to the debugger using VS Code's [PHP Debug](https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug) extension.
|
||||
|
||||
If you are in PHP Storm you don't need any plugin. Below are the settings required for remote debugger connection:
|
||||
If you are in PHP Storm you don't need any plugin. Below are the settings required for remote debugger connection:
|
||||
|
||||
1. Set **DEBUG** build arg in **appwrite** service in **docker-compose.yml** file.
|
||||
2. If needed edit the **dev/xdebug.ini** file to your needs.
|
||||
3. Launch your Appwrite instance while your debugger is listening for connections.
|
||||
|
||||
## Profiling
|
||||
Appwrite uses XDebug [Profiler](https://xdebug.org/docs/profiler) for generating **CacheGrind** files. The generated file would be located in each of the `appwrite` containers inside the `/tmp/xdebug` folder.
|
||||
|
||||
To disable the profiler while debugging remove the `,profiler` mode from the `xdebug.ini` file
|
||||
```diff
|
||||
zend_extension=xdebug
|
||||
|
||||
[xdebug]
|
||||
-xdebug.mode=develop,debug,profile
|
||||
+xdebug.mode=develop,debug
|
||||
```
|
||||
|
||||
### VS Code Launch Configuration
|
||||
|
||||
```json
|
||||
@@ -578,12 +396,6 @@ To run end-2-end tests for a specific service use:
|
||||
docker compose exec appwrite test /usr/src/code/tests/e2e/Services/[ServiceName]
|
||||
```
|
||||
|
||||
To run one specific test:
|
||||
|
||||
```bash
|
||||
docker compose exec appwrite vendor/bin/phpunit --filter [FunctionName]
|
||||
```
|
||||
|
||||
## Benchmarking
|
||||
|
||||
You can use WRK Docker image to benchmark the server performance. Benchmarking is extremely useful when you want to compare how the server behaves before and after a change has been applied. Replace [APPWRITE_HOSTNAME_OR_IP] with your Appwrite server hostname or IP. Note that localhost is not accessible from inside the WRK container.
|
||||
@@ -635,18 +447,6 @@ If you need to clear the cache, you can do so by running the following command:
|
||||
docker compose exec redis redis-cli FLUSHALL
|
||||
```
|
||||
|
||||
## Using preview domains locally
|
||||
|
||||
Appwrite Functions are automatically given a domain you can visit to execute the function. This domain has format `[SOMETHING].functions.localhost` unless you changed `_APP_DOMAIN_FUNCTIONS` environment variable. This default value works great when running Appwrite locally, but it can be impossible to use preview domains with Cloud woekspaces such as Gitpod or GitHub Codespaces.
|
||||
|
||||
To use preview domains on Cloud workspaces, you can visit hostname provided by them, and supply function's preview domain as URL parameter:
|
||||
|
||||
```
|
||||
https://8080-appwrite-appwrite-mjeb3ebilwv.ws-eu116.gitpod.io/ping?preview=672b3c7eab1ac523ccf5.functions.localhost
|
||||
```
|
||||
|
||||
The path was set to `/ping` intentionally. Visiting `/` for preview domains might trigger Console background worker, and trigger redirect to Console without our preview URL param. Visiting different path ensures this doesnt happen.
|
||||
|
||||
## Tutorials
|
||||
|
||||
From time to time, our team will add tutorials that will help contributors find their way in the Appwrite source code. Below is a list of currently available tutorials:
|
||||
@@ -662,7 +462,7 @@ Pull requests are great, but there are many other ways you can help Appwrite.
|
||||
|
||||
### Blogging & Speaking
|
||||
|
||||
Blogging, speaking about, or creating tutorials about one of Appwrite’s many features are great ways to get the word out about Appwrite. Mention [@appwrite on Twitter](https://twitter.com/appwrite) and/or [email team@appwrite.io](mailto:team@appwrite.io) so we can give pointers and tips and help you spread the word by promoting your content on the different Appwrite communication channels. Please add your blog posts and videos of talks to our [Awesome Appwrite](https://github.com/appwrite/awesome-appwrite) repo on GitHub.
|
||||
Blogging, speaking about, or creating tutorials about one of Appwrite’s many features are great ways to get the word out about Appwrite. Mention [@appwrite](https://twitter.com/appwrite) on Twitter and/or [email team@appwrite.io](mailto:team@appwrite.io) so we can give pointers and tips and help you spread the word by promoting your content on the different Appwrite communication channels. Please add your blog posts and videos of talks to our [Awesome Appwrite](https://github.com/appwrite/awesome-appwrite) repo on GitHub.
|
||||
|
||||
### Presenting at Meetups
|
||||
|
||||
|
||||
+50
-15
@@ -1,4 +1,4 @@
|
||||
FROM composer:2.0 AS composer
|
||||
FROM composer:2.0 as composer
|
||||
|
||||
ARG TESTING=false
|
||||
ENV TESTING=$TESTING
|
||||
@@ -12,7 +12,24 @@ RUN composer install --ignore-platform-reqs --optimize-autoloader \
|
||||
--no-plugins --no-scripts --prefer-dist \
|
||||
`if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi`
|
||||
|
||||
FROM appwrite/base:0.10.1 AS final
|
||||
FROM --platform=$BUILDPLATFORM node:20.11.0-alpine3.19 as node
|
||||
|
||||
COPY app/console /usr/local/src/console
|
||||
|
||||
WORKDIR /usr/local/src/console
|
||||
|
||||
ARG VITE_GA_PROJECT
|
||||
ARG VITE_CONSOLE_MODE
|
||||
ARG VITE_APPWRITE_GROWTH_ENDPOINT=https://growth.appwrite.io/v1
|
||||
|
||||
ENV VITE_GA_PROJECT=$VITE_GA_PROJECT
|
||||
ENV VITE_CONSOLE_MODE=$VITE_CONSOLE_MODE
|
||||
ENV VITE_APPWRITE_GROWTH_ENDPOINT=$VITE_APPWRITE_GROWTH_ENDPOINT
|
||||
|
||||
RUN npm ci
|
||||
RUN npm run build
|
||||
|
||||
FROM appwrite/base:0.9.0 as final
|
||||
|
||||
LABEL maintainer="team@appwrite.io"
|
||||
|
||||
@@ -28,11 +45,10 @@ RUN \
|
||||
apk add boost boost-dev; \
|
||||
fi
|
||||
|
||||
RUN apk add libwebp
|
||||
|
||||
WORKDIR /usr/src/code
|
||||
|
||||
COPY --from=composer /usr/local/src/vendor /usr/src/code/vendor
|
||||
COPY --from=node /usr/local/src/console/build /usr/src/code/console
|
||||
|
||||
# Add Source Code
|
||||
COPY ./app /usr/src/code/app
|
||||
@@ -44,20 +60,21 @@ COPY ./dev /usr/src/code/dev
|
||||
|
||||
# Set Volumes
|
||||
RUN mkdir -p /storage/uploads && \
|
||||
mkdir -p /storage/imports && \
|
||||
mkdir -p /storage/cache && \
|
||||
mkdir -p /storage/config && \
|
||||
mkdir -p /storage/certificates && \
|
||||
mkdir -p /storage/functions && \
|
||||
mkdir -p /storage/debug && \
|
||||
chown -Rf www-data.www-data /storage/uploads && chmod -Rf 0755 /storage/uploads && \
|
||||
chown -Rf www-data.www-data /storage/imports && chmod -Rf 0755 /storage/imports && \
|
||||
chown -Rf www-data.www-data /storage/cache && chmod -Rf 0755 /storage/cache && \
|
||||
chown -Rf www-data.www-data /storage/config && chmod -Rf 0755 /storage/config && \
|
||||
chown -Rf www-data.www-data /storage/certificates && chmod -Rf 0755 /storage/certificates && \
|
||||
chown -Rf www-data.www-data /storage/functions && chmod -Rf 0755 /storage/functions && \
|
||||
chown -Rf www-data.www-data /storage/debug && chmod -Rf 0755 /storage/debug
|
||||
|
||||
# Development Executables
|
||||
RUN chmod +x /usr/local/bin/dev-generate-translations
|
||||
|
||||
# Executables
|
||||
RUN chmod +x /usr/local/bin/doctor && \
|
||||
chmod +x /usr/local/bin/install && \
|
||||
@@ -65,12 +82,10 @@ RUN chmod +x /usr/local/bin/doctor && \
|
||||
chmod +x /usr/local/bin/migrate && \
|
||||
chmod +x /usr/local/bin/realtime && \
|
||||
chmod +x /usr/local/bin/schedule-functions && \
|
||||
chmod +x /usr/local/bin/schedule-executions && \
|
||||
chmod +x /usr/local/bin/schedule-messages && \
|
||||
chmod +x /usr/local/bin/sdks && \
|
||||
chmod +x /usr/local/bin/specs && \
|
||||
chmod +x /usr/local/bin/ssl && \
|
||||
chmod +x /usr/local/bin/screenshot && \
|
||||
chmod +x /usr/local/bin/test && \
|
||||
chmod +x /usr/local/bin/upgrade && \
|
||||
chmod +x /usr/local/bin/vars && \
|
||||
@@ -84,23 +99,43 @@ RUN chmod +x /usr/local/bin/doctor && \
|
||||
chmod +x /usr/local/bin/worker-databases && \
|
||||
chmod +x /usr/local/bin/worker-deletes && \
|
||||
chmod +x /usr/local/bin/worker-functions && \
|
||||
chmod +x /usr/local/bin/worker-hamster && \
|
||||
chmod +x /usr/local/bin/worker-mails && \
|
||||
chmod +x /usr/local/bin/worker-messaging && \
|
||||
chmod +x /usr/local/bin/worker-migrations && \
|
||||
chmod +x /usr/local/bin/worker-webhooks && \
|
||||
chmod +x /usr/local/bin/worker-stats-usage && \
|
||||
chmod +x /usr/local/bin/stats-resources && \
|
||||
chmod +x /usr/local/bin/worker-stats-resources
|
||||
chmod +x /usr/local/bin/worker-hamster && \
|
||||
chmod +x /usr/local/bin/worker-usage && \
|
||||
chmod +x /usr/local/bin/worker-usage-dump
|
||||
|
||||
|
||||
# Cloud Executabless
|
||||
RUN chmod +x /usr/local/bin/calc-tier-stats && \
|
||||
chmod +x /usr/local/bin/calc-users-stats && \
|
||||
chmod +x /usr/local/bin/clear-card-cache && \
|
||||
chmod +x /usr/local/bin/delete-orphaned-projects && \
|
||||
chmod +x /usr/local/bin/get-migration-stats && \
|
||||
chmod +x /usr/local/bin/hamster && \
|
||||
chmod +x /usr/local/bin/patch-delete-project-collections && \
|
||||
chmod +x /usr/local/bin/patch-delete-schedule-updated-at-attribute && \
|
||||
chmod +x /usr/local/bin/patch-recreate-repositories-documents && \
|
||||
chmod +x /usr/local/bin/volume-sync && \
|
||||
chmod +x /usr/local/bin/patch-delete-project-collections && \
|
||||
chmod +x /usr/local/bin/delete-orphaned-projects && \
|
||||
chmod +x /usr/local/bin/clear-card-cache && \
|
||||
chmod +x /usr/local/bin/calc-users-stats && \
|
||||
chmod +x /usr/local/bin/calc-tier-stats && \
|
||||
chmod +x /usr/local/bin/get-migration-stats && \
|
||||
chmod +x /usr/local/bin/create-inf-metric
|
||||
|
||||
# Letsencrypt Permissions
|
||||
RUN mkdir -p /etc/letsencrypt/live/ && chmod -Rf 755 /etc/letsencrypt/live/
|
||||
|
||||
# Enable Extensions
|
||||
RUN if [ "$DEBUG" = "true" ]; then cp /usr/src/code/dev/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini; fi
|
||||
RUN if [ "$DEBUG" = "true" ]; then mkdir -p /tmp/xdebug; fi
|
||||
RUN if [ "$DEBUG" == "true" ]; then cp /usr/src/code/dev/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini; fi
|
||||
RUN if [ "$DEBUG" = "false" ]; then rm -rf /usr/src/code/dev; fi
|
||||
RUN if [ "$DEBUG" = "false" ]; then rm -f /usr/local/lib/php/extensions/no-debug-non-zts-20230831/xdebug.so; fi
|
||||
RUN if [ "$DEBUG" = "false" ]; then rm -f /usr/local/lib/php/extensions/no-debug-non-zts-20220829/xdebug.so; fi
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
CMD [ "php", "app/http.php" ]
|
||||
CMD [ "php", "app/http.php" ]
|
||||
+43
-100
@@ -1,8 +1,8 @@
|
||||
> 好消息!Appwrite 云现已进入公开测试版!立即访问 cloud.appwrite.io 注册,体验无忧的托管服务。今天就加入我们的云端吧!:cloud: :tada:
|
||||
> 好消息!Appwrite 云现已进入公开测试版!立即访问 cloud.appwrite.io 注册,体验无忧的托管服务。今天就加入我们的云端吧!☁️🎉
|
||||
|
||||
<br />
|
||||
<p align="center">
|
||||
<a href="https://appwrite.io" target="_blank"><img src="./public/images/banner.png" alt="Appwrite banner with logo and slogan build like a team of hundreds""></a>
|
||||
<a href="https://appwrite.io" target="_blank"><img src="./public/images/banner.png" alt="Appwrite Logo"></a>
|
||||
<br />
|
||||
<br />
|
||||
<b>适用于[Flutter/Vue/Angular/React/iOS/Android/* 等等平台 *]的完整后端服务</b>
|
||||
@@ -11,7 +11,6 @@
|
||||
</p>
|
||||
|
||||
<!-- [](https://travis-ci.com/appwrite/appwrite) -->
|
||||
|
||||
[](https://appwrite.io/company/careers)
|
||||
[](https://hacktoberfest.appwrite.io)
|
||||
[](https://appwrite.io/discord?r=Github)
|
||||
@@ -26,7 +25,7 @@
|
||||
|
||||
[**Appwrite 云公开测试版!立即注册!**](https://cloud.appwrite.io)
|
||||
|
||||
Appwrite 是一个基于 Docker 的端到端开发者平台,其容器化的微服务库可应用于网页端,移动端,以及后端。Appwrite 通过视觉化界面简化了从零开始编写 API 的繁琐过程,在保证软件安全的前提下为开发者创造了一个高效的开发环境。
|
||||
Appwrite是一个基于Docker的端到端开发者平台,其容器化的微服务库可应用于网页端,移动端,以及后端。Appwrite 通过视觉化界面简化了从零开始编写 API 的繁琐过程,在保证软件安全的前提下为开发者创造了一个高效的开发环境。
|
||||
|
||||
Appwrite 可以提供给开发者用户验证,外部授权,用户数据读写检索,文件储存,图像处理,云函数计算,[等多种服务](https://appwrite.io/docs).
|
||||
|
||||
@@ -36,8 +35,6 @@ Appwrite 可以提供给开发者用户验证,外部授权,用户数据读
|
||||
|
||||
内容:
|
||||
|
||||
|
||||
- [开始](#开始)
|
||||
- [安装](#安装)
|
||||
- [Unix](#unix)
|
||||
- [Windows](#windows)
|
||||
@@ -56,9 +53,6 @@ Appwrite 可以提供给开发者用户验证,外部授权,用户数据读
|
||||
- [订阅我们](#订阅我们)
|
||||
- [版权说明](#版权说明)
|
||||
|
||||
## 开始
|
||||
要轻松开始使用Appwrite,您可以[**免费注册Appwrite Cloud**](https://cloud.appwrite.io/)。在Appwrite Cloud公开测试版期间,您可以完全免费使用Appwrite,而且我们不会收集您的信用卡信息。
|
||||
|
||||
## 安装
|
||||
|
||||
Appwrite 的容器化服务器只需要一行指令就可以运行。您可以使用 docker-compose 在本地主机上运行 Appwrite,也可以在任何其他容器化工具(如 [Kubernetes](https://kubernetes.io/docs/home/)、[Docker Swarm](https://docs.docker.com/engine/swarm/) 或 [Rancher](https://rancher.com/docs/))上运行 Appwrite。
|
||||
@@ -72,7 +66,7 @@ docker run -it --rm \
|
||||
--volume /var/run/docker.sock:/var/run/docker.sock \
|
||||
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
|
||||
--entrypoint="install" \
|
||||
appwrite/appwrite:1.6.2
|
||||
appwrite/appwrite:1.5.3
|
||||
```
|
||||
|
||||
### Windows
|
||||
@@ -84,7 +78,7 @@ docker run -it --rm ^
|
||||
--volume //var/run/docker.sock:/var/run/docker.sock ^
|
||||
--volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
|
||||
--entrypoint="install" ^
|
||||
appwrite/appwrite:1.6.2
|
||||
appwrite/appwrite:1.5.3
|
||||
```
|
||||
|
||||
#### PowerShell
|
||||
@@ -94,119 +88,68 @@ docker run -it --rm `
|
||||
--volume /var/run/docker.sock:/var/run/docker.sock `
|
||||
--volume ${pwd}/appwrite:/usr/src/code/appwrite:rw `
|
||||
--entrypoint="install" `
|
||||
appwrite/appwrite:1.6.2
|
||||
appwrite/appwrite:1.5.3
|
||||
```
|
||||
|
||||
运行后,可以在浏览器上访问 http://localhost 找到 Appwrite 控制台。在非 Linux 的本机主机上完成安装后,服务器可能需要几分钟才能启动。
|
||||
|
||||
|
||||
需要自定义容器构架,请查看我们的 Docker [环境变量](https://appwrite.io/docs/environment-variables) 文档。您还可以参考我们的 [docker-compose.yml](https://appwrite.io/install/compose) 和 [.env](https://appwrite.io/install/env) 文件手动设置环境。
|
||||
|
||||
### 从旧版本升级
|
||||
|
||||
如果您从旧版本升级 Appwrite 服务器,则应在设置完成后使用 Appwrite 迁移工具。有关这方面的更多信息,请查看 [安装文档](https://appwrite.io/docs/self-hosting)。
|
||||
|
||||
## 一键配置
|
||||
|
||||
除了在本地运行 Appwrite,您还可以使用预配置的设置启动 Appwrite。这样可以让您快速启动并运行 Appwrite,而无需在本地计算机上安装 Docker。
|
||||
|
||||
请从以下提供商中选择一个:
|
||||
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td align="center" width="100" height="100">
|
||||
<a href="https://marketplace.digitalocean.com/apps/appwrite">
|
||||
<img width="50" height="39" src="public/images/integrations/digitalocean-logo.svg" alt="DigitalOcean Logo" />
|
||||
<br /><sub><b>DigitalOcean</b></sub></a>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center" width="100" height="100">
|
||||
<a href="https://gitpod.io/#https://github.com/appwrite/integration-for-gitpod">
|
||||
<img width="50" height="39" src="public/images/integrations/gitpod-logo.svg" alt="Gitpod Logo" />
|
||||
<br /><sub><b>Gitpod</b></sub></a>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center" width="100" height="100">
|
||||
<a href="https://www.linode.com/marketplace/apps/appwrite/appwrite/">
|
||||
<img width="50" height="39" src="public/images/integrations/akamai-logo.svg" alt="Akamai Logo" />
|
||||
<br /><sub><b>Akamai Compute</b></sub></a>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center" width="100" height="100">
|
||||
<a href="https://aws.amazon.com/marketplace/pp/prodview-2hiaeo2px4md6">
|
||||
<img width="50" height="39" src="public/images/integrations/aws-logo.svg" alt="AWS Logo" />
|
||||
<br /><sub><b>AWS Marketplace</b></sub></a>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
如果您从旧版本升级 Appwrite 服务器,则应在设置完成后使用 Appwrite 迁移工具。有关这方面的更多信息,请查看 [安装文档](https://appwrite.io/docs/installation)。
|
||||
|
||||
## 入门
|
||||
|
||||
开始使用 Appwrite 只需要在控制台创建一个新项目,选择开发平台,然后抓取我们的开发套件。您可以从以下的教程中找到你喜欢的平台开始使用 Appwrite。
|
||||
|
||||
| 类别 | 技术 |
|
||||
| ------------------ | --------------------------------------------------------------------------- |
|
||||
| **Web 应用** | [Web 快速开始](https://appwrite.io/docs/quick-starts/web) |
|
||||
| | [Next.js 快速开始](https://appwrite.io/docs/quick-starts/nextjs) |
|
||||
| | [React 快速开始](https://appwrite.io/docs/quick-starts/react) |
|
||||
| | [Vue.js 快速开始](https://appwrite.io/docs/quick-starts/vue) |
|
||||
| | [Nuxt 快速开始](https://appwrite.io/docs/quick-starts/nuxt) |
|
||||
| | [SvelteKit 快速开始](https://appwrite.io/docs/quick-starts/sveltekit) |
|
||||
| | [Refine 快速开始](https://appwrite.io/docs/quick-starts/refine) |
|
||||
| | [Angular 快速开始](https://appwrite.io/docs/quick-starts/angular) |
|
||||
| **苹果于安卓应用** | [React Native 快速开始](https://appwrite.io/docs/quick-starts/react-native) |
|
||||
| | [Flutter 快速开始](https://appwrite.io/docs/quick-starts/flutter) |
|
||||
| | [Apple 快速开始](https://appwrite.io/docs/quick-starts/apple) |
|
||||
| | [Android 快速开始](https://appwrite.io/docs/quick-starts/android) |
|
||||
| **服务器** | [Node.js 快速开始](https://appwrite.io/docs/quick-starts/node) |
|
||||
| | [Python 快速开始](https://appwrite.io/docs/quick-starts/python) |
|
||||
| | [.NET 快速开始](https://appwrite.io/docs/quick-starts/dotnet) |
|
||||
| | [Dart 快速开始](https://appwrite.io/docs/quick-starts/dart) |
|
||||
| | [Ruby 快速开始](https://appwrite.io/docs/quick-starts/ruby) |
|
||||
| | [Deno 快速开始](https://appwrite.io/docs/quick-starts/deno) |
|
||||
| | [PHP 快速开始](https://appwrite.io/docs/quick-starts/php) |
|
||||
| | [Kotlin 快速开始](https://appwrite.io/docs/quick-starts/kotlin) |
|
||||
| | [Swift 快速开始](https://appwrite.io/docs/quick-starts/swift) |
|
||||
* [开始使用 Web](https://appwrite.io/docs/getting-started-for-web)
|
||||
* [开始使用 Flutter](https://appwrite.io/docs/getting-started-for-flutter)
|
||||
* [开始使用 Apple](https://appwrite.io/docs/getting-started-for-apple)
|
||||
* [开始使用 Android](https://appwrite.io/docs/getting-started-for-android)
|
||||
* [开始使用 Server](https://appwrite.io/docs/getting-started-for-server)
|
||||
* [开始使用 CLI](https://appwrite.io/docs/command-line)
|
||||
|
||||
### 软件服务
|
||||
|
||||
- [**帐户**](https://appwrite.io/docs/references/cloud/client-web/account) -管理当前用户的帐户和登录方式。跟踪和管理用户 Session,登录设备,登录方法和查看相关记录。
|
||||
- [**用户**](https://appwrite.io/docs/server/users) - 在以管理员模式登录时管理和列出所有用户。
|
||||
- [**团队**](https://appwrite.io/docs/references/cloud/client-web/teams) - 管理用户分组。邀请成员,管理团队中的用户权限和用户角色。
|
||||
- [**数据库**](https://appwrite.io/docs/references/cloud/client-web/databases) - 管理数据库文档和文档集。用检索界面来对文档和文档集进行读取,创建,更新,和删除。
|
||||
- [**贮存**](https://appwrite.io/docs/references/cloud/client-web/storage) - 管理文件的阅读、创建、删除和预览。设置文件的预览来满足程序的个性化需求。所有文件都由 ClamAV 扫描并安全存储和加密。
|
||||
- [**云函数**](https://appwrite.io/docs/server/functions) - 在安全,隔离的环境中运行自定义代码。这些代码可以被事件,CRON,或者手动操作触发。
|
||||
- [**消息传递**](https://appwrite.io/docs/references/cloud/client-web/messaging) - 使用 Appwrite 消息传递功能通过推送通知、电子邮件和短信与用户进行通信。
|
||||
- [**语言适配**](https://appwrite.io/docs/references/cloud/client-web/locale) - 根据用户所在的的国家和地区做出合适的语言适配。
|
||||
- [**头像**](https://appwrite.io/docs/references/cloud/client-web/avatars) -管理用户头像、国家旗帜、浏览器图标、信用卡符号,和生成二维码。
|
||||
如需完整的 API 界面文档,请访问 [https://appwrite.io/docs](https://appwrite.io/docs)。如需更多教程、新闻和公告,请订阅我们的 [博客](https://medium.com/appwrite-io) 和 加入我们的[Discord 社区](https://discord.gg/GSeTUeA)。
|
||||
* [**帐户**](https://appwrite.io/docs/references/cloud/client-web/account) -管理当前用户的帐户和登录方式。跟踪和管理用户 Session,登录设备,登录方法和查看相关记录。
|
||||
* [**用户**](https://appwrite.io/docs/server/users) - 在以管理员模式登录时管理和列出所有用户。
|
||||
* [**团队**](https://appwrite.io/docs/references/cloud/client-web/teams) - 管理用户分组。邀请成员,管理团队中的用户权限和用户角色。
|
||||
* [**数据库**](https://appwrite.io/docs/references/cloud/client-web/databases) - 管理数据库文档和文档集。用检索界面来对文档和文档集进行读取,创建,更新,和删除。
|
||||
* [**贮存**](https://appwrite.io/docs/references/cloud/client-web/storage) - 管理文件的阅读、创建、删除和预览。设置文件的预览来满足程序的个性化需求。所有文件都由 ClamAV 扫描并安全存储和加密。
|
||||
* [**云函数**](https://appwrite.io/docs/server/functions) - 在安全,隔离的环境中运行自定义代码。这些代码可以被事件,CRON,或者手动操作触发。
|
||||
* [**语言适配**](https://appwrite.io/docs/references/cloud/client-web/locale) - 根据用户所在的的国家和地区做出合适的语言适配。
|
||||
* [**头像**](https://appwrite.io/docs/references/cloud/client-web/avatars) -管理用户头像、国家旗帜、浏览器图标、信用卡符号,和生成二维码。
|
||||
如需完整的 API 界面文档,请访问 [https://appwrite.io/docs](https://appwrite.io/docs)。如需更多教程、新闻和公告,请订阅我们的 [博客](https://medium.com/appwrite-io) 和 加入我们的[Discord 社区](https://discord.gg/GSeTUeA)。
|
||||
|
||||
### 开发套件
|
||||
|
||||
以下是当前支持的平台和语言列表。如果您想帮助我们为您选择的平台添加支持,您可以访问我们的 [SDK 生成器](https://github.com/appwrite/sdk-generator) 项目并查看我们的 [贡献指南](https://github.com/appwrite/sdk-generator/blob/master/CONTRIBUTING.md)。
|
||||
|
||||
#### 客户端
|
||||
* :white_check_mark: [Web](https://github.com/appwrite/sdk-for-web) (由 Appwrite 团队维护)
|
||||
* :white_check_mark: [Flutter](https://github.com/appwrite/sdk-for-flutter) (由 Appwrite 团队维护)
|
||||
* :white_check_mark: [Apple](https://github.com/appwrite/sdk-for-apple) - **公测** (由 Appwrite 团队维护)
|
||||
* :white_check_mark: [Android](https://github.com/appwrite/sdk-for-android) (由 Appwrite 团队维护)
|
||||
* ✅ [Web](https://github.com/appwrite/sdk-for-web) (由 Appwrite 团队维护)
|
||||
* ✅ [Flutter](https://github.com/appwrite/sdk-for-flutter) (由 Appwrite 团队维护)
|
||||
* ✅ [Apple](https://github.com/appwrite/sdk-for-apple) - **公测** (由 Appwrite 团队维护)
|
||||
* ✅ [Android](https://github.com/appwrite/sdk-for-android) (由 Appwrite 团队维护)
|
||||
|
||||
#### 服务器
|
||||
* :white_check_mark: [NodeJS](https://github.com/appwrite/sdk-for-node) (由 Appwrite 团队维护)
|
||||
* :white_check_mark: [PHP](https://github.com/appwrite/sdk-for-php) (由 Appwrite 团队维护)
|
||||
* :white_check_mark: [Dart](https://github.com/appwrite/sdk-for-dart) - (由 Appwrite 团队维护)
|
||||
* :white_check_mark: [Deno](https://github.com/appwrite/sdk-for-deno) - **公测** (由 Appwrite 团队维护)
|
||||
* :white_check_mark: [Ruby](https://github.com/appwrite/sdk-for-ruby) (由 Appwrite 团队维护)
|
||||
* :white_check_mark: [Python](https://github.com/appwrite/sdk-for-python) (由 Appwrite 团队维护)
|
||||
* :white_check_mark: [Kotlin](https://github.com/appwrite/sdk-for-kotlin) - **公测** (由 Appwrite 团队维护)
|
||||
* :white_check_mark: [Apple](https://github.com/appwrite/sdk-for-apple) - **公测** (由 Appwrite 团队维护)
|
||||
* :white_check_mark: [.NET](https://github.com/appwrite/sdk-for-dotnet) - **公测** (由 Appwrite 团队维护)
|
||||
* ✅ [NodeJS](https://github.com/appwrite/sdk-for-node) (由 Appwrite 团队维护)
|
||||
* ✅ [PHP](https://github.com/appwrite/sdk-for-php) (由 Appwrite 团队维护)
|
||||
* ✅ [Dart](https://github.com/appwrite/sdk-for-dart) - (由 Appwrite 团队维护)
|
||||
* ✅ [Deno](https://github.com/appwrite/sdk-for-deno) - **公测** (由 Appwrite 团队维护)
|
||||
* ✅ [Ruby](https://github.com/appwrite/sdk-for-ruby) (由 Appwrite 团队维护)
|
||||
* ✅ [Python](https://github.com/appwrite/sdk-for-python) (由 Appwrite 团队维护)
|
||||
* ✅ [Kotlin](https://github.com/appwrite/sdk-for-kotlin) - **公测** (由 Appwrite 团队维护)
|
||||
* ✅ [Apple](https://github.com/appwrite/sdk-for-apple) - **公测** (由 Appwrite 团队维护)
|
||||
* ✅ [.NET](https://github.com/appwrite/sdk-for-dotnet) - **公测** (由 Appwrite 团队维护)
|
||||
|
||||
#### 开发者社区
|
||||
* :white_check_mark: [Appcelerator Titanium](https://github.com/m1ga/ti.appwrite) (维护者 [Michael Gangolf](https://github.com/m1ga/))
|
||||
* :white_check_mark: [Godot Engine](https://github.com/GodotNuts/appwrite-sdk) (维护者 [fenix-hub @GodotNuts](https://github.com/fenix-hub))
|
||||
* ✅ [Appcelerator Titanium](https://github.com/m1ga/ti.appwrite) (维护者 [Michael Gangolf](https://github.com/m1ga/))
|
||||
* ✅ [Godot Engine](https://github.com/GodotNuts/appwrite-sdk) (维护者 [fenix-hub @GodotNuts](https://github.com/fenix-hub))
|
||||
|
||||
找不到需要的的 SDK? - 欢迎通过发起PR来帮助我们完善Appwrite的软件生态环境 [SDK 生成器](https://github.com/appwrite/sdk-generator)!
|
||||
|
||||
找不到需要的的 SDK? - 欢迎通过发起 PR 来帮助我们完善 Appwrite 的软件生态环境 [SDK 生成器](https://github.com/appwrite/sdk-generator)!
|
||||
|
||||
## 软件架构
|
||||
|
||||
@@ -218,13 +161,13 @@ Appwrite API 界面层利用后台缓存和任务委派来提供极速的响应
|
||||
|
||||
## 贡献代码
|
||||
|
||||
为了确保正确审查,所有代码贡献 - 包括来自具有直接提交更改权限的贡献者 - 都必须提交 PR 请求并在合并分支之前得到核心开发人员的批准。
|
||||
为了确保正确审查,所有代码贡献 - 包括来自具有直接提交更改权限的贡献者 - 都必须提交PR请求并在合并分支之前得到核心开发人员的批准。
|
||||
|
||||
我们欢迎所有人提交 PR!如果您愿意提供帮助,可以在 [贡献指南](CONTRIBUTING.md) 中了解有关如何为项目做出贡献的更多信息。
|
||||
我们欢迎所有人提交PR!如果您愿意提供帮助,可以在 [贡献指南](CONTRIBUTING.md) 中了解有关如何为项目做出贡献的更多信息。
|
||||
|
||||
## 安全
|
||||
|
||||
为了保护您的隐私,请避免在 GitHub 上发布安全问题。发送问题至 security@appwrite.io,我们将为您做更细致的解答。
|
||||
为了保护您的隐私,请避免在GitHub 上发布安全问题。发送问题至 security@appwrite.io,我们将为您做更细致的解答。
|
||||
|
||||
## 订阅我们
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
> [Get started with Appwrite](https://apwr.dev/appcloud)
|
||||
> Our Appwrite Init event has concluded. You can check out all the new and upcoming features [on our Init website](https://appwrite.io/init) 🚀
|
||||
|
||||
<br />
|
||||
<p align="center">
|
||||
<a href="https://appwrite.io" target="_blank"><img src="./public/images/banner.png" alt="Appwrite banner, with logo and text saying "Build Like a Team of Hundreds"></a>
|
||||
<a href="https://appwrite.io" target="_blank"><img src="./public/images/banner.png" alt="Appwrite Logo"></a>
|
||||
<br />
|
||||
<br />
|
||||
<b>Appwrite is a backend platform for developing Web, Mobile, and Flutter applications. Built with the open source community and optimized for developer experience in the coding languages you love.</b>
|
||||
@@ -10,13 +10,14 @@
|
||||
<br />
|
||||
</p>
|
||||
|
||||
|
||||
<!-- [](https://travis-ci.com/appwrite/appwrite) -->
|
||||
|
||||
[](https://appwrite.io/company/careers)
|
||||
[](https://hacktoberfest.appwrite.io)
|
||||
[](https://appwrite.io/discord?r=Github)
|
||||
[](https://github.com/appwrite/appwrite/actions)
|
||||
[](https://twitter.com/appwrite)
|
||||
[](https://appwrite.io/company/careers)
|
||||
[](https://hacktoberfest.appwrite.io)
|
||||
[](https://appwrite.io/discord?r=Github)
|
||||
[](https://github.com/appwrite/appwrite/actions)
|
||||
[](https://twitter.com/appwrite)
|
||||
|
||||
<!-- [](https://hub.docker.com/r/appwrite/appwrite) -->
|
||||
<!-- [](docs/tutorials/add-translations.md) -->
|
||||
@@ -24,9 +25,11 @@
|
||||
|
||||
English | [简体中文](README-CN.md)
|
||||
|
||||
[**Announcing Appwrite Cloud Public Beta! Sign up today!**](https://cloud.appwrite.io)
|
||||
|
||||
Appwrite is an end-to-end backend server for Web, Mobile, Native, or Backend apps packaged as a set of Docker<nobr> microservices. Appwrite abstracts the complexity and repetitiveness required to build a modern backend API from scratch and allows you to build secure apps faster.
|
||||
|
||||
Using Appwrite, you can easily integrate your app with user authentication and multiple sign-in methods, a database for storing and querying users and team data, storage and file management, image manipulation, Cloud Functions, messaging, and [more services](https://appwrite.io/docs).
|
||||
Using Appwrite, you can easily integrate your app with user authentication and multiple sign-in methods, a database for storing and querying users and team data, storage and file management, image manipulation, Cloud Functions, and [more services](https://appwrite.io/docs).
|
||||
|
||||
<p align="center">
|
||||
<br />
|
||||
@@ -35,14 +38,13 @@ Using Appwrite, you can easily integrate your app with user authentication and m
|
||||
<br />
|
||||
</p>
|
||||
|
||||

|
||||

|
||||
|
||||
Find out more at: [https://appwrite.io](https://appwrite.io).
|
||||
Find out more at: [https://appwrite.io](https://appwrite.io)
|
||||
|
||||
Table of Contents:
|
||||
|
||||
- [Getting Started](#getting-started)
|
||||
- [Self-Hosting](#self-hosting)
|
||||
- [Installation](#installation)
|
||||
- [Unix](#unix)
|
||||
- [Windows](#windows)
|
||||
- [CMD](#cmd)
|
||||
@@ -50,7 +52,7 @@ Table of Contents:
|
||||
- [Upgrade from an Older Version](#upgrade-from-an-older-version)
|
||||
- [One-Click Setups](#one-click-setups)
|
||||
- [Getting Started](#getting-started)
|
||||
- [Products](#products)
|
||||
- [Services](#services)
|
||||
- [SDKs](#sdks)
|
||||
- [Client](#client)
|
||||
- [Server](#server)
|
||||
@@ -61,14 +63,11 @@ Table of Contents:
|
||||
- [Follow Us](#follow-us)
|
||||
- [License](#license)
|
||||
|
||||
## Getting Started
|
||||
The easiest way to get started with Appwrite is by [signing up for Appwrite Cloud](https://cloud.appwrite.io/). While Appwrite Cloud is in public beta, you can build with Appwrite completely free, and we won't collect you credit card information.
|
||||
|
||||
## Self-Hosting
|
||||
## Installation
|
||||
|
||||
Appwrite is designed to run in a containerized environment. Running your server is as easy as running one command from your terminal. You can either run Appwrite on your localhost using docker-compose or on any other container orchestration tool, such as [Kubernetes](https://kubernetes.io/docs/home/), [Docker Swarm](https://docs.docker.com/engine/swarm/), or [Rancher](https://rancher.com/docs/).
|
||||
|
||||
Before running the installation command, make sure you have [Docker](https://www.docker.com/products/docker-desktop) installed on your machine:
|
||||
The easiest way to start running your Appwrite server is by running our docker-compose file. Before running the installation command, make sure you have [Docker](https://www.docker.com/products/docker-desktop) installed on your machine:
|
||||
|
||||
### Unix
|
||||
|
||||
@@ -77,7 +76,7 @@ docker run -it --rm \
|
||||
--volume /var/run/docker.sock:/var/run/docker.sock \
|
||||
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
|
||||
--entrypoint="install" \
|
||||
appwrite/appwrite:1.6.2
|
||||
appwrite/appwrite:1.5.3
|
||||
```
|
||||
|
||||
### Windows
|
||||
@@ -89,7 +88,7 @@ docker run -it --rm ^
|
||||
--volume //var/run/docker.sock:/var/run/docker.sock ^
|
||||
--volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
|
||||
--entrypoint="install" ^
|
||||
appwrite/appwrite:1.6.2
|
||||
appwrite/appwrite:1.5.3
|
||||
```
|
||||
|
||||
#### PowerShell
|
||||
@@ -99,7 +98,7 @@ docker run -it --rm `
|
||||
--volume /var/run/docker.sock:/var/run/docker.sock `
|
||||
--volume ${pwd}/appwrite:/usr/src/code/appwrite:rw `
|
||||
--entrypoint="install" `
|
||||
appwrite/appwrite:1.6.2
|
||||
appwrite/appwrite:1.5.3
|
||||
```
|
||||
|
||||
Once the Docker installation is complete, go to http://localhost to access the Appwrite console from your browser. Please note that on non-Linux native hosts, the server might take a few minutes to start after completing the installation.
|
||||
@@ -108,7 +107,7 @@ For advanced production and custom installation, check out our Docker [environme
|
||||
|
||||
### Upgrade from an Older Version
|
||||
|
||||
If you are upgrading your Appwrite server from an older version, you should use the Appwrite migration tool once your setup is completed. For more information regarding this, check out the [Installation Docs](https://appwrite.io/docs/self-hosting).
|
||||
If you are upgrading your Appwrite server from an older version, you should use the Appwrite migration tool once your setup is completed. For more information regarding this, check out the [Installation Docs](https://appwrite.io/docs/installation).
|
||||
|
||||
## One-Click Setups
|
||||
|
||||
@@ -136,12 +135,6 @@ Choose from one of the providers below:
|
||||
<br /><sub><b>Akamai Compute</b></sub></a>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center" width="100" height="100">
|
||||
<a href="https://aws.amazon.com/marketplace/pp/prodview-2hiaeo2px4md6">
|
||||
<img width="50" height="39" src="public/images/integrations/aws-logo.svg" alt="AWS Logo" />
|
||||
<br /><sub><b>AWS Marketplace</b></sub></a>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -149,39 +142,21 @@ Choose from one of the providers below:
|
||||
|
||||
Getting started with Appwrite is as easy as creating a new project, choosing your platform, and integrating its SDK into your code. You can easily get started with your platform of choice by reading one of our Getting Started tutorials.
|
||||
|
||||
| Platform | Technology |
|
||||
| --------------------- | ---------------------------------------------------------------------------------- |
|
||||
| **Web app** | [Quick start for Web](https://appwrite.io/docs/quick-starts/web) |
|
||||
| | [Quick start for Next.js](https://appwrite.io/docs/quick-starts/nextjs) |
|
||||
| | [Quick start for React](https://appwrite.io/docs/quick-starts/react) |
|
||||
| | [Quick start for Vue.js](https://appwrite.io/docs/quick-starts/vue) |
|
||||
| | [Quick start for Nuxt](https://appwrite.io/docs/quick-starts/nuxt) |
|
||||
| | [Quick start for SvelteKit](https://appwrite.io/docs/quick-starts/sveltekit) |
|
||||
| | [Quick start for Refine](https://appwrite.io/docs/quick-starts/refine) |
|
||||
| | [Quick start for Angular](https://appwrite.io/docs/quick-starts/angular) |
|
||||
| **Mobile and Native** | [Quick start for React Native](https://appwrite.io/docs/quick-starts/react-native) |
|
||||
| | [Quick start for Flutter](https://appwrite.io/docs/quick-starts/flutter) |
|
||||
| | [Quick start for Apple](https://appwrite.io/docs/quick-starts/apple) |
|
||||
| | [Quick start for Android](https://appwrite.io/docs/quick-starts/android) |
|
||||
| **Server** | [Quick start for Node.js](https://appwrite.io/docs/quick-starts/node) |
|
||||
| | [Quick start for Python](https://appwrite.io/docs/quick-starts/python) |
|
||||
| | [Quick start for .NET](https://appwrite.io/docs/quick-starts/dotnet) |
|
||||
| | [Quick start for Dart](https://appwrite.io/docs/quick-starts/dart) |
|
||||
| | [Quick start for Ruby](https://appwrite.io/docs/quick-starts/ruby) |
|
||||
| | [Quick start for Deno](https://appwrite.io/docs/quick-starts/deno) |
|
||||
| | [Quick start for PHP](https://appwrite.io/docs/quick-starts/php) |
|
||||
| | [Quick start for Kotlin](https://appwrite.io/docs/quick-starts/kotlin) |
|
||||
| | [Quick start for Swift](https://appwrite.io/docs/quick-starts/swift) |
|
||||
- [Getting Started for Web](https://appwrite.io/docs/getting-started-for-web)
|
||||
- [Getting Started for Flutter](https://appwrite.io/docs/getting-started-for-flutter)
|
||||
- [Getting Started for Apple](https://appwrite.io/docs/getting-started-for-apple)
|
||||
- [Getting Started for Android](https://appwrite.io/docs/getting-started-for-android)
|
||||
- [Getting Started for Server](https://appwrite.io/docs/getting-started-for-server)
|
||||
- [Getting Started for CLI](https://appwrite.io/docs/command-line)
|
||||
|
||||
### Products
|
||||
### Services
|
||||
|
||||
- [**Account**](https://appwrite.io/docs/references/cloud/client-web/account) - Manage current user authentication and account. Track and manage the user sessions, devices, sign-in methods, and security logs.
|
||||
- [**Users**](https://appwrite.io/docs/server/users) - Manage and list all project users when building backend integrations with Server SDKs.
|
||||
- [**Teams**](https://appwrite.io/docs/references/cloud/client-web/teams) - Manage and group users in teams. Manage memberships, invites, and user roles within a team.
|
||||
- [**Databases**](https://appwrite.io/docs/references/cloud/client-web/databases) - Manage databases, collections, and documents. Read, create, update, and delete documents and filter lists of document collections using advanced filters.
|
||||
- [**Storage**](https://appwrite.io/docs/references/cloud/client-web/storage) - Manage storage files. Read, create, delete, and preview files. Manipulate the preview of your files to perfectly fit your app. All files are scanned by ClamAV and stored in a secure and encrypted way.
|
||||
- [**Functions**](https://appwrite.io/docs/references/cloud/server-nodejs/functions) - Customize your Appwrite project by executing your custom code in a secure, isolated environment. You can trigger your code on any Appwrite system event either manually or using a CRON schedule.
|
||||
- [**Messaging**](https://appwrite.io/docs/references/cloud/client-web/messaging) - Communicate with your users through push notifications, emails, and SMS text messages using Appwrite Messaging.
|
||||
- [**Functions**](https://appwrite.io/docs/server/functions) - Customize your Appwrite server by executing your custom code in a secure, isolated environment. You can trigger your code on any Appwrite system event either manually or using a CRON schedule.
|
||||
- [**Realtime**](https://appwrite.io/docs/realtime) - Listen to real-time events for any of your Appwrite services including users, storage, functions, databases, and more.
|
||||
- [**Locale**](https://appwrite.io/docs/references/cloud/client-web/locale) - Track your user's location and manage your app locale-based data.
|
||||
- [**Avatars**](https://appwrite.io/docs/references/cloud/client-web/avatars) - Manage your users' avatars, countries' flags, browser icons, and credit card symbols. Generate QR codes from links or plaintext strings.
|
||||
@@ -194,34 +169,33 @@ Below is a list of currently supported platforms and languages. If you would lik
|
||||
|
||||
#### Client
|
||||
|
||||
- :white_check_mark: [Web](https://github.com/appwrite/sdk-for-web) (Maintained by the Appwrite Team)
|
||||
- :white_check_mark: [Flutter](https://github.com/appwrite/sdk-for-flutter) (Maintained by the Appwrite Team)
|
||||
- :white_check_mark: [Apple](https://github.com/appwrite/sdk-for-apple) (Maintained by the Appwrite Team)
|
||||
- :white_check_mark: [Android](https://github.com/appwrite/sdk-for-android) (Maintained by the Appwrite Team)
|
||||
- :white_check_mark: [React Native](https://github.com/appwrite/sdk-for-react-native) - **Beta** (Maintained by the Appwrite Team)
|
||||
- ✅ [Web](https://github.com/appwrite/sdk-for-web) (Maintained by the Appwrite Team)
|
||||
- ✅ [Flutter](https://github.com/appwrite/sdk-for-flutter) (Maintained by the Appwrite Team)
|
||||
- ✅ [Apple](https://github.com/appwrite/sdk-for-apple) - **Beta** (Maintained by the Appwrite Team)
|
||||
- ✅ [Android](https://github.com/appwrite/sdk-for-android) (Maintained by the Appwrite Team)
|
||||
|
||||
#### Server
|
||||
|
||||
- :white_check_mark: [NodeJS](https://github.com/appwrite/sdk-for-node) (Maintained by the Appwrite Team)
|
||||
- :white_check_mark: [PHP](https://github.com/appwrite/sdk-for-php) (Maintained by the Appwrite Team)
|
||||
- :white_check_mark: [Dart](https://github.com/appwrite/sdk-for-dart) (Maintained by the Appwrite Team)
|
||||
- :white_check_mark: [Deno](https://github.com/appwrite/sdk-for-deno) (Maintained by the Appwrite Team)
|
||||
- :white_check_mark: [Ruby](https://github.com/appwrite/sdk-for-ruby) (Maintained by the Appwrite Team)
|
||||
- :white_check_mark: [Python](https://github.com/appwrite/sdk-for-python) (Maintained by the Appwrite Team)
|
||||
- :white_check_mark: [Kotlin](https://github.com/appwrite/sdk-for-kotlin) (Maintained by the Appwrite Team)
|
||||
- :white_check_mark: [Swift](https://github.com/appwrite/sdk-for-swift) (Maintained by the Appwrite Team)
|
||||
- :white_check_mark: [.NET](https://github.com/appwrite/sdk-for-dotnet) - **Beta** (Maintained by the Appwrite Team)
|
||||
- ✅ [NodeJS](https://github.com/appwrite/sdk-for-node) (Maintained by the Appwrite Team)
|
||||
- ✅ [PHP](https://github.com/appwrite/sdk-for-php) (Maintained by the Appwrite Team)
|
||||
- ✅ [Dart](https://github.com/appwrite/sdk-for-dart) - (Maintained by the Appwrite Team)
|
||||
- ✅ [Deno](https://github.com/appwrite/sdk-for-deno) - **Beta** (Maintained by the Appwrite Team)
|
||||
- ✅ [Ruby](https://github.com/appwrite/sdk-for-ruby) (Maintained by the Appwrite Team)
|
||||
- ✅ [Python](https://github.com/appwrite/sdk-for-python) (Maintained by the Appwrite Team)
|
||||
- ✅ [Kotlin](https://github.com/appwrite/sdk-for-kotlin) - **Beta** (Maintained by the Appwrite Team)
|
||||
- ✅ [Apple](https://github.com/appwrite/sdk-for-apple) - **Beta** (Maintained by the Appwrite Team)
|
||||
- ✅ [.NET](https://github.com/appwrite/sdk-for-dotnet) - **Experimental** (Maintained by the Appwrite Team)
|
||||
|
||||
#### Community
|
||||
|
||||
- :white_check_mark: [Appcelerator Titanium](https://github.com/m1ga/ti.appwrite) (Maintained by [Michael Gangolf](https://github.com/m1ga/))
|
||||
- :white_check_mark: [Godot Engine](https://github.com/GodotNuts/appwrite-sdk) (Maintained by [fenix-hub @GodotNuts](https://github.com/fenix-hub))
|
||||
- ✅ [Appcelerator Titanium](https://github.com/m1ga/ti.appwrite) (Maintained by [Michael Gangolf](https://github.com/m1ga/))
|
||||
- ✅ [Godot Engine](https://github.com/GodotNuts/appwrite-sdk) (Maintained by [fenix-hub @GodotNuts](https://github.com/fenix-hub))
|
||||
|
||||
Looking for more SDKs? - Help us by contributing a pull request to our [SDK Generator](https://github.com/appwrite/sdk-generator)!
|
||||
|
||||
## Architecture
|
||||
|
||||

|
||||

|
||||
|
||||
Appwrite uses a microservices architecture that was designed for easy scaling and delegation of responsibilities. In addition, Appwrite supports multiple APIs, such as REST, WebSocket, and GraphQL to allow you to interact with your resources by leveraging your existing knowledge and protocols of choice.
|
||||
|
||||
@@ -231,7 +205,7 @@ The Appwrite API layer was designed to be extremely fast by leveraging in-memory
|
||||
|
||||
All code contributions, including those of people having commit access, must go through a pull request and be approved by a core developer before being merged. This is to ensure a proper review of all the code.
|
||||
|
||||
We truly :heart: pull requests! If you wish to help, you can learn more about how you can contribute to this project in the [contribution guide](CONTRIBUTING.md).
|
||||
We truly ❤️ pull requests! If you wish to help, you can learn more about how you can contribute to this project in the [contribution guide](CONTRIBUTING.md).
|
||||
|
||||
## Security
|
||||
|
||||
@@ -239,7 +213,7 @@ For security issues, kindly email us at [security@appwrite.io](mailto:security@a
|
||||
|
||||
## Follow Us
|
||||
|
||||
Join our growing community around the world! Check out our official [Blog](https://appwrite.io/blog). Follow us on [X](https://twitter.com/appwrite), [LinkedIn](https://www.linkedin.com/company/appwrite/), [Dev Community](https://dev.to/appwrite) or join our live [Discord server](https://appwrite.io/discord) for more help, ideas, and discussions.
|
||||
Join our growing community around the world! Check out our official [Blog](https://medium.com/appwrite-io). Follow us on [Twitter](https://twitter.com/appwrite), [Facebook Page](https://www.facebook.com/appwrite.io), [Facebook Group](https://www.facebook.com/groups/appwrite.developers/), [Dev Community](https://dev.to/appwrite) or join our live [Discord server](https://discord.gg/GSeTUeA) for more help, ideas, and discussions.
|
||||
|
||||
## License
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
| 1.3.x | :white_check_mark: |
|
||||
| 1.4.x | :white_check_mark: |
|
||||
| 1.5.x | :white_check_mark: |
|
||||
| 1.6.x | :white_check_mark: |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
+47
-147
@@ -1,15 +1,14 @@
|
||||
<?php
|
||||
|
||||
require_once __DIR__ . '/init.php';
|
||||
require_once __DIR__ . '/controllers/general.php';
|
||||
|
||||
use Appwrite\Event\Certificate;
|
||||
use Appwrite\Event\Delete;
|
||||
use Appwrite\Event\Func;
|
||||
use Appwrite\Event\StatsResources;
|
||||
use Appwrite\Event\StatsUsage;
|
||||
use Appwrite\Event\Hamster;
|
||||
use Appwrite\Platform\Appwrite;
|
||||
use Appwrite\Runtimes\Runtimes;
|
||||
use Executor\Executor;
|
||||
use Utopia\App;
|
||||
use Utopia\Cache\Adapter\Sharding;
|
||||
use Utopia\Cache\Cache;
|
||||
use Utopia\CLI\CLI;
|
||||
@@ -18,19 +17,11 @@ use Utopia\Config\Config;
|
||||
use Utopia\Database\Database;
|
||||
use Utopia\Database\Document;
|
||||
use Utopia\Database\Validator\Authorization;
|
||||
use Utopia\DSN\DSN;
|
||||
use Utopia\Logger\Log;
|
||||
use Utopia\Platform\Service;
|
||||
use Utopia\Pools\Group;
|
||||
use Utopia\Queue\Publisher;
|
||||
use Utopia\Queue\Connection;
|
||||
use Utopia\Registry\Registry;
|
||||
use Utopia\System\System;
|
||||
|
||||
// overwriting runtimes to be architecture agnostic for CLI
|
||||
Config::setParam('runtimes', (new Runtimes('v5'))->getAll(supported: false));
|
||||
|
||||
// require controllers after overwriting runtimes
|
||||
require_once __DIR__ . '/controllers/general.php';
|
||||
|
||||
Authorization::disable();
|
||||
|
||||
@@ -44,7 +35,8 @@ CLI::setResource('cache', function ($pools) {
|
||||
$adapters[] = $pools
|
||||
->get($value)
|
||||
->pop()
|
||||
->getResource();
|
||||
->getResource()
|
||||
;
|
||||
}
|
||||
|
||||
return new Cache(new Sharding($adapters));
|
||||
@@ -54,7 +46,7 @@ CLI::setResource('pools', function (Registry $register) {
|
||||
return $register->get('pools');
|
||||
}, ['register']);
|
||||
|
||||
CLI::setResource('dbForPlatform', function ($pools, $cache) {
|
||||
CLI::setResource('dbForConsole', function ($pools, $cache) {
|
||||
$sleep = 3;
|
||||
$maxAttempts = 5;
|
||||
$attempts = 0;
|
||||
@@ -69,9 +61,9 @@ CLI::setResource('dbForPlatform', function ($pools, $cache) {
|
||||
->pop()
|
||||
->getResource();
|
||||
|
||||
$dbForPlatform = new Database($dbAdapter, $cache);
|
||||
$dbForConsole = new Database($dbAdapter, $cache);
|
||||
|
||||
$dbForPlatform
|
||||
$dbForConsole
|
||||
->setNamespace('_console')
|
||||
->setMetadata('host', \gethostname())
|
||||
->setMetadata('project', 'console');
|
||||
@@ -80,7 +72,7 @@ CLI::setResource('dbForPlatform', function ($pools, $cache) {
|
||||
$collections = Config::getParam('collections', [])['console'];
|
||||
$last = \array_key_last($collections);
|
||||
|
||||
if (!($dbForPlatform->exists($dbForPlatform->getDatabase(), $last))) { /** TODO cache ready variable using registry */
|
||||
if (!($dbForConsole->exists($dbForConsole->getDatabase(), $last))) { /** TODO cache ready variable using registry */
|
||||
throw new Exception('Tables not ready yet.');
|
||||
}
|
||||
|
||||
@@ -96,144 +88,68 @@ CLI::setResource('dbForPlatform', function ($pools, $cache) {
|
||||
throw new Exception("Console is not ready yet. Please try again later.");
|
||||
}
|
||||
|
||||
return $dbForPlatform;
|
||||
return $dbForConsole;
|
||||
}, ['pools', 'cache']);
|
||||
|
||||
CLI::setResource('console', function () {
|
||||
return new Document(Config::getParam('console'));
|
||||
}, []);
|
||||
|
||||
CLI::setResource('getProjectDB', function (Group $pools, Database $dbForPlatform, $cache) {
|
||||
CLI::setResource('getProjectDB', function (Group $pools, Database $dbForConsole, $cache) {
|
||||
$databases = []; // TODO: @Meldiron This should probably be responsibility of utopia-php/pools
|
||||
|
||||
return function (Document $project) use ($pools, $dbForPlatform, $cache, &$databases) {
|
||||
return function (Document $project) use ($pools, $dbForConsole, $cache, &$databases) {
|
||||
if ($project->isEmpty() || $project->getId() === 'console') {
|
||||
return $dbForPlatform;
|
||||
return $dbForConsole;
|
||||
}
|
||||
|
||||
try {
|
||||
$dsn = new DSN($project->getAttribute('database'));
|
||||
} catch (\InvalidArgumentException) {
|
||||
// TODO: Temporary until all projects are using shared tables
|
||||
$dsn = new DSN('mysql://' . $project->getAttribute('database'));
|
||||
}
|
||||
|
||||
if (isset($databases[$dsn->getHost()])) {
|
||||
$database = $databases[$dsn->getHost()];
|
||||
$sharedTables = \explode(',', System::getEnv('_APP_DATABASE_SHARED_TABLES', ''));
|
||||
|
||||
if (\in_array($dsn->getHost(), $sharedTables)) {
|
||||
$database
|
||||
->setSharedTables(true)
|
||||
->setTenant($project->getInternalId())
|
||||
->setNamespace($dsn->getParam('namespace'));
|
||||
} else {
|
||||
$database
|
||||
->setSharedTables(false)
|
||||
->setTenant(null)
|
||||
->setNamespace('_' . $project->getInternalId());
|
||||
}
|
||||
$databaseName = $project->getAttribute('database');
|
||||
|
||||
if (isset($databases[$databaseName])) {
|
||||
$database = $databases[$databaseName];
|
||||
$database->setNamespace('_' . $project->getInternalId());
|
||||
return $database;
|
||||
}
|
||||
|
||||
$dbAdapter = $pools
|
||||
->get($dsn->getHost())
|
||||
->get($databaseName)
|
||||
->pop()
|
||||
->getResource();
|
||||
|
||||
$database = new Database($dbAdapter, $cache);
|
||||
$databases[$dsn->getHost()] = $database;
|
||||
$sharedTables = \explode(',', System::getEnv('_APP_DATABASE_SHARED_TABLES', ''));
|
||||
|
||||
if (\in_array($dsn->getHost(), $sharedTables)) {
|
||||
$database
|
||||
->setSharedTables(true)
|
||||
->setTenant($project->getInternalId())
|
||||
->setNamespace($dsn->getParam('namespace'));
|
||||
} else {
|
||||
$database
|
||||
->setSharedTables(false)
|
||||
->setTenant(null)
|
||||
->setNamespace('_' . $project->getInternalId());
|
||||
}
|
||||
$databases[$databaseName] = $database;
|
||||
|
||||
$database
|
||||
->setNamespace('_' . $project->getInternalId())
|
||||
->setMetadata('host', \gethostname())
|
||||
->setMetadata('project', $project->getId());
|
||||
|
||||
return $database;
|
||||
};
|
||||
}, ['pools', 'dbForPlatform', 'cache']);
|
||||
}, ['pools', 'dbForConsole', 'cache']);
|
||||
|
||||
CLI::setResource('getLogsDB', function (Group $pools, Cache $cache) {
|
||||
$database = null;
|
||||
return function (?Document $project = null) use ($pools, $cache, $database) {
|
||||
if ($database !== null && $project !== null && !$project->isEmpty() && $project->getId() !== 'console') {
|
||||
$database->setTenant($project->getInternalId());
|
||||
return $database;
|
||||
}
|
||||
|
||||
$dbAdapter = $pools
|
||||
->get('logs')
|
||||
->pop()
|
||||
->getResource();
|
||||
|
||||
$database = new Database(
|
||||
$dbAdapter,
|
||||
$cache
|
||||
);
|
||||
|
||||
$database
|
||||
->setSharedTables(true)
|
||||
->setNamespace('logsV1')
|
||||
->setTimeout(APP_DATABASE_TIMEOUT_MILLISECONDS_TASK)
|
||||
->setMaxQueryValues(APP_DATABASE_QUERY_MAX_VALUES);
|
||||
|
||||
// set tenant
|
||||
if ($project !== null && !$project->isEmpty() && $project->getId() !== 'console') {
|
||||
$database->setTenant($project->getInternalId());
|
||||
}
|
||||
|
||||
return $database;
|
||||
};
|
||||
}, ['pools', 'cache']);
|
||||
|
||||
CLI::setResource('queueForStatsUsage', function (Connection $publisher) {
|
||||
return new StatsUsage($publisher);
|
||||
}, ['publisher']);
|
||||
CLI::setResource('queueForStatsResources', function (Publisher $publisher) {
|
||||
return new StatsResources($publisher);
|
||||
}, ['publisher']);
|
||||
CLI::setResource('publisher', function (Group $pools) {
|
||||
return $pools->get('publisher')->pop()->getResource();
|
||||
CLI::setResource('queue', function (Group $pools) {
|
||||
return $pools->get('queue')->pop()->getResource();
|
||||
}, ['pools']);
|
||||
CLI::setResource('queueForFunctions', function (Publisher $publisher) {
|
||||
return new Func($publisher);
|
||||
}, ['publisher']);
|
||||
CLI::setResource('queueForDeletes', function (Publisher $publisher) {
|
||||
return new Delete($publisher);
|
||||
}, ['publisher']);
|
||||
CLI::setResource('queueForCertificates', function (Publisher $publisher) {
|
||||
return new Certificate($publisher);
|
||||
}, ['publisher']);
|
||||
CLI::setResource('queueForFunctions', function (Connection $queue) {
|
||||
return new Func($queue);
|
||||
}, ['queue']);
|
||||
CLI::setResource('queueForHamster', function (Connection $queue) {
|
||||
return new Hamster($queue);
|
||||
}, ['queue']);
|
||||
CLI::setResource('queueForDeletes', function (Connection $queue) {
|
||||
return new Delete($queue);
|
||||
}, ['queue']);
|
||||
CLI::setResource('queueForCertificates', function (Connection $queue) {
|
||||
return new Certificate($queue);
|
||||
}, ['queue']);
|
||||
CLI::setResource('logError', function (Registry $register) {
|
||||
return function (Throwable $error, string $namespace, string $action) use ($register) {
|
||||
Console::error('[Error] Timestamp: ' . date('c', time()));
|
||||
Console::error('[Error] Type: ' . get_class($error));
|
||||
Console::error('[Error] Message: ' . $error->getMessage());
|
||||
Console::error('[Error] File: ' . $error->getFile());
|
||||
Console::error('[Error] Line: ' . $error->getLine());
|
||||
Console::error('[Error] Trace: ' . $error->getTraceAsString());
|
||||
|
||||
$logger = $register->get('logger');
|
||||
|
||||
if ($logger) {
|
||||
$version = System::getEnv('_APP_VERSION', 'UNKNOWN');
|
||||
$version = App::getEnv('_APP_VERSION', 'UNKNOWN');
|
||||
|
||||
$log = new Log();
|
||||
$log->setNamespace($namespace);
|
||||
$log->setServer(System::getEnv('_APP_LOGGING_SERVICE_IDENTIFIER', \gethostname()));
|
||||
$log->setServer(\gethostname());
|
||||
$log->setVersion($version);
|
||||
$log->setType(Log::TYPE_ERROR);
|
||||
$log->setMessage($error->getMessage());
|
||||
@@ -248,44 +164,28 @@ CLI::setResource('logError', function (Registry $register) {
|
||||
|
||||
$log->setAction($action);
|
||||
|
||||
$isProduction = System::getEnv('_APP_ENV', 'development') === 'production';
|
||||
$isProduction = App::getEnv('_APP_ENV', 'development') === 'production';
|
||||
$log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING);
|
||||
|
||||
try {
|
||||
$responseCode = $logger->addLog($log);
|
||||
Console::info('Error log pushed with status code: ' . $responseCode);
|
||||
} catch (Throwable $th) {
|
||||
Console::error('Error pushing log: ' . $th->getMessage());
|
||||
}
|
||||
$responseCode = $logger->addLog($log);
|
||||
Console::info('Usage stats log pushed with status code: ' . $responseCode);
|
||||
}
|
||||
|
||||
Console::warning("Failed: {$error->getMessage()}");
|
||||
Console::warning($error->getTraceAsString());
|
||||
};
|
||||
}, ['register']);
|
||||
|
||||
CLI::setResource('executor', fn () => new Executor(fn (string $projectId, string $deploymentId) => System::getEnv('_APP_EXECUTOR_HOST')));
|
||||
|
||||
$platform = new Appwrite();
|
||||
$args = $platform->getEnv('argv');
|
||||
$platform->init(Service::TYPE_CLI);
|
||||
|
||||
if (!isset($args[0])) {
|
||||
Console::error('Missing task name');
|
||||
Console::exit(1);
|
||||
}
|
||||
|
||||
\array_shift($args);
|
||||
$taskName = $args[0];
|
||||
$platform->init(Service::TYPE_TASK);
|
||||
$cli = $platform->getCli();
|
||||
|
||||
$cli
|
||||
->error()
|
||||
->inject('error')
|
||||
->inject('logError')
|
||||
->action(function (Throwable $error, callable $logError) use ($taskName) {
|
||||
call_user_func_array($logError, [
|
||||
$error,
|
||||
'Task',
|
||||
$taskName,
|
||||
]);
|
||||
->action(function (Throwable $error) {
|
||||
Console::error($error->getMessage());
|
||||
});
|
||||
|
||||
$cli->run();
|
||||
|
||||
@@ -4,7 +4,7 @@ return [
|
||||
'amex' => ['name' => 'American Express', 'path' => __DIR__ . '/credit-cards/amex.png'],
|
||||
'argencard' => ['name' => 'Argencard', 'path' => __DIR__ . '/credit-cards/argencard.png'],
|
||||
'cabal' => ['name' => 'Cabal', 'path' => __DIR__ . '/credit-cards/cabal.png'],
|
||||
'cencosud' => ['name' => 'Cencosud', 'path' => __DIR__ . '/credit-cards/cencosud.png'],
|
||||
'censosud' => ['name' => 'Consosud', 'path' => __DIR__ . '/credit-cards/consosud.png'],
|
||||
'diners' => ['name' => 'Diners Club', 'path' => __DIR__ . '/credit-cards/diners.png'],
|
||||
'discover' => ['name' => 'Discover', 'path' => __DIR__ . '/credit-cards/discover.png'],
|
||||
'elo' => ['name' => 'Elo', 'path' => __DIR__ . '/credit-cards/elo.png'],
|
||||
@@ -16,6 +16,5 @@ return [
|
||||
'union-china-pay' => ['name' => 'Union China Pay', 'path' => __DIR__ . '/credit-cards/union-china-pay.png'],
|
||||
'visa' => ['name' => 'Visa', 'path' => __DIR__ . '/credit-cards/visa.png'],
|
||||
'mir' => ['name' => 'MIR', 'path' => __DIR__ . '/credit-cards/mir.png'],
|
||||
'maestro' => ['name' => 'Maestro', 'path' => __DIR__ . '/credit-cards/maestro.png'],
|
||||
'rupay' => ['name' => 'Rupay', 'path' => __DIR__ . '/credit-cards/rupay.png']
|
||||
'maestro' => ['name' => 'Maestro', 'path' => __DIR__ . '/credit-cards/maestro.png']
|
||||
];
|
||||
|
||||
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 34 KiB |
@@ -142,7 +142,6 @@ return [
|
||||
'pw' => ['name' => 'Palau', 'path' => __DIR__ . '/flags/pw.png'],
|
||||
'pg' => ['name' => 'Papua New Guinea', 'path' => __DIR__ . '/flags/pg.png'],
|
||||
'pl' => ['name' => 'Poland', 'path' => __DIR__ . '/flags/pl.png'],
|
||||
'pf' => ['name' => 'French Polynesia', 'path' => __DIR__ . '/flags/pf.png'],
|
||||
'kp' => ['name' => 'North Korea', 'path' => __DIR__ . '/flags/kp.png'],
|
||||
'pt' => ['name' => 'Portugal', 'path' => __DIR__ . '/flags/pt.png'],
|
||||
'py' => ['name' => 'Paraguay', 'path' => __DIR__ . '/flags/py.png'],
|
||||
|
||||
+5991
-17
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,126 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Utopia\Database\Database;
|
||||
use Utopia\Database\Helpers\ID;
|
||||
|
||||
return [
|
||||
'collections' => [
|
||||
'$collection' => ID::custom('databases'),
|
||||
'$id' => ID::custom('collections'),
|
||||
'name' => 'Collections',
|
||||
'attributes' => [
|
||||
[
|
||||
'$id' => ID::custom('databaseInternalId'),
|
||||
'type' => Database::VAR_STRING,
|
||||
'format' => '',
|
||||
'size' => Database::LENGTH_KEY,
|
||||
'signed' => true,
|
||||
'required' => true,
|
||||
'default' => null,
|
||||
'array' => false,
|
||||
'filters' => [],
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('databaseId'),
|
||||
'type' => Database::VAR_STRING,
|
||||
'signed' => true,
|
||||
'size' => Database::LENGTH_KEY,
|
||||
'format' => '',
|
||||
'filters' => [],
|
||||
'required' => true,
|
||||
'default' => null,
|
||||
'array' => false,
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('name'),
|
||||
'type' => Database::VAR_STRING,
|
||||
'size' => 256,
|
||||
'required' => true,
|
||||
'signed' => true,
|
||||
'array' => false,
|
||||
'filters' => [],
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('enabled'),
|
||||
'type' => Database::VAR_BOOLEAN,
|
||||
'signed' => true,
|
||||
'size' => 0,
|
||||
'format' => '',
|
||||
'filters' => [],
|
||||
'required' => true,
|
||||
'default' => null,
|
||||
'array' => false,
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('documentSecurity'),
|
||||
'type' => Database::VAR_BOOLEAN,
|
||||
'signed' => true,
|
||||
'size' => 0,
|
||||
'format' => '',
|
||||
'filters' => [],
|
||||
'required' => true,
|
||||
'default' => null,
|
||||
'array' => false,
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('attributes'),
|
||||
'type' => Database::VAR_STRING,
|
||||
'size' => 1000000,
|
||||
'required' => false,
|
||||
'signed' => true,
|
||||
'array' => false,
|
||||
'filters' => ['subQueryAttributes'],
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('indexes'),
|
||||
'type' => Database::VAR_STRING,
|
||||
'size' => 1000000,
|
||||
'required' => false,
|
||||
'signed' => true,
|
||||
'array' => false,
|
||||
'filters' => ['subQueryIndexes'],
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('search'),
|
||||
'type' => Database::VAR_STRING,
|
||||
'format' => '',
|
||||
'size' => 16384,
|
||||
'signed' => true,
|
||||
'required' => false,
|
||||
'default' => null,
|
||||
'array' => false,
|
||||
'filters' => [],
|
||||
],
|
||||
],
|
||||
'indexes' => [
|
||||
[
|
||||
'$id' => ID::custom('_fulltext_search'),
|
||||
'type' => Database::INDEX_FULLTEXT,
|
||||
'attributes' => ['search'],
|
||||
'lengths' => [],
|
||||
'orders' => [],
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('_key_name'),
|
||||
'type' => Database::INDEX_KEY,
|
||||
'attributes' => ['name'],
|
||||
'lengths' => [256],
|
||||
'orders' => [Database::ORDER_ASC],
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('_key_enabled'),
|
||||
'type' => Database::INDEX_KEY,
|
||||
'attributes' => ['enabled'],
|
||||
'lengths' => [],
|
||||
'orders' => [Database::ORDER_ASC],
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('_key_documentSecurity'),
|
||||
'type' => Database::INDEX_KEY,
|
||||
'attributes' => ['documentSecurity'],
|
||||
'lengths' => [],
|
||||
'orders' => [Database::ORDER_ASC],
|
||||
],
|
||||
],
|
||||
]
|
||||
];
|
||||
@@ -1,94 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Utopia\Database\Database;
|
||||
use Utopia\Database\Helpers\ID;
|
||||
|
||||
$logsCollection = [];
|
||||
|
||||
$logsCollection['stats'] = [
|
||||
'$collection' => ID::custom(Database::METADATA),
|
||||
'$id' => ID::custom('stats'),
|
||||
'name' => 'stats',
|
||||
'attributes' => [
|
||||
[
|
||||
'$id' => ID::custom('metric'),
|
||||
'type' => Database::VAR_STRING,
|
||||
'format' => '',
|
||||
'size' => 255,
|
||||
'signed' => true,
|
||||
'required' => true,
|
||||
'default' => null,
|
||||
'array' => false,
|
||||
'filters' => [],
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('region'),
|
||||
'type' => Database::VAR_STRING,
|
||||
'format' => '',
|
||||
'size' => 255,
|
||||
'signed' => true,
|
||||
'required' => true,
|
||||
'default' => null,
|
||||
'array' => false,
|
||||
'filters' => [],
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('value'),
|
||||
'type' => Database::VAR_INTEGER,
|
||||
'format' => '',
|
||||
'size' => 8,
|
||||
'signed' => true,
|
||||
'required' => true,
|
||||
'default' => null,
|
||||
'array' => false,
|
||||
'filters' => [],
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('time'),
|
||||
'type' => Database::VAR_DATETIME,
|
||||
'format' => '',
|
||||
'size' => 0,
|
||||
'signed' => false,
|
||||
'required' => false,
|
||||
'default' => null,
|
||||
'array' => false,
|
||||
'filters' => ['datetime'],
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('period'),
|
||||
'type' => Database::VAR_STRING,
|
||||
'format' => '',
|
||||
'size' => 4,
|
||||
'signed' => true,
|
||||
'required' => true,
|
||||
'default' => null,
|
||||
'array' => false,
|
||||
'filters' => [],
|
||||
],
|
||||
],
|
||||
'indexes' => [
|
||||
[
|
||||
'$id' => ID::custom('_key_time'),
|
||||
'type' => Database::INDEX_KEY,
|
||||
'attributes' => ['time'],
|
||||
'lengths' => [],
|
||||
'orders' => [Database::ORDER_DESC],
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('_key_period_time'),
|
||||
'type' => Database::INDEX_KEY,
|
||||
'attributes' => ['period', 'time'],
|
||||
'lengths' => [],
|
||||
'orders' => [Database::ORDER_ASC],
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('_key_metric_period_time'),
|
||||
'type' => Database::INDEX_UNIQUE,
|
||||
'attributes' => ['metric', 'period', 'time'],
|
||||
'lengths' => [],
|
||||
'orders' => [Database::ORDER_DESC],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
return $logsCollection;
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,53 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Initializes console project document.
|
||||
*/
|
||||
|
||||
use Appwrite\Auth\Auth;
|
||||
use Appwrite\Network\Validator\Origin;
|
||||
use Utopia\Database\Helpers\ID;
|
||||
use Utopia\System\System;
|
||||
|
||||
$console = [
|
||||
'$id' => ID::custom('console'),
|
||||
'$internalId' => ID::custom('console'),
|
||||
'name' => 'Appwrite',
|
||||
'$collection' => ID::custom('projects'),
|
||||
'description' => 'Appwrite core engine',
|
||||
'logo' => '',
|
||||
'teamId' => null,
|
||||
'webhooks' => [],
|
||||
'keys' => [],
|
||||
'platforms' => [
|
||||
[
|
||||
'$collection' => ID::custom('platforms'),
|
||||
'name' => 'Localhost',
|
||||
'type' => Origin::CLIENT_TYPE_WEB,
|
||||
'hostname' => 'localhost',
|
||||
], // Current host is added on app init
|
||||
],
|
||||
'region' => 'fra',
|
||||
'legalName' => '',
|
||||
'legalCountry' => '',
|
||||
'legalState' => '',
|
||||
'legalCity' => '',
|
||||
'legalAddress' => '',
|
||||
'legalTaxId' => '',
|
||||
'auths' => [
|
||||
'mockNumbers' => [],
|
||||
'invites' => System::getEnv('_APP_CONSOLE_INVITES', 'enabled') === 'enabled',
|
||||
'limit' => (System::getEnv('_APP_CONSOLE_WHITELIST_ROOT', 'enabled') === 'enabled') ? 1 : 0, // limit signup to 1 user
|
||||
'duration' => Auth::TOKEN_EXPIRATION_LOGIN_LONG, // 1 Year in seconds
|
||||
'sessionAlerts' => System::getEnv('_APP_CONSOLE_SESSION_ALERTS', 'disabled') === 'enabled'
|
||||
],
|
||||
'authWhitelistEmails' => (!empty(System::getEnv('_APP_CONSOLE_WHITELIST_EMAILS', null))) ? \explode(',', System::getEnv('_APP_CONSOLE_WHITELIST_EMAILS', null)) : [],
|
||||
'authWhitelistIPs' => (!empty(System::getEnv('_APP_CONSOLE_WHITELIST_IPS', null))) ? \explode(',', System::getEnv('_APP_CONSOLE_WHITELIST_IPS', null)) : [],
|
||||
'oAuthProviders' => [
|
||||
'githubEnabled' => true,
|
||||
'githubSecret' => System::getEnv('_APP_CONSOLE_GITHUB_SECRET', ''),
|
||||
'githubAppid' => System::getEnv('_APP_CONSOLE_GITHUB_APP_ID', '')
|
||||
],
|
||||
];
|
||||
|
||||
return $console;
|
||||
+14
-128
@@ -11,7 +11,7 @@ return [
|
||||
/** General Errors */
|
||||
Exception::GENERAL_UNKNOWN => [
|
||||
'name' => Exception::GENERAL_UNKNOWN,
|
||||
'description' => 'An unknown error has occurred. Please check the logs for more information.',
|
||||
'description' => 'An unknown error has occured. Please check the logs for more information.',
|
||||
'code' => 500,
|
||||
],
|
||||
Exception::GENERAL_MOCK => [
|
||||
@@ -24,11 +24,6 @@ return [
|
||||
'description' => 'Access to this API is forbidden.',
|
||||
'code' => 401,
|
||||
],
|
||||
Exception::GENERAL_RESOURCE_BLOCKED => [
|
||||
'name' => Exception::GENERAL_RESOURCE_BLOCKED,
|
||||
'description' => 'Access to this resource is blocked.',
|
||||
'code' => 401,
|
||||
],
|
||||
Exception::GENERAL_UNKNOWN_ORIGIN => [
|
||||
'name' => Exception::GENERAL_UNKNOWN_ORIGIN,
|
||||
'description' => 'The request originated from an unknown origin. If you trust this domain, please list it as a trusted platform in the Appwrite console.',
|
||||
@@ -139,11 +134,6 @@ return [
|
||||
Exception::USER_COUNT_EXCEEDED => [
|
||||
'name' => Exception::USER_COUNT_EXCEEDED,
|
||||
'description' => 'The current project has exceeded the maximum number of users. Please check your user limit in the Appwrite console.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::USER_CONSOLE_COUNT_EXCEEDED => [
|
||||
'name' => Exception::USER_CONSOLE_COUNT_EXCEEDED,
|
||||
'description' => 'Sign up to the console is restricted. You can contact an administrator to update console sign up restrictions by setting _APP_CONSOLE_WHITELIST_ROOT to "disabled".',
|
||||
'code' => 501,
|
||||
],
|
||||
Exception::USER_JWT_INVALID => [
|
||||
@@ -289,7 +279,7 @@ return [
|
||||
],
|
||||
Exception::USER_CHALLENGE_REQUIRED => [
|
||||
'name' => Exception::USER_CHALLENGE_REQUIRED,
|
||||
'description' => 'A recently successful challenge is required to complete this action. A challenge is considered recent for 5 minutes.',
|
||||
'description' => 'A recently succeessful challenge is required to complete this action. A challenge is considered recent for 5 minutes.',
|
||||
'code' => 401,
|
||||
],
|
||||
Exception::USER_OAUTH2_BAD_REQUEST => [
|
||||
@@ -337,11 +327,6 @@ return [
|
||||
'description' => 'API key and session used in the same request. Use either `setSession` or `setKey`. Learn about which authentication method to use in the SSR docs: https://appwrite.io/docs/products/auth/server-side-rendering',
|
||||
'code' => 403,
|
||||
],
|
||||
Exception::API_KEY_EXPIRED => [
|
||||
'name' => Exception::API_KEY_EXPIRED,
|
||||
'description' => 'The dynamic API key has expired. Please don\'t use dynamic API keys for more than duration of the execution.',
|
||||
'code' => 401,
|
||||
],
|
||||
|
||||
/** Teams */
|
||||
Exception::TEAM_NOT_FOUND => [
|
||||
@@ -349,6 +334,11 @@ return [
|
||||
'description' => 'Team with the requested ID could not be found.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::TEAM_INVITE_ALREADY_EXISTS => [
|
||||
'name' => Exception::TEAM_INVITE_ALREADY_EXISTS,
|
||||
'description' => 'User has already been invited or is already a member of this team',
|
||||
'code' => 409,
|
||||
],
|
||||
Exception::TEAM_INVITE_NOT_FOUND => [
|
||||
'name' => Exception::TEAM_INVITE_NOT_FOUND,
|
||||
'description' => 'The requested team invitation could not be found.',
|
||||
@@ -356,7 +346,7 @@ return [
|
||||
],
|
||||
Exception::TEAM_INVALID_SECRET => [
|
||||
'name' => Exception::TEAM_INVALID_SECRET,
|
||||
'description' => 'The team invitation secret is invalid. Please request a new invitation and try again.',
|
||||
'description' => 'The team invitation secret is invalid. Please request a new invitation and try again.',
|
||||
'code' => 401,
|
||||
],
|
||||
Exception::TEAM_MEMBERSHIP_MISMATCH => [
|
||||
@@ -375,13 +365,6 @@ return [
|
||||
'code' => 409,
|
||||
],
|
||||
|
||||
/** Console */
|
||||
Exception::RESOURCE_ALREADY_EXISTS => [
|
||||
'name' => Exception::RESOURCE_ALREADY_EXISTS,
|
||||
'description' => 'Resource with the requested ID already exists. Please choose a different ID and try again.',
|
||||
'code' => 409,
|
||||
],
|
||||
|
||||
/** Membership */
|
||||
Exception::MEMBERSHIP_NOT_FOUND => [
|
||||
'name' => Exception::MEMBERSHIP_NOT_FOUND,
|
||||
@@ -488,18 +471,6 @@ return [
|
||||
'code' => 403,
|
||||
],
|
||||
|
||||
/** Tokens */
|
||||
Exception::TOKEN_NOT_FOUND => [
|
||||
'name' => Exception::TOKEN_NOT_FOUND,
|
||||
'description' => 'The requested file token could not be found.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::TOKEN_EXPIRED => [
|
||||
'name' => Exception::TOKEN_EXPIRED,
|
||||
'description' => 'The requested file token has expired.',
|
||||
'code' => 401,
|
||||
],
|
||||
|
||||
/** VCS */
|
||||
Exception::INSTALLATION_NOT_FOUND => [
|
||||
'name' => Exception::INSTALLATION_NOT_FOUND,
|
||||
@@ -513,7 +484,7 @@ return [
|
||||
],
|
||||
Exception::REPOSITORY_NOT_FOUND => [
|
||||
'name' => Exception::REPOSITORY_NOT_FOUND,
|
||||
'description' => 'Repository with the requested ID could not be found. Check to see if the ID is correct, or create the repository.',
|
||||
'description' => 'Repository with the requested ID could not be found. Check to see if the ID is correct, or create the respository.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::PROVIDER_CONTRIBUTION_CONFLICT => [
|
||||
@@ -523,7 +494,7 @@ return [
|
||||
],
|
||||
Exception::GENERAL_PROVIDER_FAILURE => [
|
||||
'name' => Exception::GENERAL_PROVIDER_FAILURE,
|
||||
'description' => 'VCS (Version Control System) provider failed to process the request. We believe this is an error with the VCS provider. Try again, or contact support for more information.',
|
||||
'description' => 'VCS (Version Control System) provider failed to proccess the request. We believe this is an error with the VCS provider. Try again, or contact support for more information.',
|
||||
'code' => 400,
|
||||
],
|
||||
|
||||
@@ -539,42 +510,10 @@ return [
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::FUNCTION_ENTRYPOINT_MISSING => [
|
||||
'name' => Exception::FUNCTION_ENTRYPOINT_MISSING,
|
||||
'name' => Exception::FUNCTION_RUNTIME_UNSUPPORTED,
|
||||
'description' => 'Entrypoint for your Appwrite Function is missing. Please specify it when making deployment or update the entrypoint under your function\'s "Settings" > "Configuration" > "Entrypoint".',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::FUNCTION_SYNCHRONOUS_TIMEOUT => [
|
||||
'name' => Exception::FUNCTION_SYNCHRONOUS_TIMEOUT,
|
||||
'description' => 'Synchronous function execution timed out. Use asynchronous execution instead, or ensure the execution duration doesn\'t exceed 30 seconds.',
|
||||
'code' => 408,
|
||||
],
|
||||
Exception::FUNCTION_TEMPLATE_NOT_FOUND => [
|
||||
'name' => Exception::FUNCTION_TEMPLATE_NOT_FOUND,
|
||||
'description' => 'Function Template with the requested ID could not be found.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::FUNCTION_RUNTIME_NOT_DETECTED => [
|
||||
'name' => Exception::FUNCTION_RUNTIME_NOT_DETECTED,
|
||||
'description' => 'Function runtime could not be detected.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::FUNCTION_EXECUTE_PERMISSION_MISSING => [
|
||||
'name' => Exception::FUNCTION_EXECUTE_PERMISSION_MISSING,
|
||||
'description' => 'To execute function using domain, execute permissions must include "any" or "guests".',
|
||||
'code' => 401,
|
||||
],
|
||||
|
||||
/** Sites */
|
||||
Exception::SITE_NOT_FOUND => [
|
||||
'name' => Exception::SITE_NOT_FOUND,
|
||||
'description' => 'Site with the requested ID could not be found.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::SITE_TEMPLATE_NOT_FOUND => [
|
||||
'name' => Exception::SITE_TEMPLATE_NOT_FOUND,
|
||||
'description' => 'Site Template with the requested ID could not be found.',
|
||||
'code' => 404,
|
||||
],
|
||||
|
||||
/** Builds */
|
||||
Exception::BUILD_NOT_FOUND => [
|
||||
@@ -592,21 +531,6 @@ return [
|
||||
'description' => 'Build with the requested ID is already in progress. Please wait before you can retry.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::BUILD_ALREADY_COMPLETED => [
|
||||
'name' => Exception::BUILD_ALREADY_COMPLETED,
|
||||
'description' => 'Build with the requested ID is already completed and cannot be canceled.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::BUILD_CANCELED => [
|
||||
'name' => Exception::BUILD_CANCELED,
|
||||
'description' => 'Build with the requested ID has been canceled.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::BUILD_FAILED => [
|
||||
'name' => Exception::BUILD_FAILED,
|
||||
'description' => 'Build with the requested ID failed. Please check the logs for more information.',
|
||||
'code' => 400,
|
||||
],
|
||||
|
||||
/** Deployments */
|
||||
Exception::DEPLOYMENT_NOT_FOUND => [
|
||||
@@ -622,19 +546,6 @@ return [
|
||||
'code' => 404,
|
||||
],
|
||||
|
||||
Exception::EXECUTION_IN_PROGRESS => [
|
||||
'name' => Exception::EXECUTION_IN_PROGRESS,
|
||||
'description' => 'Can\'t delete ongoing execution. Please wait for execution to finish before deleting it.',
|
||||
'code' => 400,
|
||||
],
|
||||
|
||||
/** Logs */
|
||||
Exception::LOG_NOT_FOUND => [
|
||||
'name' => Exception::LOG_NOT_FOUND,
|
||||
'description' => 'Log with the requested ID could not be found.',
|
||||
'code' => 404,
|
||||
],
|
||||
|
||||
/** Databases */
|
||||
Exception::DATABASE_NOT_FOUND => [
|
||||
'name' => Exception::DATABASE_NOT_FOUND,
|
||||
@@ -651,11 +562,6 @@ return [
|
||||
'description' => 'Database timed out. Try adjusting your queries or adding an index.',
|
||||
'code' => 408
|
||||
],
|
||||
Exception::DATABASE_QUERY_ORDER_NULL => [
|
||||
'name' => Exception::DATABASE_QUERY_ORDER_NULL,
|
||||
'description' => 'The order attribute had a null value. Cursor pagination requires all documents order attribute values are non-null.',
|
||||
'code' => 400,
|
||||
],
|
||||
|
||||
/** Collections */
|
||||
Exception::COLLECTION_NOT_FOUND => [
|
||||
@@ -744,7 +650,7 @@ return [
|
||||
],
|
||||
Exception::ATTRIBUTE_LIMIT_EXCEEDED => [
|
||||
'name' => Exception::ATTRIBUTE_LIMIT_EXCEEDED,
|
||||
'description' => 'The maximum number or size of attributes for this collection has been reached.',
|
||||
'description' => 'The maximum number of attributes has been reached.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::ATTRIBUTE_VALUE_INVALID => [
|
||||
@@ -757,16 +663,6 @@ return [
|
||||
'description' => 'The attribute type is invalid.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::RELATIONSHIP_VALUE_INVALID => [
|
||||
'name' => Exception::RELATIONSHIP_VALUE_INVALID,
|
||||
'description' => 'The relationship value is invalid.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::ATTRIBUTE_INVALID_RESIZE => [
|
||||
'name' => Exception::ATTRIBUTE_INVALID_RESIZE,
|
||||
'description' => "Existing data is too large for new size, truncate your existing data then try again.",
|
||||
'code' => 400,
|
||||
],
|
||||
|
||||
/** Indexes */
|
||||
Exception::INDEX_NOT_FOUND => [
|
||||
@@ -789,11 +685,6 @@ return [
|
||||
'description' => 'Index invalid.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::INDEX_DEPENDENCY => [
|
||||
'name' => Exception::INDEX_DEPENDENCY,
|
||||
'description' => 'Attribute cannot be renamed or deleted. Please remove the associated index first.',
|
||||
'code' => 409,
|
||||
],
|
||||
|
||||
/** Project Errors */
|
||||
Exception::PROJECT_NOT_FOUND => [
|
||||
@@ -814,7 +705,7 @@ return [
|
||||
Exception::PROJECT_PROVIDER_UNSUPPORTED => [
|
||||
'name' => Exception::PROJECT_PROVIDER_UNSUPPORTED,
|
||||
'description' => 'The chosen OAuth provider is unsupported. Please check the <a href="/docs/client/account?sdk=web-default#accountCreateOAuth2Session">Create OAuth2 Session docs</a> for the complete list of supported OAuth providers.',
|
||||
'code' => 400,
|
||||
'code' => 501,
|
||||
],
|
||||
Exception::PROJECT_INVALID_SUCCESS_URL => [
|
||||
'name' => Exception::PROJECT_INVALID_SUCCESS_URL,
|
||||
@@ -864,7 +755,7 @@ return [
|
||||
Exception::RULE_VERIFICATION_FAILED => [
|
||||
'name' => Exception::RULE_VERIFICATION_FAILED,
|
||||
'description' => 'Domain verification failed. Please check if your DNS records are correct and try again.',
|
||||
'code' => 400,
|
||||
'code' => 401,
|
||||
'publish' => true
|
||||
],
|
||||
Exception::PROJECT_SMTP_CONFIG_INVALID => [
|
||||
@@ -907,11 +798,6 @@ return [
|
||||
'description' => 'Variable with the same ID already exists in this project. Try again with a different ID.',
|
||||
'code' => 409,
|
||||
],
|
||||
Exception::VARIABLE_CANNOT_UNSET_SECRET => [
|
||||
'name' => Exception::VARIABLE_CANNOT_UNSET_SECRET,
|
||||
'description' => 'Secret variables cannot be marked as non-secret. Please re-create the variable if this is your intention.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::GRAPHQL_NO_QUERY => [
|
||||
'name' => Exception::GRAPHQL_NO_QUERY,
|
||||
'description' => 'Param "query" is not optional.',
|
||||
|
||||
@@ -217,34 +217,6 @@ return [
|
||||
],
|
||||
]
|
||||
],
|
||||
'sites' => [
|
||||
'$model' => Response::MODEL_SITE,
|
||||
'$resource' => true,
|
||||
'$description' => 'This event triggers on any sites event.',
|
||||
'deployments' => [
|
||||
'$model' => Response::MODEL_DEPLOYMENT,
|
||||
'$resource' => true,
|
||||
'$description' => 'This event triggers on any deployments event.',
|
||||
'create' => [
|
||||
'$description' => 'This event triggers when a deployment is created.',
|
||||
],
|
||||
'delete' => [
|
||||
'$description' => 'This event triggers when a deployment is deleted.'
|
||||
],
|
||||
'update' => [
|
||||
'$description' => 'This event triggers when a deployment is updated.'
|
||||
],
|
||||
],
|
||||
'create' => [
|
||||
'$description' => 'This event triggers when a site is created.'
|
||||
],
|
||||
'delete' => [
|
||||
'$description' => 'This event triggers when a site is deleted.',
|
||||
],
|
||||
'update' => [
|
||||
'$description' => 'This event triggers when a site is updated.',
|
||||
]
|
||||
],
|
||||
'functions' => [
|
||||
'$model' => Response::MODEL_FUNCTION,
|
||||
'$resource' => true,
|
||||
|
||||
@@ -1,295 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* List of Appwrite Sites supported frameworks
|
||||
*/
|
||||
|
||||
use Utopia\Config\Config;
|
||||
|
||||
$templateRuntimes = Config::getParam('template-runtimes');
|
||||
|
||||
function getVersions(array $versions, string $prefix)
|
||||
{
|
||||
return array_map(function ($version) use ($prefix) {
|
||||
return $prefix . '-' . $version;
|
||||
}, $versions);
|
||||
}
|
||||
|
||||
return [
|
||||
'analog' => [
|
||||
'key' => 'analog',
|
||||
'name' => 'Analog',
|
||||
'screenshotSleep' => 3000,
|
||||
'buildRuntime' => 'node-22',
|
||||
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
|
||||
'bundleCommand' => 'bash /usr/local/server/helpers/analog/bundle.sh',
|
||||
'envCommand' => 'source /usr/local/server/helpers/analog/env.sh',
|
||||
'adapters' => [
|
||||
'ssr' => [
|
||||
'key' => 'ssr',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './dist/analog',
|
||||
'startCommand' => 'bash helpers/analog/server.sh',
|
||||
],
|
||||
'static' => [
|
||||
'key' => 'static',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './dist/analog/public',
|
||||
'startCommand' => 'bash helpers/server.sh',
|
||||
'fallbackFile' => 'index.html'
|
||||
]
|
||||
]
|
||||
],
|
||||
'angular' => [
|
||||
'key' => 'angular',
|
||||
'name' => 'Angular',
|
||||
'screenshotSleep' => 3000,
|
||||
'buildRuntime' => 'node-22',
|
||||
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
|
||||
'bundleCommand' => 'bash /usr/local/server/helpers/angular/bundle.sh',
|
||||
'envCommand' => 'source /usr/local/server/helpers/angular/env.sh',
|
||||
'adapters' => [
|
||||
'ssr' => [
|
||||
'key' => 'ssr',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './dist/angular',
|
||||
'startCommand' => 'bash helpers/angular/server.sh',
|
||||
],
|
||||
'static' => [
|
||||
'key' => 'static',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './dist/angular/browser',
|
||||
'startCommand' => 'bash helpers/server.sh',
|
||||
'fallbackFile' => 'index.csr.html'
|
||||
]
|
||||
]
|
||||
],
|
||||
'nextjs' => [
|
||||
'key' => 'nextjs',
|
||||
'name' => 'Next.js',
|
||||
'screenshotSleep' => 3000,
|
||||
'buildRuntime' => 'node-22',
|
||||
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
|
||||
'bundleCommand' => 'bash /usr/local/server/helpers/next-js/bundle.sh',
|
||||
'envCommand' => 'source /usr/local/server/helpers/next-js/env.sh',
|
||||
'adapters' => [
|
||||
'ssr' => [
|
||||
'key' => 'ssr',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './.next',
|
||||
'startCommand' => 'bash helpers/next-js/server.sh',
|
||||
],
|
||||
'static' => [
|
||||
'key' => 'static',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './out',
|
||||
'startCommand' => 'bash helpers/server.sh',
|
||||
]
|
||||
]
|
||||
],
|
||||
'react' => [
|
||||
'key' => 'react',
|
||||
'name' => 'React',
|
||||
'screenshotSleep' => 3000,
|
||||
'buildRuntime' => 'node-22',
|
||||
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
|
||||
'adapters' => [
|
||||
'static' => [
|
||||
'key' => 'static',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './dist',
|
||||
'startCommand' => 'bash helpers/server.sh',
|
||||
'fallbackFile' => 'index.html'
|
||||
]
|
||||
]
|
||||
],
|
||||
'nuxt' => [
|
||||
'key' => 'nuxt',
|
||||
'name' => 'Nuxt',
|
||||
'screenshotSleep' => 3000,
|
||||
'buildRuntime' => 'node-22',
|
||||
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
|
||||
'bundleCommand' => 'bash /usr/local/server/helpers/nuxt/bundle.sh',
|
||||
'envCommand' => 'source /usr/local/server/helpers/nuxt/env.sh',
|
||||
'adapters' => [
|
||||
'ssr' => [
|
||||
'key' => 'ssr',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './.output',
|
||||
'startCommand' => 'bash helpers/nuxt/server.sh',
|
||||
],
|
||||
'static' => [
|
||||
'key' => 'static',
|
||||
'buildCommand' => 'npm run generate',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './output/public',
|
||||
'startCommand' => 'bash helpers/server.sh',
|
||||
]
|
||||
]
|
||||
],
|
||||
'vue' => [
|
||||
'key' => 'vue',
|
||||
'name' => 'Vue.js',
|
||||
'screenshotSleep' => 5000,
|
||||
'buildRuntime' => 'node-22',
|
||||
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
|
||||
'adapters' => [
|
||||
'static' => [
|
||||
'key' => 'static',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './dist',
|
||||
'startCommand' => 'bash helpers/server.sh',
|
||||
'fallbackFile' => 'index.html'
|
||||
]
|
||||
]
|
||||
],
|
||||
'sveltekit' => [
|
||||
'key' => 'sveltekit',
|
||||
'name' => 'SvelteKit',
|
||||
'screenshotSleep' => 3000,
|
||||
'buildRuntime' => 'node-22',
|
||||
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
|
||||
'bundleCommand' => 'bash /usr/local/server/helpers/sveltekit/bundle.sh',
|
||||
'envCommand' => 'source /usr/local/server/helpers/sveltekit/env.sh',
|
||||
'adapters' => [
|
||||
'ssr' => [
|
||||
'key' => 'ssr',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './build',
|
||||
'startCommand' => 'bash helpers/sveltekit/server.sh',
|
||||
],
|
||||
'static' => [
|
||||
'key' => 'static',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './build',
|
||||
'startCommand' => 'bash helpers/server.sh',
|
||||
]
|
||||
]
|
||||
],
|
||||
'astro' => [
|
||||
'key' => 'astro',
|
||||
'name' => 'Astro',
|
||||
'screenshotSleep' => 3000,
|
||||
'buildRuntime' => 'node-22',
|
||||
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
|
||||
'bundleCommand' => 'bash /usr/local/server/helpers/astro/bundle.sh',
|
||||
'envCommand' => 'source /usr/local/server/helpers/astro/env.sh',
|
||||
'adapters' => [
|
||||
'ssr' => [
|
||||
'key' => 'ssr',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './dist',
|
||||
'startCommand' => 'bash helpers/astro/server.sh',
|
||||
],
|
||||
'static' => [
|
||||
'key' => 'static',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './dist',
|
||||
'startCommand' => 'bash helpers/server.sh',
|
||||
]
|
||||
]
|
||||
],
|
||||
'remix' => [
|
||||
'key' => 'remix',
|
||||
'name' => 'Remix',
|
||||
'screenshotSleep' => 3000,
|
||||
'buildRuntime' => 'node-22',
|
||||
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
|
||||
'bundleCommand' => 'bash /usr/local/server/helpers/remix/bundle.sh',
|
||||
'envCommand' => 'source /usr/local/server/helpers/remix/env.sh',
|
||||
'adapters' => [
|
||||
'ssr' => [
|
||||
'key' => 'ssr',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './build',
|
||||
'startCommand' => 'bash helpers/remix/server.sh',
|
||||
],
|
||||
'static' => [
|
||||
'key' => 'static',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './build/client',
|
||||
'startCommand' => 'bash helpers/server.sh',
|
||||
]
|
||||
]
|
||||
],
|
||||
'lynx' => [
|
||||
'key' => 'lynx',
|
||||
'name' => 'Lynx',
|
||||
'screenshotSleep' => 5000,
|
||||
'buildRuntime' => 'node-22',
|
||||
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
|
||||
'adapters' => [
|
||||
'static' => [
|
||||
'key' => 'static',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './dist',
|
||||
'startCommand' => 'bash helpers/server.sh',
|
||||
'fallbackFile' => 'index.html'
|
||||
]
|
||||
]
|
||||
],
|
||||
'flutter' => [
|
||||
'key' => 'flutter',
|
||||
'name' => 'Flutter',
|
||||
'screenshotSleep' => 5000,
|
||||
'buildRuntime' => 'flutter-3.29',
|
||||
'runtimes' => getVersions($templateRuntimes['FLUTTER']['versions'], 'flutter'),
|
||||
'adapters' => [
|
||||
'static' => [
|
||||
'key' => 'static',
|
||||
'buildCommand' => 'flutter build web',
|
||||
'installCommand' => '',
|
||||
'outputDirectory' => './build/web',
|
||||
'startCommand' => 'bash helpers/server.sh',
|
||||
],
|
||||
],
|
||||
],
|
||||
'vite' => [
|
||||
'key' => 'vite',
|
||||
'name' => 'Vite',
|
||||
'screenshotSleep' => 3000,
|
||||
'buildRuntime' => 'node-22',
|
||||
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
|
||||
'adapters' => [
|
||||
'static' => [
|
||||
'key' => 'static',
|
||||
'buildCommand' => 'npm run build',
|
||||
'installCommand' => 'npm install',
|
||||
'outputDirectory' => './dist',
|
||||
'startCommand' => 'bash helpers/server.sh',
|
||||
],
|
||||
]
|
||||
],
|
||||
'other' => [
|
||||
'key' => 'other',
|
||||
'name' => 'Other',
|
||||
'screenshotSleep' => 3000,
|
||||
'buildRuntime' => 'node-22',
|
||||
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
|
||||
'adapters' => [
|
||||
'static' => [
|
||||
'key' => 'static',
|
||||
'buildCommand' => '',
|
||||
'installCommand' => '',
|
||||
'outputDirectory' => './',
|
||||
'startCommand' => 'bash helpers/server.sh',
|
||||
],
|
||||
]
|
||||
],
|
||||
];
|
||||
@@ -1,46 +1,11 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Continent codes with names and approximate central coordinates
|
||||
*
|
||||
* Coordinates represent approximate geographical centers of each continent
|
||||
* Note: These are simplified centroids and may not represent the exact geographical center
|
||||
*/
|
||||
|
||||
return [
|
||||
'AF' => [
|
||||
'name' => 'Africa',
|
||||
'latitude' => 8.7832,
|
||||
'longitude' => 34.5085
|
||||
],
|
||||
'AN' => [
|
||||
'name' => 'Antarctica',
|
||||
'latitude' => -82.8628,
|
||||
'longitude' => 135.0000
|
||||
],
|
||||
'AS' => [
|
||||
'name' => 'Asia',
|
||||
'latitude' => 34.0479,
|
||||
'longitude' => 100.6197
|
||||
],
|
||||
'EU' => [
|
||||
'name' => 'Europe',
|
||||
'latitude' => 54.5260,
|
||||
'longitude' => 15.2551
|
||||
],
|
||||
'NA' => [
|
||||
'name' => 'North America',
|
||||
'latitude' => 54.5260,
|
||||
'longitude' => -105.2551
|
||||
],
|
||||
'OC' => [
|
||||
'name' => 'Oceania',
|
||||
'latitude' => -22.7359,
|
||||
'longitude' => 140.0188
|
||||
],
|
||||
'SA' => [
|
||||
'name' => 'South America',
|
||||
'latitude' => -8.7832,
|
||||
'longitude' => -55.4915
|
||||
],
|
||||
'AF',
|
||||
'AN',
|
||||
'AS',
|
||||
'EU',
|
||||
'NA',
|
||||
'OC',
|
||||
'SA',
|
||||
];
|
||||
|
||||
+194
-206
@@ -1,210 +1,198 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* ISO 3166 standard country codes with country names and coordinates
|
||||
* https://www.iso.org/iso-3166-country-codes.html
|
||||
*
|
||||
* Source:
|
||||
* https://www.iso.org/obp/ui/#search/code/
|
||||
* Coordinates source: Natural Earth Data (approximate country centroids)
|
||||
*/
|
||||
|
||||
return [
|
||||
'AF' => ['name' => 'Afghanistan', 'latitude' => 33.0, 'longitude' => 66.0],
|
||||
'AO' => ['name' => 'Angola', 'latitude' => -12.5, 'longitude' => 18.5],
|
||||
'AL' => ['name' => 'Albania', 'latitude' => 41.0, 'longitude' => 20.0],
|
||||
'AD' => ['name' => 'Andorra', 'latitude' => 42.5, 'longitude' => 1.6],
|
||||
'AE' => ['name' => 'United Arab Emirates', 'latitude' => 24.0, 'longitude' => 54.0],
|
||||
'AR' => ['name' => 'Argentina', 'latitude' => -34.0, 'longitude' => -64.0],
|
||||
'AM' => ['name' => 'Armenia', 'latitude' => 40.0, 'longitude' => 45.0],
|
||||
'AG' => ['name' => 'Antigua and Barbuda', 'latitude' => 17.05, 'longitude' => -61.8],
|
||||
'AU' => ['name' => 'Australia', 'latitude' => -25.0, 'longitude' => 135.0],
|
||||
'AT' => ['name' => 'Austria', 'latitude' => 47.3, 'longitude' => 13.3],
|
||||
'AZ' => ['name' => 'Azerbaijan', 'latitude' => 40.5, 'longitude' => 47.5],
|
||||
'BI' => ['name' => 'Burundi', 'latitude' => -3.5, 'longitude' => 30.0],
|
||||
'BE' => ['name' => 'Belgium', 'latitude' => 50.8, 'longitude' => 4.0],
|
||||
'BJ' => ['name' => 'Benin', 'latitude' => 9.5, 'longitude' => 2.25],
|
||||
'BF' => ['name' => 'Burkina Faso', 'latitude' => 13.0, 'longitude' => -2.0],
|
||||
'BD' => ['name' => 'Bangladesh', 'latitude' => 24.0, 'longitude' => 90.0],
|
||||
'BG' => ['name' => 'Bulgaria', 'latitude' => 43.0, 'longitude' => 25.0],
|
||||
'BH' => ['name' => 'Bahrain', 'latitude' => 26.0, 'longitude' => 50.5],
|
||||
'BS' => ['name' => 'Bahamas', 'latitude' => 24.25, 'longitude' => -76.0],
|
||||
'BA' => ['name' => 'Bosnia and Herzegovina', 'latitude' => 44.0, 'longitude' => 18.0],
|
||||
'BY' => ['name' => 'Belarus', 'latitude' => 53.0, 'longitude' => 28.0],
|
||||
'BZ' => ['name' => 'Belize', 'latitude' => 17.25, 'longitude' => -88.75],
|
||||
'BO' => ['name' => 'Bolivia', 'latitude' => -17.0, 'longitude' => -65.0],
|
||||
'BR' => ['name' => 'Brazil', 'latitude' => -10.0, 'longitude' => -55.0],
|
||||
'BB' => ['name' => 'Barbados', 'latitude' => 13.17, 'longitude' => -59.53],
|
||||
'BN' => ['name' => 'Brunei', 'latitude' => 4.5, 'longitude' => 114.67],
|
||||
'BT' => ['name' => 'Bhutan', 'latitude' => 27.5, 'longitude' => 90.5],
|
||||
'BW' => ['name' => 'Botswana', 'latitude' => -22.0, 'longitude' => 24.0],
|
||||
'CF' => ['name' => 'Central African Republic', 'latitude' => 7.0, 'longitude' => 21.0],
|
||||
'CA' => ['name' => 'Canada', 'latitude' => 60.0, 'longitude' => -95.0],
|
||||
'CH' => ['name' => 'Switzerland', 'latitude' => 47.0, 'longitude' => 8.0],
|
||||
'CL' => ['name' => 'Chile', 'latitude' => -30.0, 'longitude' => -71.0],
|
||||
'CN' => ['name' => 'China', 'latitude' => 35.0, 'longitude' => 105.0],
|
||||
'CI' => ['name' => 'Côte d\'Ivoire', 'latitude' => 8.0, 'longitude' => -5.0],
|
||||
'CM' => ['name' => 'Cameroon', 'latitude' => 6.0, 'longitude' => 12.0],
|
||||
'CD' => ['name' => 'Democratic Republic of the Congo', 'latitude' => -2.5, 'longitude' => 23.5],
|
||||
'CG' => ['name' => 'Republic of the Congo', 'latitude' => -1.0, 'longitude' => 15.0],
|
||||
'CO' => ['name' => 'Colombia', 'latitude' => 4.0, 'longitude' => -72.0],
|
||||
'KM' => ['name' => 'Comoros', 'latitude' => -12.17, 'longitude' => 44.25],
|
||||
'CV' => ['name' => 'Cape Verde', 'latitude' => 16.0, 'longitude' => -24.0],
|
||||
'CR' => ['name' => 'Costa Rica', 'latitude' => 10.0, 'longitude' => -84.0],
|
||||
'CU' => ['name' => 'Cuba', 'latitude' => 21.5, 'longitude' => -80.0],
|
||||
'CY' => ['name' => 'Cyprus', 'latitude' => 35.0, 'longitude' => 33.0],
|
||||
'CZ' => ['name' => 'Czech Republic', 'latitude' => 49.75, 'longitude' => 15.5],
|
||||
'DE' => ['name' => 'Germany', 'latitude' => 51.0, 'longitude' => 9.0],
|
||||
'DJ' => ['name' => 'Djibouti', 'latitude' => 11.5, 'longitude' => 43.0],
|
||||
'DM' => ['name' => 'Dominica', 'latitude' => 15.42, 'longitude' => -61.33],
|
||||
'DK' => ['name' => 'Denmark', 'latitude' => 56.0, 'longitude' => 10.0],
|
||||
'DO' => ['name' => 'Dominican Republic', 'latitude' => 19.0, 'longitude' => -70.67],
|
||||
'DZ' => ['name' => 'Algeria', 'latitude' => 28.0, 'longitude' => 3.0],
|
||||
'EC' => ['name' => 'Ecuador', 'latitude' => -2.0, 'longitude' => -77.5],
|
||||
'EG' => ['name' => 'Egypt', 'latitude' => 27.0, 'longitude' => 30.0],
|
||||
'ER' => ['name' => 'Eritrea', 'latitude' => 15.0, 'longitude' => 39.0],
|
||||
'ES' => ['name' => 'Spain', 'latitude' => 40.0, 'longitude' => -4.0],
|
||||
'EE' => ['name' => 'Estonia', 'latitude' => 59.0, 'longitude' => 26.0],
|
||||
'ET' => ['name' => 'Ethiopia', 'latitude' => 8.0, 'longitude' => 38.0],
|
||||
'FI' => ['name' => 'Finland', 'latitude' => 64.0, 'longitude' => 26.0],
|
||||
'FJ' => ['name' => 'Fiji', 'latitude' => -18.0, 'longitude' => 175.0],
|
||||
'FR' => ['name' => 'France', 'latitude' => 46.0, 'longitude' => 2.0],
|
||||
'FM' => ['name' => 'Micronesia', 'latitude' => 6.92, 'longitude' => 158.25],
|
||||
'GA' => ['name' => 'Gabon', 'latitude' => -1.0, 'longitude' => 11.75],
|
||||
'GB' => ['name' => 'United Kingdom', 'latitude' => 54.0, 'longitude' => -2.0],
|
||||
'GE' => ['name' => 'Georgia', 'latitude' => 42.0, 'longitude' => 43.5],
|
||||
'GH' => ['name' => 'Ghana', 'latitude' => 8.0, 'longitude' => -2.0],
|
||||
'GN' => ['name' => 'Guinea', 'latitude' => 11.0, 'longitude' => -10.0],
|
||||
'GM' => ['name' => 'Gambia', 'latitude' => 13.47, 'longitude' => -16.57],
|
||||
'GW' => ['name' => 'Guinea-Bissau', 'latitude' => 12.0, 'longitude' => -15.0],
|
||||
'GQ' => ['name' => 'Equatorial Guinea', 'latitude' => 2.0, 'longitude' => 10.0],
|
||||
'GR' => ['name' => 'Greece', 'latitude' => 39.0, 'longitude' => 22.0],
|
||||
'GD' => ['name' => 'Grenada', 'latitude' => 12.12, 'longitude' => -61.67],
|
||||
'GT' => ['name' => 'Guatemala', 'latitude' => 15.5, 'longitude' => -90.25],
|
||||
'GY' => ['name' => 'Guyana', 'latitude' => 5.0, 'longitude' => -59.0],
|
||||
'HK' => ['name' => 'Hong Kong', 'latitude' => 22.25, 'longitude' => 114.17],
|
||||
'HN' => ['name' => 'Honduras', 'latitude' => 15.0, 'longitude' => -86.5],
|
||||
'HR' => ['name' => 'Croatia', 'latitude' => 45.17, 'longitude' => 15.5],
|
||||
'HT' => ['name' => 'Haiti', 'latitude' => 19.0, 'longitude' => -72.42],
|
||||
'HU' => ['name' => 'Hungary', 'latitude' => 47.0, 'longitude' => 20.0],
|
||||
'ID' => ['name' => 'Indonesia', 'latitude' => -5.0, 'longitude' => 120.0],
|
||||
'IN' => ['name' => 'India', 'latitude' => 20.0, 'longitude' => 77.0],
|
||||
'IE' => ['name' => 'Ireland', 'latitude' => 53.0, 'longitude' => -8.0],
|
||||
'IR' => ['name' => 'Iran', 'latitude' => 32.0, 'longitude' => 53.0],
|
||||
'IQ' => ['name' => 'Iraq', 'latitude' => 33.0, 'longitude' => 44.0],
|
||||
'IS' => ['name' => 'Iceland', 'latitude' => 65.0, 'longitude' => -18.0],
|
||||
'IL' => ['name' => 'Israel', 'latitude' => 31.5, 'longitude' => 34.75],
|
||||
'IT' => ['name' => 'Italy', 'latitude' => 42.83, 'longitude' => 12.83],
|
||||
'JM' => ['name' => 'Jamaica', 'latitude' => 18.25, 'longitude' => -77.5],
|
||||
'JO' => ['name' => 'Jordan', 'latitude' => 31.0, 'longitude' => 36.0],
|
||||
'JP' => ['name' => 'Japan', 'latitude' => 36.0, 'longitude' => 138.0],
|
||||
'KZ' => ['name' => 'Kazakhstan', 'latitude' => 48.0, 'longitude' => 68.0],
|
||||
'KE' => ['name' => 'Kenya', 'latitude' => 1.0, 'longitude' => 38.0],
|
||||
'KG' => ['name' => 'Kyrgyzstan', 'latitude' => 41.0, 'longitude' => 75.0],
|
||||
'KH' => ['name' => 'Cambodia', 'latitude' => 13.0, 'longitude' => 105.0],
|
||||
'KI' => ['name' => 'Kiribati', 'latitude' => 1.42, 'longitude' => 173.0],
|
||||
'KN' => ['name' => 'Saint Kitts and Nevis', 'latitude' => 17.33, 'longitude' => -62.75],
|
||||
'KR' => ['name' => 'South Korea', 'latitude' => 37.0, 'longitude' => 127.5],
|
||||
'KW' => ['name' => 'Kuwait', 'latitude' => 29.34, 'longitude' => 47.66],
|
||||
'LA' => ['name' => 'Laos', 'latitude' => 18.0, 'longitude' => 105.0],
|
||||
'LB' => ['name' => 'Lebanon', 'latitude' => 33.83, 'longitude' => 35.83],
|
||||
'LR' => ['name' => 'Liberia', 'latitude' => 6.5, 'longitude' => -9.5],
|
||||
'LY' => ['name' => 'Libya', 'latitude' => 25.0, 'longitude' => 17.0],
|
||||
'LC' => ['name' => 'Saint Lucia', 'latitude' => 13.88, 'longitude' => -61.13],
|
||||
'LI' => ['name' => 'Liechtenstein', 'latitude' => 47.17, 'longitude' => 9.53],
|
||||
'LK' => ['name' => 'Sri Lanka', 'latitude' => 7.0, 'longitude' => 81.0],
|
||||
'LS' => ['name' => 'Lesotho', 'latitude' => -29.5, 'longitude' => 28.5],
|
||||
'LT' => ['name' => 'Lithuania', 'latitude' => 56.0, 'longitude' => 24.0],
|
||||
'LU' => ['name' => 'Luxembourg', 'latitude' => 49.75, 'longitude' => 6.17],
|
||||
'LV' => ['name' => 'latitudevia', 'latitude' => 57.0, 'longitude' => 25.0],
|
||||
'MA' => ['name' => 'Morocco', 'latitude' => 32.0, 'longitude' => -5.0],
|
||||
'MC' => ['name' => 'Monaco', 'latitude' => 43.73, 'longitude' => 7.4],
|
||||
'MD' => ['name' => 'Moldova', 'latitude' => 47.0, 'longitude' => 29.0],
|
||||
'MG' => ['name' => 'Madagascar', 'latitude' => -20.0, 'longitude' => 47.0],
|
||||
'MV' => ['name' => 'Maldives', 'latitude' => 3.25, 'longitude' => 73.0],
|
||||
'MX' => ['name' => 'Mexico', 'latitude' => 23.0, 'longitude' => -102.0],
|
||||
'MH' => ['name' => 'Marshall Islands', 'latitude' => 9.0, 'longitude' => 168.0],
|
||||
'MK' => ['name' => 'North Macedonia', 'latitude' => 41.83, 'longitude' => 22.0],
|
||||
'ML' => ['name' => 'Mali', 'latitude' => 17.0, 'longitude' => -4.0],
|
||||
'MT' => ['name' => 'Malta', 'latitude' => 35.83, 'longitude' => 14.58],
|
||||
'MM' => ['name' => 'Myanmar', 'latitude' => 22.0, 'longitude' => 98.0],
|
||||
'ME' => ['name' => 'Montenegro', 'latitude' => 42.5, 'longitude' => 19.3],
|
||||
'MN' => ['name' => 'Mongolia', 'latitude' => 46.0, 'longitude' => 105.0],
|
||||
'MZ' => ['name' => 'Mozambique', 'latitude' => -18.25, 'longitude' => 35.0],
|
||||
'MR' => ['name' => 'Mauritania', 'latitude' => 20.0, 'longitude' => -12.0],
|
||||
'MU' => ['name' => 'Mauritius', 'latitude' => -20.28, 'longitude' => 57.55],
|
||||
'MW' => ['name' => 'Malawi', 'latitude' => -13.5, 'longitude' => 34.0],
|
||||
'MY' => ['name' => 'Malaysia', 'latitude' => 2.5, 'longitude' => 112.5],
|
||||
'NA' => ['name' => 'Namibia', 'latitude' => -22.0, 'longitude' => 17.0],
|
||||
'NE' => ['name' => 'Niger', 'latitude' => 16.0, 'longitude' => 8.0],
|
||||
'NG' => ['name' => 'Nigeria', 'latitude' => 10.0, 'longitude' => 8.0],
|
||||
'NI' => ['name' => 'Nicaragua', 'latitude' => 13.0, 'longitude' => -85.0],
|
||||
'NL' => ['name' => 'Netherlands', 'latitude' => 52.5, 'longitude' => 5.75],
|
||||
'NO' => ['name' => 'Norway', 'latitude' => 62.0, 'longitude' => 10.0],
|
||||
'NP' => ['name' => 'Nepal', 'latitude' => 28.0, 'longitude' => 84.0],
|
||||
'NR' => ['name' => 'Nauru', 'latitude' => -0.53, 'longitude' => 166.92],
|
||||
'NZ' => ['name' => 'New Zealand', 'latitude' => -41.0, 'longitude' => 174.0],
|
||||
'OM' => ['name' => 'Oman', 'latitude' => 21.0, 'longitude' => 57.0],
|
||||
'PK' => ['name' => 'Pakistan', 'latitude' => 30.0, 'longitude' => 70.0],
|
||||
'PS' => ['name' => 'Palestine', 'latitude' => 31.9, 'longitude' => 35.2],
|
||||
'PA' => ['name' => 'Panama', 'latitude' => 9.0, 'longitude' => -80.0],
|
||||
'PE' => ['name' => 'Peru', 'latitude' => -10.0, 'longitude' => -76.0],
|
||||
'PH' => ['name' => 'Philippines', 'latitude' => 13.0, 'longitude' => 122.0],
|
||||
'PW' => ['name' => 'Palau', 'latitude' => 7.5, 'longitude' => 134.5],
|
||||
'PG' => ['name' => 'Papua New Guinea', 'latitude' => -6.0, 'longitude' => 147.0],
|
||||
'PL' => ['name' => 'Poland', 'latitude' => 52.0, 'longitude' => 20.0],
|
||||
'KP' => ['name' => 'North Korea', 'latitude' => 40.0, 'longitude' => 127.0],
|
||||
'PT' => ['name' => 'Portugal', 'latitude' => 39.5, 'longitude' => -8.0],
|
||||
'PY' => ['name' => 'Paraguay', 'latitude' => -23.0, 'longitude' => -58.0],
|
||||
'QA' => ['name' => 'Qatar', 'latitude' => 25.5, 'longitude' => 51.25],
|
||||
'RO' => ['name' => 'Romania', 'latitude' => 46.0, 'longitude' => 25.0],
|
||||
'RU' => ['name' => 'Russia', 'latitude' => 60.0, 'longitude' => 100.0],
|
||||
'RW' => ['name' => 'Rwanda', 'latitude' => -2.0, 'longitude' => 30.0],
|
||||
'SA' => ['name' => 'Saudi Arabia', 'latitude' => 25.0, 'longitude' => 45.0],
|
||||
'SD' => ['name' => 'Sudan', 'latitude' => 15.0, 'longitude' => 30.0],
|
||||
'SN' => ['name' => 'Senegal', 'latitude' => 14.0, 'longitude' => -14.0],
|
||||
'SG' => ['name' => 'Singapore', 'latitude' => 1.37, 'longitude' => 103.8],
|
||||
'SB' => ['name' => 'Solomon Islands', 'latitude' => -8.0, 'longitude' => 159.0],
|
||||
'SL' => ['name' => 'Sierra Leone', 'latitude' => 8.5, 'longitude' => -11.5],
|
||||
'SV' => ['name' => 'El Salvador', 'latitude' => 13.83, 'longitude' => -88.92],
|
||||
'SM' => ['name' => 'San Marino', 'latitude' => 43.77, 'longitude' => 12.42],
|
||||
'SO' => ['name' => 'Somalia', 'latitude' => 10.0, 'longitude' => 49.0],
|
||||
'RS' => ['name' => 'Serbia', 'latitude' => 44.0, 'longitude' => 21.0],
|
||||
'SS' => ['name' => 'South Sudan', 'latitude' => 8.0, 'longitude' => 30.0],
|
||||
'ST' => ['name' => 'São Tomé and Príncipe', 'latitude' => 1.0, 'longitude' => 7.0],
|
||||
'SR' => ['name' => 'Suriname', 'latitude' => 4.0, 'longitude' => -56.0],
|
||||
'SK' => ['name' => 'Slovakia', 'latitude' => 48.67, 'longitude' => 19.5],
|
||||
'SI' => ['name' => 'Slovenia', 'latitude' => 46.0, 'longitude' => 15.0],
|
||||
'SE' => ['name' => 'Sweden', 'latitude' => 62.0, 'longitude' => 15.0],
|
||||
'SZ' => ['name' => 'Eswatini', 'latitude' => -26.5, 'longitude' => 31.5],
|
||||
'SC' => ['name' => 'Seychelles', 'latitude' => -4.58, 'longitude' => 55.67],
|
||||
'SY' => ['name' => 'Syria', 'latitude' => 35.0, 'longitude' => 38.0],
|
||||
'TD' => ['name' => 'Chad', 'latitude' => 15.0, 'longitude' => 19.0],
|
||||
'TG' => ['name' => 'Togo', 'latitude' => 8.0, 'longitude' => 1.17],
|
||||
'TH' => ['name' => 'Thailand', 'latitude' => 15.0, 'longitude' => 100.0],
|
||||
'TJ' => ['name' => 'Tajikistan', 'latitude' => 39.0, 'longitude' => 71.0],
|
||||
'TM' => ['name' => 'Turkmenistan', 'latitude' => 40.0, 'longitude' => 60.0],
|
||||
'TL' => ['name' => 'Timor-Leste', 'latitude' => -8.83, 'longitude' => 125.92],
|
||||
'TO' => ['name' => 'Tonga', 'latitude' => -20.0, 'longitude' => -175.0],
|
||||
'TT' => ['name' => 'Trinidad and Tobago', 'latitude' => 11.0, 'longitude' => -61.0],
|
||||
'TN' => ['name' => 'Tunisia', 'latitude' => 34.0, 'longitude' => 9.0],
|
||||
'TR' => ['name' => 'Turkey', 'latitude' => 39.0, 'longitude' => 35.0],
|
||||
'TV' => ['name' => 'Tuvalu', 'latitude' => -8.0, 'longitude' => 178.0],
|
||||
'TZ' => ['name' => 'Tanzania', 'latitude' => -6.0, 'longitude' => 35.0],
|
||||
'TW' => ['name' => 'Taiwan', 'latitude' => 23.5, 'longitude' => 121.0],
|
||||
'UG' => ['name' => 'Uganda', 'latitude' => 1.0, 'longitude' => 32.0],
|
||||
'UA' => ['name' => 'Ukraine', 'latitude' => 49.0, 'longitude' => 32.0],
|
||||
'UY' => ['name' => 'Uruguay', 'latitude' => -33.0, 'longitude' => -56.0],
|
||||
'US' => ['name' => 'United States', 'latitude' => 38.0, 'longitude' => -97.0],
|
||||
'UZ' => ['name' => 'Uzbekistan', 'latitude' => 41.0, 'longitude' => 64.0],
|
||||
'VA' => ['name' => 'Vatican City', 'latitude' => 41.9, 'longitude' => 12.45],
|
||||
'VC' => ['name' => 'Saint Vincent and the Grenadines', 'latitude' => 13.25, 'longitude' => -61.2],
|
||||
'VE' => ['name' => 'Venezuela', 'latitude' => 8.0, 'longitude' => -66.0],
|
||||
'VN' => ['name' => 'Vietnam', 'latitude' => 16.0, 'longitude' => 106.0],
|
||||
'VU' => ['name' => 'Vanuatu', 'latitude' => -16.0, 'longitude' => 167.0],
|
||||
'WS' => ['name' => 'Samoa', 'latitude' => -13.58, 'longitude' => -172.33],
|
||||
'YE' => ['name' => 'Yemen', 'latitude' => 15.0, 'longitude' => 48.0],
|
||||
'ZA' => ['name' => 'South Africa', 'latitude' => -29.0, 'longitude' => 24.0],
|
||||
'ZM' => ['name' => 'Zambia', 'latitude' => -15.0, 'longitude' => 30.0],
|
||||
'ZW' => ['name' => 'Zimbabwe', 'latitude' => -20.0, 'longitude' => 30.0],
|
||||
'AF',
|
||||
'AO',
|
||||
'AL',
|
||||
'AD',
|
||||
'AE',
|
||||
'AR',
|
||||
'AM',
|
||||
'AG',
|
||||
'AU',
|
||||
'AT',
|
||||
'AZ',
|
||||
'BI',
|
||||
'BE',
|
||||
'BJ',
|
||||
'BF',
|
||||
'BD',
|
||||
'BG',
|
||||
'BH',
|
||||
'BS',
|
||||
'BA',
|
||||
'BY',
|
||||
'BZ',
|
||||
'BO',
|
||||
'BR',
|
||||
'BB',
|
||||
'BN',
|
||||
'BT',
|
||||
'BW',
|
||||
'CF',
|
||||
'CA',
|
||||
'CH',
|
||||
'CL',
|
||||
'CN',
|
||||
'CI',
|
||||
'CM',
|
||||
'CD',
|
||||
'CG',
|
||||
'CO',
|
||||
'KM',
|
||||
'CV',
|
||||
'CR',
|
||||
'CU',
|
||||
'CY',
|
||||
'CZ',
|
||||
'DE',
|
||||
'DJ',
|
||||
'DM',
|
||||
'DK',
|
||||
'DO',
|
||||
'DZ',
|
||||
'EC',
|
||||
'EG',
|
||||
'ER',
|
||||
'ES',
|
||||
'EE',
|
||||
'ET',
|
||||
'FI',
|
||||
'FJ',
|
||||
'FR',
|
||||
'FM',
|
||||
'GA',
|
||||
'GB',
|
||||
'GE',
|
||||
'GH',
|
||||
'GN',
|
||||
'GM',
|
||||
'GW',
|
||||
'GQ',
|
||||
'GR',
|
||||
'GD',
|
||||
'GT',
|
||||
'GY',
|
||||
'HN',
|
||||
'HR',
|
||||
'HT',
|
||||
'HU',
|
||||
'ID',
|
||||
'IN',
|
||||
'IE',
|
||||
'IR',
|
||||
'IQ',
|
||||
'IS',
|
||||
'IL',
|
||||
'IT',
|
||||
'JM',
|
||||
'JO',
|
||||
'JP',
|
||||
'KZ',
|
||||
'KE',
|
||||
'KG',
|
||||
'KH',
|
||||
'KI',
|
||||
'KN',
|
||||
'KR',
|
||||
'KW',
|
||||
'LA',
|
||||
'LB',
|
||||
'LR',
|
||||
'LY',
|
||||
'LC',
|
||||
'LI',
|
||||
'LK',
|
||||
'LS',
|
||||
'LT',
|
||||
'LU',
|
||||
'LV',
|
||||
'MA',
|
||||
'MC',
|
||||
'MD',
|
||||
'MG',
|
||||
'MV',
|
||||
'MX',
|
||||
'MH',
|
||||
'MK',
|
||||
'ML',
|
||||
'MT',
|
||||
'MM',
|
||||
'ME',
|
||||
'MN',
|
||||
'MZ',
|
||||
'MR',
|
||||
'MU',
|
||||
'MW',
|
||||
'MY',
|
||||
'NA',
|
||||
'NE',
|
||||
'NG',
|
||||
'NI',
|
||||
'NL',
|
||||
'NO',
|
||||
'NP',
|
||||
'NR',
|
||||
'NZ',
|
||||
'OM',
|
||||
'PK',
|
||||
'PA',
|
||||
'PE',
|
||||
'PH',
|
||||
'PW',
|
||||
'PG',
|
||||
'PL',
|
||||
'KP',
|
||||
'PT',
|
||||
'PY',
|
||||
'QA',
|
||||
'RO',
|
||||
'RU',
|
||||
'RW',
|
||||
'SA',
|
||||
'SD',
|
||||
'SN',
|
||||
'SG',
|
||||
'SB',
|
||||
'SL',
|
||||
'SV',
|
||||
'SM',
|
||||
'SO',
|
||||
'RS',
|
||||
'SS',
|
||||
'ST',
|
||||
'SR',
|
||||
'SK',
|
||||
'SI',
|
||||
'SE',
|
||||
'SZ',
|
||||
'SC',
|
||||
'SY',
|
||||
'TD',
|
||||
'TG',
|
||||
'TH',
|
||||
'TJ',
|
||||
'TM',
|
||||
'TL',
|
||||
'TO',
|
||||
'TT',
|
||||
'TN',
|
||||
'TR',
|
||||
'TV',
|
||||
'TZ',
|
||||
'UG',
|
||||
'UA',
|
||||
'UY',
|
||||
'US',
|
||||
'UZ',
|
||||
'VA',
|
||||
'VC',
|
||||
'VE',
|
||||
'VN',
|
||||
'VU',
|
||||
'WS',
|
||||
'YE',
|
||||
'ZA',
|
||||
'ZM',
|
||||
'ZW',
|
||||
];
|
||||
|
||||
@@ -926,12 +926,12 @@ return [
|
||||
[
|
||||
"code" => "zh-cn",
|
||||
"name" => "Chinese (Simplified)",
|
||||
"nativeName" => "中文"
|
||||
"nativeName" => "中国人"
|
||||
],
|
||||
[
|
||||
"code" => "zh-tw",
|
||||
"name" => "Chinese (Traditional)",
|
||||
"nativeName" => "中文"
|
||||
"nativeName" => "中國人"
|
||||
],
|
||||
[
|
||||
"code" => "zu",
|
||||
|
||||
@@ -136,7 +136,6 @@ return [
|
||||
'NZ' => '64',
|
||||
'OM' => '968',
|
||||
'PK' => '92',
|
||||
'PS' => '970',
|
||||
'PA' => '507',
|
||||
'PE' => '51',
|
||||
'PH' => '63',
|
||||
@@ -180,7 +179,6 @@ return [
|
||||
'TN' => '216',
|
||||
'TR' => '90',
|
||||
'TV' => '688',
|
||||
'TW' => '886',
|
||||
'TZ' => '255',
|
||||
'UG' => '256',
|
||||
'UA' => '380',
|
||||
|
||||
@@ -6,9 +6,7 @@ return [
|
||||
'magicSession',
|
||||
'recovery',
|
||||
'invitation',
|
||||
'mfaChallenge',
|
||||
'sessionAlert',
|
||||
'otpSession'
|
||||
'mfaChallenge'
|
||||
],
|
||||
'sms' => [
|
||||
'verification',
|
||||
|
||||
@@ -4,9 +4,7 @@
|
||||
<table border="0" cellspacing="0" cellpadding="0" style="padding-top: 10px; padding-bottom: 10px; display: inline-block;">
|
||||
<tr>
|
||||
<td align="center" style="border-radius: 8px; background-color: #ffffff;">
|
||||
<p style="text-align: start; font-size: 14px; font-family: Inter; color: #414146; text-decoration: none; border-radius: 8px; padding: 32px; border: 1px solid #EDEDF0; display: inline-block; word-break: break-word;">
|
||||
{{error}}
|
||||
</p>
|
||||
<p style="text-align: start; font-size: 14px; font-family: Inter; color: #414146; text-decoration: none; border-radius: 8px; padding: 32px; border: 1px solid #EDEDF0; display: inline-block; word-break: break-word;">{{error}}</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<p>{{hello}}</p>
|
||||
<p>{{hello}},</p>
|
||||
<p>{{body}}</p>
|
||||
<p><a href="{{redirect}}" target="_blank">{{redirect}}</a></p>
|
||||
<p>{{footer}}</p>
|
||||
<p style="margin-bottom: 32px">
|
||||
{{thanks}}
|
||||
{{thanks}},
|
||||
<br/>
|
||||
{{signature}}
|
||||
</p>
|
||||
@@ -1,4 +1,4 @@
|
||||
<p>{{hello}}</p>
|
||||
<p>{{hello}},</p>
|
||||
|
||||
<p>{{optionButton}}</p>
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<p>{{hello}}</p>
|
||||
<p>{{hello}},</p>
|
||||
|
||||
<p>{{description}}</p>
|
||||
|
||||
<table border="0" cellspacing="0" cellpadding="0" style="padding-top: 10px; padding-bottom: 10px; display: inline-block;">
|
||||
<tr>
|
||||
<td align="center" style="border-radius: 8px; background-color: #ffffff;">
|
||||
<p style="font-size: 24px; text-indent: 18px; letter-spacing: 18px; font-family: 'Inter', sans-serif; color: #414146; text-decoration: none; border-radius: 8px; padding: 24px 12px; border: 1px solid #EDEDF0; display: inline-block; font-weight: bold; ">{{otp}}</p>
|
||||
<p style="font-size: 24px; text-indent: 18px; letter-spacing: 18px; font-family: Inter; color: #414146; text-decoration: none; border-radius: 8px; padding: 24px 12px; border: 1px solid #EDEDF0; display: inline-block; font-weight: bold; ">{{otp}}</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<p>{{hello}}</p>
|
||||
<p>{{hello}},</p>
|
||||
|
||||
<p>{{description}}</p>
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
<p>{{hello}}</p>
|
||||
|
||||
<p>{{body}}</p>
|
||||
|
||||
<ol>
|
||||
<li>{{listDevice}}</li>
|
||||
<li>{{listIpAddress}}</li>
|
||||
<li>{{listCountry}}</li>
|
||||
</ol>
|
||||
|
||||
<p>{{footer}}</p>
|
||||
|
||||
<p style="margin-bottom: 0px;">{{thanks}}</p>
|
||||
<p style="margin-top: 0px;">{{signature}}</p>
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s span",
|
||||
"emails.verification.subject": "Rekening Bevestiging",
|
||||
"emails.verification.hello": "Goeie dag {{user}},",
|
||||
"emails.verification.hello": "Goeie dag {{user}}",
|
||||
"emails.verification.body": "Volg hierdie skakel om u e-pos adres te bevestig.",
|
||||
"emails.verification.footer": "Ignoreer gerus hierdie boodskap as u nie die versoek gestuur het om u adres te bevestig nie.",
|
||||
"emails.verification.thanks": "Baie dankie,",
|
||||
"emails.verification.thanks": "Baie dankie",
|
||||
"emails.verification.signature": "Die {{project}} span",
|
||||
"emails.magicSession.subject": "Teken aan",
|
||||
"emails.magicSession.hello": "Goeie dag,",
|
||||
"emails.magicSession.body": "Volg hierdie skakel om in te teken.",
|
||||
"emails.magicSession.footer": "Ignoreer gerus hierdie boodskap as u nie die versoek gestuur het om met die' adres in te teken nie.",
|
||||
"emails.magicSession.thanks": "Baie dankie,",
|
||||
"emails.magicSession.thanks": "Baie dankie",
|
||||
"emails.magicSession.signature": "Die {{project}} span",
|
||||
"emails.recovery.subject": "Herstel Wagwoord",
|
||||
"emails.recovery.hello": "Goeie dag {{user}},",
|
||||
"emails.recovery.hello": "Goeie dag {{user}}",
|
||||
"emails.recovery.body": "Volg hierdie skakel om u {{project}} wagwoord te herstel.",
|
||||
"emails.recovery.footer": "Ignoreer gerus hierdie boodskap as u nie die versoek gestuur het om u wagwoord te herstel nie.",
|
||||
"emails.recovery.thanks": "Baie dankie,",
|
||||
"emails.recovery.thanks": "Baie dankie",
|
||||
"emails.recovery.signature": "Die {{project}} span",
|
||||
"emails.invitation.subject": "Uitnodiging om by die %s span aan te sluit by %s",
|
||||
"emails.invitation.hello": "Goeie dag,",
|
||||
"emails.invitation.body": "Hierdie boodskap is aan u gestuur omdat {{owner}} u uitnooi om 'n lid van die {{team}} groep by die {{project}} projek te wees.",
|
||||
"emails.invitation.footer": "As u nie belang stel nie, kan u gerus hierdie boodskap ignoreer.",
|
||||
"emails.invitation.thanks": "Baie dankie,",
|
||||
"emails.invitation.thanks": "Baie dankie",
|
||||
"emails.invitation.signature": "Die {{project}} span",
|
||||
"locale.country.unknown": "Onbekend",
|
||||
"countries.af": "Afghanistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroasië",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Nieu-Seeland",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestine",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Filippyne",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunisië",
|
||||
"countries.tr": "Turkye",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taiwan",
|
||||
"countries.tz": "Tanzanië",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Oekraïne",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Klik op die knoppie hieronder om veilig aan te meld by jou {{project}} rekening. Dit sal oor 1 uur verval.",
|
||||
"emails.magicSession.buttonText": "Meld aan by {{project}}",
|
||||
"emails.magicSession.clientInfo": "Hierdie teken-in is aangevra met behulp van {{agentClient}} op {{agentDevice}} {{agentOs}}. As jy nie die teken-in versoek het nie, kan jy hierdie e-pos veilig ignoreer.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} is jou {{project}} verifikasiekode.",
|
||||
"emails.magicSession.securityPhrase": "Die sekuriteitsfrase vir hierdie e-pos is {{phrase}}. Jy kan hierdie e-pos vertrou as hierdie frase ooreenstem met die frase wat tydens aanmelding getoon is.",
|
||||
"emails.magicSession.optionUrl": "As u nie met die knoppie hierbo kan aanmeld nie, besoek asseblief die volgende skakel:",
|
||||
"emails.otpSession.subject": "{{project}} Aanteken",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Die veiligheidsfrase vir hierdie e-pos is {{phrase}}. Jy kan hierdie e-pos vertrou as hierdie frase ooreenstem met die frase wat gewys is tydens aanmelding.",
|
||||
"emails.otpSession.thanks": "Dankie,",
|
||||
"emails.otpSession.signature": "{{project}} span"
|
||||
}
|
||||
}
|
||||
@@ -1,238 +0,0 @@
|
||||
{
|
||||
"settings.inspire": "\"الفن ديال الحكمة هو الفن ديال أنك تعرف أش تنخّل.\"",
|
||||
"settings.locale": "ar-ma",
|
||||
"settings.direction": "rtl",
|
||||
"emails.sender": "فرقة %s",
|
||||
"emails.verification.subject": "التيْقان ديال الحساب",
|
||||
"emails.verification.hello": "السلام {{user}}،",
|
||||
"emails.verification.body": "تبّع هاد الوصلة باش تيقّن لادريسة تاع ليميل ديالك.",
|
||||
"emails.verification.footer": "إلا ماشي نتا اللي طلبتي تيقّن هاد لادريسة تاع ليميل، ممكن تنخّل هاد البرية.",
|
||||
"emails.verification.thanks": "شكرا،",
|
||||
"emails.verification.signature": "فرقة {{project}}",
|
||||
"emails.magicSession.subject": "تكونيكطا",
|
||||
"emails.magicSession.hello": "السلام،",
|
||||
"emails.magicSession.body": "تبّع هاد الوصلة باش تتكونيكطا.",
|
||||
"emails.magicSession.footer": "إلا ماشي نتا اللي طلبتي تتكونيكطا بهاد ليميل، ممكن تنخّل هاد البرية.",
|
||||
"emails.magicSession.thanks": "شكرا،",
|
||||
"emails.magicSession.signature": "فرقة {{project}}",
|
||||
"emails.recovery.subject": "تبدال كلمة السر",
|
||||
"emails.recovery.hello": "السلام {{user}}،",
|
||||
"emails.recovery.body": "تبّع هاد الوصلة باش تبدّل كلمة السر تاع {{project}}.",
|
||||
"emails.recovery.footer": "إلا ماشي نتا اللي طلبتي تبدّل كلمة السر، ممكن تنخّل هاد البرية.",
|
||||
"emails.recovery.thanks": "شكرا،",
|
||||
"emails.recovery.signature": "فرقة {{project}}",
|
||||
"emails.invitation.subject": "عراضة ل فرقة %s ف %s",
|
||||
"emails.invitation.hello": "السلام،",
|
||||
"emails.invitation.body": "هاد البرية تصيفطات ليك حيت {{owner}} بغى يعرض عليك تولّي عضو ف فرقة {{team}} عند {{project}}.",
|
||||
"emails.invitation.footer": "إلا كنتي ما مسوّقش, ممكن تنخّل هاد البرية.",
|
||||
"emails.invitation.thanks": "شكرا،",
|
||||
"emails.invitation.signature": "فرقة {{project}}",
|
||||
"emails.certificate.subject": "السرتافيكة فشلات ل %s",
|
||||
"emails.certificate.hello": "السلام،",
|
||||
"emails.certificate.body": "السرتافيكة ديال الضومين ديالك '{{domain}}' ما قدّاتش تجينيرا. هادي هي المحاولة نمرة {{attempt}}, السبب ديال هاد الفشل هو: {{error}}",
|
||||
"emails.certificate.footer": "السرتافيكة الفايتة ديالك غاتبقى مزيانة لمدة 30 يوم من عند أول فشل. كانشجعوك بزاف أنك تبقشش فهاد الموضوع, وا إلّا الضومين ديالك ما غايبقاش خدّام فيه الـ SSL.",
|
||||
"emails.certificate.thanks": "شكرا،",
|
||||
"emails.certificate.signature": "فرقة {{project}}",
|
||||
"locale.country.unknown": "ما معروفش",
|
||||
"countries.af": "أفغانستان",
|
||||
"countries.ao": "أنڭولا",
|
||||
"countries.al": "ألبانيا",
|
||||
"countries.ad": "أندورا",
|
||||
"countries.ae": "الإمارات العربية المتّاحدة",
|
||||
"countries.ar": "الأرجنتين",
|
||||
"countries.am": "أرمينيا",
|
||||
"countries.ag": "أنتيڭوا وبربودا",
|
||||
"countries.au": "ؤسطراليا",
|
||||
"countries.at": "النامسا",
|
||||
"countries.az": "أديربيجان",
|
||||
"countries.bi": "بوروندي",
|
||||
"countries.be": "بلجيكا",
|
||||
"countries.bj": "بينين",
|
||||
"countries.bf": "بوركينا فاصو",
|
||||
"countries.bd": "بنڭلاديش",
|
||||
"countries.bg": "بلڭاريا",
|
||||
"countries.bh": "البحرين",
|
||||
"countries.bs": "دزيرات البهاما",
|
||||
"countries.ba": "البوسنة ؤ الهرسك",
|
||||
"countries.by": "بيلاروسيا",
|
||||
"countries.bz": "بيليز",
|
||||
"countries.bo": "بوليڤيا",
|
||||
"countries.br": "البرازيل",
|
||||
"countries.bb": "باربادوس",
|
||||
"countries.bn": "بروناي",
|
||||
"countries.bt": "بوتان",
|
||||
"countries.bw": "بوتسوانا",
|
||||
"countries.cf": "جمهورية إفريقيا الوسطانية",
|
||||
"countries.ca": "كانادا",
|
||||
"countries.ch": "سويسرا",
|
||||
"countries.cl": "تشيلي",
|
||||
"countries.cn": "الشينوا",
|
||||
"countries.ci": "ساحل العاج",
|
||||
"countries.cm": "الكاميرون",
|
||||
"countries.cd": "جمهورية الكونڭو الديمقراطية",
|
||||
"countries.cg": "جمهورية الكونڭو",
|
||||
"countries.co": "كولومبيا",
|
||||
"countries.km": "دزيرات القومور",
|
||||
"countries.cv": "الراس الخضر",
|
||||
"countries.cr": "كوسطاريكا",
|
||||
"countries.cu": "كوبا",
|
||||
"countries.cy": "قوبروص",
|
||||
"countries.cz": "التشيك",
|
||||
"countries.de": "ألمانيا",
|
||||
"countries.dj": "دجيبوتي",
|
||||
"countries.dm": "ضومينيكا",
|
||||
"countries.dk": "الدنمارك",
|
||||
"countries.do": "جمهورية الضومينيكان",
|
||||
"countries.dz": "الدزاير",
|
||||
"countries.ec": "إكوادور",
|
||||
"countries.eg": "مصر",
|
||||
"countries.er": "إريتريا",
|
||||
"countries.es": "سبانيا",
|
||||
"countries.ee": "إسطونيا",
|
||||
"countries.et": "إتيوپيا",
|
||||
"countries.fi": "فينلاندا",
|
||||
"countries.fj": "فيدجي",
|
||||
"countries.fr": "فرانسا",
|
||||
"countries.fm": "ميكرونيزيا",
|
||||
"countries.ga": "الڭابون",
|
||||
"countries.gb": "المملكة المتّاحدة",
|
||||
"countries.ge": "تجورجيا",
|
||||
"countries.gh": "غانا",
|
||||
"countries.gn": "غينيا",
|
||||
"countries.gm": "ڭامبيا",
|
||||
"countries.gw": "غينيا بيساو",
|
||||
"countries.gq": "غينيا الستوائية",
|
||||
"countries.gr": "اليونان",
|
||||
"countries.gd": "ڭرينادا",
|
||||
"countries.gt": "ڭواتيمالا",
|
||||
"countries.gy": "ڭيانا",
|
||||
"countries.hn": "هوندوراس",
|
||||
"countries.hr": "كرواتيا",
|
||||
"countries.ht": "هايتي",
|
||||
"countries.hu": "الماجر",
|
||||
"countries.id": "إندونيسيا",
|
||||
"countries.in": "الهند",
|
||||
"countries.ie": "إرلاندا",
|
||||
"countries.ir": "إران",
|
||||
"countries.iq": "العراق",
|
||||
"countries.is": "إسلاندا",
|
||||
"countries.il": "إسرائيل",
|
||||
"countries.it": "الطاليان",
|
||||
"countries.jm": "جامايكا",
|
||||
"countries.jo": "الأردن",
|
||||
"countries.jp": "الجاپون",
|
||||
"countries.kz": "كازاخستان",
|
||||
"countries.ke": "كينيا",
|
||||
"countries.kg": "قيرغيزستان",
|
||||
"countries.kh": "كمبوديا",
|
||||
"countries.ki": "كيريباتي",
|
||||
"countries.kn": "سانت كيتس ؤ نيفيس",
|
||||
"countries.kr": "كوريا الجنوبية",
|
||||
"countries.kw": "الكويت",
|
||||
"countries.la": "لاوس",
|
||||
"countries.lb": "لبنان",
|
||||
"countries.lr": "ليبيريا",
|
||||
"countries.ly": "ليبيا",
|
||||
"countries.lc": "سانت لوسيا",
|
||||
"countries.li": "ليختنشتاين",
|
||||
"countries.lk": "سري لانكا",
|
||||
"countries.ls": "ليسوتو",
|
||||
"countries.lt": "ليتوانيا",
|
||||
"countries.lu": "لوكسمبورڭ",
|
||||
"countries.lv": "لاتفيا",
|
||||
"countries.ma": "المغريب",
|
||||
"countries.mc": "موناكو",
|
||||
"countries.md": "مولضوڤا",
|
||||
"countries.mg": "ماداغشقار",
|
||||
"countries.mv": "دزيرات المالديڤ",
|
||||
"countries.mx": "الميكسيك",
|
||||
"countries.mh": "دزيرات مارشال",
|
||||
"countries.mk": "مقدونيا",
|
||||
"countries.ml": "مالي",
|
||||
"countries.mt": "مالطا",
|
||||
"countries.mm": "ميانمار",
|
||||
"countries.me": "مونطينيڭرو",
|
||||
"countries.mn": "منغوليا",
|
||||
"countries.mz": "الموزمبيق",
|
||||
"countries.mr": "موريتانيا",
|
||||
"countries.mu": "موريشيوس",
|
||||
"countries.mw": "مالاوي",
|
||||
"countries.my": "ماليزيا",
|
||||
"countries.na": "ناميبيا",
|
||||
"countries.ne": "النيجر",
|
||||
"countries.ng": "نيجيريا",
|
||||
"countries.ni": "نيكاراڭوا",
|
||||
"countries.nl": "هولاندا",
|
||||
"countries.no": "النرويج",
|
||||
"countries.np": "نيپال",
|
||||
"countries.nr": "ناورو",
|
||||
"countries.nz": "نيوزيلاندا",
|
||||
"countries.om": "عمّان",
|
||||
"countries.pk": "پاكيستان",
|
||||
"countries.pa": "پاناما",
|
||||
"countries.pe": "الپيرو",
|
||||
"countries.ph": "الفيليپين",
|
||||
"countries.pw": "پالاو",
|
||||
"countries.pg": "پاپوا غينيا الجديدة",
|
||||
"countries.pl": "پولاندا",
|
||||
"countries.kp": "كوريا الشمالية",
|
||||
"countries.pt": "البرطقيز",
|
||||
"countries.py": "الپاراڭواي",
|
||||
"countries.qa": "قطر",
|
||||
"countries.ro": "رومانيا",
|
||||
"countries.ru": "روسيا",
|
||||
"countries.rw": "روّاندا",
|
||||
"countries.sa": "المملكة العربية السعودية",
|
||||
"countries.sd": "السودان",
|
||||
"countries.sn": "السينيڭال",
|
||||
"countries.sg": "سنغافورة",
|
||||
"countries.sb": "دزيرات سليمان",
|
||||
"countries.sl": "صييراليون",
|
||||
"countries.sv": "السالڤاضور",
|
||||
"countries.sm": "سان مارينو",
|
||||
"countries.so": "الصومال",
|
||||
"countries.rs": "صيربيا",
|
||||
"countries.ss": "جنوب السودان",
|
||||
"countries.st": "صاو طومي ؤ پرينسيپي",
|
||||
"countries.sr": "سورينام",
|
||||
"countries.sk": "صلوڤاكيا",
|
||||
"countries.si": "صلوڤينيا",
|
||||
"countries.se": "السويد",
|
||||
"countries.sz": "سوازيلاند",
|
||||
"countries.sc": "السيشيل",
|
||||
"countries.sy": "سوريا",
|
||||
"countries.td": "تشاد",
|
||||
"countries.tg": "الطوڭو",
|
||||
"countries.th": "الطايلوند",
|
||||
"countries.tj": "طادجيكيستان",
|
||||
"countries.tm": "تركمانيستان",
|
||||
"countries.tl": "تيمور الشرقية",
|
||||
"countries.to": "تونڭا",
|
||||
"countries.tt": "ترينيداد ؤ طوباڭو",
|
||||
"countries.tn": "تونس",
|
||||
"countries.tr": "توركيا",
|
||||
"countries.tv": "توڤالو",
|
||||
"countries.tz": "طنزانيا",
|
||||
"countries.ug": "ؤڭاندا",
|
||||
"countries.ua": "ؤكرانيا",
|
||||
"countries.uy": "ؤروڭواي",
|
||||
"countries.us": "ميريكان",
|
||||
"countries.uz": "ؤزباكيستان",
|
||||
"countries.va": "مدينة الڤاتيكان",
|
||||
"countries.vc": "سانت ڤانسون ؤ دزيرات ڭرينادين",
|
||||
"countries.ve": "ڤينيزويلا",
|
||||
"countries.vn": "ڤيطنام",
|
||||
"countries.vu": "ڤانواتو",
|
||||
"countries.ws": "ساموا",
|
||||
"countries.ye": "اليمن",
|
||||
"countries.za": "جنوب إفريقيا",
|
||||
"countries.zm": "زامبيا",
|
||||
"countries.zw": "زيمبابوي",
|
||||
"continents.af": "أفريقيا",
|
||||
"continents.an": "القارة القطبية الجنوبية",
|
||||
"continents.as": "أسيا",
|
||||
"continents.eu": "ؤروپا",
|
||||
"continents.na": "ميريكان الشمالية",
|
||||
"continents.oc": "ؤقيانوسيا",
|
||||
"continents.sa": "ميريكان الجنوبية"
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "rtl",
|
||||
"emails.sender": "فريق %s",
|
||||
"emails.verification.subject": "تأكيد الحساب",
|
||||
"emails.verification.hello": "مرحبا {{user}}،",
|
||||
"emails.verification.hello": "مرحبا {{user}}",
|
||||
"emails.verification.body": "برجاء اتباع الرابط التالي لتأكيد بريدك الإلكتروني",
|
||||
"emails.verification.footer": "لو لم تطلب تأكيد هذا البريد الإلكتروني، يمكنك تجاهل هذه الرسالة",
|
||||
"emails.verification.thanks": "شكرا،",
|
||||
"emails.verification.thanks": "شكرا",
|
||||
"emails.verification.signature": "فريق {{project}}",
|
||||
"emails.magicSession.subject": "تسجيل الدخول",
|
||||
"emails.magicSession.hello": "أهلا،",
|
||||
"emails.magicSession.body": "اتبع هذا الرابط لتسجيل الدخول",
|
||||
"emails.magicSession.footer": "لو لم تطلب تسجيل الدخول بهذا البريد الاكتروني ، يمكنك تجاهل هذه الرسالة",
|
||||
"emails.magicSession.thanks": "شكرا،",
|
||||
"emails.magicSession.thanks": "شكرا",
|
||||
"emails.magicSession.signature": "فريق {{project}}",
|
||||
"emails.recovery.subject": "تغيير كلمة السر",
|
||||
"emails.recovery.hello": "أهلا {{user}}،",
|
||||
"emails.recovery.hello": "أهلا {{user}}",
|
||||
"emails.recovery.body": "برجاء اتباع الراط التالي لتغيير كلمة السر الخاصة بـ{{project}}",
|
||||
"emails.recovery.footer": "لولم تطلب تغيير كلمة السر، يمكنك تجاهل هذه الرسالة",
|
||||
"emails.recovery.thanks": "شكرا،",
|
||||
"emails.recovery.thanks": "شكرا",
|
||||
"emails.recovery.signature": "فريق {{project}}",
|
||||
"emails.invitation.subject": "دعوة لفريق %s في %s",
|
||||
"emails.invitation.hello": "أهلا،",
|
||||
"emails.invitation.hello": "أهلا",
|
||||
"emails.invitation.body": "هذة الرسالة تم ارسالها لك لأن {{owner}} ارسل لك دعوة لتكون عضوا بفريق {{team}} في {{project}}",
|
||||
"emails.invitation.footer": "اذا كنت غير مهتم، يمكنك تجاهل هذه الرسالة",
|
||||
"emails.invitation.thanks": "شكرا،",
|
||||
"emails.invitation.thanks": "شكرا",
|
||||
"emails.invitation.signature": "فريق {{project}}",
|
||||
"locale.country.unknown": "مجهول",
|
||||
"countries.af": "أفغانستان",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "غرينادا",
|
||||
"countries.gt": "غواتيمالا",
|
||||
"countries.gy": "غيانا",
|
||||
"countries.hk": "هونغ كونغ",
|
||||
"countries.hn": "هندوراس",
|
||||
"countries.hr": "كرواتيا",
|
||||
"countries.ht": "هايتي",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "نيوزيلندا",
|
||||
"countries.om": "عمان",
|
||||
"countries.pk": "باكستان",
|
||||
"countries.ps": "فلسطين",
|
||||
"countries.pa": "بنما",
|
||||
"countries.pe": "بيرو",
|
||||
"countries.ph": "الفلبين",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "تونس",
|
||||
"countries.tr": "تركيا",
|
||||
"countries.tv": "توفالو",
|
||||
"countries.tw": "تايوان",
|
||||
"countries.tz": "تنزانيا",
|
||||
"countries.ug": "أوغندا",
|
||||
"countries.ua": "أوكرانيا",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "انقر على الزر أدناه لتسجيل الدخول بأمان إلى حساب {{project}} الخاص بك. سينتهي في غضون ساعة واحدة.",
|
||||
"emails.magicSession.buttonText": "تسجيل الدخول إلى {{project}}",
|
||||
"emails.magicSession.clientInfo": "تم طلب هذا الدخول باستخدام {{agentClient}} على {{agentDevice}} {{agentOs}}. إذا لم تطلب الدخول، يمكنك تجاهل هذا البريد الإلكتروني بأمان.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} هو رمز التحقق الخاص بمشروعك {{project}}.",
|
||||
"emails.magicSession.securityPhrase": "عبارة الأمان لهذا البريد الإلكتروني هي {{phrase}}. يمكنك الوثوق بهذا البريد الإلكتروني إذا كانت هذه العبارة تطابق العبارة التي تظهر أثناء التسجيل.",
|
||||
"emails.magicSession.optionUrl": "إذا لم تتمكن من تسجيل الدخول باستخدام الزر أعلاه، يرجى زيارة الرابط التالي:",
|
||||
"emails.otpSession.subject": "تسجيل دخول {{project}}",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "عبارة الأمان لهذا البريد الإلكتروني هي {{phrase}}. يمكنك الوثوق بهذا البريد الإلكتروني إذا كانت هذه العبارة تتطابق مع العبارة المعروضة أثناء تسجيل الدخول.",
|
||||
"emails.otpSession.thanks": "شكرًا،",
|
||||
"emails.otpSession.signature": "فريق {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s দল",
|
||||
"emails.verification.subject": "একাউণ্ট প্ৰমাণীকৰণ",
|
||||
"emails.verification.hello": "নমস্কাৰ {{user}},",
|
||||
"emails.verification.hello": "নমস্কাৰ {{user}}",
|
||||
"emails.verification.body": "আপোনাৰ ইমেইল ঠিকনা প্ৰমাণিত কৰিবলৈ এই লিংকটো অনুসৰণ কৰক।",
|
||||
"emails.verification.footer": "যদি আপুনি এই ঠিকনাটো সত্যাপিত কৰিবলৈ কোৱা নাই, আপুনি এই বাৰ্তাটো উপেক্ষা কৰিব পাৰে।",
|
||||
"emails.verification.thanks": "ধন্যবাদ,",
|
||||
"emails.verification.thanks": "ধন্যবাদ",
|
||||
"emails.verification.signature": "{{project}} দল",
|
||||
"emails.magicSession.subject": "লগইন",
|
||||
"emails.magicSession.hello": "নমস্কাৰ,",
|
||||
"emails.magicSession.body": "লগইন কৰিবলৈ এই লিংকটো অনুসৰণ কৰক।",
|
||||
"emails.magicSession.footer": "যদি আপুনি এই ইমেইল ব্যৱহাৰ কৰি লগইন কৰিবলৈ কোৱা নাছিল, আপুনি এই বাৰ্তাটো উপেক্ষা কৰিব পাৰে।",
|
||||
"emails.magicSession.thanks": "ধন্যবাদ,",
|
||||
"emails.magicSession.thanks": "ধন্যবাদ",
|
||||
"emails.magicSession.signature": "{{project}} দল",
|
||||
"emails.recovery.subject": "পাছৱাৰ্ড ৰিছেট",
|
||||
"emails.recovery.hello": "ধন্যবাদ {{user}},",
|
||||
"emails.recovery.hello": "ধন্যবাদ {{user}}",
|
||||
"emails.recovery.body": "আপোনাৰ {{project}} পাছৱৰ্ড ৰিছেট কৰিবলৈ এই লিংকটো অনুসৰণ কৰক।.",
|
||||
"emails.recovery.footer": "যদি আপুনি আপোনাৰ পাছৱৰ্ড ৰিছেট কৰিবলৈ কোৱা নাছিল, আপুনি এই বাৰ্তাটো উপেক্ষা কৰিব পাৰে।",
|
||||
"emails.recovery.thanks": "ধন্যবাদ,",
|
||||
"emails.recovery.thanks": "ধন্যবাদ",
|
||||
"emails.recovery.signature": "{{project}} দল",
|
||||
"emails.invitation.subject": "%s বছৰত %s দললৈ নিমন্ত্ৰণ",
|
||||
"emails.invitation.hello": "নমস্কাৰ,",
|
||||
"emails.invitation.hello": "নমস্কাৰ",
|
||||
"emails.invitation.body": "এই মেইলটো আপোনালৈ প্ৰেৰণ কৰা হৈছিল কাৰণ {{owner}} জনে আপোনাক {{project}} বছৰবয়সত {{team}} দলৰ সদস্য হ'বলৈ আমন্ত্ৰণ জনাব বিচাৰিছিল।",
|
||||
"emails.invitation.footer": "যদি আপুনি আগ্ৰহী নহয়, আপুনি এই বাৰ্তাটো উপেক্ষা কৰিব পাৰে।",
|
||||
"emails.invitation.thanks": "ধন্যবাদ,",
|
||||
"emails.invitation.thanks": "ধন্যবাদ",
|
||||
"emails.invitation.signature": "{{project}} দল",
|
||||
"locale.country.unknown": "অজ্ঞাত ",
|
||||
"countries.af": "আফগানিস্তান ",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "গ্ৰেনাডা",
|
||||
"countries.gt": "গুয়াতেমালা",
|
||||
"countries.gy": "গায়ানা",
|
||||
"countries.hk": "হং কং",
|
||||
"countries.hn": "হণ্ডুৰাছ",
|
||||
"countries.hr": "ক্ৰোৱেছিয়া",
|
||||
"countries.ht": "হাইতি",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "নিউজিলেণ্ড",
|
||||
"countries.om": "ওমান",
|
||||
"countries.pk": "পাকিস্তান",
|
||||
"countries.ps": "প্যালেস্টাইন",
|
||||
"countries.pa": "পানামা",
|
||||
"countries.pe": "পেৰু",
|
||||
"countries.ph": "ফিলিপাইনচ",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "টিউনিচিয়া",
|
||||
"countries.tr": "তুৰ্কী",
|
||||
"countries.tv": "টুভালু",
|
||||
"countries.tw": "তাইওয়ান",
|
||||
"countries.tz": "তাঞ্জানিয়া",
|
||||
"countries.ug": "উগাণ্ডা",
|
||||
"countries.ua": "ইউক্ৰেইন",
|
||||
@@ -245,10 +242,10 @@
|
||||
"emails.otpSession.thanks": "ধন্যবাদ,",
|
||||
"emails.otpSession.signature": "{{project}} দল",
|
||||
"emails.certificate.subject": "%sৰ বাবে প্ৰমাণপত্ৰ ব্যৰ্থতা",
|
||||
"emails.certificate.hello": "নমস্কাৰ,",
|
||||
"emails.certificate.hello": "নমস্কাৰ",
|
||||
"emails.certificate.body": "আপোনাৰ ডোমেইন '{{domain}}' ৰ বাবে প্ৰমাণপত্ৰটো উত্পন্ন কৰিব পৰা নগ'ল। এয়া প্ৰচেষ্টা নম্বৰ {{attempt}}, আৰু বিফলতাৰ কাৰণ হ'ল: {{error}}",
|
||||
"emails.certificate.footer": "আপোনাৰ পূৰ্বৰ প্ৰমাণপত্ৰটো প্ৰথম ব্ৰিফল হোৱাৰ দিনৰ পৰা ৩০ দিনলৈ বৈধ থাকিব। আমি এই ঘটনাটোৰ তদন্ত কৰিবলৈ উচ্চ পৰামৰ্শ দিয়ে, অন্যথা আপোনাৰ ডোমেইনটো অবৈধ SSL যোগাযোগ অবিহনে থাকিব।",
|
||||
"emails.certificate.thanks": "ধন্যবাদ,",
|
||||
"emails.certificate.thanks": "ধন্যবাদ",
|
||||
"emails.certificate.signature": "{{project}} দল",
|
||||
"sms.verification.body": "{{secret}}"
|
||||
}
|
||||
"sms.verification.body": "{{secret}} আপোনাৰ {{project}} যাচাইকৰণ কোড।"
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Komandası",
|
||||
"emails.verification.subject": "Hesab Doğrulama",
|
||||
"emails.verification.hello": "Salam {{user}},",
|
||||
"emails.verification.hello": "Salam {{user}}",
|
||||
"emails.verification.body": "E-poçt ünvanınızı təsdiq etmək üçün bu linki izləyin.",
|
||||
"emails.verification.footer": "Bu ünvanı doğrulamağı xahiş etməmisinizsə, bu mesajı gözardı edə bilərsiniz.",
|
||||
"emails.verification.thanks": "Təşəkkürlər,",
|
||||
"emails.verification.thanks": "Təşəkkürlər",
|
||||
"emails.verification.signature": "{{project}} komandası",
|
||||
"emails.magicSession.subject": "Daxil Olmaq",
|
||||
"emails.magicSession.hello": "Salam,",
|
||||
"emails.magicSession.body": "Daxil olmaq üçün bu linki izləyin.",
|
||||
"emails.magicSession.footer": "Bu e-poçtdan istifadə edərək giriş istəməmisinizsə, bu mesajı görməməzlikdən gələ bilərsiniz.",
|
||||
"emails.magicSession.thanks": "Təşəkkürlər,",
|
||||
"emails.magicSession.thanks": "Təşəkkürlər",
|
||||
"emails.magicSession.signature": "{{project}} komandası",
|
||||
"emails.recovery.subject": "Şifrə Sıfırlanması",
|
||||
"emails.recovery.hello": "Salam {{user}},",
|
||||
"emails.recovery.hello": "Salam {{user}}",
|
||||
"emails.recovery.body": "{{project}} şifrənizi sıfırlamaq üçün bu linki izləyin.",
|
||||
"emails.recovery.footer": "Şifrənizi sıfırlamağı xahiş etməmisinizsə, bu mesajı gözardı edə bilərsiniz.",
|
||||
"emails.recovery.thanks": "Təşəkkürlər,",
|
||||
"emails.recovery.thanks": "Təşəkkürlər",
|
||||
"emails.recovery.signature": "{{project}} komandası",
|
||||
"emails.invitation.subject": "%s Komandasına Dəvət %sdə",
|
||||
"emails.invitation.hello": "Salam,",
|
||||
"emails.invitation.hello": "Salam",
|
||||
"emails.invitation.body": "{{owner}}, {{project}}də {{team}} komandasına üzv olmağa dəvət etmək istədiyi üçün bu məktub sizə göndərildi.",
|
||||
"emails.invitation.footer": "Əgər maraqlanmırsınızsa, bu mesajı gözardı edə bilərsiniz.",
|
||||
"emails.invitation.thanks": "Təşəkkürlər,",
|
||||
"emails.invitation.thanks": "Təşəkkürlər",
|
||||
"emails.invitation.signature": "{{project}} komandası",
|
||||
"locale.country.unknown": "Naməlum",
|
||||
"countries.af": "Əfqanıstan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Qrenada",
|
||||
"countries.gt": "Qvatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Honq Konq",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Xorvatiya",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Yeni Zelandiya",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Fələstin",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Filippin",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunis",
|
||||
"countries.tr": "Türkiyə",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Tayvan",
|
||||
"countries.tz": "Tanzaniya",
|
||||
"countries.ug": "Uqanda",
|
||||
"countries.ua": "Ukrayna",
|
||||
@@ -235,7 +232,7 @@
|
||||
"continents.na": "Şimali Amerika",
|
||||
"continents.oc": "Okeaniya",
|
||||
"continents.sa": "Cənubi Amerika",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} sizin {{project}} təsdiqləmə kodunuzdur.",
|
||||
"emails.magicSession.securityPhrase": "Bu e-poçt üçün təhlükəsizlik ifadəsi {{phrase}}-dir. Əgər bu ifadə daxil olarkən göstərilən ifadə ilə üst-üstə düşürsə, bu e-poçta etibar edə bilərsiniz.",
|
||||
"emails.magicSession.optionUrl": "Əgər yuxarıdakı düyməni istifadə edərək daxil ola bilmirsizsə, zəhmət olmasa aşağıdakı linkə daxil olun:",
|
||||
"emails.otpSession.subject": "{{project}} Giriş",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Bu e-poçtun təhlükəsizlik ifadəsi {{phrase}}-dir. Əgər bu ifadə daxil olarkən göstərilən ifadə ilə üst-üstə düşürsə, bu e-poçta etibar edə bilərsiniz.",
|
||||
"emails.otpSession.thanks": "Sağ olun,",
|
||||
"emails.otpSession.signature": "{{project}} komandası"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "Каманда %s",
|
||||
"emails.verification.subject": "Верыфікацыя акаўнта",
|
||||
"emails.verification.hello": "Прывітанне {{user}},",
|
||||
"emails.verification.hello": "Прывітанне {{user}}",
|
||||
"emails.verification.body": "Перайдзіце па гэтай спасылцы, каб пацвердзіць свой адрас электроннай пошты",
|
||||
"emails.verification.footer": "Калі вы не запытвалі пацвярджэнне гэтага адрасу, праігнаруйце гэтае паведамленне.",
|
||||
"emails.verification.thanks": "Дзякуем,",
|
||||
"emails.verification.thanks": "Дзякуем",
|
||||
"emails.verification.signature": "каманда {{project}}",
|
||||
"emails.magicSession.subject": "Лагін",
|
||||
"emails.magicSession.hello": "Прывітанне,",
|
||||
"emails.magicSession.body": "Перайдзіце па спасылцы, каб увайсці.",
|
||||
"emails.magicSession.footer": "Калі вы не прасілі ўвайсці, выкарыстоўваючы гэты адрас электроннай пошты, праігнаруйце гэтае паведамленне.",
|
||||
"emails.magicSession.thanks": "Дзякуем,",
|
||||
"emails.magicSession.thanks": "Дзякуем",
|
||||
"emails.magicSession.signature": "каманда {{project}}",
|
||||
"emails.recovery.subject": "Скід пароля",
|
||||
"emails.recovery.hello": "Прывітанне, {{user}},",
|
||||
"emails.recovery.hello": "Прывітанне, {{user}}",
|
||||
"emails.recovery.body": "Перайдзіце па гэтай спасылцы, каб скінуць пароль для праекта {{project}}.",
|
||||
"emails.recovery.footer": "Калі вы не прасілі скінуць пароль, вы можаце праігнараваць гэта паведамленне.",
|
||||
"emails.recovery.thanks": "Дзякуем,",
|
||||
"emails.recovery.thanks": "Дзякуем",
|
||||
"emails.recovery.signature": "каманда {{project}}",
|
||||
"emails.invitation.subject": "Запрошення до Команди %s у %s",
|
||||
"emails.invitation.hello": "Прывітанне,",
|
||||
"emails.invitation.hello": "Прывітанне",
|
||||
"emails.invitation.body": "Гэта паведамленне было адпраўлена вам, таму што {{owner}} хацеў запрасіць вас стаць членам каманды {{team}} у {{project}}.",
|
||||
"emails.invitation.footer": "Калі вам гэта не цікава, вы можаце праігнараваць гэтае паведамленне.",
|
||||
"emails.invitation.thanks": "Дзякуем,",
|
||||
"emails.invitation.thanks": "Дзякуем",
|
||||
"emails.invitation.signature": "каманда {{project}}",
|
||||
"locale.country.unknown": "Невядомы",
|
||||
"countries.af": "Афганістан",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Грэнада",
|
||||
"countries.gt": "Гватэмала",
|
||||
"countries.gy": "Гаяна",
|
||||
"countries.hk": "Гонконг",
|
||||
"countries.hn": "Гандурас",
|
||||
"countries.hr": "Харватыя",
|
||||
"countries.ht": "Гаіці",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Новая Зеландыя",
|
||||
"countries.om": "Аман",
|
||||
"countries.pk": "Пакістан",
|
||||
"countries.ps": "Палестина",
|
||||
"countries.pa": "Панама",
|
||||
"countries.pe": "Перу",
|
||||
"countries.ph": "Філіпіны",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Туніс",
|
||||
"countries.tr": "Турцыя",
|
||||
"countries.tv": "Тувалу",
|
||||
"countries.tw": "Тайвань",
|
||||
"countries.tz": "Танзанія",
|
||||
"countries.ug": "Уганда",
|
||||
"countries.ua": "Украіна",
|
||||
@@ -245,10 +242,10 @@
|
||||
"emails.otpSession.thanks": "Дзякуй,",
|
||||
"emails.otpSession.signature": "каманда {{project}}",
|
||||
"emails.certificate.subject": "Сведчанне няўдалае для %s",
|
||||
"emails.certificate.hello": "Прывітанне,",
|
||||
"emails.certificate.hello": "Прывітанне",
|
||||
"emails.certificate.body": "Сертыфікат для вашага дамена '{{domain}}' не можа быць створаны. Гэта спроба нумар {{attempt}}, і прычынай няўдачы з'яўляецца: {{error}}",
|
||||
"emails.certificate.footer": "Ваш папярэдні сертыфікат будзе дзейнічаць 30 дзён з моманту першай няўдачы. Мы высока рэкамендуем расследаваць гэтую сітуацыю, інакш ваш дамен апынецца без дзейнага сертыфіката SSL-злучэння.",
|
||||
"emails.certificate.thanks": "Дзякуй,",
|
||||
"emails.certificate.thanks": "Дзякуй",
|
||||
"emails.certificate.signature": "каманда {{project}}",
|
||||
"sms.verification.body": "{{secret}}"
|
||||
}
|
||||
"sms.verification.body": "{{secret}} з'яўляецца вашым кодам праверкі для {{project}}."
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Екип",
|
||||
"emails.verification.subject": "",
|
||||
"emails.verification.hello": ",",
|
||||
"emails.verification.hello": "",
|
||||
"emails.verification.body": "",
|
||||
"emails.verification.footer": "",
|
||||
"emails.verification.thanks": ",",
|
||||
"emails.verification.thanks": "",
|
||||
"emails.verification.signature": "",
|
||||
"emails.magicSession.subject": "",
|
||||
"emails.magicSession.hello": ",",
|
||||
"emails.magicSession.hello": "",
|
||||
"emails.magicSession.body": "",
|
||||
"emails.magicSession.footer": "",
|
||||
"emails.magicSession.thanks": ",",
|
||||
"emails.magicSession.thanks": "",
|
||||
"emails.magicSession.signature": "",
|
||||
"emails.recovery.subject": "",
|
||||
"emails.recovery.hello": ",",
|
||||
"emails.recovery.hello": "",
|
||||
"emails.recovery.body": "",
|
||||
"emails.recovery.footer": "",
|
||||
"emails.recovery.thanks": ",",
|
||||
"emails.recovery.thanks": "",
|
||||
"emails.recovery.signature": "",
|
||||
"emails.invitation.subject": "",
|
||||
"emails.invitation.hello": ",",
|
||||
"emails.invitation.hello": "",
|
||||
"emails.invitation.body": "",
|
||||
"emails.invitation.footer": "",
|
||||
"emails.invitation.thanks": ",",
|
||||
"emails.invitation.thanks": "",
|
||||
"emails.invitation.signature": "",
|
||||
"locale.country.unknown": "Неизвестно",
|
||||
"countries.af": "Афганистан",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Гренада",
|
||||
"countries.gt": "Гватемала",
|
||||
"countries.gy": "Гвиана",
|
||||
"countries.hk": "Хонг Конг",
|
||||
"countries.hn": "Хондурас",
|
||||
"countries.hr": "Хърватия",
|
||||
"countries.ht": "Хаити",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Нова Зеландия",
|
||||
"countries.om": "Оман",
|
||||
"countries.pk": "Пакистан",
|
||||
"countries.ps": "Палестина",
|
||||
"countries.pa": "Панама",
|
||||
"countries.pe": "Перу",
|
||||
"countries.ph": "Филипини",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Тунис",
|
||||
"countries.tr": "Турция",
|
||||
"countries.tv": "Тувалу",
|
||||
"countries.tw": "Тайван",
|
||||
"countries.tz": "Танзания",
|
||||
"countries.ug": "Уганда",
|
||||
"countries.ua": "Украйна",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Натиснете бутона по-долу, за да се впишете сигурно във вашия {{project}} акаунт. Той ще изтече след 1 час.",
|
||||
"emails.magicSession.buttonText": "Влезте в {{project}}",
|
||||
"emails.magicSession.clientInfo": "Този вход беше заявен чрез {{agentClient}} на {{agentDevice}} {{agentOs}}. Ако не сте поискали входа, можете безопасно да игнорирате този имейл.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} е вашият код за верификация за {{project}}.",
|
||||
"emails.magicSession.securityPhrase": "Фразата за сигурност на този имейл е {{phrase}}. Можете да се доверите на този имейл, ако тази фраза съвпада с фразата, показана по време на вписването.",
|
||||
"emails.magicSession.optionUrl": "Ако не можете да влезете чрез горния бутон, моля, посетете следния линк:",
|
||||
"emails.otpSession.subject": "Вход в {{project}}",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Фразата за сигурност за този имейл е {{phrase}}. Можете да се доверите на този имейл, ако тази фраза съвпада с фразата, показана по време на вписването.",
|
||||
"emails.otpSession.thanks": "Благодаря,",
|
||||
"emails.otpSession.signature": "екип на {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s टीम",
|
||||
"emails.verification.subject": "खाता प्रमाणिकरण",
|
||||
"emails.verification.hello": "नमस्ते {{user}},",
|
||||
"emails.verification.hello": "नमस्ते {{user}}",
|
||||
"emails.verification.body": "ईमेल प्रमाणिकरण करे क लेल दिहल गइल लिंक फॉलो करें|",
|
||||
"emails.verification.footer": "अगर ई पता को सत्यापित करे के लिए ना कहाले, तो आप ई संदेश क अनदेखा कर सकत अछि।",
|
||||
"emails.verification.thanks": "धन्यवाद,",
|
||||
"emails.verification.thanks": "धन्यवाद",
|
||||
"emails.verification.signature": "{{project}} टीम",
|
||||
"emails.magicSession.subject": "लॉग इन करीं|",
|
||||
"emails.magicSession.hello": "प्रणाम,",
|
||||
"emails.magicSession.hello": "प्रणाम",
|
||||
"emails.magicSession.body": "लॉग इन करें लेल दिहल गइल लिंक फॉलो करें|",
|
||||
"emails.magicSession.footer": "अगर लॉग इन करे के लिए ना कहाले, तो आप ई संदेश क अनदेखा कर सकत अछि।",
|
||||
"emails.magicSession.thanks": "धन्यवाद,",
|
||||
"emails.magicSession.thanks": "धन्यवाद",
|
||||
"emails.magicSession.signature": "{{project}} टीम",
|
||||
"emails.recovery.subject": "पासवर्ड बदल क लेल|",
|
||||
"emails.recovery.hello": "प्रणाम {{user}},",
|
||||
"emails.recovery.hello": "प्रणाम {{user}}",
|
||||
"emails.recovery.body": "पासवर्ड बदल क लेल दिहल गइल लिंक फॉलो करें|",
|
||||
"emails.recovery.footer": "अगर पासवर्ड बदल क लेल ना कहाले, तो आप ई संदेश क अनदेखा कर सकत अछि।",
|
||||
"emails.recovery.thanks": "धन्यवाद,",
|
||||
"emails.recovery.thanks": "धन्यवाद",
|
||||
"emails.recovery.signature": "{{project}} टीम",
|
||||
"emails.invitation.subject": "%s टीम क %s पे न्योता देवे क लेल|",
|
||||
"emails.invitation.hello": "प्रणाम,",
|
||||
"emails.invitation.hello": "प्रणाम",
|
||||
"emails.invitation.body": "ई मेल आपके एही लेल भेजल गईल रहल काहे क {{owner}} आपके {{project}} क {{team}} टीम का सदस्य बनावे चाहित रहे|",
|
||||
"emails.invitation.footer": "अगर आवे क इच्छा ना होवत, तो आप ई संदेश क अनदेखा कर सकत अछि।",
|
||||
"emails.invitation.thanks": "धन्यवाद,",
|
||||
"emails.invitation.thanks": "धन्यवाद",
|
||||
"emails.invitation.signature": "{{project}} टीम",
|
||||
"locale.country.unknown": "अनजान",
|
||||
"countries.af": "अफ़ग़ानिस्तान",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "ग्रेनाडा",
|
||||
"countries.gt": "ग्वाटेमाला",
|
||||
"countries.gy": "गयाना",
|
||||
"countries.hk": "हांगकांग",
|
||||
"countries.hn": "होंडुरस",
|
||||
"countries.hr": "क्रोएशिया",
|
||||
"countries.ht": "हैती",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "न्यूजीलैंड",
|
||||
"countries.om": "ओमान",
|
||||
"countries.pk": "पाकिस्तान",
|
||||
"countries.ps": "पैलिस्टाइन",
|
||||
"countries.pa": "पनामा",
|
||||
"countries.pe": "पेरू",
|
||||
"countries.ph": "फिलीपींस",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "ट्यूनीशिया",
|
||||
"countries.tr": "तुर्की",
|
||||
"countries.tv": "तुवालू",
|
||||
"countries.tw": "ताइवान",
|
||||
"countries.tz": "तंजानिया",
|
||||
"countries.ug": "युगांडा",
|
||||
"countries.ua": "यूक्रेन",
|
||||
@@ -242,13 +239,13 @@
|
||||
"emails.otpSession.description": "जब आपको सुरक्षित रूप से अपना {{project}} खाता में साइन इन करे खातिर कहल जाए तऽ निम्नलिखित सत्यापन कोड दर्ज करीं। ई 15 मिनट में खत्म हो जई।",
|
||||
"emails.otpSession.clientInfo": "एह साइन इन के अनुरोध {{agentClient}} पर {{agentDevice}} {{agentOs}} का प्रयोग करि कऽ कइल गइल बा। यदि तूँ एह साइन इन के अनुरोध ना कइले रहीं, त तूँ एह ईमेल के नजरअंदाज कर सकेला।",
|
||||
"emails.otpSession.securityPhrase": "एही ईमेल खातिर सुरक्षा वाक्य {{phrase}} हऽ। अगर ई वाक्य साइन इन कइला के समय देखावल गेल वाक्य से मेल खाता, त एह ईमेल पर भरोसा कर सकैत छी।",
|
||||
"emails.otpSession.thanks": "धन्यवाद,",
|
||||
"emails.otpSession.thanks": "धन्यवाद",
|
||||
"emails.otpSession.signature": "{{project}} टीम",
|
||||
"emails.certificate.subject": "%s लेल प्रमाणपत्र असफलта",
|
||||
"emails.certificate.hello": "नमस्ते,",
|
||||
"emails.certificate.hello": "नमस्ते",
|
||||
"emails.certificate.body": "आपके डोमेन '{{domain}}' के लिए प्रमाणपत्र नहीं बनाया जा सका। ई प्रयास संख्या {{attempt}} है, और ई असफलता के कारण रहे: {{error}}",
|
||||
"emails.certificate.footer": "तोहार पिछलका प्रमाणपत्र पहिल असफलता से 30 दिन धरी मान्य होईत। हम बहुत जोर देके सलाह देतानी कि एह मामला के जांच करीं, नहीं त तोहार डोमेन बिना कोनो मान्य SSL संवाद के रहि जाईत।",
|
||||
"emails.certificate.thanks": "धन्यवाद,",
|
||||
"emails.certificate.thanks": "धन्यवाद",
|
||||
"emails.certificate.signature": "{{project}} टीम",
|
||||
"sms.verification.body": "{{secret}}"
|
||||
}
|
||||
"sms.verification.body": "{{secret}} आपके {{project}} सत्यापन कोड हवे।"
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s টীম",
|
||||
"emails.verification.subject": "বিষয়",
|
||||
"emails.verification.hello": "নমস্কার {{user}},",
|
||||
"emails.verification.hello": "নমস্কার {{user}}",
|
||||
"emails.verification.body": "এই লিঙ্কের মাধ্যমে ইমেইল যাচাই করুন।",
|
||||
"emails.verification.footer": "আপনি যদি এই ঠিকানা যাচাই করতে না বলেন, তাহলে আপনি এই বার্তাটি উপেক্ষা করতে পারেন।",
|
||||
"emails.verification.thanks": "ধন্যবাদ,",
|
||||
"emails.verification.thanks": "ধন্যবাদ",
|
||||
"emails.verification.signature": "{{project}} টীম",
|
||||
"emails.magicSession.subject": "লগ ইন",
|
||||
"emails.magicSession.hello": "নমস্কার,",
|
||||
"emails.magicSession.hello": "নমস্কার",
|
||||
"emails.magicSession.body": "এই লিঙ্কের মাধ্যমে লগ ইন করুন।",
|
||||
"emails.magicSession.footer": "আপনি যদি এই ইমেলটি ব্যবহার করে লগইন করতে না বলেন, তাহলে আপনি এই বার্তাটি উপেক্ষা করতে পারেন।",
|
||||
"emails.magicSession.thanks": "ধন্যবাদ,",
|
||||
"emails.magicSession.thanks": "ধন্যবাদ",
|
||||
"emails.magicSession.signature": "{{project}} টীম",
|
||||
"emails.recovery.subject": "পাসওয়ার্ড রিসেট",
|
||||
"emails.recovery.hello": "নমস্কার {{user}},",
|
||||
"emails.recovery.hello": "নমস্কার {{user}}",
|
||||
"emails.recovery.body": "এই লিঙ্কের মাধ্যমে আপনার {{project}} পাসওয়ার্ড পুনরায় সেট করুন।",
|
||||
"emails.recovery.footer": "আপনি যদি আপনার পাসওয়ার্ড পুনরায় সেট করতে না বলেন, তাহলে আপনি এই বার্তাটি উপেক্ষা করতে পারেন।",
|
||||
"emails.recovery.thanks": "ধন্যবাদ,",
|
||||
"emails.recovery.thanks": "ধন্যবাদ",
|
||||
"emails.recovery.signature": "{{project}} টীম",
|
||||
"emails.invitation.subject": "%s টিমকে %s তে আমন্ত্রণ জানান",
|
||||
"emails.invitation.hello": "নমস্কার,",
|
||||
"emails.invitation.hello": "নমস্কার",
|
||||
"emails.invitation.body": "এই মেইলটি আপনাকে পাঠানো হয়েছে কারণ {{owner}} আপনাকে {{project}} এর সাথে যুক্ত {{team}} টিমের সদস্য হওয়ার জন্য আমন্ত্রণ জানাতে চেয়েছিলেন।",
|
||||
"emails.invitation.footer": "যদি এটি আপনার জন্য প্রয়োজনীয় না হয়, আপনি এই বার্তাটি উপেক্ষা করতে পারেন।",
|
||||
"emails.invitation.thanks": "ধন্যবাদ,",
|
||||
"emails.invitation.thanks": "ধন্যবাদ",
|
||||
"emails.invitation.signature": "{{project}} টীম",
|
||||
"locale.country.unknown": "অজানা",
|
||||
"countries.af": "আফগানিস্তান",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "গ্রেনাডা",
|
||||
"countries.gt": "গুয়াতেমালা",
|
||||
"countries.gy": "গায়ানা",
|
||||
"countries.hk": "হংকং",
|
||||
"countries.hn": "হন্ডুরাস",
|
||||
"countries.hr": "ক্রোয়েশিয়া",
|
||||
"countries.ht": "হাইতি",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "নিউজিল্যান্ড",
|
||||
"countries.om": "ওমান",
|
||||
"countries.pk": "পাকিস্তান",
|
||||
"countries.ps": "প্যালেস্টাইন",
|
||||
"countries.pa": "পানামা",
|
||||
"countries.pe": "পেরু",
|
||||
"countries.ph": "ফিলিপাইন",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "তিউনিসিয়া",
|
||||
"countries.tr": "তুরস্ক",
|
||||
"countries.tv": "টুভালু",
|
||||
"countries.tw": "তাইওয়ান",
|
||||
"countries.tz": "তানজানিয়া",
|
||||
"countries.ug": "উগান্ডা",
|
||||
"countries.ua": "ইউক্রেন",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "নীচের বোতামে ক্লিক করুন আপনার {{project}} অ্যাকাউন্টে নিরাপদে সাইন ইন করতে। এটি ১ ঘন্টা পরে মেয়াদ উত্তীর্ণ হবে।",
|
||||
"emails.magicSession.buttonText": "{{project}}-এ সাইন ইন করুন",
|
||||
"emails.magicSession.clientInfo": "এই সাইন ইনটি {{agentClient}} ব্যবহার করে {{agentDevice}} {{agentOs}}-এ অনুরোধ করা হয়েছিল। যদি আপনি সাইন ইনের অনুরোধ করেননি, আপনি নিরাপদে এই ইমেইলটি উপেক্ষা করতে পারেন।",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} আপনার {{project}} যাচাইকরণ কোড।",
|
||||
"emails.magicSession.securityPhrase": "এই ইমেলের জন্য নিরাপত্তা বাক্যটি হল {{phrase}}। সাইন-ইনের সময় দেখানো বাক্যটির সাথে এই বাক্যটি মিলে গেলে আপনি এই ইমেইলকে বিশ্বাস করতে পারেন।",
|
||||
"emails.magicSession.optionUrl": "উপরের বোতামটি ব্যবহার করে আপনি যদি সাইন ইন করতে অক্ষম হন, অনুগ্রহ করে নিম্নলিখিত লিঙ্কটি দেখুন:",
|
||||
"emails.otpSession.subject": "{{project}} লগইন",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "এই ইমেইলের জন্য সুরক্ষা বাক্য হলো {{phrase}}। যদি এই বাক্যটি সাইন ইনের সময় দেখানো বাক্যের সাথে মেলে, তাহলে আপনি এই ইমেইলটিকে বিশ্বাস করতে পারেন।",
|
||||
"emails.otpSession.thanks": "ধন্যবাদ,",
|
||||
"emails.otpSession.signature": "{{project}} দল"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Tim",
|
||||
"emails.verification.subject": "",
|
||||
"emails.verification.hello": ",",
|
||||
"emails.verification.hello": "",
|
||||
"emails.verification.body": "",
|
||||
"emails.verification.footer": "",
|
||||
"emails.verification.thanks": ",",
|
||||
"emails.verification.thanks": "",
|
||||
"emails.verification.signature": "",
|
||||
"emails.magicSession.subject": "",
|
||||
"emails.magicSession.hello": ",",
|
||||
"emails.magicSession.hello": "",
|
||||
"emails.magicSession.body": "",
|
||||
"emails.magicSession.footer": "",
|
||||
"emails.magicSession.thanks": ",",
|
||||
"emails.magicSession.thanks": "",
|
||||
"emails.magicSession.signature": "",
|
||||
"emails.recovery.subject": "",
|
||||
"emails.recovery.hello": ",",
|
||||
"emails.recovery.hello": "",
|
||||
"emails.recovery.body": "",
|
||||
"emails.recovery.footer": "",
|
||||
"emails.recovery.thanks": ",",
|
||||
"emails.recovery.thanks": "",
|
||||
"emails.recovery.signature": "",
|
||||
"emails.invitation.subject": "",
|
||||
"emails.invitation.hello": ",",
|
||||
"emails.invitation.hello": "",
|
||||
"emails.invitation.body": "",
|
||||
"emails.invitation.footer": "",
|
||||
"emails.invitation.thanks": ",",
|
||||
"emails.invitation.thanks": "",
|
||||
"emails.invitation.signature": "",
|
||||
"locale.country.unknown": "Nepoznat",
|
||||
"countries.af": "Afganistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Gvajana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Hrvatska",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Novi Zeland",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Filipini",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunis",
|
||||
"countries.tr": "Turska",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Tajvan",
|
||||
"countries.tz": "Tanzania",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukrajina",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Kliknite na dugme ispod kako biste se sigurno prijavili na svoj {{project}} račun. Istek će se dogoditi za 1 sat.",
|
||||
"emails.magicSession.buttonText": "Prijavi se na {{project}}",
|
||||
"emails.magicSession.clientInfo": "Ova prijava je zatražena korištenjem {{agentClient}} na {{agentDevice}} {{agentOs}}. Ako niste zahtjevali prijavu, možete sigurno ignorirati ovaj e-mail.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} je vaš {{project}} verifikacijski kod.",
|
||||
"emails.magicSession.securityPhrase": "Sigurnosna fraza za ovaj email je {{phrase}}. Ovom emailu možete vjerovati ako se fraza poklapa sa frazom prikazanom prilikom prijave.",
|
||||
"emails.magicSession.optionUrl": "Ako ne možete da se prijavite koristeći gornje dugme, molimo posetite sledeći link:",
|
||||
"emails.otpSession.subject": "{{project}} Prijava",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Sigurnosna fraza za ovaj email je {{phrase}}. Možete vjerovati ovom emailu ako se ova fraza podudara sa frazom prikazanom prilikom prijave.",
|
||||
"emails.otpSession.thanks": "Hvala,",
|
||||
"emails.otpSession.signature": "tim {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Equip",
|
||||
"emails.verification.subject": "Verificació del compte",
|
||||
"emails.verification.hello": "Hola {{user}},",
|
||||
"emails.verification.hello": "Hola {{user}}",
|
||||
"emails.verification.body": "Accedeix a aquest enllaç per tal de verificar la teva adreça electrònica.",
|
||||
"emails.verification.footer": "Si no has sol·licitat la verificació d'aquesta adreça electrònica, pots ignorar aquest missatge.",
|
||||
"emails.verification.thanks": "Gràcies,",
|
||||
"emails.verification.thanks": "Gràcies",
|
||||
"emails.verification.signature": "Equip {{project}}",
|
||||
"emails.magicSession.subject": "Entrar",
|
||||
"emails.magicSession.hello": "Hola,",
|
||||
"emails.magicSession.body": "Accedeix a aquest enllaç per a entrar.",
|
||||
"emails.magicSession.footer": "Si no has sol·licitat entrar amb aquesta adreça electrònica, pots ignorar aquest missatge.",
|
||||
"emails.magicSession.thanks": "Gràcies,",
|
||||
"emails.magicSession.thanks": "Gràcies",
|
||||
"emails.magicSession.signature": "Equip {{project}}",
|
||||
"emails.recovery.subject": "Reinicialitzar contrasenya",
|
||||
"emails.recovery.hello": "Hola {{user}},",
|
||||
"emails.recovery.hello": "Hola {{user}}",
|
||||
"emails.recovery.body": "Accedeix a aquest enllaç per a reinicialitzar la teva contrasenya de {{project}}.",
|
||||
"emails.recovery.footer": "Si no has sol·licitat reinicialitzar la teva contrasenya, pots ignorar aquest missatge.",
|
||||
"emails.recovery.thanks": "Gràcies,",
|
||||
"emails.recovery.thanks": "Gràcies",
|
||||
"emails.recovery.signature": "Equip {{project}}",
|
||||
"emails.invitation.subject": "Invitació a l'equip %s a s%",
|
||||
"emails.invitation.hello": "Hola,",
|
||||
"emails.invitation.hello": "Hola",
|
||||
"emails.invitation.body": "Aquest correu se t'ha enviat perquè {{owner}} vol convidar-te a formar part de l'equip {{team}} al {{project}}.",
|
||||
"emails.invitation.footer": "Si no és del teu interès, pots ignorar aquest missatge.",
|
||||
"emails.invitation.thanks": "Gràcies,",
|
||||
"emails.invitation.thanks": "Gràcies",
|
||||
"emails.invitation.signature": "Equip {{project}}",
|
||||
"locale.country.unknown": "Desconegut",
|
||||
"countries.af": "Afganistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Granada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guaiana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Hondures",
|
||||
"countries.hr": "Croàcia",
|
||||
"countries.ht": "Haití",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Nova Zelanda",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestina",
|
||||
"countries.pa": "Panamà",
|
||||
"countries.pe": "Perú",
|
||||
"countries.ph": "Filipines",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunísia",
|
||||
"countries.tr": "Turquia",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taiwan",
|
||||
"countries.tz": "Tanzània",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ucraïna",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Feu clic al botó de sota per iniciar sessió de manera segura al vostre compte {{project}}. Caducarà en 1 hora.",
|
||||
"emails.magicSession.buttonText": "Inicia sessió a {{project}}",
|
||||
"emails.magicSession.clientInfo": "Aquest inici de sessió s'ha sol·licitat utilitzant {{agentClient}} en {{agentDevice}} {{agentOs}}. Si no has sol·licitat l'inici de sessió, pots ignorar aquest correu electrònic amb seguretat.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "El {{secret}} és el vostre codi de verificació del {{project}}.",
|
||||
"emails.magicSession.securityPhrase": "La frase de seguretat d'aquest correu electrònic és {{phrase}}. Podeu confiar en aquest correu si aquesta frase coincideix amb la frase mostrada durant l'inici de sessió.",
|
||||
"emails.magicSession.optionUrl": "Si no podeu iniciar sessió utilitzant el botó de dalt, visiteu l'enllaç següent:",
|
||||
"emails.otpSession.subject": "Inici de sessió de {{project}}",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "La frase de seguretat d'aquest correu electrònic és {{phrase}}. Podeu confiar en aquest correu electrònic si aquesta frase coincideix amb la frase mostrada durant l'inici de sessió.",
|
||||
"emails.otpSession.thanks": "Gràcies,",
|
||||
"emails.otpSession.signature": "equip {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s tým",
|
||||
"emails.verification.subject": "",
|
||||
"emails.verification.hello": ",",
|
||||
"emails.verification.hello": "",
|
||||
"emails.verification.body": "",
|
||||
"emails.verification.footer": "",
|
||||
"emails.verification.thanks": ",",
|
||||
"emails.verification.thanks": "",
|
||||
"emails.verification.signature": "",
|
||||
"emails.magicSession.subject": "",
|
||||
"emails.magicSession.hello": ",",
|
||||
"emails.magicSession.hello": "",
|
||||
"emails.magicSession.body": "",
|
||||
"emails.magicSession.footer": "",
|
||||
"emails.magicSession.thanks": ",",
|
||||
"emails.magicSession.thanks": "",
|
||||
"emails.magicSession.signature": "",
|
||||
"emails.recovery.subject": "",
|
||||
"emails.recovery.hello": ",",
|
||||
"emails.recovery.hello": "",
|
||||
"emails.recovery.body": "",
|
||||
"emails.recovery.footer": "",
|
||||
"emails.recovery.thanks": ",",
|
||||
"emails.recovery.thanks": "",
|
||||
"emails.recovery.signature": "",
|
||||
"emails.invitation.subject": "",
|
||||
"emails.invitation.hello": ",",
|
||||
"emails.invitation.hello": "",
|
||||
"emails.invitation.body": "",
|
||||
"emails.invitation.footer": "",
|
||||
"emails.invitation.thanks": ",",
|
||||
"emails.invitation.thanks": "",
|
||||
"emails.invitation.signature": "",
|
||||
"locale.country.unknown": "Neznámý",
|
||||
"countries.af": "Afghánistán",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Chorvatsko",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Nový Zéland",
|
||||
"countries.om": "Omán",
|
||||
"countries.pk": "Pákistán",
|
||||
"countries.ps": "Palestina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Filipíny",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunisko",
|
||||
"countries.tr": "Turecko",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Tchaj-wan",
|
||||
"countries.tz": "Tanzanie",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraine",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Klikněte na tlačítko níže pro bezpečné přihlášení do vašeho účtu {{project}}. Platnost vyprší za 1 hodinu.",
|
||||
"emails.magicSession.buttonText": "Přihlaste se k {{project}}",
|
||||
"emails.magicSession.clientInfo": "Toto přihlášení bylo požadováno prostřednictvím {{agentClient}} na {{agentDevice}} {{agentOs}}. Pokud jste se nepřihlašovali, můžete tento e-mail bezpečně ignorovat.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} je váš ověřovací kód pro {{project}}.",
|
||||
"emails.magicSession.securityPhrase": "Bezpečnostní fráze pro tento e-mail je {{phrase}}. Tomuto e-mailu můžete důvěřovat, pokud tato fráze odpovídá frázi zobrazené při přihlášení.",
|
||||
"emails.magicSession.optionUrl": "Pokud se nemůžete přihlásit pomocí výše uvedeného tlačítka, prosím navštivte následující odkaz:",
|
||||
"emails.otpSession.subject": "{{project}} Přihlášení",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Bezpečnostní fráze pro tento e-mail je {{phrase}}. Tomuto e-mailu můžete důvěřovat, pokud se tato fráze shoduje s frází zobrazenou při přihlášení.",
|
||||
"emails.otpSession.thanks": "Děkuji,",
|
||||
"emails.otpSession.signature": "tým {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Team",
|
||||
"emails.verification.subject": "Konto Verifikation",
|
||||
"emails.verification.hello": "Hej {{user}},",
|
||||
"emails.verification.hello": "Hej {{user}}",
|
||||
"emails.verification.body": "Følg dette link, for at verificere din email adresse.",
|
||||
"emails.verification.footer": "Hvis du ikke har bedt om at verificere denne adresse, ignorer venligst denne besked.",
|
||||
"emails.verification.thanks": "Tak,",
|
||||
"emails.verification.thanks": "Tak",
|
||||
"emails.verification.signature": "{{project}} team",
|
||||
"emails.magicSession.subject": "Login",
|
||||
"emails.magicSession.hello": "Hej,",
|
||||
"emails.magicSession.body": "Følg dette link for at logge ind.",
|
||||
"emails.magicSession.footer": "Hvis du ikke har bedt om at logge ind med denne email, ignorer venligst denne besked.",
|
||||
"emails.magicSession.thanks": "Tak,",
|
||||
"emails.magicSession.thanks": "Tak",
|
||||
"emails.magicSession.signature": "{{project}} team",
|
||||
"emails.recovery.subject": "Nulstil Password",
|
||||
"emails.recovery.hello": "Hej {{user}},",
|
||||
"emails.recovery.hello": "Hej {{user}}",
|
||||
"emails.recovery.body": "Følg dette link for at nulstille koden til {{project}}.",
|
||||
"emails.recovery.footer": "Hvis du ikke har bedt om at nulstille dit password, ignorer venligst denne besked.",
|
||||
"emails.recovery.thanks": "Tak,",
|
||||
"emails.recovery.thanks": "Tak",
|
||||
"emails.recovery.signature": "{{project}} team",
|
||||
"emails.invitation.subject": "Invitation til %s Team på %s",
|
||||
"emails.invitation.hello": "Hej,",
|
||||
"emails.invitation.hello": "Hej",
|
||||
"emails.invitation.body": "Denne mail blev sendt til dig, fordi {{owner}} vil invitere dig til at blive medlem af {{team}} teamet på {{project}}.",
|
||||
"emails.invitation.footer": "Hvis du ikke er interesseret, ignorer venligst denne besked.",
|
||||
"emails.invitation.thanks": "Tak,",
|
||||
"emails.invitation.thanks": "Tak",
|
||||
"emails.invitation.signature": "{{project}} team",
|
||||
"locale.country.unknown": "Ukendt",
|
||||
"countries.af": "Afghanistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroatien",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "New Zealand",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palæstina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Filippinerne",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunisien",
|
||||
"countries.tr": "Tyrkiet",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taiwan",
|
||||
"countries.tz": "Tanzania",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraine",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Klik på knappen nedenfor for sikkert at logge ind på din {{project}} konto. Den udløber om 1 time.",
|
||||
"emails.magicSession.buttonText": "Log ind på {{project}}",
|
||||
"emails.magicSession.clientInfo": "Denne log ind blev anmodet ved hjælp af {{agentClient}} på {{agentDevice}} {{agentOs}}. Hvis du ikke anmodede om log ind, kan du trygt ignorere denne e-mail.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} er din {{project}} bekræftelseskode.",
|
||||
"emails.magicSession.securityPhrase": "Sikkerhedsfrasen for denne e-mail er {{phrase}}. Du kan stole på denne e-mail, hvis denne frase matcher den viste frase under log ind.",
|
||||
"emails.magicSession.optionUrl": "Hvis du ikke kan logge ind ved at bruge knappen ovenfor, besøg venligst følgende link:",
|
||||
"emails.otpSession.subject": "{{project}} Login",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Sikkerhedsfrasen for denne e-mail er {{phrase}}. Du kan stole på denne e-mail, hvis denne frase matcher frasen vist under login.",
|
||||
"emails.otpSession.thanks": "Tak,",
|
||||
"emails.otpSession.signature": "{{project}} team"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Team",
|
||||
"emails.verification.subject": "Kontoverifizierung",
|
||||
"emails.verification.hello": "Hey {{user}},",
|
||||
"emails.verification.hello": "Hey {{user}}",
|
||||
"emails.verification.body": "Folge diesem Link, um deine E-Mail-Adresse zu bestätigen.",
|
||||
"emails.verification.footer": "Solltest du keine Verifizierung dieser E-Mail-Adresse angefordert haben, kannst du diese Nachricht ignorieren.",
|
||||
"emails.verification.thanks": "Danke,",
|
||||
"emails.verification.thanks": "Danke",
|
||||
"emails.verification.signature": "{{project}}-Team",
|
||||
"emails.magicSession.subject": "Login",
|
||||
"emails.magicSession.hello": "Hey,",
|
||||
"emails.magicSession.body": "Folge diesem Link, um dich einzuloggen.",
|
||||
"emails.magicSession.footer": "Solltest du keinen Login für diese E-Mail-Adresse angefordert haben, kannst du diese Nachricht ignorieren.",
|
||||
"emails.magicSession.thanks": "Danke,",
|
||||
"emails.magicSession.thanks": "Danke",
|
||||
"emails.magicSession.signature": "{{project}}-Team",
|
||||
"emails.recovery.subject": "Kennwort zurücksetzen",
|
||||
"emails.recovery.hello": "Hallo {{user}},",
|
||||
"emails.recovery.hello": "Hallo {{user}}",
|
||||
"emails.recovery.body": "Folge diesem Link, um dein {{project}}-Kennwort zurückzusetzen.",
|
||||
"emails.recovery.footer": "Solltest du keine Kennwort-Zurücksetzung angefordert haben, kannst du diese Nachricht ignorieren.",
|
||||
"emails.recovery.thanks": "Danke,",
|
||||
"emails.recovery.thanks": "Danke",
|
||||
"emails.recovery.signature": "{{project}}-Team",
|
||||
"emails.invitation.subject": "Einladung zum %s-Team auf %s",
|
||||
"emails.invitation.hello": "Hello,",
|
||||
"emails.invitation.hello": "Hello",
|
||||
"emails.invitation.body": "Du erhälst diese E-Mail, weil {{owner}} dich in das Team {{team}} auf {{project}} eingeladen hat.",
|
||||
"emails.invitation.footer": "Wenn du nicht interessiert bist, kannst du diese Nachricht ignorieren.",
|
||||
"emails.invitation.thanks": "Danke,",
|
||||
"emails.invitation.thanks": "Danke",
|
||||
"emails.invitation.signature": "{{project}}-Team",
|
||||
"locale.country.unknown": "Unbekannt",
|
||||
"countries.af": "Afghanistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroatien",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Neuseeland",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palästina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Philippinen",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunesien",
|
||||
"countries.tr": "Türkei",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taiwan",
|
||||
"countries.tz": "Tansania",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraine",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Klicken Sie auf den unten stehenden Button, um sicher in Ihr {{project}}-Konto einzuloggen. Er verfällt in 1 Stunde.",
|
||||
"emails.magicSession.buttonText": "Melden Sie sich bei {{project}} an",
|
||||
"emails.magicSession.clientInfo": "Dieser Anmeldeversuch wurde über {{agentClient}} auf {{agentDevice}} {{agentOs}} angefordert. Wenn Sie die Anmeldung nicht angefordert haben, können Sie diese E-Mail getrost ignorieren.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} ist Ihr {{project}}-Verifizierungscode.",
|
||||
"emails.magicSession.securityPhrase": "Die Sicherheitsphrase für diese E-Mail lautet {{phrase}}. Sie können dieser E-Mail vertrauen, wenn diese Phrase mit der Phrase übereinstimmt, die beim Anmelden angezeigt wurde.",
|
||||
"emails.magicSession.optionUrl": "Wenn Sie sich nicht über den obigen Button anmelden können, besuchen Sie bitte den folgenden Link:",
|
||||
"emails.otpSession.subject": "{{project}} Anmeldung",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Die Sicherheitsphrase für diese E-Mail lautet {{phrase}}. Sie können dieser E-Mail vertrauen, wenn diese Phrase mit der Phrase übereinstimmt, die beim Anmelden angezeigt wird.",
|
||||
"emails.otpSession.thanks": "Danke,",
|
||||
"emails.otpSession.signature": "{{project}} Team"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "Ομάδα %s",
|
||||
"emails.verification.subject": "Επαλήθευση Λογαριασμού",
|
||||
"emails.verification.hello": "Γεια σου {{user}},",
|
||||
"emails.verification.hello": "Γεια σου {{user}}",
|
||||
"emails.verification.body": "Ακολουθήστε αυτό το link για να επαληθεύσετε τη δ/νση του email σας",
|
||||
"emails.verification.footer": "Εάν δεν ζητήσατε επαλήθευση αυτής της δ/νσης email, μπορείτε να αγνοήσετε αυτό το μήνυμα",
|
||||
"emails.verification.thanks": "Ευχαριστούμε,",
|
||||
"emails.verification.thanks": "Ευχαριστούμε",
|
||||
"emails.verification.signature": "Η ομάδα του {{project}}",
|
||||
"emails.magicSession.subject": "Είσοδος",
|
||||
"emails.magicSession.hello": "Γεια σου,",
|
||||
"emails.magicSession.body": "Ακολουθήστε αυτό το link για να συνδεθείτε",
|
||||
"emails.magicSession.footer": "Εάν δεν ζητήσατε να συνδεθείτε χρησιμοποιώντας αυτό το email, μπορείτε να αγνοήσετε αυτό το μήνυμα.",
|
||||
"emails.magicSession.thanks": "Ευχαριστούμε,",
|
||||
"emails.magicSession.thanks": "Ευχαριστούμε",
|
||||
"emails.magicSession.signature": "Η ομάδα του {{project}}",
|
||||
"emails.recovery.subject": "Αλλαγή κωδικού πρόσβασης",
|
||||
"emails.recovery.hello": "Γεια σου {{user}},",
|
||||
"emails.recovery.hello": "Γεια σου {{user}}",
|
||||
"emails.recovery.body": "Ακολουθήστε αυτό το link για να αλλάξετε τον {{project}} κωδικό σας",
|
||||
"emails.recovery.footer": "Εάν δεν ζητήσατε αλλαγή του κωδικού σας πρόσβασης, μπορείτε να αγνοήσετε αυτό το μήνυμα",
|
||||
"emails.recovery.thanks": "Ευχαριστούμε,",
|
||||
"emails.recovery.thanks": "Ευχαριστούμε",
|
||||
"emails.recovery.signature": "Η ομάδα του {{project}}",
|
||||
"emails.invitation.subject": "Πρόσκληση στην %s Ομάδα στον %s",
|
||||
"emails.invitation.hello": "Γεια σου,",
|
||||
"emails.invitation.hello": "Γεια σου",
|
||||
"emails.invitation.body": "Αυτό το email στάλθηκε επειδή ο/η {{owner}} θέλει να σας προσκαλέσει να γίνετε μέλος της ομάδας {{team}} του {{project}}.",
|
||||
"emails.invitation.footer": "Εάν δεν ενδιαφέρεστε, μπορείτε να αγνοήσετε αυτό το μήνυμα.",
|
||||
"emails.invitation.thanks": "Ευχαριστούμε,",
|
||||
"emails.invitation.thanks": "Ευχαριστούμε",
|
||||
"emails.invitation.signature": "Η ομάδα του {{project}}",
|
||||
"locale.country.unknown": "Άγνωστο",
|
||||
"countries.af": "Αφγανιστάν",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Γρενάδα",
|
||||
"countries.gt": "Γουατεμάλα",
|
||||
"countries.gy": "Γουιάνα",
|
||||
"countries.hk": "Χονγκ Κονγκ",
|
||||
"countries.hn": "Ονδούρα",
|
||||
"countries.hr": "Κροατία",
|
||||
"countries.ht": "Αϊτή",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Νέα Ζηλανδία",
|
||||
"countries.om": "Ομάν",
|
||||
"countries.pk": "Πακιστάν",
|
||||
"countries.ps": "Παλαιστίνη",
|
||||
"countries.pa": "Παναμάς",
|
||||
"countries.pe": "Περού",
|
||||
"countries.ph": "Φιλιππίνες",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Τυνησία",
|
||||
"countries.tr": "Τουρκία",
|
||||
"countries.tv": "Τουβαλού",
|
||||
"countries.tw": "Ταϊβάν",
|
||||
"countries.tz": "Τανζανία",
|
||||
"countries.ug": "Ουγκάντα",
|
||||
"countries.ua": "Ουκρανία",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Κάντε κλικ στο κουμπί παρακάτω για να συνδεθείτε με ασφάλεια στον λογαριασμό σας στο {{project}}. Θα λήξει σε 1 ώρα.",
|
||||
"emails.magicSession.buttonText": "Συνδεθείτε στο {{project}}",
|
||||
"emails.magicSession.clientInfo": "Η σύνδεση αυτή ζητήθηκε χρησιμοποιώντας το {{agentClient}} στο {{agentDevice}} {{agentOs}}. Εάν δεν ζητήσατε τη σύνδεση, μπορείτε να αγνοήσετε με ασφάλεια αυτό το email.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "το {{secret}} είναι ο κωδικός επαλήθευσης του {{project}} σας.",
|
||||
"emails.magicSession.securityPhrase": "Η φράση ασφαλείας για αυτό το email είναι {{phrase}}. Μπορείτε να εμπιστευτείτε αυτό το email αν αυτή η φράση ταιριάζει με τη φράση που εμφανίζεται κατά την είσοδο.",
|
||||
"emails.magicSession.optionUrl": "Εάν δεν μπορείτε να συνδεθείτε χρησιμοποιώντας το παραπάνω κουμπί, παρακαλώ επισκεφτείτε τον παρακάτω σύνδεσμο:",
|
||||
"emails.otpSession.subject": "{{project}} Σύνδεση",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Η φράση ασφαλείας για αυτό το email είναι {{phrase}}. Μπορείτε να εμπιστευτείτε αυτό το email αν αυτή η φράση ταιριάζει με τη φράση που εμφανίστηκε κατά την είσοδο.",
|
||||
"emails.otpSession.thanks": "Ευχαριστώ,",
|
||||
"emails.otpSession.signature": "ομάδα {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -4,13 +4,13 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Team",
|
||||
"emails.verification.subject": "Account Verification",
|
||||
"emails.verification.hello": "Hello {{user}},",
|
||||
"emails.verification.hello": "Hello {{user}}",
|
||||
"emails.verification.body": "Follow this link to verify your email address to your {{b}}{{project}}{{/b}} account.",
|
||||
"emails.verification.footer": "If you didn’t ask to verify this address, you can ignore this message.",
|
||||
"emails.verification.thanks": "Thanks,",
|
||||
"emails.verification.thanks": "Thanks",
|
||||
"emails.verification.signature": "{{project}} team",
|
||||
"emails.magicSession.subject": "{{project}} Login",
|
||||
"emails.magicSession.hello": "Hello {{user}},",
|
||||
"emails.magicSession.hello": "Hello {{user}}",
|
||||
"emails.magicSession.optionButton": "Click the button below to securely sign in to your {{b}}{{project}}{{/b}} account. This link will expire in 1 hour.",
|
||||
"emails.magicSession.buttonText": "Sign in to {{project}}",
|
||||
"emails.magicSession.optionUrl": "If you are unable to sign in using the button above, please visit the following link:",
|
||||
@@ -18,47 +18,32 @@
|
||||
"emails.magicSession.securityPhrase": "Security phrase for this email is {{b}}{{phrase}}{{/b}}. You can trust this email if this phrase matches the phrase shown during sign in.",
|
||||
"emails.magicSession.thanks": "Thanks,",
|
||||
"emails.magicSession.signature": "{{project}} team",
|
||||
"emails.sessionAlert.subject": "Security alert: new session on your {{project}} account",
|
||||
"emails.sessionAlert.hello": "Hello {{user}},",
|
||||
"emails.sessionAlert.body": "A new session has been created on your {{b}}{{project}}{{/b}} account, {{b}}on {{date}}, {{year}} at {{time}} UTC{{/b}}.\nHere are the details of the new session: ",
|
||||
"emails.sessionAlert.listDevice": "Device: {{b}}{{device}}{{/b}}",
|
||||
"emails.sessionAlert.listIpAddress": "IP Address: {{b}}{{ipAddress}}{{/b}}",
|
||||
"emails.sessionAlert.listCountry": "Country: {{b}}{{country}}{{/b}}",
|
||||
"emails.sessionAlert.footer": "If this was you, there's nothing more you need to do.\nIf you didn't initiate this session or suspect any unauthorized activity, please secure your account.",
|
||||
"emails.sessionAlert.thanks": "Thanks,",
|
||||
"emails.sessionAlert.signature": "{{project}} team",
|
||||
"emails.otpSession.subject": "OTP for {{project}} Login",
|
||||
"emails.otpSession.hello": "Hello {{user}},",
|
||||
"emails.otpSession.hello": "Hello {{user}}",
|
||||
"emails.otpSession.description": "Enter the following verification code when prompted to securely sign in to your {{b}}{{project}}{{/b}} account. This code will expire in 15 minutes.",
|
||||
"emails.otpSession.clientInfo": "This sign in was requested using {{b}}{{agentClient}}{{/b}} on {{b}}{{agentDevice}}{{/b}} {{b}}{{agentOs}}{{/b}}. If you didn't request the sign in, you can safely ignore this email.",
|
||||
"emails.otpSession.securityPhrase": "Security phrase for this email is {{b}}{{phrase}}{{/b}}. You can trust this email if this phrase matches the phrase shown during sign in.",
|
||||
"emails.otpSession.thanks": "Thanks,",
|
||||
"emails.otpSession.signature": "{{project}} team",
|
||||
"emails.mfaChallenge.subject": "Verification Code for {{project}}",
|
||||
"emails.mfaChallenge.hello": "Hello {{user}},",
|
||||
"emails.mfaChallenge.hello": "Hello {{user}}",
|
||||
"emails.mfaChallenge.description": "Enter the following verification code to verify your email and activate two-step verification in {{b}}{{project}}{{/b}}. This code will expire in 15 minutes.",
|
||||
"emails.mfaChallenge.clientInfo": "This verification code was requested using {{b}}{{agentClient}}{{/b}} on {{b}}{{agentDevice}}{{/b}} {{b}}{{agentOs}}{{/b}}. If you didn't request the verification code, you can safely ignore this email.",
|
||||
"emails.mfaChallenge.thanks": "Thanks,",
|
||||
"emails.mfaChallenge.signature": "{{project}} team",
|
||||
"emails.recovery.subject": "Password Reset",
|
||||
"emails.recovery.hello": "Hello {{user}},",
|
||||
"emails.recovery.hello": "Hello {{user}}",
|
||||
"emails.recovery.body": "Follow this link to reset your {{b}}{{project}}{{/b}} password.",
|
||||
"emails.recovery.footer": "If you didn't ask to reset your password, you can ignore this message.",
|
||||
"emails.recovery.thanks": "Thanks,",
|
||||
"emails.recovery.footer": "If you didn’t ask to reset your password, you can ignore this message.",
|
||||
"emails.recovery.thanks": "Thanks",
|
||||
"emails.recovery.signature": "{{project}} team",
|
||||
"emails.invitation.subject": "Invitation to %s Team at %s",
|
||||
"emails.invitation.hello": "Hello {{user}},",
|
||||
"emails.invitation.hello": "Hello {{user}}",
|
||||
"emails.invitation.body": "This mail was sent to you because {{b}}{{owner}}{{/b}} wanted to invite you to become a member of the {{b}}{{team}}{{/b}} team at {{b}}{{project}}{{/b}}.",
|
||||
"emails.invitation.footer": "If you are not interested, you can ignore this message.",
|
||||
"emails.invitation.thanks": "Thanks,",
|
||||
"emails.invitation.thanks": "Thanks",
|
||||
"emails.invitation.signature": "{{project}} team",
|
||||
"emails.certificate.subject": "Certificate failure for %s",
|
||||
"emails.certificate.hello": "Hello,",
|
||||
"emails.certificate.body": "Certificate for your domain '{{domain}}' could not be generated. This is attempt no. {{attempt}}, and the failure was caused by: {{error}}",
|
||||
"emails.certificate.footer": "Your previous certificate will be valid for 30 days since the first failure. We highly recommend investigating this case, otherwise your domain will end up without a valid SSL communication.",
|
||||
"emails.certificate.thanks": "Thanks,",
|
||||
"emails.certificate.signature": "{{project}} team",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} is your {{project}} verification code.",
|
||||
"locale.country.unknown": "Unknown",
|
||||
"countries.af": "Afghanistan",
|
||||
"countries.ao": "Angola",
|
||||
@@ -132,7 +117,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croatia",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -196,7 +180,6 @@
|
||||
"countries.nz": "New Zealand",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestine",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Philippines",
|
||||
@@ -240,7 +223,6 @@
|
||||
"countries.tn": "Tunisia",
|
||||
"countries.tr": "Turkey",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taiwan",
|
||||
"countries.tz": "Tanzania",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraine",
|
||||
|
||||
@@ -3,28 +3,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "Teamo %s",
|
||||
"emails.verification.subject": "Konta Konfirmo",
|
||||
"emails.verification.hello": "Saluton {{user}},",
|
||||
"emails.verification.hello": "Saluton {{user}}",
|
||||
"emails.verification.body": "Alklaku ĉi tiun ligon por kontroli vian retpoŝtan adreson.",
|
||||
"emails.verification.footer": "Se vi ne petis ĉi tiun konfirmon de ĉi tiu retpoŝto, vi povas ignori ĉi tiun mesaĝon.",
|
||||
"emails.verification.thanks": "Dankegon.,",
|
||||
"emails.verification.thanks": "Dankegon.",
|
||||
"emails.verification.signature": "Teamo {{project}}",
|
||||
"emails.magicSession.subject": "Login",
|
||||
"emails.magicSession.hello": "Saluton,",
|
||||
"emails.magicSession.body": "Alklaku ĉi tiun ligon por eniri.",
|
||||
"emails.magicSession.footer": "Se vi ne petis ĉi tiun konfirmon de ĉi tiu retpoŝto, vi povas ignori ĉi tiun mesaĝon.",
|
||||
"emails.magicSession.thanks": "Dankegon,",
|
||||
"emails.magicSession.thanks": "Dankegon",
|
||||
"emails.magicSession.signature": "Teamo {{project}}",
|
||||
"emails.recovery.subject": "Parsvorta Restarigo",
|
||||
"emails.recovery.hello": "Saluton {{user}},",
|
||||
"emails.recovery.hello": "Saluton {{user}}",
|
||||
"emails.recovery.body": "Alklaku ĉi tiun ligon por reagordi vian pasvorton. {{project}}",
|
||||
"emails.recovery.footer": "Se vi ne petis reagordi vian pasvorton, vi povas ignori ĉi tiun mesaĝon.",
|
||||
"emails.recovery.thanks": "Dankegon,",
|
||||
"emails.recovery.thanks": "Dankegon",
|
||||
"emails.recovery.signature": "Teamo {{project}}",
|
||||
"emails.invitation.subject": "Invito al la Teamo %s em %s",
|
||||
"emails.invitation.hello": "Dankegon,",
|
||||
"emails.invitation.hello": "Dankegon",
|
||||
"emails.invitation.body": "Ĉi tiu retpoŝto estis sendita ĉar la {{owner}} volas inviti vin fariĝi membro de la Teamo {{team}} en {{project}}.",
|
||||
"emails.invitation.footer": "Se vi ne interesiĝas, vi povas ignori ĉi tiun mesaĝon.",
|
||||
"emails.invitation.thanks": "Dankegon,",
|
||||
"emails.invitation.thanks": "Dankegon",
|
||||
"emails.invitation.signature": "Teamo {{project}}",
|
||||
"locale.country.unknown": "Unknown",
|
||||
"countries.af": "Afghanistan",
|
||||
@@ -99,7 +99,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croatia",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -163,7 +162,6 @@
|
||||
"countries.nz": "New Zealand",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestinio",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Philippines",
|
||||
@@ -207,7 +205,6 @@
|
||||
"countries.tn": "Tunisia",
|
||||
"countries.tr": "Turkey",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Tajvano",
|
||||
"countries.tz": "Tanzania",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraine",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Alklaku la suban butonon por sekure ensaluti al via {{project}}-konto. Ĝi eksvalidiĝos post 1 horo.",
|
||||
"emails.magicSession.buttonText": "Ensalutu al {{project}}",
|
||||
"emails.magicSession.clientInfo": "Ĉi tiu ensaluto estis petita per {{agentClient}} en {{agentDevice}} {{agentOs}}. Se vi ne petis la ensaluton, vi povas sekure ignori ĉi tiun retpoŝton.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} estas via {{project}} kontrolo-kodo.",
|
||||
"emails.magicSession.securityPhrase": "La sekureca frazo por ĉi tiu retpoŝto estas {{phrase}}. Vi povas fidi ĉi tiun retpoŝton se ĉi tiu frazo kongruas kun la frazo montrita dum ensaluto.",
|
||||
"emails.magicSession.optionUrl": "Se vi ne povas ensaluti per la supra butono, bonvolu viziti la jenan ligilon:",
|
||||
"emails.otpSession.subject": "{{project}} Ensaluto",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Sekureca frazo por ĉi tiu retpoŝto estas {{phrase}}. Vi povas fidi ĉi tiun retpoŝton se tiu ĉi frazo kongruas kun la frazo montrita dum ensaluto.",
|
||||
"emails.otpSession.thanks": "Dankon,",
|
||||
"emails.otpSession.signature": "teamo de {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "El equipo de %s",
|
||||
"emails.verification.subject": "Verificación de cuenta",
|
||||
"emails.verification.hello": "Hola, {{name}}.,",
|
||||
"emails.verification.hello": "Hola, {{name}}.",
|
||||
"emails.verification.body": "Haz clic en este enlace para verificar tu correo:",
|
||||
"emails.verification.footer": "Si no has solicitado verificar este correo, puedes ignorar este mensaje.",
|
||||
"emails.verification.thanks": "Gracias.,",
|
||||
"emails.verification.thanks": "Gracias.",
|
||||
"emails.verification.signature": "El equipo de {{project}}.",
|
||||
"emails.magicSession.subject": "Inicio de sesión",
|
||||
"emails.magicSession.hello": "Hola,",
|
||||
"emails.magicSession.hello": "Hola",
|
||||
"emails.magicSession.body": "Haz clic en este enlace para iniciar sesión:",
|
||||
"emails.magicSession.footer": "Si no has solicitado iniciar sesión usando este correo, puedes ignorar este mensaje.",
|
||||
"emails.magicSession.thanks": "Gracias.,",
|
||||
"emails.magicSession.thanks": "Gracias.",
|
||||
"emails.magicSession.signature": "El equipo de {{project}}",
|
||||
"emails.recovery.subject": "Restablecer contraseña",
|
||||
"emails.recovery.hello": "Hola, {{name}}.,",
|
||||
"emails.recovery.hello": "Hola, {{name}}.",
|
||||
"emails.recovery.body": "Haz clic en este enlace para restablecer la contraseña de {{project}}:",
|
||||
"emails.recovery.footer": "Si no has solicitado restablecer la contraseña, puedes ignorar este mensaje.",
|
||||
"emails.recovery.thanks": "Gracias.,",
|
||||
"emails.recovery.thanks": "Gracias.",
|
||||
"emails.recovery.signature": "El equipo de {{project}}",
|
||||
"emails.invitation.subject": "Invitación al equipo %s en %s",
|
||||
"emails.invitation.hello": "Hola,",
|
||||
"emails.invitation.hello": "Hola",
|
||||
"emails.invitation.body": "Este correo ha sido enviado a petición de {{owner}} quién quiere invitarte a formar parte del equipo {{team}} en {{project}}.",
|
||||
"emails.invitation.footer": "Si no estás interesado, puedes ignorar este mensaje.",
|
||||
"emails.invitation.thanks": "Gracias.,",
|
||||
"emails.invitation.thanks": "Gracias.",
|
||||
"emails.invitation.signature": "El equipo de {{project}}",
|
||||
"locale.country.unknown": "Desconocido",
|
||||
"countries.af": "Afganistán",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Granada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guayana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croacia",
|
||||
"countries.ht": "Haití",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Nueva Zelanda",
|
||||
"countries.om": "Omán",
|
||||
"countries.pk": "Pakistán",
|
||||
"countries.ps": "Palestina",
|
||||
"countries.pa": "Panamá",
|
||||
"countries.pe": "Perú",
|
||||
"countries.ph": "Filipinas",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Túnez",
|
||||
"countries.tr": "Turquía",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taiwán",
|
||||
"countries.tz": "Tanzania",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ucrania",
|
||||
@@ -235,14 +232,14 @@
|
||||
"emails.magicSession.optionButton": "Haz clic en el botón de abajo para iniciar sesión de forma segura en tu cuenta de {{project}}. Caducará en 1 hora.",
|
||||
"emails.magicSession.buttonText": "Iniciar sesión en {{project}}",
|
||||
"emails.magicSession.clientInfo": "Este inicio de sesión fue solicitado usando {{agentClient}} en {{agentDevice}} {{agentOs}}. Si no solicitaste el inicio de sesión, puedes ignorar este correo electrónico de forma segura.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} es tu código de verificación de {{project}}.",
|
||||
"emails.magicSession.securityPhrase": "La frase de seguridad para este correo electrónico es {{phrase}}. Puedes confiar en este correo electrónico si esta frase coincide con la frase que se muestra durante el inicio de sesión.",
|
||||
"emails.magicSession.optionUrl": "Si no puedes iniciar sesión utilizando el botón anterior, visita el siguiente enlace:",
|
||||
"emails.otpSession.subject": "Inicio de sesión en {{project}}",
|
||||
"emails.otpSession.hello": "Hola,",
|
||||
"emails.otpSession.hello": "Hola",
|
||||
"emails.otpSession.description": "Ingrese el siguiente código de verificación cuando se le solicite para iniciar sesión de forma segura en su cuenta de {{project}}. Expirará en 15 minutos.",
|
||||
"emails.otpSession.clientInfo": "Este inicio de sesión fue solicitado usando {{agentClient}} en {{agentDevice}} {{agentOs}}. Si no solicitaste el inicio de sesión, puedes ignorar este correo electrónico de forma segura.",
|
||||
"emails.otpSession.securityPhrase": "La frase de seguridad para este correo electrónico es {{phrase}}. Puedes confiar en este correo si esta frase coincide con la frase mostrada durante el inicio de sesión.",
|
||||
"emails.otpSession.thanks": "Gracias.,",
|
||||
"emails.otpSession.thanks": "Gracias.",
|
||||
"emails.otpSession.signature": "El equipo de {{project}}"
|
||||
}
|
||||
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "rtl",
|
||||
"emails.sender": "تیم %s",
|
||||
"emails.verification.subject": "تأیید حساب",
|
||||
"emails.verification.hello": "سلام {{user}}،",
|
||||
"emails.verification.hello": "سلام {{user}}",
|
||||
"emails.verification.body": "برای تأیید ایمیلتان پیوند زیر را دنبال کنید.",
|
||||
"emails.verification.footer": "اگر شما درخواست تأیید حساب ندادهاید، میتوانید این پیام را نادیده بگیرید.",
|
||||
"emails.verification.thanks": "سپاس فراوان،",
|
||||
"emails.verification.thanks": "سپاس فراوان",
|
||||
"emails.verification.signature": "تیم {{user}}",
|
||||
"emails.magicSession.subject": "ورود به حساب کاربری",
|
||||
"emails.magicSession.hello": "سلام،",
|
||||
"emails.magicSession.body": "برای ورود به حسابتان پیوند زیر را دنبال کنید.",
|
||||
"emails.magicSession.footer": "اگر شما درخواست ورود به حساب کاربری با استفاده از این ایمیل را ندادهاید، میتوانید این پیام را نادیده بگیرید.",
|
||||
"emails.magicSession.thanks": "سپاس فراوان،",
|
||||
"emails.magicSession.thanks": "سپاس فراوان",
|
||||
"emails.magicSession.signature": "تیم {{user}}",
|
||||
"emails.recovery.subject": "بازیابی گذرواژه",
|
||||
"emails.recovery.hello": "سلام {{user}}،",
|
||||
"emails.recovery.hello": "سلام {{user}}",
|
||||
"emails.recovery.body": "برای بازیابی گذرواژهتان پیوند زیر را دنبال کنید.",
|
||||
"emails.recovery.footer": "اگر شما درخواست بازیابی گذرواژه ندادهاید، میتوانید این پیام را نادیده بگیرید.",
|
||||
"emails.recovery.thanks": "سپاس فراوان،",
|
||||
"emails.recovery.thanks": "سپاس فراوان",
|
||||
"emails.recovery.signature": "تیم {{user}}",
|
||||
"emails.invitation.subject": "دعوت به تیم %s در %s",
|
||||
"emails.invitation.hello": "سلام،",
|
||||
"emails.invitation.hello": "سلام",
|
||||
"emails.invitation.body": "این ایمیل برای شما فرستاده شدهاست زیرا {{owner}} میخواهد شما را به تیم {{team}} در پروژهی {{project}} بیفزاید.",
|
||||
"emails.invitation.footer": "اگر علاقه ندارید، میتوانید این پیام را نادیده بگیرید.",
|
||||
"emails.invitation.thanks": "سپاس فراوان،",
|
||||
"emails.invitation.thanks": "سپاس فراوان",
|
||||
"emails.invitation.signature": "تیم {{user}}",
|
||||
"locale.country.unknown": "ناشناخته",
|
||||
"countries.af": "افغانستان",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "گرنادا",
|
||||
"countries.gt": "گواتمالا",
|
||||
"countries.gy": "گویان",
|
||||
"countries.hk": "هنگ کنگ",
|
||||
"countries.hn": "هندوراس",
|
||||
"countries.hr": "کرواسی",
|
||||
"countries.ht": "هائیتی",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "نیوزلند",
|
||||
"countries.om": "عمان",
|
||||
"countries.pk": "پاکستان",
|
||||
"countries.ps": "فلسطین",
|
||||
"countries.pa": "پاناما",
|
||||
"countries.pe": "پرو",
|
||||
"countries.ph": "فیلیپین",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "تونس",
|
||||
"countries.tr": "ترکیه",
|
||||
"countries.tv": "تووالو",
|
||||
"countries.tw": "تایوان",
|
||||
"countries.tz": "تانزانیا",
|
||||
"countries.ug": "اوگاندا",
|
||||
"countries.ua": "اوکراین",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "بر روی دکمه زیر کلیک کنید تا به صورت امن وارد حساب {{project}} خود شوید. این دکمه یک ساعت دیگر منقضی میشود.",
|
||||
"emails.magicSession.buttonText": "ورود به {{project}}",
|
||||
"emails.magicSession.clientInfo": "این ورود به سیستم با استفاده از {{agentClient}} در {{agentDevice}} {{agentOs}} درخواست شده است. اگر شما این ورود به سیستم را درخواست نکردهاید، میتوانید به راحتی این ایمیل را نادیده بگیرید.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} کد تایید {{project}} شما است.",
|
||||
"emails.magicSession.securityPhrase": "عبارت امنیتی برای این ایمیل {{phrase}} است. اگر این عبارت با عبارت نشان داده شده در هنگام ورود به سیستم مطابقت داشت، میتوانید به این ایمیل اعتماد کنید.",
|
||||
"emails.magicSession.optionUrl": "اگر قادر به ورود با استفاده از دکمه بالا نیستید، لطفاً از لینک زیر دیدن فرمایید:",
|
||||
"emails.otpSession.subject": "ورود {{project}}",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "عبارت امنیتی برای این ایمیل {{phrase}} است. اگر این عبارت با عبارت نشان داده شده هنگام ورود به سیستم مطابقت داشته باشد، میتوانید به این ایمیل اعتماد کنید.",
|
||||
"emails.otpSession.thanks": "متشکرم،",
|
||||
"emails.otpSession.signature": "تیم {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Tiimi",
|
||||
"emails.verification.subject": "",
|
||||
"emails.verification.hello": ",",
|
||||
"emails.verification.hello": "",
|
||||
"emails.verification.body": "",
|
||||
"emails.verification.footer": "",
|
||||
"emails.verification.thanks": ",",
|
||||
"emails.verification.thanks": "",
|
||||
"emails.verification.signature": "",
|
||||
"emails.magicSession.subject": "",
|
||||
"emails.magicSession.hello": ",",
|
||||
"emails.magicSession.hello": "",
|
||||
"emails.magicSession.body": "",
|
||||
"emails.magicSession.footer": "",
|
||||
"emails.magicSession.thanks": ",",
|
||||
"emails.magicSession.thanks": "",
|
||||
"emails.magicSession.signature": "",
|
||||
"emails.recovery.subject": "",
|
||||
"emails.recovery.hello": ",",
|
||||
"emails.recovery.hello": "",
|
||||
"emails.recovery.body": "",
|
||||
"emails.recovery.footer": "",
|
||||
"emails.recovery.thanks": ",",
|
||||
"emails.recovery.thanks": "",
|
||||
"emails.recovery.signature": "",
|
||||
"emails.invitation.subject": "",
|
||||
"emails.invitation.hello": ",",
|
||||
"emails.invitation.hello": "",
|
||||
"emails.invitation.body": "",
|
||||
"emails.invitation.footer": "",
|
||||
"emails.invitation.thanks": ",",
|
||||
"emails.invitation.thanks": "",
|
||||
"emails.invitation.signature": "",
|
||||
"locale.country.unknown": "Unknown",
|
||||
"countries.af": "Afganistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroatia",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Uusi-Seelanti",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestiina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Filippiinit",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunisia",
|
||||
"countries.tr": "Turkki",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taiwan",
|
||||
"countries.tz": "Tansania",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraina",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Napsauta alla olevaa painiketta kirjautuaksesi turvallisesti {{project}}-tiliisi. Se vanhenee tunnissa.",
|
||||
"emails.magicSession.buttonText": "Kirjaudu sisään {{project}}",
|
||||
"emails.magicSession.clientInfo": "Tämä kirjautuminen pyydettiin käyttäen {{agentClient}} {{agentDevice}} {{agentOs}}. Jos et pyytänyt kirjautumista, voit huoletta jättää tämän sähköpostin huomiotta.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} on sinun {{project}} vahvistuskoodisi.",
|
||||
"emails.magicSession.securityPhrase": "Tämän sähköpostin turvalause on {{phrase}}. Voit luottaa tähän sähköpostiin, jos tämä lause vastaa kirjautumisen yhteydessä näytettyä lausetta.",
|
||||
"emails.magicSession.optionUrl": "Jos et pysty kirjautumaan sisään yllä olevaa painiketta käyttäen, käy seuraavassa linkissä:",
|
||||
"emails.otpSession.subject": "{{project}} Kirjautuminen",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Tämän sähköpostin turvalause on {{phrase}}. Voit luottaa tähän sähköpostiin, jos tämä lause vastaa kirjautumisen yhteydessä näytettyä lausetta.",
|
||||
"emails.otpSession.thanks": "Kiitos,",
|
||||
"emails.otpSession.signature": "{{project}} -tiimi"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Lið",
|
||||
"emails.verification.subject": "",
|
||||
"emails.verification.hello": ",",
|
||||
"emails.verification.hello": "",
|
||||
"emails.verification.body": "",
|
||||
"emails.verification.footer": "",
|
||||
"emails.verification.thanks": ",",
|
||||
"emails.verification.thanks": "",
|
||||
"emails.verification.signature": "",
|
||||
"emails.magicSession.subject": "",
|
||||
"emails.magicSession.hello": ",",
|
||||
"emails.magicSession.hello": "",
|
||||
"emails.magicSession.body": "",
|
||||
"emails.magicSession.footer": "",
|
||||
"emails.magicSession.thanks": ",",
|
||||
"emails.magicSession.thanks": "",
|
||||
"emails.magicSession.signature": "",
|
||||
"emails.recovery.subject": "",
|
||||
"emails.recovery.hello": ",",
|
||||
"emails.recovery.hello": "",
|
||||
"emails.recovery.body": "",
|
||||
"emails.recovery.footer": "",
|
||||
"emails.recovery.thanks": ",",
|
||||
"emails.recovery.thanks": "",
|
||||
"emails.recovery.signature": "",
|
||||
"emails.invitation.subject": "",
|
||||
"emails.invitation.hello": ",",
|
||||
"emails.invitation.hello": "",
|
||||
"emails.invitation.body": "",
|
||||
"emails.invitation.footer": "",
|
||||
"emails.invitation.thanks": ",",
|
||||
"emails.invitation.thanks": "",
|
||||
"emails.invitation.signature": "",
|
||||
"locale.country.unknown": "Ókjent",
|
||||
"countries.af": "Afghanistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Gujana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroatia",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Nýsæland",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Filipsoyggjar",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunesia",
|
||||
"countries.tr": "Turkaland",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taivan",
|
||||
"countries.tz": "Tansania",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraina",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Trýst á knøttin niðanfyri fyri at rita trygt inn á tína {{project}} konto. Tað fer at ganga út um 1 tíma.",
|
||||
"emails.magicSession.buttonText": "Innrita á {{project}}",
|
||||
"emails.magicSession.clientInfo": "Hetta innritingarbeiðið varð umbiðið við {{agentClient}} á {{agentDevice}} {{agentOs}}. Um tú ikki bað um innritingina, kanst tú trygt ignoreri hendan teldupostin.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} er tín {{project}} váttanarkodi.",
|
||||
"emails.magicSession.securityPhrase": "Trygdarorðið fyri hesa teldupostadressuna er {{phrase}}. Tú kanst líta á hesa teldupostadressu, um hetta orðið samsvarar við orðið víst tá tú ritaði inn.",
|
||||
"emails.magicSession.optionUrl": "Um tú ikki fært innritað við at brúka knøttin omanfyri, vinarliga vitja hesa leinkjuna:",
|
||||
"emails.otpSession.subject": "{{project}} Ritarinn",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Trygdarorðið fyri hesa teldupostin er {{phrase}}. Tú kanst líta á hesa teldupostin um hetta orðið passar við orðið víst tá tú ritaði inn.",
|
||||
"emails.otpSession.thanks": "Takk,",
|
||||
"emails.otpSession.signature": "{{project}} lið"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "Équipe %s",
|
||||
"emails.verification.subject": "Vérification du compte",
|
||||
"emails.verification.hello": "Bonjour {{user}},",
|
||||
"emails.verification.hello": "Bonjour {{user}}",
|
||||
"emails.verification.body": "Suivez ce lien pour vérifier votre adresse e-mail.",
|
||||
"emails.verification.footer": "Si vous n'avez pas demandé à vérifier cette adresse, vous pouvez ignorer ce message.",
|
||||
"emails.verification.thanks": "Merci,",
|
||||
"emails.verification.thanks": "Merci",
|
||||
"emails.verification.signature": "Équipe {{project}}",
|
||||
"emails.magicSession.subject": "Connexion",
|
||||
"emails.magicSession.hello": "Bonjour,",
|
||||
"emails.magicSession.body": "Suivez ce lien pour vous connecter.",
|
||||
"emails.magicSession.footer": "Si vous n'avez pas demandé à vous connecter en utilisant cet e-mail, vous pouvez ignorer ce message.",
|
||||
"emails.magicSession.thanks": "Merci,",
|
||||
"emails.magicSession.thanks": "Merci",
|
||||
"emails.magicSession.signature": "L'équipe {{project}}",
|
||||
"emails.recovery.subject": "Réinitialisation du mot de passe",
|
||||
"emails.recovery.hello": "Bonjour {{user}},",
|
||||
"emails.recovery.hello": "Bonjour {{user}}",
|
||||
"emails.recovery.body": "Suivez ce lien pour réinitialiser votre mot de passe pour {{project}}.",
|
||||
"emails.recovery.footer": "Si vous n'avez pas demandé à réinitialiser votre mot de passe, vous pouvez ignorer ce message.",
|
||||
"emails.recovery.thanks": "Merci,",
|
||||
"emails.recovery.thanks": "Merci",
|
||||
"emails.recovery.signature": "L'équipe {{project}}",
|
||||
"emails.invitation.subject": "Invitation à l'équipe %s de %s",
|
||||
"emails.invitation.hello": "Bonjour,",
|
||||
"emails.invitation.hello": "Bonjour",
|
||||
"emails.invitation.body": "Cet e-mail vous a été envoyé parce que {{owner}} souhaite vous inviter à devenir membre de l'équipe {{team}} pour {{project}}.",
|
||||
"emails.invitation.footer": "Si vous n'êtes pas intéressé, vous pouvez ignorer ce message.",
|
||||
"emails.invitation.thanks": "Merci,",
|
||||
"emails.invitation.thanks": "Merci",
|
||||
"emails.invitation.signature": "L'équipe {{project}}",
|
||||
"locale.country.unknown": "Inconnu",
|
||||
"countries.af": "Afghanistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenade",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyane",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croatie",
|
||||
"countries.ht": "Haïti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Nouvelle-Zélande",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestine",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Pérou",
|
||||
"countries.ph": "Philippines",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunisie",
|
||||
"countries.tr": "Turquie",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taïwan",
|
||||
"countries.tz": "Tanzanie",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraine",
|
||||
@@ -236,7 +233,7 @@
|
||||
"emails.magicSession.buttonText": "Connectez-vous à {{project}}",
|
||||
"emails.magicSession.optionUrl": "Si le bouton ci-dessus ne s'affiche pas, utilisez le lien suivant :",
|
||||
"emails.magicSession.clientInfo": "Cette connexion a été demandée en utilisant {{agentClient}} sur {{agentDevice}} {{agentOs}}. Si vous n'avez pas demandé cette connexion, vous pouvez ignorer cet email en toute sécurité.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} est votre code de vérification pour {{project}}.",
|
||||
"emails.magicSession.securityPhrase": "La phrase de sécurité pour cet email est {{phrase}}. Vous pouvez faire confiance à cet email si cette phrase correspond à celle affichée lors de la connexion.",
|
||||
"emails.otpSession.subject": "Connexion {{project}}",
|
||||
"emails.otpSession.hello": "Bonjour,",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "La phrase de sécurité pour cet e-mail est {{phrase}}. Vous pouvez faire confiance à cet e-mail si cette phrase correspond à celle affichée lors de la connexion.",
|
||||
"emails.otpSession.thanks": "Merci,",
|
||||
"emails.otpSession.signature": "équipe {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Foireann",
|
||||
"emails.verification.subject": "Fíoraithe cuntais",
|
||||
"emails.verification.hello": "Haigh {{user}},",
|
||||
"emails.verification.hello": "Haigh {{user}}",
|
||||
"emails.verification.body": "Lean an nasc seo chun do ríomhphost a fhíorú.",
|
||||
"emails.verification.footer": "Mura ndearna tú iarratas an seoladh seo a fhíoru, déan neamhaird den teachtaireacht seo.",
|
||||
"emails.verification.thanks": "Go raibh maith agat,",
|
||||
"emails.verification.thanks": "Go raibh maith agat",
|
||||
"emails.verification.signature": "{{project}} foireann",
|
||||
"emails.magicSession.subject": "Logáil isteach",
|
||||
"emails.magicSession.hello": "Haigh,",
|
||||
"emails.magicSession.body": "Lean an nasc seo chun logáil isteach.",
|
||||
"emails.magicSession.footer": "Mura ndearna tú iarratas logáil isteach leis an ríomhphost seo, déan neamhaird den teachtaireacht seo.",
|
||||
"emails.magicSession.thanks": "Go raibh maith agat,",
|
||||
"emails.magicSession.thanks": "Go raibh maith agat",
|
||||
"emails.magicSession.signature": "{{project}} foireann",
|
||||
"emails.recovery.subject": "Athshocrú pasfhocail",
|
||||
"emails.recovery.hello": "Haigh {{user}},",
|
||||
"emails.recovery.hello": "Haigh {{user}}",
|
||||
"emails.recovery.body": "Lean an nasc seo chun do pasfhocal {{project}} a athshocrú.",
|
||||
"emails.recovery.footer": "Mura ndearna tú iarratas do pasfhocal a athshocrú, déan neamhaird den teachtaireacht seo.",
|
||||
"emails.recovery.thanks": "Go raibh maith agat,",
|
||||
"emails.recovery.thanks": "Go raibh maith agat",
|
||||
"emails.recovery.signature": "{{project}} foireann",
|
||||
"emails.invitation.subject": "Cuireadh do %s foireann ag %s",
|
||||
"emails.invitation.hello": "Haigh,",
|
||||
"emails.invitation.hello": "Haigh",
|
||||
"emails.invitation.body": "Seoladh an ríomhphost seo chugat mar ba mhaith le {{owner}} cuireadh a thabhairt duit bheith mar bhall den fhoireann {{team}} ag obair ar {{project}}.",
|
||||
"emails.invitation.footer": "Is cuma leat? Déan neamhaird den teachtaireacht seo.",
|
||||
"emails.invitation.thanks": "Go raibh maith agat,",
|
||||
"emails.invitation.thanks": "Go raibh maith agat",
|
||||
"emails.invitation.signature": "{{project}} foireann",
|
||||
"locale.country.unknown": "Neamhaithnid",
|
||||
"countries.af": "An Afganastáin",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Greanáda",
|
||||
"countries.gt": "Guatamala",
|
||||
"countries.gy": "An Ghuáin",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Hondúras",
|
||||
"countries.hr": "An Chróit",
|
||||
"countries.ht": "Háítí",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "An Nua-Shéalainn",
|
||||
"countries.om": "Óman",
|
||||
"countries.pk": "An Phacastáin",
|
||||
"countries.ps": "An Phalaistín",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peiriú",
|
||||
"countries.ph": "Na hOileáin Fhilipíneacha",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "An Túinéis",
|
||||
"countries.tr": "An Tuirc",
|
||||
"countries.tv": "Túvalú",
|
||||
"countries.tw": "An Téaváin",
|
||||
"countries.tz": "An Tansáin",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "An Úcráin",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Cliceáil ar an gcnaipe thíos le síní isteach go sábháilte i do chuntas {{project}}. Rachaidh sé in éag i gceann 1 uair.",
|
||||
"emails.magicSession.buttonText": "Sínigh isteach i {{project}}",
|
||||
"emails.magicSession.clientInfo": "Rinneadh an logáil isteach seo a iarraidh ag baint úsáide as {{agentClient}} ar {{agentDevice}} {{agentOs}}. Mura ndearna tú an logáil isteach a iarraidh, is féidir leat neamhaird sábháilte a dhéanamh den ríomhphost seo.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "Is é {{secret}} do chód fíoraithe {{project}}.",
|
||||
"emails.magicSession.securityPhrase": "Is é an abairt slándála don ríomhphost seo ná {{phrase}}. Is féidir muinín a bheith agat as an ríomhphost seo má mheaitseálann an abairt seo leis an abairt a taispeántar le linn sínithe isteach.",
|
||||
"emails.magicSession.optionUrl": "Mura bhfuil tú in ann síniú isteach ag baint úsáid as an gcnaipe thuas, téigh chuig an nasc seo a leanas:",
|
||||
"emails.otpSession.subject": "Login {{project}}",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Frása slándála don ríomhphost seo ná {{phrase}}. Is féidir muinín a bheith agat as an ríomhphost seo má mheaitseálann an frása seo leis an bhfrása a taispeántar le linn síniú isteach.",
|
||||
"emails.otpSession.thanks": "Go raibh maith agat,",
|
||||
"emails.otpSession.signature": "foireann {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s ટીમ",
|
||||
"emails.verification.subject": "ખાતાની ચકાસણી",
|
||||
"emails.verification.hello": "નમસ્કાર {{user}},",
|
||||
"emails.verification.hello": "નમસ્કાર {{user}}",
|
||||
"emails.verification.body": "તમારું ઇમેઇલ સરનામું ચકાસવા માટે આ લિંકને અનુસરો.",
|
||||
"emails.verification.footer": "જો તમે આ સરનામાંની ચકાસણી કરવાનું ન કહ્યું હોય, તો તમે આ સંદેશને અવગણી શકો છો.",
|
||||
"emails.verification.thanks": "આભાર,",
|
||||
"emails.verification.thanks": "આભાર",
|
||||
"emails.verification.signature": "{{project}} ટીમ",
|
||||
"emails.magicSession.subject": "પ્રવેશ કરો",
|
||||
"emails.magicSession.hello": "નમસ્કાર,",
|
||||
"emails.magicSession.body": "પ્રવેશ કરવા માટે આ લિંકને અનુસરો.",
|
||||
"emails.magicSession.footer": "જો તમે આ ઇમેઇલનો ઉપયોગ કરીને પ્રવેશ કરવાનું ન કહ્યું હોય, તો તમે આ સંદેશને અવગણી શકો છો.",
|
||||
"emails.magicSession.thanks": "આભાર,",
|
||||
"emails.magicSession.thanks": "આભાર",
|
||||
"emails.magicSession.signature": "{{project}} ટીમ",
|
||||
"emails.recovery.subject": "પાસવર્ડ ફરીથી સેટ કરો",
|
||||
"emails.recovery.hello": "નમસ્કાર {{user}},",
|
||||
"emails.recovery.hello": "નમસ્કાર {{user}}",
|
||||
"emails.recovery.body": "તમારો {{project}} પાસવર્ડ ફરીથી સેટ કરવા માટે આ લિંકને અનુસરો.",
|
||||
"emails.recovery.footer": "જો તમે તમારો પાસવર્ડ ફરીથી સેટ કરવાનું ન કહ્યું હોય, તો તમે આ સંદેશને અવગણી શકો છો.",
|
||||
"emails.recovery.thanks": "આભાર,",
|
||||
"emails.recovery.thanks": "આભાર",
|
||||
"emails.recovery.signature": "{{project}} ટીમ",
|
||||
"emails.invitation.subject": "%s ટીમને %s પર આમંત્રણ",
|
||||
"emails.invitation.hello": "નમસ્કાર,",
|
||||
"emails.invitation.hello": "નમસ્કાર",
|
||||
"emails.invitation.body": "આ મેઇલ તમને મોકલવામાં આવ્યો હતો કારણ કે {{owner}} તમને {{project}} માં {{team}} ટીમના સભ્ય બનવા માટે આમંત્રિત કરવા માંગતા હતો.",
|
||||
"emails.invitation.footer": "જો તમને રસ નથી, તો તમે આ સંદેશને અવગણી શકો છો.",
|
||||
"emails.invitation.thanks": "આભાર,",
|
||||
"emails.invitation.thanks": "આભાર",
|
||||
"emails.invitation.signature": "{{project}} ટીમ",
|
||||
"locale.country.unknown": "અજાણ",
|
||||
"countries.af": "અફઘાનિસ્તાન",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "ગ્રેનાડા",
|
||||
"countries.gt": "ગ્વાટેમાલા",
|
||||
"countries.gy": "ગુયાના",
|
||||
"countries.hk": "હોંગ કોંગ",
|
||||
"countries.hn": "હોન્ડુરાસ",
|
||||
"countries.hr": "ક્રોએશિયા",
|
||||
"countries.ht": "હૈતી",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "ન્યુઝીલેન્ડ",
|
||||
"countries.om": "ઓમાન",
|
||||
"countries.pk": "પાકિસ્તાન",
|
||||
"countries.ps": "પેલેસ્ટાઇન",
|
||||
"countries.pa": "પનામા",
|
||||
"countries.pe": "પેરુ",
|
||||
"countries.ph": "ફિલિપાઇન્સ",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "ટ્યુનિશિયા",
|
||||
"countries.tr": "તુર્કી",
|
||||
"countries.tv": "તુવાલુ",
|
||||
"countries.tw": "તાઇવાન",
|
||||
"countries.tz": "તાંઝાનિયા",
|
||||
"countries.ug": "યુગાન્ડા",
|
||||
"countries.ua": "યુક્રેન",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "નીચે આપેલ બટન પર ક્લિક કરો તમારા {{project}} ખાતામાં સુરક્ષિત રીતે સાઇન ઈન કરવા માટે. તે 1 કલાકમાં સમાપ્ત થઈ જશે.",
|
||||
"emails.magicSession.buttonText": "સાઇન ઇન કરો {{project}}",
|
||||
"emails.magicSession.clientInfo": "આ સાઇન ઇન વિનંતી {{agentClient}} નો ઉપયોગ કરીને {{agentDevice}} {{agentOs}} પર કરવામાં આવી હતી. જો તમે સાઇન ઇનની વિનંતી કરી ન હોય, તો આ ઇમેઇલને સલામત રીતે અવગણી શકો છો.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} તમારા {{project}} ચકાસણી કોડ છે.",
|
||||
"emails.magicSession.securityPhrase": "આ ઇમેઇલ માટેનું સુરક્ષા વાક્ય {{phrase}} છે. જો આ વાક્ય સાઇન ઇન દરમિયાન દર્શાવેલા વાક્ય સાથે મેળ ખાય તો તમે આ ઇમેઇલ પર વિશ્વાસ કરી શકો છો.",
|
||||
"emails.magicSession.optionUrl": "જો તમે ઉપરની બટનનો ઉપયોગ કરીને સાઇન ઇન કરી શકતા નથી, કૃપા કરીને નીચેની લિંક પર જાઓ:",
|
||||
"emails.otpSession.subject": "{{project}} લૉગિન",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "આ ઇમેઇલ માટેનો સુરક્ષા શબ્દ {{phrase}} છે. જો આ શબ્દ સાઇન ઇન વખતે દર્શાવેલા શબ્દ સાથે મેળ ખાતો હોય તો તમે આ ઇમેઇલ પર વિશ્વાસ કરી શકો છો.",
|
||||
"emails.otpSession.thanks": "આભાર,",
|
||||
"emails.otpSession.signature": "{{project}} ટીમ"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "rtl",
|
||||
"emails.sender": "צוות %s",
|
||||
"emails.verification.subject": "אימות חשבון",
|
||||
"emails.verification.hello": "שלום {{user}},",
|
||||
"emails.verification.hello": "שלום {{user}}",
|
||||
"emails.verification.body": "לחץ על קישור זה כדי לאמת את כתובת הדוא\"ל שלך.",
|
||||
"emails.verification.footer": "אם לא ביקשת לאמת כתובת זו, תוכל להתעלם מהודעה זו.",
|
||||
"emails.verification.thanks": "תודה,",
|
||||
"emails.verification.thanks": "תודה",
|
||||
"emails.verification.signature": "צוות {{project}}",
|
||||
"emails.magicSession.subject": "כניסה למערכת",
|
||||
"emails.magicSession.hello": "שלום,",
|
||||
"emails.magicSession.body": "לחץ על קישור זה כדי להיכנס.",
|
||||
"emails.magicSession.footer": "אם לא ביקשת להיכנס באמצעות דוא\"ל זה, תוכל להתעלם מהודעה זו.",
|
||||
"emails.magicSession.thanks": "תודה,",
|
||||
"emails.magicSession.thanks": "תודה",
|
||||
"emails.magicSession.signature": "צוות {{project}}",
|
||||
"emails.recovery.subject": "איפוס סיסמא",
|
||||
"emails.recovery.hello": "שלום {{user}},",
|
||||
"emails.recovery.hello": "שלום {{user}}",
|
||||
"emails.recovery.body": "עקוב אחר קישור זה כדי לאפס את סיסמתך ב-{{project}}.",
|
||||
"emails.recovery.footer": "אם לא ביקשת לאפס את הסיסמה, תוכל להתעלם מהודעה זו.",
|
||||
"emails.recovery.thanks": "תודה,",
|
||||
"emails.recovery.thanks": "תודה",
|
||||
"emails.recovery.signature": "צוות {{project}}",
|
||||
"emails.invitation.subject": "הזמנה לצוות %s ב- %s",
|
||||
"emails.invitation.hello": "שלום,",
|
||||
"emails.invitation.hello": "שלום",
|
||||
"emails.invitation.body": "דואר זה נשלח אליך מכיוון ש {{owner}} רצה להזמין אותך להיות חבר בצוות {{team}} ב-{{project}}.",
|
||||
"emails.invitation.footer": "אם אינך מעוניין, תוכל להתעלם מהודעה זו.",
|
||||
"emails.invitation.thanks": "תודה,",
|
||||
"emails.invitation.thanks": "תודה",
|
||||
"emails.invitation.signature": "צוות {{project}}",
|
||||
"locale.country.unknown": "לא ידוע",
|
||||
"countries.af": "אפגניסטן",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "גרנדה",
|
||||
"countries.gt": "גואטמלה",
|
||||
"countries.gy": "גיאנה",
|
||||
"countries.hk": "הונג קונג",
|
||||
"countries.hn": "הונדורס",
|
||||
"countries.hr": "קרואטיה",
|
||||
"countries.ht": "האיטי",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "ניו זילנד",
|
||||
"countries.om": "עומאן",
|
||||
"countries.pk": "פקיסטן",
|
||||
"countries.ps": "פלסטין",
|
||||
"countries.pa": "פנמה",
|
||||
"countries.pe": "פרו",
|
||||
"countries.ph": "הפיליפינים",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "תוניסיה",
|
||||
"countries.tr": "טורקיה",
|
||||
"countries.tv": "טובאלו",
|
||||
"countries.tw": "טייוואן",
|
||||
"countries.tz": "טנזניה",
|
||||
"countries.ug": "אוגנדה",
|
||||
"countries.ua": "אוקראינה",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "לחץ על הכפתור למטה כדי להיכנס לחשבון {{project}} שלך באופן מאובטח. תוקף הכניסה יפוג תוך שעה.",
|
||||
"emails.magicSession.buttonText": "היכנס ל-{{project}}",
|
||||
"emails.magicSession.clientInfo": "ההתחברות הזו נעשתה באמצעות {{agentClient}} על {{agentDevice}} {{agentOs}}. אם לא ביקשת את ההתחברות הזו, באפשרותך להתעלם בבטחה מהאימייל הזה.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} הוא קוד האימות שלך ל-{{project}}.",
|
||||
"emails.magicSession.securityPhrase": "משפט הביטחון עבור הודעת הדוא\"ל הזו הוא {{phrase}}. תוכל לסמוך על הודעת הדוא\"ל הזו אם המשפט הזה תואם למשפט שהוצג בעת ההתחברות.",
|
||||
"emails.magicSession.optionUrl": "אם אינך יכול להיכנס באמצעות הכפתור למעלה, בקר בקישור הבא:",
|
||||
"emails.otpSession.subject": "התחברות למערכת {{project}}",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "משפט האבטחה למייל זה הוא {{phrase}}. אתה יכול לסמוך על המייל הזה אם המשפט הזה תואם את המשפט שהוצג במהלך הכניסה למערכת.",
|
||||
"emails.otpSession.thanks": "תודה,",
|
||||
"emails.otpSession.signature": "צוות {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s टीम",
|
||||
"emails.verification.subject": "अकाउंट वेरिफिकेशन ",
|
||||
"emails.verification.hello": "नमस्ते {{user}},",
|
||||
"emails.verification.hello": "नमस्ते {{user}}",
|
||||
"emails.verification.body": "इस लिंक के माध्यम से अपने ईमेल को सत्यापित कीजिये।",
|
||||
"emails.verification.footer": "यदि आप इस पते को सत्यापित नहीं करना चाहते हैं, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
|
||||
"emails.verification.thanks": "धन्यवाद,",
|
||||
"emails.verification.thanks": "धन्यवाद",
|
||||
"emails.verification.signature": "{{project}} टीम",
|
||||
"emails.magicSession.subject": "लॉग इन",
|
||||
"emails.magicSession.hello": "नमस्ते,",
|
||||
"emails.magicSession.body": "इस लिंक के माध्यम से लॉग-इन करें।",
|
||||
"emails.magicSession.footer": "यदि आप इस ईमेल द्वारा लॉगिन नहीं करना चाहते हैं, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
|
||||
"emails.magicSession.thanks": "धन्यवाद,",
|
||||
"emails.magicSession.thanks": "धन्यवाद",
|
||||
"emails.magicSession.signature": "{{project}} टीम",
|
||||
"emails.recovery.subject": "पासवर्ड रीसेट",
|
||||
"emails.recovery.hello": "नमस्ते {{user}},",
|
||||
"emails.recovery.hello": "नमस्ते {{user}}",
|
||||
"emails.recovery.body": "इस लिंक के माध्यम से अपना {{project}} पासवर्ड रीसेट करें।",
|
||||
"emails.recovery.footer": "यदि आप अपना पासवर्ड रीसेट नहीं करना चाहते हैं, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
|
||||
"emails.recovery.thanks": "धन्यवाद,",
|
||||
"emails.recovery.thanks": "धन्यवाद",
|
||||
"emails.recovery.signature": "{{project}} टीम",
|
||||
"emails.invitation.subject": "%s टीम का यहाँ %s पर आमंत्रण",
|
||||
"emails.invitation.hello": "नमस्ते,",
|
||||
"emails.invitation.hello": "नमस्ते",
|
||||
"emails.invitation.body": "यह मेल आपको इसलिए भेजा गया है क्योंकि {{owner}} आपको {{team}} टीम का सदस्य बनाना चाहते है, जो {{project}} से जुड़ा हुआ है।",
|
||||
"emails.invitation.footer": "यदि आप इसमें रूचि नहीं रखते, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
|
||||
"emails.invitation.thanks": "धन्यवाद,",
|
||||
"emails.invitation.thanks": "धन्यवाद",
|
||||
"emails.invitation.signature": "{{project}} टीम",
|
||||
"locale.country.unknown": "अज्ञात",
|
||||
"countries.af": "अफ़ग़ानिस्तान",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "ग्रेनाडा",
|
||||
"countries.gt": "ग्वाटेमाला",
|
||||
"countries.gy": "गयाना",
|
||||
"countries.hk": "हांग कांग",
|
||||
"countries.hn": "होंडुरस",
|
||||
"countries.hr": "क्रोएशिया",
|
||||
"countries.ht": "हैती",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "न्यूजीलैंड",
|
||||
"countries.om": "ओमान",
|
||||
"countries.pk": "पाकिस्तान",
|
||||
"countries.ps": "पैलिस्टाइन",
|
||||
"countries.pa": "पनामा",
|
||||
"countries.pe": "पेरू",
|
||||
"countries.ph": "फिलीपींस",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "ट्यूनीशिया",
|
||||
"countries.tr": "तुर्की",
|
||||
"countries.tv": "तुवालू",
|
||||
"countries.tw": "ताइवान",
|
||||
"countries.tz": "तंजानिया",
|
||||
"countries.ug": "युगांडा",
|
||||
"countries.ua": "यूक्रेन",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "नीचे दिए गए बटन पर क्लिक करके अपने {{project}} खाते में सुरक्षित रूप से साइन इन करें। यह 1 घंटे में समाप्त हो जाएगा।",
|
||||
"emails.magicSession.buttonText": "{{project}} में साइन इन करें",
|
||||
"emails.magicSession.clientInfo": "यह साइन इन {{agentClient}} का उपयोग करके {{agentDevice}} {{agentOs}} पर किया गया था। यदि आपने साइन इन का अनुरोध नहीं किया है, तो आप इस ईमेल को सुरक्षित रूप से अनदेखा कर सकते हैं।",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} आपके {{project}} सत्यापन कोड है।",
|
||||
"emails.magicSession.securityPhrase": "इस ईमेल का सुरक्षा वाक्यांश {{phrase}} है। यदि यह वाक्यांश साइन इन के दौरान दिखाए गए वाक्यांश से मेल खाता है तो आप इस ईमेल पर भरोसा कर सकते हैं।",
|
||||
"emails.magicSession.optionUrl": "यदि आप ऊपर दिए गए बटन का उपयोग करके साइन इन नहीं कर पा रहे हैं, कृपया निम्नलिखित लिंक पर जाएँ:",
|
||||
"emails.otpSession.subject": "{{project}} लॉगिन",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "इस ईमेल के लिए सुरक्षा वाक्यांश {{phrase}} है। अगर यह वाक्यांश साइन इन के दौरान दिखाए गए वाक्यांश से मेल खाता है, तो आप इस ईमेल पर भरोसा कर सकते हैं।",
|
||||
"emails.otpSession.thanks": "धन्यवाद,",
|
||||
"emails.otpSession.signature": "{{project}} टीम"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Tim",
|
||||
"emails.verification.subject": "Verifikacija računa",
|
||||
"emails.verification.hello": "Pozdrav {{user}},",
|
||||
"emails.verification.hello": "Pozdrav {{user}}",
|
||||
"emails.verification.body": "Slijedite ovu poveznicu da biste potvrdili svoju adresu e-pošte.",
|
||||
"emails.verification.footer": "Ukoliko niste zatražili potvrdu ove adrese, možete zanemariti ovu poruku.",
|
||||
"emails.verification.thanks": "Hvala,",
|
||||
"emails.verification.thanks": "Hvala",
|
||||
"emails.verification.signature": "{{project}} tim",
|
||||
"emails.magicSession.subject": "Prijavite se",
|
||||
"emails.magicSession.hello": "Pozdrav,",
|
||||
"emails.magicSession.body": "Slijedite ovu poveznicu za prijavu.",
|
||||
"emails.magicSession.footer": "Ako niste zatražili prijavu putem ove e-pošte, možete zanemariti ovu poruku.",
|
||||
"emails.magicSession.thanks": "Hvala,",
|
||||
"emails.magicSession.thanks": "Hvala",
|
||||
"emails.magicSession.signature": "{{project}} tim",
|
||||
"emails.recovery.subject": "Ponovno postavljanje lozinke",
|
||||
"emails.recovery.hello": "Pozdrav {{user}},",
|
||||
"emails.recovery.hello": "Pozdrav {{user}}",
|
||||
"emails.recovery.body": "Slijedite ovu poveznicu za ponovno postavljanje {{project}} lozinke.",
|
||||
"emails.recovery.footer": "Ako niste zatražili ponovno postavljanje Vaše lozinke, možete zanemariti ovu poruku.",
|
||||
"emails.recovery.thanks": "Hvala,",
|
||||
"emails.recovery.thanks": "Hvala",
|
||||
"emails.recovery.signature": "{{project}} tim",
|
||||
"emails.invitation.subject": "Pozivnica za %s tim na %s",
|
||||
"emails.invitation.hello": "Pozdrav,",
|
||||
"emails.invitation.hello": "Pozdrav",
|
||||
"emails.invitation.body": "Ova poruka Vam je poslana jer Vas je {{owner}} htio pozvati da postanete član {{team}} tima na {{project}}.",
|
||||
"emails.invitation.footer": "Ukoliko niste zainteresirani, možete zanemariti ovu poruku.",
|
||||
"emails.invitation.thanks": "Hvala,",
|
||||
"emails.invitation.thanks": "Hvala",
|
||||
"emails.invitation.signature": "{{project}} tim",
|
||||
"locale.country.unknown": "Nepoznato",
|
||||
"countries.af": "Afganistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Gvatemala",
|
||||
"countries.gy": "Gvajana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Hrvatska",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Novi Zeland",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Filipini",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunis",
|
||||
"countries.tr": "Turska",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Tajvan",
|
||||
"countries.tz": "Tanzanija",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukrajina",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Kliknite gumb ispod kako biste sigurno prijavili u svoj {{project}} račun. Istek će za 1 sat.",
|
||||
"emails.magicSession.buttonText": "Prijavite se u {{project}}",
|
||||
"emails.magicSession.clientInfo": "Ova se prijava zatražila koristeći {{agentClient}} na uređaju {{agentDevice}} {{agentOs}}. Ako niste zatražili prijavu, možete slobodno zanemariti ovaj e-mail.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} je vaš verifikacijski kod za {{project}}.",
|
||||
"emails.magicSession.securityPhrase": "Sigurnosna fraza za ovaj e-mail je {{phrase}}. Ovom e-mailu možete vjerovati ako se fraza podudara s frazom prikazanom tijekom prijave.",
|
||||
"emails.magicSession.optionUrl": "Ako se ne možete prijaviti koristeći gornji gumb, posjetite sljedeću poveznicu:",
|
||||
"emails.otpSession.subject": "Prijava na {{project}}",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Sigurnosna fraza za ovaj e-mail je {{phrase}}. Možete vjerovati ovom e-mailu ako se ova fraza podudara s frazom prikazanom prilikom prijave.",
|
||||
"emails.otpSession.thanks": "Hvala,",
|
||||
"emails.otpSession.signature": "tim {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Csapat",
|
||||
"emails.verification.subject": "Fiók Megerősítése",
|
||||
"emails.verification.hello": "Szia {{user}},",
|
||||
"emails.verification.hello": "Szia {{user}}",
|
||||
"emails.verification.body": "Kattints a linkre, hogy megerősítsd az email címedet.",
|
||||
"emails.verification.footer": "Ha nem te kérted a címed megerősítését, akkor nyugodtan hagyd figyelmen kívül ezt az üzenetet.",
|
||||
"emails.verification.thanks": "Köszönettel,",
|
||||
"emails.verification.thanks": "Köszönettel",
|
||||
"emails.verification.signature": "a {{project}} csapat",
|
||||
"emails.magicSession.subject": "Bejelentkezés",
|
||||
"emails.magicSession.hello": "Szia,",
|
||||
"emails.magicSession.body": "Kattints a linkre a bejelentkezéshez.",
|
||||
"emails.magicSession.footer": "Ha nem te szerettél volna bejelentkezni ezzel az email címmel, akkor nyugodtan hagyd figyelmen kívül ezt az üzenetet.",
|
||||
"emails.magicSession.thanks": "Köszönettel,",
|
||||
"emails.magicSession.thanks": "Köszönettel",
|
||||
"emails.magicSession.signature": "a {{project}} csapat",
|
||||
"emails.recovery.subject": "Jelszó Visszaállítása",
|
||||
"emails.recovery.hello": "Hahó, {{user}},",
|
||||
"emails.recovery.hello": "Hahó, {{user}}",
|
||||
"emails.recovery.body": "Kattints a linkre a {{project}} jelszavad visszaállításához.",
|
||||
"emails.recovery.footer": "Ha nem te kezdeményezted a jelszavad visszaállítását, akkor nyugodtan hagyd figyelmen kívül ezt az üzenetet.",
|
||||
"emails.recovery.thanks": "Köszönettel,",
|
||||
"emails.recovery.thanks": "Köszönettel",
|
||||
"emails.recovery.signature": "a {{project}} csapat",
|
||||
"emails.invitation.subject": "Meghívó a(z) %s csapatba, a(z) %s projektbe",
|
||||
"emails.invitation.hello": "Szia,",
|
||||
"emails.invitation.hello": "Szia",
|
||||
"emails.invitation.body": "Ezt a levelet azért kaptad, mert {{owner}} meghívott, hogy légy a {{team}} csapat tagja a {{project}} projektben.",
|
||||
"emails.invitation.footer": "Ha nem érdekel a lehetőség, nyugodtan hagyd figyelmen kívül ezt az üzenetet.",
|
||||
"emails.invitation.thanks": "Köszönettel,",
|
||||
"emails.invitation.thanks": "Köszönettel",
|
||||
"emails.invitation.signature": "a {{project}} csapat",
|
||||
"locale.country.unknown": "Ismeretlen",
|
||||
"countries.af": "Afganisztán",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Horvátország",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Új-Zéland",
|
||||
"countries.om": "Omán",
|
||||
"countries.pk": "Pakisztán",
|
||||
"countries.ps": "Palesztina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Fülöp-szigetek",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunézia",
|
||||
"countries.tr": "Törökország",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Tajvan",
|
||||
"countries.tz": "Tanzánia",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukrajna",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Kattintson az alábbi gombra, hogy biztonságosan bejelentkezzen a {{project}} fiókjába. A link 1 óra múlva lejár.",
|
||||
"emails.magicSession.buttonText": "Jelentkezzen be a {{project}} szolgáltatásba.",
|
||||
"emails.magicSession.clientInfo": "Ezt a bejelentkezést a(z) {{agentClient}} használatával kérték az Ön {{agentDevice}} {{agentOs}} eszközén. Ha Ön nem kezdeményezte ezt a bejelentkezést, nyugodtan hagyja figyelmen kívül ezt az e-mailt.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} a(z) {{project}} megerősítő kódja.",
|
||||
"emails.magicSession.securityPhrase": "Az e-mailhez tartozó biztonsági kifejezés: {{phrase}}. Megbízhat ebben az e-mailben, ha ez a kifejezés megegyezik a bejelentkezéskor megjelenített kifejezéssel.",
|
||||
"emails.magicSession.optionUrl": "Amennyiben az előző gomb használatával nem tud bejelentkezni, kérjük látogassa meg a következő linket:",
|
||||
"emails.otpSession.subject": "{{project}} Bejelentkezés",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Az e-mailhez tartozó biztonsági kód: {{phrase}}. Ennek az e-mailnek megbízhat, ha a megjelenített kód megegyezik a bejelentkezéskor megjelenő kóddal.",
|
||||
"emails.otpSession.thanks": "Köszönöm,",
|
||||
"emails.otpSession.signature": "{{project}} csapat"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "Թիմ %s",
|
||||
"emails.verification.subject": "",
|
||||
"emails.verification.hello": ",",
|
||||
"emails.verification.hello": "",
|
||||
"emails.verification.body": "",
|
||||
"emails.verification.footer": "",
|
||||
"emails.verification.thanks": ",",
|
||||
"emails.verification.thanks": "",
|
||||
"emails.verification.signature": "",
|
||||
"emails.magicSession.subject": "",
|
||||
"emails.magicSession.hello": ",",
|
||||
"emails.magicSession.hello": "",
|
||||
"emails.magicSession.body": "",
|
||||
"emails.magicSession.footer": "",
|
||||
"emails.magicSession.thanks": ",",
|
||||
"emails.magicSession.thanks": "",
|
||||
"emails.magicSession.signature": "",
|
||||
"emails.recovery.subject": "",
|
||||
"emails.recovery.hello": ",",
|
||||
"emails.recovery.hello": "",
|
||||
"emails.recovery.body": "",
|
||||
"emails.recovery.footer": "",
|
||||
"emails.recovery.thanks": ",",
|
||||
"emails.recovery.thanks": "",
|
||||
"emails.recovery.signature": "",
|
||||
"emails.invitation.subject": "",
|
||||
"emails.invitation.hello": ",",
|
||||
"emails.invitation.hello": "",
|
||||
"emails.invitation.body": "",
|
||||
"emails.invitation.footer": "",
|
||||
"emails.invitation.thanks": ",",
|
||||
"emails.invitation.thanks": "",
|
||||
"emails.invitation.signature": "",
|
||||
"locale.country.unknown": "Անհայտ",
|
||||
"countries.af": "Աֆղանստան",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Գրենադա",
|
||||
"countries.gt": "Գվատեմալա",
|
||||
"countries.gy": "Գայանա",
|
||||
"countries.hk": "Հոնգ Կոնգ",
|
||||
"countries.hn": "Գոնդուրաս",
|
||||
"countries.hr": "Խորվաթիա",
|
||||
"countries.ht": "Հաիթի",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Նոր Զելանդիա",
|
||||
"countries.om": "Օման",
|
||||
"countries.pk": "Պակիստան",
|
||||
"countries.ps": "Պաղեստին",
|
||||
"countries.pa": "Պանամա",
|
||||
"countries.pe": "Պերու",
|
||||
"countries.ph": "Ֆիլիպիններ",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Թունիս",
|
||||
"countries.tr": "Թուրքիա",
|
||||
"countries.tv": "Տուվալու",
|
||||
"countries.tw": "Թայվան",
|
||||
"countries.tz": "Տանզանիա",
|
||||
"countries.ug": "Ուգանդա",
|
||||
"countries.ua": "Ուկրաինա",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Սեղմեք ներքևի կոճակը՝ ապահով մուտք գործելու {{project}} հաշիվդ։ Այն կանցնի 1 ժամից։",
|
||||
"emails.magicSession.buttonText": "Մուտք գործեք {{project}} համար",
|
||||
"emails.magicSession.clientInfo": "Սա մուտք գործելը խնդրվել է `{{agentClient}}`-ի միջոցով {{agentDevice}} {{agentOs}}-ում: Եթե դուք չեք խնդրել մուտք գործելը, ապա կարող եք անտեղյակ մնալ այս էլփոստից:",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}}-ն ձեր {{project}} վավերացման կոդն է։",
|
||||
"emails.magicSession.securityPhrase": "Այս էլհասցեի անվտանգության արտահայտությունը {{phrase}} է: Դուք կարող եք հավատալ այս էլհասցեին, եթե այդ արտահայտությունը համընկնում է ներմուծման պրոցեսին՝ երբ դուք գրանցվել եք։",
|
||||
"emails.magicSession.optionUrl": "Եթե չեք կարող մուտք գործել վերը նշված կոճակով, այցելեք հետևյալ հղումը՝",
|
||||
"emails.otpSession.subject": "{{project}} Մուտք",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Այս էլ.փոստի անվտանգության արտահայտությունը {{phrase}} է: Կարող եք վստահել այս էլ.փոստին, եթե այս արտահայտությունը համընկնում է մուտք գործելու պահին տրված արտահայտության հետ։",
|
||||
"emails.otpSession.thanks": "Շնորհակալ եմ,",
|
||||
"emails.otpSession.signature": "{{project}} թիմ"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "Tim %s",
|
||||
"emails.verification.subject": "Verifikasi Akun",
|
||||
"emails.verification.hello": "Hai {{user}},",
|
||||
"emails.verification.hello": "Hai {{user}}",
|
||||
"emails.verification.body": "Ikuti tautan ini untuk memverifikasi alamat email Anda.",
|
||||
"emails.verification.footer": "Jika Anda tidak meminta untuk memverifikasi alamat email ini, Anda dapat mengabaikan pesan ini.",
|
||||
"emails.verification.thanks": "Terima kasih,",
|
||||
"emails.verification.thanks": "Terima kasih",
|
||||
"emails.verification.signature": "Tim {{project}}",
|
||||
"emails.magicSession.subject": "Masuk",
|
||||
"emails.magicSession.hello": "Hai,",
|
||||
"emails.magicSession.body": "Ikuti tautan ini untuk masuk.",
|
||||
"emails.magicSession.footer": "Jika Anda tidak meminta untuk masuk menggunakan email ini, Anda dapat mengabaikan pesan ini.",
|
||||
"emails.magicSession.thanks": "Terima kasih,",
|
||||
"emails.magicSession.thanks": "Terima kasih",
|
||||
"emails.magicSession.signature": "Tim {{project}}",
|
||||
"emails.recovery.subject": "Atur Ulang Kata Sandi",
|
||||
"emails.recovery.hello": "Halo {{user}},",
|
||||
"emails.recovery.hello": "Halo {{user}}",
|
||||
"emails.recovery.body": "Ikuti tautan ini untuk menyetel ulang kata sandi {{project}} Anda.",
|
||||
"emails.recovery.footer": "Jika Anda tidak meminta untuk menyetel ulang kata sandi, Anda dapat mengabaikan pesan ini.",
|
||||
"emails.recovery.thanks": "Terima kasih,",
|
||||
"emails.recovery.thanks": "Terima kasih",
|
||||
"emails.recovery.signature": "Tim {{project}}",
|
||||
"emails.invitation.subject": "Undangan ke Tim %s di %s",
|
||||
"emails.invitation.hello": "Halo,",
|
||||
"emails.invitation.hello": "Halo",
|
||||
"emails.invitation.body": "Email ini dikirimkan kepada Anda karena {{owner}} ingin mengundang Anda untuk menjadi anggota tim {{team}} di {{project}}.",
|
||||
"emails.invitation.footer": "Jika Anda tidak tertarik, Anda dapat mengabaikan pesan ini.",
|
||||
"emails.invitation.thanks": "Terima kasih,",
|
||||
"emails.invitation.thanks": "Terima kasih",
|
||||
"emails.invitation.signature": "Tim {{project}}",
|
||||
"locale.country.unknown": "Tidak diketahui",
|
||||
"countries.af": "Afganistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroasia",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Selandia Baru",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Filipina",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunisia",
|
||||
"countries.tr": "Turki",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taiwan",
|
||||
"countries.tz": "Tanzania",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraina",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Klik tombol di bawah ini untuk masuk ke akun {{project}} Anda dengan aman. Ini akan kedaluwarsa dalam 1 jam.",
|
||||
"emails.magicSession.buttonText": "Masuk ke {{project}}",
|
||||
"emails.magicSession.clientInfo": "Tanda masuk ini diminta menggunakan {{agentClient}} di {{agentDevice}} {{agentOs}}. Jika Anda tidak meminta untuk masuk, Anda dapat mengabaikan email ini dengan aman.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} adalah kode verifikasi {{project}} Anda.",
|
||||
"emails.magicSession.securityPhrase": "Frasa keamanan untuk email ini adalah {{phrase}}. Anda dapat mempercayai email ini jika frasa tersebut cocok dengan frasa yang ditampilkan saat masuk.",
|
||||
"emails.magicSession.optionUrl": "Jika Anda tidak dapat masuk menggunakan tombol di atas, silakan kunjungi tautan berikut:",
|
||||
"emails.otpSession.subject": "Login {{project}}",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Frasa keamanan untuk email ini adalah {{phrase}}. Anda dapat mempercayai email ini jika frasa tersebut cocok dengan frasa yang ditampilkan saat masuk.",
|
||||
"emails.otpSession.thanks": "Terima kasih,",
|
||||
"emails.otpSession.signature": "tim {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Teymi",
|
||||
"emails.verification.subject": "",
|
||||
"emails.verification.hello": ",",
|
||||
"emails.verification.hello": "",
|
||||
"emails.verification.body": "",
|
||||
"emails.verification.footer": "",
|
||||
"emails.verification.thanks": ",",
|
||||
"emails.verification.thanks": "",
|
||||
"emails.verification.signature": "",
|
||||
"emails.magicSession.subject": "",
|
||||
"emails.magicSession.hello": ",",
|
||||
"emails.magicSession.hello": "",
|
||||
"emails.magicSession.body": "",
|
||||
"emails.magicSession.footer": "",
|
||||
"emails.magicSession.thanks": ",",
|
||||
"emails.magicSession.thanks": "",
|
||||
"emails.magicSession.signature": "",
|
||||
"emails.recovery.subject": "",
|
||||
"emails.recovery.hello": ",",
|
||||
"emails.recovery.hello": "",
|
||||
"emails.recovery.body": "",
|
||||
"emails.recovery.footer": "",
|
||||
"emails.recovery.thanks": ",",
|
||||
"emails.recovery.thanks": "",
|
||||
"emails.recovery.signature": "",
|
||||
"emails.invitation.subject": "",
|
||||
"emails.invitation.hello": ",",
|
||||
"emails.invitation.hello": "",
|
||||
"emails.invitation.body": "",
|
||||
"emails.invitation.footer": "",
|
||||
"emails.invitation.thanks": ",",
|
||||
"emails.invitation.thanks": "",
|
||||
"emails.invitation.signature": "",
|
||||
"locale.country.unknown": "Óþekktur",
|
||||
"countries.af": "Afganistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Gvatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Hondúras",
|
||||
"countries.hr": "Króatía",
|
||||
"countries.ht": "Haítí",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Nýja Sjáland",
|
||||
"countries.om": "Óman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestína",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Perú",
|
||||
"countries.ph": "Filippseyjar",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Túnis",
|
||||
"countries.tr": "Tyrkland",
|
||||
"countries.tv": "Túvalú",
|
||||
"countries.tw": "Taívan",
|
||||
"countries.tz": "Tansanía",
|
||||
"countries.ug": "Úganda",
|
||||
"countries.ua": "Úkraína",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Smelltu á hnappinn hér fyrir neðan til að skrá þig örugglega inn á {{project}} reikninginn þinn. Hann rennur út eftir 1 klukkustund.",
|
||||
"emails.magicSession.buttonText": "Skráðu þig inn á {{project}}",
|
||||
"emails.magicSession.clientInfo": "Þessi innskráning var óskað eftir með {{agentClient}} á {{agentDevice}} {{agentOs}}. Ef þú baðst ekki um innskráninguna geturðu hundsað þennan tölvupóst örugglega.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} er staðfestingarkóði {{project}} þíns.",
|
||||
"emails.magicSession.securityPhrase": "Öryggisfrasi fyrir þetta tölvupóst er {{phrase}}. Þú getur treyst þessum tölvupósti ef þessi frasi passar við frasann sem birtist við innskráningu.",
|
||||
"emails.magicSession.optionUrl": "Ef þú getur ekki skráð þig inn með hnappnum hér að ofan, vinsamlegast heimsækðu eftirfarandi tengil:",
|
||||
"emails.otpSession.subject": "{{project}} Innskráning",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Öryggissetning fyrir þetta tölvupóst er {{phrase}}. Þú getur treyst þessum tölvupósti ef þessi setning passar við setninguna sem birtist við innskráningu.",
|
||||
"emails.otpSession.thanks": "Takk,",
|
||||
"emails.otpSession.signature": "{{project}} liðið"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "Team %s",
|
||||
"emails.verification.subject": "Verifica account",
|
||||
"emails.verification.hello": "Ciao {{user}},",
|
||||
"emails.verification.hello": "Ciao {{user}}",
|
||||
"emails.verification.body": "Clicca questo link per verificare il tuo indirizzo email.",
|
||||
"emails.verification.footer": "Se non hai richiesto la verifica dell’indirizzo email, puoi ignorare questo messaggio.",
|
||||
"emails.verification.thanks": "Grazie,",
|
||||
"emails.verification.thanks": "Grazie",
|
||||
"emails.verification.signature": "Il team {{project}}",
|
||||
"emails.magicSession.subject": "Login",
|
||||
"emails.magicSession.hello": "Ciao,",
|
||||
"emails.magicSession.body": "Clicca questo link per accedere.",
|
||||
"emails.magicSession.footer": "Se non hai richiesto di effettuare l’accesso, puoi ignorare questo messaggio.",
|
||||
"emails.magicSession.thanks": "Grazie,",
|
||||
"emails.magicSession.thanks": "Grazie",
|
||||
"emails.magicSession.signature": "Il team {{project}}",
|
||||
"emails.recovery.subject": "Reimpostazione password",
|
||||
"emails.recovery.hello": "Ciao {{user}},",
|
||||
"emails.recovery.hello": "Ciao {{user}}",
|
||||
"emails.recovery.body": "Clicca questo link per reimpostare la tua password di {{project}}.",
|
||||
"emails.recovery.footer": "Se non hai richiesto la reimpostazione della password, puoi ignorare questo messaggio.",
|
||||
"emails.recovery.thanks": "Grazie,",
|
||||
"emails.recovery.thanks": "Grazie",
|
||||
"emails.recovery.signature": "Il team {{project}}",
|
||||
"emails.invitation.subject": "Invito al Team %s per %s",
|
||||
"emails.invitation.hello": "Ciao,",
|
||||
"emails.invitation.hello": "Ciao",
|
||||
"emails.invitation.body": "Hai ricevuto questa email perché {{owner}} ti ha invitato a diventare un membro del team {{team}} di {{project}}.",
|
||||
"emails.invitation.footer": "Ignora questo messaggio se non sei interessatə.",
|
||||
"emails.invitation.thanks": "Grazie,",
|
||||
"emails.invitation.thanks": "Grazie",
|
||||
"emails.invitation.signature": "Il team {{project}}",
|
||||
"locale.country.unknown": "Sconosciuto",
|
||||
"countries.af": "Afghanistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croazia",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Nuova Zelanda",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Perù",
|
||||
"countries.ph": "Filippine",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunisia",
|
||||
"countries.tr": "Turchia",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taiwan",
|
||||
"countries.tz": "Tanzania",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ucraina",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Fai clic sul pulsante qui sotto per accedere in modo sicuro al tuo account {{project}}. Scadrà tra 1 ora.",
|
||||
"emails.magicSession.buttonText": "Accedi a {{project}}",
|
||||
"emails.magicSession.clientInfo": "Questo accesso è stato richiesto utilizzando {{agentClient}} su {{agentDevice}} {{agentOs}}. Se non hai richiesto l'accesso, puoi tranquillamente ignorare questa email.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} è il tuo codice di verifica per {{project}}.",
|
||||
"emails.magicSession.securityPhrase": "La frase di sicurezza per questa email è {{phrase}}. Puoi fidarti di questa email se questa frase corrisponde alla frase mostrata durante l'accesso.",
|
||||
"emails.magicSession.optionUrl": "Se non riesci ad accedere utilizzando il pulsante qui sopra, ti preghiamo di visitare il seguente link:",
|
||||
"emails.otpSession.subject": "Accesso a {{project}}",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "La frase di sicurezza per questa email è {{phrase}}. Puoi fidarti di questa email se questa frase corrisponde alla frase mostrata durante l'accesso.",
|
||||
"emails.otpSession.thanks": "Grazie,",
|
||||
"emails.otpSession.signature": "team {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s チーム",
|
||||
"emails.verification.subject": "アカウント認証",
|
||||
"emails.verification.hello": "こんにちは{{user}}さん、",
|
||||
"emails.verification.hello": "こんにちは{{user}}さん",
|
||||
"emails.verification.body": "メールアドレスを有効化するためには下記リンクをクリックして下さい。",
|
||||
"emails.verification.footer": "このメールに心当たりが無い場合は破棄をお願いいたします。",
|
||||
"emails.verification.thanks": "ご利用いただきありがとうございます。、",
|
||||
"emails.verification.thanks": "ご利用いただきありがとうございます。",
|
||||
"emails.verification.signature": "{{project}}チーム",
|
||||
"emails.magicSession.subject": "ログイン",
|
||||
"emails.magicSession.hello": "こんにちは、",
|
||||
"emails.magicSession.hello": "こんにちは",
|
||||
"emails.magicSession.body": "ログインするためには下記リンクをクリックしてください。",
|
||||
"emails.magicSession.footer": "このメールに心当たりが無い場合は破棄をお願いいたします。",
|
||||
"emails.magicSession.thanks": "ご利用いただきありがとうございます。、",
|
||||
"emails.magicSession.thanks": "ご利用いただきありがとうございます。",
|
||||
"emails.magicSession.signature": "{{project}}チーム",
|
||||
"emails.recovery.subject": "パスワードリセット",
|
||||
"emails.recovery.hello": "こんにちは{{user}}さん、",
|
||||
"emails.recovery.hello": "こんにちは{{user}}さん",
|
||||
"emails.recovery.body": "パスワードをリセットするためには下記リンクをクリックしてください。",
|
||||
"emails.recovery.footer": "このメールに心当たりが無い場合は破棄をお願いいたします。",
|
||||
"emails.recovery.thanks": "ご利用いただきありがとうございます。、",
|
||||
"emails.recovery.thanks": "ご利用いただきありがとうございます。",
|
||||
"emails.recovery.signature": "{{project}}チーム",
|
||||
"emails.invitation.subject": "%sチームへの招待が%sから来ました。",
|
||||
"emails.invitation.hello": "こんにちは、",
|
||||
"emails.invitation.hello": "こんにちは",
|
||||
"emails.invitation.body": "{{owner}}さんが{{project}}の{{team}}チームにあなたを招待しています。",
|
||||
"emails.invitation.footer": "このメールに心当たりが無い場合は破棄をお願いいたします。",
|
||||
"emails.invitation.thanks": "ご利用いただきありがとうございます。、",
|
||||
"emails.invitation.thanks": "ご利用いただきありがとうございます。",
|
||||
"emails.invitation.signature": "{{project}}チーム",
|
||||
"locale.country.unknown": "不明",
|
||||
"countries.af": "アフガニスタン",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "グレナダ",
|
||||
"countries.gt": "グアテマラ",
|
||||
"countries.gy": "ガイアナ",
|
||||
"countries.hk": "香港",
|
||||
"countries.hn": "ホンジュラス",
|
||||
"countries.hr": "クロアチア",
|
||||
"countries.ht": "ハイチ",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "ニュージーランド",
|
||||
"countries.om": "オマーン",
|
||||
"countries.pk": "パキスタン",
|
||||
"countries.ps": "パレスチナ",
|
||||
"countries.pa": "パナマ",
|
||||
"countries.pe": "ペルー",
|
||||
"countries.ph": "フィリピン",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "チュニジア",
|
||||
"countries.tr": "トルコ",
|
||||
"countries.tv": "ツバル",
|
||||
"countries.tw": "台湾",
|
||||
"countries.tz": "タンザニア",
|
||||
"countries.ug": "ウガンダ",
|
||||
"countries.ua": "ウクライナ",
|
||||
@@ -235,14 +232,14 @@
|
||||
"emails.magicSession.optionButton": "以下のボタンをクリックして、安全に{{project}}アカウントにサインインしてください。有効期限は1時間です。",
|
||||
"emails.magicSession.buttonText": "{{project}} にサインイン",
|
||||
"emails.magicSession.clientInfo": "このサインインは{{agentClient}}を使用して{{agentDevice}} {{agentOs}}で要求されました。サインインを要求していない場合は、このメールを安全に無視してください。",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} はあなたの {{project}} 認証コードです。",
|
||||
"emails.magicSession.securityPhrase": "このメールのセキュリティフレーズは{{phrase}}です。サインイン時に表示されたフレーズと一致する場合、このメールは信頼できます。",
|
||||
"emails.magicSession.optionUrl": "上記のボタンを使用してサインインすることができない場合は、次のリンクにアクセスしてください:",
|
||||
"emails.otpSession.subject": "プロジェクト ログイン",
|
||||
"emails.otpSession.hello": "こんにちは。、",
|
||||
"emails.otpSession.hello": "こんにちは。",
|
||||
"emails.otpSession.description": "以下の確認コードを入力して、{{project}}アカウントに安全にサインインしてください。このコードは15分後に失効します。",
|
||||
"emails.otpSession.clientInfo": "このサインインは、{{agentClient}} を使い {{agentDevice}} {{agentOs}} で要求されました。サインインを要求していない場合、このメールを無視しても安全です。",
|
||||
"emails.otpSession.securityPhrase": "このメールのセキュリティフレーズは{{phrase}}です。サインイン時に表示されたフレーズと一致する場合、このメールを信頼できます。",
|
||||
"emails.otpSession.thanks": "ありがとうございます。、",
|
||||
"emails.otpSession.thanks": "ありがとうございます。",
|
||||
"emails.otpSession.signature": "{{project}} チーム"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "Tim %s",
|
||||
"emails.verification.subject": "Verifikasi Akun",
|
||||
"emails.verification.hello": "Hai {{user}},",
|
||||
"emails.verification.hello": "Hai {{user}}",
|
||||
"emails.verification.body": "Klik link iki kanggo verifikasi alamat email sampeyan.",
|
||||
"emails.verification.footer": "Yen sampeyan ora njaluk verifikasi alamat iki, sampeyan iso nglirwakake pesen iki.",
|
||||
"emails.verification.thanks": "Matur nuwun,",
|
||||
"emails.verification.thanks": "Matur nuwun",
|
||||
"emails.verification.signature": "Tim {{project}}",
|
||||
"emails.magicSession.subject": "Masuk",
|
||||
"emails.magicSession.hello": "Hai,",
|
||||
"emails.magicSession.body": "Klik link iki kanggo masuk.",
|
||||
"emails.magicSession.footer": "Yen sampeyan ora njaluk masuk nggunakake alamat email iki, sampeyan iso nglirwakake pesen iki.",
|
||||
"emails.magicSession.thanks": "Matur nuwun,",
|
||||
"emails.magicSession.thanks": "Matur nuwun",
|
||||
"emails.magicSession.signature": "Tim {{project}}",
|
||||
"emails.recovery.subject": "Setel ulang sandi",
|
||||
"emails.recovery.hello": "Halo {{user}},",
|
||||
"emails.recovery.hello": "Halo {{user}}",
|
||||
"emails.recovery.body": "Klik link iki kanggo setel ulang sandi {{project}}.",
|
||||
"emails.recovery.footer": "Yen sampeyan ora njaluk setel ulang sandi, sampeyan iso nglirwakake pesen iki.",
|
||||
"emails.recovery.thanks": "Matur nuwun,",
|
||||
"emails.recovery.thanks": "Matur nuwun",
|
||||
"emails.recovery.signature": "Tim {{project}}",
|
||||
"emails.invitation.subject": "Undangan ke Tim %s di %s",
|
||||
"emails.invitation.hello": "Halo,",
|
||||
"emails.invitation.hello": "Halo",
|
||||
"emails.invitation.body": "Email iki dikirim menyang sampeyan amarga {{owner}} pengin ngajak sampeyan dadi anggota tim {{team}} di {{project}}.",
|
||||
"emails.invitation.footer": "Yen sampeyan ora tertarik, sampeyan iso nglirwakake pesen iki.",
|
||||
"emails.invitation.thanks": "Matur nuwun,",
|
||||
"emails.invitation.thanks": "Matur nuwun",
|
||||
"emails.invitation.signature": "Tim {{project}}",
|
||||
"locale.country.unknown": "Ora dingerteni",
|
||||
"countries.af": "Afghanistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croatia",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Selandia Anyar",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Filipina",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunisia",
|
||||
"countries.tr": "Turki",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taiwan",
|
||||
"countries.tz": "Tanzania",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraina",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Klik tombol ing ngisor iki kanggo mlebu kanthi aman ing akun {{project}} panjenengan. Bakal kadaluwarsa sajroning 1 jam.",
|
||||
"emails.magicSession.buttonText": "Mlebu ing {{project}}",
|
||||
"emails.magicSession.clientInfo": "Penandatanganan iki dijaluk nganggo {{agentClient}} ing {{agentDevice}} {{agentOs}}. Yen panjenengan ora njaluk penandatanganan, panjenengan bisa ngabaikan email iki kanthi aman.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} iku kode verifikasi {{project}} panjenengan.",
|
||||
"emails.magicSession.securityPhrase": "Frasa keamanan kanggo email iki yaiku {{phrase}}. Sampeyan bisa percaya marang email iki yen frasa iki cocog karo frasa sing ditampilake nalika mlebu.",
|
||||
"emails.magicSession.optionUrl": "Yen sampeyan ora bisa mlebu nganggo tombol ing ndhuwur, monggo ngunjungi pranala ing ngisor iki:",
|
||||
"emails.otpSession.subject": "{{project}} Mlebu",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Tembung keamanan kanggo email iki yaiku {{phrase}}. Sampeyan bisa percaya email iki menawa tembung kasebut cocog karo tembung sing ditampilake nalika mlebu.",
|
||||
"emails.otpSession.thanks": "Matur nuwun,",
|
||||
"emails.otpSession.signature": "tim {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "ហ្គ្រេណាដា",
|
||||
"countries.gt": "ហ្គាតេម៉ាឡា",
|
||||
"countries.gy": "ហ្គីយ៉ាណា",
|
||||
"countries.hk": "ហុងកុង",
|
||||
"countries.hn": "ហុងឌូរ៉ាស",
|
||||
"countries.hr": "ក្រូអាត",
|
||||
"countries.ht": "ហៃទី",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "នូវែលសេឡង់",
|
||||
"countries.om": "អូម៉ង់",
|
||||
"countries.pk": "ប៉ាគីស្ថាន",
|
||||
"countries.ps": "ប៉ាលេស្ទីន",
|
||||
"countries.pa": "ប៉ាណាម៉ា",
|
||||
"countries.pe": "ប៉េរូ",
|
||||
"countries.ph": "ហ្វីលីពីន",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "ទុយនីស៊ី",
|
||||
"countries.tr": "តួកគី",
|
||||
"countries.tv": "តូវលូ",
|
||||
"countries.tw": "តៃវ៉ាន់",
|
||||
"countries.tz": "តង់ហ្សានី",
|
||||
"countries.ug": "អ៊ូហ្គង់ដា",
|
||||
"countries.ua": "អ៊ុយក្រែន",
|
||||
@@ -235,14 +232,14 @@
|
||||
"emails.magicSession.optionButton": "ចុចប៊ូតុងខាងក្រោមដើម្បីចូលប្រើគណនី {{project}} របស់អ្នកដោយសុវត្ថិភាព។ វានឹងផុតកំណត់ក្នុងរយៈពេល 1 ម៉ោង។",
|
||||
"emails.magicSession.buttonText": "ចូលទៅកាន់ {{project}}",
|
||||
"emails.magicSession.clientInfo": "ការចូលប្រើនេះត្រូវបានស្នើរអោយប្រើ {{agentClient}} នៅលើ {{agentDevice}} {{agentOs}}។ ប្រសិនបើអ្នកមិនបានស្នើរការចូលប្រើនេះ អ្នកអាចមិនអើពើនឹងអ៊ីម៉ែលនេះបាន។",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} ជាលេខកូដផ្ទៀងផ្ទាត់សម្រាប់{{project}}របស់អ្នក។",
|
||||
"emails.magicSession.securityPhrase": "ឃ្លាសម្ងាត់សម្រាប់អ៊ីមែលនេះគឺ {{phrase}}។ អ្នកអាចទុកចិត្តលើអ៊ីមែលនេះប្រសិនបើឃ្លានេះត្រូវគ្នាជាមួយឃ្លាដែលបង្ហាញឡើងពេលចូលប្រើ។",
|
||||
"emails.magicSession.optionUrl": "ប្រសិនបើអ្នកមិនអាចចូលប្រើប្រាស់ដោយប្រើប៊ូតុងខាងលើនេះទេ សូមចូលទៅកាន់តំណភ្ជាប់ខាងក្រោម៖",
|
||||
"emails.otpSession.subject": "ការចូល {{project}}",
|
||||
"emails.otpSession.hello": "ជំរាបសួរ",
|
||||
"emails.otpSession.hello": "ជំរាបសួរ,",
|
||||
"emails.otpSession.description": "បញ្ចូលលេខកូដផ្ទៀងផ្ទាត់ខាងក្រោមនេះនៅពេលដែលបានស្នើ ដើម្បីចូលទៅកាន់គណនី {{project}} របស់អ្នកដោយមានសុវត្ថិភាព។ វានឹងផុតកំណត់ក្នុងរយៈពេល 15 នាទី។",
|
||||
"emails.otpSession.clientInfo": "ការចូលប្រព័ន្ធនេះត្រូវបានស្នើរបស់អ្នកប្រើប្រាស់តាមរយៈ {{agentClient}} នៅលើ {{agentDevice}} {{agentOs}}។ ប្រសិនបើអ្នកមិនបានស្នើរការចូលប្រព័ន្ធនេះទេ អ្នកអាចមិនអើពើអ៊ីម៉ែលនេះបាន។",
|
||||
"emails.otpSession.securityPhrase": "ឃ្លាសម្រាប់សុវត្ថិភាពអ៊ីមែលនេះគឺ {{phrase}}។ អ្នកអាចទុកចិត្តនូវអ៊ីមែលនេះប្រសិនបើឃ្លានេះត្រូវគ្នាជាមួយឃ្លាដែលបានបង្ហាញពេលចូលគណនី។",
|
||||
"emails.otpSession.thanks": "អរគុណ",
|
||||
"emails.otpSession.thanks": "អរគុណ,",
|
||||
"emails.otpSession.signature": "ក្រុម {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s ತಂಡ",
|
||||
"emails.verification.subject": "ಖಾತೆ ಪರಿಶೀಲನೆ",
|
||||
"emails.verification.hello": "ನಮಸ್ಕಾರ {{user}},",
|
||||
"emails.verification.hello": "ನಮಸ್ಕಾರ {{user}}",
|
||||
"emails.verification.body": "ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸ ಪರಿಶೀಲನೆಗೆ ಈ ಲಿಂಕನ್ನು ಅನುಸರಿಸಿ",
|
||||
"emails.verification.footer": "ನೀವು ಇಮೇಲ್ ವಿಳಾಸ ಪರಿಶೀಲನೆಗೆ ಕೇಳದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ",
|
||||
"emails.verification.thanks": "ಧನ್ಯವಾದಗಳು,",
|
||||
"emails.verification.thanks": "ಧನ್ಯವಾದಗಳು",
|
||||
"emails.verification.signature": "{{project}} ತಂಡ",
|
||||
"emails.magicSession.subject": "ಲಾಗಿನ್",
|
||||
"emails.magicSession.hello": "ನಮಸ್ಕಾರ,",
|
||||
"emails.magicSession.body": "ಲಾಗಿನ್ ಮಾಡಲಿಕ್ಕೆ ಈ ಲಿಂಕನ್ನು ಅನುಸರಿಸಿ",
|
||||
"emails.magicSession.footer": "ನೀವು ಈ ಇಮೇಲನಿಂದ ಲಾಗಿನ್ ಮಾಡಲು ಕೇಳದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ",
|
||||
"emails.magicSession.thanks": "ಧನ್ಯವಾದಗಳು,",
|
||||
"emails.magicSession.thanks": "ಧನ್ಯವಾದಗಳು",
|
||||
"emails.magicSession.signature": "{{project}} ತಂಡ",
|
||||
"emails.recovery.subject": "ಗುಪ್ತಪದ ಮರುಹೊಂದಿಸಿ",
|
||||
"emails.recovery.hello": "ನಮಸ್ಕಾರ {{user}},",
|
||||
"emails.recovery.hello": "ನಮಸ್ಕಾರ {{user}}",
|
||||
"emails.recovery.body": "ನಿಮ್ಮ {{project}} ಗುಪ್ತಪದವನ್ನು ಮರುಹೊಂದಿಸಲು ಈ ಲಿಂಕನ್ನು ಅನುಸರಿಸಿ",
|
||||
"emails.recovery.footer": "ನೀವು ಗುಪ್ತಪದವನ್ನು ಮರುಹೊಂದಿಸಲು ಕೇಳದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ",
|
||||
"emails.recovery.thanks": "ಧನ್ಯವಾದಗಳು,",
|
||||
"emails.recovery.thanks": "ಧನ್ಯವಾದಗಳು",
|
||||
"emails.recovery.signature": "{{project}} ತಂಡ",
|
||||
"emails.invitation.subject": "%s ತಂಡಕ್ಕೆ %s ರಲ್ಲಿ ಆಹ್ವಾನ",
|
||||
"emails.invitation.hello": "ನಮಸ್ಕಾರ,",
|
||||
"emails.invitation.hello": "ನಮಸ್ಕಾರ",
|
||||
"emails.invitation.body": "ಈ ಇಮೇಲ್ ನಿಮಗೆ ಬಂದಿದೆ ಏಕೆಂದರೆ {{owner}} ನಿಮ್ಮನ್ನು {{team}} ತಂಡದ {{project}}ರಲ್ಲಿ ಸದಸ್ಯ ಆಗಲಿಕ್ಕೆ ಆಹ್ವಾನಿಸಿದ್ದಾರೆ",
|
||||
"emails.invitation.footer": "ನಿಮಗೆ ಆಸಕ್ತಿಯಿಲ್ಲದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ",
|
||||
"emails.invitation.thanks": "ಧನ್ಯವಾದಗಳು,",
|
||||
"emails.invitation.thanks": "ಧನ್ಯವಾದಗಳು",
|
||||
"emails.invitation.signature": "{{project}} ತಂಡ",
|
||||
"locale.country.unknown": "Unknown",
|
||||
"countries.af": "ಅಫ್ಘಾನಿಸ್ತಾನ",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "ಗ್ರೆನಡಾ",
|
||||
"countries.gt": "ಗ್ವಾಟೆಮಾಲಾ",
|
||||
"countries.gy": "ಗಯಾನಾ",
|
||||
"countries.hk": "ಹಾಂಗ್ ಕಾಂಗ್",
|
||||
"countries.hn": "ಹೊಂಡುರಾಸ್",
|
||||
"countries.hr": "ಕ್ರೊಯೇಷಿಯಾ",
|
||||
"countries.ht": "ಹೈಟಿ",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್",
|
||||
"countries.om": "ಓಮನ್",
|
||||
"countries.pk": "ಪಾಕಿಸ್ತಾನ",
|
||||
"countries.ps": "ಪ್ಯಾಲೇಸ್ಟೈನ್",
|
||||
"countries.pa": "ಪನಾಮ",
|
||||
"countries.pe": "ಪೆರು",
|
||||
"countries.ph": "ಫಿಲಿಪೈನ್ಸ್",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "ಟುನೀಶಿಯಾ",
|
||||
"countries.tr": "ಟರ್ಕಿ",
|
||||
"countries.tv": "ತುವಾಲು",
|
||||
"countries.tw": "ತೈವಾನ್",
|
||||
"countries.tz": "ಟಾಂಜಾನಿಯಾ",
|
||||
"countries.ug": "ಉಗಾಂಡಾ",
|
||||
"countries.ua": "ಉಕ್ರೇನ್",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "ಕೆಳಗಿನ ಬಟನ್ ಒತ್ತಿ ನಿಮ್ಮ {{project}} ಖಾತೆಗೆ ಸುರಕ್ಷಿತವಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡಿ. ಇದು 1 ಗಂಟೆಯಲ್ಲಿ ಅವಧಿ ಮುಗಿಯುತ್ತದೆ.",
|
||||
"emails.magicSession.buttonText": "ಸೈನ್ ಇನ್ ಮಾಡಿ {{project}}",
|
||||
"emails.magicSession.clientInfo": "ಈ ಸೈನ್ ಇನ್ ಅನ್ನು {{agentClient}} ಬಳಸಿ {{agentDevice}} {{agentOs}} ಮೂಲಕ ಕೋರಲಾಗಿದೆ. ನೀವು ಸೈನ್ ಇನ್ ಅನ್ನು ಕೋರಿಲ್ಲದಿದ್ದರೆ, ನೀವು ಈ ಇಮೇಲ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ನಿರ್ಲಕ್ಷಿಸಬಹುದು.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} ನಿಮ್ಮ {{project}} ಪರಿಶೀಲನಾ ಸಂಕೇತವಾಗಿದೆ.",
|
||||
"emails.magicSession.securityPhrase": "ಈ ಇಮೇಲ್ಗಾಗಿ ಭದ್ರತಾ ಪದ ಇದೆ {{phrase}}. ಸೈನ್ ಇನ್ ಮಾಡುವಾಗ ತೋರಿದ ಪದವು ಈ ಪದವು ಹೊಂದಿಕೆಯಾಗಿದ್ದರೆ ನೀವು ಈ ಇಮೇಲ್ಅನ್ನು ನಂಬಬಹುದು.",
|
||||
"emails.magicSession.optionUrl": "ಮೇಲಿನ ಬಟನ್ ಬಳಸಿ ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಲು ಅಸಮರ್ಥರಾಗಿದ್ದರೆ, ದಯವಿಟ್ಟು ಈ ಕೆಳಗಿನ ಲಿಂಕ್ ಭೇಟಿಯನ್ನು ಕೊಡಿ:",
|
||||
"emails.otpSession.subject": "{{project}} ಲಾಗಿನ್",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "ಈ ಇಮೇಲ್ಗೆ ಭದ್ರತಾ ಪದವು {{phrase}}. ನೀವು ಸೈನ್ ಇನ್ ಮಾಡುವಾಗ ತೋರಿಸಿದ ಪದವು ಇದರೊಂದಿಗೆ ಹೊಂದಿಕೊಂಡರೆ ಈ ಇಮೇಲನ್ನು ನೀವು ನಂಬಬಹುದು.",
|
||||
"emails.otpSession.thanks": "ಧನ್ಯವಾದಗಳು,",
|
||||
"emails.otpSession.signature": "ಪ್ರಾಜೆಕ್ಟ್ ತಂಡ"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s 팀",
|
||||
"emails.verification.subject": "계정 인증",
|
||||
"emails.verification.hello": "안녕하세요 {{user}}님、",
|
||||
"emails.verification.hello": "안녕하세요 {{user}}님",
|
||||
"emails.verification.body": "이메일 인증을 위해 링크를 클릭하여주세요.",
|
||||
"emails.verification.footer": "이메일 인증을 부탁하지 않으셨다면 이 메시지를 무시하여주세요.",
|
||||
"emails.verification.thanks": "감사합니다、",
|
||||
"emails.verification.thanks": "감사합니다",
|
||||
"emails.verification.signature": "{{project}} 팀",
|
||||
"emails.magicSession.subject": "로그인",
|
||||
"emails.magicSession.hello": "안녕하세요、",
|
||||
"emails.magicSession.hello": "안녕하세요,",
|
||||
"emails.magicSession.body": "로그인 하시려면 링크를 클릭하여주세요.",
|
||||
"emails.magicSession.footer": "이 이메일 계정으로 로그인 신청을 하지 않으셨다면 이 메세지를 무시하여주세요.",
|
||||
"emails.magicSession.thanks": "감사합니다、",
|
||||
"emails.magicSession.thanks": "감사합니다",
|
||||
"emails.magicSession.signature": "{{project}} 팀",
|
||||
"emails.recovery.subject": "비밀번호 재설정",
|
||||
"emails.recovery.hello": "안녕하세요 {{user}}님、",
|
||||
"emails.recovery.hello": "안녕하세요 {{user}}님",
|
||||
"emails.recovery.body": "{{project}}의 비밀번호 재설정을 위해 링크를 클릭하여주세요.",
|
||||
"emails.recovery.footer": "비밀번호 재설정 신청을 하지 않으셨다면 이 메세지를 무시하여주세요.",
|
||||
"emails.recovery.thanks": "감사합니다、",
|
||||
"emails.recovery.thanks": "감사합니다",
|
||||
"emails.recovery.signature": "{{project}} 팀",
|
||||
"emails.invitation.subject": "초대장 %s 팀 - %s",
|
||||
"emails.invitation.hello": "안녕하세요、",
|
||||
"emails.invitation.hello": "안녕하세요",
|
||||
"emails.invitation.body": "{{owner}}님이 귀하를 {{project}}의 {{team}} 팀으로 초대합니다.",
|
||||
"emails.invitation.footer": "팀에 합류할 의사가 없으시면 이 메세지를 무시하여주세요.",
|
||||
"emails.invitation.thanks": "감사합니다、",
|
||||
"emails.invitation.thanks": "감사합니다",
|
||||
"emails.invitation.signature": "{{project}} 팀",
|
||||
"locale.country.unknown": "알려지지 않은",
|
||||
"countries.af": "아프가니스탄",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "그레나다",
|
||||
"countries.gt": "과테말라",
|
||||
"countries.gy": "기아나",
|
||||
"countries.hk": "홍콩",
|
||||
"countries.hn": "온두라스",
|
||||
"countries.hr": "크로아티아",
|
||||
"countries.ht": "아이티",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "뉴질랜드",
|
||||
"countries.om": "오만",
|
||||
"countries.pk": "파키스탄",
|
||||
"countries.ps": "팔레스타인",
|
||||
"countries.pa": "파나마",
|
||||
"countries.pe": "페루",
|
||||
"countries.ph": "필리핀 제도",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "튀니지",
|
||||
"countries.tr": "터키",
|
||||
"countries.tv": "투발루",
|
||||
"countries.tw": "대만",
|
||||
"countries.tz": "탄자니아",
|
||||
"countries.ug": "우간다",
|
||||
"countries.ua": "우크라이나",
|
||||
@@ -235,14 +232,14 @@
|
||||
"emails.magicSession.optionButton": "아래 버튼을 클릭하여 안전하게 {{project}} 계정에 로그인하세요. 1시간 후에 만료됩니다.",
|
||||
"emails.magicSession.buttonText": "{{project}}에 로그인하세요",
|
||||
"emails.magicSession.clientInfo": "이 로그인은 {{agentClient}}을(를) 사용하여 {{agentDevice}} {{agentOs}}에서 요청되었습니다. 로그인을 요청하지 않았다면, 이 이메일을 안전하게 무시하셔도 됩니다.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}}는 귀하의 {{project}} 인증 코드입니다.",
|
||||
"emails.magicSession.securityPhrase": "이 이메일의 보안 구절은 {{phrase}}입니다. 로그인할 때 표시되는 구절과 일치한다면 이 이메일을 신뢰할 수 있습니다.",
|
||||
"emails.magicSession.optionUrl": "위의 버튼을 사용하여 로그인할 수 없다면, 다음 링크를 방문해 주세요:",
|
||||
"emails.otpSession.subject": "{{project}} 로그인",
|
||||
"emails.otpSession.hello": "안녕하세요、",
|
||||
"emails.otpSession.hello": "안녕하세요,",
|
||||
"emails.otpSession.description": "다음 인증 코드를 입력하면 보안을 유지하며 {{project}} 계정에 안전하게 로그인할 수 있습니다. 15분 후에 만료됩니다.",
|
||||
"emails.otpSession.clientInfo": "이 로그인은 {{agentClient}}을 사용하여 {{agentDevice}} {{agentOs}}에서 요청되었습니다. 로그인을 요청하지 않았다면, 이 이메일을 안심하고 무시하셔도 됩니다.",
|
||||
"emails.otpSession.securityPhrase": "이 이메일의 보안 구절은 {{phrase}}입니다. 로그인하는 동안 표시된 구절과 이 구절이 일치하면 이 이메일을 신뢰할 수 있습니다.",
|
||||
"emails.otpSession.thanks": "감사합니다、",
|
||||
"emails.otpSession.thanks": "감사합니다,",
|
||||
"emails.otpSession.signature": "{{project}} 팀"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr*",
|
||||
"emails.sender": "%s team",
|
||||
"emails.verification.subject": "Ratio comprobatio",
|
||||
"emails.verification.hello": "Salve ibi {{user}},",
|
||||
"emails.verification.hello": "Salve ibi {{user}}",
|
||||
"emails.verification.body": "Sequere hanc nexum ut quin inscriptionem tuum.",
|
||||
"emails.verification.footer": "Si verificationem huius inscriptionis non postulasti, nuntium hunc ignorare potes.",
|
||||
"emails.verification.thanks": "Gratias,",
|
||||
"emails.verification.thanks": "Gratias",
|
||||
"emails.verification.signature": "{{project}} Team",
|
||||
"emails.magicSession.subject": "Log in",
|
||||
"emails.magicSession.hello": "Salve ibi,",
|
||||
"emails.magicSession.body": "Hanc nexum cum login",
|
||||
"emails.magicSession.footer": "Si verificationem huius inscriptionis non postulasti, nuntium hunc ignorare potes.",
|
||||
"emails.magicSession.thanks": "Gratias,",
|
||||
"emails.magicSession.thanks": "Gratias",
|
||||
"emails.magicSession.signature": "{{project}} team",
|
||||
"emails.recovery.subject": "Recuperet password",
|
||||
"emails.recovery.hello": "Salve ibi {{user}},",
|
||||
"emails.recovery.hello": "Salve ibi {{user}}",
|
||||
"emails.recovery.body": "Sequere hanc conjunctionem ut recipias project password {{project}}",
|
||||
"emails.recovery.footer": "Si tesseram tuam recuperare non petis, nuntium hunc ignorare potes",
|
||||
"emails.recovery.thanks": "Gratias,",
|
||||
"emails.recovery.thanks": "Gratias",
|
||||
"emails.recovery.signature": "{{project}} team",
|
||||
"emails.invitation.subject": "Invitatio pro %s in quadrigis %s",
|
||||
"emails.invitation.hello": "Salve ibi,",
|
||||
"emails.invitation.hello": "Salve ibi",
|
||||
"emails.invitation.body": "Haec inscriptio ad te missa est quia dominus incepto {{owner}} te invitare vult ut membrum {{team}} quadrigis fias ad {{project}}",
|
||||
"emails.invitation.footer": "Si non quaero, potes hunc nuntium ignorare",
|
||||
"emails.invitation.thanks": "Gratias,",
|
||||
"emails.invitation.thanks": "Gratias",
|
||||
"emails.invitation.signature": "{{project}} team",
|
||||
"locale.country.unknown": "Ignotum",
|
||||
"countries.af": "Afghanistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croatia",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "New Zealand",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Philippines",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunisia",
|
||||
"countries.tr": "Turkey",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Formosa",
|
||||
"countries.tz": "Tanzania",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraine",
|
||||
@@ -245,10 +242,10 @@
|
||||
"emails.otpSession.thanks": "Gratias,",
|
||||
"emails.otpSession.signature": "{{project}} team -> {{project}} grex",
|
||||
"emails.certificate.subject": "Defectio testimonii pro %s",
|
||||
"emails.certificate.hello": "Salve,",
|
||||
"emails.certificate.hello": "Salve",
|
||||
"emails.certificate.body": "Certificatum pro dominio tuo '{{domain}}' generari non potuit. Hoc conatus num. {{attempt}} est, et defectus causatus est ab: {{error}}",
|
||||
"emails.certificate.footer": "Praeclarum tuum testificationem valet ad XXX dies a primo defectu. Magnopere suademus ut hoc casum investiges, alioquin dominium tuum sine valida SSL communicatione erit.",
|
||||
"emails.certificate.thanks": "Gratias,",
|
||||
"emails.certificate.thanks": "Gratias",
|
||||
"emails.certificate.signature": "team {{project}}",
|
||||
"sms.verification.body": "{{secret}}"
|
||||
}
|
||||
"sms.verification.body": "{{secret}} est codex verificatorius {{project}} tui."
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Team",
|
||||
"emails.verification.subject": "Kont Verifikatioun",
|
||||
"emails.verification.hello": "Hey {{user}},",
|
||||
"emails.verification.hello": "Hey {{user}}",
|
||||
"emails.verification.body": "Follegt dëse Link fir Är E -Mail Adress z'iwwerpréiwen.",
|
||||
"emails.verification.footer": "Wann Dir net gefrot hutt dës Adress z'iwwerpréiwen, kënnt Dir dëse Message ignoréieren.",
|
||||
"emails.verification.thanks": "Merci,",
|
||||
"emails.verification.thanks": "Merci",
|
||||
"emails.verification.signature": "{{project}} équipe",
|
||||
"emails.magicSession.subject": "Login",
|
||||
"emails.magicSession.hello": "Hey,",
|
||||
"emails.magicSession.body": "Follegt dëse Link fir umellen.",
|
||||
"emails.magicSession.footer": "Wann Dir net gefrot hutt Iech mat dëser E -Mail anzemelden, kënnt Dir dëse Message ignoréieren.",
|
||||
"emails.magicSession.thanks": "Merci,",
|
||||
"emails.magicSession.thanks": "Merci",
|
||||
"emails.magicSession.signature": "{{project}} équipe",
|
||||
"emails.recovery.subject": "Password Reset",
|
||||
"emails.recovery.hello": "Hello {{user}},",
|
||||
"emails.recovery.hello": "Hello {{user}}",
|
||||
"emails.recovery.body": "Follegt dëse Link fir Äert {{project}} Passwuert zréckzesetzen.",
|
||||
"emails.recovery.footer": "Wann Dir net gefrot hutt Äert Passwuert zréckzesetzen, kënnt Dir dëse Message ignoréieren.",
|
||||
"emails.recovery.thanks": "Merci,",
|
||||
"emails.recovery.thanks": "Merci",
|
||||
"emails.recovery.signature": "{{project}} équipe",
|
||||
"emails.invitation.subject": "Invitatioun un %s équipe bei %s",
|
||||
"emails.invitation.hello": "Hallo,",
|
||||
"emails.invitation.hello": "Hallo",
|
||||
"emails.invitation.body": "Dës E -Mail gouf un Iech geschéckt well {{owner}} Iech invitéiere wëllt fir Member vum {{team}} Team bei {{project}} ze ginn.",
|
||||
"emails.invitation.footer": "Wann Dir net interesséiert sidd, kënnt Dir dëse Message ignoréieren.",
|
||||
"emails.invitation.thanks": "Merci,",
|
||||
"emails.invitation.thanks": "Merci",
|
||||
"emails.invitation.signature": "{{project}} équipe",
|
||||
"locale.country.unknown": "Onbekannt",
|
||||
"countries.af": "Afghanistan",
|
||||
@@ -163,7 +163,6 @@
|
||||
"countries.nz": "Neiséiland",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Philippinnen",
|
||||
@@ -207,7 +206,6 @@
|
||||
"countries.tn": "Tunesien",
|
||||
"countries.tr": "Tierkei",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taiwan",
|
||||
"countries.tz": "Tansania",
|
||||
"countries.ug": "Ugana",
|
||||
"countries.ua": "Ukraine",
|
||||
@@ -234,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Klickt op de Knäppchen hei drënner fir sécher an Äre {{project}} Kont anzeloggen. Et wäert an 1 Stonn oflafen.",
|
||||
"emails.magicSession.buttonText": "Connectez-vous à {{project}}",
|
||||
"emails.magicSession.clientInfo": "Dëse Login gouf duerch {{agentClient}} op {{agentDevice}} {{agentOs}} ugefrot. Wann Dir de Login net gefrot hutt, kënnt Dir dësen E-Mail ouni weideres ignoréieren.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} ass äre {{project}} Verifikatiounscode.",
|
||||
"emails.magicSession.securityPhrase": "D'Sécherheetsphrase fir dësen E-Mail ass {{phrase}}. Dir kënnt dësem E-Mail vertrauen, wann dës Phrase mat der Phrase iwwereneestëmmt, déi beim Umellen ugewise ginn ass.",
|
||||
"emails.magicSession.optionUrl": "Wann Dir Iech net kënnt umellen andeems Dir op de Knäppchen uewendriwwer klickt, besicht w.e.g. de folgenden Link:",
|
||||
"emails.otpSession.subject": "{{project}} Aloggen",
|
||||
@@ -244,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "D'Sécherheetsausso fir dësen E-Mail ass {{phrase}}. Dir kënnt dësem E-Mail vertrauen, wann dës Ausso mat der Ausso iwwereneestëmmt, déi beim Umellen gewise ginn ass.",
|
||||
"emails.otpSession.thanks": "Merci,",
|
||||
"emails.otpSession.signature": "{{project}} Equipe"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s komanda",
|
||||
"emails.verification.subject": "Paskyros Patvirtinimas",
|
||||
"emails.verification.hello": "Labas {{user}},",
|
||||
"emails.verification.hello": "Labas {{user}}",
|
||||
"emails.verification.body": "Spauskite šią nuorodą, kad patvirtintumėte savo el. paštą.",
|
||||
"emails.verification.footer": "Jei neprašėte patvirtinti šio el. pašto, galite ignoruoti šį pranešimą.",
|
||||
"emails.verification.thanks": "Ačiū,",
|
||||
"emails.verification.thanks": "Ačiū",
|
||||
"emails.verification.signature": "{{project}} komanda",
|
||||
"emails.magicSession.subject": "Prisijungti",
|
||||
"emails.magicSession.hello": "Labas,",
|
||||
"emails.magicSession.body": "Spauskite šią nuorodą, kad prisijungtumėte.",
|
||||
"emails.magicSession.footer": "Jei neprašėte prisijungti naudojantis šiuo el. paštu, galite ignoruoti šį pranešimą.",
|
||||
"emails.magicSession.thanks": "Ačiū,",
|
||||
"emails.magicSession.thanks": "Ačiū",
|
||||
"emails.magicSession.signature": "{{project}} komanda",
|
||||
"emails.recovery.subject": "Slaptažodžio Atkūrimas",
|
||||
"emails.recovery.hello": "Labas {{user}},",
|
||||
"emails.recovery.hello": "Labas {{user}}",
|
||||
"emails.recovery.body": "Spauskite šią nuorodą, kad atkurtumėte projekto {{project}} slaptažodį.",
|
||||
"emails.recovery.footer": "Jei neprašėte atkurti savo slaptažodzio, galite ignoruoti šį pranešimą.",
|
||||
"emails.recovery.thanks": "Ačiū,",
|
||||
"emails.recovery.thanks": "Ačiū",
|
||||
"emails.recovery.signature": "{{project}} komanda",
|
||||
"emails.invitation.subject": "Pakvietimas į %s komandą %s projekte",
|
||||
"emails.invitation.hello": "Labas,",
|
||||
"emails.invitation.hello": "Labas",
|
||||
"emails.invitation.body": "Šis el. laiškas buvo atsiųstas jums, nes {{owner}} norėjo jus pakviesti tapti projekto {{project}} dalimi {{team}} komandoje.",
|
||||
"emails.invitation.footer": "Jei jūsų tai nedomina, galite ignoruoti šį pranešimą.",
|
||||
"emails.invitation.thanks": "Ačiū,",
|
||||
"emails.invitation.thanks": "Ačiū",
|
||||
"emails.invitation.signature": "{{project}} komanda",
|
||||
"locale.country.unknown": "Nežinoma",
|
||||
"countries.af": "Afganistanas",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Gvatemala",
|
||||
"countries.gy": "Gajana",
|
||||
"countries.hk": "Honkongas",
|
||||
"countries.hn": "Hondūras",
|
||||
"countries.hr": "Kroatija",
|
||||
"countries.ht": "Haitis",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Naujoji Zelandija",
|
||||
"countries.om": "Omanas",
|
||||
"countries.pk": "Pakistanas",
|
||||
"countries.ps": "Palestina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Filipinai",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunisas",
|
||||
"countries.tr": "Turkija",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taivanas",
|
||||
"countries.tz": "Tanzanija",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraina",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Spustelėkite žemiau esantį mygtuką, kad saugiai prisijungtumėte prie savo {{project}} paskyros. Galiojimas baigsis po 1 valandos.",
|
||||
"emails.magicSession.buttonText": "Prisijunkite prie {{project}}",
|
||||
"emails.magicSession.clientInfo": "Šis prisijungimas buvo užklaustas naudojant {{agentClient}} {{agentDevice}} {{agentOs}}. Jei neprašėte prisijungimo, galite saugiai ignoruoti šį el. laišką.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} yra jūsų {{project}} patvirtinimo kodas.",
|
||||
"emails.magicSession.securityPhrase": "Šio el. laiško saugumo frazė yra {{phrase}}. Šiam el. laiškui galite pasitikėti, jei ši frazė atitinka prisijungimo metu rodytą frazę.",
|
||||
"emails.magicSession.optionUrl": "Jei negalite prisijungti naudodami aukščiau esantį mygtuką, apsilankykite šioje nuorodoje:",
|
||||
"emails.otpSession.subject": "{{project}} Prisijungimas",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Šio el. laiško saugumo frazė yra {{phrase}}. Galite pasitikėti šiuo el. laišku, jei ši frazė atitinka frazę, rodytą prisijungimo metu.",
|
||||
"emails.otpSession.thanks": "Ačiū,",
|
||||
"emails.otpSession.signature": "{{project}} komanda"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s komanda",
|
||||
"emails.verification.subject": "Konta verifikācija",
|
||||
"emails.verification.hello": "Sveicināti, {{user}},",
|
||||
"emails.verification.hello": "Sveicināti, {{user}}",
|
||||
"emails.verification.body": "Sekojiet saitei, lai apstiprinātu savu e-pasta adresi.",
|
||||
"emails.verification.footer": "Ja Jūs nepieprasījāt šīs adreses apstiprinājumu, lūdzu, ignorējiet šo ziņu.",
|
||||
"emails.verification.thanks": "Paldies,",
|
||||
"emails.verification.thanks": "Paldies",
|
||||
"emails.verification.signature": "{{project}} komanda",
|
||||
"emails.magicSession.subject": "Ieiet",
|
||||
"emails.magicSession.hello": "Sveicināti,",
|
||||
"emails.magicSession.body": "Sekojiet saitei, lai ieietu.",
|
||||
"emails.magicSession.footer": "Ja Jūs nepieprasījāt ieiet ar šo e-pasta adresi, lūdzu, ignorējiet šo ziņu.",
|
||||
"emails.magicSession.thanks": "Paldies,",
|
||||
"emails.magicSession.thanks": "Paldies",
|
||||
"emails.magicSession.signature": "{{project}} komanda",
|
||||
"emails.recovery.subject": "Paroles atjaunināšana",
|
||||
"emails.recovery.hello": "Labdien, {{user}},",
|
||||
"emails.recovery.hello": "Labdien, {{user}}",
|
||||
"emails.recovery.body": "Sekojiet saitei, lai atjauninātu {{project}} paroli.",
|
||||
"emails.recovery.footer": "Ja Jūs nepieprasījāt paroles atjaunināšanu, lūdzu, ignorējiet šo ziņu.",
|
||||
"emails.recovery.thanks": "Paldies,",
|
||||
"emails.recovery.thanks": "Paldies",
|
||||
"emails.recovery.signature": "{{project}} komanda",
|
||||
"emails.invitation.subject": "Ielūgums piebiedroties %s komandai %s projektā.",
|
||||
"emails.invitation.hello": "Labdien,",
|
||||
"emails.invitation.hello": "Labdien",
|
||||
"emails.invitation.body": "Šis e-pasts tika nosūtīts Jums, jo {{owner}} vēlējās Jūs ielūgt kļūt par {{team}} komandas biedru {{project}} projektā.",
|
||||
"emails.invitation.footer": "Ja Jūs neesat ieinteresēts, lūdzu, ignorējiet šo ziņu.",
|
||||
"emails.invitation.thanks": "Paldies,",
|
||||
"emails.invitation.thanks": "Paldies",
|
||||
"emails.invitation.signature": "{{project}} komanda",
|
||||
"locale.country.unknown": "Nav zināms",
|
||||
"countries.af": "Afganistāna",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Gvatemala",
|
||||
"countries.gy": "Gajāna",
|
||||
"countries.hk": "Honkonga",
|
||||
"countries.hn": "Hondurasa",
|
||||
"countries.hr": "Horvātija",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Jaunzēlande",
|
||||
"countries.om": "Omāna",
|
||||
"countries.pk": "Pakistāna",
|
||||
"countries.ps": "Palestīna",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Filipīnas",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunisija",
|
||||
"countries.tr": "Turcija",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taivāna",
|
||||
"countries.tz": "Tanzānija",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraina",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Noklikšķiniet uz zemāk esošās pogas, lai droši pieteiktos savā {{project}} kontā. Tas beigsies pēc 1 stundas.",
|
||||
"emails.magicSession.buttonText": "Pierakstieties {{project}}",
|
||||
"emails.magicSession.clientInfo": "Šī autorizācija tika pieprasīta, izmantojot {{agentClient}} ierīcē {{agentDevice}} operētājsistēmā {{agentOs}}. Ja jūs neesat pieprasījis autorizāciju, šo e-pastu varat droši ignorēt.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} ir jūsu {{project}} verifikācijas kods.",
|
||||
"emails.magicSession.securityPhrase": "Drošības frāze šim e-pastam ir {{phrase}}. Šim e-pastam var uzticēties, ja šī frāze sakrīt ar frāzi, kas parādās, piesakoties sistēmā.",
|
||||
"emails.magicSession.optionUrl": "Ja nevarat pierakstīties, izmantojot iepriekš minēto pogu, lūdzu, apmeklējiet sekojošo saiti:",
|
||||
"emails.otpSession.subject": "{{project}} Pieteikšanās",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Drošības frāze šim e-pastam ir {{phrase}}. Šim e-pastam var uzticēties, ja šī frāze sakrīt ar frāzi, kas parādīta pieslēdzoties.",
|
||||
"emails.otpSession.thanks": "Paldies,",
|
||||
"emails.otpSession.signature": "{{project}} komanda"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s ടീം",
|
||||
"emails.verification.subject": "അക്കൗണ്ട് സ്ഥിരീകരണം",
|
||||
"emails.verification.hello": "നമസ്കാരം {{user}},",
|
||||
"emails.verification.hello": "നമസ്കാരം {{user}}",
|
||||
"emails.verification.body": "നിങ്ങളുടെ ഇമെയിൽ വിലാസം സ്ഥിരീകരിക്കുന്നതിനായി ഈ ലിങ്ക് പിന്തുടരുക.",
|
||||
"emails.verification.footer": "ഈ വിലാസം സ്ഥിരീകരിക്കാന് നിങ്ങൾ ആവശ്യപ്പെട്ടില്ലെങ്കിൽ, നിങ്ങൾക്ക് ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.",
|
||||
"emails.verification.thanks": "നന്ദി,",
|
||||
"emails.verification.thanks": "നന്ദി",
|
||||
"emails.verification.signature": "{{project}} ടീം",
|
||||
"emails.magicSession.subject": "ലോഗിൻ",
|
||||
"emails.magicSession.hello": "നമസ്കാരം,",
|
||||
"emails.magicSession.body": "ലോഗിൻ ചെയ്യുന്നതിനായി ഈ ലിങ്ക് പിന്തുടരുക.",
|
||||
"emails.magicSession.footer": "ഈ ഇമെയിൽ ഉപയോഗിച്ച് ലോഗിൻ ചെയ്യാൻ നിങ്ങൾ ആവശ്യപ്പെട്ടില്ലെങ്കിൽ, ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.",
|
||||
"emails.magicSession.thanks": "നന്ദി,",
|
||||
"emails.magicSession.thanks": "നന്ദി",
|
||||
"emails.magicSession.signature": "{{project}} ടീം",
|
||||
"emails.recovery.subject": "രഹസ്യവാക്ക് പുനക്രമീകരണം",
|
||||
"emails.recovery.hello": "നമസ്കാരം {{user}},",
|
||||
"emails.recovery.hello": "നമസ്കാരം {{user}}",
|
||||
"emails.recovery.body": "നിങ്ങളുടെ {{Project}} രഹസ്യവാക്ക് പുനക്രമീകരിക്കുന്നതിന് ഈ ലിങ്ക് പിന്തുടരുക.",
|
||||
"emails.recovery.footer": "നിങ്ങളുടെ രഹസ്യവാക്ക് പുനക്രമീകരിക്കാന് നിങ്ങൾ ആവശ്യപ്പെട്ടില്ലെങ്കിൽ, ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.",
|
||||
"emails.recovery.thanks": "നന്ദി,",
|
||||
"emails.recovery.thanks": "നന്ദി",
|
||||
"emails.recovery.signature": "{{project}} ടീം",
|
||||
"emails.invitation.subject": "%s -ലെ %s ടീമിലേക്കുള്ള ക്ഷണം",
|
||||
"emails.invitation.hello": "നമസ്കാരം,",
|
||||
"emails.invitation.hello": "നമസ്കാരം",
|
||||
"emails.invitation.body": "നിങ്ങളെ {{project}} -ലെ {{team}} ടീമിലെ അംഗമാകുവാന് ക്ഷണിക്കാൻ {{owner}} ആഗ്രഹിക്കുന്നതിനാലാണ് ഈ മെയിൽ നിങ്ങൾക്ക് അയക്കുന്നത്.",
|
||||
"emails.invitation.footer": "നിങ്ങൾക്ക് താൽപ്പര്യമില്ലെങ്കിൽ, ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.",
|
||||
"emails.invitation.thanks": "നന്ദി,",
|
||||
"emails.invitation.thanks": "നന്ദി",
|
||||
"emails.invitation.signature": "{{project}} ടീം",
|
||||
"locale.country.unknown": "Unknown",
|
||||
"countries.af": "അഫ്ഗാനിസ്ഥാൻ",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "ഗ്രെനാഡ",
|
||||
"countries.gt": "ഗ്വാട്ടിമാല",
|
||||
"countries.gy": "ഗയാന",
|
||||
"countries.hk": "ഹോങ്കോങ്",
|
||||
"countries.hn": "ഹോണ്ടുറാസ്",
|
||||
"countries.hr": "ക്രോയേഷ്യ",
|
||||
"countries.ht": "ഹെയ്തി",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "ന്യൂസിലൻഡ്",
|
||||
"countries.om": "ഒമാൻ",
|
||||
"countries.pk": "പാക്കിസ്ഥാൻ",
|
||||
"countries.ps": "പാലസ്തീൻ",
|
||||
"countries.pa": "പനാമ",
|
||||
"countries.pe": "പെറു",
|
||||
"countries.ph": "ഫിലിപ്പീൻസ്",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "ടുണീഷ്യ",
|
||||
"countries.tr": "തുർക്കി",
|
||||
"countries.tv": "തുവാളു",
|
||||
"countries.tw": "തായ്വാൻ",
|
||||
"countries.tz": "ടാൻസാനിയ",
|
||||
"countries.ug": "ഉഗാണ്ട",
|
||||
"countries.ua": "ഉക്രൈൻ",
|
||||
@@ -245,10 +242,10 @@
|
||||
"emails.otpSession.thanks": "നന്ദി,",
|
||||
"emails.otpSession.signature": "പ്രോജക്ട് ടീം",
|
||||
"emails.certificate.subject": "%s ന് സർട്ടിഫിക്കറ്റ് പരാജയപ്പെട്ടു",
|
||||
"emails.certificate.hello": "ഹലോ,",
|
||||
"emails.certificate.hello": "ഹലോ",
|
||||
"emails.certificate.body": "നിങ്ങളുടെ ഡൊമൈൻ '{{domain}}'നു വേണ്ടിയുള്ള സർട്ടിഫിക്കറ്റ് ഉണ്ടാക്കാനായില്ല. ഇത് ശ്രമം നമ്പർ {{attempt}} ആണ്, പരാജയപ്പെട്ടത് ഇതു മൂലമാണ്: {{error}}",
|
||||
"emails.certificate.footer": "നിങ്ങളുടെ മുൻപത്തെ സർട്ടിഫിക്കറ്റ് ആദ്യ പരാജയത്തിനു ശേഷം 30 ദിവസം വരെ സാധുവായിരിക്കും. ഈ കേസ് അന്വേഷിച്ചു നോക്കുന്നത് ഞങ്ങൾ ശക്തമായി ശുപാർശ ചെയ്യുന്നു, അല്ലെങ്കിൽ നിങ്ങളുടെ ഡൊമെയ്ൻ സാധുവായ SSL കമ്മ്യൂണിക്കേഷനില്ലാത്ത ഒരു അവസ്ഥയിലാകും.",
|
||||
"emails.certificate.thanks": "നന്ദി,",
|
||||
"emails.certificate.thanks": "നന്ദി",
|
||||
"emails.certificate.signature": "{{project}} ടീം",
|
||||
"sms.verification.body": "{{secret}}"
|
||||
}
|
||||
"sms.verification.body": "{{secret}} നിങ്ങളുടെ {{project}} പരിശോധന കോഡാണ്."
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s टीम",
|
||||
"emails.verification.subject": "खाते सत्यापन",
|
||||
"emails.verification.hello": "नमस्कार {{user}},",
|
||||
"emails.verification.hello": "नमस्कार {{user}}",
|
||||
"emails.verification.body": "आपला ईमेल पत्ता सत्यापित करण्यासाठी या दुव्याचे अनुसरण करा.",
|
||||
"emails.verification.footer": "आपण या पत्त्याची पडताळणी करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
|
||||
"emails.verification.thanks": "धन्यवाद,",
|
||||
"emails.verification.thanks": "धन्यवाद",
|
||||
"emails.verification.signature": "{{project}} संघ",
|
||||
"emails.magicSession.subject": "लॉगिन करा",
|
||||
"emails.magicSession.hello": "नमस्कार ,",
|
||||
"emails.magicSession.body": "लॉगिन करण्यासाठी या लिंकचे अनुसरण करा.",
|
||||
"emails.magicSession.footer": "आपण या ईमेलचा वापर करून लॉगिन करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
|
||||
"emails.magicSession.thanks": "धन्यवाद,",
|
||||
"emails.magicSession.thanks": "धन्यवाद",
|
||||
"emails.magicSession.signature": "{{project}} संघ",
|
||||
"emails.recovery.subject": "पासवर्ड रीसेट",
|
||||
"emails.recovery.hello": "नमस्कार {{user}},",
|
||||
"emails.recovery.hello": "नमस्कार {{user}}",
|
||||
"emails.recovery.body": "आपला {{project}}चे पासवर्ड रीसेट करण्यासाठी या लिंकचे अनुसरण करा",
|
||||
"emails.recovery.footer": "आपण आपला पासवर्ड रीसेट करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
|
||||
"emails.recovery.thanks": "धन्यवाद,",
|
||||
"emails.recovery.thanks": "धन्यवाद",
|
||||
"emails.recovery.signature": "{{project}} संघ",
|
||||
"emails.invitation.subject": "%s संघ %s येथे सामील होण्यासाठी आमंत्रण",
|
||||
"emails.invitation.hello": "नमस्कार,",
|
||||
"emails.invitation.hello": "नमस्कार",
|
||||
"emails.invitation.body": "हा मेल तुम्हाला पाठवला होता कारण {{owner}} तुम्हाला {{project}} येथे {{team}} टीमचे सदस्य होण्यासाठी आमंत्रित करू इच्छित होते.",
|
||||
"emails.invitation.footer": "आपल्याला स्वारस्य नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
|
||||
"emails.invitation.thanks": "धन्यवाद,",
|
||||
"emails.invitation.thanks": "धन्यवाद",
|
||||
"emails.invitation.signature": "{{project}} संघ",
|
||||
"locale.country.unknown": "अज्ञात",
|
||||
"countries.af": "अफगानिस्तान",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "ग्रेनाडा",
|
||||
"countries.gt": "ग्वाटेमाला",
|
||||
"countries.gy": "गुयाना",
|
||||
"countries.hk": "हाँगकांग",
|
||||
"countries.hn": "होंडुरास",
|
||||
"countries.hr": "क्रोएशिया",
|
||||
"countries.ht": "हैती",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "न्यूजीलैंड",
|
||||
"countries.om": "ओमान",
|
||||
"countries.pk": "पाकिस्तान",
|
||||
"countries.ps": "पॅलेस्टाईन",
|
||||
"countries.pa": "पनामा",
|
||||
"countries.pe": "पेरू",
|
||||
"countries.ph": "फिलीपींस",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "ट्यूनीशिया",
|
||||
"countries.tr": "तुर्की",
|
||||
"countries.tv": "तुवालु",
|
||||
"countries.tw": "तैवान",
|
||||
"countries.tz": "तंजानिया",
|
||||
"countries.ug": "युगांडा",
|
||||
"countries.ua": "यूक्रेन",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "खालील बटणावर क्लिक करा आणि आपल्या {{project}} खात्यात सुरक्षितपणे साइन इन करा. हे १ तासात समाप्त होईल.",
|
||||
"emails.magicSession.buttonText": "{{project}} मध्ये साइन इन करा",
|
||||
"emails.magicSession.clientInfo": "ही साइन इन विनंती केली गेली {{agentClient}} वरून {{agentDevice}} {{agentOs}} वापरून. जर आपणास ही साइन इन विनंती केली नसेल तर आपण हा ईमेल सुरक्षितपणे दुर्लक्षित करू शकता.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} हे तुमच्या {{project}} प्रमाणीकरण कोड आहे.",
|
||||
"emails.magicSession.securityPhrase": "या ईमेलसाठी सुरक्षा वाक्य हे {{phrase}} आहे. साइन इन केल्यावेळी दाखवलेले वाक्य जर हे वाक्याशी जुळत असेल तर तुम्ही या ईमेलवर विश्वास ठेवू शकता.",
|
||||
"emails.magicSession.optionUrl": "जर आपण वरील बटणाचा वापर करून साइन इन करू शकत नसाल, तर कृपया खालील दुवा भेट द्या:",
|
||||
"emails.otpSession.subject": "{{project}} लॉगिन",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "या ईमेलसाठीचे सुरक्षा वाक्यांश {{phrase}} आहे. जर हे वाक्यांश साइन इन करताना दाखवल्या गेलेल्या वाक्यांशाशी जुळत असेल तर आपण या ईमेलवर विश्वास ठेवू शकता.",
|
||||
"emails.otpSession.thanks": "धन्यवाद,",
|
||||
"emails.otpSession.signature": "{{project}} संघ"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Team",
|
||||
"emails.verification.subject": "Pengesahan Akaun",
|
||||
"emails.verification.hello": "Hey {{user}},",
|
||||
"emails.verification.hello": "Hey {{user}}",
|
||||
"emails.verification.body": "Tekan pautan ini untuk mengesahkan alamat email anda.",
|
||||
"emails.verification.footer": "Sekiranya anda tidak membuat permintaan untuk mengesahkan email ini, sila abaikan mesej ini.",
|
||||
"emails.verification.thanks": "Terima kasih,",
|
||||
"emails.verification.thanks": "Terima kasih",
|
||||
"emails.verification.signature": "{{project}} team",
|
||||
"emails.magicSession.subject": "Log masuk",
|
||||
"emails.magicSession.hello": "Hey,",
|
||||
"emails.magicSession.body": "Tekan pautan ini untuk log masuk.",
|
||||
"emails.magicSession.footer": "Sekiranya anda tidak membuat permintaan untuk log masuk menggunakan email ini, sila abaikan mesej ini.",
|
||||
"emails.magicSession.thanks": "Terima kasih,",
|
||||
"emails.magicSession.thanks": "Terima kasih",
|
||||
"emails.magicSession.signature": "{{project}} team",
|
||||
"emails.recovery.subject": "Menetap semula Kata Laluan",
|
||||
"emails.recovery.hello": "Hello {{user}},",
|
||||
"emails.recovery.hello": "Hello {{user}}",
|
||||
"emails.recovery.body": "Tekan pautan ini untuk menetapkan semula kata laluan {{project}}.",
|
||||
"emails.recovery.footer": "Sekiranya anda tidak membuat permintaan menetap semula kata laluan, sila abaikan mesej ini.",
|
||||
"emails.recovery.thanks": "Terima kasih,",
|
||||
"emails.recovery.thanks": "Terima kasih",
|
||||
"emails.recovery.signature": "{{project}} team",
|
||||
"emails.invitation.subject": "Jemputan ke pasukan %s di %s",
|
||||
"emails.invitation.hello": "Hello,",
|
||||
"emails.invitation.hello": "Hello",
|
||||
"emails.invitation.body": "Anda menerima mel ini kerana {{owner}} ingin menjemput anda untuk menjadi ahli pasukan {{team}} di {{project}}.",
|
||||
"emails.invitation.footer": "Sekiranya anda tidak berminat, sila abaikan mesej ini.",
|
||||
"emails.invitation.thanks": "Terima kasih,",
|
||||
"emails.invitation.thanks": "Terima kasih",
|
||||
"emails.invitation.signature": "{{project}} team",
|
||||
"locale.country.unknown": "Tidak Diketahui",
|
||||
"countries.af": "Afghanistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Granada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroatia",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "New Zealand",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestin",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Filipina",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunisia",
|
||||
"countries.tr": "Turkey",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taiwan",
|
||||
"countries.tz": "Tanzania",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraine",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Klik butang di bawah untuk log masuk ke akaun {{project}} anda dengan selamat. Ia akan luput dalam masa 1 jam.",
|
||||
"emails.magicSession.buttonText": "Masuk ke {{project}}",
|
||||
"emails.magicSession.clientInfo": "Pendaftaran ini diminta menggunakan {{agentClient}} pada {{agentDevice}} {{agentOs}}. Jika anda tidak meminta untuk daftar masuk, anda boleh abaikan e-mel ini dengan selamat.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} adalah kod pengesahan {{project}} anda.",
|
||||
"emails.magicSession.securityPhrase": "Frasa keselamatan untuk emel ini adalah {{phrase}}. Anda boleh mempercayai emel ini jika frasa ini sepadan dengan frasa yang ditunjukkan semasa log masuk.",
|
||||
"emails.magicSession.optionUrl": "Jika anda tidak dapat log masuk menggunakan butang di atas, sila kunjungi pautan berikut:",
|
||||
"emails.otpSession.subject": "Log Masuk {{project}}",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Frasa keselamatan untuk email ini adalah {{phrase}}. Anda boleh mempercayai email ini jika frasa ini sepadan dengan frasa yang ditunjukkan semasa log masuk.",
|
||||
"emails.otpSession.thanks": "Terima kasih,",
|
||||
"emails.otpSession.signature": "pasukan {{project}}"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Team",
|
||||
"emails.verification.subject": "Kontobekreftelse",
|
||||
"emails.verification.hello": "Hei {{user}},",
|
||||
"emails.verification.hello": "Hei {{user}}",
|
||||
"emails.verification.body": "Følg denne lenken for å bekrefte din e-postadresse.",
|
||||
"emails.verification.footer": "Dersom du ikke ba om å bekrefte e-postadressen, kan du se bort fra denne meldingen.",
|
||||
"emails.verification.thanks": "Takk,",
|
||||
"emails.verification.thanks": "Takk",
|
||||
"emails.verification.signature": "{{project}} team",
|
||||
"emails.magicSession.subject": "Pålogging",
|
||||
"emails.magicSession.hello": "Hei,",
|
||||
"emails.magicSession.body": "Følg denne lenken for å logge på.",
|
||||
"emails.magicSession.footer": "Dersom du ikke ba om å logge på med denne e-postadressen, kan du se bort fra denne meldingen.",
|
||||
"emails.magicSession.thanks": "Takk,",
|
||||
"emails.magicSession.thanks": "Takk",
|
||||
"emails.magicSession.signature": "{{project}} team",
|
||||
"emails.recovery.subject": "Nullstille passord",
|
||||
"emails.recovery.hello": "Hei {{user}},",
|
||||
"emails.recovery.hello": "Hei {{user}}",
|
||||
"emails.recovery.body": "Følg denne lenken for å nullstille ditt {{project}} passord.",
|
||||
"emails.recovery.footer": "Dersom du ikke ba om å nullstille passordet ditt, kan du se bort fra denne meldingen.",
|
||||
"emails.recovery.thanks": "Takk,",
|
||||
"emails.recovery.thanks": "Takk",
|
||||
"emails.recovery.signature": "{{project}} team",
|
||||
"emails.invitation.subject": "Invitasjon til %s Team ved %s",
|
||||
"emails.invitation.hello": "Hei,",
|
||||
"emails.invitation.hello": "Hei",
|
||||
"emails.invitation.body": "Denne meldingen ble sendt til deg fordi {{owner}} ønsket å invitere deg til å bli medlem av {{team}} team ved {{project}}.",
|
||||
"emails.invitation.footer": "Dersom du ikke er interessert, kan du se bort fra denne meldingen.",
|
||||
"emails.invitation.thanks": "Takk,",
|
||||
"emails.invitation.thanks": "Takk",
|
||||
"emails.invitation.signature": "{{project}} team",
|
||||
"locale.country.unknown": "Ukjent",
|
||||
"countries.af": "Afghanistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroatia",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "New Zealand",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Filippinene",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunisia",
|
||||
"countries.tr": "Tyrkia",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taiwan",
|
||||
"countries.tz": "Tanzania",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraina",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Klikk på knappen nedenfor for å logge inn på din {{project}}-konto på en sikker måte. Den vil utløpe om 1 time.",
|
||||
"emails.magicSession.buttonText": "Logg inn på {{project}}",
|
||||
"emails.magicSession.clientInfo": "Dette innloggingen ble forespurt ved hjelp av {{agentClient}} på {{agentDevice}} {{agentOs}}. Hvis du ikke ba om innloggingen, kan du trygt se bort fra denne e-posten.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} er din {{project}} bekreftelseskode.",
|
||||
"emails.magicSession.securityPhrase": "Sikkerhetsfrasen for denne e-posten er {{phrase}}. Du kan stole på denne e-posten hvis denne frasen stemmer overens med frasen som ble vist under innlogging.",
|
||||
"emails.magicSession.optionUrl": "Hvis du ikke klarer å logge inn ved å bruke knappen ovenfor, vennligst besøk følgende lenke:",
|
||||
"emails.otpSession.subject": "{{project}} Innlogging",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "Sikkerhetsfrasen for denne e-posten er {{phrase}}. Du kan stole på denne e-posten hvis denne frasen stemmer overens med frasen som ble vist under pålogging.",
|
||||
"emails.otpSession.thanks": "Takk,",
|
||||
"emails.otpSession.signature": "{{project}} team"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s समूह",
|
||||
"emails.verification.subject": "खाता प्रमाणिकरण",
|
||||
"emails.verification.hello": "नमस्ते {{user}},",
|
||||
"emails.verification.hello": "नमस्ते {{user}}",
|
||||
"emails.verification.body": "इमेल ठेगाना प्रमाणित गर्नको लागी यो लिंकमा जानुहोस।",
|
||||
"emails.verification.footer": "यदि तपाइँले आफ्नो खाता प्रमाणित गर्न सोध्नु भएको छैन भने तपाइँले यो सन्देश लाई बेवास्ता गर्न सक्नुहुन्छ।",
|
||||
"emails.verification.thanks": "धन्यवाद,",
|
||||
"emails.verification.thanks": "धन्यवाद",
|
||||
"emails.verification.signature": "{{project}} समूह",
|
||||
"emails.magicSession.subject": "लगइन",
|
||||
"emails.magicSession.hello": "नमस्ते,",
|
||||
"emails.magicSession.body": "लगइन गर्नको लागी यो लिंकमा जानुहोस।",
|
||||
"emails.magicSession.footer": "यदि तपाइँले यो इमेल प्रयोग गरेर लगइन गर्न सोध्नु भएको छैन भने तपाइँले यो सन्देश लाई बेवास्ता गर्न सक्नुहुन्छ।",
|
||||
"emails.magicSession.thanks": "धन्यवाद,",
|
||||
"emails.magicSession.thanks": "धन्यवाद",
|
||||
"emails.magicSession.signature": "{{project}} समूह",
|
||||
"emails.recovery.subject": "पासवर्ड रिसेट",
|
||||
"emails.recovery.hello": "नमस्ते {{user}},",
|
||||
"emails.recovery.hello": "नमस्ते {{user}}",
|
||||
"emails.recovery.body": "{{project}}को पासवर्ड रिसेट गर्नको लागी यो लिंकमा जानुहोस।",
|
||||
"emails.recovery.footer": "यदि तपाइँले आफ्नो पासवर्ड रिसेट गर्न सोध्नु भएको छैन भने तपाइँले यो सन्देश लाई बेवास्ता गर्न सक्नुहुन्छ।",
|
||||
"emails.recovery.thanks": "धन्यवाद,",
|
||||
"emails.recovery.thanks": "धन्यवाद",
|
||||
"emails.recovery.signature": "{{project}} समूह",
|
||||
"emails.invitation.subject": "%s समूहको लागि %s मा निमन्त्रणा",
|
||||
"emails.invitation.hello": "नमस्ते,",
|
||||
"emails.invitation.hello": "नमस्ते",
|
||||
"emails.invitation.body": "{{owner}}ले तपाइँलाई {{project}}मा {{team}}को सदस्य बन्न आमन्त्रित गर्न चाहनु भएको छ। त्येसैले तपाइँलाई यो सन्देश पठाइएको हो।",
|
||||
"emails.invitation.footer": "यदि तपाइँ इच्छुक हुनुहुन्न भने, तपाइँले यो सन्देशलाई बेवास्ता गर्न सक्नुहुन्छ।",
|
||||
"emails.invitation.thanks": "धन्यवाद,",
|
||||
"emails.invitation.thanks": "धन्यवाद",
|
||||
"emails.invitation.signature": "{{project}} समूह",
|
||||
"locale.country.unknown": "अज्ञात",
|
||||
"countries.af": "अफगानिस्तान",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "ग्रेनेडा",
|
||||
"countries.gt": "ग्वाटेमाला",
|
||||
"countries.gy": "गुयाना",
|
||||
"countries.hk": "हाँगकाँग",
|
||||
"countries.hn": "होन्डुरस",
|
||||
"countries.hr": "क्रोएशिया",
|
||||
"countries.ht": "हैती",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "न्युजिल्याण्ड",
|
||||
"countries.om": "ओमान",
|
||||
"countries.pk": "पाकिस्तान",
|
||||
"countries.ps": "प्यालेस्टाइन",
|
||||
"countries.pa": "पनामा",
|
||||
"countries.pe": "पेरू",
|
||||
"countries.ph": "फिलिपिन्स",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "ट्युनिसिया",
|
||||
"countries.tr": "टर्की",
|
||||
"countries.tv": "टुभालु",
|
||||
"countries.tw": "ताइवान",
|
||||
"countries.tz": "तान्जानिया",
|
||||
"countries.ug": "युगान्डा",
|
||||
"countries.ua": "युक्रेन",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "कृपया तलको बटनमा क्लिक गरी आफ्नो {{project}} खातामा सुरक्षित रूपमा साइन इन गर्नुहोस्। यो १ घण्टामा समाप्त हुनेछ।",
|
||||
"emails.magicSession.buttonText": "Connectez-vous à {{project}}",
|
||||
"emails.magicSession.clientInfo": "यो साइन इन अनुरोध गरिएको थियो {{agentClient}} प्रयोग गरेर {{agentDevice}} {{agentOs}} मा। यदि तपाईंले साइन इन अनुरोध गर्नुभएको छैन भने, यो इमेललाई सुरक्षित रूपमा अनदेखा गर्न सक्नुहुन्छ।",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} तपाईंको {{project}} प्रमाणीकरण कोड हो।",
|
||||
"emails.magicSession.securityPhrase": "यस ईमेलको लागि सुरक्षा वाक्य {{phrase}} हो। यो वाक्य साइन इन गर्दा देखाइएको वाक्यसँग मेल खाए मात्र तपाईंले यस ईमेललाई विश्वास गर्न सक्नुहुन्छ।",
|
||||
"emails.magicSession.optionUrl": "सँगै उल्लेख गरिएको बटन प्रयोग गरेर साइन इन गर्न असमर्थ हुनुहुन्छ भने, कृपया तलको लिंकमा भ्रमण गर्नुहोस्:",
|
||||
"emails.otpSession.subject": "{{project}} लगइन",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "यस ईमेलको लागि सुरक्षा वाक्य {{phrase}} हो। यदि यो वाक्य साइन इन गर्दा देखाइएको वाक्यसँग मेल खान्छ भने तपाईँले यो ईमेलमा विश्वास गर्न सक्नुहुन्छ।",
|
||||
"emails.otpSession.thanks": "धन्यवाद,",
|
||||
"emails.otpSession.signature": "{{project}} टिम"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Team",
|
||||
"emails.verification.subject": "Account Verificatie",
|
||||
"emails.verification.hello": "Hoi {{user}},",
|
||||
"emails.verification.hello": "Hoi {{user}}",
|
||||
"emails.verification.body": "Volg deze link om uw e-mail te verifieren",
|
||||
"emails.verification.footer": "Als u geen aanvraag voor verificatie heeft gemaakt, kan u deze mail negeren",
|
||||
"emails.verification.thanks": "Bedankt,",
|
||||
"emails.verification.thanks": "Bedankt",
|
||||
"emails.verification.signature": "{{project}} team",
|
||||
"emails.magicSession.subject": "Login",
|
||||
"emails.magicSession.hello": "Hoi,",
|
||||
"emails.magicSession.body": "Volg deze link om in te loggen",
|
||||
"emails.magicSession.footer": "Als u geen aanvraag heeft gemaakt om met deze mail in te loggen, kan u deze mail negeren",
|
||||
"emails.magicSession.thanks": "Bedankt,",
|
||||
"emails.magicSession.thanks": "Bedankt",
|
||||
"emails.magicSession.signature": "{{project}} team",
|
||||
"emails.recovery.subject": "Wachtwoord Herinstellen",
|
||||
"emails.recovery.hello": "Hallo {{user}},",
|
||||
"emails.recovery.hello": "Hallo {{user}}",
|
||||
"emails.recovery.body": "Volg deze link om het wachtwoord van uw project {{project}} te wijzigen",
|
||||
"emails.recovery.footer": "Als u geen aanvraag heeft gemaakt om uw wachtwoord te wijzigen, kan u deze mail negeren",
|
||||
"emails.recovery.thanks": "Bedankt,",
|
||||
"emails.recovery.thanks": "Bedankt",
|
||||
"emails.recovery.signature": "{{project}} team",
|
||||
"emails.invitation.subject": "Uitnodiging van %s Team uit %s",
|
||||
"emails.invitation.hello": "Hallo,",
|
||||
"emails.invitation.body": "U ontvangt deze mail want u was uitgenodig door {{owner}} om lid van het {{team}} team te worden in {{project}} ",
|
||||
"emails.invitation.footer": "Als u niet geintereseerd bent, kan u deze mail negeren.",
|
||||
"emails.invitation.thanks": "Bedankt,",
|
||||
"emails.invitation.thanks": "Bedankt",
|
||||
"emails.invitation.signature": "{{project}} team",
|
||||
"locale.country.unknown": "Onbekend",
|
||||
"countries.af": "Afghanistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hongkong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croatië",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "Nieuw Zeeland",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Filippijnen",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunesië",
|
||||
"countries.tr": "Turkijë",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taiwan",
|
||||
"countries.tz": "Tanzania",
|
||||
"countries.ug": "Oeganda",
|
||||
"countries.ua": "Oekraïne",
|
||||
@@ -235,7 +232,7 @@
|
||||
"emails.magicSession.optionButton": "Klik op de knop hieronder om veilig in te loggen op uw {{project}} account. Deze zal verlopen over 1 uur.",
|
||||
"emails.magicSession.buttonText": "Meld u aan bij {{project}}",
|
||||
"emails.magicSession.clientInfo": "Deze aanmelding is aangevraagd met {{agentClient}} op {{agentDevice}} {{agentOs}}. Als u de aanmelding niet hebt aangevraagd, kunt u deze e-mail gerust negeren.",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"sms.verification.body": "{{secret}} is uw {{project}} verificatiecode.",
|
||||
"emails.magicSession.securityPhrase": "De beveiligingszin voor deze e-mail is {{phrase}}. U kunt deze e-mail vertrouwen als deze zin overeenkomt met de zin die getoond werd tijdens het aanmelden.",
|
||||
"emails.magicSession.optionUrl": "Als u zich niet kunt aanmelden via de bovenstaande knop, bezoekt u dan de volgende link:",
|
||||
"emails.otpSession.subject": "{{project}} Inloggen",
|
||||
@@ -245,4 +242,4 @@
|
||||
"emails.otpSession.securityPhrase": "De beveiligingszin voor deze e-mail is {{phrase}}. U kunt deze e-mail vertrouwen als deze zin overeenkomt met de zin die wordt getoond tijdens het inloggen.",
|
||||
"emails.otpSession.thanks": "Bedankt,",
|
||||
"emails.otpSession.signature": "{{project}} team"
|
||||
}
|
||||
}
|
||||
@@ -4,28 +4,28 @@
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Team",
|
||||
"emails.verification.subject": "Kontostadfesting",
|
||||
"emails.verification.hello": "Hallo {{user}},",
|
||||
"emails.verification.hello": "Hallo {{user}}",
|
||||
"emails.verification.body": "Følg denne lenkja for å bekrefta din e-postadresse.",
|
||||
"emails.verification.footer": "Om du ikkje bad om å bekrefta e-postadressa, kan du ignorera denne meldinga.",
|
||||
"emails.verification.thanks": "Takk,",
|
||||
"emails.verification.thanks": "Takk",
|
||||
"emails.verification.signature": "{{project}} team",
|
||||
"emails.magicSession.subject": "Pålogging",
|
||||
"emails.magicSession.hello": "Hei,",
|
||||
"emails.magicSession.body": "Følg denne lenkja for å logge på.",
|
||||
"emails.magicSession.footer": "Om du ikkje ba om å logge på med denne e-postadressa, kan du ignorera denne meldinga.",
|
||||
"emails.magicSession.thanks": "Takk,",
|
||||
"emails.magicSession.thanks": "Takk",
|
||||
"emails.magicSession.signature": "{{project}} team",
|
||||
"emails.recovery.subject": "Nullstilla passord",
|
||||
"emails.recovery.hello": "Hallo {{user}},",
|
||||
"emails.recovery.hello": "Hallo {{user}}",
|
||||
"emails.recovery.body": "Følg denne lenkja for å nullstilla ditt {{project}} passord.",
|
||||
"emails.recovery.footer": "Om du ikkje ba om å nullstilla passordet ditt, kan du ignorera denne meldinga.",
|
||||
"emails.recovery.thanks": "Takk,",
|
||||
"emails.recovery.thanks": "Takk",
|
||||
"emails.recovery.signature": "{{project}} team",
|
||||
"emails.invitation.subject": "Innbyding til %s Team ved %s",
|
||||
"emails.invitation.hello": "Hallo,",
|
||||
"emails.invitation.hello": "Hallo",
|
||||
"emails.invitation.body": "Denne meldinga ble sendt til deg fordi {{owner}} ynskja å invitera deg til å bli medlem av {{team}} team i {{project}}.",
|
||||
"emails.invitation.footer": "Om du ikkje er interessert, kan du ignorera denne meldinga.",
|
||||
"emails.invitation.thanks": "Takk,",
|
||||
"emails.invitation.thanks": "Takk",
|
||||
"emails.invitation.signature": "{{project}} team",
|
||||
"locale.country.unknown": "Ukjend",
|
||||
"countries.af": "Afghanistan",
|
||||
@@ -100,7 +100,6 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroatia",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -164,7 +163,6 @@
|
||||
"countries.nz": "New Zealand",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ps": "Palestina",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Filippinene",
|
||||
@@ -208,7 +206,6 @@
|
||||
"countries.tn": "Tunisia",
|
||||
"countries.tr": "Tyrkia",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tw": "Taiwan",
|
||||
"countries.tz": "Tanzania",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraina",
|
||||
@@ -245,10 +242,10 @@
|
||||
"emails.otpSession.thanks": "Takk,",
|
||||
"emails.otpSession.signature": "{{project}}-laget",
|
||||
"emails.certificate.subject": "Sertifikatfeil for %s",
|
||||
"emails.certificate.hello": "Hei,",
|
||||
"emails.certificate.hello": "Hei",
|
||||
"emails.certificate.body": "Sertifikatet for domenet ditt '{{domain}}' kunne ikkje opprettast. Dette er forsøk nr. {{attempt}}, og feilen blei forårsaka av: {{error}}",
|
||||
"emails.certificate.footer": "Førre sertifikatet ditt vil vere gyldig i 30 dagar sidan den første feilen. Vi rår sterkt til at du undersøkjer denne saka, elles vil domenet ditt ende opp utan gyldig SSL-kommunikasjon.",
|
||||
"emails.certificate.thanks": "Takk,",
|
||||
"emails.certificate.thanks": "Takk",
|
||||
"emails.certificate.signature": "{{project}} team",
|
||||
"sms.verification.body": "{{secret}}"
|
||||
}
|
||||
"sms.verification.body": "{{secret}} er verifiseringskoden din for {{project}}."
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user