From be016ca40007677a2482f99291b980dbbbaf9e6f Mon Sep 17 00:00:00 2001 From: Matej Baco Date: Fri, 27 Aug 2021 10:38:55 +0200 Subject: [PATCH 001/110] Update translations tutorial --- docs/tutorials/add-translations.md | 77 ++++++++++++++++++++++------- docs/tutorials/images/export.png | Bin 53376 -> 90059 bytes docs/tutorials/images/fork.png | Bin 0 -> 106240 bytes 3 files changed, 60 insertions(+), 17 deletions(-) create mode 100644 docs/tutorials/images/fork.png diff --git a/docs/tutorials/add-translations.md b/docs/tutorials/add-translations.md index 30570f6377..957933c6c8 100644 --- a/docs/tutorials/add-translations.md +++ b/docs/tutorials/add-translations.md @@ -6,16 +6,44 @@ This document is part of the Appwrite contributors' guide. Before you continue r ### Agenda -Appwrite's Locale API, Email Templates ( and soon our Dashboard ) has support for returning responses in your own locale based on the value of the `X-Appwrite-Locale` header. Behind the scenes, we use the value in this header to find the correct translation file for the locale. This guide will walk you through the process of adding a new Locale to Appwrite. +Appwrite's Locale API, Email Templates ( and soon our Dashboard ) has support for returning responses in your own locale based on the value of the `X-Appwrite-Locale` header. Behind the scenes, we use the value of this header to find the correct translation file for the locale. This guide will walk you through the process of adding a new Locale to Appwrite. -You can help in three distinct ways -* Adding support for new locales. -* Helping us with existing incomplete translations. -* Reviewing existing translations for correctness. +You can help in three distinct ways: +* Adding support for new locales +* Helping us with existing incomplete translations +* Reviewing existing translations for correctness -You can choose to contribute either directly on [**Github**](#contributing-with-github) or using [**POEditor**](#contributing-with-po-editor) if you prefer a GUI. -### Contributing with Github +## Prerequisites + +It's really easy to contribute to an open-sourced projects, but when using GitHub, there are a few steps we need to follow. This section will take you step-by-step through the process of preparing your own local version of Appwrite, where you can make any changes without affecting Appwrite right away. + +> If you are experienced with GitHub or have made a pull request before, you can skip to `Generate the translations`. + +### Fork the Appwrite repository + +Before making any changes, you will need to fork Appwrite's repository to keep branches on the official repo clean. To do that, visit the [Appwrite Github repository](https://github.com/appwrite/appwrite) and click on the fork button. + +![Fork button](images/fork.png) + +This will redirect you from `github.com/appwrite/appwrite` to `github.com/YOUR_USERNAME/appwrite`, meaning all changes you do are only done inside your repository. Once you are there, click the highlighted `Code` button, copy the URL and clone the repository to your computer using `git clone` command: + +```bash +$ git clone COPIED_URL +``` + +> To fork a repository, you will need a basic understanding of CLI and git-cli binaries installed. If you are a beginner, we recommend you to use `Github Desktop`. It is a really clean and simple visual Git client. + +Finally, you will need to create a `feat-XXX-YYY-translation` branch based on the `locale` branch and switch to it. The `XXX` should represent issue ID and `YYY` the language name. + + +## Generate the translations + +You can choose to contribute either directly on [**GitHub**](#contributing-with-github) or using [**POEditor**](#contributing-with-po-editor) if you prefer a GUI. + +### Manually using GitHub + +> Skip this part and jump to PO Editor section if you want to use graphical interface. We maintain a [`locale branch`](https://github.com/appwrite/appwrite/tree/locale/) under the [appwrite/appwrite repo](https://github.com/appwrite/appwrite/) exclusively for translations related PRs. Here are a few files that you need to refer to help with your contribution. @@ -50,7 +78,7 @@ We maintain a [`locale branch`](https://github.com/appwrite/appwrite/tree/locale 3. **languages.php** - [languages.php](https://github.com/appwrite/appwrite/blob/locale/app/config/locale/languages.php) contains all the languages listed in **[ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)**. You can use this file to find your language code when making a contribution for your language. + [languages.php](https://github.com/appwrite/appwrite/blob/locale/app/config/locale/languages.php) contains all the languages listed in **[ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)**. You can use this link to find your language code when making a contribution for your language. Great, let's start. First, find the code of the language you want to add. For example, if you want to add support for **Spanish**, you can find the code for Spanish in [languages.php](https://github.com/appwrite/appwrite/blob/locale/app/config/locale/languages.php#L202). @@ -67,16 +95,10 @@ Next, choose a reference language. If English is your reference language, copy t ... ... } ``` -Add your language code to [codes.php](https://github.com/appwrite/appwrite/blob/locale/app/config/locale/codes.php#L14) in the following format -```php - ... - 'es', // Spanish - ... -``` -Finally, load your translation file in `init.php` by following a pattern similar to the [existing languages](https://github.com/appwrite/appwrite/blob/locale/app/init.php#L269). +### Visually using PO Editor -### Contributing with PO Editor +> Skip this part if you followed the GitHub approach We use [PO Editor](https://poeditor.com/) to manage all our translations in a convenient way. The first step is to join the Appwrite Project on PO Editor using [our invite link](https://poeditor.com/join/project?hash=BNrWbRXyk6). @@ -98,9 +120,30 @@ You're now ready to start contributing. On the left, you'll find the string to b ![Reference Language](images/reference-language.png) -Once you're happy with your translations, you can export them. Head over to the **Exports** tab and choose the **Key-Value JSON** option only. Download the file and you can then follow the steps similar to the Github approach. +Once you're happy with your translations, you can export them. Head over to the **Exports** tab and choose the **Key-Value JSON** option only. Download the file and you can then follow the steps similar to the Github approach. ![Exporting](images/export.png) +> **Attention! 🛑** There are two JSON exports. Please make sure to export the one saying `Key-value JSON`. Refer to the screenshot if you are not sure which one is correct. + +After exporting a JSON file, we need to rename it to follow the **[ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)** standards. You can use this link to find your language code when making a contribution for your language. For example, Spanish translation should have file called `es.json`. + +## Add the translations to the project + +Add your language code to [codes.php](https://github.com/appwrite/appwrite/blob/locale/app/config/locale/codes.php#L14) in the following format. +```php + ... + 'es', // Spanish + ... +``` + +Finally, load your translation file in `init.php` by following a pattern similar to the [existing languages](https://github.com/appwrite/appwrite/blob/locale/app/init.php#L270). + +> Please make sure to keep both `codes.php` and `init.php` in the alphabetical order A-Z. + +## Raise a pull request + +First of all, commit the changes with the message `Added Slovak translations` and push it. This will publish a new branch to your forked version of Appwrite. If you visit it at `github.com/YOUR_USERNAME_appwrite`, you will see a new alert saying you are ready to submit a pull request. Follow the steps GitHub provides, and at the end, you will have your pull request submitted. + ### 🤕 Stuck ? If you need any help with the contribution, feel free to head over to [our discord channel](https://appwrite.io/discord) and we'll be happy to help you out. diff --git a/docs/tutorials/images/export.png b/docs/tutorials/images/export.png index f0746322304542ea9d3d0e3cf8d2d248a315434e..362518f5d6fc1131060c6f4e4528aaff08e2a83e 100644 GIT binary patch literal 90059 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

sh=7?#aR+*OMnCkc(H8gmuE0 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 W^;#fXz((LsyuFc80aZwueEM&7+k?&k diff --git a/docs/tutorials/images/fork.png b/docs/tutorials/images/fork.png new file mode 100644 index 0000000000000000000000000000000000000000..53c794acfc249c0dfe834f72a3a71f15afcb1e74 GIT binary patch literal 106240 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∨}-Js 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

J-@BtE& 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 literal 0 HcmV?d00001 From ce87c9d1cad01570bffb66137a72e60800d40157 Mon Sep 17 00:00:00 2001 From: Matej Baco Date: Fri, 27 Aug 2021 10:56:44 +0200 Subject: [PATCH 002/110] Updated titles, anchor links --- docs/tutorials/add-translations.md | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/docs/tutorials/add-translations.md b/docs/tutorials/add-translations.md index 957933c6c8..65ee843cf1 100644 --- a/docs/tutorials/add-translations.md +++ b/docs/tutorials/add-translations.md @@ -4,8 +4,6 @@ This document is part of the Appwrite contributors' guide. Before you continue r ## Getting Started -### Agenda - Appwrite's Locale API, Email Templates ( and soon our Dashboard ) has support for returning responses in your own locale based on the value of the `X-Appwrite-Locale` header. Behind the scenes, we use the value of this header to find the correct translation file for the locale. This guide will walk you through the process of adding a new Locale to Appwrite. You can help in three distinct ways: @@ -14,13 +12,13 @@ You can help in three distinct ways: * Reviewing existing translations for correctness -## Prerequisites +## 1. Prerequisites It's really easy to contribute to an open-sourced projects, but when using GitHub, there are a few steps we need to follow. This section will take you step-by-step through the process of preparing your own local version of Appwrite, where you can make any changes without affecting Appwrite right away. > If you are experienced with GitHub or have made a pull request before, you can skip to `Generate the translations`. -### Fork the Appwrite repository +### 1.1 Fork the Appwrite repository Before making any changes, you will need to fork Appwrite's repository to keep branches on the official repo clean. To do that, visit the [Appwrite Github repository](https://github.com/appwrite/appwrite) and click on the fork button. @@ -37,11 +35,11 @@ $ git clone COPIED_URL Finally, you will need to create a `feat-XXX-YYY-translation` branch based on the `locale` branch and switch to it. The `XXX` should represent issue ID and `YYY` the language name. -## Generate the translations +## 2. Generate the translations -You can choose to contribute either directly on [**GitHub**](#contributing-with-github) or using [**POEditor**](#contributing-with-po-editor) if you prefer a GUI. +You can choose to contribute either directly on [**GitHub**](#2.1-manually-using-github) or using [**POEditor**](#2.2-visually-using-po-editor) if you prefer a GUI. -### Manually using GitHub +### 2.1 Manually using GitHub > Skip this part and jump to PO Editor section if you want to use graphical interface. @@ -78,7 +76,7 @@ We maintain a [`locale branch`](https://github.com/appwrite/appwrite/tree/locale 3. **languages.php** - [languages.php](https://github.com/appwrite/appwrite/blob/locale/app/config/locale/languages.php) contains all the languages listed in **[ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)**. You can use this link to find your language code when making a contribution for your language. + [languages.php](https://github.com/appwrite/appwrite/blob/locale/app/config/locale/languages.php) contains all the languages listed in **[ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)**. You can use this file to find your language code when making a contribution for your language. Great, let's start. First, find the code of the language you want to add. For example, if you want to add support for **Spanish**, you can find the code for Spanish in [languages.php](https://github.com/appwrite/appwrite/blob/locale/app/config/locale/languages.php#L202). @@ -96,7 +94,7 @@ Next, choose a reference language. If English is your reference language, copy t } ``` -### Visually using PO Editor +### 2.2 Visually using PO Editor > Skip this part if you followed the GitHub approach @@ -126,9 +124,10 @@ Once you're happy with your translations, you can export them. Head over to the > **Attention! 🛑** There are two JSON exports. Please make sure to export the one saying `Key-value JSON`. Refer to the screenshot if you are not sure which one is correct. -After exporting a JSON file, we need to rename it to follow the **[ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)** standards. You can use this link to find your language code when making a contribution for your language. For example, Spanish translation should have file called `es.json`. +After exporting a JSON file, we need to rename it to follow the **[ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)** standards. You can use [languages.php](https://github.com/appwrite/appwrite/blob/locale/app/config/locale/languages.php) file to find your language code when making a contribution for your language. For example, Spanish translation should have file called `es.json`. -## Add the translations to the project + +## 3. Add the translations to the project Add your language code to [codes.php](https://github.com/appwrite/appwrite/blob/locale/app/config/locale/codes.php#L14) in the following format. ```php @@ -141,9 +140,9 @@ Finally, load your translation file in `init.php` by following a pattern similar > Please make sure to keep both `codes.php` and `init.php` in the alphabetical order A-Z. -## Raise a pull request +## 4. Raise a pull request First of all, commit the changes with the message `Added Slovak translations` and push it. This will publish a new branch to your forked version of Appwrite. If you visit it at `github.com/YOUR_USERNAME_appwrite`, you will see a new alert saying you are ready to submit a pull request. Follow the steps GitHub provides, and at the end, you will have your pull request submitted. -### 🤕 Stuck ? +## 🤕 Stuck ? If you need any help with the contribution, feel free to head over to [our discord channel](https://appwrite.io/discord) and we'll be happy to help you out. From a8568e47d2ed5619cde5446d7b20466298b44207 Mon Sep 17 00:00:00 2001 From: Matej Baco Date: Fri, 27 Aug 2021 10:58:48 +0200 Subject: [PATCH 003/110] Link bug fixing --- docs/tutorials/add-translations.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tutorials/add-translations.md b/docs/tutorials/add-translations.md index 65ee843cf1..66453f3956 100644 --- a/docs/tutorials/add-translations.md +++ b/docs/tutorials/add-translations.md @@ -16,7 +16,7 @@ You can help in three distinct ways: It's really easy to contribute to an open-sourced projects, but when using GitHub, there are a few steps we need to follow. This section will take you step-by-step through the process of preparing your own local version of Appwrite, where you can make any changes without affecting Appwrite right away. -> If you are experienced with GitHub or have made a pull request before, you can skip to `Generate the translations`. +> If you are experienced with GitHub or have made a pull request before, you can skip to [Generate the translations](#2-generate-the-translations). ### 1.1 Fork the Appwrite repository @@ -37,7 +37,7 @@ Finally, you will need to create a `feat-XXX-YYY-translation` branch based on th ## 2. Generate the translations -You can choose to contribute either directly on [**GitHub**](#2.1-manually-using-github) or using [**POEditor**](#2.2-visually-using-po-editor) if you prefer a GUI. +You can choose to contribute either directly on [**GitHub**](#21-manually-using-github) or using [**POEditor**](#22-visually-using-po-editor) if you prefer a GUI. ### 2.1 Manually using GitHub From 40d909d10e4ae268c6659fc6d0cd49515ee37621 Mon Sep 17 00:00:00 2001 From: Matej Baco Date: Fri, 27 Aug 2021 11:01:48 +0200 Subject: [PATCH 004/110] Link changes --- docs/tutorials/add-translations.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/tutorials/add-translations.md b/docs/tutorials/add-translations.md index 66453f3956..2d34228a9c 100644 --- a/docs/tutorials/add-translations.md +++ b/docs/tutorials/add-translations.md @@ -40,8 +40,9 @@ Finally, you will need to create a `feat-XXX-YYY-translation` branch based on th You can choose to contribute either directly on [**GitHub**](#21-manually-using-github) or using [**POEditor**](#22-visually-using-po-editor) if you prefer a GUI. ### 2.1 Manually using GitHub + +> Proceed to [Visually using PO Editor](#22-visually-using-po-editor) if you want to use graphical interface instead. -> Skip this part and jump to PO Editor section if you want to use graphical interface. We maintain a [`locale branch`](https://github.com/appwrite/appwrite/tree/locale/) under the [appwrite/appwrite repo](https://github.com/appwrite/appwrite/) exclusively for translations related PRs. Here are a few files that you need to refer to help with your contribution. @@ -96,7 +97,7 @@ Next, choose a reference language. If English is your reference language, copy t ### 2.2 Visually using PO Editor -> Skip this part if you followed the GitHub approach +> Proceed to [Add the translations to the project](#3-add-the-translations-to-the-project) if you already followed the GitHub approach. We use [PO Editor](https://poeditor.com/) to manage all our translations in a convenient way. The first step is to join the Appwrite Project on PO Editor using [our invite link](https://poeditor.com/join/project?hash=BNrWbRXyk6). From d51cb684f91a29526a69252433b05b3246fe570f Mon Sep 17 00:00:00 2001 From: Matej Baco Date: Fri, 27 Aug 2021 13:23:51 +0200 Subject: [PATCH 005/110] Added test section to translations tutorial --- docs/tutorials/add-translations.md | 37 +++++++++++++++++++++++++++-- docs/tutorials/images/test-cs.png | Bin 0 -> 57990 bytes docs/tutorials/images/test-en.png | Bin 0 -> 57673 bytes 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 docs/tutorials/images/test-cs.png create mode 100644 docs/tutorials/images/test-en.png diff --git a/docs/tutorials/add-translations.md b/docs/tutorials/add-translations.md index 2d34228a9c..57058dddf9 100644 --- a/docs/tutorials/add-translations.md +++ b/docs/tutorials/add-translations.md @@ -26,7 +26,7 @@ Before making any changes, you will need to fork Appwrite's repository to keep b This will redirect you from `github.com/appwrite/appwrite` to `github.com/YOUR_USERNAME/appwrite`, meaning all changes you do are only done inside your repository. Once you are there, click the highlighted `Code` button, copy the URL and clone the repository to your computer using `git clone` command: -```bash +```shell $ git clone COPIED_URL ``` @@ -141,7 +141,40 @@ Finally, load your translation file in `init.php` by following a pattern similar > Please make sure to keep both `codes.php` and `init.php` in the alphabetical order A-Z. -## 4. Raise a pull request +## 4. Test the translations + +To test if the translation is properly loaded, we will send a GET request to get a list of EU countries. + +First of all, we need to start a local instance of Appwrite. Thanks to Docker, this can be done using one command. + +```shell +$ docker-compose up -d +``` + +If this is your first time running Appwrite, it may take up to few minutes to download all images and start all containers. Once everything is started, you should see Appwrite running on `http://localhost:80`. When you visit this URL, it will ask you to sign up. After that, it will show you your empty dashboard where you need to create a new project - give it any name you want. Then you need to go to `Settings` of the project and copy `Project-ID`. + +If you are lost in the Appwrite dashboard, check out our [Article about Appwrite's dashboard](https://dev.to/appwrite/30daysofappwrite-appwrite-dashboard-15cc). + + +Now, let's send the request. We will be editing headers of the request, so you will need a tool to do that, such as Postman or Insomnia. + +First, let's see English translations. Let's set request type to `GET`, URL to `https://localhost/v1/locale/countries/eu` and add `X-Appwrite-Project` header. + +![English test](images/test-en.png) + +> Make sure to use your own project ID for the header. + +After firing the request, we can see countries named `Austria, Belgium, Bulgaria...` So far, we are getting English translations of the country names. + +Once we add `X-Appwrite-Locale` header and send the request again, we will get the names in a specific language. + +![Czech test](images/test-cs.png) + +> Make sure to replace the locale code with the language code you are writing translations for. + +If you can see countries names translated, everything works, and you are ready for the last step. 😊 + +## 5. Raise a pull request First of all, commit the changes with the message `Added Slovak translations` and push it. This will publish a new branch to your forked version of Appwrite. If you visit it at `github.com/YOUR_USERNAME_appwrite`, you will see a new alert saying you are ready to submit a pull request. Follow the steps GitHub provides, and at the end, you will have your pull request submitted. diff --git a/docs/tutorials/images/test-cs.png b/docs/tutorials/images/test-cs.png new file mode 100644 index 0000000000000000000000000000000000000000..d1e79de299257d5eda394bb6016c5d804db7c046 GIT binary patch literal 57990 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 YIW_Uht&2?CE-(Orr>mdKI;Vst0A4U082|tP literal 0 HcmV?d00001 diff --git a/docs/tutorials/images/test-en.png b/docs/tutorials/images/test-en.png new file mode 100644 index 0000000000000000000000000000000000000000..28e5278c0b5c0d7d56e741d8791b01a29a5a8b58 GIT binary patch literal 57673 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 N@O1TaS?83{1OST- Date: Mon, 30 Aug 2021 08:33:41 +0200 Subject: [PATCH 006/110] Update OAuth tutorial --- docs/tutorials/add-oauth2-provider.md | 164 ++++++++++++++++++++++---- docs/tutorials/add-translations.md | 2 +- 2 files changed, 144 insertions(+), 22 deletions(-) diff --git a/docs/tutorials/add-oauth2-provider.md b/docs/tutorials/add-oauth2-provider.md index 6f36a6b716..6225b6ffa0 100644 --- a/docs/tutorials/add-oauth2-provider.md +++ b/docs/tutorials/add-oauth2-provider.md @@ -1,56 +1,178 @@ -# Adding a New OAuth2 Provider +# Adding a New OAuth2 Provider 🛡 This document is part of the Appwrite contributors' guide. Before you continue reading this document make sure you have read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/master/CODE_OF_CONDUCT.md) and the [Contributing Guide](https://github.com/appwrite/appwrite/blob/master/CONTRIBUTING.md). ## Getting Started -### Agenda - OAuth2 providers help users to log in to the apps and websites without the need to provide passwords or any other type of credentials. Appwrite's goal is to have support from as many **major** OAuth2 providers as possible. As of the writing of these lines, we do not accept any minor OAuth2 providers. For us to accept some smaller and potentially unlimited number of OAuth2 providers, some product design and software architecture changes must be applied first. -### List Your new Provider +## 1. Prerequisites + +It's really easy to contribute to an open-sourced projects, but when using GitHub, there are a few steps we need to follow. This section will take you step-by-step through the process of preparing your own local version of Appwrite, where you can make any changes without affecting Appwrite right away. + +> If you are experienced with GitHub or have made a pull request before, you can skip to [Implement new provider](#2-implement-new-provider). + +### 1.1 Fork the Appwrite repository + +Before making any changes, you will need to fork Appwrite's repository to keep branches on the official repo clean. To do that, visit the [Appwrite Github repository](https://github.com/appwrite/appwrite) and click on the fork button. + +![Fork button](images/fork.png) + +This will redirect you from `github.com/appwrite/appwrite` to `github.com/YOUR_USERNAME/appwrite`, meaning all changes you do are only done inside your repository. Once you are there, click the highlighted `Code` button, copy the URL and clone the repository to your computer using `git clone` command: + +"`shell +$ git clone COPIED_URL +``` + +> To fork a repository, you will need a basic understanding of CLI and git-cli binaries installed. If you are a beginner, we recommend you to use `Github Desktop`. It is a really clean and simple visual Git client. + +Finally, you will need to create a `feat-XXX-YYY-oauth` branch based on the `master` branch and switch to it. The `XXX` should represent the issue ID and `YYY` the OAuth provider name. + +## 2. Implement new provider + +### 2.1 List your new provider The first step in adding a new OAuth2 provider is to add it to the list in providers config file array, located at: ``` -./app/config/providers.php +app/config/providers.php ``` -Make sure to fill all data needed and that your provider array key name: +Make sure to fill in all data needed and that your provider array key name: -- is in camelCase format -- has no spaces or special characters. +- is in [camelCase](https://en.wikipedia.org/wiki/Camel_case) format +- has no spaces or special characters -### Add Provider Logo +> Please make sure to keep the list of providers in `providers.php` in the alphabetical order A-Z. -Add a logo image to your new provider in this path: `./public/images/users`. Your logo should be a png 100×100px file with the name of your provider (all lowercase). Please make sure to leave about 30px padding around the logo to be consistent with other logos. +### 2.2 Add Provider Logo -### Add Provider Class +Add a logo image to your new provider in this path: `public/images/users`. Your logo should be a png 100×100px file with the name of your provider (all lowercase). Please make sure to leave about 30px padding around the logo to be consistent with other logos. + +### 2.3 Add Provider Class Once you have finished setting up all the metadata for the new provider, you need to start coding. -Create a new class that extends the basic OAuth2 provider abstract class in this location: - -```bash -./src/Auth/OAuth/ProviderName +Create a new file `XXX.php` where `XXX` is the name of the OAuth provider in `CamelCase` with the first letter in upper case in this location +"`bash +src/Appwrite/Auth/OAuth ``` -Note that the class name should start with a capital letter as PHP FIG standards suggest. +Inside this file, create a new class that extends the basic OAuth2 provider abstract class. Note that the class name should start with a capital letter, as PHP FIG standards suggest. -Once a new class is created, you can start to implement your new provider's login flow. The best way to do this correctly is to have a look at another provider's implementation and try to follow the same standards. +Once a new class is created, you can start to implement your new provider's login flow. We have prepared a starting point for Oauth provider class below, but you should also consider looking at other provider's implementation and try to follow the same standards. + +```injectablephp +endpoint . '[LOGIN_URL_STUFF]'; + return $url; + } + + /** + * @param string $code + * + * @return string + */ + public function getAccessToken(string $code): string + { + // TODO: Fire request to oauth API to generate access_token + $accessToken = "[FETCHED ACCESS TOKEN]"; + + return $accessToken; + } + + /** + * @param string $accessToken + * + * @return string + */ + public function getUserID(string $accessToken): string + { + // TODO: Fetch user from oauth API and select the user ID + $userId = "[FETCHED USER ID]"; + + return $userId; + } + + /** + * @param string $accessToken + * + * @return string + */ + public function getUserEmail(string $accessToken): string + { + // TODO: Fetch user from oauth API and select the user's email + $userEmail = "[FETCHED USER EMAIL]"; + + return $userEmail; + } + + /** + * @param string $accessToken + * + * @return string + */ + public function getUserName(string $accessToken): string + { + // TODO: Fetch user from oauth API and select the username + $username = "[FETCHED USERNAME]"; + + return $username; + } +} +``` + +> If you copy this template, make sure to replace all placeholders wrapped like `[THIS]` and to implement everything marked as `TODO:`. Please mention in your documentation what resources or API docs you used to implement the provider's OAuth2 protocol. -### Test Your Provider +## 3. Test Your Provider -After you finished adding your new provider to Appwrite you should be able to see it in your Appwrite console. Navigate to 'Project > Users > Providers' and check your new provider's settings form. +After you finished adding your new provider to Appwrite, you should be able to see it in your Appwrite console. Navigate to 'Project > Users > Providers' and check your new provider's settings form. -Add credentials and check both a successful and a failed login (where the user denies integration on provider page). +> To start Appwrite console from the source code, you can simply run `docker-compose up -d'. + +Add credentials and check both a successful and a failed login (where the user denies integration on the provider page). You can test your OAuth2 provider by trying to login using the [OAuth2 method](https://appwrite.io/docs/client/account#accountCreateOAuth2Session) when integrating the Appwrite Web SDK in a demo app. Pass your new adapter name as the provider parameter. If login is successful, you will be redirected to your success URL parameter. Otherwise, you will be redirected to your failure URL. -If everything goes well, submit a pull request and be ready to respond to any feedback which can arise during our code review. +If everything goes well, raise a pull request and be ready to respond to any feedback which can arise during our code review. + +## 4. Raise a pull request + +First of all, commit the changes with the message `Added Slovak translations` and push it. This will publish a new branch to your forked version of Appwrite. If you visit it at `github.com/YOUR_USERNAME_appwrite`, you will see a new alert saying you are ready to submit a pull request. Follow the steps GitHub provides, and at the end, you will have your pull request submitted. + +## 🤕 Stuck ? +If you need any help with the contribution, feel free to head over to [our discord channel](https://appwrite.io/discord) and we'll be happy to help you out. diff --git a/docs/tutorials/add-translations.md b/docs/tutorials/add-translations.md index 57058dddf9..4d160384f5 100644 --- a/docs/tutorials/add-translations.md +++ b/docs/tutorials/add-translations.md @@ -176,7 +176,7 @@ If you can see countries names translated, everything works, and you are ready f ## 5. Raise a pull request -First of all, commit the changes with the message `Added Slovak translations` and push it. This will publish a new branch to your forked version of Appwrite. If you visit it at `github.com/YOUR_USERNAME_appwrite`, you will see a new alert saying you are ready to submit a pull request. Follow the steps GitHub provides, and at the end, you will have your pull request submitted. +First of all, commit the changes with the message `Added YYY translations` where `YYY` is the translated language and push it. This will publish a new branch to your forked version of Appwrite. If you visit it at `github.com/YOUR_USERNAME_appwrite`, you will see a new alert saying you are ready to submit a pull request. Follow the steps GitHub provides, and at the end, you will have your pull request submitted. ## 🤕 Stuck ? If you need any help with the contribution, feel free to head over to [our discord channel](https://appwrite.io/discord) and we'll be happy to help you out. From 17effaff5127a90ae13d001fd7c48afd9398703a Mon Sep 17 00:00:00 2001 From: Matej Baco Date: Mon, 30 Aug 2021 08:42:33 +0200 Subject: [PATCH 007/110] Fixed title case --- docs/tutorials/add-oauth2-provider.md | 6 +++--- docs/tutorials/add-translations.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/tutorials/add-oauth2-provider.md b/docs/tutorials/add-oauth2-provider.md index 6225b6ffa0..7774ddb812 100644 --- a/docs/tutorials/add-oauth2-provider.md +++ b/docs/tutorials/add-oauth2-provider.md @@ -1,8 +1,8 @@ -# Adding a New OAuth2 Provider 🛡 +# Adding a new OAuth2 provider 🛡 This document is part of the Appwrite contributors' guide. Before you continue reading this document make sure you have read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/master/CODE_OF_CONDUCT.md) and the [Contributing Guide](https://github.com/appwrite/appwrite/blob/master/CONTRIBUTING.md). -## Getting Started +## Getting started OAuth2 providers help users to log in to the apps and websites without the need to provide passwords or any other type of credentials. Appwrite's goal is to have support from as many **major** OAuth2 providers as possible. @@ -156,7 +156,7 @@ class [PROVIDER NAME] extends OAuth2 Please mention in your documentation what resources or API docs you used to implement the provider's OAuth2 protocol. -## 3. Test Your Provider +## 3. Test your provider After you finished adding your new provider to Appwrite, you should be able to see it in your Appwrite console. Navigate to 'Project > Users > Providers' and check your new provider's settings form. diff --git a/docs/tutorials/add-translations.md b/docs/tutorials/add-translations.md index 4d160384f5..b0d80bba1c 100644 --- a/docs/tutorials/add-translations.md +++ b/docs/tutorials/add-translations.md @@ -2,7 +2,7 @@ This document is part of the Appwrite contributors' guide. Before you continue reading this document make sure you have read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/master/CODE_OF_CONDUCT.md) and the [Contributing Guide](https://github.com/appwrite/appwrite/blob/master/CONTRIBUTING.md). -## Getting Started +## Getting started Appwrite's Locale API, Email Templates ( and soon our Dashboard ) has support for returning responses in your own locale based on the value of the `X-Appwrite-Locale` header. Behind the scenes, we use the value of this header to find the correct translation file for the locale. This guide will walk you through the process of adding a new Locale to Appwrite. From b822cb810e606c9410eff763d8fed5a3c3d97816 Mon Sep 17 00:00:00 2001 From: Matej Baco Date: Mon, 30 Aug 2021 09:34:22 +0200 Subject: [PATCH 008/110] Fixed markdown typo --- docs/tutorials/add-oauth2-provider.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/add-oauth2-provider.md b/docs/tutorials/add-oauth2-provider.md index 7774ddb812..30bed9214c 100644 --- a/docs/tutorials/add-oauth2-provider.md +++ b/docs/tutorials/add-oauth2-provider.md @@ -22,7 +22,7 @@ Before making any changes, you will need to fork Appwrite's repository to keep b This will redirect you from `github.com/appwrite/appwrite` to `github.com/YOUR_USERNAME/appwrite`, meaning all changes you do are only done inside your repository. Once you are there, click the highlighted `Code` button, copy the URL and clone the repository to your computer using `git clone` command: -"`shell +```shell $ git clone COPIED_URL ``` From c4b81297910a745de496e76850a537fe3b2aa6d7 Mon Sep 17 00:00:00 2001 From: Matej Baco Date: Mon, 30 Aug 2021 09:34:54 +0200 Subject: [PATCH 009/110] Plural removed --- docs/tutorials/add-oauth2-provider.md | 2 +- docs/tutorials/add-translations.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tutorials/add-oauth2-provider.md b/docs/tutorials/add-oauth2-provider.md index 30bed9214c..bbfd551e03 100644 --- a/docs/tutorials/add-oauth2-provider.md +++ b/docs/tutorials/add-oauth2-provider.md @@ -10,7 +10,7 @@ As of the writing of these lines, we do not accept any minor OAuth2 providers. F ## 1. Prerequisites -It's really easy to contribute to an open-sourced projects, but when using GitHub, there are a few steps we need to follow. This section will take you step-by-step through the process of preparing your own local version of Appwrite, where you can make any changes without affecting Appwrite right away. +It's really easy to contribute to an open-sourced project, but when using GitHub, there are a few steps we need to follow. This section will take you step-by-step through the process of preparing your own local version of Appwrite, where you can make any changes without affecting Appwrite right away. > If you are experienced with GitHub or have made a pull request before, you can skip to [Implement new provider](#2-implement-new-provider). diff --git a/docs/tutorials/add-translations.md b/docs/tutorials/add-translations.md index b0d80bba1c..b740f1d9dd 100644 --- a/docs/tutorials/add-translations.md +++ b/docs/tutorials/add-translations.md @@ -14,7 +14,7 @@ You can help in three distinct ways: ## 1. Prerequisites -It's really easy to contribute to an open-sourced projects, but when using GitHub, there are a few steps we need to follow. This section will take you step-by-step through the process of preparing your own local version of Appwrite, where you can make any changes without affecting Appwrite right away. +It's really easy to contribute to an open-sourced project, but when using GitHub, there are a few steps we need to follow. This section will take you step-by-step through the process of preparing your own local version of Appwrite, where you can make any changes without affecting Appwrite right away. > If you are experienced with GitHub or have made a pull request before, you can skip to [Generate the translations](#2-generate-the-translations). From 5d7d1fc0061d978a96b729e1f94fb0f1147dec20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Mon, 30 Aug 2021 10:12:34 +0200 Subject: [PATCH 010/110] Apply suggestions from code review Co-authored-by: Christy Jacob --- docs/tutorials/add-oauth2-provider.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/tutorials/add-oauth2-provider.md b/docs/tutorials/add-oauth2-provider.md index bbfd551e03..3b6695fbf5 100644 --- a/docs/tutorials/add-oauth2-provider.md +++ b/docs/tutorials/add-oauth2-provider.md @@ -10,7 +10,7 @@ As of the writing of these lines, we do not accept any minor OAuth2 providers. F ## 1. Prerequisites -It's really easy to contribute to an open-sourced project, but when using GitHub, there are a few steps we need to follow. This section will take you step-by-step through the process of preparing your own local version of Appwrite, where you can make any changes without affecting Appwrite right away. +It's really easy to contribute to an open source project, but when using GitHub, there are a few steps we need to follow. This section will take you step-by-step through the process of preparing your own local version of Appwrite, where you can make any changes without affecting Appwrite right away. > If you are experienced with GitHub or have made a pull request before, you can skip to [Implement new provider](#2-implement-new-provider). @@ -34,7 +34,7 @@ Finally, you will need to create a `feat-XXX-YYY-oauth` branch based on the `mas ### 2.1 List your new provider -The first step in adding a new OAuth2 provider is to add it to the list in providers config file array, located at: +The first step in adding a new OAuth2 provider is to add it to the list of providers located at: ``` app/config/providers.php @@ -55,9 +55,9 @@ Add a logo image to your new provider in this path: `public/images/users`. Your Once you have finished setting up all the metadata for the new provider, you need to start coding. -Create a new file `XXX.php` where `XXX` is the name of the OAuth provider in `CamelCase` with the first letter in upper case in this location +Create a new file `XXX.php` where `XXX` is the name of the OAuth provider in [`PascalCase`](https://stackoverflow.com/a/41769355/7659504) in this location "`bash -src/Appwrite/Auth/OAuth +src/Appwrite/Auth/OAuth2/XXX.php ``` Inside this file, create a new class that extends the basic OAuth2 provider abstract class. Note that the class name should start with a capital letter, as PHP FIG standards suggest. @@ -172,7 +172,7 @@ If everything goes well, raise a pull request and be ready to respond to any fee ## 4. Raise a pull request -First of all, commit the changes with the message `Added Slovak translations` and push it. This will publish a new branch to your forked version of Appwrite. If you visit it at `github.com/YOUR_USERNAME_appwrite`, you will see a new alert saying you are ready to submit a pull request. Follow the steps GitHub provides, and at the end, you will have your pull request submitted. +First of all, commit the changes with the message `Added XXX OAuth2 Provider` and push it. This will publish a new branch to your forked version of Appwrite. If you visit it at `github.com/YOUR_USERNAME/appwrite`, you will see a new alert saying you are ready to submit a pull request. Follow the steps GitHub provides, and at the end, you will have your pull request submitted. ## 🤕 Stuck ? If you need any help with the contribution, feel free to head over to [our discord channel](https://appwrite.io/discord) and we'll be happy to help you out. From 70a906c3b64888cb3687c331689077670567595b Mon Sep 17 00:00:00 2001 From: Matej Baco Date: Mon, 30 Aug 2021 10:14:53 +0200 Subject: [PATCH 011/110] Markdown syntax fix, Extend suggestions from code review --- docs/tutorials/add-oauth2-provider.md | 6 +++--- docs/tutorials/add-translations.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/tutorials/add-oauth2-provider.md b/docs/tutorials/add-oauth2-provider.md index 3b6695fbf5..bbd3b3011e 100644 --- a/docs/tutorials/add-oauth2-provider.md +++ b/docs/tutorials/add-oauth2-provider.md @@ -42,7 +42,7 @@ app/config/providers.php Make sure to fill in all data needed and that your provider array key name: -- is in [camelCase](https://en.wikipedia.org/wiki/Camel_case) format +- is in [`camelCase`](https://en.wikipedia.org/wiki/Camel_case) format - has no spaces or special characters > Please make sure to keep the list of providers in `providers.php` in the alphabetical order A-Z. @@ -56,7 +56,7 @@ Add a logo image to your new provider in this path: `public/images/users`. Your Once you have finished setting up all the metadata for the new provider, you need to start coding. Create a new file `XXX.php` where `XXX` is the name of the OAuth provider in [`PascalCase`](https://stackoverflow.com/a/41769355/7659504) in this location -"`bash +```bash src/Appwrite/Auth/OAuth2/XXX.php ``` @@ -64,7 +64,7 @@ Inside this file, create a new class that extends the basic OAuth2 provider abst Once a new class is created, you can start to implement your new provider's login flow. We have prepared a starting point for Oauth provider class below, but you should also consider looking at other provider's implementation and try to follow the same standards. -```injectablephp +```php Date: Fri, 3 Sep 2021 08:54:55 +0200 Subject: [PATCH 012/110] Updated bug issue template to GitHub forms --- .github/ISSUE_TEMPLATE/bug.md | 44 ------------------ .github/ISSUE_TEMPLATE/bug.yaml | 80 +++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 44 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug.md create mode 100644 .github/ISSUE_TEMPLATE/bug.yaml diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md deleted file mode 100644 index 63e0e64f94..0000000000 --- a/.github/ISSUE_TEMPLATE/bug.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -name: 🐛 Bug Report -about: Submit a bug report to help us improve -labels: "bug" ---- - -## 🐛 Bug Report - -(A clear and concise description of what the bug is) - -## Have you spent some time to check if this issue has been raised before? - -(Have you googled for a similar issue or checked our older issues for a similar bug) - -## To Reproduce - -(Write your steps here:) - -## Expected behavior - - - -(Write what you thought would happen.) - -## Actual Behavior - - - -(Write what happened. Add screenshots, if applicable.) - -## Your Environment - - - -(Write Environment, Operating system and version etc.) diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml new file mode 100644 index 0000000000..70a8704e82 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yaml @@ -0,0 +1,80 @@ +name: "🐛 Bug Report" +description: "Submit a bug report to help us improve" +title: "🐛 Bug Report: " +labels: [bug] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out our bug report form 🙏 + - type: textarea + id: steps-to-reproduce + validations: + required: true + attributes: + label: "👟 Reproduction steps" + description: "How do you trigger this bug? Please walk us through it step by step." + placeholder: "When I ..." + - type: textarea + id: expected-behavior + validations: + required: true + attributes: + label: "👍 Expected behavior" + description: "What did you think would happen?" + placeholder: "Appwrite should ..." + - type: textarea + id: actual-behavior + validations: + required: true + attributes: + label: "👎 Actual Behavior" + description: "What did actually happen? Add screenshots, if applicable." + placeholder: "Appwrite ..." + - type: dropdown + id: appwrite-version + attributes: + label: "🎲 Appwrite version" + description: "What version of Appwrite are you running?" + options: + - Version 0.9.4 + - Version 0.9.3 + - Version 0.9.2 + - Version 0.9.1 + - Version 0.9.0 + - Version 0.8.0 + - Version 0.7.2 + - Version 0.7.1 + - Version 0.7.0 + - Version 0.6.2 + - Different version + validations: + required: true + - type: dropdown + id: operating-system + attributes: + label: "💻 Operating system" + description: "What OS is your server / device running on?" + options: + - Linux + - MacOS + - Windows + - Something else + validations: + required: true + - type: textarea + id: enviromnemt + validations: + required: false + attributes: + label: "🧱 Your Environment" + description: "Is your environment special in any way?" + placeholder: "I use Cloudflare for ..." + - type: checkboxes + id: no-duplicate-issues + attributes: + label: "👀 Have you spent some time to check if this issue has been raised before?" + description: "Have you Googled for a similar issue or checked our older issues for a similar bug?" + options: + - label: "I checked and didn't find similar issue" + required: true \ No newline at end of file From c65b637467e7ddb6d67c8b4037c6adeeb27681e9 Mon Sep 17 00:00:00 2001 From: Matej Baco Date: Tue, 28 Sep 2021 09:47:01 +0200 Subject: [PATCH 013/110] Github Forms for Hacktoberfest preps --- .github/ISSUE_TEMPLATE/bug.yaml | 21 ++++++--------- .github/ISSUE_TEMPLATE/documentation.md | 17 ------------ .github/ISSUE_TEMPLATE/documentation.yaml | 32 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature.md | 21 --------------- .github/ISSUE_TEMPLATE/feature.yaml | 33 +++++++++++++++++++++++ 5 files changed, 73 insertions(+), 51 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/documentation.md create mode 100644 .github/ISSUE_TEMPLATE/documentation.yaml delete mode 100644 .github/ISSUE_TEMPLATE/feature.md create mode 100644 .github/ISSUE_TEMPLATE/feature.yaml diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml index 70a8704e82..864d57f400 100644 --- a/.github/ISSUE_TEMPLATE/bug.yaml +++ b/.github/ISSUE_TEMPLATE/bug.yaml @@ -22,7 +22,7 @@ body: attributes: label: "👍 Expected behavior" description: "What did you think would happen?" - placeholder: "Appwrite should ..." + placeholder: "It should ..." - type: textarea id: actual-behavior validations: @@ -30,24 +30,19 @@ body: attributes: label: "👎 Actual Behavior" description: "What did actually happen? Add screenshots, if applicable." - placeholder: "Appwrite ..." + placeholder: "It actually ..." - type: dropdown id: appwrite-version attributes: label: "🎲 Appwrite version" description: "What version of Appwrite are you running?" options: - - Version 0.9.4 - - Version 0.9.3 - - Version 0.9.2 - - Version 0.9.1 - - Version 0.9.0 - - Version 0.8.0 - - Version 0.7.2 - - Version 0.7.1 - - Version 0.7.0 - - Version 0.6.2 - - Different version + - Version 0.10.x + - Version 0.9.x + - Version 0.8.x + - Version 0.7.x + - Version 0.6.x + - Different version (specify in environment) validations: required: true - type: dropdown diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md deleted file mode 100644 index 9aa7e59e19..0000000000 --- a/.github/ISSUE_TEMPLATE/documentation.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -name: 📚 Documentation -about: Report an issue related to documentation -labels: "documentation" ---- - -## 📚 Documentation - -(A clear and concise description of what the issue is.) - -## Have you spent some time to check if this issue has been raised before? - -(Have you googled for a similar issue or checked our older issues for a similar bug) - -### Have you read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/master/CODE_OF_CONDUCT.md)? - -(Write your answer here.) diff --git a/.github/ISSUE_TEMPLATE/documentation.yaml b/.github/ISSUE_TEMPLATE/documentation.yaml new file mode 100644 index 0000000000..7b84b46837 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation.yaml @@ -0,0 +1,32 @@ +name: "📚 Documentation" +description: "Report an issue related to documentation" +title: "📚 Documentation: " +labels: [documentation] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out our bug report form 🙏 + - type: textarea + id: issue-description + validations: + required: true + attributes: + label: "💭 Description" + description: "A clear and concise description of what the issue is." + placeholder: "Documentation should not ..." + - type: checkboxes + id: no-duplicate-issues + attributes: + label: "👀 Have you spent some time to check if this issue has been raised before?" + description: "Have you Googled for a similar issue or checked our older issues for a similar bug?" + options: + - label: "I checked and didn't find similar issue" + required: true + - type: checkboxes + id: read-code-of-conduct + attributes: + label: "🏢 Have you read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/master/CODE_OF_CONDUCT.md)?" + options: + - label: "I read the Code of Conduct" + required: true \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md deleted file mode 100644 index 35ad1b9d8f..0000000000 --- a/.github/ISSUE_TEMPLATE/feature.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -name: 🚀 Feature -about: Submit a proposal for a new feature -labels: "feature" ---- - -## 🚀 Feature - -(A clear and concise description of what the feature is.) - -## Have you spent some time to check if this issue has been raised before? - -(Have you googled for a similar issue or checked our older issues for a similar bug) - -### Have you read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/master/CODE_OF_CONDUCT.md)? - -(Write your answer here.) - -## Pitch - -(Please explain why this feature should be implemented and how it would be used. Add examples, if applicable.) diff --git a/.github/ISSUE_TEMPLATE/feature.yaml b/.github/ISSUE_TEMPLATE/feature.yaml new file mode 100644 index 0000000000..90b63d2c38 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature.yaml @@ -0,0 +1,33 @@ +name: 🚀 Feature" +description: "Submit a proposal for a new feature" +title: "🚀 Feature: " +labels: [feature] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out our bug report form 🙏 + - type: textarea + id: feature-description + validations: + required: true + attributes: + label: "🔖 Feature description" + description: "A clear and concise description of what the feature is." + placeholder: "You should add ..." + - type: textarea + id: pitch + validations: + required: true + attributes: + label: "🎤 Pitch" + description: "Please explain why this feature should be implemented and how it would be used. Add examples, if applicable." + placeholder: "In my use-case, ..." + - type: checkboxes + id: no-duplicate-issues + attributes: + label: "👀 Have you spent some time to check if this issue has been raised before?" + description: "Have you Googled for a similar issue or checked our older issues for a similar bug?" + options: + - label: "I checked and didn't find similar issue" + required: true \ No newline at end of file From 6f79850a858ca8e533b367c6a6ec0d56f1e7eae5 Mon Sep 17 00:00:00 2001 From: Olyno Date: Wed, 29 Sep 2021 13:20:29 +0200 Subject: [PATCH 014/110] feat(translations): add french --- app/config/locale/terms.json | 2 +- app/config/locale/translations/fr.json | 48 +++++++++++++------------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/app/config/locale/terms.json b/app/config/locale/terms.json index 428be46015..b1ce5fca4c 100644 --- a/app/config/locale/terms.json +++ b/app/config/locale/terms.json @@ -406,7 +406,7 @@ }, { "term": "countries.fr", - "comment": "These country names are used in Appwrite's Locale API. Learn more at https://appwrite.io/docs/client/locale#localeGetCountries", + "comment": "Ces noms de pays sont utilisés dans l'API Locale d'Appwrite. Pour en savoir plus, consultez le site https://appwrite.io/docs/client/locale#localeGetCountries.", "reference": "" }, { diff --git a/app/config/locale/translations/fr.json b/app/config/locale/translations/fr.json index 292fe694f5..7a0cb6f19c 100644 --- a/app/config/locale/translations/fr.json +++ b/app/config/locale/translations/fr.json @@ -3,30 +3,30 @@ "settings.locale": "fr", "settings.direction": "ltr", "emails.sender": "Équipe %s", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Vérification du compte", + "emails.verification.hello": "Salut {{name}}", + "emails.verification.body": "Suivez ce lien pour vérifier votre adresse mail.", + "emails.verification.footer": "Si vous n'avez pas demandé à vérifier cette adresse mail, vous pouvez ignorer ce message.", + "emails.verification.thanks": "Merci", + "emails.verification.signature": "Équipe {{project}}", + "emails.magicSession.subject": "Connexion", + "emails.magicSession.hello": "Salut", + "emails.magicSession.body": "Suivez ce lien pour vous connecter.", + "emails.magicSession.footer": "Si vous n'avez pas demandé à vous connecter en utilisant cet e-mail, vous pouvez ignorer ce message.", + "emails.magicSession.thanks": "Merci", + "emails.magicSession.signature": "Réinitialisation du mot de passe", + "emails.recovery.subject": "Salut {{name}}", + "emails.recovery.hello": "Bonjour {{name}}", + "emails.recovery.body": "Suivez ce lien pour réinitialiser votre mot de passe de {{projet}}.", + "emails.recovery.footer": "Si vous n'avez pas demandé à réinitialiser votre mot de passe, vous pouvez ignorer ce message.", + "emails.recovery.thanks": "Merci", + "emails.recovery.signature": "Équipe {{project}}", + "emails.invitation.subject": "Invitation à l'équipe %s de %s", + "emails.invitation.hello": "Bonjour", + "emails.invitation.body": "Ce mail vous a été envoyé parce que {{owner}} voulait vous inviter à devenir membre de l'équipe {{team}} de {{project}}.", + "emails.invitation.footer": "Si vous n'êtes pas intéressé, vous pouvez ignorer ce message.", + "emails.invitation.thanks": "Merci", + "emails.invitation.signature": "Équipe {{project}}", "locale.country.unknown": "Inconnu", "countries.af": "Afghanistan", "countries.ao": "Angola", From 75d7583bcc172400d0df264abc3b85eae94f125e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Thu, 30 Sep 2021 15:41:44 +0200 Subject: [PATCH 015/110] Update .github/ISSUE_TEMPLATE/bug.yaml Co-authored-by: Eldad A. Fux --- .github/ISSUE_TEMPLATE/bug.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml index 864d57f400..2f33d76b82 100644 --- a/.github/ISSUE_TEMPLATE/bug.yaml +++ b/.github/ISSUE_TEMPLATE/bug.yaml @@ -63,7 +63,7 @@ body: required: false attributes: label: "🧱 Your Environment" - description: "Is your environment special in any way?" + description: "Is your environment customized in any way?" placeholder: "I use Cloudflare for ..." - type: checkboxes id: no-duplicate-issues From ab6ce62835dbd0bd3c0e820ea27dfc9ae13c09d6 Mon Sep 17 00:00:00 2001 From: Arsan Gamal Date: Thu, 30 Sep 2021 22:11:47 +0200 Subject: [PATCH 016/110] [Feature] Added the missing Arabic translations --- app/config/locale/translations/ar.json | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/app/config/locale/translations/ar.json b/app/config/locale/translations/ar.json index 708314081c..97405dbd0d 100644 --- a/app/config/locale/translations/ar.json +++ b/app/config/locale/translations/ar.json @@ -3,30 +3,30 @@ "settings.locale": "ar", "settings.direction": "rtl", "emails.sender": "فريق %s", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "تأكيد الحساب", + "emails.verification.hello": "مرحبا {{name}}", + "emails.verification.body": "برجاء اتباع الرابط التالي لتأكيد بريدك الإلكتروني", + "emails.verification.footer": "لو لم تطلب تأكيد هذا البريد الإلكتروني ، يمكنك تجاهل هذه الرسالة", + "emails.verification.thanks": "شكرا", + "emails.verification.signature": "فريق {{project}}", + "emails.magicSession.subject": "تسجيل الدخول", + "emails.magicSession.hello": "أهلا،", + "emails.magicSession.body": "اتبع هذا الرابط لتسجيل الدخول", + "emails.magicSession.footer": "لو لم تطلب تسجيل الدخول بهذا البريد الاكتروني ، يمكنك تجاهل هذه الرسالة", + "emails.magicSession.thanks": "شكرا", + "emails.magicSession.signature": "فريق {{project}}", + "emails.recovery.subject": "تغيير كلمة السر", + "emails.recovery.hello": "أهلا {{name}}", + "emails.recovery.body": "برجاء اتباع الراط التالي لتغيير كلمة السر الخاصة بـ{{project}}", + "emails.recovery.footer": "لولم تطلب تغيير كلمة السر، يمكنك تجاهل هذه الرسالة", + "emails.recovery.thanks": "شكرا", + "emails.recovery.signature": "فريق {{project}}", + "emails.invitation.subject": "دعوة لفريق %s في %s", + "emails.invitation.hello": "أهلا", + "emails.invitation.body": "هذة الرسالة تم ارسالها لك لأن {{owner}} ارسل لك دعوة لتكون عضوا بفريق {{team}} في {{project}}", + "emails.invitation.footer": "اذا كنت غير مهتم، يمكنك تجاهل هذه الرسالة", + "emails.invitation.thanks": "شكرا", + "emails.invitation.signature": "فريق {{project}}", "locale.country.unknown": "مجهول", "countries.af": "أفغانستان", "countries.ao": "أنغولا", From c7125d909ad1d1eb81351e7e1afad5633121a3c5 Mon Sep 17 00:00:00 2001 From: Matej Baco Date: Fri, 1 Oct 2021 07:53:07 +0200 Subject: [PATCH 017/110] Bug fixes --- .github/ISSUE_TEMPLATE/documentation.yaml | 5 +++-- .github/ISSUE_TEMPLATE/feature.yaml | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/documentation.yaml b/.github/ISSUE_TEMPLATE/documentation.yaml index 7b84b46837..5e8d8fd083 100644 --- a/.github/ISSUE_TEMPLATE/documentation.yaml +++ b/.github/ISSUE_TEMPLATE/documentation.yaml @@ -6,7 +6,7 @@ body: - type: markdown attributes: value: | - Thanks for taking the time to fill out our bug report form 🙏 + Thanks for taking the time to fill out our documentation update request form 🙏 - type: textarea id: issue-description validations: @@ -26,7 +26,8 @@ body: - type: checkboxes id: read-code-of-conduct attributes: - label: "🏢 Have you read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/master/CODE_OF_CONDUCT.md)?" + description: "This is our [Code of Conduct](https://github.com/appwrite/appwrite/blob/master/CODE_OF_CONDUCT.md)." + label: "🏢 Have you read the Code of Conduct?" options: - label: "I read the Code of Conduct" required: true \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature.yaml b/.github/ISSUE_TEMPLATE/feature.yaml index 90b63d2c38..025614bc8a 100644 --- a/.github/ISSUE_TEMPLATE/feature.yaml +++ b/.github/ISSUE_TEMPLATE/feature.yaml @@ -1,4 +1,4 @@ -name: 🚀 Feature" +name: 🚀 Feature description: "Submit a proposal for a new feature" title: "🚀 Feature: " labels: [feature] @@ -6,7 +6,7 @@ body: - type: markdown attributes: value: | - Thanks for taking the time to fill out our bug report form 🙏 + Thanks for taking the time to fill out our feature request form 🙏 - type: textarea id: feature-description validations: From 9586d2d683bc369a3ab98bbee017acff010d6896 Mon Sep 17 00:00:00 2001 From: izqalan Date: Fri, 1 Oct 2021 14:11:41 +0800 Subject: [PATCH 018/110] feat: malay translation --- app/config/locale/translations/ms.json | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/app/config/locale/translations/ms.json b/app/config/locale/translations/ms.json index 863d8857ef..1af17028de 100644 --- a/app/config/locale/translations/ms.json +++ b/app/config/locale/translations/ms.json @@ -3,30 +3,30 @@ "settings.locale": "ms", "settings.direction": "ltr", "emails.sender": "%s Team", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Pengesahan Akaun", + "emails.verification.hello": "Hey {{name}}", + "emails.verification.body": "Tekan pautan ini untuk mengesahkan alamat email anda.", + "emails.verification.footer": "Sekiranya anda tidak membuat permintaan untuk mengesahkan email ini, sila abaikan mesej ini.", + "emails.verification.thanks": "Terima kasih", + "emails.verification.signature": "{{project}} team", + "emails.magicSession.subject": "Log masuk", + "emails.magicSession.hello": "Hey", + "emails.magicSession.body": "Tekan pautan ini untuk log masuk", + "emails.magicSession.footer": "Sekiranya anda tidak membuat permintaan untuk log masuk menggunakan email ini, sila abaikan mesej ini.", + "emails.magicSession.thanks": "Terima kasih", + "emails.magicSession.signature": "{{project}} team", + "emails.recovery.subject": "Menetap semula Kata Laluan", + "emails.recovery.hello": "Hello {{name}}", + "emails.recovery.body": "Tekan pautan ini untuk menetapkan semula kata laluan {{project}}.", + "emails.recovery.footer": "Sekiranya anda tidak membuat permintaan menetap semula kata laluan, sila abaikan mesej ini.", + "emails.recovery.thanks": "Terima kasih", + "emails.recovery.signature": "{{project}} team", + "emails.invitation.subject": "Jemputan ke pasukan %s di %s", + "emails.invitation.hello": "Hello", + "emails.invitation.body": "Anda menerima mel ini kerana {{owner}} ingin menjemput anda untuk menjadi ahli pasukan {{team}} di {{project}}.", + "emails.invitation.footer": "Sekiranya anda tidak berminat, sila abaikan mesej ini.", + "emails.invitation.thanks": "Terima kasih", + "emails.invitation.signature": "{{project}} team", "locale.country.unknown": "Tidak Diketahui", "countries.af": "Afghanistan", "countries.ao": "Angola", From 6d44c39fc9788c6003063f4ce6833d6fc11f9372 Mon Sep 17 00:00:00 2001 From: Honey Date: Fri, 1 Oct 2021 12:33:49 +0530 Subject: [PATCH 019/110] Add gujarati translation --- app/config/locale/translations/gu.json | 50 +++++++++++++------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/config/locale/translations/gu.json b/app/config/locale/translations/gu.json index 404a2e97b7..48f537ddd0 100644 --- a/app/config/locale/translations/gu.json +++ b/app/config/locale/translations/gu.json @@ -3,31 +3,31 @@ "settings.locale": "gu", "settings.direction": "ltr", "emails.sender": "%s ટીમ", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", - "locale.country.unknown": "अज्ञात", + "emails.verification.subject": "ખાતાની ચકાસણી", + "emails.verification.hello": "નમસ્કાર {{name}}", + "emails.verification.body": "તમારું ઇમેઇલ સરનામું ચકાસવા માટે આ લિંકને અનુસરો.", + "emails.verification.footer": "જો તમે આ સરનામાંની ચકાસણી કરવાનું ન કહ્યું હોય, તો તમે આ સંદેશને અવગણી શકો છો.", + "emails.verification.thanks": "આભાર", + "emails.verification.signature": "{{project}} ટીમ", + "emails.magicSession.subject": "પ્રવેશ કરો", + "emails.magicSession.hello": "નમસ્કાર,", + "emails.magicSession.body": "પ્રવેશ કરવા માટે આ લિંકને અનુસરો.", + "emails.magicSession.footer": "જો તમે આ ઇમેઇલનો ઉપયોગ કરીને પ્રવેશ કરવાનું ન કહ્યું હોય, તો તમે આ સંદેશને અવગણી શકો છો.", + "emails.magicSession.thanks": "આભાર", + "emails.magicSession.signature": "{{project}} ટીમ", + "emails.recovery.subject": "પાસવર્ડ ફરીથી સેટ કરો", + "emails.recovery.hello": "નમસ્કાર {{name}}", + "emails.recovery.body": "તમારો {{project}} પાસવર્ડ ફરીથી સેટ કરવા માટે આ લિંકને અનુસરો.", + "emails.recovery.footer": "જો તમે તમારો પાસવર્ડ ફરીથી સેટ કરવાનું ન કહ્યું હોય, તો તમે આ સંદેશને અવગણી શકો છો.", + "emails.recovery.thanks": "આભાર", + "emails.recovery.signature": "{{project}} ટીમ", + "emails.invitation.subject": "%S ટીમને %s પર આમંત્રણ", + "emails.invitation.hello": "નમસ્કાર", + "emails.invitation.body": "આ મેઇલ તમને મોકલવામાં આવ્યો હતો કારણ કે {{owner}} તમને {{project}} માં {{team}} ટીમના સભ્ય બનવા માટે આમંત્રિત કરવા માંગતા હતો.", + "emails.invitation.footer": "જો તમને રસ નથી, તો તમે આ સંદેશને અવગણી શકો છો.", + "emails.invitation.thanks": "આભાર", + "emails.invitation.signature": "{{project}} ટીમ", + "locale.country.unknown": "અજાણ", "countries.af": "અફઘાનિસ્તાન", "countries.ao": "અંગોલા", "countries.al": "અલ્બેનિયા", From 7599d125ff8114f6d27fae2b06e4cafd2320a614 Mon Sep 17 00:00:00 2001 From: Santosh Bhandari Date: Fri, 1 Oct 2021 12:57:52 +0545 Subject: [PATCH 020/110] Added Nepali(ne) translations --- app/config/locale/translations/ne.json | 50 +++++++++++++------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/config/locale/translations/ne.json b/app/config/locale/translations/ne.json index cf41b1e81c..372a2717f2 100644 --- a/app/config/locale/translations/ne.json +++ b/app/config/locale/translations/ne.json @@ -2,31 +2,31 @@ "settings.inspire": "\"बुद्धिमान हुनु को कला के लाई बेवास्ता गर्न जान्ने को कला हो।\"", "settings.locale": "ne", "settings.direction": "ltr", - "emails.sender": "%s टीम", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.sender": "%s समूह", + "emails.verification.subject": "खाता प्रमाणिकरण", + "emails.verification.hello": "नमस्ते {{name}}", + "emails.verification.body": "इमेल ठेगाना प्रमाणित गर्नको लागी यो लिंकमा जानुहोस।", + "emails.verification.footer": "यदि तपाइँले आफ्नो खाता प्रमाणित गर्न सोध्नु भएको छैन भने तपाइँले यो सन्देश लाई बेवास्ता गर्न सक्नुहुन्छ।", + "emails.verification.thanks": "धन्यवाद", + "emails.verification.signature": "{{project}} समूह", + "emails.magicSession.subject": "लगइन", + "emails.magicSession.hello": "नमस्ते,", + "emails.magicSession.body": "लगइन गर्नको लागी यो लिंकमा जानुहोस।", + "emails.magicSession.footer": "यदि तपाइँले यो इमेल प्रयोग गरेर लगइन गर्न सोध्नु भएको छैन भने तपाइँले यो सन्देश लाई बेवास्ता गर्न सक्नुहुन्छ।", + "emails.magicSession.thanks": "धन्यवाद", + "emails.magicSession.signature": "{{project}} समूह", + "emails.recovery.subject": "पासवर्ड रिसेट", + "emails.recovery.hello": "नमस्ते {{name}}", + "emails.recovery.body": "{{project}}को पासवर्ड रिसेट गर्नको लागी यो लिंकमा जानुहोस।", + "emails.recovery.footer": "यदि तपाइँले आफ्नो पासवर्ड रिसेट गर्न सोध्नु भएको छैन भने तपाइँले यो सन्देश लाई बेवास्ता गर्न सक्नुहुन्छ।", + "emails.recovery.thanks": "धन्यवाद", + "emails.recovery.signature": "{{project}} समूह", + "emails.invitation.subject": "%s समूहको लागि %s मा निमन्त्रणा", + "emails.invitation.hello": "नमस्ते", + "emails.invitation.body": "{{owner}}ले तपाइँलाई {{project}}मा {{team}}को सदस्य बन्न आमन्त्रित गर्नु भएको छ। तेसैले तपाइँलाई यो सन्देश पठाइएको हो।", + "emails.invitation.footer": "यदि तपाइँ इच्छुक हुनुहुन्न भने, तपाइँले यो सन्देशलाई बेवास्ता गर्न सक्नुहुन्छ।", + "emails.invitation.thanks": "धन्यवाद", + "emails.invitation.signature": "{{project}} समूह", "locale.country.unknown": "अज्ञात", "countries.af": "अफगानिस्तान", "countries.ao": "अंगोला", From c1bd17e2eddfe634a70e9e5bc1b864edf27beaba Mon Sep 17 00:00:00 2001 From: Sascha Greuel Date: Fri, 1 Oct 2021 09:41:00 +0200 Subject: [PATCH 021/110] Update german language file (de.json) (#1790) * Update de.json * Update de.json --- app/config/locale/translations/de.json | 50 +++++++++++++------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/config/locale/translations/de.json b/app/config/locale/translations/de.json index 4812c911d0..e680db4a1f 100644 --- a/app/config/locale/translations/de.json +++ b/app/config/locale/translations/de.json @@ -3,30 +3,30 @@ "settings.locale": "de", "settings.direction": "ltr", "emails.sender": "%s Team", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Kontoverifizierung", + "emails.verification.hello": "Hey {{name}}", + "emails.verification.body": "Folge diesem Link, um deine E-Mail-Adresse zu bestätigen.", + "emails.verification.footer": "Solltest du keine Verifizierung dieser E-Mail-Adresse angefordert haben, kannst du diese Nachricht ignorieren.", + "emails.verification.thanks": "Danke", + "emails.verification.signature": "{{project}}-Team", + "emails.magicSession.subject": "Login", + "emails.magicSession.hello": "Hey,", + "emails.magicSession.body": "Folge diesem Link, um dich einzuloggen.", + "emails.magicSession.footer": "Solltest du keinen Login für diese E-Mail-Adresse angefordert haben, kannst du diese Nachricht ignorieren.", + "emails.magicSession.thanks": "Danke", + "emails.magicSession.signature": "{{project}}-Team", + "emails.recovery.subject": "Kennwort zurücksetzen", + "emails.recovery.hello": "Hallo {{name}}", + "emails.recovery.body": "Folge diesem Link, um dein {{project}}-Kennwort zurückzusetzen.", + "emails.recovery.footer": "Solltest du keine Kennwort-Zurücksetzung angefordert haben, kannst du diese Nachricht ignorieren.", + "emails.recovery.thanks": "Danke", + "emails.recovery.signature": "{{project}}-Team", + "emails.invitation.subject": "Einladung zum %s-Team auf %s", + "emails.invitation.hello": "Hello", + "emails.invitation.body": "Du erhälst diese E-Mail, weil {{owner}} dich in das Team {{team}} auf {{project}} eingeladen hat.", + "emails.invitation.footer": "Wenn du nicht interessiert bist, kannst du diese Nachricht ignorieren.", + "emails.invitation.thanks": "Danke", + "emails.invitation.signature": "{{project}}-Team", "locale.country.unknown": "Unbekannt", "countries.af": "Afghanistan", "countries.ao": "Angola", @@ -229,4 +229,4 @@ "continents.na": "Nordamerika", "continents.oc": "Ozeanien", "continents.sa": "Südamerika" -} \ No newline at end of file +} From c685b1ba5b187d7a79353df7bc692e33073e23cc Mon Sep 17 00:00:00 2001 From: willtryagain Date: Fri, 1 Oct 2021 13:25:59 +0530 Subject: [PATCH 022/110] hindi-trans --- app/config/locale/translations/hi.json | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/app/config/locale/translations/hi.json b/app/config/locale/translations/hi.json index 259d2316dc..cb58ef3154 100644 --- a/app/config/locale/translations/hi.json +++ b/app/config/locale/translations/hi.json @@ -3,30 +3,30 @@ "settings.locale": "hi", "settings.direction": "ltr", "emails.sender": "%s टीम", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "खाता सत्यापन", + "emails.verification.hello": "अरे {{name}}", + "emails.verification.body": "अपना ईमेल पता सत्यापित करने के लिए इस लिंक का अनुसरण करें।", + "emails.verification.footer": "अगर आपने इस पते को सत्यापित करने के लिए नहीं कहा है, तो आप इस संदेश को अनदेखा कर सकते हैं।", + "emails.verification.thanks": "धन्यवाद", + "emails.verification.signature": "{{project}} टीम", + "emails.magicSession.subject": "लॉग इन", + "emails.magicSession.hello": "अरे,", + "emails.magicSession.body": "लॉग इन करने के लिए इस लिंक का पालन करें।", + "emails.magicSession.footer": "यदि आपने इस ईमेल का उपयोग करके लॉगिन करने के लिए नहीं कहा है, तो आप इस संदेश को अनदेखा कर सकते हैं।", + "emails.magicSession.thanks": "धन्यवाद", + "emails.magicSession.signature": "{{project}} टीम", + "emails.recovery.subject": "पासवर्ड रीसेट", + "emails.recovery.hello": "नमस्ते {{name}}", + "emails.recovery.body": "अपना {{project}} पासवर्ड रीसेट करने के लिए इस लिंक का अनुसरण करें।", + "emails.recovery.footer": "यदि आपने अपना पासवर्ड रीसेट करने के लिए नहीं कहा है, तो आप इस संदेश को अनदेखा कर सकते हैं।", + "emails.recovery.thanks": "धन्यवाद", + "emails.recovery.signature": "{{project}} टीम", + "emails.invitation.subject": "%s टीम को %s पर आमंत्रण", + "emails.invitation.hello": "नमस्ते", + "emails.invitation.body": "यह मेल आपको इसलिए भेजा गया था क्योंकि {{owner}} आपको {{project}} पर {{team}} टीम का सदस्य बनने के लिए आमंत्रित करना चाहता था।", + "emails.invitation.footer": "यदि आप रुचि नहीं रखते हैं, तो आप इस संदेश को अनदेखा कर सकते हैं।", + "emails.invitation.thanks": "धन्यवाद", + "emails.invitation.signature": "{{project}} टीम", "locale.country.unknown": "अज्ञात", "countries.af": "अफ़ग़ानिस्तान", "countries.ao": "अंगोला", From a235111354d80c42b5e5d83ef4f8c1180813b465 Mon Sep 17 00:00:00 2001 From: Aleksander Chromik Date: Fri, 1 Oct 2021 09:59:00 +0200 Subject: [PATCH 023/110] Added PL translations --- app/config/locale/translations/pl.json | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/app/config/locale/translations/pl.json b/app/config/locale/translations/pl.json index b20b509843..8df68be33b 100644 --- a/app/config/locale/translations/pl.json +++ b/app/config/locale/translations/pl.json @@ -3,30 +3,30 @@ "settings.locale": "pl", "settings.direction": "ltr", "emails.sender": "Zespół %s", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Weryfikacja konta", + "emails.verification.hello": "Cześć {{name}}", + "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, możesz zignorować tę wiadomość.", + "emails.verification.thanks": "Dziękujemy", + "emails.verification.signature": "Zespół {{project}}", + "emails.magicSession.subject": "Logowanie", + "emails.magicSession.hello": "Cześć,", + "emails.magicSession.body": "Przejdź do tego linku, aby zalogować się.", + "emails.magicSession.footer": "Jeśli to nie Ty prosiłeś o logowanie przy użyciu tego adresu e-mail, możesz zignorować tę wiadomość.", + "emails.magicSession.thanks": "Dziękujemy", + "emails.magicSession.signature": "Zespół {{project}}", + "emails.recovery.subject": "Resetowanie hasła", + "emails.recovery.hello": "Cześć {{name}}", + "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, możesz zignorować tę wiadomość.", + "emails.recovery.thanks": "Dziękujemy", + "emails.recovery.signature": "Zespół {{project}}", + "emails.invitation.subject": "Zaproszenie do zespołu %s w %s", + "emails.invitation.hello": "Cześć", + "emails.invitation.body": "Otrzymujesz tę wiadomość, ponieważ {{owner}} zaprasza Cię do grona członków zespołu {{team}}.", + "emails.invitation.footer": "Jeśli nie jesteś zainteresowany, możesz zignorować tę wiadomość.", + "emails.invitation.thanks": "Dziękujemy", + "emails.invitation.signature": "Zespół {{project}}", "locale.country.unknown": "Nieznany", "countries.af": "Afganistan", "countries.ao": "Angola", From a2f95ad96c843b5b009c6cb8b68645d8fc8a05f0 Mon Sep 17 00:00:00 2001 From: Anoop M S Date: Fri, 1 Oct 2021 15:10:23 +0530 Subject: [PATCH 024/110] update Malayalam translations --- app/config/locale/translations/ml.json | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/app/config/locale/translations/ml.json b/app/config/locale/translations/ml.json index 458b48b219..d0a8202fb2 100644 --- a/app/config/locale/translations/ml.json +++ b/app/config/locale/translations/ml.json @@ -3,30 +3,30 @@ "settings.locale": "ml", "settings.direction": "ltr", "emails.sender": "%s ടീം", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "അക്കൗണ്ട് സ്ഥിരീകരണം", + "emails.verification.hello": "നമസ്കാരം {{name}}", + "emails.verification.body": "നിങ്ങളുടെ ഇമെയിൽ വിലാസം സ്ഥിരീകരിക്കുന്നതിനായി ഈ ലിങ്ക് പിന്തുടരുക.", + "emails.verification.footer": "ഈ വിലാസം സ്ഥിരീകരിക്കാന്‍ നിങ്ങൾ ആവശ്യപ്പെട്ടില്ലെങ്കിൽ, നിങ്ങൾക്ക് ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.", + "emails.verification.thanks": "നന്ദി", + "emails.verification.signature": "{{project}} ടീം", + "emails.magicSession.subject": "ലോഗിൻ", + "emails.magicSession.hello": "നമസ്കാരം", + "emails.magicSession.body": "ലോഗിൻ ചെയ്യുന്നതിനായി ഈ ലിങ്ക് പിന്തുടരുക", + "emails.magicSession.footer": "ഈ ഇമെയിൽ ഉപയോഗിച്ച് ലോഗിൻ ചെയ്യാൻ നിങ്ങൾ ആവശ്യപ്പെട്ടില്ലെങ്കിൽ, ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.", + "emails.magicSession.thanks": "നന്ദി", + "emails.magicSession.signature": "{{project}} ടീം", + "emails.recovery.subject": "രഹസ്യവാക്ക് പുനക്രമീകരണം", + "emails.recovery.hello": "നമസ്കാരം {{name}}", + "emails.recovery.body": "നിങ്ങളുടെ {{Project}} രഹസ്യവാക്ക് പുനക്രമീകരിക്കുന്നതിന് ഈ ലിങ്ക് പിന്തുടരുക.", + "emails.recovery.footer": "നിങ്ങളുടെ പാസ്‌വേഡ് പുനക്രമീകരിക്കാന്‍ നിങ്ങൾ ആവശ്യപ്പെട്ടില്ലെങ്കിൽ, ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.", + "emails.recovery.thanks": "നന്ദി", + "emails.recovery.signature": "{{project}} ടീം", + "emails.invitation.subject": "%s -ലെ %s ടീമിലേക്കുള്ള ക്ഷണം", + "emails.invitation.hello": "നമസ്കാരം", + "emails.invitation.body": "നിങ്ങളെ {{project}} -ലെ {{team}} ടീമിലെ അംഗമാകുവാന്‍ ക്ഷണിക്കാൻ {{owner}} ആഗ്രഹിക്കുതിനാലാണ് ഈ മെയിൽ നിങ്ങൾക്ക് അയക്കുന്നത്", + "emails.invitation.footer": "നിങ്ങൾക്ക് താൽപ്പര്യമില്ലെങ്കിൽ, ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.", + "emails.invitation.thanks": "നന്ദി", + "emails.invitation.signature": "{{project}} ടീം", "locale.country.unknown": "Unknown", "countries.af": "അഫ്ഗാനിസ്ഥാൻ", "countries.ao": "അംഗോള", From bbb1fff47d6f71c6e8ca4d981fa95c8a45d5b795 Mon Sep 17 00:00:00 2001 From: Aman Atman <41161981+willtryagain@users.noreply.github.com> Date: Fri, 1 Oct 2021 16:17:17 +0530 Subject: [PATCH 025/110] Update hi.json --- app/config/locale/translations/hi.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/config/locale/translations/hi.json b/app/config/locale/translations/hi.json index cb58ef3154..b1da830854 100644 --- a/app/config/locale/translations/hi.json +++ b/app/config/locale/translations/hi.json @@ -4,13 +4,13 @@ "settings.direction": "ltr", "emails.sender": "%s टीम", "emails.verification.subject": "खाता सत्यापन", - "emails.verification.hello": "अरे {{name}}", - "emails.verification.body": "अपना ईमेल पता सत्यापित करने के लिए इस लिंक का अनुसरण करें।", - "emails.verification.footer": "अगर आपने इस पते को सत्यापित करने के लिए नहीं कहा है, तो आप इस संदेश को अनदेखा कर सकते हैं।", + "emails.verification.hello": "नमस्ते {{name}}", + "emails.verification.body": "अपना ईमेल सत्यापित करने के लिए इस लिंक का अनुसरण करें।", + "emails.verification.footer": "यदि आपने इस पते को सत्यापित करने के लिए नहीं कहा है, तो आप इस संदेश को अनदेखा कर सकते हैं।", "emails.verification.thanks": "धन्यवाद", "emails.verification.signature": "{{project}} टीम", "emails.magicSession.subject": "लॉग इन", - "emails.magicSession.hello": "अरे,", + "emails.magicSession.hello": "नमस्ते,", "emails.magicSession.body": "लॉग इन करने के लिए इस लिंक का पालन करें।", "emails.magicSession.footer": "यदि आपने इस ईमेल का उपयोग करके लॉगिन करने के लिए नहीं कहा है, तो आप इस संदेश को अनदेखा कर सकते हैं।", "emails.magicSession.thanks": "धन्यवाद", @@ -229,4 +229,4 @@ "continents.na": "उत्तरी अमेरिका", "continents.oc": "ओशिनिया", "continents.sa": "दक्षिण अमेरिका" -} \ No newline at end of file +} From 40ee40a398c0c77de2abb1a224e30f0ec4a5d2fe Mon Sep 17 00:00:00 2001 From: "Eldad A. Fux" Date: Fri, 1 Oct 2021 14:13:20 +0300 Subject: [PATCH 026/110] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b3a0714789..ab4670f19a 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@

-[![Hacktoberfest](https://badgen.net/badge/hacktoberfest/friendly/pink)](https://hacktoberfest.appwrite.io) +[![Hacktoberfest](https://img.shields.io/static/v1?label=hacktoberfest&message=friendly&color=90a88b&style=flat-square)](https://hacktoberfest.appwrite.io) [![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord) [![Docker Pulls](https://img.shields.io/docker/pulls/appwrite/appwrite?color=f02e65&style=flat-square)](https://hub.docker.com/r/appwrite/appwrite) [![Build Status](https://img.shields.io/travis/com/appwrite/appwrite?style=flat-square)](https://travis-ci.com/appwrite/appwrite) From 158895a26f2b5d21d1e3bdcf8be666f727c216e2 Mon Sep 17 00:00:00 2001 From: Sang Song Date: Fri, 1 Oct 2021 00:25:52 +0100 Subject: [PATCH 027/110] chore: update the korean translation --- app/config/locale/translations/ko.json | 50 +++++++++++++------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/config/locale/translations/ko.json b/app/config/locale/translations/ko.json index 0e564e55e8..7478b45fbe 100644 --- a/app/config/locale/translations/ko.json +++ b/app/config/locale/translations/ko.json @@ -3,30 +3,30 @@ "settings.locale": "ko", "settings.direction": "ltr", "emails.sender": "%s 팀", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "계정 인증", + "emails.verification.hello": "안녕하세요 {{name}}님", + "emails.verification.body": "이메일 인증을 위해 링크를 클릭하여주세요.", + "emails.verification.footer": "이메일 인증을 부탁하지 않으셨다면 이 메시지를 무시하여주세요.", + "emails.verification.thanks": "감사합니다", + "emails.verification.signature": "{{project}} 팀", + "emails.magicSession.subject": "로그인", + "emails.magicSession.hello": "안녕하세요,", + "emails.magicSession.body": "로그인 하시려면 링크를 클릭하여주세요.", + "emails.magicSession.footer": "이 이메일 계정으로 로그인 신청을 하지 않으셨다면 이 메세지를 무시하여주세요.", + "emails.magicSession.thanks": "감사합니다", + "emails.magicSession.signature": "{{project}} 팀", + "emails.recovery.subject": "비밀번호 재설정", + "emails.recovery.hello": "안녕하세요 {{name}}님", + "emails.recovery.body": "{{project}}의 비밀번호 재설정을 위해 링크를 클릭하여주세요.", + "emails.recovery.footer": "비밀번호 재설정 신청을 하지 않으셨다면 이 메세지를 무시하여주세요.", + "emails.recovery.thanks": "감사합니다", + "emails.recovery.signature": "{{project}} 팀", + "emails.invitation.subject": "초대장 %s 팀 - %s", + "emails.invitation.hello": "안녕하세요", + "emails.invitation.body": "{{owner}}님이 귀하를 {{project}}의 {{team}} 팀으로 초대합니다.", + "emails.invitation.footer": "팀에 합류할 의사가 없으시면 이 메세지를 무시하여주세요.", + "emails.invitation.thanks": "감사합니다", + "emails.invitation.signature": "{{project}} 팀", "locale.country.unknown": "알려지지 않은", "countries.af": "아프가니스탄", "countries.ao": "앙골라", @@ -63,7 +63,7 @@ "countries.cn": "중국", "countries.ci": "코트디부아르", "countries.cm": "카메룬", - "countries.cd": "콩고공화국의 행정", + "countries.cd": "콩고 민주 공화국", "countries.cg": "콩고 공화국", "countries.co": "콜롬비아", "countries.km": "코모로", From 1e8d5f1c5f30c8b6582670c3c54546f641c2e978 Mon Sep 17 00:00:00 2001 From: Jaswanth Remiel <66111735+JaswanthRemiel@users.noreply.github.com> Date: Fri, 1 Oct 2021 17:07:20 +0530 Subject: [PATCH 028/110] Update README.md Regards, I have added A Link Of DEV Community Of Appwrite In the #Followus Section Of README.md Hope It Helps:) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ab4670f19a..837e305f10 100644 --- a/README.md +++ b/README.md @@ -148,7 +148,7 @@ For security issues, kindly email us at [security@appwrite.io](mailto:security@a ## Follow Us -Join our growing community around the world! See our official [Blog](https://medium.com/appwrite-io). Follow us on [Twitter](https://twitter.com/appwrite_io), [Facebook Page](https://www.facebook.com/appwrite.io), [Facebook Group](https://www.facebook.com/groups/appwrite.developers/) or join our live [Discord server](https://discord.gg/GSeTUeA) for more help, ideas, and discussions. +Join our growing community around the world! See our official [Blog](https://medium.com/appwrite-io). Follow us on [Twitter](https://twitter.com/appwrite_io), [Facebook Page](https://www.facebook.com/appwrite.io), [Facebook Group](https://www.facebook.com/groups/appwrite.developers/) , [Dev Community](https://dev.to/appwrite) or join our live [Discord server](https://discord.gg/GSeTUeA) for more help, ideas, and discussions. ## License From ad8c1c1534f3a0edcf7b4c72885d12b000955318 Mon Sep 17 00:00:00 2001 From: Herdi Tr Date: Fri, 1 Oct 2021 19:31:44 +0700 Subject: [PATCH 029/110] feat: indonesian translation --- app/config/locale/translations/id.json | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/app/config/locale/translations/id.json b/app/config/locale/translations/id.json index b84edadbc8..06429e9583 100644 --- a/app/config/locale/translations/id.json +++ b/app/config/locale/translations/id.json @@ -3,30 +3,30 @@ "settings.locale": "id", "settings.direction": "ltr", "emails.sender": "Tim %s", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Verifikasi Akun", + "emails.verification.hello": "Hai {{name}}", + "emails.verification.body": "Ikuti tautan ini untuk memverifikasi alamat email Anda.", + "emails.verification.footer": "Jika Anda tidak meminta untuk memverifikasi alamat email ini, Anda dapat mengabaikan pesan ini.", + "emails.verification.thanks": "Terima kasih", + "emails.verification.signature": "Tim {{project}}", + "emails.magicSession.subject": "Masuk", + "emails.magicSession.hello": "Hai,", + "emails.magicSession.body": "Ikuti tautan ini untuk masuk.", + "emails.magicSession.footer": "Jika Anda tidak meminta untuk masuk menggunakan email ini, Anda dapat mengabaikan pesan ini.", + "emails.magicSession.thanks": "Terima kasih", + "emails.magicSession.signature": "Tim {{project}}", + "emails.recovery.subject": "Atur Ulang Kata Sandi", + "emails.recovery.hello": "Halo {{name}}", + "emails.recovery.body": "Ikuti tautan ini untuk menyetel ulang kata sandi {{project}} Anda.", + "emails.recovery.footer": "Jika Anda tidak meminta untuk menyetel ulang kata sandi, Anda dapat mengabaikan pesan ini.", + "emails.recovery.thanks": "Terima kasih", + "emails.recovery.signature": "Tim {{project}}", + "emails.invitation.subject": "Undangan ke Tim %s di %s", + "emails.invitation.hello": "Halo", + "emails.invitation.body": "Email ini dikirimkan kepada Anda karena {{owner}} ingin mengundang Anda untuk menjadi anggota tim {{team}} di {{project}}.", + "emails.invitation.footer": "Jika Anda tidak tertarik, Anda dapat mengabaikan pesan ini.", + "emails.invitation.thanks": "Terima kasih", + "emails.invitation.signature": "Tim {{project}}", "locale.country.unknown": "Tidak diketahui", "countries.af": "Afganistan", "countries.ao": "Angola", From 37ed62be9dbe3e6c910ec7a585531fe5493c0d1c Mon Sep 17 00:00:00 2001 From: Renato Ramos Nascimento Date: Fri, 1 Oct 2021 09:35:55 -0300 Subject: [PATCH 030/110] added pt-br translations --- app/config/locale/translations/pt-br.json | 48 +++++++++++------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/app/config/locale/translations/pt-br.json b/app/config/locale/translations/pt-br.json index ce3e9f103d..9640df66c7 100644 --- a/app/config/locale/translations/pt-br.json +++ b/app/config/locale/translations/pt-br.json @@ -3,30 +3,30 @@ "settings.locale": "pt-br", "settings.direction": "ltr", "emails.sender": "Time %s", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Verificação da Conta", + "emails.verification.hello": "Olá {{name}}", + "emails.verification.body": "Clique neste link para verificar o seu endereço de e-mail.", + "emails.verification.footer": "Se não você que solicitou essa verificação deste e-mail, você pode ignorar essa mensagem", + "emails.verification.thanks": "Muito obrigado", + "emails.verification.signature": "Time {{project}}", + "emails.magicSession.subject": "Login", + "emails.magicSession.hello": "Olá,", + "emails.magicSession.body": "Clique neste link para entrar", + "emails.magicSession.footer": "Se não você que solicitou essa verificação deste e-mail, você pode ignorar essa mensagem", + "emails.magicSession.thanks": "Muito obrigado", + "emails.magicSession.signature": "Time {{project}}", + "emails.recovery.subject": "Redefinação de senha", + "emails.recovery.hello": "Olá {{name}}", + "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", + "emails.recovery.signature": "Time {{project}}", + "emails.invitation.subject": "Convite para o Time %s em %s", + "emails.invitation.hello": "Olá", + "emails.invitation.body": "Este email foi enviado porque o {{owner}} deseja convidar você a se tornar membro do Time {{team}} em {{project}}.", + "emails.invitation.footer": "Se você não está interessado, você pode ignorar essa mensagem", + "emails.invitation.thanks": "Muito obrigado", + "emails.invitation.signature": "Time {{project}}", "locale.country.unknown": "Desconhecido", "countries.af": "Afeganistão", "countries.ao": "Angola", From e1235299f52123a01cb50f3d185836c6fcec4bf4 Mon Sep 17 00:00:00 2001 From: Dehami Koswatte Date: Fri, 1 Oct 2021 18:41:18 +0530 Subject: [PATCH 031/110] Fix parameter order at create-team-membership method --- app/controllers/api/teams.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index f7f7e2cb7e..645d08f57b 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -262,9 +262,9 @@ App::post('/v1/teams/:teamId/memberships') ->label('abuse-limit', 10) ->param('teamId', '', new UID(), 'Team unique ID.') ->param('email', '', new Email(), 'New team member email.') - ->param('name', '', new Text(128), 'New team member name. Max length: 128 chars.', true) ->param('roles', [], new ArrayList(new Key()), 'Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](/docs/permissions). Max length for each role is 32 chars.') ->param('url', '', function ($clients) { return new Host($clients); }, 'URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.', false, ['clients']) // TODO add our own built-in confirm page + ->param('name', '', new Text(128), 'New team member name. Max length: 128 chars.', true) ->inject('response') ->inject('project') ->inject('user') From 09387cccd4126359fe0fef54d03f44d581e63706 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Bo=C5=A1njak?= Date: Fri, 1 Oct 2021 15:49:31 +0200 Subject: [PATCH 032/110] Added locale translations for Croatian language --- app/config/locale/codes.php | 3 +- app/config/locale/translations/hr.json | 232 +++++++++++++++++++++++++ app/init.php | 1 + 3 files changed, 235 insertions(+), 1 deletion(-) create mode 100644 app/config/locale/translations/hr.json diff --git a/app/config/locale/codes.php b/app/config/locale/codes.php index c8623f533c..cdfb30fc0e 100644 --- a/app/config/locale/codes.php +++ b/app/config/locale/codes.php @@ -19,7 +19,8 @@ return [ 'el', // Greek 'gu', //Gujrati 'he', // Hebrew - 'hi', // Hindi + 'hi', // Hindi, + 'hr', // Croatian 'hu', // Hungarian 'hy', // Armenian 'id', // Indonesian diff --git a/app/config/locale/translations/hr.json b/app/config/locale/translations/hr.json new file mode 100644 index 0000000000..2c218fc72c --- /dev/null +++ b/app/config/locale/translations/hr.json @@ -0,0 +1,232 @@ +{ + "settings.inspire": "\"Umjetnost mudrosti je umjetnost znanja o tome što zanemariti.\"", + "settings.locale": "hr", + "settings.direction": "ltr", + "emails.sender": "%s Tim", + "emails.verification.subject": "Verifikacija računa", + "emails.verification.hello": "Hej {{name}}", + "emails.verification.body": "Slijedite ovu poveznicu da biste potvrdili svoju adresu e-pošte.", + "emails.verification.footer": "Ukoliko niste zatražili potvrdu ove adrese, možete zanemariti ovu poruku.", + "emails.verification.thanks": "Hvala", + "emails.verification.signature": "{{project}} tim", + "emails.magicSession.subject": "Prijavi se", + "emails.magicSession.hello": "Hej,", + "emails.magicSession.body": "Slijedite ovu poveznicu za prijavu.", + "emails.magicSession.footer": "Ako niste zatražili prijavu putem ove e-pošte, možete zanemariti ovu poruku.", + "emails.magicSession.thanks": "Hvala", + "emails.magicSession.signature": "{{project}} tim", + "emails.recovery.subject": "Password Reset", + "emails.recovery.hello": "Pozdrav {{name}}", + "emails.recovery.body": "Slijedite ovu poveznicu za ponovno postavljanje {{project}} lozinke.", + "emails.recovery.footer": "Ako niste zatražili ponovno postavljanje Vaše lozinke, možete zanemariti ovu poruku.", + "emails.recovery.thanks": "Hvala", + "emails.recovery.signature": "{{project}} tim", + "emails.invitation.subject": "Pozivnica za %s tim na %s", + "emails.invitation.hello": "Pozdrav", + "emails.invitation.body": "Ova poruka Vam je poslana jer Vas je {{owner}} htio pozvati da postanete član {{team}} tima na {{project}}.", + "emails.invitation.footer": "Ukoliko niste zainteresirani, možete zanemariti ovu poruku.", + "emails.invitation.thanks": "Hvala", + "emails.invitation.signature": "{{project}} tim", + "locale.country.unknown": "Nepoznato", + "countries.af": "Afganistan", + "countries.ao": "Angola", + "countries.al": "Albanija", + "countries.ad": "Andora", + "countries.ae": "Ujedinjeni Arapski Emirati", + "countries.ar": "Argentina", + "countries.am": "Armenija", + "countries.ag": "Antigva i Barbuda", + "countries.au": "Australija", + "countries.at": "Austrija", + "countries.az": "Azerbajdžan", + "countries.bi": "Burundi", + "countries.be": "Belgija", + "countries.bj": "Benin", + "countries.bf": "Burkina Faso", + "countries.bd": "Bangladeš", + "countries.bg": "Bugarska", + "countries.bh": "Bahrein", + "countries.bs": "Bahami", + "countries.ba": "Bosna i Hercegovina", + "countries.by": "Bjelorusija", + "countries.bz": "Belize", + "countries.bo": "Bolivija", + "countries.br": "Brazil", + "countries.bb": "Barbados", + "countries.bn": "Brunej", + "countries.bt": "Butan", + "countries.bw": "Bocvana", + "countries.cf": "Srednjoafrička Republika", + "countries.ca": "Kanada", + "countries.ch": "Švicarska", + "countries.cl": "Čile", + "countries.cn": "Kina", + "countries.ci": "Obala bjelokosti", + "countries.cm": "Kamerun", + "countries.cd": "Demokratska Republika Kongo", + "countries.cg": "Republika Kongo", + "countries.co": "Kolumbija", + "countries.km": "Komori", + "countries.cv": "Zelenortska Republika", + "countries.cr": "Kostarika", + "countries.cu": "Kuba", + "countries.cy": "Cipar", + "countries.cz": "Češka", + "countries.de": "Njemačka", + "countries.dj": "Džibuti", + "countries.dm": "Dominika", + "countries.dk": "Danska", + "countries.do": "Dominikanska Republika", + "countries.dz": "Alžir", + "countries.ec": "Ekvador", + "countries.eg": "Egipt", + "countries.er": "Eritreja", + "countries.es": "Španjolska", + "countries.ee": "Estonija", + "countries.et": "Etiopija", + "countries.fi": "Finska", + "countries.fj": "Fidži", + "countries.fr": "Francuska", + "countries.fm": "Mikronezija", + "countries.ga": "Gabon", + "countries.gb": "Ujedinjeno Kraljevstvo", + "countries.ge": "Gruzija", + "countries.gh": "Gana", + "countries.gn": "Gvineja", + "countries.gm": "Gambija", + "countries.gw": "Gvineja Bisau", + "countries.gq": "Ekvatorijalna Gvineja", + "countries.gr": "Grčka", + "countries.gd": "Grenada", + "countries.gt": "Gvatemala", + "countries.gy": "Gvajana", + "countries.hn": "Honduras", + "countries.hr": "Hrvatska", + "countries.ht": "Haiti", + "countries.hu": "Mađarska", + "countries.id": "Indonezija", + "countries.in": "Indija", + "countries.ie": "Irska", + "countries.ir": "Iran", + "countries.iq": "Irak", + "countries.is": "Island", + "countries.il": "Izrael", + "countries.it": "Italija", + "countries.jm": "Jamajka", + "countries.jo": "Jordan", + "countries.jp": "Japan", + "countries.kz": "Kazahstan", + "countries.ke": "Kenija", + "countries.kg": "Kirgistan", + "countries.kh": "Kambodža", + "countries.ki": "Kiribati", + "countries.kn": "Sveti Kristofor i Nevis", + "countries.kr": "Južna Koreja", + "countries.kw": "Kuvajt", + "countries.la": "Laos", + "countries.lb": "Libanon", + "countries.lr": "Liberija", + "countries.ly": "Libija", + "countries.lc": "Sveta Lucija", + "countries.li": "Lihtenštajn", + "countries.lk": "Šri Lanka", + "countries.ls": "Lesoto", + "countries.lt": "Litva", + "countries.lu": "Luksemburg", + "countries.lv": "Latvija", + "countries.ma": "Maroko", + "countries.mc": "Monako", + "countries.md": "Moldavija", + "countries.mg": "Madagaskar", + "countries.mv": "Maldivi", + "countries.mx": "Meksiko", + "countries.mh": "Maršalovi otoci", + "countries.mk": "Sjeverna Makedonija", + "countries.ml": "Mali", + "countries.mt": "Malta", + "countries.mm": "Mijanmar", + "countries.me": "Crna Gora", + "countries.mn": "Mongolija", + "countries.mz": "Mozambik", + "countries.mr": "Mauritanija", + "countries.mu": "Mauricijus", + "countries.mw": "Malavi", + "countries.my": "Malezija", + "countries.na": "Namibija", + "countries.ne": "Niger", + "countries.ng": "Nigerija", + "countries.ni": "Nikaragva", + "countries.nl": "Nizozemska", + "countries.no": "Norveška", + "countries.np": "Nepal", + "countries.nr": "Nauru", + "countries.nz": "Novi Zeland", + "countries.om": "Oman", + "countries.pk": "Pakistan", + "countries.pa": "Panama", + "countries.pe": "Peru", + "countries.ph": "Filipini", + "countries.pw": "Palau", + "countries.pg": "Papua Nova Guineja", + "countries.pl": "Poljska", + "countries.kp": "Sjeverna Koreja", + "countries.pt": "Portugal", + "countries.py": "Paragvaj", + "countries.qa": "Katar", + "countries.ro": "Rumunjska", + "countries.ru": "Rusija", + "countries.rw": "Ruanda", + "countries.sa": "Saudijska Arabija", + "countries.sd": "Sudan", + "countries.sn": "Senegal", + "countries.sg": "Singapur", + "countries.sb": "Solomonski otoci", + "countries.sl": "Sijera Leone", + "countries.sv": "Salvador", + "countries.sm": "San Marino", + "countries.so": "Somalija", + "countries.rs": "Srbija", + "countries.ss": "Južni Sudan", + "countries.st": "Sveti Toma i Prinsipe", + "countries.sr": "Surinam", + "countries.sk": "Slovačka", + "countries.si": "Slovenija", + "countries.se": "Švedska", + "countries.sz": "Esvatini", + "countries.sc": "Sejšeli", + "countries.sy": "Sirija", + "countries.td": "Čad", + "countries.tg": "Togo", + "countries.th": "Tajland", + "countries.tj": "Tadžikistan", + "countries.tm": "Turkmenistan", + "countries.tl": "Timor Leste", + "countries.to": "Tonga", + "countries.tt": "Trinidad i Tobago", + "countries.tn": "Tunis", + "countries.tr": "Turska", + "countries.tv": "Tuvalu", + "countries.tz": "Tanzanija", + "countries.ug": "Uganda", + "countries.ua": "Ukrajina", + "countries.uy": "Urugvaj", + "countries.us": "Sjedinjene Američke Države", + "countries.uz": "Uzbekistan", + "countries.va": "Vatikan", + "countries.vc": "Sveti Vincent i Grenadini", + "countries.ve": "Venezuela", + "countries.vn": "Vijetnam", + "countries.vu": "Vanuatu", + "countries.ws": "Samoa", + "countries.ye": "Jemen", + "countries.za": "Južnoafrička Republika", + "countries.zm": "Zambija", + "countries.zw": "Zimbabve", + "continents.af": "Afrika", + "continents.an": "Antartika", + "continents.as": "Azija", + "continents.eu": "Europa", + "continents.na": "Sjeverna Amerika", + "continents.oc": "Oceanija", + "continents.sa": "Južna Amerika" +} \ No newline at end of file diff --git a/app/init.php b/app/init.php index 8c1d6cb455..83308e832e 100644 --- a/app/init.php +++ b/app/init.php @@ -280,6 +280,7 @@ Locale::setLanguageFromJSON('fr', __DIR__.'/config/locale/translations/fr.json') Locale::setLanguageFromJSON('gu', __DIR__.'/config/locale/translations/gu.json'); Locale::setLanguageFromJSON('he', __DIR__.'/config/locale/translations/he.json'); Locale::setLanguageFromJSON('hi', __DIR__.'/config/locale/translations/hi.json'); +Locale::setLanguageFromJSON('hr', __DIR__.'/config/locale/translations/hr.json'); Locale::setLanguageFromJSON('hu', __DIR__.'/config/locale/translations/hu.json'); Locale::setLanguageFromJSON('hy', __DIR__.'/config/locale/translations/hy.json'); Locale::setLanguageFromJSON('id', __DIR__.'/config/locale/translations/id.json'); From c4e0ef27c3b1528ed2d7355e2aff8ddaa6ee4fff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Bo=C5=A1njak?= Date: Fri, 1 Oct 2021 15:52:02 +0200 Subject: [PATCH 033/110] Added missing translation for Croatian language --- app/config/locale/translations/hr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/hr.json b/app/config/locale/translations/hr.json index 2c218fc72c..d0b92aa945 100644 --- a/app/config/locale/translations/hr.json +++ b/app/config/locale/translations/hr.json @@ -15,7 +15,7 @@ "emails.magicSession.footer": "Ako niste zatražili prijavu putem ove e-pošte, možete zanemariti ovu poruku.", "emails.magicSession.thanks": "Hvala", "emails.magicSession.signature": "{{project}} tim", - "emails.recovery.subject": "Password Reset", + "emails.recovery.subject": "Ponovno postavljanje lozinke", "emails.recovery.hello": "Pozdrav {{name}}", "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.", From a986e5b1511c3d7d4612fdd9f7439964216e2681 Mon Sep 17 00:00:00 2001 From: OscarRivasGonzalez Date: Fri, 1 Oct 2021 16:17:11 +0200 Subject: [PATCH 034/110] feat(locales):Add Portugal(pt-pt) translation --- app/config/locale/translations/pt-pt.json | 50 +++++++++++------------ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/config/locale/translations/pt-pt.json b/app/config/locale/translations/pt-pt.json index db9bbde54b..ff16ab2202 100644 --- a/app/config/locale/translations/pt-pt.json +++ b/app/config/locale/translations/pt-pt.json @@ -3,30 +3,30 @@ "settings.locale": "pt-pt", "settings.direction": "ltr", "emails.sender": "Equipa %s", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Verificação de contas", + "emails.verification.hello": "Hey {{name}}", + "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", + "emails.verification.signature": "Equipa {{project}}", + "emails.magicSession.subject": "Login", + "emails.magicSession.hello": "Olá ,", + "emails.magicSession.body": "Siga esta ligação para iniciar sessão.", + "emails.magicSession.footer": "Se não pediu para entrar usando este e-mail, pode ignorar esta mensagem.", + "emails.magicSession.thanks": "Obrigado", + "emails.magicSession.signature": "Equipa {{project}}", + "emails.recovery.subject": "Redefinição de senha", + "emails.recovery.hello": u"Olá {{name}}", + "emails.recovery.body": "tilize 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", + "emails.recovery.signature": "Equipa {{project}}", + "emails.invitation.subject": "Convite à equipa de %s às %s", + "emails.invitation.hello": "Olá", + "emails.invitation.body": "Este correio foi-lhe enviado porque {{{owner}} queria convidá-lo a tornar-se membro da equipa {{{team}} da {{project}}.", + "emails.invitation.footer": "Se não estiver interessado, pode ignorar esta mensagem.", + "emails.invitation.thanks": "Obrigado", + "emails.invitation.signature": "Equipa {{project}}", "locale.country.unknown": "Desconhecido", "countries.af": "Afeganistão", "countries.ao": "Angola", @@ -229,4 +229,4 @@ "continents.na": "América do Norte", "continents.oc": "Oceânia", "continents.sa": "América do Sul" -} \ No newline at end of file +} From 8200101a5cbe6e141d8f16298cc196914f7b30dc Mon Sep 17 00:00:00 2001 From: Jesper <36137226+Ganzabahl@users.noreply.github.com> Date: Fri, 1 Oct 2021 16:40:56 +0200 Subject: [PATCH 035/110] Added da.json Text to be translated added - First steps first ;) --- app/config/locale/translations/da.json | 232 +++++++++++++++++++++++++ 1 file changed, 232 insertions(+) create mode 100644 app/config/locale/translations/da.json diff --git a/app/config/locale/translations/da.json b/app/config/locale/translations/da.json new file mode 100644 index 0000000000..ae53b18034 --- /dev/null +++ b/app/config/locale/translations/da.json @@ -0,0 +1,232 @@ +{ + "settings.inspire": "\"The art of being wise is the art of knowing what to overlook.\"", + "settings.locale": "en", + "settings.direction": "ltr", + "emails.sender": "%s Team", + "emails.verification.subject": "Account Verification", + "emails.verification.hello": "Hey {{name}}", + "emails.verification.body": "Follow this link to verify your email address.", + "emails.verification.footer": "If you didn’t ask to verify this address, you can ignore this message.", + "emails.verification.thanks": "Thanks", + "emails.verification.signature": "{{project}} team", + "emails.magicSession.subject": "Login", + "emails.magicSession.hello": "Hey,", + "emails.magicSession.body": "Follow this link to login.", + "emails.magicSession.footer": "If you didn’t ask to login using this email, you can ignore this message.", + "emails.magicSession.thanks": "Thanks", + "emails.magicSession.signature": "{{project}} team", + "emails.recovery.subject": "Password Reset", + "emails.recovery.hello": "Hello {{name}}", + "emails.recovery.body": "Follow this link to reset your {{project}} password.", + "emails.recovery.footer": "If you didn’t ask to reset your password, you can ignore this message.", + "emails.recovery.thanks": "Thanks", + "emails.recovery.signature": "{{project}} team", + "emails.invitation.subject": "Invitation to %s Team at %s", + "emails.invitation.hello": "Hello", + "emails.invitation.body": "This mail was sent to you because {{owner}} wanted to invite you to become a member of the {{team}} team at {{project}}.", + "emails.invitation.footer": "If you are not interested, you can ignore this message.", + "emails.invitation.thanks": "Thanks", + "emails.invitation.signature": "{{project}} team", + "locale.country.unknown": "Unknown", + "countries.af": "Afghanistan", + "countries.ao": "Angola", + "countries.al": "Albania", + "countries.ad": "Andorra", + "countries.ae": "United Arab Emirates", + "countries.ar": "Argentina", + "countries.am": "Armenia", + "countries.ag": "Antigua and Barbuda", + "countries.au": "Australia", + "countries.at": "Austria", + "countries.az": "Azerbaijan", + "countries.bi": "Burundi", + "countries.be": "Belgium", + "countries.bj": "Benin", + "countries.bf": "Burkina Faso", + "countries.bd": "Bangladesh", + "countries.bg": "Bulgaria", + "countries.bh": "Bahrain", + "countries.bs": "Bahamas", + "countries.ba": "Bosnia and Herzegovina", + "countries.by": "Belarus", + "countries.bz": "Belize", + "countries.bo": "Bolivia", + "countries.br": "Brazil", + "countries.bb": "Barbados", + "countries.bn": "Brunei", + "countries.bt": "Bhutan", + "countries.bw": "Botswana", + "countries.cf": "Central African Republic", + "countries.ca": "Canada", + "countries.ch": "Switzerland", + "countries.cl": "Chile", + "countries.cn": "China", + "countries.ci": "Ivory Coast", + "countries.cm": "Cameroon", + "countries.cd": "DR Congo", + "countries.cg": "Republic of the Congo", + "countries.co": "Colombia", + "countries.km": "Comoros", + "countries.cv": "Cape Verde", + "countries.cr": "Costa Rica", + "countries.cu": "Cuba", + "countries.cy": "Cyprus", + "countries.cz": "Czechia", + "countries.de": "Germany", + "countries.dj": "Djibouti", + "countries.dm": "Dominica", + "countries.dk": "Denmark", + "countries.do": "Dominican Republic", + "countries.dz": "Algeria", + "countries.ec": "Ecuador", + "countries.eg": "Egypt", + "countries.er": "Eritrea", + "countries.es": "Spain", + "countries.ee": "Estonia", + "countries.et": "Ethiopia", + "countries.fi": "Finland", + "countries.fj": "Fiji", + "countries.fr": "France", + "countries.fm": "Micronesia", + "countries.ga": "Gabon", + "countries.gb": "United Kingdom", + "countries.ge": "Georgia", + "countries.gh": "Ghana", + "countries.gn": "Guinea", + "countries.gm": "Gambia", + "countries.gw": "Guinea-Bissau", + "countries.gq": "Equatorial Guinea", + "countries.gr": "Greece", + "countries.gd": "Grenada", + "countries.gt": "Guatemala", + "countries.gy": "Guyana", + "countries.hn": "Honduras", + "countries.hr": "Croatia", + "countries.ht": "Haiti", + "countries.hu": "Hungary", + "countries.id": "Indonesia", + "countries.in": "India", + "countries.ie": "Ireland", + "countries.ir": "Iran", + "countries.iq": "Iraq", + "countries.is": "Iceland", + "countries.il": "Israel", + "countries.it": "Italy", + "countries.jm": "Jamaica", + "countries.jo": "Jordan", + "countries.jp": "Japan", + "countries.kz": "Kazakhstan", + "countries.ke": "Kenya", + "countries.kg": "Kyrgyzstan", + "countries.kh": "Cambodia", + "countries.ki": "Kiribati", + "countries.kn": "Saint Kitts and Nevis", + "countries.kr": "South Korea", + "countries.kw": "Kuwait", + "countries.la": "Laos", + "countries.lb": "Lebanon", + "countries.lr": "Liberia", + "countries.ly": "Libya", + "countries.lc": "Saint Lucia", + "countries.li": "Liechtenstein", + "countries.lk": "Sri Lanka", + "countries.ls": "Lesotho", + "countries.lt": "Lithuania", + "countries.lu": "Luxembourg", + "countries.lv": "Latvia", + "countries.ma": "Morocco", + "countries.mc": "Monaco", + "countries.md": "Moldova", + "countries.mg": "Madagascar", + "countries.mv": "Maldives", + "countries.mx": "Mexico", + "countries.mh": "Marshall Islands", + "countries.mk": "Macedonia", + "countries.ml": "Mali", + "countries.mt": "Malta", + "countries.mm": "Myanmar", + "countries.me": "Montenegro", + "countries.mn": "Mongolia", + "countries.mz": "Mozambique", + "countries.mr": "Mauritania", + "countries.mu": "Mauritius", + "countries.mw": "Malawi", + "countries.my": "Malaysia", + "countries.na": "Namibia", + "countries.ne": "Niger", + "countries.ng": "Nigeria", + "countries.ni": "Nicaragua", + "countries.nl": "Netherlands", + "countries.no": "Norway", + "countries.np": "Nepal", + "countries.nr": "Nauru", + "countries.nz": "New Zealand", + "countries.om": "Oman", + "countries.pk": "Pakistan", + "countries.pa": "Panama", + "countries.pe": "Peru", + "countries.ph": "Philippines", + "countries.pw": "Palau", + "countries.pg": "Papua New Guinea", + "countries.pl": "Poland", + "countries.kp": "North Korea", + "countries.pt": "Portugal", + "countries.py": "Paraguay", + "countries.qa": "Qatar", + "countries.ro": "Romania", + "countries.ru": "Russia", + "countries.rw": "Rwanda", + "countries.sa": "Saudi Arabia", + "countries.sd": "Sudan", + "countries.sn": "Senegal", + "countries.sg": "Singapore", + "countries.sb": "Solomon Islands", + "countries.sl": "Sierra Leone", + "countries.sv": "El Salvador", + "countries.sm": "San Marino", + "countries.so": "Somalia", + "countries.rs": "Serbia", + "countries.ss": "South Sudan", + "countries.st": "São Tomé and Príncipe", + "countries.sr": "Suriname", + "countries.sk": "Slovakia", + "countries.si": "Slovenia", + "countries.se": "Sweden", + "countries.sz": "Swaziland", + "countries.sc": "Seychelles", + "countries.sy": "Syria", + "countries.td": "Chad", + "countries.tg": "Togo", + "countries.th": "Thailand", + "countries.tj": "Tajikistan", + "countries.tm": "Turkmenistan", + "countries.tl": "Timor-Leste", + "countries.to": "Tonga", + "countries.tt": "Trinidad and Tobago", + "countries.tn": "Tunisia", + "countries.tr": "Turkey", + "countries.tv": "Tuvalu", + "countries.tz": "Tanzania", + "countries.ug": "Uganda", + "countries.ua": "Ukraine", + "countries.uy": "Uruguay", + "countries.us": "United States", + "countries.uz": "Uzbekistan", + "countries.va": "Vatican City", + "countries.vc": "Saint Vincent and the Grenadines", + "countries.ve": "Venezuela", + "countries.vn": "Vietnam", + "countries.vu": "Vanuatu", + "countries.ws": "Samoa", + "countries.ye": "Yemen", + "countries.za": "South Africa", + "countries.zm": "Zambia", + "countries.zw": "Zimbabwe", + "continents.af": "Africa", + "continents.an": "Antarctica", + "continents.as": "Asia", + "continents.eu": "Europe", + "continents.na": "North America", + "continents.oc": "Oceania", + "continents.sa": "South America" +} From 648f3f452ad3907e73ef02fdf5682ccc970dc249 Mon Sep 17 00:00:00 2001 From: Jesper <36137226+Ganzabahl@users.noreply.github.com> Date: Fri, 1 Oct 2021 16:50:52 +0200 Subject: [PATCH 036/110] Update da.json Updated first 20 lines --- app/config/locale/translations/da.json | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/app/config/locale/translations/da.json b/app/config/locale/translations/da.json index ae53b18034..f7f42573bc 100644 --- a/app/config/locale/translations/da.json +++ b/app/config/locale/translations/da.json @@ -1,23 +1,23 @@ { - "settings.inspire": "\"The art of being wise is the art of knowing what to overlook.\"", - "settings.locale": "en", + "settings.inspire": "\"Kunsten at være klog er kunsten at vide, hvad man skal overse.\"", + "settings.locale": "da", "settings.direction": "ltr", "emails.sender": "%s Team", - "emails.verification.subject": "Account Verification", - "emails.verification.hello": "Hey {{name}}", - "emails.verification.body": "Follow this link to verify your email address.", - "emails.verification.footer": "If you didn’t ask to verify this address, you can ignore this message.", - "emails.verification.thanks": "Thanks", + "emails.verification.subject": "Konto Verifikation", + "emails.verification.hello": "Hej {{name}}", + "emails.verification.body": "Følg dette link, for at verificere din email adresse.", + "emails.verification.footer": "Hvis du ikke har bedt om at verificere denne adresse, ignorer venligst denne besked.", + "emails.verification.thanks": "Tak", "emails.verification.signature": "{{project}} team", "emails.magicSession.subject": "Login", - "emails.magicSession.hello": "Hey,", - "emails.magicSession.body": "Follow this link to login.", - "emails.magicSession.footer": "If you didn’t ask to login using this email, you can ignore this message.", - "emails.magicSession.thanks": "Thanks", + "emails.magicSession.hello": "Hej,", + "emails.magicSession.body": "Følg dette link for at logge ind.", + "emails.magicSession.footer": "Hvis du ikke har bedt om at logge ind med denne email, ignorer venligst denne besked.", + "emails.magicSession.thanks": "Tak", "emails.magicSession.signature": "{{project}} team", - "emails.recovery.subject": "Password Reset", - "emails.recovery.hello": "Hello {{name}}", - "emails.recovery.body": "Follow this link to reset your {{project}} password.", + "emails.recovery.subject": "Nulstil Password", + "emails.recovery.hello": "Hej {{name}}", + "emails.recovery.body": "Følg dette link for at nulstille koden til {{project}}.", "emails.recovery.footer": "If you didn’t ask to reset your password, you can ignore this message.", "emails.recovery.thanks": "Thanks", "emails.recovery.signature": "{{project}} team", From ef3e73d00f6caba450c2792b4c57fcc0de7f470c Mon Sep 17 00:00:00 2001 From: Olyno Date: Fri, 1 Oct 2021 16:57:38 +0200 Subject: [PATCH 037/110] fix(translation): replace Salut with Bonjour --- app/config/locale/translations/fr.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/config/locale/translations/fr.json b/app/config/locale/translations/fr.json index 7a0cb6f19c..fe46599dd6 100644 --- a/app/config/locale/translations/fr.json +++ b/app/config/locale/translations/fr.json @@ -4,18 +4,18 @@ "settings.direction": "ltr", "emails.sender": "Équipe %s", "emails.verification.subject": "Vérification du compte", - "emails.verification.hello": "Salut {{name}}", + "emails.verification.hello": "Bonjour {{name}}", "emails.verification.body": "Suivez ce lien pour vérifier votre adresse mail.", "emails.verification.footer": "Si vous n'avez pas demandé à vérifier cette adresse mail, vous pouvez ignorer ce message.", "emails.verification.thanks": "Merci", "emails.verification.signature": "Équipe {{project}}", "emails.magicSession.subject": "Connexion", - "emails.magicSession.hello": "Salut", + "emails.magicSession.hello": "Bonjour", "emails.magicSession.body": "Suivez ce lien pour vous connecter.", "emails.magicSession.footer": "Si vous n'avez pas demandé à vous connecter en utilisant cet e-mail, vous pouvez ignorer ce message.", "emails.magicSession.thanks": "Merci", "emails.magicSession.signature": "Réinitialisation du mot de passe", - "emails.recovery.subject": "Salut {{name}}", + "emails.recovery.subject": "Bonjour {{name}}", "emails.recovery.hello": "Bonjour {{name}}", "emails.recovery.body": "Suivez ce lien pour réinitialiser votre mot de passe de {{projet}}.", "emails.recovery.footer": "Si vous n'avez pas demandé à réinitialiser votre mot de passe, vous pouvez ignorer ce message.", From f31fc0735ed1b0a858eac185e7a3ec19f90c7dac Mon Sep 17 00:00:00 2001 From: Dehami Koswatte Date: Fri, 1 Oct 2021 21:06:57 +0530 Subject: [PATCH 038/110] Add code review fixes --- app/controllers/api/teams.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index 645d08f57b..128a03c2eb 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -272,7 +272,7 @@ App::post('/v1/teams/:teamId/memberships') ->inject('locale') ->inject('audits') ->inject('mails') - ->action(function ($teamId, $email, $name, $roles, $url, $response, $project, $user, $projectDB, $locale, $audits, $mails) { + ->action(function ($teamId, $email, $roles, $url, $name, $response, $project, $user, $projectDB, $locale, $audits, $mails) { /** @var Appwrite\Utopia\Response $response */ /** @var Appwrite\Database\Document $project */ /** @var Appwrite\Database\Document $user */ From b32606739a65e954efd31165e6dcd2d41a1170f2 Mon Sep 17 00:00:00 2001 From: Jesper <36137226+Ganzabahl@users.noreply.github.com> Date: Fri, 1 Oct 2021 17:41:46 +0200 Subject: [PATCH 039/110] Update da.json Finished the list and double checked countries. --- app/config/locale/translations/da.json | 206 ++++++++++++------------- 1 file changed, 103 insertions(+), 103 deletions(-) diff --git a/app/config/locale/translations/da.json b/app/config/locale/translations/da.json index f7f42573bc..dbcaae2785 100644 --- a/app/config/locale/translations/da.json +++ b/app/config/locale/translations/da.json @@ -18,137 +18,137 @@ "emails.recovery.subject": "Nulstil Password", "emails.recovery.hello": "Hej {{name}}", "emails.recovery.body": "Følg dette link for at nulstille koden til {{project}}.", - "emails.recovery.footer": "If you didn’t ask to reset your password, you can ignore this message.", - "emails.recovery.thanks": "Thanks", + "emails.recovery.footer": "Hvis du ikke har bedt om at nulstille dit password, ignorer venligst denne besked.", + "emails.recovery.thanks": "Tak", "emails.recovery.signature": "{{project}} team", - "emails.invitation.subject": "Invitation to %s Team at %s", - "emails.invitation.hello": "Hello", - "emails.invitation.body": "This mail was sent to you because {{owner}} wanted to invite you to become a member of the {{team}} team at {{project}}.", - "emails.invitation.footer": "If you are not interested, you can ignore this message.", - "emails.invitation.thanks": "Thanks", + "emails.invitation.subject": "Invitation til %s Team på %s", + "emails.invitation.hello": "Hej", + "emails.invitation.body": "Denne mail blev sendt til dig, fordi {{owner}} vil invitere dig til at blive medlem af {{team}} teamet på {{project}}.", + "emails.invitation.footer": "Hvis du ikke er interesseret, ignorer venligst denne besked.", + "emails.invitation.thanks": "Tak", "emails.invitation.signature": "{{project}} team", - "locale.country.unknown": "Unknown", + "locale.country.unknown": "Ukendt", "countries.af": "Afghanistan", "countries.ao": "Angola", - "countries.al": "Albania", + "countries.al": "Albanien", "countries.ad": "Andorra", - "countries.ae": "United Arab Emirates", + "countries.ae": "Forenede Arabiske Emirater", "countries.ar": "Argentina", - "countries.am": "Armenia", + "countries.am": "Armenien", "countries.ag": "Antigua and Barbuda", - "countries.au": "Australia", - "countries.at": "Austria", - "countries.az": "Azerbaijan", + "countries.au": "Australien", + "countries.at": "Østrig", + "countries.az": "Aserbajdsjan", "countries.bi": "Burundi", - "countries.be": "Belgium", + "countries.be": "Belgien", "countries.bj": "Benin", "countries.bf": "Burkina Faso", "countries.bd": "Bangladesh", - "countries.bg": "Bulgaria", + "countries.bg": "Bulgarien", "countries.bh": "Bahrain", "countries.bs": "Bahamas", - "countries.ba": "Bosnia and Herzegovina", - "countries.by": "Belarus", + "countries.ba": "Bosnien-Hercegovina", + "countries.by": "Hviderusland", "countries.bz": "Belize", "countries.bo": "Bolivia", - "countries.br": "Brazil", + "countries.br": "Brasilien, "countries.bb": "Barbados", "countries.bn": "Brunei", "countries.bt": "Bhutan", "countries.bw": "Botswana", - "countries.cf": "Central African Republic", + "countries.cf": "Den Centralafrikanske Republik", "countries.ca": "Canada", - "countries.ch": "Switzerland", + "countries.ch": "Schweiz", "countries.cl": "Chile", - "countries.cn": "China", - "countries.ci": "Ivory Coast", - "countries.cm": "Cameroon", + "countries.cn": "Kina", + "countries.ci": "Elfenbenskysten", + "countries.cm": "Cameroun", "countries.cd": "DR Congo", - "countries.cg": "Republic of the Congo", + "countries.cg": "Republikken Congo", "countries.co": "Colombia", - "countries.km": "Comoros", - "countries.cv": "Cape Verde", + "countries.km": "Comorerne", + "countries.cv": "Kap Verde", "countries.cr": "Costa Rica", "countries.cu": "Cuba", - "countries.cy": "Cyprus", - "countries.cz": "Czechia", - "countries.de": "Germany", + "countries.cy": "Cypern", + "countries.cz": "Tjekkiet", + "countries.de": "Tyskland", "countries.dj": "Djibouti", "countries.dm": "Dominica", - "countries.dk": "Denmark", - "countries.do": "Dominican Republic", - "countries.dz": "Algeria", + "countries.dk": "Danmark", + "countries.do": "Dominikanske Republik", + "countries.dz": "Algeriet", "countries.ec": "Ecuador", - "countries.eg": "Egypt", + "countries.eg": "Egypten", "countries.er": "Eritrea", - "countries.es": "Spain", - "countries.ee": "Estonia", - "countries.et": "Ethiopia", + "countries.es": "Spainen", + "countries.ee": "Estland", + "countries.et": "Etiopien", "countries.fi": "Finland", "countries.fj": "Fiji", - "countries.fr": "France", - "countries.fm": "Micronesia", + "countries.fr": "Frankrig", + "countries.fm": "Mikronesien", "countries.ga": "Gabon", - "countries.gb": "United Kingdom", - "countries.ge": "Georgia", + "countries.gb": "Storbritannien", + "countries.ge": "Georgien", "countries.gh": "Ghana", "countries.gn": "Guinea", "countries.gm": "Gambia", "countries.gw": "Guinea-Bissau", - "countries.gq": "Equatorial Guinea", - "countries.gr": "Greece", + "countries.gq": "Ækvatorialguinea", + "countries.gr": "Grækenland", "countries.gd": "Grenada", "countries.gt": "Guatemala", "countries.gy": "Guyana", "countries.hn": "Honduras", - "countries.hr": "Croatia", + "countries.hr": "Kroatien", "countries.ht": "Haiti", - "countries.hu": "Hungary", - "countries.id": "Indonesia", - "countries.in": "India", - "countries.ie": "Ireland", + "countries.hu": "Ungarn", + "countries.id": "Indonesien", + "countries.in": "Indien", + "countries.ie": "Irland", "countries.ir": "Iran", - "countries.iq": "Iraq", - "countries.is": "Iceland", + "countries.iq": "Irak", + "countries.is": "Island", "countries.il": "Israel", - "countries.it": "Italy", + "countries.it": "Italen", "countries.jm": "Jamaica", "countries.jo": "Jordan", "countries.jp": "Japan", - "countries.kz": "Kazakhstan", + "countries.kz": "Kasakhstan", "countries.ke": "Kenya", - "countries.kg": "Kyrgyzstan", - "countries.kh": "Cambodia", + "countries.kg": "Kirgisistan", + "countries.kh": "Cambodja", "countries.ki": "Kiribati", - "countries.kn": "Saint Kitts and Nevis", - "countries.kr": "South Korea", + "countries.kn": "Saint Kitts og Nevis", + "countries.kr": "Sydkorea", "countries.kw": "Kuwait", "countries.la": "Laos", - "countries.lb": "Lebanon", + "countries.lb": "Libanon", "countries.lr": "Liberia", - "countries.ly": "Libya", + "countries.ly": "Libyen", "countries.lc": "Saint Lucia", "countries.li": "Liechtenstein", "countries.lk": "Sri Lanka", "countries.ls": "Lesotho", - "countries.lt": "Lithuania", + "countries.lt": "Litauen", "countries.lu": "Luxembourg", - "countries.lv": "Latvia", - "countries.ma": "Morocco", + "countries.lv": "Letland", + "countries.ma": "Marokko", "countries.mc": "Monaco", "countries.md": "Moldova", - "countries.mg": "Madagascar", - "countries.mv": "Maldives", + "countries.mg": "Madagaskar", + "countries.mv": "Maldiverne", "countries.mx": "Mexico", - "countries.mh": "Marshall Islands", - "countries.mk": "Macedonia", + "countries.mh": "Marshalløerne", + "countries.mk": "Makedonien", "countries.ml": "Mali", "countries.mt": "Malta", "countries.mm": "Myanmar", "countries.me": "Montenegro", - "countries.mn": "Mongolia", + "countries.mn": "Mongoliet", "countries.mz": "Mozambique", - "countries.mr": "Mauritania", + "countries.mr": "Mauritanien", "countries.mu": "Mauritius", "countries.mw": "Malawi", "countries.my": "Malaysia", @@ -156,8 +156,8 @@ "countries.ne": "Niger", "countries.ng": "Nigeria", "countries.ni": "Nicaragua", - "countries.nl": "Netherlands", - "countries.no": "Norway", + "countries.nl": "Holland", + "countries.no": "Norge", "countries.np": "Nepal", "countries.nr": "Nauru", "countries.nz": "New Zealand", @@ -165,68 +165,68 @@ "countries.pk": "Pakistan", "countries.pa": "Panama", "countries.pe": "Peru", - "countries.ph": "Philippines", + "countries.ph": "Filippinerne", "countries.pw": "Palau", - "countries.pg": "Papua New Guinea", - "countries.pl": "Poland", - "countries.kp": "North Korea", + "countries.pg": "Papua Ny Guinea", + "countries.pl": "Polen", + "countries.kp": "Nordkorea", "countries.pt": "Portugal", "countries.py": "Paraguay", "countries.qa": "Qatar", - "countries.ro": "Romania", - "countries.ru": "Russia", + "countries.ro": "Rumænien", + "countries.ru": "Rusland", "countries.rw": "Rwanda", - "countries.sa": "Saudi Arabia", + "countries.sa": "Saudi Arabien", "countries.sd": "Sudan", "countries.sn": "Senegal", "countries.sg": "Singapore", - "countries.sb": "Solomon Islands", + "countries.sb": "Salomonøerne", "countries.sl": "Sierra Leone", "countries.sv": "El Salvador", "countries.sm": "San Marino", "countries.so": "Somalia", - "countries.rs": "Serbia", - "countries.ss": "South Sudan", - "countries.st": "São Tomé and Príncipe", - "countries.sr": "Suriname", - "countries.sk": "Slovakia", - "countries.si": "Slovenia", - "countries.se": "Sweden", + "countries.rs": "Serbien", + "countries.ss": "Sydsudan", + "countries.st": "Sao Tome og Principe", + "countries.sr": "Surinam", + "countries.sk": "Slovakiet", + "countries.si": "Slovenien", + "countries.se": "Sverige", "countries.sz": "Swaziland", - "countries.sc": "Seychelles", - "countries.sy": "Syria", - "countries.td": "Chad", + "countries.sc": "Seychellerne", + "countries.sy": "Syrien", + "countries.td": "Tchad", "countries.tg": "Togo", "countries.th": "Thailand", - "countries.tj": "Tajikistan", + "countries.tj": "Tadsjikistan", "countries.tm": "Turkmenistan", "countries.tl": "Timor-Leste", "countries.to": "Tonga", - "countries.tt": "Trinidad and Tobago", - "countries.tn": "Tunisia", - "countries.tr": "Turkey", + "countries.tt": "Trinidad og Tobago", + "countries.tn": "Tunisien", + "countries.tr": "Tyrkiet", "countries.tv": "Tuvalu", "countries.tz": "Tanzania", "countries.ug": "Uganda", "countries.ua": "Ukraine", "countries.uy": "Uruguay", - "countries.us": "United States", - "countries.uz": "Uzbekistan", - "countries.va": "Vatican City", - "countries.vc": "Saint Vincent and the Grenadines", + "countries.us": "Amerikas Forenede Stater", + "countries.uz": "Usbekistan", + "countries.va": "Vatikanet", + "countries.vc": "Saint Vincent og Grenadinerne", "countries.ve": "Venezuela", "countries.vn": "Vietnam", "countries.vu": "Vanuatu", "countries.ws": "Samoa", "countries.ye": "Yemen", - "countries.za": "South Africa", + "countries.za": "Sydafrika", "countries.zm": "Zambia", "countries.zw": "Zimbabwe", - "continents.af": "Africa", - "continents.an": "Antarctica", - "continents.as": "Asia", - "continents.eu": "Europe", - "continents.na": "North America", - "continents.oc": "Oceania", - "continents.sa": "South America" + "continents.af": "Afrika", + "continents.an": "Antarktis", + "continents.as": "Asien", + "continents.eu": "Europa", + "continents.na": "Nordamerica", + "continents.oc": "Oceanien", + "continents.sa": "Sydamerica" } From e80198a0b1e1645fe30c30c9e5da5c056bb54292 Mon Sep 17 00:00:00 2001 From: Jesper <36137226+Ganzabahl@users.noreply.github.com> Date: Fri, 1 Oct 2021 17:43:59 +0200 Subject: [PATCH 040/110] Update codes.php Added Danish and did some cosmetic tweaking of comments. --- app/config/locale/codes.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/config/locale/codes.php b/app/config/locale/codes.php index c8623f533c..6bb8f0ea93 100644 --- a/app/config/locale/codes.php +++ b/app/config/locale/codes.php @@ -6,9 +6,10 @@ return [ 'be', // Belarusian 'bg', // Bulgarian 'bn', // Bengali - 'bs', //Bosnian + 'bs', // Bosnian 'ca', // Catalan 'cs', // Czech + 'da', // Danish 'de', // German 'en', // English 'es', // Spanish @@ -17,7 +18,7 @@ return [ 'fo', // Faroese 'fr', // French 'el', // Greek - 'gu', //Gujrati + 'gu', // Gujrati 'he', // Hebrew 'hi', // Hindi 'hu', // Hungarian @@ -42,7 +43,7 @@ return [ 'pl', // Polish 'pt-br', // Portuguese - Brazil 'pt-pt', // Portuguese - Portugal - 'pa', //Punjabi + 'pa', // Punjabi 'ro', // Romanian 'ru', // Russian 'si', // Sinhala @@ -53,7 +54,7 @@ return [ 'th', // Thai 'tr', // Turkish 'uk', // Ukrainian - 'ur', //Urdu + 'ur', // Urdu 'vi', // Vietnamese 'zh-cn', // Chinese - China 'zh-tw', // Chinese - Taiwan From 8e0d4a755c9a43528dba407fdbb560a46e78504f Mon Sep 17 00:00:00 2001 From: Jesper <36137226+Ganzabahl@users.noreply.github.com> Date: Fri, 1 Oct 2021 17:45:47 +0200 Subject: [PATCH 041/110] Update init.php Added Danish --- Locale::setLanguageFromJSON('da', __DIR__.'/config/locale/translations/da.json'); --- --- app/init.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/init.php b/app/init.php index 8c1d6cb455..d818d3b2ee 100644 --- a/app/init.php +++ b/app/init.php @@ -269,6 +269,7 @@ Locale::setLanguageFromJSON('bn', __DIR__.'/config/locale/translations/bn.json') Locale::setLanguageFromJSON('bs', __DIR__.'/config/locale/translations/bs.json'); Locale::setLanguageFromJSON('ca', __DIR__.'/config/locale/translations/ca.json'); Locale::setLanguageFromJSON('cs', __DIR__.'/config/locale/translations/cs.json'); +Locale::setLanguageFromJSON('da', __DIR__.'/config/locale/translations/da.json'); Locale::setLanguageFromJSON('de', __DIR__.'/config/locale/translations/de.json'); Locale::setLanguageFromJSON('el', __DIR__.'/config/locale/translations/el.json'); Locale::setLanguageFromJSON('en', __DIR__.'/config/locale/translations/en.json'); From abc532c5ce5a4f20bff6acb9b66db1675640eecb Mon Sep 17 00:00:00 2001 From: Daniele Maltese Date: Fri, 1 Oct 2021 17:55:21 +0200 Subject: [PATCH 042/110] feat(locales): italian translation --- app/config/locale/translations/it.json | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/app/config/locale/translations/it.json b/app/config/locale/translations/it.json index 1973230c0d..e949225892 100644 --- a/app/config/locale/translations/it.json +++ b/app/config/locale/translations/it.json @@ -3,30 +3,30 @@ "settings.locale": "it", "settings.direction": "ltr", "emails.sender": "Team %s", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Verifica account", + "emails.verification.hello": "Ciao {{name}}", + "emails.verification.body": "Clicca questo link per verificare il tuo indirizzo email.", + "emails.verification.footer": "Se non sei stato tu a richiedere la verifica dell’indirizzo email, puoi ignorare questo messaggio.", + "emails.verification.thanks": "Grazie", + "emails.verification.signature": "Il team {{project}}", + "emails.magicSession.subject": "Login", + "emails.magicSession.hello": "Ciao,", + "emails.magicSession.body": "Clicca questo link per accedere.", + "emails.magicSession.footer": "Se non sei stato tu a richiedere di effettuare l’accesso, puoi ignorare questo messaggio.", + "emails.magicSession.thanks": "Grazie", + "emails.magicSession.signature": "Il team {{project}}", + "emails.recovery.subject": "Reimpostazione password", + "emails.recovery.hello": "Ciao {{name}}", + "emails.recovery.body": "Clicca questo link per reimpostare la tua password di {{project}}.", + "emails.recovery.footer": "Se non sei stato tu a richiedere la reimpostazione della password, puoi ignorare questo messaggio.", + "emails.recovery.thanks": "Grazie", + "emails.recovery.signature": "Il team {{project}}", + "emails.invitation.subject": "Invito al Team %s per %s", + "emails.invitation.hello": "Ciao", + "emails.invitation.body": "Ricevi questa email perché {{owner}} ti ha invitato a diventare un membro del team {{team}} di {{project}}.", + "emails.invitation.footer": "Ignora questo messaggio se non sei interessato.", + "emails.invitation.thanks": "Grazie", + "emails.invitation.signature": "Il team {{project}}", "locale.country.unknown": "Sconosciuto", "countries.af": "Afghanistan", "countries.ao": "Angola", From 3eba9c9854ceab8d0ddba7d756841bd0ad8eb5f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Bo=C5=A1njak?= Date: Fri, 1 Oct 2021 17:58:21 +0200 Subject: [PATCH 043/110] Changed translation of emails.verification.hello and emails.magicSession.hello to more formal --- app/config/locale/translations/hr.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/config/locale/translations/hr.json b/app/config/locale/translations/hr.json index d0b92aa945..78f2e830fb 100644 --- a/app/config/locale/translations/hr.json +++ b/app/config/locale/translations/hr.json @@ -4,13 +4,13 @@ "settings.direction": "ltr", "emails.sender": "%s Tim", "emails.verification.subject": "Verifikacija računa", - "emails.verification.hello": "Hej {{name}}", + "emails.verification.hello": "Pozdrav {{name}}", "emails.verification.body": "Slijedite ovu poveznicu da biste potvrdili svoju adresu e-pošte.", "emails.verification.footer": "Ukoliko niste zatražili potvrdu ove adrese, možete zanemariti ovu poruku.", "emails.verification.thanks": "Hvala", "emails.verification.signature": "{{project}} tim", "emails.magicSession.subject": "Prijavi se", - "emails.magicSession.hello": "Hej,", + "emails.magicSession.hello": "Pozdrav,", "emails.magicSession.body": "Slijedite ovu poveznicu za prijavu.", "emails.magicSession.footer": "Ako niste zatražili prijavu putem ove e-pošte, možete zanemariti ovu poruku.", "emails.magicSession.thanks": "Hvala", From 7061e295acb9e031f26bef8489f4b53fc296a3e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Bo=C5=A1njak?= Date: Fri, 1 Oct 2021 18:12:36 +0200 Subject: [PATCH 044/110] Changed formal typo of emails.magicSession.subject --- app/config/locale/translations/hr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/hr.json b/app/config/locale/translations/hr.json index 78f2e830fb..4dcebf0a41 100644 --- a/app/config/locale/translations/hr.json +++ b/app/config/locale/translations/hr.json @@ -9,7 +9,7 @@ "emails.verification.footer": "Ukoliko niste zatražili potvrdu ove adrese, možete zanemariti ovu poruku.", "emails.verification.thanks": "Hvala", "emails.verification.signature": "{{project}} tim", - "emails.magicSession.subject": "Prijavi se", + "emails.magicSession.subject": "Prijavite se", "emails.magicSession.hello": "Pozdrav,", "emails.magicSession.body": "Slijedite ovu poveznicu za prijavu.", "emails.magicSession.footer": "Ako niste zatražili prijavu putem ove e-pošte, možete zanemariti ovu poruku.", From 397c6611bb7808853d58f8fa4e138e427dffc0d2 Mon Sep 17 00:00:00 2001 From: Rutam Prita Mishra Date: Fri, 1 Oct 2021 23:21:19 +0530 Subject: [PATCH 045/110] Added Odia translations --- app/config/locale/translations/or.json | 54 +++++++++++++------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/app/config/locale/translations/or.json b/app/config/locale/translations/or.json index 8e4fd4bc5e..fdf5c7ab34 100644 --- a/app/config/locale/translations/or.json +++ b/app/config/locale/translations/or.json @@ -1,34 +1,34 @@ { - "settings.inspire": "\"ଜ୍ଞାନୀ ହେବାର କଳା ହେଉଛି କ’ଣ ଅଣଦେଖା କରାଯିବ ଜାଣିବାର କଳା |\"", + "settings.inspire": "\"ବୁଦ୍ଧିମାନ ହେବାର କଳା ହେଉଛି କ’ଣ ଅଣଦେଖା କରାଯିବ ଜାଣିବାର କଳା |\"", "settings.locale": "or", "settings.direction": "ltr", - "emails.sender": "%s ଟିମ", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.sender": "%s ଦଳ", + "emails.verification.subject": "ଖାତା ଯାଞ୍ଚ", + "emails.verification.hello": "ନମସ୍କାର {{name}}", + "emails.verification.body": "ଆପଣଙ୍କର ଇମେଲ୍ ଠିକଣା ଯାଞ୍ଚ କରିବାକୁ ଏହି ଲିଙ୍କ୍ ଅନୁସରଣ କରନ୍ତୁ |", + "emails.verification.footer": "ଯଦି ଆପଣ ଏହି ଠିକଣା ଯାଞ୍ଚ କରିବାକୁ କହି ନାହାଁନ୍ତି, ତେବେ ଆପଣ ଏହି ସନ୍ଦେଶକୁ ଉପେକ୍ଷା କରିପାରିବେ |", + "emails.verification.thanks": "ଧନ୍ୟବାଦ", + "emails.verification.signature": "{{project}} ଦଳ", + "emails.magicSession.subject": "ଲଗଇନ୍ କରନ୍ତୁ", + "emails.magicSession.hello": "ନମସ୍କାର,", + "emails.magicSession.body": "ଲଗଇନ୍ କରିବାକୁ ଏହି ଲିଙ୍କ୍ ଅନୁସରଣ କରନ୍ତୁ |", + "emails.magicSession.footer": "ଯଦି ଆପଣ ଏହି ଇମେଲ୍ ବ୍ୟବହାର କରି ଲଗଇନ୍ କରିବାକୁ କହି ନାହାଁନ୍ତି, ତେବେ ଆପଣ ଏହି ସନ୍ଦେଶକୁ ଉପେକ୍ଷା କରିପାରିବେ |", + "emails.magicSession.thanks": "ଧନ୍ୟବାଦ", + "emails.magicSession.signature": "{{project}} ଦଳ", + "emails.recovery.subject": "ପାସୱାର୍ଡ ପୁନଃ ସେଟ୍ କରନ୍ତୁ |", + "emails.recovery.hello": "ନମସ୍କାର {{name}}", + "emails.recovery.body": "ଆପଣଙ୍କର {{project}} ପାସୱାର୍ଡ ପୁନଃ ସେଟ୍ କରିବାକୁ ଏହି ଲିଙ୍କକୁ ଅନୁସରଣ କରନ୍ତୁ |", + "emails.recovery.footer": "ଯଦି ଆପଣ ଆପଣଙ୍କର ପାସୱାର୍ଡ ପୁନଃ ସେଟ୍ କରିବାକୁ କହି ନାହାଁନ୍ତି, ତେବେ ଆପଣ ଏହି ସନ୍ଦେଶକୁ ଉପେକ୍ଷା କରିପାରିବେ |", + "emails.recovery.thanks": "ଧନ୍ୟବାଦ", + "emails.recovery.signature": "{{project}} ଦଳ", + "emails.invitation.subject": "%s ରେ %s ଦଳକୁ ନିମନ୍ତ୍ରଣ |", + "emails.invitation.hello": "ନମସ୍କାର", + "emails.invitation.body": "ଏହି ମେଲ୍ ଆପଣଙ୍କୁ ପଠାଯାଇଥିଲା କାରଣ {{owner}} ଆପଣଙ୍କୁ {{project} ରେ {{team}} ଦଳର ସଦସ୍ୟ ହେବାକୁ ଆମନ୍ତ୍ରଣ କରିବାକୁ ଚାହୁଁଥିଲେ |", + "emails.invitation.footer": "ଯଦି ଆପଣ ଆଗ୍ରହୀ ନୁହଁନ୍ତି, ଆପଣ ଏହି ସନ୍ଦେଶକୁ ଅଣଦେଖା କରିପାରିବେ |", + "emails.invitation.thanks": "ଧନ୍ୟବାଦ", + "emails.invitation.signature": "{{project}} ଦଳ", "locale.country.unknown": "ଅଜ୍ଞାତ", - "countries.af": "ଅଫଘନିସ୍ତାନ", + "countries.af": "ଆଫଗାନିସ୍ତାନ", "countries.ao": "ଅଙ୍ଗୋଲା", "countries.al": "ଆଲବେନିଆ", "countries.ad": "ଆଣ୍ଡୋରା", From 70dc5d2123846b18341450b5efceeb95a785ca46 Mon Sep 17 00:00:00 2001 From: Nikhil Shanbhag <61755381+Nikhil-1503@users.noreply.github.com> Date: Sat, 2 Oct 2021 00:00:48 +0530 Subject: [PATCH 046/110] Added Kannada translations --- app/config/locale/translations/kn.json | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/app/config/locale/translations/kn.json b/app/config/locale/translations/kn.json index 69c110f8a1..12da1f7373 100644 --- a/app/config/locale/translations/kn.json +++ b/app/config/locale/translations/kn.json @@ -3,30 +3,30 @@ "settings.locale": "ka", "settings.direction": "ltr", "emails.sender": "%s ತಂಡ", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "ಖಾತೆ ಪರಿಶೀಲನೆ", + "emails.verification.hello": "ನಮಸ್ಕಾರ {{name}}", + "emails.verification.body": "ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸ ಪರಿಶೀಲನೆಗೆ ಈ ಲಿಂಕನ್ನು ಅನುಸರಿಸಿ", + "emails.verification.footer": "ನೀವು ಇಮೇಲ್ ವಿಳಾಸ ಪರಿಶೀಲನೆಗೆ ಕೇಳದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ", + "emails.verification.thanks": "ಧನ್ಯವಾದಗಳು", + "emails.verification.signature": "{{project}} ತಂಡ", + "emails.magicSession.subject": "ಲಾಗಿನ್", + "emails.magicSession.hello": "ನಮಸ್ಕಾರ,", + "emails.magicSession.body": "ಲಾಗಿನ್ ಮಾಡಲಿಕ್ಕೆ ಈ ಲಿಂಕನ್ನು ಅನುಸರಿಸಿ", + "emails.magicSession.footer": "ನೀವು ಈ ಇಮೇಲನಿಂದ ಲಾಗಿನ್ ಮಾಡಲು ಕೇಳದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ", + "emails.magicSession.thanks": "ಧನ್ಯವಾದಗಳು", + "emails.magicSession.signature": "{{project}} ತಂಡ", + "emails.recovery.subject": "ಗುಪ್ತಪದ ಮರುಹೊಂದಿಸಿ", + "emails.recovery.hello": "ನಮಸ್ಕಾರ {{name}}", + "emails.recovery.body": "ನಿಮ್ಮ {{project}} ಗುಪ್ತಪದವನ್ನು ಮರುಹೊಂದಿಸಲು ಈ ಲಿಂಕನ್ನು ಅನುಸರಿಸಿ", + "emails.recovery.footer": "ನೀವು ಗುಪ್ತಪದವನ್ನು ಮರುಹೊಂದಿಸಲು ಕೇಳದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ", + "emails.recovery.thanks": "ಧನ್ಯವಾದಗಳು", + "emails.recovery.signature": "{{project}} ತಂಡ", + "emails.invitation.subject": "%s ತಂಡಕ್ಕೆ %sರಲ್ಲಿ ಆಹ್ವಾನ", + "emails.invitation.hello": "ನಮಸ್ಕಾರ", + "emails.invitation.body": "ಈ ಇಮೇಲ್ ನಿಮಗೆ ಬಂದಿದೆ ಏಕೆಂದರೆ {{owner}} ನಿಮ್ಮನ್ನು {{team}} ತಂಡದ {{project}}ರಲ್ಲಿ ಸದಸ್ಯ ಆಗಲಿಕ್ಕೆ ಆಹ್ವಾನಿಸಿದ್ದಾರೆ", + "emails.invitation.footer": "ನಿಮಗೆ ಆಸಕ್ತಿಯಿಲ್ಲದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ", + "emails.invitation.thanks": "ಧನ್ಯವಾದಗಳು", + "emails.invitation.signature": "{{project}} ತಂಡ", "locale.country.unknown": "Unknown", "countries.af": "ಅಫ್ಘಾನಿಸ್ತಾನ", "countries.ao": "ಅಂಗೋಲಾ", From 949146f04627f06c669d89ba27fd82d765acfb3a Mon Sep 17 00:00:00 2001 From: Dazzler Kumar Date: Sat, 2 Oct 2021 00:44:46 +0530 Subject: [PATCH 047/110] Bhojpuri (Bihari) language support --- app/config/locale/codes.php | 1 + app/config/locale/translations/bh.json | 232 +++++++++++++++++++++++++ app/init.php | 1 + 3 files changed, 234 insertions(+) create mode 100644 app/config/locale/translations/bh.json diff --git a/app/config/locale/codes.php b/app/config/locale/codes.php index c8623f533c..c0fdc33bc0 100644 --- a/app/config/locale/codes.php +++ b/app/config/locale/codes.php @@ -5,6 +5,7 @@ return [ 'ar', // Arabic 'be', // Belarusian 'bg', // Bulgarian + 'bh', // Bhojpuri or Bihari 'bn', // Bengali 'bs', //Bosnian 'ca', // Catalan diff --git a/app/config/locale/translations/bh.json b/app/config/locale/translations/bh.json new file mode 100644 index 0000000000..426af925bd --- /dev/null +++ b/app/config/locale/translations/bh.json @@ -0,0 +1,232 @@ +{ + "settings.inspire": "\"बुद्धिमान होवे की वह कला बा जॉन जानने की कला होला कि का अनदेखा किया जाए। \"", + "settings.locale": "bh", + "settings.direction": "ltr", + "emails.sender": "%s टीम", + "emails.verification.subject": "", + "emails.verification.hello": "", + "emails.verification.body": "", + "emails.verification.footer": "", + "emails.verification.thanks": "", + "emails.verification.signature": "", + "emails.magicSession.subject": "", + "emails.magicSession.hello": "", + "emails.magicSession.body": "", + "emails.magicSession.footer": "", + "emails.magicSession.thanks": "", + "emails.magicSession.signature": "", + "emails.recovery.subject": "", + "emails.recovery.hello": "", + "emails.recovery.body": "", + "emails.recovery.footer": "", + "emails.recovery.thanks": "", + "emails.recovery.signature": "", + "emails.invitation.subject": "", + "emails.invitation.hello": "", + "emails.invitation.body": "", + "emails.invitation.footer": "", + "emails.invitation.thanks": "", + "emails.invitation.signature": "", + "locale.country.unknown": "अज्ञात", + "countries.af": "अफ़ग़ानिस्तान", + "countries.ao": "अंगोला", + "countries.al": "अल्बानिया", + "countries.ad": "अंडोरा", + "countries.ae": "संयुक्त अरब अमीरात", + "countries.ar": "अर्जेंटीना", + "countries.am": "आर्मीनिया", + "countries.ag": "अंटीगुआ और बारबूडा", + "countries.au": "ऑस्ट्रेलिया", + "countries.at": "ऑस्ट्रिया", + "countries.az": "अज़रबैजान", + "countries.bi": "बुरुंडी", + "countries.be": "बेल्जियम", + "countries.bj": "बेनिन", + "countries.bf": "बुर्किना फासो", + "countries.bd": "बांग्लादेश", + "countries.bg": "बुल्गारिया", + "countries.bh": "बहरीन", + "countries.bs": "बहामास", + "countries.ba": "बॉस्निया और हर्ज़ेगोविना", + "countries.by": "बेलारूस", + "countries.bz": "बेलीज़", + "countries.bo": "बोलीविया", + "countries.br": "ब्राज़ील", + "countries.bb": "बारबाडोस", + "countries.bn": "ब्रुनेई", + "countries.bt": "भूटान", + "countries.bw": "बोत्सवाना", + "countries.cf": "मध्य अफ्रीकी गणराज्य", + "countries.ca": "कनाडा", + "countries.ch": "स्विट्ज़रलैंड", + "countries.cl": "चिली", + "countries.cn": "चीन", + "countries.ci": "आइवरी कोस्ट", + "countries.cm": "कैमरून", + "countries.cd": "कांगो लोकतान्त्रिक गणराज्य", + "countries.cg": "कांगो गणराज्य", + "countries.co": "कोलंबिया", + "countries.km": "कोमोरोस", + "countries.cv": "केप वर्दे", + "countries.cr": "कोस्टा रीका", + "countries.cu": "क्यूबा", + "countries.cy": "साइप्रस", + "countries.cz": "चेक गणराज्य", + "countries.de": "जर्मनी", + "countries.dj": "जिबूती", + "countries.dm": "डोमिनिका", + "countries.dk": "डेनमार्क", + "countries.do": "डोमिनिकन रिपब्लिक", + "countries.dz": "अल्जीरिया", + "countries.ec": "ईक्वाडोर", + "countries.eg": "मिस्र", + "countries.er": "इरित्रिया", + "countries.es": "स्पेन", + "countries.ee": "एस्टोनिया", + "countries.et": "इथियोपिया", + "countries.fi": "फ़िनलैंड", + "countries.fj": "फ़िजी", + "countries.fr": "फ्रांस", + "countries.fm": "माइक्रोनेशिया", + "countries.ga": "गबोन", + "countries.gb": "यूनाइटेड किंगडम", + "countries.ge": "जॉर्जिया", + "countries.gh": "घाना", + "countries.gn": "गिनी", + "countries.gm": "ज़ाम्बिया", + "countries.gw": "गिनी-बिसाऊ", + "countries.gq": "इक्वेटोरियल गिनी", + "countries.gr": "यूनान", + "countries.gd": "ग्रेनाडा", + "countries.gt": "ग्वाटेमाला", + "countries.gy": "गयाना", + "countries.hn": "होंडुरस", + "countries.hr": "क्रोएशिया", + "countries.ht": "हैती", + "countries.hu": "हंगरी", + "countries.id": "इंडोनेशिया", + "countries.in": "भारत", + "countries.ie": "आयरलैंड", + "countries.ir": "ईरान", + "countries.iq": "इराक", + "countries.is": "आइसलैंड", + "countries.il": "इज़राइल", + "countries.it": "इटली", + "countries.jm": "जमैका", + "countries.jo": "जॉर्डन", + "countries.jp": "जापान", + "countries.kz": "कज़ाख़िस्तान", + "countries.ke": "कीनियाा", + "countries.kg": "किर्गिज़स्तान", + "countries.kh": "कंबोडिया", + "countries.ki": "किरिबाती", + "countries.kn": "सेंट किट्स एंड नेविस", + "countries.kr": "दक्षिण कोरिया", + "countries.kw": "कुवैत", + "countries.la": "लाओस", + "countries.lb": "लेबनान", + "countries.lr": "लाइबेरिया", + "countries.ly": "लीबिया", + "countries.lc": "सेंट लूसिया", + "countries.li": "लिकटेंस्टीन", + "countries.lk": "श्रीलंका", + "countries.ls": "लेसोथो", + "countries.lt": "लिथुआनिया", + "countries.lu": "लक्ज़मबर्ग", + "countries.lv": "लातविया", + "countries.ma": "मोरक्को", + "countries.mc": "मोनैको", + "countries.md": "मॉल्डोवा", + "countries.mg": "मेडागास्कर", + "countries.mv": "मालदीव", + "countries.mx": "मेक्सिको", + "countries.mh": "मार्शल द्वीपसमूह", + "countries.mk": "मैसिडोनिया", + "countries.ml": "माली", + "countries.mt": "माल्टा", + "countries.mm": "म्यांमार", + "countries.me": "मोंटेनेग्रो", + "countries.mn": "मंगोलिया", + "countries.mz": "मोज़ाम्बिक", + "countries.mr": "मॉरिटानिया", + "countries.mu": "मॉरिशस", + "countries.mw": "मलावी", + "countries.my": "मलेशिया", + "countries.na": "नामीबिया", + "countries.ne": "नाइजर", + "countries.ng": "नाईजीरिया", + "countries.ni": "निकारागुआ", + "countries.nl": "नीदरलैंड", + "countries.no": "नॉर्वे", + "countries.np": "नेपाल", + "countries.nr": "नाउरु", + "countries.nz": "न्यूजीलैंड", + "countries.om": "ओमान", + "countries.pk": "पाकिस्तान", + "countries.pa": "पनामा", + "countries.pe": "पेरू", + "countries.ph": "फिलीपींस", + "countries.pw": "पलाऊ", + "countries.pg": "पापुआ न्यू गिनी", + "countries.pl": "पोलैंड", + "countries.kp": "उत्तर कोरिया", + "countries.pt": "पुर्तगाल", + "countries.py": "पैराग्वे", + "countries.qa": "क़तर", + "countries.ro": "रोमानिया", + "countries.ru": "रूस", + "countries.rw": "रवांडा", + "countries.sa": "सऊदी अरब", + "countries.sd": "सूडान", + "countries.sn": "सेनेगल", + "countries.sg": "सिंगापुर", + "countries.sb": "सोलोमन द्वीप", + "countries.sl": "सिएरा लियोन", + "countries.sv": "अल साल्वाडोर", + "countries.sm": "सैन मैरिनो", + "countries.so": "सोमालिया", + "countries.rs": "सर्बिया", + "countries.ss": "दक्षिण सूडान", + "countries.st": "साओ तोमे और प्रिंसिपी", + "countries.sr": "सूरीनाम", + "countries.sk": "स्लोवाकिया", + "countries.si": "स्लोवेनिया", + "countries.se": "स्वीडन", + "countries.sz": "स्वाज़ीलैंड", + "countries.sc": "सेशेल्स", + "countries.sy": "सीरिया", + "countries.td": "चाड", + "countries.tg": "टोगो", + "countries.th": "थाईलैंड", + "countries.tj": "ताजिकिस्तान", + "countries.tm": "तुर्कमेनिस्तान", + "countries.tl": "तिमोर-लेस्ते", + "countries.to": "टोंगा", + "countries.tt": "त्रिनिदाद और टोबैगो", + "countries.tn": "ट्यूनीशिया", + "countries.tr": "तुर्की", + "countries.tv": "तुवालू", + "countries.tz": "तंजानिया", + "countries.ug": "युगांडा", + "countries.ua": "यूक्रेन", + "countries.uy": "उरुग्वे", + "countries.us": "संयुक्त राज्य अमेरिका", + "countries.uz": "उज़्बेकिस्तान", + "countries.va": "वैटिकन सिटी", + "countries.vc": "सेंट विंसेंट एंड ग्रेनेडाइंस", + "countries.ve": "वेनेज़ुएला", + "countries.vn": "वियतनाम", + "countries.vu": "वानूआतू", + "countries.ws": "समोआ", + "countries.ye": "यमन", + "countries.za": "दक्षिण अफ्रीका", + "countries.zm": "ज़ाम्बिया", + "countries.zw": "ज़िम्बाब्वे", + "continents.af": "अफ़्रीका", + "continents.an": "अंटार्कटिका", + "continents.as": "एशिया", + "continents.eu": "यूरोप", + "continents.na": "उत्तरी अमेरिका", + "continents.oc": "ओशिनिया", + "continents.sa": "दक्षिण अमेरिका" +} \ No newline at end of file diff --git a/app/init.php b/app/init.php index 8c1d6cb455..97768245ee 100644 --- a/app/init.php +++ b/app/init.php @@ -265,6 +265,7 @@ Locale::setLanguageFromJSON('af', __DIR__.'/config/locale/translations/af.json') Locale::setLanguageFromJSON('ar', __DIR__.'/config/locale/translations/ar.json'); Locale::setLanguageFromJSON('be', __DIR__.'/config/locale/translations/be.json'); Locale::setLanguageFromJSON('bg', __DIR__.'/config/locale/translations/bg.json'); +Locale::setLanguageFromJSON('bh', __DIR__.'/config/locale/translations/bh.json'); Locale::setLanguageFromJSON('bn', __DIR__.'/config/locale/translations/bn.json'); Locale::setLanguageFromJSON('bs', __DIR__.'/config/locale/translations/bs.json'); Locale::setLanguageFromJSON('ca', __DIR__.'/config/locale/translations/ca.json'); From 95838809381a5c526fb0a4fd65ab2bc04f51043b Mon Sep 17 00:00:00 2001 From: Arsan Gamal Date: Fri, 1 Oct 2021 23:16:33 +0200 Subject: [PATCH 048/110] [Fix] Typo fix in translations --- app/config/locale/translations/ar.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/ar.json b/app/config/locale/translations/ar.json index 97405dbd0d..9a40d4f1c3 100644 --- a/app/config/locale/translations/ar.json +++ b/app/config/locale/translations/ar.json @@ -6,7 +6,7 @@ "emails.verification.subject": "تأكيد الحساب", "emails.verification.hello": "مرحبا {{name}}", "emails.verification.body": "برجاء اتباع الرابط التالي لتأكيد بريدك الإلكتروني", - "emails.verification.footer": "لو لم تطلب تأكيد هذا البريد الإلكتروني ، يمكنك تجاهل هذه الرسالة", + "emails.verification.footer": "لو لم تطلب تأكيد هذا البريد الإلكتروني، يمكنك تجاهل هذه الرسالة", "emails.verification.thanks": "شكرا", "emails.verification.signature": "فريق {{project}}", "emails.magicSession.subject": "تسجيل الدخول", From ff05dc02523565050e330d81c952fb4f76d08fd3 Mon Sep 17 00:00:00 2001 From: chuiizeet Date: Fri, 1 Oct 2021 16:40:04 -0500 Subject: [PATCH 049/110] Update spanish language translation file --- app/config/locale/translations/es.json | 50 +++++++++++++------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/config/locale/translations/es.json b/app/config/locale/translations/es.json index b83bcdf4a4..014223e6ea 100644 --- a/app/config/locale/translations/es.json +++ b/app/config/locale/translations/es.json @@ -3,30 +3,30 @@ "settings.locale": "es", "settings.direction": "ltr", "emails.sender": "Equipo %s", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Verificación de cuenta", + "emails.verification.hello": "Hola {{name}}", + "emails.verification.body": "Haz clic en este enlace para verificar tu correo.", + "emails.verification.footer": "Si no has solicitado verificar este correo, puedes ignorar este mensaje.", + "emails.verification.thanks": "Gracias", + "emails.verification.signature": "Equipo de {{project}}", + "emails.magicSession.subject": "Inicio de Sesión", + "emails.magicSession.hello": "Hola,", + "emails.magicSession.body": "Haz clic en este enlace para iniciar sesión.", + "emails.magicSession.footer": "Si no has solicitado ingresar usando este correo, puedes ignorar este mensaje.", + "emails.magicSession.thanks": "Gracias", + "emails.magicSession.signature": "Equipo de {{project}}", + "emails.recovery.subject": "Restablecer contraseña", + "emails.recovery.hello": "Hola {{name}}", + "emails.recovery.body": "Haz clic en este enlace para restablecer la contraseña de tu proyecto {{project}}.", + "emails.recovery.footer": "Si no has solicitado restablecer la contraseña, puedes ignorar este mensaje.", + "emails.recovery.thanks": "Gracias", + "emails.recovery.signature": "Equipo de {{project}}", + "emails.invitation.subject": "Invitacion al Equipo %s en %s", + "emails.invitation.hello": "Hola", + "emails.invitation.body": "Este correo ha sido enviado a petición de {{owner}} quien quiere invitarte a formar parte del equipo {{team}} en el proyecto {{project}}.", + "emails.invitation.footer": "Si no estas interesado, puedes ignorar este mensaje.", + "emails.invitation.thanks": "Gracias", + "emails.invitation.signature": "Equipo de {{project}}", "locale.country.unknown": "Desconocido", "countries.af": "Afganistán", "countries.ao": "Angola", @@ -139,7 +139,7 @@ "countries.md": "Moldavia", "countries.mg": "Madagascar", "countries.mv": "Maldivas", - "countries.mx": "Mexico", + "countries.mx": "México", "countries.mh": "Islas Marshall", "countries.mk": "Macedonia", "countries.ml": "Malí", From a2f6ef0b19b3bd9b6ef513995a51a4c485f44814 Mon Sep 17 00:00:00 2001 From: HelloSeaNation Date: Sat, 2 Oct 2021 14:41:43 +1300 Subject: [PATCH 050/110] Update zh-cn.json --- app/config/locale/translations/zh-cn.json | 50 +++++++++++------------ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/config/locale/translations/zh-cn.json b/app/config/locale/translations/zh-cn.json index f6739a1edb..fa997c07f6 100644 --- a/app/config/locale/translations/zh-cn.json +++ b/app/config/locale/translations/zh-cn.json @@ -3,30 +3,30 @@ "settings.locale": "zh", "settings.direction": "ltr", "emails.sender": "%s 小组", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "帐户验证", + "emails.verification.hello": "你好 {{name}}", + "emails.verification.body": "点此链接验证您的电子邮件地址。", + "emails.verification.footer": "如果您没有要求验证此地址,则可忽略此消息。", + "emails.verification.thanks": "谢谢", + "emails.verification.signature": "{{project}} 团队", + "emails.magicSession.subject": "登录", + "emails.magicSession.hello": "你好,", + "emails.magicSession.body": "点此链接登录。", + "emails.magicSession.footer": "如果您没有要求使用此电子邮件登录,则可忽略此消息。", + "emails.magicSession.thanks": "谢谢", + "emails.magicSession.signature": "{{project}} 团队", + "emails.recovery.subject": "重设密码", + "emails.recovery.hello": "你好 {{name}}", + "emails.recovery.body": "点此链接重置您的 {{project}} 密码。", + "emails.recovery.footer": "如果您没有要求重置密码,则可以忽略此消息。", + "emails.recovery.thanks": "谢谢", + "emails.recovery.signature": "{{project}} 团队", + "emails.invitation.subject": "邀请 %s 团队在 %s", + "emails.invitation.hello": "你好", + "emails.invitation.body": "这封邮件发送给您是因为 {{owner}} 想邀请您成为 {{team}} 团队在 {{project}}.", + "emails.invitation.footer": "如果您不感兴趣,可以忽略此消息。", + "emails.invitation.thanks": "谢谢", + "emails.invitation.signature": "{{project}} 团队", "locale.country.unknown": "未知", "countries.af": "阿富汗", "countries.ao": "安哥拉", @@ -229,4 +229,4 @@ "continents.na": "北美洲", "continents.oc": "大洋洲", "continents.sa": "南美洲" -} \ No newline at end of file +} From de43fabb93bdc63091e77926518529417de7782f Mon Sep 17 00:00:00 2001 From: HelloSeaNation Date: Sat, 2 Oct 2021 14:47:29 +1300 Subject: [PATCH 051/110] Update zh-cn.json tidy up the line at the bottom From d462db0cfbe81f2f8db4d1d130d54c3a40cea923 Mon Sep 17 00:00:00 2001 From: HelloSeaNation Date: Sat, 2 Oct 2021 14:48:03 +1300 Subject: [PATCH 052/110] Update zh-cn.json From 062da599a524634eb062437bacc3701451fc5863 Mon Sep 17 00:00:00 2001 From: Dazzler Kumar Date: Sat, 2 Oct 2021 15:01:54 +0530 Subject: [PATCH 053/110] Added Bihari Translations --- app/config/locale/codes.php | 2 +- app/config/locale/translations/bh.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/config/locale/codes.php b/app/config/locale/codes.php index c0fdc33bc0..4d65a72dc7 100644 --- a/app/config/locale/codes.php +++ b/app/config/locale/codes.php @@ -5,7 +5,7 @@ return [ 'ar', // Arabic 'be', // Belarusian 'bg', // Bulgarian - 'bh', // Bhojpuri or Bihari + 'bh', // Bihari 'bn', // Bengali 'bs', //Bosnian 'ca', // Catalan diff --git a/app/config/locale/translations/bh.json b/app/config/locale/translations/bh.json index 426af925bd..7b48a4d2a7 100644 --- a/app/config/locale/translations/bh.json +++ b/app/config/locale/translations/bh.json @@ -1,5 +1,5 @@ { - "settings.inspire": "\"बुद्धिमान होवे की वह कला बा जॉन जानने की कला होला कि का अनदेखा किया जाए। \"", + "settings.inspire": "\"बुद्धिमान होइत क कला ई जाने क कला अछि जे की अनदेखा कर्मा चाहि| \"", "settings.locale": "bh", "settings.direction": "ltr", "emails.sender": "%s टीम", @@ -27,7 +27,7 @@ "emails.invitation.footer": "", "emails.invitation.thanks": "", "emails.invitation.signature": "", - "locale.country.unknown": "अज्ञात", + "locale.country.unknown": "अनजान", "countries.af": "अफ़ग़ानिस्तान", "countries.ao": "अंगोला", "countries.al": "अल्बानिया", From b6ee537537c3f402aa5a660979351307c49aec1b Mon Sep 17 00:00:00 2001 From: Kokoden <51828039+Kokoden@users.noreply.github.com> Date: Sat, 2 Oct 2021 16:39:06 +0200 Subject: [PATCH 054/110] Add Hebrew translation --- app/config/locale/translations/he.json | 50 +++++++++++++------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/config/locale/translations/he.json b/app/config/locale/translations/he.json index 93527c6fab..71d171df4c 100644 --- a/app/config/locale/translations/he.json +++ b/app/config/locale/translations/he.json @@ -1,32 +1,32 @@ { - "settings.inspire": "\"The art of being wise is the art of knowing what to overlook.\"", + "settings.inspire": "\"להיות חכם זה לדעת מתי להתעלם.\"", "settings.locale": "he", "settings.direction": "rtl", "emails.sender": "צוות %s", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "אימות חשבון", + "emails.verification.hello": "שלום {{name}}", + "emails.verification.body": "לחץ על קישור זה כדי לאמת את כתובת הדוא\"ל שלך.", + "emails.verification.footer": "אם לא ביקשת לאמת כתובת זו, תוכל להתעלם מהודעה זו.", + "emails.verification.thanks": "תודה", + "emails.verification.signature": "צוות {{project}}", + "emails.magicSession.subject": "כניסה למערכת", + "emails.magicSession.hello": "שלום,", + "emails.magicSession.body": "לחץ על קישור זה כדי להיכנס.", + "emails.magicSession.footer": "אם לא ביקשת להיכנס באמצעות דוא\"ל זה, תוכל להתעלם מהודעה זו.", + "emails.magicSession.thanks": "תודה", + "emails.magicSession.signature": "צוות {{project}}", + "emails.recovery.subject": "איפוס סיסמא", + "emails.recovery.hello": "שלום {{name}}", + "emails.recovery.body": "עקוב אחר קישור זה כדי לאפס את סיסמת הפרויקט {{project}}.", + "emails.recovery.footer": "אם לא ביקשת לאפס את הסיסמה, תוכל להתעלם מהודעה זו.", + "emails.recovery.thanks": "תודה", + "emails.recovery.signature": "צוות {{project}}", + "emails.invitation.subject": "הזמנה לצוות %s ב- %s", + "emails.invitation.hello": "שלום", + "emails.invitation.body": "דואר זה נשלח אליך מכיוון ש {{owner}} רצה להזמין אותך להיות חבר בצוות {{team}} ב- {{project}}.", + "emails.invitation.footer": "אם אינך מעוניין, תוכל להתעלם מהודעה זו.", + "emails.invitation.thanks": "תודה", + "emails.invitation.signature": "צוות {{project}}", "locale.country.unknown": "לא ידוע", "countries.af": "אפגניסטן", "countries.ao": "אנגולה", From cc006d695465d063361ebb74c82ee007f372c5a7 Mon Sep 17 00:00:00 2001 From: Minna N <44906587+minna-xD@users.noreply.github.com> Date: Sat, 2 Oct 2021 20:32:51 +0300 Subject: [PATCH 055/110] Updated Finnish translations --- app/config/locale/translations/fi.json | 56 +++++++++++++------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/app/config/locale/translations/fi.json b/app/config/locale/translations/fi.json index 15d4508f5d..f407bf4d04 100644 --- a/app/config/locale/translations/fi.json +++ b/app/config/locale/translations/fi.json @@ -1,33 +1,33 @@ { - "settings.inspire": "\"The art of being wise is the art of knowing what to overlook.\"", + "settings.inspire": "\"Viisaus merkitsee epäolennaisen ohittamisen taitoa.\"", "settings.locale": "fi", "settings.direction": "ltr", "emails.sender": "%s Tiimi", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", - "locale.country.unknown": "Unknown", + "emails.verification.subject": "Tilin vahvistaminen", + "emails.verification.hello": "Hei {{name}}", + "emails.verification.body": "Vahvista sähköpostiosoitteesi napsauttamalla tätä linkkiä.", + "emails.verification.footer": "Voit ohittaa tämän viestin, jos et pyytänyt sähköpostiosoitteen vahvistamista.", + "emails.verification.thanks": "Kiitos", + "emails.verification.signature": "Projektin {{project}} tiimi", + "emails.magicSession.subject": "Sisäänkirjautuminen", + "emails.magicSession.hello": "Hei,", + "emails.magicSession.body": "Kirjaudu sisään napsauttamalla tätä linkkiä.", + "emails.magicSession.footer": "Voit ohittaa tämän viestin, jos et pyytänyt sisäänkirjautumista tällä sähköpostiosoitteella.", + "emails.magicSession.thanks": "Kiitos", + "emails.magicSession.signature": "Projektin {{project}} tiimi", + "emails.recovery.subject": "Salasanan nollaaminen", + "emails.recovery.hello": "Hei {{name}}", + "emails.recovery.body": "Nollaa projektin {{project}} salasanasi napsauttamalla tätä linkkiä.", + "emails.recovery.footer": "Voit ohittaa tämän viestin, jos et pyytänyt salasanasi nollaamista.", + "emails.recovery.thanks": "Kiitos", + "emails.recovery.signature": "Projektin {{project}} tiimi", + "emails.invitation.subject": "Kutsu liittyä tiimiin %s projektissa %s", + "emails.invitation.hello": "Hei", + "emails.invitation.body": "Saat tämän viestin, koska {{owner}} haluaa kutsua sinut tiimin {{team}} jäseneksi projektissa {{project}}.", + "emails.invitation.footer": "Voit ohittaa tämän viestin, jos et halua liittyä tiimiin.", + "emails.invitation.thanks": "Kiitos", + "emails.invitation.signature": "Projektin {{project}} tiimi", + "locale.country.unknown": "Tuntematon", "countries.af": "Afganistan", "countries.ao": "Angola", "countries.al": "Albania", @@ -226,7 +226,7 @@ "continents.an": "Antarktis", "continents.as": "Aasia", "continents.eu": "Eurooppa", - "continents.na": "Pohjois Amerikka", + "continents.na": "Pohjois-Amerikka", "continents.oc": "Oceania", - "continents.sa": "Etelä Amerikka" + "continents.sa": "Etelä-Amerikka" } \ No newline at end of file From 9a6a5cb37fe5de3853d45ed66311aed04ea9fb67 Mon Sep 17 00:00:00 2001 From: teeradon43 Date: Sun, 3 Oct 2021 03:13:37 +0700 Subject: [PATCH 056/110] Update translations for Thai --- app/config/locale/translations/th.json | 52 +++++++++++++------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/app/config/locale/translations/th.json b/app/config/locale/translations/th.json index df80f6c76e..aefa60203c 100644 --- a/app/config/locale/translations/th.json +++ b/app/config/locale/translations/th.json @@ -1,32 +1,32 @@ { - "settings.inspire": "\"ศิลปะแห่งความฉลาดคือศิลปะแห่งการรู้ว่าจะมองข้ามอะไร\"", + "settings.inspire": "\"ศิลปะของการมีปัญญา คือการตระหนักได้ว่าควรจะมองข้ามเรื่องอะไร\"", "settings.locale": "th", "settings.direction": "ltr", - "emails.sender": "%s ทีม", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.sender": "ทีม %s", + "emails.verification.subject": "การยืนยันบัญชีผู้ใช้", + "emails.verification.hello": "เรียนคุณ {{name}}", + "emails.verification.body": "กดเข้าไปที่ลิงก์นี้เพื่อยืนยันอีเมลของท่าน", + "emails.verification.footer": "หากท่านไม่ได้ต้องการที่จะยืนยันอีเมลนี้ ท่านสามารถเพิกเฉยกับข้อความนี้ได้", + "emails.verification.thanks": "ขอบคุณ", + "emails.verification.signature": "ทีม {{project}}", + "emails.magicSession.subject": "เข้าสู่ระบบ", + "emails.magicSession.hello": "เรียนผู้ใช้งาน,", + "emails.magicSession.body": "กดเข้าไปที่ลิงก์นี้เพื่อเข้าสู่ระบบ", + "emails.magicSession.footer": "หากท่านไม่ได้ต้องการที่จะเข้าสู่ระบบด้วยอีเมลนี้ ท่านสามารถเพิกเฉยกับข้อความนี้ได้", + "emails.magicSession.thanks": "ขอบคุณ", + "emails.magicSession.signature": "ทีม {{project}}", + "emails.recovery.subject": "รีเซ็ตรหัสผ่าน", + "emails.recovery.hello": "เรียนคุณ {{name}}", + "emails.recovery.body": "กดเข้าไปที่ลิงก์นี้เพื่อรีเซ็ตรหัสผ่าน {{project}} ของท่าน", + "emails.recovery.footer": "หากท่านไม่ได้ต้องการที่จะรีเซ็ตรหัสผ่านของท่าน ท่านสามารถเพิกเฉยกับข้อความนี้ได้", + "emails.recovery.thanks": "ขอบคุณ", + "emails.recovery.signature": "ทีม {{project}}", + "emails.invitation.subject": "เรียนเชิญเข้าร่วม ทีม %s จากโปรเจกต์ %s", + "emails.invitation.hello": "สวัสดี", + "emails.invitation.body": "ท่านได้รับอีเมลฉบับนี้เนื่องจาก {{owner}} ต้องการที่จะเชิญชวนคุณเข้าร่วมเป็นส่วนหนึ่งของ ทีม {{team}} จากโปรเจกต์ {{project}}", + "emails.invitation.footer": "หากท่านไม่ได้สนใจที่จะเข้าร่วม ท่านสามารถเพิกเฉยกับข้อความนี้ได้", + "emails.invitation.thanks": "ขอบคุณ", + "emails.invitation.signature": "ทีม {{project}}", "locale.country.unknown": "ไม่ทราบ", "countries.af": "อัฟกานิสถาน", "countries.ao": "แองโกลา", From 8a323c6e2b221d58fe4ee0411635dca7cdff3e1b Mon Sep 17 00:00:00 2001 From: teeradon43 Date: Sun, 3 Oct 2021 03:22:23 +0700 Subject: [PATCH 057/110] Updated th translations --- app/config/locale/translations/th.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/config/locale/translations/th.json b/app/config/locale/translations/th.json index aefa60203c..62b8f17cdb 100644 --- a/app/config/locale/translations/th.json +++ b/app/config/locale/translations/th.json @@ -6,25 +6,25 @@ "emails.verification.subject": "การยืนยันบัญชีผู้ใช้", "emails.verification.hello": "เรียนคุณ {{name}}", "emails.verification.body": "กดเข้าไปที่ลิงก์นี้เพื่อยืนยันอีเมลของท่าน", - "emails.verification.footer": "หากท่านไม่ได้ต้องการที่จะยืนยันอีเมลนี้ ท่านสามารถเพิกเฉยกับข้อความนี้ได้", + "emails.verification.footer": "หากท่านไม่ได้ต้องการที่จะยืนยันอีเมลนี้ ท่านสามารถเพิกเฉยข้อความนี้ได้", "emails.verification.thanks": "ขอบคุณ", "emails.verification.signature": "ทีม {{project}}", "emails.magicSession.subject": "เข้าสู่ระบบ", "emails.magicSession.hello": "เรียนผู้ใช้งาน,", "emails.magicSession.body": "กดเข้าไปที่ลิงก์นี้เพื่อเข้าสู่ระบบ", - "emails.magicSession.footer": "หากท่านไม่ได้ต้องการที่จะเข้าสู่ระบบด้วยอีเมลนี้ ท่านสามารถเพิกเฉยกับข้อความนี้ได้", + "emails.magicSession.footer": "หากท่านไม่ได้ต้องการที่จะเข้าสู่ระบบด้วยอีเมลนี้ ท่านสามารถเพิกเฉยข้อความนี้ได้", "emails.magicSession.thanks": "ขอบคุณ", "emails.magicSession.signature": "ทีม {{project}}", "emails.recovery.subject": "รีเซ็ตรหัสผ่าน", "emails.recovery.hello": "เรียนคุณ {{name}}", - "emails.recovery.body": "กดเข้าไปที่ลิงก์นี้เพื่อรีเซ็ตรหัสผ่าน {{project}} ของท่าน", - "emails.recovery.footer": "หากท่านไม่ได้ต้องการที่จะรีเซ็ตรหัสผ่านของท่าน ท่านสามารถเพิกเฉยกับข้อความนี้ได้", + "emails.recovery.body": "กดเข้าไปที่ลิงก์นี้เพื่อรีเซ็ตรหัสผ่านสำหรับโปรเจกต์ {{project}} ของท่าน", + "emails.recovery.footer": "หากท่านไม่ได้ต้องการที่จะรีเซ็ตรหัสผ่านของท่าน ท่านสามารถเพิกเฉยข้อความนี้ได้", "emails.recovery.thanks": "ขอบคุณ", "emails.recovery.signature": "ทีม {{project}}", "emails.invitation.subject": "เรียนเชิญเข้าร่วม ทีม %s จากโปรเจกต์ %s", "emails.invitation.hello": "สวัสดี", "emails.invitation.body": "ท่านได้รับอีเมลฉบับนี้เนื่องจาก {{owner}} ต้องการที่จะเชิญชวนคุณเข้าร่วมเป็นส่วนหนึ่งของ ทีม {{team}} จากโปรเจกต์ {{project}}", - "emails.invitation.footer": "หากท่านไม่ได้สนใจที่จะเข้าร่วม ท่านสามารถเพิกเฉยกับข้อความนี้ได้", + "emails.invitation.footer": "หากท่านไม่ได้สนใจที่จะเข้าร่วม ท่านสามารถเพิกเฉยข้อความนี้ได้", "emails.invitation.thanks": "ขอบคุณ", "emails.invitation.signature": "ทีม {{project}}", "locale.country.unknown": "ไม่ทราบ", From e08d9bbda2c4ba191a969cb700860e19529a486a Mon Sep 17 00:00:00 2001 From: Michael Gangolf Date: Sat, 2 Oct 2021 22:26:55 +0200 Subject: [PATCH 058/110] Add new Titanium SDK --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ab4670f19a..42c6b99892 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,7 @@ Below is a list of currently supported platforms and languages. If you wish to h * ✅   [Web](https://github.com/appwrite/sdk-for-web) (Maintained by the Appwrite Team) * ✅   [Flutter](https://github.com/appwrite/sdk-for-flutter) (Maintained by the Appwrite Team) * ✅   [Android](https://github.com/appwrite/sdk-for-android) (Maintained by the Appwrite Team) +* ✅   [Appcelerator Titanium](https://github.com/m1ga/ti.appwrite) (Maintained by [Michael Gangolf](https://github.com/m1ga/)) #### Server * ✅   [NodeJS](https://github.com/appwrite/sdk-for-node) (Maintained by the Appwrite Team) From a8b06a51f289983cc70267c779c8af6ab98f70c6 Mon Sep 17 00:00:00 2001 From: Eden <51828039+Kokoden@users.noreply.github.com> Date: Sat, 2 Oct 2021 23:46:53 +0200 Subject: [PATCH 059/110] Fix Hebrew translation Co-authored-by: Eldad A. Fux --- app/config/locale/translations/he.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/he.json b/app/config/locale/translations/he.json index 71d171df4c..13ad351376 100644 --- a/app/config/locale/translations/he.json +++ b/app/config/locale/translations/he.json @@ -1,5 +1,5 @@ { - "settings.inspire": "\"להיות חכם זה לדעת מתי להתעלם.\"", + "settings.inspire": "\"להיות חכם זה לדעת ממה להתעלם.\"", "settings.locale": "he", "settings.direction": "rtl", "emails.sender": "צוות %s", From 32aa7c321b8bb045ba729cd97eee372f4442f1f3 Mon Sep 17 00:00:00 2001 From: Michael Gangolf Date: Sat, 2 Oct 2021 23:47:29 +0200 Subject: [PATCH 060/110] Update README.md move to `community` section --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 42c6b99892..b2cab46b4a 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,7 @@ Table of Contents: - [SDKs](#sdks) - [Client](#client) - [Server](#server) + - [Community](#community) - [Contributing](#contributing) - [Security](#security) - [Follow Us](#follow-us) @@ -123,7 +124,6 @@ Below is a list of currently supported platforms and languages. If you wish to h * ✅   [Web](https://github.com/appwrite/sdk-for-web) (Maintained by the Appwrite Team) * ✅   [Flutter](https://github.com/appwrite/sdk-for-flutter) (Maintained by the Appwrite Team) * ✅   [Android](https://github.com/appwrite/sdk-for-android) (Maintained by the Appwrite Team) -* ✅   [Appcelerator Titanium](https://github.com/m1ga/ti.appwrite) (Maintained by [Michael Gangolf](https://github.com/m1ga/)) #### Server * ✅   [NodeJS](https://github.com/appwrite/sdk-for-node) (Maintained by the Appwrite Team) @@ -135,6 +135,9 @@ Below is a list of currently supported platforms and languages. If you wish to h * ✅   [Kotlin](https://github.com/appwrite/sdk-for-kotlin) - **Beta** (Maintained by the Appwrite Team) * ✅   [.NET](https://github.com/appwrite/sdk-for-dotnet) - **Experimental** (Maintained by the Appwrite Team) +#### Community +* ✅   [Appcelerator Titanium](https://github.com/m1ga/ti.appwrite) (Maintained by [Michael Gangolf](https://github.com/m1ga/)) + Looking for more SDKs? - Help us by contributing a pull request to our [SDK Generator](https://github.com/appwrite/sdk-generator)! ## Contributing From 9782cb02f28cee176bd15e7658b854d85477922b Mon Sep 17 00:00:00 2001 From: Eden <51828039+Kokoden@users.noreply.github.com> Date: Sat, 2 Oct 2021 23:53:45 +0200 Subject: [PATCH 061/110] Apply translation fixes from code review Co-authored-by: Eldad A. Fux --- app/config/locale/translations/he.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/config/locale/translations/he.json b/app/config/locale/translations/he.json index 13ad351376..ef4af6f56e 100644 --- a/app/config/locale/translations/he.json +++ b/app/config/locale/translations/he.json @@ -17,13 +17,13 @@ "emails.magicSession.signature": "צוות {{project}}", "emails.recovery.subject": "איפוס סיסמא", "emails.recovery.hello": "שלום {{name}}", - "emails.recovery.body": "עקוב אחר קישור זה כדי לאפס את סיסמת הפרויקט {{project}}.", + "emails.recovery.body": "עקוב אחר קישור זה כדי לאפס את סיסמתך ב-{{project}}.", "emails.recovery.footer": "אם לא ביקשת לאפס את הסיסמה, תוכל להתעלם מהודעה זו.", "emails.recovery.thanks": "תודה", "emails.recovery.signature": "צוות {{project}}", "emails.invitation.subject": "הזמנה לצוות %s ב- %s", "emails.invitation.hello": "שלום", - "emails.invitation.body": "דואר זה נשלח אליך מכיוון ש {{owner}} רצה להזמין אותך להיות חבר בצוות {{team}} ב- {{project}}.", + "emails.invitation.body": "דואר זה נשלח אליך מכיוון ש {{owner}} רצה להזמין אותך להיות חבר בצוות {{team}} ב-{{project}}.", "emails.invitation.footer": "אם אינך מעוניין, תוכל להתעלם מהודעה זו.", "emails.invitation.thanks": "תודה", "emails.invitation.signature": "צוות {{project}}", From fbea7189602e3369afeb8fdfd8dc374fbd12d9a5 Mon Sep 17 00:00:00 2001 From: Oscar RG Date: Sun, 3 Oct 2021 09:26:03 +0200 Subject: [PATCH 062/110] feat(locales):Add Luxembourgish(lb) translation --- app/config/locale/codes.php | 1 + app/config/locale/translations/lb.json | 232 +++++++++++++++++++++++++ app/init.php | 1 + 3 files changed, 234 insertions(+) create mode 100644 app/config/locale/translations/lb.json diff --git a/app/config/locale/codes.php b/app/config/locale/codes.php index c8623f533c..0292315ce0 100644 --- a/app/config/locale/codes.php +++ b/app/config/locale/codes.php @@ -30,6 +30,7 @@ return [ 'kn', // Kannada 'km', // Khmer 'ko', // Korean + 'lb', // Luxembourgish 'lt', // Lithuanian 'ml', // Malayalam 'mr', // Marathi diff --git a/app/config/locale/translations/lb.json b/app/config/locale/translations/lb.json new file mode 100644 index 0000000000..d874d46a70 --- /dev/null +++ b/app/config/locale/translations/lb.json @@ -0,0 +1,232 @@ +{ + "settings.inspire": "\"The art of being wise is the art of knowing what to overlook.\"", + "settings.locale": "lb", + "settings.direction": "ltr", + "emails.sender": "%s Team", + "emails.verification.subject": "Kont Verifikatioun", + "emails.verification.hello": "Hey {{name}}", + "emails.verification.body": "Follegt dëse Link fir Är E -Mail Adress z'iwwerpréiwen.", + "emails.verification.footer": "Wann Dir net gefrot hutt dës Adress z'iwwerpréiwen, kënnt Dir dëse Message ignoréieren.", + "emails.verification.thanks": "Merci", + "emails.verification.signature": "{{project}} équipe", + "emails.magicSession.subject": "Login", + "emails.magicSession.hello": "Hey,", + "emails.magicSession.body": "Follegt dëse Link fir umellen.", + "emails.magicSession.footer": "Wann Dir net gefrot hutt Iech mat dëser E -Mail anzemelden, kënnt Dir dëse Message ignoréieren.", + "emails.magicSession.thanks": "Merci", + "emails.magicSession.signature": "{{project}} équipe", + "emails.recovery.subject": "Password Reset", + "emails.recovery.hello": "Hello {{name}}", + "emails.recovery.body": "Follegt dëse Link fir Äert {{project}} Passwuert zréckzesetzen.", + "emails.recovery.footer": "Wann Dir net gefrot hutt Äert Passwuert zréckzesetzen, kënnt Dir dëse Message ignoréieren.", + "emails.recovery.thanks": "Merci", + "emails.recovery.signature": "{{project}} équipe", + "emails.invitation.subject": "Invitatioun un %s équipe bei %s", + "emails.invitation.hello": "Hallo", + "emails.invitation.body": "Dës E -Mail gouf un Iech geschéckt well {{owner}} Iech invitéiere wëllt fir Member vum {{team}} Team bei {{project}} ze ginn.", + "emails.invitation.footer": "Wann Dir net interesséiert sidd, kënnt Dir dëse Message ignoréieren.", + "emails.invitation.thanks": "Merci", + "emails.invitation.signature": "{{project}} équipe", + "locale.country.unknown": "Onbekannt", + "countries.af": "Afghanistan", + "countries.ao": "Angola", + "countries.al": "Albanien", + "countries.ad": "Andorra", + "countries.ae": "Vereenegt Arabesch Emirater", + "countries.ar": "Argentinien", + "countries.am": "Armenien", + "countries.ag": "Antigua a Barbuda", + "countries.au": "Australien", + "countries.at": "Éisträich", + "countries.az": "Aserbaidschan", + "countries.bi": "Burundi", + "countries.be": "Belsch", + "countries.bj": "Benin", + "countries.bf": "Burkina Faso", + "countries.bd": "Bangladesch", + "countries.bg": "Bulgarien", + "countries.bh": "Bahrain", + "countries.bs": "Bahamas", + "countries.ba": "Bosnien an Herzegowina", + "countries.by": "Wäissrussland", + "countries.bz": "Belize", + "countries.bo": "Bolivien", + "countries.br": "Brasilien", + "countries.bb": "Barbados", + "countries.bn": "Brunei", + "countries.bt": "Bhutan", + "countries.bw": "Botswana", + "countries.cf": "Zentralafrikanesch Republik", + "countries.ca": "Kanada", + "countries.ch": "Schwäiz", + "countries.cl": "Chile", + "countries.cn": "China", + "countries.ci": "Côte d'Ivoire", + "countries.cm": "Kamerun", + "countries.cd": "DR Congo", + "countries.cg": "Republik Kongo", + "countries.co": "Kolumbien", + "countries.km": "Komoren", + "countries.cv": "Cap Vert", + "countries.cr": "Costa Rica", + "countries.cu": "Kuba", + "countries.cy": "Zypern", + "countries.cz": "Tschechien", + "countries.de": "Däitschland", + "countries.dj": "Djibouti", + "countries.dm": "Dominica", + "countries.dk": "Dänemark", + "countries.do": "Dominikanesch Republik", + "countries.dz": "Algerien", + "countries.ec": "Ecuador", + "countries.eg": "Ägypten", + "countries.er": "Eritrea", + "countries.es": "Spuenien", + "countries.ee": "Estland", + "countries.et": "Äthiopien", + "countries.fi": "Finnland", + "countries.fj": "Fidschi", + "countries.fr": "Frankräich", + "countries.fm": "Mikronesien", + "countries.ga": "Gabon", + "countries.gb": "Vereenegt Kinnekräich", + "countries.ge": "Georgien", + "countries.gh": "Ghana", + "countries.gn": "Guinea", + "countries.gm": "Gambia", + "countries.gw": "Guinea-Bissau", + "countries.gq": "Äquatorialguinea", + "countries.gr": "Griichenland", + "countries.gd": "Granada", + "countries.gt": "Guatemala", + "countries.gy": "Guyana", + "countries.hn": "Honduras", + "countries.hr": "Kroatien", + "countries.ht": "Haïti", + "countries.hu": "Ungarn", + "countries.id": "Indonesien", + "countries.in": "Indien", + "countries.ie": "Irland", + "countries.ir": "Iran", + "countries.iq": "Irak", + "countries.is": "Island", + "countries.il": "Israel", + "countries.it": "Italien", + "countries.jm": "Jamaika", + "countries.jo": "Jordanien", + "countries.jp": "Japan", + "countries.kz": "Kazakhstan", + "countries.ke": "Kenia", + "countries.kg": "Kirgisistan", + "countries.kh": "Kambodscha", + "countries.ki": "Kiribati", + "countries.kn": "Saint Kitts and Nevis", + "countries.kr": "Südkorea", + "countries.kw": "Kuwait", + "countries.la": "Laos", + "countries.lb": "Libanon", + "countries.lr": "Liberia", + "countries.ly": "Libyen", + "countries.lc": "Saint Lucia", + "countries.li": "Liechtenstein", + "countries.lk": "Sri Lanka", + "countries.ls": "Lesotho", + "countries.lt": "Litauen", + "countries.lu": "Lëtzebuerg", + "countries.lv": "Lettland", + "countries.ma": "Marokko", + "countries.mc": "Monaco", + "countries.md": "Moldawien", + "countries.mg": "Madagaskar", + "countries.mv": "Malediven", + "countries.mx": "Mexiko", + "countries.mh": "Marshallinselen", + "countries.mk": "Mazedonien", + "countries.ml": "Mali", + "countries.mt": "Malta", + "countries.mm": "Myanmar", + "countries.me": "Montenegro", + "countries.mn": "Mongolei", + "countries.mz": "Mosambik", + "countries.mr": "Mauritanien", + "countries.mu": "Mauritius", + "countries.mw": "Malawi", + "countries.my": "Malaysien", + "countries.na": "Namibien", + "countries.ne": "Niger", + "countries.ng": "Nigeria", + "countries.ni": "Nicaragua", + "countries.nl": "Holland", + "countries.no": "Norwegen", + "countries.np": "Nepal", + "countries.nr": "Nauru", + "countries.nz": "Neiséiland", + "countries.om": "Oman", + "countries.pk": "Pakistan", + "countries.pa": "Panama", + "countries.pe": "Peru", + "countries.ph": "Philippinnen", + "countries.pw": "Palau", + "countries.pg": "Papua-Neuguinea", + "countries.pl": "Polen", + "countries.kp": "Nordkorea", + "countries.pt": "Portugal", + "countries.py": "Paraguay", + "countries.qa": "Quatar", + "countries.ro": "Rumänien", + "countries.ru": "Russland", + "countries.rw": "Ruanda", + "countries.sa": "Saudi Arabien", + "countries.sd": "Sudan", + "countries.sn": "Senegal", + "countries.sg": "Singapur", + "countries.sb": "Solomon Inselen", + "countries.sl": "Sierra Leone", + "countries.sv": "El Salvador", + "countries.sm": "San Marino", + "countries.so": "Somalia", + "countries.rs": "Serbien", + "countries.ss": "Südsudan", + "countries.st": "Sao Tome a Principe", + "countries.sr": "Suriname", + "countries.sk": "Slowakei", + "countries.si": "Slowenien", + "countries.se": "Schweden", + "countries.sz": "Swasiland", + "countries.sc": "Seychellen", + "countries.sy": "Syrien", + "countries.td": "Tschad", + "countries.tg": "Goen", + "countries.th": "Thailand", + "countries.tj": "Tadjikistan", + "countries.tm": "Turkmenistan", + "countries.tl": "Timor-Leste", + "countries.to": "Tonga", + "countries.tt": "Tinidad an Tobago", + "countries.tn": "Tunesien", + "countries.tr": "Tierkei", + "countries.tv": "Tuvalu", + "countries.tz": "Tansania", + "countries.ug": "Ugana", + "countries.ua": "Ukraine", + "countries.uy": "Uruguay", + "countries.us": "Vereenegt Staaten", + "countries.uz": "Usbekistan", + "countries.va": "Vatikan Stad", + "countries.vc": "Saint Vincent an d'Grenadinnen", + "countries.ve": "Venezuela", + "countries.vn": "Vietnam", + "countries.vu": "Vanuatu", + "countries.ws": "Samoa", + "countries.ye": "Yemen", + "countries.za": "Südafrika", + "countries.zm": "Zambia", + "countries.zw": "Zimbabwe", + "continents.af": "Afrika", + "continents.an": "Antarktis", + "continents.as": "Asien", + "continents.eu": "Europa", + "continents.na": "Nordamerika", + "continents.oc": "Ozeanien", + "continents.sa": "Südamerika" +} diff --git a/app/init.php b/app/init.php index 8c1d6cb455..6431c6eb95 100644 --- a/app/init.php +++ b/app/init.php @@ -290,6 +290,7 @@ Locale::setLanguageFromJSON('jv', __DIR__.'/config/locale/translations/jv.json') Locale::setLanguageFromJSON('kn', __DIR__.'/config/locale/translations/kn.json'); Locale::setLanguageFromJSON('km', __DIR__.'/config/locale/translations/km.json'); Locale::setLanguageFromJSON('ko', __DIR__.'/config/locale/translations/ko.json'); +Locale::setLanguageFromJSON('lb', __DIR__.'/config/locale/translations/lb.json'); Locale::setLanguageFromJSON('lt', __DIR__.'/config/locale/translations/lt.json'); Locale::setLanguageFromJSON('ml', __DIR__.'/config/locale/translations/ml.json'); Locale::setLanguageFromJSON('mr', __DIR__.'/config/locale/translations/mr.json'); From 80bd66136f3e414251f1436462e5c2ba94f967cc Mon Sep 17 00:00:00 2001 From: chuiizeet Date: Sun, 3 Oct 2021 02:49:37 -0500 Subject: [PATCH 063/110] Fix spanish language translation file --- app/config/locale/translations/es.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/config/locale/translations/es.json b/app/config/locale/translations/es.json index 014223e6ea..6310d8fe76 100644 --- a/app/config/locale/translations/es.json +++ b/app/config/locale/translations/es.json @@ -9,7 +9,7 @@ "emails.verification.footer": "Si no has solicitado verificar este correo, puedes ignorar este mensaje.", "emails.verification.thanks": "Gracias", "emails.verification.signature": "Equipo de {{project}}", - "emails.magicSession.subject": "Inicio de Sesión", + "emails.magicSession.subject": "Inicio de sesión", "emails.magicSession.hello": "Hola,", "emails.magicSession.body": "Haz clic en este enlace para iniciar sesión.", "emails.magicSession.footer": "Si no has solicitado ingresar usando este correo, puedes ignorar este mensaje.", @@ -21,7 +21,7 @@ "emails.recovery.footer": "Si no has solicitado restablecer la contraseña, puedes ignorar este mensaje.", "emails.recovery.thanks": "Gracias", "emails.recovery.signature": "Equipo de {{project}}", - "emails.invitation.subject": "Invitacion al Equipo %s en %s", + "emails.invitation.subject": "Invitación al equipo %s en %s", "emails.invitation.hello": "Hola", "emails.invitation.body": "Este correo ha sido enviado a petición de {{owner}} quien quiere invitarte a formar parte del equipo {{team}} en el proyecto {{project}}.", "emails.invitation.footer": "Si no estas interesado, puedes ignorar este mensaje.", From 411b581db43721364960a0aa588f41e2950f23fb Mon Sep 17 00:00:00 2001 From: Matej Baco Date: Sun, 3 Oct 2021 11:01:45 +0200 Subject: [PATCH 064/110] Code of conduct missing fixed --- .github/ISSUE_TEMPLATE/bug.yaml | 7 +++++++ .github/ISSUE_TEMPLATE/documentation.yaml | 5 ++--- .github/ISSUE_TEMPLATE/feature.yaml | 7 +++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml index 2f33d76b82..f97c94167f 100644 --- a/.github/ISSUE_TEMPLATE/bug.yaml +++ b/.github/ISSUE_TEMPLATE/bug.yaml @@ -72,4 +72,11 @@ body: description: "Have you Googled for a similar issue or checked our older issues for a similar bug?" options: - label: "I checked and didn't find similar issue" + required: true + - type: checkboxes + id: read-code-of-conduct + attributes: + label: "🏢 Have you read the Code of Conduct?" + options: + - label: "I have read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/HEAD/CODE_OF_CONDUCT.md)" required: true \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/documentation.yaml b/.github/ISSUE_TEMPLATE/documentation.yaml index 5e8d8fd083..c2f829df39 100644 --- a/.github/ISSUE_TEMPLATE/documentation.yaml +++ b/.github/ISSUE_TEMPLATE/documentation.yaml @@ -6,7 +6,7 @@ body: - type: markdown attributes: value: | - Thanks for taking the time to fill out our documentation update request form 🙏 + Thanks for taking the time to make our documentation better 🙏 - type: textarea id: issue-description validations: @@ -26,8 +26,7 @@ body: - type: checkboxes id: read-code-of-conduct attributes: - description: "This is our [Code of Conduct](https://github.com/appwrite/appwrite/blob/master/CODE_OF_CONDUCT.md)." label: "🏢 Have you read the Code of Conduct?" options: - - label: "I read the Code of Conduct" + - label: "I have read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/HEAD/CODE_OF_CONDUCT.md)" required: true \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature.yaml b/.github/ISSUE_TEMPLATE/feature.yaml index 025614bc8a..6181cda753 100644 --- a/.github/ISSUE_TEMPLATE/feature.yaml +++ b/.github/ISSUE_TEMPLATE/feature.yaml @@ -30,4 +30,11 @@ body: description: "Have you Googled for a similar issue or checked our older issues for a similar bug?" options: - label: "I checked and didn't find similar issue" + required: true + - type: checkboxes + id: read-code-of-conduct + attributes: + label: "🏢 Have you read the Code of Conduct?" + options: + - label: "I have read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/HEAD/CODE_OF_CONDUCT.md)" required: true \ No newline at end of file From bbc744fc17f1960f78d739d297e8d01618522b81 Mon Sep 17 00:00:00 2001 From: Santosh Bhandari Date: Sun, 3 Oct 2021 16:39:57 +0545 Subject: [PATCH 065/110] Update app/config/locale/translations/ne.json Co-authored-by: Damodar Lohani --- app/config/locale/translations/ne.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/ne.json b/app/config/locale/translations/ne.json index 372a2717f2..2dc24e1910 100644 --- a/app/config/locale/translations/ne.json +++ b/app/config/locale/translations/ne.json @@ -1,5 +1,5 @@ { - "settings.inspire": "\"बुद्धिमान हुनु को कला के लाई बेवास्ता गर्न जान्ने को कला हो।\"", + "settings.inspire": "\"के लाई बेवास्ता गर्ने भन्ने जान्नुनै बुद्धिमान हुनुको कला हो ।\"", "settings.locale": "ne", "settings.direction": "ltr", "emails.sender": "%s समूह", From 48bde717939f034f5901a5c13960287e6450c691 Mon Sep 17 00:00:00 2001 From: Santosh Bhandari Date: Sun, 3 Oct 2021 16:41:46 +0545 Subject: [PATCH 066/110] Update app/config/locale/translations/ne.json Co-authored-by: Damodar Lohani --- app/config/locale/translations/ne.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/ne.json b/app/config/locale/translations/ne.json index 2dc24e1910..77de4c1541 100644 --- a/app/config/locale/translations/ne.json +++ b/app/config/locale/translations/ne.json @@ -23,7 +23,7 @@ "emails.recovery.signature": "{{project}} समूह", "emails.invitation.subject": "%s समूहको लागि %s मा निमन्त्रणा", "emails.invitation.hello": "नमस्ते", - "emails.invitation.body": "{{owner}}ले तपाइँलाई {{project}}मा {{team}}को सदस्य बन्न आमन्त्रित गर्नु भएको छ। तेसैले तपाइँलाई यो सन्देश पठाइएको हो।", + "emails.invitation.body": "{{owner}}ले तपाइँलाई {{project}}मा {{team}}को सदस्य बन्न आमन्त्रित गर्न चाहनु भएको छ। त्येसैले तपाइँलाई यो सन्देश पठाइएको हो।", "emails.invitation.footer": "यदि तपाइँ इच्छुक हुनुहुन्न भने, तपाइँले यो सन्देशलाई बेवास्ता गर्न सक्नुहुन्छ।", "emails.invitation.thanks": "धन्यवाद", "emails.invitation.signature": "{{project}} समूह", From 3a70c66ba0d75e27ff131d7af7a64151bb3f8981 Mon Sep 17 00:00:00 2001 From: Nguyen Long Nhat <27698189+torn4dom4n@users.noreply.github.com> Date: Sun, 3 Oct 2021 18:55:03 +0700 Subject: [PATCH 067/110] Getting started for Android --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b2cab46b4a..9ccd8e88ea 100644 --- a/README.md +++ b/README.md @@ -98,9 +98,9 @@ Getting started with Appwrite is as easy as creating a new project, choosing you * [Getting Started for Web](https://appwrite.io/docs/getting-started-for-web) * [Getting Started for Flutter](https://appwrite.io/docs/getting-started-for-flutter) +* [Getting Started for Android](https://appwrite.io/docs/getting-started-for-android) * [Getting Started for Server](https://appwrite.io/docs/getting-started-for-server) * [Getting Started for CLI](https://appwrite.io/docs/command-line) -* Getting Started for Android (Coming soon...) * Getting Started for iOS (Coming soon...) ### Services From 400c13cd21ba5a4b670cf9dc5c06aaefb299ef98 Mon Sep 17 00:00:00 2001 From: Matteo Gheza Date: Sun, 3 Oct 2021 16:25:10 +0200 Subject: [PATCH 068/110] Fix type in bug.yaml --- .github/ISSUE_TEMPLATE/bug.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml index f97c94167f..2551c366bf 100644 --- a/.github/ISSUE_TEMPLATE/bug.yaml +++ b/.github/ISSUE_TEMPLATE/bug.yaml @@ -58,7 +58,7 @@ body: validations: required: true - type: textarea - id: enviromnemt + id: environment validations: required: false attributes: @@ -79,4 +79,4 @@ body: label: "🏢 Have you read the Code of Conduct?" options: - label: "I have read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/HEAD/CODE_OF_CONDUCT.md)" - required: true \ No newline at end of file + required: true From 12d3ff0a93f01ecbfb5cddaf402ca7c215521c99 Mon Sep 17 00:00:00 2001 From: cristina-sirbu Date: Mon, 4 Oct 2021 07:24:20 +0300 Subject: [PATCH 069/110] Added romanian translations --- app/config/locale/translations/ro.json | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/app/config/locale/translations/ro.json b/app/config/locale/translations/ro.json index 44a0ca6fbc..5d8aa437e0 100644 --- a/app/config/locale/translations/ro.json +++ b/app/config/locale/translations/ro.json @@ -3,30 +3,30 @@ "settings.locale": "ro", "settings.direction": "ltr", "emails.sender": "%s Echipa", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Verificare cont", + "emails.verification.hello": "Bună ziua, {{name}}", + "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", + "emails.verification.signature": "Echipa {{project}}", + "emails.magicSession.subject": "Login", + "emails.magicSession.hello": "Bună ziua", + "emails.magicSession.body": "Urmează acest link pentru logare.", + "emails.magicSession.footer": "Dacă nu ai incercat să te loghezi folosing această adresa de email, poți ignora acest mesaj.", + "emails.magicSession.thanks": "Mulțumim", + "emails.magicSession.signature": "Echipa {{project}}", + "emails.recovery.subject": "Resetare parolă", + "emails.recovery.hello": "Bună ziua, {{name}}", + "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", + "emails.recovery.signature": "Echipa {{project}}", + "emails.invitation.subject": "Invitatie catre %s Echipa la %s", + "emails.invitation.hello": "Bună ziua", + "emails.invitation.body": "Acest email a fost trimis pentru că {{owner}} a vrut ca tu să devii membru al echipei {{team}} la {{project}}.", + "emails.invitation.footer": "Dacă nu esti interesat, poți ignora acest email.", + "emails.invitation.thanks": "Mulțumim", + "emails.invitation.signature": "Echipa {{project}}", "locale.country.unknown": "Necunoscut", "countries.af": "Afghanistan", "countries.ao": "Angola", From d2ba7eab819cb8a55567bba6b96feee3710dd8f1 Mon Sep 17 00:00:00 2001 From: Lampros Kostapappas Date: Mon, 4 Oct 2021 08:28:06 +0300 Subject: [PATCH 070/110] Update el.json add greek translation --- app/config/locale/translations/el.json | 52 +++++++++++++------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/app/config/locale/translations/el.json b/app/config/locale/translations/el.json index 801568acab..83af3cad0b 100644 --- a/app/config/locale/translations/el.json +++ b/app/config/locale/translations/el.json @@ -1,32 +1,32 @@ { - "settings.inspire": "\"The art of being wise is the art of knowing what to overlook.\"", + "settings.inspire": "\"Η τέχνη του να είσαι σοφός, είναι η τέχνη να ξέρεις τι πρέπει να παραβλέψεις.\"", "settings.locale": "gr", "settings.direction": "ltr", "emails.sender": "Ομάδα %s", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Επαλήθευση Λογαριασμού", + "emails.verification.hello": "Γεια σου {{name}}", + "emails.verification.body": "Ακολουθήστε αυτό το link για να επαληθεύσετε τη δ/νση του email σας", + "emails.verification.footer": "Εάν δεν ζητήσατε επαλήθευση αυτής της δ/νσης email, μπορείτε να αγνοήσετε αυτό το μήνυμα", + "emails.verification.thanks": "Ευχαριστούμε", + "emails.verification.signature": "Η ομάδα του {{project}}", + "emails.magicSession.subject": "Είσοδος", + "emails.magicSession.hello": "Γεια σου,", + "emails.magicSession.body": "Ακολουθήστε αυτό το link για να συνδεθείτε", + "emails.magicSession.footer": "Εάν δεν ζητήσατε να συνδεθείτε χρησιμοποιώντας αυτό το email, μπορείτε να αγνοήσετε αυτό το μήνυμα.", + "emails.magicSession.thanks": "Ευχαριστούμε", + "emails.magicSession.signature": "Η ομάδα του {{project}}", + "emails.recovery.subject": "Αλλαγή κωδικού πρόσβασης", + "emails.recovery.hello": "Γεια σου {{name}}", + "emails.recovery.body": "Ακολουθήστε αυτό το link για να αλλάξετε τον {{project}} κωδικό σας", + "emails.recovery.footer": "Εάν δεν ζητήσατε αλλαγή του κωδικού σας πρόσβασης, μπορείτε να αγνοήσετε αυτό το μήνυμα", + "emails.recovery.thanks": "Ευχαριστούμε", + "emails.recovery.signature": "Η ομάδα του {{project}}", + "emails.invitation.subject": "Πρόσκληση στην %s Ομάδα στον %s", + "emails.invitation.hello": "Γεια σου", + "emails.invitation.body": "Αυτό το email στάλθηκε επειδή ο/η {{owner}} θέλει να σας προσκαλέσει να γίνετε μέλος της ομάδας {{team}} του {{project}}.", + "emails.invitation.footer": "Εάν δεν ενδιαφέρεστε, μπορείτε να αγνοήσετε αυτό το μήνυμα.", + "emails.invitation.thanks": "Ευχαριστούμε", + "emails.invitation.signature": "Η ομάδα του {{project}}", "locale.country.unknown": "Άγνωστο", "countries.af": "Αφγανιστάν", "countries.ao": "Ανγκόλα", @@ -229,4 +229,4 @@ "continents.na": "Βόρεια Αμερική", "continents.oc": "Ωκεανία", "continents.sa": "Νότια Αμερική" -} \ No newline at end of file +} From 41e4e6988bcab8c5aeec93518a41b9135b95a61b Mon Sep 17 00:00:00 2001 From: NeonSpork Date: Mon, 4 Oct 2021 10:14:01 +0200 Subject: [PATCH 071/110] fix: Added missing Norwegian translations --- app/config/locale/translations/no.json | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/app/config/locale/translations/no.json b/app/config/locale/translations/no.json index 0deffdd654..a09d4119db 100644 --- a/app/config/locale/translations/no.json +++ b/app/config/locale/translations/no.json @@ -3,30 +3,30 @@ "settings.locale": "no", "settings.direction": "ltr", "emails.sender": "%s Team", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Kontobekreftelse", + "emails.verification.hello": "Hallo {{name}}", + "emails.verification.body": "Følg denne lengken for å bekrefte din e-post adresse", + "emails.verification.footer": "Dersom du ikke ba om å bekrefte e-post adressen, kan du se bort fra denne meldingen.", + "emails.verification.thanks": "Takk", + "emails.verification.signature": "{{project}} team", + "emails.magicSession.subject": "Pålogging", + "emails.magicSession.hello": "Hallo", + "emails.magicSession.body": "Følg denne lenken for å logge på.", + "emails.magicSession.footer": "Dersom du ikke ba om å logge på med denne e-post adressen, kan du se bort fra denne meldingen.", + "emails.magicSession.thanks": "Takk", + "emails.magicSession.signature": "{{project}} team", + "emails.recovery.subject": "Nullstille passord", + "emails.recovery.hello": "Hallo {{name}}", + "emails.recovery.body": "Følg denne lenken for å nullstille ditt {{project}} passord.", + "emails.recovery.footer": "Dersom du ikke ba om å nullstille passordet ditt, kan du se bort fra denne meldingen.", + "emails.recovery.thanks": "Takk", + "emails.recovery.signature": "{{project}} team", + "emails.invitation.subject": "Invitasjon til %s Team ved %s", + "emails.invitation.hello": "Hallo", + "emails.invitation.body": "Denne meldingen ble sent til deg fordi {{owner}} ønsket å invitere deg til å bli medlem av {{team}} team i {{project}}.", + "emails.invitation.footer": "Dersom du ikke er interessert, kan du se bort fra denne meldingen.", + "emails.invitation.thanks": "Takk", + "emails.invitation.signature": "{{project}} team", "locale.country.unknown": "Ukjent", "countries.af": "Afghanistan", "countries.ao": "Angola", From 16b8dc3d0b306d6c0bc5e31a638376362b5b3b89 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Mon, 4 Oct 2021 08:50:27 +0000 Subject: [PATCH 072/110] ci(gh): add github action (#1823) * ci(gh): add github action * fix name * fix ci --- .github/workflows/tests.yml | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000000..9d7423af82 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,41 @@ +name: "Tests" + +on: [pull_request] + +jobs: + tests: + name: Unit & E2E + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + with: + # We must fetch at least the immediate parents so that if this is + # a pull request then we can checkout the head. + fetch-depth: 2 + + # If this run was triggered by a pull request event, then checkout + # the head of the pull request instead of the merge commit. + - run: git checkout HEAD^2 + if: ${{ github.event_name == 'pull_request' }} + + - name: Build Appwrite + # Upstream bug causes buildkit pulls to fail so prefetch base images + # https://github.com/moby/moby/issues/41864 + run: | + echo "_APP_FUNCTIONS_RUNTIMES=php-8.0" >> .env + docker pull composer:2.0 + docker pull php:8.0-cli-alpine + docker-compose build + docker-compose up -d + sleep 10 + + - name: Doctor + run: docker-compose exec -T appwrite doctor + + - name: Environment Variables + run: docker-compose exec -T appwrite vars + + - name: Run Tests + run: docker-compose exec -T appwrite test --debug From bdc49c01a647e1701737b08dbe213fe4ed3f8254 Mon Sep 17 00:00:00 2001 From: und1n3 Date: Mon, 4 Oct 2021 14:31:22 +0200 Subject: [PATCH 073/110] Added catalan translations. --- app/config/locale/translations/ca.json | 56 +++++++++++++------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/app/config/locale/translations/ca.json b/app/config/locale/translations/ca.json index 72d167ef1f..32649b7e66 100644 --- a/app/config/locale/translations/ca.json +++ b/app/config/locale/translations/ca.json @@ -3,30 +3,30 @@ "settings.locale": "ca", "settings.direction": "ltr", "emails.sender": "%s Equip", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Verificació del compte", + "emails.verification.hello": "Hola {{name}}", + "emails.verification.body": "Accedeix a aquest enllaç per tal de verificar la teva adreça electrònica.", + "emails.verification.footer": "Si no has sol·licitat la verificació d'aquesta adreça electrònica, pots ignorar aquest missatge.", + "emails.verification.thanks": "Gràcies", + "emails.verification.signature": "Equip {{project}}", + "emails.magicSession.subject": "Entrar", + "emails.magicSession.hello": "Hola,", + "emails.magicSession.body": "Accedeix a aquest enllaç per a entrar.", + "emails.magicSession.footer": "Si no has sol·licitat entrar amb aquesta adreça electrònica, pots ignorar aquest missatge.", + "emails.magicSession.thanks": "Gràcies", + "emails.magicSession.signature": "Equip {{project}}", + "emails.recovery.subject": "Reinicialitzar contrasenya", + "emails.recovery.hello": "Hola {{name}}", + "emails.recovery.body": "Accedeix a aquest enllaç per a reinicialitzar la teva contrasenya de {{project}}.", + "emails.recovery.footer": "Si no has sol·licitat reinicialitzar la teva contrasenya, pots ignorar aquest missatge.", + "emails.recovery.thanks": "Gràcies", + "emails.recovery.signature": "Equip {{project}}", + "emails.invitation.subject": "Invitació a l'equip %s a s%", + "emails.invitation.hello": "Hola", + "emails.invitation.body": "Aquest correu se t'ha enviat perquè {{owner}} vol convidar-te a formar part de l'equip {{team}} al {{project}}.", + "emails.invitation.footer": "Si no és del teu interès, pots ignorar aquest missatge.", + "emails.invitation.thanks": "Gràcies", + "emails.invitation.signature": "Equip {{project}}", "locale.country.unknown": "Desconegut", "countries.af": "Afganistan", "countries.ao": "Angola", @@ -35,7 +35,7 @@ "countries.ae": "Unió dels Emirats Àrabs Units", "countries.ar": "Argentina", "countries.am": "Armènia", - "countries.ag": "Antigua o Barbuda", + "countries.ag": "Antigua i Barbuda", "countries.au": "Austràlia", "countries.at": "Àustria", "countries.az": "Azerbaidjan", @@ -44,7 +44,7 @@ "countries.bj": "Benín", "countries.bf": "Burkina Faso", "countries.bd": "Bangla Desh", - "countries.bg": "Bulgaria", + "countries.bg": "Bulgària", "countries.bh": "Bahrain", "countries.bs": "Bahamas", "countries.ba": "Bòsnia i Hercegovina", @@ -113,7 +113,7 @@ "countries.il": "Israel", "countries.it": "Itàlia", "countries.jm": "Jamaica", - "countries.jo": "Jordà", + "countries.jo": "Jordània", "countries.jp": "Japó", "countries.kz": "Kazakhstan", "countries.ke": "Kenya", @@ -127,7 +127,7 @@ "countries.lb": "Líban", "countries.lr": "Libèria", "countries.ly": "Líbia", - "countries.lc": "Santa Llúcia", + "countries.lc": "Saint Lucia", "countries.li": "Liechtenstein", "countries.lk": "Sri Lanka", "countries.ls": "Lesoto", From 37b34e8f189a0ef474d9a70afe45fe45fba4cf0b Mon Sep 17 00:00:00 2001 From: Honey Patel <66742927+honeykpatel@users.noreply.github.com> Date: Mon, 4 Oct 2021 18:34:19 +0530 Subject: [PATCH 074/110] Update app/config/locale/translations/gu.json Fixed an error and added a Gujarati Translation. Co-authored-by: Christy Jacob --- app/config/locale/translations/gu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/gu.json b/app/config/locale/translations/gu.json index 48f537ddd0..9357160cc5 100644 --- a/app/config/locale/translations/gu.json +++ b/app/config/locale/translations/gu.json @@ -21,7 +21,7 @@ "emails.recovery.footer": "જો તમે તમારો પાસવર્ડ ફરીથી સેટ કરવાનું ન કહ્યું હોય, તો તમે આ સંદેશને અવગણી શકો છો.", "emails.recovery.thanks": "આભાર", "emails.recovery.signature": "{{project}} ટીમ", - "emails.invitation.subject": "%S ટીમને %s પર આમંત્રણ", + "emails.invitation.subject": "%s ટીમને %s પર આમંત્રણ", "emails.invitation.hello": "નમસ્કાર", "emails.invitation.body": "આ મેઇલ તમને મોકલવામાં આવ્યો હતો કારણ કે {{owner}} તમને {{project}} માં {{team}} ટીમના સભ્ય બનવા માટે આમંત્રિત કરવા માંગતા હતો.", "emails.invitation.footer": "જો તમને રસ નથી, તો તમે આ સંદેશને અવગણી શકો છો.", From 4c0e30ad6261a83c44bbfab7a14c2ba6ea659e39 Mon Sep 17 00:00:00 2001 From: Biki-das Date: Mon, 4 Oct 2021 18:47:11 +0530 Subject: [PATCH 075/110] fixed typo --- docs/tutorials/add-storage-adapter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/add-storage-adapter.md b/docs/tutorials/add-storage-adapter.md index 0b7777eb77..4a429a426b 100644 --- a/docs/tutorials/add-storage-adapter.md +++ b/docs/tutorials/add-storage-adapter.md @@ -40,7 +40,7 @@ In this phase we will add support to the new storage adapter in Appwrite. Upgrade the utopia-php/storage dependency in `composer.json` file. ### Introduce new environment variables -If required for the new adapter, may be for credentials, introduce new environment variables. The storage envorinment variables are prefixed as `_APP_STORAGE_DEVICE`. Please read [Adding Environment Variables]() guidelines in order to properly introduce new environment variables. +If required for the new adapter, may be for credentials, introduce new environment variables. The storage environment variables are prefixed as `_APP_STORAGE_DEVICE`. Please read [Adding Environment Variables]() guidelines in order to properly introduce new environment variables. ### Implement the device case In `app/controllers/shared/api.php` inside init function, there is a `switch/case` statements for each supported storage device. Implement the instantiation of your device type for your device case. The device cases are the devices constants listed in the `uptopa-php/storage/Storage` class. From 0e92a82de90891a0dcc25259de79a1f379784b07 Mon Sep 17 00:00:00 2001 From: Anoop M S Date: Mon, 4 Oct 2021 19:57:25 +0530 Subject: [PATCH 076/110] Fix punctuation issues --- app/config/locale/translations/ml.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/config/locale/translations/ml.json b/app/config/locale/translations/ml.json index d0a8202fb2..dce555c1cb 100644 --- a/app/config/locale/translations/ml.json +++ b/app/config/locale/translations/ml.json @@ -10,8 +10,8 @@ "emails.verification.thanks": "നന്ദി", "emails.verification.signature": "{{project}} ടീം", "emails.magicSession.subject": "ലോഗിൻ", - "emails.magicSession.hello": "നമസ്കാരം", - "emails.magicSession.body": "ലോഗിൻ ചെയ്യുന്നതിനായി ഈ ലിങ്ക് പിന്തുടരുക", + "emails.magicSession.hello": "നമസ്കാരം,", + "emails.magicSession.body": "ലോഗിൻ ചെയ്യുന്നതിനായി ഈ ലിങ്ക് പിന്തുടരുക.", "emails.magicSession.footer": "ഈ ഇമെയിൽ ഉപയോഗിച്ച് ലോഗിൻ ചെയ്യാൻ നിങ്ങൾ ആവശ്യപ്പെട്ടില്ലെങ്കിൽ, ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.", "emails.magicSession.thanks": "നന്ദി", "emails.magicSession.signature": "{{project}} ടീം", @@ -23,7 +23,7 @@ "emails.recovery.signature": "{{project}} ടീം", "emails.invitation.subject": "%s -ലെ %s ടീമിലേക്കുള്ള ക്ഷണം", "emails.invitation.hello": "നമസ്കാരം", - "emails.invitation.body": "നിങ്ങളെ {{project}} -ലെ {{team}} ടീമിലെ അംഗമാകുവാന്‍ ക്ഷണിക്കാൻ {{owner}} ആഗ്രഹിക്കുതിനാലാണ് ഈ മെയിൽ നിങ്ങൾക്ക് അയക്കുന്നത്", + "emails.invitation.body": "നിങ്ങളെ {{project}} -ലെ {{team}} ടീമിലെ അംഗമാകുവാന്‍ ക്ഷണിക്കാൻ {{owner}} ആഗ്രഹിക്കുതിനാലാണ് ഈ മെയിൽ നിങ്ങൾക്ക് അയക്കുന്നത്.", "emails.invitation.footer": "നിങ്ങൾക്ക് താൽപ്പര്യമില്ലെങ്കിൽ, ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.", "emails.invitation.thanks": "നന്ദി", "emails.invitation.signature": "{{project}} ടീം", From 79a2e5529b6ab02098b2be695f063437a02d66d0 Mon Sep 17 00:00:00 2001 From: Aleksander Chromik Date: Mon, 4 Oct 2021 16:35:01 +0200 Subject: [PATCH 077/110] Fix PL transaltion for invitation email body --- app/config/locale/translations/pl.json | 462 ++++++++++++------------- 1 file changed, 231 insertions(+), 231 deletions(-) diff --git a/app/config/locale/translations/pl.json b/app/config/locale/translations/pl.json index 8df68be33b..3079f0a311 100644 --- a/app/config/locale/translations/pl.json +++ b/app/config/locale/translations/pl.json @@ -1,232 +1,232 @@ { - "settings.inspire": "\"Sztuka bycia mądrym to sztuka wiedzieć, co przeoczyć.\"", - "settings.locale": "pl", - "settings.direction": "ltr", - "emails.sender": "Zespół %s", - "emails.verification.subject": "Weryfikacja konta", - "emails.verification.hello": "Cześć {{name}}", - "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, możesz zignorować tę wiadomość.", - "emails.verification.thanks": "Dziękujemy", - "emails.verification.signature": "Zespół {{project}}", - "emails.magicSession.subject": "Logowanie", - "emails.magicSession.hello": "Cześć,", - "emails.magicSession.body": "Przejdź do tego linku, aby zalogować się.", - "emails.magicSession.footer": "Jeśli to nie Ty prosiłeś o logowanie przy użyciu tego adresu e-mail, możesz zignorować tę wiadomość.", - "emails.magicSession.thanks": "Dziękujemy", - "emails.magicSession.signature": "Zespół {{project}}", - "emails.recovery.subject": "Resetowanie hasła", - "emails.recovery.hello": "Cześć {{name}}", - "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, możesz zignorować tę wiadomość.", - "emails.recovery.thanks": "Dziękujemy", - "emails.recovery.signature": "Zespół {{project}}", - "emails.invitation.subject": "Zaproszenie do zespołu %s w %s", - "emails.invitation.hello": "Cześć", - "emails.invitation.body": "Otrzymujesz tę wiadomość, ponieważ {{owner}} zaprasza Cię do grona członków zespołu {{team}}.", - "emails.invitation.footer": "Jeśli nie jesteś zainteresowany, możesz zignorować tę wiadomość.", - "emails.invitation.thanks": "Dziękujemy", - "emails.invitation.signature": "Zespół {{project}}", - "locale.country.unknown": "Nieznany", - "countries.af": "Afganistan", - "countries.ao": "Angola", - "countries.al": "Albania", - "countries.ad": "Andora", - "countries.ae": "Zjednoczone Emiraty Arabskie", - "countries.ar": "Argentyna", - "countries.am": "Armenia", - "countries.ag": "Antigua i Barbuda", - "countries.au": "Australia", - "countries.at": "Austria", - "countries.az": "Azerbejdżan", - "countries.bi": "Burundi", - "countries.be": "Belgia", - "countries.bj": "Benin", - "countries.bf": "Burkina Faso", - "countries.bd": "Bangladesz", - "countries.bg": "Bułgaria", - "countries.bh": "Bahrajn", - "countries.bs": "Bahamy", - "countries.ba": "Bośnia i Hercegowina", - "countries.by": "Białoruś", - "countries.bz": "Belize", - "countries.bo": "Boliwia", - "countries.br": "Brazylia", - "countries.bb": "Barbados", - "countries.bn": "Brunei", - "countries.bt": "Bhutan", - "countries.bw": "Botswana", - "countries.cf": "Republika Środkowoafrykańska", - "countries.ca": "Kanada", - "countries.ch": "Szwajcaria", - "countries.cl": "Chile", - "countries.cn": "Chiny", - "countries.ci": "Wybrzeże Kości Słoniowej", - "countries.cm": "Kamerun", - "countries.cd": "DR Congo", - "countries.cg": "Republika Konga", - "countries.co": "Kolumbia", - "countries.km": "Komory", - "countries.cv": "Republika Zielonego Przylądka", - "countries.cr": "Kostaryka", - "countries.cu": "Kuba", - "countries.cy": "Cypr", - "countries.cz": "Czechy", - "countries.de": "Niemcy", - "countries.dj": "Dżibuti", - "countries.dm": "Dominica", - "countries.dk": "Dania", - "countries.do": "Republika Dominikańska", - "countries.dz": "Algieria", - "countries.ec": "Ekwador", - "countries.eg": "Egipt", - "countries.er": "Erytrea", - "countries.es": "Hiszpania", - "countries.ee": "Estonia", - "countries.et": "Etiopia", - "countries.fi": "Finlandia", - "countries.fj": "Fidżi", - "countries.fr": "Francja", - "countries.fm": "Mikronezja", - "countries.ga": "Gabon", - "countries.gb": "Wielka Brytania", - "countries.ge": "Georgia", - "countries.gh": "Ghana", - "countries.gn": "Gwinea", - "countries.gm": "Gambia", - "countries.gw": "Gwinea Bissau", - "countries.gq": "Gwinea Równikowa", - "countries.gr": "Grecja", - "countries.gd": "Grenada", - "countries.gt": "Gwatemala", - "countries.gy": "Gujana", - "countries.hn": "Honduras", - "countries.hr": "Chorwacja", - "countries.ht": "Haiti", - "countries.hu": "Węgry", - "countries.id": "Indonezja", - "countries.in": "Indie", - "countries.ie": "Irlandia", - "countries.ir": "Iran", - "countries.iq": "Irak", - "countries.is": "Islandia", - "countries.il": "Israel", - "countries.it": "Włochy", - "countries.jm": "Jamajka", - "countries.jo": "Jordan", - "countries.jp": "Japonia", - "countries.kz": "Kazachstan", - "countries.ke": "Kenia", - "countries.kg": "Kirgistan", - "countries.kh": "Kambodża", - "countries.ki": "Kiribati", - "countries.kn": "Saint Kitts i Nevis", - "countries.kr": "Korea Południowa", - "countries.kw": "Kuwejt", - "countries.la": "Laos", - "countries.lb": "Liban", - "countries.lr": "Liberia", - "countries.ly": "Libia", - "countries.lc": "Saint Lucia", - "countries.li": "Liechtenstein", - "countries.lk": "Sri Lanka", - "countries.ls": "Lesotho", - "countries.lt": "Litwa", - "countries.lu": "Luksemburg", - "countries.lv": "Łotwa", - "countries.ma": "Maroko", - "countries.mc": "Monaco", - "countries.md": "Mołdawia", - "countries.mg": "Madagaskar", - "countries.mv": "Malediwy", - "countries.mx": "Meksyk", - "countries.mh": "Wyspy Marshalla", - "countries.mk": "Macedonia", - "countries.ml": "Mali", - "countries.mt": "Malta", - "countries.mm": "Birma", - "countries.me": "Czarnogóra", - "countries.mn": "Mongolia", - "countries.mz": "Mozambik", - "countries.mr": "Mauretania", - "countries.mu": "Mauritius", - "countries.mw": "Malawi", - "countries.my": "Malezja", - "countries.na": "Namibia", - "countries.ne": "Niger", - "countries.ng": "Nigeria", - "countries.ni": "Nikaragua", - "countries.nl": "Holandia", - "countries.no": "Norwegia", - "countries.np": "Nepal", - "countries.nr": "Nauru", - "countries.nz": "Nowa Zelandia", - "countries.om": "Oman", - "countries.pk": "Pakistan", - "countries.pa": "Panama", - "countries.pe": "Peru", - "countries.ph": "Filipiny", - "countries.pw": "Palau", - "countries.pg": "Papua Nowa Gwinea", - "countries.pl": "Polska", - "countries.kp": "Korea Północna", - "countries.pt": "Portugalia", - "countries.py": "Paragwaj", - "countries.qa": "Katar", - "countries.ro": "Rumunia", - "countries.ru": "Rosja", - "countries.rw": "Rwanda", - "countries.sa": "Arabia Saudyjska", - "countries.sd": "Sudan", - "countries.sn": "Senegal", - "countries.sg": "Singapur", - "countries.sb": "Wyspy Salomona", - "countries.sl": "Sierra Leone", - "countries.sv": "Salwador", - "countries.sm": "San Marino", - "countries.so": "Somalia", - "countries.rs": "Serbia", - "countries.ss": "Sudan Południowy", - "countries.st": "Wyspy Świętego Tomasza i Książęca", - "countries.sr": "Surinam", - "countries.sk": "Słowacja", - "countries.si": "Słowenia", - "countries.se": "Szwecja", - "countries.sz": "Suazi", - "countries.sc": "Seszele", - "countries.sy": "Syria", - "countries.td": "Czad", - "countries.tg": "Togo", - "countries.th": "Tajlandia", - "countries.tj": "Tadżykistan", - "countries.tm": "Turkmenistan", - "countries.tl": "Timor Wschodni", - "countries.to": "Tonga", - "countries.tt": "Trynidad i Tobago", - "countries.tn": "Tunezja", - "countries.tr": "Turcja", - "countries.tv": "Tuvalu", - "countries.tz": "Tanzania", - "countries.ug": "Uganda", - "countries.ua": "Ukraina", - "countries.uy": "Urugwaj", - "countries.us": "Stany Zjednoczone", - "countries.uz": "Uzbekistan", - "countries.va": "Watykan", - "countries.vc": "Saint Vincent i Grenadyny", - "countries.ve": "Wenezuela", - "countries.vn": "Wietnam", - "countries.vu": "Vanuatu", - "countries.ws": "Samoa", - "countries.ye": "Jemen", - "countries.za": "Republika Południowej Afryki", - "countries.zm": "Zambia", - "countries.zw": "Zimbabwe", - "continents.af": "Afryka", - "continents.an": "Antarktyda", - "continents.as": "Azja", - "continents.eu": "Europa", - "continents.na": "Ameryka Północna", - "continents.oc": "Oceania", - "continents.sa": "Ameryka południowa" -} \ No newline at end of file + "settings.inspire": "\"Sztuka bycia mądrym to sztuka wiedzieć, co przeoczyć.\"", + "settings.locale": "pl", + "settings.direction": "ltr", + "emails.sender": "Zespół %s", + "emails.verification.subject": "Weryfikacja konta", + "emails.verification.hello": "Cześć {{name}}", + "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, możesz zignorować tę wiadomość.", + "emails.verification.thanks": "Dziękujemy", + "emails.verification.signature": "Zespół {{project}}", + "emails.magicSession.subject": "Logowanie", + "emails.magicSession.hello": "Cześć,", + "emails.magicSession.body": "Przejdź do tego linku, aby zalogować się.", + "emails.magicSession.footer": "Jeśli to nie Ty prosiłeś o logowanie przy użyciu tego adresu e-mail, możesz zignorować tę wiadomość.", + "emails.magicSession.thanks": "Dziękujemy", + "emails.magicSession.signature": "Zespół {{project}}", + "emails.recovery.subject": "Resetowanie hasła", + "emails.recovery.hello": "Cześć {{name}}", + "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, możesz zignorować tę wiadomość.", + "emails.recovery.thanks": "Dziękujemy", + "emails.recovery.signature": "Zespół {{project}}", + "emails.invitation.subject": "Zaproszenie do zespołu %s w %s", + "emails.invitation.hello": "Cześć", + "emails.invitation.body": "Otrzymujesz tę wiadomość, ponieważ {{owner}} zaprasza Cię do grona członków zespołu {{team}} w projekcie {{project}}.", + "emails.invitation.footer": "Jeśli nie jesteś zainteresowany, możesz zignorować tę wiadomość.", + "emails.invitation.thanks": "Dziękujemy", + "emails.invitation.signature": "Zespół {{project}}", + "locale.country.unknown": "Nieznany", + "countries.af": "Afganistan", + "countries.ao": "Angola", + "countries.al": "Albania", + "countries.ad": "Andora", + "countries.ae": "Zjednoczone Emiraty Arabskie", + "countries.ar": "Argentyna", + "countries.am": "Armenia", + "countries.ag": "Antigua i Barbuda", + "countries.au": "Australia", + "countries.at": "Austria", + "countries.az": "Azerbejdżan", + "countries.bi": "Burundi", + "countries.be": "Belgia", + "countries.bj": "Benin", + "countries.bf": "Burkina Faso", + "countries.bd": "Bangladesz", + "countries.bg": "Bułgaria", + "countries.bh": "Bahrajn", + "countries.bs": "Bahamy", + "countries.ba": "Bośnia i Hercegowina", + "countries.by": "Białoruś", + "countries.bz": "Belize", + "countries.bo": "Boliwia", + "countries.br": "Brazylia", + "countries.bb": "Barbados", + "countries.bn": "Brunei", + "countries.bt": "Bhutan", + "countries.bw": "Botswana", + "countries.cf": "Republika Środkowoafrykańska", + "countries.ca": "Kanada", + "countries.ch": "Szwajcaria", + "countries.cl": "Chile", + "countries.cn": "Chiny", + "countries.ci": "Wybrzeże Kości Słoniowej", + "countries.cm": "Kamerun", + "countries.cd": "DR Congo", + "countries.cg": "Republika Konga", + "countries.co": "Kolumbia", + "countries.km": "Komory", + "countries.cv": "Republika Zielonego Przylądka", + "countries.cr": "Kostaryka", + "countries.cu": "Kuba", + "countries.cy": "Cypr", + "countries.cz": "Czechy", + "countries.de": "Niemcy", + "countries.dj": "Dżibuti", + "countries.dm": "Dominica", + "countries.dk": "Dania", + "countries.do": "Republika Dominikańska", + "countries.dz": "Algieria", + "countries.ec": "Ekwador", + "countries.eg": "Egipt", + "countries.er": "Erytrea", + "countries.es": "Hiszpania", + "countries.ee": "Estonia", + "countries.et": "Etiopia", + "countries.fi": "Finlandia", + "countries.fj": "Fidżi", + "countries.fr": "Francja", + "countries.fm": "Mikronezja", + "countries.ga": "Gabon", + "countries.gb": "Wielka Brytania", + "countries.ge": "Georgia", + "countries.gh": "Ghana", + "countries.gn": "Gwinea", + "countries.gm": "Gambia", + "countries.gw": "Gwinea Bissau", + "countries.gq": "Gwinea Równikowa", + "countries.gr": "Grecja", + "countries.gd": "Grenada", + "countries.gt": "Gwatemala", + "countries.gy": "Gujana", + "countries.hn": "Honduras", + "countries.hr": "Chorwacja", + "countries.ht": "Haiti", + "countries.hu": "Węgry", + "countries.id": "Indonezja", + "countries.in": "Indie", + "countries.ie": "Irlandia", + "countries.ir": "Iran", + "countries.iq": "Irak", + "countries.is": "Islandia", + "countries.il": "Israel", + "countries.it": "Włochy", + "countries.jm": "Jamajka", + "countries.jo": "Jordan", + "countries.jp": "Japonia", + "countries.kz": "Kazachstan", + "countries.ke": "Kenia", + "countries.kg": "Kirgistan", + "countries.kh": "Kambodża", + "countries.ki": "Kiribati", + "countries.kn": "Saint Kitts i Nevis", + "countries.kr": "Korea Południowa", + "countries.kw": "Kuwejt", + "countries.la": "Laos", + "countries.lb": "Liban", + "countries.lr": "Liberia", + "countries.ly": "Libia", + "countries.lc": "Saint Lucia", + "countries.li": "Liechtenstein", + "countries.lk": "Sri Lanka", + "countries.ls": "Lesotho", + "countries.lt": "Litwa", + "countries.lu": "Luksemburg", + "countries.lv": "Łotwa", + "countries.ma": "Maroko", + "countries.mc": "Monaco", + "countries.md": "Mołdawia", + "countries.mg": "Madagaskar", + "countries.mv": "Malediwy", + "countries.mx": "Meksyk", + "countries.mh": "Wyspy Marshalla", + "countries.mk": "Macedonia", + "countries.ml": "Mali", + "countries.mt": "Malta", + "countries.mm": "Birma", + "countries.me": "Czarnogóra", + "countries.mn": "Mongolia", + "countries.mz": "Mozambik", + "countries.mr": "Mauretania", + "countries.mu": "Mauritius", + "countries.mw": "Malawi", + "countries.my": "Malezja", + "countries.na": "Namibia", + "countries.ne": "Niger", + "countries.ng": "Nigeria", + "countries.ni": "Nikaragua", + "countries.nl": "Holandia", + "countries.no": "Norwegia", + "countries.np": "Nepal", + "countries.nr": "Nauru", + "countries.nz": "Nowa Zelandia", + "countries.om": "Oman", + "countries.pk": "Pakistan", + "countries.pa": "Panama", + "countries.pe": "Peru", + "countries.ph": "Filipiny", + "countries.pw": "Palau", + "countries.pg": "Papua Nowa Gwinea", + "countries.pl": "Polska", + "countries.kp": "Korea Północna", + "countries.pt": "Portugalia", + "countries.py": "Paragwaj", + "countries.qa": "Katar", + "countries.ro": "Rumunia", + "countries.ru": "Rosja", + "countries.rw": "Rwanda", + "countries.sa": "Arabia Saudyjska", + "countries.sd": "Sudan", + "countries.sn": "Senegal", + "countries.sg": "Singapur", + "countries.sb": "Wyspy Salomona", + "countries.sl": "Sierra Leone", + "countries.sv": "Salwador", + "countries.sm": "San Marino", + "countries.so": "Somalia", + "countries.rs": "Serbia", + "countries.ss": "Sudan Południowy", + "countries.st": "Wyspy Świętego Tomasza i Książęca", + "countries.sr": "Surinam", + "countries.sk": "Słowacja", + "countries.si": "Słowenia", + "countries.se": "Szwecja", + "countries.sz": "Suazi", + "countries.sc": "Seszele", + "countries.sy": "Syria", + "countries.td": "Czad", + "countries.tg": "Togo", + "countries.th": "Tajlandia", + "countries.tj": "Tadżykistan", + "countries.tm": "Turkmenistan", + "countries.tl": "Timor Wschodni", + "countries.to": "Tonga", + "countries.tt": "Trynidad i Tobago", + "countries.tn": "Tunezja", + "countries.tr": "Turcja", + "countries.tv": "Tuvalu", + "countries.tz": "Tanzania", + "countries.ug": "Uganda", + "countries.ua": "Ukraina", + "countries.uy": "Urugwaj", + "countries.us": "Stany Zjednoczone", + "countries.uz": "Uzbekistan", + "countries.va": "Watykan", + "countries.vc": "Saint Vincent i Grenadyny", + "countries.ve": "Wenezuela", + "countries.vn": "Wietnam", + "countries.vu": "Vanuatu", + "countries.ws": "Samoa", + "countries.ye": "Jemen", + "countries.za": "Republika Południowej Afryki", + "countries.zm": "Zambia", + "countries.zw": "Zimbabwe", + "continents.af": "Afryka", + "continents.an": "Antarktyda", + "continents.as": "Azja", + "continents.eu": "Europa", + "continents.na": "Ameryka Północna", + "continents.oc": "Oceania", + "continents.sa": "Ameryka południowa" +} From a855bb074304539f183a1f1ac9ccfad56c9a81c0 Mon Sep 17 00:00:00 2001 From: Subaraki Date: Mon, 4 Oct 2021 18:36:31 +0200 Subject: [PATCH 078/110] Updated nl.json Filled in empty translations for the dutch language. --- app/config/locale/translations/nl.json | 50 +++++++++++++------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/config/locale/translations/nl.json b/app/config/locale/translations/nl.json index fca9472384..c41d3987bc 100644 --- a/app/config/locale/translations/nl.json +++ b/app/config/locale/translations/nl.json @@ -3,30 +3,30 @@ "settings.locale": "nl", "settings.direction": "ltr", "emails.sender": "%s Team", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Account Verificatie", + "emails.verification.hello": "Hoi {{name}}", + "emails.verification.body": "Volg deze link om uw e-mail te verifieren", + "emails.verification.footer": "Als u geen aanvraag voor verificatie heeft gemaakt, kan u deze mail negeren", + "emails.verification.thanks": "Bedankt", + "emails.verification.signature": "{{project}} team", + "emails.magicSession.subject": "Login", + "emails.magicSession.hello": "Hoi,", + "emails.magicSession.body": "Volg deze link om in te loggen", + "emails.magicSession.footer": "Als u geen aanvraag heeft gemaakt om met deze mail in te loggen, kan u deze mail negeren", + "emails.magicSession.thanks": "Bedankt", + "emails.magicSession.signature": "{{project}} team", + "emails.recovery.subject": "Wachtwoord Herinstellen", + "emails.recovery.hello": "Hallo {{name}}", + "emails.recovery.body": "Volg deze link om het wachtwoord van uw project {{project}} te wijzigen", + "emails.recovery.footer": "Als u geen aanvraag heeft gemaakt om uw wachtwoord te wijzigen, kan u deze mail negeren", + "emails.recovery.thanks": "Bedankt", + "emails.recovery.signature": "{{project}} team", + "emails.invitation.subject": "Uitnodiging van %s Team uit %s", + "emails.invitation.hello": "Hallo,", + "emails.invitation.body": "U ontvangt deze mail want u was uitgenodig door {{owner}} om lid van het {{team}} team te worden in {{project}} ", + "emails.invitation.footer": "Als u niet geintereseerd bent, kan u deze mail negeren.", + "emails.invitation.thanks": "Bedankt", + "emails.invitation.signature": "{{project}} team", "locale.country.unknown": "Onbekend", "countries.af": "Afghanistan", "countries.ao": "Angola", @@ -229,4 +229,4 @@ "continents.na": "Noord Amerika", "continents.oc": "Oceanië", "continents.sa": "Zuid Amerika" -} \ No newline at end of file +} From cca86170cfdf7e2dba24735eb2cf155a727e8af8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mohammad-Ali=20A=27R=C3=82BI?= Date: Mon, 4 Oct 2021 18:39:00 +0200 Subject: [PATCH 079/110] feat(locale): complete Persian translations fixes #1684 --- app/config/locale/translations/fa.json | 50 +++++++++++++------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/config/locale/translations/fa.json b/app/config/locale/translations/fa.json index 0dc473dfe4..2dd6297064 100644 --- a/app/config/locale/translations/fa.json +++ b/app/config/locale/translations/fa.json @@ -3,30 +3,30 @@ "settings.locale": "fa", "settings.direction": "rtl", "emails.sender": "تیم %s", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "تأیید حساب", + "emails.verification.hello": "سلام {{name}}", + "emails.verification.body": "برای تأیید حساب‌تان پیوند زیر را دنبال کنید.", + "emails.verification.footer": "اگر شما درخواست تأیید حساب نداده‌اید، می‌توانید این ایمیل را نادیده بگیرید.", + "emails.verification.thanks": "سپاس فراوان", + "emails.verification.signature": "تیم {{name}}", + "emails.magicSession.subject": "ورود به حساب کاربری", + "emails.magicSession.hello": "سلام،", + "emails.magicSession.body": "برای ورود به حساب‌تان پیوند زیر را دنبال کنید.", + "emails.magicSession.footer": "اگر شما درخواست ورود به حساب کاربری نداد‌ه‌اید، می‌توانید این ایمیل را نادیده بگیرید.", + "emails.magicSession.thanks": "سپاس فراوان", + "emails.magicSession.signature": "تیم {{name}}", + "emails.recovery.subject": "بازیابی گذرواژه", + "emails.recovery.hello": "سلام {{name}}", + "emails.recovery.body": "برای بازیابی گذرواژه‌تان پیوند زیر را دنبال کنید.", + "emails.recovery.footer": "اگر شما درخواست بازیابی گذرواژه نداده‌اید، می‌توانید این ایمیل را نادیده بگیرید.", + "emails.recovery.thanks": "سپاس فراوان", + "emails.recovery.signature": "تیم {{name}}", + "emails.invitation.subject": "دعوت به تیم %s در %s", + "emails.invitation.hello": "سلام", + "emails.invitation.body": "این ایمیل برای شما فرستاده شده‌است زیرا {{owner}} می‌خواهد شما را به تیم {{team}} در پروژه‌ی {{project}} بیفزاید.", + "emails.invitation.footer": "اگر علاقه ندارید، می‌توانید این پیام را نادیده بگیرید.", + "emails.invitation.thanks": "سپاس فراوان", + "emails.invitation.signature": "تیم {{name}}", "locale.country.unknown": "ناشناخته", "countries.af": "افقانستان", "countries.ao": "آنگولا", @@ -229,4 +229,4 @@ "continents.na": "آمریکای شمالی", "continents.oc": "اقیانوسیه", "continents.sa": "آمریکای جنوبی" -} \ No newline at end of file +} From 8a66885c094863af44924c21c7144534e8dded93 Mon Sep 17 00:00:00 2001 From: Erfan Bahramali <77061285+ErfanBahramali@users.noreply.github.com> Date: Mon, 4 Oct 2021 21:40:14 +0330 Subject: [PATCH 080/110] Fix Persian translation (spelling correction) --- app/config/locale/translations/fa.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/config/locale/translations/fa.json b/app/config/locale/translations/fa.json index 0dc473dfe4..3200d780e4 100644 --- a/app/config/locale/translations/fa.json +++ b/app/config/locale/translations/fa.json @@ -28,7 +28,7 @@ "emails.invitation.thanks": "", "emails.invitation.signature": "", "locale.country.unknown": "ناشناخته", - "countries.af": "افقانستان", + "countries.af": "افغانستان", "countries.ao": "آنگولا", "countries.al": "آلبانی", "countries.ad": "آندورا", @@ -108,20 +108,20 @@ "countries.in": "هند", "countries.ie": "ایرلند", "countries.ir": "ایران", - "countries.iq": "عراث", + "countries.iq": "عراق", "countries.is": "ایسلند", "countries.il": "اسرائیل", "countries.it": "ایتالیا", "countries.jm": "جاماییکا", "countries.jo": "اردن", - "countries.jp": "جاپن", + "countries.jp": "ژاپن", "countries.kz": "قزاقستان", "countries.ke": "کنیا", "countries.kg": "قرقیزستان", "countries.kh": "کامبوج", "countries.ki": "کیریباتی", "countries.kn": "سنت کیتس و نویس", - "countries.kr": "کرخ جنوبی", + "countries.kr": "کره جنوبی", "countries.kw": "کویت", "countries.la": "لائوس", "countries.lb": "لبنان", @@ -229,4 +229,4 @@ "continents.na": "آمریکای شمالی", "continents.oc": "اقیانوسیه", "continents.sa": "آمریکای جنوبی" -} \ No newline at end of file +} From c0f324411fa627f052daefcad9c293f5929802fc Mon Sep 17 00:00:00 2001 From: OscarRG <80918302+OscarRG@users.noreply.github.com> Date: Mon, 4 Oct 2021 20:10:20 +0200 Subject: [PATCH 081/110] Update app/config/locale/translations/pt-pt.json Co-authored-by: Christy Jacob --- app/config/locale/translations/pt-pt.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/pt-pt.json b/app/config/locale/translations/pt-pt.json index ff16ab2202..11cefb74d1 100644 --- a/app/config/locale/translations/pt-pt.json +++ b/app/config/locale/translations/pt-pt.json @@ -23,7 +23,7 @@ "emails.recovery.signature": "Equipa {{project}}", "emails.invitation.subject": "Convite à equipa de %s às %s", "emails.invitation.hello": "Olá", - "emails.invitation.body": "Este correio foi-lhe enviado porque {{{owner}} queria convidá-lo a tornar-se membro da equipa {{{team}} da {{project}}.", + "emails.invitation.body": "Este correio foi-lhe enviado porque {{owner}} queria convidá-lo a tornar-se membro da equipa {{team}} da {{project}}.", "emails.invitation.footer": "Se não estiver interessado, pode ignorar esta mensagem.", "emails.invitation.thanks": "Obrigado", "emails.invitation.signature": "Equipa {{project}}", From 0d41b1ffaaf79a666a9e1fff761f62c76341db1e Mon Sep 17 00:00:00 2001 From: Jesper <36137226+Ganzabahl@users.noreply.github.com> Date: Mon, 4 Oct 2021 20:40:54 +0200 Subject: [PATCH 082/110] Update app/config/locale/translations/da.json Sorry missed that one :) Co-authored-by: Christy Jacob --- app/config/locale/translations/da.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/da.json b/app/config/locale/translations/da.json index dbcaae2785..68401be419 100644 --- a/app/config/locale/translations/da.json +++ b/app/config/locale/translations/da.json @@ -51,7 +51,7 @@ "countries.by": "Hviderusland", "countries.bz": "Belize", "countries.bo": "Bolivia", - "countries.br": "Brasilien, + "countries.br": "Brasilien", "countries.bb": "Barbados", "countries.bn": "Brunei", "countries.bt": "Bhutan", From 4809598a3d7637cf9ef124536ec6074020ca4728 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Fri, 1 Oct 2021 05:01:12 +0300 Subject: [PATCH 083/110] feat(locales): add Belarusian translation --- app/config/locale/translations/be.json | 50 +++++++++++++------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/config/locale/translations/be.json b/app/config/locale/translations/be.json index 3bd9ce00df..c46c40f2c3 100644 --- a/app/config/locale/translations/be.json +++ b/app/config/locale/translations/be.json @@ -3,30 +3,30 @@ "settings.locale": "be", "settings.direction": "ltr", "emails.sender": "Каманда %s", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Верыфікацыя акаўнта", + "emails.verification.hello": "Прывітанне {{name}}", + "emails.verification.body": "Перайдзіце па гэтай спасылцы, каб пацвердзіць свой адрас электроннай пошты", + "emails.verification.footer": "Калі вы не запытвалі пацвярджэнне гэтага адрасу, праігнаруйце гэтае паведамленне.", + "emails.verification.thanks": "Дзякуем", + "emails.verification.signature": "каманда {{project}}", + "emails.magicSession.subject": "Лагін", + "emails.magicSession.hello": "Прывітанне,", + "emails.magicSession.body": "Перайдзіце па спасылцы, каб увайсці.", + "emails.magicSession.footer": "Калі вы не прасілі ўвайсці, выкарыстоўваючы гэты адрас электроннай пошты, праігнаруйце гэтае паведамленне.", + "emails.magicSession.thanks": "Дзякуем", + "emails.magicSession.signature": "каманда {{project}}", + "emails.recovery.subject": "Скід пароля", + "emails.recovery.hello": "Прывітанне, {{name}}", + "emails.recovery.body": "Перайдзіце па гэтай спасылцы, каб скінуць пароль для праекта {{project}}.", + "emails.recovery.footer": "Калі вы не прасілі скінуць пароль, вы можаце праігнараваць гэта паведамленне.", + "emails.recovery.thanks": "Дзякуем", + "emails.recovery.signature": "каманда {{project}}", + "emails.invitation.subject": "Запрошення до Команди %s у %s", + "emails.invitation.hello": "Прывітанне", + "emails.invitation.body": "Гэта паведамленне было адпраўлена вам, таму што {{owner}} хацеў запрасіць вас стаць членам каманды {{team}} у {{project}}.", + "emails.invitation.footer": "Калі вам гэта не цікава, вы можаце праігнараваць гэтае паведамленне.", + "emails.invitation.thanks": "Дзякуем", + "emails.invitation.signature": "каманда {{project}}", "locale.country.unknown": "Невядомы", "countries.af": "Афганістан", "countries.ao": "Ангола", @@ -229,4 +229,4 @@ "continents.na": "Паўночная Амерыка", "continents.oc": "Акіянія", "continents.sa": "Паўднёвая Амерыка" -} \ No newline at end of file +} From 47b6edbf7d0cccf96fa01cc72686f9f85f477d51 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Fri, 1 Oct 2021 04:29:15 +0300 Subject: [PATCH 084/110] feat(locales): add Russian translation --- app/config/locale/translations/ru.json | 50 +++++++++++++------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/config/locale/translations/ru.json b/app/config/locale/translations/ru.json index e390d5e6ab..9221996715 100644 --- a/app/config/locale/translations/ru.json +++ b/app/config/locale/translations/ru.json @@ -3,30 +3,30 @@ "settings.locale": "ru", "settings.direction": "ltr", "emails.sender": "Команда %s", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Верификация аккаунта", + "emails.verification.hello": "Здравствуйте, {{name}}", + "emails.verification.body": "Перейдите по ссылке, чтобы подтвердить свой адрес электронной почты.", + "emails.verification.footer": "Если вы не запрашивали подтверждение этого адреса, проигнорируйте это сообщение.", + "emails.verification.thanks": "Спасибо", + "emails.verification.signature": "команда {{project}}", + "emails.magicSession.subject": "Логин", + "emails.magicSession.hello": "Здравствуйте,", + "emails.magicSession.body": "Перейдите по ссылке, чтобы войти.", + "emails.magicSession.footer": "Если вы не просили войти, используя этот адрес электронной почты, проигнорируйте это сообщение.", + "emails.magicSession.thanks": "Спасибо", + "emails.magicSession.signature": "команда {{project}}", + "emails.recovery.subject": "Сброс пароля", + "emails.recovery.hello": "Здравствуйте, {{name}}", + "emails.recovery.body": "Перейдите по этой ссылке для того чтобы сбросить свой пароль для проекта {{project}}", + "emails.recovery.footer": "Если вы не запрашивали сброс пароля, проигнорируйте это сообщение.", + "emails.recovery.thanks": "Спасибо", + "emails.recovery.signature": "команда {{project}}", + "emails.invitation.subject": "Приглашение в команду %s по проекту %s", + "emails.invitation.hello": "Здравствуйте", + "emails.invitation.body": "Это письмо отправлено вам, потому что {{owner}} приглашает стать членом команды {{team}} в проекте {{project}}.", + "emails.invitation.footer": "Если вы не заинтересованы, проигнорируйте это сообщение.", + "emails.invitation.thanks": "Спасибо", + "emails.invitation.signature": "команда {{project}}", "locale.country.unknown": "Неизвестно", "countries.af": "Афганистан", "countries.ao": "Ангола", @@ -229,4 +229,4 @@ "continents.na": "Северная Америка", "continents.oc": "Океания", "continents.sa": "Южная Америка" -} \ No newline at end of file +} From dac6881c6208de1b542fb72b6398520545ac2a91 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Fri, 1 Oct 2021 04:18:48 +0300 Subject: [PATCH 085/110] feat(locales): add Ukrainian translation --- app/config/locale/translations/uk.json | 52 +++++++++++++------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/app/config/locale/translations/uk.json b/app/config/locale/translations/uk.json index 903ad61fe4..ed87f08467 100644 --- a/app/config/locale/translations/uk.json +++ b/app/config/locale/translations/uk.json @@ -1,32 +1,32 @@ { - "settings.inspire": "\"The art of being wise is the art of knowing what to overlook.\"", + "settings.inspire": "\"Мистецтво бути мудрим - це мистецтво знати, чим можна знехтувати\"", "settings.locale": "uk", "settings.direction": "ltr", "emails.sender": "Команда %s", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Верифікація акаунта", + "emails.verification.hello": "Вітаємо, {{name}}", + "emails.verification.body": "Перейдіть за цим посиланням, щоб підтвердити свою електронну адресу.", + "emails.verification.footer": "Якщо ви не запитували підтвердження цієї адреси, ви можете ігнорувати це повідомлення.", + "emails.verification.thanks": "Дякуємо", + "emails.verification.signature": "команда {{project}}", + "emails.magicSession.subject": "Логін", + "emails.magicSession.hello": "Вітаємо,", + "emails.magicSession.body": "Перейдіть за цим посиланням, щоб увійти.", + "emails.magicSession.footer": "Якщо ви не просили увійти за допомогою цієї електронної пошти, ви можете ігнорувати це повідомлення.", + "emails.magicSession.thanks": "Дякуємо", + "emails.magicSession.signature": "команда {{project}}", + "emails.recovery.subject": "Скидання пароля", + "emails.recovery.hello": "Вітаємо, {{name}}", + "emails.recovery.body": "Перейдіть за цим посиланням для того щоб скинути свій пароль для проекту {{project}}", + "emails.recovery.footer": "Якщо ви не запитували скидання паролю, проігноруйте це повідомлення.", + "emails.recovery.thanks": "Дякуємо", + "emails.recovery.signature": "команда {{project}}", + "emails.invitation.subject": "Запрошення до %s Команди у %s", + "emails.invitation.hello": "Вітаємо", + "emails.invitation.body": "Цей лист був надісланий вам тому що {{owner}} запрошує вас стати членом команди {{team}} у проекті {{project}}.", + "emails.invitation.footer": "Якщо ви не зацікавлені, проігноруйте це повідомлення.", + "emails.invitation.thanks": "Дякуємо", + "emails.invitation.signature": "команда {{project}}", "locale.country.unknown": "Невідомо", "countries.af": "Афганістан", "countries.ao": "Ангола", @@ -229,4 +229,4 @@ "continents.na": "Північна Америка", "continents.oc": "Океанія", "continents.sa": "Південна Америка" -} \ No newline at end of file +} From e30df60832b66ab4530417fcabad0ce8a5731437 Mon Sep 17 00:00:00 2001 From: izqalan Date: Tue, 5 Oct 2021 07:27:08 +0800 Subject: [PATCH 086/110] fix: punctuation --- app/config/locale/translations/ms.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/config/locale/translations/ms.json b/app/config/locale/translations/ms.json index 1af17028de..23a302d684 100644 --- a/app/config/locale/translations/ms.json +++ b/app/config/locale/translations/ms.json @@ -10,8 +10,8 @@ "emails.verification.thanks": "Terima kasih", "emails.verification.signature": "{{project}} team", "emails.magicSession.subject": "Log masuk", - "emails.magicSession.hello": "Hey", - "emails.magicSession.body": "Tekan pautan ini untuk log masuk", + "emails.magicSession.hello": "Hey,", + "emails.magicSession.body": "Tekan pautan ini untuk log masuk.", "emails.magicSession.footer": "Sekiranya anda tidak membuat permintaan untuk log masuk menggunakan email ini, sila abaikan mesej ini.", "emails.magicSession.thanks": "Terima kasih", "emails.magicSession.signature": "{{project}} team", From 5bbc3fe141d6362c266ab35ececb408a4df21daf Mon Sep 17 00:00:00 2001 From: Olyno Date: Tue, 5 Oct 2021 10:52:21 +0200 Subject: [PATCH 087/110] revert(terms): readd english version --- app/config/locale/terms.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/terms.json b/app/config/locale/terms.json index b1ce5fca4c..428be46015 100644 --- a/app/config/locale/terms.json +++ b/app/config/locale/terms.json @@ -406,7 +406,7 @@ }, { "term": "countries.fr", - "comment": "Ces noms de pays sont utilisés dans l'API Locale d'Appwrite. Pour en savoir plus, consultez le site https://appwrite.io/docs/client/locale#localeGetCountries.", + "comment": "These country names are used in Appwrite's Locale API. Learn more at https://appwrite.io/docs/client/locale#localeGetCountries", "reference": "" }, { From d8fe0c3f6f0873dce75e6fec15b3427867b27273 Mon Sep 17 00:00:00 2001 From: Olyno Date: Tue, 5 Oct 2021 10:55:45 +0200 Subject: [PATCH 088/110] fix(punctuation): add missing --- app/config/locale/translations/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/fr.json b/app/config/locale/translations/fr.json index fe46599dd6..704cf619e4 100644 --- a/app/config/locale/translations/fr.json +++ b/app/config/locale/translations/fr.json @@ -10,7 +10,7 @@ "emails.verification.thanks": "Merci", "emails.verification.signature": "Équipe {{project}}", "emails.magicSession.subject": "Connexion", - "emails.magicSession.hello": "Bonjour", + "emails.magicSession.hello": "Bonjour,", "emails.magicSession.body": "Suivez ce lien pour vous connecter.", "emails.magicSession.footer": "Si vous n'avez pas demandé à vous connecter en utilisant cet e-mail, vous pouvez ignorer ce message.", "emails.magicSession.thanks": "Merci", From ea0692cdecaffee244a34f0164a74b8abcb2954f Mon Sep 17 00:00:00 2001 From: Nikhil Shanbhag <61755381+Nikhil-1503@users.noreply.github.com> Date: Tue, 5 Oct 2021 15:39:12 +0530 Subject: [PATCH 089/110] Update kn.json Co-authored-by: Christy Jacob --- app/config/locale/translations/kn.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/kn.json b/app/config/locale/translations/kn.json index 12da1f7373..1dfe029778 100644 --- a/app/config/locale/translations/kn.json +++ b/app/config/locale/translations/kn.json @@ -21,7 +21,7 @@ "emails.recovery.footer": "ನೀವು ಗುಪ್ತಪದವನ್ನು ಮರುಹೊಂದಿಸಲು ಕೇಳದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ", "emails.recovery.thanks": "ಧನ್ಯವಾದಗಳು", "emails.recovery.signature": "{{project}} ತಂಡ", - "emails.invitation.subject": "%s ತಂಡಕ್ಕೆ %sರಲ್ಲಿ ಆಹ್ವಾನ", + "emails.invitation.subject": "%s ತಂಡಕ್ಕೆ %s ರಲ್ಲಿ ಆಹ್ವಾನ", "emails.invitation.hello": "ನಮಸ್ಕಾರ", "emails.invitation.body": "ಈ ಇಮೇಲ್ ನಿಮಗೆ ಬಂದಿದೆ ಏಕೆಂದರೆ {{owner}} ನಿಮ್ಮನ್ನು {{team}} ತಂಡದ {{project}}ರಲ್ಲಿ ಸದಸ್ಯ ಆಗಲಿಕ್ಕೆ ಆಹ್ವಾನಿಸಿದ್ದಾರೆ", "emails.invitation.footer": "ನಿಮಗೆ ಆಸಕ್ತಿಯಿಲ್ಲದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ", From 0100eb2d80ea0a71cfbaa41424e06b4e8552826a Mon Sep 17 00:00:00 2001 From: OscarRG <80918302+OscarRG@users.noreply.github.com> Date: Tue, 5 Oct 2021 12:12:29 +0200 Subject: [PATCH 090/110] Update pt-pt.json --- app/config/locale/translations/pt-pt.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/pt-pt.json b/app/config/locale/translations/pt-pt.json index 11cefb74d1..e257b47281 100644 --- a/app/config/locale/translations/pt-pt.json +++ b/app/config/locale/translations/pt-pt.json @@ -16,7 +16,7 @@ "emails.magicSession.thanks": "Obrigado", "emails.magicSession.signature": "Equipa {{project}}", "emails.recovery.subject": "Redefinição de senha", - "emails.recovery.hello": u"Olá {{name}}", + "emails.recovery.hello": "Olá {{name}}", "emails.recovery.body": "tilize 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", From ca9bfed85a397b460f7f00b5b4e80aca95e6fe40 Mon Sep 17 00:00:00 2001 From: harshita214 <79797000+harshita214@users.noreply.github.com> Date: Tue, 5 Oct 2021 17:32:33 +0530 Subject: [PATCH 091/110] Update languages.php --- app/config/locale/languages.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/config/locale/languages.php b/app/config/locale/languages.php index ee0d8697c0..99b1cb8b2b 100644 --- a/app/config/locale/languages.php +++ b/app/config/locale/languages.php @@ -291,7 +291,7 @@ return [ [ "code" => "hi", "name" => "Hindi", - "nativeName" => "हिन्दी" + "nativeName" => "हिन्दी / हिंदी " ], [ "code" => "ho", @@ -706,7 +706,7 @@ return [ [ "code" => "sd", "name" => "Sindhi", - "nativeName" => "सिनधि" + "nativeName" => "सिन्धी / सिंधी " ], [ "code" => "se", From c7bba451b217ae531960dfb8b91eca2a7fd537fd Mon Sep 17 00:00:00 2001 From: Rutam Prita Mishra Date: Tue, 5 Oct 2021 17:50:20 +0530 Subject: [PATCH 092/110] Added Sanskrit translations --- app/config/locale/codes.php | 1 + app/config/locale/translations/sa.json | 232 +++++++++++++++++++++++++ app/init.php | 1 + 3 files changed, 234 insertions(+) create mode 100644 app/config/locale/translations/sa.json diff --git a/app/config/locale/codes.php b/app/config/locale/codes.php index c8623f533c..afdb844299 100644 --- a/app/config/locale/codes.php +++ b/app/config/locale/codes.php @@ -45,6 +45,7 @@ return [ 'pa', //Punjabi 'ro', // Romanian 'ru', // Russian + 'sa', //Sanskrit 'si', // Sinhala 'sl', // Slovenian 'sq', // Albanian diff --git a/app/config/locale/translations/sa.json b/app/config/locale/translations/sa.json new file mode 100644 index 0000000000..f77e5f5d4d --- /dev/null +++ b/app/config/locale/translations/sa.json @@ -0,0 +1,232 @@ +{ + "settings.inspire": "\"किं हेयमित्यस्य ज्ञानमेव ज्ञानिलक्षणम्‌।\"", + "settings.locale": "sa", + "settings.direction": "ltr", + "emails.sender": "%s गणः", + "emails.verification.subject": "पञ्जिकानिर्णायनम्‌", + "emails.verification.hello": "अयि {{name}}", + "emails.verification.body": "ई-पत्रनिर्णायनार्थमिदं संयोगसूत्रमनुसरतु।", + "emails.verification.footer": "यदि अस्य संकेतस्य निर्णायनं नेष्यते तर्हि वात्र्तामिमामुपेक्षताम्‌।", + "emails.verification.thanks": "धन्यवादः", + "emails.verification.signature": "{{project}} गणः", + "emails.magicSession.subject": "संप्रवेशः", + "emails.magicSession.hello": "अयि,", + "emails.magicSession.body": "संप्रवेशार्थमिदं संयोगसूत्रमनुसरतु।", + "emails.magicSession.footer": "अनेन ई-पत्रण यदि संप्रवेशो नेष्यते तर्हि वात्र्तामिमामुपेक्षताम्‌।", + "emails.magicSession.thanks": "धन्यवादः", + "emails.magicSession.signature": "{{project}} गणः", + "emails.recovery.subject": "कूटशब्दपुनयाेजनम्‌", + "emails.recovery.hello": "अयि भो {{name}}", + "emails.recovery.body": "{{project}} कूटशब्दपुनयाेजनाय संयोगमेनमनुसरतु।", + "emails.recovery.footer": "यदि कूटशब्दस्य पुनयाेजनं नेष्यते तर्हि वात्र्तामिमामुपेक्षताम्‌।", + "emails.recovery.thanks": "धन्यवादः", + "emails.recovery.signature": "{{project}} गणः", + "emails.invitation.subject": "गणस्य आमन्त्रणम्‌ %s इति %s", + "emails.invitation.hello": "अयि भो", + "emails.invitation.body": "{{owner}} {{team}} गणे {{project}} मध्ये भवद्योगदानमच्छितीति हेतोः पत्रमदिं भवत्सकाशं प्रेषतिम्।", + "emails.invitation.footer": "यदि भवदनिच्छा तर्हि वात्र्तामिमामुपेक्षताम्‌।", + "emails.invitation.thanks": "धन्यवादः", + "emails.invitation.signature": "{{project}} गणः", + "locale.country.unknown": "अज्ञातम्‌ ", + "countries.af": "आफगानिस्थानम्‌", + "countries.ao": "आङ्गोला", + "countries.al": "आलबनिआ", + "countries.ad": "आण्डोरा", + "countries.ae": "संयुक्त आरब गणराज्यम्‌", + "countries.ar": "अर्जेंटीना", + "countries.am": "अर्मेनिआ", + "countries.ag": "आण्टिगुआ बर्वुदा च", + "countries.au": "अष्ट्रेलिआ", + "countries.at": "अष्ट्रिआ", + "countries.az": "आज़रबाइजान्‌", + "countries.bi": "बुरुन्दि", + "countries.be": "बेल्जिअम्‌", + "countries.bj": "बेनिन्‌", + "countries.bf": "बुर्किना फाशो", + "countries.bd": "बाङ्गलादेशः", + "countries.bg": "बुल्गेरिआ", + "countries.bh": "बाहारिन्‌", + "countries.bs": "बाहामस्‌", + "countries.ba": "बोसिनिआ हर्जेगोविन च", + "countries.by": "बेलारुष्‌", + "countries.bz": "बेलिज", + "countries.bo": "बोलिभिआ", + "countries.br": "ब्राजिल", + "countries.bb": "बर्बादोस्‌", + "countries.bn": "ब्रुनेइ", + "countries.bt": "भुटान्‌", + "countries.bw": "बोटस्वान", + "countries.cf": "केन्द्रिय आफ़्रीका गणराज्यम्‌", + "countries.ca": "कनाडा", + "countries.ch": "स्विट्ज़रलैंड", + "countries.cl": "चिली", + "countries.cn": "चीन", + "countries.ci": "आइभोरि कोष्ट", + "countries.cm": "कामेरुन्‌", + "countries.cd": "कांगो लोकतांत्रिक गणराज्यम्‌", + "countries.cg": "कोलंबिया", + "countries.co": "कोलंबिया", + "countries.km": "कोमोरोस", + "countries.cv": "केप्‌ वर्दे", + "countries.cr": "कोष्टारिका", + "countries.cu": "क्युवा", + "countries.cy": "साइप्रस्‌", + "countries.cz": "चेकिया", + "countries.de": "जर्मनी", + "countries.dj": "जिबूती", + "countries.dm": "डोमिनिका", + "countries.dk": "डेनमार्क", + "countries.do": "डोमिनिका गणराज्यम्‌", + "countries.dz": "एलजीरिया", + "countries.ec": "इक्वेडोर", + "countries.eg": "मिस्र", + "countries.er": "एरिट्रिआ", + "countries.es": "स्पेन्‌", + "countries.ee": "एस्तोनिया", + "countries.et": "इथिओपिआ", + "countries.fi": "फिनलैंड", + "countries.fj": "फ़िजी", + "countries.fr": "फ्रांस", + "countries.fm": "माइक्रोनेशिया", + "countries.ga": "गैबॉन", + "countries.gb": "संयुक्त राज्यम्‌", + "countries.ge": "जॉर्जिया", + "countries.gh": "घाना", + "countries.gn": "गिन्नी", + "countries.gm": "गाम्बिया", + "countries.gw": "गिनी-बिसाऊ", + "countries.gq": "भूमध्यवर्ती गिनी", + "countries.gr": "ग्रीस्‌", + "countries.gd": "ग्रेनेडा", + "countries.gt": "ग्वाटेमाला", + "countries.gy": "गुयाना", + "countries.hn": "होंडुरस्‌", + "countries.hr": "क्रोएशिया", + "countries.ht": "हैती", + "countries.hu": "हङ्गेरी", + "countries.id": "इंडोनेशिया", + "countries.in": "भारत", + "countries.ie": "आयरलैंड", + "countries.ir": "ईरान", + "countries.iq": "इराक", + "countries.is": "आइसलैंड", + "countries.il": "इजराइल", + "countries.it": "इटली", + "countries.jm": "जमैका", + "countries.jo": "जॉर्डन", + "countries.jp": "जापान", + "countries.kz": "कजाखस्तान", + "countries.ke": "केन्या", + "countries.kg": "किर्गिज़स्तान", + "countries.kh": "कंबोडिया", + "countries.ki": "किरिबाती", + "countries.kn": "सेंट किट्ट्स नेविस च", + "countries.kr": "दक्षिण कोरिया", + "countries.kw": "कुवैट", + "countries.la": "लाओस", + "countries.lb": "लेबनान्", + "countries.lr": "लाइबेरिया", + "countries.ly": "लीबिया", + "countries.lc": "सेंट लूसिया", + "countries.li": "लिकटेंस्टाइन्", + "countries.lk": "श्री लंका", + "countries.ls": "लिसोटो", + "countries.lt": "लिथुआनिया", + "countries.lu": "लक्समबर्ग", + "countries.lv": "लातविया", + "countries.ma": "मोरक्को", + "countries.mc": "मोनाको", + "countries.md": "मोलदोवा", + "countries.mg": "मेडागास्कर", + "countries.mv": "मालद्वीप", + "countries.mx": "मेक्सिको", + "countries.mh": "मार्शल द्वीप समूह", + "countries.mk": "मैसेडोनिया", + "countries.ml": "माली", + "countries.mt": "माल्टा", + "countries.mm": "म्यांमार", + "countries.me": "मोंटेनेग्रो", + "countries.mn": "मंगोलिया", + "countries.mz": "मोजाम्बिक्", + "countries.mr": "मॉरिटानिया", + "countries.mu": "मॉरीशस्", + "countries.mw": "मलावी", + "countries.my": "मलेशिया", + "countries.na": "नामीबिया", + "countries.ne": "नाइजर्‌", + "countries.ng": "नाइजीरिया", + "countries.ni": "निकारागुआ", + "countries.nl": "नीदरलैंड", + "countries.no": "नॉर्वे", + "countries.np": "नेपाल", + "countries.nr": "नाउरू", + "countries.nz": "न्यूजीलैंड", + "countries.om": "ओमान", + "countries.pk": "पाकिस्तान", + "countries.pa": "पनामा", + "countries.pe": "पेरू", + "countries.ph": "फिलीपींस", + "countries.pw": "पलाउ", + "countries.pg": "पापुआ न्यू गिनी", + "countries.pl": "पोलैंड", + "countries.kp": "उत्तर कोरिया", + "countries.pt": "पुर्तगाल", + "countries.py": "परागुआ", + "countries.qa": "कतर", + "countries.ro": "रोमानिया", + "countries.ru": "रूस्", + "countries.rw": "रुआण्डा", + "countries.sa": "सऊदी अरब", + "countries.sd": "सूडान", + "countries.sn": "सेनेगल", + "countries.sg": "सिंगापुर", + "countries.sb": "सोलोमन द्वीप", + "countries.sl": "सियरा लिओन", + "countries.sv": "अल साल्वाडोर", + "countries.sm": "सैन् मैरीनो", + "countries.so": "सोमालिया", + "countries.rs": "सर्बिया", + "countries.ss": "दक्षिण सूडान", + "countries.st": "साओ टोमे प्रिंसिपे च", + "countries.sr": "सूरीनाम", + "countries.sk": "स्लोवाकिया", + "countries.si": "स्लोवेनिया", + "countries.se": "स्विडेन", + "countries.sz": "स्वाजीलैंड", + "countries.sc": "सेशेल्स", + "countries.sy": "सीरिया", + "countries.td": "चाड़", + "countries.tg": "टोगो", + "countries.th": "थाईलैंड", + "countries.tj": "तजाकिस्तान", + "countries.tm": "तुर्कमेनिस्तान", + "countries.tl": "तिमोर-लेस्ते", + "countries.to": "टोंगा", + "countries.tt": "त्रिनिदाद टोबैगो च", + "countries.tn": "ट्यूनीशिया", + "countries.tr": "तुर्की", + "countries.tv": "तुवालु", + "countries.tz": "तंजानिया", + "countries.ug": "युगांडा", + "countries.ua": "यूक्रेन", + "countries.uy": "उरुग्वे", + "countries.us": "संयुक्तराष्ट्रम्‌", + "countries.uz": "उज़्बेकिस्तान", + "countries.va": "वेटिकन सिटी", + "countries.vc": "सेंट विंसेंट ग्रेनडीनेस च", + "countries.ve": "वेनेजुएला", + "countries.vn": "वियतनाम", + "countries.vu": "वानुअतु", + "countries.ws": "समोआ", + "countries.ye": "यमन", + "countries.za": "दक्षिण अफ्रीका", + "countries.zm": "जाम्बिया", + "countries.zw": "जिम्बाब्वे", + "continents.af": "अफ्रीका", + "continents.an": "अंटार्कटिका", + "continents.as": "एशिया", + "continents.eu": "यूरोप", + "continents.na": "उत्तरी अमेरिका", + "continents.oc": "ओशिनिया", + "continents.sa": "दक्षिण अमेरिका" +} \ No newline at end of file diff --git a/app/init.php b/app/init.php index 8c1d6cb455..c11e1b252e 100644 --- a/app/init.php +++ b/app/init.php @@ -304,6 +304,7 @@ Locale::setLanguageFromJSON('pt-br', __DIR__.'/config/locale/translations/pt-br. Locale::setLanguageFromJSON('pt-pt', __DIR__.'/config/locale/translations/pt-pt.json'); Locale::setLanguageFromJSON('ro', __DIR__.'/config/locale/translations/ro.json'); Locale::setLanguageFromJSON('ru', __DIR__ . '/config/locale/translations/ru.json'); +Locale::setLanguageFromJSON('sa', __DIR__ . '/config/locale/translations/sa.json'); Locale::setLanguageFromJSON('si', __DIR__ . '/config/locale/translations/si.json'); Locale::setLanguageFromJSON('sl', __DIR__ . '/config/locale/translations/sl.json'); Locale::setLanguageFromJSON('sq', __DIR__ . '/config/locale/translations/sq.json'); From edf3a4d48dbb35184fa4f1c0a6a0269394123296 Mon Sep 17 00:00:00 2001 From: Dazzler Kumar Date: Tue, 5 Oct 2021 20:47:30 +0530 Subject: [PATCH 093/110] Update Bihari Translations --- app/config/locale/translations/bh.json | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/app/config/locale/translations/bh.json b/app/config/locale/translations/bh.json index 7b48a4d2a7..528ab379bf 100644 --- a/app/config/locale/translations/bh.json +++ b/app/config/locale/translations/bh.json @@ -3,30 +3,30 @@ "settings.locale": "bh", "settings.direction": "ltr", "emails.sender": "%s टीम", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "खाता प्रमाणिकरण", + "emails.verification.hello": "नमस्ते {{name}}", + "emails.verification.body": "ईमेल प्रमाणिकरण करे क लेल दिहल गइल लिंक फॉलो करें|", + "emails.verification.footer": "अगर ई पता को सत्यापित करे के लिए ना कहाले, तो आप ई संदेश क अनदेखा कर सकत अछि।", + "emails.verification.thanks": "धन्यवाद", + "emails.verification.signature": "{{project}} टीम", + "emails.magicSession.subject": "लॉग इन करीं|", + "emails.magicSession.hello": "प्रणाम", + "emails.magicSession.body": "लॉग इन करें लेल दिहल गइल लिंक फॉलो करें|", + "emails.magicSession.footer": "अगर लॉग इन करे के लिए ना कहाले, तो आप ई संदेश क अनदेखा कर सकत अछि।", + "emails.magicSession.thanks": "धन्यवाद", + "emails.magicSession.signature": "{{project}} टीम", + "emails.recovery.subject": "पासवर्ड बदल क लेल|", + "emails.recovery.hello": "प्रणाम {{name}}", + "emails.recovery.body": "पासवर्ड बदल क लेल दिहल गइल लिंक फॉलो करें|", + "emails.recovery.footer": "अगर पासवर्ड बदल क लेल ना कहाले, तो आप ई संदेश क अनदेखा कर सकत अछि।", + "emails.recovery.thanks": "धन्यवाद", + "emails.recovery.signature": "{{project}} टीम", + "emails.invitation.subject": "%s टीम क न्योता देवे क लेल|", + "emails.invitation.hello": "प्रणाम", + "emails.invitation.body": "ई मेल आपके एही लेल भेजल गईल रहल काहे क {{owner}} आपके {{project}} क {{team}} टीम का सदस्य बनावे चाहित रहे|", + "emails.invitation.footer": "अगर आवे क इच्छा ना होवत, तो आप ई संदेश क अनदेखा कर सकत अछि।", + "emails.invitation.thanks": "धन्यवाद", + "emails.invitation.signature": "{{project}} टीम", "locale.country.unknown": "अनजान", "countries.af": "अफ़ग़ानिस्तान", "countries.ao": "अंगोला", From af56a8efba3cad54c273530c2c172eecf5ddbb5e Mon Sep 17 00:00:00 2001 From: JB Leiknes <33250853+NeonSpork@users.noreply.github.com> Date: Tue, 5 Oct 2021 18:28:54 +0200 Subject: [PATCH 094/110] fix: change line 13 to more closely follow en.json --- app/config/locale/translations/no.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/config/locale/translations/no.json b/app/config/locale/translations/no.json index a09d4119db..ec96cb4483 100644 --- a/app/config/locale/translations/no.json +++ b/app/config/locale/translations/no.json @@ -10,7 +10,7 @@ "emails.verification.thanks": "Takk", "emails.verification.signature": "{{project}} team", "emails.magicSession.subject": "Pålogging", - "emails.magicSession.hello": "Hallo", + "emails.magicSession.hello": "Hei,", "emails.magicSession.body": "Følg denne lenken for å logge på.", "emails.magicSession.footer": "Dersom du ikke ba om å logge på med denne e-post adressen, kan du se bort fra denne meldingen.", "emails.magicSession.thanks": "Takk", @@ -229,4 +229,4 @@ "continents.na": "Nord-Amerika", "continents.oc": "Oseania", "continents.sa": "Sør-Amerika" -} \ No newline at end of file +} From e8becd73dc48eeee55e6675488f27a221685c818 Mon Sep 17 00:00:00 2001 From: NeonSpork Date: Tue, 5 Oct 2021 19:28:12 +0200 Subject: [PATCH 095/110] fix: add missing period --- app/config/locale/translations/no.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/no.json b/app/config/locale/translations/no.json index ec96cb4483..d46e1bba36 100644 --- a/app/config/locale/translations/no.json +++ b/app/config/locale/translations/no.json @@ -5,7 +5,7 @@ "emails.sender": "%s Team", "emails.verification.subject": "Kontobekreftelse", "emails.verification.hello": "Hallo {{name}}", - "emails.verification.body": "Følg denne lengken for å bekrefte din e-post adresse", + "emails.verification.body": "Følg denne lengken for å bekrefte din e-post adresse.", "emails.verification.footer": "Dersom du ikke ba om å bekrefte e-post adressen, kan du se bort fra denne meldingen.", "emails.verification.thanks": "Takk", "emails.verification.signature": "{{project}} team", From 7024af064351748e8f83a9ee001ba53fbdfb2b08 Mon Sep 17 00:00:00 2001 From: NeonSpork Date: Tue, 5 Oct 2021 19:29:25 +0200 Subject: [PATCH 096/110] fix: typo --- app/config/locale/translations/no.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/no.json b/app/config/locale/translations/no.json index d46e1bba36..30acd50b82 100644 --- a/app/config/locale/translations/no.json +++ b/app/config/locale/translations/no.json @@ -5,7 +5,7 @@ "emails.sender": "%s Team", "emails.verification.subject": "Kontobekreftelse", "emails.verification.hello": "Hallo {{name}}", - "emails.verification.body": "Følg denne lengken for å bekrefte din e-post adresse.", + "emails.verification.body": "Følg denne lenken for å bekrefte din e-post adresse.", "emails.verification.footer": "Dersom du ikke ba om å bekrefte e-post adressen, kan du se bort fra denne meldingen.", "emails.verification.thanks": "Takk", "emails.verification.signature": "{{project}} team", From 735c04318db27511744d35a1cb2ecac9ce111026 Mon Sep 17 00:00:00 2001 From: David Mendoza Date: Tue, 5 Oct 2021 11:46:56 -0600 Subject: [PATCH 097/110] fixed PSR issues on event library issue #1943 --- src/Appwrite/Event/Event.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Appwrite/Event/Event.php b/src/Appwrite/Event/Event.php index b2c69337a2..19496bee75 100644 --- a/src/Appwrite/Event/Event.php +++ b/src/Appwrite/Event/Event.php @@ -6,7 +6,6 @@ use Resque; class Event { - const DELETE_QUEUE_NAME = 'v1-deletes'; const DELETE_CLASS_NAME = 'DeletesV1'; From 4228c304a5de694830c56436cb033a0605225d71 Mon Sep 17 00:00:00 2001 From: David Mendoza Date: Tue, 5 Oct 2021 11:49:05 -0600 Subject: [PATCH 098/110] Revert "fixed PSR issues on event library issue #1943" This reverts commit 735c04318db27511744d35a1cb2ecac9ce111026. --- src/Appwrite/Event/Event.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Appwrite/Event/Event.php b/src/Appwrite/Event/Event.php index 19496bee75..b2c69337a2 100644 --- a/src/Appwrite/Event/Event.php +++ b/src/Appwrite/Event/Event.php @@ -6,6 +6,7 @@ use Resque; class Event { + const DELETE_QUEUE_NAME = 'v1-deletes'; const DELETE_CLASS_NAME = 'DeletesV1'; From 3ee11afe8878120d43330ea138677e255a7d11fb Mon Sep 17 00:00:00 2001 From: David Mendoza Date: Tue, 5 Oct 2021 11:50:54 -0600 Subject: [PATCH 099/110] Fixed PSR issues on event library --- src/Appwrite/Event/Event.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Appwrite/Event/Event.php b/src/Appwrite/Event/Event.php index b2c69337a2..19496bee75 100644 --- a/src/Appwrite/Event/Event.php +++ b/src/Appwrite/Event/Event.php @@ -6,7 +6,6 @@ use Resque; class Event { - const DELETE_QUEUE_NAME = 'v1-deletes'; const DELETE_CLASS_NAME = 'DeletesV1'; From 13c8c9a6fdf59ed38bc9463f0950e5c03da4b999 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Ekstro=CC=88m?= Date: Tue, 5 Oct 2021 19:51:28 +0200 Subject: [PATCH 100/110] Add missing Swedish translations --- app/config/locale/translations/sv.json | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/app/config/locale/translations/sv.json b/app/config/locale/translations/sv.json index cef2c1cde4..83135464e3 100644 --- a/app/config/locale/translations/sv.json +++ b/app/config/locale/translations/sv.json @@ -3,30 +3,30 @@ "settings.locale": "sv", "settings.direction": "ltr", "emails.sender": "%s-teamet", - "emails.verification.subject": "", - "emails.verification.hello": "", - "emails.verification.body": "", - "emails.verification.footer": "", - "emails.verification.thanks": "", - "emails.verification.signature": "", - "emails.magicSession.subject": "", - "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", - "emails.magicSession.thanks": "", - "emails.magicSession.signature": "", - "emails.recovery.subject": "", - "emails.recovery.hello": "", - "emails.recovery.body": "", - "emails.recovery.footer": "", - "emails.recovery.thanks": "", - "emails.recovery.signature": "", - "emails.invitation.subject": "", - "emails.invitation.hello": "", - "emails.invitation.body": "", - "emails.invitation.footer": "", - "emails.invitation.thanks": "", - "emails.invitation.signature": "", + "emails.verification.subject": "Verifiera konto", + "emails.verification.hello": "Hej {{name}}", + "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 adressen kan du ignorera detta mail.", + "emails.verification.thanks": "Tack", + "emails.verification.signature": "{{project}} teamet", + "emails.magicSession.subject": "Logga in", + "emails.magicSession.hello": "Hej,", + "emails.magicSession.body": "Klicka på denna länk för att logga in.", + "emails.magicSession.footer": "Om du inte bad om att logga in med denna address kan du ignorera detta mail.", + "emails.magicSession.thanks": "Tack", + "emails.magicSession.signature": "{{project}} teamet", + "emails.recovery.subject": "Återställ lösenord", + "emails.recovery.hello": "Hej {{name}}", + "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", + "emails.recovery.signature": "{{project}} teamet", + "emails.invitation.subject": "Inbjudan till %s teamet på %s", + "emails.invitation.hello": "Hej", + "emails.invitation.body": "Detta mail skickades till dig eftersom {{owner}} ville bjuda in dig att bli medlem i teamet {{team}} på {{project}}.", + "emails.invitation.footer": "Om du inte är intresserad kan du ignorera detta mail.", + "emails.invitation.thanks": "Tack", + "emails.invitation.signature": "{{project}} teamet", "locale.country.unknown": "Okänt", "countries.af": "Afghanistan", "countries.ao": "Angola", From 0f89d969e83115e6329ee1515bc80fc910c5cf03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Ekstro=CC=88m?= Date: Tue, 5 Oct 2021 19:53:06 +0200 Subject: [PATCH 101/110] Use e-postadressen instead of adressen --- app/config/locale/translations/sv.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/config/locale/translations/sv.json b/app/config/locale/translations/sv.json index 83135464e3..78f3dc57b3 100644 --- a/app/config/locale/translations/sv.json +++ b/app/config/locale/translations/sv.json @@ -6,13 +6,13 @@ "emails.verification.subject": "Verifiera konto", "emails.verification.hello": "Hej {{name}}", "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 adressen kan du ignorera detta mail.", + "emails.verification.footer": "Om du inte bad om att verifiera den här e-postadressen kan du ignorera detta mail.", "emails.verification.thanks": "Tack", "emails.verification.signature": "{{project}} teamet", "emails.magicSession.subject": "Logga in", "emails.magicSession.hello": "Hej,", "emails.magicSession.body": "Klicka på denna länk för att logga in.", - "emails.magicSession.footer": "Om du inte bad om att logga in med denna address kan du ignorera detta mail.", + "emails.magicSession.footer": "Om du inte bad om att logga in med denna e-postadress kan du ignorera detta mail.", "emails.magicSession.thanks": "Tack", "emails.magicSession.signature": "{{project}} teamet", "emails.recovery.subject": "Återställ lösenord", From ef0172beb11647ffd1ad7406d072b4d9922685d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Ekstro=CC=88m?= Date: Tue, 5 Oct 2021 21:43:16 +0200 Subject: [PATCH 102/110] Fix indentation --- app/config/locale/translations/sv.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/sv.json b/app/config/locale/translations/sv.json index 78f3dc57b3..eecca99a55 100644 --- a/app/config/locale/translations/sv.json +++ b/app/config/locale/translations/sv.json @@ -12,7 +12,7 @@ "emails.magicSession.subject": "Logga in", "emails.magicSession.hello": "Hej,", "emails.magicSession.body": "Klicka på denna länk för att logga in.", - "emails.magicSession.footer": "Om du inte bad om att logga in med denna e-postadress kan du ignorera detta mail.", + "emails.magicSession.footer": "Om du inte bad om att logga in med denna e-postadress kan du ignorera detta mail.", "emails.magicSession.thanks": "Tack", "emails.magicSession.signature": "{{project}} teamet", "emails.recovery.subject": "Återställ lösenord", From 2865921c0099195e052b0ef8272b389a752ba14b Mon Sep 17 00:00:00 2001 From: Emilia Date: Tue, 5 Oct 2021 22:07:39 +0200 Subject: [PATCH 103/110] Fix PSR issues in Network --- src/Appwrite/Network/Validator/IP.php | 14 ++++---- src/Appwrite/Network/Validator/Origin.php | 42 +++++++++++------------ 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/Appwrite/Network/Validator/IP.php b/src/Appwrite/Network/Validator/IP.php index 84689b3ff7..5d7833da6f 100644 --- a/src/Appwrite/Network/Validator/IP.php +++ b/src/Appwrite/Network/Validator/IP.php @@ -14,9 +14,9 @@ use Utopia\Validator; */ class IP extends Validator { - const ALL = 'all'; - const V4 = 'ipv4'; - const V6 = 'ipv6'; + public const ALL = 'all'; + public const V4 = 'ipv4'; + public const V6 = 'ipv6'; /** * @var string @@ -67,24 +67,24 @@ class IP extends Validator return true; } break; - + case self::V4: if (\filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { return true; } break; - + case self::V6: if (\filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { return true; } break; - + default: return false; break; } - + return false; } diff --git a/src/Appwrite/Network/Validator/Origin.php b/src/Appwrite/Network/Validator/Origin.php index 1581c445c6..9677bc14eb 100644 --- a/src/Appwrite/Network/Validator/Origin.php +++ b/src/Appwrite/Network/Validator/Origin.php @@ -6,24 +6,24 @@ use Utopia\Validator; class Origin extends Validator { - const CLIENT_TYPE_UNKNOWN = 'unknown'; - const CLIENT_TYPE_WEB = 'web'; - const CLIENT_TYPE_FLUTTER_IOS = 'flutter-ios'; - const CLIENT_TYPE_FLUTTER_ANDROID = 'flutter-android'; - const CLIENT_TYPE_FLUTTER_MACOS = 'flutter-macos'; - const CLIENT_TYPE_FLUTTER_WINDOWS = 'flutter-windows'; - const CLIENT_TYPE_FLUTTER_LINUX = 'flutter-linux'; - const CLIENT_TYPE_ANDROID = 'android'; - const CLIENT_TYPE_IOS = 'ios'; + public const CLIENT_TYPE_UNKNOWN = 'unknown'; + public const CLIENT_TYPE_WEB = 'web'; + public const CLIENT_TYPE_FLUTTER_IOS = 'flutter-ios'; + public const CLIENT_TYPE_FLUTTER_ANDROID = 'flutter-android'; + public const CLIENT_TYPE_FLUTTER_MACOS = 'flutter-macos'; + public const CLIENT_TYPE_FLUTTER_WINDOWS = 'flutter-windows'; + public const CLIENT_TYPE_FLUTTER_LINUX = 'flutter-linux'; + public const CLIENT_TYPE_ANDROID = 'android'; + public const CLIENT_TYPE_IOS = 'ios'; - - const SCHEME_TYPE_HTTP = 'http'; - const SCHEME_TYPE_HTTPS = 'https'; - const SCHEME_TYPE_IOS = 'appwrite-ios'; - const SCHEME_TYPE_ANDROID = 'appwrite-android'; - const SCHEME_TYPE_MACOS = 'appwrite-macos'; - const SCHEME_TYPE_WINDOWS = 'appwrite-windows'; - const SCHEME_TYPE_LINUX = 'appwrite-linux'; + + public const SCHEME_TYPE_HTTP = 'http'; + public const SCHEME_TYPE_HTTPS = 'https'; + public const SCHEME_TYPE_IOS = 'appwrite-ios'; + public const SCHEME_TYPE_ANDROID = 'appwrite-android'; + public const SCHEME_TYPE_MACOS = 'appwrite-macos'; + public const SCHEME_TYPE_WINDOWS = 'appwrite-windows'; + public const SCHEME_TYPE_LINUX = 'appwrite-linux'; /** * @var array @@ -61,22 +61,22 @@ class Origin extends Validator { foreach ($platforms as $platform) { $type = (isset($platform['type'])) ? $platform['type'] : ''; - + switch ($type) { case self::CLIENT_TYPE_WEB: $this->clients[] = (isset($platform['hostname'])) ? $platform['hostname'] : ''; break; - + case self::CLIENT_TYPE_FLUTTER_IOS: case self::CLIENT_TYPE_FLUTTER_ANDROID: case self::CLIENT_TYPE_FLUTTER_MACOS: case self::CLIENT_TYPE_FLUTTER_WINDOWS: case self::CLIENT_TYPE_FLUTTER_LINUX: case self::CLIENT_TYPE_ANDROID: - case self::CLIENT_TYPE_IOS: + case self::CLIENT_TYPE_IOS: $this->clients[] = (isset($platform['key'])) ? $platform['key'] : ''; break; - + default: # code... break; From f5cccb975b3a4f3d9a18e2d9f842b3942788aa52 Mon Sep 17 00:00:00 2001 From: jakubhi Date: Tue, 5 Oct 2021 22:28:01 +0200 Subject: [PATCH 104/110] Added Slovak translation Added the Slovak translations of countries, emails and settings (basically everything). --- app/config/locale/codes.php | 1 + app/config/locale/translations/sk.json | 232 +++++++++++++++++++++++++ app/init.php | 1 + 3 files changed, 234 insertions(+) create mode 100644 app/config/locale/translations/sk.json diff --git a/app/config/locale/codes.php b/app/config/locale/codes.php index 13f1e5baeb..156c0a253a 100644 --- a/app/config/locale/codes.php +++ b/app/config/locale/codes.php @@ -48,6 +48,7 @@ return [ 'ro', // Romanian 'ru', // Russian 'si', // Sinhala + 'sk', // Slovakia 'sl', // Slovenian 'sq', // Albanian 'sv', // Swedish diff --git a/app/config/locale/translations/sk.json b/app/config/locale/translations/sk.json new file mode 100644 index 0000000000..9ee0ce410e --- /dev/null +++ b/app/config/locale/translations/sk.json @@ -0,0 +1,232 @@ +{ + "settings.inspire": "\"Umenie múdrosti je umenie vedieť, čo prehliadnuť.\"", + "settings.locale": "sk", + "settings.direction": "ltr", + "emails.sender": "%s Tím", + "emails.verification.subject": "Overenie účtu", + "emails.verification.hello": "Ahoj {{name}}", + "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.", + "emails.verification.signature": "{{project}} tím", + "emails.magicSession.subject": "Prihlásenie", + "emails.magicSession.hello": "Ahoj,", + "emails.magicSession.body": "Použi tento link pre prihlásenie.", + "emails.magicSession.footer": "Ak si nepožiadal o prihlásenie cez email, túto správu môžeš ignorovať.", + "emails.magicSession.thanks": "Ďakujeme", + "emails.magicSession.signature": "{{project}} tím", + "emails.recovery.subject": "Obnovenie hesla", + "emails.recovery.hello": "Ahoj {{name}}", + "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", + "emails.recovery.signature": "{{project}} tím", + "emails.invitation.subject": "Pozvánka do %s Tímu v %s", + "emails.invitation.hello": "Ahoj", + "emails.invitation.body": "Tento email ti bol zaslaný, pretože {{owner}} ťa chce pozvať aby si sa stal členom {{team}} tímu v {{project}}.", + "emails.invitation.footer": "Ak nemáš záujem, môžeš túto správu ignorovať.", + "emails.invitation.thanks": "Ďakujeme", + "emails.invitation.signature": "{{project}} tím", + "locale.country.unknown": "Neznámy", + "countries.af": "Afganistan", + "countries.ao": "Angola", + "countries.al": "Albánsko", + "countries.ad": "Andorra", + "countries.ae": "Spojené arabské emiráty", + "countries.ar": "Argentína", + "countries.am": "Arménsko", + "countries.ag": "Antigua a Barbuda", + "countries.au": "Austrália", + "countries.at": "Rakúsko", + "countries.az": "Azerbajdžan", + "countries.bi": "Burundi", + "countries.be": "Belgicko", + "countries.bj": "Benin", + "countries.bf": "Burkina Faso", + "countries.bd": "Bangladéš", + "countries.bg": "Bulharsko", + "countries.bh": "Bahrajn", + "countries.bs": "Bahamy", + "countries.ba": "Bosnia and Herzegovina", + "countries.by": "Bielorusko", + "countries.bz": "Belize", + "countries.bo": "Bolívia", + "countries.br": "Brazília", + "countries.bb": "Barbados", + "countries.bn": "Brunej", + "countries.bt": "Bhután", + "countries.bw": "Botswana", + "countries.cf": "Stredoafrická republika", + "countries.ca": "Kanada", + "countries.ch": "Švajčiarsko", + "countries.cl": "Čile", + "countries.cn": "Čína", + "countries.ci": "Pobrežie Slonoviny", + "countries.cm": "Kamerun", + "countries.cd": "Konžská demokratická republika", + "countries.cg": "Kongo", + "countries.co": "Kolumbia", + "countries.km": "Komory", + "countries.cv": "Kapverdy", + "countries.cr": "Kostarika", + "countries.cu": "Kuba", + "countries.cy": "Cyprus", + "countries.cz": "Česko", + "countries.de": "Nemecko", + "countries.dj": "Džibutsko", + "countries.dm": "Dominika", + "countries.dk": "Denmark", + "countries.do": "Dominikánska republika", + "countries.dz": "Alžírsko", + "countries.ec": "Ekvádor", + "countries.eg": "Egypt", + "countries.er": "Eritrea", + "countries.es": "Španielsko", + "countries.ee": "Estónsko", + "countries.et": "Etiópia", + "countries.fi": "Fínsko", + "countries.fj": "Fidži", + "countries.fr": "Francúzsko", + "countries.fm": "Mikronézia", + "countries.ga": "Gabon", + "countries.gb": "Spojené kráľovstvo", + "countries.ge": "Gruzínsko", + "countries.gh": "Ghana", + "countries.gn": "Guinea", + "countries.gm": "Gambia", + "countries.gw": "Guinea-Bissau", + "countries.gq": "Rovníková Guinea", + "countries.gr": "Grécko", + "countries.gd": "Grenada", + "countries.gt": "Guatemala", + "countries.gy": "Guyana", + "countries.hn": "Honduras", + "countries.hr": "Chorvátsko", + "countries.ht": "Haiti", + "countries.hu": "Maďarsko", + "countries.id": "Indonézia", + "countries.in": "India", + "countries.ie": "Írsko", + "countries.ir": "Irán", + "countries.iq": "Irak", + "countries.is": "Island", + "countries.il": "Izrael", + "countries.it": "Taliansko", + "countries.jm": "Jamajka", + "countries.jo": "Jordánsko", + "countries.jp": "Japonsko", + "countries.kz": "Kazachstan", + "countries.ke": "Keňa", + "countries.kg": "Kirgizsko", + "countries.kh": "Kambodža", + "countries.ki": "Kiribati", + "countries.kn": "Svätý Krištof a Nevis", + "countries.kr": "Južná Kórea", + "countries.kw": "Kuvajt", + "countries.la": "Laos", + "countries.lb": "Libanon", + "countries.lr": "Libéria", + "countries.ly": "Líbya", + "countries.lc": "Svätá Lucia", + "countries.li": "Lichtenštajnsko", + "countries.lk": "Srí Lanka", + "countries.ls": "Lesotho", + "countries.lt": "Litva", + "countries.lu": "Luxembursko", + "countries.lv": "Lotyšsko", + "countries.ma": "Maroko", + "countries.mc": "Monako", + "countries.md": "Moldavsko", + "countries.mg": "Madagaskar", + "countries.mv": "Maldivy", + "countries.mx": "Mexiko", + "countries.mh": "Marshall Islands", + "countries.mk": "Macedónsko", + "countries.ml": "Mali", + "countries.mt": "Malta", + "countries.mm": "Mjanmarsko", + "countries.me": "Čierna Hora", + "countries.mn": "Monglosko", + "countries.mz": "Mozambik", + "countries.mr": "Mauritánia", + "countries.mu": "Maurícius", + "countries.mw": "Malawi", + "countries.my": "Malajzia", + "countries.na": "Namíbia", + "countries.ne": "Niger", + "countries.ng": "Nigéria", + "countries.ni": "Nikaragua", + "countries.nl": "Holandsko", + "countries.no": "Nórsko", + "countries.np": "Nepál", + "countries.nr": "Nauru", + "countries.nz": "Nový Zéland", + "countries.om": "Omán", + "countries.pk": "Pakistan", + "countries.pa": "Panama", + "countries.pe": "Peru", + "countries.ph": "Filipíny", + "countries.pw": "Palau", + "countries.pg": "Papua-Nová Guinea", + "countries.pl": "Poľsko", + "countries.kp": "Severná Kórea", + "countries.pt": "Portugalsko", + "countries.py": "Paraguaj", + "countries.qa": "Katar", + "countries.ro": "Rumunsko", + "countries.ru": "Rusko", + "countries.rw": "Rwanda", + "countries.sa": "Saudská Arábia", + "countries.sd": "Sudán", + "countries.sn": "Senegal", + "countries.sg": "Singapur", + "countries.sb": "Šalamúnove ostrovy", + "countries.sl": "Sierra Leone", + "countries.sv": "Salvádor", + "countries.sm": "San Maríno", + "countries.so": "Somálsko", + "countries.rs": "Srbsko", + "countries.ss": "Južný Sudán", + "countries.st": "Svätý Tomáš a Princov ostrov", + "countries.sr": "Surinam", + "countries.sk": "Slovensko", + "countries.si": "Slovinsko", + "countries.se": "Švédsko", + "countries.sz": "Svazijsko", + "countries.sc": "Seychely", + "countries.sy": "Sýria", + "countries.td": "Čad", + "countries.tg": "Togo", + "countries.th": "Thajsko", + "countries.tj": "Tadžikistan", + "countries.tm": "Turkménsko", + "countries.tl": "Východný Timor", + "countries.to": "Tonga", + "countries.tt": "Trinidad a Tobago", + "countries.tn": "Tunisko", + "countries.tr": "Turecko", + "countries.tv": "Tuvalu", + "countries.tz": "Tanzánia", + "countries.ug": "Uganda", + "countries.ua": "Ukrajna", + "countries.uy": "Uruguaj", + "countries.us": "Spojené štáty", + "countries.uz": "Uzbekistan", + "countries.va": "Vatikán", + "countries.vc": "Svätý Vincent a Grenadíny", + "countries.ve": "Venezuela", + "countries.vn": "Vietnam", + "countries.vu": "Vanuatu", + "countries.ws": "Samoa", + "countries.ye": "Jemen", + "countries.za": "Južná Afrika", + "countries.zm": "Zambia", + "countries.zw": "Zimbabwe", + "continents.af": "Afrika", + "continents.an": "Antarktída", + "continents.as": "Ázia", + "continents.eu": "Európa", + "continents.na": "Severná Amerika", + "continents.oc": "Oceánia", + "continents.sa": "Južná Amerika" +} \ No newline at end of file diff --git a/app/init.php b/app/init.php index de8986b285..181c659d21 100644 --- a/app/init.php +++ b/app/init.php @@ -307,6 +307,7 @@ Locale::setLanguageFromJSON('pt-pt', __DIR__.'/config/locale/translations/pt-pt. Locale::setLanguageFromJSON('ro', __DIR__.'/config/locale/translations/ro.json'); Locale::setLanguageFromJSON('ru', __DIR__ . '/config/locale/translations/ru.json'); Locale::setLanguageFromJSON('si', __DIR__ . '/config/locale/translations/si.json'); +Locale::setLanguageFromJSON('sk', __DIR__ . '/config/locale/translations/sk.json'); Locale::setLanguageFromJSON('sl', __DIR__ . '/config/locale/translations/sl.json'); Locale::setLanguageFromJSON('sq', __DIR__ . '/config/locale/translations/sq.json'); Locale::setLanguageFromJSON('sv', __DIR__ . '/config/locale/translations/sv.json'); From a9cee981455ef98d83ad23cf92d8a1d12c3feebd Mon Sep 17 00:00:00 2001 From: Christian Leo-Pernold Date: Tue, 5 Oct 2021 23:36:03 +0200 Subject: [PATCH 105/110] Update de.json Fix spelling of Nordkorea. Change Mazedonien to Nordmazedonien --- app/config/locale/translations/de.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/config/locale/translations/de.json b/app/config/locale/translations/de.json index e680db4a1f..b3de6a2fb1 100644 --- a/app/config/locale/translations/de.json +++ b/app/config/locale/translations/de.json @@ -141,7 +141,7 @@ "countries.mv": "Malediven", "countries.mx": "Mexiko", "countries.mh": "Marshallinseln", - "countries.mk": "Mazedonien", + "countries.mk": "Nordmazedonien", "countries.ml": "Mali", "countries.mt": "Malta", "countries.mm": "Myanmar", @@ -169,7 +169,7 @@ "countries.pw": "Palau", "countries.pg": "Papua Neu-Guinea", "countries.pl": "Polen", - "countries.kp": "Nord Korea", + "countries.kp": "Nordkorea", "countries.pt": "Portugal", "countries.py": "Paraguay", "countries.qa": "Katar", From 39644c1562b76913f81915dd4dc30634a111d743 Mon Sep 17 00:00:00 2001 From: Luke Banicevic <60857954+banaboi@users.noreply.github.com> Date: Wed, 6 Oct 2021 12:37:53 +1100 Subject: [PATCH 106/110] Fixed typo --- docs/services/functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/services/functions.md b/docs/services/functions.md index 26267dcfa7..a5faec534e 100644 --- a/docs/services/functions.md +++ b/docs/services/functions.md @@ -1,5 +1,5 @@ The Functions service allows you to create custom behaviour that can be triggered by any supported Appwrite system events or by a predefined schedule. -Appwrite Cloud Functions lets you automatically run backend code in response to events triggered by Appwrite or by setting it to be executed in a predefined schedule. Your code is stored in a secure way on your Appwrite instance and is executed in an isolated enviornment. +Appwrite Cloud Functions lets you automatically run backend code in response to events triggered by Appwrite or by setting it to be executed in a predefined schedule. Your code is stored in a secure way on your Appwrite instance and is executed in an isolated environment. You can learn more by following our [Cloud Functions tutorial](https://appwrite.io/docs/functions). \ No newline at end of file From bb7bc65f0653e6d6ffb43fd8362549fb57fec356 Mon Sep 17 00:00:00 2001 From: Aman Atman <41161981+willtryagain@users.noreply.github.com> Date: Wed, 6 Oct 2021 10:44:15 +0530 Subject: [PATCH 107/110] Update hi.json --- app/config/locale/translations/hi.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/config/locale/translations/hi.json b/app/config/locale/translations/hi.json index b1da830854..a1ef9b7aa5 100644 --- a/app/config/locale/translations/hi.json +++ b/app/config/locale/translations/hi.json @@ -5,26 +5,26 @@ "emails.sender": "%s टीम", "emails.verification.subject": "खाता सत्यापन", "emails.verification.hello": "नमस्ते {{name}}", - "emails.verification.body": "अपना ईमेल सत्यापित करने के लिए इस लिंक का अनुसरण करें।", - "emails.verification.footer": "यदि आपने इस पते को सत्यापित करने के लिए नहीं कहा है, तो आप इस संदेश को अनदेखा कर सकते हैं।", + "emails.verification.body": "इस लिंक के माध्यम से ईमेल सत्यापित कीजिये।", + "emails.verification.footer": "यदि आपने इस पते को सत्यापित करने के लिए नहीं कहा है, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।", "emails.verification.thanks": "धन्यवाद", "emails.verification.signature": "{{project}} टीम", "emails.magicSession.subject": "लॉग इन", "emails.magicSession.hello": "नमस्ते,", - "emails.magicSession.body": "लॉग इन करने के लिए इस लिंक का पालन करें।", - "emails.magicSession.footer": "यदि आपने इस ईमेल का उपयोग करके लॉगिन करने के लिए नहीं कहा है, तो आप इस संदेश को अनदेखा कर सकते हैं।", + "emails.magicSession.body": "इस लिंक के माध्यम से लॉग इन करें।", + "emails.magicSession.footer": "यदि आपने इस ईमेल का उपयोग करके लॉगिन करने के लिए नहीं कहा है, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।", "emails.magicSession.thanks": "धन्यवाद", "emails.magicSession.signature": "{{project}} टीम", "emails.recovery.subject": "पासवर्ड रीसेट", "emails.recovery.hello": "नमस्ते {{name}}", - "emails.recovery.body": "अपना {{project}} पासवर्ड रीसेट करने के लिए इस लिंक का अनुसरण करें।", - "emails.recovery.footer": "यदि आपने अपना पासवर्ड रीसेट करने के लिए नहीं कहा है, तो आप इस संदेश को अनदेखा कर सकते हैं।", + "emails.recovery.body": "इस लिंक के माध्यम से अपना {{project}} पासवर्ड रीसेट करें।", + "emails.recovery.footer": "यदि आपने अपना पासवर्ड रीसेट करने के लिए नहीं कहा है, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।", "emails.recovery.thanks": "धन्यवाद", "emails.recovery.signature": "{{project}} टीम", "emails.invitation.subject": "%s टीम को %s पर आमंत्रण", "emails.invitation.hello": "नमस्ते", - "emails.invitation.body": "यह मेल आपको इसलिए भेजा गया था क्योंकि {{owner}} आपको {{project}} पर {{team}} टीम का सदस्य बनने के लिए आमंत्रित करना चाहता था।", - "emails.invitation.footer": "यदि आप रुचि नहीं रखते हैं, तो आप इस संदेश को अनदेखा कर सकते हैं।", + "emails.invitation.body": "यह मेल आपको इसलिए भेजा गया था क्योंकि {{owner}} आपको {{team}} टीम का सदस्य बनने के लिए आमंत्रित करना चाहते थे जो {{project}} से जुड़ा है।", + "emails.invitation.footer": "यदि यह आपके लिए आवश्यक नहीं है, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।", "emails.invitation.thanks": "धन्यवाद", "emails.invitation.signature": "{{project}} टीम", "locale.country.unknown": "अज्ञात", From 1c63ffa5b7a550084a2756bacfb837b540baabfe Mon Sep 17 00:00:00 2001 From: Dazzler Kumar Date: Wed, 6 Oct 2021 18:49:31 +0530 Subject: [PATCH 108/110] Update Bihari Translation --- app/config/locale/translations/bh.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/config/locale/translations/bh.json b/app/config/locale/translations/bh.json index 528ab379bf..d151297932 100644 --- a/app/config/locale/translations/bh.json +++ b/app/config/locale/translations/bh.json @@ -21,9 +21,9 @@ "emails.recovery.footer": "अगर पासवर्ड बदल क लेल ना कहाले, तो आप ई संदेश क अनदेखा कर सकत अछि।", "emails.recovery.thanks": "धन्यवाद", "emails.recovery.signature": "{{project}} टीम", - "emails.invitation.subject": "%s टीम क न्योता देवे क लेल|", + "emails.invitation.subject": "%s टीम क %s पे न्योता देवे क लेल|", "emails.invitation.hello": "प्रणाम", - "emails.invitation.body": "ई मेल आपके एही लेल भेजल गईल रहल काहे क {{owner}} आपके {{project}} क {{team}} टीम का सदस्य बनावे चाहित रहे|", + "emails.invitation.body": "ई मेल आपके एही लेल भेजल गईल रहल काहे क {{owner}} आपके {{project}} क {{team}} टीम का सदस्य बनावे चाहित रहे|", "emails.invitation.footer": "अगर आवे क इच्छा ना होवत, तो आप ई संदेश क अनदेखा कर सकत अछि।", "emails.invitation.thanks": "धन्यवाद", "emails.invitation.signature": "{{project}} टीम", From 1aa3fe036a36271fe17c9b98591897401ba28990 Mon Sep 17 00:00:00 2001 From: jakubhi <50047839+jakubhi@users.noreply.github.com> Date: Wed, 6 Oct 2021 16:59:31 +0200 Subject: [PATCH 109/110] Changed emails.invitation.body Rephrased the invitation sentence. --- app/config/locale/translations/sk.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/config/locale/translations/sk.json b/app/config/locale/translations/sk.json index 9ee0ce410e..b891e4e3a3 100644 --- a/app/config/locale/translations/sk.json +++ b/app/config/locale/translations/sk.json @@ -23,7 +23,7 @@ "emails.recovery.signature": "{{project}} tím", "emails.invitation.subject": "Pozvánka do %s Tímu v %s", "emails.invitation.hello": "Ahoj", - "emails.invitation.body": "Tento email ti bol zaslaný, pretože {{owner}} ťa chce pozvať aby si sa stal členom {{team}} tímu v {{project}}.", + "emails.invitation.body": "Tento email ti bol zaslaný, pretože {{owner}} ťa pozval, aby si sa stal členom {{team}} tímu v projekte {{project}}.", "emails.invitation.footer": "Ak nemáš záujem, môžeš túto správu ignorovať.", "emails.invitation.thanks": "Ďakujeme", "emails.invitation.signature": "{{project}} tím", @@ -229,4 +229,4 @@ "continents.na": "Severná Amerika", "continents.oc": "Oceánia", "continents.sa": "Južná Amerika" -} \ No newline at end of file +} From 7542e6652f14b183328aec9703ae8338a2c8df8e Mon Sep 17 00:00:00 2001 From: cristina-sirbu Date: Thu, 7 Oct 2021 08:26:49 +0300 Subject: [PATCH 110/110] Fix punctuation --- app/config/locale/translations/ro.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/ro.json b/app/config/locale/translations/ro.json index 5d8aa437e0..9976359179 100644 --- a/app/config/locale/translations/ro.json +++ b/app/config/locale/translations/ro.json @@ -10,7 +10,7 @@ "emails.verification.thanks": "Mulțumim", "emails.verification.signature": "Echipa {{project}}", "emails.magicSession.subject": "Login", - "emails.magicSession.hello": "Bună ziua", + "emails.magicSession.hello": "Bună ziua,", "emails.magicSession.body": "Urmează acest link pentru logare.", "emails.magicSession.footer": "Dacă nu ai incercat să te loghezi folosing această adresa de email, poți ignora acest mesaj.", "emails.magicSession.thanks": "Mulțumim",