diff --git a/.dockerignore b/.dockerignore index b92827b7c8..3d7ef7bf37 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,8 +1,6 @@ app/db/SQL node_modules storage -public/scripts -public/styles .git .idea .cd .babelrc diff --git a/.gitattributes b/.gitattributes index b654c29eeb..beb791f5f3 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,10 +1,24 @@ app/config/* linguist-detectable=false -app/config/* linguist-detectable=false app/config/*/* linguist-detectable=false app/config/*/*/* linguist-detectable=false app/config/*/*/*/* linguist-detectable=false +app/views/* linguist-detectable=false +app/views/*/* linguist-detectable=false +app/views/*/*/* linguist-detectable=false +app/views/*/*/*/* linguist-detectable=false +app/controllers/* linguist-detectable=false +app/controllers/*/* linguist-detectable=false +app/controllers/*/*/* linguist-detectable=false +app/controllers/*/*/*/* linguist-detectable=false +app/controllers/*/*/*/*/* linguist-detectable=false +src/* linguist-detectable=false +src/*/* linguist-detectable=false +src/*/*/* linguist-detectable=false +src/*/*/*/* linguist-detectable=false +src/*/*/*/*/* linguist-detectable=false tests/* linguist-detectable=false tests/*/* linguist-detectable=false tests/*/*/* linguist-detectable=false tests/*/*/*/* linguist-detectable=false -tests/*/*/*/*/* linguist-detectable=false \ No newline at end of file +tests/*/*/*/*/* linguist-detectable=false +tests/*/*/*/*/*/* linguist-detectable=false diff --git a/.gitignore b/.gitignore index 5433e2ba3a..f61b3c10cd 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ /node_modules/ /tests/resources/storage/ /app/sdks/* +/public/dist/* /.idea/ .DS_Store .php_cs.cache diff --git a/CHANGES.md b/CHANGES.md index 25aea3859d..0f67bc5904 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -107,7 +107,7 @@ - Refactored E-Mail template (#1422) - Improved locale management (#1440) - Added `$permissions` to execution response (#948) -- Switch from using Docker CLI to Docker API by intergrating [utopia-php/orchestration](https://github.com/utopia-php/orchestration) (#1420) +- Switch from using Docker CLI to Docker API by integrating [utopia-php/orchestration](https://github.com/utopia-php/orchestration) (#1420) - Added DOCKERHUB_PULL_USERNAME, DOCKERHUB_PULL_PASSWORD and DOCKERHUB_PULL_EMAIL env variables for pulling from private DockerHub repos (#1420) - Added `updateName`, `updateEmail` and `updatePassword` to Users service and console (#1547) @@ -162,7 +162,7 @@ - Added internal support for connection pools for improved performance (#1278) - Added new abstraction for workers executable files (#1276) - Added a new API in the Users API to allow you to force update your user verification status (#1223) -- Using a fixed commit to avoid breaking changes for imagemagick extenstion (#1274) +- Using a fixed commit to avoid breaking changes for imagemagick extension (#1274) - Updated the design of all the email templates (#1225) - Refactored Devices page in Console: (#1167) - Renamed *Devices* to *Sessions* @@ -193,7 +193,7 @@ - Fixed a bug in the Twitch OAuth adapter (#1209) - Fixed missing session object when OAuth session creation event is triggered (#1208) - Fixed bug where we didn't ignore the email case, converted all emails to lowercase internally (#1243) -- Fixed a console bug where you can't click a user with no name, added a placehoder for anonyomous users (#1220) +- Fixed a console bug where you can't click a user with no name, added a placeholder for anonymous users (#1220) - Fixed unique keys not being updated when changing a user's email address (#1301) - Fixed a bug where decimal integers where wrongly used with database filters (#1349) @@ -287,8 +287,8 @@ ## Upgrades -- Upgraded redis extenstion lib to version 5.3.3 -- Upgraded maxmind extenstion lib to version 1.10.0 +- Upgraded redis extension lib to version 5.3.3 +- Upgraded maxmind extension lib to version 1.10.0 - Upgraded utopia-php/cli lib to version 0.10.0 - Upgraded matomo/device-detector lib to version 4.1.0 - Upgraded dragonmantank/cron-expression lib to version 3.1.0 @@ -300,7 +300,7 @@ ## Bug Fixes - Updated missing storage env vars -- Fixed a bug, that added a wrong timzone offset to user log timestamps +- Fixed a bug, that added a wrong timezone offset to user log timestamps - Fixed a bug, that Response format header was not added in the access-control-allow-header list. - Fixed a bug where countryName is unknown on sessions (#933) - Added missing event users.update.prefs (#952) @@ -379,13 +379,13 @@ - Upgraded Influxdb Docker image to version 1.8 (alpine) - Upgraded Redis Resque queue library to version 1.3.6 ([#319](https://github.com/appwrite/appwrite/issues/319)) - Upgraded ClamAV container image to version 1.0.11 ([#412](https://github.com/appwrite/appwrite/issues/412)) -- Upgraded device detctor to version 3.12.6 +- Upgraded device detector to version 3.12.6 - Upgraded GEOIP DB file to Feb 2021 release ## Breaking Changes (Read before upgrading!) - **Deprecated** `first` and `last` query params for documents list route in the database API -- **Deprecated** Deprectaed Pubjabi Translations ('pn') +- **Deprecated** Deprecated Pubjabi Translations ('pn') - **Deprecated** `PATCH /account/prefs` is now updating the prefs payload and not just merging it - **Deprecated** `PATCH /users/:userId/prefs` is now updating the prefs payload and not just merging it - Switched order of limit and offset params in all the SDKs `listDocuments` method for better consistency @@ -431,7 +431,7 @@ - Block iframe access to Appwrite console using the `X-Frame-Options` header. - Fixed `roles` param input validator - API Keys are now stored encrypted -- Disabled domains whitlist ACL for the Appwrite console +- Disabled domains whitelist ACL for the Appwrite console # Version 0.6.2 (PRE-RELEASE) diff --git a/Dockerfile b/Dockerfile index 88d6aadbab..3ff287ba66 100755 --- a/Dockerfile +++ b/Dockerfile @@ -12,6 +12,18 @@ RUN composer update --ignore-platform-reqs --optimize-autoloader \ --no-plugins --no-scripts --prefer-dist \ `if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi` +FROM node:16-alpine as node + +WORKDIR /usr/local/src/ + +COPY package-lock.json /usr/local/src/ +COPY package.json /usr/local/src/ +COPY gulpfile.js /usr/local/src/ +COPY public /usr/local/src/public + +RUN npm ci +RUN npm run build + FROM php:8.0-cli-alpine as compile ARG DEBUG=false @@ -206,6 +218,7 @@ RUN \ WORKDIR /usr/src/code COPY --from=composer /usr/local/src/vendor /usr/src/code/vendor +COPY --from=node /usr/local/src/public/dist /usr/src/code/public/dist COPY --from=swoole /usr/local/lib/php/extensions/no-debug-non-zts-20200930/swoole.so /usr/local/lib/php/extensions/no-debug-non-zts-20200930/yasd.so* /usr/local/lib/php/extensions/no-debug-non-zts-20200930/ COPY --from=redis /usr/local/lib/php/extensions/no-debug-non-zts-20200930/redis.so /usr/local/lib/php/extensions/no-debug-non-zts-20200930/ COPY --from=imagick /usr/local/lib/php/extensions/no-debug-non-zts-20200930/imagick.so /usr/local/lib/php/extensions/no-debug-non-zts-20200930/ @@ -217,7 +230,8 @@ COPY --from=mongodb /usr/local/lib/php/extensions/no-debug-non-zts-20200930/mong COPY ./app /usr/src/code/app COPY ./bin /usr/local/bin COPY ./docs /usr/src/code/docs -COPY ./public /usr/src/code/public +COPY ./public/fonts /usr/src/code/public/fonts +COPY ./public/images /usr/src/code/public/images COPY ./src /usr/src/code/src # Set Volumes diff --git a/app/config/locale/codes.php b/app/config/locale/codes.php index b403a202f7..0179a8e5bb 100644 --- a/app/config/locale/codes.php +++ b/app/config/locale/codes.php @@ -37,16 +37,16 @@ return [ 'kn', // Kannada 'km', // Khmer 'ko', // Korean + 'la', // Latin 'lb', // Luxembourgish 'lt', // Lithuanian 'lv', // Latvian 'ml', // Malayalam 'mr', // Marathi 'ms', // Malay - 'nb', // Norwegian - Bokmål + 'nb', // Norwegian bokmål 'nl', // Dutch - 'nn', // Norwegian (nynorsk) - 'no', // Norwegian (bokmål) + 'nn', // Norwegian nynorsk 'ne', // Nepali 'or', // Oriya 'tl', // Filipino @@ -64,6 +64,7 @@ return [ 'sq', // Albanian 'sv', // Swedish 'ta', // Tamil + 'te', // Telugu 'th', // Thai 'tr', // Turkish 'uk', // Ukrainian diff --git a/app/config/locale/languages.php b/app/config/locale/languages.php index 99b1cb8b2b..6272bd02a6 100644 --- a/app/config/locale/languages.php +++ b/app/config/locale/languages.php @@ -593,11 +593,6 @@ return [ "name" => "Norwegian Nynorsk", "nativeName" => "Norsk nynorsk" ], - [ - "code" => "no", - "name" => "Norwegian", - "nativeName" => "Norsk" - ], [ "code" => "nr", "name" => "South Ndebele", diff --git a/app/config/locale/translations/bn.json b/app/config/locale/translations/bn.json index 4030104f35..da8899f699 100644 --- a/app/config/locale/translations/bn.json +++ b/app/config/locale/translations/bn.json @@ -3,30 +3,30 @@ "settings.locale": "bn", "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": "অ্যাঙ্গোলা", @@ -229,4 +229,4 @@ "continents.na": "উত্তর আমেরিকা", "continents.oc": "ওশেনিয়া", "continents.sa": "দক্ষিণ আমেরিকা" -} \ No newline at end of file +} diff --git a/app/config/locale/translations/hi.json b/app/config/locale/translations/hi.json index a1ef9b7aa5..1fa7d0555a 100644 --- a/app/config/locale/translations/hi.json +++ b/app/config/locale/translations/hi.json @@ -1,30 +1,30 @@ { - "settings.inspire": "\"बुद्धिमान होने की कला यह जानने की कला है कि क्या अनदेखा करना चाहिए |\"", + "settings.inspire": "\"बुद्धिमान होने की कला यह जानने की कला है कि क्या अनदेखा किया जाए |\"", "settings.locale": "hi", "settings.direction": "ltr", "emails.sender": "%s टीम", - "emails.verification.subject": "खाता सत्यापन", + "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.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": "यदि यह आपके लिए आवश्यक नहीं है, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।", + "emails.invitation.body": "यह मेल आपको इसलिए भेजा गया था क्योंकि {{owner}} आपको {{team}} टीम का सदस्य बनाना चाहते थे, जो {{project}} से जुड़ा हुआ है।", + "emails.invitation.footer": "यदि आप इसमे रूचि नहीं रखते, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।", "emails.invitation.thanks": "धन्यवाद", "emails.invitation.signature": "{{project}} टीम", "locale.country.unknown": "अज्ञात", diff --git a/app/config/locale/translations/hu.json b/app/config/locale/translations/hu.json index 7664a42dea..17ce2e544b 100644 --- a/app/config/locale/translations/hu.json +++ b/app/config/locale/translations/hu.json @@ -3,30 +3,30 @@ "settings.locale": "hu", "settings.direction": "ltr", "emails.sender": "%s Csapat", - "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": "Fiók Megerősítése", + "emails.verification.hello": "Szia {{name}}", + "emails.verification.body": "Kattints a linkre, hogy megerősítsd az email címedet.", + "emails.verification.footer": "Ha nem te kérted a címed megerősítését, akkor nyugodtan hagyd figyelmen kívül ezt az üzenetet.", + "emails.verification.thanks": "Köszönettel", + "emails.verification.signature": "a {{project}} csapat", + "emails.magicSession.subject": "Bejelentkezés", + "emails.magicSession.hello": "Szia,", + "emails.magicSession.body": "Kattints a linkre a bejelentkezéshez.", + "emails.magicSession.footer": "Ha nem te szerettél volna bejelentkezni ezzel az email címmel, akkor nyugodtan hagyd figyelmen kívül ezt az üzenetet.", + "emails.magicSession.thanks": "Köszönettel", + "emails.magicSession.signature": "a {{project}} csapat", + "emails.recovery.subject": "Jelszó Visszaállítása", + "emails.recovery.hello": "Hahó, {{name}}", + "emails.recovery.body": "Kattints a linkre a {{project}} jelszavad visszaállításához.", + "emails.recovery.footer": "Ha nem te kezdeményezted a jelszavad visszaállítását, akkor nyugodtan hagyd figyelmen kívül ezt az üzenetet.", + "emails.recovery.thanks": "Köszönettel", + "emails.recovery.signature": "a {{project}} csapat", + "emails.invitation.subject": "Meghívó a(z) %s csapatba, a(z) %s projektbe", + "emails.invitation.hello": "Szia", + "emails.invitation.body": "Ezt a levelet azért kaptad, mert {{owner}} meghívott, hogy légy a {{team}} csapat tagja a {{project}} projektben.", + "emails.invitation.footer": "Ha nem érdekel a lehetőség, nyugodtan hagyd figyelmen kívül ezt az üzenetet.", + "emails.invitation.thanks": "Köszönettel", + "emails.invitation.signature": "a {{project}} csapat", "locale.country.unknown": "Ismeretlen", "countries.af": "Afganisztán", "countries.ao": "Angola", diff --git a/app/config/locale/translations/la.json b/app/config/locale/translations/la.json new file mode 100644 index 0000000000..ea2b276a39 --- /dev/null +++ b/app/config/locale/translations/la.json @@ -0,0 +1,232 @@ +{ + "settings.inspire": "\"Ars sapiendi est ars sciendi quid negligat.\"", + "settings.locale": "la", + "settings.direction": "ltr*", + "emails.sender": "%s team", + "emails.verification.subject": "Ratio comprobatio", + "emails.verification.hello": "Salve ibi {{name}}", + "emails.verification.body": "Sequere hanc nexum ut quin inscriptionem tuum.", + "emails.verification.footer": "Si verificationem huius inscriptionis non postulasti, nuntium hunc ignorare potes.", + "emails.verification.thanks": "Gratias", + "emails.verification.signature": "{{project}} Team", + "emails.magicSession.subject": "Log in", + "emails.magicSession.hello": "Salve ibi,", + "emails.magicSession.body": "Hanc nexum cum login", + "emails.magicSession.footer": "Si verificationem huius inscriptionis non postulasti, nuntium hunc ignorare potes.", + "emails.magicSession.thanks": "Gratias", + "emails.magicSession.signature": "{{project}} team", + "emails.recovery.subject": "Recuperet password", + "emails.recovery.hello": "Salve ibi {{name}}", + "emails.recovery.body": "Sequere hanc conjunctionem ut recipias project password {{project}}", + "emails.recovery.footer": "Si tesseram tuam recuperare non petis, nuntium hunc ignorare potes", + "emails.recovery.thanks": "Gratias", + "emails.recovery.signature": "{{project}} team", + "emails.invitation.subject": "Invitatio pro %s in quadrigis %s", + "emails.invitation.hello": "Salve ibi", + "emails.invitation.body": "Haec inscriptio ad te missa est quia dominus incepto {{owner}} te invitare vult ut membrum {{team}} quadrigis fias ad {{project}}", + "emails.invitation.footer": "Si non quaero, potes hunc nuntium ignorare", + "emails.invitation.thanks": "Gratias", + "emails.invitation.signature": "{{project}} team", + "locale.country.unknown": "Ignotum", + "countries.af": "Afghanistan", + "countries.ao": "Angola", + "countries.al": "Albania", + "countries.ad": "Andorra", + "countries.ae": "Emiratos Arabes Unidos", + "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": "Republica dominicana", + "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": "Reino Unido", + "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": "Sud-Africa", + "countries.zm": "Zambia", + "countries.zw": "Zimbabwe", + "continents.af": "Africa", + "continents.an": "Antarctica", + "continents.as": "Asia", + "continents.eu": "Europe", + "continents.na": "America del Norte", + "continents.oc": "Oceania", + "continents.sa": "America del Sur" +} diff --git a/app/config/locale/translations/nb.json b/app/config/locale/translations/nb.json index 89d53f0538..06ea6f8413 100644 --- a/app/config/locale/translations/nb.json +++ b/app/config/locale/translations/nb.json @@ -2,31 +2,31 @@ "settings.inspire": "\"Kunsten å være klok er kunsten å vite hva man skal overse.\"", "settings.locale": "nb", "settings.direction": "ltr", - "emails.sender": "%s Teamet", - "emails.verification.subject": "Konto Verifisering", + "emails.sender": "%s Team", + "emails.verification.subject": "Kontobekreftelse", "emails.verification.hello": "Hei {{name}}", - "emails.verification.body": "Følg denne lenken for å verifisere din epost adresse.", - "emails.verification.footer": "Hvis du ikke ba om å bekrefte denne adressen, kan du ignorere denne meldingen.", + "emails.verification.body": "Følg denne lenken for å bekrefte din e-postadresse.", + "emails.verification.footer": "Dersom du ikke ba om å bekrefte e-postadressen, kan du se bort fra denne meldingen.", "emails.verification.thanks": "Takk", - "emails.verification.signature": "{{project}} teamet", - "emails.magicSession.subject": "Login", + "emails.verification.signature": "{{project}} team", + "emails.magicSession.subject": "Pålogging", "emails.magicSession.hello": "Hei,", - "emails.magicSession.body": "Følg denne lenken for å logge inn.", - "emails.magicSession.footer": "Hvis du ikke ba om å logge inn med denne adressen, kan du ignorere denne meldingen.", + "emails.magicSession.body": "Følg denne lenken for å logge på.", + "emails.magicSession.footer": "Dersom du ikke ba om å logge på med denne e-postadressen, kan du se bort fra denne meldingen.", "emails.magicSession.thanks": "Takk", - "emails.magicSession.signature": "{{project}} teamet", - "emails.recovery.subject": "Reset Passord", + "emails.magicSession.signature": "{{project}} team", + "emails.recovery.subject": "Nullstille passord", "emails.recovery.hello": "Hei {{name}}", - "emails.recovery.body": "Følg denne lenken for å resette ditt {{project}} passord.", - "emails.recovery.footer": "Hvis du ikke ba om å resette ditt passord, kan du ignorere denne meldingen.", + "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}} teamet", + "emails.recovery.signature": "{{project}} team", "emails.invitation.subject": "Invitasjon til %s Team ved %s", "emails.invitation.hello": "Hei", - "emails.invitation.body": "Denne mailen ble sendt til deg fordi {{owner}} hadde lyst til å invitere deg til å bli et medlem av {{team}} teamet ved {{project}}.", - "emails.invitation.footer": "Hvis du ikke er interessert, kan du ignorere denne meldingen.", + "emails.invitation.body": "Denne meldingen ble sendt til deg fordi {{owner}} ønsket å invitere deg til å bli medlem av {{team}} team ved {{project}}.", + "emails.invitation.footer": "Dersom du ikke er interessert, kan du se bort fra denne meldingen.", "emails.invitation.thanks": "Takk", - "emails.invitation.signature": "{{project}} teamet", + "emails.invitation.signature": "{{project}} team", "locale.country.unknown": "Ukjent", "countries.af": "Afghanistan", "countries.ao": "Angola", @@ -229,4 +229,4 @@ "continents.na": "Nord-Amerika", "continents.oc": "Oseania", "continents.sa": "Sør-Amerika" -} \ No newline at end of file +} diff --git a/app/config/locale/translations/no.json b/app/config/locale/translations/no.json deleted file mode 100644 index 4f83dc677a..0000000000 --- a/app/config/locale/translations/no.json +++ /dev/null @@ -1,232 +0,0 @@ -{ - "settings.inspire": "\"Kunsten å være klok er kunsten å vite hva man skal overse.\"", - "settings.locale": "no", - "settings.direction": "ltr", - "emails.sender": "%s Team", - "emails.verification.subject": "Kontobekreftelse", - "emails.verification.hello": "Hallo {{name}}", - "emails.verification.body": "Følg denne lenken for å bekrefte din e-postadresse.", - "emails.verification.footer": "Dersom du ikke ba om å bekrefte e-postadressen, kan du se bort fra denne meldingen.", - "emails.verification.thanks": "Takk", - "emails.verification.signature": "{{project}} team", - "emails.magicSession.subject": "Pålogging", - "emails.magicSession.hello": "Hei,", - "emails.magicSession.body": "Følg denne lenken for å logge på.", - "emails.magicSession.footer": "Dersom du ikke ba om å logge på med denne e-postadressen, kan du se bort fra denne meldingen.", - "emails.magicSession.thanks": "Takk", - "emails.magicSession.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 sendt 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", - "countries.al": "Albania", - "countries.ad": "Andorra", - "countries.ae": "De forente arabiske emirater", - "countries.ar": "Argentina", - "countries.am": "Armenia", - "countries.ag": "Antigua og Barbuda", - "countries.au": "Australia", - "countries.at": "Østerrike", - "countries.az": "Aserbajdsjan", - "countries.bi": "Burundi", - "countries.be": "Belgia", - "countries.bj": "Benin", - "countries.bf": "Burkina Faso", - "countries.bd": "Bangladesh", - "countries.bg": "Bulgaria", - "countries.bh": "Bahrain", - "countries.bs": "Bahamas", - "countries.ba": "Bosnia-Hercegovina", - "countries.by": "Hviterussland", - "countries.bz": "Belize", - "countries.bo": "Bolivia", - "countries.br": "Brasil", - "countries.bb": "Barbados", - "countries.bn": "Brunei Darussalam", - "countries.bt": "Bhutan", - "countries.bw": "Botswana", - "countries.cf": "Den sentralafrikanske republikken", - "countries.ca": "Canada", - "countries.ch": "Sveits", - "countries.cl": "Chile", - "countries.cn": "Kina", - "countries.ci": "Elfenbenskysten", - "countries.cm": "Kamerun", - "countries.cd": "Den demokratiske republikken Kongo", - "countries.cg": "Republikken Kongo", - "countries.co": "Colombia", - "countries.km": "Komorene", - "countries.cv": "Kapp Verde", - "countries.cr": "Costa Rica", - "countries.cu": "Cuba", - "countries.cy": "Kypros", - "countries.cz": "Tjekkia", - "countries.de": "Tyskland", - "countries.dj": "Djibouti", - "countries.dm": "Dominica", - "countries.dk": "Danmark", - "countries.do": "Den dominikanske republikk", - "countries.dz": "Algerie", - "countries.ec": "Ecuador", - "countries.eg": "Egypt", - "countries.er": "Eritrea", - "countries.es": "Spania", - "countries.ee": "Estland", - "countries.et": "Etiopia", - "countries.fi": "Finland", - "countries.fj": "Fiji", - "countries.fr": "Frankrike", - "countries.fm": "Mikronesia", - "countries.ga": "Gabon", - "countries.gb": "Storbritannia", - "countries.ge": "Georgia", - "countries.gh": "Ghana", - "countries.gn": "Guinea", - "countries.gm": "Gambia", - "countries.gw": "Guinea-Bissau", - "countries.gq": "Ekvatorial-Guinea", - "countries.gr": "Hellas", - "countries.gd": "Grenada", - "countries.gt": "Guatemala", - "countries.gy": "Guyana", - "countries.hn": "Honduras", - "countries.hr": "Kroatia", - "countries.ht": "Haiti", - "countries.hu": "Ungarn", - "countries.id": "Indonesia", - "countries.in": "India", - "countries.ie": "Irland", - "countries.ir": "Iran", - "countries.iq": "Irak", - "countries.is": "Island", - "countries.il": "Israel", - "countries.it": "Italia", - "countries.jm": "Jamaica", - "countries.jo": "Jordan", - "countries.jp": "Japan", - "countries.kz": "Kasakhstan", - "countries.ke": "Kenya", - "countries.kg": "Kirgisistan", - "countries.kh": "Kambodsja", - "countries.ki": "Kiribati", - "countries.kn": "Saint Kitts og Nevis", - "countries.kr": "Sør-Korea", - "countries.kw": "Kuwait", - "countries.la": "Laos", - "countries.lb": "Libanon", - "countries.lr": "Liberia", - "countries.ly": "Libya", - "countries.lc": "Saint Lucia", - "countries.li": "Liechtenstein", - "countries.lk": "Sri Lanka", - "countries.ls": "Lesotho", - "countries.lt": "Litauen", - "countries.lu": "Luxembourg", - "countries.lv": "Latvia", - "countries.ma": "Marokko", - "countries.mc": "Monaco", - "countries.md": "Moldova", - "countries.mg": "Madagaskar", - "countries.mv": "Maldivene", - "countries.mx": "Mexico", - "countries.mh": "Marshalløyene", - "countries.mk": "Nord-Makedonia", - "countries.ml": "Mali", - "countries.mt": "Malta", - "countries.mm": "Myanmar", - "countries.me": "Montenegro", - "countries.mn": "Mongolia", - "countries.mz": "Mozambik", - "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": "Nederland", - "countries.no": "Norge", - "countries.np": "Nepal", - "countries.nr": "Nauru", - "countries.nz": "New Zealand", - "countries.om": "Oman", - "countries.pk": "Pakistan", - "countries.pa": "Panama", - "countries.pe": "Peru", - "countries.ph": "Filippinene", - "countries.pw": "Palau", - "countries.pg": "Papua Ny-Guinea", - "countries.pl": "Polen", - "countries.kp": "Nord-Korea", - "countries.pt": "Portugal", - "countries.py": "Paraguay", - "countries.qa": "Qatar", - "countries.ro": "Romania", - "countries.ru": "Russland", - "countries.rw": "Rwanda", - "countries.sa": "Saudi-Arabia", - "countries.sd": "Sudan", - "countries.sn": "Senegal", - "countries.sg": "Singapore", - "countries.sb": "Solomonøyene", - "countries.sl": "Sierra Leone", - "countries.sv": "El Salvador", - "countries.sm": "San Marino", - "countries.so": "Somalia", - "countries.rs": "Serbia", - "countries.ss": "Sør-Sudan", - "countries.st": "São Tomé og Príncipe", - "countries.sr": "Surinam", - "countries.sk": "Slovakia", - "countries.si": "Slovenia", - "countries.se": "Sverige", - "countries.sz": "Swaziland", - "countries.sc": "Seychellene", - "countries.sy": "Syria", - "countries.td": "Tsjad", - "countries.tg": "Togo", - "countries.th": "Thailand", - "countries.tj": "Tajikistan", - "countries.tm": "Turkmenistan", - "countries.tl": "Øst-Timor", - "countries.to": "Tonga", - "countries.tt": "Trinidad og Tobago", - "countries.tn": "Tunisia", - "countries.tr": "Tyrkia", - "countries.tv": "Tuvalu", - "countries.tz": "Tanzania", - "countries.ug": "Uganda", - "countries.ua": "Ukraina", - "countries.uy": "Uruguay", - "countries.us": "Amerikas forente stater", - "countries.uz": "Usbekistan", - "countries.va": "Vatikanstaten", - "countries.vc": "Saint Vincent og Grenadinene", - "countries.ve": "Venezuela", - "countries.vn": "Vietnam", - "countries.vu": "Vanuatu", - "countries.ws": "Samoa", - "countries.ye": "Jemen", - "countries.za": "Sør-Africa", - "countries.zm": "Zambia", - "countries.zw": "Zimbabwe", - "continents.af": "Afrika", - "continents.an": "Antarktis", - "continents.as": "Asia", - "continents.eu": "Europa", - "continents.na": "Nord-Amerika", - "continents.oc": "Oseania", - "continents.sa": "Sør-Amerika" -} diff --git a/app/config/locale/translations/ta.json b/app/config/locale/translations/ta.json index 9c5aad7cba..8555a00bf1 100644 --- a/app/config/locale/translations/ta.json +++ b/app/config/locale/translations/ta.json @@ -3,30 +3,30 @@ "settings.locale": "ta", "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": "அறியவில்லை", "countries.af": "ஆப்கானித்தான்", "countries.ao": "அங்கோலா", diff --git a/app/config/locale/translations/te.json b/app/config/locale/translations/te.json new file mode 100644 index 0000000000..e9c2a6636a --- /dev/null +++ b/app/config/locale/translations/te.json @@ -0,0 +1,232 @@ +{ + "settings.inspire": "\"ఏది విస్మరించాలో తెలుసుకోవడమే తెలివైన వ్యక్తి యొక్క కళ.\"", + "settings.locale": "te", + "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}} మిమ్మల్ని {{project}} లో {{team}} బృందంలో సభ్యునిగా ఉండమని ఆహ్వానించాలనుకుంటున్నందున ఈ మెయిల్ మీకు పంపబడింది.", + "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": "DR కాంగో", + "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": "దక్షిణ అమెరికా" +} diff --git a/app/config/locale/translations/ur.json b/app/config/locale/translations/ur.json index 2f73bec143..4d92add049 100644 --- a/app/config/locale/translations/ur.json +++ b/app/config/locale/translations/ur.json @@ -3,30 +3,30 @@ "settings.locale": "ur", "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}} نے آپ کو {{project}} میں {{team}} ٹیم کا رکن بننے کی دعوت بھیجی", + "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 +} diff --git a/app/config/variables.php b/app/config/variables.php index a5ae6e46dd..5e5e813065 100644 --- a/app/config/variables.php +++ b/app/config/variables.php @@ -72,7 +72,7 @@ return [ ], [ 'name' => '_APP_CONSOLE_WHITELIST_ROOT', - 'description' => 'This option allows you to disable the creation of new users on the Appwrite console. When enabled only 1 user will be able to use the registration form. New users can be added by invting them to your project. By default this option is enabled.', + 'description' => 'This option allows you to disable the creation of new users on the Appwrite console. When enabled only 1 user will be able to use the registration form. New users can be added by inviting them to your project. By default this option is enabled.', 'introduction' => '0.8.0', 'default' => 'enabled', 'required' => false, @@ -368,7 +368,7 @@ return [ 'variables' => [ [ 'name' => '_APP_STORAGE_LIMIT', - 'description' => 'Maximun file size allowed for file upload. The default value is 10MB limitation. You should pass your size limit value in bytes.', + 'description' => 'Maximum file size allowed for file upload. The default value is 10MB limitation. You should pass your size limit value in bytes.', 'introduction' => '0.7.0', 'default' => '10000000', 'required' => false, @@ -464,7 +464,7 @@ return [ ], [ 'name' => '_APP_FUNCTIONS_ENVS', - 'description' => 'Deprectated with 0.8.0, use \'_APP_FUNCTIONS_RUNTIMES\' instead!', + 'description' => 'Deprecated with 0.8.0, use \'_APP_FUNCTIONS_RUNTIMES\' instead!', 'introduction' => '0.7.0', 'default' => 'node-16.0,php-7.4,python-3.9,ruby-3.0,java-16.0', 'required' => false, @@ -542,4 +542,4 @@ return [ ], ], ], -]; \ No newline at end of file +]; diff --git a/app/controllers/api/account.php b/app/controllers/api/account.php index 390f1a14ce..5c86755813 100644 --- a/app/controllers/api/account.php +++ b/app/controllers/api/account.php @@ -46,7 +46,7 @@ App::post('/v1/account') ->label('abuse-limit', 10) ->param('userId', '', new CustomId(), 'Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.') ->param('email', '', new Email(), 'User email.') - ->param('password', '', new Password(), 'User password. Must be between 6 to 32 chars.') + ->param('password', '', new Password(), 'User password. Must be at least 8 chars.') ->param('name', '', new Text(128), 'User name. Max length: 128 chars.', true) ->inject('request') ->inject('response') @@ -150,7 +150,7 @@ App::post('/v1/account/sessions') ->label('abuse-limit', 10) ->label('abuse-key', 'url:{url},email:{param-email}') ->param('email', '', new Email(), 'User email.') - ->param('password', '', new Password(), 'User password. Must be between 6 to 32 chars.') + ->param('password', '', new Password(), 'User password. Must be at least 8 chars.') ->inject('request') ->inject('response') ->inject('dbForInternal') @@ -1367,8 +1367,8 @@ App::patch('/v1/account/password') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_USER) - ->param('password', '', new Password(), 'New user password. Must be between 6 to 32 chars.') - ->param('oldPassword', '', new Password(), 'Old user password. Must be between 6 to 32 chars.', true) + ->param('password', '', new Password(), 'User password. Must be at least 8 chars.') + ->param('oldPassword', '', new Password(), 'Old user password. Must be at least 8 chars.', true) ->inject('response') ->inject('user') ->inject('dbForInternal') @@ -1416,7 +1416,7 @@ App::patch('/v1/account/email') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_USER) ->param('email', '', new Email(), 'User email.') - ->param('password', '', new Password(), 'User password. Must be between 6 to 32 chars.') + ->param('password', '', new Password(), 'User password. Must be at least 8 chars.') ->inject('response') ->inject('user') ->inject('dbForInternal') @@ -1869,8 +1869,8 @@ App::put('/v1/account/recovery') ->label('abuse-key', 'url:{url},userId:{param-userId}') ->param('userId', '', new UID(), 'User account UID address.') ->param('secret', '', new Text(256), 'Valid reset token.') - ->param('password', '', new Password(), 'New password. Must be between 6 to 32 chars.') - ->param('passwordAgain', '', new Password(), 'New password again. Must be between 6 to 32 chars.') + ->param('password', '', new Password(), 'User password. Must be at least 8 chars.') + ->param('passwordAgain', '', new Password(), 'New password again. Must be at least 8 chars.') ->inject('response') ->inject('dbForInternal') ->inject('audits') diff --git a/app/controllers/api/projects.php b/app/controllers/api/projects.php index 081f52428c..f305a891d6 100644 --- a/app/controllers/api/projects.php +++ b/app/controllers/api/projects.php @@ -1,6 +1,7 @@ label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) ->param('projectId', '', new UID(), 'Project unique ID.') - ->param('password', '', new UID(), 'Your user password for confirmation. Must be between 6 to 32 chars.') + ->param('password', '', new Password(), 'Your user password for confirmation. Must be at least 8 chars.') ->inject('response') ->inject('user') ->inject('dbForConsole') diff --git a/app/controllers/api/storage.php b/app/controllers/api/storage.php index c4fe4420ee..2724875006 100644 --- a/app/controllers/api/storage.php +++ b/app/controllers/api/storage.php @@ -836,7 +836,7 @@ App::get('/v1/storage/buckets/:bucketId/files/:fileId/preview') ->param('borderColor', '', new HexColor(), 'Preview image border color. Use a valid HEX color, no # is needed for prefix.', true) ->param('borderRadius', 0, new Range(0, 4000), 'Preview image border radius in pixels. Pass an integer between 0 to 4000.', true) ->param('opacity', 1, new Range(0,1, Range::TYPE_FLOAT), 'Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.', true) - ->param('rotation', 0, new Range(0,360), 'Preview image rotation in degrees. Pass an integer between 0 and 360.', true) + ->param('rotation', 0, new Range(-360,360), 'Preview image rotation in degrees. Pass an integer between -360 and 360.', true) ->param('background', '', new HexColor(), 'Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.', true) ->param('output', '', new WhiteList(\array_keys(Config::getParam('storage-outputs')), true), 'Output format type (jpeg, jpg, png, gif and webp).', true) ->inject('request') @@ -974,7 +974,7 @@ App::get('/v1/storage/buckets/:bucketId/files/:fileId/preview') } if (!empty($rotation)) { - $image->setRotation($rotation); + $image->setRotation(($rotation + 360) % 360); } $output = (empty($output)) ? $type : $output; diff --git a/app/controllers/api/users.php b/app/controllers/api/users.php index cfc17176f6..a5d412d5b6 100644 --- a/app/controllers/api/users.php +++ b/app/controllers/api/users.php @@ -36,7 +36,7 @@ App::post('/v1/users') ->label('sdk.response.model', Response::MODEL_USER) ->param('userId', '', new CustomId(), 'Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.') ->param('email', '', new Email(), 'User email.') - ->param('password', '', new Password(), 'User password. Must be between 6 to 32 chars.') + ->param('password', '', new Password(), 'User password. Must be at least 8 chars.') ->param('name', '', new Text(128), 'User name. Max length: 128 chars.', true) ->inject('response') ->inject('dbForInternal') diff --git a/app/init.php b/app/init.php index de43b531c7..b9f48b5de4 100644 --- a/app/init.php +++ b/app/init.php @@ -536,6 +536,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('la', __DIR__.'/config/locale/translations/la.json'); Locale::setLanguageFromJSON('lb', __DIR__.'/config/locale/translations/lb.json'); Locale::setLanguageFromJSON('lt', __DIR__.'/config/locale/translations/lt.json'); Locale::setLanguageFromJSON('lv', __DIR__.'/config/locale/translations/lv.json'); @@ -546,7 +547,6 @@ Locale::setLanguageFromJSON('nb', __DIR__.'/config/locale/translations/nb.json') Locale::setLanguageFromJSON('ne', __DIR__.'/config/locale/translations/ne.json'); Locale::setLanguageFromJSON('nl', __DIR__.'/config/locale/translations/nl.json'); Locale::setLanguageFromJSON('nn', __DIR__.'/config/locale/translations/nn.json'); -Locale::setLanguageFromJSON('no', __DIR__.'/config/locale/translations/no.json'); Locale::setLanguageFromJSON('or', __DIR__.'/config/locale/translations/or.json'); Locale::setLanguageFromJSON('pa', __DIR__.'/config/locale/translations/pa.json'); Locale::setLanguageFromJSON('pl', __DIR__.'/config/locale/translations/pl.json'); @@ -562,6 +562,7 @@ 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'); Locale::setLanguageFromJSON('ta', __DIR__ . '/config/locale/translations/ta.json'); +Locale::setLanguageFromJSON('te', __DIR__.'/config/locale/translations/te.json'); Locale::setLanguageFromJSON('th', __DIR__.'/config/locale/translations/th.json'); Locale::setLanguageFromJSON('tl', __DIR__.'/config/locale/translations/tl.json'); Locale::setLanguageFromJSON('tr', __DIR__.'/config/locale/translations/tr.json'); diff --git a/app/realtime.php b/app/realtime.php index c3704ffb92..e027809295 100644 --- a/app/realtime.php +++ b/app/realtime.php @@ -474,7 +474,8 @@ $server->onMessage(function (int $connection, string $message) use ($server, $re * * Abuse limits are sending 32 times per minute and connection. */ - $timeLimit = new TimeLimit('url:{url},conection:{connection}', 32, 60, $database); + $timeLimit = new TimeLimit('url:{url},connection:{connection}', 32, 60, $database); + $timeLimit ->setParam('{connection}', $connection) ->setParam('{container}', $containerId); diff --git a/app/views/console/database/document.phtml b/app/views/console/database/document.phtml index da0413e772..3da18656fe 100644 --- a/app/views/console/database/document.phtml +++ b/app/views/console/database/document.phtml @@ -213,6 +213,7 @@ $logs = $this->getParam('logs', null); :class="(doc[attr.key].length - 1) === index ? 'margin-bottom' : ''" type="checkbox" :name="attr.key" + :value="attr.key" :checked="doc[attr.key][index]" />