Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/fixes/16647-tr-untranslated-ui-strings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(i18n):** UI strings of the Turkish locale were still English (the quota-share time windows, the Codex cooldown and paid credits, the proxy subscription core errors, the per-model concurrency caps, the request timeline labels); they are now translated with the wording of the neighbouring tr keys ([#16647](https://github.com/diegosouzapw/OmniRoute/pull/16647)) — thanks @pacocartones.
122 changes: 61 additions & 61 deletions src/i18n/messages/tr.json
Original file line number Diff line number Diff line change
Expand Up @@ -5268,11 +5268,11 @@
}
},
"providers": {
"codexReleaseCooldown": "Clear local cooldown",
"codexReleaseCooldownHint": "Allow this Codex account to be tried again. Does not redeem a reset credit or change upstream limits.",
"codexReleasingCooldown": "Clearing…",
"codexCooldownReleased": "Local cooldown cleared.",
"codexCooldownReleaseFailed": "Could not clear cooldown. Please try again.",
"codexReleaseCooldown": "Yerel bekleme süresini temizle",
"codexReleaseCooldownHint": "Bu Codex hesabının yeniden denenmesine izin verir. Bir sıfırlama kredisi kullanmaz ve yukarı akış limitlerini değiştirmez.",
"codexReleasingCooldown": "Temizleniyor…",
"codexCooldownReleased": "Yerel bekleme süresi temizlendi.",
"codexCooldownReleaseFailed": "Bekleme süresi temizlenemedi. Lütfen tekrar deneyin.",
"title": "Sağlayıcılar",
"Account Deactivated": "Hesap Devre Dışı Bırakıldı",
"allProviders": "Tüm Sağlayıcılar",
Expand Down Expand Up @@ -5543,7 +5543,7 @@
"modelsImported": "{count} model içe aktarıldı",
"allModelsAlreadyImported": "Tüm modeller zaten içe aktarıldı",
"noNewModelsToImport": "İçe aktarılacak yeni model yok — tüm modeller zaten kayıt defterinde veya özel modeller listesinde",
"localCatalogFallbackStatus": "Couldn't reach the provider's model list — showing the built-in catalog",
"localCatalogFallbackStatus": "Sağlayıcının model listesine ulaşılamadı — yerleşik katalog gösteriliyor",
"skippingExistingModels": "{count} mevcut model atlanıyor",
"autoSync": "Otomatik Senkronizasyon",
"autoSyncShort": "Senkronize Et",
Expand Down Expand Up @@ -6729,16 +6729,16 @@
"searchByModelAria": "Model ile ara",
"selectSupportedEndpoint": "En az bir desteklenen uç noktayı seçin",
"antigravityClientProfileHarness": "Harness / CLI",
"rateLimitOverridesModelConcurrencyLabel": "Per-model concurrency caps",
"rateLimitOverridesModelConcurrencyLabel": "Model başına eşzamanlılık üst sınırları",
"rateLimitOverridesModelConcurrencyPlaceholder": "glm-5=1\nglm-4.7=3",
"rateLimitOverridesModelConcurrencyHint": "Optional: one model=cap per line, matched against the exact upstream model id. Queues excess requests locally; blank means no per-model cap.",
"rateLimitOverridesModelConcurrencyInvalid": "Invalid per-model concurrency entry \"{entry}\" — use model=cap with a whole number from 1 to {max}.",
"codexPaidCreditsShort": "Extra credits",
"codexPaidCreditsToggleTitle": "Allow paid Codex credits after subscription quota runs out (additional charges may apply)",
"codexPaidCreditsEnabled": "Codex paid credits enabled (additional charges may apply)",
"codexPaidCreditsDisabled": "Codex paid credits disabled",
"failedUpdateCodexPaidCredits": "Failed to update Codex paid-credit policy",
"allowCodexPaidCreditsLabel": "Allow paid Codex credits",
"rateLimitOverridesModelConcurrencyHint": "İsteğe bağlı: her satıra bir model=cap yazın; yukarı akıştaki tam model kimliğiyle eşleştirilir. Fazla istekler yerelde kuyruğa alınır; boş bırakılırsa model başına üst sınır yoktur.",
"rateLimitOverridesModelConcurrencyInvalid": "Geçersiz model başına eşzamanlılık girdisi \"{entry}\" — model=cap biçimini kullanın; cap, 1 ile {max} arasında bir tam sayı olmalıdır.",
"codexPaidCreditsShort": "Ek krediler",
"codexPaidCreditsToggleTitle": "Abonelik kotası bittikten sonra ücretli Codex kredilerine izin ver (ek ücret uygulanabilir)",
"codexPaidCreditsEnabled": "Ücretli Codex kredileri etkin (ek ücret uygulanabilir)",
"codexPaidCreditsDisabled": "Ücretli Codex kredileri devre dışı",
"failedUpdateCodexPaidCredits": "Codex ücretli kredi ilkesi güncellenemedi",
"allowCodexPaidCreditsLabel": "Ücretli Codex kredilerine izin ver",
"allowCodexPaidCreditsDescription": "Allow this account to use paid credits after its subscription quota reaches the cutoff. Requires available credits reported by OpenAI; may incur charges. Spark limits and upstream cooldowns still apply. Credit availability is checked even if quota preflight is disabled."
},
"settings": {
Expand Down Expand Up @@ -7089,10 +7089,10 @@
"NEEDS_CORE_NOT_CONFIGURED": "Bu abonelikte yerel bir proxy çekirdeğine (SS/VMess/Trojan/VLESS) ihtiyaç duyan düğümler var; yerel çekirdek SOCKS5 uç noktasını yapılandırana kadar bunlar yönlendirilmez.",
"NO_USABLE_NODES": "Abonelik kullanılabilir hiçbir düğüm sağlamadı (http/https/socks5 veya yerel çekirdek uç noktasına sahip düğümler).",
"SELECTOR_SWITCH_FAILED": "Proxy-core denetim çağrısı başarısız oldu; önceki rota etkin kalır. Denetim URL'sini ve parolasını denetleyip yenileyin.",
"CORE_CONFIG_NOT_GENERATED": "The local-core config was not generated; the adopted file is unchanged. Check the path and refresh.",
"CORE_CONFIG_NOT_GENERATED": "Yerel çekirdek yapılandırması oluşturulmadı; uygulanan dosya değişmedi. Yolu kontrol edip yenileyin.",
"CORE_CONFIG_NOT_APPLIED": "Oluşturulan çekirdek yapılandırma, benimsenmiş dosyayı değiştiremedi; bunun yerine yanındaki kopya tutuldu.",
"CORE_RELOAD_UNDECLARED": "No reload channel is declared for the replaced core config. Declare one: a control URL on a compatible core, the OMNIROUTE_PROXY_CORE_RELOAD_COMMAND variable as a JSON argument array, or the value external for an outside observer.",
"CORE_RELOAD_FAILED": "The proxy core reload failed; the new config file stays in place. Check the reload command, then refresh.",
"CORE_RELOAD_UNDECLARED": "Değiştirilen çekirdek yapılandırması için bir yeniden yükleme kanalı bildirilmemiş. Birini bildirin: uyumlu bir çekirdekte bir denetim URL'si, JSON bağımsız değişken dizisi olarak OMNIROUTE_PROXY_CORE_RELOAD_COMMAND değişkeni veya dışarıdaki bir gözlemci için external değeri.",
"CORE_RELOAD_FAILED": "Proxy çekirdeği yeniden yüklenemedi; yeni yapılandırma dosyası olduğu yerde kalır. Yeniden yükleme komutunu kontrol edip yenileyin.",
"CORE_CONFIG_ENTRIES_SKIPPED": "Üretim sırasında bazı girdiler atlandı. Sunucu günlüğüne bakın."
},
"description": "Proxy abonelik bağlantınızı yapıştırın. Etkinleştirildiğinde trafik, genel veya kural (belirtilen Sağlayıcı) modunda proxy havuzu üzerinden yönlendirilir. Abonelik düğümleri otomatik olarak proxy havuzuyla senkronize edilir ve mevcut yoklama, durum kontrolü ve sızıntı önleme mekanizmalarını yeniden kullanır.",
Expand Down Expand Up @@ -7180,17 +7180,17 @@
"lastSwitchMember": "Hizmet veren üye",
"nextSwitch": "Sonraki olası geçiş",
"nextSwitchNow": "Şimdi",
"coreConfigPath": "Core config file",
"coreConfigPath": "Çekirdek yapılandırma dosyası",
"coreConfigPathPlaceholder": "/var/lib/omniroute/sing-box/config.json",
"coreConfigPathDesc": "Absolute .json path (lowercase extension). Empty = no generation. Each sync writes '<path>'.generated beside the adopted file, never into it.",
"lastSwitchKind": "Switch reason",
"coreConfigPathDesc": "Mutlak .json yolu (küçük harfli uzantı). Boş = oluşturma. Her eşitleme, uygulanan dosyanın yanına '<path>'.generated yazar, dosyanın kendisine asla yazmaz.",
"lastSwitchKind": "Geçiş nedeni",
"switchKind": {
"ip_quota_429": "quota",
"proxy_unreachable": "unreachable",
"transport": "transport",
"slow": "slow"
"ip_quota_429": "kota",
"proxy_unreachable": "erişilemiyor",
"transport": "aktarım",
"slow": "yavaş"
},
"coreReloadAppliedBy": "Applied by: {mode}",
"coreReloadAppliedBy": "Uygulayan: {mode}",
"coreBinaryPath": "Çekirdek ikili dosya yolu",
"coreBinaryPathPlaceholder": "/usr/bin/sing-box",
"coreBinaryPathHelp": "İsteğe bağlı: benimsenmiş dosyayı değiştirmeden önce oluşturulan dosyayı çekirdek ikili dosyasıyla doğrular. Yanında yazmaya devam etmek için boş bırakın. Dizin yoksa oluşturulur."
Expand Down Expand Up @@ -10123,10 +10123,10 @@
"lastRefreshed": "Son yenileme",
"providerQuota": "Sağlayıcı Kotası",
"providerQuotaHomeHint": "Bağlı hesaplar genelinde canlı durum",
"codexPaidCreditsLabel": "Paid Codex credits",
"codexPaidCreditsAvailable": "Available (balance not reported)",
"codexPaidCreditsUnavailable": "Unavailable or spending limit reached",
"codexPaidCreditsUnlimited": "Unlimited"
"codexPaidCreditsLabel": "Ücretli Codex kredileri",
"codexPaidCreditsAvailable": "Kullanılabilir (bakiye bildirilmedi)",
"codexPaidCreditsUnavailable": "Kullanılamıyor veya harcama limitine ulaşıldı",
"codexPaidCreditsUnlimited": "Sınırsız"
},
"modals": {
"waitingAuth": "Yetkilendirme bekleniyor",
Expand Down Expand Up @@ -12147,33 +12147,33 @@
"accountQuotaNone": "—",
"logTitle": "Kullanım günlüğü",
"logEmpty": "Henüz kullanım yok",
"schedulesTitle": "Time windows",
"schedulesHint": "Say when OmniRoute may use these accounts, and how much it may take. Allow windows act as a whitelist: add one and the pool is closed outside it. A block window is a blackout and always wins over an allow window it overlaps.",
"schedulesEmpty": "No time windows — the pool is available around the clock",
"schedulesAdd": "Add window",
"schedulesRemove": "Remove window",
"schedulesEnabled": "Window enabled",
"schedulesMode": "Window type",
"schedulesModeAllow": "Allow",
"schedulesModeBlock": "Block",
"schedulesFrom": "From",
"schedulesTo": "To",
"schedulesReserve": "Keep free",
"schedulesReserveHint": "Stop using the account once less than this share of a quota window is left. Counts everyone's usage, so someone else working on the same account pushes OmniRoute out first. Add one floor per window: a weekly reserve that protects the whole week would throttle every short burst if it also governed the 5h window.",
"schedulesReserveNone": "no floor — OmniRoute may use the account down to empty",
"schedulesReserveAdd": "Add floor",
"schedulesReserveRemove": "Remove floor",
"schedulesReserveWindow": "Quota window this floor guards",
"schedulesReserveWindowAny": "any window",
"schedulesBudget": "OmniRoute budget",
"schedulesBudgetHint": "How much OmniRoute itself may spend in this window. Counts only its own traffic, so usage by anyone else neither eats nor inflates it.",
"schedulesBudgetUnit": "Budget unit",
"schedulesBudgetWindow": "Budget window",
"schedulesTimezone": "Time zone",
"schedulesPriority": "Priority",
"schedulesSaved": "Time windows saved",
"schedulesSaveError": "Could not save the time windows",
"schedulesLoadError": "Could not load the time windows",
"schedulesTitle": "Zaman pencereleri",
"schedulesHint": "OmniRoute'un bu hesapları ne zaman ve ne kadar kullanabileceğini belirtin. İzin penceresi beyaz liste gibi çalışır: bir tane eklerseniz havuz onun dışında kapalıdır. Engelleme penceresi bir kesinti aralığıdır ve çakıştığı izin penceresine her zaman üstün gelir.",
"schedulesEmpty": "Zaman penceresi yok — havuz günün her saati kullanılabilir",
"schedulesAdd": "Pencere ekle",
"schedulesRemove": "Pencereyi kaldır",
"schedulesEnabled": "Pencere etkin",
"schedulesMode": "Pencere türü",
"schedulesModeAllow": "İzin ver",
"schedulesModeBlock": "Engelle",
"schedulesFrom": "Başlangıç",
"schedulesTo": "Bitiş",
"schedulesReserve": "Boş bırak",
"schedulesReserveHint": "Bir kota penceresinin kalanı bu orandan az olduğunda hesabı kullanmayı bırakır. Herkesin kullanımı sayılır; bu yüzden aynı hesapta başkası çalışıyorsa OmniRoute önce devre dışı kalır. Pencere başına bir alt sınır ekleyin: tüm haftayı koruyan haftalık bir rezerv 5 saatlik pencereyi de yönetseydi her kısa patlamayı kısıtlardı.",
"schedulesReserveNone": "alt sınır yok — OmniRoute hesabı tükenene kadar kullanabilir",
"schedulesReserveAdd": "Alt sınır ekle",
"schedulesReserveRemove": "Alt sınırı kaldır",
"schedulesReserveWindow": "Bu alt sınırın koruduğu kota penceresi",
"schedulesReserveWindowAny": "herhangi bir pencere",
"schedulesBudget": "OmniRoute bütçesi",
"schedulesBudgetHint": "OmniRoute'un bu pencerede kendisinin harcayabileceği miktar. Yalnızca kendi trafiğini sayar; bu yüzden başkalarının kullanımı bunu ne tüketir ne de artırır.",
"schedulesBudgetUnit": "Bütçe birimi",
"schedulesBudgetWindow": "Bütçe penceresi",
"schedulesTimezone": "Saat dilimi",
"schedulesPriority": "Öncelik",
"schedulesSaved": "Zaman pencereleri kaydedildi",
"schedulesSaveError": "Zaman pencereleri kaydedilemedi",
"schedulesLoadError": "Zaman pencereleri yüklenemedi",
"groupLabel": "Grup",
"newGroup": "Yeni grup",
"renameGroup": "Grubu yeniden adlandır",
Expand Down Expand Up @@ -14635,11 +14635,11 @@
"day": "gün",
"unknownModel": "bilinmiyor",
"pending": "beklemede",
"allApiKeys": "All API keys",
"allApiKeys": "Tüm API anahtarları",
"mcp": "MCP",
"mcpTool": "MCP tool",
"scope": "Scope",
"apiKey": "API key"
"mcpTool": "MCP aracı",
"scope": "Kapsam",
"apiKey": "API anahtarı"
},
"metadata": {
"compressionTitle": "Sıkıştırma",
Expand Down
Loading