mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
Compare commits
117
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
10fd004424 | ||
|
|
e9ef16bb13 | ||
|
|
919fc357f3 | ||
|
|
420783de9b | ||
|
|
4bdc0c21f7 | ||
|
|
43303cb62d | ||
|
|
259f7eff30 | ||
|
|
fa69be5cd5 | ||
|
|
fb875410b5 | ||
|
|
83d76c52b4 | ||
|
|
4f52907129 | ||
|
|
27bb70b229 | ||
|
|
2c1655e450 | ||
|
|
c86210ec5d | ||
|
|
3f3319df20 | ||
|
|
8f0d107d9a | ||
|
|
06206824b8 | ||
|
|
222a5e00fa | ||
|
|
14faef323c | ||
|
|
dc25d8e757 | ||
|
|
6eaa2015b0 | ||
|
|
b816557970 | ||
|
|
a39877687c | ||
|
|
73549a59a2 | ||
|
|
f9d0746e13 | ||
|
|
2f80164667 | ||
|
|
c3665c35ff | ||
|
|
626f7c754c | ||
|
|
56d60d7866 | ||
|
|
b418285349 | ||
|
|
ea7985ad4d | ||
|
|
0e636f67be | ||
|
|
f8afbbbf3c | ||
|
|
02b83d59b7 | ||
|
|
75eccf8502 | ||
|
|
66dacb61df | ||
|
|
4712c18f31 | ||
|
|
38204a2c23 | ||
|
|
f81fd16d26 | ||
|
|
0febefcf75 | ||
|
|
22d58e7bec | ||
|
|
a7ccb7b16f | ||
|
|
836606a06b | ||
|
|
100ab4ef89 | ||
|
|
b641c9e5e0 | ||
|
|
3efd9a778e | ||
|
|
ee13066f18 | ||
|
|
ec174a15cf | ||
|
|
7e110bf292 | ||
|
|
12d085373e | ||
|
|
a8cc01da7c | ||
|
|
334c1478ab | ||
|
|
672f642de6 | ||
|
|
4da9b99414 | ||
|
|
f284d0510a | ||
|
|
349b505d80 | ||
|
|
d6ff61446f | ||
|
|
b12192fc3e | ||
|
|
7a0b34474f | ||
|
|
acaea49c9b | ||
|
|
b89d713002 | ||
|
|
0e3491f1c2 | ||
|
|
48834cd114 | ||
|
|
eb53e56817 | ||
|
|
93a24f3fab | ||
|
|
6d6cfbe87a | ||
|
|
afdd8cf58f | ||
|
|
1885799ac8 | ||
|
|
bb5e25ea4b | ||
|
|
f0e49bb2a3 | ||
|
|
44b3cbe597 | ||
|
|
ff8ad93544 | ||
|
|
375961c0fa | ||
|
|
612b03a9d6 | ||
|
|
b1199c8cdd | ||
|
|
913fa9d064 | ||
|
|
3510b9db28 | ||
|
|
9a6c4c5ebe | ||
|
|
2b3a8527ff | ||
|
|
f4306220c4 | ||
|
|
6ca9cbf3d7 | ||
|
|
969e9cfa1e | ||
|
|
5dc50898a5 | ||
|
|
eb3caea5b4 | ||
|
|
89197e0f9e | ||
|
|
8388c71766 | ||
|
|
96b7f31abb | ||
|
|
1fba63e986 | ||
|
|
ae5225d8ee | ||
|
|
e94c8bfd97 | ||
|
|
10254c5e24 | ||
|
|
2bcaed6222 | ||
|
|
bf6bbfa058 | ||
|
|
bc55639bf7 | ||
|
|
0556f8fdca | ||
|
|
65c767c2b0 | ||
|
|
f154b1e8aa | ||
|
|
b464a3d7a2 | ||
|
|
ad79f3dcca | ||
|
|
c9691be34a | ||
|
|
f537f5f901 | ||
|
|
00aed7dce9 | ||
|
|
ddf76ef81e | ||
|
|
627fd11b73 | ||
|
|
3adf8d826d | ||
|
|
62ec4f9aca | ||
|
|
7dd9ade894 | ||
|
|
aa837c7b43 | ||
|
|
3541fcb237 | ||
|
|
10a7f8acfe | ||
|
|
61ec98bc5e | ||
|
|
217cd48249 | ||
|
|
80f37ef1e4 | ||
|
|
d7a5b413c9 | ||
|
|
2d4e99cb1a | ||
|
|
8fe999d6d7 | ||
|
|
dade82706a |
@@ -21,6 +21,7 @@ _APP_OPTIONS_ROUTER_PROTECTION=disabled
|
||||
_APP_OPTIONS_FORCE_HTTPS=disabled
|
||||
_APP_OPTIONS_ROUTER_FORCE_HTTPS=disabled
|
||||
_APP_OPENSSL_KEY_V1=your-secret-key
|
||||
_APP_DNS=8.8.8.8
|
||||
_APP_DOMAIN=traefik
|
||||
_APP_CONSOLE_DOMAIN=localhost
|
||||
_APP_DOMAIN_FUNCTIONS=functions.localhost
|
||||
@@ -28,6 +29,7 @@ _APP_DOMAIN_SITES=sites.localhost
|
||||
_APP_DOMAIN_TARGET_CNAME=test.localhost
|
||||
_APP_DOMAIN_TARGET_A=127.0.0.1
|
||||
_APP_DOMAIN_TARGET_AAAA=::1
|
||||
_APP_DOMAIN_TARGET_CAA=digicert.com
|
||||
_APP_RULES_FORMAT=md5
|
||||
_APP_REDIS_HOST=redis
|
||||
_APP_REDIS_PORT=6379
|
||||
|
||||
@@ -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"
|
||||
"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 /app/.github/workflows/static-analysis/locale && node 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);
|
||||
}
|
||||
})();
|
||||
@@ -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": ""
|
||||
}
|
||||
+8
-8
@@ -12,7 +12,7 @@ RUN composer install --ignore-platform-reqs --optimize-autoloader \
|
||||
--no-plugins --no-scripts --prefer-dist \
|
||||
`if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi`
|
||||
|
||||
FROM appwrite/base:0.10.1 AS final
|
||||
FROM appwrite/base:0.10.3 AS final
|
||||
|
||||
LABEL maintainer="team@appwrite.io"
|
||||
|
||||
@@ -50,13 +50,13 @@ RUN mkdir -p /storage/uploads && \
|
||||
mkdir -p /storage/certificates && \
|
||||
mkdir -p /storage/functions && \
|
||||
mkdir -p /storage/debug && \
|
||||
chown -Rf www-data.www-data /storage/uploads && chmod -Rf 0755 /storage/uploads && \
|
||||
chown -Rf www-data.www-data /storage/imports && chmod -Rf 0755 /storage/imports && \
|
||||
chown -Rf www-data.www-data /storage/cache && chmod -Rf 0755 /storage/cache && \
|
||||
chown -Rf www-data.www-data /storage/config && chmod -Rf 0755 /storage/config && \
|
||||
chown -Rf www-data.www-data /storage/certificates && chmod -Rf 0755 /storage/certificates && \
|
||||
chown -Rf www-data.www-data /storage/functions && chmod -Rf 0755 /storage/functions && \
|
||||
chown -Rf www-data.www-data /storage/debug && chmod -Rf 0755 /storage/debug
|
||||
chown -Rf www-data:www-data /storage/uploads && chmod -Rf 0755 /storage/uploads && \
|
||||
chown -Rf www-data:www-data /storage/imports && chmod -Rf 0755 /storage/imports && \
|
||||
chown -Rf www-data:www-data /storage/cache && chmod -Rf 0755 /storage/cache && \
|
||||
chown -Rf www-data:www-data /storage/config && chmod -Rf 0755 /storage/config && \
|
||||
chown -Rf www-data:www-data /storage/certificates && chmod -Rf 0755 /storage/certificates && \
|
||||
chown -Rf www-data:www-data /storage/functions && chmod -Rf 0755 /storage/functions && \
|
||||
chown -Rf www-data:www-data /storage/debug && chmod -Rf 0755 /storage/debug
|
||||
|
||||
# Executables
|
||||
RUN chmod +x /usr/local/bin/doctor && \
|
||||
|
||||
@@ -407,7 +407,7 @@ return [
|
||||
'format' => '',
|
||||
'size' => Database::LENGTH_KEY,
|
||||
'signed' => true,
|
||||
'required' => true,
|
||||
'required' => false,
|
||||
'default' => null,
|
||||
'array' => false,
|
||||
'filters' => [],
|
||||
|
||||
@@ -55,7 +55,8 @@ return [
|
||||
'$id' => ID::custom('type'),
|
||||
'type' => Database::VAR_STRING,
|
||||
'size' => 128,
|
||||
'required' => true,
|
||||
'required' => false,
|
||||
'default' => 'grids',
|
||||
'signed' => true,
|
||||
'array' => false,
|
||||
'filters' => [],
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "تبدال كلمة السر",
|
||||
|
||||
@@ -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": "تغيير كلمة السر",
|
||||
|
||||
@@ -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": "পাছৱাৰ্ড ৰিছেট",
|
||||
|
||||
@@ -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ı",
|
||||
|
||||
@@ -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": "Скід пароля",
|
||||
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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": "पासवर्ड बदल क लेल|",
|
||||
|
||||
@@ -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": "পাসওয়ার্ড রিসেট",
|
||||
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
@@ -247,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."
|
||||
}
|
||||
|
||||
@@ -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": "Αλλαγή κωδικού πρόσβασης",
|
||||
|
||||
@@ -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}}",
|
||||
@@ -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."
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "بازیابی گذرواژه",
|
||||
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "પાસવર્ડ ફરીથી સેટ કરો",
|
||||
|
||||
@@ -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": "איפוס סיסמא",
|
||||
|
||||
@@ -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": "पासवर्ड रीसेट",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "パスワードリセット",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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": "ಗುಪ್ತಪದ ಮರುಹೊಂದಿಸಿ",
|
||||
|
||||
@@ -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": "비밀번호 재설정",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "രഹസ്യവാക്ക് പുനക്രമീകരണം",
|
||||
|
||||
@@ -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": "पासवर्ड रीसेट",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "पासवर्ड रिसेट",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "ପାସୱାର୍ଡ ପୁନଃ ସେଟ୍ କରନ୍ତୁ |",
|
||||
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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ă",
|
||||
|
||||
@@ -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": "Сброс пароля",
|
||||
|
||||
@@ -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": "कूटशब्दपुनयाेजनम्",
|
||||
|
||||
@@ -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": "پاسورڊ ري سيٽ",
|
||||
|
||||
@@ -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": "මුරපද යළි පිහිටුවීම",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "கடவுச்சொல் மீட்டமைப்பு",
|
||||
|
||||
@@ -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": "పాస్వర్డ్ రీసెట్",
|
||||
|
||||
@@ -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": "รีเซ็ตรหัสผ่าน",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "Скидання пароля",
|
||||
|
||||
@@ -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": "پاس ورڈ ری سیٹ۔",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "重设密码",
|
||||
|
||||
@@ -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": "重設密碼",
|
||||
|
||||
@@ -116,7 +116,7 @@ return [
|
||||
[
|
||||
'key' => 'android',
|
||||
'name' => 'Android',
|
||||
'version' => '8.2.0',
|
||||
'version' => '8.2.2',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-android',
|
||||
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-android',
|
||||
'enabled' => true,
|
||||
@@ -413,7 +413,7 @@ return [
|
||||
[
|
||||
'key' => 'kotlin',
|
||||
'name' => 'Kotlin',
|
||||
'version' => '9.1.0',
|
||||
'version' => '9.1.2',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-kotlin',
|
||||
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-kotlin',
|
||||
'enabled' => true,
|
||||
|
||||
@@ -8479,17 +8479,20 @@
|
||||
"type": "integer",
|
||||
"description": "Document automatically incrementing ID.",
|
||||
"x-example": 1,
|
||||
"format": "int32"
|
||||
"format": "int32",
|
||||
"readOnly": true
|
||||
},
|
||||
"$collectionId": {
|
||||
"type": "string",
|
||||
"description": "Collection ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$databaseId": {
|
||||
"type": "string",
|
||||
"description": "Database ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$createdAt": {
|
||||
"type": "string",
|
||||
|
||||
@@ -37978,17 +37978,20 @@
|
||||
"type": "integer",
|
||||
"description": "Document automatically incrementing ID.",
|
||||
"x-example": 1,
|
||||
"format": "int32"
|
||||
"format": "int32",
|
||||
"readOnly": true
|
||||
},
|
||||
"$collectionId": {
|
||||
"type": "string",
|
||||
"description": "Collection ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$databaseId": {
|
||||
"type": "string",
|
||||
"description": "Database ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$createdAt": {
|
||||
"type": "string",
|
||||
@@ -44635,6 +44638,11 @@
|
||||
"description": "AAAA target for your Appwrite custom domains.",
|
||||
"x-example": "::1"
|
||||
},
|
||||
"_APP_DOMAIN_TARGET_CAA": {
|
||||
"type": "string",
|
||||
"description": "CAA target for your Appwrite custom domains.",
|
||||
"x-example": "digicert.com"
|
||||
},
|
||||
"_APP_STORAGE_LIMIT": {
|
||||
"type": "integer",
|
||||
"description": "Maximum file size allowed for file upload in bytes.",
|
||||
@@ -44692,6 +44700,7 @@
|
||||
"_APP_DOMAIN_TARGET_CNAME",
|
||||
"_APP_DOMAIN_TARGET_A",
|
||||
"_APP_DOMAIN_TARGET_AAAA",
|
||||
"_APP_DOMAIN_TARGET_CAA",
|
||||
"_APP_STORAGE_LIMIT",
|
||||
"_APP_COMPUTE_SIZE_LIMIT",
|
||||
"_APP_USAGE_STATS",
|
||||
@@ -44707,6 +44716,7 @@
|
||||
"_APP_DOMAIN_TARGET_CNAME": "appwrite.io",
|
||||
"_APP_DOMAIN_TARGET_A": "127.0.0.1",
|
||||
"_APP_DOMAIN_TARGET_AAAA": "::1",
|
||||
"_APP_DOMAIN_TARGET_CAA": "digicert.com",
|
||||
"_APP_STORAGE_LIMIT": "30000000",
|
||||
"_APP_COMPUTE_SIZE_LIMIT": "30000000",
|
||||
"_APP_USAGE_STATS": "enabled",
|
||||
|
||||
@@ -27864,17 +27864,20 @@
|
||||
"type": "integer",
|
||||
"description": "Document automatically incrementing ID.",
|
||||
"x-example": 1,
|
||||
"format": "int32"
|
||||
"format": "int32",
|
||||
"readOnly": true
|
||||
},
|
||||
"$collectionId": {
|
||||
"type": "string",
|
||||
"description": "Collection ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$databaseId": {
|
||||
"type": "string",
|
||||
"description": "Database ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$createdAt": {
|
||||
"type": "string",
|
||||
|
||||
@@ -8969,17 +8969,20 @@
|
||||
"type": "integer",
|
||||
"description": "Document automatically incrementing ID.",
|
||||
"x-example": 1,
|
||||
"format": "int32"
|
||||
"format": "int32",
|
||||
"readOnly": true
|
||||
},
|
||||
"$collectionId": {
|
||||
"type": "string",
|
||||
"description": "Collection ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$databaseId": {
|
||||
"type": "string",
|
||||
"description": "Database ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$createdAt": {
|
||||
"type": "string",
|
||||
|
||||
@@ -33744,17 +33744,20 @@
|
||||
"type": "integer",
|
||||
"description": "Document automatically incrementing ID.",
|
||||
"x-example": 1,
|
||||
"format": "int32"
|
||||
"format": "int32",
|
||||
"readOnly": true
|
||||
},
|
||||
"$collectionId": {
|
||||
"type": "string",
|
||||
"description": "Collection ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$databaseId": {
|
||||
"type": "string",
|
||||
"description": "Database ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$createdAt": {
|
||||
"type": "string",
|
||||
|
||||
@@ -8516,17 +8516,20 @@
|
||||
"type": "integer",
|
||||
"description": "Document automatically incrementing ID.",
|
||||
"x-example": 1,
|
||||
"format": "int32"
|
||||
"format": "int32",
|
||||
"readOnly": true
|
||||
},
|
||||
"$collectionId": {
|
||||
"type": "string",
|
||||
"description": "Collection ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$databaseId": {
|
||||
"type": "string",
|
||||
"description": "Database ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$createdAt": {
|
||||
"type": "string",
|
||||
|
||||
@@ -38139,17 +38139,20 @@
|
||||
"type": "integer",
|
||||
"description": "Document automatically incrementing ID.",
|
||||
"x-example": 1,
|
||||
"format": "int32"
|
||||
"format": "int32",
|
||||
"readOnly": true
|
||||
},
|
||||
"$collectionId": {
|
||||
"type": "string",
|
||||
"description": "Collection ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$databaseId": {
|
||||
"type": "string",
|
||||
"description": "Database ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$createdAt": {
|
||||
"type": "string",
|
||||
@@ -44900,6 +44903,11 @@
|
||||
"description": "AAAA target for your Appwrite custom domains.",
|
||||
"x-example": "::1"
|
||||
},
|
||||
"_APP_DOMAIN_TARGET_CAA": {
|
||||
"type": "string",
|
||||
"description": "CAA target for your Appwrite custom domains.",
|
||||
"x-example": "digicert.com"
|
||||
},
|
||||
"_APP_STORAGE_LIMIT": {
|
||||
"type": "integer",
|
||||
"description": "Maximum file size allowed for file upload in bytes.",
|
||||
@@ -44957,6 +44965,7 @@
|
||||
"_APP_DOMAIN_TARGET_CNAME",
|
||||
"_APP_DOMAIN_TARGET_A",
|
||||
"_APP_DOMAIN_TARGET_AAAA",
|
||||
"_APP_DOMAIN_TARGET_CAA",
|
||||
"_APP_STORAGE_LIMIT",
|
||||
"_APP_COMPUTE_SIZE_LIMIT",
|
||||
"_APP_USAGE_STATS",
|
||||
@@ -44972,6 +44981,7 @@
|
||||
"_APP_DOMAIN_TARGET_CNAME": "appwrite.io",
|
||||
"_APP_DOMAIN_TARGET_A": "127.0.0.1",
|
||||
"_APP_DOMAIN_TARGET_AAAA": "::1",
|
||||
"_APP_DOMAIN_TARGET_CAA": "digicert.com",
|
||||
"_APP_STORAGE_LIMIT": "30000000",
|
||||
"_APP_COMPUTE_SIZE_LIMIT": "30000000",
|
||||
"_APP_USAGE_STATS": "enabled",
|
||||
|
||||
@@ -28092,17 +28092,20 @@
|
||||
"type": "integer",
|
||||
"description": "Document automatically incrementing ID.",
|
||||
"x-example": 1,
|
||||
"format": "int32"
|
||||
"format": "int32",
|
||||
"readOnly": true
|
||||
},
|
||||
"$collectionId": {
|
||||
"type": "string",
|
||||
"description": "Collection ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$databaseId": {
|
||||
"type": "string",
|
||||
"description": "Database ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$createdAt": {
|
||||
"type": "string",
|
||||
|
||||
@@ -8999,17 +8999,20 @@
|
||||
"type": "integer",
|
||||
"description": "Document automatically incrementing ID.",
|
||||
"x-example": 1,
|
||||
"format": "int32"
|
||||
"format": "int32",
|
||||
"readOnly": true
|
||||
},
|
||||
"$collectionId": {
|
||||
"type": "string",
|
||||
"description": "Collection ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$databaseId": {
|
||||
"type": "string",
|
||||
"description": "Database ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$createdAt": {
|
||||
"type": "string",
|
||||
|
||||
@@ -44308,17 +44308,20 @@
|
||||
"type": "integer",
|
||||
"description": "Document automatically incrementing ID.",
|
||||
"x-example": 1,
|
||||
"format": "int32"
|
||||
"format": "int32",
|
||||
"readOnly": true
|
||||
},
|
||||
"$collectionId": {
|
||||
"type": "string",
|
||||
"description": "Collection ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$databaseId": {
|
||||
"type": "string",
|
||||
"description": "Database ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$createdAt": {
|
||||
"type": "string",
|
||||
@@ -50232,6 +50235,11 @@
|
||||
"description": "AAAA target for your Appwrite custom domains.",
|
||||
"x-example": "::1"
|
||||
},
|
||||
"_APP_DOMAIN_TARGET_CAA": {
|
||||
"type": "string",
|
||||
"description": "CAA target for your Appwrite custom domains.",
|
||||
"x-example": "digicert.com"
|
||||
},
|
||||
"_APP_STORAGE_LIMIT": {
|
||||
"type": "integer",
|
||||
"description": "Maximum file size allowed for file upload in bytes.",
|
||||
@@ -50289,6 +50297,7 @@
|
||||
"_APP_DOMAIN_TARGET_CNAME",
|
||||
"_APP_DOMAIN_TARGET_A",
|
||||
"_APP_DOMAIN_TARGET_AAAA",
|
||||
"_APP_DOMAIN_TARGET_CAA",
|
||||
"_APP_STORAGE_LIMIT",
|
||||
"_APP_COMPUTE_SIZE_LIMIT",
|
||||
"_APP_USAGE_STATS",
|
||||
|
||||
@@ -33889,17 +33889,20 @@
|
||||
"type": "integer",
|
||||
"description": "Document automatically incrementing ID.",
|
||||
"x-example": 1,
|
||||
"format": "int32"
|
||||
"format": "int32",
|
||||
"readOnly": true
|
||||
},
|
||||
"$collectionId": {
|
||||
"type": "string",
|
||||
"description": "Collection ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$databaseId": {
|
||||
"type": "string",
|
||||
"description": "Database ID.",
|
||||
"x-example": "5e5ea5c15117e"
|
||||
"x-example": "5e5ea5c15117e",
|
||||
"readOnly": true
|
||||
},
|
||||
"$createdAt": {
|
||||
"type": "string",
|
||||
|
||||
@@ -473,13 +473,13 @@ return [
|
||||
'frameworks' => [
|
||||
getFramework('FLUTTER', [
|
||||
'providerRootDirectory' => './',
|
||||
'buildCommand' => 'bash build.sh',
|
||||
'buildCommand' => 'bash prepare-env.sh && flutter build web',
|
||||
]),
|
||||
],
|
||||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'starter-for-flutter',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerVersion' => '0.1.*',
|
||||
'providerVersion' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'APPWRITE_PUBLIC_ENDPOINT',
|
||||
|
||||
@@ -151,6 +151,24 @@ return [
|
||||
'question' => '',
|
||||
'filter' => ''
|
||||
],
|
||||
[
|
||||
'name' => '_APP_DOMAIN_TARGET_CAA',
|
||||
'description' => 'A CAA record domain that can be used to validate custom domains. Value should be domain\'s hostname.',
|
||||
'introduction' => '',
|
||||
'default' => '',
|
||||
'required' => false,
|
||||
'question' => '',
|
||||
'filter' => ''
|
||||
],
|
||||
[
|
||||
'name' => '_APP_DNS',
|
||||
'description' => 'DNS server to use for domain validation. Default: 8.8.8.8',
|
||||
'introduction' => '',
|
||||
'default' => '8.8.8.8',
|
||||
'required' => false,
|
||||
'question' => '',
|
||||
'filter' => ''
|
||||
],
|
||||
[
|
||||
'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 inviting them to your project. By default this option is enabled.',
|
||||
|
||||
@@ -71,6 +71,8 @@ App::get('/v1/console/variables')
|
||||
'_APP_DOMAIN_TARGET_CNAME' => System::getEnv('_APP_DOMAIN_TARGET_CNAME'),
|
||||
'_APP_DOMAIN_TARGET_AAAA' => System::getEnv('_APP_DOMAIN_TARGET_AAAA'),
|
||||
'_APP_DOMAIN_TARGET_A' => System::getEnv('_APP_DOMAIN_TARGET_A'),
|
||||
// Combine CAA domain with most common flags and tag (no parameters)
|
||||
'_APP_DOMAIN_TARGET_CAA' => '0 issue "' . System::getEnv('_APP_DOMAIN_TARGET_CAA') . '"',
|
||||
'_APP_STORAGE_LIMIT' => +System::getEnv('_APP_STORAGE_LIMIT'),
|
||||
'_APP_COMPUTE_SIZE_LIMIT' => +System::getEnv('_APP_COMPUTE_SIZE_LIMIT'),
|
||||
'_APP_USAGE_STATS' => System::getEnv('_APP_USAGE_STATS'),
|
||||
|
||||
@@ -2268,6 +2268,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.
|
||||
|
||||
@@ -286,6 +286,19 @@ App::patch('/v1/proxy/rules/:ruleId/verification')
|
||||
throw new Exception(Exception::RULE_VERIFICATION_FAILED);
|
||||
}
|
||||
|
||||
// Ensure CAA won't block certificate issuance
|
||||
if (!empty(System::getEnv('_APP_DOMAIN_TARGET_CAA', ''))) {
|
||||
$validationStart = \microtime(true);
|
||||
$validator = new DNS(System::getEnv('_APP_DOMAIN_TARGET_CAA', ''), DNS::RECORD_CAA);
|
||||
if (!$validator->isValid($domain->get())) {
|
||||
$log->addExtra('dnsTimingCaa', \strval(\microtime(true) - $validationStart));
|
||||
$log->addTag('dnsDomain', $domain->get());
|
||||
$error = $validator->getDescription();
|
||||
$log->addExtra('dnsResponse', \is_array($error) ? \json_encode($error) : \strval($error));
|
||||
throw new Exception(Exception::RULE_VERIFICATION_FAILED, 'Domain verification failed because CAA records do not allow Appwrite\'s certificate issuer.');
|
||||
}
|
||||
}
|
||||
|
||||
$dbForPlatform->updateDocument('rules', $rule->getId(), $rule->setAttribute('status', 'verifying'));
|
||||
|
||||
// Issue a TLS certificate when domain is verified
|
||||
|
||||
@@ -643,15 +643,20 @@ App::get('/v1/users')
|
||||
$cursor->setValue($cursorDocument);
|
||||
}
|
||||
|
||||
$filterQueries = Query::groupByType($queries)['filters'];
|
||||
try {
|
||||
$users = $dbForProject->find('users', $queries);
|
||||
$total = $dbForProject->count('users', $filterQueries, APP_LIMIT_COUNT);
|
||||
} catch (OrderException $e) {
|
||||
throw new Exception(Exception::DATABASE_QUERY_ORDER_NULL, "The order attribute '{$e->getAttribute()}' had a null value. Cursor pagination requires all documents order attribute values are non-null.");
|
||||
} catch (QueryException $e) {
|
||||
throw new Exception(Exception::GENERAL_QUERY_INVALID, $e->getMessage());
|
||||
}
|
||||
$users = [];
|
||||
$total = 0;
|
||||
|
||||
$dbForProject->skipFilters(function () use ($dbForProject, $queries, &$users, &$total) {
|
||||
try {
|
||||
$users = $dbForProject->find('users', $queries);
|
||||
$total = $dbForProject->count('users', $queries, APP_LIMIT_COUNT);
|
||||
} catch (OrderException $e) {
|
||||
throw new Exception(Exception::DATABASE_QUERY_ORDER_NULL, "The order attribute '{$e->getAttribute()}' had a null value. Cursor pagination requires all documents order attribute values are non-null.");
|
||||
} catch (QueryException $e) {
|
||||
throw new Exception(Exception::GENERAL_QUERY_INVALID, $e->getMessage());
|
||||
}
|
||||
}, ['subQueryAuthenticators', 'subQuerySessions', 'subQueryTokens', 'subQueryChallenges', 'subQueryMemberships']);
|
||||
|
||||
$response->dynamic(new Document([
|
||||
'users' => $users,
|
||||
'total' => $total,
|
||||
|
||||
@@ -1038,11 +1038,19 @@ App::init()
|
||||
/**
|
||||
* Deprecation Warning
|
||||
*/
|
||||
/** @var \Appwrite\SDK\Method $sdk */
|
||||
$sdk = $route->getLabel('sdk', false);
|
||||
$deprecationWarning = 'This route is deprecated. See the updated documentation for improved compatibility and migration details.';
|
||||
$sdkItems = is_array($sdk) ? $sdk : (!empty($sdk) ? [$sdk] : []);
|
||||
foreach ($sdkItems as $sdkItem) {
|
||||
if ($sdkItem->isDeprecated()) {
|
||||
if (!empty($sdkItems) && count($sdkItems) > 0) {
|
||||
$allDeprecated = true;
|
||||
foreach ($sdkItems as $sdkItem) {
|
||||
if (!$sdkItem->isDeprecated()) {
|
||||
$allDeprecated = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($allDeprecated) {
|
||||
$warnings[] = $deprecationWarning;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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'])
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user