Tahinli/forge
public0 watching
★ 0
| 1 | //! Strings for this page group. See `docs` in `super` for the pattern. |
| 2 | |
| 3 | use super::Lang; |
| 4 | |
| 5 | #[derive(Clone, Copy, Debug, PartialEq, Eq)] |
| 6 | pub enum K { |
| 7 | ActiveField, |
| 8 | ArchivedHookNote, |
| 9 | AddPullIntro, |
| 10 | AddPullMirror, |
| 11 | AddPushIntro, |
| 12 | AddPushMirror, |
| 13 | AddWebhook, |
| 14 | AddWebhookIntro, |
| 15 | ArchivedNotice, |
| 16 | BackToWebhooks, |
| 17 | ClearSecret, |
| 18 | ColActive, |
| 19 | ColDirection, |
| 20 | ColEnabled, |
| 21 | ColEvents, |
| 22 | ColInterval, |
| 23 | ColLastDelivery, |
| 24 | ColLastSync, |
| 25 | ColResult, |
| 26 | CreateWebhook, |
| 27 | CurrentUrl, |
| 28 | DeleteConfirm, |
| 29 | DeleteIntro, |
| 30 | DeleteMirror, |
| 31 | DeleteTextPull, |
| 32 | DeleteTextPush, |
| 33 | DeleteWebhook, |
| 34 | DirectionPull, |
| 35 | DirectionPush, |
| 36 | EditWebhook, |
| 37 | EnabledField, |
| 38 | ErrIntervalMax, |
| 39 | ErrIntervalNotWhole, |
| 40 | ErrNoEvent, |
| 41 | ErrUrlMissing, |
| 42 | ErrUrlRequired, |
| 43 | ErrorLabel, |
| 44 | EvCreate, |
| 45 | EvDelete, |
| 46 | EvIssueComment, |
| 47 | EvIssues, |
| 48 | EvPullRequest, |
| 49 | EvPullRequestReview, |
| 50 | EvPush, |
| 51 | EvRelease, |
| 52 | Events, |
| 53 | HookArchivedNotice, |
| 54 | HookNoticeConfirm, |
| 55 | HookNoticeCreated, |
| 56 | HookNoticeDeleted, |
| 57 | HookNoticeRedelivered, |
| 58 | HookNoticeSaved, |
| 59 | HookNoticeTested, |
| 60 | IntervalField, |
| 61 | LastSync, |
| 62 | ManualOnly, |
| 63 | Mirrors, |
| 64 | MirrorsIntro, |
| 65 | Never, |
| 66 | No, |
| 67 | NoDeliveries, |
| 68 | NoMirrors, |
| 69 | NoWebhooks, |
| 70 | NoneYet, |
| 71 | NoResponse, |
| 72 | NoticeConfirm, |
| 73 | NoticeCreated, |
| 74 | NoticeDeleted, |
| 75 | NoticePullCreated, |
| 76 | NoticePullNotEmpty, |
| 77 | NoticeSaved, |
| 78 | NoticeSynced, |
| 79 | PayloadUrl, |
| 80 | PullMirror, |
| 81 | PushMirror, |
| 82 | RecentDeliveries, |
| 83 | Redeliver, |
| 84 | RemoteUrl, |
| 85 | RepositoryUrl, |
| 86 | RequestBody, |
| 87 | RequestHeaders, |
| 88 | Response, |
| 89 | ResponseBody, |
| 90 | ResponseHeaders, |
| 91 | SaveMirror, |
| 92 | SaveWebhook, |
| 93 | Secret, |
| 94 | SecretHintNew, |
| 95 | SecretHintSet, |
| 96 | SecretHintUnset, |
| 97 | SecretOptional, |
| 98 | SecretSet, |
| 99 | SecretUnset, |
| 100 | SendTestPing, |
| 101 | SignedWith, |
| 102 | StateFailed, |
| 103 | StateGaveUp, |
| 104 | StateOk, |
| 105 | StatePending, |
| 106 | Status, |
| 107 | StatusFailed, |
| 108 | StatusLower, |
| 109 | StatusNotRun, |
| 110 | StatusOk, |
| 111 | SyncHeading, |
| 112 | SyncIntro, |
| 113 | SyncNow, |
| 114 | Test, |
| 115 | TestIntro, |
| 116 | UrlHintKeep, |
| 117 | UrlHintNew, |
| 118 | UsernameOptional, |
| 119 | Webhooks, |
| 120 | WebhooksIntro, |
| 121 | Yes, |
| 122 | } |
| 123 | |
| 124 | /// Every key, so the tests can walk them. |
| 125 | #[cfg(test)] |
| 126 | pub const ALL: &[K] = &[ |
| 127 | K::ActiveField, |
| 128 | K::ArchivedHookNote, |
| 129 | K::AddPullIntro, |
| 130 | K::AddPullMirror, |
| 131 | K::AddPushIntro, |
| 132 | K::AddPushMirror, |
| 133 | K::AddWebhook, |
| 134 | K::AddWebhookIntro, |
| 135 | K::ArchivedNotice, |
| 136 | K::BackToWebhooks, |
| 137 | K::ClearSecret, |
| 138 | K::ColActive, |
| 139 | K::ColDirection, |
| 140 | K::ColEnabled, |
| 141 | K::ColEvents, |
| 142 | K::ColInterval, |
| 143 | K::ColLastDelivery, |
| 144 | K::ColLastSync, |
| 145 | K::ColResult, |
| 146 | K::CreateWebhook, |
| 147 | K::CurrentUrl, |
| 148 | K::DeleteConfirm, |
| 149 | K::DeleteIntro, |
| 150 | K::DeleteMirror, |
| 151 | K::DeleteTextPull, |
| 152 | K::DeleteTextPush, |
| 153 | K::DeleteWebhook, |
| 154 | K::DirectionPull, |
| 155 | K::DirectionPush, |
| 156 | K::EditWebhook, |
| 157 | K::EnabledField, |
| 158 | K::ErrIntervalMax, |
| 159 | K::ErrIntervalNotWhole, |
| 160 | K::ErrNoEvent, |
| 161 | K::ErrUrlMissing, |
| 162 | K::ErrUrlRequired, |
| 163 | K::ErrorLabel, |
| 164 | K::EvCreate, |
| 165 | K::EvDelete, |
| 166 | K::EvIssueComment, |
| 167 | K::EvIssues, |
| 168 | K::EvPullRequest, |
| 169 | K::EvPullRequestReview, |
| 170 | K::EvPush, |
| 171 | K::EvRelease, |
| 172 | K::Events, |
| 173 | K::HookArchivedNotice, |
| 174 | K::HookNoticeConfirm, |
| 175 | K::HookNoticeCreated, |
| 176 | K::HookNoticeDeleted, |
| 177 | K::HookNoticeRedelivered, |
| 178 | K::HookNoticeSaved, |
| 179 | K::HookNoticeTested, |
| 180 | K::IntervalField, |
| 181 | K::LastSync, |
| 182 | K::ManualOnly, |
| 183 | K::Mirrors, |
| 184 | K::MirrorsIntro, |
| 185 | K::Never, |
| 186 | K::No, |
| 187 | K::NoDeliveries, |
| 188 | K::NoMirrors, |
| 189 | K::NoWebhooks, |
| 190 | K::NoneYet, |
| 191 | K::NoResponse, |
| 192 | K::NoticeConfirm, |
| 193 | K::NoticeCreated, |
| 194 | K::NoticeDeleted, |
| 195 | K::NoticePullCreated, |
| 196 | K::NoticePullNotEmpty, |
| 197 | K::NoticeSaved, |
| 198 | K::NoticeSynced, |
| 199 | K::PayloadUrl, |
| 200 | K::PullMirror, |
| 201 | K::PushMirror, |
| 202 | K::RecentDeliveries, |
| 203 | K::Redeliver, |
| 204 | K::RemoteUrl, |
| 205 | K::RepositoryUrl, |
| 206 | K::RequestBody, |
| 207 | K::RequestHeaders, |
| 208 | K::Response, |
| 209 | K::ResponseBody, |
| 210 | K::ResponseHeaders, |
| 211 | K::SaveMirror, |
| 212 | K::SaveWebhook, |
| 213 | K::Secret, |
| 214 | K::SecretHintNew, |
| 215 | K::SecretHintSet, |
| 216 | K::SecretHintUnset, |
| 217 | K::SecretOptional, |
| 218 | K::SecretSet, |
| 219 | K::SecretUnset, |
| 220 | K::SendTestPing, |
| 221 | K::SignedWith, |
| 222 | K::StateFailed, |
| 223 | K::StateGaveUp, |
| 224 | K::StateOk, |
| 225 | K::StatePending, |
| 226 | K::Status, |
| 227 | K::StatusFailed, |
| 228 | K::StatusLower, |
| 229 | K::StatusNotRun, |
| 230 | K::StatusOk, |
| 231 | K::SyncHeading, |
| 232 | K::SyncIntro, |
| 233 | K::SyncNow, |
| 234 | K::Test, |
| 235 | K::TestIntro, |
| 236 | K::UrlHintKeep, |
| 237 | K::UrlHintNew, |
| 238 | K::UsernameOptional, |
| 239 | K::Webhooks, |
| 240 | K::WebhooksIntro, |
| 241 | K::Yes, |
| 242 | ]; |
| 243 | |
| 244 | /// The phrase a key names, in a user's language. |
| 245 | pub fn t(lang: Lang, key: K) -> &'static str { |
| 246 | use K::*; |
| 247 | use Lang::*; |
| 248 | match (key, lang) { |
| 249 | (ActiveField, En) => "Active: deliver events to this URL", |
| 250 | (ActiveField, Tr) => "Etkin: olaylar bu URL'ye teslim edilir", |
| 251 | (ArchivedHookNote, En) => "The webhook cannot be changed while the repository is archived.", |
| 252 | (ArchivedHookNote, Tr) => "Depo arşivlenmiş olduğu için web kancası değiştirilemez.", |
| 253 | (AddPullIntro, En) => { |
| 254 | "This repository is empty. A pull mirror fills it from a remote: branches and tags are fetched now, on the interval and on demand, and pushes are refused. It can only be added while the repository has no refs." |
| 255 | } |
| 256 | (AddPullIntro, Tr) => { |
| 257 | "Bu depo boş. Çekme yansısı depoyu uzak bir depodan doldurur: dallar ve etiketler şimdi, aralıkla ve istendiğinde çekilir; göndermeler reddedilir. Yalnızca depoda hiç referans yokken eklenebilir." |
| 258 | } |
| 259 | (AddPullMirror, En) => "Add pull mirror", |
| 260 | (AddPullMirror, Tr) => "Çekme yansısı ekle", |
| 261 | (AddPushIntro, En) => { |
| 262 | "Our branches and tags are pushed to this remote after each push, and on the interval. The remote's own refs that we do not have are removed." |
| 263 | } |
| 264 | (AddPushIntro, Tr) => { |
| 265 | "Dallarımız ve etiketlerimiz her göndermeden sonra ve aralıkla bu uzak depoya gönderilir. Uzak depoda bizde olmayan kendi referansları silinir." |
| 266 | } |
| 267 | (AddPushMirror, En) => "Add push mirror", |
| 268 | (AddPushMirror, Tr) => "Gönderme yansısı ekle", |
| 269 | (AddWebhook, En) => "Add webhook", |
| 270 | (AddWebhook, Tr) => "Web kancası ekle", |
| 271 | (AddWebhookIntro, En) => { |
| 272 | "A ping event is sent to the URL as soon as the webhook is created." |
| 273 | } |
| 274 | (AddWebhookIntro, Tr) => { |
| 275 | "Web kancası oluşturulur oluşturulmaz URL'ye bir ping olayı gönderilir." |
| 276 | } |
| 277 | (ArchivedNotice, En) => { |
| 278 | "This repository is archived. Mirrors are read-only: they cannot be changed, synced or deleted." |
| 279 | } |
| 280 | (ArchivedNotice, Tr) => { |
| 281 | "Bu depo arşivlenmiş. Yansılar salt okunurdur: değiştirilemez, eşitlenemez ya da silinemez." |
| 282 | } |
| 283 | (BackToWebhooks, En) => "Back to webhooks", |
| 284 | (BackToWebhooks, Tr) => "Web kancalarına dön", |
| 285 | (ClearSecret, En) => "Clear the stored password or token", |
| 286 | (ClearSecret, Tr) => "Kayıtlı parola veya belirteci temizle", |
| 287 | (ColActive, En) => "Active", |
| 288 | (ColActive, Tr) => "Etkin", |
| 289 | (ColDirection, En) => "Direction", |
| 290 | (ColDirection, Tr) => "Yön", |
| 291 | (ColEnabled, En) => "Enabled", |
| 292 | (ColEnabled, Tr) => "Etkin", |
| 293 | (ColEvents, En) => "Events", |
| 294 | (ColEvents, Tr) => "Olaylar", |
| 295 | (ColInterval, En) => "Interval", |
| 296 | (ColInterval, Tr) => "Aralık", |
| 297 | (ColLastDelivery, En) => "Last delivery", |
| 298 | (ColLastDelivery, Tr) => "Son teslimat", |
| 299 | (ColLastSync, En) => "Last sync", |
| 300 | (ColLastSync, Tr) => "Son eşitleme", |
| 301 | (ColResult, En) => "Result", |
| 302 | (ColResult, Tr) => "Sonuç", |
| 303 | (CreateWebhook, En) => "Create webhook", |
| 304 | (CreateWebhook, Tr) => "Web kancası oluştur", |
| 305 | (CurrentUrl, En) => "Current URL:", |
| 306 | (CurrentUrl, Tr) => "Mevcut URL:", |
| 307 | (DeleteConfirm, En) => "I understand this cannot be undone", |
| 308 | (DeleteConfirm, Tr) => "Bunun geri alınamayacağını anlıyorum", |
| 309 | (DeleteIntro, En) => { |
| 310 | "Deleting removes the webhook and its delivery history. Events stop being sent to its URL at once." |
| 311 | } |
| 312 | (DeleteIntro, Tr) => { |
| 313 | "Silmek, web kancasını ve teslimat geçmişini kaldırır. Olaylar bu URL'ye hemen gönderilmez." |
| 314 | } |
| 315 | (DeleteMirror, En) => "Delete mirror", |
| 316 | (DeleteMirror, Tr) => "Yansıyı sil", |
| 317 | (DeleteTextPull, En) => { |
| 318 | "Stop mirroring; the repository becomes a normal repository. Its refs stay as they are." |
| 319 | } |
| 320 | (DeleteTextPull, Tr) => { |
| 321 | "Yansılamayı durdurun; depo normal bir depoya dönüşür. Referansları olduğu gibi kalır." |
| 322 | } |
| 323 | (DeleteTextPush, En) => "Stop pushing to this remote. The remote keeps the refs it has.", |
| 324 | (DeleteTextPush, Tr) => { |
| 325 | "Bu uzak depoya göndermeyi durdurun. Uzak depo sahip olduğu referansları korur." |
| 326 | } |
| 327 | (DeleteWebhook, En) => "Delete webhook", |
| 328 | (DeleteWebhook, Tr) => "Web kancasını sil", |
| 329 | (DirectionPull, En) => "Pull", |
| 330 | (DirectionPull, Tr) => "Çekme", |
| 331 | (DirectionPush, En) => "Push", |
| 332 | (DirectionPush, Tr) => "Gönderme", |
| 333 | (EditWebhook, En) => "Edit webhook", |
| 334 | (EditWebhook, Tr) => "Web kancasını düzenle", |
| 335 | (EnabledField, En) => "Enabled: sync on the interval and after pushes", |
| 336 | (EnabledField, Tr) => "Etkin: aralıkla ve göndermelerden sonra eşitlenir", |
| 337 | (ErrIntervalMax, En) => "The sync interval can be at most one year.", |
| 338 | (ErrIntervalMax, Tr) => "Eşitleme aralığı en fazla bir yıl olabilir.", |
| 339 | (ErrIntervalNotWhole, En) => "The sync interval must be a whole number of minutes.", |
| 340 | (ErrIntervalNotWhole, Tr) => "Eşitleme aralığı dakika cinsinden tam sayı olmalıdır.", |
| 341 | (ErrNoEvent, En) => "Choose at least one event.", |
| 342 | (ErrNoEvent, Tr) => "En az bir olay seçin.", |
| 343 | (ErrUrlMissing, En) => "Enter the URL the events are sent to.", |
| 344 | (ErrUrlMissing, Tr) => "Olayların gönderileceği URL'yi girin.", |
| 345 | (ErrUrlRequired, En) => "Enter the URL of the repository to mirror.", |
| 346 | (ErrUrlRequired, Tr) => "Yansılanacak deponun URL'sini girin.", |
| 347 | (ErrorLabel, En) => "Error", |
| 348 | (ErrorLabel, Tr) => "Hata", |
| 349 | (EvCreate, En) => "Branch and tag creation", |
| 350 | (EvCreate, Tr) => "Dal ve etiket oluşturma", |
| 351 | (EvDelete, En) => "Branch and tag deletion", |
| 352 | (EvDelete, Tr) => "Dal ve etiket silme", |
| 353 | (EvIssueComment, En) => "Comments on issues and pull requests", |
| 354 | (EvIssueComment, Tr) => "Sorun ve çekme isteklerindeki yorumlar", |
| 355 | (EvIssues, En) => "Issues: opened, closed, reopened, edited, labels, assignees", |
| 356 | (EvIssues, Tr) => { |
| 357 | "Sorunlar: açıldı, kapatıldı, yeniden açıldı, düzenlendi, etiketler, atananlar" |
| 358 | } |
| 359 | (EvPullRequest, En) => "Pull requests: opened, closed, reopened, merged, updated", |
| 360 | (EvPullRequest, Tr) => { |
| 361 | "Çekme istekleri: açıldı, kapatıldı, yeniden açıldı, birleştirildi, güncellendi" |
| 362 | } |
| 363 | (EvPullRequestReview, En) => "Pull request reviews", |
| 364 | (EvPullRequestReview, Tr) => "Çekme isteği incelemeleri", |
| 365 | (EvPush, En) => "Pushes to a branch or tag", |
| 366 | (EvPush, Tr) => "Bir dala veya etikete gönderimler", |
| 367 | (EvRelease, En) => "Releases: published, updated, deleted", |
| 368 | (EvRelease, Tr) => "Sürümler: yayımlandı, güncellendi, silindi", |
| 369 | (Events, En) => "Events", |
| 370 | (Events, Tr) => "Olaylar", |
| 371 | (HookArchivedNotice, En) => { |
| 372 | "This repository is archived. Webhooks are read-only: hooks cannot be changed, tested or redelivered." |
| 373 | } |
| 374 | (HookArchivedNotice, Tr) => { |
| 375 | "Bu depo arşivlenmiş. Web kancaları salt okunurdur: değiştirilemez, test edilemez ya da yeniden teslim edilemez." |
| 376 | } |
| 377 | (HookNoticeConfirm, En) => { |
| 378 | "Tick the confirmation box to delete the webhook. Nothing was deleted." |
| 379 | } |
| 380 | (HookNoticeConfirm, Tr) => { |
| 381 | "Web kancasını silmek için onay kutusunu işaretleyin. Hiçbir şey silinmedi." |
| 382 | } |
| 383 | (HookNoticeCreated, En) => "Webhook created. A ping was queued.", |
| 384 | (HookNoticeCreated, Tr) => "Web kancası oluşturuldu. Bir ping sıraya alındı.", |
| 385 | (HookNoticeDeleted, En) => "Webhook deleted.", |
| 386 | (HookNoticeDeleted, Tr) => "Web kancası silindi.", |
| 387 | (HookNoticeRedelivered, En) => "The delivery was queued again.", |
| 388 | (HookNoticeRedelivered, Tr) => "Teslimat yeniden sıraya alındı.", |
| 389 | (HookNoticeSaved, En) => "Webhook saved.", |
| 390 | (HookNoticeSaved, Tr) => "Web kancası kaydedildi.", |
| 391 | (HookNoticeTested, En) => "A test ping was queued.", |
| 392 | (HookNoticeTested, Tr) => "Bir test pingi sıraya alındı.", |
| 393 | (IntervalField, En) => "Sync interval in minutes (0 = manual only, at least 10)", |
| 394 | (IntervalField, Tr) => "Dakika cinsinden eşitleme aralığı (0 = yalnızca elle, en az 10)", |
| 395 | (LastSync, En) => "Last sync:", |
| 396 | (LastSync, Tr) => "Son eşitleme:", |
| 397 | (ManualOnly, En) => "manual only", |
| 398 | (ManualOnly, Tr) => "yalnızca elle", |
| 399 | (Mirrors, En) => "Mirrors", |
| 400 | (Mirrors, Tr) => "Yansılar", |
| 401 | (MirrorsIntro, En) => { |
| 402 | "A pull mirror keeps this repository in step with a remote: branches and tags are fetched on the interval and on demand, and pushes are refused. A push mirror sends branches and tags to a remote after every push. Pull requests and issues stay local." |
| 403 | } |
| 404 | (MirrorsIntro, Tr) => { |
| 405 | "Çekme yansısı bu depoyu uzak bir depoyla eşit tutar: dallar ve etiketler aralıkla ya da istendiğinde çekilir, göndermeler reddedilir. Gönderme yansısı her göndermeden sonra dalları ve etiketleri uzak depoya gönderir. Çekme istekleri ve sorunlar yerel kalır." |
| 406 | } |
| 407 | (Never, En) => "never", |
| 408 | (Never, Tr) => "hiç", |
| 409 | (No, En) => "no", |
| 410 | (No, Tr) => "hayır", |
| 411 | (NoDeliveries, En) => "No deliveries yet.", |
| 412 | (NoDeliveries, Tr) => "Henüz teslimat yok.", |
| 413 | (NoMirrors, En) => "No mirrors yet.", |
| 414 | (NoMirrors, Tr) => "Henüz yansı yok.", |
| 415 | (NoWebhooks, En) => "No webhooks yet.", |
| 416 | (NoWebhooks, Tr) => "Henüz web kancası yok.", |
| 417 | (NoneYet, En) => "none yet", |
| 418 | (NoneYet, Tr) => "henüz yok", |
| 419 | (NoResponse, En) => "no response", |
| 420 | (NoResponse, Tr) => "yanıt yok", |
| 421 | (NoticeConfirm, En) => { |
| 422 | "Tick the confirmation box to delete the mirror. Nothing was deleted." |
| 423 | } |
| 424 | (NoticeConfirm, Tr) => { |
| 425 | "Yansıyı silmek için onay kutusunu işaretleyin. Hiçbir şey silinmedi." |
| 426 | } |
| 427 | (NoticeCreated, En) => { |
| 428 | "Push mirror created. It will be pushed after the next push or on its interval." |
| 429 | } |
| 430 | (NoticeCreated, Tr) => { |
| 431 | "Gönderme yansısı oluşturuldu. Bir sonraki göndermeden sonra ya da aralığı dolduğunda gönderilecek." |
| 432 | } |
| 433 | (NoticeDeleted, En) => "Mirror deleted.", |
| 434 | (NoticeDeleted, Tr) => "Yansı silindi.", |
| 435 | (NoticePullCreated, En) => "Pull mirror created. The first sync is queued.", |
| 436 | (NoticePullCreated, Tr) => "Çekme yansısı oluşturuldu. İlk eşitleme sıraya alındı.", |
| 437 | (NoticePullNotEmpty, En) => { |
| 438 | "A pull mirror can only be added to an empty repository. Nothing was changed." |
| 439 | } |
| 440 | (NoticePullNotEmpty, Tr) => { |
| 441 | "Çekme yansısı yalnızca boş bir depoya eklenebilir. Hiçbir şey değiştirilmedi." |
| 442 | } |
| 443 | (NoticeSaved, En) => "Mirror saved.", |
| 444 | (NoticeSaved, Tr) => "Yansı kaydedildi.", |
| 445 | (NoticeSynced, En) => "A sync was queued.", |
| 446 | (NoticeSynced, Tr) => "Bir eşitleme sıraya alındı.", |
| 447 | (PayloadUrl, En) => "Payload URL", |
| 448 | (PayloadUrl, Tr) => "Yük URL'si", |
| 449 | (PullMirror, En) => "Pull mirror", |
| 450 | (PullMirror, Tr) => "Çekme yansısı", |
| 451 | (PushMirror, En) => "Push mirror", |
| 452 | (PushMirror, Tr) => "Gönderme yansısı", |
| 453 | (RecentDeliveries, En) => "Recent deliveries", |
| 454 | (RecentDeliveries, Tr) => "Son teslimatlar", |
| 455 | (Redeliver, En) => "Redeliver", |
| 456 | (Redeliver, Tr) => "Yeniden teslim et", |
| 457 | (RemoteUrl, En) => "Remote URL", |
| 458 | (RemoteUrl, Tr) => "Uzak URL", |
| 459 | (RepositoryUrl, En) => "Repository URL", |
| 460 | (RepositoryUrl, Tr) => "Depo URL'si", |
| 461 | (RequestBody, En) => "Request body", |
| 462 | (RequestBody, Tr) => "İstek gövdesi", |
| 463 | (RequestHeaders, En) => "Request headers", |
| 464 | (RequestHeaders, Tr) => "İstek üst bilgileri", |
| 465 | (Response, En) => "Response", |
| 466 | (Response, Tr) => "Yanıt", |
| 467 | (ResponseBody, En) => "Response body", |
| 468 | (ResponseBody, Tr) => "Yanıt gövdesi", |
| 469 | (ResponseHeaders, En) => "Response headers", |
| 470 | (ResponseHeaders, Tr) => "Yanıt üst bilgileri", |
| 471 | (SaveMirror, En) => "Save mirror", |
| 472 | (SaveMirror, Tr) => "Yansıyı kaydet", |
| 473 | (SaveWebhook, En) => "Save webhook", |
| 474 | (SaveWebhook, Tr) => "Web kancasını kaydet", |
| 475 | (Secret, En) => "Secret", |
| 476 | (Secret, Tr) => "Gizli anahtar", |
| 477 | (SecretHintNew, En) => { |
| 478 | "Used to sign each request with HMAC-SHA256. It is stored sealed and is never shown again." |
| 479 | } |
| 480 | (SecretHintNew, Tr) => { |
| 481 | "Her isteği HMAC-SHA256 ile imzalamak için kullanılır. Mühürlü olarak saklanır ve bir daha gösterilmez." |
| 482 | } |
| 483 | (SecretHintSet, En) => { |
| 484 | "A secret is set. Leave the field blank to keep it, or type a new one to replace it." |
| 485 | } |
| 486 | (SecretHintSet, Tr) => { |
| 487 | "Bir gizli anahtar ayarlı. Olduğu gibi bırakmak için alanı boş bırakın ya da yenisini yazarak değiştirin." |
| 488 | } |
| 489 | (SecretHintUnset, En) => "No secret is set. Type one to add it.", |
| 490 | (SecretHintUnset, Tr) => "Gizli anahtar ayarlı değil. Eklemek için bir tane yazın.", |
| 491 | (SecretOptional, En) => "Password or token (optional)", |
| 492 | (SecretOptional, Tr) => "Parola veya belirteç (isteğe bağlı)", |
| 493 | (SecretSet, En) => { |
| 494 | "A password or token is set. Leave the field blank to keep it, or type a new one to replace it." |
| 495 | } |
| 496 | (SecretSet, Tr) => { |
| 497 | "Bir parola veya belirteç ayarlı. Olduğu gibi bırakmak için alanı boş bırakın ya da yenisini yazarak değiştirin." |
| 498 | } |
| 499 | (SecretUnset, En) => "No password or token is set. Type one if the remote needs it.", |
| 500 | (SecretUnset, Tr) => { |
| 501 | "Parola veya belirteç ayarlı değil. Uzak sunucu gerektiriyorsa bir tane yazın." |
| 502 | } |
| 503 | (SendTestPing, En) => "Send test ping", |
| 504 | (SendTestPing, Tr) => "Test pingi gönder", |
| 505 | (SignedWith, En) => " Requests are signed with it, so the receiver can check them.", |
| 506 | (SignedWith, Tr) => " İstekler bununla imzalanır, böylece alıcı bunları doğrulayabilir.", |
| 507 | (StateFailed, En) => "failed, will retry", |
| 508 | (StateFailed, Tr) => "başarısız, yeniden denenecek", |
| 509 | (StateGaveUp, En) => "gave up", |
| 510 | (StateGaveUp, Tr) => "vazgeçildi", |
| 511 | (StateOk, En) => "ok", |
| 512 | (StateOk, Tr) => "tamam", |
| 513 | (StatePending, En) => "pending", |
| 514 | (StatePending, Tr) => "beklemede", |
| 515 | (Status, En) => "Status", |
| 516 | (Status, Tr) => "Durum", |
| 517 | (StatusFailed, En) => "failed", |
| 518 | (StatusFailed, Tr) => "başarısız", |
| 519 | (StatusLower, En) => "status", |
| 520 | (StatusLower, Tr) => "durum", |
| 521 | (StatusNotRun, En) => "not run yet", |
| 522 | (StatusNotRun, Tr) => "henüz çalışmadı", |
| 523 | (StatusOk, En) => "ok", |
| 524 | (StatusOk, Tr) => "tamam", |
| 525 | (SyncHeading, En) => "Sync", |
| 526 | (SyncHeading, Tr) => "Eşitleme", |
| 527 | (SyncIntro, En) => "Queues a sync now. The result shows in the list.", |
| 528 | (SyncIntro, Tr) => "Şimdi bir eşitleme sıraya alır. Sonuç listede görünür.", |
| 529 | (SyncNow, En) => "Sync now", |
| 530 | (SyncNow, Tr) => "Şimdi eşitle", |
| 531 | (Test, En) => "Test", |
| 532 | (Test, Tr) => "Test", |
| 533 | (TestIntro, En) => { |
| 534 | "Sends a ping event to the URL, to check that it is reachable and signs requests correctly." |
| 535 | } |
| 536 | (TestIntro, Tr) => { |
| 537 | "URL'ye bir ping olayı gönderir; erişilebilir olduğunu ve istekleri doğru imzaladığını denetler." |
| 538 | } |
| 539 | (UrlHintKeep, En) => "Leave blank to keep the current URL.", |
| 540 | (UrlHintKeep, Tr) => "Mevcut URL'yi korumak için boş bırakın.", |
| 541 | (UrlHintNew, En) => { |
| 542 | "HTTPS only, unless the instance allows HTTP. Addresses inside the network are refused unless the instance allows them." |
| 543 | } |
| 544 | (UrlHintNew, Tr) => { |
| 545 | "Sunucu izin vermedikçe yalnızca HTTPS kullanılır. Ağ içindeki adresler de sunucu izin vermedikçe reddedilir." |
| 546 | } |
| 547 | (UsernameOptional, En) => "Username (optional)", |
| 548 | (UsernameOptional, Tr) => "Kullanıcı adı (isteğe bağlı)", |
| 549 | (Webhooks, En) => "Webhooks", |
| 550 | (Webhooks, Tr) => "Web kancaları", |
| 551 | (WebhooksIntro, En) => { |
| 552 | "Each active webhook receives the events it subscribes to as signed JSON POST requests. The last delivery shows whether the receiver answered with a 2xx status." |
| 553 | } |
| 554 | (WebhooksIntro, Tr) => { |
| 555 | "Etkin her web kancası, abone olduğu olayları imzalı JSON POST istekleri olarak alır. Son teslimat, alıcının 2xx durumuyla yanıt verip vermediğini gösterir." |
| 556 | } |
| 557 | (Yes, En) => "yes", |
| 558 | (Yes, Tr) => "evet", |
| 559 | } |
| 560 | } |
| 561 | |
| 562 | /// "The sync interval must be 0 (manual only) or at least {min} minutes." |
| 563 | pub fn interval_too_short(lang: Lang, min: u32) -> String { |
| 564 | match lang { |
| 565 | Lang::En => format!("The sync interval must be 0 (manual only) or at least {min} minutes."), |
| 566 | Lang::Tr => { |
| 567 | format!("Eşitleme aralığı 0 (yalnızca elle) ya da en az {min} dakika olmalıdır.") |
| 568 | } |
| 569 | } |
| 570 | } |
| 571 | |
| 572 | /// "The username can be at most {max} characters and cannot contain a colon." |
| 573 | pub fn username_too_long(lang: Lang, max: usize) -> String { |
| 574 | match lang { |
| 575 | Lang::En => { |
| 576 | format!("The username can be at most {max} characters and cannot contain a colon.") |
| 577 | } |
| 578 | Lang::Tr => format!( |
| 579 | "Kullanıcı adı en fazla {max} karakter olabilir ve iki nokta üst üste içeremez." |
| 580 | ), |
| 581 | } |
| 582 | } |
| 583 | |
| 584 | /// "The password or token can be at most {max} characters." |
| 585 | pub fn password_too_long(lang: Lang, max: usize) -> String { |
| 586 | match lang { |
| 587 | Lang::En => format!("The password or token can be at most {max} characters."), |
| 588 | Lang::Tr => format!("Parola veya belirteç en fazla {max} karakter olabilir."), |
| 589 | } |
| 590 | } |
| 591 | |
| 592 | /// "The secret can be at most {max} characters. Nothing was saved." |
| 593 | pub fn secret_too_long(lang: Lang, max: usize) -> String { |
| 594 | match lang { |
| 595 | Lang::En => format!("The secret can be at most {max} characters. Nothing was saved."), |
| 596 | Lang::Tr => { |
| 597 | format!("Gizli anahtar en fazla {max} karakter olabilir. Hiçbir şey kaydedilmedi.") |
| 598 | } |
| 599 | } |
| 600 | } |
| 601 | |
| 602 | /// "every 8 h" or "8 saatte bir". |
| 603 | pub fn every_hours(lang: Lang, hours: u32) -> String { |
| 604 | match lang { |
| 605 | Lang::En => format!("every {hours} h"), |
| 606 | Lang::Tr => format!("{hours} saatte bir"), |
| 607 | } |
| 608 | } |
| 609 | |
| 610 | /// "every 90 min" or "90 dakikada bir". |
| 611 | pub fn every_minutes(lang: Lang, minutes: u32) -> String { |
| 612 | match lang { |
| 613 | Lang::En => format!("every {minutes} min"), |
| 614 | Lang::Tr => format!("{minutes} dakikada bir"), |
| 615 | } |
| 616 | } |
| 617 | |
| 618 | /// "The last 50 deliveries. Open one to see what was sent and what came back." |
| 619 | pub fn recent_deliveries(lang: Lang, shown: u32) -> String { |
| 620 | match lang { |
| 621 | Lang::En => format!( |
| 622 | "The last {shown} deliveries. Open one to see what was sent and what came back." |
| 623 | ), |
| 624 | Lang::Tr => { |
| 625 | format!("Son {shown} teslimat. Birini açıp gönderileni ve alınan yanıtı görün.") |
| 626 | } |
| 627 | } |
| 628 | } |
| 629 | |
| 630 | #[cfg(test)] |
| 631 | mod tests { |
| 632 | use super::*; |
| 633 | |
| 634 | #[test] |
| 635 | fn every_key_has_an_english_and_a_turkish_phrase() { |
| 636 | for key in ALL { |
| 637 | assert!(!t(Lang::En, *key).is_empty(), "{key:?} has no English"); |
| 638 | assert!(!t(Lang::Tr, *key).is_empty(), "{key:?} has no Turkish"); |
| 639 | } |
| 640 | } |
| 641 | |
| 642 | #[test] |
| 643 | fn turkish_differs_from_english_for_some_keys() { |
| 644 | let differing = ALL |
| 645 | .iter() |
| 646 | .filter(|key| t(Lang::En, **key) != t(Lang::Tr, **key)) |
| 647 | .count(); |
| 648 | assert!(differing >= 3, "only {differing} keys differ"); |
| 649 | } |
| 650 | |
| 651 | #[test] |
| 652 | fn helpers_keep_english_wording() { |
| 653 | assert_eq!(every_hours(Lang::En, 8), "every 8 h"); |
| 654 | assert_eq!(every_minutes(Lang::En, 90), "every 90 min"); |
| 655 | assert_eq!( |
| 656 | recent_deliveries(Lang::En, 50), |
| 657 | "The last 50 deliveries. Open one to see what was sent and what came back." |
| 658 | ); |
| 659 | } |
| 660 | } |