@oxy.so/core 7.9.1 → 7.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/storeInstaller.js +46 -0
- package/dist/cjs/i18n/compactLocale.js +36 -0
- package/dist/cjs/i18n/compactLocaleValues.generated.js +4 -0
- package/dist/cjs/i18n/index.js +15 -15
- package/dist/cjs/i18n/locales/compact/ar-SA.generated.js +5 -0
- package/dist/cjs/i18n/locales/compact/bn-BD.generated.js +5 -0
- package/dist/cjs/i18n/locales/compact/ca-ES.generated.js +5 -0
- package/dist/cjs/i18n/locales/compact/de-DE.generated.js +5 -0
- package/dist/cjs/i18n/locales/compact/es-ES.generated.js +5 -0
- package/dist/cjs/i18n/locales/compact/fr-FR.generated.js +5 -0
- package/dist/cjs/i18n/locales/compact/hi-IN.generated.js +5 -0
- package/dist/cjs/i18n/locales/compact/id-ID.generated.js +5 -0
- package/dist/cjs/i18n/locales/compact/it-IT.generated.js +5 -0
- package/dist/cjs/i18n/locales/compact/ja-JP.generated.js +5 -0
- package/dist/cjs/i18n/locales/compact/ko-KR.generated.js +5 -0
- package/dist/cjs/i18n/locales/compact/pt-PT.generated.js +5 -0
- package/dist/cjs/i18n/locales/compact/ru-RU.generated.js +5 -0
- package/dist/cjs/i18n/locales/compact/tr-TR.generated.js +5 -0
- package/dist/cjs/i18n/locales/compact/zh-CN.generated.js +5 -0
- package/dist/cjs/index.js +10 -4
- package/dist/esm/api/storeInstaller.js +40 -0
- package/dist/esm/i18n/compactLocale.js +30 -0
- package/dist/esm/i18n/compactLocaleValues.generated.js +2 -0
- package/dist/esm/i18n/index.js +15 -15
- package/dist/esm/i18n/locales/compact/ar-SA.generated.js +3 -0
- package/dist/esm/i18n/locales/compact/bn-BD.generated.js +3 -0
- package/dist/esm/i18n/locales/compact/ca-ES.generated.js +3 -0
- package/dist/esm/i18n/locales/compact/de-DE.generated.js +3 -0
- package/dist/esm/i18n/locales/compact/es-ES.generated.js +3 -0
- package/dist/esm/i18n/locales/compact/fr-FR.generated.js +3 -0
- package/dist/esm/i18n/locales/compact/hi-IN.generated.js +3 -0
- package/dist/esm/i18n/locales/compact/id-ID.generated.js +3 -0
- package/dist/esm/i18n/locales/compact/it-IT.generated.js +3 -0
- package/dist/esm/i18n/locales/compact/ja-JP.generated.js +3 -0
- package/dist/esm/i18n/locales/compact/ko-KR.generated.js +3 -0
- package/dist/esm/i18n/locales/compact/pt-PT.generated.js +3 -0
- package/dist/esm/i18n/locales/compact/ru-RU.generated.js +3 -0
- package/dist/esm/i18n/locales/compact/tr-TR.generated.js +3 -0
- package/dist/esm/i18n/locales/compact/zh-CN.generated.js +3 -0
- package/dist/esm/index.js +3 -0
- package/dist/types/api/storeInstaller.d.ts +155 -0
- package/dist/types/i18n/compactLocale.d.ts +2 -0
- package/dist/types/i18n/compactLocaleValues.generated.d.ts +2 -0
- package/dist/types/i18n/locales/compact/ar-SA.generated.d.ts +3 -0
- package/dist/types/i18n/locales/compact/bn-BD.generated.d.ts +3 -0
- package/dist/types/i18n/locales/compact/ca-ES.generated.d.ts +3 -0
- package/dist/types/i18n/locales/compact/de-DE.generated.d.ts +3 -0
- package/dist/types/i18n/locales/compact/es-ES.generated.d.ts +3 -0
- package/dist/types/i18n/locales/compact/fr-FR.generated.d.ts +3 -0
- package/dist/types/i18n/locales/compact/hi-IN.generated.d.ts +3 -0
- package/dist/types/i18n/locales/compact/id-ID.generated.d.ts +3 -0
- package/dist/types/i18n/locales/compact/it-IT.generated.d.ts +3 -0
- package/dist/types/i18n/locales/compact/ja-JP.generated.d.ts +3 -0
- package/dist/types/i18n/locales/compact/ko-KR.generated.d.ts +3 -0
- package/dist/types/i18n/locales/compact/pt-PT.generated.d.ts +3 -0
- package/dist/types/i18n/locales/compact/ru-RU.generated.d.ts +3 -0
- package/dist/types/i18n/locales/compact/tr-TR.generated.d.ts +3 -0
- package/dist/types/i18n/locales/compact/zh-CN.generated.d.ts +3 -0
- package/dist/types/index.d.ts +2 -0
- package/package.json +5 -3
- package/src/api/storeInstaller.ts +158 -0
- package/src/i18n/README.md +11 -0
- package/src/i18n/compactLocale.ts +32 -0
- package/src/i18n/compactLocaleValues.generated.ts +2 -0
- package/src/i18n/index.ts +15 -15
- package/src/i18n/locales/compact/ar-SA.generated.ts +4 -0
- package/src/i18n/locales/compact/bn-BD.generated.ts +4 -0
- package/src/i18n/locales/compact/ca-ES.generated.ts +4 -0
- package/src/i18n/locales/compact/de-DE.generated.ts +4 -0
- package/src/i18n/locales/compact/es-ES.generated.ts +4 -0
- package/src/i18n/locales/compact/fr-FR.generated.ts +4 -0
- package/src/i18n/locales/compact/hi-IN.generated.ts +4 -0
- package/src/i18n/locales/compact/id-ID.generated.ts +4 -0
- package/src/i18n/locales/compact/it-IT.generated.ts +4 -0
- package/src/i18n/locales/compact/ja-JP.generated.ts +4 -0
- package/src/i18n/locales/compact/ko-KR.generated.ts +4 -0
- package/src/i18n/locales/compact/pt-PT.generated.ts +4 -0
- package/src/i18n/locales/compact/ru-RU.generated.ts +4 -0
- package/src/i18n/locales/compact/tr-TR.generated.ts +4 -0
- package/src/i18n/locales/compact/zh-CN.generated.ts +4 -0
- package/src/index.ts +15 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// Generated by scripts/generateCompactLocales.ts; do not edit.
|
|
4
|
+
const compactLocale_1 = require("../../compactLocale");
|
|
5
|
+
exports.default = (0, compactLocale_1.restoreCompactLocale)({ "signin": { "title": "Giriş yap", "subtitle": "Oxy hesabınızı kullanın", "addAccountTitle": "Başka bir hesap ekle", "addAccountSubtitle": "Başka bir hesapla giriş yapın", "actions": { "continue": "Devam", "back": "Geri" }, "createAccountLink": "Oxy'de yeni misiniz? Hesap oluşturun", "status": { "signingIn": "Giriş yapılıyor…" }, "subtitleToApp": "{{app}} uygulamasına devam etmek için", "orContinueWith": "veya şununla devam edin", "qr": { "caption": "Giriş yapmak için Commons ile tarayın", "renew": "Yeni kod göster" }, "device": { "codeHint": "Telefonunda bu kodun göründüğünü kontrol et" }, "errors": { "rateLimited": "Çok fazla deneme yapıldı. {{seconds}} sn sonra tekrar deneyin.", "invalidCredentials": "Kullanıcı adı, e-posta veya şifre yanlış. Bu e-postayı birden fazla hesap kullanıyorsa kullanıcı adıyla giriş yapın.", "emailAccountsFull": "Bu e-postaya bağlanabilecek hesap sayısı doldu.", "codeInvalid": "Kod yanlış veya süresi dolmuş.", "requestExpired": "Bu girişin süresi doldu. Yeni bir e-posta gönderin.", "secondFactorInvalid": "Kod yanlış. Güncel kodu deneyin.", "originNotAllowed": "Burada giriş yapılamıyor.", "generic": "Bir sorun oluştu. Lütfen tekrar deneyin.", "notConfigured": "Giriş kullanılamıyor", "notConfiguredDescription": "{{app}} henüz giriş için ayarlanmadı. Uygulamanın geliştiricisiyle iletişime geçin.", "failed": "Giriş başlatılamadı", "failedDescription": "Bir sorun oluştu. Lütfen tekrar deneyin." }, "emailAccounts": { "title": "Bir hesap seçin", "description": "{{identifier}} için birden fazla hesap var. Giriş yapmak istediğiniz hesabı seçin." }, "chooser": { "subtitleToApp": "{{app}} uygulamasına devam etmek için", "title": "Bir hesap seçin", "subtitle": "Aşağıdaki hesaplardan biriyle devam edin veya başka bir hesap kullanın.", "useAnother": "Başka bir hesap kullan", "continueAs": "{{name}} olarak devam et" }, "terms": { "before": "Devam ederek şunları kabul etmiş olursunuz:", "termsLink": "Hizmet Şartları", "and": "ve", "privacyLink": "Gizlilik Politikası" }, "noAccount": "Hesabınız yok mu?", "createAccount": "Hesap oluştur", "identifier": { "label": "E-posta veya kullanıcı adı", "placeholder": "ornek@example.com", "required": "E-postanızı veya kullanıcı adınızı girin." }, "checkEmail": { "title": "E-postanızı kontrol edin", "description": "{{identifier}} ile eşleşen bir hesap varsa ona bir kod ve giriş bağlantısı gönderdik.", "codeLabel": "Kod", "codeHint": "E-postadaki kodu yazın veya e-postadaki bağlantıyı bu tarayıcıda açın.", "codeHasLetters": "Kodunuzda harf var mı?", "codeDigitsOnly": "Kodunuz yalnızca rakamlardan mı oluşuyor?", "resend": "Yeni e-posta gönder", "resendIn": "{{seconds}} sn sonra yeni e-posta gönder", "resent": "Yeni bir e-posta gönderdik.", "retryLater": "Zaten birkaç e-posta gönderdik. Birkaç dakika bekleyip tekrar deneyin.", "usePassword": "Bunun yerine şifrenizi kullanın", "differentAccount": "Farklı bir hesap kullan" }, "password": { "title": "Şifrenizi girin", "label": "Şifre", "required": "Şifrenizi girin.", "forgot": "Unuttunuz mu? E-postayla kod alın" }, "secondFactor": { "title": "İki adımlı doğrulama", "description": "Kimlik doğrulama uygulamanızdaki kodu girin.", "backupDescription": "Yedek kodlarınızdan birini girin. Her kod yalnızca bir kez çalışır.", "label": "Doğrulama kodu", "backupLabel": "Yedek kod", "useBackup": "Yedek kod kullan", "useAuthenticator": "Kimlik doğrulama uygulamanızı kullanın" }, "link": { "approvedTitle": "Giriş yaptınız", "approvedDescription": "Giriş isteğinde bulunduğunuz uygulamaya dönün: işlem kendiliğinden devam eder. Bu sekmeyi kapatabilirsiniz.", "otherDeviceTitle": "Bağlantıyı aynı tarayıcıda açın", "otherDeviceDescription": "Bu bağlantı yalnızca giriş isteğinde bulunduğunuz tarayıcıda çalışır. Bağlantıyı orada açın veya e-postadaki kodu uygulamaya yazın.", "invalidTitle": "Bu bağlantı kullanılamıyor", "invalidDescription": "Süresi dolmuş veya zaten kullanılmış. Uygulamadan yeni bir e-posta isteyin veya en son e-postadaki kodu yazın." } }, "signup": { "title": "Hesabınızı oluşturun", "subtitle": "Kullanıcı adınızı seçin. Ardından e-postanızı doğrulayalım.", "createInCommons": "Bunun yerine Commons'ta oluşturun", "backToSignInLink": "Zaten hesabınız var mı? Giriş yapın", "username": { "label": "Kullanıcı adı", "placeholder": "adiniz", "required": "Bir kullanıcı adı seçin.", "taken": "Bu kullanıcı adı alınmış." }, "email": { "title": "E-postanız nedir?", "subtitle": "Onunla giriş yaparsınız: her seferinde size bir kod göndeririz. Başka kimse göremez.", "label": "E-posta", "placeholder": "ornek@example.com", "invalid": "Geçerli bir e-posta adresi girin." }, "commonsSubtitle": "Ya da kimliğinizi Commons'ta oluşturun ve anahtarınızı kendiniz saklayın.", "laterNote": "Daha sonra hesabınızın güvenlik ayarlarından şifre veya kimlik doğrulama uygulaması ekleyebilirsiniz." }, "accountSwitcher": { "loading": "Hesaplar yükleniyor...", "qrHeadline": "Oxy kimliğinizle giriş yapın", "signInWithOxy": "Oxy ile giriş yap", "signUpWithOxy": "Oxy ile kaydol", "getCommons": "Commons'ı indir", "commonsNotInstalled": "Commons yok mu? Oxy kimliğinizle giriş yapmak için uygulamayı indirin.", "showQrAnyway": "Commons başka bir cihazımda var", "switchWhileSignedInAs": "Hesap değiştir, {{name}} olarak giriş yapıldı", "manageOnDevice": "Bu cihazdaki hesapları yönet", "continueWithOxy": "Oxy ile devam et", "havingTrouble": "Sorun mu yaşıyorsunuz?", "progress": { "preparing": "İstek hazırlanıyor", "awaitingApproval": "Onay bekleniyor", "scanWithCommons": "Telefonunuzdaki Commons ile tarayın", "continueInCommons": "Commons'ta devam edin", "checkCommons": "Telefonunuzdaki Commons'ı kontrol edin", "openedInCommons": "Commons'ta açıldı", "confirming": "Kimlik doğrulanıyor", "confirmed": "Kimlik doğrulandı" }, "signInFailures": { "denied": "Giriş Commons'ta reddedildi.", "expired": "Bu giriş isteğinin süresi doldu. Lütfen tekrar deneyin.", "network": "Oxy'ye ulaşılamadı. Bağlantınızı kontrol edip tekrar deneyin.", "notConfigured": "Bu uygulama henüz giriş için ayarlanmadı.", "unsupportedFlow": "Bu giriş burada tamamlanamıyor.", "claimFailed": "Giriş onaylandı ancak tamamlanamadı. Lütfen tekrar deneyin.", "generic": "Giriş başarısız oldu. Lütfen tekrar deneyin." }, "linkOpenFailed": "Bağlantı açılamadı. Lütfen tekrar deneyin." }, "common": { "stepOf": "Adım {{step}}/{{total}}", "actions": { "back": "Geri", "continue": "Devam", "next": "İleri", "getStarted": "Başlayın", "createAccount": "Hesap Oluştur", "signIn": "Giriş Yap", "verify": "Doğrula", "resetPassword": "Şifreyi Sıfırla", "signedOut": "Çıkış yapıldı", "close": "Kapat", "tryAgain": "Tekrar dene" }, "links": { "recoverAccount": "Hesabınızı kurtarın", "signUp": "Kaydol" }, "labels": { "username": "Kullanıcı Adı", "email": "E-posta", "password": "Şifre", "confirmPassword": "Şifreyi Onayla" }, "revoke": "İptal et", "errors": { "signOutAllFailed": "Tüm hesaplardan çıkış yapılırken bir sorun oluştu. Lütfen tekrar deneyin." } }, "notifications": { "title": "Bildirimler", "subtitle": "Anlık, e-posta ve güvenlik bildirimlerini yönetin", "updateError": "Bildirim tercihleri güncellenemedi", "sections": { "channels": "Kanallar", "alerts": "Uyarılar", "marketing": "Pazarlama" }, "items": { "push": { "title": "Anlık bildirimler", "subtitle": "Cihazlarınızda gerçek zamanlı uyarılar" }, "emailDigest": { "title": "E-posta özeti", "subtitle": "Hesap etkinliğinizin dönemsel özeti" }, "securityAlerts": { "title": "Güvenlik uyarıları", "subtitle": "Girişler, kurtarma kodları ve anahtar değişiklikleri" }, "marketingEmails": { "title": "Pazarlama e-postaları", "subtitle": "Ürün haberleri ve ara sıra kampanyalar" } } }, "preferences": { "title": "Tercihler", "subtitle": "Tema, hareket ve bölge ayarları", "sections": { "appearance": "Görünüm", "language": "Dil", "region": "Bölge" }, "theme": { "light": "Açık", "dark": "Koyu", "system": "Sistem varsayılanı" }, "items": { "theme": { "title": "Tema" }, "reduceMotion": { "title": "Hareketi azalt", "subtitle": "Oxy uygulamalarında animasyonları en aza indirin", "systemOn": "Sistem ayarı uygulanıyor: hareketi azaltma açık" }, "language": { "title": "Dil" }, "timezone": { "title": "Saat dilimi", "unknown": "Saat dilimi algılanamadı" }, "about": { "title": "Tercihler hakkında", "subtitle": "Tercihler, giriş yaptığınız tüm Oxy uygulamalarında eşitlenir" } } }, "connectedApps": { "title": "Bağlı uygulamalar", "subtitle": "Üçüncü taraf uygulama erişimini yönetin", "empty": { "title": "Bağlı uygulama yok", "subtitle": "Oxy hesabınızla giriş yapmasına izin verdiğiniz uygulamalar burada görünür" }, "item": { "granted": "{{relative}} izin verildi", "lastUsed": "Son kullanım: {{relative}}" }, "confirm": { "title": "Erişimi iptal et", "message": "{{name}} uygulamasının Oxy hesabınıza erişimi iptal edilsin mi?" }, "toasts": { "revoked": "{{name}} uygulamasının erişimi iptal edildi", "revokeFailed": "Erişim iptal edilemedi" } }, "accountMenu": { "label": "Hesap menüsü", "manage": "Oxy hesabınızı yönetin", "viewProfile": "Profili görüntüle", "addAnother": "Başka bir hesap ekle", "signOutAll": "Tüm hesaplardan çıkış yap", "open": "Hesap menüsü", "openHint": "Hesap menüsünü açar", "openWithUser": "{{name}} için hesap menüsü", "switching": "Hesap değiştiriliyor…", "signOutAccount": "{{name}} hesabından çıkış yap", "greeting": "Merhaba {{name}}!", "switchAccount": "Hesap değiştir", "storage": { "title": "Oxy depolama alanı", "usage": "{{used}} / {{total}} kullanıldı", "used": "Kullanılan", "free": "Boş", "unavailable": "Kullanım ayrıntıları alınamıyor", "upgrade": "Planı yükselt", "manage": "Depolama alanını yönet" }, "data": "Oxy'deki verileriniz", "settings": "Oxy ayarları", "help": "Yardım ve geri bildirim", "signOut": "Çıkış yap", "privacy": "Gizlilik Politikası", "terms": "Hizmet Şartları" }, "emailCode": { "title": "E-postanızı kontrol edin", "sentTo": "{{email}} adresine 6 haneli bir kod gönderdik.", "label": "Kod", "resend": "Yeni kod gönder", "resent": "Yeni bir kod gönderdik.", "changeEmail": "Başka bir e-posta kullan", "errors": { "codeInvalid": "Kod yanlış veya süresi dolmuş.", "tooManyAttempts": "Çok fazla yanlış kod girildi. Yeni bir kod isteyin.", "expired": "Bu işlem çok uzun sürdü. Baştan başlayın.", "unavailable": "Oxy şu anda e-posta gönderemiyor. Daha sonra tekrar deneyin.", "rateLimited": "Çok fazla kod istendi. Daha sonra tekrar deneyin." } }, "deleteAccount": { "keyless": { "subtitle": "@{{username}} ve içindeki her şey kalıcı olarak silinir. Kullanıcı adınızı yazın, ardından size e-postayla göndereceğimiz kodla onaylayın.", "action": "Hesabı sil", "done": "Hesabınız silindi.", "doneDescription": "Oturumunuz kapatıldı.", "keyed": "Bu hesap Commons kullanıyor: hesabın anahtarıyla Oxy Commons'ta Ayarlar > Hesabı sil bölümünden silin." }, "handoff": { "elsewhereMessage": "Hesabınızı silmek için kimlik anahtarınız gerekiyor ve bu anahtar bu cihazda değil. Anahtarın bulunduğu cihazda Oxy Commons'ı açın ve Ayarlar > Hesabı sil bölümüne gidin." } }, "linkCommons": { "title": "Commons'ı bağla", "subtitle": "Anahtarınızı kendiniz saklayın: Commons'ı bağladığınızda bu hesap yalnızca size ait olur. Hesabın e-postası silinir ve hesaba yeniden erişmenin yolu Commons'taki kurtarma ifadeniz olur.", "scan": "Telefonunuzda Commons'ı açın, “Web'de bir Oxy hesabım var” seçeneğini seçin ve bu kodu tarayın.", "waiting": "Commons bekleniyor…", "compareTitle": "Kodu kontrol edin", "compare": "Commons aynı kodu gösterir. Göstermiyorsa iptal edin.", "confirm": "Evet, Commons'ı bağla", "cancel": "İptal", "doneTitle": "Commons bağlandı", "done": "Bu hesabın anahtarı artık sizde. E-postası silindi: hesaba yeniden erişmenin yolu Commons'taki kurtarma ifadeniz.", "already": "Bu hesap zaten Commons kullanıyor.", "expired": "Bu kodun süresi doldu.", "renew": "Yeni kod göster", "failed": "Commons bağlanamadı. Tekrar deneyin.", "confirmTitle": "Bağlantıyı onaylayın", "confirmDescription": "Bitirmek için size e-postayla gönderdiğimiz kodla siz olduğunuzu onaylayın.", "confirmPasswordDescription": "Bitirmek için şifrenizle siz olduğunuzu onaylayın.", "row": "Commons ile anahtarınızı kendiniz saklayın" }, "reauth": { "title": "Siz olduğunuzu onaylayın", "emailDescription": "Bu değişikliği onaylamak için e-postanıza bir kod göndereceğiz.", "sendCode": "Kod gönder", "codeSent": "E-postanıza 6 haneli bir kod gönderdik.", "codeLabel": "E-postadaki kod", "passwordLabel": "Mevcut şifre", "usePassword": "Bunun yerine şifrenizi kullanın", "useEmail": "Bunun yerine e-postayla kod alın", "errors": { "invalid": "Olmadı. Yazdığınızı kontrol edip tekrar deneyin.", "totpRequired": "Kimlik doğrulama uygulamanızdaki kodu da girin." } }, "signInSecurity": { "title": "Giriş ve güvenlik", "subtitle": "E-posta, şifre, kimlik doğrulama uygulaması ve oturum açtığınız yerler", "methodsTitle": "Giriş yöntemleri", "notPersonal": "Yalnızca kişisel hesaplar e-posta, şifre veya kimlik doğrulama uygulamasıyla giriş yapabilir.", "loadFailed": "Bu hesabın giriş yöntemleri yüklenemedi.", "retry": "Tekrar dene", "noEmailWarning": "Bu hesapta e-posta yok. Yalnızca şifrenizle giriş yaparsınız; şifrenizi unutursanız hesabı geri almanın bir yolu yoktur.", "status": { "on": "Açık", "off": "Kapalı" }, "commons": { "title": [1] }, "errors": { "lastSignInMethod": "Bu, tek giriş yönteminiz. Önce başka bir yöntem ekleyin.", "passwordRequired": "Önce bir şifre belirleyin ve onunla onaylayın.", "emailUnchanged": "Bu zaten sizin e-postanız." }, "email": { "title": "E-posta", "none": "E-posta yok", "description": "Giriş kodları, giriş bağlantıları ve güvenlik bildirimleri bu adrese gönderilir.", "noneDescription": "Kod veya bağlantıyla giriş yapmak ve şifrenizi unutursanız hesabınızı geri almak için bir e-posta ekleyin.", "change": "E-postayı değiştir", "add": "E-posta ekle", "remove": "E-postayı kaldır", "removeNeedsPassword": "E-postanızı kaldırmak için önce bir şifre belirleyin: tek giriş yönteminiz o olacak.", "newLabel": "Yeni e-posta adresi", "newDescription": "Size ait olduğunu doğrulamak için yeni adrese bir kod göndereceğiz.", "invalid": "Geçerli bir e-posta adresi girin.", "sendCode": "Kod gönder", "confirmTitle": "Yeni e-postayı onaylayın", "confirmDescription": "{{email}} adresine gönderdiğimiz kodu girin, ardından siz olduğunuzu onaylayın.", "codeLabel": "Yeni e-postaya gönderilen kod", "save": "E-postayı kaydet", "saved": "E-postanız güncellendi. Diğer cihazlarda oturum kapatıldı.", "removeTitle": "E-postanızı kaldırın", "removeDescription": "Yalnızca şifrenizle giriş yapacaksınız. Şifrenizi unutursanız hesabı geri almanın bir yolu yok. Şifrenizle onaylayın.", "removed": "E-postanız kaldırıldı. Diğer cihazlarda oturum kapatıldı." }, "password": { "title": "Şifre", "setTitle": "Şifre belirleyin", "changeTitle": "Şifrenizi değiştirin", "description": "E-postayla gelen kod yerine şifrenizle giriş yapın. En az {{min}} karakter kullanın.", "newLabel": "Yeni şifre", "repeatLabel": "Şifreyi tekrarlayın", "tooShort": "En az {{min}} karakter kullanın.", "mismatch": "Şifreler eşleşmiyor.", "signOutOthers": "Diğer tüm cihazlarda oturumu kapat", "save": "Şifreyi kaydet", "saved": "Şifreniz kaydedildi.", "row": "İsteğe bağlı: şifreyle giriş yapın", "remove": "Şifreyi kaldır", "removeTitle": "Şifrenizi kaldırın", "removeDescription": "E-postanıza gönderilen kod veya bağlantıyla giriş yapacaksınız.", "removed": "Şifreniz kaldırıldı. Diğer cihazlarda oturum kapatıldı." }, "totp": { "title": "Kimlik doğrulama uygulaması", "description": "Oxy, e-posta kodunuzdan veya şifrenizden sonra Google Authenticator ya da 1Password gibi bir uygulamadan da kod ister.", "setUp": "Kur", "scan": "Bu QR kodunu kimlik doğrulama uygulamanızla tarayın veya kurulum anahtarını girin.", "secretLabel": "Kurulum anahtarı", "codeLabel": "Uygulamadaki kod", "enable": "Aç", "enabled": "Kimlik doğrulama uygulaması açık.", "disable": "Kimlik doğrulama uygulamasını kapat", "disabled": "Kimlik doğrulama uygulaması kapalı.", "on": "Açık", "off": "Kapalı", "backupTitle": "Yedek kodlarınızı kaydedin", "backupDescription": "Telefonunuzu kaybederseniz her kodla bir kez giriş yapabilirsiniz. Kodları güvenli bir yerde saklayın: tekrar gösterilmeyecekler.", "copy": "Kodları kopyala", "copied": "Yedek kodlar kopyalandı.", "savedThem": "Kaydettim", "regenerate": "Yeni yedek kodlar al", "regenerateDescription": "Eski yedek kodlarınız artık çalışmaz.", "remaining": "{{count}} yedek kod kaldı", "row": "Giriş yaparken ikinci bir adım", "onWithCodes": "Açık · {{count}} yedek kod kaldı" } }, "fileManagement": { "deleteFile": "Dosyayı Sil", "confirm": "Onayla", "retry": "Tekrar dene", "loadError": { "description": "Bir sorun oluştu. Bağlantınızı kontrol edip tekrar deneyin." }, "moveToTrash": "Çöp kutusuna taşı", "moveToTrashCount": "Çöp kutusuna taşı ({{count}})", "appAccess": { "title": "Erişimi olan uygulamalar", "description": "Bu uygulamalar bu dosyayı kendi başlarına açabilir. Bu erişimi kaldırmak için uygulamanın iznini iptal edin.", "empty": "Hiçbir uygulama bu dosyayı kendi başına açamıyor.", "loadError": "Bu dosyayı açabilen uygulamalar yüklenemedi", "via": { "upload": "Bu dosyayı sizin için depoladı", "link": "Siz paylaştınız" }, "revoke": "İptal et", "confirm": { "title": "{{name}} için erişim iptal edilsin mi?", "message": "{{name}} artık bu dosyayı açamayacak ve başlattığı oynatmalar hemen duracak." }, "toasts": { "revoked": "{{name}} artık bu dosyayı açamaz", "revokeFailed": "{{name}} için erişim iptal edilemedi" }, "a11y": { "revoke": "{{name}} için bu dosyaya erişimi iptal et" } }, "trashView": { "title": "Çöp kutusu", "subtitle": "Dosyaları geri yükleyin veya kalıcı olarak silin", "notice": "Dosyalar siz geri yükleyene veya silene kadar Çöp kutusunda kalır ve depolama alanınızda yer kaplamaya devam eder.", "emptyTitle": "Çöp kutusu boş", "emptyDescription": "Çöp kutusuna taşıdığınız dosyalar burada görünür. Bunları geri yükleyebilir veya kalıcı olarak silebilirsiniz.", "trashedOn": "{{date}} tarihinde çöp kutusuna taşındı", "deleteForever": "Kalıcı olarak sil", "loadError": "Çöp kutunuz yüklenemedi", "a11y": { "restore": "{{name}} öğesini geri yükle", "deleteForever": "{{name}} öğesini kalıcı olarak sil" } }, "a11y": { "moveToTrash": "{{name}} öğesini çöp kutusuna taşı", "deleteFile": "{{name}} öğesini sil", "openTrash": "Çöp kutusunu aç" }, "toasts": { "movedToTrash": "Çöp kutusuna taşındı. Çöp kutusundan geri yükleyebilirsiniz.", "bulkMovedToTrash": "{{count}} dosya çöp kutusuna taşındı", "moveToTrashFailed": "Dosya çöp kutusuna taşınamadı", "restored": "Dosya geri yüklendi", "notInTrash": "Bu dosya artık çöp kutusunda değil.", "restoreFailed": "Dosya geri yüklenemedi", "deletedForever": "Dosya kalıcı olarak silindi", "deleteSuccess": "Dosya başarıyla silindi", "deleteFailed": "Dosya silinemedi", "fileNotFound": "Dosya bulunamadı. Zaten silinmiş olabilir.", "noPermission": "Bu dosyayı silme izniniz yok.", "bulkDeleteSuccess": "{{count}} dosya başarıyla silindi", "bulkDeleteFailed": "{{count}} dosya silinemedi", "bulkDeleteError": "Dosyalar silinemedi" }, "confirms": { "deleteFile": "\"{{filename}}\" dosyasını silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", "moveToTrash": "\"{{filename}}\" çöp kutusuna taşınsın mı? Artık hiçbir yerde gösterilmez ve Çöp kutusundan geri yükleyebilirsiniz.", "moveFilesToTrash": "{{count}} dosya çöp kutusuna taşınsın mı? Artık hiçbir yerde gösterilmezler ve Çöp kutusundan geri yükleyebilirsiniz.", "deleteForever": "\"{{filename}}\" kalıcı olarak silinsin mi? Bu işlem geri alınamaz.", "deleteForeverInUse": "\"{{filename}}\" uygulamalarınızda hâlâ {{count}} yerde kullanılıyor. Silerseniz oradan da kaldırılır. Kalıcı olarak silinsin mi?" } }, "follow": { "pending": "İstek gönderildi", "disabled": "Burada kapalı", "named": "{{label}}: {{name}}", "verbs": { "follow": { "idle": "Takip et", "active": "Takip ediliyor", "everywhere": "Her yerde takibi bırak", "undo": "Bu hesabı takip etmeyi bırakır", "undoNamed": "{{name}} için takibi bırakır", "checking": "Takip durumu kontrol ediliyor", "checkingNamed": "{{name}} için takip durumu kontrol ediliyor" }, "subscribe": { "idle": "Abone ol", "active": "Abone olundu", "everywhere": "Her yerde aboneliği iptal et", "undo": "Aboneliği iptal eder", "undoNamed": "{{name}} aboneliğini iptal eder", "checking": "Abonelik durumu kontrol ediliyor", "checkingNamed": "{{name}} için abonelik durumu kontrol ediliyor" }, "join": { "idle": "Katıl", "active": "Katıldınız", "everywhere": "Her yerde ayrıl", "undo": "Ayrılır", "undoNamed": "{{name}} üyeliğini bırakır", "checking": "Üyelik kontrol ediliyor", "checkingNamed": "{{name}} için üyelik durumu kontrol ediliyor" }, "watch": { "idle": "İzle", "active": "İzleniyor", "everywhere": "Her yerde izlemeyi bırak", "undo": "İzlemeyi bırakır", "undoNamed": "{{name}} için izlemeyi bırakır", "checking": "İzleme durumu kontrol ediliyor", "checkingNamed": "{{name}} için izleme durumu kontrol ediliyor" } }, "all": { "idle": "Tümünü takip et", "hint": "{{count}} hesabın tümünü takip eder", "hintOne": "{{count}} hesabı takip eder", "undoHint": "{{count}} hesabın tümünü takip etmeyi bırakır", "undoHintOne": "{{count}} hesabı takip etmeyi bırakır" }, "menu": { "forDuration": "{{duration}} boyunca {{label}}", "showIn": "{{app}} içinde göster", "hideIn": "{{app}} içinde gösterme", "thisApp": "bu uygulama", "options": "{{label}} seçenekleri", "optionsHint": "Daha fazla seçenek açar" }, "durations": { "day": "24 saat", "threeDays": "72 saat", "week": "bir hafta" }, "errors": { "update": "Takip durumu güncellenemedi", "read": "Takip durumu kontrol edilemedi", "mode": "Bu takip için uygulamanın ayarı değiştirilemedi", "offline": "Çevrimdışısınız. Bağlantınızı kontrol edip tekrar deneyin.", "signedOut": "Devam etmek için tekrar giriş yapın", "forbidden": "Bu uygulamanın bunu yapma izni yok", "notFound": "Bu artık kullanılamıyor", "rateLimited": "Çok fazla deneme yapıldı. Biraz sonra tekrar deneyin." } }, "accounts": { "accountCategory": { "news": "Haberler", "politics": "Siyaset ve politika", "business": "İş dünyası", "startup": "Girişimler ve girişimcilik", "finance": "Finans ve yatırım", "crypto": "Kripto ve web3", "marketplace": "Pazar yeri ve ilanlar", "retail": "Perakende ve e-ticaret", "real_estate": "Gayrimenkul", "agency": "Emlak ofisi", "landlord": "Ev sahipliği ve mülk yönetimi", "cooperative": "Konut kooperatifi", "architecture": "Mimarlık ve inşaat", "technology": "Teknoloji", "software": "Yazılım ve geliştirme", "ai": "Yapay zekâ ve makine öğrenimi", "security": "Güvenlik ve gizlilik", "automation": "Otomasyon ve araçlar", "science": "Bilim ve araştırma", "education": "Eğitim ve öğretim", "books": "Kitaplar ve yazarlık", "health": "Sağlık ve tıp", "fitness": "Fitness ve sağlıklı yaşam", "sports": "Spor", "gaming": "Oyun ve e-spor", "music": "Müzik", "film": "Film ve TV", "podcast": "Podcast ve ses", "art": "Sanat ve tasarım", "photography": "Fotoğrafçılık", "comedy": "Komedi", "food": "Yeme ve içme", "travel": "Seyahat ve mekânlar", "fashion": "Moda ve güzellik", "home_garden": "Ev ve bahçe", "diy": "Kendin yap ve üretim", "automotive": "Otomobil ve sürüş", "animals": "Hayvanlar ve evcil hayvanlar", "family": "Aile ve ebeveynlik", "nonprofit": "Kâr amacı gütmeyen ve yardım kuruluşları", "government": "Devlet ve kamu sektörü", "community": "Yerel topluluk", "activism": "Aktivizm ve savunuculuk", "environment": "Çevre ve sürdürülebilirlik", "religion": "Din ve maneviyat", "other": "Diğer" }, "members": { "title": "Üyeler" }, "settings": { "title": "Hesap ayarları", "subtitle": "Bu hesabın profilini, üyelerini ve erişimini yönetin.", "save": "Değişiklikleri kaydet", "displayName": { "label": "Görünen ad", "invalidChars": "Yalnızca harf, boşluk, kesme işareti ve ad ayırıcıları kullanın", "invalidTitle": "< veya > içermeyen düz metin kullanın (en fazla 300 karakter)" }, "bio": { "label": "Biyografi (isteğe bağlı)" }, "picture": { "change": "Resmi değiştir" }, "categories": { "title": "Kategoriler", "footer": "İlk kategori, profilde gösterilen ana kategoridir. En fazla {{max}}.", "primary": "Ana", "makePrimary": "Ana yap", "remove": "Kaldır: {{category}}", "add": "Kategori ekle", "atCap": "En fazla {{max}}. Başka bir tane eklemek için birini kaldırın.", "unavailable": "Kullanılamayan kategori" }, "sections": { "access": "Erişim", "dangerZone": "Tehlikeli bölge" }, "members": { "subtitle": "Kişileri davet edin ve rolleri yönetin" }, "archive": { "title": "Hesabı arşivle", "subtitle": "Bu hesabı devre dışı bırakın", "confirmTitle": "Hesabı arşivle", "confirmDescription": "Bu hesap arşivlensin mi? Hesap devre dışı bırakılacak ve üyeleri erişimini kaybedecek." }, "errors": { "missingAccount": "Hesap seçilmedi." }, "toasts": { "saved": "Hesap güncellendi", "saveFailed": "Hesap güncellenemedi", "archived": "Hesap arşivlendi", "archiveFailed": "Hesap arşivlenemedi" } } } });
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// Generated by scripts/generateCompactLocales.ts; do not edit.
|
|
4
|
+
const compactLocale_1 = require("../../compactLocale");
|
|
5
|
+
exports.default = (0, compactLocale_1.restoreCompactLocale)({ "signin": { "title": "登录", "subtitle": "使用你的 Oxy 账号", "addAccountTitle": "添加其他账号", "addAccountSubtitle": "使用另一个账户登录", "actions": { "continue": "继续", "back": "返回" }, "createAccountLink": "初次使用 Oxy?创建账户", "status": { "signingIn": "正在登录…" }, "subtitleToApp": "以继续前往 {{app}}", "orContinueWith": "或使用以下方式继续", "qr": { "caption": "使用 Commons 扫码登录", "renew": "显示新的二维码" }, "device": { "codeHint": "请确认手机上显示的是这个代码" }, "errors": { "rateLimited": "尝试次数过多。请在 {{seconds}} 秒后重试。", "invalidCredentials": "用户名、邮箱或密码不正确。 如果多个账号使用此邮箱,请用用户名登录。", "emailAccountsFull": "此邮箱的账号数量已达上限。", "codeInvalid": "验证码不正确或已过期。", "requestExpired": "此次登录已过期。请重新发送邮件。", "secondFactorInvalid": "验证码不正确。请使用当前的验证码。", "originNotAllowed": "此处无法登录。", "generic": "出了点问题,请重试。", "notConfigured": "无法登录", "notConfiguredDescription": "{{app}} 尚未配置登录功能。请联系该应用的开发者。", "failed": "无法开始登录", "failedDescription": "出了点问题,请重试。" }, "emailAccounts": { "title": "选择账号", "description": "{{identifier}} 有多个账号。请选择要登录的账号。" }, "chooser": { "subtitleToApp": "以继续前往 {{app}}", "title": "选择账户", "subtitle": "使用下方的账户继续,或使用其他账户。", "useAnother": "使用其他账户", "continueAs": "以 {{name}} 的身份继续" }, "terms": { "before": "继续即表示你同意我们的", "termsLink": "服务条款", "and": "和", "privacyLink": "隐私政策" }, "noAccount": "还没有账号?", "createAccount": "创建账号", "identifier": { "label": "邮箱或用户名", "placeholder": [2], "required": "请输入你的邮箱或用户名。" }, "checkEmail": { "title": "查看你的邮箱", "description": "如果有与 {{identifier}} 匹配的账户,我们已向其发送验证码和登录链接。", "codeLabel": "验证码", "codeHint": "输入邮件中的验证码,或在此浏览器中打开邮件里的链接。", "codeHasLetters": "验证码里有字母吗?", "codeDigitsOnly": "验证码只有数字吗?", "resend": "重新发送邮件", "resendIn": "{{seconds}} 秒后可重新发送邮件", "resent": "我们已发送新邮件。", "retryLater": "我们已发送了多封邮件。请等几分钟后再试。", "usePassword": "改用密码", "differentAccount": "使用其他账户" }, "password": { "title": "输入你的密码", "label": "密码", "required": "请输入你的密码。", "forgot": "忘记密码?通过邮件获取验证码" }, "secondFactor": { "title": "两步验证", "description": "输入身份验证器应用中的验证码。", "backupDescription": "输入一个备用验证码。每个只能使用一次。", "label": "身份验证器验证码", "backupLabel": "备用验证码", "useBackup": "使用备用验证码", "useAuthenticator": "使用身份验证器应用" }, "link": { "approvedTitle": "你已登录", "approvedDescription": "返回你请求登录的应用,它会自动继续。你可以关闭此标签页。", "otherDeviceTitle": "请在同一浏览器中打开链接", "otherDeviceDescription": "此链接只能在你请求登录的浏览器中使用。请在那里打开,或在应用中输入邮件里的验证码。", "invalidTitle": "此链接无法使用", "invalidDescription": "链接已过期或已被使用。请在应用中重新获取邮件,或输入最新一封邮件中的验证码。" } }, "signup": { "title": "创建你的账户", "subtitle": "选择你的用户名,然后我们确认你的邮箱。", "createInCommons": "改为在 Commons 中创建", "backToSignInLink": "已有账户?登录", "username": { "label": "用户名", "placeholder": [43], "required": "请选择用户名。", "taken": "该用户名已被占用。" }, "email": { "title": "你的邮箱是什么?", "subtitle": "你将用它登录:每次我们都会发送一个验证码。其他人看不到它。", "label": "邮箱", "placeholder": [2], "invalid": "请输入有效的邮箱地址。" }, "commonsSubtitle": "或者在 Commons 中创建你的身份,自己保管密钥。", "laterNote": "你之后可以在账户的安全设置中添加密码或身份验证器应用。" }, "accountSwitcher": { "loading": "正在加载账户...", "qrHeadline": "使用您的 Oxy 身份登录", "signInWithOxy": "使用 Oxy 登录", "signUpWithOxy": "使用 Oxy 注册", "getCommons": "获取 Commons", "commonsNotInstalled": "没有 Commons?获取应用以使用您的 Oxy ID 登录。", "showQrAnyway": "我在另一台设备上有 Commons", "switchWhileSignedInAs": "切换账号,当前登录为 {{name}}", "manageOnDevice": "管理此设备上的账号", "continueWithOxy": "使用 Oxy 继续", "havingTrouble": "遇到问题?", "progress": { "preparing": "正在准备请求", "awaitingApproval": "正在等待批准", "scanWithCommons": "请用手机上的 Commons 扫描", "continueInCommons": "请在 Commons 中继续", "checkCommons": "请查看手机上的 Commons", "openedInCommons": "已在 Commons 中打开", "confirming": "正在确认身份", "confirmed": "身份已确认" }, "signInFailures": { "denied": "登录请求已在 Commons 中被拒绝。", "expired": "登录请求已过期,请重试。", "network": "无法连接到 Oxy。请检查网络连接后重试。", "notConfigured": "此应用尚未设置登录。", "unsupportedFlow": "此登录无法在这里完成。", "claimFailed": "登录已获批准,但未能完成。请重试。", "generic": "登录失败,请重试。" }, "linkOpenFailed": "无法打开链接,请重试。" }, "common": { "stepOf": "第 {{step}} 步,共 {{total}} 步", "actions": { "back": "返回", "continue": "继续", "next": "下一步", "getStarted": "开始", "createAccount": "创建账户", "signIn": "登录", "verify": "验证", "resetPassword": "重置密码", "signedOut": "已退出", "close": "关闭", "tryAgain": "重试" }, "links": { "recoverAccount": "恢复您的账户", "signUp": "注册" }, "labels": { "username": "用户名", "email": "电子邮件", "password": "密码", "confirmPassword": "确认密码" }, "revoke": [32], "errors": { "signOutAllFailed": "退出所有账户时出现问题。请重试。" } }, "notifications": { "title": [23], "subtitle": [18], "updateError": [14], "sections": { "channels": [9], "alerts": [6], "marketing": [4] }, "items": { "push": { "title": [28], "subtitle": [29] }, "emailDigest": { "title": [12], "subtitle": [24] }, "securityAlerts": { "title": [36], "subtitle": [37] }, "marketingEmails": { "title": [20], "subtitle": [27] } } }, "preferences": { "title": [25], "subtitle": [40], "sections": { "appearance": [7], "language": [0], "region": [31] }, "theme": { "light": [17], "dark": [11], "system": [38] }, "items": { "theme": { "title": [39] }, "reduceMotion": { "title": [30], "subtitle": [21], "systemOn": [15] }, "language": { "title": [0] }, "timezone": { "title": [41], "unknown": [42] }, "about": { "title": [5], "subtitle": [26] } } }, "connectedApps": { "title": [10], "subtitle": [19], "empty": { "title": [22], "subtitle": [8] }, "item": { "granted": "已于 {{relative}} 授权", "lastUsed": [16] }, "confirm": { "title": [33], "message": [34] }, "toasts": { "revoked": [35], "revokeFailed": [13] } }, "accountMenu": { "label": "账户菜单", "manage": "管理您的 Oxy 账户", "viewProfile": "查看个人资料", "addAnother": "添加其他账户", "signOutAll": "退出所有账户", "open": "账户菜单", "openHint": "打开账户菜单", "openWithUser": "{{name}} 的账户菜单", "switching": "正在切换账户…", "signOutAccount": "退出 {{name}}", "greeting": "你好,{{name}}!", "switchAccount": "切换账号", "storage": { "title": "Oxy 存储", "usage": "已使用 {{used}} / {{total}}", "used": "已用", "free": "可用", "unavailable": "无法获取用量详情", "upgrade": "升级方案", "manage": "管理存储" }, "data": "你在 Oxy 中的数据", "settings": "Oxy 设置", "help": "帮助与反馈", "signOut": "退出登录", "privacy": "隐私政策", "terms": "服务条款" }, "emailCode": { "title": "查看你的邮箱", "sentTo": "我们已向 {{email}} 发送了 6 位验证码。", "label": "验证码", "resend": "发送新验证码", "resent": "我们已发送新验证码。", "changeEmail": "使用其他邮箱", "errors": { "codeInvalid": "验证码不正确或已过期。", "tooManyAttempts": "错误次数过多,请重新获取验证码。", "expired": "耗时过长,请重新开始。", "unavailable": "Oxy 暂时无法发送邮件,请稍后再试。", "rateLimited": "验证码请求过多,请稍后再试。" } }, "deleteAccount": { "keyless": { "subtitle": "@{{username}} 及其中的一切将被永久删除。请输入你的用户名,然后用我们发到你邮箱的验证码确认。", "action": "删除账户", "done": "你的账户已删除。", "doneDescription": "你已退出登录。", "keyed": "此账户使用 Commons:请在 Oxy Commons 的“设置 > 删除账户”中用其密钥删除。" }, "handoff": { "elsewhereMessage": "删除账户需要你的身份密钥,而它不在此设备上。请在保存密钥的设备上打开 Oxy Commons,前往“设置 > 删除账户”。" } }, "linkCommons": { "title": "关联 Commons", "subtitle": "自己保管密钥:关联 Commons 后,此账户只属于你。它的邮箱会被删除,今后用 Commons 中的恢复短语找回账户。", "scan": "在手机上打开 Commons,选择“我在网页上有 Oxy 账户”,然后扫描此码。", "waiting": "正在等待 Commons…", "compareTitle": "核对代码", "compare": "Commons 会显示相同的代码。如果不同,请取消。", "confirm": "是的,关联 Commons", "cancel": "取消", "doneTitle": "Commons 已关联", "done": "此账户现在由你自己保管。它的邮箱已删除:今后用 Commons 中的恢复短语找回账户。", "already": "此账户已在使用 Commons。", "expired": "此代码已过期。", "renew": "显示新代码", "failed": "无法关联 Commons,请重试。", "confirmTitle": "确认关联", "confirmDescription": "最后,请用我们发到你邮箱的验证码确认是你本人。", "confirmPasswordDescription": "最后,请用你的密码确认是你本人。", "row": "用 Commons 自己保管密钥" }, "reauth": { "title": "确认是你本人", "emailDescription": "我们会向你的邮箱发送验证码,以确认此项更改。", "sendCode": "发送验证码", "codeSent": "我们已向你的邮箱发送了 6 位验证码。", "codeLabel": "邮件中的验证码", "passwordLabel": "当前密码", "usePassword": "改用密码", "useEmail": "改为通过邮件获取验证码", "errors": { "invalid": "验证失败。请检查输入内容后重试。", "totpRequired": "还需输入身份验证器应用中的验证码。" } }, "signInSecurity": { "title": "登录与安全", "subtitle": "邮箱、密码、身份验证器应用以及你的登录位置", "methodsTitle": "登录方式", "notPersonal": "只有个人账户可以使用邮箱、密码或身份验证器应用登录。", "loadFailed": "无法加载此账户的登录方式。", "retry": "重试", "noEmailWarning": "此账户没有邮箱。你只能用密码登录,如果忘记密码,将无法找回账户。", "status": { "on": "已开启", "off": "已关闭" }, "commons": { "title": [1] }, "errors": { "lastSignInMethod": "这是你唯一的登录方式。请先添加另一种方式。", "passwordRequired": "请先设置密码,并用它进行确认。", "emailUnchanged": "这已经是你的邮箱。" }, "email": { "title": "邮箱", "none": "没有邮箱", "description": "登录验证码、登录链接和安全通知都会发送到此地址。", "noneDescription": "添加邮箱后,你可以用验证码或链接登录,并在忘记密码时找回账户。", "change": "更改邮箱", "add": "添加邮箱", "remove": "移除邮箱", "removeNeedsPassword": "要移除邮箱,请先设置密码:它将成为你唯一的登录方式。", "newLabel": "新邮箱地址", "newDescription": "我们会向新地址发送验证码,以确认它属于你。", "invalid": "请输入有效的邮箱地址。", "sendCode": "发送验证码", "confirmTitle": "确认新邮箱", "confirmDescription": "输入我们发送到 {{email}} 的验证码,然后确认是你本人。", "codeLabel": "发送到新邮箱的验证码", "save": "保存邮箱", "saved": "你的邮箱已更新。其他设备已退出登录。", "removeTitle": "移除你的邮箱", "removeDescription": "你将只能用密码登录。如果忘记密码,将无法找回账户。请用密码确认。", "removed": "你的邮箱已移除。其他设备已退出登录。" }, "password": { "title": "密码", "setTitle": "设置密码", "changeTitle": "更改密码", "description": "用密码登录,而不是通过邮件验证码。至少使用 {{min}} 个字符。", "newLabel": "新密码", "repeatLabel": "再次输入密码", "tooShort": "至少使用 {{min}} 个字符。", "mismatch": "两次输入的密码不一致。", "signOutOthers": "在其他所有地方退出登录", "save": "保存密码", "saved": "你的密码已保存。", "row": "可选:使用密码登录", "remove": "移除密码", "removeTitle": "移除你的密码", "removeDescription": "你将使用发送到邮箱的验证码或链接登录。", "removed": "你的密码已移除。其他设备已退出登录。" }, "totp": { "title": "身份验证器应用", "description": "在邮件验证码或密码之后,Oxy 还会要求输入来自 Google Authenticator 或 1Password 等应用的验证码。", "setUp": "设置", "scan": "用你的身份验证器应用扫描此二维码,或输入设置密钥。", "secretLabel": "设置密钥", "codeLabel": "应用中的验证码", "enable": "开启", "enabled": "身份验证器应用已开启。", "disable": "关闭身份验证器应用", "disabled": "身份验证器应用已关闭。", "on": "已开启", "off": "已关闭", "backupTitle": "保存你的备用验证码", "backupDescription": "如果你丢失了手机,每个验证码可让你登录一次。请妥善保管:它们不会再次显示。", "copy": "复制验证码", "copied": "备用验证码已复制。", "savedThem": "我已保存", "regenerate": "获取新的备用验证码", "regenerateDescription": "你以前的备用验证码将失效。", "remaining": "剩余 {{count}} 个备用验证码", "row": "登录时的第二步验证", "onWithCodes": "已开启 · 剩余 {{count}} 个备用验证码" } }, "fileManagement": { "deleteFile": "删除文件", "confirm": "确认", "retry": "重试", "loadError": { "description": "出了点问题。请检查网络连接后重试。" }, "moveToTrash": "移到回收站", "moveToTrashCount": "移到回收站({{count}})", "appAccess": { "title": "有访问权限的应用", "description": "这些应用可以自行打开此文件。撤销某个应用的访问权限即可收回。", "empty": "没有应用可以自行打开此文件。", "loadError": "无法加载可以打开此文件的应用", "via": { "upload": "为你保存了此文件", "link": "由你分享" }, "revoke": "撤销", "confirm": { "title": "撤销 {{name}} 的访问权限?", "message": "{{name}} 将无法再打开此文件,它启动的任何播放也会立即停止。" }, "toasts": { "revoked": "{{name}} 已无法打开此文件", "revokeFailed": "无法撤销 {{name}} 的访问权限" }, "a11y": { "revoke": "撤销 {{name}} 对此文件的访问权限" } }, "trashView": { "title": "回收站", "subtitle": "恢复文件或将其永久删除", "notice": "文件会一直留在回收站中,直到你恢复或删除它们,并且仍会占用你的存储空间。", "emptyTitle": "回收站是空的", "emptyDescription": "你移到回收站的文件会显示在这里。你可以恢复它们,或将其永久删除。", "trashedOn": "于 {{date}} 移到回收站", "deleteForever": "永久删除", "loadError": "无法加载回收站", "a11y": { "restore": "恢复 {{name}}", "deleteForever": "永久删除 {{name}}" } }, "a11y": { "moveToTrash": "将 {{name}} 移到回收站", "deleteFile": "删除 {{name}}", "openTrash": "打开回收站" }, "toasts": { "movedToTrash": "已移到回收站。你可以从回收站恢复它。", "bulkMovedToTrash": "已将 {{count}} 个文件移到回收站", "moveToTrashFailed": "无法将文件移到回收站", "restored": "文件已恢复", "notInTrash": "此文件已不在回收站中。", "restoreFailed": "无法恢复文件", "deletedForever": "文件已永久删除", "deleteSuccess": "文件已删除", "deleteFailed": "无法删除文件", "fileNotFound": "找不到文件。它可能已被删除。", "noPermission": "你没有删除此文件的权限。", "bulkDeleteSuccess": "已删除 {{count}} 个文件", "bulkDeleteFailed": "{{count}} 个文件删除失败", "bulkDeleteError": "无法删除文件" }, "confirms": { "deleteFile": "确定要删除“{{filename}}”吗?此操作无法撤销。", "moveToTrash": "将“{{filename}}”移到回收站?它将不再在任何地方显示,你可以从回收站恢复它。", "moveFilesToTrash": "将 {{count}} 个文件移到回收站?它们将不再在任何地方显示,你可以从回收站恢复它们。", "deleteForever": "永久删除“{{filename}}”?此操作无法撤销。", "deleteForeverInUse": "“{{filename}}”仍在你的应用中的 {{count}} 处使用。删除后,它也会从那里消失。要永久删除吗?" } }, "follow": { "pending": "已请求", "disabled": "此处已关闭", "named": "{{label}}:{{name}}", "verbs": { "follow": { "idle": "关注", "active": "已关注", "everywhere": "在所有地方取消关注", "undo": "取消关注此账号", "undoNamed": "取消关注 {{name}}", "checking": "正在检查关注状态", "checkingNamed": "正在检查你是否关注了 {{name}}" }, "subscribe": { "idle": "订阅", "active": "已订阅", "everywhere": "在所有地方取消订阅", "undo": "取消订阅", "undoNamed": "取消订阅 {{name}}", "checking": "正在检查订阅状态", "checkingNamed": "正在检查你是否订阅了 {{name}}" }, "join": { "idle": "加入", "active": "已加入", "everywhere": "在所有地方退出", "undo": "退出", "undoNamed": "退出 {{name}}", "checking": "正在检查成员身份", "checkingNamed": "正在检查你是否是 {{name}} 的成员" }, "watch": { "idle": "追踪", "active": "追踪中", "everywhere": "在所有地方停止追踪", "undo": "停止追踪", "undoNamed": "停止追踪 {{name}}", "checking": "正在检查追踪状态", "checkingNamed": "正在检查你是否追踪了 {{name}}" } }, "all": { "idle": "全部关注", "hint": "关注全部 {{count}} 个账号", "hintOne": "关注 {{count}} 个账号", "undoHint": "取消关注全部 {{count}} 个账号", "undoHintOne": "取消关注 {{count}} 个账号" }, "menu": { "forDuration": "{{label}} {{duration}}", "showIn": "在{{app}}中显示", "hideIn": "不在{{app}}中显示", "thisApp": "此应用", "options": "{{label}}选项", "optionsHint": "打开更多选项" }, "durations": { "day": "24 小时", "threeDays": "72 小时", "week": "一周" }, "errors": { "update": "无法更新状态", "read": "无法检查状态", "mode": "无法更改此应用的设置", "offline": "你已离线。请检查网络连接后重试。", "signedOut": "请重新登录以继续", "forbidden": "此应用无权执行此操作", "notFound": "此内容已不可用", "rateLimited": "尝试次数过多,请稍后再试。" } }, "accounts": { "accountCategory": { "news": "新闻", "politics": "政治与政策", "business": "商业", "startup": "创业", "finance": "金融与投资", "crypto": "加密货币与 Web3", "marketplace": "市集与分类信息", "retail": "零售与电商", "real_estate": "房地产", "agency": "房产中介", "landlord": "房东与物业管理", "cooperative": "住房合作社", "architecture": "建筑与施工", "technology": "科技", "software": "软件与开发", "ai": "AI 与机器学习", "security": "安全与隐私", "automation": "自动化与工具", "science": "科学与研究", "education": "教育与培训", "books": "图书与写作", "health": "健康与医疗", "fitness": "健身与身心健康", "sports": "体育", "gaming": "游戏与电竞", "music": "音乐", "film": "影视", "podcast": "播客与音频", "art": "艺术与设计", "photography": "摄影", "comedy": "喜剧", "food": "美食与饮品", "travel": "旅行与地点", "fashion": "时尚与美妆", "home_garden": "家居与园艺", "diy": "DIY 与手作", "automotive": "汽车", "animals": "动物与宠物", "family": "家庭与育儿", "nonprofit": "非营利与慈善", "government": "政府与公共部门", "community": "本地社区", "activism": "行动主义与倡导", "environment": "环境与可持续发展", "religion": "宗教与灵性", "other": "其他" }, "members": { "title": "成员" }, "settings": { "title": "账户设置", "subtitle": "管理此账户的资料、成员和访问权限。", "save": "保存更改", "displayName": { "label": "显示名称", "invalidChars": "只能使用字母、空格、撇号和名称分隔符", "invalidTitle": "请使用不含 < 或 > 的纯文本(最多 300 个字符)" }, "bio": { "label": "简介(可选)" }, "picture": { "change": "更换图片" }, "categories": { "title": "类别", "footer": "第一个类别是资料中显示的主要类别。最多 {{max}} 个。", "primary": "主要", "makePrimary": "设为主要", "remove": "移除{{category}}", "add": "添加类别", "atCap": "最多 {{max}} 个。移除一个后才能添加其他类别。", "unavailable": "类别不可用" }, "sections": { "access": "访问", "dangerZone": "危险区域" }, "members": { "subtitle": "邀请成员并管理角色" }, "archive": { "title": "归档账户", "subtitle": "停用此账户", "confirmTitle": "归档账户", "confirmDescription": "要归档此账户吗?账户将被停用,其成员将失去访问权限。" }, "errors": { "missingAccount": "未选择账户。" }, "toasts": { "saved": "账户已更新", "saveFailed": "无法更新账户", "archived": "账户已归档", "archiveFailed": "无法归档账户" } } } });
|
package/dist/cjs/index.js
CHANGED
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
* If a symbol does not appear here, it is NOT part of the public API.
|
|
22
22
|
*/
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
-
exports.
|
|
25
|
-
exports.
|
|
26
|
-
exports.
|
|
27
|
-
exports.packageInfo = exports.consumeOAuthReturnPath = exports.persistOAuthReturnPath = exports.clearOAuthHandshake = exports.readOAuthHandshake = exports.persistOAuthHandshake = exports.canonicalizeOAuthRedirectUri = exports.normalizeOAuthRedirectUri = exports.OXY_OAUTH_RETURN_PATH_STORAGE_KEY = exports.OXY_OAUTH_REDIRECT_URI_STORAGE_KEY = exports.OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY = exports.OXY_OAUTH_STATE_STORAGE_KEY = exports.OXY_AUTHORIZE_URL = exports.DEFAULT_OAUTH_SCOPE = exports.generatePkcePair = exports.generateOAuthState = exports.computeCodeChallenge = exports.buildOAuthAuthorizeUrl = exports.CENTRAL_IDP_APEX = exports.AUTH_WEB_ORIGIN = exports.getAccountColor = exports.formatPublicKeyHandle = exports.getAccountFallbackHandle = exports.getAccountDisplayName = exports.createQuickAccount = exports.buildAccountsArray = exports.updateAvatarVisibility = exports.isDev = exports.consoleSink = exports.resetLoggerConfig = exports.getLoggerConfig = void 0;
|
|
24
|
+
exports.getBaseLanguage = exports.FALLBACK_LOCALE = exports.SUPPORTED_LANGUAGES = exports.TopicSource = exports.TopicType = exports.SECURITY_EVENT_SEVERITY_MAP = exports.sessionsArraysEqual = exports.normalizeAndSortSessions = exports.mergeSessions = exports.authenticatedApiCall = exports.withAuthErrorHandling = exports.isAuthenticationError = exports.ensureValidToken = exports.AuthenticationFailedError = exports.SessionSyncRequiredError = exports.normalizeProfileLinks = exports.getNormalizedUserHandle = exports.getCanonicalUserHandle = exports.normalizeUserIdentityOrNull = exports.normalizeUserIdentity = exports.getNormalizedUserId = exports.commonsDeliveryPlatform = exports.pushTargetsFromDelivery = exports.selectCommonsDelivery = exports.parseCommonsApprovalExpiresAt = exports.getCommonsApprovalBlockingReason = exports.OxyAppDataIdentifierError = exports.AccountNotOnDeviceError = exports.REPUTATION_CACHE_PREFIX = exports.StoreInstallerError = exports.setStoreInstaller = exports.getStoreInstaller = exports.kindAcceptsAccountCategories = exports.isSelectableAccountCategoryId = exports.SELECTABLE_ACCOUNT_CATEGORY_IDS = exports.MAX_ACCOUNT_CATEGORIES = exports.ACCOUNT_CATEGORY_IDS = exports.buildUserDid = exports.DirectUploadInterruptedError = exports.MAX_UPLOAD_BYTES = exports.assetUrlCacheTTL = exports.ASSET_MULTIPART_UPLOAD_MAX_BYTES = exports.ServiceAssetMetadataError = exports.AssetUrlResolutionError = exports.OxyAuthenticationTimeoutError = exports.OxyAuthenticationError = exports.OxyApiError = exports.OXY_CLOUD_URL = exports.OXY_API_URL = exports.OxyServices = void 0;
|
|
25
|
+
exports.isLocaleLoaded = exports.loadLocale = exports.translate = exports.withRetry = exports.delay = exports.shouldAllowRequest = exports.recordSuccess = exports.recordFailure = exports.calculateBackoffInterval = exports.createCircuitBreakerState = exports.DEFAULT_CIRCUIT_BREAKER_CONFIG = exports.isRetryableError = exports.isNetworkError = exports.isServerError = exports.isRateLimitError = exports.isNotFoundError = exports.isForbiddenError = exports.isUnauthorizedError = exports.isAlreadyRegisteredError = exports.getErrorMessage = exports.getErrorStatus = exports.HttpStatus = exports.getSystemColorScheme = exports.systemPrefersDarkMode = exports.getOppositeTheme = exports.normalizeColorScheme = exports.normalizeTheme = exports.getContrastTextColor = exports.isLightColor = exports.withOpacity = exports.rgbToHex = exports.hexToRgb = exports.lightenColor = exports.darkenColor = exports.isWebBrowser = exports.isAndroid = exports.isIOS = exports.isNative = exports.isWeb = exports.setPlatformOS = exports.getPlatformOS = exports.coerceToSupportedLocale = exports.getPrimaryLanguage = exports.getUserLanguages = exports.isRTLLocale = exports.getNativeLanguageName = exports.getLanguageName = exports.getLanguageMetadata = exports.isSupportedLocale = exports.normalizeLocale = void 0;
|
|
26
|
+
exports.normalizeMultilineText = exports.normalizeInlineText = exports.validateAndSanitizeUserInput = exports.isValidObjectId = exports.sanitizeHTML = exports.sanitizeString = exports.isValidFileType = exports.isValidFileSize = exports.isValidDate = exports.isValidURL = exports.isValidUUID = exports.isValidObject = exports.isValidArray = exports.isRequiredBoolean = exports.isRequiredNumber = exports.isRequiredString = exports.DISPLAY_NAME_UNFLANKED_SEPARATOR_SOURCE = exports.DISPLAY_NAME_ORPHANED_MARK_SOURCE = exports.DISPLAY_NAME_DISALLOWED_SOURCE = exports.DISPLAY_NAME_ALLOWED_SCRIPTS = exports.accountNameInvalidKey = exports.accountNameInvalidMessage = exports.accountNameMaxLength = exports.isValidAccountName = exports.isValidDisplayName = exports.isValidPassword = exports.isValidEmail = exports.ACCOUNT_TITLE_INVALID_MESSAGE = exports.DISPLAY_NAME_INVALID_MESSAGE = exports.MAX_DISPLAY_NAME_LENGTH = exports.PASSWORD_REGEX = exports.EMAIL_REGEX = exports.retryAsync = exports.validateRequiredFields = exports.parseHttpErrorBody = exports.isHttpRequestError = exports.handleHttpError = exports.createApiError = exports.ErrorCodes = exports.safeJsonParse = exports.buildPaginationParams = exports.buildUrl = exports.buildSearchParams = exports.buildQueryParams = exports.trustTierLabel = exports.reputationCategoryLabel = exports.accountRoleLabel = exports.accountCategoryLabel = exports.getLocalesVersion = exports.subscribeLocales = void 0;
|
|
27
|
+
exports.packageInfo = exports.consumeOAuthReturnPath = exports.persistOAuthReturnPath = exports.clearOAuthHandshake = exports.readOAuthHandshake = exports.persistOAuthHandshake = exports.canonicalizeOAuthRedirectUri = exports.normalizeOAuthRedirectUri = exports.OXY_OAUTH_RETURN_PATH_STORAGE_KEY = exports.OXY_OAUTH_REDIRECT_URI_STORAGE_KEY = exports.OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY = exports.OXY_OAUTH_STATE_STORAGE_KEY = exports.OXY_AUTHORIZE_URL = exports.DEFAULT_OAUTH_SCOPE = exports.generatePkcePair = exports.generateOAuthState = exports.computeCodeChallenge = exports.buildOAuthAuthorizeUrl = exports.CENTRAL_IDP_APEX = exports.AUTH_WEB_ORIGIN = exports.getAccountColor = exports.formatPublicKeyHandle = exports.getAccountFallbackHandle = exports.getAccountDisplayName = exports.createQuickAccount = exports.buildAccountsArray = exports.updateAvatarVisibility = exports.isDev = exports.consoleSink = exports.resetLoggerConfig = exports.getLoggerConfig = exports.configureLogger = exports.createLogger = exports.logger = void 0;
|
|
28
28
|
// The crypto shim MUST stay the first import. The root itself ships no crypto
|
|
29
29
|
// library (`__tests__/rootEntryGraph.test.ts`), but `@oxy.so/protocol`'s root
|
|
30
30
|
// entry (reached by the OAuth/PKCE and device helpers) does, and Metro does not
|
|
@@ -58,6 +58,12 @@ Object.defineProperty(exports, "MAX_ACCOUNT_CATEGORIES", { enumerable: true, get
|
|
|
58
58
|
Object.defineProperty(exports, "SELECTABLE_ACCOUNT_CATEGORY_IDS", { enumerable: true, get: function () { return accounts_1.SELECTABLE_ACCOUNT_CATEGORY_IDS; } });
|
|
59
59
|
Object.defineProperty(exports, "isSelectableAccountCategoryId", { enumerable: true, get: function () { return accounts_1.isSelectableAccountCategoryId; } });
|
|
60
60
|
Object.defineProperty(exports, "kindAcceptsAccountCategories", { enumerable: true, get: function () { return accounts_1.kindAcceptsAccountCategories; } });
|
|
61
|
+
// The store's installer (ADR 0053): what a runtime that installs applications registers beside
|
|
62
|
+
// `oxy.store`, and what a store asks it.
|
|
63
|
+
var storeInstaller_1 = require("./api/storeInstaller");
|
|
64
|
+
Object.defineProperty(exports, "getStoreInstaller", { enumerable: true, get: function () { return storeInstaller_1.getStoreInstaller; } });
|
|
65
|
+
Object.defineProperty(exports, "setStoreInstaller", { enumerable: true, get: function () { return storeInstaller_1.setStoreInstaller; } });
|
|
66
|
+
Object.defineProperty(exports, "StoreInstallerError", { enumerable: true, get: function () { return storeInstaller_1.StoreInstallerError; } });
|
|
61
67
|
var reputation_1 = require("./api/reputation");
|
|
62
68
|
Object.defineProperty(exports, "REPUTATION_CACHE_PREFIX", { enumerable: true, get: function () { return reputation_1.REPUTATION_CACHE_PREFIX; } });
|
|
63
69
|
var devices_1 = require("./api/devices");
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The store's installer: how a store installs, opens and updates an application on a machine
|
|
3
|
+
* that installs applications, beside `oxy.store`, which reads the catalogue.
|
|
4
|
+
*
|
|
5
|
+
* `oxy.store` says what the store lists; an installer says what the machine can do with a
|
|
6
|
+
* listing. A runtime that installs applications registers one (OxyOS's Bloom host registers one
|
|
7
|
+
* backed by the system's install service before the application's code runs, OxyOS ADR 0030
|
|
8
|
+
* decision 9; ADR 0053 here). Where none is registered — the web, iOS, Android — there is
|
|
9
|
+
* nothing to install, and a store shows what it shows without one. An application never asks
|
|
10
|
+
* which platform it runs on: it asks whether there is an installer.
|
|
11
|
+
*
|
|
12
|
+
* The installer is the store's hands, never its judge. It is given a listing's slug and nothing
|
|
13
|
+
* else: the machine resolves slug → package → release from the store's signed metadata, verifies
|
|
14
|
+
* it, and asks the person in a sheet of its own that no application can draw or press. The store
|
|
15
|
+
* learns the outcome and nothing of the sheet. Its errors say whether the machine already told the
|
|
16
|
+
* person (`told`), so a store never repeats what the system said.
|
|
17
|
+
*
|
|
18
|
+
* React-free and dependency-free, as everything in `@oxy.so/core`.
|
|
19
|
+
*/
|
|
20
|
+
/** A failure of an installer's request. */
|
|
21
|
+
export class StoreInstallerError extends Error {
|
|
22
|
+
constructor(reason, options = {}) {
|
|
23
|
+
super(options.message ?? reason);
|
|
24
|
+
this.name = 'StoreInstallerError';
|
|
25
|
+
this.reason = reason;
|
|
26
|
+
this.told = options.told ?? false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
let installer = null;
|
|
30
|
+
/**
|
|
31
|
+
* Registers the machine's installer, or removes it with null. A runtime calls it once, before
|
|
32
|
+
* the application's code runs; nothing else should.
|
|
33
|
+
*/
|
|
34
|
+
export function setStoreInstaller(next) {
|
|
35
|
+
installer = next;
|
|
36
|
+
}
|
|
37
|
+
/** The machine's installer, or null where nothing installs applications. */
|
|
38
|
+
export function getStoreInstaller() {
|
|
39
|
+
return installer;
|
|
40
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import shared from './compactLocaleValues.generated.js';
|
|
2
|
+
function isRecord(value) {
|
|
3
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
4
|
+
}
|
|
5
|
+
function clone(value) {
|
|
6
|
+
if (Array.isArray(value))
|
|
7
|
+
return value.map(clone);
|
|
8
|
+
if (isRecord(value))
|
|
9
|
+
return Object.fromEntries(Object.entries(value).map(([key, child]) => [key, clone(child)]));
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
/** Reconstruct a complete independent dictionary from generated data. */
|
|
13
|
+
export function restoreCompactLocale(value) {
|
|
14
|
+
if (Array.isArray(value)) {
|
|
15
|
+
if (value[0] === -1)
|
|
16
|
+
return clone(value[1]);
|
|
17
|
+
const index = value[0];
|
|
18
|
+
if (typeof index !== 'number' || !Number.isInteger(index) || index < 0) {
|
|
19
|
+
throw new Error('Invalid compact locale reference');
|
|
20
|
+
}
|
|
21
|
+
const literal = shared[index];
|
|
22
|
+
if (typeof literal !== 'string')
|
|
23
|
+
throw new Error('Invalid compact locale reference');
|
|
24
|
+
return literal;
|
|
25
|
+
}
|
|
26
|
+
if (isRecord(value)) {
|
|
27
|
+
return Object.fromEntries(Object.entries(value).map(([key, child]) => [key, restoreCompactLocale(child)]));
|
|
28
|
+
}
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// Generated by scripts/generateCompactLocales.ts; do not edit.
|
|
2
|
+
export default ["Language", "Commons", "you@example.com", "Email", "Marketing", "About preferences", "Alerts", "Appearance", "Apps you authorize to sign in with your Oxy account will appear here", "Channels", "Connected apps", "Dark", "Email digest", "Failed to revoke access", "Failed to update notification preferences", "Following system: reduce motion is on", "Last used {{relative}}", "Light", "Manage push, email, and security alerts", "Manage third-party app access", "Marketing emails", "Minimise animations across Oxy apps", "No connected apps", "Notifications", "Periodic summary of your account activity", "Preferences", "Preferences sync across every Oxy app you sign into", "Product news and occasional offers", "Push notifications", "Real-time alerts on your devices", "Reduce motion", "Region", "Revoke", "Revoke access", "Revoke {{name}}'s access to your Oxy account?", "Revoked access for {{name}}", "Security alerts", "Sign-ins, recovery codes, and key changes", "System default", "Theme", "Theme, motion, and regional settings", "Timezone", "Unable to detect timezone", "yourname"];
|
package/dist/esm/i18n/index.js
CHANGED
|
@@ -7,21 +7,21 @@ const FALLBACK = 'en-US';
|
|
|
7
7
|
* is the fallback for every missing key, so it is always present.
|
|
8
8
|
*/
|
|
9
9
|
const LOADERS = {
|
|
10
|
-
'es-ES': () => import('./locales/es-ES.js'),
|
|
11
|
-
'ca-ES': () => import('./locales/ca-ES.js'),
|
|
12
|
-
'fr-FR': () => import('./locales/fr-FR.js'),
|
|
13
|
-
'de-DE': () => import('./locales/de-DE.js'),
|
|
14
|
-
'it-IT': () => import('./locales/it-IT.js'),
|
|
15
|
-
'pt-PT': () => import('./locales/pt-PT.js'),
|
|
16
|
-
'ja-JP': () => import('./locales/ja-JP.js'),
|
|
17
|
-
'ko-KR': () => import('./locales/ko-KR.js'),
|
|
18
|
-
'zh-CN': () => import('./locales/zh-CN.js'),
|
|
19
|
-
'ar-SA': () => import('./locales/ar-SA.js'),
|
|
20
|
-
'bn-BD': () => import('./locales/bn-BD.js'),
|
|
21
|
-
'hi-IN': () => import('./locales/hi-IN.js'),
|
|
22
|
-
'id-ID': () => import('./locales/id-ID.js'),
|
|
23
|
-
'ru-RU': () => import('./locales/ru-RU.js'),
|
|
24
|
-
'tr-TR': () => import('./locales/tr-TR.js'),
|
|
10
|
+
'es-ES': () => import('./locales/compact/es-ES.generated.js'),
|
|
11
|
+
'ca-ES': () => import('./locales/compact/ca-ES.generated.js'),
|
|
12
|
+
'fr-FR': () => import('./locales/compact/fr-FR.generated.js'),
|
|
13
|
+
'de-DE': () => import('./locales/compact/de-DE.generated.js'),
|
|
14
|
+
'it-IT': () => import('./locales/compact/it-IT.generated.js'),
|
|
15
|
+
'pt-PT': () => import('./locales/compact/pt-PT.generated.js'),
|
|
16
|
+
'ja-JP': () => import('./locales/compact/ja-JP.generated.js'),
|
|
17
|
+
'ko-KR': () => import('./locales/compact/ko-KR.generated.js'),
|
|
18
|
+
'zh-CN': () => import('./locales/compact/zh-CN.generated.js'),
|
|
19
|
+
'ar-SA': () => import('./locales/compact/ar-SA.generated.js'),
|
|
20
|
+
'bn-BD': () => import('./locales/compact/bn-BD.generated.js'),
|
|
21
|
+
'hi-IN': () => import('./locales/compact/hi-IN.generated.js'),
|
|
22
|
+
'id-ID': () => import('./locales/compact/id-ID.generated.js'),
|
|
23
|
+
'ru-RU': () => import('./locales/compact/ru-RU.generated.js'),
|
|
24
|
+
'tr-TR': () => import('./locales/compact/tr-TR.generated.js'),
|
|
25
25
|
};
|
|
26
26
|
/** Base subtag → the dictionary that serves it. */
|
|
27
27
|
const ALIASES = {
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// Generated by scripts/generateCompactLocales.ts; do not edit.
|
|
2
|
+
import { restoreCompactLocale } from '../../compactLocale.js';
|
|
3
|
+
export default restoreCompactLocale({ "signin": { "title": "تسجيل الدخول", "subtitle": "استخدم حسابك في Oxy", "addAccountTitle": "إضافة حساب آخر", "addAccountSubtitle": "تسجيل الدخول بحساب آخر", "actions": { "continue": "متابعة", "back": "رجوع" }, "createAccountLink": "جديد على Oxy؟ أنشئ حسابًا", "status": { "signingIn": "جارٍ تسجيل الدخول…" }, "subtitleToApp": "للمتابعة إلى {{app}}", "orContinueWith": "أو تابع باستخدام", "qr": { "caption": "امسح باستخدام Commons لتسجيل الدخول", "renew": "عرض رمز جديد" }, "device": { "codeHint": "تأكد من أن هاتفك يعرض هذا الرمز" }, "errors": { "rateLimited": "محاولات كثيرة جدًا. حاول مرة أخرى بعد {{seconds}} ث.", "invalidCredentials": "اسم المستخدم أو البريد الإلكتروني أو كلمة المرور غير صحيح. إذا كانت عدة حسابات تستخدم هذا البريد الإلكتروني، فسجّل الدخول باسم المستخدم.", "emailAccountsFull": "هذا البريد الإلكتروني لديه بالفعل الحد الأقصى من الحسابات.", "codeInvalid": "الرمز غير صحيح أو انتهت صلاحيته.", "requestExpired": "انتهت صلاحية تسجيل الدخول هذا. أرسل رسالة جديدة.", "secondFactorInvalid": "الرمز غير صحيح. جرّب الرمز الحالي.", "originNotAllowed": "تسجيل الدخول غير متاح هنا.", "generic": "حدث خطأ ما. يُرجى المحاولة مرة أخرى.", "notConfigured": "تسجيل الدخول غير متاح", "notConfiguredDescription": "لم يُعدّ {{app}} لتسجيل الدخول بعد. تواصل مع مطوّر التطبيق.", "failed": "تعذّر بدء تسجيل الدخول", "failedDescription": "حدث خطأ ما. يُرجى المحاولة مرة أخرى." }, "emailAccounts": { "title": "اختر حسابًا", "description": "لدى {{identifier}} عدة حسابات. اختر الحساب الذي تريد تسجيل الدخول به." }, "chooser": { "subtitleToApp": "للمتابعة إلى {{app}}", "title": "اختر حسابًا", "subtitle": "تابع بأحد الحسابات أدناه، أو استخدم حسابًا آخر.", "useAnother": "استخدم حسابًا آخر", "continueAs": "المتابعة باسم {{name}}" }, "terms": { "before": "بالمتابعة، أنت توافق على", "termsLink": "شروط الخدمة", "and": "و", "privacyLink": "سياسة الخصوصية" }, "noAccount": "ليس لديك حساب؟", "createAccount": "إنشاء حساب", "identifier": { "label": "البريد الإلكتروني أو اسم المستخدم", "placeholder": [2], "required": "أدخل بريدك الإلكتروني أو اسم المستخدم." }, "checkEmail": { "title": "تحقق من بريدك", "description": "إذا كان هناك حساب يطابق {{identifier}}، فقد أرسلنا إليه رمزًا ورابطًا لتسجيل الدخول.", "codeLabel": "الرمز", "codeHint": "اكتب الرمز الوارد في الرسالة، أو افتح رابطها في هذا المتصفح.", "codeHasLetters": "هل يحتوي رمزك على أحرف؟", "codeDigitsOnly": "هل يتكون رمزك من أرقام فقط؟", "resend": "أرسل رسالة جديدة", "resendIn": "أرسل رسالة جديدة بعد {{seconds}} ث", "resent": "أرسلنا رسالة جديدة.", "retryLater": "أرسلنا عدة رسائل بالفعل. انتظر بضع دقائق ثم حاول مرة أخرى.", "usePassword": "استخدم كلمة المرور بدلًا من ذلك", "differentAccount": "استخدم حسابًا آخر" }, "password": { "title": "أدخل كلمة المرور", "label": "كلمة المرور", "required": "أدخل كلمة المرور.", "forgot": "نسيتها؟ احصل على رمز عبر البريد" }, "secondFactor": { "title": "التحقق بخطوتين", "description": "أدخل الرمز من تطبيق المصادقة.", "backupDescription": "أدخل أحد رموزك الاحتياطية. يعمل كل رمز مرة واحدة فقط.", "label": "رمز المصادقة", "backupLabel": "رمز احتياطي", "useBackup": "استخدم رمزًا احتياطيًا", "useAuthenticator": "استخدم تطبيق المصادقة" }, "link": { "approvedTitle": "سجّلت الدخول", "approvedDescription": "ارجع إلى التطبيق الذي طلبت منه تسجيل الدخول: سيتابع تلقائيًا. يمكنك إغلاق علامة التبويب هذه.", "otherDeviceTitle": "افتح الرابط في المتصفح نفسه", "otherDeviceDescription": "يعمل هذا الرابط فقط في المتصفح الذي طلبت منه تسجيل الدخول. افتحه هناك، أو اكتب الرمز الوارد في الرسالة داخل التطبيق.", "invalidTitle": "لا يمكن استخدام هذا الرابط", "invalidDescription": "انتهت صلاحيته أو استُخدم من قبل. اطلب رسالة جديدة من التطبيق، أو اكتب الرمز الوارد في أحدث رسالة." } }, "signup": { "title": "أنشئ حسابك", "subtitle": "اختر اسم المستخدم. ثم نؤكد بريدك الإلكتروني.", "createInCommons": "أنشئها في Commons بدلًا من ذلك", "backToSignInLink": "لديك حساب بالفعل؟ سجّل الدخول", "username": { "label": "اسم المستخدم", "placeholder": [43], "required": "اختر اسم مستخدم.", "taken": "اسم المستخدم هذا مستخدم بالفعل." }, "email": { "title": "ما بريدك الإلكتروني؟", "subtitle": "تسجّل الدخول به: نرسل إليك رمزًا في كل مرة. لا يراه أحد غيرك.", "label": "البريد الإلكتروني", "placeholder": [2], "invalid": "أدخل بريدًا إلكترونيًا صالحًا." }, "commonsSubtitle": "أو أنشئ هويتك في Commons واحتفظ بمفتاحك بنفسك.", "laterNote": "يمكنك لاحقًا إضافة كلمة مرور أو تطبيق مصادقة من إعدادات الأمان في حسابك." }, "accountSwitcher": { "loading": "جارٍ تحميل الحسابات...", "qrHeadline": "سجّل الدخول بهوية Oxy الخاصة بك", "signInWithOxy": "تسجيل الدخول باستخدام Oxy", "signUpWithOxy": "التسجيل باستخدام Oxy", "getCommons": "احصل على Commons", "commonsNotInstalled": "لا تملك Commons؟ احصل على التطبيق لتسجيل الدخول بمعرّف Oxy الخاص بك.", "showQrAnyway": "لدي Commons على جهاز آخر", "switchWhileSignedInAs": "تبديل الحساب، مسجّل الدخول باسم {{name}}", "manageOnDevice": "إدارة الحسابات على هذا الجهاز", "continueWithOxy": "المتابعة باستخدام Oxy", "havingTrouble": "هل تواجه مشكلة؟", "progress": { "preparing": "جارٍ تحضير الطلب", "awaitingApproval": "في انتظار الموافقة", "scanWithCommons": "امسح الرمز باستخدام Commons على هاتفك", "continueInCommons": "تابع في Commons", "checkCommons": "تحقّق من Commons على هاتفك", "openedInCommons": "تم الفتح في Commons", "confirming": "جارٍ تأكيد الهوية", "confirmed": "تم تأكيد الهوية" }, "signInFailures": { "denied": "تم رفض تسجيل الدخول في Commons.", "expired": "انتهت صلاحية طلب تسجيل الدخول. يُرجى المحاولة مرة أخرى.", "network": "تعذّر الاتصال بـ Oxy. تحقّق من اتصالك وحاول مرة أخرى.", "notConfigured": "هذا التطبيق غير مُعدّ لتسجيل الدخول بعد.", "unsupportedFlow": "لا يمكن إكمال تسجيل الدخول هنا.", "claimFailed": "تمت الموافقة على تسجيل الدخول، لكن تعذّر إكماله. يُرجى المحاولة مرة أخرى.", "generic": "تعذّر تسجيل الدخول. يُرجى المحاولة مرة أخرى." }, "linkOpenFailed": "تعذّر فتح الرابط. يُرجى المحاولة مرة أخرى." }, "common": { "stepOf": "الخطوة {{step}} من {{total}}", "actions": { "back": "رجوع", "continue": "متابعة", "next": "التالي", "getStarted": "ابدأ", "createAccount": "إنشاء حساب", "signIn": "تسجيل الدخول", "verify": "التحقق", "resetPassword": "إعادة تعيين كلمة المرور", "signedOut": "تم تسجيل الخروج", "close": "إغلاق", "tryAgain": "حاول مرة أخرى" }, "links": { "recoverAccount": "استعادة حسابك", "signUp": "التسجيل" }, "labels": { "username": "اسم المستخدم", "email": "البريد الإلكتروني", "password": "كلمة المرور", "confirmPassword": "تأكيد كلمة المرور" }, "revoke": [32], "errors": { "signOutAllFailed": "حدثت مشكلة أثناء تسجيل الخروج من جميع الحسابات. يرجى المحاولة مرة أخرى." } }, "notifications": { "title": [23], "subtitle": [18], "updateError": [14], "sections": { "channels": [9], "alerts": [6], "marketing": [4] }, "items": { "push": { "title": [28], "subtitle": [29] }, "emailDigest": { "title": [12], "subtitle": [24] }, "securityAlerts": { "title": [36], "subtitle": [37] }, "marketingEmails": { "title": [20], "subtitle": [27] } } }, "preferences": { "title": [25], "subtitle": [40], "sections": { "appearance": [7], "language": [0], "region": [31] }, "theme": { "light": [17], "dark": [11], "system": [38] }, "items": { "theme": { "title": [39] }, "reduceMotion": { "title": [30], "subtitle": [21], "systemOn": [15] }, "language": { "title": [0] }, "timezone": { "title": [41], "unknown": [42] }, "about": { "title": [5], "subtitle": [26] } } }, "connectedApps": { "title": [10], "subtitle": [19], "empty": { "title": [22], "subtitle": [8] }, "item": { "granted": "ممنوح {{relative}}", "lastUsed": [16] }, "confirm": { "title": [33], "message": [34] }, "toasts": { "revoked": [35], "revokeFailed": [13] } }, "accountMenu": { "label": "قائمة الحساب", "manage": "إدارة حساب Oxy الخاص بك", "viewProfile": "عرض الملف الشخصي", "addAnother": "إضافة حساب آخر", "signOutAll": "تسجيل الخروج من جميع الحسابات", "open": "قائمة الحساب", "openHint": "يفتح قائمة الحساب", "openWithUser": "قائمة حساب {{name}}", "switching": "جارٍ تبديل الحساب…", "signOutAccount": "تسجيل خروج {{name}}", "greeting": "مرحبًا، {{name}}!", "switchAccount": "تبديل الحساب", "storage": { "title": "تخزين Oxy", "usage": "{{used}} من {{total}} مستخدم", "used": "مستخدم", "free": "متاح", "unavailable": "تفاصيل الاستخدام غير متاحة", "upgrade": "ترقية الخطة", "manage": "إدارة التخزين" }, "data": "بياناتك في Oxy", "settings": "إعدادات Oxy", "help": "المساعدة والملاحظات", "signOut": "تسجيل الخروج", "privacy": "سياسة الخصوصية", "terms": "شروط الخدمة" }, "emailCode": { "title": "تحقق من بريدك", "sentTo": "أرسلنا رمزًا من 6 أرقام إلى {{email}}.", "label": "الرمز", "resend": "أرسل رمزًا جديدًا", "resent": "أرسلنا رمزًا جديدًا.", "changeEmail": "استخدم بريدًا آخر", "errors": { "codeInvalid": "الرمز غير صحيح أو انتهت صلاحيته.", "tooManyAttempts": "رموز خاطئة كثيرة. اطلب رمزًا جديدًا.", "expired": "استغرق الأمر وقتًا طويلًا. ابدأ من جديد.", "unavailable": "لا يستطيع Oxy إرسال البريد الآن. حاول لاحقًا.", "rateLimited": "رموز كثيرة. حاول لاحقًا." } }, "deleteAccount": { "keyless": { "subtitle": "سيُحذف @{{username}} وكل ما فيه نهائيًا. اكتب اسم المستخدم، ثم أكّد برمز نرسله إلى بريدك.", "action": "حذف الحساب", "done": "حُذف حسابك.", "doneDescription": "سُجّل خروجك.", "keyed": "يستخدم هذا الحساب Commons: احذفه في Oxy Commons من الإعدادات > حذف الحساب، بمفتاحه." }, "handoff": { "elsewhereMessage": "حذف حسابك يتطلب مفتاح هويتك، وهو غير موجود على هذا الجهاز. افتح Oxy Commons على الجهاز الذي يحتفظ به وانتقل إلى الإعدادات > حذف الحساب." } }, "linkCommons": { "title": "اربط Commons", "subtitle": "احتفظ بمفتاحك: اربط Commons ليصبح هذا الحساب لك وحدك. يُحذف بريده الإلكتروني، وتصبح عبارة الاسترداد في Commons طريقك للعودة.", "scan": "على هاتفك، افتح Commons واختر «لدي حساب Oxy على الويب» ثم امسح هذا الرمز.", "waiting": "بانتظار Commons…", "compareTitle": "تحقق من الرمز", "compare": "يعرض Commons الرمز نفسه. إن لم يكن كذلك، ألغِ العملية.", "confirm": "نعم، اربط Commons", "cancel": "إلغاء", "doneTitle": "تم ربط Commons", "done": "أصبح هذا الحساب ذاتي الحفظ. حُذف بريده الإلكتروني: عبارة الاسترداد في Commons هي طريقك للعودة.", "already": "يستخدم هذا الحساب Commons بالفعل.", "expired": "انتهت صلاحية هذا الرمز.", "renew": "اعرض رمزًا جديدًا", "failed": "تعذّر ربط Commons. حاول مجددًا.", "confirmTitle": "أكّد الربط", "confirmDescription": "للإنهاء، أكّد أنك أنت برمز نرسله إلى بريدك.", "confirmPasswordDescription": "للإنهاء، أكّد أنك أنت بكلمة المرور.", "row": "احتفظ بمفتاحك بنفسك مع Commons" }, "reauth": { "title": "أكّد أنك أنت", "emailDescription": "سنرسل رمزًا إلى بريدك لتأكيد هذا التغيير.", "sendCode": "أرسل الرمز", "codeSent": "أرسلنا رمزًا من 6 أرقام إلى بريدك.", "codeLabel": "الرمز من الرسالة", "passwordLabel": "كلمة المرور الحالية", "usePassword": "استخدم كلمة المرور بدلًا من ذلك", "useEmail": "احصل على رمز عبر البريد بدلًا من ذلك", "errors": { "invalid": "لم ينجح ذلك. تحقق مما كتبته وحاول مرة أخرى.", "totpRequired": "أدخل أيضًا الرمز من تطبيق المصادقة." } }, "signInSecurity": { "title": "تسجيل الدخول والأمان", "subtitle": "البريد الإلكتروني وكلمة المرور وتطبيق المصادقة والأماكن التي سجّلت الدخول فيها", "methodsTitle": "كيف تسجّل الدخول", "notPersonal": "الحساب الشخصي وحده يسجّل الدخول ببريد إلكتروني أو كلمة مرور أو تطبيق مصادقة.", "loadFailed": "تعذّر تحميل طرق تسجيل الدخول لهذا الحساب.", "retry": "حاول مجددًا", "noEmailWarning": "لا يوجد بريد إلكتروني لهذا الحساب. تسجّل الدخول بكلمة المرور فقط، وإذا نسيتها فلا توجد طريقة لاستعادة الحساب.", "status": { "on": "مفعّل", "off": "متوقف" }, "commons": { "title": [1] }, "errors": { "lastSignInMethod": "هذه طريقتك الوحيدة لتسجيل الدخول. أضف طريقة أخرى أولًا.", "passwordRequired": "عيّن كلمة مرور أولًا، ثم أكّد بها.", "emailUnchanged": "هذا بريدك الإلكتروني بالفعل." }, "email": { "title": "البريد الإلكتروني", "none": "لا يوجد بريد إلكتروني", "description": "تصل رموز تسجيل الدخول وروابطه وتنبيهات الأمان إلى هذا العنوان.", "noneDescription": "أضف بريدًا إلكترونيًا لتسجّل الدخول برمز أو رابط، ولتستعيد حسابك إذا نسيت كلمة المرور.", "change": "غيّر البريد الإلكتروني", "add": "أضف بريدًا إلكترونيًا", "remove": "أزل البريد الإلكتروني", "removeNeedsPassword": "لإزالة بريدك الإلكتروني، عيّن كلمة مرور أولًا: ستكون طريقتك الوحيدة لتسجيل الدخول.", "newLabel": "عنوان البريد الإلكتروني الجديد", "newDescription": "سنرسل رمزًا إلى العنوان الجديد للتحقق من أنه لك.", "invalid": "أدخل عنوان بريد إلكتروني صالحًا.", "sendCode": "أرسل الرمز", "confirmTitle": "أكّد البريد الإلكتروني الجديد", "confirmDescription": "أدخل الرمز الذي أرسلناه إلى {{email}}، ثم أكّد أنك أنت.", "codeLabel": "الرمز المرسل إلى البريد الجديد", "save": "احفظ البريد الإلكتروني", "saved": "حُدّث بريدك الإلكتروني. سُجّل الخروج من الأجهزة الأخرى.", "removeTitle": "أزل بريدك الإلكتروني", "removeDescription": "ستسجّل الدخول بكلمة المرور فقط. إذا نسيتها، فلا توجد طريقة لاستعادة الحساب. أكّد بكلمة المرور.", "removed": "أُزيل بريدك الإلكتروني. سُجّل الخروج من الأجهزة الأخرى." }, "password": { "title": "كلمة المرور", "setTitle": "عيّن كلمة مرور", "changeTitle": "غيّر كلمة المرور", "description": "سجّل الدخول بكلمة المرور بدلًا من رمز عبر البريد. استخدم {{min}} أحرف على الأقل.", "newLabel": "كلمة المرور الجديدة", "repeatLabel": "كرّر كلمة المرور", "tooShort": "استخدم {{min}} أحرف على الأقل.", "mismatch": "كلمتا المرور غير متطابقتين.", "signOutOthers": "سجّل الخروج من كل مكان آخر", "save": "احفظ كلمة المرور", "saved": "حُفظت كلمة المرور.", "row": "اختياري: سجّل الدخول بكلمة مرور", "remove": "أزل كلمة المرور", "removeTitle": "أزل كلمة مرورك", "removeDescription": "ستسجّل الدخول برمز أو رابط يُرسل إلى بريدك.", "removed": "أُزيلت كلمة المرور. سُجّل الخروج من الأجهزة الأخرى." }, "totp": { "title": "تطبيق المصادقة", "description": "بعد رمز البريد أو كلمة المرور، يطلب Oxy أيضًا رمزًا من تطبيق مثل Google Authenticator أو 1Password.", "setUp": "إعداد", "scan": "امسح رمز QR هذا بتطبيق المصادقة، أو أدخل مفتاح الإعداد.", "secretLabel": "مفتاح الإعداد", "codeLabel": "الرمز من التطبيق", "enable": "تشغيل", "enabled": "تطبيق المصادقة مفعّل.", "disable": "أوقف تطبيق المصادقة", "disabled": "تطبيق المصادقة متوقف.", "on": "مفعّل", "off": "متوقف", "backupTitle": "احفظ رموزك الاحتياطية", "backupDescription": "إذا فقدت هاتفك، فكل رمز يتيح لك تسجيل الدخول مرة واحدة. احفظها في مكان آمن: لن تُعرض مرة أخرى.", "copy": "انسخ الرموز", "copied": "نُسخت الرموز الاحتياطية.", "savedThem": "حفظتها", "regenerate": "احصل على رموز احتياطية جديدة", "regenerateDescription": "ستتوقف رموزك الاحتياطية القديمة عن العمل.", "remaining": "تبقّى {{count}} من الرموز الاحتياطية", "row": "خطوة ثانية عند تسجيل الدخول", "onWithCodes": "مفعّل · تبقّى {{count}} من الرموز الاحتياطية" } }, "fileManagement": { "deleteFile": "حذف الملف", "confirm": "تأكيد", "retry": "أعد المحاولة", "loadError": { "description": "حدث خطأ ما. تحقّق من اتصالك ثم أعد المحاولة." }, "moveToTrash": "نقل إلى سلة المهملات", "moveToTrashCount": "نقل إلى سلة المهملات ({{count}})", "appAccess": { "title": "التطبيقات التي لديها وصول", "description": "يمكن لهذه التطبيقات فتح هذا الملف بنفسها. ألغِ وصول أي تطبيق لسحب هذه الإمكانية منه.", "empty": "لا يمكن لأي تطبيق فتح هذا الملف بنفسه.", "loadError": "تعذّر تحميل التطبيقات التي يمكنها فتح هذا الملف", "via": { "upload": "حفظ هذا الملف نيابةً عنك", "link": "أنت من شاركه" }, "revoke": "إلغاء الوصول", "confirm": { "title": "إلغاء وصول {{name}}؟", "message": "لن يتمكن {{name}} من فتح هذا الملف بعد الآن، وسيتوقف أي تشغيل بدأه فورًا." }, "toasts": { "revoked": "لم يعد بإمكان {{name}} فتح هذا الملف", "revokeFailed": "تعذّر إلغاء وصول {{name}}" }, "a11y": { "revoke": "إلغاء وصول {{name}} إلى هذا الملف" } }, "trashView": { "title": "سلة المهملات", "subtitle": "استعد الملفات أو احذفها نهائيًا", "notice": "تبقى الملفات في سلة المهملات حتى تستعيدها أو تحذفها، وتظل محسوبة ضمن مساحة التخزين لديك.", "emptyTitle": "سلة المهملات فارغة", "emptyDescription": "تظهر هنا الملفات التي تنقلها إلى سلة المهملات. يمكنك استعادتها أو حذفها نهائيًا.", "trashedOn": "نُقل إلى سلة المهملات في {{date}}", "deleteForever": "حذف نهائيًا", "loadError": "تعذّر تحميل سلة المهملات", "a11y": { "restore": "استعادة {{name}}", "deleteForever": "حذف {{name}} نهائيًا" } }, "a11y": { "moveToTrash": "نقل {{name}} إلى سلة المهملات", "deleteFile": "حذف {{name}}", "openTrash": "فتح سلة المهملات" }, "toasts": { "movedToTrash": "نُقل إلى سلة المهملات. يمكنك استعادته منها.", "bulkMovedToTrash": "نُقل {{count}} ملف إلى سلة المهملات", "moveToTrashFailed": "تعذّر نقل الملف إلى سلة المهملات", "restored": "تمت استعادة الملف", "notInTrash": "لم يعد هذا الملف في سلة المهملات.", "restoreFailed": "تعذّرت استعادة الملف", "deletedForever": "حُذف الملف نهائيًا", "deleteSuccess": "حُذف الملف", "deleteFailed": "تعذّر حذف الملف", "fileNotFound": "لم يُعثر على الملف. ربما حُذف بالفعل.", "noPermission": "ليس لديك إذن بحذف هذا الملف.", "bulkDeleteSuccess": "حُذف {{count}} ملف", "bulkDeleteFailed": "تعذّر حذف {{count}} ملف", "bulkDeleteError": "تعذّر حذف الملفات" }, "confirms": { "deleteFile": "هل تريد حذف «{{filename}}»؟ لا يمكن التراجع عن هذا الإجراء.", "moveToTrash": "هل تريد نقل «{{filename}}» إلى سلة المهملات؟ لن يُعرض في أي مكان بعد الآن، ويمكنك استعادته من سلة المهملات.", "moveFilesToTrash": "هل تريد نقل {{count}} ملف إلى سلة المهملات؟ لن تُعرض في أي مكان بعد الآن، ويمكنك استعادتها من سلة المهملات.", "deleteForever": "هل تريد حذف «{{filename}}» نهائيًا؟ لا يمكن التراجع عن هذا الإجراء.", "deleteForeverInUse": "لا يزال «{{filename}}» مستخدمًا في {{count}} موضع في تطبيقاتك. حذفه يزيله من هناك أيضًا. هل تريد حذفه نهائيًا؟" } }, "follow": { "pending": "تم الطلب", "disabled": "متوقفة هنا", "named": "{{label}}: {{name}}", "verbs": { "follow": { "idle": "متابعة", "active": "تتم المتابعة", "everywhere": "إلغاء المتابعة في كل مكان", "undo": "يلغي متابعة هذا الحساب", "undoNamed": "يلغي متابعة {{name}}", "checking": "جارٍ التحقق من حالة المتابعة", "checkingNamed": "جارٍ التحقق مما إذا كنت تتابع {{name}}" }, "subscribe": { "idle": "اشتراك", "active": "مشترك", "everywhere": "إلغاء الاشتراك في كل مكان", "undo": "يلغي الاشتراك", "undoNamed": "يلغي الاشتراك في {{name}}", "checking": "جارٍ التحقق من الاشتراك", "checkingNamed": "جارٍ التحقق مما إذا كنت مشتركًا في {{name}}" }, "join": { "idle": "انضمام", "active": "منضم", "everywhere": "المغادرة من كل مكان", "undo": "يغادر", "undoNamed": "يغادر {{name}}", "checking": "جارٍ التحقق من العضوية", "checkingNamed": "جارٍ التحقق مما إذا كنت عضوًا في {{name}}" }, "watch": { "idle": "مراقبة", "active": "تتم المراقبة", "everywhere": "إيقاف المراقبة في كل مكان", "undo": "يوقف المراقبة", "undoNamed": "يوقف مراقبة {{name}}", "checking": "جارٍ التحقق من حالة المراقبة", "checkingNamed": "جارٍ التحقق مما إذا كنت تراقب {{name}}" } }, "all": { "idle": "متابعة الكل", "hint": "يتابع جميع الحسابات ({{count}})", "hintOne": "يتابع الحساب ({{count}})", "undoHint": "يلغي متابعة جميع الحسابات ({{count}})", "undoHintOne": "يلغي متابعة الحساب ({{count}})" }, "menu": { "forDuration": "{{label}} لمدة {{duration}}", "showIn": "إظهار في {{app}}", "hideIn": "عدم الإظهار في {{app}}", "thisApp": "هذا التطبيق", "options": "خيارات {{label}}", "optionsHint": "يفتح خيارات إضافية" }, "durations": { "day": "24 ساعة", "threeDays": "72 ساعة", "week": "أسبوع" }, "errors": { "update": "تعذّر تحديث الحالة", "read": "تعذّر التحقق من الحالة", "mode": "تعذّر تغيير إعداد هذا التطبيق", "offline": "أنت غير متصل. تحقّق من الاتصال وحاول مجددًا.", "signedOut": "سجّل الدخول مرة أخرى للاستمرار", "forbidden": "لا يُسمح لهذا التطبيق بذلك", "notFound": "لم يعد هذا متاحًا", "rateLimited": "محاولات كثيرة جدًا. حاول مجددًا بعد قليل." } }, "accounts": { "accountCategory": { "news": "أخبار", "politics": "سياسة", "business": "أعمال", "startup": "الشركات الناشئة وريادة الأعمال", "finance": "المال والاستثمار", "crypto": "العملات المشفرة والويب 3", "marketplace": "سوق وإعلانات مبوبة", "retail": "التجزئة والتجارة الإلكترونية", "real_estate": "عقارات", "agency": "وكالة عقارية", "landlord": "الملاك وإدارة العقارات", "cooperative": "تعاونية سكنية", "architecture": "العمارة والبناء", "technology": "التقنية", "software": "البرمجيات والتطوير", "ai": "الذكاء الاصطناعي وتعلّم الآلة", "security": "الأمان والخصوصية", "automation": "الأتمتة والأدوات", "science": "العلوم والبحث", "education": "التعليم والتدريب", "books": "الكتب والكتابة", "health": "الصحة والطب", "fitness": "اللياقة والعافية", "sports": "رياضة", "gaming": "الألعاب والرياضات الإلكترونية", "music": "موسيقى", "film": "أفلام وتلفزيون", "podcast": "بودكاست وصوتيات", "art": "الفن والتصميم", "photography": "تصوير", "comedy": "كوميديا", "food": "طعام وشراب", "travel": "السفر والأماكن", "fashion": "الموضة والجمال", "home_garden": "المنزل والحديقة", "diy": "اصنعها بنفسك", "automotive": "السيارات", "animals": "الحيوانات الأليفة", "family": "الأسرة والتربية", "nonprofit": "غير ربحي وخيري", "government": "الحكومة والقطاع العام", "community": "المجتمع المحلي", "activism": "النشاط والمناصرة", "environment": "البيئة والاستدامة", "religion": "الدين والروحانية", "other": "أخرى" }, "members": { "title": "الأعضاء" }, "settings": { "title": "إعدادات الحساب", "subtitle": "أدِر الملف الشخصي لهذا الحساب وأعضاءه والوصول إليه.", "save": "حفظ التغييرات", "displayName": { "label": "الاسم المعروض", "invalidChars": "استخدم الحروف والمسافات والفواصل العليا وفواصل الأسماء فقط", "invalidTitle": "استخدم نصًا عاديًا بدون < أو > (حتى 300 حرف)" }, "bio": { "label": "نبذة (اختياري)" }, "picture": { "change": "تغيير الصورة" }, "categories": { "title": "الفئات", "footer": "الفئة الأولى هي الفئة الرئيسية المعروضة في الملف الشخصي. حتى {{max}}.", "primary": "رئيسية", "makePrimary": "اجعلها رئيسية", "remove": "إزالة {{category}}", "add": "إضافة فئة", "atCap": "حتى {{max}}. أزِل واحدة لإضافة أخرى.", "unavailable": "فئة غير متاحة" }, "sections": { "access": "الوصول", "dangerZone": "منطقة الخطر" }, "members": { "subtitle": "ادعُ أشخاصًا وأدِر الأدوار" }, "archive": { "title": "أرشفة الحساب", "subtitle": "إلغاء تنشيط هذا الحساب", "confirmTitle": "أرشفة الحساب", "confirmDescription": "هل تريد أرشفة هذا الحساب؟ سيتم إلغاء تنشيطه وسيفقد أعضاؤه الوصول." }, "errors": { "missingAccount": "لم يتم تحديد أي حساب." }, "toasts": { "saved": "تم تحديث الحساب", "saveFailed": "تعذر تحديث الحساب", "archived": "تمت أرشفة الحساب", "archiveFailed": "تعذرت أرشفة الحساب" } } } });
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// Generated by scripts/generateCompactLocales.ts; do not edit.
|
|
2
|
+
import { restoreCompactLocale } from '../../compactLocale.js';
|
|
3
|
+
export default restoreCompactLocale({ "signin": { "title": "সাইন ইন", "subtitle": "আপনার Oxy অ্যাকাউন্ট ব্যবহার করুন", "addAccountTitle": "আরেকটি অ্যাকাউন্ট যোগ করুন", "addAccountSubtitle": "অন্য অ্যাকাউন্ট দিয়ে সাইন ইন করুন", "actions": { "continue": "চালিয়ে যান", "back": "পিছনে" }, "createAccountLink": "Oxy-তে নতুন? একটি অ্যাকাউন্ট তৈরি করুন", "status": { "signingIn": "সাইন ইন হচ্ছে…" }, "subtitleToApp": "{{app}}-এ যেতে", "orContinueWith": "অথবা এর মাধ্যমে চালিয়ে যান", "qr": { "caption": "সাইন ইন করতে Commons দিয়ে স্ক্যান করুন", "renew": "নতুন কোড দেখান" }, "device": { "codeHint": "দেখে নিন আপনার ফোনে এই কোডটিই দেখাচ্ছে" }, "errors": { "rateLimited": "অনেকবার চেষ্টা করা হয়েছে। {{seconds}} সেকেন্ড পরে আবার চেষ্টা করুন।", "invalidCredentials": "ইউজারনেম, ইমেইল বা পাসওয়ার্ড সঠিক নয়। এই ইমেইলে একাধিক অ্যাকাউন্ট থাকলে ইউজারনেম দিয়ে সাইন ইন করুন।", "emailAccountsFull": "এই ইমেইলে সর্বোচ্চ সংখ্যক অ্যাকাউন্ট আগেই আছে।", "codeInvalid": "কোডটি সঠিক নয়, অথবা এর মেয়াদ শেষ হয়ে গেছে।", "requestExpired": "এই সাইন-ইনের মেয়াদ শেষ। নতুন ইমেইল পাঠান।", "secondFactorInvalid": "কোডটি সঠিক নয়। বর্তমান কোডটি দিন।", "originNotAllowed": "এখানে সাইন ইন করা যাবে না।", "generic": "কিছু একটা সমস্যা হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।", "notConfigured": "সাইন ইন উপলভ্য নয়", "notConfiguredDescription": "{{app}}-এ এখনও সাইন-ইন চালু করা হয়নি। অ্যাপের ডেভেলপারের সাথে যোগাযোগ করুন।", "failed": "সাইন ইন শুরু করা যায়নি", "failedDescription": "কিছু একটা সমস্যা হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।" }, "emailAccounts": { "title": "একটি অ্যাকাউন্ট বেছে নিন", "description": "{{identifier}}-এর একাধিক অ্যাকাউন্ট আছে। কোনটি দিয়ে সাইন ইন করবেন, বেছে নিন।" }, "chooser": { "subtitleToApp": "{{app}}-এ যেতে", "title": "একটি অ্যাকাউন্ট বেছে নিন", "subtitle": "নিচের একটি অ্যাকাউন্ট দিয়ে চালিয়ে যান, অথবা অন্যটি ব্যবহার করুন।", "useAnother": "অন্য অ্যাকাউন্ট ব্যবহার করুন", "continueAs": "{{name}} হিসেবে চালিয়ে যান" }, "terms": { "before": "চালিয়ে যাওয়ার মাধ্যমে আপনি আমাদের", "termsLink": "পরিষেবার শর্তাবলি", "and": "এবং", "privacyLink": "গোপনীয়তা নীতিতে সম্মত হচ্ছেন" }, "noAccount": "অ্যাকাউন্ট নেই?", "createAccount": "অ্যাকাউন্ট তৈরি করুন", "identifier": { "label": "ইমেইল বা ইউজারনেম", "placeholder": [2], "required": "আপনার ইমেইল বা ইউজারনেম লিখুন।" }, "checkEmail": { "title": "আপনার ইমেইল দেখুন", "description": "{{identifier}}-এর সাথে কোনো অ্যাকাউন্ট মিললে আমরা সেখানে একটি কোড ও সাইন-ইন লিংক পাঠিয়েছি।", "codeLabel": "কোড", "codeHint": "ইমেইলের কোডটি লিখুন, অথবা এর লিংকটি এই ব্রাউজারে খুলুন।", "codeHasLetters": "আপনার কোডে কি অক্ষর আছে?", "codeDigitsOnly": "আপনার কোড কি শুধু সংখ্যা?", "resend": "নতুন ইমেইল পাঠান", "resendIn": "{{seconds}} সেকেন্ড পরে নতুন ইমেইল পাঠান", "resent": "আমরা একটি নতুন ইমেইল পাঠিয়েছি।", "retryLater": "আমরা ইতিমধ্যে কয়েকটি ইমেইল পাঠিয়েছি। কয়েক মিনিট অপেক্ষা করে আবার চেষ্টা করুন।", "usePassword": "এর বদলে পাসওয়ার্ড ব্যবহার করুন", "differentAccount": "অন্য অ্যাকাউন্ট ব্যবহার করুন" }, "password": { "title": "আপনার পাসওয়ার্ড লিখুন", "label": "পাসওয়ার্ড", "required": "আপনার পাসওয়ার্ড লিখুন।", "forgot": "ভুলে গেছেন? ইমেইলে কোড নিন" }, "secondFactor": { "title": "দুই-ধাপের যাচাইকরণ", "description": "আপনার অথেনটিকেটর অ্যাপের কোডটি লিখুন।", "backupDescription": "আপনার একটি ব্যাকআপ কোড লিখুন। প্রতিটি কোড একবারই কাজ করে।", "label": "অথেনটিকেটর কোড", "backupLabel": "ব্যাকআপ কোড", "useBackup": "ব্যাকআপ কোড ব্যবহার করুন", "useAuthenticator": "অথেনটিকেটর অ্যাপ ব্যবহার করুন" }, "link": { "approvedTitle": "আপনি সাইন ইন করেছেন", "approvedDescription": "যে অ্যাপে সাইন ইন করতে চেয়েছিলেন সেখানে ফিরে যান: সেটি নিজে থেকেই চালু হবে। আপনি এই ট্যাবটি বন্ধ করতে পারেন।", "otherDeviceTitle": "একই ব্রাউজারে লিংকটি খুলুন", "otherDeviceDescription": "এই লিংক শুধু সেই ব্রাউজারে কাজ করে যেখানে আপনি সাইন ইন করতে চেয়েছিলেন। সেখানে খুলুন, অথবা ইমেইলের কোডটি অ্যাপে লিখুন।", "invalidTitle": "এই লিংকটি ব্যবহার করা যাবে না", "invalidDescription": "এর মেয়াদ শেষ হয়েছে বা এটি আগেই ব্যবহার করা হয়েছে। অ্যাপে নতুন ইমেইল চান, অথবা সর্বশেষ ইমেইলের কোডটি লিখুন।" } }, "signup": { "title": "আপনার অ্যাকাউন্ট তৈরি করুন", "subtitle": "আপনার ইউজারনেম বেছে নিন। তারপর আমরা আপনার ইমেইল নিশ্চিত করব।", "createInCommons": "এর বদলে Commons-এ তৈরি করুন", "backToSignInLink": "আগে থেকেই অ্যাকাউন্ট আছে? সাইন ইন করুন", "username": { "label": "ইউজারনেম", "placeholder": [43], "required": "একটি ইউজারনেম বেছে নিন।", "taken": "এই ইউজারনেমটি আগেই নেওয়া হয়েছে।" }, "email": { "title": "আপনার ইমেইল কী?", "subtitle": "এটি দিয়েই আপনি সাইন ইন করবেন: প্রতিবার আমরা একটি কোড পাঠাব। অন্য কেউ এটি দেখতে পাবে না।", "label": "ইমেইল", "placeholder": [2], "invalid": "একটি সঠিক ইমেইল ঠিকানা লিখুন।" }, "commonsSubtitle": "অথবা Commons-এ আপনার পরিচয় তৈরি করুন এবং নিজের কী নিজের কাছে রাখুন।", "laterNote": "পরে আপনার অ্যাকাউন্টের নিরাপত্তা সেটিংসে পাসওয়ার্ড বা অথেনটিকেটর অ্যাপ যোগ করতে পারবেন।" }, "accountSwitcher": { "loading": "অ্যাকাউন্ট লোড হচ্ছে...", "qrHeadline": "আপনার Oxy পরিচয় দিয়ে সাইন ইন করুন", "signInWithOxy": "Oxy দিয়ে সাইন ইন করুন", "signUpWithOxy": "Oxy দিয়ে সাইন আপ করুন", "getCommons": "Commons নিন", "commonsNotInstalled": "Commons নেই? আপনার Oxy ID দিয়ে সাইন ইন করতে অ্যাপটি নিন।", "showQrAnyway": "অন্য ডিভাইসে আমার Commons আছে", "switchWhileSignedInAs": "অ্যাকাউন্ট বদলান, {{name}} হিসেবে সাইন ইন করা আছে", "manageOnDevice": "এই ডিভাইসের অ্যাকাউন্টগুলো পরিচালনা করুন", "continueWithOxy": "Oxy দিয়ে চালিয়ে যান", "havingTrouble": "সমস্যা হচ্ছে?", "progress": { "preparing": "অনুরোধ তৈরি হচ্ছে", "awaitingApproval": "অনুমোদনের অপেক্ষায়", "scanWithCommons": "আপনার ফোনের Commons দিয়ে স্ক্যান করুন", "continueInCommons": "Commons-এ চালিয়ে যান", "checkCommons": "আপনার ফোনে Commons দেখুন", "openedInCommons": "Commons-এ খোলা হয়েছে", "confirming": "পরিচয় নিশ্চিত করা হচ্ছে", "confirmed": "পরিচয় নিশ্চিত হয়েছে" }, "signInFailures": { "denied": "Commons-এ সাইন-ইন প্রত্যাখ্যান করা হয়েছে।", "expired": "এই সাইন-ইন অনুরোধের মেয়াদ শেষ। অনুগ্রহ করে আবার চেষ্টা করুন।", "network": "Oxy-তে সংযোগ করা যায়নি। আপনার সংযোগ পরীক্ষা করে আবার চেষ্টা করুন।", "notConfigured": "এই অ্যাপে এখনও সাইন-ইন চালু করা হয়নি।", "unsupportedFlow": "এই সাইন-ইন এখানে সম্পন্ন করা যাবে না।", "claimFailed": "সাইন-ইন অনুমোদিত হয়েছে, কিন্তু আমরা তা শেষ করতে পারিনি। অনুগ্রহ করে আবার চেষ্টা করুন।", "generic": "সাইন ইন ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।" }, "linkOpenFailed": "লিংকটি খোলা যায়নি। অনুগ্রহ করে আবার চেষ্টা করুন।" }, "common": { "stepOf": "ধাপ {{step}}/{{total}}", "actions": { "back": "পিছনে", "continue": "চালিয়ে যান", "next": "পরবর্তী", "getStarted": "শুরু করুন", "createAccount": "অ্যাকাউন্ট তৈরি করুন", "signIn": "সাইন ইন", "verify": "যাচাই করুন", "resetPassword": "পাসওয়ার্ড রিসেট করুন", "signedOut": "সাইন আউট হয়েছে", "close": "বন্ধ করুন", "tryAgain": "আবার চেষ্টা করুন" }, "links": { "recoverAccount": "আপনার অ্যাকাউন্ট পুনরুদ্ধার করুন", "signUp": "সাইন আপ" }, "labels": { "username": "ইউজারনেম", "email": "ইমেইল", "password": "পাসওয়ার্ড", "confirmPassword": "পাসওয়ার্ড নিশ্চিত করুন" }, "revoke": "প্রত্যাহার করুন", "errors": { "signOutAllFailed": "সব অ্যাকাউন্ট থেকে সাইন আউট করতে সমস্যা হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।" } }, "notifications": { "title": "নোটিফিকেশন", "subtitle": "পুশ, ইমেইল ও নিরাপত্তা সতর্কতা পরিচালনা করুন", "updateError": "নোটিফিকেশন পছন্দ আপডেট করা যায়নি", "sections": { "channels": "চ্যানেল", "alerts": "সতর্কতা", "marketing": "মার্কেটিং" }, "items": { "push": { "title": "পুশ নোটিফিকেশন", "subtitle": "আপনার ডিভাইসে তাৎক্ষণিক সতর্কতা" }, "emailDigest": { "title": "ইমেইল সারসংক্ষেপ", "subtitle": "আপনার অ্যাকাউন্টের কার্যকলাপের নিয়মিত সারসংক্ষেপ" }, "securityAlerts": { "title": "নিরাপত্তা সতর্কতা", "subtitle": "সাইন-ইন, পুনরুদ্ধার কোড ও কী পরিবর্তন" }, "marketingEmails": { "title": "মার্কেটিং ইমেইল", "subtitle": "পণ্যের খবর ও মাঝেমধ্যে অফার" } } }, "preferences": { "title": "পছন্দসমূহ", "subtitle": "থিম, মোশন ও আঞ্চলিক সেটিংস", "sections": { "appearance": "চেহারা", "language": "ভাষা", "region": "অঞ্চল" }, "theme": { "light": "লাইট", "dark": "ডার্ক", "system": "সিস্টেম ডিফল্ট" }, "items": { "theme": { "title": "থিম" }, "reduceMotion": { "title": "মোশন কমান", "subtitle": "Oxy অ্যাপগুলোতে অ্যানিমেশন কমিয়ে রাখুন", "systemOn": "সিস্টেম অনুসরণ করছে: মোশন কমানো চালু আছে" }, "language": { "title": "ভাষা" }, "timezone": { "title": "টাইমজোন", "unknown": "টাইমজোন শনাক্ত করা যায়নি" }, "about": { "title": "পছন্দসমূহ সম্পর্কে", "subtitle": "আপনি যেসব Oxy অ্যাপে সাইন ইন করেন, সবগুলোতে পছন্দসমূহ সিঙ্ক হয়" } } }, "connectedApps": { "title": "সংযুক্ত অ্যাপ", "subtitle": "তৃতীয় পক্ষের অ্যাপের অ্যাক্সেস পরিচালনা করুন", "empty": { "title": "কোনো সংযুক্ত অ্যাপ নেই", "subtitle": "যেসব অ্যাপকে আপনার Oxy অ্যাকাউন্ট দিয়ে সাইন ইন করার অনুমতি দেবেন, সেগুলো এখানে দেখা যাবে" }, "item": { "granted": "অনুমতি দেওয়া হয়েছে {{relative}}", "lastUsed": "শেষ ব্যবহার {{relative}}" }, "confirm": { "title": "অ্যাক্সেস প্রত্যাহার করুন", "message": "আপনার Oxy অ্যাকাউন্টে {{name}}-এর অ্যাক্সেস প্রত্যাহার করবেন?" }, "toasts": { "revoked": "{{name}}-এর অ্যাক্সেস প্রত্যাহার করা হয়েছে", "revokeFailed": "অ্যাক্সেস প্রত্যাহার করা যায়নি" } }, "accountMenu": { "label": "অ্যাকাউন্ট মেনু", "manage": "আপনার Oxy অ্যাকাউন্ট পরিচালনা করুন", "viewProfile": "প্রোফাইল দেখুন", "addAnother": "আরেকটি অ্যাকাউন্ট যোগ করুন", "signOutAll": "সব অ্যাকাউন্ট থেকে সাইন আউট করুন", "open": "অ্যাকাউন্ট মেনু", "openHint": "অ্যাকাউন্ট মেনু খোলে", "openWithUser": "{{name}}-এর অ্যাকাউন্ট মেনু", "switching": "অ্যাকাউন্ট বদলানো হচ্ছে…", "signOutAccount": "{{name}} সাইন আউট করুন", "greeting": "হাই, {{name}}!", "switchAccount": "অ্যাকাউন্ট বদলান", "storage": { "title": "Oxy স্টোরেজ", "usage": "{{total}}-এর মধ্যে {{used}} ব্যবহৃত", "used": "ব্যবহৃত", "free": "খালি", "unavailable": "ব্যবহারের বিবরণ পাওয়া যাচ্ছে না", "upgrade": "প্ল্যান আপগ্রেড করুন", "manage": "স্টোরেজ পরিচালনা করুন" }, "data": "Oxy-তে আপনার ডেটা", "settings": "Oxy সেটিংস", "help": "সাহায্য ও মতামত", "signOut": "সাইন আউট", "privacy": "গোপনীয়তা নীতি", "terms": "পরিষেবার শর্তাবলি" }, "emailCode": { "title": "আপনার ইমেইল দেখুন", "sentTo": "আমরা {{email}}-এ একটি ৬-সংখ্যার কোড পাঠিয়েছি।", "label": "কোড", "resend": "নতুন কোড পাঠান", "resent": "আমরা একটি নতুন কোড পাঠিয়েছি।", "changeEmail": "অন্য ইমেইল ব্যবহার করুন", "errors": { "codeInvalid": "কোডটি সঠিক নয়, অথবা এর মেয়াদ শেষ হয়ে গেছে।", "tooManyAttempts": "অনেকবার ভুল কোড দেওয়া হয়েছে। নতুন কোড চান।", "expired": "অনেক সময় লেগে গেছে। আবার শুরু করুন।", "unavailable": "Oxy এখন ইমেইল পাঠাতে পারছে না। পরে আবার চেষ্টা করুন।", "rateLimited": "অনেকগুলো কোড চাওয়া হয়েছে। পরে আবার চেষ্টা করুন।" } }, "deleteAccount": { "keyless": { "subtitle": "@{{username}} এবং এর সবকিছু চিরতরে মুছে যাবে। আপনার ইউজারনেম লিখুন, তারপর আমাদের ইমেইল করা কোড দিয়ে নিশ্চিত করুন।", "action": "অ্যাকাউন্ট মুছুন", "done": "আপনার অ্যাকাউন্ট মুছে ফেলা হয়েছে।", "doneDescription": "আপনাকে সাইন আউট করা হয়েছে।", "keyed": "এই অ্যাকাউন্টটি Commons ব্যবহার করে: এর কী দিয়ে Oxy Commons-এ, সেটিংস > অ্যাকাউন্ট মুছুন-এ গিয়ে মুছুন।" }, "handoff": { "elsewhereMessage": "অ্যাকাউন্ট মুছতে আপনার পরিচয় কী লাগবে, আর সেটি এই ডিভাইসে নেই। যে ডিভাইসে কী আছে সেখানে Oxy Commons খুলে সেটিংস > অ্যাকাউন্ট মুছুন-এ যান।" } }, "linkCommons": { "title": "Commons লিংক করুন", "subtitle": "নিজের কী নিজের কাছে রাখুন: Commons লিংক করলে এই অ্যাকাউন্ট শুধু আপনার। এর ইমেইল মুছে যাবে, আর Commons-এ থাকা আপনার রিকভারি ফ্রেজ দিয়েই আবার প্রবেশ করবেন।", "scan": "আপনার ফোনে Commons খুলুন, “ওয়েবে আমার Oxy অ্যাকাউন্ট আছে” বেছে নিন এবং এই কোডটি স্ক্যান করুন।", "waiting": "Commons-এর অপেক্ষায়…", "compareTitle": "কোডটি মিলিয়ে দেখুন", "compare": "Commons-এ একই কোড দেখাবে। না দেখালে বাতিল করুন।", "confirm": "হ্যাঁ, Commons লিংক করুন", "cancel": "বাতিল", "doneTitle": "Commons লিংক হয়েছে", "done": "এই অ্যাকাউন্ট এখন নিজের হেফাজতে। এর ইমেইল মুছে ফেলা হয়েছে: Commons-এ থাকা আপনার রিকভারি ফ্রেজ দিয়েই আবার প্রবেশ করবেন।", "already": "এই অ্যাকাউন্ট আগে থেকেই Commons ব্যবহার করে।", "expired": "এই কোডের মেয়াদ শেষ।", "renew": "নতুন কোড দেখান", "failed": "Commons লিংক করা যায়নি। আবার চেষ্টা করুন।", "confirmTitle": "লিংক নিশ্চিত করুন", "confirmDescription": "শেষ করতে, আমাদের ইমেইল করা কোড দিয়ে নিশ্চিত করুন যে এটি আপনি।", "confirmPasswordDescription": "শেষ করতে, আপনার পাসওয়ার্ড দিয়ে নিশ্চিত করুন যে এটি আপনি।", "row": "Commons দিয়ে নিজের কী নিজের কাছে রাখুন" }, "reauth": { "title": "নিশ্চিত করুন যে এটি আপনি", "emailDescription": "এই পরিবর্তন নিশ্চিত করতে আমরা আপনার ইমেইলে একটি কোড পাঠাব।", "sendCode": "কোড পাঠান", "codeSent": "আমরা আপনার ইমেইলে একটি ৬-সংখ্যার কোড পাঠিয়েছি।", "codeLabel": "ইমেইলের কোড", "passwordLabel": "বর্তমান পাসওয়ার্ড", "usePassword": "এর বদলে পাসওয়ার্ড ব্যবহার করুন", "useEmail": "এর বদলে ইমেইলে কোড নিন", "errors": { "invalid": "কাজ হয়নি। যা লিখেছেন তা পরীক্ষা করে আবার চেষ্টা করুন।", "totpRequired": "আপনার অথেনটিকেটর অ্যাপের কোডটিও লিখুন।" } }, "signInSecurity": { "title": "সাইন-ইন ও নিরাপত্তা", "subtitle": "ইমেইল, পাসওয়ার্ড, অথেনটিকেটর অ্যাপ এবং কোথায় সাইন ইন করা আছে", "methodsTitle": "আপনি যেভাবে সাইন ইন করেন", "notPersonal": "শুধু ব্যক্তিগত অ্যাকাউন্ট ইমেইল, পাসওয়ার্ড বা অথেনটিকেটর অ্যাপ দিয়ে সাইন ইন করে।", "loadFailed": "এই অ্যাকাউন্ট কীভাবে সাইন ইন করে তা লোড করা যায়নি।", "retry": "আবার চেষ্টা করুন", "noEmailWarning": "এই অ্যাকাউন্টে কোনো ইমেইল নেই। আপনি শুধু পাসওয়ার্ড দিয়ে সাইন ইন করেন, আর সেটি ভুলে গেলে অ্যাকাউন্ট ফিরে পাওয়ার কোনো উপায় নেই।", "status": { "on": "চালু", "off": "বন্ধ" }, "commons": { "title": [1] }, "errors": { "lastSignInMethod": "সাইন ইন করার এটিই আপনার একমাত্র উপায়। আগে আরেকটি উপায় যোগ করুন।", "passwordRequired": "আগে একটি পাসওয়ার্ড সেট করুন, এবং সেটি দিয়ে নিশ্চিত করুন।", "emailUnchanged": "এটি আগে থেকেই আপনার ইমেইল।" }, "email": { "title": "ইমেইল", "none": "কোনো ইমেইল নেই", "description": "সাইন-ইন কোড, সাইন-ইন লিংক ও নিরাপত্তা বিজ্ঞপ্তি এই ঠিকানায় যায়।", "noneDescription": "কোড বা লিংক দিয়ে সাইন ইন করতে, এবং পাসওয়ার্ড ভুলে গেলে অ্যাকাউন্ট ফিরে পেতে একটি ইমেইল যোগ করুন।", "change": "ইমেইল বদলান", "add": "একটি ইমেইল যোগ করুন", "remove": "ইমেইল সরান", "removeNeedsPassword": "ইমেইল সরাতে আগে একটি পাসওয়ার্ড সেট করুন: সেটিই হবে সাইন ইন করার একমাত্র উপায়।", "newLabel": "নতুন ইমেইল ঠিকানা", "newDescription": "ঠিকানাটি আপনার কিনা যাচাই করতে আমরা নতুন ঠিকানায় একটি কোড পাঠাব।", "invalid": "একটি সঠিক ইমেইল ঠিকানা লিখুন।", "sendCode": "কোড পাঠান", "confirmTitle": "নতুন ইমেইল নিশ্চিত করুন", "confirmDescription": "{{email}}-এ পাঠানো কোডটি লিখুন, তারপর নিশ্চিত করুন যে এটি আপনি।", "codeLabel": "নতুন ইমেইলে পাঠানো কোড", "save": "ইমেইল সংরক্ষণ করুন", "saved": "আপনার ইমেইল আপডেট হয়েছে। অন্য ডিভাইসগুলো থেকে সাইন আউট করা হয়েছে।", "removeTitle": "আপনার ইমেইল সরান", "removeDescription": "আপনি শুধু পাসওয়ার্ড দিয়ে সাইন ইন করবেন। সেটি ভুলে গেলে অ্যাকাউন্ট ফিরে পাওয়ার কোনো উপায় নেই। আপনার পাসওয়ার্ড দিয়ে নিশ্চিত করুন।", "removed": "আপনার ইমেইল সরানো হয়েছে। অন্য ডিভাইসগুলো থেকে সাইন আউট করা হয়েছে।" }, "password": { "title": "পাসওয়ার্ড", "setTitle": "পাসওয়ার্ড সেট করুন", "changeTitle": "আপনার পাসওয়ার্ড বদলান", "description": "ইমেইলের কোডের বদলে পাসওয়ার্ড দিয়ে সাইন ইন করুন। কমপক্ষে {{min}}টি অক্ষর ব্যবহার করুন।", "newLabel": "নতুন পাসওয়ার্ড", "repeatLabel": "পাসওয়ার্ডটি আবার লিখুন", "tooShort": "কমপক্ষে {{min}}টি অক্ষর ব্যবহার করুন।", "mismatch": "পাসওয়ার্ড দুটি মিলছে না।", "signOutOthers": "অন্য সব জায়গা থেকে সাইন আউট করুন", "save": "পাসওয়ার্ড সংরক্ষণ করুন", "saved": "আপনার পাসওয়ার্ড সংরক্ষিত হয়েছে।", "row": "ঐচ্ছিক: পাসওয়ার্ড দিয়ে সাইন ইন", "remove": "পাসওয়ার্ড সরান", "removeTitle": "আপনার পাসওয়ার্ড সরান", "removeDescription": "আপনি ইমেইলে পাঠানো কোড বা লিংক দিয়ে সাইন ইন করবেন।", "removed": "আপনার পাসওয়ার্ড সরানো হয়েছে। অন্য ডিভাইসগুলো থেকে সাইন আউট করা হয়েছে।" }, "totp": { "title": "অথেনটিকেটর অ্যাপ", "description": "ইমেইল কোড বা পাসওয়ার্ডের পরে Oxy আরও একটি কোড চাইবে, যা Google Authenticator বা 1Password-এর মতো অ্যাপ থেকে আসবে।", "setUp": "সেট আপ করুন", "scan": "আপনার অথেনটিকেটর অ্যাপ দিয়ে এই QR কোডটি স্ক্যান করুন, অথবা সেটআপ কী লিখুন।", "secretLabel": "সেটআপ কী", "codeLabel": "অ্যাপের কোড", "enable": "চালু করুন", "enabled": "অথেনটিকেটর অ্যাপ চালু আছে।", "disable": "অথেনটিকেটর অ্যাপ বন্ধ করুন", "disabled": "অথেনটিকেটর অ্যাপ বন্ধ আছে।", "on": "চালু", "off": "বন্ধ", "backupTitle": "আপনার ব্যাকআপ কোড সংরক্ষণ করুন", "backupDescription": "ফোন হারালে প্রতিটি কোড দিয়ে একবার সাইন ইন করা যাবে। কোডগুলো নিরাপদ কোথাও রাখুন: এগুলো আর দেখানো হবে না।", "copy": "কোড কপি করুন", "copied": "ব্যাকআপ কোড কপি হয়েছে।", "savedThem": "আমি সংরক্ষণ করেছি", "regenerate": "নতুন ব্যাকআপ কোড নিন", "regenerateDescription": "আপনার পুরোনো ব্যাকআপ কোডগুলো আর কাজ করবে না।", "remaining": "{{count}}টি ব্যাকআপ কোড বাকি", "row": "সাইন ইন করার সময় একটি দ্বিতীয় ধাপ", "onWithCodes": "চালু · {{count}}টি ব্যাকআপ কোড বাকি" } }, "fileManagement": { "deleteFile": "ফাইল মুছুন", "confirm": "নিশ্চিত করুন", "retry": "আবার চেষ্টা করুন", "loadError": { "description": "কিছু একটা সমস্যা হয়েছে। আপনার সংযোগ পরীক্ষা করে আবার চেষ্টা করুন।" }, "moveToTrash": "ট্র্যাশে সরান", "moveToTrashCount": "ট্র্যাশে সরান ({{count}})", "appAccess": { "title": "যেসব অ্যাপের অ্যাক্সেস আছে", "description": "এই অ্যাপগুলো নিজে থেকেই এই ফাইলটি খুলতে পারে। অ্যাক্সেস সরাতে কোনো অ্যাপ প্রত্যাহার করুন।", "empty": "কোনো অ্যাপ নিজে থেকে এই ফাইলটি খুলতে পারে না।", "loadError": "যেসব অ্যাপ এই ফাইলটি খুলতে পারে সেগুলো লোড করা যায়নি", "via": { "upload": "আপনার জন্য এই ফাইলটি সংরক্ষণ করেছে", "link": "আপনি শেয়ার করেছেন" }, "revoke": "প্রত্যাহার করুন", "confirm": { "title": "{{name}} প্রত্যাহার করবেন?", "message": "{{name}} আর এই ফাইলটি খুলতে পারবে না, এবং এটি যে প্লেব্যাক শুরু করেছে তা এখনই থেমে যাবে।" }, "toasts": { "revoked": "{{name}} আর এই ফাইলটি খুলতে পারবে না", "revokeFailed": "{{name}}-এর অ্যাক্সেস প্রত্যাহার করা যায়নি" }, "a11y": { "revoke": "এই ফাইলে {{name}}-এর অ্যাক্সেস প্রত্যাহার করুন" } }, "trashView": { "title": "ট্র্যাশ", "subtitle": "ফাইল পুনরুদ্ধার করুন বা স্থায়ীভাবে মুছুন", "notice": "পুনরুদ্ধার বা মুছে না ফেলা পর্যন্ত ফাইলগুলো ট্র্যাশে থাকে, এবং এগুলো আপনার স্টোরেজেও গণ্য হয়।", "emptyTitle": "ট্র্যাশ খালি", "emptyDescription": "ট্র্যাশে সরানো ফাইলগুলো এখানে দেখা যাবে। আপনি সেগুলো পুনরুদ্ধার করতে বা স্থায়ীভাবে মুছতে পারবেন।", "trashedOn": "ট্র্যাশে সরানো হয়েছে {{date}}", "deleteForever": "স্থায়ীভাবে মুছুন", "loadError": "আপনার ট্র্যাশ লোড করা যায়নি", "a11y": { "restore": "{{name}} পুনরুদ্ধার করুন", "deleteForever": "{{name}} স্থায়ীভাবে মুছুন" } }, "a11y": { "moveToTrash": "{{name}} ট্র্যাশে সরান", "deleteFile": "{{name}} মুছুন", "openTrash": "ট্র্যাশ খুলুন" }, "toasts": { "movedToTrash": "ট্র্যাশে সরানো হয়েছে। ট্র্যাশ থেকে এটি পুনরুদ্ধার করতে পারবেন।", "bulkMovedToTrash": "{{count}}টি ফাইল ট্র্যাশে সরানো হয়েছে", "moveToTrashFailed": "ফাইলটি ট্র্যাশে সরানো যায়নি", "restored": "ফাইল পুনরুদ্ধার করা হয়েছে", "notInTrash": "এই ফাইলটি আর ট্র্যাশে নেই।", "restoreFailed": "ফাইলটি পুনরুদ্ধার করা যায়নি", "deletedForever": "ফাইল স্থায়ীভাবে মুছে ফেলা হয়েছে", "deleteSuccess": "ফাইল সফলভাবে মুছে ফেলা হয়েছে", "deleteFailed": "ফাইল মোছা যায়নি", "fileNotFound": "ফাইল পাওয়া যায়নি। হয়তো এটি আগেই মুছে ফেলা হয়েছে।", "noPermission": "এই ফাইলটি মোছার অনুমতি আপনার নেই।", "bulkDeleteSuccess": "{{count}}টি ফাইল সফলভাবে মুছে ফেলা হয়েছে", "bulkDeleteFailed": "{{count}}টি ফাইল মোছা যায়নি", "bulkDeleteError": "ফাইলগুলো মোছা যায়নি" }, "confirms": { "deleteFile": "আপনি কি নিশ্চিত যে \"{{filename}}\" মুছতে চান? এটি আর ফেরানো যাবে না।", "moveToTrash": "\"{{filename}}\" ট্র্যাশে সরাবেন? এটি আর কোথাও দেখানো হবে না, এবং ট্র্যাশ থেকে পুনরুদ্ধার করতে পারবেন।", "moveFilesToTrash": "{{count}}টি ফাইল ট্র্যাশে সরাবেন? এগুলো আর কোথাও দেখানো হবে না, এবং ট্র্যাশ থেকে পুনরুদ্ধার করতে পারবেন।", "deleteForever": "\"{{filename}}\" স্থায়ীভাবে মুছবেন? এটি আর ফেরানো যাবে না।", "deleteForeverInUse": "\"{{filename}}\" এখনও আপনার অ্যাপগুলোর {{count}}টি জায়গায় ব্যবহৃত হচ্ছে। মুছলে সেখান থেকেও সরে যাবে। স্থায়ীভাবে মুছবেন?" } }, "follow": { "pending": "অনুরোধ পাঠানো হয়েছে", "disabled": "এখানে বন্ধ", "named": "{{label}} {{name}}", "verbs": { "follow": { "idle": "ফলো করুন", "active": "ফলো করছেন", "everywhere": "সব জায়গায় আনফলো করুন", "undo": "এই অ্যাকাউন্টটি আনফলো করে", "undoNamed": "{{name}}-কে আনফলো করে", "checking": "ফলো স্ট্যাটাস দেখা হচ্ছে", "checkingNamed": "আপনি {{name}}-কে ফলো করেন কিনা দেখা হচ্ছে" }, "subscribe": { "idle": "সাবস্ক্রাইব করুন", "active": "সাবস্ক্রাইব করা হয়েছে", "everywhere": "সব জায়গায় আনসাবস্ক্রাইব করুন", "undo": "আনসাবস্ক্রাইব করে", "undoNamed": "{{name}} থেকে আনসাবস্ক্রাইব করে", "checking": "সাবস্ক্রিপশন স্ট্যাটাস দেখা হচ্ছে", "checkingNamed": "আপনি {{name}}-এ সাবস্ক্রাইব করেছেন কিনা দেখা হচ্ছে" }, "join": { "idle": "যোগ দিন", "active": "যোগ দিয়েছেন", "everywhere": "সব জায়গা থেকে বেরিয়ে যান", "undo": "বেরিয়ে যায়", "undoNamed": "{{name}} থেকে বেরিয়ে যায়", "checking": "সদস্যপদ দেখা হচ্ছে", "checkingNamed": "আপনি {{name}}-এর সদস্য কিনা দেখা হচ্ছে" }, "watch": { "idle": "নজর রাখুন", "active": "নজর রাখছেন", "everywhere": "সব জায়গায় নজর রাখা বন্ধ করুন", "undo": "নজর রাখা বন্ধ করে", "undoNamed": "{{name}}-এর ওপর নজর রাখা বন্ধ করে", "checking": "নজর রাখার স্ট্যাটাস দেখা হচ্ছে", "checkingNamed": "আপনি {{name}}-এর ওপর নজর রাখছেন কিনা দেখা হচ্ছে" } }, "all": { "idle": "সবাইকে ফলো করুন", "hint": "{{count}}টি অ্যাকাউন্টের সবগুলোকে ফলো করে", "hintOne": "{{count}}টি অ্যাকাউন্ট ফলো করে", "undoHint": "{{count}}টি অ্যাকাউন্টের সবগুলোকে আনফলো করে", "undoHintOne": "{{count}}টি অ্যাকাউন্ট আনফলো করে" }, "menu": { "forDuration": "{{duration}}-এর জন্য {{label}}", "showIn": "{{app}}-এ দেখান", "hideIn": "{{app}}-এ দেখাবেন না", "thisApp": "এই অ্যাপ", "options": "{{label}} অপশন", "optionsHint": "আরও অপশন খোলে" }, "durations": { "day": "২৪ ঘণ্টা", "threeDays": "৭২ ঘণ্টা", "week": "এক সপ্তাহ" }, "errors": { "update": "ফলো স্ট্যাটাস আপডেট করা যায়নি", "read": "ফলো স্ট্যাটাস দেখা যায়নি", "mode": "এই ফলোর জন্য এই অ্যাপের সেটিং বদলানো যায়নি", "offline": "আপনি অফলাইনে আছেন। আপনার সংযোগ পরীক্ষা করে আবার চেষ্টা করুন।", "signedOut": "চালিয়ে যেতে আবার সাইন ইন করুন", "forbidden": "এই অ্যাপের এটি করার অনুমতি নেই", "notFound": "এটি আর পাওয়া যাচ্ছে না", "rateLimited": "অনেকবার চেষ্টা করা হয়েছে। একটু পরে আবার চেষ্টা করুন।" } }, "accounts": { "accountCategory": { "news": "সংবাদ", "politics": "রাজনীতি ও নীতি", "business": "ব্যবসা", "startup": "স্টার্টআপ ও উদ্যোক্তা", "finance": "অর্থ ও বিনিয়োগ", "crypto": "ক্রিপ্টো ও ওয়েব৩", "marketplace": "মার্কেটপ্লেস ও শ্রেণিবদ্ধ বিজ্ঞাপন", "retail": "খুচরা ও ই-কমার্স", "real_estate": "রিয়েল এস্টেট", "agency": "রিয়েল এস্টেট এজেন্সি", "landlord": "বাড়িওয়ালা ও সম্পত্তি ব্যবস্থাপনা", "cooperative": "আবাসন সমবায়", "architecture": "স্থাপত্য ও নির্মাণ", "technology": "প্রযুক্তি", "software": "সফটওয়্যার ও ডেভেলপমেন্ট", "ai": "এআই ও মেশিন লার্নিং", "security": "নিরাপত্তা ও গোপনীয়তা", "automation": "অটোমেশন ও টুলস", "science": "বিজ্ঞান ও গবেষণা", "education": "শিক্ষা ও প্রশিক্ষণ", "books": "বই ও লেখালেখি", "health": "স্বাস্থ্য ও চিকিৎসা", "fitness": "ফিটনেস ও সুস্থতা", "sports": "খেলাধুলা", "gaming": "গেমিং ও ই-স্পোর্টস", "music": "সংগীত", "film": "চলচ্চিত্র ও টিভি", "podcast": "পডকাস্ট ও অডিও", "art": "শিল্প ও ডিজাইন", "photography": "ফটোগ্রাফি", "comedy": "কমেডি", "food": "খাবার ও পানীয়", "travel": "ভ্রমণ ও স্থান", "fashion": "ফ্যাশন ও সৌন্দর্য", "home_garden": "বাড়ি ও বাগান", "diy": "DIY ও হাতের কাজ", "automotive": "গাড়ি ও মোটরিং", "animals": "প্রাণী ও পোষা প্রাণী", "family": "পরিবার ও প্যারেন্টিং", "nonprofit": "অলাভজনক ও দাতব্য", "government": "সরকার ও সরকারি খাত", "community": "স্থানীয় কমিউনিটি", "activism": "অ্যাক্টিভিজম ও অ্যাডভোকেসি", "environment": "পরিবেশ ও টেকসই উন্নয়ন", "religion": "ধর্ম ও আধ্যাত্মিকতা", "other": "অন্যান্য" }, "members": { "title": "সদস্য" }, "settings": { "title": "অ্যাকাউন্ট সেটিংস", "subtitle": "এই অ্যাকাউন্টের প্রোফাইল, সদস্য ও অ্যাক্সেস পরিচালনা করুন।", "save": "পরিবর্তন সংরক্ষণ করুন", "displayName": { "label": "প্রদর্শিত নাম", "invalidChars": "শুধু অক্ষর, স্পেস, অ্যাপোস্ট্রফি ও নাম বিভাজক ব্যবহার করুন", "invalidTitle": "< বা > ছাড়া সাধারণ লেখা ব্যবহার করুন (সর্বোচ্চ ৩০০ অক্ষর)" }, "bio": { "label": "বায়ো (ঐচ্ছিক)" }, "picture": { "change": "ছবি বদলান" }, "categories": { "title": "ক্যাটাগরি", "footer": "প্রথম ক্যাটাগরিটি প্রোফাইলে প্রধান হিসেবে দেখানো হয়। সর্বোচ্চ {{max}}টি।", "primary": "প্রধান", "makePrimary": "প্রধান করুন", "remove": "{{category}} সরান", "add": "একটি ক্যাটাগরি যোগ করুন", "atCap": "সর্বোচ্চ {{max}}টি। আরেকটি যোগ করতে একটি সরান।", "unavailable": "অনুপলভ্য ক্যাটাগরি" }, "sections": { "access": "অ্যাক্সেস", "dangerZone": "বিপজ্জনক এলাকা" }, "members": { "subtitle": "মানুষকে আমন্ত্রণ জানান ও ভূমিকা পরিচালনা করুন" }, "archive": { "title": "অ্যাকাউন্ট আর্কাইভ করুন", "subtitle": "এই অ্যাকাউন্ট নিষ্ক্রিয় করুন", "confirmTitle": "অ্যাকাউন্ট আর্কাইভ করুন", "confirmDescription": "এই অ্যাকাউন্ট আর্কাইভ করবেন? এটি নিষ্ক্রিয় হয়ে যাবে এবং এর সদস্যরা অ্যাক্সেস হারাবেন।" }, "errors": { "missingAccount": "কোনো অ্যাকাউন্ট বেছে নেওয়া হয়নি।" }, "toasts": { "saved": "অ্যাকাউন্ট আপডেট হয়েছে", "saveFailed": "অ্যাকাউন্ট আপডেট করা যায়নি", "archived": "অ্যাকাউন্ট আর্কাইভ করা হয়েছে", "archiveFailed": "অ্যাকাউন্ট আর্কাইভ করা যায়নি" } } } });
|