1
0
Fork 0
mirror of synced 2024-05-20 20:52:36 +12:00

Merge branch 'master' into addingSinhalaLocale

This commit is contained in:
Rajitha Gunathilake 2019-10-03 13:50:00 +05:30 committed by GitHub
commit ac49bd7755
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
67 changed files with 2533 additions and 429 deletions

View file

@ -5,7 +5,7 @@
* Added option to limit access to the Appwrite console
* Added option to disable abuse check and rate limits
* Added input field with the server API endpoint for easy access
* Added new OAuth providers for Google and Gitlab
* Added new OAuth providers for Google and GitLab
* Added 15 new locales for locale service and email templates (cat, de, es, fi, fr, gr, hi, id, it, nl, pt-br, pt-pt, ro, tr, ua)
* Improved test coverage for the project and synced DEV & CI environments settings
@ -20,4 +20,4 @@
* Changed auth service 'redirect' param to 'confirm' for better clarity
* Updated all SDKs to sync with API changes
# Version 0.1.15 (NOT-RELEASED)
# Version 0.1.15 (NOT-RELEASED)

View file

@ -3,9 +3,9 @@
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
contributors and maintainers pledge to make participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
size, disability, ethnicity, sex characteristics, gender identity, expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

View file

@ -42,7 +42,7 @@ We use prettier for our JS coding standards and for auto-formatting our code.
Appwrite is built to scale. Please keep in mind that the Appwrite stack can run in different environments and different scales.
We wish Appwrite will be as easy to set up and in a single, local host and easy to grow to a large environment with thousands and even hundreds of instances.
We wish Appwrite will be as easy to set up and in a single, localhost and easy to grow to a large environment with thousands and even hundreds of instances.
When contributing code please take into account the following considerations:
@ -67,7 +67,7 @@ Although the Appwrite API is a monolithic app, it has a very clear separation of
### The Microservice Part
Each container in Appwrite is a microservice by its own. Each service is an independent process which can scale without regard to any of the other services.
Each container in Appwrite is a microservice on its own. Each service is an independent process that can scale without regard to any of the other services.
Currently, all of the Appwrite microservices are intended to communicate using TCP protocol over a private network. You should be aware to not expose any of the services to the public-facing network, besides the public port 80 and 443 who by default are used to expose the Appwrite HTTP API.
@ -93,10 +93,10 @@ This is also important for the Appwrite lead developers to be able to give techn
## Setup
To set up a working development environment just clone the project git repository and install the backend and frontend dependencies using the proper package manager and create run the docker-compose stack.
To set up a working development environment just fork the project git repository and install the backend and frontend dependencies using the proper package manager and create run the docker-compose stack.
```bash
git clone git@github.com:appwrite/appwrite.git
git clone git@github.com:[YOUR_FORK_HERE]/appwrite.git
cd appwrite

View file

@ -16,9 +16,9 @@
Appwrite is a simple self-hosted backend server for web and mobile developers with a shiny dashboard and a very easy to use REST API.
Appwrite API services aims to make developers life a lot easier by hiding the complexity of common and repetitive software development tasks.
Appwrite API services aim to make developers life a lot easier by hiding the complexity of common and repetitive software development tasks.
Using Appwrite you can easily manage user authentication with multiple sign-in methods, database for storing and querying user and teams data, storage and file management, image manipulation and cropping, scheduled cron tasks and many other features to help you get more results in faster times and with a lot less code.
Using Appwrite you can easily manage user authentication with multiple sign-in methods, a database for storing and querying user and teams data, storage and file management, image manipulation and cropping, scheduled cron tasks and many other features to help you get more results in faster times and with a lot less code.
[https://appwrite.io](https://appwrite.io)
@ -26,7 +26,7 @@ Using Appwrite you can easily manage user authentication with multiple sign-in m
## Installation
Appwrite backend server is designed to run in a container environment. Running your server is as easy as running one command from your terminal. You can run Appwrite on your localhost using docker-compose or on any other container orchestration tool like Kubernetes, Docker Swarm or Rancher.
Appwrite backend server is designed to run in a container environment. Running your server is as easy as running one command from your terminal. You can either run Appwrite on your localhost using docker-compose or on any other container orchestration tool like Kubernetes, Docker Swarm or Rancher.
The easiest way to start running your Appwrite server is by running our docker compose file:
@ -61,13 +61,13 @@ Getting started with Appwrite is as easy as creating a new project, choosing you
* [**Auth**](https://appwrite.io/docs/auth) - Manage user authentication using multiple sign-in methods and account recovery.
* [**Account**](https://appwrite.io/docs/account) - Manage current user account. Track and manage the user sessions, devices and security audit log.
* [**Users**](https://appwrite.io/docs/users) - Manage and list all project users when in admin mode.
* [**Teams**](https://appwrite.io/docs/teams) - Manage and group users in teams. Manage memberships, invites and users roles within a team.
* [**Database**](https://appwrite.io/docs/database) - Manage database collections and document. Read, create, update and delete documents and filter lists of documents collections using advanced filter with graph like capabilities.
* [**Storage**](https://appwrite.io/docs/storage) - Manage storage files. Read, create, delete and preview files. Manipulate your files preview to fit your app perfectly. All files are scanned by ClamAV and stored in a secure and encrypted way.
* [**Locale**](https://appwrite.io/docs/locale) - Track users location, and manage your app locale based data.
* [**Avatars**](https://appwrite.io/docs/avatars) - Manage your users avatars, countries flags, browser icons, credit card symbols and generate QR codes.
* [**Teams**](https://appwrite.io/docs/teams) - Manage and group users in teams. Manage memberships, invites and user roles within a team.
* [**Database**](https://appwrite.io/docs/database) - Manage database collections and document. Read, create, update and delete documents and filter lists of documents collections using an advanced filter with graph like capabilities.
* [**Storage**](https://appwrite.io/docs/storage) - Manage storage files. Read, create, delete and preview files. Manipulate the preview of your files to fit your app perfectly. All files are scanned by ClamAV and stored in a secure and encrypted way.
* [**Locale**](https://appwrite.io/docs/locale) - Track user's location, and manage your app locale based data.
* [**Avatars**](https://appwrite.io/docs/avatars) - Manage your user's avatars, country's flags, browser icons, credit card symbols and generate QR codes.
For the complete API documentation, visit [https://appwrite.io/docs](https://appwrite.io/docs). For more tutorials, news and announcments checkout our [blog](https://medium.com/appwrite-io).
For the complete API documentation, visit [https://appwrite.io/docs](https://appwrite.io/docs). For more tutorials, news and announcments check out our [blog](https://medium.com/appwrite-io).
### SDKs
@ -94,32 +94,34 @@ Join our growing community around the world! Follow us on [Twitter](https://twit
All code contributions - including those of people having commit access - must go through a pull request and approved by a core developer before being merged. This is to ensure proper review of all the code.
We really ❤️ pull requests! If you wish to help, you can learn more about how you can contribute to this project in the [contribution guide](CONTRIBUTING.md).
We truly ❤️ pull requests! If you wish to help, you can learn more about how you can contribute to this project in the [contribution guide](CONTRIBUTING.md).
## Credits
Created by [Eldad Fux](https://twitter.com/eldadfux) with the amazing help of our **amazing contributors:**
* 🇺🇸 Justin Dorfman ([Github](https://github.com/jdorfman), [Twitter](https://twitter.com/jdorfman))
* 🇺🇳 0xflotus ([Github](https://github.com/0xflotus))
* 🇳🇴 Petter Charles Redfern ([Github](https://github.com/Chaaarles))
* 🇧🇷 Jessé Souza ([Github](https://github.com/jessescn))
* 🇪🇸 Esther Álvarez Feijoo ([Github](https://github.com/EstherAF))
* 🇮🇳 Christy Jacob ([Github](https://github.com/christyjacob4), [Linkedin](https://www.linkedin.com/in/christyjacob4/))
* 🇺🇦 Dmitriy Danilov ([Github](https://github.com/daniloff200), [Twitter](https://twitter.com/daniloff200))
* 🇮🇩 Zeet ([Github](https://github.com/Kiy4h))
* 🇫🇮 Pessi Päivärinne ([Github](https://github.com/pessip))
* 🇺🇳 Sergi Vos ([Github](https://github.com/sergivb01), [Twitter](https://twitter.com/sergivb01), [Linkedin](https://www.linkedin.com/in/sergivb01/))
* 🇮🇱 Tomer Cohen ([Github](https://github.com/tomer), [Twitter](https://twitter.com/tomer))
* 🇮🇹 Tatiana ([Github](https://github.com/tacoelho))
* 🇬🇷 Panagiotis Skarlas ([Github](https://github.com/1qk1), [Twitter](https://twitter.com/qktweets))
* 🇷🇺 Alexey Pyltsyn ([Github](https://github.com/lex111))
* 🇩🇪 Robin C ([Github](https://github.com/Taminoful))
* 🇮🇳 Parikshit Hooda ([Github](https://github.com/Parikshit-Hooda))
* 🇫🇷 Corentin Le Fur ([Github](https://github.com/crtlf))
* 🇬🇧 Callum Lowry ([Github](https://github.com/Girxffe))
* 🇷🇴 Bogdan Covrig ([Github](https://github.com/BogDAAAMN), [Twitter](https://twitter.com/BogdanCovrig))
* 🇳🇱 Kolkies ([Github](https://github.com/kolkies.dev))
* 🇹🇷 Mustafa Dur ([Github](https://github.com/tosbaha))
* 🇵🇹 Luís Pinto ([Github](https://github.com/LiTO773))
* 🇮🇳 Saksham Saxena ([Github](https://github.com/sakkshm))
* 🇺🇸 Justin Dorfman ([GitHub](https://github.com/jdorfman), [Twitter](https://twitter.com/jdorfman))
* 🇺🇳 0xflotus ([GitHub](https://github.com/0xflotus))
* 🇳🇴 Petter Charles Redfern ([GitHub](https://github.com/Chaaarles))
* 🇧🇷 Jessé Souza ([GitHub](https://github.com/jessescn))
* 🇪🇸 Esther Álvarez Feijoo ([GitHub](https://github.com/EstherAF))
* 🇮🇳 Christy Jacob ([GitHub](https://github.com/christyjacob4), [LinkedIn](https://www.linkedin.com/in/christyjacob4/))
* 🇺🇦 Dmitriy Danilov ([GitHub](https://github.com/daniloff200), [Twitter](https://twitter.com/daniloff200))
* 🇮🇩 Zeet ([GitHub](https://github.com/Kiy4h))
* 🇫🇮 Pessi Päivärinne ([GitHub](https://github.com/pessip))
* 🇺🇳 Sergi Vos ([GitHub](https://github.com/sergivb01), [Twitter](https://twitter.com/sergivb01), [LinkedIn](https://www.linkedin.com/in/sergivb01/))
* 🇮🇱 Tomer Cohen ([GitHub](https://github.com/tomer), [Twitter](https://twitter.com/tomer))
* 🇮🇹 Tatiana ([GitHub](https://github.com/tacoelho))
* 🇬🇷 Panagiotis Skarlas ([GitHub](https://github.com/1qk1), [Twitter](https://twitter.com/qktweets))
* 🇷🇺 Alexey Pyltsyn ([GitHub](https://github.com/lex111))
* 🇩🇪 Robin C ([GitHub](https://github.com/Taminoful))
* 🇮🇳 Parikshit Hooda ([GitHub](https://github.com/Parikshit-Hooda))
* 🇫🇷 Corentin Le Fur ([GitHub](https://github.com/crtlf))
* 🇬🇧 Callum Lowry ([GitHub](https://github.com/Girxffe))
* 🇷🇴 Bogdan Covrig ([GitHub](https://github.com/BogDAAAMN), [Twitter](https://twitter.com/BogdanCovrig))
* 🇳🇱 Kolkies ([GitHub](https://github.com/kolkies.dev))
* 🇹🇷 Mustafa Dur ([GitHub](https://github.com/tosbaha))
* 🇵🇹 Luís Pinto ([GitHub](https://github.com/LiTO773))
* 🇮🇳 Saksham Saxena ([GitHub](https://github.com/sakkshm))
* 🇮🇱 Dima Vishnevetsky ([GitHub](https://github.com/dimshik100), [Twitter](https://twitter.com/dimshik100))
* 🇭🇺 lacexd ([GitHub](https://github.com/lacexd))

View file

@ -0,0 +1,11 @@
<?php
return [
'AF' => 'Afrika',
'AN' => 'Antarktida',
'AS' => 'Asie',
'EU' => 'Evropa',
'NA' => 'Severní Amerika',
'OC' => 'Oceánie',
'SA' => 'Jižní Amerika',
];

View file

@ -0,0 +1,198 @@
<?php
return [
'AF' => 'Afghánistán',
'AO' => 'Angola',
'AL' => 'Albánie',
'AD' => 'Andorra',
'AE' => 'Spojené arabské emiráty',
'AR' => 'Argentina',
'AM' => 'Arménie',
'AG' => 'Antigua a Barbuda',
'AU' => 'Austrálie',
'AT' => 'Rakousko',
'AZ' => 'Ázerbájdžán',
'BI' => 'Burundi',
'BE' => 'Belgie',
'BJ' => 'Benin',
'BF' => 'Burkina Faso',
'BD' => 'Bangladesh',
'BG' => 'Bulharsko',
'BH' => 'Bahrain',
'BS' => 'Bahamy',
'BA' => 'Bosna a Hercegovina',
'BY' => 'Belarus',
'BZ' => 'Belize',
'BO' => 'Bolívie',
'BR' => 'Brazílie',
'BB' => 'Barbados',
'BN' => 'Brunej',
'BT' => 'Bhútán',
'BW' => 'Botswana',
'CF' => 'Středoafrická republika',
'CA' => 'Canada',
'CH' => 'Švýcarsko',
'CL' => 'Chile',
'CN' => 'China',
'CI' => 'Pobřeží slonoviny',
'CM' => 'Kamerun',
'CD' => 'DR Kongo',
'CG' => 'Konžská republika',
'CO' => 'Colombia',
'KM' => 'Komory',
'CV' => 'Cape Verde',
'CR' => 'Kostarika',
'CU' => 'Kuba',
'CY' => 'Cyprus',
'CZ' => 'Česko',
'DE' => 'Německo',
'DJ' => 'Djibouti',
'DM' => 'Dominika',
'DK' => 'Denmark',
'DO' => 'Dominikánská republika',
'DZ' => 'Alžírsko',
'EC' => 'Ekvádor',
'EG' => 'Egypt',
'ER' => 'Eritrea',
'ES' => 'Španělsko',
'EE' => 'Estonsko',
'ET' => 'Etiopie',
'FI' => 'Finsko',
'FJ' => 'Fidži',
'FR' => 'France',
'FM' => 'Mikronésie',
'GA' => 'Gabun',
'GB' => 'Spojené království',
'GE' => 'Georgia',
'GH' => 'Ghana',
'GN' => 'Guinea',
'GM' => 'Gambia',
'GW' => 'Guinea-Bissau',
'GQ' => 'Rovníková Guinea',
'GR' => 'Řecko',
'GD' => 'Grenada',
'GT' => 'Guatemala',
'GY' => 'Guyana',
'HN' => 'Honduras',
'HR' => 'Chorvatsko',
'HT' => 'Haiti',
'HU' => 'Maďarsko',
'ID' => 'Indonésie',
'IN' => 'India',
'IE' => 'Irsko',
'IR' => 'Iran',
'IQ' => 'Irák',
'IS' => 'Island',
'IL' => 'Israel',
'IT' => 'Itálie',
'JM' => 'Jamajka',
'JO' => 'Jordan',
'JP' => 'Japan',
'KZ' => 'Kazachstán',
'KE' => 'Keňa',
'KG' => 'Kyrgyzstán',
'KH' => 'Kambodža',
'KI' => 'Kiribati',
'KN' => 'Svatý Kryštof a Nevis',
'KR' => 'Jižní Korea',
'KW' => 'Kuvajt',
'LA' => 'Laos',
'LB' => 'Lebanon',
'LR' => 'Libérie',
'LY' => 'Libya',
'LC' => 'Svatá Lucie',
'LI' => 'Lichtenštejnsko',
'LK' => 'Srí Lanka',
'LS' => 'Lesotho',
'LT' => 'Litva',
'LU' => 'Luxembourg',
'LV' => 'Latvia',
'MA' => 'Maroko',
'MC' => 'Monaco',
'MD' => 'Moldavsko',
'MG' => 'Madagaskar',
'MV' => 'Maledivy',
'MX' => 'Mexico',
'MH' => 'Marshallovy ostrovy',
'MK' => 'Macedonia',
'ML' => 'Mali',
'MT' => 'Malta',
'MM' => 'Myanmar',
'ME' => 'Montenegro',
'MN' => 'Mongolia',
'MZ' => 'Mozambik',
'MR' => 'Mauritania',
'MU' => 'Mauricius',
'MW' => 'Malawi',
'MY' => 'Malajsie',
'NA' => 'Namibie',
'NE' => 'Niger',
'NG' => 'Nigeria',
'NI' => 'Nikaragua',
'NL' => 'Netherlands',
'NO' => 'Norway',
'NP' => 'Nepál',
'NR' => 'Nauru',
'NZ' => 'Nový Zéland',
'OM' => 'Omán',
'PK' => 'Pákistán',
'PA' => 'Panama',
'PE' => 'Peru',
'PH' => 'Filipíny',
'PW' => 'Palau',
'PG' => 'Papua Nová Guinea',
'PL' => 'Polsko',
'KP' => 'Severní Korea',
'PT' => 'Portugal',
'PY' => 'Paraguay',
'QA' => 'Katar',
'RO' => 'Rumunsko',
'RU' => 'Russia',
'RW' => 'Rwanda',
'SA' => 'Saúdská Arábie',
'SD' => 'Súdán',
'SN' => 'Senegal',
'SG' => 'Singapur',
'SB' => 'Šalamounovy ostrovy',
'SL' => 'Sierra Leone',
'SV' => 'Salvador',
'SM' => 'San Marino',
'SO' => 'Somalia',
'RS' => 'Srbsko',
'SS' => 'Jižní Súdán',
'ST' => 'São Tomé a Príncipe',
'SR' => 'Surinam',
'SK' => 'Slovakia',
'SI' => 'Slovinsko',
'SE' => 'Švédsko',
'SZ' => 'Svazijsko',
'SC' => 'Seychely',
'SY' => 'Sýrie',
'TD' => 'Čad',
'TG' => 'Togo',
'TH' => 'Thajsko',
'TJ' => 'Tádžikistán',
'TM' => 'Turkmenistán',
'TL' => 'Timor-Leste',
'TO' => 'Tonga',
'TT' => 'Trinidad a Tobago',
'TN' => 'Tunisko',
'TR' => 'Turecko',
'TV' => 'Tuvalu',
'TZ' => 'Tanzanie',
'UG' => 'Uganda',
'UA' => 'Ukraine',
'UY' => 'Uruguay',
'US' => 'United States',
'UZ' => 'Uzbekistán',
'VA' => 'Vatikán',
'VC' => 'Svatý Vincenc a Grenadiny',
'VE' => 'Venezuela',
'VN' => 'Vietnam',
'VU' => 'Vanuatu',
'WS' => 'Samoa',
'YE' => 'Jemen',
'ZA' => 'Jižní Afrika',
'ZM' => 'Zambia',
'ZW' => 'Zimbabwe',
];

21
app/config/locale/cz.php Normal file
View file

@ -0,0 +1,21 @@
<?php
return [
'settings.inspire' => '"Umění moudrosti je umění vědět, co přehlédnout."', // This is the line printed in the homepage and console 'view-source'
'settings.locale' => 'cz',
'settings.direction' => 'ltr',
// Service - Users
'auth.emails.team' => '%s tým',
'auth.emails.confirm.title' => 'Potvrzení účtu',
'auth.emails.confirm.body' => 'cz.email.auth.confirm.tpl',
'auth.emails.recovery.title' => 'Resetovat heslo',
'auth.emails.recovery.body' => 'cz.email.auth.recovery.tpl',
'auth.emails.invitation.title' => 'Pozvánka do týmu% s na% s',
'auth.emails.invitation.body' => 'cz.email.auth.invitation.tpl',
'locale.country.unknown' => 'Neznámý',
'countries' => include 'cz.countries.php',
'continents' => include 'cz.continents.php',
];

View file

@ -0,0 +1,11 @@
<?php
return [
'AF' => 'Afrika',
'AN' => 'Antarktika',
'AS' => 'Ázsia',
'EU' => 'Európa',
'NA' => 'Észak-Amerika',
'OC' => 'Óceánia',
'SA' => 'Dél-Amerika',
];

View file

@ -0,0 +1,198 @@
<?php
return [
'AF' => 'Afganisztán',
'AO' => 'Angola',
'AL' => 'Albánia',
'AD' => 'Andorra',
'AE' => 'Egyesült Arab Emírségek',
'AR' => 'Argentína',
'AM' => 'Örményország',
'AG' => 'Antigua és Barbuda',
'AU' => 'Ausztrália',
'AT' => 'Ausztria',
'AZ' => 'Azerbajdzsán',
'BI' => 'Burundi',
'BE' => 'Belgium',
'BJ' => 'Benin',
'BF' => 'Burkina Faso',
'BD' => 'Banglades',
'BG' => 'Bulgaria',
'BH' => 'Bahrein',
'BS' => 'Bahamák',
'BA' => 'Bosznia-Hercegovina',
'BY' => 'Fehéroroszország',
'BZ' => 'Belize',
'BO' => 'Bolívia',
'BR' => 'Brazília',
'BB' => 'Barbadosz',
'BN' => 'Brunei',
'BT' => 'Bhután',
'BW' => 'Botswana',
'CF' => 'Közép-afrikai Köztársaság',
'CA' => 'Kanada',
'CH' => 'Svájc',
'CL' => 'Chile',
'CN' => 'Kína',
'CI' => 'Elefántcsontpart',
'CM' => 'Kamerun',
'CD' => 'Kongói Demokratikus Köztársaság',
'CG' => 'Kongói Köztársaság',
'CO' => 'Kolumbia',
'KM' => 'Comoros',
'CV' => 'Zöld-foki Köztársaság',
'CR' => 'Costa Rica',
'CU' => 'Kuba',
'CY' => 'Ciprus',
'CZ' => 'Csehország',
'DE' => 'Németország',
'DJ' => 'Djibouti',
'DM' => 'Dominika',
'DK' => 'Dánia',
'DO' => 'Dominikai Köztársaság',
'DZ' => 'Algíria',
'EC' => 'Ecuador',
'EG' => 'Egyiptom',
'ER' => 'Eritrea',
'ES' => 'Spanyolország',
'EE' => 'Észtország',
'ET' => 'Etiópia',
'FI' => 'Finnország',
'FJ' => 'Fidzsi-szigetek',
'FR' => 'Franciaország',
'FM' => 'Mikronéziai Szövetségi Államok',
'GA' => 'Gabon',
'GB' => 'Egyesült Királyság',
'GE' => 'Grúzia',
'GH' => 'Ghána',
'GN' => 'Guinea',
'GM' => 'Gambia',
'GW' => 'Guinea-Bissau',
'GQ' => 'Egyenlítői-Guinea',
'GR' => 'Görögország',
'GD' => 'Grenada',
'GT' => 'Guatemala',
'GY' => 'Guyana',
'HN' => 'Honduras',
'HR' => 'Horvátország',
'HT' => 'Haiti',
'HU' => 'Magyarország',
'ID' => 'Indonézia',
'IN' => 'India',
'IE' => 'Írország',
'IR' => 'Irán',
'IQ' => 'Iraq',
'IS' => 'Izland',
'IL' => 'Izrael',
'IT' => 'Olaszország',
'JM' => 'Jamaika',
'JO' => 'Jordánia',
'JP' => 'Japán',
'KZ' => 'Kazakhsztán',
'KE' => 'Kenya',
'KG' => 'Kirgizisztán',
'KH' => 'Kambodzsa',
'KI' => 'Kiribati',
'KN' => 'Saint Kitts és Nevis',
'KR' => 'Dél Korea',
'KW' => 'Kuwait',
'LA' => 'Laosz',
'LB' => 'Libanon',
'LR' => 'Libéria',
'LY' => 'Líbia',
'LC' => 'Saint Lucia',
'LI' => 'Liechtenstein',
'LK' => 'Sri Lanka',
'LS' => 'Lesotho',
'LT' => 'Litvánia',
'LU' => 'Luxembourg',
'LV' => 'Lettország',
'MA' => 'Marokkó',
'MC' => 'Monaco',
'MD' => 'Moldova',
'MG' => 'Madagaszkár',
'MV' => 'Maldív-szigetek',
'MX' => 'Mexikó',
'MH' => 'Marshall-szigetek',
'MK' => 'Macedónia',
'ML' => 'Mali',
'MT' => 'Málta',
'MM' => 'Mianmar',
'ME' => 'Montenegró',
'MN' => 'Mongólia',
'MZ' => 'Mozambik',
'MR' => 'Mauritánia',
'MU' => 'Mauritius',
'MW' => 'Malawi',
'MY' => 'Malajzia',
'NA' => 'Namíbia',
'NE' => 'Niger',
'NG' => 'Nigeria',
'NI' => 'Nikaragua',
'NL' => 'Hollandia',
'NO' => 'Norvégia',
'NP' => 'Nepál',
'NR' => 'Nauru',
'NZ' => 'Új-Zéland',
'OM' => 'Omán',
'PK' => 'Pakisztán',
'PA' => 'Panama',
'PE' => 'Peru',
'PH' => 'Fülöp-szigetek',
'PW' => 'Palau',
'PG' => 'Pápua Új-Guinea',
'PL' => 'Lengyelország',
'KP' => 'Észak-Korea',
'PT' => 'Portugália',
'PY' => 'Paraguay',
'QA' => 'Qatar',
'RO' => 'Románia',
'RU' => 'Oroszország',
'RW' => 'Rwanda',
'SA' => 'Szaúd-Arábia',
'SD' => 'Szudán',
'SN' => 'Szenegál',
'SG' => 'Szingapúr',
'SB' => 'Salamon-szigetek',
'SL' => 'Sierra Leone',
'SV' => 'El Salvador',
'SM' => 'San Marino',
'SO' => 'Szomália',
'RS' => 'Szerbia',
'SS' => 'Dél-Szudán',
'ST' => 'São Tomé és Príncipe',
'SR' => 'Szurinám',
'SK' => 'Szlovákia',
'SI' => 'Szlovénia',
'SE' => 'Svédország',
'SZ' => 'Swaziland',
'SC' => 'Seychelles-szigetek',
'SY' => 'Szíria',
'TD' => 'Csád',
'TG' => 'Togo',
'TH' => 'Tájföld',
'TJ' => 'Tádzsikisztán',
'TM' => 'Türkmenisztán',
'TL' => 'Timor-Leste',
'TO' => 'Tonga',
'TT' => 'Trinidad és Tobago',
'TN' => 'Tunézia',
'TR' => 'Törökország',
'TV' => 'Tuvalu',
'TZ' => 'Tanzania',
'UG' => 'Uganda',
'UA' => 'Ukraina',
'UY' => 'Uruguay',
'US' => 'Egyesült Államok',
'UZ' => 'Üzbegisztán',
'VA' => 'Vatikánváros',
'VC' => 'Saint Vincent és a Grenadine-szigetek',
'VE' => 'Venezuela',
'VN' => 'Vietnám',
'VU' => 'Vanuatu',
'WS' => 'Szamoa',
'YE' => 'Yemen',
'ZA' => 'Dél-Afrikai Köztársaság',
'ZM' => 'Zambia',
'ZW' => 'Zimbabwe',
];

21
app/config/locale/hu.php Normal file
View file

@ -0,0 +1,21 @@
<?php
return [
'settings.inspire' => '"The art of being wise is the art of knowing what to overlook."', // This is the line printed in the homepage and console 'view-source'
'settings.locale' => 'hu',
'settings.direction' => 'ltr',
// Service - Users
'auth.emails.team' => '%s Csapat',
'auth.emails.confirm.title' => 'Fiók megerősítés',
'auth.emails.confirm.body' => 'hu.email.auth.confirm.tpl',
'auth.emails.recovery.title' => 'Jelszó Visszaállítás',
'auth.emails.recovery.body' => 'hu.email.auth.recovery.tpl',
'auth.emails.invitation.title' => 'Meghívás a %s Csapathoz %s',
'auth.emails.invitation.body' => 'hu.email.auth.invitation.tpl',
'locale.country.unknown' => 'Ismeretlen',
'countries' => include 'hu.countries.php',
'continents' => include 'hu.continents.php',
];

View file

@ -29,22 +29,22 @@ return [
'BN' => 'Brunei',
'BT' => 'Bhutan',
'BW' => 'Botswana',
'CF' => 'Repubblica centrafricana',
'CF' => 'Repubblica Centrafricana',
'CA' => 'Canada',
'CH' => 'Svizzera',
'CL' => 'Cile',
'CN' => 'Cina',
'CI' => 'Costa d\'Avorio',
'CM' => 'Camerun',
'CD' => 'DR Congo',
'CD' => 'Repubblica Democratica del Congo',
'CG' => 'Repubblica del Congo',
'CO' => 'Colombia',
'KM' => 'Comore',
'KM' => 'Unione delle Comore',
'CV' => 'Capo Verde',
'CR' => 'Costa Rica',
'CU' => 'Cuba',
'CY' => 'Cipro',
'CZ' => 'Czechia',
'CZ' => 'Repubblica Ceca',
'DE' => 'Germania',
'DJ' => 'Gibuti',
'DM' => 'Dominica',
@ -59,7 +59,7 @@ return [
'ET' => 'Etiopia',
'FI' => 'Finlandia',
'FJ' => 'Figi',
'FR' => 'France',
'FR' => 'Francia',
'FM' => 'Micronesia',
'GA' => 'Gabon',
'GB' => 'Regno Unito',
@ -140,7 +140,7 @@ return [
'PE' => 'Perù',
'PH' => 'Filippine',
'PW' => 'Palau',
'PG' => 'Papua New Guinea',
'PG' => 'Papua Nuova Guinea',
'PL' => 'Polonia',
'KP' => 'Corea del Nord',
'PT' => 'Portogallo',
@ -160,7 +160,7 @@ return [
'SO' => 'Somalia',
'RS' => 'Serbia',
'SS' => 'Sudan del Sud',
'ST' => 'São Tomé and Príncipe',
'ST' => 'São Tomé e Príncipe',
'SR' => 'Suriname',
'SK' => 'Slovacchia',
'SI' => 'Slovenia',

View file

@ -4,15 +4,18 @@ return [
'settings.inspire' => '"L\'arte di essere saggi è l\'arte di sapere cosa trascurare."', // Questa è la riga stampata nella homepage e nella console 'view-source'
'settings.locale' => 'it',
'settings.direction' => 'ltr',
// Servizio - Utenti
'auth.emails.team' => '%s Squadra',
'auth.emails.team' => 'Team %s',
'auth.emails.confirm.title' => 'Conferma dell\'account',
'auth.emails.confirm.body' => 'en.email.auth.confirm.tpl',
'auth.emails.recovery.title' => 'Reimpostazione della password',
'auth.emails.recovery.title' => 'Recupero password',
'auth.emails.recovery.body' => 'en.email.auth.recovery.tpl',
'auth.emails.invitation.title' => 'Invito a %s squadra %s',
'auth.emails.invitation.title' => 'Invito al team %s di %s',
'auth.emails.invitation.body' => 'en.email.auth.invitation.tpl',
'locale.country.unknown' => 'Sconosciuto',
'countries' => include 'it.countries.php',
'continents' => include 'it.continents.php',
];

View file

@ -0,0 +1,11 @@
<?php
return [
'AF' => 'Африка',
'AN' => 'Антарктика',
'AS' => 'Азия',
'EU' => 'Европа',
'NA' => 'Северная Америка',
'OC' => 'Океания',
'SA' => 'Южная Америка',
];

View file

@ -0,0 +1,198 @@
<?php
return [
'AF' => 'Афганистан',
'AO' => 'Ангола',
'AL' => 'Албания',
'AD' => 'Андорра',
'AE' => 'Объединенные Арабские Эмираты',
'AR' => 'Аргентина',
'AM' => 'Армения',
'AG' => 'Антигуа и Барбуда',
'AU' => 'Австралия',
'AT' => 'Австрия',
'AZ' => 'Азербайджан',
'BI' => 'Бурунди',
'BE' => 'Бельгия',
'BJ' => 'Бенин',
'BF' => 'Буркина Фасо',
'BD' => 'Бангладеш',
'BG' => 'Болгария',
'BH' => 'Бахрейн',
'BS' => 'Багамские острова',
'BA' => 'Босния и Герцеговина',
'BY' => 'Беларусь',
'BZ' => 'Бейлиз',
'BO' => 'Боливия',
'BR' => 'Бразилия',
'BB' => 'Барбадос',
'BN' => 'Бруней',
'BT' => 'Бутан',
'BW' => 'Ботсвана',
'CF' => 'Центральноафриканская Республика',
'CA' => 'Канада',
'CH' => 'Швейцария',
'CL' => 'Чили',
'CN' => 'Китай',
'CI' => 'Кот-д\'Ивуар',
'CM' => 'Камерун',
'CD' => 'ДР Конго',
'CG' => 'Республика Конго',
'CO' => 'Колумбия',
'KM' => 'Коморы',
'CV' => 'Кабо-Верде',
'CR' => 'Коста-Рика',
'CU' => 'Куба',
'CY' => 'Кипр',
'CZ' => 'Чехия',
'DE' => 'Германия',
'DJ' => 'Джибути',
'DM' => 'Доминика',
'DK' => 'Дания',
'DO' => 'Доминиканская Республика',
'DZ' => 'Алжир',
'EC' => 'Эквадор',
'EG' => 'Египет',
'ER' => 'Эритрея',
'ES' => 'Испания',
'EE' => 'Эстония',
'ET' => 'Эфиопия',
'FI' => 'Финляндия',
'FJ' => 'Фиджи',
'FR' => 'Франция',
'FM' => 'Микронезия',
'GA' => 'Габон',
'GB' => 'Великобритания',
'GE' => 'Грузия',
'GH' => 'Гана',
'GN' => 'Гвинея',
'GM' => 'Гамбия',
'GW' => 'Гвинея-Бисау',
'GQ' => 'Экваториальная Гвинея',
'GR' => 'Греция',
'GD' => 'Гренада',
'GT' => 'Гватемала',
'GY' => 'Гайана',
'HN' => 'Гондурас',
'HR' => 'Хорватия',
'HT' => 'Гаити',
'HU' => 'Венгрия',
'ID' => 'Индонезия',
'IN' => 'Индия',
'IE' => 'Ирландия',
'IR' => 'Иран',
'IQ' => 'Ирак',
'IS' => 'Исландия',
'IL' => 'Израиль',
'IT' => 'Италия',
'JM' => 'Ямайка',
'JO' => 'Иордания',
'JP' => 'Япония',
'KZ' => 'Казахстан',
'KE' => 'Кения',
'KG' => 'Киргизия',
'KH' => 'Камбоджа',
'KI' => 'Кирибати',
'KN' => 'Сент-Китс и Невис',
'KR' => 'Южная Корея',
'KW' => 'Кувейт',
'LA' => 'Лаос',
'LB' => 'Ливан',
'LR' => 'Либерия',
'LY' => 'Ливия',
'LC' => 'Сент-Люсия',
'LI' => 'Лихтенштейн',
'LK' => 'Шри Ланка',
'LS' => 'Лесото',
'LT' => 'Литва',
'LU' => 'Люксембург',
'LV' => 'Латвия',
'MA' => 'Марокко',
'MC' => 'Монако',
'MD' => 'Молдова',
'MG' => 'Мадагаскар',
'MV' => 'Мальдивы',
'MX' => 'Мексика',
'MH' => 'Маршалловы острова',
'MK' => 'Македония',
'ML' => 'Мали',
'MT' => 'Мальта',
'MM' => 'Мьянма',
'ME' => 'Черногория',
'MN' => 'Монголия',
'MZ' => 'Мозамбик',
'MR' => 'Мавритания',
'MU' => 'Маврикий',
'MW' => 'Малави',
'MY' => 'Малайзия',
'NA' => 'Намибия',
'NE' => 'Нигер',
'NG' => 'Нигерия',
'NI' => 'Никарагуа',
'NL' => 'Нидерланды',
'NO' => 'Норвегия',
'NP' => 'Непал',
'NR' => 'Науру',
'NZ' => 'Новая Зеландия',
'OM' => 'Оман',
'PK' => 'Пакистан',
'PA' => 'Панама',
'PE' => 'Перу',
'PH' => 'Филлиппины',
'PW' => 'Палау',
'PG' => 'Папуа Новая Гвинея',
'PL' => 'Польша',
'KP' => 'Северная Корея',
'PT' => 'Португалия',
'PY' => 'Парагвай',
'QA' => 'Катар',
'RO' => 'Румыния',
'RU' => 'Россия',
'RW' => 'Руанда',
'SA' => 'Саудовская Аравия',
'SD' => 'Судан',
'SN' => 'Сенегал',
'SG' => 'Сингапур',
'SB' => 'Соломоновы Острова',
'SL' => 'Сьерра Леоне',
'SV' => 'Эль Сальвадор',
'SM' => 'Сан Марино',
'SO' => 'Сомали',
'RS' => 'Сербия',
'SS' => 'Южный Судан',
'ST' => 'Сан-Томе и Принсипи',
'SR' => 'Суринам',
'SK' => 'Словакия',
'SI' => 'Словения',
'SE' => 'Швеция',
'SZ' => 'Свазиленд',
'SC' => 'Сейшеллы',
'SY' => 'Сирия',
'TD' => 'Чад',
'TG' => 'Того',
'TH' => 'Таиланд',
'TJ' => 'Таджикистан',
'TM' => 'Туркменистан',
'TL' => 'Восточный Тимор',
'TO' => 'Тонга',
'TT' => 'Тринидад и Тобаго',
'TN' => 'Тунис',
'TR' => 'Турция',
'TV' => 'Тувалу',
'TZ' => 'Танзания',
'UG' => 'Уганда',
'UA' => 'Украина',
'UY' => 'Уругвай',
'US' => 'Соединенные Штаты',
'UZ' => 'Узбекистан',
'VA' => 'Ватикан',
'VC' => 'Сент-Винсент и Гренадины',
'VE' => 'Венесуэла',
'VN' => 'Вьетнам',
'VU' => 'Вануату',
'WS' => 'Самоа',
'YE' => 'Йемен',
'ZA' => 'Южная Африка',
'ZM' => 'Замбия',
'ZW' => 'Зимбабве',
];

20
app/config/locale/ru.php Normal file
View file

@ -0,0 +1,20 @@
<?php
return [
'settings.inspire' => '"Искусство быть мудрым — это искусство знать, чем можно пренебречь."', // This is the line printed in the homepage and console 'view-source'
'settings.locale' => 'ru',
'settings.direction' => 'ltr',
'auth.emails.team' => 'Команда %s',
'auth.emails.confirm.title' => 'Подтверждение аккаунта',
'auth.emails.confirm.body' => 'ru.email.auth.confirm.tpl',
'auth.emails.recovery.title' => 'Сброс пароля',
'auth.emails.recovery.body' => 'ru.email.auth.recovery.tpl',
'auth.emails.invitation.title' => 'Приглашение в команду %s по проекту %s',
'auth.emails.invitation.body' => 'ru.email.auth.invitation.tpl',
'locale.country.unknown' => 'Неизвестно',
'countries' => include 'ru.countries.php',
'continents' => include 'ru.continents.php',
];

View file

@ -0,0 +1,11 @@
<?php
return [
'AF' => 'Afrika',
'AN' => 'Antarktis',
'AS' => 'Asien',
'EU' => 'Europa',
'NA' => 'Nordamerika',
'OC' => 'Oceanien',
'SA' => 'Sydamerika',
];

View file

@ -0,0 +1,198 @@
<?php
// When there are multiple alternative correct country names please follow https://sv.wikipedia.org/wiki/ISO_3166
return [
'AF' => 'Afganistan',
'AO' => 'Angola',
'AL' => 'Albanien',
'AD' => 'Andorra',
'AE' => 'Förenade Arabemiraterna',
'AR' => 'Argentina',
'AM' => 'Armenien',
'AG' => 'Antigua och Barbuda',
'AU' => 'Australien',
'AT' => 'Österrike',
'AZ' => 'Azerbajdzjan',
'BI' => 'Burundi',
'BE' => 'Belgien',
'BJ' => 'Benin',
'BF' => 'Burkina Faso',
'BD' => 'Bangladesh',
'BG' => 'Bulgarien',
'BH' => 'Bahrain',
'BS' => 'Bahamas',
'BA' => 'Bosnien och Hercegovina',
'BY' => 'Vitrysslnd',
'BZ' => 'Belize',
'BO' => 'Bolivien',
'BR' => 'Brasilien',
'BB' => 'Barbados',
'BN' => 'Brune',
'BT' => 'Butan',
'BW' => 'Botswana',
'CF' => 'Centralafrikanska republiken',
'CA' => 'Kanada',
'CH' => 'Schweiz',
'CL' => 'Chile',
'CN' => 'Kina',
'CI' => 'Elfenbenskusten',
'CM' => 'Kamerun',
'CD' => 'Kongo-Kinshasa',
'CG' => 'Kongo-Brazzaville',
'CO' => 'Colombia',
'KM' => 'Komorerna',
'CV' => 'Kap Verde',
'CR' => 'Costa Rica',
'CU' => 'Kuba',
'CY' => 'Cypern',
'CZ' => 'Tjeckien',
'DE' => 'Tyskland',
'DJ' => 'Djibouti',
'DM' => 'Dominica',
'DK' => 'Danmark',
'DO' => 'Dominikanska republiken',
'DZ' => 'Algeriet',
'EC' => 'Ekvador',
'EG' => 'Egypten',
'ER' => 'Eritrea',
'ES' => 'Spanien',
'EE' => 'Estonia',
'ET' => 'Etiopien',
'FI' => 'Finland',
'FJ' => 'Fiji',
'FR' => 'Frankrike',
'FM' => 'Mikronesien',
'GA' => 'Gabon',
'GB' => 'Storbrittannien',
'GE' => 'Georgien',
'GH' => 'Ghana',
'GN' => 'Guinea',
'GM' => 'Gambia',
'GW' => 'Guinea-Bissau',
'GQ' => 'Ekvatorialguinea',
'GR' => 'Grekland',
'GD' => 'Grenada',
'GT' => 'Guatemala',
'GY' => 'Guyana',
'HN' => 'Honduras',
'HR' => 'Kroatien',
'HT' => 'Haiti',
'HU' => 'Ungern',
'ID' => 'Indonesien',
'IN' => 'Indien',
'IE' => 'Irland',
'IR' => 'Iran',
'IQ' => 'Irak',
'IS' => 'Island',
'IL' => 'Israel',
'IT' => 'Italien',
'JM' => 'Jamaika',
'JO' => 'Jordanien',
'JP' => 'Japan',
'KZ' => 'Kazakstan',
'KE' => 'Kenya',
'KG' => 'Kirgizistan',
'KH' => 'Kambodja',
'KI' => 'Kiribati',
'KN' => 'Saint Kitts och Nevis',
'KR' => 'Sydkorea',
'KW' => 'Kuwait',
'LA' => 'Laos',
'LB' => 'Libanon',
'LR' => 'Liberien',
'LY' => 'Libyen',
'LC' => 'Saint Lucia',
'LI' => 'Liechtenstein',
'LK' => 'Sri Lanka',
'LS' => 'Lesotho',
'LT' => 'Litauen',
'LU' => 'Luxemburg',
'LV' => 'Latvien',
'MA' => 'Marocko',
'MC' => 'Monaco',
'MD' => 'Moldavien',
'MG' => 'Madagaskar',
'MV' => 'Maldiverna',
'MX' => 'Mexiko',
'MH' => 'Marshall Islands',
'MK' => 'Nordmakedonien',
'ML' => 'Mali',
'MT' => 'Malta',
'MM' => 'Myanmar',
'ME' => 'Montenegro',
'MN' => 'Mongolien',
'MZ' => 'Moçambique',
'MR' => 'Mauritanien',
'MU' => 'Mauritius',
'MW' => 'Malawi',
'MY' => 'Malaysia',
'NA' => 'Namibia',
'NE' => 'Niger',
'NG' => 'Nigeria',
'NI' => 'Nicaragua',
'NL' => 'Nederländerna',
'NO' => 'Norge',
'NP' => 'Nepal',
'NR' => 'Nauru',
'NZ' => 'Nya Zealand',
'OM' => 'Oman',
'PK' => 'Pakistan',
'PA' => 'Panama',
'PE' => 'Peru',
'PH' => 'Filppinerna',
'PW' => 'Palau',
'PG' => 'Papua New Guinea',
'PL' => 'Polen',
'KP' => 'Nordkorea',
'PT' => 'Portugal',
'PY' => 'Paraguay',
'QA' => 'Qatar',
'RO' => 'Rumänien',
'RU' => 'Ryssland',
'RW' => 'Rwanda',
'SA' => 'Saudiarabien',
'SD' => 'Sudan',
'SN' => 'Senegal',
'SG' => 'Singapor',
'SB' => 'Solomonöarna',
'SL' => 'Sierra Leone',
'SV' => 'El Salvador',
'SM' => 'San Marino',
'SO' => 'Somalien',
'RS' => 'Serbien',
'SS' => 'Sydsudan',
'ST' => 'São Tomé och Príncipe',
'SR' => 'Surinam',
'SK' => 'Slovakien',
'SI' => 'Slovenien',
'SE' => 'Sverige',
'SZ' => 'Swaziland',
'SC' => 'Seychellerna',
'SY' => 'Syrien',
'TD' => 'Tchad',
'TG' => 'Togo',
'TH' => 'Thailand',
'TJ' => 'Tadzjikistan',
'TM' => 'Turkmenistan',
'TL' => 'Timor-Leste',
'TO' => 'Tonga',
'TT' => 'Trinidad och Tobago',
'TN' => 'Tunisien',
'TR' => 'Turkiet',
'TV' => 'Tuvalu',
'TZ' => 'Tanzania',
'UG' => 'Uganda',
'UA' => 'Ukraina',
'UY' => 'Uruguay',
'US' => 'Amerikas Förenta Stater',
'UZ' => 'Uzbekistan',
'VA' => 'Vatikanstaten',
'VC' => 'Sankt Vincent och Grenadinerna',
'VE' => 'Venezuela',
'VN' => 'Vietnam',
'VU' => 'Vanuatu',
'WS' => 'Samoa',
'YE' => 'Jemen',
'ZA' => 'Sydafrika',
'ZM' => 'Zambia',
'ZW' => 'Zimbabwe',
];

21
app/config/locale/sv.php Normal file
View file

@ -0,0 +1,21 @@
<?php
return [
'settings.inspire' => '"The art of being wise is the art of knowing what to overlook."', // This is the line printed in the homepage and console 'view-source'
'settings.locale' => 'sv',
'settings.direction' => 'ltr',
// Service - Users
'auth.emails.team' => '%s-teamet',
'auth.emails.confirm.title' => 'Kontobekräftelse',
'auth.emails.confirm.body' => 'sv.email.auth.confirm.tpl',
'auth.emails.recovery.title' => 'Ändra lösenord',
'auth.emails.recovery.body' => 'sv.email.auth.recovery.tpl',
'auth.emails.invitation.title' => 'Inbjudan till %s-teamet i %s',
'auth.emails.invitation.body' => 'sv.email.auth.invitation.tpl',
'locale.country.unknown' => 'Okänt',
'countries' => include 'sv.countries.php',
'continents' => include 'sv.continents.php',
];

View file

@ -0,0 +1,24 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
Ahoj {{name}},
<br />
<br />
Kliknutím na tento odkaz ověřte svou e-mailovou adresu.
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
Pokud jste nepožádali o ověření této adresy, můžete tuto zprávu ignorovat.
<br />
<br />
dík,
<br />
{{project}} tým
</div>

View file

@ -0,0 +1,27 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
Ahoj,
<br />
<br />
Tento e-mail vám byl zaslán, protože vás <b>{{owner}}</b> chtěl pozvat, abyste se stali členem týmu v týmu <b>{{team}}</b> v {{project}}.
<br />
<br />
Klepnutím na tento odkaz se připojíte k týmu <b>{{team}}</b>:
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
Pokud vás nezajímá, můžete tuto zprávu ignorovat.
<br />
<br />
Dík,
<br />
{{project}} tým
</div>

View file

@ -0,0 +1,24 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
Ahoj {{name}},
<br />
<br />
Pomocí tohoto odkazu obnovte své heslo {{project}}.
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
Pokud jste nepožádali o resetování hesla, můžete tuto zprávu ignorovat.
<br />
<br />
Dík,
<br />
{{project}} tým
</div>

View file

@ -0,0 +1,24 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
Szia {{name}},
<br />
<br />
Kattints erre a linkre, hogy megerősítsd az e-mail címed.
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
Ha nem kérelmezted, hogy megerősítsük ezt a címet, ignoráld ezt a levelet.
<br />
<br />
Köszönettel,
<br />
{{project}} csapat
</div>

View file

@ -0,0 +1,27 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
Szia,
<br />
<br />
Azért küldtük ezt az e-mailt <b>{{owner}}</b> mert meg szeretnénk hívni a <b>{{team}}</b> csapatba a következő projektre {{project}}.
<br />
<br />
Kattints erre a linkre, hogy a <b>{{team}}</b> csapat tagja legyél:
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
Ha nem vegy ebben érdekelt ignoráld ezt az üzenetet.
<br />
<br />
Köszönettel,
<br />
{{project}} csapat
</div>

View file

@ -0,0 +1,24 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
Szia {{name}},
<br />
<br />
Kattints erre a linkre, hogy visszaállítsuk a {{project}} jelszavad.
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
Ha nem kérvényezted, hogy visszaállítsuk a jelszavad ignoráld ezt a levelet.
<br />
<br />
Köszönettel,
<br />
{{project}} csapat
</div>

View file

@ -21,5 +21,5 @@
<br />
Grazie,
<br />
{{project}} squadra
Il team di {{project}}
</div>

View file

@ -11,10 +11,10 @@
Ciao,
<br />
<br />
Questa mail ti è stata inviata perché <b>{{owner}}</b> volevo invitarti a diventare un membro del team al <b>{{team}}</b> squadra a {{project}}.
Questa mail ti è stata inviata perchè <b>{{owner}}</b> vuole invitarti a diventare un membro del team <b>{{team}}</b> del progetto {{project}}.
<br />
<br />
Segui questo link per unirti a <b>{{team}}</b> squadra:
Segui questo link per unirti al team <b>{{team}}</b>:
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
@ -24,5 +24,5 @@
<br />
Grazie,
<br />
{{project}} squadra
Il team di {{project}}
</div>

View file

@ -10,7 +10,7 @@
Ciao {{name}},
<br />
<br />
Segui questo link per reimpostare la tua {{project}} password.
Segui questo link per reimpostare la tua password per {{project}}.
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
@ -20,5 +20,5 @@
<br />
Grazie,
<br />
{{project}} squadra
Il team di {{project}}
</div>

View file

@ -0,0 +1,24 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
Здравствуйте, {{name}},
<br />
<br />
Перейдите по ссылке, чтобы подтвердить свой адрес электронной почты.
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
Если вы не запрашивали подтверждение этого адреса, проигнорируйте это сообщение.
<br />
<br />
Спасибо,
<br />
команда {{project}}
</div>

View file

@ -0,0 +1,27 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
Здравствуйте,
<br />
<br />
Это письмо отправлено вам, потому что <b>{{owner}}</b> приглашает стать членом команды <b>{{team}}</b> в проекте {{project}}.
<br />
<br />
Перейдите по ссылке, чтобы присоединиться к команде <b>{{team}}</b> :
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
Если вы не заинтересованы, проигнорируйте это сообщение.
<br />
<br />
Спасибо,
<br />
команда {{project}}
</div>

View file

@ -0,0 +1,24 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
Здравствуйте, {{name}},
<br />
<br />
Перейдите по ссылке, чтобы сбросить пароль для проекта {{project}}.
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
Если вы не запрашивали сброс пароля, проигнорируйте это сообщение.
<br />
<br />
Спасибо,
<br />
команда {{project}}
</div>

View file

@ -0,0 +1,24 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
Hej {{name}},
<br />
<br />
Vänligen följ länken nedan för att verifiera din epostadress.
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
Om du inte vill verifiera din epostadress så kan du ignorera detta meddelande.
<br />
<br />
Tack,
<br />
{{project}}-teamet
</div>

View file

@ -0,0 +1,27 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
Hej,
<br />
<br />
<b>{{owner}}</b> vill bjuda in dig att bli del av <b>{{team}}</b>-teamet inom {{project}}.
<br />
<br />
Följ denna länk för att bli del av <b>{{team}}</b>-teamet:
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
Om du inte är intresserad så kan du ignorera detta meddelande.
<br />
<br />
Tack,
<br />
{{project}}-teamet
</div>

View file

@ -0,0 +1,24 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
Hej {{name}},
<br />
<br />
Följ denna länk för att ändra ditt {{project}} lösenord.
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
Om du inte bett om att ändr ditt lösenord så kan du ignorera detta meddelande.
<br />
<br />
Tack,
<br />
{{project}}-teamet
</div>

View file

@ -0,0 +1,24 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
Xin chào {{name}},
<br />
<br />
Hãy vào liên kết này để xác nhận địa chỉ email của bạn.
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
Xin hãy bỏ qua email này nếu bạn không yêu cầu xác nhận địa chỉ này.
<br />
<br />
Xin cảm ơn,
<br />
{{project}} team
</div>

View file

@ -0,0 +1,27 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
Xin chào,
<br />
<br />
Bạn nhận được email này vì <b>{{owner}}</b> muốn mời bạn tham gia {{project}} cùng với <b>{{team}}</b> team.
<br />
<br />
Hãy theo liên kết này để tham gia vào <b>{{team}}</b> team:
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
Nếu bạn không thích tham gia, hãy bỏ qua lời nhắn này.
<br />
<br />
Xin cảm ơn,
<br />
{{project}} team
</div>

View file

@ -0,0 +1,24 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
Xin chào {{name}},
<br />
<br />
Hãy theo liên kết này để khôi phục mật khẩu của bạn ở {{project}}.
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
Hãy bỏ qua lời nhắn này nếu bạn không yêu cầu khôi phục mật khẩu.
<br />
<br />
Xin cảm ơn,
<br />
{{project}} team
</div>

View file

@ -0,0 +1,24 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
{{name}} 你好,
<br />
<br />
请点击下方的链接验证你的电子邮箱地址。
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
如果你没有请求验证本邮箱,请忽略这份邮件。
<br />
<br />
谢谢。
<br />
来自 {{project}}
</div>

View file

@ -0,0 +1,27 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
你好,
<br />
<br />
<b>{{owner}}</b>邀请您加入{{project}}项目的<b>{{team}}</b>小组。
<br />
<br />
请点击下方的链接加入{{team}}小组:
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
如果您没有加入该小组的计划,请忽略本邮件。
<br />
<br />
谢谢。
<br />
来自 {{project}}
</div>

View file

@ -0,0 +1,25 @@
<style>
* {
font-family: sans-serif,Arial;
-webkit-font-smoothing: antialiased;
font-weight: lighter;
}
</style>
<div style="direction: {{direction}}">
{{name}} 你好,
<br />
<br />
请点击下方的链接重新设置{{project}}的密码。
Follow this link to reset your {{project}} password.
<br />
<a href="{{redirect}}">{{redirect}}</a>
<br />
<br />
如果您未曾申请重设密码,请忽略本邮件。
<br />
<br />
谢谢。
<br />
来自 {{project}}
</div>

View file

@ -0,0 +1,11 @@
<?php
return [
'AF' => 'Châu Phi',
'AN' => 'Nam Cực',
'AS' => 'Châu Á',
'EU' => 'Châu Âu',
'NA' => 'Bắc Mỹ',
'OC' => 'Châu Đại Dương',
'SA' => 'Nam Mỹ',
];

View file

@ -0,0 +1,198 @@
<?php
return [
'AF' => 'Afghanistan',
'AO' => 'Angola',
'AL' => 'Albania',
'AD' => 'Andorra',
'AE' => 'United Arab Emirates',
'AR' => 'Argentina',
'AM' => 'Armenia',
'AG' => 'Antigua and Barbuda',
'AU' => 'Australia',
'AT' => 'Austria',
'AZ' => 'Azerbaijan',
'BI' => 'Burundi',
'BE' => 'Belgium',
'BJ' => 'Benin',
'BF' => 'Burkina Faso',
'BD' => 'Bangladesh',
'BG' => 'Bulgaria',
'BH' => 'Bahrain',
'BS' => 'Bahamas',
'BA' => 'Bosnia and Herzegovina',
'BY' => 'Belarus',
'BZ' => 'Belize',
'BO' => 'Bolivia',
'BR' => 'Brazil',
'BB' => 'Barbados',
'BN' => 'Brunei',
'BT' => 'Bhutan',
'BW' => 'Botswana',
'CF' => 'Central African Republic',
'CA' => 'Canada',
'CH' => 'Switzerland',
'CL' => 'Chile',
'CN' => 'China',
'CI' => 'Ivory Coast',
'CM' => 'Cameroon',
'CD' => 'DR Congo',
'CG' => 'Republic of the Congo',
'CO' => 'Colombia',
'KM' => 'Comoros',
'CV' => 'Cape Verde',
'CR' => 'Costa Rica',
'CU' => 'Cuba',
'CY' => 'Cyprus',
'CZ' => 'Czechia',
'DE' => 'Germany',
'DJ' => 'Djibouti',
'DM' => 'Dominica',
'DK' => 'Denmark',
'DO' => 'Dominican Republic',
'DZ' => 'Algeria',
'EC' => 'Ecuador',
'EG' => 'Egypt',
'ER' => 'Eritrea',
'ES' => 'Spain',
'EE' => 'Estonia',
'ET' => 'Ethiopia',
'FI' => 'Finland',
'FJ' => 'Fiji',
'FR' => 'France',
'FM' => 'Micronesia',
'GA' => 'Gabon',
'GB' => 'United Kingdom',
'GE' => 'Georgia',
'GH' => 'Ghana',
'GN' => 'Guinea',
'GM' => 'Gambia',
'GW' => 'Guinea-Bissau',
'GQ' => 'Equatorial Guinea',
'GR' => 'Greece',
'GD' => 'Grenada',
'GT' => 'Guatemala',
'GY' => 'Guyana',
'HN' => 'Honduras',
'HR' => 'Croatia',
'HT' => 'Haiti',
'HU' => 'Hungary',
'ID' => 'Indonesia',
'IN' => 'India',
'IE' => 'Ireland',
'IR' => 'Iran',
'IQ' => 'Iraq',
'IS' => 'Iceland',
'IL' => 'Israel',
'IT' => 'Italy',
'JM' => 'Jamaica',
'JO' => 'Jordan',
'JP' => 'Japan',
'KZ' => 'Kazakhstan',
'KE' => 'Kenya',
'KG' => 'Kyrgyzstan',
'KH' => 'Cambodia',
'KI' => 'Kiribati',
'KN' => 'Saint Kitts and Nevis',
'KR' => 'South Korea',
'KW' => 'Kuwait',
'LA' => 'Laos',
'LB' => 'Lebanon',
'LR' => 'Liberia',
'LY' => 'Libya',
'LC' => 'Saint Lucia',
'LI' => 'Liechtenstein',
'LK' => 'Sri Lanka',
'LS' => 'Lesotho',
'LT' => 'Lithuania',
'LU' => 'Luxembourg',
'LV' => 'Latvia',
'MA' => 'Morocco',
'MC' => 'Monaco',
'MD' => 'Moldova',
'MG' => 'Madagascar',
'MV' => 'Maldives',
'MX' => 'Mexico',
'MH' => 'Marshall Islands',
'MK' => 'Macedonia',
'ML' => 'Mali',
'MT' => 'Malta',
'MM' => 'Myanmar',
'ME' => 'Montenegro',
'MN' => 'Mongolia',
'MZ' => 'Mozambique',
'MR' => 'Mauritania',
'MU' => 'Mauritius',
'MW' => 'Malawi',
'MY' => 'Malaysia',
'NA' => 'Namibia',
'NE' => 'Niger',
'NG' => 'Nigeria',
'NI' => 'Nicaragua',
'NL' => 'Netherlands',
'NO' => 'Norway',
'NP' => 'Nepal',
'NR' => 'Nauru',
'NZ' => 'New Zealand',
'OM' => 'Oman',
'PK' => 'Pakistan',
'PA' => 'Panama',
'PE' => 'Peru',
'PH' => 'Philippines',
'PW' => 'Palau',
'PG' => 'Papua New Guinea',
'PL' => 'Poland',
'KP' => 'North Korea',
'PT' => 'Portugal',
'PY' => 'Paraguay',
'QA' => 'Qatar',
'RO' => 'Romania',
'RU' => 'Russia',
'RW' => 'Rwanda',
'SA' => 'Saudi Arabia',
'SD' => 'Sudan',
'SN' => 'Senegal',
'SG' => 'Singapore',
'SB' => 'Solomon Islands',
'SL' => 'Sierra Leone',
'SV' => 'El Salvador',
'SM' => 'San Marino',
'SO' => 'Somalia',
'RS' => 'Serbia',
'SS' => 'South Sudan',
'ST' => 'São Tomé and Príncipe',
'SR' => 'Suriname',
'SK' => 'Slovakia',
'SI' => 'Slovenia',
'SE' => 'Sweden',
'SZ' => 'Swaziland',
'SC' => 'Seychelles',
'SY' => 'Syria',
'TD' => 'Chad',
'TG' => 'Togo',
'TH' => 'Thailand',
'TJ' => 'Tajikistan',
'TM' => 'Turkmenistan',
'TL' => 'Timor-Leste',
'TO' => 'Tonga',
'TT' => 'Trinidad and Tobago',
'TN' => 'Tunisia',
'TR' => 'Turkey',
'TV' => 'Tuvalu',
'TZ' => 'Tanzania',
'UG' => 'Uganda',
'UA' => 'Ukraine',
'UY' => 'Uruguay',
'US' => 'United States',
'UZ' => 'Uzbekistan',
'VA' => 'Vatican City',
'VC' => 'Saint Vincent and the Grenadines',
'VE' => 'Venezuela',
'VN' => 'Việt Nam',
'VU' => 'Vanuatu',
'WS' => 'Samoa',
'YE' => 'Yemen',
'ZA' => 'South Africa',
'ZM' => 'Zambia',
'ZW' => 'Zimbabwe',
];

21
app/config/locale/vi.php Normal file
View file

@ -0,0 +1,21 @@
<?php
return [
'settings.inspire' => '"Nghệ thuật khôn ngoan là nghệ thuật biết những gì cần bỏ qua."', // This is the line printed in the homepage and console 'view-source'
'settings.locale' => 'vi',
'settings.direction' => 'ltr',
// Service - Users
'auth.emails.team' => '%s Team',
'auth.emails.confirm.title' => 'Xác nhận tài khoản',
'auth.emails.confirm.body' => 'vi.email.auth.confirm.tpl',
'auth.emails.recovery.title' => 'Đặt lại mật khẩu',
'auth.emails.recovery.body' => 'vi.email.auth.recovery.tpl',
'auth.emails.invitation.title' => 'Lời mới vào %s Team ở %s',
'auth.emails.invitation.body' => 'vi.email.auth.invitation.tpl',
'locale.country.unknown' => 'Chưa xác định',
'countries' => include 'vi.countries.php',
'continents' => include 'vi.continents.php',
];

View file

@ -0,0 +1,11 @@
<?php
return [
'AF' => '非洲',
'AN' => '南极洲',
'AS' => '亚洲',
'EU' => '欧洲',
'NA' => '北美洲',
'OC' => '大洋洲',
'SA' => '南美洲',
];

View file

@ -0,0 +1,198 @@
<?php
return [
'AF' => '阿富汗',
'AO' => '安哥拉',
'AL' => '阿尔巴尼亚',
'AD' => '安道尔',
'AE' => '阿拉伯联合酋长国',
'AR' => '阿根廷',
'AM' => '亚美尼亚',
'AG' => '安提瓜和巴布达',
'AU' => '澳大利亚',
'AT' => '奥地利',
'AZ' => '阿塞拜疆',
'BI' => '布隆迪',
'BE' => '比利时',
'BJ' => '贝宁',
'BF' => '布基纳法索',
'BD' => '孟加拉国',
'BG' => '保加利亚',
'BH' => '巴林',
'BS' => '巴哈马',
'BA' => '波黑',
'BY' => '白罗斯',
'BZ' => '伯利兹',
'BO' => '玻利维亚',
'BR' => '巴西',
'BB' => '巴巴多斯',
'BN' => '文莱',
'BT' => '不丹',
'BW' => '博茨瓦纳',
'CF' => '中非共和国',
'CA' => '加拿大',
'CH' => '瑞士',
'CL' => '智利',
'CN' => '中国',
'CI' => '象牙海岸',
'CM' => '喀麦隆',
'CD' => '刚果民主共和国',
'CG' => '刚果共和国',
'CO' => '哥伦比亚',
'KM' => '科摩',
'CV' => '佛得角',
'CR' => '哥斯达黎加',
'CU' => '古巴',
'CY' => '塞浦路斯',
'CZ' => '捷克',
'DE' => '德国',
'DJ' => '吉布提',
'DM' => '多米尼克',
'DK' => '丹麦',
'DO' => '多明尼加共和国',
'DZ' => '阿尔及利亚',
'EC' => '厄瓜多尔',
'EG' => '埃及',
'ER' => '厄立特里亚',
'ES' => '西班牙',
'EE' => '爱沙尼亚',
'ET' => '埃塞俄比亚',
'FI' => '芬兰',
'FJ' => '斐济',
'FR' => '法国',
'FM' => '密克罗尼西亚',
'GA' => '加蓬',
'GB' => '英国',
'GE' => '格鲁吉亚',
'GH' => '加纳',
'GN' => '几内亚',
'GM' => '冈比亚',
'GW' => '几内亚比绍',
'GQ' => '赤道几内亚',
'GR' => '希腊',
'GD' => '格林纳达',
'GT' => '危地马拉',
'GY' => '圭亚那',
'HN' => '洪都拉斯',
'HR' => '克罗地亚',
'HT' => '海地',
'HU' => '匈牙利',
'ID' => '印度尼西亚',
'IN' => '印度',
'IE' => '爱尔兰',
'IR' => '伊朗',
'IQ' => '伊拉克',
'IS' => '冰岛',
'IL' => '以色列',
'IT' => '意大利',
'JM' => '牙买加',
'JO' => '约旦',
'JP' => '日本',
'KZ' => '哈萨克斯坦',
'KE' => '肯尼亚',
'KG' => '吉尔吉斯斯坦',
'KH' => '柬埔寨',
'KI' => '基里巴斯',
'KN' => '圣基茨和尼维斯',
'KR' => '韩国',
'KW' => '科威特',
'LA' => '老挝',
'LB' => '黎巴嫩',
'LR' => '利比里亚',
'LY' => '利比亚',
'LC' => '圣卢西亚',
'LI' => '列支敦士登',
'LK' => '斯里兰卡',
'LS' => '莱索托',
'LT' => '立陶宛',
'LU' => '卢森堡',
'LV' => '拉脱维亚',
'MA' => '摩洛哥',
'MC' => '摩纳哥',
'MD' => '摩尔多瓦',
'MG' => '马达加斯加',
'MV' => '马尔代夫',
'MX' => '墨西哥',
'MH' => '马绍尔群岛',
'MK' => '马其顿共和国',
'ML' => '马里',
'MT' => '马耳他',
'MM' => '缅甸',
'ME' => '黑山',
'MN' => '蒙古',
'MZ' => '莫桑比克',
'MR' => '毛里塔尼亚',
'MU' => '毛里求斯',
'MW' => '马拉维',
'MY' => '马来西亚',
'NA' => '纳米比亚',
'NE' => '尼日尔',
'NG' => '尼日利亚',
'NI' => '尼加拉瓜',
'NL' => '荷兰',
'NO' => '挪威',
'NP' => '尼泊尔',
'NR' => '瑙鲁',
'NZ' => '新西兰',
'OM' => '阿曼',
'PK' => '巴基斯坦',
'PA' => '巴拿马',
'PE' => '秘鲁',
'PH' => '菲律宾',
'PW' => '帕劳',
'PG' => '巴布亚新几内亚',
'PL' => '波兰',
'KP' => '北朝鲜',
'PT' => '葡萄牙',
'PY' => '巴拉圭',
'QA' => '卡塔尔',
'RO' => '罗马尼亚',
'RU' => '俄罗斯',
'RW' => '卢旺达',
'SA' => '沙特阿拉伯',
'SD' => '苏丹',
'SN' => '塞内加尔',
'SG' => '新加坡',
'SB' => '所罗门群岛',
'SL' => '塞拉利昂',
'SV' => '萨尔瓦多',
'SM' => '圣马力诺',
'SO' => '索马里',
'RS' => '塞尔维亚',
'SS' => '南苏丹',
'ST' => '圣多美和普林西比',
'SR' => '苏里南',
'SK' => '斯洛伐克',
'SI' => '斯洛文尼亚',
'SE' => '瑞典',
'SZ' => '斯威士兰',
'SC' => '塞舌尔',
'SY' => '叙利亚',
'TD' => '乍得',
'TG' => '多哥',
'TH' => '泰国',
'TJ' => '塔吉克斯坦',
'TM' => '土库曼斯坦',
'TL' => '东帝汶',
'TO' => '汤加',
'TT' => '特立尼达和多巴哥',
'TN' => '突尼斯',
'TR' => '土耳其',
'TV' => '图瓦卢',
'TZ' => '坦桑尼亚',
'UG' => '乌干达',
'UA' => '乌克兰',
'UY' => '乌拉圭',
'US' => '美国',
'UZ' => '乌兹别克斯',
'VA' => '梵蒂冈',
'VC' => '圣文森特和格林纳丁斯',
'VE' => '委内瑞拉',
'VN' => '越南',
'VU' => '瓦努阿图',
'WS' => '萨摩亚',
'YE' => '也门',
'ZA' => '南非',
'ZM' => '赞比亚',
'ZW' => '津巴布韦',
];

21
app/config/locale/zh.php Normal file
View file

@ -0,0 +1,21 @@
<?php
return [
'settings.inspire' => '"懂得取舍,方显睿智。"', // This is the line printed in the homepage and console 'view-source'
'settings.locale' => 'zh',
'settings.direction' => 'ltr',
// Service - Users
'auth.emails.team' => '%s 小组',
'auth.emails.confirm.title' => '账户确认',
'auth.emails.confirm.body' => 'zh.email.auth.confirm.tpl',
'auth.emails.recovery.title' => '重设密码',
'auth.emails.recovery.body' => 'zh.email.auth.recovery.tpl',
'auth.emails.invitation.title' => '邀请加入%s小组%s', // I used brackets to keep the order
'auth.emails.invitation.body' => 'zh.email.auth.invitation.tpl',
'locale.country.unknown' => '未知',
'countries' => include 'zh.countries.php',
'continents' => include 'zh.continents.php',
];

View file

@ -34,7 +34,7 @@ return [
'microsoft' => [
'developers' => 'https://developer.microsoft.com/en-us/',
'icon' => 'icon-windows',
'enabled' => false,
'enabled' => true,
],
'twitter' => [
'developers' => 'https://developer.twitter.com/',
@ -46,4 +46,9 @@ return [
'icon' => 'icon-linkedin',
'enabled' => true,
],
'dropbox' => [
'developers' => 'https://www.dropbox.com/developers/documentation',
'icon' => 'icon-dropbox',
'enabled' => true,
],
];

View file

@ -24,7 +24,7 @@ $utopia->post('/v1/auth/register')
->label('scope', 'auth')
->label('sdk.namespace', 'auth')
->label('sdk.method', 'register')
->label('sdk.description', "Use this endpoint to allow a new user to register an account in your project. Use the success and failure URL's to redirect users back to your application after signup completes.\n\nIf registration completes successfully user will be sent with a confirmation email in order to confirm he is the owner of the account email address. Use the confirmation parameter to redirect the user from the confirmation email back to your app. When the user is redirected, use the /auth/confirm endpoint to complete the account confirmation.\n\nPlease notice that in order to avoid a [Redirect Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URL's are the once from domains you have set when added your platforms in the console interface.\n\nWhen accessing this route using Javascript from the browser, success and failure parameter URLs are required. Appwrite server will respond with a 301 redirect status code and will set the user session cookie. This behavior is enforced because modern browsers are limiting 3rd party cookies in XHR of fetch requests to protect user privacy.")
->label('sdk.description', "Use this endpoint to allow a new user to register an account in your project. Use the success and failure URL's to redirect users back to your application after signup completes.\n\nIf registration completes successfully user will be sent with a confirmation email in order to confirm he is the owner of the account email address. Use the confirmation parameter to redirect the user from the confirmation email back to your app. When the user is redirected, use the /auth/confirm endpoint to complete the account confirmation.\n\nPlease notice that in order to avoid a [Redirect Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URL's are the once from domains you have set when added your platforms in the console interface.\n\nWhen accessing this route using JavaScript from the browser, success and failure parameter URLs are required. Appwrite server will respond with a 301 redirect status code and will set the user session cookie. This behavior is enforced because modern browsers are limiting 3rd party cookies in XHR of fetch requests to protect user privacy.")
->label('sdk.cookies', true)
->label('abuse-limit', 10)
->param('email', '', function () {
@ -322,7 +322,7 @@ $utopia->post('/v1/auth/login')
->label('scope', 'auth')
->label('sdk.namespace', 'auth')
->label('sdk.method', 'login')
->label('sdk.description', "Allow the user to login into his account by providing a valid email and password combination. Use the success and failure arguments to provide a redirect URL\'s back to your app when login is completed. \n\nPlease notice that in order to avoid a [Redirect Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URL's are the once from domains you have set when added your platforms in the console interface.\n\nWhen accessing this route using Javascript from the browser, success and failure parameter URLs are required. Appwrite server will respond with a 301 redirect status code and will set the user session cookie. This behavior is enforced because modern browsers are limiting 3rd party cookies in XHR of fetch requests to protect user privacy.")
->label('sdk.description', "Allow the user to login into his account by providing a valid email and password combination. Use the success and failure arguments to provide a redirect URL\'s back to your app when login is completed. \n\nPlease notice that in order to avoid a [Redirect Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URL's are the once from domains you have set when added your platforms in the console interface.\n\nWhen accessing this route using JavaScript from the browser, success and failure parameter URLs are required. Appwrite server will respond with a 301 redirect status code and will set the user session cookie. This behavior is enforced because modern browsers are limiting 3rd party cookies in XHR of fetch requests to protect user privacy.")
->label('sdk.cookies', true)
->label('abuse-limit', 10)
->label('abuse-key', 'url:{url},email:{param-email}')

View file

@ -132,7 +132,7 @@ $utopia->get('/v1/locale/currencies')
->label('scope', 'locale.read')
->label('sdk.namespace', 'locale')
->label('sdk.method', 'getCurrencies')
->label('sdk.description', 'List of all currencies, including currency symol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in supported language.')
->label('sdk.description', 'List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in supported language.')
->action(
function () use ($response) {
$currencies = include __DIR__.'/../config/currencies.php';

View file

@ -24,7 +24,7 @@ const APP_EMAIL_TEAM = 'team@'.APP_DOMAIN;
const APP_EMAIL_SECURITY = 'security@'.APP_DOMAIN;
const APP_USERAGENT = APP_NAME.'-Server/%s Please report abuse at '.APP_EMAIL_SECURITY;
const APP_MODE_ADMIN = 'admin';
const APP_LOCALES = ['cat', 'de', 'en', 'es', 'fi', 'fr', 'gr', 'he', 'hi', 'id', 'it', 'nl', /* 'no',*/ 'pt-br', 'pt-pt', 'ro', 'tr', 'ua'];
const APP_LOCALES = ['cat', 'de', 'en', 'es', 'fi', 'fr', 'gr', 'he', 'hi', 'id', 'it', 'nl', /* 'no',*/ 'pt-br', 'pt-pt', 'ro', 'tr', 'ua', 'zh'];
const APP_PAGING_LIMIT = 15;
$register = new Registry();
@ -144,10 +144,15 @@ Locale::setLanguage('nl', include __DIR__.'/config/locale/nl.php');
Locale::setLanguage('pt-br', include __DIR__.'/config/locale/pt-br.php');
Locale::setLanguage('pt-pt', include __DIR__.'/config/locale/pt-pt.php');
Locale::setLanguage('ro', include __DIR__.'/config/locale/ro.php');
Locale::setLanguage('ru', include __DIR__ . '/config/locale/ru.php');
Locale::setLanguage('tr', include __DIR__.'/config/locale/tr.php');
Locale::setLanguage('ua', include __DIR__.'/config/locale/ua.php');
Locale::setLanguage('si', include __DIR__ . '/config/locale/si.php');
Locale::setLanguage('zh', include __DIR__.'/config/locale/zh.php');
if (in_array($locale, APP_LOCALES)) {
Locale::setDefault($locale);
}

View file

@ -30,4 +30,4 @@ pub get
## License
Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE) file for more information.
Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE) file for more information.

View file

@ -3,19 +3,19 @@ import "package:appwrite/client.dart";
import 'package:dio/dio.dart';
class Auth extends Service {
Auth(Client client): super(client);
/// Allow the user to login into his account by providing a valid email and
/// password combination. Use the success and failure arguments to provide a
/// redirect URL\'s back to your app when login is completed.
///
/// redirect URL\'s back to your app when login is completed.
///
/// Please notice that in order to avoid a [Redirect
/// Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)
/// the only valid redirect URL's are the once from domains you have set when
/// added your platforms in the console interface.
///
/// When accessing this route using Javascript from the browser, success and
///
/// When accessing this route using JavaScript from the browser, success and
/// failure parameter URLs are required. Appwrite server will respond with a
/// 301 redirect status code and will set the user session cookie. This
/// behavior is enforced because modern browsers are limiting 3rd party cookies
@ -84,7 +84,7 @@ class Auth extends Service {
/// **userId** and **token** arguments will be passed as query parameters to
/// the redirect URL you have provided when sending your request to the
/// /auth/recovery endpoint.
///
///
/// Please notice that in order to avoid a [Redirect
/// Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)
/// the only valid redirect URL's are the once from domains you have set when
@ -104,19 +104,19 @@ class Auth extends Service {
/// Use this endpoint to allow a new user to register an account in your
/// project. Use the success and failure URL's to redirect users back to your
/// application after signup completes.
///
///
/// If registration completes successfully user will be sent with a
/// confirmation email in order to confirm he is the owner of the account email
/// address. Use the confirmation parameter to redirect the user from the
/// confirmation email back to your app. When the user is redirected, use the
/// /auth/confirm endpoint to complete the account confirmation.
///
///
/// Please notice that in order to avoid a [Redirect
/// Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)
/// the only valid redirect URL's are the once from domains you have set when
/// added your platforms in the console interface.
///
/// When accessing this route using Javascript from the browser, success and
///
/// When accessing this route using JavaScript from the browser, success and
/// failure parameter URLs are required. Appwrite server will respond with a
/// 301 redirect status code and will set the user session cookie. This
/// behavior is enforced because modern browsers are limiting 3rd party cookies
@ -152,7 +152,7 @@ class Auth extends Service {
/// This endpoint allows the user to request your app to resend him his email
/// confirmation message. The redirect arguments acts the same way as in
/// /auth/register endpoint.
///
///
/// Please notice that in order to avoid a [Redirect
/// Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)
/// the only valid redirect URL's are the once from domains you have set when
@ -166,4 +166,4 @@ class Auth extends Service {
return await this.client.call('post', path: path, params: params);
}
}
}

View file

@ -1,9 +1,9 @@
# [Appwrite SDK for Javascript](https://appwrite.io) &nbsp; [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Appwrite%20is%20a%20backend%20as%20a%20service%20for%20building%20web%20or%20mobile%20apps&url=http%3A%2F%2Fappwrite.io&via=appwrite_io&hashtags=JS%2Cjavascript%2Creactjs%2Cangular%2Cios%2Candroid)
# [Appwrite SDK for JavaScript](https://appwrite.io) &nbsp; [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Appwrite%20is%20a%20backend%20as%20a%20service%20for%20building%20web%20or%20mobile%20apps&url=http%3A%2F%2Fappwrite.io&via=appwrite_io&hashtags=JS%2Cjavascript%2Creactjs%2Cangular%2Cios%2Candroid)
![License](https://img.shields.io/github/license/appwrite/sdk-for-js.svg?v=1)
![Version](https://img.shields.io/badge/api%20version-0.1.15-blue.svg?v=1)
This SDK if compitable with Appwrite server version 0.2.0 for older versions check previous releases.
This SDK is compatible with Appwrite server version 0.2.0 for older versions check previous releases.
Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)
@ -23,4 +23,4 @@ npm install appwrite --save
## License
Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE) file for more information.
Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE) file for more information.

File diff suppressed because it is too large Load diff

View file

@ -3,7 +3,7 @@
![License](https://img.shields.io/github/license/appwrite/sdk-for-node.svg?v=1)
![Version](https://img.shields.io/badge/api%20version-0.1.15-blue.svg?v=1)
This SDK if compitable with Appwrite server version 0.2.0 for older versions check previous releases.
This SDK is compatible with Appwrite server version 0.2.0 for older versions check previous releases.
Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)
@ -23,4 +23,4 @@ npm install node-appwrite --save
## License
Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE) file for more information.
Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE) file for more information.

View file

@ -7,14 +7,14 @@ class Auth extends Service {
*
* Allow the user to login into his account by providing a valid email and
* password combination. Use the success and failure arguments to provide a
* redirect URL\'s back to your app when login is completed.
*
* redirect URL\'s back to your app when login is completed.
*
* Please notice that in order to avoid a [Redirect
* Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)
* the only valid redirect URL's are the once from domains you have set when
* added your platforms in the console interface.
*
* When accessing this route using Javascript from the browser, success and
*
* When accessing this route using JavaScript from the browser, success and
* failure parameter URLs are required. Appwrite server will respond with a
* 301 redirect status code and will set the user session cookie. This
* behavior is enforced because modern browsers are limiting 3rd party cookies
@ -29,7 +29,7 @@ class Auth extends Service {
*/
async login(email, password, success, failure) {
let path = '/auth/login';
return await this.client.call('post', path, {'content-type': 'application/json'},
{
'email': email,
@ -51,7 +51,7 @@ class Auth extends Service {
*/
async logout() {
let path = '/auth/logout';
return await this.client.call('delete', path, {'content-type': 'application/json'},
{
});
@ -70,7 +70,7 @@ class Auth extends Service {
*/
async logoutBySession(id) {
let path = '/auth/logout/{id}'.replace(new RegExp('{id}', 'g'), id);
return await this.client.call('delete', path, {'content-type': 'application/json'},
{
});
@ -87,7 +87,7 @@ class Auth extends Service {
*/
async oauth(provider, success = '', failure = '') {
let path = '/auth/oauth/{provider}'.replace(new RegExp('{provider}', 'g'), provider);
return await this.client.call('get', path, {'content-type': 'application/json'},
{
'success': success,
@ -112,7 +112,7 @@ class Auth extends Service {
*/
async recovery(email, reset) {
let path = '/auth/recovery';
return await this.client.call('post', path, {'content-type': 'application/json'},
{
'email': email,
@ -127,7 +127,7 @@ class Auth extends Service {
* **userId** and **token** arguments will be passed as query parameters to
* the redirect URL you have provided when sending your request to the
* /auth/recovery endpoint.
*
*
* Please notice that in order to avoid a [Redirect
* Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)
* the only valid redirect URL's are the once from domains you have set when
@ -142,7 +142,7 @@ class Auth extends Service {
*/
async recoveryReset(userId, token, passwordA, passwordB) {
let path = '/auth/recovery/reset';
return await this.client.call('put', path, {'content-type': 'application/json'},
{
'userId': userId,
@ -158,19 +158,19 @@ class Auth extends Service {
* Use this endpoint to allow a new user to register an account in your
* project. Use the success and failure URL's to redirect users back to your
* application after signup completes.
*
*
* If registration completes successfully user will be sent with a
* confirmation email in order to confirm he is the owner of the account email
* address. Use the confirmation parameter to redirect the user from the
* confirmation email back to your app. When the user is redirected, use the
* /auth/confirm endpoint to complete the account confirmation.
*
*
* Please notice that in order to avoid a [Redirect
* Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)
* the only valid redirect URL's are the once from domains you have set when
* added your platforms in the console interface.
*
* When accessing this route using Javascript from the browser, success and
*
* When accessing this route using JavaScript from the browser, success and
* failure parameter URLs are required. Appwrite server will respond with a
* 301 redirect status code and will set the user session cookie. This
* behavior is enforced because modern browsers are limiting 3rd party cookies
@ -187,7 +187,7 @@ class Auth extends Service {
*/
async register(email, password, confirm, success = '', failure = '', name = '') {
let path = '/auth/register';
return await this.client.call('post', path, {'content-type': 'application/json'},
{
'email': email,
@ -214,7 +214,7 @@ class Auth extends Service {
*/
async confirm(userId, token) {
let path = '/auth/register/confirm';
return await this.client.call('post', path, {'content-type': 'application/json'},
{
'userId': userId,
@ -228,7 +228,7 @@ class Auth extends Service {
* This endpoint allows the user to request your app to resend him his email
* confirmation message. The redirect arguments acts the same way as in
* /auth/register endpoint.
*
*
* Please notice that in order to avoid a [Redirect
* Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)
* the only valid redirect URL's are the once from domains you have set when
@ -240,7 +240,7 @@ class Auth extends Service {
*/
async confirmResend(confirm) {
let path = '/auth/register/confirm/resend';
return await this.client.call('post', path, {'content-type': 'application/json'},
{
'confirm': confirm
@ -248,4 +248,4 @@ class Auth extends Service {
}
}
module.exports = Auth;
module.exports = Auth;

View file

@ -3,7 +3,7 @@
![License](https://img.shields.io/github/license/appwrite/sdk-for-php.svg?v=1)
![Version](https://img.shields.io/badge/api%20version-0.1.15-blue.svg?v=1)
This SDK if compitable with Appwrite server version 0.2.0 for older versions check previous releases.
This SDK is compatible with Appwrite server version 0.2.0 for older versions check previous releases.
Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)
@ -23,4 +23,4 @@ composer require appwrite/appwrite
## License
Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE) file for more information.
Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE) file for more information.

View file

@ -10,7 +10,7 @@ POST https://appwrite.test/v1/auth/login
Please notice that in order to avoid a [Redirect Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URL&#039;s are the once from domains you have set when added your platforms in the console interface.
When accessing this route using Javascript from the browser, success and failure parameter URLs are required. Appwrite server will respond with a 301 redirect status code and will set the user session cookie. This behavior is enforced because modern browsers are limiting 3rd party cookies in XHR of fetch requests to protect user privacy. **
When accessing this route using JavaScript from the browser, success and failure parameter URLs are required. Appwrite server will respond with a 301 redirect status code and will set the user session cookie. This behavior is enforced because modern browsers are limiting 3rd party cookies in XHR of fetch requests to protect user privacy. **
### Parameters
@ -103,7 +103,7 @@ If registration completes successfully user will be sent with a confirmation ema
Please notice that in order to avoid a [Redirect Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URL&#039;s are the once from domains you have set when added your platforms in the console interface.
When accessing this route using Javascript from the browser, success and failure parameter URLs are required. Appwrite server will respond with a 301 redirect status code and will set the user session cookie. This behavior is enforced because modern browsers are limiting 3rd party cookies in XHR of fetch requests to protect user privacy. **
When accessing this route using JavaScript from the browser, success and failure parameter URLs are required. Appwrite server will respond with a 301 redirect status code and will set the user session cookie. This behavior is enforced because modern browsers are limiting 3rd party cookies in XHR of fetch requests to protect user privacy. **
### Parameters
@ -146,4 +146,3 @@ Please notice that in order to avoid a [Redirect Attacks](https://github.com/OWA
| Field Name | Type | Description | Default |
| --- | --- | --- | --- |
| confirm | string | Confirmation URL to redirect user to your app after confirm token has been sent to user email. | |

View file

@ -13,14 +13,14 @@ class Auth extends Service
*
* Allow the user to login into his account by providing a valid email and
* password combination. Use the success and failure arguments to provide a
* redirect URL\'s back to your app when login is completed.
*
* redirect URL\'s back to your app when login is completed.
*
* Please notice that in order to avoid a [Redirect
* Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)
* the only valid redirect URL's are the once from domains you have set when
* added your platforms in the console interface.
*
* When accessing this route using Javascript from the browser, success and
*
* When accessing this route using JavaScript from the browser, success and
* failure parameter URLs are required. Appwrite server will respond with a
* 301 redirect status code and will set the user session cookie. This
* behavior is enforced because modern browsers are limiting 3rd party cookies
@ -143,7 +143,7 @@ class Auth extends Service
* **userId** and **token** arguments will be passed as query parameters to
* the redirect URL you have provided when sending your request to the
* /auth/recovery endpoint.
*
*
* Please notice that in order to avoid a [Redirect
* Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)
* the only valid redirect URL's are the once from domains you have set when
@ -176,19 +176,19 @@ class Auth extends Service
* Use this endpoint to allow a new user to register an account in your
* project. Use the success and failure URL's to redirect users back to your
* application after signup completes.
*
*
* If registration completes successfully user will be sent with a
* confirmation email in order to confirm he is the owner of the account email
* address. Use the confirmation parameter to redirect the user from the
* confirmation email back to your app. When the user is redirected, use the
* /auth/confirm endpoint to complete the account confirmation.
*
*
* Please notice that in order to avoid a [Redirect
* Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)
* the only valid redirect URL's are the once from domains you have set when
* added your platforms in the console interface.
*
* When accessing this route using Javascript from the browser, success and
*
* When accessing this route using JavaScript from the browser, success and
* failure parameter URLs are required. Appwrite server will respond with a
* 301 redirect status code and will set the user session cookie. This
* behavior is enforced because modern browsers are limiting 3rd party cookies
@ -250,7 +250,7 @@ class Auth extends Service
* This endpoint allows the user to request your app to resend him his email
* confirmation message. The redirect arguments acts the same way as in
* /auth/register endpoint.
*
*
* Please notice that in order to avoid a [Redirect
* Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)
* the only valid redirect URL's are the once from domains you have set when
@ -271,4 +271,4 @@ class Auth extends Service
], $params);
}
}
}

View file

@ -43,7 +43,7 @@ $cli
'gitRepo' => 'git@github.com:appwrite/sdk-for-php.git',
'gitRepoName' => 'sdk-for-php',
'gitUserName' => 'appwrite',
'warning' => 'This SDK if compitable with Appwrite server version ' . $version . ' for older versions check previous releases.',
'warning' => 'This SDK is compitable with Appwrite server version ' . $version . ' for older versions check previous releases.',
'platform' => 'server',
],
'js' => [
@ -53,7 +53,7 @@ $cli
'gitRepo' => 'git@github.com:appwrite/sdk-for-js.git',
'gitRepoName' => 'sdk-for-js',
'gitUserName' => 'appwrite',
'warning' => 'This SDK if compitable with Appwrite server version ' . $version . ' for older versions check previous releases.',
'warning' => 'This SDK is compitable with Appwrite server version ' . $version . ' for older versions check previous releases.',
'platform' => 'client',
],
'node' => [
@ -63,7 +63,7 @@ $cli
'gitRepo' => 'git@github.com:appwrite/sdk-for-node.git',
'gitRepoName' => 'sdk-for-node',
'gitUserName' => 'appwrite',
'warning' => 'This SDK if compitable with Appwrite server version ' . $version . ' for older versions check previous releases.',
'warning' => 'This SDK is compitable with Appwrite server version ' . $version . ' for older versions check previous releases.',
'platform' => 'server',
],
'python' => [

View file

@ -4,7 +4,7 @@ $home = $this->getParam('home', '');
<footer class="clear margin-top-xl">
<ul class="copyright pull-start">
<li>
<a href="https://github.com/appwrite/appwrite" target="_blank"><i class="icon-github-circled"></i> Github Repository</a>
<a href="https://github.com/appwrite/appwrite" target="_blank"><i class="icon-github-circled"></i> GitHub Repository</a>
</li>
<li>
<a href="https://github.com/appwrite/appwrite/issues/new?body=%0A%0A%0A---%0AAppwrite Version:%20<?php echo VERSION; ?>" target="_blank">Open an Issue</a>
@ -16,4 +16,4 @@ $home = $this->getParam('home', '');
v:<?php echo VERSION; ?>
</li>
</ul>
</footer>
</footer>

View file

@ -8,7 +8,7 @@ echo "Updating git repository"
git fetch origin
git reset --hard origin/master
if test `find "./app/db/GeoLite2/GeoLite2-Country.mmdb" -mmin +259200`
if test $(find "./app/db/GeoLite2/GeoLite2-Country.mmdb" -mmin +259200)
then
printf "${RED}GEO country DB has not been updated for more than 6 months. Go to https://dev.maxmind.com/geoip/geoip2/geolite2/ for more info${NC}\n"
fi
@ -23,8 +23,8 @@ composer update --ignore-platform-reqs --optimize-autoloader --no-dev --no-plugi
echo 'Starting build...'
docker build -t appwrite/appwrite:$1 .
docker build -t appwrite/appwrite:"$1" .
echo 'Pushing build to registry...'
docker push appwrite/appwrite:$1
docker push appwrite/appwrite:"$1"

View file

@ -36,7 +36,7 @@ services:
- _APP_INFLUXDB_PORT=8086
- _APP_STATSD_HOST=telegraf
- _APP_STATSD_PORT=8125
mariadb:
image: appwrite/mariadb:1.0.0 # fix issues when upgrading using: mysql_upgrade -u root -p
restart: unless-stopped
@ -63,7 +63,7 @@ services:
restart: unless-stopped
volumes:
- ./storage:/storage:rw
redis:
image: redis:5.0
restart: unless-stopped
@ -78,4 +78,4 @@ services:
telegraf:
image: appwrite/telegraf:1.0.0
ports:
- "8125:8125/udp"
- "8125:8125/udp"

View file

@ -88,7 +88,7 @@ http {
add_header Cache-Control "public";
}
# CSS and Javascript
# CSS and JavaScript
location ~* \.(?:css|js)$ {
expires 1y;
access_log off;
@ -145,4 +145,4 @@ http {
deny all;
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 B

128
src/Auth/OAuth/Dropbox.php Normal file
View file

@ -0,0 +1,128 @@
<?php
namespace Auth\OAuth;
use Auth\OAuth;
// Reference Material
// https://www.dropbox.com/developers/reference/oauth-guide
// https://www.dropbox.com/developers/documentation/http/documentation#users-get_current_account
class Dropbox extends OAuth
{
/**
* @var array
*/
protected $user = [];
/**
* @return string
*/
public function getName(): string
{
return 'dropbox';
}
/**
* @return string
*/
public function getLoginURL(): string
{
return 'https://www.dropbox.com/oauth2/authorize?'.
'client_id='.urlencode($this->appID).
'&redirect_uri='.urlencode($this->callback).
'&state='.urlencode(json_encode($this->state)).
'&response_type=code';
}
/**
* @param string $code
*
* @return string
*/
public function getAccessToken(string $code): string
{
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
$accessToken = $this->request(
'POST',
'https://api.dropboxapi.com/oauth2/token',
$headers,
'code='.urlencode($code).
'&client_id='.urlencode($this->appID).
'&client_secret='.urlencode($this->appSecret).
'&redirect_uri='.urlencode($this->callback).
'&grant_type=authorization_code'
);
$accessToken = json_decode($accessToken, true);
if (isset($accessToken['access_token'])) {
return $accessToken['access_token'];
}
return '';
}
/**
* @param string $accessToken
*
* @return string
*/
public function getUserID(string $accessToken): string
{
$user = $this->getUser($accessToken);
if (isset($user['account_id'])) {
return $user['account_id'];
}
return '';
}
/**
* @param string $accessToken
*
* @return string
*/
public function getUserEmail(string $accessToken): string
{
$user = $this->getUser($accessToken);
if (isset($user['email'])) {
return $user['email'];
}
return '';
}
/**
* @param string $accessToken
*
* @return string
*/
public function getUserName(string $accessToken): string
{
$user = $this->getUser($accessToken);
if (isset($user['name'])) {
return $user['name']['display_name'];
}
return '';
}
/**
* @param string $accessToken
*
* @return array
*/
protected function getUser(string $accessToken): array
{
if (empty($this->user)) {
$headers[] = 'Authorization: Bearer '. urlencode($accessToken);
$user = $this->request('POST', 'https://api.dropboxapi.com/2/users/get_current_account', $headers);
$this->user = json_decode($user, true);
}
return $this->user;
}
}

View file

@ -0,0 +1,132 @@
<?php
namespace Auth\OAuth;
use Auth\OAuth;
// Reference Material
// https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow
// https://docs.microsoft.com/en-us/graph/auth-v2-user
class Microsoft extends OAuth
{
/**
* @var array
*/
protected $user = [];
/**
* @return string
*/
public function getName(): string
{
return 'microsoft';
}
/**
* @return string
*/
public function getLoginURL(): string
{
return 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize?'.
'client_id='.urlencode($this->appID).
'&redirect_uri='.urlencode($this->callback).
'&state='.urlencode(json_encode($this->state)).
'&scope=offline_access+user.read'.
'&response_type=code'.
'&response_mode=query';
}
/**
* @param string $code
*
* @return string
*/
public function getAccessToken(string $code): string
{
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
$accessToken = $this->request(
'POST',
'https://login.microsoftonline.com/common/oauth2/v2.0/token',
$headers,
'code='.urlencode($code).
'&client_id='.urlencode($this->appID).
'&client_secret='.urlencode($this->appSecret).
'&redirect_uri='.urlencode($this->callback).
'&scope=offline_access+user.read'.
'&grant_type=authorization_code'
);
$accessToken = json_decode($accessToken, true);
if (isset($accessToken['access_token'])) {
return $accessToken['access_token'];
}
return '';
}
/**
* @param string $accessToken
*
* @return string
*/
public function getUserID(string $accessToken): string
{
$user = $this->getUser($accessToken);
if (isset($user['id'])) {
return $user['id'];
}
return '';
}
/**
* @param string $accessToken
*
* @return string
*/
public function getUserEmail(string $accessToken): string
{
$user = $this->getUser($accessToken);
if (isset($user['userPrincipalName'])) {
return $user['userPrincipalName'];
}
return '';
}
/**
* @param string $accessToken
*
* @return string
*/
public function getUserName(string $accessToken): string
{
$user = $this->getUser($accessToken);
if (isset($user['displayName'])) {
return $user['displayName'];
}
return '';
}
/**
* @param string $accessToken
*
* @return array
*/
protected function getUser(string $accessToken): array
{
if (empty($this->user)) {
$headers[] = 'Authorization: Bearer '. urlencode($accessToken);
$user = $this->request('GET', 'https://graph.microsoft.com/v1.0/me', $headers);
$this->user = json_decode($user, true);
}
return $this->user;
}
}