forge
ExploreLog in

Tahinli/forge

public
0 watching
★ 0
31.0 KiB
1//! Strings for this page group. See `docs` in `super` for the pattern.
2
3use super::Lang;
4
5#[derive(Clone, Copy, Debug, PartialEq, Eq)]
6pub 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
136pub 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.
486pub 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.
494pub 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.
502pub 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.
510pub 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.
518pub 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.
526pub 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.
534pub 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.
542pub 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.
550pub 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.
558pub 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.
566pub 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.
598pub 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.
608pub 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.
616pub 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.
626pub 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)]
634mod 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}