Merge branch '1.4.x' of github.com:appwrite/appwrite into chore-cleanup-dockerfile

This commit is contained in:
Christy Jacob 2023-09-01 15:24:02 -04:00
commit 03073d50fc
3493 changed files with 72903 additions and 12241 deletions

34
.env
View file

@ -11,8 +11,9 @@ _APP_SYSTEM_RESPONSE_FORMAT=
_APP_OPTIONS_ABUSE=disabled
_APP_OPTIONS_FORCE_HTTPS=disabled
_APP_OPENSSL_KEY_V1=your-secret-key
_APP_DOMAIN=demo.appwrite.io
_APP_DOMAIN_TARGET=demo.appwrite.io
_APP_DOMAIN=localhost
_APP_DOMAIN_FUNCTIONS=functions.localhost
_APP_DOMAIN_TARGET=localhost
_APP_REDIS_HOST=redis
_APP_REDIS_PORT=6379
_APP_REDIS_PASS=
@ -63,14 +64,14 @@ _APP_STORAGE_PREVIEW_LIMIT=20000000
_APP_FUNCTIONS_SIZE_LIMIT=30000000
_APP_FUNCTIONS_TIMEOUT=900
_APP_FUNCTIONS_BUILD_TIMEOUT=900
_APP_FUNCTIONS_CONTAINERS=10
_APP_FUNCTIONS_CPUS=0
_APP_FUNCTIONS_MEMORY=0
_APP_FUNCTIONS_MEMORY_SWAP=0
_APP_FUNCTIONS_INACTIVE_THRESHOLD=60
OPEN_RUNTIMES_NETWORK=appwrite_runtimes
_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://appwrite-executor/v1
_APP_EXECUTOR_HOST=http://proxy/v1
_APP_FUNCTIONS_RUNTIMES=
_APP_MAINTENANCE_INTERVAL=86400
_APP_MAINTENANCE_RETENTION_CACHE=2592000
_APP_MAINTENANCE_RETENTION_EXECUTION=1209600
@ -78,12 +79,21 @@ _APP_MAINTENANCE_RETENTION_ABUSE=86400
_APP_MAINTENANCE_RETENTION_AUDIT=1209600
_APP_USAGE_AGGREGATION_INTERVAL=5
_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
_APP_GRAPHQL_MAX_DEPTH=3
DOCKERHUB_PULL_USERNAME=
DOCKERHUB_PULL_PASSWORD=
DOCKERHUB_PULL_EMAIL=
_APP_DOCKER_HUB_USERNAME=
_APP_DOCKER_HUB_PASSWORD=
_APP_VCS_GITHUB_APP_NAME=
_APP_VCS_GITHUB_PRIVATE_KEY=""
_APP_VCS_GITHUB_APP_ID=
_APP_VCS_GITHUB_CLIENT_ID=
_APP_VCS_GITHUB_CLIENT_SECRET=
_APP_VCS_GITHUB_WEBHOOK_SECRET=
_APP_MIGRATIONS_FIREBASE_CLIENT_ID=
_APP_MIGRATIONS_FIREBASE_CLIENT_SECRET=
_APP_ASSISTANT_OPENAI_API_KEY=

46
.github/workflows/publish.yml vendored Normal file
View file

@ -0,0 +1,46 @@
name: "Build and Publish"
on:
push:
tags:
- appwrite-*
jobs:
build-publish:
name: Build and Publish
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 2
submodules: recursive
ref: feat-db-pools-master
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: appwrite/cloud
tags: |
type=ref,event=tag
- name: Build & Publish to DockerHub
uses: docker/build-push-action@v4
with:
context: .
platforms: linux/amd64
build-args: |
VERSION=${{ steps.meta.outputs.version }}
VITE_APPWRITE_GROWTH_ENDPOINT=https://growth.appwrite.io/v1
VITE_GA_PROJECT=G-L7G2B6PLDS
VITE_CONSOLE_MODE=cloud
push: true
tags: ${{ steps.meta.outputs.tags }}

View file

@ -49,7 +49,9 @@ jobs:
sleep 30
- name: Doctor
run: docker compose exec -T appwrite doctor
run: |
docker compose logs appwrite
docker compose exec -T appwrite doctor
- name: Environment Variables
run: docker compose exec -T appwrite vars

2
.gitmodules vendored
View file

@ -1,4 +1,4 @@
[submodule "app/console"]
path = app/console
url = https://github.com/appwrite/console
branch = 2.3.4
branch = 3.0.2

View file

