From f8afbbbf3c61323fac66bf4199539f702391e5f1 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Tue, 12 Aug 2025 16:14:15 +0530 Subject: [PATCH 01/14] feat: allow HEAD requests and add test for it --- docker-compose.yml | 2 +- tests/e2e/Client.php | 18 +++++++- .../Functions/FunctionsCustomClientTest.php | 46 +++++++++++++++++++ 3 files changed, 64 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 9b5e7a1fd7..10da8e91d4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -963,7 +963,7 @@ services: hostname: exc1 <<: *x-logging stop_signal: SIGINT - image: openruntimes/executor:0.7.22 + image: openruntimes/executor:executor-local restart: unless-stopped networks: - appwrite diff --git a/tests/e2e/Client.php b/tests/e2e/Client.php index 278d1cd0d5..412c124e9e 100644 --- a/tests/e2e/Client.php +++ b/tests/e2e/Client.php @@ -216,6 +216,19 @@ class Client return $len; }); + // Special handling for HEAD requests + if ($method === self::METHOD_HEAD) { + curl_setopt($ch, CURLOPT_NOBODY, true); // This is crucial for HEAD requests + curl_setopt($ch, CURLOPT_HEADER, false); // We handle headers via HEADERFUNCTION + } else { + curl_setopt($ch, CURLOPT_NOBODY, false); + } + + // Only set POST fields for non-GET and non-HEAD requests + if ($method != self::METHOD_GET && $method != self::METHOD_HEAD) { + curl_setopt($ch, CURLOPT_POSTFIELDS, $query); + } + if ($method != self::METHOD_GET) { curl_setopt($ch, CURLOPT_POSTFIELDS, $query); } @@ -229,7 +242,7 @@ class Client $responseType = $responseHeaders['content-type'] ?? ''; $responseStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE); - if ($decode) { + if ($decode && $method !== self::METHOD_HEAD) { $strpos = strpos($responseType, ';'); $strpos = \is_bool($strpos) ? \strlen($responseType) : $strpos; switch (substr($responseType, 0, $strpos)) { @@ -255,6 +268,9 @@ class Client $json = null; break; } + } elseif ($method === self::METHOD_HEAD) { + // For HEAD requests, always set body to empty string regardless of decode flag + $responseBody = ''; } if ((curl_errno($ch)/* || 200 != $responseStatus*/)) { diff --git a/tests/e2e/Services/Functions/FunctionsCustomClientTest.php b/tests/e2e/Services/Functions/FunctionsCustomClientTest.php index ccabc2a79e..835d5de994 100644 --- a/tests/e2e/Services/Functions/FunctionsCustomClientTest.php +++ b/tests/e2e/Services/Functions/FunctionsCustomClientTest.php @@ -74,6 +74,52 @@ class FunctionsCustomClientTest extends Scope $this->cleanupFunction($functionId); } + public function testCreateHeadExecution() + { + + /** + * Test for SUCCESS + */ + $functionId = $this->setupFunction([ + 'functionId' => ID::unique(), + 'name' => 'Test', + 'execute' => [Role::user($this->getUser()['$id'])->toString()], + 'runtime' => 'node-22', + 'entrypoint' => 'index.js', + 'events' => [ + 'users.*.create', + 'users.*.delete', + ], + 'timeout' => 10, + ]); + $this->setupDeployment($functionId, [ + 'code' => $this->packageFunction('basic'), + 'activate' => true + ]); + + // Deny create async execution as guest + $execution = $this->client->call(Client::METHOD_POST, '/functions/' . $functionId . '/executions', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], [ + 'async' => true, + ]); + $this->assertEquals(401, $execution['headers']['status-code']); + + // Allow create async execution as user + $execution = $this->client->call(Client::METHOD_HEAD, '/functions/' . $functionId . '/executions', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'async' => true, + ]); + fwrite(STDOUT, json_encode($execution, JSON_PRETTY_PRINT)); + $this->assertEquals(200, $execution['headers']['status-code']); + $this->assertEmpty($execution['body']); + + $this->cleanupFunction($functionId); + } + public function testCreateCustomExecution(): array { /** From 0e636f67be700b0403a65f50367f38801fa9bef4 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Tue, 12 Aug 2025 16:24:01 +0530 Subject: [PATCH 02/14] update client --- tests/e2e/Client.php | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/tests/e2e/Client.php b/tests/e2e/Client.php index 412c124e9e..e411b68454 100644 --- a/tests/e2e/Client.php +++ b/tests/e2e/Client.php @@ -216,23 +216,18 @@ class Client return $len; }); - // Special handling for HEAD requests + if ($method === self::METHOD_HEAD) { curl_setopt($ch, CURLOPT_NOBODY, true); // This is crucial for HEAD requests - curl_setopt($ch, CURLOPT_HEADER, false); // We handle headers via HEADERFUNCTION + curl_setopt($ch, CURLOPT_HEADER, false); } else { curl_setopt($ch, CURLOPT_NOBODY, false); } - // Only set POST fields for non-GET and non-HEAD requests if ($method != self::METHOD_GET && $method != self::METHOD_HEAD) { curl_setopt($ch, CURLOPT_POSTFIELDS, $query); } - if ($method != self::METHOD_GET) { - curl_setopt($ch, CURLOPT_POSTFIELDS, $query); - } - // Allow self-signed certificates if ($this->selfSigned) { curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); From ea7985ad4d40743ffe2e488b6fd7db6ce81c77f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Tue, 12 Aug 2025 13:56:22 +0200 Subject: [PATCH 03/14] Implement CI/CD action to check EN locale --- .../static-analysis/fallbackLocale.js | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 .github/workflows/static-analysis/fallbackLocale.js diff --git a/.github/workflows/static-analysis/fallbackLocale.js b/.github/workflows/static-analysis/fallbackLocale.js new file mode 100644 index 0000000000..f4056195fd --- /dev/null +++ b/.github/workflows/static-analysis/fallbackLocale.js @@ -0,0 +1,92 @@ +/* + * Look into all local files, and collect unique keys. + * Ensure fallback locale (English) has translation for all keys. + */ + +import { readdir, readFile } from "fs/promises"; +import { join } from "path"; + +const translationsPath = join( + __dirname, + "../../../app/config/locale/translations", +); +const fallbackLocale = "en.json"; + +async () => { + try { + const files = await readdir(translationsPath).filter((file) => + file.endsWith(".json"), + ); + + if (files.length === 0) { + console.error("No translation files found in ", translationsPath); + process.exit(1); + } + + // Check if fallback locale exists + if (!files.includes(fallbackLocale)) { + console.error(`Fallback locale file ${fallbackLocale} not found`); + process.exit(1); + } + + // Collect all unique keys from all translation files + const allKeys = new Set(); + + for (const file of files) { + const filePath = join(translationsPath, file); + const content = await readFile(filePath, "utf8"); + const translations = JSON.parse(content); + + // Add all keys from this file + Object.keys(translations).forEach((key) => allKeys.add(key)); + } + + // Read fallback locale + const fallbackPath = join(translationsPath, fallbackLocale); + const fallbackContent = await readFile(fallbackPath, "utf8"); + const fallbackTranslations = JSON.parse(fallbackContent); + + // Check for missing keys in fallback locale + const missingKeys = []; + const fallbackKeys = new Set(Object.keys(fallbackTranslations)); + + for (const key of allKeys) { + if (!fallbackKeys.has(key)) { + missingKeys.push(key); + } + } + + // Report results + console.log( + `Found ${files.length} translation files in ${translationsPath}`, + ); + console.log(`Total unique keys found across all locales: ${allKeys.size}`); + console.log( + `Keys in fallback locale (${fallbackLocale}): ${fallbackKeys.size}`, + ); + + if (missingKeys.length > 0) { + console.error( + `\nERROR: Fallback locale (${fallbackLocale}) is missing ${missingKeys.length} key(s):`, + ); + missingKeys.sort().forEach((key) => { + console.error(` - ${key}`); + }); + console.error( + `\nTo fix this issue, add the missing keys to ${translationsPath}/${fallbackLocale}`, + ); + process.exit(1); + } else { + console.log( + `\nSUCCESS: Fallback locale (${fallbackLocale}) contains all required keys.`, + ); + console.log( + `All ${allKeys.size} translation keys are present in the fallback locale.`, + ); + process.exit(0); + } + } catch (error) { + console.error("Unexpected error: ", error.message); + process.exit(1); + } +}; From 56d60d78665d6d0d81245e6d7eeb5587eb839d84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Tue, 12 Aug 2025 14:09:36 +0200 Subject: [PATCH 04/14] Finalized locale check script --- .../static-analysis/fallbackLocale.js | 92 -------------- .../workflows/static-analysis/locale/index.js | 115 ++++++++++++++++++ .../static-analysis/locale/package.json | 13 ++ 3 files changed, 128 insertions(+), 92 deletions(-) delete mode 100644 .github/workflows/static-analysis/fallbackLocale.js create mode 100644 .github/workflows/static-analysis/locale/index.js create mode 100644 .github/workflows/static-analysis/locale/package.json diff --git a/.github/workflows/static-analysis/fallbackLocale.js b/.github/workflows/static-analysis/fallbackLocale.js deleted file mode 100644 index f4056195fd..0000000000 --- a/.github/workflows/static-analysis/fallbackLocale.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Look into all local files, and collect unique keys. - * Ensure fallback locale (English) has translation for all keys. - */ - -import { readdir, readFile } from "fs/promises"; -import { join } from "path"; - -const translationsPath = join( - __dirname, - "../../../app/config/locale/translations", -); -const fallbackLocale = "en.json"; - -async () => { - try { - const files = await readdir(translationsPath).filter((file) => - file.endsWith(".json"), - ); - - if (files.length === 0) { - console.error("No translation files found in ", translationsPath); - process.exit(1); - } - - // Check if fallback locale exists - if (!files.includes(fallbackLocale)) { - console.error(`Fallback locale file ${fallbackLocale} not found`); - process.exit(1); - } - - // Collect all unique keys from all translation files - const allKeys = new Set(); - - for (const file of files) { - const filePath = join(translationsPath, file); - const content = await readFile(filePath, "utf8"); - const translations = JSON.parse(content); - - // Add all keys from this file - Object.keys(translations).forEach((key) => allKeys.add(key)); - } - - // Read fallback locale - const fallbackPath = join(translationsPath, fallbackLocale); - const fallbackContent = await readFile(fallbackPath, "utf8"); - const fallbackTranslations = JSON.parse(fallbackContent); - - // Check for missing keys in fallback locale - const missingKeys = []; - const fallbackKeys = new Set(Object.keys(fallbackTranslations)); - - for (const key of allKeys) { - if (!fallbackKeys.has(key)) { - missingKeys.push(key); - } - } - - // Report results - console.log( - `Found ${files.length} translation files in ${translationsPath}`, - ); - console.log(`Total unique keys found across all locales: ${allKeys.size}`); - console.log( - `Keys in fallback locale (${fallbackLocale}): ${fallbackKeys.size}`, - ); - - if (missingKeys.length > 0) { - console.error( - `\nERROR: Fallback locale (${fallbackLocale}) is missing ${missingKeys.length} key(s):`, - ); - missingKeys.sort().forEach((key) => { - console.error(` - ${key}`); - }); - console.error( - `\nTo fix this issue, add the missing keys to ${translationsPath}/${fallbackLocale}`, - ); - process.exit(1); - } else { - console.log( - `\nSUCCESS: Fallback locale (${fallbackLocale}) contains all required keys.`, - ); - console.log( - `All ${allKeys.size} translation keys are present in the fallback locale.`, - ); - process.exit(0); - } - } catch (error) { - console.error("Unexpected error: ", error.message); - process.exit(1); - } -}; diff --git a/.github/workflows/static-analysis/locale/index.js b/.github/workflows/static-analysis/locale/index.js new file mode 100644 index 0000000000..dd4594fc4d --- /dev/null +++ b/.github/workflows/static-analysis/locale/index.js @@ -0,0 +1,115 @@ +/* + * Look into all local files, and collect unique keys. + * Ensure fallback locale (English) has translation for all keys. + * If configured as `const strict = true`, all locales will be checked to include all keys. + */ + +import { readdir, readFile } from "fs/promises"; +import { join, dirname } from "path"; +import { fileURLToPath } from "url"; + +const config = { + strict: false, + fallbackLocale: "en.json", +}; + +(async () => { + try { + // Prepare current directory equivalent in ES modules + const __filename = fileURLToPath(import.meta.url); + const __dirname = dirname(__filename); + + const translationsPath = join( + __dirname, + "../../../../app/config/locale/translations", + ); + + const files = (await readdir(translationsPath)).filter((file) => + file.endsWith(".json"), + ); + + if (files.length === 0) { + console.error("No translation files found in ", translationsPath); + process.exit(1); + } + + // Check if fallback locale exists + if (!files.includes(config.fallbackLocale)) { + console.error(`Fallback locale file ${config.fallbackLocale} not found`); + process.exit(1); + } + + console.log( + `Found ${files.length} translation files in ${translationsPath}`, + ); + + // Collect all unique keys from all translation files + const allKeys = new Set(); + + for (const file of files) { + const filePath = join(translationsPath, file); + const content = await readFile(filePath, "utf8"); + const translations = JSON.parse(content); + + // Add all keys from this file + Object.keys(translations).forEach((key) => allKeys.add(key)); + } + + console.log(`Total unique keys found across all locales: ${allKeys.size}`); + + const localesToCheck = []; + if (config.strict) { + localesToCheck.push(...files); + } else { + localesToCheck.push(config.fallbackLocale); + } + + let errorsCount = 0; + let missingLocaleCount = 0; + + for (const localeToCheck of localesToCheck) { + // Read locale + const path = join(translationsPath, localeToCheck); + const content = await readFile(path, "utf8"); + const translations = JSON.parse(content); + + // Check for missing keys in the locale + const keys = new Set(Object.keys(translations)); + console.log(`Keys in locale (${localeToCheck}): ${keys.size}`); + + const missingKeys = []; + for (const key of allKeys) { + if (!keys.has(key)) { + missingKeys.push(key); + } + } + + if (missingKeys.length > 0) { + console.error( + `\nERROR: Fallback locale (${localeToCheck}) is missing ${missingKeys.length} key(s):`, + ); + missingKeys.sort().forEach((key) => { + console.error(` - ${key}`); + }); + console.error( + `\nTo fix this issue, add the missing keys to ${translationsPath}/${localeToCheck}`, + ); + errorsCount++; + missingLocaleCount += missingKeys.length; + } else { + console.log( + `\nSUCCESS: Fallback locale (${localeToCheck}) contains all ${allKeys.size} keys.`, + ); + } + } + + if (errorsCount > 0) { + console.log(`\n${missingLocaleCount} locales missing found across ${errorsCount} locales.`); + process.exit(1); + } + } catch (error) { + console.error("Unexpected error."); + console.error(error); + process.exit(1); + } +})(); diff --git a/.github/workflows/static-analysis/locale/package.json b/.github/workflows/static-analysis/locale/package.json new file mode 100644 index 0000000000..748a3e6d2a --- /dev/null +++ b/.github/workflows/static-analysis/locale/package.json @@ -0,0 +1,13 @@ +{ + "name": "static-analysis-locale", + "version": "1.0.0", + "type": "module", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "description": "" +} From 626f7c754c52c0cd97990caebe76aa69399ba96e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Tue, 12 Aug 2025 14:14:03 +0200 Subject: [PATCH 05/14] Remove unused translations --- app/config/locale/translations/af.json | 2 -- app/config/locale/translations/ar-ma.json | 2 -- app/config/locale/translations/ar.json | 2 -- app/config/locale/translations/as.json | 2 -- app/config/locale/translations/az.json | 2 -- app/config/locale/translations/be.json | 2 -- app/config/locale/translations/bg.json | 2 -- app/config/locale/translations/bh.json | 2 -- app/config/locale/translations/bn.json | 2 -- app/config/locale/translations/bs.json | 2 -- app/config/locale/translations/ca.json | 2 -- app/config/locale/translations/cs.json | 2 -- app/config/locale/translations/da.json | 2 -- app/config/locale/translations/de.json | 2 -- app/config/locale/translations/el.json | 2 -- app/config/locale/translations/eo.json | 2 -- app/config/locale/translations/es.json | 2 -- app/config/locale/translations/fa.json | 2 -- app/config/locale/translations/fi.json | 2 -- app/config/locale/translations/fo.json | 2 -- app/config/locale/translations/fr.json | 2 -- app/config/locale/translations/ga.json | 2 -- app/config/locale/translations/gu.json | 2 -- app/config/locale/translations/he.json | 2 -- app/config/locale/translations/hi.json | 2 -- app/config/locale/translations/hr.json | 2 -- app/config/locale/translations/hu.json | 2 -- app/config/locale/translations/hy.json | 2 -- app/config/locale/translations/id.json | 2 -- app/config/locale/translations/is.json | 2 -- app/config/locale/translations/it.json | 2 -- app/config/locale/translations/ja.json | 2 -- app/config/locale/translations/jv.json | 2 -- app/config/locale/translations/km.json | 2 -- app/config/locale/translations/kn.json | 2 -- app/config/locale/translations/ko.json | 2 -- app/config/locale/translations/la.json | 2 -- app/config/locale/translations/lb.json | 2 -- app/config/locale/translations/lt.json | 2 -- app/config/locale/translations/lv.json | 2 -- app/config/locale/translations/ml.json | 2 -- app/config/locale/translations/mr.json | 2 -- app/config/locale/translations/ms.json | 2 -- app/config/locale/translations/nb.json | 2 -- app/config/locale/translations/ne.json | 2 -- app/config/locale/translations/nl.json | 2 -- app/config/locale/translations/nn.json | 2 -- app/config/locale/translations/or.json | 2 -- app/config/locale/translations/pa.json | 2 -- app/config/locale/translations/pl.json | 2 -- app/config/locale/translations/pt-br.json | 2 -- app/config/locale/translations/pt-pt.json | 2 -- app/config/locale/translations/ro.json | 2 -- app/config/locale/translations/ru.json | 2 -- app/config/locale/translations/sa.json | 2 -- app/config/locale/translations/sd.json | 2 -- app/config/locale/translations/si.json | 2 -- app/config/locale/translations/sk.json | 2 -- app/config/locale/translations/sl.json | 2 -- app/config/locale/translations/sn.json | 2 -- app/config/locale/translations/sq.json | 2 -- app/config/locale/translations/sv.json | 2 -- app/config/locale/translations/ta.json | 2 -- app/config/locale/translations/te.json | 2 -- app/config/locale/translations/th.json | 2 -- app/config/locale/translations/tl.json | 2 -- app/config/locale/translations/tr.json | 2 -- app/config/locale/translations/uk.json | 2 -- app/config/locale/translations/ur.json | 2 -- app/config/locale/translations/vi.json | 2 -- app/config/locale/translations/zh-cn.json | 2 -- app/config/locale/translations/zh-tw.json | 2 -- 72 files changed, 144 deletions(-) diff --git a/app/config/locale/translations/af.json b/app/config/locale/translations/af.json index 9b313ac92a..86da260a90 100644 --- a/app/config/locale/translations/af.json +++ b/app/config/locale/translations/af.json @@ -12,8 +12,6 @@ "emails.verification.signature": "Die {{project}} span", "emails.magicSession.subject": "Teken aan", "emails.magicSession.hello": "Goeie dag,", - "emails.magicSession.body": "Volg hierdie skakel om in te teken.", - "emails.magicSession.footer": "Ignoreer gerus hierdie boodskap as u nie die versoek gestuur het om met die' adres in te teken nie.", "emails.magicSession.thanks": "Baie dankie,", "emails.magicSession.signature": "Die {{project}} span", "emails.recovery.subject": "Herstel Wagwoord", diff --git a/app/config/locale/translations/ar-ma.json b/app/config/locale/translations/ar-ma.json index e4b5b1f558..31b656da60 100644 --- a/app/config/locale/translations/ar-ma.json +++ b/app/config/locale/translations/ar-ma.json @@ -12,8 +12,6 @@ "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": "تبدال كلمة السر", diff --git a/app/config/locale/translations/ar.json b/app/config/locale/translations/ar.json index eda0652fbe..d005009275 100644 --- a/app/config/locale/translations/ar.json +++ b/app/config/locale/translations/ar.json @@ -12,8 +12,6 @@ "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": "تغيير كلمة السر", diff --git a/app/config/locale/translations/as.json b/app/config/locale/translations/as.json index 60e385a8ac..0cad3e1000 100644 --- a/app/config/locale/translations/as.json +++ b/app/config/locale/translations/as.json @@ -12,8 +12,6 @@ "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": "পাছৱাৰ্ড ৰিছেট", diff --git a/app/config/locale/translations/az.json b/app/config/locale/translations/az.json index 63e442f7c5..7e0d206ff1 100644 --- a/app/config/locale/translations/az.json +++ b/app/config/locale/translations/az.json @@ -12,8 +12,6 @@ "emails.verification.signature": "{{project}} komandası", "emails.magicSession.subject": "Daxil Olmaq", "emails.magicSession.hello": "Salam,", - "emails.magicSession.body": "Daxil olmaq üçün bu linki izləyin.", - "emails.magicSession.footer": "Bu e-poçtdan istifadə edərək giriş istəməmisinizsə, bu mesajı görməməzlikdən gələ bilərsiniz.", "emails.magicSession.thanks": "Təşəkkürlər,", "emails.magicSession.signature": "{{project}} komandası", "emails.recovery.subject": "Şifrə Sıfırlanması", diff --git a/app/config/locale/translations/be.json b/app/config/locale/translations/be.json index b4ae0827c3..b64ed20bc6 100644 --- a/app/config/locale/translations/be.json +++ b/app/config/locale/translations/be.json @@ -12,8 +12,6 @@ "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": "Скід пароля", diff --git a/app/config/locale/translations/bg.json b/app/config/locale/translations/bg.json index 086c6b283e..f3ed2e7642 100644 --- a/app/config/locale/translations/bg.json +++ b/app/config/locale/translations/bg.json @@ -11,8 +11,6 @@ "emails.verification.signature": "", "emails.magicSession.subject": "", "emails.magicSession.hello": ",", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", "emails.magicSession.thanks": ",", "emails.magicSession.signature": "", "emails.recovery.subject": "", diff --git a/app/config/locale/translations/bh.json b/app/config/locale/translations/bh.json index 7d2b469ed5..04ef824f2b 100644 --- a/app/config/locale/translations/bh.json +++ b/app/config/locale/translations/bh.json @@ -12,8 +12,6 @@ "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": "पासवर्ड बदल क लेल|", diff --git a/app/config/locale/translations/bn.json b/app/config/locale/translations/bn.json index 1157d5cc0f..617d5815a0 100644 --- a/app/config/locale/translations/bn.json +++ b/app/config/locale/translations/bn.json @@ -12,8 +12,6 @@ "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": "পাসওয়ার্ড রিসেট", diff --git a/app/config/locale/translations/bs.json b/app/config/locale/translations/bs.json index 1c69619c01..29c081c069 100644 --- a/app/config/locale/translations/bs.json +++ b/app/config/locale/translations/bs.json @@ -11,8 +11,6 @@ "emails.verification.signature": "", "emails.magicSession.subject": "", "emails.magicSession.hello": ",", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", "emails.magicSession.thanks": ",", "emails.magicSession.signature": "", "emails.recovery.subject": "", diff --git a/app/config/locale/translations/ca.json b/app/config/locale/translations/ca.json index ec5112f075..38519f10c9 100644 --- a/app/config/locale/translations/ca.json +++ b/app/config/locale/translations/ca.json @@ -12,8 +12,6 @@ "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", diff --git a/app/config/locale/translations/cs.json b/app/config/locale/translations/cs.json index c67e9299da..f043a6a5c7 100644 --- a/app/config/locale/translations/cs.json +++ b/app/config/locale/translations/cs.json @@ -11,8 +11,6 @@ "emails.verification.signature": "", "emails.magicSession.subject": "", "emails.magicSession.hello": ",", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", "emails.magicSession.thanks": ",", "emails.magicSession.signature": "", "emails.recovery.subject": "", diff --git a/app/config/locale/translations/da.json b/app/config/locale/translations/da.json index ae93b3c3b5..4b4af3446d 100644 --- a/app/config/locale/translations/da.json +++ b/app/config/locale/translations/da.json @@ -12,8 +12,6 @@ "emails.verification.signature": "{{project}} team", "emails.magicSession.subject": "Login", "emails.magicSession.hello": "Hej,", - "emails.magicSession.body": "Følg dette link for at logge ind.", - "emails.magicSession.footer": "Hvis du ikke har bedt om at logge ind med denne email, ignorer venligst denne besked.", "emails.magicSession.thanks": "Tak,", "emails.magicSession.signature": "{{project}} team", "emails.recovery.subject": "Nulstil Password", diff --git a/app/config/locale/translations/de.json b/app/config/locale/translations/de.json index a5a2f0ba43..ce59755f88 100644 --- a/app/config/locale/translations/de.json +++ b/app/config/locale/translations/de.json @@ -12,8 +12,6 @@ "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", diff --git a/app/config/locale/translations/el.json b/app/config/locale/translations/el.json index 3576ffb865..ec3b02c691 100644 --- a/app/config/locale/translations/el.json +++ b/app/config/locale/translations/el.json @@ -12,8 +12,6 @@ "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": "Αλλαγή κωδικού πρόσβασης", diff --git a/app/config/locale/translations/eo.json b/app/config/locale/translations/eo.json index 8aba49098b..82d7eb53f0 100644 --- a/app/config/locale/translations/eo.json +++ b/app/config/locale/translations/eo.json @@ -11,8 +11,6 @@ "emails.verification.signature": "Teamo {{project}}", "emails.magicSession.subject": "Login", "emails.magicSession.hello": "Saluton,", - "emails.magicSession.body": "Alklaku ĉi tiun ligon por eniri.", - "emails.magicSession.footer": "Se vi ne petis ĉi tiun konfirmon de ĉi tiu retpoŝto, vi povas ignori ĉi tiun mesaĝon.", "emails.magicSession.thanks": "Dankegon,", "emails.magicSession.signature": "Teamo {{project}}", "emails.recovery.subject": "Parsvorta Restarigo", diff --git a/app/config/locale/translations/es.json b/app/config/locale/translations/es.json index e986b15f3c..27955eae30 100644 --- a/app/config/locale/translations/es.json +++ b/app/config/locale/translations/es.json @@ -12,8 +12,6 @@ "emails.verification.signature": "El 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 iniciar sesión usando este correo, puedes ignorar este mensaje.", "emails.magicSession.thanks": "Gracias.,", "emails.magicSession.signature": "El equipo de {{project}}", "emails.recovery.subject": "Restablecer contraseña", diff --git a/app/config/locale/translations/fa.json b/app/config/locale/translations/fa.json index 9434b9ff03..f8420288df 100644 --- a/app/config/locale/translations/fa.json +++ b/app/config/locale/translations/fa.json @@ -12,8 +12,6 @@ "emails.verification.signature": "تیم {{user}}", "emails.magicSession.subject": "ورود به حساب کاربری", "emails.magicSession.hello": "سلام،", - "emails.magicSession.body": "برای ورود به حساب‌تان پیوند زیر را دنبال کنید.", - "emails.magicSession.footer": "اگر شما درخواست ورود به حساب کاربری با استفاده از این ایمیل را نداد‌ه‌اید، می‌توانید این پیام را نادیده بگیرید.", "emails.magicSession.thanks": "سپاس فراوان،", "emails.magicSession.signature": "تیم {{user}}", "emails.recovery.subject": "بازیابی گذرواژه", diff --git a/app/config/locale/translations/fi.json b/app/config/locale/translations/fi.json index ca61a95653..da4599bb58 100644 --- a/app/config/locale/translations/fi.json +++ b/app/config/locale/translations/fi.json @@ -11,8 +11,6 @@ "emails.verification.signature": "", "emails.magicSession.subject": "", "emails.magicSession.hello": ",", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", "emails.magicSession.thanks": ",", "emails.magicSession.signature": "", "emails.recovery.subject": "", diff --git a/app/config/locale/translations/fo.json b/app/config/locale/translations/fo.json index a982fd0590..cfe63322b4 100644 --- a/app/config/locale/translations/fo.json +++ b/app/config/locale/translations/fo.json @@ -11,8 +11,6 @@ "emails.verification.signature": "", "emails.magicSession.subject": "", "emails.magicSession.hello": ",", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", "emails.magicSession.thanks": ",", "emails.magicSession.signature": "", "emails.recovery.subject": "", diff --git a/app/config/locale/translations/fr.json b/app/config/locale/translations/fr.json index 3af7193764..7f3fca739d 100644 --- a/app/config/locale/translations/fr.json +++ b/app/config/locale/translations/fr.json @@ -12,8 +12,6 @@ "emails.verification.signature": "Équipe {{project}}", "emails.magicSession.subject": "Connexion", "emails.magicSession.hello": "Bonjour,", - "emails.magicSession.body": "Suivez ce lien pour vous connecter.", - "emails.magicSession.footer": "Si vous n'avez pas demandé à vous connecter en utilisant cet e-mail, vous pouvez ignorer ce message.", "emails.magicSession.thanks": "Merci,", "emails.magicSession.signature": "L'équipe {{project}}", "emails.recovery.subject": "Réinitialisation du mot de passe", diff --git a/app/config/locale/translations/ga.json b/app/config/locale/translations/ga.json index c486e77126..f9611e07b5 100644 --- a/app/config/locale/translations/ga.json +++ b/app/config/locale/translations/ga.json @@ -12,8 +12,6 @@ "emails.verification.signature": "{{project}} foireann", "emails.magicSession.subject": "Logáil isteach", "emails.magicSession.hello": "Haigh,", - "emails.magicSession.body": "Lean an nasc seo chun logáil isteach.", - "emails.magicSession.footer": "Mura ndearna tú iarratas logáil isteach leis an ríomhphost seo, déan neamhaird den teachtaireacht seo.", "emails.magicSession.thanks": "Go raibh maith agat,", "emails.magicSession.signature": "{{project}} foireann", "emails.recovery.subject": "Athshocrú pasfhocail", diff --git a/app/config/locale/translations/gu.json b/app/config/locale/translations/gu.json index 8d5d2fb8d6..8b9b41c0c9 100644 --- a/app/config/locale/translations/gu.json +++ b/app/config/locale/translations/gu.json @@ -12,8 +12,6 @@ "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": "પાસવર્ડ ફરીથી સેટ કરો", diff --git a/app/config/locale/translations/he.json b/app/config/locale/translations/he.json index 8e5279e5e4..ab61085fa1 100644 --- a/app/config/locale/translations/he.json +++ b/app/config/locale/translations/he.json @@ -12,8 +12,6 @@ "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": "איפוס סיסמא", diff --git a/app/config/locale/translations/hi.json b/app/config/locale/translations/hi.json index ef71e287cd..fe2aa9b5d2 100644 --- a/app/config/locale/translations/hi.json +++ b/app/config/locale/translations/hi.json @@ -12,8 +12,6 @@ "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": "पासवर्ड रीसेट", diff --git a/app/config/locale/translations/hr.json b/app/config/locale/translations/hr.json index 8331d67422..7ffe10668b 100644 --- a/app/config/locale/translations/hr.json +++ b/app/config/locale/translations/hr.json @@ -12,8 +12,6 @@ "emails.verification.signature": "{{project}} tim", "emails.magicSession.subject": "Prijavite se", "emails.magicSession.hello": "Pozdrav,", - "emails.magicSession.body": "Slijedite ovu poveznicu za prijavu.", - "emails.magicSession.footer": "Ako niste zatražili prijavu putem ove e-pošte, možete zanemariti ovu poruku.", "emails.magicSession.thanks": "Hvala,", "emails.magicSession.signature": "{{project}} tim", "emails.recovery.subject": "Ponovno postavljanje lozinke", diff --git a/app/config/locale/translations/hu.json b/app/config/locale/translations/hu.json index c21701a509..54e204e798 100644 --- a/app/config/locale/translations/hu.json +++ b/app/config/locale/translations/hu.json @@ -12,8 +12,6 @@ "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", diff --git a/app/config/locale/translations/hy.json b/app/config/locale/translations/hy.json index c845526607..08dcbb59eb 100644 --- a/app/config/locale/translations/hy.json +++ b/app/config/locale/translations/hy.json @@ -11,8 +11,6 @@ "emails.verification.signature": "", "emails.magicSession.subject": "", "emails.magicSession.hello": ",", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", "emails.magicSession.thanks": ",", "emails.magicSession.signature": "", "emails.recovery.subject": "", diff --git a/app/config/locale/translations/id.json b/app/config/locale/translations/id.json index 836941f79a..cd9cadc4b1 100644 --- a/app/config/locale/translations/id.json +++ b/app/config/locale/translations/id.json @@ -12,8 +12,6 @@ "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", diff --git a/app/config/locale/translations/is.json b/app/config/locale/translations/is.json index 5fede4dda0..4b21e9939b 100644 --- a/app/config/locale/translations/is.json +++ b/app/config/locale/translations/is.json @@ -11,8 +11,6 @@ "emails.verification.signature": "", "emails.magicSession.subject": "", "emails.magicSession.hello": ",", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", "emails.magicSession.thanks": ",", "emails.magicSession.signature": "", "emails.recovery.subject": "", diff --git a/app/config/locale/translations/it.json b/app/config/locale/translations/it.json index f0e290b481..7b419858a3 100644 --- a/app/config/locale/translations/it.json +++ b/app/config/locale/translations/it.json @@ -12,8 +12,6 @@ "emails.verification.signature": "Il team {{project}}", "emails.magicSession.subject": "Login", "emails.magicSession.hello": "Ciao,", - "emails.magicSession.body": "Clicca questo link per accedere.", - "emails.magicSession.footer": "Se non hai richiesto di effettuare l’accesso, puoi ignorare questo messaggio.", "emails.magicSession.thanks": "Grazie,", "emails.magicSession.signature": "Il team {{project}}", "emails.recovery.subject": "Reimpostazione password", diff --git a/app/config/locale/translations/ja.json b/app/config/locale/translations/ja.json index f3ad8fe1ed..6ecfed55a2 100644 --- a/app/config/locale/translations/ja.json +++ b/app/config/locale/translations/ja.json @@ -12,8 +12,6 @@ "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": "パスワードリセット", diff --git a/app/config/locale/translations/jv.json b/app/config/locale/translations/jv.json index 71d4f4b24a..3f6b6b9fe2 100644 --- a/app/config/locale/translations/jv.json +++ b/app/config/locale/translations/jv.json @@ -12,8 +12,6 @@ "emails.verification.signature": "Tim {{project}}", "emails.magicSession.subject": "Masuk", "emails.magicSession.hello": "Hai,", - "emails.magicSession.body": "Klik link iki kanggo masuk.", - "emails.magicSession.footer": "Yen sampeyan ora njaluk masuk nggunakake alamat email iki, sampeyan iso nglirwakake pesen iki.", "emails.magicSession.thanks": "Matur nuwun,", "emails.magicSession.signature": "Tim {{project}}", "emails.recovery.subject": "Setel ulang sandi", diff --git a/app/config/locale/translations/km.json b/app/config/locale/translations/km.json index 12ac05e8da..9e93162a6a 100644 --- a/app/config/locale/translations/km.json +++ b/app/config/locale/translations/km.json @@ -11,8 +11,6 @@ "emails.verification.signature": "", "emails.magicSession.subject": "", "emails.magicSession.hello": "", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", "emails.magicSession.thanks": "", "emails.magicSession.signature": "", "emails.recovery.subject": "", diff --git a/app/config/locale/translations/kn.json b/app/config/locale/translations/kn.json index ed35a7947f..40b51c0944 100644 --- a/app/config/locale/translations/kn.json +++ b/app/config/locale/translations/kn.json @@ -12,8 +12,6 @@ "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": "ಗುಪ್ತಪದ ಮರುಹೊಂದಿಸಿ", diff --git a/app/config/locale/translations/ko.json b/app/config/locale/translations/ko.json index 0bc425aeae..3bae815d75 100644 --- a/app/config/locale/translations/ko.json +++ b/app/config/locale/translations/ko.json @@ -12,8 +12,6 @@ "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": "비밀번호 재설정", diff --git a/app/config/locale/translations/la.json b/app/config/locale/translations/la.json index fe3e7930e2..bf58232b9a 100644 --- a/app/config/locale/translations/la.json +++ b/app/config/locale/translations/la.json @@ -12,8 +12,6 @@ "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", diff --git a/app/config/locale/translations/lb.json b/app/config/locale/translations/lb.json index 8fe4b346e7..77245036ac 100644 --- a/app/config/locale/translations/lb.json +++ b/app/config/locale/translations/lb.json @@ -12,8 +12,6 @@ "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", diff --git a/app/config/locale/translations/lt.json b/app/config/locale/translations/lt.json index 2439428b02..e0a3a84340 100644 --- a/app/config/locale/translations/lt.json +++ b/app/config/locale/translations/lt.json @@ -12,8 +12,6 @@ "emails.verification.signature": "{{project}} komanda", "emails.magicSession.subject": "Prisijungti", "emails.magicSession.hello": "Labas,", - "emails.magicSession.body": "Spauskite šią nuorodą, kad prisijungtumėte.", - "emails.magicSession.footer": "Jei neprašėte prisijungti naudojantis šiuo el. paštu, galite ignoruoti šį pranešimą.", "emails.magicSession.thanks": "Ačiū,", "emails.magicSession.signature": "{{project}} komanda", "emails.recovery.subject": "Slaptažodžio Atkūrimas", diff --git a/app/config/locale/translations/lv.json b/app/config/locale/translations/lv.json index 59edfce7a6..d91977ebad 100644 --- a/app/config/locale/translations/lv.json +++ b/app/config/locale/translations/lv.json @@ -12,8 +12,6 @@ "emails.verification.signature": "{{project}} komanda", "emails.magicSession.subject": "Ieiet", "emails.magicSession.hello": "Sveicināti,", - "emails.magicSession.body": "Sekojiet saitei, lai ieietu.", - "emails.magicSession.footer": "Ja Jūs nepieprasījāt ieiet ar šo e-pasta adresi, lūdzu, ignorējiet šo ziņu.", "emails.magicSession.thanks": "Paldies,", "emails.magicSession.signature": "{{project}} komanda", "emails.recovery.subject": "Paroles atjaunināšana", diff --git a/app/config/locale/translations/ml.json b/app/config/locale/translations/ml.json index bd13f92fa8..ffc9f12a7e 100644 --- a/app/config/locale/translations/ml.json +++ b/app/config/locale/translations/ml.json @@ -12,8 +12,6 @@ "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": "രഹസ്യവാക്ക് പുനക്രമീകരണം", diff --git a/app/config/locale/translations/mr.json b/app/config/locale/translations/mr.json index 881afdfe71..d417ac305f 100644 --- a/app/config/locale/translations/mr.json +++ b/app/config/locale/translations/mr.json @@ -12,8 +12,6 @@ "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": "पासवर्ड रीसेट", diff --git a/app/config/locale/translations/ms.json b/app/config/locale/translations/ms.json index 448307550e..99d086cd81 100644 --- a/app/config/locale/translations/ms.json +++ b/app/config/locale/translations/ms.json @@ -12,8 +12,6 @@ "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", diff --git a/app/config/locale/translations/nb.json b/app/config/locale/translations/nb.json index cc95bacf9e..36e28072d4 100644 --- a/app/config/locale/translations/nb.json +++ b/app/config/locale/translations/nb.json @@ -12,8 +12,6 @@ "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", diff --git a/app/config/locale/translations/ne.json b/app/config/locale/translations/ne.json index f1ba841fed..545810d871 100644 --- a/app/config/locale/translations/ne.json +++ b/app/config/locale/translations/ne.json @@ -12,8 +12,6 @@ "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": "पासवर्ड रिसेट", diff --git a/app/config/locale/translations/nl.json b/app/config/locale/translations/nl.json index 4f71f67199..9949a2b4b8 100644 --- a/app/config/locale/translations/nl.json +++ b/app/config/locale/translations/nl.json @@ -12,8 +12,6 @@ "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", diff --git a/app/config/locale/translations/nn.json b/app/config/locale/translations/nn.json index 646a57904c..cb5084011e 100644 --- a/app/config/locale/translations/nn.json +++ b/app/config/locale/translations/nn.json @@ -12,8 +12,6 @@ "emails.verification.signature": "{{project}} team", "emails.magicSession.subject": "Pålogging", "emails.magicSession.hello": "Hei,", - "emails.magicSession.body": "Følg denne lenkja for å logge på.", - "emails.magicSession.footer": "Om du ikkje ba om å logge på med denne e-postadressa, kan du ignorera denne meldinga.", "emails.magicSession.thanks": "Takk,", "emails.magicSession.signature": "{{project}} team", "emails.recovery.subject": "Nullstilla passord", diff --git a/app/config/locale/translations/or.json b/app/config/locale/translations/or.json index a8e08b8043..6393067089 100644 --- a/app/config/locale/translations/or.json +++ b/app/config/locale/translations/or.json @@ -12,8 +12,6 @@ "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": "ପାସୱାର୍ଡ ପୁନଃ ସେଟ୍ କରନ୍ତୁ |", diff --git a/app/config/locale/translations/pa.json b/app/config/locale/translations/pa.json index de71be9f49..2c3d90604c 100644 --- a/app/config/locale/translations/pa.json +++ b/app/config/locale/translations/pa.json @@ -11,8 +11,6 @@ "emails.verification.signature": "", "emails.magicSession.subject": "", "emails.magicSession.hello": ",", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", "emails.magicSession.thanks": ",", "emails.magicSession.signature": "", "emails.recovery.subject": "", diff --git a/app/config/locale/translations/pl.json b/app/config/locale/translations/pl.json index 75bc3a24f9..e10e47f50d 100644 --- a/app/config/locale/translations/pl.json +++ b/app/config/locale/translations/pl.json @@ -12,8 +12,6 @@ "emails.verification.signature": "Zespół {{project}}", "emails.magicSession.subject": "Logowanie", "emails.magicSession.hello": "Cześć,", - "emails.magicSession.body": "Kliknij w ten link, aby zalogować się.", - "emails.magicSession.footer": "Jeśli to nie Ty prosiłeś o logowanie przy użyciu tego adresu e-mail, zignoruj tę wiadomość.", "emails.magicSession.thanks": "Dziękujemy,", "emails.magicSession.signature": "Zespół {{project}}", "emails.recovery.subject": "Resetowanie hasła", diff --git a/app/config/locale/translations/pt-br.json b/app/config/locale/translations/pt-br.json index 7e3af1d3f1..75ad38f887 100644 --- a/app/config/locale/translations/pt-br.json +++ b/app/config/locale/translations/pt-br.json @@ -12,8 +12,6 @@ "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 você não solicitou conectar-se com este e-mail, ignore essa mensagem.", "emails.magicSession.thanks": "Muito obrigado,", "emails.magicSession.signature": "Time {{project}}", "emails.recovery.subject": "Redefinição de senha", diff --git a/app/config/locale/translations/pt-pt.json b/app/config/locale/translations/pt-pt.json index c13ce558bf..f0c84ab9e6 100644 --- a/app/config/locale/translations/pt-pt.json +++ b/app/config/locale/translations/pt-pt.json @@ -12,8 +12,6 @@ "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", diff --git a/app/config/locale/translations/ro.json b/app/config/locale/translations/ro.json index 88499ce3f6..5def77fa61 100644 --- a/app/config/locale/translations/ro.json +++ b/app/config/locale/translations/ro.json @@ -12,8 +12,6 @@ "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ă", diff --git a/app/config/locale/translations/ru.json b/app/config/locale/translations/ru.json index f61337de80..322404abd6 100644 --- a/app/config/locale/translations/ru.json +++ b/app/config/locale/translations/ru.json @@ -12,8 +12,6 @@ "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": "Сброс пароля", diff --git a/app/config/locale/translations/sa.json b/app/config/locale/translations/sa.json index b3326110d1..36025af90c 100644 --- a/app/config/locale/translations/sa.json +++ b/app/config/locale/translations/sa.json @@ -12,8 +12,6 @@ "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": "कूटशब्दपुनयाेजनम्‌", diff --git a/app/config/locale/translations/sd.json b/app/config/locale/translations/sd.json index 26c89a1770..c3371903c4 100644 --- a/app/config/locale/translations/sd.json +++ b/app/config/locale/translations/sd.json @@ -12,8 +12,6 @@ "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": "پاسورڊ ري سيٽ", diff --git a/app/config/locale/translations/si.json b/app/config/locale/translations/si.json index e2053407ea..03415c3c2d 100644 --- a/app/config/locale/translations/si.json +++ b/app/config/locale/translations/si.json @@ -12,8 +12,6 @@ "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": "මුරපද යළි පිහිටුවීම", diff --git a/app/config/locale/translations/sk.json b/app/config/locale/translations/sk.json index 1b41d8031d..9fe7a39619 100644 --- a/app/config/locale/translations/sk.json +++ b/app/config/locale/translations/sk.json @@ -12,8 +12,6 @@ "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", diff --git a/app/config/locale/translations/sl.json b/app/config/locale/translations/sl.json index f7c4f41255..23efd4c675 100644 --- a/app/config/locale/translations/sl.json +++ b/app/config/locale/translations/sl.json @@ -11,8 +11,6 @@ "emails.verification.signature": "", "emails.magicSession.subject": "", "emails.magicSession.hello": ",", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", "emails.magicSession.thanks": ",", "emails.magicSession.signature": "", "emails.recovery.subject": "", diff --git a/app/config/locale/translations/sn.json b/app/config/locale/translations/sn.json index 9fcadfaa82..29cb79142c 100644 --- a/app/config/locale/translations/sn.json +++ b/app/config/locale/translations/sn.json @@ -12,8 +12,6 @@ "emails.verification.signature": "Chikwata che{{project}}", "emails.magicSession.subject": "Pinda", "emails.magicSession.hello": "Hesi,", - "emails.magicSession.body": "Baya chinongedzo ichi kuti upinde muakaundi yako.", - "emails.magicSession.footer": "Kana usina kukumbira kupinda muakaundi yako uchishandisa email iyi, unogona kufuratira meseji iyi.", "emails.magicSession.thanks": "Ndatenda,", "emails.magicSession.signature": "Chikwata che{{project}}", "emails.recovery.subject": "Kuchinja pasiwedhi", diff --git a/app/config/locale/translations/sq.json b/app/config/locale/translations/sq.json index 85aa6637f6..39e6aa0d7c 100644 --- a/app/config/locale/translations/sq.json +++ b/app/config/locale/translations/sq.json @@ -11,8 +11,6 @@ "emails.verification.signature": "", "emails.magicSession.subject": "", "emails.magicSession.hello": ",", - "emails.magicSession.body": "", - "emails.magicSession.footer": "", "emails.magicSession.thanks": ",", "emails.magicSession.signature": "", "emails.recovery.subject": "", diff --git a/app/config/locale/translations/sv.json b/app/config/locale/translations/sv.json index 9bff513f0c..6c6ebf6d16 100644 --- a/app/config/locale/translations/sv.json +++ b/app/config/locale/translations/sv.json @@ -12,8 +12,6 @@ "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 e-postadress kan du ignorera detta mail.", "emails.magicSession.thanks": "Tack,", "emails.magicSession.signature": "{{project}} teamet", "emails.recovery.subject": "Återställ lösenord", diff --git a/app/config/locale/translations/ta.json b/app/config/locale/translations/ta.json index 4afcbe9b63..32e7a5d79d 100644 --- a/app/config/locale/translations/ta.json +++ b/app/config/locale/translations/ta.json @@ -12,8 +12,6 @@ "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": "கடவுச்சொல் மீட்டமைப்பு", diff --git a/app/config/locale/translations/te.json b/app/config/locale/translations/te.json index 4073fc72d9..e9d7574675 100644 --- a/app/config/locale/translations/te.json +++ b/app/config/locale/translations/te.json @@ -12,8 +12,6 @@ "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": "పాస్వర్డ్ రీసెట్", diff --git a/app/config/locale/translations/th.json b/app/config/locale/translations/th.json index 4003ece666..91e7dff7f6 100644 --- a/app/config/locale/translations/th.json +++ b/app/config/locale/translations/th.json @@ -12,8 +12,6 @@ "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": "รีเซ็ตรหัสผ่าน", diff --git a/app/config/locale/translations/tl.json b/app/config/locale/translations/tl.json index 27ea6c088f..af018bf567 100644 --- a/app/config/locale/translations/tl.json +++ b/app/config/locale/translations/tl.json @@ -12,8 +12,6 @@ "emails.verification.signature": "Pangkat ng {{project}}", "emails.magicSession.subject": "Mag log in", "emails.magicSession.hello": "Kamusta ,", - "emails.magicSession.body": "Sundin ang link na ito upang mag-login.", - "emails.magicSession.footer": "Kung hindi mo hiningi na mag-login gamit ang email na ito, maaari mong balewalain ang mensahe na ito.", "emails.magicSession.thanks": "Salamat,", "emails.magicSession.signature": "Pangkat ng {{project}}", "emails.recovery.subject": "I-reset ang password", diff --git a/app/config/locale/translations/tr.json b/app/config/locale/translations/tr.json index a7183152b6..5fd2447d2b 100644 --- a/app/config/locale/translations/tr.json +++ b/app/config/locale/translations/tr.json @@ -12,8 +12,6 @@ "emails.verification.signature": "{{project}} takımı", "emails.magicSession.subject": "Giriş", "emails.magicSession.hello": "Merhaba,", - "emails.magicSession.body": "Giriş yapmak için tıklayın.", - "emails.magicSession.footer": "Eğer bu eposta adresini kullanarak giriş yapmak istemediyseniz devam etmeyin.", "emails.magicSession.thanks": "Teşekkürler,", "emails.magicSession.signature": "{{project}} takımı", "emails.recovery.subject": "Şifremi Sıfırla", diff --git a/app/config/locale/translations/uk.json b/app/config/locale/translations/uk.json index daa003754d..b7b2c2905d 100644 --- a/app/config/locale/translations/uk.json +++ b/app/config/locale/translations/uk.json @@ -12,8 +12,6 @@ "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": "Скидання пароля", diff --git a/app/config/locale/translations/ur.json b/app/config/locale/translations/ur.json index 8823e0da2e..f8f0284bcf 100644 --- a/app/config/locale/translations/ur.json +++ b/app/config/locale/translations/ur.json @@ -12,8 +12,6 @@ "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": "پاس ورڈ ری سیٹ۔", diff --git a/app/config/locale/translations/vi.json b/app/config/locale/translations/vi.json index e9168d9ab8..5ed045ce19 100644 --- a/app/config/locale/translations/vi.json +++ b/app/config/locale/translations/vi.json @@ -12,8 +12,6 @@ "emails.verification.signature": "Nhóm {{project}}", "emails.magicSession.subject": "Đăng nhập", "emails.magicSession.hello": "Chào", - "emails.magicSession.body": "Nhấn vào đường dẫn sau để đăng nhập.", - "emails.magicSession.footer": "Nếu bạn không yêu cầu đăng nhập bằng email, bạn có thể bỏ qua email này.", "emails.magicSession.thanks": "Cảm ơn", "emails.magicSession.signature": "Nhóm {{project}}", "emails.recovery.subject": "Thiết lập lại mật khẩu", diff --git a/app/config/locale/translations/zh-cn.json b/app/config/locale/translations/zh-cn.json index 554b506e9e..b9319badfc 100644 --- a/app/config/locale/translations/zh-cn.json +++ b/app/config/locale/translations/zh-cn.json @@ -12,8 +12,6 @@ "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": "重设密码", diff --git a/app/config/locale/translations/zh-tw.json b/app/config/locale/translations/zh-tw.json index bb9868d679..0c2ba309d9 100644 --- a/app/config/locale/translations/zh-tw.json +++ b/app/config/locale/translations/zh-tw.json @@ -12,8 +12,6 @@ "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": "重設密碼", From c3665c35ff8eb3a9ea28329b7502d3ebb4bc598b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Tue, 12 Aug 2025 14:14:07 +0200 Subject: [PATCH 06/14] Add CI/CD job --- .github/workflows/static-analysis.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml index 04f8c822c7..80831c4d36 100644 --- a/.github/workflows/static-analysis.yml +++ b/.github/workflows/static-analysis.yml @@ -13,4 +13,9 @@ jobs: - name: Run CodeQL run: | docker run --rm -v $PWD:/app composer:2.6 sh -c \ - "composer install --profile --ignore-platform-reqs && composer check" \ No newline at end of file + "composer install --profile --ignore-platform-reqs && composer check" + + - name: Run Locale check + run: | + docker run --rm -v $PWD:/app node:24-alpine sh -c \ + "cd .github/workflows/static-analysis/locale && node index.js" \ No newline at end of file From 2f801646675ffa127b54baf0a3c53c36af8990da Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Tue, 12 Aug 2025 17:52:52 +0530 Subject: [PATCH 07/14] update executor --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 10da8e91d4..7b201f4ac4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -963,7 +963,7 @@ services: hostname: exc1 <<: *x-logging stop_signal: SIGINT - image: openruntimes/executor:executor-local + image: openruntimes/executor:0.8.1 restart: unless-stopped networks: - appwrite From f9d0746e13072087f4ceef8b06a1f371020b9423 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Tue, 12 Aug 2025 17:54:45 +0530 Subject: [PATCH 08/14] Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- tests/e2e/Services/Functions/FunctionsCustomClientTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/e2e/Services/Functions/FunctionsCustomClientTest.php b/tests/e2e/Services/Functions/FunctionsCustomClientTest.php index 835d5de994..909a4c9450 100644 --- a/tests/e2e/Services/Functions/FunctionsCustomClientTest.php +++ b/tests/e2e/Services/Functions/FunctionsCustomClientTest.php @@ -76,7 +76,6 @@ class FunctionsCustomClientTest extends Scope public function testCreateHeadExecution() { - /** * Test for SUCCESS */ From 73549a59a2aac33c263916d78b7a1b1c8f19c1a2 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Tue, 12 Aug 2025 17:54:54 +0530 Subject: [PATCH 09/14] Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- tests/e2e/Services/Functions/FunctionsCustomClientTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/e2e/Services/Functions/FunctionsCustomClientTest.php b/tests/e2e/Services/Functions/FunctionsCustomClientTest.php index 909a4c9450..a60c9e59cf 100644 --- a/tests/e2e/Services/Functions/FunctionsCustomClientTest.php +++ b/tests/e2e/Services/Functions/FunctionsCustomClientTest.php @@ -112,7 +112,6 @@ class FunctionsCustomClientTest extends Scope ], $this->getHeaders()), [ 'async' => true, ]); - fwrite(STDOUT, json_encode($execution, JSON_PRETTY_PRINT)); $this->assertEquals(200, $execution['headers']['status-code']); $this->assertEmpty($execution['body']); From b8165579707c41d444f3eab79e8a98b07d537968 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Tue, 12 Aug 2025 15:13:08 +0200 Subject: [PATCH 10/14] Add fallback locale support + tests --- app/config/locale/translations/de.json | 3 +- app/config/locale/translations/en.json | 3 +- app/controllers/api/projects.php | 2 + app/controllers/mock.php | 20 +++++++ app/init/resources.php | 6 ++- composer.json | 2 +- composer.lock | 22 ++++---- .../Platform/Workers/Certificates.php | 1 + tests/e2e/Services/Locale/LocaleBase.php | 53 +++++++++++++++++++ 9 files changed, 95 insertions(+), 17 deletions(-) diff --git a/app/config/locale/translations/de.json b/app/config/locale/translations/de.json index ce59755f88..8f17faf136 100644 --- a/app/config/locale/translations/de.json +++ b/app/config/locale/translations/de.json @@ -245,5 +245,6 @@ "emails.otpSession.clientInfo": "Diese Anmeldung wurde über {{agentClient}} auf {{agentDevice}} {{agentOs}} angefordert. Wenn Sie die Anmeldung nicht angefordert haben, können Sie diese E-Mail getrost ignorieren.", "emails.otpSession.securityPhrase": "Die Sicherheitsphrase für diese E-Mail lautet {{phrase}}. Sie können dieser E-Mail vertrauen, wenn diese Phrase mit der Phrase übereinstimmt, die beim Anmelden angezeigt wird.", "emails.otpSession.thanks": "Danke,", - "emails.otpSession.signature": "{{project}} Team" + "emails.otpSession.signature": "{{project}} Team", + "mock": "Eine Beispielübersetzung für Testzwecke." } diff --git a/app/config/locale/translations/en.json b/app/config/locale/translations/en.json index 072a7f7552..92706b04ab 100644 --- a/app/config/locale/translations/en.json +++ b/app/config/locale/translations/en.json @@ -274,5 +274,6 @@ "continents.eu": "Europe", "continents.na": "North America", "continents.oc": "Oceania", - "continents.sa": "South America" + "continents.sa": "South America", + "mock": "A mock translation for testing purposes." } diff --git a/app/controllers/api/projects.php b/app/controllers/api/projects.php index 6f8e2d45b8..be06ea01dd 100644 --- a/app/controllers/api/projects.php +++ b/app/controllers/api/projects.php @@ -2267,6 +2267,8 @@ App::get('/v1/projects/:projectId/templates/email/:type/:locale') $template = $templates['email.' . $type . '-' . $locale] ?? null; $localeObj = new Locale($locale); + $localeObj->setFallback(System::getEnv('_APP_LOCALE', 'en')); + if (is_null($template)) { /** * different templates, different placeholders. diff --git a/app/controllers/mock.php b/app/controllers/mock.php index 0684e5294a..40ddae8f30 100644 --- a/app/controllers/mock.php +++ b/app/controllers/mock.php @@ -13,6 +13,7 @@ use Utopia\Database\Helpers\ID; use Utopia\Database\Helpers\Permission; use Utopia\Database\Helpers\Role; use Utopia\Database\Validator\UID; +use Utopia\Locale\Locale; use Utopia\System\System; use Utopia\Validator\Host; use Utopia\Validator\Text; @@ -35,6 +36,25 @@ App::get('/v1/mock/tests/general/oauth2') $response->redirect($redirectURI . '?' . \http_build_query(['code' => 'abcdef', 'state' => $state])); }); +App::get('/v1/mock/tests/locale') + ->desc('Mock locale translation key') + ->groups(['mock']) + ->label('scope', 'public') + ->label('docs', false) + ->label('mock', true) + ->inject('locale') + ->inject('localeCodes') + ->inject('request') + ->inject('response') + ->action(function (Locale $locale, array $localeCodes, Request $request, Response $response) { + $localeParam = (string) $request->getParam('locale', $request->getHeader('x-appwrite-locale', '')); + if (\in_array($localeParam, $localeCodes)) { + $locale->setDefault($localeParam); + } + + $response->send($locale->getText('mock')); + }); + App::get('/v1/mock/tests/general/oauth2/token') ->desc('OAuth2 Token') ->groups(['mock']) diff --git a/app/init/resources.php b/app/init/resources.php index 1d3b25062c..9ae132d30c 100644 --- a/app/init/resources.php +++ b/app/init/resources.php @@ -70,7 +70,11 @@ App::setResource('hooks', function ($register) { }, ['register']); App::setResource('register', fn () => $register); -App::setResource('locale', fn () => new Locale(System::getEnv('_APP_LOCALE', 'en'))); +App::setResource('locale', function () { + $locale = new Locale(System::getEnv('_APP_LOCALE', 'en')); + $locale->setFallback(System::getEnv('_APP_LOCALE', 'en')); + return $locale; +}); App::setResource('localeCodes', function () { return array_map(fn ($locale) => $locale['code'], Config::getParam('locale-codes', [])); diff --git a/composer.json b/composer.json index 8ba8e49f4a..7039a65da0 100644 --- a/composer.json +++ b/composer.json @@ -60,7 +60,7 @@ "utopia-php/framework": "0.33.*", "utopia-php/fetch": "0.4.*", "utopia-php/image": "0.8.*", - "utopia-php/locale": "0.4.*", + "utopia-php/locale": "0.8.*", "utopia-php/logger": "0.6.*", "utopia-php/messaging": "0.18.*", "utopia-php/migration": "0.11.*", diff --git a/composer.lock b/composer.lock index 117e91b621..cc27808181 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "761a7e17b49381e68038c92873888125", + "content-hash": "c0641df1dfb292f9d8f0d6b6278d0e9c", "packages": [ { "name": "adhocore/jwt", @@ -3945,22 +3945,24 @@ }, { "name": "utopia-php/locale", - "version": "0.4.0", + "version": "0.8.0", "source": { "type": "git", "url": "https://github.com/utopia-php/locale.git", - "reference": "c2d9358d0fe2f6b6ed5448369f9d1e430c615447" + "reference": "10ffc869c904c45e32ab0c61f4b33ba774777eb6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/locale/zipball/c2d9358d0fe2f6b6ed5448369f9d1e430c615447", - "reference": "c2d9358d0fe2f6b6ed5448369f9d1e430c615447", + "url": "https://api.github.com/repos/utopia-php/locale/zipball/10ffc869c904c45e32ab0c61f4b33ba774777eb6", + "reference": "10ffc869c904c45e32ab0c61f4b33ba774777eb6", "shasum": "" }, "require": { "php": ">=7.4" }, "require-dev": { + "laravel/pint": "1.2.*", + "phpstan/phpstan": "1.*", "phpunit/phpunit": "^9.3", "vimeo/psalm": "4.0.1" }, @@ -3974,12 +3976,6 @@ "license": [ "MIT" ], - "authors": [ - { - "name": "Eldad Fux", - "email": "eldad@appwrite.io" - } - ], "description": "A simple locale library to manage application translations", "keywords": [ "framework", @@ -3990,9 +3986,9 @@ ], "support": { "issues": "https://github.com/utopia-php/locale/issues", - "source": "https://github.com/utopia-php/locale/tree/0.4.0" + "source": "https://github.com/utopia-php/locale/tree/0.8.0" }, - "time": "2021-07-24T11:35:55+00:00" + "time": "2025-08-12T12:58:26+00:00" }, { "name": "utopia-php/logger", diff --git a/src/Appwrite/Platform/Workers/Certificates.php b/src/Appwrite/Platform/Workers/Certificates.php index 300383ef6d..a3fad056bf 100644 --- a/src/Appwrite/Platform/Workers/Certificates.php +++ b/src/Appwrite/Platform/Workers/Certificates.php @@ -373,6 +373,7 @@ class Certificates extends Action Console::warning('Cannot renew domain (' . $domain . ') on attempt no. ' . $attempt . ' certificate: ' . $errorMessage); $locale = new Locale(System::getEnv('_APP_LOCALE', 'en')); + $locale->setFallback(System::getEnv('_APP_LOCALE', 'en')); // Send mail to administrator mail $template = Template::fromFile(__DIR__ . '/../../../../app/config/locale/templates/email-certificate-failed.tpl'); diff --git a/tests/e2e/Services/Locale/LocaleBase.php b/tests/e2e/Services/Locale/LocaleBase.php index ee731a99e5..431a2a4409 100644 --- a/tests/e2e/Services/Locale/LocaleBase.php +++ b/tests/e2e/Services/Locale/LocaleBase.php @@ -269,4 +269,57 @@ trait LocaleBase return []; } + + public function testFallbackLocale() + { + $en = 'A mock translation for testing purposes.'; + $de = 'Eine Beispielübersetzung für Testzwecke.'; + + $response = $this->client->call(Client::METHOD_GET, '/mock/tests/locale', [ + 'x-appwrite-project' => $this->getProject()['$id'], + ]); + + $this->assertEquals($response['headers']['status-code'], 200); + $this->assertEquals($en, $response['body']); + + $response = $this->client->call(Client::METHOD_GET, '/mock/tests/locale', [ + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-locale' => 'en' + ]); + + $this->assertEquals($response['headers']['status-code'], 200); + $this->assertEquals($en, $response['body']); + + $response = $this->client->call(Client::METHOD_GET, '/mock/tests/locale', [ + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-locale' => 'de' + ]); + + $this->assertEquals($response['headers']['status-code'], 200); + $this->assertEquals($de, $response['body']); + + $response = $this->client->call(Client::METHOD_GET, '/mock/tests/locale', [ + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-locale' => 'cs' + ]); + + $this->assertEquals($response['headers']['status-code'], 200); + $this->assertEquals($en, $response['body']); + + $response = $this->client->call(Client::METHOD_GET, '/mock/tests/locale', [ + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-locale' => 'non-existing' + ]); + + $this->assertEquals($response['headers']['status-code'], 200); + $this->assertEquals($en, $response['body']); + + $response = $this->client->call(Client::METHOD_GET, '/mock/tests/locale', [ + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-locale' => '' + ]); + + $this->assertEquals($response['headers']['status-code'], 200); + $this->assertEquals($en, $response['body']); + } } From 6eaa2015b02a81ba62da4a600f5c473755268965 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Tue, 12 Aug 2025 15:18:31 +0200 Subject: [PATCH 11/14] Fix CI/CD command --- .github/workflows/static-analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml index 80831c4d36..1c5f36ace3 100644 --- a/.github/workflows/static-analysis.yml +++ b/.github/workflows/static-analysis.yml @@ -18,4 +18,4 @@ jobs: - name: Run Locale check run: | docker run --rm -v $PWD:/app node:24-alpine sh -c \ - "cd .github/workflows/static-analysis/locale && node index.js" \ No newline at end of file + "cd /app/.github/workflows/static-analysis/locale && node index.js" From 14faef323c2730b9a3f74f1ccd4331d21f6164a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Tue, 12 Aug 2025 17:01:13 +0200 Subject: [PATCH 12/14] Fix variables sharing across resources --- app/init/database/filters.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/init/database/filters.php b/app/init/database/filters.php index 98a37ec4ad..33f5d8077a 100644 --- a/app/init/database/filters.php +++ b/app/init/database/filters.php @@ -245,10 +245,16 @@ Database::addFilter( return; }, function (mixed $value, Document $document, Database $database) { + $resourceType = match ($document->getCollection()) { + 'functions' => ['function'], + 'sites' => ['site'], + default => ['function', 'site'] + }; + return $database ->find('variables', [ Query::equal('resourceInternalId', [$document->getSequence()]), - Query::equal('resourceType', ['function', 'site']), + Query::equal('resourceType', $resourceType), Query::limit(APP_LIMIT_SUBQUERY), ]); } From 222a5e00fa7da8ded70238ce01cddf00a6bd7a10 Mon Sep 17 00:00:00 2001 From: Khushboo Verma Date: Wed, 13 Aug 2025 12:39:52 +0530 Subject: [PATCH 13/14] Update invite email copy --- app/config/locale/translations/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/en.json b/app/config/locale/translations/en.json index 92706b04ab..a3284440f4 100644 --- a/app/config/locale/translations/en.json +++ b/app/config/locale/translations/en.json @@ -57,7 +57,7 @@ "emails.invitation.subject": "Invitation to %s Team at %s", "emails.invitation.preview": "{{owner}} invited you to join {{team}} at {{project}}", "emails.invitation.hello": "Hello {{user}},", - "emails.invitation.body": "This mail was sent to you because {{b}}{{owner}}{{/b}} wanted to invite you to become a member of the {{b}}{{team}}{{/b}} team at {{b}}{{project}}{{/b}}.", + "emails.invitation.body": "This mail was sent to you because {{b}}{{owner}}{{/b}} invited you to become a member of the {{b}}{{team}}{{/b}} team at {{b}}{{project}}{{/b}}.", "emails.invitation.footer": "If you are not interested, you can ignore this message.", "emails.invitation.thanks": "Thanks,", "emails.invitation.buttonText": "Accept invite to {{team}}", From c86210ec5d7ca27892d39aec58e8f03d8b9191e6 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 13 Aug 2025 21:16:45 +1200 Subject: [PATCH 14/14] Update versions --- composer.json | 8 ++++---- composer.lock | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/composer.json b/composer.json index 21fd32e477..ba9fe0798b 100644 --- a/composer.json +++ b/composer.json @@ -46,13 +46,13 @@ "ext-sockets": "*", "appwrite/php-runtimes": "0.19.*", "appwrite/php-clamav": "2.0.*", - "utopia-php/abuse": "0.52.*", + "utopia-php/abuse": "1.*", "utopia-php/analytics": "0.10.*", - "utopia-php/audit": "0.55.*", + "utopia-php/audit": "1.*", "utopia-php/cache": "0.13.*", "utopia-php/cli": "0.15.*", "utopia-php/config": "0.2.*", - "utopia-php/database": "0.77.*", + "utopia-php/database": "1.*", "utopia-php/detector": "0.1.*", "utopia-php/domains": "0.8.*", "utopia-php/dns": "0.3.*", @@ -63,7 +63,7 @@ "utopia-php/locale": "0.8.*", "utopia-php/logger": "0.6.*", "utopia-php/messaging": "0.18.*", - "utopia-php/migration": "0.14.*", + "utopia-php/migration": "1.*", "utopia-php/orchestration": "0.9.*", "utopia-php/platform": "0.7.*", "utopia-php/pools": "0.8.*", diff --git a/composer.lock b/composer.lock index 80b021ae3b..cd97d3f5ed 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "72786a5d87326f396250f18d725dea23", + "content-hash": "7a1c7aafd1f307e21e3167cc88413c73", "packages": [ { "name": "adhocore/jwt", @@ -3203,16 +3203,16 @@ }, { "name": "utopia-php/abuse", - "version": "0.52.0", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/utopia-php/abuse.git", - "reference": "a0d6421e7e5baa3ac02755496dca9fdeaa814b93" + "reference": "c5e2232033b507a07f72180dc56d37e1872ee7be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/abuse/zipball/a0d6421e7e5baa3ac02755496dca9fdeaa814b93", - "reference": "a0d6421e7e5baa3ac02755496dca9fdeaa814b93", + "url": "https://api.github.com/repos/utopia-php/abuse/zipball/c5e2232033b507a07f72180dc56d37e1872ee7be", + "reference": "c5e2232033b507a07f72180dc56d37e1872ee7be", "shasum": "" }, "require": { @@ -3220,7 +3220,7 @@ "ext-pdo": "*", "ext-redis": "*", "php": ">=8.0", - "utopia-php/database": "0.*.*" + "utopia-php/database": "1.*" }, "require-dev": { "laravel/pint": "1.*", @@ -3248,9 +3248,9 @@ ], "support": { "issues": "https://github.com/utopia-php/abuse/issues", - "source": "https://github.com/utopia-php/abuse/tree/0.52.0" + "source": "https://github.com/utopia-php/abuse/tree/1.0.0" }, - "time": "2025-03-06T03:48:29+00:00" + "time": "2025-08-13T09:12:54+00:00" }, { "name": "utopia-php/analytics", @@ -3300,21 +3300,21 @@ }, { "name": "utopia-php/audit", - "version": "0.55.0", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/utopia-php/audit.git", - "reference": "9f8cfe5fa5d5011b8dbf93b710236dfa91dc5518" + "reference": "c0ed75f4d068f1f6c2e7149a909490d4214e72bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/audit/zipball/9f8cfe5fa5d5011b8dbf93b710236dfa91dc5518", - "reference": "9f8cfe5fa5d5011b8dbf93b710236dfa91dc5518", + "url": "https://api.github.com/repos/utopia-php/audit/zipball/c0ed75f4d068f1f6c2e7149a909490d4214e72bb", + "reference": "c0ed75f4d068f1f6c2e7149a909490d4214e72bb", "shasum": "" }, "require": { "php": ">=8.0", - "utopia-php/database": "0.*.*" + "utopia-php/database": "1.*" }, "require-dev": { "laravel/pint": "1.*", @@ -3341,9 +3341,9 @@ ], "support": { "issues": "https://github.com/utopia-php/audit/issues", - "source": "https://github.com/utopia-php/audit/tree/0.55.0" + "source": "https://github.com/utopia-php/audit/tree/1.0.0" }, - "time": "2025-03-06T03:47:47+00:00" + "time": "2025-08-13T09:09:00+00:00" }, { "name": "utopia-php/cache", @@ -3545,7 +3545,7 @@ }, { "name": "utopia-php/database", - "version": "0.77.4", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/utopia-php/database.git", @@ -3595,7 +3595,7 @@ ], "support": { "issues": "https://github.com/utopia-php/database/issues", - "source": "https://github.com/utopia-php/database/tree/0.77.4" + "source": "https://github.com/utopia-php/database/tree/1.0.0" }, "time": "2025-08-11T13:56:31+00:00" }, @@ -4097,16 +4097,16 @@ }, { "name": "utopia-php/migration", - "version": "0.14.3", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/utopia-php/migration.git", - "reference": "c47855518c95f80fde71fec5f6598623eb2fc884" + "reference": "0e4499d9dd2c90c2be188cc5fb7a32d9a892b569" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/migration/zipball/c47855518c95f80fde71fec5f6598623eb2fc884", - "reference": "c47855518c95f80fde71fec5f6598623eb2fc884", + "url": "https://api.github.com/repos/utopia-php/migration/zipball/0e4499d9dd2c90c2be188cc5fb7a32d9a892b569", + "reference": "0e4499d9dd2c90c2be188cc5fb7a32d9a892b569", "shasum": "" }, "require": { @@ -4114,7 +4114,7 @@ "ext-curl": "*", "ext-openssl": "*", "php": ">=8.1", - "utopia-php/database": "0.*.*", + "utopia-php/database": "1.*", "utopia-php/dsn": "0.2.*", "utopia-php/framework": "0.33.*", "utopia-php/storage": "0.18.*" @@ -4147,9 +4147,9 @@ ], "support": { "issues": "https://github.com/utopia-php/migration/issues", - "source": "https://github.com/utopia-php/migration/tree/0.14.3" + "source": "https://github.com/utopia-php/migration/tree/1.0.0" }, - "time": "2025-08-08T13:10:17+00:00" + "time": "2025-08-13T09:15:53+00:00" }, { "name": "utopia-php/orchestration",