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 | Accept, |
| 8 | AcceptTransfer, |
| 9 | AddCollaboratorButton, |
| 10 | AddCollaboratorHeading, |
| 11 | AddCollaboratorHelp, |
| 12 | AddOrUpdate, |
| 13 | AddOrUpdateRule, |
| 14 | AllowDeletion, |
| 15 | AllowForcePush, |
| 16 | AlreadyOwner, |
| 17 | ApprovalsHelp, |
| 18 | ApprovalsRange, |
| 19 | ArchiveHeading, |
| 20 | ArchiveHelp, |
| 21 | ArchiveRepo, |
| 22 | ArchivedHelp, |
| 23 | ArchivedSecrets, |
| 24 | BadForm, |
| 25 | BlockWhileChanges, |
| 26 | BranchMissing, |
| 27 | BranchPattern, |
| 28 | BranchProtection, |
| 29 | BranchProtectionHelp, |
| 30 | BranchRuleRemoved, |
| 31 | BranchRuleSaved, |
| 32 | BuiltinRowText, |
| 33 | CancelTransfer, |
| 34 | ChangeVisibility, |
| 35 | CollabAdded, |
| 36 | CollabRemoved, |
| 37 | Collaborators, |
| 38 | CollaboratorsHelp, |
| 39 | ColUser, |
| 40 | DangerZone, |
| 41 | Decline, |
| 42 | DeclineTransfer, |
| 43 | DefaultBranch, |
| 44 | DefaultBranchFailed, |
| 45 | Delete, |
| 46 | DeleteRepo, |
| 47 | DeleteRepoHelp, |
| 48 | DeleteTrashHelp, |
| 49 | DeletionAllowed, |
| 50 | Description, |
| 51 | DescriptionHelp, |
| 52 | DescriptionLong, |
| 53 | EnterUsername, |
| 54 | EnterValue, |
| 55 | ForcePushAllowed, |
| 56 | General, |
| 57 | GeneralSaved, |
| 58 | IUnderstand, |
| 59 | InvalidRole, |
| 60 | LastUpdated, |
| 61 | MergePushRules, |
| 62 | Mirrors, |
| 63 | Name, |
| 64 | NameRule, |
| 65 | NewName, |
| 66 | NewOwnerLabel, |
| 67 | NoBranchesYet, |
| 68 | NoCollaborators, |
| 69 | NoPendingTransfer, |
| 70 | NoRule, |
| 71 | NoSecrets, |
| 72 | NotCollaborator, |
| 73 | OwnerIsMember, |
| 74 | PatternColumn, |
| 75 | PatternHelpA, |
| 76 | PatternHelpB, |
| 77 | PatternHelpC, |
| 78 | PatternHelpD, |
| 79 | PendingTransfers, |
| 80 | PrivateOption, |
| 81 | PublicOption, |
| 82 | Remove, |
| 83 | RenameHelp, |
| 84 | RenameRepo, |
| 85 | RenameTransferNav, |
| 86 | RenamedNotice, |
| 87 | RepoArchived, |
| 88 | RepoDeletedAfter, |
| 89 | RepoDeletedBefore, |
| 90 | RepoTransfers, |
| 91 | RepoUnarchived, |
| 92 | RequireUpToDate, |
| 93 | RequiredApprovals, |
| 94 | RestrictPush, |
| 95 | Role, |
| 96 | RoleAdminDesc, |
| 97 | RoleMaintainDesc, |
| 98 | RoleReadDesc, |
| 99 | Roles, |
| 100 | RoleTriageDesc, |
| 101 | RoleUpdated, |
| 102 | RoleWriteDesc, |
| 103 | RuleChangesBlock, |
| 104 | RuleRestrictPush, |
| 105 | RuleUpToDate, |
| 106 | SaveGeneral, |
| 107 | SaveRole, |
| 108 | SaveRule, |
| 109 | SaveSecret, |
| 110 | SecretDeleted, |
| 111 | SecretLimits, |
| 112 | SecretMissing, |
| 113 | SecretSaved, |
| 114 | Secrets, |
| 115 | SecretsHelp, |
| 116 | SettingsNavLabel, |
| 117 | StartTransferLink, |
| 118 | TransferHelp, |
| 119 | TransferRepo, |
| 120 | TransferTitle, |
| 121 | TransferredNotice, |
| 122 | TypeToConfirmAfter, |
| 123 | TypeToConfirmBefore, |
| 124 | UnarchiveRepo, |
| 125 | UnderstandNeeded, |
| 126 | UnknownUser, |
| 127 | Username, |
| 128 | Value, |
| 129 | ValueTooLarge, |
| 130 | VisibilityChanged, |
| 131 | VisibilityHeading, |
| 132 | VisibilityHelp, |
| 133 | Webhooks, |
| 134 | } |
| 135 | |
| 136 | pub fn t(lang: Lang, key: K) -> &'static str { |
| 137 | use K::*; |
| 138 | use Lang::*; |
| 139 | match (key, lang) { |
| 140 | (Accept, En) => "Accept", |
| 141 | (Accept, Tr) => "Kabul et", |
| 142 | (AcceptTransfer, En) => "Accept transfer", |
| 143 | (AcceptTransfer, Tr) => "Devri kabul et", |
| 144 | (AddCollaboratorButton, En) => "Add collaborator", |
| 145 | (AddCollaboratorButton, Tr) => "Ortak çalışan ekle", |
| 146 | (AddCollaboratorHeading, En) => "Add a collaborator", |
| 147 | (AddCollaboratorHeading, Tr) => "Ortak çalışan ekle", |
| 148 | (AddCollaboratorHelp, En) => { |
| 149 | "Adding a user who is already a collaborator updates their role. The owner cannot be added." |
| 150 | } |
| 151 | (AddCollaboratorHelp, Tr) => { |
| 152 | "Zaten ortak çalışan olan bir kullanıcıyı eklemek rolünü günceller. Sahip eklenemez." |
| 153 | } |
| 154 | (AddOrUpdate, En) => "Add or update a secret", |
| 155 | (AddOrUpdate, Tr) => "Gizli anahtar ekle veya güncelle", |
| 156 | (AddOrUpdateRule, En) => "Add or update a rule", |
| 157 | (AddOrUpdateRule, Tr) => "Kural ekle veya güncelle", |
| 158 | (AllowDeletion, En) => "Allow deletion", |
| 159 | (AllowDeletion, Tr) => "Silmeye izin verilir", |
| 160 | (AllowForcePush, En) => "Allow force pushes", |
| 161 | (AllowForcePush, Tr) => "Zorla göndermeye izin verilir", |
| 162 | (AlreadyOwner, En) => "The repository already belongs to that user.", |
| 163 | (AlreadyOwner, Tr) => "Depo zaten bu kullanıcıya ait.", |
| 164 | (ApprovalsHelp, En) => { |
| 165 | "Approvals count only from reviewers with Write access or higher, using each reviewer's latest review." |
| 166 | } |
| 167 | (ApprovalsHelp, Tr) => { |
| 168 | "Onaylar yalnızca yazma veya daha yüksek erişimi olan inceleyicilerden, her inceleyicinin en son incelemesine göre sayılır." |
| 169 | } |
| 170 | (ApprovalsRange, En) => "required approvals must be a whole number from 0 to 20", |
| 171 | (ApprovalsRange, Tr) => "Gerekli onay sayısı 0 ile 20 arasında bir tam sayı olmalıdır.", |
| 172 | (ArchiveHeading, En) => "Archive", |
| 173 | (ArchiveHeading, Tr) => "Arşiv", |
| 174 | (ArchiveHelp, En) => { |
| 175 | "Archiving makes the repository read-only: pushes are refused, and issues, labels and milestones cannot change. You can unarchive it at any time." |
| 176 | } |
| 177 | (ArchiveHelp, Tr) => { |
| 178 | "Arşivleme depoyu salt okunur yapar: gönderimler reddedilir; sorunlar, etiketler ve kilometre taşları değiştirilemez. Arşivden istediğiniz zaman çıkarabilirsiniz." |
| 179 | } |
| 180 | (ArchiveRepo, En) => "Archive repository", |
| 181 | (ArchiveRepo, Tr) => "Depoyu arşivle", |
| 182 | (ArchivedHelp, En) => { |
| 183 | "This repository is archived. Pushes are refused, and issues, labels and milestones are read-only. Unarchive it to allow changes again." |
| 184 | } |
| 185 | (ArchivedHelp, Tr) => { |
| 186 | "Bu depo arşivlenmiş. Gönderimler reddedilir; sorunlar, etiketler ve kilometre taşları salt okunurdur. Yeniden değişiklik yapmak için arşivden çıkarın." |
| 187 | } |
| 188 | (ArchivedSecrets, En) => "This repository is archived. Secrets are read-only.", |
| 189 | (ArchivedSecrets, Tr) => "Bu depo arşivlenmiş. Gizli anahtarlar salt okunurdur.", |
| 190 | (BadForm, En) => "The form was not understood. Nothing was changed.", |
| 191 | (BadForm, Tr) => "Form anlaşılamadı. Hiçbir şey değiştirilmedi.", |
| 192 | (BlockWhileChanges, En) => "Block merges while changes are requested", |
| 193 | (BlockWhileChanges, Tr) => "Değişiklik istenirken birleştirmeler engellenir", |
| 194 | (BranchMissing, En) => "That branch does not exist. Nothing was saved.", |
| 195 | (BranchMissing, Tr) => "Bu dal mevcut değil. Hiçbir şey kaydedilmedi.", |
| 196 | (BranchPattern, En) => "Branch pattern", |
| 197 | (BranchPattern, Tr) => "Dal deseni", |
| 198 | (BranchProtection, En) => "Branch protection", |
| 199 | (BranchProtection, Tr) => "Dal koruması", |
| 200 | (BranchProtectionHelp, En) => { |
| 201 | "Pushes to a protected branch are checked before they are accepted. Force pushes and deletions are blocked on the default branch unless a rule allows them. Tags are not covered." |
| 202 | } |
| 203 | (BranchProtectionHelp, Tr) => { |
| 204 | "Korumalı bir dala yapılan gönderimler kabul edilmeden önce denetlenir. Bir kural izin vermedikçe varsayılan dalda zorla gönderimler ve silmeler engellenir. Etiketler kapsam dışındadır." |
| 205 | } |
| 206 | (BranchRuleRemoved, En) => "Branch rule removed.", |
| 207 | (BranchRuleRemoved, Tr) => "Dal kuralı kaldırıldı.", |
| 208 | (BranchRuleSaved, En) => "Branch rule saved.", |
| 209 | (BranchRuleSaved, Tr) => "Dal kuralı kaydedildi.", |
| 210 | (BuiltinRowText, En) => { |
| 211 | " (default branch): protected by default; add a rule for it to change this." |
| 212 | } |
| 213 | (BuiltinRowText, Tr) => { |
| 214 | " (varsayılan dal): varsayılan olarak korunur; bunu değiştirmek için bir kural ekleyin." |
| 215 | } |
| 216 | (CancelTransfer, En) => "Cancel transfer", |
| 217 | (CancelTransfer, Tr) => "Devri iptal et", |
| 218 | (ChangeVisibility, En) => "Change visibility", |
| 219 | (ChangeVisibility, Tr) => "Görünürlüğü değiştir", |
| 220 | (CollabAdded, En) => "Collaborator added.", |
| 221 | (CollabAdded, Tr) => "Ortak çalışan eklendi.", |
| 222 | (CollabRemoved, En) => "Collaborator removed.", |
| 223 | (CollabRemoved, Tr) => "Ortak çalışan kaldırıldı.", |
| 224 | (Collaborators, En) => "Collaborators", |
| 225 | (Collaborators, Tr) => "Ortak çalışanlar", |
| 226 | (CollaboratorsHelp, En) => { |
| 227 | "Collaborators get access to this repo beyond its visibility. On a private repo, adding a collaborator makes it visible to them." |
| 228 | } |
| 229 | (CollaboratorsHelp, Tr) => { |
| 230 | "Ortak çalışanlar, deponun görünürlüğünden bağımsız olarak bu depoya erişim alır. Özel bir depoda ortak çalışan eklemek depoyu onlara görünür kılar." |
| 231 | } |
| 232 | (ColUser, En) => "User", |
| 233 | (ColUser, Tr) => "Kullanıcı", |
| 234 | (DangerZone, En) => "Danger zone", |
| 235 | (DangerZone, Tr) => "Tehlikeli bölge", |
| 236 | (Decline, En) => "Decline", |
| 237 | (Decline, Tr) => "Reddet", |
| 238 | (DeclineTransfer, En) => "Decline transfer", |
| 239 | (DeclineTransfer, Tr) => "Devri reddet", |
| 240 | (DefaultBranch, En) => "Default branch", |
| 241 | (DefaultBranch, Tr) => "Varsayılan dal", |
| 242 | (DefaultBranchFailed, En) => "The default branch could not be changed. Nothing was saved.", |
| 243 | (DefaultBranchFailed, Tr) => "Varsayılan dal değiştirilemedi. Hiçbir şey kaydedilmedi.", |
| 244 | (Delete, En) => "Delete", |
| 245 | (Delete, Tr) => "Sil", |
| 246 | (DeleteRepo, En) => "Delete repository", |
| 247 | (DeleteRepo, Tr) => "Depoyu sil", |
| 248 | (DeleteRepoHelp, En) => { |
| 249 | "Deleting a repository removes it from the forge. Its branches, tags, collaborators and push history stop being served." |
| 250 | } |
| 251 | (DeleteRepoHelp, Tr) => { |
| 252 | "Bir depoyu silmek onu forge üzerinden kaldırır. Dalları, etiketleri, ortak çalışanları ve gönderim geçmişi artık sunulmaz." |
| 253 | } |
| 254 | (DeleteTrashHelp, En) => { |
| 255 | "The bare repository is moved to the instance trash, not erased. Until an administrator purges it, it can be recovered by cloning from the trash directory." |
| 256 | } |
| 257 | (DeleteTrashHelp, Tr) => { |
| 258 | "Çıplak depo silinmez, sunucunun çöp klasörüne taşınır. Bir yönetici kalıcı olarak temizleyene kadar çöp klasöründen klonlanarak kurtarılabilir." |
| 259 | } |
| 260 | (DeletionAllowed, En) => "Deletion allowed", |
| 261 | (DeletionAllowed, Tr) => "Silmeye izin var", |
| 262 | (Description, En) => "Description", |
| 263 | (Description, Tr) => "Açıklama", |
| 264 | (DescriptionHelp, En) => { |
| 265 | "Up to 350 characters, on one line. It is shown under the repository name." |
| 266 | } |
| 267 | (DescriptionHelp, Tr) => { |
| 268 | "En fazla 350 karakter, tek satır. Depo adının altında gösterilir." |
| 269 | } |
| 270 | (DescriptionLong, En) => { |
| 271 | "The description can be at most 350 characters. Nothing was saved." |
| 272 | } |
| 273 | (DescriptionLong, Tr) => { |
| 274 | "Açıklama en fazla 350 karakter olabilir. Hiçbir şey kaydedilmedi." |
| 275 | } |
| 276 | (EnterUsername, En) => "Enter a username.", |
| 277 | (EnterUsername, Tr) => "Bir kullanıcı adı girin.", |
| 278 | (EnterValue, En) => "Enter a value.", |
| 279 | (EnterValue, Tr) => "Bir değer girin.", |
| 280 | (ForcePushAllowed, En) => "Force push allowed", |
| 281 | (ForcePushAllowed, Tr) => "Zorla gönderime izin var", |
| 282 | (General, En) => "General", |
| 283 | (General, Tr) => "Genel", |
| 284 | (GeneralSaved, En) => "General settings saved.", |
| 285 | (GeneralSaved, Tr) => "Genel ayarlar kaydedildi.", |
| 286 | (IUnderstand, En) => "I understand", |
| 287 | (IUnderstand, Tr) => "Anlıyorum", |
| 288 | (InvalidRole, En) => "Choose a valid role.", |
| 289 | (InvalidRole, Tr) => "Geçerli bir rol seçin.", |
| 290 | (LastUpdated, En) => "Last updated", |
| 291 | (LastUpdated, Tr) => "Son güncelleme", |
| 292 | (MergePushRules, En) => "Merge and push rules", |
| 293 | (MergePushRules, Tr) => "Birleştirme ve gönderme kuralları", |
| 294 | (Mirrors, En) => "Mirrors", |
| 295 | (Mirrors, Tr) => "Yansılar", |
| 296 | (Name, En) => "Name", |
| 297 | (Name, Tr) => "Ad", |
| 298 | (NameRule, En) => { |
| 299 | "Names are 1 to 64 characters: capital letters, digits and underscores, and they cannot start with a digit." |
| 300 | } |
| 301 | (NameRule, Tr) => { |
| 302 | "Adlar 1 ile 64 karakter arasında olmalıdır: büyük harf, rakam ve alt çizgi kullanılabilir; rakamla başlayamaz." |
| 303 | } |
| 304 | (NewName, En) => "New name", |
| 305 | (NewName, Tr) => "Yeni ad", |
| 306 | (NewOwnerLabel, En) => "New owner (username)", |
| 307 | (NewOwnerLabel, Tr) => "Yeni sahip (kullanıcı adı)", |
| 308 | (NoBranchesYet, En) => { |
| 309 | "No branches yet. The default branch can be chosen after the first push." |
| 310 | } |
| 311 | (NoBranchesYet, Tr) => "Henüz dal yok. Varsayılan dal, ilk gönderimden sonra seçilebilir.", |
| 312 | (NoCollaborators, En) => "No collaborators yet. Add one below.", |
| 313 | (NoCollaborators, Tr) => "Henüz ortak çalışan yok. Aşağıdan bir ortak çalışan ekleyin.", |
| 314 | (NoPendingTransfer, En) => "No transfer is pending for this repository.", |
| 315 | (NoPendingTransfer, Tr) => "Bu depo için bekleyen bir devir yok.", |
| 316 | (NoRule, En) => "none", |
| 317 | (NoRule, Tr) => "yok", |
| 318 | (NoSecrets, En) => "No secrets yet.", |
| 319 | (NoSecrets, Tr) => "Henüz gizli anahtar yok.", |
| 320 | (NotCollaborator, En) => "That user is not a collaborator on this repo.", |
| 321 | (NotCollaborator, Tr) => "Bu kullanıcı bu deponun ortak çalışanı değil.", |
| 322 | (OwnerIsMember, En) => { |
| 323 | "The repo owner is already a member with full access and cannot be added as a collaborator." |
| 324 | } |
| 325 | (OwnerIsMember, Tr) => { |
| 326 | "Depo sahibi zaten tam erişimli bir üyedir ve ortak çalışan olarak eklenemez." |
| 327 | } |
| 328 | (PatternColumn, En) => "Pattern", |
| 329 | (PatternColumn, Tr) => "Desen", |
| 330 | (PatternHelpA, En) => "A branch name, or a pattern: ", |
| 331 | (PatternHelpA, Tr) => "Bir dal adı veya desen: ", |
| 332 | (PatternHelpB, En) => " matches within one path segment and ", |
| 333 | (PatternHelpB, Tr) => " tek yol parçası içinde eşleşir, ", |
| 334 | (PatternHelpC, En) => " matches across ", |
| 335 | (PatternHelpC, Tr) => " ise ", |
| 336 | (PatternHelpD, En) => ". Saving an existing pattern updates its rule.", |
| 337 | (PatternHelpD, Tr) => { |
| 338 | " işaretini de aşarak eşleşir. Var olan bir deseni kaydetmek, kuralını günceller." |
| 339 | } |
| 340 | (PendingTransfers, En) => "Pending transfers", |
| 341 | (PendingTransfers, Tr) => "Bekleyen devirler", |
| 342 | (PrivateOption, En) => { |
| 343 | "Private: only its owner, collaborators and instance admins can see it. Others get a 404." |
| 344 | } |
| 345 | (PrivateOption, Tr) => { |
| 346 | "Özel: yalnızca sahibi, ortak çalışanları ve sunucu yöneticileri görebilir. Diğerleri 404 hatası alır." |
| 347 | } |
| 348 | (PublicOption, En) => "Public: anyone can read it", |
| 349 | (PublicOption, Tr) => "Herkese açık: herkes okuyabilir", |
| 350 | (Remove, En) => "Remove", |
| 351 | (Remove, Tr) => "Kaldır", |
| 352 | (RenameHelp, En) => { |
| 353 | "Letters, digits, '.', '_' and '-'. The old name keeps working: its web and clone URLs redirect to the new name." |
| 354 | } |
| 355 | (RenameHelp, Tr) => { |
| 356 | "Harfler, rakamlar, '.', '_' ve '-' kullanılabilir. Eski ad çalışmaya devam eder: web ve klonlama adresleri yeni ada yönlendirilir." |
| 357 | } |
| 358 | (RenameRepo, En) => "Rename repository", |
| 359 | (RenameRepo, Tr) => "Depoyu yeniden adlandır", |
| 360 | (RenameTransferNav, En) => "Rename & transfer", |
| 361 | (RenameTransferNav, Tr) => "Yeniden adlandır ve devret", |
| 362 | (RenamedNotice, En) => "Repository renamed. The old name redirects to the new one.", |
| 363 | (RenamedNotice, Tr) => "Depo yeniden adlandırıldı. Eski ad yeni ada yönlendirir.", |
| 364 | (RepoArchived, En) => "Repository archived.", |
| 365 | (RepoArchived, Tr) => "Depo arşivlendi.", |
| 366 | (RepoDeletedAfter, En) => " deleted.", |
| 367 | (RepoDeletedAfter, Tr) => " silindi.", |
| 368 | (RepoDeletedBefore, En) => "Repository ", |
| 369 | (RepoDeletedBefore, Tr) => "Depo ", |
| 370 | (RepoTransfers, En) => "Repository transfers", |
| 371 | (RepoTransfers, Tr) => "Depo devirleri", |
| 372 | (RepoUnarchived, En) => "Repository unarchived.", |
| 373 | (RepoUnarchived, Tr) => "Depo arşivden çıkarıldı.", |
| 374 | (RequireUpToDate, En) => "Require the pull request head to contain the latest base branch", |
| 375 | (RequireUpToDate, Tr) => { |
| 376 | "Çekme isteğinin kaynak dalı, hedef dalın en son hâlini içermelidir" |
| 377 | } |
| 378 | (RequiredApprovals, En) => "Required approvals (0 to 20)", |
| 379 | (RequiredApprovals, Tr) => "Gerekli onay sayısı (0 ile 20 arası)", |
| 380 | (RestrictPush, En) => { |
| 381 | "Only accept changes through pull requests (direct pushes are limited to repo admins)" |
| 382 | } |
| 383 | (RestrictPush, Tr) => { |
| 384 | "Değişiklikler yalnızca çekme istekleri üzerinden kabul edilir (doğrudan gönderimler depo yöneticileriyle sınırlıdır)" |
| 385 | } |
| 386 | (Role, En) => "Role", |
| 387 | (Role, Tr) => "Rol", |
| 388 | (RoleAdminDesc, En) => "full repo settings except delete and transfer", |
| 389 | (RoleAdminDesc, Tr) => "silme ve devir dışında tüm depo ayarları", |
| 390 | (RoleMaintainDesc, En) => "push and manage issues/settings without destructive actions", |
| 391 | (RoleMaintainDesc, Tr) => "yıkıcı işlemler dışında gönderme, sorunları ve ayarları yönetme", |
| 392 | (RoleReadDesc, En) => "view and clone", |
| 393 | (RoleReadDesc, Tr) => "görüntüleme ve klonlama", |
| 394 | (Roles, En) => "Roles", |
| 395 | (Roles, Tr) => "Roller", |
| 396 | (RoleTriageDesc, En) => "manage issues", |
| 397 | (RoleTriageDesc, Tr) => "sorunları yönetme", |
| 398 | (RoleUpdated, En) => "Role updated.", |
| 399 | (RoleUpdated, Tr) => "Rol güncellendi.", |
| 400 | (RoleWriteDesc, En) => "push", |
| 401 | (RoleWriteDesc, Tr) => "gönderme (push)", |
| 402 | (RuleChangesBlock, En) => "changes requested block merges", |
| 403 | (RuleChangesBlock, Tr) => "değişiklik istenmesi birleştirmeyi engeller", |
| 404 | (RuleRestrictPush, En) => "direct pushes limited to admins", |
| 405 | (RuleRestrictPush, Tr) => "doğrudan gönderimler yöneticilerle sınırlı", |
| 406 | (RuleUpToDate, En) => "head must be up to date with base", |
| 407 | (RuleUpToDate, Tr) => "kaynak dal, hedef dalın güncel hâlini içermelidir", |
| 408 | (SaveGeneral, En) => "Save general settings", |
| 409 | (SaveGeneral, Tr) => "Genel ayarları kaydet", |
| 410 | (SaveRole, En) => "Save", |
| 411 | (SaveRole, Tr) => "Kaydet", |
| 412 | (SaveRule, En) => "Save rule", |
| 413 | (SaveRule, Tr) => "Kuralı kaydet", |
| 414 | (SaveSecret, En) => "Save secret", |
| 415 | (SaveSecret, Tr) => "Gizli anahtarı kaydet", |
| 416 | (SecretDeleted, En) => "Secret deleted.", |
| 417 | (SecretDeleted, Tr) => "Gizli anahtar silindi.", |
| 418 | (SecretLimits, En) => "Up to 48 KiB. Names are capital letters, digits and underscores.", |
| 419 | (SecretLimits, Tr) => "En fazla 48 KiB. Adlar büyük harf, rakam ve alt çizgiden oluşur.", |
| 420 | (SecretMissing, En) => "No secret has that name. Nothing was deleted.", |
| 421 | (SecretMissing, Tr) => "Bu adda bir gizli anahtar yok. Hiçbir şey silinmedi.", |
| 422 | (SecretSaved, En) => "Secret saved. Its value is not shown again.", |
| 423 | (SecretSaved, Tr) => "Gizli anahtar kaydedildi. Değeri bir daha gösterilmez.", |
| 424 | (Secrets, En) => "Secrets", |
| 425 | (Secrets, Tr) => "Gizli anahtarlar", |
| 426 | (SecretsHelp, En) => { |
| 427 | "Secrets are passed to CI jobs of this repository as environment variables. Values are write-only: once saved, they cannot be read back, and updating a secret replaces its value." |
| 428 | } |
| 429 | (SecretsHelp, Tr) => { |
| 430 | "Gizli anahtarlar, bu deponun CI işlerine ortam değişkeni olarak aktarılır. Değerler yalnızca yazılabilir: kaydedildikten sonra geri okunamazlar ve bir gizli anahtarı güncellemek değerini değiştirir." |
| 431 | } |
| 432 | (SettingsNavLabel, En) => "Settings", |
| 433 | (SettingsNavLabel, Tr) => "Ayarlar", |
| 434 | (StartTransferLink, En) => "Start or change a transfer in the settings", |
| 435 | (StartTransferLink, Tr) => "Ayarlarda devir başlatın veya değiştirin", |
| 436 | (TransferHelp, En) => { |
| 437 | "Offers the repository to another user, or to an organization you own, keeping its name. The target has 7 days to accept; an instance admin's transfer happens at once. Collaborator rows stay, except the new owner's, which is removed. The old owner and name redirect to the new location. " |
| 438 | } |
| 439 | (TransferHelp, Tr) => { |
| 440 | "Depoyu, adını koruyarak başka bir kullanıcıya ya da sahibi olduğunuz bir kuruluşa devreder. Hedefin kabul etmesi için 7 günü vardır; sunucu yöneticisinin devri hemen gerçekleşir. Ortak çalışan kayıtları korunur, yalnızca yeni sahibinin kaydı kaldırılır. Eski sahibi ve adı yeni konuma yönlendirilir. " |
| 441 | } |
| 442 | (TransferRepo, En) => "Transfer repository", |
| 443 | (TransferRepo, Tr) => "Depoyu devret", |
| 444 | (TransferTitle, En) => "Transfer", |
| 445 | (TransferTitle, Tr) => "Devir", |
| 446 | (TransferredNotice, En) => { |
| 447 | "Repository transferred. The old owner and name redirect to the new location." |
| 448 | } |
| 449 | (TransferredNotice, Tr) => "Depo devredildi. Eski sahibi ve adı yeni konuma yönlendirilir.", |
| 450 | (TypeToConfirmAfter, En) => " to confirm", |
| 451 | (TypeToConfirmAfter, Tr) => " yazın", |
| 452 | (TypeToConfirmBefore, En) => "Type ", |
| 453 | (TypeToConfirmBefore, Tr) => "Onaylamak için ", |
| 454 | (UnarchiveRepo, En) => "Unarchive repository", |
| 455 | (UnarchiveRepo, Tr) => "Depoyu arşivden çıkar", |
| 456 | (UnderstandNeeded, En) => { |
| 457 | "To change the visibility, tick I understand. Nothing was changed." |
| 458 | } |
| 459 | (UnderstandNeeded, Tr) => { |
| 460 | "Görünürlüğü değiştirmek için \"Anlıyorum\" kutusunu işaretleyin. Hiçbir şey değiştirilmedi." |
| 461 | } |
| 462 | (UnknownUser, En) => "No user has that username.", |
| 463 | (UnknownUser, Tr) => "Bu kullanıcı adına sahip bir kullanıcı yok.", |
| 464 | (Username, En) => "Username", |
| 465 | (Username, Tr) => "Kullanıcı adı", |
| 466 | (Value, En) => "Value", |
| 467 | (Value, Tr) => "Değer", |
| 468 | (ValueTooLarge, En) => "The value is larger than 48 KiB. Nothing was saved.", |
| 469 | (ValueTooLarge, Tr) => "Değer 48 KiB'tan büyük. Hiçbir şey kaydedilmedi.", |
| 470 | (VisibilityChanged, En) => "Visibility changed.", |
| 471 | (VisibilityChanged, Tr) => "Görünürlük değiştirildi.", |
| 472 | (VisibilityHeading, En) => "Visibility", |
| 473 | (VisibilityHeading, Tr) => "Görünürlük", |
| 474 | (VisibilityHelp, En) => { |
| 475 | "Tick I understand to change the visibility. The change takes effect at once." |
| 476 | } |
| 477 | (VisibilityHelp, Tr) => { |
| 478 | "Görünürlüğü değiştirmek için \"Anlıyorum\" kutusunu işaretleyin. Değişiklik hemen geçerli olur." |
| 479 | } |
| 480 | (Webhooks, En) => "Webhooks", |
| 481 | (Webhooks, Tr) => "Web kancaları", |
| 482 | } |
| 483 | } |
| 484 | |
| 485 | /// The page title of the rename and transfer page. |
| 486 | pub fn page_title(lang: Lang, title: &str) -> String { |
| 487 | match lang { |
| 488 | Lang::En => format!("{title} \u{b7} Rename or transfer"), |
| 489 | Lang::Tr => format!("{title} \u{b7} Yeniden adlandır veya devret"), |
| 490 | } |
| 491 | } |
| 492 | |
| 493 | /// The page title of the transfer status page. |
| 494 | pub fn transfer_page_title(lang: Lang, title: &str) -> String { |
| 495 | match lang { |
| 496 | Lang::En => format!("{title} \u{b7} Transfer"), |
| 497 | Lang::Tr => format!("{title} \u{b7} Devir"), |
| 498 | } |
| 499 | } |
| 500 | |
| 501 | /// The page title of the collaborators page. |
| 502 | pub fn collaborators_page_title(lang: Lang, title: &str) -> String { |
| 503 | match lang { |
| 504 | Lang::En => format!("{title} \u{b7} Collaborators"), |
| 505 | Lang::Tr => format!("{title} \u{b7} Ortak çalışanlar"), |
| 506 | } |
| 507 | } |
| 508 | |
| 509 | /// The page title of the CI secrets page. |
| 510 | pub fn secrets_page_title(lang: Lang, title: &str) -> String { |
| 511 | match lang { |
| 512 | Lang::En => format!("{title} \u{b7} Secrets"), |
| 513 | Lang::Tr => format!("{title} \u{b7} Gizli anahtarlar"), |
| 514 | } |
| 515 | } |
| 516 | |
| 517 | /// The page title of the repo settings page. |
| 518 | pub fn settings_page_title(lang: Lang, title: &str) -> String { |
| 519 | match lang { |
| 520 | Lang::En => format!("{title} \u{b7} Settings"), |
| 521 | Lang::Tr => format!("{title} \u{b7} Ayarlar"), |
| 522 | } |
| 523 | } |
| 524 | |
| 525 | /// The error for a rename whose name has characters outside the allowed set. |
| 526 | pub fn invalid_name(lang: Lang, name: &str) -> String { |
| 527 | match lang { |
| 528 | Lang::En => format!("{name:?}: only A-Z, a-z, 0-9, '.', '_' and '-' are allowed"), |
| 529 | Lang::Tr => format!("{name:?}: yalnızca A-Z, a-z, 0-9, '.', '_' ve '-' kullanılabilir."), |
| 530 | } |
| 531 | } |
| 532 | |
| 533 | /// The error for a transfer whose confirmation text does not match the repo name. |
| 534 | pub fn confirm_mismatch(lang: Lang, title: &str) -> String { |
| 535 | match lang { |
| 536 | Lang::En => format!("Type {title} exactly to confirm the transfer."), |
| 537 | Lang::Tr => format!("Devri onaylamak için {title} adını tam olarak yazın."), |
| 538 | } |
| 539 | } |
| 540 | |
| 541 | /// The error for a delete whose confirmation text does not match the repo name. |
| 542 | pub fn confirm_delete_mismatch(lang: Lang, title: &str) -> String { |
| 543 | match lang { |
| 544 | Lang::En => format!("Type {title} exactly to confirm the deletion."), |
| 545 | Lang::Tr => format!("Silmeyi onaylamak için {title} adını tam olarak yazın."), |
| 546 | } |
| 547 | } |
| 548 | |
| 549 | /// The error for a transfer to a user name that does not exist. |
| 550 | pub fn no_such_user(lang: Lang, name: &str) -> String { |
| 551 | match lang { |
| 552 | Lang::En => format!("No user named {name}."), |
| 553 | Lang::Tr => format!("{name} adında bir kullanıcı yok."), |
| 554 | } |
| 555 | } |
| 556 | |
| 557 | /// The error for a transfer to an organization whose owners the viewer is not. |
| 558 | pub fn only_org_owner(lang: Lang, org: &str) -> String { |
| 559 | match lang { |
| 560 | Lang::En => format!("Only an owner of {org} can take a repository for it."), |
| 561 | Lang::Tr => format!("Bir depoyu yalnızca {org} kuruluşunun sahipleri devralabilir."), |
| 562 | } |
| 563 | } |
| 564 | |
| 565 | /// One line about an open transfer on the repo page. |
| 566 | pub fn transfer_summary( |
| 567 | lang: Lang, |
| 568 | to_is_org: bool, |
| 569 | to_name: &str, |
| 570 | started_by: &str, |
| 571 | expires_on: &str, |
| 572 | ) -> String { |
| 573 | match lang { |
| 574 | Lang::En => { |
| 575 | let target = if to_is_org { |
| 576 | format!("the organization {to_name}") |
| 577 | } else { |
| 578 | to_name.to_owned() |
| 579 | }; |
| 580 | format!( |
| 581 | "Pending transfer to {target}, started by {started_by}. It expires on {expires_on} unless accepted." |
| 582 | ) |
| 583 | } |
| 584 | Lang::Tr => { |
| 585 | let target = if to_is_org { |
| 586 | format!("{to_name} kuruluşu") |
| 587 | } else { |
| 588 | format!("{to_name} kullanıcısı") |
| 589 | }; |
| 590 | format!( |
| 591 | "{target} için bekleyen devir, {started_by} tarafından başlatıldı. Kabul edilmezse {expires_on} tarihinde sona erer." |
| 592 | ) |
| 593 | } |
| 594 | } |
| 595 | } |
| 596 | |
| 597 | /// One inbox line: a repo offered to a user by someone. |
| 598 | pub fn inbox_line(lang: Lang, from_owner: &str, repo: &str, to_owner: &str, by: &str) -> String { |
| 599 | match lang { |
| 600 | Lang::En => format!("{from_owner}/{repo} is offered to {to_owner}, by {by}"), |
| 601 | Lang::Tr => format!( |
| 602 | "{from_owner}/{repo}, {by} tarafından {to_owner} kullanıcısına devredilmek üzere sunuldu." |
| 603 | ), |
| 604 | } |
| 605 | } |
| 606 | |
| 607 | /// The label of a role select for one collaborator. |
| 608 | pub fn role_for(lang: Lang, username: &str) -> String { |
| 609 | match lang { |
| 610 | Lang::En => format!("Role for {username}"), |
| 611 | Lang::Tr => format!("{username} için rol"), |
| 612 | } |
| 613 | } |
| 614 | |
| 615 | /// `yes` or `no` for a rule column. |
| 616 | pub fn yes_no(lang: Lang, value: bool) -> &'static str { |
| 617 | match (lang, value) { |
| 618 | (Lang::En, true) => "yes", |
| 619 | (Lang::En, false) => "no", |
| 620 | (Lang::Tr, true) => "evet", |
| 621 | (Lang::Tr, false) => "hayır", |
| 622 | } |
| 623 | } |
| 624 | |
| 625 | /// The number of required approvals in a rule summary. |
| 626 | pub fn approvals_count(lang: Lang, n: u32) -> String { |
| 627 | match lang { |
| 628 | Lang::En => format!("{n} required approval{}", if n == 1 { "" } else { "s" }), |
| 629 | Lang::Tr => format!("{n} gerekli onay"), |
| 630 | } |
| 631 | } |
| 632 | |
| 633 | #[cfg(test)] |
| 634 | mod tests { |
| 635 | use super::*; |
| 636 | |
| 637 | const ALL: &[K] = &[ |
| 638 | K::Accept, |
| 639 | K::AcceptTransfer, |
| 640 | K::AddCollaboratorButton, |
| 641 | K::AddCollaboratorHeading, |
| 642 | K::AddCollaboratorHelp, |
| 643 | K::AddOrUpdate, |
| 644 | K::AddOrUpdateRule, |
| 645 | K::AllowDeletion, |
| 646 | K::AllowForcePush, |
| 647 | K::AlreadyOwner, |
| 648 | K::ApprovalsHelp, |
| 649 | K::ApprovalsRange, |
| 650 | K::ArchiveHeading, |
| 651 | K::ArchiveHelp, |
| 652 | K::ArchiveRepo, |
| 653 | K::ArchivedHelp, |
| 654 | K::ArchivedSecrets, |
| 655 | K::BadForm, |
| 656 | K::BlockWhileChanges, |
| 657 | K::BranchMissing, |
| 658 | K::BranchPattern, |
| 659 | K::BranchProtection, |
| 660 | K::BranchProtectionHelp, |
| 661 | K::BranchRuleRemoved, |
| 662 | K::BranchRuleSaved, |
| 663 | K::BuiltinRowText, |
| 664 | K::CancelTransfer, |
| 665 | K::ChangeVisibility, |
| 666 | K::CollabAdded, |
| 667 | K::CollabRemoved, |
| 668 | K::Collaborators, |
| 669 | K::CollaboratorsHelp, |
| 670 | K::ColUser, |
| 671 | K::DangerZone, |
| 672 | K::Decline, |
| 673 | K::DeclineTransfer, |
| 674 | K::DefaultBranch, |
| 675 | K::DefaultBranchFailed, |
| 676 | K::Delete, |
| 677 | K::DeleteRepo, |
| 678 | K::DeleteRepoHelp, |
| 679 | K::DeleteTrashHelp, |
| 680 | K::DeletionAllowed, |
| 681 | K::Description, |
| 682 | K::DescriptionHelp, |
| 683 | K::DescriptionLong, |
| 684 | K::EnterUsername, |
| 685 | K::EnterValue, |
| 686 | K::ForcePushAllowed, |
| 687 | K::General, |
| 688 | K::GeneralSaved, |
| 689 | K::IUnderstand, |
| 690 | K::InvalidRole, |
| 691 | K::LastUpdated, |
| 692 | K::MergePushRules, |
| 693 | K::Mirrors, |
| 694 | K::Name, |
| 695 | K::NameRule, |
| 696 | K::NewName, |
| 697 | K::NewOwnerLabel, |
| 698 | K::NoBranchesYet, |
| 699 | K::NoCollaborators, |
| 700 | K::NoPendingTransfer, |
| 701 | K::NoRule, |
| 702 | K::NoSecrets, |
| 703 | K::NotCollaborator, |
| 704 | K::OwnerIsMember, |
| 705 | K::PatternColumn, |
| 706 | K::PatternHelpA, |
| 707 | K::PatternHelpB, |
| 708 | K::PatternHelpC, |
| 709 | K::PatternHelpD, |
| 710 | K::PendingTransfers, |
| 711 | K::PrivateOption, |
| 712 | K::PublicOption, |
| 713 | K::Remove, |
| 714 | K::RenameHelp, |
| 715 | K::RenameRepo, |
| 716 | K::RenameTransferNav, |
| 717 | K::RenamedNotice, |
| 718 | K::RepoArchived, |
| 719 | K::RepoDeletedAfter, |
| 720 | K::RepoDeletedBefore, |
| 721 | K::RepoTransfers, |
| 722 | K::RepoUnarchived, |
| 723 | K::RequireUpToDate, |
| 724 | K::RequiredApprovals, |
| 725 | K::RestrictPush, |
| 726 | K::Role, |
| 727 | K::RoleAdminDesc, |
| 728 | K::RoleMaintainDesc, |
| 729 | K::RoleReadDesc, |
| 730 | K::Roles, |
| 731 | K::RoleTriageDesc, |
| 732 | K::RoleUpdated, |
| 733 | K::RoleWriteDesc, |
| 734 | K::RuleChangesBlock, |
| 735 | K::RuleRestrictPush, |
| 736 | K::RuleUpToDate, |
| 737 | K::SaveGeneral, |
| 738 | K::SaveRole, |
| 739 | K::SaveRule, |
| 740 | K::SaveSecret, |
| 741 | K::SecretDeleted, |
| 742 | K::SecretLimits, |
| 743 | K::SecretMissing, |
| 744 | K::SecretSaved, |
| 745 | K::Secrets, |
| 746 | K::SecretsHelp, |
| 747 | K::SettingsNavLabel, |
| 748 | K::StartTransferLink, |
| 749 | K::TransferHelp, |
| 750 | K::TransferRepo, |
| 751 | K::TransferTitle, |
| 752 | K::TransferredNotice, |
| 753 | K::TypeToConfirmAfter, |
| 754 | K::TypeToConfirmBefore, |
| 755 | K::UnarchiveRepo, |
| 756 | K::UnderstandNeeded, |
| 757 | K::UnknownUser, |
| 758 | K::Username, |
| 759 | K::Value, |
| 760 | K::ValueTooLarge, |
| 761 | K::VisibilityChanged, |
| 762 | K::VisibilityHeading, |
| 763 | K::VisibilityHelp, |
| 764 | K::Webhooks, |
| 765 | ]; |
| 766 | |
| 767 | #[test] |
| 768 | fn every_key_has_english_and_turkish() { |
| 769 | for key in ALL { |
| 770 | assert!(!t(Lang::En, *key).is_empty(), "{key:?} has no English"); |
| 771 | assert!(!t(Lang::Tr, *key).is_empty(), "{key:?} has no Turkish"); |
| 772 | } |
| 773 | } |
| 774 | |
| 775 | #[test] |
| 776 | fn turkish_differs_from_english() { |
| 777 | let differing = ALL |
| 778 | .iter() |
| 779 | .filter(|key| t(Lang::En, **key) != t(Lang::Tr, **key)) |
| 780 | .count(); |
| 781 | assert!(differing >= 3, "only {differing} keys differ"); |
| 782 | } |
| 783 | } |