@ -1,5 +1,57 @@
# Version 1.4.2
## Fixes
## Changes
- Make installation confirmation case insensitive [#6097](https://github.com/appwrite/appwrite/pull/6097)
# Version 1.4.1
## Features
- Add upgrade task [#6068](https://github.com/appwrite/appwrite/pull/6068)
## Fixes
- Fix VCS/migration/assistant scopes [#6071](https://github.com/appwrite/appwrite/pull/6071)
- Add missing parameters required for custom email templates [#6077](https://github.com/appwrite/appwrite/pull/6077)
- Fix `Call to a member function label() on null` error when using a custom domain [#6079](https://github.com/appwrite/appwrite/pull/6079)
## Changes
- Update console to 3.0.2 [#6071](https://github.com/appwrite/appwrite/pull/6071)
# Version 1.4.0
## Features
- Add error attribute to indexes and attributes [#4575](https://github.com/appwrite/appwrite/pull/4575)
- Add new index validation rules [#5710](https://github.com/appwrite/appwrite/pull/5710)
- Added support for disallowing passwords that contain personal data [#5371](https://github.com/appwrite/appwrite/pull/5371)
## Fixes
- Fix cascading deletes across multiple levels [DB #269](https://github.com/utopia-php/database/pull/269)
- Fix identical two-way keys not throwing duplicate exceptions [DB #273](https://github.com/utopia-php/database/pull/273)
- Fix search wildcards [DB #279](https://github.com/utopia-php/database/pull/279)
- Fix permissions returning as an object instead of list [DB #281](https://github.com/utopia-php/database/pull/281)
- Fix missing collection not found error [DB #282](https://github.com/utopia-php/database/pull/282)
## Changes
- Improve permission indexes [DB #248](https://github.com/utopia-php/database/pull/248)
- Validators back-ported to Utopia [#5439](https://github.com/appwrite/appwrite/pull/5439)
# Version 1.3.8
## Changes
- Replace Appwrite executor with OpenRuntimes Executor [#4650](https://github.com/appwrite/appwrite/pull/4650)
- Add `_APP_CONNECTIONS_MAX` env var [#4673](https://github.com/appwrite/appwrite/pull/4673)
- Increase Traefik TCP + file limits [#4673](https://github.com/appwrite/appwrite/pull/4673)
- Store build output file size [#4844](https://github.com/appwrite/appwrite/pull/4844)
## Bugs
- Fix audit user internal [#5809](https://github.com/appwrite/appwrite/pull/5809)
@ -93,7 +145,6 @@
- Get default region from environment on project create [#4780](https://github.com/appwrite/appwrite/pull/4780)
- Fix french translation [#4782](https://github.com/appwrite/appwrite/pull/4782)
- Fix max mimetype size [#4814](https://github.com/appwrite/appwrite/pull/4814)
## Bugs
- Fix invited account verified status [#4776](https://github.com/appwrite/appwrite/pull/4776)

View file

@ -109,7 +109,9 @@ docker run --rm --interactive --tty \
### User Interface
Appwrite uses an internal micro-framework called Litespeed.js to build simple UI components in vanilla JS and [less](http://lesscss.org/) for compiling CSS code. To apply any of your changes to the UI, use the `gulp build` or `gulp less` commands, and restart the Appwrite main container to load the new static files to memory using `docker compose restart appwrite`.
Appwrite's UI is built with [Svelte](https://svelte.dev/), [Svelte Kit](https://kit.svelte.dev/), and the [Pink Design](https://github.com/appwrite/pink) component library. You can find the source code in the [Appwrite Console](https://github.com/appwrite/console) repository.
To contribute to the UI, head to the [Contribution Guide](https://github.com/appwrite/console/blob/main/CONTRIBUTING.md) of Appwrite Console.
### Get Started
@ -238,8 +240,8 @@ Appwrite stack is a combination of a variety of open-source technologies and too
- Redis - for managing cache and in-memory data (currently, we do not use Redis for persistent data).
- MariaDB - for database storage and queries.
- InfluxDB - for managing stats and time-series based data.
- Statsd - for sending data over UDP protocol (using Telegraf).
- InfluxDB - for managing stats and time-series based data
- Statsd - for sending data over UDP protocol (using Telegraf)
- ClamAV - for validating and scanning storage files.
- Imagemagick - for manipulating and managing image media files.
- Webp - for better compression of images on supporting clients.

View file

@ -29,7 +29,7 @@ ENV VITE_APPWRITE_GROWTH_ENDPOINT=$VITE_APPWRITE_GROWTH_ENDPOINT
RUN npm ci
RUN npm run build
FROM appwrite/base:0.2.2 as final
FROM appwrite/base:0.4.3 as final
LABEL maintainer="team@appwrite.io"
@ -51,6 +51,7 @@ COPY --from=node /usr/local/src/console/build /usr/src/code/console
# Add Source Code
COPY ./app /usr/src/code/app
COPY ./public /usr/src/code/public
COPY ./bin /usr/local/bin
COPY ./docs /usr/src/code/docs
COPY ./src /usr/src/code/src
@ -71,12 +72,12 @@ RUN mkdir -p /storage/uploads && \
# Executables
RUN chmod +x /usr/local/bin/doctor && \
chmod +x /usr/local/bin/maintenance && \
chmod +x /usr/local/bin/maintenance && \
chmod +x /usr/local/bin/usage && \
chmod +x /usr/local/bin/install && \
chmod +x /usr/local/bin/upgrade && \
chmod +x /usr/local/bin/migrate && \
chmod +x /usr/local/bin/realtime && \
chmod +x /usr/local/bin/executor && \
chmod +x /usr/local/bin/schedule && \
chmod +x /usr/local/bin/sdks && \
chmod +x /usr/local/bin/specs && \
@ -91,7 +92,17 @@ RUN chmod +x /usr/local/bin/doctor && \
chmod +x /usr/local/bin/worker-builds && \
chmod +x /usr/local/bin/worker-mails && \
chmod +x /usr/local/bin/worker-messaging && \
chmod +x /usr/local/bin/worker-webhooks
chmod +x /usr/local/bin/worker-webhooks && \
chmod +x /usr/local/bin/worker-migrations
# Cloud Executabless
RUN chmod +x /usr/local/bin/hamster && \
chmod +x /usr/local/bin/volume-sync && \
chmod +x /usr/local/bin/patch-delete-schedule-updated-at-attribute && \
chmod +x /usr/local/bin/patch-delete-project-collections && \
chmod +x /usr/local/bin/clear-card-cache && \
chmod +x /usr/local/bin/calc-users-stats && \
chmod +x /usr/local/bin/calc-tier-stats
# Letsencrypt Permissions
RUN mkdir -p /etc/letsencrypt/live/ && chmod -Rf 755 /etc/letsencrypt/live/

View file

@ -66,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.3.8
appwrite/appwrite:1.4.1
```
### Windows
@ -78,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.3.8
appwrite/appwrite:1.4.1
```
#### PowerShell
@ -88,7 +88,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.3.8
appwrite/appwrite:1.4.1
```
运行后,可以在浏览器上访问 http://localhost 找到 Appwrite 控制台。在非 Linux 的本机主机上完成安装后,服务器可能需要几分钟才能启动。

View file

@ -75,7 +75,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.3.8
appwrite/appwrite:1.4.1
```
### Windows
@ -87,7 +87,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.3.8
appwrite/appwrite:1.4.1
```
#### PowerShell
@ -97,7 +97,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.3.8
appwrite/appwrite:1.4.1
```
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.
@ -131,7 +131,7 @@ Choose from one of the providers below:
<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</b></sub></a>
<br /><sub><b>Akamai Compute</b></sub></a>
</a>
</td>
</tr>

View file

@ -9,6 +9,7 @@
| 1.1.x | :white_check_mark: |
| 1.2.x | :white_check_mark: |
| 1.3.x | :white_check_mark: |
| 1.4.x | :white_check_mark: |
## Reporting a Vulnerability

View file

@ -3,30 +3,193 @@
require_once __DIR__ . '/init.php';
require_once __DIR__ . '/controllers/general.php';
use Utopia\App;
use Appwrite\Event\Func;
use Appwrite\Platform\Appwrite;
use Utopia\CLI\CLI;
use Utopia\CLI\Console;
use Utopia\Database\Validator\Authorization;
use Utopia\Platform\Service;
use Utopia\App;
use Utopia\CLI\Console;
use Utopia\Cache\Adapter\Sharding;
use Utopia\Cache\Cache;
use Utopia\Config\Config;
use Utopia\Database\Database;
use Utopia\Database\Document;
use Utopia\Logger\Log;
use Utopia\Pools\Group;
use Utopia\Registry\Registry;
Authorization::disable();
$cli = new CLI();
CLI::setResource('register', fn()=>$register);
include 'tasks/doctor.php';
include 'tasks/maintenance.php';
include 'tasks/install.php';
include 'tasks/migrate.php';
include 'tasks/sdks.php';
include 'tasks/specs.php';
include 'tasks/ssl.php';
include 'tasks/vars.php';
include 'tasks/usage.php';
CLI::setResource('cache', function ($pools) {
$list = Config::getParam('pools-cache', []);
$adapters = [];
foreach ($list as $value) {
$adapters[] = $pools
->get($value)
->pop()
->getResource()
;
}
return new Cache(new Sharding($adapters));
}, ['pools']);
CLI::setResource('pools', function (Registry $register) {
return $register->get('pools');
}, ['register']);
CLI::setResource('dbForConsole', function ($pools, $cache) {
$sleep = 3;
$maxAttempts = 5;
$attempts = 0;
$ready = false;
do {
$attempts++;
try {
// Prepare database connection
$dbAdapter = $pools
->get('console')
->pop()
->getResource();
$dbForConsole = new Database($dbAdapter, $cache);
$dbForConsole->setNamespace('_console');
// Ensure tables exist
$collections = Config::getParam('collections', [])['console'];
$last = \array_key_last($collections);
if (!($dbForConsole->exists($dbForConsole->getDefaultDatabase(), $last))) { /** TODO cache ready variable using registry */
throw new Exception('Tables not ready yet.');
}
$ready = true;
} catch (\Exception $err) {
Console::warning($err->getMessage());
$pools->get('console')->reclaim();
sleep($sleep);
}
} while ($attempts < $maxAttempts && !$ready);
if (!$ready) {
throw new Exception("Console is not ready yet. Please try again later.");
}
return $dbForConsole;
}, ['pools', 'cache']);
CLI::setResource('getProjectDB', function (Group $pools, Database $dbForConsole, $cache) {
$databases = []; // TODO: @Meldiron This should probably be responsibility of utopia-php/pools
$getProjectDB = function (Document $project) use ($pools, $dbForConsole, $cache, &$databases) {
if ($project->isEmpty() || $project->getId() === 'console') {
return $dbForConsole;
}
$databaseName = $project->getAttribute('database');
if (isset($databases[$databaseName])) {
$database = $databases[$databaseName];
$database->setNamespace('_' . $project->getInternalId());
return $database;
}
$dbAdapter = $pools
->get($databaseName)
->pop()
->getResource();
$database = new Database($dbAdapter, $cache);
$databases[$databaseName] = $database;
$database->setNamespace('_' . $project->getInternalId());
return $database;
};
return $getProjectDB;
}, ['pools', 'dbForConsole', 'cache']);
CLI::setResource('influxdb', function (Registry $register) {
$client = $register->get('influxdb'); /** @var InfluxDB\Client $client */
$attempts = 0;
$max = 10;
$sleep = 1;
do { // check if telegraf database is ready
try {
$attempts++;
$database = $client->selectDB('telegraf');
if (in_array('telegraf', $client->listDatabases())) {
break; // leave the do-while if successful
}
} catch (\Throwable $th) {
Console::warning("InfluxDB not ready. Retrying connection ({$attempts})...");
if ($attempts >= $max) {
throw new \Exception('InfluxDB database not ready yet');
}
sleep($sleep);
}
} while ($attempts < $max);
return $database;
}, ['register']);
CLI::setResource('queueForFunctions', function (Group $pools) {
return new Func($pools->get('queue')->pop()->getResource());
}, ['pools']);
CLI::setResource('logError', function (Registry $register) {
return function (Throwable $error, string $namespace, string $action) use ($register) {
$logger = $register->get('logger');
if ($logger) {
$version = App::getEnv('_APP_VERSION', 'UNKNOWN');
$log = new Log();
$log->setNamespace($namespace);
$log->setServer(\gethostname());
$log->setVersion($version);
$log->setType(Log::TYPE_ERROR);
$log->setMessage($error->getMessage());
$log->addTag('code', $error->getCode());
$log->addTag('verboseType', get_class($error));
$log->addExtra('file', $error->getFile());
$log->addExtra('line', $error->getLine());
$log->addExtra('trace', $error->getTraceAsString());
$log->addExtra('detailedTrace', $error->getTrace());
$log->setAction($action);
$isProduction = App::getEnv('_APP_ENV', 'development') === 'production';
$log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING);
$responseCode = $logger->addLog($log);
Console::info('Usage stats log pushed with status code: ' . $responseCode);
}
Console::warning("Failed: {$error->getMessage()}");
Console::warning($error->getTraceAsString());
};
}, ['register']);
$platform = new Appwrite();
$platform->init(Service::TYPE_CLI);
$cli = $platform->getCli();
$cli
->task('version')
->desc('Get the server version')
->action(function () {
Console::log(App::getEnv('_APP_VERSION', 'UNKNOWN'));
->error()
->inject('error')
->action(function (Throwable $error) {
Console::error($error->getMessage());
});
$cli->run();

View file

@ -2,20 +2,21 @@
return [
// Codes based on: https://github.com/matomo-org/device-detector/blob/master/Parser/Client/Browser.php
'aa' => __DIR__ . '/browsers/avant.png',
'an' => __DIR__ . '/browsers/android-webview-beta.png',
'ch' => __DIR__ . '/browsers/chrome.png',
'ci' => __DIR__ . '/browsers/chrome.png', //Chrome Mobile iOS
'cm' => __DIR__ . '/browsers/chrome.png', //Chrome Mobile
'cr' => __DIR__ . '/browsers/chromium.png',
'ff' => __DIR__ . '/browsers/firefox.png',
'sf' => __DIR__ . '/browsers/safari.png',
'mf' => __DIR__ . '/browsers/safari.png',
'ps' => __DIR__ . '/browsers/edge.png',
'oi' => __DIR__ . '/browsers/edge.png',
'om' => __DIR__ . '/browsers/opera-mini.png',
'op' => __DIR__ . '/browsers/opera.png',
'on' => __DIR__ . '/browsers/opera.png',
'aa' => ['name' => 'Avant Browser', 'path' => __DIR__ . '/browsers/avant.png'],
'an' => ['name' => 'Android WebView Beta', 'path' => __DIR__ . '/browsers/android-webview-beta.png'],
'ch' => ['name' => 'Google Chrome', 'path' => __DIR__ . '/browsers/chrome.png'],
'ci' => ['name' => 'Google Chrome (iOS)', 'path' => __DIR__ . '/browsers/chrome.png'],
'cm' => ['name' => 'Google Chrome (Mobile)', 'path' => __DIR__ . '/browsers/chrome.png'],
'cr' => ['name' => 'Chromium', 'path' => __DIR__ . '/browsers/chromium.png'],
'ff' => ['name' => 'Mozilla Firefox', 'path' => __DIR__ . '/browsers/firefox.png'],
'sf' => ['name' => 'Safari', 'path' => __DIR__ . '/browsers/safari.png'],
'mf' => ['name' => 'Mobile Safari', 'path' => __DIR__ . '/browsers/safari.png'],
'ps' => ['name' => 'Microsoft Edge', 'path' => __DIR__ . '/browsers/edge.png'],
'oi' => ['name' => 'Microsoft Edge (iOS)', 'path' => __DIR__ . '/browsers/edge.png'],
'om' => ['name' => 'Opera Mini', 'path' => __DIR__ . '/browsers/opera-mini.png'],
'op' => ['name' => 'Opera', 'path' => __DIR__ . '/browsers/opera.png'],
'on' => ['name' => 'Opera (Next)', 'path' => __DIR__ . '/browsers/opera.png'],
/*
'36' => '360 Phone Browser',

View file

@ -1,20 +1,20 @@
<?php
return [
'amex' => __DIR__ . '/credit-cards/amex.png',
'argencard' => __DIR__ . '/credit-cards/argencard.png',
'cabal' => __DIR__ . '/credit-cards/cabal.png',
'censosud' => __DIR__ . '/credit-cards/consosud.png',
'diners' => __DIR__ . '/credit-cards/diners.png',
'discover' => __DIR__ . '/credit-cards/discover.png',
'elo' => __DIR__ . '/credit-cards/elo.png',
'hipercard' => __DIR__ . '/credit-cards/hipercard.png',
'jcb' => __DIR__ . '/credit-cards/jcb.png',
'mastercard' => __DIR__ . '/credit-cards/mastercard.png',
'naranja' => __DIR__ . '/credit-cards/naranja.png',
'targeta-shopping' => __DIR__ . '/credit-cards/tarjeta-shopping.png',
'union-china-pay' => __DIR__ . '/credit-cards/union-china-pay.png',
'visa' => __DIR__ . '/credit-cards/visa.png',
'mir' => __DIR__ . '/credit-cards/mir.png',
'maestro' => __DIR__ . '/credit-cards/maestro.png',
];
'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'],
'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'],
'hipercard' => ['name' => 'Hipercard', 'path' => __DIR__ . '/credit-cards/hipercard.png'],
'jcb' => ['name' => 'JCB', 'path' => __DIR__ . '/credit-cards/jcb.png'],
'mastercard' => ['name' => 'Mastercard', 'path' => __DIR__ . '/credit-cards/mastercard.png'],
'naranja' => ['name' => 'Naranja', 'path' => __DIR__ . '/credit-cards/naranja.png'],
'targeta-shopping' => ['name' => 'Tarjeta Shopping', 'path' => __DIR__ . '/credit-cards/tarjeta-shopping.png'],
'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']
];

View file

@ -1,198 +1,198 @@
<?php
return [
'af' => __DIR__ . '/flags/af.png',
'ao' => __DIR__ . '/flags/ao.png',
'al' => __DIR__ . '/flags/al.png',
'ad' => __DIR__ . '/flags/ad.png',
'ae' => __DIR__ . '/flags/ae.png',
'ar' => __DIR__ . '/flags/ar.png',
'am' => __DIR__ . '/flags/am.png',
'ag' => __DIR__ . '/flags/ag.png',
'au' => __DIR__ . '/flags/au.png',
'at' => __DIR__ . '/flags/at.png',
'az' => __DIR__ . '/flags/az.png',
'bi' => __DIR__ . '/flags/bi.png',
'be' => __DIR__ . '/flags/be.png',
'bj' => __DIR__ . '/flags/bj.png',
'bf' => __DIR__ . '/flags/bf.png',
'bd' => __DIR__ . '/flags/bd.png',
'bg' => __DIR__ . '/flags/bg.png',
'bh' => __DIR__ . '/flags/bh.png',
'bs' => __DIR__ . '/flags/bs.png',
'ba' => __DIR__ . '/flags/ba.png',
'by' => __DIR__ . '/flags/by.png',
'bz' => __DIR__ . '/flags/bz.png',
'bo' => __DIR__ . '/flags/bo.png',
'br' => __DIR__ . '/flags/br.png',
'bb' => __DIR__ . '/flags/bb.png',
'bn' => __DIR__ . '/flags/bn.png',
'bt' => __DIR__ . '/flags/bt.png',
'bw' => __DIR__ . '/flags/bw.png',
'cf' => __DIR__ . '/flags/cf.png',
'ca' => __DIR__ . '/flags/ca.png',
'ch' => __DIR__ . '/flags/ch.png',
'cl' => __DIR__ . '/flags/cl.png',
'cn' => __DIR__ . '/flags/cn.png',
'ci' => __DIR__ . '/flags/ci.png',
'cm' => __DIR__ . '/flags/cm.png',
'cd' => __DIR__ . '/flags/cd.png',
'cg' => __DIR__ . '/flags/cg.png',
'co' => __DIR__ . '/flags/co.png',
'km' => __DIR__ . '/flags/km.png',
'cv' => __DIR__ . '/flags/cv.png',
'cr' => __DIR__ . '/flags/cr.png',
'cu' => __DIR__ . '/flags/cu.png',
'cy' => __DIR__ . '/flags/cy.png',
'cz' => __DIR__ . '/flags/cz.png',
'de' => __DIR__ . '/flags/de.png',
'dj' => __DIR__ . '/flags/dj.png',
'dm' => __DIR__ . '/flags/dm.png',
'dk' => __DIR__ . '/flags/dk.png',
'do' => __DIR__ . '/flags/do.png',
'dz' => __DIR__ . '/flags/dz.png',
'ec' => __DIR__ . '/flags/ec.png',
'eg' => __DIR__ . '/flags/eg.png',
'er' => __DIR__ . '/flags/er.png',
'es' => __DIR__ . '/flags/es.png',
'ee' => __DIR__ . '/flags/ee.png',
'et' => __DIR__ . '/flags/et.png',
'fi' => __DIR__ . '/flags/fi.png',
'fj' => __DIR__ . '/flags/fj.png',
'fr' => __DIR__ . '/flags/fr.png',
'fm' => __DIR__ . '/flags/fm.png',
'ga' => __DIR__ . '/flags/ga.png',
'gb' => __DIR__ . '/flags/gb.png',
'ge' => __DIR__ . '/flags/ge.png',
'gh' => __DIR__ . '/flags/gh.png',
'gn' => __DIR__ . '/flags/gn.png',
'gm' => __DIR__ . '/flags/gm.png',
'gw' => __DIR__ . '/flags/gw.png',
'gq' => __DIR__ . '/flags/gq.png',
'gr' => __DIR__ . '/flags/gr.png',
'gd' => __DIR__ . '/flags/gd.png',
'gt' => __DIR__ . '/flags/gt.png',
'gy' => __DIR__ . '/flags/gy.png',
'hn' => __DIR__ . '/flags/hn.png',
'hr' => __DIR__ . '/flags/hr.png',
'ht' => __DIR__ . '/flags/ht.png',
'hu' => __DIR__ . '/flags/hu.png',
'id' => __DIR__ . '/flags/id.png',
'in' => __DIR__ . '/flags/in.png',
'ie' => __DIR__ . '/flags/ie.png',
'ir' => __DIR__ . '/flags/ir.png',
'iq' => __DIR__ . '/flags/iq.png',
'is' => __DIR__ . '/flags/is.png',
'il' => __DIR__ . '/flags/il.png',
'it' => __DIR__ . '/flags/it.png',
'jm' => __DIR__ . '/flags/jm.png',
'jo' => __DIR__ . '/flags/jo.png',
'jp' => __DIR__ . '/flags/jp.png',
'kz' => __DIR__ . '/flags/kz.png',
'ke' => __DIR__ . '/flags/ke.png',
'kg' => __DIR__ . '/flags/kg.png',
'kh' => __DIR__ . '/flags/kh.png',
'ki' => __DIR__ . '/flags/ki.png',
'kn' => __DIR__ . '/flags/kn.png',
'kr' => __DIR__ . '/flags/kr.png',
'kw' => __DIR__ . '/flags/kw.png',
'la' => __DIR__ . '/flags/la.png',
'lb' => __DIR__ . '/flags/lb.png',
'lr' => __DIR__ . '/flags/lr.png',
'ly' => __DIR__ . '/flags/ly.png',
'lc' => __DIR__ . '/flags/lc.png',
'li' => __DIR__ . '/flags/li.png',
'lk' => __DIR__ . '/flags/lk.png',
'ls' => __DIR__ . '/flags/ls.png',
'lt' => __DIR__ . '/flags/ls.png',
'lu' => __DIR__ . '/flags/lu.png',
'lv' => __DIR__ . '/flags/lv.png',
'ma' => __DIR__ . '/flags/ma.png',
'mc' => __DIR__ . '/flags/mc.png',
'md' => __DIR__ . '/flags/md.png',
'mg' => __DIR__ . '/flags/mg.png',
'mv' => __DIR__ . '/flags/mv.png',
'mx' => __DIR__ . '/flags/mx.png',
'mh' => __DIR__ . '/flags/mh.png',
'mk' => __DIR__ . '/flags/mk.png',
'ml' => __DIR__ . '/flags/ml.png',
'mt' => __DIR__ . '/flags/mt.png',
'mm' => __DIR__ . '/flags/mm.png',
'me' => __DIR__ . '/flags/me.png',
'mn' => __DIR__ . '/flags/mn.png',
'mz' => __DIR__ . '/flags/mz.png',
'mr' => __DIR__ . '/flags/mr.png',
'mu' => __DIR__ . '/flags/mu.png',
'mw' => __DIR__ . '/flags/mw.png',
'my' => __DIR__ . '/flags/my.png',
'na' => __DIR__ . '/flags/na.png',
'ne' => __DIR__ . '/flags/ne.png',
'ng' => __DIR__ . '/flags/ng.png',
'ni' => __DIR__ . '/flags/ni.png',
'nl' => __DIR__ . '/flags/nl.png',
'no' => __DIR__ . '/flags/no.png',
'np' => __DIR__ . '/flags/np.png',
'nr' => __DIR__ . '/flags/nr.png',
'nz' => __DIR__ . '/flags/nz.png',
'om' => __DIR__ . '/flags/om.png',
'pk' => __DIR__ . '/flags/pk.png',
'pa' => __DIR__ . '/flags/pa.png',
'pe' => __DIR__ . '/flags/pe.png',
'ph' => __DIR__ . '/flags/ph.png',
'pw' => __DIR__ . '/flags/pw.png',
'pg' => __DIR__ . '/flags/pg.png',
'pl' => __DIR__ . '/flags/pl.png',
'kp' => __DIR__ . '/flags/kp.png',
'pt' => __DIR__ . '/flags/pt.png',
'py' => __DIR__ . '/flags/py.png',
'qa' => __DIR__ . '/flags/qa.png',
'ro' => __DIR__ . '/flags/ro.png',
'ru' => __DIR__ . '/flags/ru.png',
'rw' => __DIR__ . '/flags/rw.png',
'sa' => __DIR__ . '/flags/sa.png',
'sd' => __DIR__ . '/flags/sd.png',
'sn' => __DIR__ . '/flags/sn.png',
'sg' => __DIR__ . '/flags/sg.png',
'sb' => __DIR__ . '/flags/sb.png',
'sl' => __DIR__ . '/flags/sl.png',
'sv' => __DIR__ . '/flags/sv.png',
'sm' => __DIR__ . '/flags/sm.png',
'so' => __DIR__ . '/flags/so.png',
'rs' => __DIR__ . '/flags/rs.png',
'ss' => __DIR__ . '/flags/ss.png',
'st' => __DIR__ . '/flags/st.png',
'sr' => __DIR__ . '/flags/sr.png',
'sk' => __DIR__ . '/flags/sk.png',
'si' => __DIR__ . '/flags/si.png',
'se' => __DIR__ . '/flags/se.png',
'sz' => __DIR__ . '/flags/sz.png',
'sc' => __DIR__ . '/flags/sc.png',
'sy' => __DIR__ . '/flags/sy.png',
'td' => __DIR__ . '/flags/td.png',
'tg' => __DIR__ . '/flags/tg.png',
'th' => __DIR__ . '/flags/th.png',
'tj' => __DIR__ . '/flags/tj.png',
'tm' => __DIR__ . '/flags/tm.png',
'tl' => __DIR__ . '/flags/tl.png',
'to' => __DIR__ . '/flags/to.png',
'tt' => __DIR__ . '/flags/tt.png',
'tn' => __DIR__ . '/flags/tn.png',
'tr' => __DIR__ . '/flags/tr.png',
'tv' => __DIR__ . '/flags/tv.png',
'tz' => __DIR__ . '/flags/tz.png',
'ug' => __DIR__ . '/flags/ug.png',
'ua' => __DIR__ . '/flags/ua.png',
'uy' => __DIR__ . '/flags/uy.png',
'us' => __DIR__ . '/flags/us.png',
'uz' => __DIR__ . '/flags/uz.png',
'va' => __DIR__ . '/flags/va.png',
'vc' => __DIR__ . '/flags/vc.png',
've' => __DIR__ . '/flags/ve.png',
'vn' => __DIR__ . '/flags/vn.png',
'vu' => __DIR__ . '/flags/vu.png',
'ws' => __DIR__ . '/flags/ws.png',
'ye' => __DIR__ . '/flags/ye.png',
'za' => __DIR__ . '/flags/za.png',
'zm' => __DIR__ . '/flags/zm.png',
'zw' => __DIR__ . '/flags/zw.png',
'af' => ['name' => 'Afghanistan', 'path' => __DIR__ . '/flags/af.png'],
'ao' => ['name' => 'Angola', 'path' => __DIR__ . '/flags/ao.png'],
'al' => ['name' => 'Albania', 'path' => __DIR__ . '/flags/al.png'],
'ad' => ['name' => 'Andorra', 'path' => __DIR__ . '/flags/ad.png'],
'ae' => ['name' => 'United Arab Emirates', 'path' => __DIR__ . '/flags/ae.png'],
'ar' => ['name' => 'Argentina', 'path' => __DIR__ . '/flags/ar.png'],
'am' => ['name' => 'Armenia', 'path' => __DIR__ . '/flags/am.png'],
'ag' => ['name' => 'Antigua and Barbuda', 'path' => __DIR__ . '/flags/ag.png'],
'au' => ['name' => 'Australia', 'path' => __DIR__ . '/flags/au.png'],
'at' => ['name' => 'Austria', 'path' => __DIR__ . '/flags/at.png'],
'az' => ['name' => 'Azerbaijan', 'path' => __DIR__ . '/flags/az.png'],
'bi' => ['name' => 'Burundi', 'path' => __DIR__ . '/flags/bi.png'],
'be' => ['name' => 'Belgium', 'path' => __DIR__ . '/flags/be.png'],
'bj' => ['name' => 'Benin', 'path' => __DIR__ . '/flags/bj.png'],
'bf' => ['name' => 'Burkina Faso', 'path' => __DIR__ . '/flags/bf.png'],
'bd' => ['name' => 'Bangladesh', 'path' => __DIR__ . '/flags/bd.png'],
'bg' => ['name' => 'Bulgaria', 'path' => __DIR__ . '/flags/bg.png'],
'bh' => ['name' => 'Bahrain', 'path' => __DIR__ . '/flags/bh.png'],
'bs' => ['name' => 'Bahamas', 'path' => __DIR__ . '/flags/bs.png'],
'ba' => ['name' => 'Bosnia and Herzegovina', 'path' => __DIR__ . '/flags/ba.png'],
'by' => ['name' => 'Belarus', 'path' => __DIR__ . '/flags/by.png'],
'bz' => ['name' => 'Belize', 'path' => __DIR__ . '/flags/bz.png'],
'bo' => ['name' => 'Bolivia', 'path' => __DIR__ . '/flags/bo.png'],
'br' => ['name' => 'Brazil', 'path' => __DIR__ . '/flags/br.png'],
'bb' => ['name' => 'Barbados', 'path' => __DIR__ . '/flags/bb.png'],
'bn' => ['name' => 'Brunei Darussalam', 'path' => __DIR__ . '/flags/bn.png'],
'bt' => ['name' => 'Bhutan', 'path' => __DIR__ . '/flags/bt.png'],
'bw' => ['name' => 'Botswana', 'path' => __DIR__ . '/flags/bw.png'],
'cf' => ['name' => 'Central African Republic', 'path' => __DIR__ . '/flags/cf.png'],
'ca' => ['name' => 'Canada', 'path' => __DIR__ . '/flags/ca.png'],
'ch' => ['name' => 'Switzerland', 'path' => __DIR__ . '/flags/ch.png'],
'cl' => ['name' => 'Chile', 'path' => __DIR__ . '/flags/cl.png'],
'cn' => ['name' => 'China', 'path' => __DIR__ . '/flags/cn.png'],
'ci' => ['name' => 'Côte d\'Ivoire', 'path' => __DIR__ . '/flags/ci.png'],
'cm' => ['name' => 'Cameroon', 'path' => __DIR__ . '/flags/cm.png'],
'cd' => ['name' => 'Democratic Republic of the Congo', 'path' => __DIR__ . '/flags/cd.png'],
'cg' => ['name' => 'Republic of the Congo', 'path' => __DIR__ . '/flags/cg.png'],
'co' => ['name' => 'Colombia', 'path' => __DIR__ . '/flags/co.png'],
'km' => ['name' => 'Comoros', 'path' => __DIR__ . '/flags/km.png'],
'cv' => ['name' => 'Cape Verde', 'path' => __DIR__ . '/flags/cv.png'],
'cr' => ['name' => 'Costa Rica', 'path' => __DIR__ . '/flags/cr.png'],
'cu' => ['name' => 'Cuba', 'path' => __DIR__ . '/flags/cu.png'],
'cy' => ['name' => 'Cyprus', 'path' => __DIR__ . '/flags/cy.png'],
'cz' => ['name' => 'Czech Republic', 'path' => __DIR__ . '/flags/cz.png'],
'de' => ['name' => 'Germany', 'path' => __DIR__ . '/flags/de.png'],
'dj' => ['name' => 'Djibouti', 'path' => __DIR__ . '/flags/dj.png'],
'dm' => ['name' => 'Dominica', 'path' => __DIR__ . '/flags/dm.png'],
'dk' => ['name' => 'Denmark', 'path' => __DIR__ . '/flags/dk.png'],
'do' => ['name' => 'Dominican Republic', 'path' => __DIR__ . '/flags/do.png'],
'dz' => ['name' => 'Algeria', 'path' => __DIR__ . '/flags/dz.png'],
'ec' => ['name' => 'Ecuador', 'path' => __DIR__ . '/flags/ec.png'],
'eg' => ['name' => 'Egypt', 'path' => __DIR__ . '/flags/eg.png'],
'er' => ['name' => 'Eritrea', 'path' => __DIR__ . '/flags/er.png'],
'es' => ['name' => 'Spain', 'path' => __DIR__ . '/flags/es.png'],
'ee' => ['name' => 'Estonia', 'path' => __DIR__ . '/flags/ee.png'],
'et' => ['name' => 'Ethiopia', 'path' => __DIR__ . '/flags/et.png'],
'fi' => ['name' => 'Finland', 'path' => __DIR__ . '/flags/fi.png'],
'fj' => ['name' => 'Fiji', 'path' => __DIR__ . '/flags/fj.png'],
'fr' => ['name' => 'France', 'path' => __DIR__ . '/flags/fr.png'],
'fm' => ['name' => 'Micronesia (Federated States of)', 'path' => __DIR__ . '/flags/fm.png'],
'ga' => ['name' => 'Gabon', 'path' => __DIR__ . '/flags/ga.png'],
'gb' => ['name' => 'United Kingdom', 'path' => __DIR__ . '/flags/gb.png'],
'ge' => ['name' => 'Georgia', 'path' => __DIR__ . '/flags/ge.png'],
'gh' => ['name' => 'Ghana', 'path' => __DIR__ . '/flags/gh.png'],
'gn' => ['name' => 'Guinea', 'path' => __DIR__ . '/flags/gn.png'],
'gm' => ['name' => 'Gambia', 'path' => __DIR__ . '/flags/gm.png'],
'gw' => ['name' => 'Guinea-Bissau', 'path' => __DIR__ . '/flags/gw.png'],
'gq' => ['name' => 'Equatorial Guinea', 'path' => __DIR__ . '/flags/gq.png'],
'gr' => ['name' => 'Greece', 'path' => __DIR__ . '/flags/gr.png'],
'gd' => ['name' => 'Grenada', 'path' => __DIR__ . '/flags/gd.png'],
'gt' => ['name' => 'Guatemala', 'path' => __DIR__ . '/flags/gt.png'],
'gy' => ['name' => 'Guyana', 'path' => __DIR__ . '/flags/gy.png'],
'hn' => ['name' => 'Honduras', 'path' => __DIR__ . '/flags/hn.png'],
'hr' => ['name' => 'Croatia', 'path' => __DIR__ . '/flags/hr.png'],
'ht' => ['name' => 'Haiti', 'path' => __DIR__ . '/flags/ht.png'],
'hu' => ['name' => 'Hungary', 'path' => __DIR__ . '/flags/hu.png'],
'id' => ['name' => 'Indonesia', 'path' => __DIR__ . '/flags/id.png'],
'in' => ['name' => 'India', 'path' => __DIR__ . '/flags/in.png'],
'ie' => ['name' => 'Ireland', 'path' => __DIR__ . '/flags/ie.png'],
'ir' => ['name' => 'Iran (Islamic Republic of)', 'path' => __DIR__ . '/flags/ir.png'],
'iq' => ['name' => 'Iraq', 'path' => __DIR__ . '/flags/iq.png'],
'is' => ['name' => 'Iceland', 'path' => __DIR__ . '/flags/is.png'],
'il' => ['name' => 'Israel', 'path' => __DIR__ . '/flags/il.png'],
'it' => ['name' => 'Italy', 'path' => __DIR__ . '/flags/it.png'],
'jm' => ['name' => 'Jamaica', 'path' => __DIR__ . '/flags/jm.png'],
'jo' => ['name' => 'Jordan', 'path' => __DIR__ . '/flags/jo.png'],
'jp' => ['name' => 'Japan', 'path' => __DIR__ . '/flags/jp.png'],
'kz' => ['name' => 'Kazakhstan', 'path' => __DIR__ . '/flags/kz.png'],
'ke' => ['name' => 'Kenya', 'path' => __DIR__ . '/flags/ke.png'],
'kg' => ['name' => 'Kyrgyzstan', 'path' => __DIR__ . '/flags/kg.png'],
'kh' => ['name' => 'Cambodia', 'path' => __DIR__ . '/flags/kh.png'],
'ki' => ['name' => 'Kiribati', 'path' => __DIR__ . '/flags/ki.png'],
'kn' => ['name' => 'Saint Kitts and Nevis', 'path' => __DIR__ . '/flags/kn.png'],
'kr' => ['name' => 'South Korea', 'path' => __DIR__ . '/flags/kr.png'],
'kw' => ['name' => 'Kuwait', 'path' => __DIR__ . '/flags/kw.png'],
'la' => ['name' => 'Lao People\'s Democratic Republic', 'path' => __DIR__ . '/flags/la.png'],
'lb' => ['name' => 'Lebanon', 'path' => __DIR__ . '/flags/lb.png'],
'lr' => ['name' => 'Liberia', 'path' => __DIR__ . '/flags/lr.png'],
'ly' => ['name' => 'Libya', 'path' => __DIR__ . '/flags/ly.png'],
'lc' => ['name' => 'Saint Lucia', 'path' => __DIR__ . '/flags/lc.png'],
'li' => ['name' => 'Liechtenstein', 'path' => __DIR__ . '/flags/li.png'],
'lk' => ['name' => 'Sri Lanka', 'path' => __DIR__ . '/flags/lk.png'],
'ls' => ['name' => 'Lesotho', 'path' => __DIR__ . '/flags/ls.png'],
'lt' => ['name' => 'Lithuania', 'path' => __DIR__ . '/flags/lt.png'],
'lu' => ['name' => 'Luxembourg', 'path' => __DIR__ . '/flags/lu.png'],
'lv' => ['name' => 'Latvia', 'path' => __DIR__ . '/flags/lv.png'],
'ma' => ['name' => 'Morocco', 'path' => __DIR__ . '/flags/ma.png'],
'mc' => ['name' => 'Monaco', 'path' => __DIR__ . '/flags/mc.png'],
'md' => ['name' => 'Moldova', 'path' => __DIR__ . '/flags/md.png'],
'mg' => ['name' => 'Madagascar', 'path' => __DIR__ . '/flags/mg.png'],
'mv' => ['name' => 'Maldives', 'path' => __DIR__ . '/flags/mv.png'],
'mx' => ['name' => 'Mexico', 'path' => __DIR__ . '/flags/mx.png'],
'mh' => ['name' => 'Marshall Islands', 'path' => __DIR__ . '/flags/mh.png'],
'mk' => ['name' => 'North Macedonia', 'path' => __DIR__ . '/flags/mk.png'],
'ml' => ['name' => 'Mali', 'path' => __DIR__ . '/flags/ml.png'],
'mt' => ['name' => 'Malta', 'path' => __DIR__ . '/flags/mt.png'],
'mm' => ['name' => 'Myanmar', 'path' => __DIR__ . '/flags/mm.png'],
'me' => ['name' => 'Montenegro', 'path' => __DIR__ . '/flags/me.png'],
'mn' => ['name' => 'Mongolia', 'path' => __DIR__ . '/flags/mn.png'],
'mz' => ['name' => 'Mozambique', 'path' => __DIR__ . '/flags/mz.png'],
'mr' => ['name' => 'Mauritania', 'path' => __DIR__ . '/flags/mr.png'],
'mu' => ['name' => 'Mauritius', 'path' => __DIR__ . '/flags/mu.png'],
'mw' => ['name' => 'Malawi', 'path' => __DIR__ . '/flags/mw.png'],
'my' => ['name' => 'Malaysia', 'path' => __DIR__ . '/flags/my.png'],
'na' => ['name' => 'Namibia', 'path' => __DIR__ . '/flags/na.png'],
'ne' => ['name' => 'Niger', 'path' => __DIR__ . '/flags/ne.png'],
'ng' => ['name' => 'Nigeria', 'path' => __DIR__ . '/flags/ng.png'],
'ni' => ['name' => 'Nicaragua', 'path' => __DIR__ . '/flags/ni.png'],
'nl' => ['name' => 'Netherlands', 'path' => __DIR__ . '/flags/nl.png'],
'no' => ['name' => 'Norway', 'path' => __DIR__ . '/flags/no.png'],
'np' => ['name' => 'Nepal', 'path' => __DIR__ . '/flags/np.png'],
'nr' => ['name' => 'Nauru', 'path' => __DIR__ . '/flags/nr.png'],
'nz' => ['name' => 'New Zealand', 'path' => __DIR__ . '/flags/nz.png'],
'om' => ['name' => 'Oman', 'path' => __DIR__ . '/flags/om.png'],
'pk' => ['name' => 'Pakistan', 'path' => __DIR__ . '/flags/pk.png'],
'pa' => ['name' => 'Panama', 'path' => __DIR__ . '/flags/pa.png'],
'pe' => ['name' => 'Peru', 'path' => __DIR__ . '/flags/pe.png'],
'ph' => ['name' => 'Philippines', 'path' => __DIR__ . '/flags/ph.png'],
'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'],
'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'],
'qa' => ['name' => 'Qatar', 'path' => __DIR__ . '/flags/qa.png'],
'ro' => ['name' => 'Romania', 'path' => __DIR__ . '/flags/ro.png'],
'ru' => ['name' => 'Russia', 'path' => __DIR__ . '/flags/ru.png'],
'rw' => ['name' => 'Rwanda', 'path' => __DIR__ . '/flags/rw.png'],
'sa' => ['name' => 'Saudi Arabia', 'path' => __DIR__ . '/flags/sa.png'],
'sd' => ['name' => 'Sudan', 'path' => __DIR__ . '/flags/sd.png'],
'sn' => ['name' => 'Senegal', 'path' => __DIR__ . '/flags/sn.png'],
'sg' => ['name' => 'Singapore', 'path' => __DIR__ . '/flags/sg.png'],
'sb' => ['name' => 'Solomon Islands', 'path' => __DIR__ . '/flags/sb.png'],
'sl' => ['name' => 'Sierra Leone', 'path' => __DIR__ . '/flags/sl.png'],
'sv' => ['name' => 'El Salvador', 'path' => __DIR__ . '/flags/sv.png'],
'sm' => ['name' => 'San Marino', 'path' => __DIR__ . '/flags/sm.png'],
'so' => ['name' => 'Somalia', 'path' => __DIR__ . '/flags/so.png'],
'rs' => ['name' => 'Serbia', 'path' => __DIR__ . '/flags/rs.png'],
'ss' => ['name' => 'South Sudan', 'path' => __DIR__ . '/flags/ss.png'],
'st' => ['name' => 'Sao Tome and Principe', 'path' => __DIR__ . '/flags/st.png'],
'sr' => ['name' => 'Suriname', 'path' => __DIR__ . '/flags/sr.png'],
'sk' => ['name' => 'Slovakia', 'path' => __DIR__ . '/flags/sk.png'],
'si' => ['name' => 'Slovenia', 'path' => __DIR__ . '/flags/si.png'],
'se' => ['name' => 'Sweden', 'path' => __DIR__ . '/flags/se.png'],
'sz' => ['name' => 'Eswatini', 'path' => __DIR__ . '/flags/sz.png'],
'sc' => ['name' => 'Seychelles', 'path' => __DIR__ . '/flags/sc.png'],
'sy' => ['name' => 'Syria', 'path' => __DIR__ . '/flags/sy.png'],
'td' => ['name' => 'Chad', 'path' => __DIR__ . '/flags/td.png'],
'tg' => ['name' => 'Togo', 'path' => __DIR__ . '/flags/tg.png'],
'th' => ['name' => 'Thailand', 'path' => __DIR__ . '/flags/th.png'],
'tj' => ['name' => 'Tajikistan', 'path' => __DIR__ . '/flags/tj.png'],
'tm' => ['name' => 'Turkmenistan', 'path' => __DIR__ . '/flags/tm.png'],
'tl' => ['name' => 'Timor-Leste', 'path' => __DIR__ . '/flags/tl.png'],
'to' => ['name' => 'Tonga', 'path' => __DIR__ . '/flags/to.png'],
'tt' => ['name' => 'Trinidad and Tobago', 'path' => __DIR__ . '/flags/tt.png'],
'tn' => ['name' => 'Tunisia', 'path' => __DIR__ . '/flags/tn.png'],
'tr' => ['name' => 'Turkey', 'path' => __DIR__ . '/flags/tr.png'],
'tv' => ['name' => 'Tuvalu', 'path' => __DIR__ . '/flags/tv.png'],
'tz' => ['name' => 'Tanzania', 'path' => __DIR__ . '/flags/tz.png'],
'ug' => ['name' => 'Uganda', 'path' => __DIR__ . '/flags/ug.png'],
'ua' => ['name' => 'Ukraine', 'path' => __DIR__ . '/flags/ua.png'],
'uy' => ['name' => 'Uruguay', 'path' => __DIR__ . '/flags/uy.png'],
'us' => ['name' => 'United States', 'path' => __DIR__ . '/flags/us.png'],
'uz' => ['name' => 'Uzbekistan', 'path' => __DIR__ . '/flags/uz.png'],
'va' => ['name' => 'Vatican City', 'path' => __DIR__ . '/flags/va.png'],
'vc' => ['name' => 'Saint Vincent and the Grenadines', 'path' => __DIR__ . '/flags/vc.png'],
've' => ['name' => 'Venezuela', 'path' => __DIR__ . '/flags/ve.png'],
'vn' => ['name' => 'Vietnam', 'path' => __DIR__ . '/flags/vn.png'],
'vu' => ['name' => 'Vanuatu', 'path' => __DIR__ . '/flags/vu.png'],
'ws' => ['name' => 'Samoa', 'path' => __DIR__ . '/flags/ws.png'],
'ye' => ['name' => 'Yemen', 'path' => __DIR__ . '/flags/ye.png'],
'za' => ['name' => 'South Africa', 'path' => __DIR__ . '/flags/za.png'],
'zm' => ['name' => 'Zambia', 'path' => __DIR__ . '/flags/zm.png'],
'zw' => ['name' => 'Zimbabwe', 'path' => __DIR__ . '/flags/zw.png'],
];

File diff suppressed because it is too large Load diff

View file

@ -88,11 +88,21 @@ return [
'description' => 'The request cannot be fulfilled with the current protocol. Please check the value of the _APP_OPTIONS_FORCE_HTTPS environment variable.',
'code' => 500,
],
Exception::GENERAL_CODES_DISABLED => [
'name' => Exception::GENERAL_CODES_DISABLED,
'description' => 'Invitation codes are disabled on this server. Please contact the server administrator.',
'code' => 500,
],
Exception::GENERAL_USAGE_DISABLED => [
'name' => Exception::GENERAL_USAGE_DISABLED,
'description' => 'Usage stats is not configured. Please check the value of the _APP_USAGE_STATS environment variable of your Appwrite server.',
'code' => 501,
],
Exception::GENERAL_NOT_IMPLEMENTED => [
'name' => Exception::GENERAL_NOT_IMPLEMENTED,
'description' => 'This method was not fully implemented yet. If you believe this is a mistake, please upgrade your Appwrite server version.',
'code' => 405,
],
/** User Errors */
Exception::USER_COUNT_EXCEEDED => [
@ -107,12 +117,12 @@ return [
],
Exception::USER_ALREADY_EXISTS => [
'name' => Exception::USER_ALREADY_EXISTS,
'description' => 'A user with the same id, email, or phone already exists in your project.',
'description' => 'A user with the same id, email, or phone already exists in this project.',
'code' => 409,
],
Exception::USER_BLOCKED => [
'name' => Exception::USER_BLOCKED,
'description' => 'The current user has been blocked.',
'description' => 'The current user has been blocked. You can unblock the user by making a request to the User API\'s "Update User Status" endpoint or in the Appwrite Console\'s Auth section.',
'code' => 401,
],
Exception::USER_INVALID_TOKEN => [
@ -130,6 +140,11 @@ return [
'description' => 'Console registration is restricted to specific emails. Contact your administrator for more information.',
'code' => 401,
],
Exception::USER_INVALID_CODE => [
'name' => Exception::USER_INVALID_CODE,
'description' => 'The specified code is not valid. Contact your administrator for more information.',
'code' => 401,
],
Exception::USER_IP_NOT_WHITELISTED => [
'name' => Exception::USER_IP_NOT_WHITELISTED,
'description' => 'Console registration is restricted to specific IPs. Contact your administrator for more information.',
@ -165,11 +180,26 @@ return [
'description' => 'Passwords do not match. Please check the password and confirm password.',
'code' => 400,
],
Exception::USER_PASSWORD_RECENTLY_USED => [
'name' => Exception::USER_PASSWORD_RECENTLY_USED,
'description' => 'The password you are trying to use is similar to your previous password. For your security, please choose a different password and try again.',
'code' => 400,
],
Exception::USER_PASSWORD_PERSONAL_DATA => [
'name' => Exception::USER_PASSWORD_PERSONAL_DATA,
'description' => 'The password you are trying to use contains references to your name, email, phone or userID. For your security, please choose a different password and try again.',
'code' => 400,
],
Exception::USER_SESSION_NOT_FOUND => [
'name' => Exception::USER_SESSION_NOT_FOUND,
'description' => 'The current user session could not be found.',
'code' => 404,
],
Exception::USER_IDENTITY_NOT_FOUND => [
'name' => Exception::USER_IDENTITY_NOT_FOUND,
'description' => 'The identity could not be found. Please sign in with OAuth provider to create identity first.',
'code' => 404,
],
Exception::USER_UNAUTHORIZED => [
'name' => Exception::USER_UNAUTHORIZED,
'description' => 'The current user is not authorized to perform the requested action.',
@ -195,6 +225,21 @@ return [
'description' => 'Missing ID from OAuth2 provider.',
'code' => 400,
],
Exception::USER_OAUTH2_BAD_REQUEST => [
'name' => Exception::USER_OAUTH2_BAD_REQUEST,
'description' => 'OAuth2 provider rejected the bad request.',
'code' => 400,
],
Exception::USER_OAUTH2_UNAUTHORIZED => [
'name' => Exception::USER_OAUTH2_UNAUTHORIZED,
'description' => 'OAuth2 provider rejected the unauthorized request.',
'code' => 401,
],
Exception::USER_OAUTH2_PROVIDER_ERROR => [
'name' => Exception::USER_OAUTH2_PROVIDER_ERROR,
'description' => 'OAuth2 provider returned some error.',
'code' => 424,
],
/** Teams */
Exception::TEAM_NOT_FOUND => [
@ -214,7 +259,7 @@ return [
],
Exception::TEAM_INVALID_SECRET => [
'name' => Exception::TEAM_INVALID_SECRET,
'description' => 'The team invitation secret is invalid.',
'description' => 'The team invitation secret is invalid. Please request a new invitation and try again.',
'code' => 401,
],
Exception::TEAM_MEMBERSHIP_MISMATCH => [
@ -229,7 +274,7 @@ return [
],
Exception::TEAM_ALREADY_EXISTS => [
'name' => Exception::TEAM_ALREADY_EXISTS,
'description' => 'Team with requested ID already exists.',
'description' => 'Team with requested ID already exists. Please choose a different ID and try again.',
'code' => 409,
],
@ -241,7 +286,7 @@ return [
],
Exception::MEMBERSHIP_ALREADY_CONFIRMED => [
'name' => Exception::MEMBERSHIP_ALREADY_CONFIRMED,
'description' => 'Membership already confirmed',
'description' => 'Membership is already confirmed.',
'code' => 409,
],
@ -273,6 +318,11 @@ return [
],
/** Storage */
Exception::STORAGE_FILE_ALREADY_EXISTS => [
'name' => Exception::STORAGE_FILE_ALREADY_EXISTS,
'description' => 'A storage file with the requested ID already exists.',
'code' => 409,
],
Exception::STORAGE_FILE_NOT_FOUND => [
'name' => Exception::STORAGE_FILE_NOT_FOUND,
'description' => 'The requested file could not be found.',
@ -305,7 +355,7 @@ return [
],
Exception::STORAGE_BUCKET_ALREADY_EXISTS => [
'name' => Exception::STORAGE_BUCKET_ALREADY_EXISTS,
'description' => 'A storage bucket with the requested ID already exists.',
'description' => 'A storage bucket with the requested ID already exists. Try again with a different ID or use "unique()" to generate a unique ID.',
'code' => 409,
],
Exception::STORAGE_BUCKET_NOT_FOUND => [
@ -325,7 +375,34 @@ return [
],
Exception::STORAGE_INVALID_APPWRITE_ID => [
'name' => Exception::STORAGE_INVALID_APPWRITE_ID,
'description' => 'The value for x-appwrite-id header is invalid. Please check the value of the x-appwrite-id header is valid id and not unique().',
'description' => 'The value for x-appwrite-id header is invalid. Please check the value of the x-appwrite-id header is a valid id and not unique().',
'code' => 400,
],
/** VCS */
Exception::INSTALLATION_NOT_FOUND => [
'name' => Exception::INSTALLATION_NOT_FOUND,
'description' => 'Installation with the requested ID could not be found. Check to see if the ID is correct, or create the installation.',
'code' => 404,
],
Exception::PROVIDER_REPOSITORY_NOT_FOUND => [
'name' => Exception::PROVIDER_REPOSITORY_NOT_FOUND,
'description' => 'VCS (Version Control System) repository with the requested ID could not be found. Check to see if the ID is correct, and if it belongs to installationId you provided.',
'code' => 404,
],
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 respository.',
'code' => 404,
],
Exception::PROVIDER_CONTRIBUTION_CONFLICT => [
'name' => Exception::PROVIDER_CONTRIBUTION_CONFLICT,
'description' => 'External contribution is already authorized.',
'code' => 409,
],
Exception::GENERAL_PROVIDER_FAILURE => [
'name' => Exception::GENERAL_PROVIDER_FAILURE,
'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,
],
@ -340,6 +417,11 @@ return [
'description' => 'The requested runtime is either inactive or unsupported. Please check the value of the _APP_FUNCTIONS_RUNTIMES environment variable.',
'code' => 404,
],
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,
],
/** Builds */
Exception::BUILD_NOT_FOUND => [
@ -393,7 +475,7 @@ return [
],
Exception::COLLECTION_ALREADY_EXISTS => [
'name' => Exception::COLLECTION_ALREADY_EXISTS,
'description' => 'A collection with the requested ID already exists.',
'description' => 'A collection with the requested ID already exists. Try again with a different ID or use "unique()" to generate a unique ID.',
'code' => 409,
],
Exception::COLLECTION_LIMIT_EXCEEDED => [
@ -415,17 +497,17 @@ return [
],
Exception::DOCUMENT_MISSING_DATA => [
'name' => Exception::DOCUMENT_MISSING_DATA,
'description' => 'The document data is missing. You must provide the document data.',
'description' => 'The document data is missing. Try again with document data populated',
'code' => 400,
],
Exception::DOCUMENT_MISSING_PAYLOAD => [
'name' => Exception::DOCUMENT_MISSING_PAYLOAD,
'description' => 'The document data and permissions are missing. You must provide either the document data or permissions to be updated.',
'description' => 'The document data and permissions are missing. You must provide either document data or permissions to be updated.',
'code' => 400,
],
Exception::DOCUMENT_ALREADY_EXISTS => [
'name' => Exception::DOCUMENT_ALREADY_EXISTS,
'description' => 'Document with the requested ID already exists.',
'description' => 'Document with the requested ID already exists. Try again with a different ID or use "unique()" to generate a unique ID.',
'code' => 409,
],
Exception::DOCUMENT_UPDATE_CONFLICT => [
@ -467,7 +549,7 @@ return [
],
Exception::ATTRIBUTE_ALREADY_EXISTS => [
'name' => Exception::ATTRIBUTE_ALREADY_EXISTS,
'description' => 'Attribute with the requested ID already exists.',
'description' => 'Attribute with the requested ID already exists. Try again with a different ID or use "unique()" to generate a unique ID.',
'code' => 409,
],
Exception::ATTRIBUTE_LIMIT_EXCEEDED => [
@ -499,9 +581,14 @@ return [
],
Exception::INDEX_ALREADY_EXISTS => [
'name' => Exception::INDEX_ALREADY_EXISTS,
'description' => 'Index with the requested ID already exists.',
'description' => 'Index with the requested ID already exists. Try again with a different ID or use "unique()" to generate a unique ID.',
'code' => 409,
],
Exception::INDEX_INVALID => [
'name' => Exception::INDEX_INVALID,
'description' => 'Index invalid.',
'code' => 400,
],
/** Project Errors */
Exception::PROJECT_NOT_FOUND => [
@ -511,7 +598,7 @@ return [
],
Exception::PROJECT_ALREADY_EXISTS => [
'name' => Exception::PROJECT_ALREADY_EXISTS,
'description' => 'Project with the requested ID already exists.',
'description' => 'Project with the requested ID already exists. Try again with a different ID or use "unique()" to generate a unique ID.',
'code' => 409,
],
Exception::PROJECT_UNKNOWN => [
@ -549,6 +636,46 @@ return [
'description' => 'The project key has expired. Please generate a new key using the Appwrite console.',
'code' => 401,
],
Exception::ROUTER_HOST_NOT_FOUND => [
'name' => Exception::ROUTER_HOST_NOT_FOUND,
'description' => 'Host is not trusted. This could occur because you have not configured a custom domain. Add a custom domain to your project first and try again.',
'code' => 404,
],
Exception::ROUTER_DOMAIN_NOT_CONFIGURED => [
'name' => Exception::ROUTER_DOMAIN_NOT_CONFIGURED,
'description' => 'Domain environment variables not configured. Please configure domain environment variables before using Appwrite outside of localhost.',
'code' => 500,
],
Exception::RULE_RESOURCE_NOT_FOUND => [
'name' => Exception::RULE_RESOURCE_NOT_FOUND,
'description' => 'Resource could not be found. Please check if the resourceId and resourceType are correct, or if the resource actually exists.',
'code' => 404,
],
Exception::RULE_NOT_FOUND => [
'name' => Exception::RULE_NOT_FOUND,
'description' => 'Rule with the requested ID could not be found. Please check if the ID provided is correct or if the rule actually exists.',
'code' => 404,
],
Exception::RULE_ALREADY_EXISTS => [
'name' => Exception::RULE_ALREADY_EXISTS,
'description' => 'Domain is already used. Please try again with a different domain.',
'code' => 409,
],
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' => 401,
],
Exception::PROJECT_SMTP_CONFIG_INVALID => [
'name' => Exception::PROJECT_SMTP_CONFIG_INVALID,
'description' => 'Provided SMTP config is invalid. Please check the configured values and try again.',
'code' => 400,
],
Exception::PROJECT_TEMPLATE_DEFAULT_DELETION => [
'name' => Exception::PROJECT_TEMPLATE_DEFAULT_DELETION,
'description' => 'You can\'t delete default template. If you are trying to reset your template changes, you can ignore this error as it\'s already been reset.',
'code' => 401,
],
Exception::WEBHOOK_NOT_FOUND => [
'name' => Exception::WEBHOOK_NOT_FOUND,
'description' => 'Webhook with the requested ID could not be found.',
@ -564,16 +691,6 @@ return [
'description' => 'Platform with the requested ID could not be found.',
'code' => 404,
],
Exception::DOMAIN_NOT_FOUND => [
'name' => Exception::DOMAIN_NOT_FOUND,
'description' => 'Domain with the requested ID could not be found.',
'code' => 404,
],
Exception::DOMAIN_ALREADY_EXISTS => [
'name' => Exception::DOMAIN_ALREADY_EXISTS,
'description' => 'A Domain with the requested ID already exists.',
'code' => 409,
],
Exception::VARIABLE_NOT_FOUND => [
'name' => Exception::VARIABLE_NOT_FOUND,
'description' => 'Variable with the requested ID could not be found.',
@ -581,19 +698,9 @@ return [
],
Exception::VARIABLE_ALREADY_EXISTS => [
'name' => Exception::VARIABLE_ALREADY_EXISTS,
'description' => 'Variable with the same ID already exists in your project.',
'description' => 'Variable with the same ID already exists in this project. Try again with a different ID.',
'code' => 409,
],
Exception::DOMAIN_VERIFICATION_FAILED => [
'name' => Exception::DOMAIN_VERIFICATION_FAILED,
'description' => 'Domain verification for the requested domain has failed.',
'code' => 401,
],
Exception::DOMAIN_TARGET_INVALID => [
'name' => Exception::DOMAIN_TARGET_INVALID,
'description' => 'Your Appwrite instance is not publicly accessible. Please check the _APP_DOMAIN_TARGET environment variable of your Appwrite server.',
'code' => 501,
],
Exception::GRAPHQL_NO_QUERY => [
'name' => Exception::GRAPHQL_NO_QUERY,
'description' => 'Param "query" is not optional.',
@ -604,4 +711,21 @@ return [
'description' => 'Too many queries.',
'code' => 400,
],
/** Migrations */
Exception::MIGRATION_NOT_FOUND => [
'name' => Exception::MIGRATION_NOT_FOUND,
'description' => 'Migration with the requested ID could not be found. Please verify that the provided ID is correct and try again.',
'code' => 404,
],
Exception::MIGRATION_ALREADY_EXISTS => [
'name' => Exception::MIGRATION_ALREADY_EXISTS,
'description' => 'Migration with the requested ID already exists. Try again with a different ID.',
'code' => 409,
],
Exception::MIGRATION_IN_PROGRESS => [
'name' => Exception::MIGRATION_IN_PROGRESS,
'description' => 'Migration is already in progress. You can check the status of the migration in your Appwrite Console\'s "Settings" > "Migrations".',
'code' => 409,
],
];

View file

@ -236,5 +236,19 @@ return [
'update' => [
'$description' => 'This event triggers when a function is updated.',
]
],
'rules' => [
'$model' => Response::MODEL_PROXY_RULE,
'$resource' => true,
'$description' => 'This event triggers on any proxy rule event.',
'create' => [
'$description' => 'This event triggers when a proxy rule is created.'
],
'delete' => [
'$description' => 'This event triggers when a proxy rule is deleted.',
],
'update' => [
'$description' => 'This event triggers when a proxy rule is updated.',
]
]
];

View file

@ -1,76 +1,537 @@
<?php
/**
* ISO 639-1 standard language codes
* https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
*
* Source:
* https://www.andiamo.co.uk/resources/iso-language-codes/
*
*/
return [
'af', // Afrikaans
'ar', // Arabic
'as', // Assamese
'az', // Azerbaijani
'be', // Belarusian
'bg', // Bulgarian
'bh', // Bihari
'bn', // Bengali
'bs', // Bosnian
'ca', // Catalan
'cs', // Czech
'da', // Danish
'de', // German
'en', // English
'eo', // Esperanto
'es', // Spanish
'fa', // Farsi/Persian
'fi', // Finnish
'fo', // Faroese
'fr', // French
'el', // Greek
'ga', // Irish
'gu', // Gujrati
'he', // Hebrew
'hi', // Hindi,
'hr', // Croatian
'hu', // Hungarian
'hy', // Armenian
'id', // Indonesian
'is', // Icelandic
'it', // Italian
'ja', // Japanese
'jv', // Javanese
'kn', // Kannada
'km', // Khmer
'ko', // Korean
'la', // Latin
'lb', // Luxembourgish
'lt', // Lithuanian
'lv', // Latvian
'ml', // Malayalam
'mr', // Marathi
'ms', // Malay
'nb', // Norwegian bokmål
'nl', // Dutch
'nn', // Norwegian nynorsk
'ne', // Nepali
'or', // Oriya
'tl', // Filipino
'pl', // Polish
'pt-br', // Portuguese - Brazil
'pt-pt', // Portuguese - Portugal
'pa', // Punjabi
'ro', // Romanian
'ru', // Russian
'sa', //Sanskrit
'sd', // Sindhi
'si', // Sinhala
'sk', // Slovakia
'sl', // Slovenian
'sn', // Shona
'sq', // Albanian
'sv', // Swedish
'ta', // Tamil
'te', // Telugu
'th', // Thai
'tr', // Turkish
'uk', // Ukrainian
'ur', // Urdu
'vi', // Vietnamese
'zh-cn', // Chinese - China
'zh-tw', // Chinese - Taiwan
[
"code" => "af",
"name" => "Afrikaans",
],
[
"code" => "ar-ae",
"name" => "Arabic (U.A.E.)",
],
[
"code" => "ar-bh",
"name" => "Arabic (Bahrain)",
],
[
"code" => "ar-dz",
"name" => "Arabic (Algeria)",
],
[
"code" => "ar-eg",
"name" => "Arabic (Egypt)",
],
[
"code" => "ar-iq",
"name" => "Arabic (Iraq)",
],
[
"code" => "ar-jo",
"name" => "Arabic (Jordan)",
],
[
"code" => "ar-kw",
"name" => "Arabic (Kuwait)",
],
[
"code" => "ar-lb",
"name" => "Arabic (Lebanon)",
],
[
"code" => "ar-ly",
"name" => "Arabic (Libya)",
],
[
"code" => "ar-ma",
"name" => "Arabic (Morocco)",
],
[
"code" => "ar-om",
"name" => "Arabic (Oman)",
],
[
"code" => "ar-qa",
"name" => "Arabic (Qatar)",
],
[
"code" => "ar-sa",
"name" => "Arabic (Saudi Arabia)",
],
[
"code" => "ar-sy",
"name" => "Arabic (Syria)",
],
[
"code" => "ar-tn",
"name" => "Arabic (Tunisia)",
],
[
"code" => "ar-ye",
"name" => "Arabic (Yemen)",
],
[
"code" => "as",
"name" => "Assamese",
],
[
"code" => "az",
"name" => "Azerbaijani",
],
[
"code" => "be",
"name" => "Belarusian",
],
[
"code" => "bg",
"name" => "Bulgarian",
],
[
"code" => "bh",
"name" => "Bihari",
],
[
"code" => "bn",
"name" => "Bengali",
],
[
"code" => "bs",
"name" => "Bosnian",
],
[
"code" => "ca",
"name" => "Catalan",
],
[
"code" => "cs",
"name" => "Czech",
],
[
"code" => "cy",
"name" => "Welsh",
],
[
"code" => "da",
"name" => "Danish",
],
[
"code" => "de",
"name" => "German (Standard)",
],
[
"code" => "de-at",
"name" => "German (Austria)",
],
[
"code" => "de-ch",
"name" => "German (Switzerland)",
],
[
"code" => "de-li",
"name" => "German (Liechtenstein)",
],
[
"code" => "de-lu",
"name" => "German (Luxembourg)",
],
[
"code" => "el",
"name" => "Greek",
],
[
"code" => "en",
"name" => "English",
],
[
"code" => "en-au",
"name" => "English (Australia)",
],
[
"code" => "en-bz",
"name" => "English (Belize)",
],
[
"code" => "en-ca",
"name" => "English (Canada)",
],
[
"code" => "en-gb",
"name" => "English (United Kingdom)",
],
[
"code" => "en-ie",
"name" => "English (Ireland)",
],
[
"code" => "en-jm",
"name" => "English (Jamaica)",
],
[
"code" => "en-nz",
"name" => "English (New Zealand)",
],
[
"code" => "en-tt",
"name" => "English (Trinidad)",
],
[
"code" => "en-us",
"name" => "English (United States)",
],
[
"code" => "en-za",
"name" => "English (South Africa)",
],
[
"code" => "eo",
"name" => "Esperanto",
],
[
"code" => "es",
"name" => "Spanish (Spain)",
],
[
"code" => "es-ar",
"name" => "Spanish (Argentina)",
],
[
"code" => "es-bo",
"name" => "Spanish (Bolivia)",
],
[
"code" => "es-cl",
"name" => "Spanish (Chile)",
],
[
"code" => "es-co",
"name" => "Spanish (Colombia)",
],
[
"code" => "es-cr",
"name" => "Spanish (Costa Rica)",
],
[
"code" => "es-do",
"name" => "Spanish (Dominican Republic)",
],
[
"code" => "es-ec",
"name" => "Spanish (Ecuador)",
],
[
"code" => "es-gt",
"name" => "Spanish (Guatemala)",
],
[
"code" => "es-hn",
"name" => "Spanish (Honduras)",
],
[
"code" => "es-mx",
"name" => "Spanish (Mexico)",
],
[
"code" => "es-ni",
"name" => "Spanish (Nicaragua)",
],
[
"code" => "es-pa",
"name" => "Spanish (Panama)",
],
[
"code" => "es-pe",
"name" => "Spanish (Peru)",
],
[
"code" => "es-pr",
"name" => "Spanish (Puerto Rico)",
],
[
"code" => "es-py",
"name" => "Spanish (Paraguay)",
],
[
"code" => "es-sv",
"name" => "Spanish (El Salvador)",
],
[
"code" => "es-uy",
"name" => "Spanish (Uruguay)",
],
[
"code" => "es-ve",
"name" => "Spanish (Venezuela)",
],
[
"code" => "et",
"name" => "Estonian",
],
[
"code" => "eu",
"name" => "Basque",
],
[
"code" => "fa",
"name" => "Farsi",
],
[
"code" => "fi",
"name" => "Finnish",
],
[
"code" => "fo",
"name" => "Faeroese",
],
[
"code" => "fr",
"name" => "French (Standard)",
],
[
"code" => "fr-be",
"name" => "French (Belgium)",
],
[
"code" => "fr-ca",
"name" => "French (Canada)",
],
[
"code" => "fr-ch",
"name" => "French (Switzerland)",
],
[
"code" => "fr-lu",
"name" => "French (Luxembourg)",
],
[
"code" => "ga",
"name" => "Irish",
],
[
"code" => "gd",
"name" => "Gaelic (Scotland)",
],
[
"code" => "he",
"name" => "Hebrew",
],
[
"code" => "hi",
"name" => "Hindi",
],
[
"code" => "hr",
"name" => "Croatian",
],
[
"code" => "hu",
"name" => "Hungarian",
],
[
"code" => "id",
"name" => "Indonesian",
],
[
"code" => "is",
"name" => "Icelandic",
],
[
"code" => "it",
"name" => "Italian (Standard)",
],
[
"code" => "it-ch",
"name" => "Italian (Switzerland)",
],
[
"code" => "ja",
"name" => "Japanese",
],
[
"code" => "ji",
"name" => "Yiddish",
],
[
"code" => "ko",
"name" => "Korean",
],
[
"code" => "ku",
"name" => "Kurdish",
],
[
"code" => "lt",
"name" => "Lithuanian",
],
[
"code" => "lv",
"name" => "Latvian",
],
[
"code" => "mk",
"name" => "Macedonian (FYROM)",
],
[
"code" => "ml",
"name" => "Malayalam",
],
[
"code" => "ms",
"name" => "Malaysian",
],
[
"code" => "mt",
"name" => "Maltese",
],
[
"code" => "nb",
"name" => "Norwegian (Bokmål)",
],
[
"code" => "ne",
"name" => "Nepali",
],
[
"code" => "nl",
"name" => "Dutch (Standard)",
],
[
"code" => "nl-be",
"name" => "Dutch (Belgium)",
],
[
"code" => "nn",
"name" => "Norwegian (Nynorsk)",
],
[
"code" => "no",
"name" => "Norwegian",
],
[
"code" => "pa",
"name" => "Punjabi",
],
[
"code" => "pl",
"name" => "Polish",
],
[
"code" => "pt",
"name" => "Portuguese (Portugal)",
],
[
"code" => "pt-br",
"name" => "Portuguese (Brazil)",
],
[
"code" => "rm",
"name" => "Rhaeto-Romanic",
],
[
"code" => "ro",
"name" => "Romanian",
],
[
"code" => "ro-md",
"name" => "Romanian (Republic of Moldova)",
],
[
"code" => "ru",
"name" => "Russian",
],
[
"code" => "ru-md",
"name" => "Russian (Republic of Moldova)",
],
[
"code" => "sb",
"name" => "Sorbian",
],
[
"code" => "sk",
"name" => "Slovak",
],
[
"code" => "sl",
"name" => "Slovenian",
],
[
"code" => "sq",
"name" => "Albanian",
],
[
"code" => "sr",
"name" => "Serbian",
],
[
"code" => "sv",
"name" => "Swedish",
],
[
"code" => "sv-fi",
"name" => "Swedish (Finland)",
],
[
"code" => "th",
"name" => "Thai",
],
[
"code" => "tn",
"name" => "Tswana",
],
[
"code" => "tr",
"name" => "Turkish",
],
[
"code" => "ts",
"name" => "Tsonga",
],
[
"code" => "ua",
"name" => "Ukrainian",
],
[
"code" => "ur",
"name" => "Urdu",
],
[
"code" => "ve",
"name" => "Venda",
],
[
"code" => "vi",
"name" => "Vietnamese",
],
[
"code" => "xh",
"name" => "Xhosa",
],
[
"code" => "zh-cn",
"name" => "Chinese (PRC)",
],
[
"code" => "zh-hk",
"name" => "Chinese (Hong Kong)",
],
[
"code" => "zh-sg",
"name" => "Chinese (Singapore)",
],
[
"code" => "zh-tw",
"name" => "Chinese (Taiwan)",
],
[
"code" => "zu",
"name" => "Zulu",
],
];

View file

@ -0,0 +1,15 @@
<?php
return [
'email' => [
'verification',
'magicSession',
'recovery',
'invitation',
],
'sms' => [
'verification',
'login',
'invitation'
]
];

View file

@ -2,164 +2,66 @@
<html>
<head>
<meta name="viewport" content="width=device-width" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>{{subject}}</title>
<style>
body {
background-color: {{bg-body}};
color: {{text-content}};
font-family: sans-serif;
-webkit-font-smoothing: antialiased;
font-size: 14px;
line-height: 1.4;
margin: 0;
padding: 0;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Poppins:wght@500;600&display=swap"
rel="stylesheet">
<style>
a { color:currentColor; }
body {
padding: 32px;
color: #616B7C;
font-size: 15px;
font-family: 'Inter', sans-serif;
line-height: 15px;
}
table {
border-collapse: separate;
mso-table-lspace: 0pt;
mso-table-rspace: 0pt;
width: 100%;
}
table {
width: 100%;
border-spacing: 0 !important;
}
table td {
font-family: sans-serif;
font-size: 14px;
vertical-align: top;
}
table,
tr,
th,
td {
margin: 0;
padding: 0;
}
.body {
background-color: {{bg-body}};
width: 100%;
}
td {
vertical-align: top;
}
.container {
display: block;
margin: 0 auto !important;
max-width: 580px;
padding: 10px;
width: 580px;
}
h* {
font-family: 'Poppins', sans-serif;
}
.content {
box-sizing: border-box;
display: block;
margin: 0 auto;
max-width: 580px;
padding: 10px;
color: {{text-content}};
}
hr {
border: none;
border-top: 1px solid #E8E9F0;
}
.main {
background: {{bg-content}};
border-radius: 10px;
width: 100%;
}
.wrapper {
box-sizing: border-box;
padding: 30px 30px 15px 30px;
}
.content-block {
padding-bottom: 10px;
padding-top: 10px;
}
p {
font-family: sans-serif;
font-size: 14px;
font-weight: normal;
margin: 0;
margin-bottom: 15px;
}
a {
word-break: break-all;
}
@media only screen and (max-width: 620px) {
.container {
padding: 0;
width: 100%;
}
}
@media all {
.ExternalClass {
width: 100%;
}
.ExternalClass,
.ExternalClass p,
.ExternalClass span,
.ExternalClass font,
.ExternalClass td,
.ExternalClass div {
line-height: 100%;
}
.apple-link a {
color: inherit !important;
font-family: inherit !important;
font-size: inherit !important;
font-weight: inherit !important;
line-height: inherit !important;
text-decoration: none !important;
}
#MessageViewBody a {
color: inherit;
text-decoration: none;
font-size: inherit;
font-family: inherit;
font-weight: inherit;
line-height: inherit;
}
}
</style>
p {
margin-bottom: 10px;
}
</style>
</head>
<body style="direction: {{direction}}">
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<p>{{hello}}</p>
<p>{{body}}</p>
<a href="{{redirect}}" target="_blank">{{redirect}}</a>
<p></br>{{footer}}</p>
<p>{{thanks}}
</br>
{{signature}}
</p>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<!-- <div style="text-align: center; line-height: 25px; margin: 15px 0; font-size: 12px; color: #40404c;">
<a href="https://appwrite.io" style="text-decoration: none; color: #40404c;">Powered by <img src="https://appwrite.io/images/appwrite-footer-light.svg" height="15" style="margin: -3px 0" /></a>
</div> -->
</td>
<td>&nbsp;</td>
</tr>
</table>
<div style="max-width:650px; word-wrap: break-word; overflow-wrap: break-word;
word-break: break-all; margin:0 auto;">
<table style="margin-top: 32px">
<tr>
<td>
{{body}}
</td>
</tr>
</table>
</div>
</body>
</html>

View file

@ -0,0 +1,15 @@
<p>{{hello}}</p>
<br>
<p>{{body}}</p>
<a href="{{redirect}}" target="_blank">{{redirect}}</a>
<p>{{footer}}</p>
<br>
<p>{{thanks}}</p>
<p>{{signature}}</p>

View file

@ -0,0 +1 @@
{{token}}

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s span",
"emails.verification.subject": "Rekening Bevestiging",
"emails.verification.hello": "Goeie dag {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Baie dankie",
"emails.magicSession.signature": "Die {{project}} span",
"emails.recovery.subject": "Herstel Wagwoord",
"emails.recovery.hello": "Goeie dag {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "rtl",
"emails.sender": "فريق %s",
"emails.verification.subject": "تأكيد الحساب",
"emails.verification.hello": "مرحبا {{name}}",
"emails.verification.hello": "مرحبا {{user}}",
"emails.verification.body": "برجاء اتباع الرابط التالي لتأكيد بريدك الإلكتروني",
"emails.verification.footer": "لو لم تطلب تأكيد هذا البريد الإلكتروني، يمكنك تجاهل هذه الرسالة",
"emails.verification.thanks": "شكرا",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "شكرا",
"emails.magicSession.signature": "فريق {{project}}",
"emails.recovery.subject": "تغيير كلمة السر",
"emails.recovery.hello": "أهلا {{name}}",
"emails.recovery.hello": "أهلا {{user}}",
"emails.recovery.body": "برجاء اتباع الراط التالي لتغيير كلمة السر الخاصة بـ{{project}}",
"emails.recovery.footer": "لولم تطلب تغيير كلمة السر، يمكنك تجاهل هذه الرسالة",
"emails.recovery.thanks": "شكرا",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s দল",
"emails.verification.subject": "একাউণ্ট প্ৰমাণীকৰণ",
"emails.verification.hello": "নমস্কাৰ {{name}}",
"emails.verification.hello": "নমস্কাৰ {{user}}",
"emails.verification.body": "আপোনাৰ ইমেইল ঠিকনা প্ৰমাণিত কৰিবলৈ এই লিংকটো অনুসৰণ কৰক।",
"emails.verification.footer": "যদি আপুনি এই ঠিকনাটো সত্যাপিত কৰিবলৈ কোৱা নাই, আপুনি এই বাৰ্তাটো উপেক্ষা কৰিব পাৰে।",
"emails.verification.thanks": "ধন্যবাদ",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "ধন্যবাদ",
"emails.magicSession.signature": "{{project}} দল",
"emails.recovery.subject": "পাছৱাৰ্ড ৰিছেট",
"emails.recovery.hello": "ধন্যবাদ {{name}}",
"emails.recovery.hello": "ধন্যবাদ {{user}}",
"emails.recovery.body": "আপোনাৰ {{project}} পাছৱৰ্ড ৰিছেট কৰিবলৈ এই লিংকটো অনুসৰণ কৰক।.",
"emails.recovery.footer": "যদি আপুনি আপোনাৰ পাছৱৰ্ড ৰিছেট কৰিবলৈ কোৱা নাছিল, আপুনি এই বাৰ্তাটো উপেক্ষা কৰিব পাৰে।",
"emails.recovery.thanks": "ধন্যবাদ",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s Komandası",
"emails.verification.subject": "Hesab Doğrulama",
"emails.verification.hello": "Salam {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Təşəkkürlər",
"emails.magicSession.signature": "{{project}} komandası",
"emails.recovery.subject": "Şifrə Sıfırlanması",
"emails.recovery.hello": "Salam {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "Каманда %s",
"emails.verification.subject": "Верыфікацыя акаўнта",
"emails.verification.hello": "Прывітанне {{name}}",
"emails.verification.hello": "Прывітанне {{user}}",
"emails.verification.body": "Перайдзіце па гэтай спасылцы, каб пацвердзіць свой адрас электроннай пошты",
"emails.verification.footer": "Калі вы не запытвалі пацвярджэнне гэтага адрасу, праігнаруйце гэтае паведамленне.",
"emails.verification.thanks": "Дзякуем",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Дзякуем",
"emails.magicSession.signature": "каманда {{project}}",
"emails.recovery.subject": "Скід пароля",
"emails.recovery.hello": "Прывітанне, {{name}}",
"emails.recovery.hello": "Прывітанне, {{user}}",
"emails.recovery.body": "Перайдзіце па гэтай спасылцы, каб скінуць пароль для праекта {{project}}.",
"emails.recovery.footer": "Калі вы не прасілі скінуць пароль, вы можаце праігнараваць гэта паведамленне.",
"emails.recovery.thanks": "Дзякуем",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s टीम",
"emails.verification.subject": "खाता प्रमाणिकरण",
"emails.verification.hello": "नमस्ते {{name}}",
"emails.verification.hello": "नमस्ते {{user}}",
"emails.verification.body": "ईमेल प्रमाणिकरण करे क लेल दिहल गइल लिंक फॉलो करें|",
"emails.verification.footer": "अगर ई पता को सत्यापित करे के लिए ना कहाले, तो आप ई संदेश क अनदेखा कर सकत अछि।",
"emails.verification.thanks": "धन्यवाद",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "धन्यवाद",
"emails.magicSession.signature": "{{project}} टीम",
"emails.recovery.subject": "पासवर्ड बदल क लेल|",
"emails.recovery.hello": "प्रणाम {{name}}",
"emails.recovery.hello": "प्रणाम {{user}}",
"emails.recovery.body": "पासवर्ड बदल क लेल दिहल गइल लिंक फॉलो करें|",
"emails.recovery.footer": "अगर पासवर्ड बदल क लेल ना कहाले, तो आप ई संदेश क अनदेखा कर सकत अछि।",
"emails.recovery.thanks": "धन्यवाद",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s টীম",
"emails.verification.subject": "বিষয়",
"emails.verification.hello": "নমস্কার {{name}}",
"emails.verification.hello": "নমস্কার {{user}}",
"emails.verification.body": "এই লিঙ্কের মাধ্যমে ইমেইল যাচাই করুন।",
"emails.verification.footer": "আপনি যদি এই ঠিকানা যাচাই করতে না বলেন, তাহলে আপনি এই বার্তাটি উপেক্ষা করতে পারেন।",
"emails.verification.thanks": "ধন্যবাদ",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "ধন্যবাদ",
"emails.magicSession.signature": "{{project}} টীম",
"emails.recovery.subject": "পাসওয়ার্ড রিসেট",
"emails.recovery.hello": "নমস্কার {{name}}",
"emails.recovery.hello": "নমস্কার {{user}}",
"emails.recovery.body": "এই লিঙ্কের মাধ্যমে আপনার {{project}} পাসওয়ার্ড পুনরায় সেট করুন।",
"emails.recovery.footer": "আপনি যদি আপনার পাসওয়ার্ড পুনরায় সেট করতে না বলেন, তাহলে আপনি এই বার্তাটি উপেক্ষা করতে পারেন।",
"emails.recovery.thanks": "ধন্যবাদ",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s Equip",
"emails.verification.subject": "Verificació del compte",
"emails.verification.hello": "Hola {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Gràcies",
"emails.magicSession.signature": "Equip {{project}}",
"emails.recovery.subject": "Reinicialitzar contrasenya",
"emails.recovery.hello": "Hola {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s Team",
"emails.verification.subject": "Konto Verifikation",
"emails.verification.hello": "Hej {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Tak",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Nulstil Password",
"emails.recovery.hello": "Hej {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s Team",
"emails.verification.subject": "Kontoverifizierung",
"emails.verification.hello": "Hey {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Danke",
"emails.magicSession.signature": "{{project}}-Team",
"emails.recovery.subject": "Kennwort zurücksetzen",
"emails.recovery.hello": "Hallo {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "Ομάδα %s",
"emails.verification.subject": "Επαλήθευση Λογαριασμού",
"emails.verification.hello": "Γεια σου {{name}}",
"emails.verification.hello": "Γεια σου {{user}}",
"emails.verification.body": "Ακολουθήστε αυτό το link για να επαληθεύσετε τη δ/νση του email σας",
"emails.verification.footer": "Εάν δεν ζητήσατε επαλήθευση αυτής της δ/νσης email, μπορείτε να αγνοήσετε αυτό το μήνυμα",
"emails.verification.thanks": "Ευχαριστούμε",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Ευχαριστούμε",
"emails.magicSession.signature": "Η ομάδα του {{project}}",
"emails.recovery.subject": "Αλλαγή κωδικού πρόσβασης",
"emails.recovery.hello": "Γεια σου {{name}}",
"emails.recovery.hello": "Γεια σου {{user}}",
"emails.recovery.body": "Ακολουθήστε αυτό το link για να αλλάξετε τον {{project}} κωδικό σας",
"emails.recovery.footer": "Εάν δεν ζητήσατε αλλαγή του κωδικού σας πρόσβασης, μπορείτε να αγνοήσετε αυτό το μήνυμα",
"emails.recovery.thanks": "Ευχαριστούμε",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s Team",
"emails.verification.subject": "Account Verification",
"emails.verification.hello": "Hey {{name}}",
"emails.verification.hello": "Hey {{user}}",
"emails.verification.body": "Follow this link to verify your email address.",
"emails.verification.footer": "If you didnt ask to verify this address, you can ignore this message.",
"emails.verification.thanks": "Thanks",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Thanks",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Password Reset",
"emails.recovery.hello": "Hello {{name}}",
"emails.recovery.hello": "Hello {{user}}",
"emails.recovery.body": "Follow this link to reset your {{project}} password.",
"emails.recovery.footer": "If you didnt ask to reset your password, you can ignore this message.",
"emails.recovery.thanks": "Thanks",

View file

@ -3,7 +3,7 @@
"settings.direction": "ltr",
"emails.sender": "Teamo %s",
"emails.verification.subject": "Konta Konfirmo",
"emails.verification.hello": "Saluton {{name}}",
"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.",
@ -15,7 +15,7 @@
"emails.magicSession.thanks": "Dankegon",
"emails.magicSession.signature": "Teamo {{project}}",
"emails.recovery.subject": "Parsvorta Restarigo",
"emails.recovery.hello": "Saluton {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "Equipo %s",
"emails.verification.subject": "Verificación de cuenta",
"emails.verification.hello": "Hola {{name}}",
"emails.verification.hello": "Hola {{user}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Gracias",
"emails.magicSession.signature": "Equipo de {{project}}",
"emails.recovery.subject": "Restablecer contraseña",
"emails.recovery.hello": "Hola {{name}}",
"emails.recovery.hello": "Hola {{user}}",
"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",

View file

@ -4,29 +4,29 @@
"settings.direction": "rtl",
"emails.sender": "تیم %s",
"emails.verification.subject": "تأیید حساب",
"emails.verification.hello": "سلام {{name}}",
"emails.verification.hello": "سلام {{user}}",
"emails.verification.body": "برای تأیید ایمیل‌تان پیوند زیر را دنبال کنید.",
"emails.verification.footer": "اگر شما درخواست تأیید حساب نداده‌اید، می‌توانید این پیام را نادیده بگیرید.",
"emails.verification.thanks": "سپاس فراوان",
"emails.verification.signature": "تیم {{name}}",
"emails.verification.signature": "تیم {{user}}",
"emails.magicSession.subject": "ورود به حساب کاربری",
"emails.magicSession.hello": "سلام،",
"emails.magicSession.body": "برای ورود به حساب‌تان پیوند زیر را دنبال کنید.",
"emails.magicSession.footer": "اگر شما درخواست ورود به حساب کاربری با استفاده از این ایمیل را نداد‌ه‌اید، می‌توانید این پیام را نادیده بگیرید.",
"emails.magicSession.thanks": "سپاس فراوان",
"emails.magicSession.signature": "تیم {{name}}",
"emails.magicSession.signature": "تیم {{user}}",
"emails.recovery.subject": "بازیابی گذرواژه",
"emails.recovery.hello": "سلام {{name}}",
"emails.recovery.hello": "سلام {{user}}",
"emails.recovery.body": "برای بازیابی گذرواژه‌تان پیوند زیر را دنبال کنید.",
"emails.recovery.footer": "اگر شما درخواست بازیابی گذرواژه نداده‌اید، می‌توانید این پیام را نادیده بگیرید.",
"emails.recovery.thanks": "سپاس فراوان",
"emails.recovery.signature": "تیم {{name}}",
"emails.recovery.signature": "تیم {{user}}",
"emails.invitation.subject": "دعوت به تیم %s در %s",
"emails.invitation.hello": "سلام",
"emails.invitation.body": "این ایمیل برای شما فرستاده شده‌است زیرا {{owner}} می‌خواهد شما را به تیم {{team}} در پروژه‌ی {{project}} بیفزاید.",
"emails.invitation.footer": "اگر علاقه ندارید، می‌توانید این پیام را نادیده بگیرید.",
"emails.invitation.thanks": "سپاس فراوان",
"emails.invitation.signature": "تیم {{name}}",
"emails.invitation.signature": "تیم {{user}}",
"locale.country.unknown": "ناشناخته",
"countries.af": "افغانستان",
"countries.ao": "آنگولا",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "Équipe %s",
"emails.verification.subject": "Vérification du compte",
"emails.verification.hello": "Bonjour {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Merci",
"emails.magicSession.signature": "L'équipe {{project}}",
"emails.recovery.subject": "Réinitialisation du mot de passe",
"emails.recovery.hello": "Bonjour {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s Foireann",
"emails.verification.subject": "Fíoraithe cuntais",
"emails.verification.hello": "Haigh {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Go raibh maith agat",
"emails.magicSession.signature": "{{project}} foireann",
"emails.recovery.subject": "Athshocrú pasfhocail",
"emails.recovery.hello": "Haigh {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s ટીમ",
"emails.verification.subject": "ખાતાની ચકાસણી",
"emails.verification.hello": "નમસ્કાર {{name}}",
"emails.verification.hello": "નમસ્કાર {{user}}",
"emails.verification.body": "તમારું ઇમેઇલ સરનામું ચકાસવા માટે આ લિંકને અનુસરો.",
"emails.verification.footer": "જો તમે આ સરનામાંની ચકાસણી કરવાનું ન કહ્યું હોય, તો તમે આ સંદેશને અવગણી શકો છો.",
"emails.verification.thanks": "આભાર",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "આભાર",
"emails.magicSession.signature": "{{project}} ટીમ",
"emails.recovery.subject": "પાસવર્ડ ફરીથી સેટ કરો",
"emails.recovery.hello": "નમસ્કાર {{name}}",
"emails.recovery.hello": "નમસ્કાર {{user}}",
"emails.recovery.body": "તમારો {{project}} પાસવર્ડ ફરીથી સેટ કરવા માટે આ લિંકને અનુસરો.",
"emails.recovery.footer": "જો તમે તમારો પાસવર્ડ ફરીથી સેટ કરવાનું ન કહ્યું હોય, તો તમે આ સંદેશને અવગણી શકો છો.",
"emails.recovery.thanks": "આભાર",

View file

@ -4,7 +4,7 @@
"settings.direction": "rtl",
"emails.sender": "צוות %s",
"emails.verification.subject": "אימות חשבון",
"emails.verification.hello": "שלום {{name}}",
"emails.verification.hello": "שלום {{user}}",
"emails.verification.body": "לחץ על קישור זה כדי לאמת את כתובת הדוא\"ל שלך.",
"emails.verification.footer": "אם לא ביקשת לאמת כתובת זו, תוכל להתעלם מהודעה זו.",
"emails.verification.thanks": "תודה",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "תודה",
"emails.magicSession.signature": "צוות {{project}}",
"emails.recovery.subject": "איפוס סיסמא",
"emails.recovery.hello": "שלום {{name}}",
"emails.recovery.hello": "שלום {{user}}",
"emails.recovery.body": "עקוב אחר קישור זה כדי לאפס את סיסמתך ב-{{project}}.",
"emails.recovery.footer": "אם לא ביקשת לאפס את הסיסמה, תוכל להתעלם מהודעה זו.",
"emails.recovery.thanks": "תודה",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s टीम",
"emails.verification.subject": "अकाउंट वेरिफिकेशन ",
"emails.verification.hello": "नमस्ते {{name}}",
"emails.verification.hello": "नमस्ते {{user}}",
"emails.verification.body": "इस लिंक के माध्यम से अपने ईमेल को सत्यापित कीजिये।",
"emails.verification.footer": "यदि आप इस पते को सत्यापित नहीं करना चाहते हैं, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
"emails.verification.thanks": "धन्यवाद",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "धन्यवाद",
"emails.magicSession.signature": "{{project}} टीम",
"emails.recovery.subject": "पासवर्ड रीसेट",
"emails.recovery.hello": "नमस्ते {{name}}",
"emails.recovery.hello": "नमस्ते {{user}}",
"emails.recovery.body": "इस लिंक के माध्यम से अपना {{project}} पासवर्ड रीसेट करें।",
"emails.recovery.footer": "यदि आप अपना पासवर्ड रीसेट नहीं करना चाहते हैं, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
"emails.recovery.thanks": "धन्यवाद",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s Tim",
"emails.verification.subject": "Verifikacija računa",
"emails.verification.hello": "Pozdrav {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Hvala",
"emails.magicSession.signature": "{{project}} tim",
"emails.recovery.subject": "Ponovno postavljanje lozinke",
"emails.recovery.hello": "Pozdrav {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s Csapat",
"emails.verification.subject": "Fiók Megerősítése",
"emails.verification.hello": "Szia {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Köszönettel",
"emails.magicSession.signature": "a {{project}} csapat",
"emails.recovery.subject": "Jelszó Visszaállítása",
"emails.recovery.hello": "Hahó, {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "Tim %s",
"emails.verification.subject": "Verifikasi Akun",
"emails.verification.hello": "Hai {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Terima kasih",
"emails.magicSession.signature": "Tim {{project}}",
"emails.recovery.subject": "Atur Ulang Kata Sandi",
"emails.recovery.hello": "Halo {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "Team %s",
"emails.verification.subject": "Verifica account",
"emails.verification.hello": "Ciao {{name}}",
"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 dellindirizzo email, puoi ignorare questo messaggio.",
"emails.verification.thanks": "Grazie",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Grazie",
"emails.magicSession.signature": "Il team {{project}}",
"emails.recovery.subject": "Reimpostazione password",
"emails.recovery.hello": "Ciao {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s チーム",
"emails.verification.subject": "アカウント認証",
"emails.verification.hello": "こんにちは{{name}}さん",
"emails.verification.hello": "こんにちは{{user}}さん",
"emails.verification.body": "メールアドレスを有効化するためには下記リンクをクリックして下さい。",
"emails.verification.footer": "このメールに心当たりが無い場合は破棄をお願いいたします。",
"emails.verification.thanks": "ご利用いただきありがとうございます。",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "ご利用いただきありがとうございます。",
"emails.magicSession.signature": "{{project}}チーム",
"emails.recovery.subject": "パスワードリセット",
"emails.recovery.hello": "こんにちは{{name}}さん",
"emails.recovery.hello": "こんにちは{{user}}さん",
"emails.recovery.body": "パスワードをリセットするためには下記リンクをクリックしてください。",
"emails.recovery.footer": "このメールに心当たりが無い場合は破棄をお願いいたします。",
"emails.recovery.thanks": "ご利用いただきありがとうございます。",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "Tim %s",
"emails.verification.subject": "Verifikasi Akun",
"emails.verification.hello": "Hai {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Matur nuwun",
"emails.magicSession.signature": "Tim {{project}}",
"emails.recovery.subject": "Setel ulang sandi",
"emails.recovery.hello": "Halo {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s ತಂಡ",
"emails.verification.subject": "ಖಾತೆ ಪರಿಶೀಲನೆ",
"emails.verification.hello": "ನಮಸ್ಕಾರ {{name}}",
"emails.verification.hello": "ನಮಸ್ಕಾರ {{user}}",
"emails.verification.body": "ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸ ಪರಿಶೀಲನೆಗೆ ಈ ಲಿಂಕನ್ನು ಅನುಸರಿಸಿ",
"emails.verification.footer": "ನೀವು ಇಮೇಲ್ ವಿಳಾಸ ಪರಿಶೀಲನೆಗೆ ಕೇಳದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ",
"emails.verification.thanks": "ಧನ್ಯವಾದಗಳು",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "ಧನ್ಯವಾದಗಳು",
"emails.magicSession.signature": "{{project}} ತಂಡ",
"emails.recovery.subject": "ಗುಪ್ತಪದ ಮರುಹೊಂದಿಸಿ",
"emails.recovery.hello": "ನಮಸ್ಕಾರ {{name}}",
"emails.recovery.hello": "ನಮಸ್ಕಾರ {{user}}",
"emails.recovery.body": "ನಿಮ್ಮ {{project}} ಗುಪ್ತಪದವನ್ನು ಮರುಹೊಂದಿಸಲು ಈ ಲಿಂಕನ್ನು ಅನುಸರಿಸಿ",
"emails.recovery.footer": "ನೀವು ಗುಪ್ತಪದವನ್ನು ಮರುಹೊಂದಿಸಲು ಕೇಳದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ",
"emails.recovery.thanks": "ಧನ್ಯವಾದಗಳು",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s 팀",
"emails.verification.subject": "계정 인증",
"emails.verification.hello": "안녕하세요 {{name}}님",
"emails.verification.hello": "안녕하세요 {{user}}님",
"emails.verification.body": "이메일 인증을 위해 링크를 클릭하여주세요.",
"emails.verification.footer": "이메일 인증을 부탁하지 않으셨다면 이 메시지를 무시하여주세요.",
"emails.verification.thanks": "감사합니다",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "감사합니다",
"emails.magicSession.signature": "{{project}} 팀",
"emails.recovery.subject": "비밀번호 재설정",
"emails.recovery.hello": "안녕하세요 {{name}}님",
"emails.recovery.hello": "안녕하세요 {{user}}님",
"emails.recovery.body": "{{project}}의 비밀번호 재설정을 위해 링크를 클릭하여주세요.",
"emails.recovery.footer": "비밀번호 재설정 신청을 하지 않으셨다면 이 메세지를 무시하여주세요.",
"emails.recovery.thanks": "감사합니다",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr*",
"emails.sender": "%s team",
"emails.verification.subject": "Ratio comprobatio",
"emails.verification.hello": "Salve ibi {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Gratias",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Recuperet password",
"emails.recovery.hello": "Salve ibi {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s Team",
"emails.verification.subject": "Kont Verifikatioun",
"emails.verification.hello": "Hey {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Merci",
"emails.magicSession.signature": "{{project}} équipe",
"emails.recovery.subject": "Password Reset",
"emails.recovery.hello": "Hello {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s komanda",
"emails.verification.subject": "Paskyros Patvirtinimas",
"emails.verification.hello": "Labas {{name}}",
"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ū",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Ačiū",
"emails.magicSession.signature": "{{project}} komanda",
"emails.recovery.subject": "Slaptažodžio Atkūrimas",
"emails.recovery.hello": "Labas {{name}}",
"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ū",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s komanda",
"emails.verification.subject": "Konta verifikācija",
"emails.verification.hello": "Sveicināti, {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Paldies",
"emails.magicSession.signature": "{{project}} komanda",
"emails.recovery.subject": "Paroles atjaunināšana",
"emails.recovery.hello": "Labdien, {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s ടീം",
"emails.verification.subject": "അക്കൗണ്ട് സ്ഥിരീകരണം",
"emails.verification.hello": "നമസ്കാരം {{name}}",
"emails.verification.hello": "നമസ്കാരം {{user}}",
"emails.verification.body": "നിങ്ങളുടെ ഇമെയിൽ വിലാസം സ്ഥിരീകരിക്കുന്നതിനായി ഈ ലിങ്ക് പിന്തുടരുക.",
"emails.verification.footer": "ഈ വിലാസം സ്ഥിരീകരിക്കാന്‍ നിങ്ങൾ ആവശ്യപ്പെട്ടില്ലെങ്കിൽ, നിങ്ങൾക്ക് ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.",
"emails.verification.thanks": "നന്ദി",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "നന്ദി",
"emails.magicSession.signature": "{{project}} ടീം",
"emails.recovery.subject": "രഹസ്യവാക്ക് പുനക്രമീകരണം",
"emails.recovery.hello": "നമസ്കാരം {{name}}",
"emails.recovery.hello": "നമസ്കാരം {{user}}",
"emails.recovery.body": "നിങ്ങളുടെ {{Project}} രഹസ്യവാക്ക് പുനക്രമീകരിക്കുന്നതിന് ഈ ലിങ്ക് പിന്തുടരുക.",
"emails.recovery.footer": "നിങ്ങളുടെ രഹസ്യവാക്ക് പുനക്രമീകരിക്കാന്‍ നിങ്ങൾ ആവശ്യപ്പെട്ടില്ലെങ്കിൽ, ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.",
"emails.recovery.thanks": "നന്ദി",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s टीम",
"emails.verification.subject": "खाते सत्यापन",
"emails.verification.hello": "नमस्कार {{name}}",
"emails.verification.hello": "नमस्कार {{user}}",
"emails.verification.body": "आपला ईमेल पत्ता सत्यापित करण्यासाठी या दुव्याचे अनुसरण करा.",
"emails.verification.footer": "आपण या पत्त्याची पडताळणी करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
"emails.verification.thanks": "धन्यवाद",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "धन्यवाद",
"emails.magicSession.signature": "{{project}} संघ",
"emails.recovery.subject": "पासवर्ड रीसेट",
"emails.recovery.hello": "नमस्कार {{name}}",
"emails.recovery.hello": "नमस्कार {{user}}",
"emails.recovery.body": "आपला {{project}}चे पासवर्ड रीसेट करण्यासाठी या लिंकचे अनुसरण करा",
"emails.recovery.footer": "आपण आपला पासवर्ड रीसेट करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
"emails.recovery.thanks": "धन्यवाद",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s Team",
"emails.verification.subject": "Pengesahan Akaun",
"emails.verification.hello": "Hey {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Terima kasih",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Menetap semula Kata Laluan",
"emails.recovery.hello": "Hello {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s Team",
"emails.verification.subject": "Kontobekreftelse",
"emails.verification.hello": "Hei {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Takk",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Nullstille passord",
"emails.recovery.hello": "Hei {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s समूह",
"emails.verification.subject": "खाता प्रमाणिकरण",
"emails.verification.hello": "नमस्ते {{name}}",
"emails.verification.hello": "नमस्ते {{user}}",
"emails.verification.body": "इमेल ठेगाना प्रमाणित गर्नको लागी यो लिंकमा जानुहोस।",
"emails.verification.footer": "यदि तपाइँले आफ्नो खाता प्रमाणित गर्न सोध्नु भएको छैन भने तपाइँले यो सन्देश लाई बेवास्ता गर्न सक्नुहुन्छ।",
"emails.verification.thanks": "धन्यवाद",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "धन्यवाद",
"emails.magicSession.signature": "{{project}} समूह",
"emails.recovery.subject": "पासवर्ड रिसेट",
"emails.recovery.hello": "नमस्ते {{name}}",
"emails.recovery.hello": "नमस्ते {{user}}",
"emails.recovery.body": "{{project}}को पासवर्ड रिसेट गर्नको लागी यो लिंकमा जानुहोस।",
"emails.recovery.footer": "यदि तपाइँले आफ्नो पासवर्ड रिसेट गर्न सोध्नु भएको छैन भने तपाइँले यो सन्देश लाई बेवास्ता गर्न सक्नुहुन्छ।",
"emails.recovery.thanks": "धन्यवाद",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s Team",
"emails.verification.subject": "Account Verificatie",
"emails.verification.hello": "Hoi {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Bedankt",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Wachtwoord Herinstellen",
"emails.recovery.hello": "Hallo {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s Team",
"emails.verification.subject": "Kontostadfesting",
"emails.verification.hello": "Hallo {{name}}",
"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",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Takk",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Nullstilla passord",
"emails.recovery.hello": "Hallo {{name}}",
"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",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s ଦଳ",
"emails.verification.subject": "ଖାତା ଯାଞ୍ଚ",
"emails.verification.hello": "ନମସ୍କାର {{name}}",
"emails.verification.hello": "ନମସ୍କାର {{user}}",
"emails.verification.body": "ଆପଣଙ୍କର ଇମେଲ୍ ଠିକଣା ଯାଞ୍ଚ କରିବାକୁ ଏହି ଲିଙ୍କ୍ ଅନୁସରଣ କରନ୍ତୁ |",
"emails.verification.footer": "ଯଦି ଆପଣ ଏହି ଠିକଣା ଯାଞ୍ଚ କରିବାକୁ କହି ନାହାଁନ୍ତି, ତେବେ ଆପଣ ଏହି ସନ୍ଦେଶକୁ ଉପେକ୍ଷା କରିପାରିବେ |",
"emails.verification.thanks": "ଧନ୍ୟବାଦ",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "ଧନ୍ୟବାଦ",
"emails.magicSession.signature": "{{project}} ଦଳ",
"emails.recovery.subject": "ପାସୱାର୍ଡ ପୁନଃ ସେଟ୍ କରନ୍ତୁ |",
"emails.recovery.hello": "ନମସ୍କାର {{name}}",
"emails.recovery.hello": "ନମସ୍କାର {{user}}",
"emails.recovery.body": "ଆପଣଙ୍କର {{project}} ପାସୱାର୍ଡ ପୁନଃ ସେଟ୍ କରିବାକୁ ଏହି ଲିଙ୍କକୁ ଅନୁସରଣ କରନ୍ତୁ |",
"emails.recovery.footer": "ଯଦି ଆପଣ ଆପଣଙ୍କର ପାସୱାର୍ଡ ପୁନଃ ସେଟ୍ କରିବାକୁ କହି ନାହାଁନ୍ତି, ତେବେ ଆପଣ ଏହି ସନ୍ଦେଶକୁ ଉପେକ୍ଷା କରିପାରିବେ |",
"emails.recovery.thanks": "ଧନ୍ୟବାଦ",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "Zespół %s",
"emails.verification.subject": "Weryfikacja konta",
"emails.verification.hello": "Cześć {{name}}",
"emails.verification.hello": "Cześć {{user}}",
"emails.verification.body": "Przejdź do tego linku, aby zweryfikować swój adres e-mail.",
"emails.verification.footer": "Jeśli to nie Ty prosiłeś o zweryfikowanie tego adresu, zignoruj tę wiadomość.",
"emails.verification.thanks": "Dziękujemy",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Dziękujemy",
"emails.magicSession.signature": "Zespół {{project}}",
"emails.recovery.subject": "Resetowanie hasła",
"emails.recovery.hello": "Cześć {{name}}",
"emails.recovery.hello": "Cześć {{user}}",
"emails.recovery.body": "Przejdź do tego linku, aby zresetować hasło dla {{project}}.",
"emails.recovery.footer": "Jeśli to nie Ty prosiłeś o zresetowanie swojego hasła, zignoruj tę wiadomość.",
"emails.recovery.thanks": "Dziękujemy",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "Time %s",
"emails.verification.subject": "Verificação da Conta",
"emails.verification.hello": "Olá {{name}}",
"emails.verification.hello": "Olá {{user}}",
"emails.verification.body": "Clique neste link para verificar o seu endereço de e-mail.",
"emails.verification.footer": "Se você não solicitou a verificação deste e-mail, ignore essa mensagem.",
"emails.verification.thanks": "Muito obrigado",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Muito obrigado",
"emails.magicSession.signature": "Time {{project}}",
"emails.recovery.subject": "Redefinição de senha",
"emails.recovery.hello": "Olá {{name}}",
"emails.recovery.hello": "Olá {{user}}",
"emails.recovery.body": "Clique neste link para redefinir sua senha do {{project}}.",
"emails.recovery.footer": "Se você não solicitou a redefinição da sua senha, você pode ignorar essa mensagem.",
"emails.recovery.thanks": "Muito obrigado",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "Equipa %s",
"emails.verification.subject": "Verificação de contas",
"emails.verification.hello": "Hey {{name}}",
"emails.verification.hello": "Hey {{user}}",
"emails.verification.body": "Siga esta ligação para verificar o seu endereço de correio electrónico.",
"emails.verification.footer": "Se não pediu para verificar este endereço, pode ignorar esta mensagem.",
"emails.verification.thanks": "Obrigado",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Obrigado",
"emails.magicSession.signature": "Equipa {{project}}",
"emails.recovery.subject": "Redefinição de senha",
"emails.recovery.hello": "Olá {{name}}",
"emails.recovery.hello": "Olá {{user}}",
"emails.recovery.body": "Utilize este link para redefinir a palavra-passe do seu projecto {{project}}",
"emails.recovery.footer": "Se não pediu para redefinir a sua palavra-passe, pode ignorar esta mensagem.",
"emails.recovery.thanks": "Obrigado",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s Echipa",
"emails.verification.subject": "Verificare cont",
"emails.verification.hello": "Bună ziua, {{name}}",
"emails.verification.hello": "Bună ziua, {{user}}",
"emails.verification.body": "Click pe acest link pentru a valida adresa de email.",
"emails.verification.footer": "Dacă nu ai cerut validarea adresei de email, poți ignora acest mesaj.",
"emails.verification.thanks": "Mulțumim",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Mulțumim",
"emails.magicSession.signature": "Echipa {{project}}",
"emails.recovery.subject": "Resetare parolă",
"emails.recovery.hello": "Bună ziua, {{name}}",
"emails.recovery.hello": "Bună ziua, {{user}}",
"emails.recovery.body": "Click aici pentru a reseta parola pentru {{project}}",
"emails.recovery.footer": "Dacă nu ai cerut să îți schimbi parola, ignoră acest mesaj.",
"emails.recovery.thanks": "Mulțumim",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "Команда %s",
"emails.verification.subject": "Верификация аккаунта",
"emails.verification.hello": "Здравствуйте, {{name}}",
"emails.verification.hello": "Здравствуйте, {{user}}",
"emails.verification.body": "Перейдите по ссылке, чтобы подтвердить свой адрес электронной почты.",
"emails.verification.footer": "Если вы не запрашивали подтверждение этого адреса, проигнорируйте это сообщение.",
"emails.verification.thanks": "Спасибо",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Спасибо",
"emails.magicSession.signature": "команда {{project}}",
"emails.recovery.subject": "Сброс пароля",
"emails.recovery.hello": "Здравствуйте, {{name}}",
"emails.recovery.hello": "Здравствуйте, {{user}}",
"emails.recovery.body": "Перейдите по этой ссылке для того чтобы сбросить свой пароль для проекта {{project}}",
"emails.recovery.footer": "Если вы не запрашивали сброс пароля, проигнорируйте это сообщение.",
"emails.recovery.thanks": "Спасибо",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s गणः",
"emails.verification.subject": "पञ्जिकानिर्णायनम्‌",
"emails.verification.hello": "अयि {{name}}",
"emails.verification.hello": "अयि {{user}}",
"emails.verification.body": "ई-पत्रनिर्णायनार्थमिदं संयोगसूत्रमनुसरतु।",
"emails.verification.footer": "यदि अस्य संकेतस्य निर्णायनं नेष्यते तर्हि वात्र्तामिमामुपेक्षताम्‌।",
"emails.verification.thanks": "धन्यवादः",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "धन्यवादः",
"emails.magicSession.signature": "{{project}} गणः",
"emails.recovery.subject": "कूटशब्दपुनयाेजनम्‌",
"emails.recovery.hello": "अयि भो {{name}}",
"emails.recovery.hello": "अयि भो {{user}}",
"emails.recovery.body": "{{project}} कूटशब्दपुनयाेजनाय संयोगमेनमनुसरतु।",
"emails.recovery.footer": "यदि कूटशब्दस्य पुनयाेजनं नेष्यते तर्हि वात्र्तामिमामुपेक्षताम्‌।",
"emails.recovery.thanks": "धन्यवादः",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s ٽيم",
"emails.verification.subject": " اڪائونٽ جي تصديق",
"emails.verification.hello": "سلام {{name}}",
"emails.verification.hello": "سلام {{user}}",
"emails.verification.body": "پنھنجي اي ميل ايڊريس جي تصديق ڪرڻ لاءِ ھن لنڪ تي عمل ڪريو.",
"emails.verification.footer": "جيڪڏھن توھان نه پ askيا ھئا ھن ايڊريس جي تصديق ڪرڻ لاءِ ، توھان نظر انداز ڪري سگھوٿا ھن پيغام کي.",
"emails.verification.thanks": "مهرباني",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "مهرباني",
"emails.magicSession.signature": "{{project}} ٽيم",
"emails.recovery.subject": "پاسورڊ ري سيٽ",
"emails.recovery.hello": "هيلو {{name}}",
"emails.recovery.hello": "هيلو {{user}}",
"emails.recovery.body": "ھن لنڪ تي عمل ڪريو پنھنجو {{project}} پاسورڊ ري سيٽ ڪرڻ لاءِ.",
"emails.recovery.footer": "جيڪڏھن توھان نه پ پيو ھو پنھنجي پاسورڊ کي ري سيٽ ڪرڻ لاءِ ، توھان نظر انداز ڪري سگھوٿا ھن پيغام کي.",
"emails.recovery.thanks": "مهرباني",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s කණ්ඩායම",
"emails.verification.subject": "ගිණුම් සත්‍යාපනය",
"emails.verification.hello": "හේයි {{name}}",
"emails.verification.hello": "හේයි {{user}}",
"emails.verification.body": "ඔබගේ විද්‍යුත් තැපැල් ලිපිනය සත්‍යාපනය කිරීමට මෙම සම්බන්ධකය අනුගමනය කරන්න.",
"emails.verification.footer": "මෙම ලිපිනය සත්‍යාපනය කරන ලෙස ඔබ ඉල්ලුවේ නැත්නම්, ඔබට මෙම පණිවිඩය නොසලකා හැරිය හැක.",
"emails.verification.thanks": "ස්තුතියි",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "ස්තුතියි",
"emails.magicSession.signature": "{{project}} කණ්ඩායම",
"emails.recovery.subject": "මුරපද යළි පිහිටුවීම",
"emails.recovery.hello": "ආයුබෝවන් {{name}}",
"emails.recovery.hello": "ආයුබෝවන් {{user}}",
"emails.recovery.body": "ඔබගේ {{project}} මුරපදය නැවත සැකසීමට මෙම සම්බන්ධකය අනුගමනය කරන්න.",
"emails.recovery.footer": "ඔබගේ මුරපදය නැවත සකසන ලෙස ඔබ ඉල්ලුවේ නැත්නම්, ඔබට මෙම පණිවිඩය නොසලකා හැරිය හැක.",
"emails.recovery.thanks": "ස්තුතියි",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s Tím",
"emails.verification.subject": "Overenie účtu",
"emails.verification.hello": "Ahoj {{name}}",
"emails.verification.hello": "Ahoj {{user}}",
"emails.verification.body": "Použi tento link pre overenie svojej emailovej adresy.",
"emails.verification.footer": "Ak si nepožiadal o overenie tejto adresy, môžeš túto správu ignorovať.",
"emails.verification.thanks": "Ďakujeme.",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Ďakujeme",
"emails.magicSession.signature": "{{project}} tím",
"emails.recovery.subject": "Obnovenie hesla",
"emails.recovery.hello": "Ahoj {{name}}",
"emails.recovery.hello": "Ahoj {{user}}",
"emails.recovery.body": "Použi tento link pre obnovenie svojho {{project}} hesla.",
"emails.recovery.footer": "Ak si nepožiadal o obnovu svojho hesla, túto správu môžeš ignorovať.",
"emails.recovery.thanks": "Ďakujeme",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "Chikwata che%s",
"emails.verification.subject": "Kuratidzi kuti ndiwe muridzi weakaundi",
"emails.verification.hello": "Hesi {{name}}",
"emails.verification.hello": "Hesi {{user}}",
"emails.verification.body": "Tevedza chinongedzo ichi kuti uratidze kuti kero iyi ndeyako.",
"emails.verification.footer": "Kana usina kukumbira kuti uratidze kuti kero iyi ndeyako, unogona kufuratira meseji iyi.",
"emails.verification.thanks": "Ndatenda",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Ndatenda",
"emails.magicSession.signature": "Chikwata che{{project}}",
"emails.recovery.subject": "Kuchinja pasiwedhi",
"emails.recovery.hello": "Mhoro {{name}}",
"emails.recovery.hello": "Mhoro {{user}}",
"emails.recovery.body": "Baya chinongedzo ichi kuti uchinje pasiwedhi yako ye{{project}}.",
"emails.recovery.footer": "Kana usina kukumbira kuchinja pasiwedhi yako, unogona kufuratira meseji iyi.",
"emails.recovery.thanks": "Ndatenda",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s-teamet",
"emails.verification.subject": "Verifiera konto",
"emails.verification.hello": "Hej {{name}}",
"emails.verification.hello": "Hej {{user}}",
"emails.verification.body": "Klicka på denna länk för att verifiera din email",
"emails.verification.footer": "Om du inte bad om att verifiera den här e-postadressen kan du ignorera detta mail.",
"emails.verification.thanks": "Tack",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Tack",
"emails.magicSession.signature": "{{project}} teamet",
"emails.recovery.subject": "Återställ lösenord",
"emails.recovery.hello": "Hej {{name}}",
"emails.recovery.hello": "Hej {{user}}",
"emails.recovery.body": "Klicka på denna länk för att återställa lösenordet på {{project}}",
"emails.recovery.footer": "Om du inte bad om att återställa ditt lösenord kan du ignorera detta mail.",
"emails.recovery.thanks": "Tack",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s குழு",
"emails.verification.subject": "கணக்கு சரிபார்ப்பு",
"emails.verification.hello": "ஏய் {{name}}",
"emails.verification.hello": "ஏய் {{user}}",
"emails.verification.body": "உங்கள் மின்னஞ்சல் முகவரியைச் சரிபார்க்க இந்த இணைப்பைப் பின்தொடரவும்.",
"emails.verification.footer": "இந்த முகவரியைச் சரிபார்க்கும்படி உங்களிடம் கேட்கப்படவில்லை என்றால், இந்தச் செய்தியை நீங்கள் புறக்கணிக்கலாம்.",
"emails.verification.thanks": "நன்றி",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "நன்றி",
"emails.magicSession.signature": "{{project}} குழு",
"emails.recovery.subject": "கடவுச்சொல் மீட்டமைப்பு",
"emails.recovery.hello": "வணக்கம் {{name}}",
"emails.recovery.hello": "வணக்கம் {{user}}",
"emails.recovery.body": "மீட்டமைக்க இந்த இணைப்பைப் பின்தொடரவும் {{project}} கடவுச்சொல்.",
"emails.recovery.footer": "உங்கள் கடவுச்சொல்லை மீட்டமைக்கும்படி உங்களிடம் கேட்கப்படவில்லை என்றால், இந்தச் செய்தியை நீங்கள் புறக்கணிக்கலாம்.",
"emails.recovery.thanks": "நன்றி",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s జట్టు",
"emails.verification.subject": "ఖాతా ధృవీకరణ",
"emails.verification.hello": "నమస్కారము {{name}}",
"emails.verification.hello": "నమస్కారము {{user}}",
"emails.verification.body": "ఈ లింక్ ద్వారా ఇమెయిల్ ని ధృవీకరించండి",
"emails.verification.footer": "మీరు ఈ చిరునామాను ధృవీకరించమని అడగనట్లయితే, మీరు ఈ సందేశాన్ని విస్మరించవచ్చు",
"emails.verification.thanks": "ధన్యవాదాలు",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "ధన్యవాదాలు",
"emails.magicSession.signature": "{{project}} జట్",
"emails.recovery.subject": "పాస్వర్డ్ రీసెట్",
"emails.recovery.hello": "నమస్కారమ {{name}}",
"emails.recovery.hello": "నమస్కారమ {{user}}",
"emails.recovery.body": "మీ {{project}} పాస్వర్డ్ ని రీసెట్ చేయడానికి ఈ లింక్ ని అనుసరించండి",
"emails.recovery.footer": "మీరు మీ పాస్వర్డ్ ని రీసెట్ చేయమని అడగనట్లయితే, మీరు ఈ సందేశాన్ని విస్మరించవచ్చు",
"emails.recovery.thanks": "ధన్యవాదాల",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "ทีม %s",
"emails.verification.subject": "การยืนยันบัญชีผู้ใช้",
"emails.verification.hello": "เรียนคุณ {{name}}",
"emails.verification.hello": "เรียนคุณ {{user}}",
"emails.verification.body": "กดเข้าไปที่ลิงก์นี้เพื่อยืนยันอีเมลของท่าน",
"emails.verification.footer": "หากท่านไม่ได้ต้องการที่จะยืนยันอีเมลนี้ ท่านสามารถเพิกเฉยข้อความนี้ได้",
"emails.verification.thanks": "ขอบคุณ",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "ขอบคุณ",
"emails.magicSession.signature": "ทีม {{project}}",
"emails.recovery.subject": "รีเซ็ตรหัสผ่าน",
"emails.recovery.hello": "เรียนคุณ {{name}}",
"emails.recovery.hello": "เรียนคุณ {{user}}",
"emails.recovery.body": "กดเข้าไปที่ลิงก์นี้เพื่อรีเซ็ตรหัสผ่านสำหรับโปรเจกต์ {{project}} ของท่าน",
"emails.recovery.footer": "หากท่านไม่ได้ต้องการที่จะรีเซ็ตรหัสผ่านของท่าน ท่านสามารถเพิกเฉยข้อความนี้ได้",
"emails.recovery.thanks": "ขอบคุณ",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "Pangkat ng %s",
"emails.verification.subject": "Pagpapatunay ng account",
"emails.verification.hello": "Kamusta {{name}}",
"emails.verification.hello": "Kamusta {{user}}",
"emails.verification.body": "Sundin ang link na ito upang ma-verify ang iyong email address.",
"emails.verification.footer": "Kung hindi mo hiningi na i-verify ang address na ito, maaari mong balewalain ang mensahe na ito.",
"emails.verification.thanks": "Salamat",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Salamat",
"emails.magicSession.signature": "Pangkat ng {{project}}",
"emails.recovery.subject": "I-reset ang password",
"emails.recovery.hello": "Kamusta {{name}}",
"emails.recovery.hello": "Kamusta {{user}}",
"emails.recovery.body": "Sundin ang link na ito upang i-reset ang password ng iyong {{project}}.",
"emails.recovery.footer": "Kung hindi mo hiningi na i-reset ang iyong password, maaari mong balewalain ang mensahe na ito.",
"emails.recovery.thanks": "Salamat",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "Команда %s",
"emails.verification.subject": "Верифікація акаунта",
"emails.verification.hello": "Вітаємо, {{name}}",
"emails.verification.hello": "Вітаємо, {{user}}",
"emails.verification.body": "Перейдіть за цим посиланням, щоб підтвердити свою електронну адресу.",
"emails.verification.footer": "Якщо ви не запитували підтвердження цієї адреси, ви можете ігнорувати це повідомлення.",
"emails.verification.thanks": "Дякуємо",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Дякуємо",
"emails.magicSession.signature": "команда {{project}}",
"emails.recovery.subject": "Скидання пароля",
"emails.recovery.hello": "Вітаємо, {{name}}",
"emails.recovery.hello": "Вітаємо, {{user}}",
"emails.recovery.body": "Перейдіть за цим посиланням для того щоб скинути свій пароль для проекту {{project}}",
"emails.recovery.footer": "Якщо ви не запитували скидання паролю, проігноруйте це повідомлення.",
"emails.recovery.thanks": "Дякуємо",

View file

@ -4,7 +4,7 @@
"settings.direction": "rtl",
"emails.sender": "%s ٹیم",
"emails.verification.subject": "اکاؤنٹ کی تصدیق",
"emails.verification.hello": "خوش آمدید {{name}}",
"emails.verification.hello": "خوش آمدید {{user}}",
"emails.verification.body": "براہ کرم اپنے ای میل کی تصدیق کے لیے درج ذیل لنک پر عمل کریں۔",
"emails.verification.footer": "اگر آپ نے اس پتے کی تصدیق کے لیے نہیں کہا تو آپ اس پیغام کو نظر انداز کر سکتے ہیں۔",
"emails.verification.thanks": "شکریہ",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "شکریہ",
"emails.magicSession.signature": "ٹیم۔ {{project}}",
"emails.recovery.subject": "پاس ورڈ ری سیٹ۔",
"emails.recovery.hello": "ہیلو {{name}}",
"emails.recovery.hello": "ہیلو {{user}}",
"emails.recovery.body": "{{project}} کا پاس ورڈ تبدیل کرنے کے لیے درج ذیل لنک پر عمل کریں",
"emails.recovery.footer": "اگر آپ نے اپنا پاس ورڈ دوبارہ ترتیب دینے کے لیے نہیں کہا تو آپ اس پیغام کو نظر انداز کر سکتے ہیں۔",
"emails.recovery.thanks": "شکریہ",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "Nhóm %s",
"emails.verification.subject": "Xác minh tài khoản",
"emails.verification.hello": "Chào {{name}}",
"emails.verification.hello": "Chào {{user}}",
"emails.verification.body": "Nhấn vào đường dẫn sau để xác minh địa chỉ email của bạn.",
"emails.verification.footer": "Nếu bạn không yêu cầu xác minh tài khoản, bạn có thể bỏ qua email này.",
"emails.verification.thanks": "Cảm ơn",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "Cảm ơn",
"emails.magicSession.signature": "Nhóm {{project}}",
"emails.recovery.subject": "Thiết lập lại mật khẩu",
"emails.recovery.hello": "Chào {{name}}",
"emails.recovery.hello": "Chào {{user}}",
"emails.recovery.body": "Nhấn vào đường dẫn sau để thiết lập lại mật khẩu {{project}} của bạn.",
"emails.recovery.footer": "Nếu bạn không yêu cầu thiết lập lại mật khẩu, bạn có thể bỏ qua email này.",
"emails.recovery.thanks": "Cảm ơn",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s 小组",
"emails.verification.subject": "帐户验证",
"emails.verification.hello": "你好 {{name}}",
"emails.verification.hello": "你好 {{user}}",
"emails.verification.body": "点此链接验证您的电子邮件地址。",
"emails.verification.footer": "如果您没有要求验证此地址,则可忽略此消息。",
"emails.verification.thanks": "谢谢",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "谢谢",
"emails.magicSession.signature": "{{project}} 团队",
"emails.recovery.subject": "重设密码",
"emails.recovery.hello": "你好 {{name}}",
"emails.recovery.hello": "你好 {{user}}",
"emails.recovery.body": "点此链接重置您的 {{project}} 密码。",
"emails.recovery.footer": "如果您没有要求重置密码,则可以忽略此消息。",
"emails.recovery.thanks": "谢谢",

View file

@ -4,7 +4,7 @@
"settings.direction": "ltr",
"emails.sender": "%s 小組",
"emails.verification.subject": "帳戶驗證",
"emails.verification.hello": "嗨 {{name}}",
"emails.verification.hello": "嗨 {{user}}",
"emails.verification.body": "按照此連結驗證您的電子郵件地址。",
"emails.verification.footer": "如果您沒有要求驗證此地址,則可以忽略此消息。",
"emails.verification.thanks": "謝謝",
@ -16,7 +16,7 @@
"emails.magicSession.thanks": "謝謝",
"emails.magicSession.signature": "{{project}} 團隊",
"emails.recovery.subject": "重設密碼",
"emails.recovery.hello": "您好 {{name}}",
"emails.recovery.hello": "您好 {{user}}",
"emails.recovery.body": "按照此連結重置您的 {{project}} 密碼。",
"emails.recovery.footer": "如果您沒有要求重置密碼,則可以忽略此消息。",
"emails.recovery.thanks": "謝謝",

View file

@ -15,7 +15,7 @@ return [
[
'key' => 'web',
'name' => 'Web',
'version' => '11.0.0',
'version' => '12.0.0',
'url' => 'https://github.com/appwrite/sdk-for-web',
'package' => 'https://www.npmjs.com/package/appwrite',
'enabled' => true,
@ -63,7 +63,7 @@ return [
[
'key' => 'flutter',
'name' => 'Flutter',
'version' => '9.0.0',
'version' => '10.0.0',
'url' => 'https://github.com/appwrite/sdk-for-flutter',
'package' => 'https://pub.dev/packages/appwrite',
'enabled' => true,
@ -81,7 +81,7 @@ return [
[
'key' => 'apple',
'name' => 'Apple',
'version' => '2.0.0',
'version' => '3.0.0',
'url' => 'https://github.com/appwrite/sdk-for-apple',
'package' => 'https://github.com/appwrite/sdk-for-apple',
'enabled' => true,
@ -116,7 +116,7 @@ return [
[
'key' => 'android',
'name' => 'Android',
'version' => '2.0.0',
'version' => '3.0.0',
'url' => 'https://github.com/appwrite/sdk-for-android',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-android',
'enabled' => true,
@ -185,7 +185,7 @@ return [
[
'key' => 'web',
'name' => 'Console',
'version' => '0.1.0',
'version' => '0.3.0',
'url' => 'https://github.com/appwrite/sdk-for-console',
'package' => '',
'enabled' => true,
@ -203,7 +203,7 @@ return [
[
'key' => 'cli',
'name' => 'Command Line',
'version' => '2.0.2',
'version' => '3.0.0',
'url' => 'https://github.com/appwrite/sdk-for-cli',
'package' => 'https://www.npmjs.com/package/appwrite-cli',
'enabled' => true,
@ -231,7 +231,7 @@ return [
[
'key' => 'nodejs',
'name' => 'Node.js',
'version' => '9.0.0',
'version' => '10.0.0',
'url' => 'https://github.com/appwrite/sdk-for-node',
'package' => 'https://www.npmjs.com/package/node-appwrite',
'enabled' => true,
@ -249,7 +249,7 @@ return [
[
'key' => 'deno',
'name' => 'Deno',
'version' => '7.0.0',
'version' => '8.0.0',
'url' => 'https://github.com/appwrite/sdk-for-deno',
'package' => 'https://deno.land/x/appwrite',
'enabled' => true,
@ -267,7 +267,7 @@ return [
[
'key' => 'php',
'name' => 'PHP',
'version' => '8.0.0',
'version' => '9.0.0',
'url' => 'https://github.com/appwrite/sdk-for-php',
'package' => 'https://packagist.org/packages/appwrite/appwrite',
'enabled' => true,
@ -285,7 +285,7 @@ return [
[
'key' => 'python',
'name' => 'Python',
'version' => '2.0.2',
'version' => '3.0.0',
'url' => 'https://github.com/appwrite/sdk-for-python',
'package' => 'https://pypi.org/project/appwrite/',
'enabled' => true,
@ -303,7 +303,7 @@ return [
[
'key' => 'ruby',
'name' => 'Ruby',
'version' => '8.0.0',
'version' => '9.0.0',
'url' => 'https://github.com/appwrite/sdk-for-ruby',
'package' => 'https://rubygems.org/gems/appwrite',
'enabled' => true,
@ -357,7 +357,7 @@ return [
[
'key' => 'dotnet',
'name' => '.NET',
'version' => '0.4.2',
'version' => '0.5.0',
'url' => 'https://github.com/appwrite/sdk-for-dotnet',
'package' => 'https://www.nuget.org/packages/Appwrite',
'enabled' => true,
@ -375,7 +375,7 @@ return [
[
'key' => 'dart',
'name' => 'Dart',
'version' => '8.0.0',
'version' => '9.0.0',
'url' => 'https://github.com/appwrite/sdk-for-dart',
'package' => 'https://pub.dev/packages/dart_appwrite',
'enabled' => true,
@ -393,7 +393,7 @@ return [
[
'key' => 'kotlin',
'name' => 'Kotlin',
'version' => '2.0.0',
'version' => '3.0.0',
'url' => 'https://github.com/appwrite/sdk-for-kotlin',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-kotlin',
'enabled' => true,
@ -415,7 +415,7 @@ return [
[
'key' => 'swift',
'name' => 'Swift',
'version' => '2.0.0',
'version' => '3.0.0',
'url' => 'https://github.com/appwrite/sdk-for-swift',
'package' => 'https://github.com/appwrite/sdk-for-swift',
'enabled' => true,

View file

@ -1,6 +1,7 @@
<?php
return [ // Ordered by ABC.
// Ordered by ABC.
return [
'amazon' => [
'name' => 'Amazon',
'developers' => 'https://developer.amazon.com/apps-and-games/services-and-apis',

View file

@ -3,6 +3,7 @@
use Appwrite\Auth\Auth;
$member = [
'global',
'public',
'home',
'console',
@ -23,6 +24,7 @@ $member = [
];
$admins = [
'global',
'graphql',
'teams.read',
'teams.write',
@ -51,6 +53,13 @@ $admins = [
'functions.write',
'execution.read',
'execution.write',
'rules.read',
'rules.write',
'migrations.read',
'migrations.write',
'vcs.read',
'vcs.write',
'assistant.read',
];
return [
@ -72,22 +81,22 @@ return [
],
Auth::USER_ROLE_USERS => [
'label' => 'Users',
'scopes' => \array_merge($member, []),
'scopes' => \array_merge($member),
],
Auth::USER_ROLE_ADMIN => [
'label' => 'Admin',
'scopes' => \array_merge($admins, []),
'scopes' => \array_merge($admins),
],
Auth::USER_ROLE_DEVELOPER => [
'label' => 'Developer',
'scopes' => \array_merge($admins, []),
'scopes' => \array_merge($admins),
],
Auth::USER_ROLE_OWNER => [
'label' => 'Owner',
'scopes' => \array_merge($member, $admins, []),
'scopes' => \array_merge($member, $admins),
],
Auth::USER_ROLE_APPS => [
'label' => 'Applications',
'scopes' => ['health.read', 'graphql'],
'scopes' => ['global', 'health.read', 'graphql'],
],
];

View file

@ -7,7 +7,7 @@
use Utopia\App;
use Appwrite\Runtimes\Runtimes;
$runtimes = new Runtimes('v2');
$runtimes = new Runtimes('v3');
$allowList = empty(App::getEnv('_APP_FUNCTIONS_RUNTIMES')) ? [] : \explode(',', App::getEnv('_APP_FUNCTIONS_RUNTIMES'));

View file

@ -76,4 +76,25 @@ return [ // List of publicly visible scopes
'health.read' => [
'description' => 'Access to read your project\'s health status',
],
'rules.read' => [
'description' => 'Access to read your project\'s proxy rules',
],
'rules.write' => [
'description' => 'Access to create, update, and delete your project\'s proxy rules',
],
'migrations.read' => [
'description' => 'Access to read your project\'s migrations',
],
'migrations.write' => [
'description' => 'Access to create, update, and delete your project\'s migrations.',
],
'vcs.read' => [
'description' => 'Access to read your project\'s VCS repositories',
],
'vcs.write' => [
'description' => 'Access to create, update, and delete your project\'s VCS repositories',
],
'assistant.read' => [
'description' => 'Access to read the Assistant service',
],
];

View file

@ -108,6 +108,19 @@ return [
'optional' => false,
'icon' => '',
],
'project' => [
'key' => 'project',
'name' => 'Project',
'subtitle' => 'The Project service allows you to manage all the projects in your Appwrite server.',
'description' => '',
'controller' => 'api/project.php',
'sdk' => true,
'docs' => true,
'docsUrl' => '',
'tests' => false,
'optional' => false,
'icon' => '',
],
'storage' => [
'key' => 'storage',
'name' => 'Storage',
@ -147,6 +160,19 @@ return [
'optional' => true,
'icon' => '/images/services/users.png',
],
'vcs' => [
'key' => 'vcs',
'name' => 'VCS',
'subtitle' => 'The VCS service allows you to interact with providers like GitHub, GitLab etc.',
'description' => '',
'controller' => 'api/vcs.php',
'sdk' => false,
'docs' => false,
'docsUrl' => '',
'tests' => false,
'optional' => true,
'icon' => '',
],
'functions' => [
'key' => 'functions',
'name' => 'Functions',
@ -160,6 +186,19 @@ return [
'optional' => true,
'icon' => '/images/services/functions.png',
],
'proxy' => [
'key' => 'proxy',
'name' => 'Proxy',
'subtitle' => 'The Proxy Service allows you to configure actions for your domains beyond DNS configuration.',
'description' => '/docs/services/proxy.md',
'controller' => 'api/proxy.php',
'sdk' => true,
'docs' => true,
'docsUrl' => 'https://appwrite.io/docs/proxy',
'tests' => false,
'optional' => true,
'icon' => '/images/services/proxy.png',
],
'mock' => [
'key' => 'mock',
'name' => 'Mock',
@ -199,4 +238,17 @@ return [
'optional' => false,
'icon' => '',
],
'migrations' => [
'key' => 'migrations',
'name' => 'Migrations',
'subtitle' => 'The Migrations service allows you to migrate third-party data to your Appwrite project.',
'description' => '/docs/services/migrations.md',
'controller' => 'api/migrations.php',
'sdk' => true,
'docs' => true,
'docsUrl' => 'https://appwrite.io/docs/migrations',
'tests' => true,
'optional' => true,
'icon' => '/images/services/migrations.png',
],
];

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show more