diff --git a/README.md b/README.md index aacf222eb..846407f67 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ * Supports Windows/macOS/Linux * Opensource/Free * Fast -* Deutsch/English/Español/Français/Italiano/Português/Русский/简体中文/繁體中文/日本語 +* Deutsch/English/Español/Français/Italiano/Português/Русский/简体中文/繁體中文/日本語/தமிழ் (Tamil) * Built-in light/dark themes * Customize theme * Visual commit graph @@ -48,7 +48,7 @@ ## Translation Status -You can find the current translation status in [TRANSLATION.md](TRANSLATION.md) +You can find the current translation status in [TRANSLATION.md](https://github.com/sourcegit-scm/sourcegit/blob/develop/TRANSLATION.md) ## How to Use diff --git a/TRANSLATION.md b/TRANSLATION.md index b344e6a3e..ccf003c75 100644 --- a/TRANSLATION.md +++ b/TRANSLATION.md @@ -6,14 +6,19 @@ This document shows the translation status of each locale file in the repository ### ![en_US](https://img.shields.io/badge/en__US-%E2%88%9A-brightgreen) -### ![de__DE](https://img.shields.io/badge/de__DE-98.65%25-yellow) +### ![de__DE](https://img.shields.io/badge/de__DE-97.34%25-yellow)
Missing keys in de_DE.axaml - Text.BranchUpstreamInvalid - Text.Configure.CustomAction.WaitForExit +- Text.Configure.Git.PreferredMergeMode - Text.Configure.IssueTracker.AddSampleAzure +- Text.ConfirmEmptyCommit.Continue +- Text.ConfirmEmptyCommit.NoLocalChanges +- Text.ConfirmEmptyCommit.StageAllThenCommit +- Text.ConfirmEmptyCommit.WithLocalChanges - Text.CopyFullPath - Text.Diff.First - Text.Diff.Last @@ -21,34 +26,91 @@ This document shows the translation status of each locale file in the repository - Text.Preferences.Appearance.EditorTabWidth - Text.Preferences.General.ShowTagsInGraph - Text.StashCM.SaveAsPatch +- Text.WorkingCopy.ConfirmCommitWithFilter +- Text.WorkingCopy.Conflicts.OpenExternalMergeTool +- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts +- Text.WorkingCopy.Conflicts.UseMine +- Text.WorkingCopy.Conflicts.UseTheirs
-### ![es__ES](https://img.shields.io/badge/es__ES-%E2%88%9A-brightgreen) +### ![es__ES](https://img.shields.io/badge/es__ES-98.67%25-yellow) -### ![fr__FR](https://img.shields.io/badge/fr__FR-%E2%88%9A-brightgreen) +
+Missing keys in es_ES.axaml + +- Text.Configure.Git.PreferredMergeMode +- Text.ConfirmEmptyCommit.Continue +- Text.ConfirmEmptyCommit.NoLocalChanges +- Text.ConfirmEmptyCommit.StageAllThenCommit +- Text.ConfirmEmptyCommit.WithLocalChanges +- Text.WorkingCopy.ConfirmCommitWithFilter +- Text.WorkingCopy.Conflicts.OpenExternalMergeTool +- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts +- Text.WorkingCopy.Conflicts.UseMine +- Text.WorkingCopy.Conflicts.UseTheirs + +
-### ![it__IT](https://img.shields.io/badge/it__IT-99.73%25-yellow) +### ![fr__FR](https://img.shields.io/badge/fr__FR-98.67%25-yellow) + +
+Missing keys in fr_FR.axaml + +- Text.Configure.Git.PreferredMergeMode +- Text.ConfirmEmptyCommit.Continue +- Text.ConfirmEmptyCommit.NoLocalChanges +- Text.ConfirmEmptyCommit.StageAllThenCommit +- Text.ConfirmEmptyCommit.WithLocalChanges +- Text.WorkingCopy.ConfirmCommitWithFilter +- Text.WorkingCopy.Conflicts.OpenExternalMergeTool +- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts +- Text.WorkingCopy.Conflicts.UseMine +- Text.WorkingCopy.Conflicts.UseTheirs + +
+ +### ![it__IT](https://img.shields.io/badge/it__IT-98.40%25-yellow)
Missing keys in it_IT.axaml +- Text.Configure.Git.PreferredMergeMode +- Text.ConfirmEmptyCommit.Continue +- Text.ConfirmEmptyCommit.NoLocalChanges +- Text.ConfirmEmptyCommit.StageAllThenCommit +- Text.ConfirmEmptyCommit.WithLocalChanges - Text.CopyFullPath - Text.Preferences.General.ShowTagsInGraph +- Text.WorkingCopy.ConfirmCommitWithFilter +- Text.WorkingCopy.Conflicts.OpenExternalMergeTool +- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts +- Text.WorkingCopy.Conflicts.UseMine +- Text.WorkingCopy.Conflicts.UseTheirs
-### ![ja__JP](https://img.shields.io/badge/ja__JP-99.73%25-yellow) +### ![ja__JP](https://img.shields.io/badge/ja__JP-98.40%25-yellow)
Missing keys in ja_JP.axaml +- Text.Configure.Git.PreferredMergeMode +- Text.ConfirmEmptyCommit.Continue +- Text.ConfirmEmptyCommit.NoLocalChanges +- Text.ConfirmEmptyCommit.StageAllThenCommit +- Text.ConfirmEmptyCommit.WithLocalChanges - Text.Repository.FilterCommits - Text.Repository.Tags.OrderByNameDes +- Text.WorkingCopy.ConfirmCommitWithFilter +- Text.WorkingCopy.Conflicts.OpenExternalMergeTool +- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts +- Text.WorkingCopy.Conflicts.UseMine +- Text.WorkingCopy.Conflicts.UseTheirs
-### ![pt__BR](https://img.shields.io/badge/pt__BR-90.98%25-yellow) +### ![pt__BR](https://img.shields.io/badge/pt__BR-89.76%25-yellow)
Missing keys in pt_BR.axaml @@ -69,8 +131,13 @@ This document shows the translation status of each locale file in the repository - Text.CommitDetail.Info.Children - Text.Configure.CustomAction.Scope.Branch - Text.Configure.CustomAction.WaitForExit +- Text.Configure.Git.PreferredMergeMode - Text.Configure.IssueTracker.AddSampleGiteeIssue - Text.Configure.IssueTracker.AddSampleGiteePullRequest +- Text.ConfirmEmptyCommit.Continue +- Text.ConfirmEmptyCommit.NoLocalChanges +- Text.ConfirmEmptyCommit.StageAllThenCommit +- Text.ConfirmEmptyCommit.WithLocalChanges - Text.CopyFullPath - Text.CreateBranch.Name.WarnSpace - Text.DeleteRepositoryNode.Path @@ -119,11 +186,50 @@ This document shows the translation status of each locale file in the repository - Text.Stash.AutoRestore.Tip - Text.StashCM.SaveAsPatch - Text.WorkingCopy.CommitToEdit +- Text.WorkingCopy.ConfirmCommitWithFilter +- Text.WorkingCopy.Conflicts.OpenExternalMergeTool +- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts +- Text.WorkingCopy.Conflicts.UseMine +- Text.WorkingCopy.Conflicts.UseTheirs - Text.WorkingCopy.SignOff
-### ![ru__RU](https://img.shields.io/badge/ru__RU-%E2%88%9A-brightgreen) +### ![ru__RU](https://img.shields.io/badge/ru__RU-98.67%25-yellow) + +
+Missing keys in ru_RU.axaml + +- Text.Configure.Git.PreferredMergeMode +- Text.ConfirmEmptyCommit.Continue +- Text.ConfirmEmptyCommit.NoLocalChanges +- Text.ConfirmEmptyCommit.StageAllThenCommit +- Text.ConfirmEmptyCommit.WithLocalChanges +- Text.WorkingCopy.ConfirmCommitWithFilter +- Text.WorkingCopy.Conflicts.OpenExternalMergeTool +- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts +- Text.WorkingCopy.Conflicts.UseMine +- Text.WorkingCopy.Conflicts.UseTheirs + +
+ +### ![ta__IN](https://img.shields.io/badge/ta__IN-98.67%25-yellow) + +
+Missing keys in ta_IN.axaml + +- Text.Configure.Git.PreferredMergeMode +- Text.ConfirmEmptyCommit.Continue +- Text.ConfirmEmptyCommit.NoLocalChanges +- Text.ConfirmEmptyCommit.StageAllThenCommit +- Text.ConfirmEmptyCommit.WithLocalChanges +- Text.UpdateSubmodules.Target +- Text.WorkingCopy.Conflicts.OpenExternalMergeTool +- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts +- Text.WorkingCopy.Conflicts.UseMine +- Text.WorkingCopy.Conflicts.UseTheirs + +
### ![zh__CN](https://img.shields.io/badge/zh__CN-%E2%88%9A-brightgreen) diff --git a/src/App.axaml b/src/App.axaml index fdfa8e076..9d8adb89b 100644 --- a/src/App.axaml +++ b/src/App.axaml @@ -21,6 +21,7 @@ + diff --git a/src/Commands/MergeTool.cs b/src/Commands/MergeTool.cs index d3478d592..f67f5e486 100644 --- a/src/Commands/MergeTool.cs +++ b/src/Commands/MergeTool.cs @@ -13,9 +13,12 @@ public static bool OpenForMerge(string repo, int toolType, string toolPath, stri cmd.Context = repo; cmd.RaiseError = true; + // NOTE: If no names are specified, 'git mergetool' will run the merge tool program on every file with merge conflicts. + var fileArg = string.IsNullOrEmpty(file) ? "" : $"\"{file}\""; + if (toolType == 0) { - cmd.Args = $"mergetool \"{file}\""; + cmd.Args = $"mergetool {fileArg}"; return cmd.Exec(); } @@ -32,7 +35,7 @@ public static bool OpenForMerge(string repo, int toolType, string toolPath, stri return false; } - cmd.Args = $"-c mergetool.sourcegit.cmd=\"\\\"{toolPath}\\\" {supported.Cmd}\" -c mergetool.writeToTemp=true -c mergetool.keepBackup=false -c mergetool.trustExitCode=true mergetool --tool=sourcegit \"{file}\""; + cmd.Args = $"-c mergetool.sourcegit.cmd=\"\\\"{toolPath}\\\" {supported.Cmd}\" -c mergetool.writeToTemp=true -c mergetool.keepBackup=false -c mergetool.trustExitCode=true mergetool --tool=sourcegit {fileArg}"; return cmd.Exec(); } diff --git a/src/Commands/QueryCommitChangedLines.cs b/src/Commands/QueryCommitChangedLines.cs new file mode 100644 index 000000000..81786a665 --- /dev/null +++ b/src/Commands/QueryCommitChangedLines.cs @@ -0,0 +1,44 @@ +using System.Text.RegularExpressions; + +namespace SourceGit.Commands +{ + public class QueryCommitChangedLines : Command + { + public QueryCommitChangedLines(string repo, string sha) + { + WorkingDirectory = repo; + Context = repo; + Args = $"show --shortstat --oneline {sha}"; + _pattern = new Regex(@"(\d+) files? changed(?:, (\d+) insertions?\(\+\))?(?:, (\d+) deletions?\(-\))?"); + } + + public (int, int) Result() + { + _addedLines = 0; + _removedLines = 0; + Exec(); + return (_addedLines, _removedLines); + } + + protected override void OnReadline(string line) + { + var match = _pattern.Match(line); + if (match.Success) + { + if (match.Groups[2].Success) + { + _addedLines = int.Parse(match.Groups[2].Value); + } + + if (match.Groups[3].Success) + { + _removedLines = int.Parse(match.Groups[3].Value); + } + } + } + + private readonly Regex _pattern; + private int _addedLines; + private int _removedLines; + } +} diff --git a/src/Commands/QueryStashChanges.cs b/src/Commands/QueryStashChanges.cs index 922405698..1f6c5b4f9 100644 --- a/src/Commands/QueryStashChanges.cs +++ b/src/Commands/QueryStashChanges.cs @@ -14,7 +14,7 @@ public partial class QueryStashChanges : Command [GeneratedRegex(@"^R[0-9]{0,4}\s+(.+)$")] private static partial Regex REG_RENAME_FORMAT(); - public QueryStashChanges(string repo, string stash) + public QueryStashChanges(string repo, string stash) { WorkingDirectory = repo; Context = repo; diff --git a/src/Commands/Statistics.cs b/src/Commands/Statistics.cs index 1439cedd1..41b3889eb 100644 --- a/src/Commands/Statistics.cs +++ b/src/Commands/Statistics.cs @@ -8,7 +8,7 @@ public Statistics(string repo, int max) { WorkingDirectory = repo; Context = repo; - Args = $"log --date-order --branches --remotes -{max} --format=%ct$%aN"; + Args = $"log --date-order --branches --remotes -{max} --format=%ct$%aN±%aE"; } public Models.Statistics Result() diff --git a/src/Converters/StringConverters.cs b/src/Converters/StringConverters.cs index 5e4608c52..bcadfae9f 100644 --- a/src/Converters/StringConverters.cs +++ b/src/Converters/StringConverters.cs @@ -81,5 +81,8 @@ public object ConvertBack(object value, Type targetType, object parameter, Cultu public static readonly FuncValueConverter ContainsSpaces = new FuncValueConverter(v => v != null && v.Contains(' ')); + + public static readonly FuncValueConverter IsNotNullOrWhitespace = + new FuncValueConverter(v => v != null && v.Trim().Length > 0); } } diff --git a/src/Models/Change.cs b/src/Models/Change.cs index 36fe20ac4..e9d071811 100644 --- a/src/Models/Change.cs +++ b/src/Models/Change.cs @@ -36,7 +36,7 @@ public class Change public string OriginalPath { get; set; } = ""; public ChangeDataForAmend DataForAmend { get; set; } = null; - public bool IsConflit + public bool IsConflict { get { diff --git a/src/Models/Commit.cs b/src/Models/Commit.cs index 0bad83766..edda603f1 100644 --- a/src/Models/Commit.cs +++ b/src/Models/Commit.cs @@ -1,5 +1,7 @@ using System; using System.Collections.Generic; +using System.ComponentModel; +using System.Runtime.CompilerServices; using Avalonia; using Avalonia.Media; @@ -15,8 +17,15 @@ public enum CommitSearchMethod ByFile, } - public class Commit + public class Commit : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + protected void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + public static double OpacityForNotMerged { get; @@ -48,6 +57,35 @@ public static double OpacityForNotMerged public Thickness Margin { get; set; } = new Thickness(0); public IBrush Brush => CommitGraph.Pens[Color].Brush; + private int _addedLines = 0; + private int _removedLines = 0; + + public int AddedLines + { + get => _addedLines; + set + { + if (_addedLines != value) + { + _addedLines = value; + OnPropertyChanged(); + } + } + } + + public int RemovedLines + { + get => _removedLines; + set + { + if (_removedLines != value) + { + _removedLines = value; + OnPropertyChanged(); + } + } + } + public void ParseDecorators(string data) { if (data.Length < 3) diff --git a/src/Models/ExternalMerger.cs b/src/Models/ExternalMerger.cs index 49d31df5e..d97d39331 100644 --- a/src/Models/ExternalMerger.cs +++ b/src/Models/ExternalMerger.cs @@ -42,6 +42,7 @@ static ExternalMerger() new ExternalMerger(7, "win_merge", "WinMerge", "WinMergeU.exe", "\"$MERGED\"", "-u -e -sw \"$LOCAL\" \"$REMOTE\""), new ExternalMerger(8, "codium", "VSCodium", "VSCodium.exe", "-n --wait \"$MERGED\"", "-n --wait --diff \"$LOCAL\" \"$REMOTE\""), new ExternalMerger(9, "p4merge", "P4Merge", "p4merge.exe", "-tw 4 \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"", "-tw 4 \"$LOCAL\" \"$REMOTE\""), + new ExternalMerger(10, "plastic_merge", "Plastic SCM", "mergetool.exe", "-s=\"$REMOTE\" -b=\"$BASE\" -d=\"$LOCAL\" -r=\"$MERGED\" --automatic", "-s=\"$LOCAL\" -d=\"$REMOTE\""), }; } else if (OperatingSystem.IsMacOS()) diff --git a/src/Models/Locales.cs b/src/Models/Locales.cs index 802e88ef2..a7884e8b6 100644 --- a/src/Models/Locales.cs +++ b/src/Models/Locales.cs @@ -18,6 +18,7 @@ public class Locale new Locale("简体中文", "zh_CN"), new Locale("繁體中文", "zh_TW"), new Locale("日本語", "ja_JP"), + new Locale("தமிழ் (Tamil)", "ta_IN"), }; public Locale(string name, string key) diff --git a/src/Models/OpenAI.cs b/src/Models/OpenAI.cs index 76daacd05..22fbcd512 100644 --- a/src/Models/OpenAI.cs +++ b/src/Models/OpenAI.cs @@ -107,15 +107,7 @@ public string Name public string Server { get => _server; - set - { - // migrate old server value - if (!string.IsNullOrEmpty(value) && value.EndsWith("/chat/completions", StringComparison.Ordinal)) - { - value = value.Substring(0, value.Length - "/chat/completions".Length); - } - SetProperty(ref _server, value); - } + set => SetProperty(ref _server, value); } public string ApiKey diff --git a/src/Models/RepositorySettings.cs b/src/Models/RepositorySettings.cs index 76a7f160f..fc5e81b42 100644 --- a/src/Models/RepositorySettings.cs +++ b/src/Models/RepositorySettings.cs @@ -224,6 +224,12 @@ public List ExpandedBranchNodesInSideBar set; } = []; + public int PreferredMergeMode + { + get; + set; + } = 0; + public Dictionary CollectHistoriesFilters() { var map = new Dictionary(); @@ -303,127 +309,80 @@ public void RemoveChildrenBranchFilters(string pattern) public string BuildHistoriesFilter() { + var includedRefs = new List(); var excludedBranches = new List(); var excludedRemotes = new List(); var excludedTags = new List(); - var includedBranches = new List(); - var includedRemotes = new List(); - var includedTags = new List(); foreach (var filter in HistoriesFilters) { if (filter.Type == FilterType.LocalBranch) { - var name = filter.Pattern.Substring(11); - var b = $"{name.Substring(0, name.Length - 1)}[{name[^1]}]"; - if (filter.Mode == FilterMode.Included) - includedBranches.Add(b); + includedRefs.Add(filter.Pattern); else if (filter.Mode == FilterMode.Excluded) - excludedBranches.Add(b); + excludedBranches.Add($"--exclude=\"{filter.Pattern.Substring(11)}\" --decorate-refs-exclude=\"{filter.Pattern}\""); } else if (filter.Type == FilterType.LocalBranchFolder) { if (filter.Mode == FilterMode.Included) - includedBranches.Add($"{filter.Pattern.Substring(11)}/*"); + includedRefs.Add($"--branches={filter.Pattern.Substring(11)}/*"); else if (filter.Mode == FilterMode.Excluded) - excludedBranches.Add($"{filter.Pattern.Substring(11)}/*"); + excludedBranches.Add($"--exclude=\"{filter.Pattern.Substring(11)}/*\" --decorate-refs-exclude=\"{filter.Pattern}/*\""); } else if (filter.Type == FilterType.RemoteBranch) { - var name = filter.Pattern.Substring(13); - var r = $"{name.Substring(0, name.Length - 1)}[{name[^1]}]"; - if (filter.Mode == FilterMode.Included) - includedRemotes.Add(r); + includedRefs.Add(filter.Pattern); else if (filter.Mode == FilterMode.Excluded) - excludedRemotes.Add(r); + excludedRemotes.Add($"--exclude=\"{filter.Pattern.Substring(13)}\" --decorate-refs-exclude=\"{filter.Pattern}\""); } else if (filter.Type == FilterType.RemoteBranchFolder) { if (filter.Mode == FilterMode.Included) - includedRemotes.Add($"{filter.Pattern.Substring(13)}/*"); + includedRefs.Add($"--remotes={filter.Pattern.Substring(13)}/*"); else if (filter.Mode == FilterMode.Excluded) - excludedRemotes.Add($"{filter.Pattern.Substring(13)}/*"); + excludedRemotes.Add($"--exclude=\"{filter.Pattern.Substring(13)}/*\" --decorate-refs-exclude=\"{filter.Pattern}/*\""); } else if (filter.Type == FilterType.Tag) { - var name = filter.Pattern; - var t = $"{name.Substring(0, name.Length - 1)}[{name[^1]}]"; - if (filter.Mode == FilterMode.Included) - includedTags.Add(t); + includedRefs.Add($"refs/tags/{filter.Pattern}"); else if (filter.Mode == FilterMode.Excluded) - excludedTags.Add(t); + excludedTags.Add($"--exclude=\"{filter.Pattern}\" --decorate-refs-exclude=\"refs/tags/{filter.Pattern}\""); } } - bool hasIncluded = includedBranches.Count > 0 || includedRemotes.Count > 0 || includedTags.Count > 0; - bool hasExcluded = excludedBranches.Count > 0 || excludedRemotes.Count > 0 || excludedTags.Count > 0; - var builder = new StringBuilder(); - if (hasIncluded) + if (includedRefs.Count > 0) { - foreach (var b in includedBranches) + foreach (var r in includedRefs) { - builder.Append("--branches="); - builder.Append(b); - builder.Append(' '); - } - - foreach (var r in includedRemotes) - { - builder.Append("--remotes="); builder.Append(r); builder.Append(' '); } - - foreach (var t in includedTags) - { - builder.Append("--tags="); - builder.Append(t); - builder.Append(' '); - } } - else if (hasExcluded) + else if (excludedBranches.Count + excludedRemotes.Count + excludedTags.Count > 0) { - if (excludedBranches.Count > 0) + foreach (var b in excludedBranches) { - foreach (var b in excludedBranches) - { - builder.Append("--exclude="); - builder.Append(b); - builder.Append(" --decorate-refs-exclude=refs/heads/"); - builder.Append(b); - builder.Append(' '); - } + builder.Append(b); + builder.Append(' '); } - builder.Append("--exclude=HEA[D] --branches "); + builder.Append("--exclude=HEAD --branches "); - if (excludedRemotes.Count > 0) + foreach (var r in excludedRemotes) { - foreach (var r in excludedRemotes) - { - builder.Append("--exclude="); - builder.Append(r); - builder.Append(" --decorate-refs-exclude=refs/remotes/"); - builder.Append(r); - builder.Append(' '); - } + builder.Append(r); + builder.Append(' '); } - builder.Append("--exclude=origin/HEA[D] --remotes "); + builder.Append("--exclude=origin/HEAD --remotes "); - if (excludedTags.Count > 0) + foreach (var t in excludedTags) { - foreach (var t in excludedTags) - { - builder.Append("--exclude="); - builder.Append(t); - builder.Append(" --decorate-refs-exclude=refs/tags/"); - builder.Append(t); - builder.Append(' '); - } + builder.Append(t); + builder.Append(' '); } builder.Append("--tags "); diff --git a/src/Models/Statistics.cs b/src/Models/Statistics.cs index 969d3945a..87a6eabde 100644 --- a/src/Models/Statistics.cs +++ b/src/Models/Statistics.cs @@ -18,9 +18,9 @@ public enum StaticsticsMode ThisWeek, } - public class StaticsticsAuthor(string name, int count) + public class StaticsticsAuthor(User user, int count) { - public string Name { get; set; } = name; + public User User { get; set; } = user; public int Count { get; set; } = count; } @@ -73,7 +73,7 @@ public StatisticsReport(StaticsticsMode mode, DateTime start) } } - public void AddCommit(DateTime time, string author) + public void AddCommit(DateTime time, User author) { Total++; @@ -126,7 +126,7 @@ public void ChangeColor(uint color) } private StaticsticsMode _mode = StaticsticsMode.All; - private Dictionary _mapUsers = new Dictionary(); + private Dictionary _mapUsers = new Dictionary(); private Dictionary _mapSamples = new Dictionary(); } @@ -150,14 +150,16 @@ public Statistics() public void AddCommit(string author, double timestamp) { + var user = User.FindOrAdd(author); + var time = DateTime.UnixEpoch.AddSeconds(timestamp).ToLocalTime(); if (time >= _thisWeekStart) - Week.AddCommit(time, author); + Week.AddCommit(time, user); if (time >= _thisMonthStart) - Month.AddCommit(time, author); + Month.AddCommit(time, user); - All.AddCommit(time, author); + All.AddCommit(time, user); } public void Complete() diff --git a/src/Resources/Images/ExternalToolIcons/plastic_merge.png b/src/Resources/Images/ExternalToolIcons/plastic_merge.png new file mode 100644 index 000000000..0d82fc86f Binary files /dev/null and b/src/Resources/Images/ExternalToolIcons/plastic_merge.png differ diff --git a/src/Resources/Locales/de_DE.axaml b/src/Resources/Locales/de_DE.axaml index bbfe45450..25b54c602 100644 --- a/src/Resources/Locales/de_DE.axaml +++ b/src/Resources/Locales/de_DE.axaml @@ -2,19 +2,20 @@ + Info Über SourceGit Open Source & freier Git GUI Client Worktree hinzufügen - Was auschecken: - Existierender Branch - Neuen Branch erstellen Ordner: Pfad für diesen Worktree. Relativer Pfad wird unterstützt. Branch Name: Optional. Standard ist der Zielordnername. Branch verfolgen: Remote-Branch verfolgen + Was auschecken: + Neuen Branch erstellen + Existierender Branch OpenAI Assistent Neu generieren Verwende OpenAI, um Commit-Nachrichten zu generieren @@ -63,8 +64,8 @@ Branch Vergleich Bytes ABBRECHEN - Auf diese Revision zurücksetzen Auf Vorgänger-Revision zurücksetzen + Auf diese Revision zurücksetzen Generiere Commit-Nachricht ANZEIGE MODUS ÄNDERN Zeige als Datei- und Ordnerliste @@ -72,12 +73,12 @@ Zeige als Dateisystembaum Branch auschecken Commit auschecken - Warnung: Beim Auschecken eines Commits wird dein HEAD losgelöst (detached) sein! Commit: - Branch: + Warnung: Beim Auschecken eines Commits wird dein HEAD losgelöst (detached) sein! Lokale Änderungen: Verwerfen Stashen & wieder anwenden + Branch: Cherry Pick Quelle an Commit-Nachricht anhängen Commit(s): @@ -96,9 +97,9 @@ Repository URL: SCHLIESSEN Editor + Commit auschecken Diesen Commit cherry-picken Mehrere cherry-picken - Commit auschecken Mit HEAD vergleichen Mit Worktree vergleichen Info kopieren @@ -133,12 +134,12 @@ REFS SHA Im Browser öffnen - Commit-Nachricht Details + Commit-Nachricht Repository Einstellungen COMMIT TEMPLATE - Template Name: Template Inhalt: + Template Name: BENUTZERDEFINIERTE AKTION Argumente: ${REPO} - Repository Pfad; ${SHA} - SHA-Wert des selektierten Commits @@ -158,9 +159,9 @@ Beispiel für Gitee Issue Regel einfügen Beispiel für Gitee Pull Request Regel einfügen Beispiel für Github-Regel hinzufügen - Beispiel für Jira-Regel hinzufügen Beispiel für Gitlab Issue Regel einfügen Beispiel für Gitlab Merge Request einfügen + Beispiel für Jira-Regel hinzufügen Neue Regel Ticketnummer Regex-Ausdruck: Name: @@ -220,9 +221,9 @@ Remote: Pfad: Ziel: - Bestätige löschen von Gruppe Alle Nachfolger werden aus der Liste entfernt. Dadurch wird es nur aus der Liste entfernt, nicht von der Festplatte! + Bestätige löschen von Gruppe Bestätige löschen von Repository Lösche Submodul Submodul Pfad: @@ -289,11 +290,11 @@ Unstage {0} Dateien unstagen Änderungen in ausgewählten Zeilen unstagen - "Ihre" verwenden (checkout --theirs) "Meine" verwenden (checkout --ours) + "Ihre" verwenden (checkout --theirs) Datei Historie - INHALT ÄNDERUNGEN + INHALT Git-Flow Development-Branch: Feature: @@ -323,8 +324,8 @@ Eigenes Muster: Verfolgungsmuster zu Git LFS hinzufügen Fetch - LFS Objekte fetchen Führt `git lfs fetch` aus um Git LFS Objekte herunterzuladen. Das aktualisiert nicht die Arbeitskopie. + LFS Objekte fetchen Installiere Git LFS Hooks Sperren anzeigen Keine gesperrten Dateien @@ -336,11 +337,11 @@ Prune Führt `git lfs prune` aus um alte LFS Dateien von lokalem Speicher zu löschen Pull - LFS Objekte pullen Führt `git lfs pull` aus um alle Git LFS Dasteien für aktuellen Ref & Checkout herunterzuladen + LFS Objekte pullen Push - LFS Objekte pushen Pushe große Dateien in der Warteschlange zum Git LFS Endpunkt + LFS Objekte pushen Remote: Verfolge alle '{0}' Dateien Verfolge alle *{0} Dateien @@ -359,8 +360,8 @@ Aktuelles Popup schließen Klone neues Repository Aktuellen Tab schließen - Zum vorherigen Tab wechseln Zum nächsten Tab wechseln + Zum vorherigen Tab wechseln Neuen Tab erstellen Einstellungen öffnen REPOSITORY @@ -371,11 +372,11 @@ Ausgewählte Änderungen verwerfen Fetch, wird direkt ausgeführt Dashboard Modus (Standard) + Commit-Suchmodus Pull, wird direkt ausgeführt Push, wird direkt ausgeführt Erzwinge Neuladen des Repositorys Ausgewählte Änderungen stagen/unstagen - Commit-Suchmodus Wechsle zu 'Änderungen' Wechsle zu 'Verlauf' Wechsle zu 'Stashes' @@ -384,9 +385,9 @@ Suche nächste Übereinstimmung Suche vorherige Übereinstimmung Öffne Suchpanel + Verwerfen Stagen Unstagen - Verwerfen Initialisiere Repository Pfad: Cherry-Pick wird durchgeführt. @@ -398,10 +399,10 @@ Revert wird durchgeführt. Reverte commit Interaktiver Rebase - Ziel Branch: Auf: - In Browser öffnen + Ziel Branch: Link kopieren + In Browser öffnen FEHLER INFO Branch mergen @@ -427,24 +428,24 @@ Kopiere Repository-Pfad Repositories Einfügen - Gerade eben - Vor {0} Minuten + Vor {0} Tagen Vor 1 Stunde Vor {0} Stunden - Gestern - Vor {0} Tagen + Gerade eben Letzter Monat - Vor {0} Monaten Leztes Jahr + Vor {0} Minuten + Vor {0} Monaten Vor {0} Jahren + Gestern Einstellungen OPEN AI Analysierung des Diff Befehl API Schlüssel Generiere Nachricht Befehl + Modell Name Server - Modell DARSTELLUNG Standardschriftart Schriftgröße @@ -474,24 +475,24 @@ Benutzer Email Globale Git Benutzer Email Aktivere --prune beim fetchen + Diese App setzt Git (>= 2.23.0) voraus Installationspfad Aktiviere HTTP SSL Verifizierung Benutzername Globaler Git Benutzername Git Version - Diese App setzt Git (>= 2.23.0) voraus GPG SIGNIERUNG Commit-Signierung - Tag-Signierung GPG Format GPG Installationspfad Installationspfad zum GPG Programm + Tag-Signierung Benutzer Signierungsschlüssel GPG Benutzer Signierungsschlüssel EINBINDUNGEN SHELL/TERMINAL - Shell/Terminal Pfad + Shell/Terminal Remote löschen Ziel: Worktrees löschen @@ -657,11 +658,11 @@ Statistiken COMMITS COMMITTER + ÜBERSICHT MONAT WOCHE - COMMITS: AUTOREN: - ÜBERSICHT + COMMITS: SUBMODULE Submodul hinzufügen Relativen Pfad kopieren @@ -676,13 +677,13 @@ Lösche ${0}$... Merge ${0}$ in ${1}$ hinein... Pushe ${0}$... - URL: Submodule aktualisieren Alle Submodule Initialisiere wenn nötig Rekursiv Submodul: Verwende `--remote` Option + URL: Warnung Willkommensseite Erstelle Gruppe @@ -712,12 +713,12 @@ Klick-Ereignis auslösen Commit (Bearbeitung) Alle Änderungen stagen und committen - Leerer Commit erkannt! Fortfahren (--allow-empty)? KONFLIKTE ERKANNT DATEI KONFLIKTE GELÖST NICHT-VERFOLGTE DATEIEN INKLUDIEREN KEINE BISHERIGEN COMMIT-NACHRICHTEN KEINE COMMIT TEMPLATES + Rechtsklick auf selektierte Dateien und wähle die Konfliktlösungen aus. SignOff GESTAGED UNSTAGEN @@ -727,7 +728,6 @@ ALLES STAGEN ALS UNVERÄNDERT ANGENOMMENE ANZEIGEN Template: ${0}$ - Rechtsklick auf selektierte Dateien und wähle die Konfliktlösungen aus. ARBEITSPLATZ: Arbeitsplätze konfigurieren... WORKTREE diff --git a/src/Resources/Locales/en_US.axaml b/src/Resources/Locales/en_US.axaml index 61140173c..94f8c938f 100644 --- a/src/Resources/Locales/en_US.axaml +++ b/src/Resources/Locales/en_US.axaml @@ -130,6 +130,7 @@ PARENTS REFS SHA + STATS Open in Browser Enter commit subject Description @@ -153,6 +154,7 @@ Fetch remotes automatically Minute(s) Default Remote + Preferred Merge Mode ISSUE TRACKER Add Sample Gitee Issue Rule Add Sample Gitee Pull Request Rule @@ -176,6 +178,10 @@ Workspaces Color Restore tabs on startup + CONTINUE + Empty commit detected! Do you want to continue (--allow-empty)? + STAGE ALL & COMMIT + Empty commit detected! Do you want to continue (--allow-empty) or stage all then commit? Conventional Commit Helper Breaking Change: Closed Issue: @@ -485,7 +491,7 @@ User Name Global git user name Git version - Git (>= 2.23.0) is required by this app + Git (>= 2.23.0) is required by this app GPG SIGNING Commit GPG signing Tag GPG signing @@ -720,9 +726,12 @@ Commit (Edit) Stage all changes and commit You have staged {0} file(s) but only {1} file(s) displayed ({2} files are filtered out). Do you want to continue? - Empty commit detected! Do you want to continue (--allow-empty)? CONFLICTS DETECTED + OPEN EXTERNAL MERGETOOL + OPEN ALL CONFLICTS IN EXTERNAL MERGETOOL FILE CONFLICTS ARE RESOLVED + USE MINE + USE THEIRS INCLUDE UNTRACKED FILES NO RECENT INPUT MESSAGES NO COMMIT TEMPLATES diff --git a/src/Resources/Locales/es_ES.axaml b/src/Resources/Locales/es_ES.axaml index 8b4c350fb..e2af0860a 100644 --- a/src/Resources/Locales/es_ES.axaml +++ b/src/Resources/Locales/es_ES.axaml @@ -2,19 +2,20 @@ + Acerca de Acerca de SourceGit Cliente Git GUI de código abierto y gratuito Agregar Worktree - Qué Checkout: - Rama Existente - Crear Nueva Rama Ubicación: Ruta para este worktree. Se admite ruta relativa. Nombre de la Rama: Opcional. Por defecto es el nombre de la carpeta de destino. Rama de Seguimiento: Seguimiento de rama remota + Qué Checkout: + Crear Nueva Rama + Rama Existente Asistente OpenAI RE-GENERAR Usar OpenAI para generar mensaje de commit @@ -64,8 +65,8 @@ ¡Upstream inválido! Bytes CANCELAR - Resetear a Esta Revisión Resetear a Revisión Padre + Resetear a Esta Revisión Generar mensaje de commit CAMBIAR MODO DE VISUALIZACIÓN Mostrar como Lista de Archivos y Directorios @@ -73,12 +74,12 @@ Mostrar como Árbol de Sistema de Archivos Checkout Rama Checkout Commit - Advertencia: Al hacer un checkout de commit, tu Head se separará Commit: - Rama: + Advertencia: Al hacer un checkout de commit, tu Head se separará Cambios Locales: Descartar Stash & Reaplicar + Rama: Cherry Pick Añadir fuente al mensaje de commit Commit(s): @@ -97,9 +98,9 @@ URL del Repositorio: CERRAR Editor + Checkout Commit Cherry-Pick Este Commit Cherry-Pick ... - Checkout Commit Comparar con HEAD Comparar con Worktree Copiar Información @@ -134,12 +135,12 @@ REFS SHA Abrir en Navegador - Introducir asunto del commit Descripción + Introducir asunto del commit Configurar Repositorio PLANTILLA DE COMMIT - Nombre de la Plantilla: Contenido de la Plantilla: + Nombre de la Plantilla: ACCIÓN PERSONALIZADA Argumentos: ${REPO} - Ruta del repositorio; ${SHA} - SHA del commit seleccionado @@ -157,13 +158,13 @@ Minuto(s) Remoto por Defecto SEGUIMIENTO DE INCIDENCIAS + Añadir Regla de Ejemplo para Azure DevOps Añadir Regla de Ejemplo para Incidencias de Gitee Añadir Regla de Ejemplo para Pull Requests de Gitee Añadir Regla de Ejemplo para Github - Añadir Regla de Ejemplo para Jira - Añadir Regla de Ejemplo para Azure DevOps Añadir Regla de Ejemplo para Incidencias de GitLab Añadir Regla de Ejemplo para Merge Requests de GitLab + Añadir Regla de Ejemplo para Jira Nueva Regla Expresión Regex para Incidencias: Nombre de la Regla: @@ -188,8 +189,8 @@ Tipo de Cambio: Copiar Copiar Todo el Texto - Copiar Ruta Copiar Ruta Completa + Copiar Ruta Crear Rama... Basado En: Checkout de la rama creada @@ -225,8 +226,8 @@ Ruta: Destino: Todos los hijos serán removidos de la lista. - Confirmar Eliminación de Grupo ¡Esto solo lo removera de la lista, no del disco! + Confirmar Eliminación de Grupo Confirmar Eliminación de Repositorio Eliminar Submódulo Ruta del Submódulo: @@ -295,11 +296,11 @@ Unstage Unstage {0} archivos Unstage Cambios en Línea(s) Seleccionada(s) - Usar Suyos (checkout --theirs) Usar Míos (checkout --ours) + Usar Suyos (checkout --theirs) Historial de Archivos - CONTENIDO CAMBIO + CONTENIDO Git-Flow Rama de Desarrollo: Feature: @@ -329,8 +330,8 @@ Patrón Personalizado: Añadir Patrón de Seguimiento a Git LFS Fetch - Fetch Objetos LFS Ejecuta `git lfs fetch` para descargar objetos Git LFS. Esto no actualiza la copia de trabajo. + Fetch Objetos LFS Instalar hooks de Git LFS Mostrar Bloqueos No hay archivos bloqueados @@ -342,11 +343,11 @@ Prune Ejecuta `git lfs prune` para eliminar archivos LFS antiguos del almacenamiento local Pull - Pull Objetos LFS Ejecuta `git lfs pull` para descargar todos los archivos Git LFS para la referencia actual y hacer checkout + Pull Objetos LFS Push - Push Objetos LFS Push archivos grandes en cola al endpoint de Git LFS + Push Objetos LFS Remoto: Seguir archivos llamados '{0}' Seguir todos los archivos *{0} @@ -365,8 +366,8 @@ Cancelar popup actual Clonar repositorio nuevo Cerrar página actual - Ir a la página anterior Ir a la siguiente página + Ir a la página anterior Crear nueva página Abrir diálogo de preferencias REPOSITORIO @@ -377,11 +378,11 @@ Descartar cambios seleccionados Fetch, empieza directamente Modo Dashboard (Por Defecto) + Modo de búsqueda de commits Pull, empieza directamente Push, empieza directamente Forzar a recargar este repositorio Stage/Unstage cambios seleccionados - Modo de búsqueda de commits Cambiar a 'Cambios' Cambiar a 'Historias' Cambiar a 'Stashes' @@ -390,9 +391,9 @@ Buscar siguiente coincidencia Buscar coincidencia anterior Abrir panel de búsqueda + Descartar Stage Unstage - Descartar Inicializar Repositorio Ruta: Cherry-Pick en progreso. @@ -404,10 +405,10 @@ Revert en progreso. Haciendo revert del commit Rebase Interactivo - Rama Objetivo: En: - Abrir en el Navegador + Rama Objetivo: Copiar Enlace + Abrir en el Navegador ERROR AVISO Merge Rama @@ -433,16 +434,16 @@ Copiar Ruta del Repositorio Repositorios Pegar - Justo ahora - Hace {0} minutos + Hace {0} días Hace 1 hora Hace {0} horas - Ayer - Hace {0} días + Justo ahora Último mes - Hace {0} meses Último año + Hace {0} minutos + Hace {0} meses Hace {0} años + Ayer Preferencias Opciones Avanzadas OPEN AI @@ -484,24 +485,24 @@ Email de usuario Email global del usuario git Habilitar --prune para fetch + Se requiere Git (>= 2.23.0) para esta aplicación Ruta de instalación Habilitar verificación HTTP SSL Nombre de usuario Nombre global del usuario git Versión de Git - Se requiere Git (>= 2.23.0) para esta aplicación FIRMA GPG Firma GPG en commit - Firma GPG en etiqueta Formato GPG Ruta de instalación del programa Introducir ruta para el programa gpg instalado + Firma GPG en etiqueta Clave de firma del usuario Clave de firma gpg del usuario INTEGRACIÓN SHELL/TERMINAL - Shell/Terminal Ruta + Shell/Terminal Podar Remoto Destino: Podar Worktrees @@ -668,11 +669,11 @@ Estadísticas COMMITS COMMITTER + GENERAL MES SEMANA - COMMITS: AUTORES: - GENERAL + COMMITS: SUBMÓDULOS Añadir Submódulo Copiar Ruta Relativa @@ -687,13 +688,13 @@ Eliminar ${0}$... Merge ${0}$ en ${1}$... Push ${0}$... - URL: Actualizar Submódulos Todos los submódulos Inicializar según sea necesario Recursivamente Submódulo: Usar opción --remote + URL: Advertencia Página de Bienvenida Crear Grupo @@ -723,12 +724,12 @@ Activar evento de clic Commit (Editar) Stagear todos los cambios y commit - ¡Commit vacío detectado! ¿Quieres continuar (--allow-empty)? CONFLICTOS DETECTADOS LOS CONFLICTOS DE ARCHIVOS ESTÁN RESUELTOS INCLUIR ARCHIVOS NO RASTREADOS NO HAY MENSAJES DE ENTRADA RECIENTES NO HAY PLANTILLAS DE COMMIT + Haz clic derecho en el(los) archivo(s) seleccionado(s) y elige tu opción para resolver conflictos. Firmar STAGED UNSTAGE @@ -738,7 +739,6 @@ STAGE TODO VER ASSUME UNCHANGED Plantilla: ${0}$ - Haz clic derecho en el(los) archivo(s) seleccionado(s) y elige tu opción para resolver conflictos. ESPACIO DE TRABAJO: Configura Espacios de Trabajo... WORKTREE diff --git a/src/Resources/Locales/fr_FR.axaml b/src/Resources/Locales/fr_FR.axaml index bf238aa2d..83d590f5a 100644 --- a/src/Resources/Locales/fr_FR.axaml +++ b/src/Resources/Locales/fr_FR.axaml @@ -2,21 +2,22 @@ + À propos À propos de SourceGit Client Git Open Source et Gratuit Ajouter un Worktree - Que récupérer : - Créer une nouvelle branche - Branche existante Emplacement : Chemin vers ce worktree. Relatif supporté. Nom de branche: Optionnel. Nom du dossier de destination par défaut. Suivre la branche : Suivi de la branche distante + Que récupérer : + Créer une nouvelle branche + Branche existante Assistant IA - RE-GÉNERER + RE-GÉNÉRER Utiliser l'IA pour générer un message de commit APPLIQUER COMME MESSAGE DE COMMIT Appliquer @@ -61,7 +62,7 @@ Renommer ${0}$... Définir la branche de suivi... Comparer les branches - Branche amont invalide ! + Branche en amont invalide! Octets ANNULER Réinitialiser à la révision parente @@ -75,10 +76,10 @@ Récupérer ce commit Commit : Avertissement: une récupération vers un commit aboutiera vers un HEAD détaché - Branche : Changements locaux : Annuler Mettre en stash et réappliquer + Branche : Cherry-Pick de ce commit Ajouter la source au message de commit Commit : @@ -94,13 +95,13 @@ Nom local : Nom de dépôt. Optionnel. Dossier parent : + Initialiser et mettre à jour les sous-modules URL du dépôt : FERMER Éditeur Récupérer ce commit Cherry-Pick ce commit Cherry-Pick ... - Checkout Commit Comparer avec HEAD Comparer avec le worktree Copier les informations @@ -135,20 +136,22 @@ REFS SHA Ouvrir dans le navigateur - Entrez le message du commit Description + Entrez le message du commit Configurer le dépôt MODÈLE DE COMMIT - Nom de modèle: Contenu de modèle: + Nom de modèle: ACTION PERSONNALISÉE Arguments : ${REPO} - Chemin du repository; ${SHA} - SHA du commit sélectionné Fichier exécutable : Nom : Portée : + Branche Commit Repository + Attendre la fin de l'action Adresse e-mail Adresse e-mail GIT @@ -156,13 +159,13 @@ minute(s) Dépôt par défaut SUIVI DES PROBLÈMES + Ajouter une règle d'exemple Azure DevOps Ajouter une règle d'exemple Gitee Ajouter une règle d'exemple pour Pull Request Gitee Ajouter une règle d'exemple Github Ajouter une règle d'exemple pour Incidents GitLab Ajouter une règle d'exemple pour Merge Request GitLab Ajouter une règle d'exemple Jira - Ajouter une règle d'exemple Azure DevOps Nouvelle règle Issue Regex Expression: Nom de règle : @@ -187,8 +190,8 @@ Type de Changement : Copier Copier tout le texte - Copier le chemin Copier le chemin complet + Copier le chemin Créer une branche... Basé sur : Récupérer la branche créée @@ -221,7 +224,10 @@ Vous essayez de supprimer plusieurs branches à la fois. Assurez-vous de revérifier avant de procéder ! Supprimer Remote Remote : + Chemin: Cible : + Tous les enfants seront retirés de la liste. + Cela le supprimera uniquement de la liste, pas du disque ! Confirmer la suppression du groupe Confirmer la suppression du dépôt Supprimer le sous-module @@ -234,7 +240,9 @@ ANCIEN Copier Mode de fichier changé + Première différence Ignorer les changements d'espaces + Dernière différence CHANGEMENT D'OBJET LFS Différence suivante PAS DE CHANGEMENT OU SEULEMENT EN FIN DE LIGNE @@ -247,8 +255,8 @@ Permuter Coloration syntaxique Retour à la ligne - Ouvrir dans l'outil de fusion Activer la navigation par blocs + Ouvrir dans l'outil de fusion Voir toutes les lignes Réduit le nombre de ligne visibles Augmente le nombre de ligne visibles @@ -292,8 +300,8 @@ Utiliser les miennes (checkout --ours) Utiliser les leurs (checkout --theirs) Historique du fichier - CONTENU MODIFICATION + CONTENU Git-Flow Branche de développement : Feature: @@ -323,8 +331,8 @@ Pattern personnalisé : Ajouter un pattern de suivi à Git LFS Fetch - Fetch les objets LFS Lancer `git lfs fetch` pour télécharger les objets Git LFS. Cela ne met pas à jour la copie de travail. + Fetch les objets LFS Installer les hooks Git LFS Afficher les verrous Pas de fichiers verrouillés @@ -336,11 +344,11 @@ Elaguer Lancer `git lfs prune` pour supprimer les anciens fichier LFS du stockage local Pull - Pull les objets LFS Lancer `git lfs pull` pour télécharger tous les fichier Git LFS de la référence actuelle & récupérer + Pull les objets LFS Pousser - Pousser les objets LFS Transférer les fichiers volumineux en file d'attente vers le point de terminaison Git LFS + Pousser les objets LFS Dépôt : Suivre les fichiers appelés '{0}' Suivre tous les fichiers *{0} @@ -359,8 +367,8 @@ Annuler le popup en cours Cloner un nouveau dépôt Fermer la page en cours - Aller à la page précédente Aller à la page suivante + Aller à la page précédente Créer une nouvelle page Ouvrir le dialogue des préférences DÉPÔT @@ -371,11 +379,11 @@ Rejeter les changements sélectionnés Fetch, démarre directement Mode tableau de bord (Défaut) + Recherche de commit Pull, démarre directement Push, démarre directement Forcer le rechargement du dépôt Ajouter/Retirer les changements sélectionnés de l'index - Recherche de commit Basculer vers 'Changements' Basculer vers 'Historique' Basculer vers 'Stashes' @@ -384,25 +392,34 @@ Trouver la prochaine correspondance Trouver la correspondance précédente Ouvrir le panneau de recherche + Rejeter Indexer Retirer de l'index - Rejeter Initialiser le repository Chemin : Cherry-Pick en cours. + Traitement du commit Merge request en cours. + Fusionnement Rebase en cours. + Arrêté à Annulation en cours. + Annulation du commit Rebase interactif - Branche cible : Sur : - Ouvrir dans le navigateur + Branche cible : Copier le lien + Ouvrir dans le navigateur ERREUR NOTICE Merger la branche Dans : Option de merge: + Source: + Fusionner (Plusieurs) + Commit tous les changement + Stratégie: + Cibles: Déplacer le noeud du repository Sélectionnier le noeud parent pour : Nom : @@ -418,16 +435,16 @@ Copier le chemin vers le dépôt Dépôts Coller - A l'instant - il y a {0} minutes + il y a {0} jours il y a 1 heure il y a {0} heures - Hier - il y a {0} jours + A l'instant Le mois dernier - il y a {0} mois L'an dernier + il y a {0} minutes + il y a {0} mois il y a {0} ans + Hier Préférences IA Analyser Diff Prompt @@ -436,10 +453,15 @@ Modèle Nom Serveur + Activer le streaming APPARENCE Police par défaut Taille de police par défaut Taille de police de l'éditeur + Largeur de tab dans l'éditeur + Taille de police + Défaut + Éditeur Police monospace N'utiliser que des polices monospace pour l'éditeur de texte Thème @@ -452,9 +474,12 @@ Outil GÉNÉRAL Vérifier les mises à jour au démarrage + Format de date Language Historique de commits Afficher l'heure de l'auteur au lieu de l'heure de validation dans le graphique + Afficher les enfants dans les détails du commit + Afficher les tags dans le graphique des commits Guide de longueur du sujet GIT Activer auto CRLF @@ -462,24 +487,25 @@ E-mail utilsateur E-mail utilsateur global Activer --prune pour fetch + Cette application requière Git (>= 2.23.0) Chemin d'installation + Activer la vérification HTTP SSL Nom d'utilisateur Nom d'utilisateur global Version de Git - Cette application requière Git (>= 2.23.0) SIGNATURE GPG Signature GPG de commit - Signature GPG de tag Format GPG Chemin d'installation du programme Saisir le chemin d'installation vers le programme GPG + Signature GPG de tag Clé de signature de l'utilisateur Clé de signature GPG de l'utilisateur INTEGRATION SHELL/TERMINAL - Shell/Terminal Chemin - Élaguer une branche distant + Shell/Terminal + Élaguer une branche distant Cible : Élaguer les Worktrees Élaguer les information de worktree dans `$GIT_COMMON_DIR/worktrees` @@ -539,14 +565,26 @@ Tout effacer Configurer ce repository CONTINUER + Actions personnalisées Pas d'actions personnalisées Activer l'option '--reflog' Ouvrir dans l'explorateur de fichiers Rechercher Branches/Tags/Submodules + Visibilité dans le graphique + Réinitialiser + Cacher dans le graphique des commits + Filtrer dans le graphique des commits Activer l'option '--first-parent' + DISPOSITION + Horizontal + Vertical + ORDRE DES COMMITS + Date du commit + Topologiquement BRANCHES LOCALES Naviguer vers le HEAD Créer une branche + EFFACER LES NOTIFICATIONS Mettre la branche courante en surbrillance dans le graph Ouvrir dans {0} Ouvrir dans un outil externe @@ -561,13 +599,19 @@ SHA Branche actuelle Voir les Tags en tant qu'arbre + PASSER Statistiques SUBMODULES AJOUTER SUBMODULE METTRE A JOUR SUBMODULE TAGS NOUVEAU TAG + Par date de créateur + Par nom (Croissant) + Par nom (Décroissant) + Trier Ouvrir dans un terminal + Utiliser le temps relatif dans les historiques WORKTREES AJOUTER WORKTREE ELAGUER @@ -586,6 +630,7 @@ SAUVEGARDER Sauvegarder en tant que... Le patch a été sauvegardé ! + Analyser les repositories Dossier racine : Rechercher des mises à jour... Une nouvelle version du logiciel est disponible : @@ -594,10 +639,10 @@ Passer cette version Mise à jour du logiciel Il n'y a pas de mise à jour pour le moment. - Définir la branche de suivi - Branche : - Escamoter la branche amont - Branche amont: + Définir la branche suivie + Branche: + Retirer la branche amont + En amont: Copier le SHA Aller à Squash les commits @@ -607,7 +652,7 @@ START Stash Auto-restauration après le stash - Vos fichiers de travail sont inchangés, mais un stash a été sauvegardé. + Vos fichiers de travail restent inchangés, mais une sauvegarde est enregistrée. Inclure les fichiers non-suivis Garder les fichiers indexés Message : @@ -626,11 +671,11 @@ Statistiques COMMITS COMMITTER + APERCU MOIS SEMAINE - COMMITS: AUTEURS : - APERCU + COMMITS: SOUS-MODULES Ajouter un sous-module Copier le chemin relatif @@ -645,13 +690,13 @@ Supprimer ${0}$... Fusionner ${0}$ dans ${1}$... Pousser ${0}$... - URL : Actualiser les sous-modules Tous les sous-modules Initialiser au besoin Récursivement Sous-module : Utiliser l'option --remote + URL : Avertissement Page d'accueil Créer un groupe @@ -679,13 +724,15 @@ COMMIT & POUSSER Modèles/Historiques Trigger click event + Commit (Modifier) Indexer tous les changements et commit - Un commit vide a été détecté ! Voulez-vous continuer (--allow-empty) ? CONFLITS DÉTECTÉS LES CONFLITS DE FICHIER SONT RÉSOLUS INCLURE LES FICHIERS NON-SUIVIS PAS DE MESSAGE D'ENTRÉE RÉCENT PAS DE MODÈLES DE COMMIT + Faites un clique droit sur les fichiers sélectionnés et faites vos choix pour la résoluion des conflits. + SignOff INDEXÉ RETIRER DE L'INDEX RETIRER TOUT DE L'INDEX @@ -694,7 +741,6 @@ INDEXER TOUT VOIR LES FICHIERS PRÉSUMÉS INCHANGÉS Modèle: ${0}$ - Faites un clique droit sur les fichiers sélectionnés et faites vos choix pour la résoluion des conflits. ESPACE DE TRAVAIL : Configurer les espaces de travail... WORKTREE @@ -702,68 +748,4 @@ Verrouiller Supprimer Déverrouiller - RE-GÉNÉRER - APPLIQUER COMME MESSAGE DE COMMIT - Appliquer le Stash - Supprimer après l'application - Rétablir les modifications de l'index - Stash: - Action personnalisée - Branche en amont invalide! - Initialiser et mettre à jour les sous-modules - Branche - Attendre la fin de l'action - Les espaces seront remplacés par des tirets. - Chemin: - Tous les enfants seront retirés de la liste. - Cela le supprimera uniquement de la liste, pas du disque ! - Première différence - Dernière différence - Traitement du commit - Fusionnement - Arrêté à - Annulation du commit - Source: - Fusionner (Plusieurs) - Commit tous les changement - Stratégie: - Cibles: - Activer le streaming - Largeur de tab dans l'éditeur - Taille de police - Défaut - Éditeur - Format de date - Afficher les enfants dans les détails du commit - Afficher les tags dans le graphique des commits - Activer la vérification HTTP SSL - Actions personnalisées - Visibilité dans le graphique - Réinitialiser - Cacher dans le graphique des commits - Filtrer dans le graphique des commits - DISPOSITION - Horizontal - Vertical - ORDRE DES COMMITS - Date du commit - Topologiquement - EFFACER LES NOTIFICATIONS - PASSER - Par date de créateur - Par nom (Croissant) - Par nom (Décroissant) - Trier - Utiliser le temps relatif dans les historiques - Analyser les repositories - Définir la branche suivie - Branche: - Retirer la branche amont - En amont: - Aller sur - Restauration automatique après le stashing - Vos fichiers de travail restent inchangés, mais une sauvegarde est enregistrée. - Sauvegarder en tant que patch... - Commit (Modifier) - SignOff diff --git a/src/Resources/Locales/it_IT.axaml b/src/Resources/Locales/it_IT.axaml index 85038d9ea..59bf3028b 100644 --- a/src/Resources/Locales/it_IT.axaml +++ b/src/Resources/Locales/it_IT.axaml @@ -2,19 +2,20 @@ + Informazioni Informazioni su SourceGit Client GUI Git open source e gratuito Aggiungi Worktree - Di cosa fare il checkout: - Branch esistente - Crea nuovo branch Posizione: Percorso per questo worktree. Supportato il percorso relativo. Nome Branch: Facoltativo. Predefinito è il nome della cartella di destinazione. Traccia Branch: Traccia branch remoto + Di cosa fare il checkout: + Crea nuovo branch + Branch esistente Assistente AI RIGENERA Usa AI per generare il messaggio di commit @@ -64,8 +65,8 @@ Upstream non valido Byte ANNULLA - Ripristina Questa Revisione Ripristina la Revisione Padre + Ripristina Questa Revisione Genera messaggio di commit CAMBIA MODALITÀ DI VISUALIZZAZIONE Mostra come elenco di file e cartelle @@ -73,12 +74,12 @@ Mostra come albero del filesystem Checkout Branch Checkout Commit - Avviso: Effettuando un checkout del commit, la tua HEAD sarà separata Commit: - Branch: + Avviso: Effettuando un checkout del commit, la tua HEAD sarà separata Modifiche Locali: Scarta Stasha e Ripristina + Branch: Cherry Pick Aggiungi sorgente al messaggio di commit Commit(s): @@ -97,9 +98,9 @@ URL del Repository: CHIUDI Editor + Checkout Commit Cherry-Pick Questo Commit Cherry-Pick... - Checkout Commit Confronta con HEAD Confronta con Worktree Copia Info @@ -134,12 +135,12 @@ RIFERIMENTI SHA Apri nel Browser - Inserisci l'oggetto del commit Descrizione + Inserisci l'oggetto del commit Configura Repository TEMPLATE DI COMMIT - Nome Template: Contenuto Template: + Nome Template: AZIONE PERSONALIZZATA Argomenti: ${REPO} - Percorso del repository; ${SHA} - SHA del commit selezionato @@ -157,13 +158,13 @@ Minuto/i Remoto Predefinito TRACCIAMENTO ISSUE + Aggiungi una regola di esempio per Azure DevOps Aggiungi una regola di esempio per un Issue Gitee Aggiungi una regola di esempio per un Pull Request Gitee Aggiungi una regola di esempio per GitHub - Aggiungi una regola di esempio per Jira - Aggiungi una regola di esempio per Azure DevOps Aggiungi una regola di esempio per Issue GitLab Aggiungi una regola di esempio per una Merge Request GitLab + Aggiungi una regola di esempio per Jira Nuova Regola Espressione Regex Issue: Nome Regola: @@ -244,7 +245,6 @@ Differenza Successiva NESSUNA MODIFICA O SOLO CAMBIAMENTI DI FINE LINEA Differenza Precedente - Abilita la navigazione a blocchi Salva come Patch Mostra Simboli Nascosti Diff Affiancato @@ -253,6 +253,7 @@ Scambia Evidenziazione Sintassi Avvolgimento delle Parole + Abilita la navigazione a blocchi Apri nello Strumento di Merge Mostra Tutte le Righe Diminuisci Numero di Righe Visibili @@ -294,11 +295,11 @@ Rimuovi da Stage Rimuovi da Stage {0} file Rimuovi le Righe Selezionate da Stage - Usa Il Loro (checkout --theirs) Usa Il Mio (checkout --ours) + Usa Il Loro (checkout --theirs) Cronologia File - CONTENUTO MODIFICA + CONTENUTO FILTRO Git-Flow Branch di Sviluppo: @@ -329,8 +330,8 @@ Modello Personalizzato: Aggiungi Modello di Tracciamento a Git LFS Recupera - Recupera Oggetti LFS Esegui `git lfs fetch` per scaricare gli oggetti Git LFS. Questo non aggiorna la copia di lavoro. + Recupera Oggetti LFS Installa hook di Git LFS Mostra Blocchi Nessun File Bloccato @@ -342,11 +343,11 @@ Elimina Esegui `git lfs prune` per eliminare vecchi file LFS dallo storage locale Scarica - Scarica Oggetti LFS Esegui `git lfs pull` per scaricare tutti i file LFS per il ref corrente e fare il checkout + Scarica Oggetti LFS Invia - Invia Oggetti LFS Invia grandi file in coda al punto finale di Git LFS + Invia Oggetti LFS Remoto: Traccia file con nome '{0}' Traccia tutti i file *{0} @@ -365,8 +366,8 @@ Annulla il popup corrente Clona una nuova repository Chiudi la pagina corrente - Vai alla pagina precedente Vai alla pagina successiva + Vai alla pagina precedente Crea una nuova pagina Apri la finestra delle preferenze REPOSITORY @@ -377,11 +378,11 @@ Scarta le modifiche selezionate Recupera, avvia direttamente Modalità Dashboard (Predefinita) + Modalità ricerca commit Scarica, avvia direttamente Invia, avvia direttamente Forza l'aggiornamento di questo repository Aggiungi/Rimuovi da stage le modifiche selezionate - Modalità ricerca commit Passa a 'Modifiche' Passa a 'Storico' Passa a 'Stashes' @@ -390,9 +391,9 @@ Trova il prossimo risultato Trova il risultato precedente Apri il pannello di ricerca + Scarta Aggiungi in stage Rimuovi - Scarta Inizializza Repository Percorso: Cherry-Pick in corso. @@ -404,10 +405,10 @@ Ripristino in corso. Ripristinando il commit Riallinea Interattivamente - Branch di destinazione: Su: - Apri nel Browser + Branch di destinazione: Copia il Link + Apri nel Browser ERRORE AVVISO Unisci Branch @@ -433,16 +434,16 @@ Copia Percorso Repository Repository Incolla - Proprio ora - {0} minuti fa + {0} giorni fa 1 ora fa {0} ore fa - Ieri - {0} giorni fa + Proprio ora Il mese scorso - {0} mesi fa L'anno scorso + {0} minuti fa + {0} mesi fa {0} anni fa + Ieri Preferenze AI Analizza il Prompt Differenza @@ -482,24 +483,24 @@ Email Utente Email utente Git globale Abilita --prune durante il fetch + Questa applicazione richiede Git (>= 2.23.0) Percorso Installazione + Abilita la verifica HTTP SSL Nome Utente Nome utente Git globale Versione di Git - Questa applicazione richiede Git (>= 2.23.0) - Abilita la verifica HTTP SSL FIRMA GPG Firma GPG per commit - Firma GPG per tag Formato GPG Percorso Programma Installato Inserisci il percorso per il programma GPG installato + Firma GPG per tag Chiave Firma Utente Chiave GPG dell'utente per la firma INTEGRAZIONE SHELL/TERMINALE - Shell/Terminale Percorso + Shell/Terminale Potatura Remota Destinazione: Potatura Worktrees @@ -667,11 +668,11 @@ Statistiche COMMIT COMMITTER + PANORAMICA MESE SETTIMANA - COMMIT: AUTORI: - PANORAMICA + COMMIT: SOTTOMODULI Aggiungi Sottomodulo Copia Percorso Relativo @@ -686,13 +687,13 @@ Elimina ${0}$... Unisci ${0}$ in ${1}$... Invia ${0}$... - URL: Aggiorna Sottomoduli Tutti i sottomoduli Inizializza se necessario Ricorsivamente Sottomodulo: Usa opzione --remote + URL: Avviso Pagina di Benvenuto Crea Gruppo @@ -722,12 +723,13 @@ Attiva evento click Commit (Modifica) Stage di tutte le modifiche e fai il commit - Trovato un commit vuoto! Vuoi continuare (--allow-empty)? CONFLITTI RILEVATI CONFLITTI NEI FILE RISOLTI INCLUDI FILE NON TRACCIATI NESSUN MESSAGGIO RECENTE INSERITO NESSUN TEMPLATE DI COMMIT + Clicca con il tasto destro sul(i) file selezionato, quindi scegli come risolvere i conflitti. + SignOff IN STAGE RIMUOVI DA STAGE RIMUOVI TUTTO DA STAGE @@ -736,8 +738,6 @@ FAI LO STAGE DI TUTTO VISUALIZZA COME NON MODIFICATO Template: ${0}$ - Clicca con il tasto destro sul(i) file selezionato, quindi scegli come risolvere i conflitti. - SignOff WORKSPACE: Configura Workspaces... WORKTREE diff --git a/src/Resources/Locales/ja_JP.axaml b/src/Resources/Locales/ja_JP.axaml index 212552213..fe643b5ec 100644 --- a/src/Resources/Locales/ja_JP.axaml +++ b/src/Resources/Locales/ja_JP.axaml @@ -2,19 +2,20 @@ + 概要 SourceGitについて オープンソース & フリーなGit GUIクライアント ワークツリーを追加 - チェックアウトする内容: - 既存のブランチ - 新しいブランチを作成 場所: ワークツリーのパスを入力してください。相対パスも使用することができます。 ブランチの名前: 任意。デフォルトでは宛先フォルダ名が使用されます。 追跡するブランチ: 追跡中のリモートブランチ + チェックアウトする内容: + 新しいブランチを作成 + 既存のブランチ OpenAI アシスタント 再生成 OpenAIを使用してコミットメッセージを生成 @@ -64,8 +65,8 @@ 無効な上流ブランチ! バイト キャンセル - このリビジョンにリセット 親リビジョンにリセット + このリビジョンにリセット コミットメッセージを生成 変更表示の切り替え ファイルとディレクトリのリストを表示 @@ -73,12 +74,12 @@ ファイルシステムのツリーを表示 ブランチをチェックアウト コミットをチェックアウト - 警告: コミットをチェックアウトするとHEADが切断されます コミット: - ブランチ: + 警告: コミットをチェックアウトするとHEADが切断されます ローカルの変更: 破棄 スタッシュして再適用 + ブランチ: チェリーピック ソースをコミットメッセージに追加 コミット(複数可): @@ -97,9 +98,9 @@ リポジトリのURL: 閉じる エディタ + コミットをチェックアウト このコミットをチェリーピック チェリーピック... - コミットをチェックアウト HEADと比較 ワークツリーと比較 情報をコピー @@ -134,12 +135,12 @@ 参照 SHA ブラウザで開く - コミットのタイトルを入力 説明 + コミットのタイトルを入力 リポジトリの設定 コミットテンプレート - テンプレート名: テンプレート内容: + テンプレート名: カスタムアクション 引数: ${REPO} - リポジトリのパス; ${BRANCH} - 選択中のブランチ; ${SHA} - 選択中のコミットのSHA @@ -157,13 +158,13 @@ 分(s) リモートの初期値 ISSUEトラッカー + サンプルのAzure DevOpsルールを追加 サンプルのGitee Issueルールを追加 サンプルのGiteeプルリクエストルールを追加 サンプルのGithubルールを追加 サンプルのGitLab Issueルールを追加 サンプルのGitLabマージリクエストルールを追加 サンプルのJiraルールを追加 - サンプルのAzure DevOpsルールを追加 新しいルール Issueの正規表現: ルール名: @@ -188,8 +189,8 @@ 変更の種類: コピー すべてのテキストをコピー - パスをコピー 絶対パスをコピー + パスをコピー ブランチを作成... 派生元: 作成したブランチにチェックアウト @@ -225,8 +226,8 @@ パス: 対象: すべての子ノードがリストから削除されます。 - グループを削除 これはリストからのみ削除され、ディスクには保存されません! + グループを削除 リポジトリを削除 サブモジュールを削除 サブモジュールのパス: @@ -295,11 +296,11 @@ アンステージ {0}個のファイルをアンステージ... 選択された行の変更をアンステージ - 相手の変更を使用 (checkout --theirs) 自分の変更を使用 (checkout --ours) + 相手の変更を使用 (checkout --theirs) ファイルの履歴 - コンテンツ 変更 + コンテンツ Git-Flow 開発ブランチ: Feature: @@ -329,8 +330,8 @@ カスタム パターン: Git LFSにトラックパターンを追加 フェッチ - LFSオブジェクトをフェッチ `git lfs fetch`を実行して、Git LFSオブジェクトをダウンロードします。ワーキングコピーは更新されません。 + LFSオブジェクトをフェッチ Git LFSフックをインストール ロックを表示 ロックされているファイルはありません @@ -342,11 +343,11 @@ 削除 `git lfs prune`を実行して、ローカルの保存領域から古いLFSファイルを削除します。 プル - LFSオブジェクトをプル `git lfs pull`を実行して、現在の参照とチェックアウトのすべてのGit LFSファイルをダウンロードします。 + LFSオブジェクトをプル プッシュ - LFSオブジェクトをプッシュ キュー内の大容量ファイルをGit LFSエンドポイントにプッシュします。 + LFSオブジェクトをプッシュ リモート: {0}という名前のファイルをトラック すべての*{0}ファイルをトラック @@ -365,8 +366,8 @@ 現在のポップアップをキャンセル 新しくリポジトリをクローン 現在のページを閉じる - 前のページに移動 次のページに移動 + 前のページに移動 新しいページを作成 設定ダイアログを開く リポジトリ @@ -377,11 +378,11 @@ 選択した変更を破棄 直接フェッチを実行 ダッシュボードモード (初期値) + コミット検索モード 直接プルを実行 直接プッシュを実行 現在のリポジトリを強制的に再読み込み 選択中の変更をステージ/アンステージ - コミット検索モード '変更'に切り替える '履歴'に切り替える 'スタッシュ'に切り替える @@ -390,9 +391,9 @@ 次のマッチを検索 前のマッチを検索 検索パネルを開く + 破棄 ステージ アンステージ - 破棄 リポジトリの初期化 パス: チェリーピックが進行中です。'中止'を押すと元のHEADが復元されます。 @@ -404,10 +405,10 @@ 元に戻す処理が進行中です。'中止'を押すと元のHEADが復元されます。 コミットを元に戻しています インタラクティブ リベース - 対象のブランチ: On: - ブラウザで開く + 対象のブランチ: リンクをコピー + ブラウザで開く エラー 通知 ブランチのマージ @@ -433,16 +434,16 @@ リポジトリパスをコピー リポジトリ 貼り付け - たった今 - {0} 分前 + {0} 日前 1 時間前 {0} 時間前 - 昨日 - {0} 日前 + たった今 先月 - {0} ヶ月前 昨年 + {0} 分前 + {0} ヶ月前 {0} 年前 + 昨日 設定 AI 差分分析プロンプト @@ -483,24 +484,24 @@ ユーザー Eメールアドレス グローバルgitのEメールアドレス フェッチ時に--pruneを有効化 + Git (>= 2.23.0) はこのアプリで必要です インストール パス HTTP SSL 検証を有効にする ユーザー名 グローバルのgitユーザー名 Gitバージョン - Git (>= 2.23.0) はこのアプリで必要です GPG 署名 コミットにGPG署名を行う - タグにGPG署名を行う GPGフォーマット プログラムのインストールパス インストールされたgpgプログラムのパスを入力 + タグにGPG署名を行う ユーザー署名キー ユーザーのGPG署名キー 統合 シェル/ターミナル - シェル/ターミナル パス + シェル/ターミナル リモートを削除 対象: 作業ツリーを削除 @@ -666,11 +667,11 @@ 統計 コミット コミッター + 概要 月間 週間 - コミット: 著者: - 概要 + コミット: サブモジュール サブモジュールを追加 相対パスをコピー @@ -685,13 +686,13 @@ ${0}$ を削除... ${0}$ を ${1}$ にマージ... ${0}$ をプッシュ... - URL: サブモジュールを更新 すべてのサブモジュール 必要に応じて初期化 再帰的に更新 サブモジュール: --remoteオプションを使用 + URL: 警告 ようこそ グループを作成 @@ -721,12 +722,12 @@ クリックイベントをトリガー コミット (Edit) すべての変更をステージしてコミット - 空のコミットが検出されました。続行しますか? (--allow-empty) 競合が検出されました ファイルの競合は解決されました 追跡されていないファイルを含める 最近の入力メッセージはありません コミットテンプレートはありません + 選択したファイルを右クリックし、競合を解決する操作を選択してください。 サインオフ ステージしたファイル ステージを取り消し @@ -736,7 +737,6 @@ すべてステージへ移動 変更されていないとみなしたものを表示 テンプレート: ${0}$ - 選択したファイルを右クリックし、競合を解決する操作を選択してください。 ワークスペース: ワークスペースを設定... ワークツリー diff --git a/src/Resources/Locales/pt_BR.axaml b/src/Resources/Locales/pt_BR.axaml index 4ee6cdbc1..3caac3cc7 100644 --- a/src/Resources/Locales/pt_BR.axaml +++ b/src/Resources/Locales/pt_BR.axaml @@ -3,43 +3,19 @@ - - Sobre Sobre o SourceGit Cliente Git GUI Livre e de Código Aberto Adicionar Worktree - O que Checar: - Branch Existente - Criar Novo Branch Localização: Caminho para este worktree. Caminho relativo é suportado. Nome do Branch: Opcional. O padrão é o nome da pasta de destino. Rastrear Branch: Rastreando branch remoto + O que Checar: + Criar Novo Branch + Branch Existente Assietente IA Utilizar IA para gerar mensagem de commit Patch @@ -80,8 +56,8 @@ Comparação de Branches Bytes CANCELAR - Resetar para Esta Revisão Resetar para Revisão Pai + Resetar para Esta Revisão Gerar mensagem de commit ALTERAR MODO DE EXIBIÇÃO Exibir como Lista de Arquivos e Diretórios @@ -89,12 +65,12 @@ Exibir como Árvore de Sistema de Arquivos Checkout Branch Checkout Commit - Aviso: Ao fazer o checkout de um commit, seu Head ficará desanexado Commit: - Branch: + Aviso: Ao fazer o checkout de um commit, seu Head ficará desanexado Alterações Locais: Descartar Stash & Reaplicar + Branch: Cherry-Pick Adicionar origem à mensagem de commit Commit(s): @@ -112,9 +88,9 @@ URL do Repositório: FECHAR Editor + Checar Commit Cherry-Pick este commit Cherry-Pick ... - Checar Commit Comparar com HEAD Comparar com Worktree Copiar Informações @@ -145,12 +121,12 @@ REFERÊNCIAS SHA Abrir no navegador - Insira o assunto do commit Descrição + Insira o assunto do commit Configurar Repositório TEMPLATE DE COMMIT - Nome do Template: Conteúdo do Template: + Nome do Template: AÇÃO CUSTOMIZADA Argumentos: ${REPO} - Caminho do repositório; ${SHA} - SHA do commit selecionado @@ -166,11 +142,11 @@ Minuto(s) Remoto padrão RASTREADOR DE PROBLEMAS - Adicionar Regra de Exemplo do Github - Adicionar Regra de Exemplo do Jira Adicionar Regra de Exemplo do Azure DevOps + Adicionar Regra de Exemplo do Github Adicionar Regra de Exemplo do GitLab Adicionar regra de exemplo de Merge Request do GitLab + Adicionar Regra de Exemplo do Jira Nova Regra Expressão Regex de Issue: Nome da Regra: @@ -292,11 +268,11 @@ Desfazer Preparação Desfazer Preparação de {0} arquivos Desfazer Preparação nas Linhas Selecionadas - Usar Deles (checkout --theirs) Usar Meu (checkout --ours) + Usar Deles (checkout --theirs) Histórico de Arquivos - CONTEUDO MUDANÇA + CONTEUDO Git-Flow Branch de Desenvolvimento: Feature: @@ -326,8 +302,8 @@ Padrão Personalizado: Adicionar Padrão de Rastreamento ao Git LFS Buscar - Buscar Objetos LFS Execute `git lfs fetch` para baixar objetos Git LFS. Isso não atualiza a cópia de trabalho. + Buscar Objetos LFS Instalar hooks do Git LFS Exibir bloqueios Sem Arquivos Bloqueados @@ -339,11 +315,11 @@ Prune Execute `git lfs prune` para excluir arquivos LFS antigos do armazenamento local Puxar - Puxar Objetos LFS Execute `git lfs pull` para baixar todos os arquivos Git LFS para a referência atual e checkout + Puxar Objetos LFS Enviar - Enviar Objetos LFS Envie arquivos grandes enfileirados para o endpoint Git LFS + Enviar Objetos LFS Remoto: Rastrear arquivos nomeados '{0}' Rastrear todos os arquivos *{0} @@ -361,8 +337,8 @@ GLOBAL Cancelar popup atual Fechar página atual - Ir para a página anterior Ir para a próxima página + Ir para a página anterior Criar nova página Abrir diálogo de preferências REPOSITÓRIO @@ -373,11 +349,11 @@ Descartar mudanças selecionadas Buscar, imediatamente Modo de Dashboard (Padrão) + Modo de busca de commits Puxar, imediatamente Enviar, imediatamente Forçar recarregamento deste repositório Preparar/Despreparar mudanças selecionadas - Modo de busca de commits Alternar para 'Mudanças' Alternar para 'Históricos' Alternar para 'Stashes' @@ -386,9 +362,9 @@ Encontrar próxima correspondência Encontrar correspondência anterior Abrir painel de busca + Descartar Preparar Despreparar - Descartar Inicializar Repositório Caminho: Cherry-Pick em andamento. @@ -396,10 +372,10 @@ Rebase em andamento. Revert em andamento. Rebase Interativo - Ramo Alvo: Em: - Abrir no navegador + Ramo Alvo: Copiar link + Abrir no navegador ERRO AVISO Mesclar Ramo @@ -420,16 +396,16 @@ Copiar Caminho do Repositório Repositórios Colar - Agora mesmo - {0} minutos atrás + {0} dias atrás 1 hora atrás {0} horas atrás - Ontem - {0} dias atrás + Agora mesmo Mês passado - {0} meses atrás Ano passado + {0} minutos atrás + {0} meses atrás {0} anos atrás + Ontem Preferências INTELIGÊNCIA ARTIFICIAL Prompt para Analisar Diff @@ -465,23 +441,23 @@ Email do Usuário Email global do usuário git Habilita --prune ao buscar + Git (>= 2.23.0) é necessário para este aplicativo Caminho de Instalação Nome do Usuário Nome global do usuário git Versão do Git - Git (>= 2.23.0) é necessário para este aplicativo ASSINATURA GPG Assinatura GPG de commit - Assinatura GPG de tag Formato GPG Caminho de Instalação do Programa Insira o caminho para o programa gpg instalado + Assinatura GPG de tag Chave de Assinatura do Usuário Chave de assinatura gpg do usuário INTEGRAÇÃO SHELL/TERMINAL - Shell/Terminal Caminho + Shell/Terminal Prunar Remoto Alvo: Podar Worktrees @@ -627,11 +603,11 @@ Estatísticas COMMITS COMMITTER + VISÃO GERAL MÊS SEMANA - COMMITS: AUTORES: - VISÃO GERAL + COMMITS: SUBMÓDULOS Adicionar Submódulo Copiar Caminho Relativo @@ -646,13 +622,13 @@ Excluir ${0}$... Mesclar ${0}$ em ${1}$... Enviar ${0}$... - URL: Atualizar Submódulos Todos os submódulos Inicializar conforme necessário Recursivamente Submódulo: Usar opção --remote + URL: Aviso Página de Boas-vindas Criar Grupo Raíz @@ -681,12 +657,12 @@ Modelo/Históricos Acionar evento de clique Preparar todas as mudanças e commitar - Commit vazio detectado! Deseja continuar (--allow-empty)? CONFLITOS DETECTADOS CONFLITOS DE ARQUIVO RESOLVIDOS INCLUIR ARQUIVOS NÃO RASTREADOS SEM MENSAGENS DE ENTRADA RECENTES SEM MODELOS DE COMMIT + Clique com o botão direito nos arquivos selecionados e escolha como resolver conflitos. STAGED UNSTAGE UNSTAGE TODOS @@ -695,7 +671,6 @@ STAGE TODOS VER SUPOR NÃO ALTERADO Template: ${0}$ - Clique com o botão direito nos arquivos selecionados e escolha como resolver conflitos. Workspaces: Configurar workspaces... WORKTREE diff --git a/src/Resources/Locales/ru_RU.axaml b/src/Resources/Locales/ru_RU.axaml index 2ea274d1e..b26532ae1 100644 --- a/src/Resources/Locales/ru_RU.axaml +++ b/src/Resources/Locales/ru_RU.axaml @@ -2,19 +2,20 @@ + О программе О SourceGit Бесплатный графический клиент Git с исходным кодом Добавить рабочий каталог - Переключиться на: - ветку из списка - создать новую ветку Расположение: Путь к рабочему каталогу (поддерживается относительный путь) Имя ветки: Имя целевого каталога по умолчанию. (необязательно) Отслеживание ветки: Отслеживание внешней ветки + Переключиться на: + создать новую ветку + ветку из списка Помощник OpenAI ПЕРЕСОЗДАТЬ Использовать OpenAI для создания сообщения о ревизии @@ -42,7 +43,7 @@ Расследование РАССЛЕДОВАНИЕ В ЭТОМ ФАЙЛЕ НЕ ПОДДЕРЖИВАЕТСЯ!!! Проверить ${0}$... - Сравнить с ГОЛОВОЙ (HEAD) + Сравнить с ГОЛОВОЙ (HEAD) Сравнить с рабочим каталогом Копировать имя ветки Изменить действие @@ -64,8 +65,8 @@ Недопустимая основная ветка! Байты ОТМЕНА - Сбросить эту ревизию Сбросить родительскую ревизию + Сбросить эту ревизию Произвести сообщение о ревизии ИЗМЕНИТЬ РЕЖИМ ОТОБРАЖЕНИЯ Показывать в виде списка файлов и каталогов @@ -73,12 +74,12 @@ Показывать в виде дерева файловой системы Переключить ветку Переключение ревизии - Предупреждение: После переключения ревизии ваша Голова (HEAD) будет отсоединена Ревизия: - Ветка: + Предупреждение: После переключения ревизии ваша Голова (HEAD) будет отсоединена Локальные изменения: Отклонить Отложить и примненить повторно + Ветка: Частичный выбор Добавить источник для ревизии сообщения Ревизия(и): @@ -97,9 +98,9 @@ Адрес репозитория: ЗАКРЫТЬ Редактор + Переключиться на эту ревизию Применить эту ревизию (cherry-pick) Применить несколько ревизий ... - Переключиться на эту ревизию Сравнить c ГОЛОВОЙ (HEAD) Сравнить с рабочим каталогом Копировать информацию @@ -134,12 +135,12 @@ ССЫЛКИ SHA Открыть в браузере - Введите тему ревизии Описание + Введите тему ревизии Настройка репозитория ШАБЛОН РЕВИЗИИ - Название: Cодержание: + Название: ПОЛЬЗОВАТЕЛЬСКОЕ ДЕЙСТВИЕ Аргументы: ${REPO} - Путь к репозиторию; ${SHA} - SHA ревизий @@ -157,13 +158,13 @@ Минут(а/ы) Внешний репозиторий по умолчанию ОТСЛЕЖИВАНИЕ ПРОБЛЕМ + Добавить пример правила Azure DevOps Добавить пример правила для тем в Gitea Добавить пример правила запроса скачивания из Gitea Добавить пример правила для Git - Добавить пример правила Jira - Добавить пример правила Azure DevOps Добавить пример правила выдачи GitLab Добавить пример правила запроса на слияние в GitLab + Добавить пример правила Jira Новое правило Проблема с регулярным выражением: Имя правила: @@ -177,8 +178,8 @@ Имя пользователя Имя пользователя репозитория Рабочие пространства - Имя Цвет + Имя Восстанавливать вкладки при запуске Общепринятый помощник по ревизии Кардинальные изменения: @@ -189,8 +190,8 @@ Тип изменения: Копировать Копировать весь текст - Копировать путь Копировать полный путь + Копировать путь Создать ветку... Основан на: Проверить созданную ветку @@ -226,8 +227,8 @@ Путь: Цель: Все дочерние элементы будут удалены из списка. - Подтвердите удаление группы Будет удалён из списка. На диске останется. + Подтвердите удаление группы Подтвердите удаление репозитория Удалить подмодуль Путь подмодуля: @@ -242,12 +243,12 @@ Первое различие Игнорировать изменение пробелов Последнее различие - Показывать скрытые символы ИЗМЕНЕНИЕ ОБЪЕКТА LFS Следующее различие НИКАКИХ ИЗМЕНЕНИЙ ИЛИ МЕНЯЕТСЯ ТОЛЬКО EOL Предыдущее различие Сохранить как заплатку + Показывать скрытые символы Различие рядом ПОДМОДУЛЬ НОВЫЙ @@ -296,11 +297,11 @@ Снять подготовленный Неподготовленные {0} файлы Неподготовленные изменения в выбранной(ых) строке(ах) - Использовать их (checkout --theirs) Использовать мой (checkout --ours) + Использовать их (checkout --theirs) История файлов - СОДЕРЖИМОЕ ИЗМЕНИТЬ + СОДЕРЖИМОЕ Git-поток Ветка разработчика: Свойство: @@ -330,8 +331,8 @@ Изменить шаблон: Добавить шаблон отслеживания в LFS Git Извлечь - Извлечь объекты LFS Запустить (git lfs fetch), чтобы загрузить объекты LFS Git. При этом рабочая копия не обновляется. + Извлечь объекты LFS Установить перехват LFS Git Показывать блокировки Нет заблокированных файлов @@ -343,11 +344,11 @@ Обрезать Запустить (git lfs prune), чтобы удалить старые файлы LFS из локального хранилища Забрать - Забрать объекты LFS Запустить (git lfs pull), чтобы загрузить все файлы LFS Git для текущей ссылки и проверить + Забрать объекты LFS Выложить - Выложить объекты LFS Отправляйте большие файлы, помещенные в очередь, в конечную точку LFS Git + Выложить объекты LFS Внешнее хранилище: Отслеживать файлы с именем «{0}» Отслеживать все *{0} файлов @@ -366,8 +367,8 @@ Закрыть окно Клонировать репозиторий Закрыть вкладку - Перейти на предыдущую вкладку Перейти на следующую вкладку + Перейти на предыдущую вкладку Создать новую вкладку Открыть диалоговое окно настроек РЕПОЗИТОРИЙ @@ -378,11 +379,11 @@ Отклонить выбранные изменения Извлечение, запускается сразу Режим доски (по умолчанию) - Принудительно перезагрузить репозиторий + Режим поиска ревизий Забрать, запускается сразу Выложить, запускается сразу + Принудительно перезагрузить репозиторий Подготовленные/Неподготовленные выбранные изменения - Режим поиска ревизий Переключить на «Изменения» Переключить на «Истории» Переключить на «Отложенные» @@ -391,9 +392,9 @@ Найти следующее совпадение Найти предыдущее совпадение Открыть панель поиска + Отклонить Подготовить Снять из подготовленных - Отклонить Создать репозиторий Путь: Выполняется частичный перенос ревизий (cherry-pick). @@ -405,11 +406,11 @@ Выполняется отмена ревизии. Выполняется отмена Интерактивное перемещение - Целевая ветка: На: - Открыть в браузере + Целевая ветка: Копировать ссылку - ОШИБКА + Открыть в браузере + ОШИБКА УВЕДОМЛЕНИЕ Влить ветку В: @@ -434,20 +435,20 @@ Копировать путь репозитория Репозитории Вставить - Сейчас - {0} минут назад + {0} дней назад 1 час назад {0} часов назад - Вчера - {0} дней назад + Сейчас Последний месяц - {0} месяцев назад В прошлом году + {0} минут назад + {0} месяцев назад {0} лет назад + Вчера Параметры ОТКРЫТЬ ИИ - Ключ API Запрос на анализ различий + Ключ API Произвести запрос на тему Модель Имя: @@ -455,9 +456,9 @@ Разрешить потоковую передачу ВИД Шрифт по умолчанию + Редактировать ширину вкладки Размер шрифта По умолчанию - Редактировать ширину вкладки Редактор Моноширный шрифт В текстовом редакторе используется только моноширный шрифт @@ -484,24 +485,24 @@ Электроная почта пользователя Общая электроная почта пользователя git Разрешить (--prune) при скачивании + Для работы программы требуется версия Git (>= 2.23.0) Путь установки Разрешить верификацию HTTP SSL Имя пользователя Общее имя пользователя git Версия Git - Для работы программы требуется версия Git (>= 2.23.0) GPG ПОДПИСЬ GPG подпись ревизии - GPG подпись метки Формат GPG Путь установки программы Введите путь для установленной программы GPG + GPG подпись метки Ключ подписи пользователя Ключ GPG подписи пользователя ВНЕДРЕНИЕ ОБОЛОЧКА/ТЕРМИНАЛ - Оболочка/Терминал Путь + Оболочка/Терминал Удалить внешний репозиторий Цель: Удалить рабочий каталог @@ -630,8 +631,6 @@ Заплатка успешно сохранена! Сканирование репозиторий Корневой каталог: - Копировать SHA - Перейти Проверка для обновления... Доступна новая версия программного обеспечения: Не удалось проверить наличие обновлений! @@ -643,12 +642,12 @@ Ветка: Снять основную ветку Основная ветка: + Копировать SHA + Перейти Втиснуть ревизии В: Приватный ключ SSH: Путь хранения приватного ключа SSH - Только подготовленные изменения - Подготовленные так и неподготовленные изменения выбранных файлов будут сохранены!!! ЗАПУСК Отложить Автоматически восстанавливать после откладывания @@ -657,6 +656,8 @@ Хранить отложенные файлы Сообщение: Имя тайника (необязательно) + Только подготовленные изменения + Подготовленные так и неподготовленные изменения выбранных файлов будут сохранены!!! Отложить локальные изменения Принять Отбросить @@ -669,11 +670,11 @@ Статистика РЕВИЗИИ РЕВИЗОРЫ (ИСПОЛНИТЕЛИ) + ОБЗОР МЕСЯЦ НЕДЕЛЯ - РЕВИЗИИ: АВТОРЫ: - ОБЗОР + РЕВИЗИИ: ПОДМОДУЛИ Добавить подмодули Копировать относительный путь @@ -688,13 +689,13 @@ Удалить ${0}$... Влить ${0}$ в ${1}$... Выложить ${0}$... - Сетевой адрес: Обновление подмодулей Все подмодули Создавать по необходимости Рекурсивно Подмодуль: Использовать опцию (--remote) + Сетевой адрес: Предупреждение Приветствие Создать группу @@ -707,7 +708,7 @@ Открыть все репозитории Открыть репозиторий Открыть терминал - Повторное сканирование репозиториев в каталоге клонирования по умолчанию + Повторное сканирование репозиториев в каталоге клонирования по умолчанию Поиск репозиториев... Сортировка Изменения @@ -724,12 +725,12 @@ Запустить событие щелчка Зафиксировать (Редактировать) Подготовить все изменения и зафиксировать - Обнаружена пустая ревизия! Вы хотите продолжить (--allow-empty)? ОБНАРУЖЕНЫ КОНФЛИКТЫ КОНФЛИКТЫ ФАЙЛОВ РАЗРЕШЕНЫ ВКЛЮЧИТЬ НЕОТСЛЕЖИВАЕМЫЕ ФАЙЛЫ НЕТ ПОСЛЕДНИХ ВХОДНЫХ СООБЩЕНИЙ НЕТ ШАБЛОНОВ РЕВИЗИИ + Щёлкните правой кнопкой мыши выбранный файл(ы) и разрешите конфликты. Завершение работы ПОДГОТОВЛЕННЫЕ СНЯТЬ ПОДГОТОВЛЕННЫЙ @@ -739,7 +740,6 @@ ВСЕ ПОДГОТОВИТЬ ОТКРЫТЬ СПИСОК НЕОТСЛЕЖИВАЕМЫХ ФАЙЛОВ Шаблон: ${0}$ - Щёлкните правой кнопкой мыши выбранный файл(ы) и разрешите конфликты. РАБОЧЕЕ ПРОСТРАНСТВО: Настройка рабочего пространства... РАБОЧИЙ КАТАЛОГ diff --git a/src/Resources/Locales/ta_IN.axaml b/src/Resources/Locales/ta_IN.axaml new file mode 100644 index 000000000..946a8d9c7 --- /dev/null +++ b/src/Resources/Locales/ta_IN.axaml @@ -0,0 +1,749 @@ + + + + + + பற்றி + மூலஅறிவிலி பற்றி + திறந்தமூல & கட்டற்ற அறிவிலி இடைமுக வாடிக்கயாளர் + பணிமரத்தைச் சேர் + இடம்: + இந்த பணிமரத்திற்கான பாதை. தொடர்புடைய பாதை ஆதரிக்கப்படுகிறது. + கிளை பெயர்: + விருப்பத்தேர்வு. இயல்புநிலை இலக்கு கோப்புறை பெயர். + கிளை கண்காணி: + தொலை கிளையைக் கண்காணித்தல் + என்ன சரிபார்க்க வேண்டும்: + புதிய கிளையை உருவாக்கு + ஏற்கனவே உள்ள கிளை + செநு உதவியாளர் + மறு-உருவாக்கு + உறுதிமொழி செய்தியை உருவாக்க செநுவைப் பயன்படுத்து + உறுதிமொழி செய்தி என இடு + ஒட்டு + ஒட்டு கோப்பு: + .ஒட்டு இடுவதற்கு கோப்பைத் தேர்ந்தெடு + வெள்ளைவெளி மாற்றங்களைப் புறக்கணி + ஒட்டு இடு + வெள்ளைவெளி: + பதுக்கிவைத்ததை இடு + பயன்படுத்திய பின் நீக்கு + குறியீட்டின் மாற்றங்களை மீண்டும் நிறுவு + பதுக்கிவை: + காப்பகம்... + இதற்கு காப்பகத்தை சேமி: + காப்பகக் கோப்பு பாதையைத் தேர்ந்தெடு + திருத்தம்: + காப்பகம் + மூலஅறிவிலி கடவுகேள் + கோப்புகள் மாற்றப்படவில்லை எனக் கருதப்படுகிறது + எந்த கோப்புகளும் மாற்றப்படவில்லை எனக் கருதப்படுகிறது + நீக்கு + இருமம் கோப்பு ஆதரிக்கப்படவில்லை!!! + குற்றச்சாட்டு + இந்த கோப்பில் குற்றம் சாட்ட ஆதரிக்கப்படவில்லை!!! + ${0}$ சரிபார்... + தலையுடன் ஒப்பிடுக + பணிமரத்துடன் ஒப்பிடுக + கிளை பெயரை நகலெடு + தனிப்பயன் செயல் + ${0}$ ஐ நீக்கு... + தேர்ந்தெடுக்கப்பட்ட {0} கிளைகளை நீக்கு + எல்லா மாற்றங்களையும் நிராகரி + ${0}$ இதற்கு வேகமாக முன்னோக்கிச் செல் + ${0}$ ஐ ${1}$இல் பெறு... + அறிவிலி ஓட்டம் - முடி ${0}$ + ${0}$ ஐ ${1}$இல் இணை... + தேர்ந்தெடுக்கப்பட்ட {0} கிளைகளை தற்பொதையதில் இணை + இழு ${0}$ + இழு ${0}$ஐ ${1}$-க்குள்... + தள்ளு ${0}$ + மறுதளம் ${0}$ இதன்மேல் ${1}$... + மறுபெயரிடு ${0}$... + கண்காணிப்பு கிளையை அமை... + கிளை ஒப்பிடு + தவறான மேல்ஓடை! + எண்மங்கள் + விடு + பெற்றோர் திருத்தத்திற்கு மீட்டமை + இந்த திருத்தத்திற்கு மீட்டமை + உறுதிமொழி செய்தி உருவாக்கு + காட்சி பயன்முறையை மாற்று + கோப்பு மற்றும் கோப்புறை பட்டியலாக காட்டு + பாதை பட்டியலாகக் காட்டு + கோப்பு முறைமை மரமாகக் காட்டு + கிளை சரிபார் + உறுதிமொழி சரிபார் + உறுதிமொழி: + முன்னறிவிப்பு: ஒரு உறுதிமொழி சரிபார்பதன் மூலம், உங்கள் தலை பிரிக்கப்படும் + உள்ளக மாற்றங்கள்: + நிராகரி + பதுக்கிவை & மீண்டும் இடு + கிளை: + கனி பறி + உறுதிமொழி செய்திக்கு மூலத்தைச் சேர் + உறுதிமொழி(கள்): + அனைத்து மாற்றங்களையும் உறுதிமொழி + முதன்மைகோடு: + பொதுவாக நீங்கள் ஒரு ஒன்றிணையை கனி-பறிக்க முடியாது, ஏனெனில் இணைப்பின் எந்தப் பக்கத்தை முதன்மையாகக் கருத வேண்டும் என்பது உங்களுக்குத் தெரியாது. இந்த விருப்பம் குறிப்பிட்ட பெற்றோருடன் தொடர்புடைய மாற்றத்தை மீண்டும் இயக்க கனி-பறி அனுமதிக்கிறது. + பதுக்கிவைத்தையும் அழி + நீங்கள் அனைத்து பதுக்கிவைத்தையும் அழிக்க முயற்சிக்கிறீர்கள் தொடர விரும்புகிறீர்களா? + நகலி தொலை களஞ்சியம் + கூடுதல் அளவுருக்கள்: + நகலி களஞ்சியத்திற்கான கூடுதல் வாதங்கள். விருப்பத்தேர்வு. + உள்ளக பெயர்: + களஞ்சியப் பெயர். விருப்பத்தேர்வு. + பெற்றோர் கோப்புறை: + துவக்கு & துணை தொகுதிகளைப் புதுப்பி + களஞ்சிய முகவரி: + மூடு + திருத்தி + உறுதிமொழி சரிபார் + கனி-பறி உறுதிமொழி + கனி-பறி ... + தலையுடன் ஒப்பிடுக + பணிமரத்துடன் ஒப்பிடுக + தகவலை நகலெடு + பாகொவ-வை நகலெடு + தனிப்பயன் செயல் + இங்கே ${0}$ ஐ ஊடாடும் வகையில் மறுதளம் + ${0}$ இதற்கு ஒன்றிணை + ஒன்றிணை ... + இங்கே ${0}$ ஐ மறுதளம் + ${0}$ ஐ இங்கே மீட்டமை + உறுதிமொழி திரும்பபெறு + வேறுமொழி + ஒட்டாக சேமி... + பெற்றோர்களில் நொறுக்கு + நொறுக்கு குழந்தைகள் இங்கே சேர் + மாற்றங்கள் + மாற்றங்களைத் தேடு... + கோப்புகள் + பெகோஅ கோப்பு + கோப்புகளைத் தேடு... + துணைத்தொகுதி + தகவல் + ஆசிரியர் + மாற்றப்பட்டது + குழந்தைகள் + உறுதிமொழியாளர் + இந்த உறுதிமொழிடைக் கொண்ட குறிப்புகளைச் சரிபார் + உறுதிமொழி இதில் உள்ளது + முதல் 100 மாற்றங்களை மட்டும் காட்டுகிறது மாற்றங்கள் தாவலில் அனைத்து மாற்றங்களையும் காண்க. + செய்தி + பெற்றோர்கள் + குறிகள் + பாகொவ + உலாவியில் திற + விளக்கம் + உறுதிமொழி பொருளை உள்ளிடவும் + களஞ்சியம் உள்ளமை + உறுதிமொழி வளர்புரு + வார்ப்புரு உள்ளடக்கம்: + வார்ப்புரு பெயர்: + தனிப்பயன் செயல் + வாதங்கள்: + ${களஞ்சிய} - களஞ்சியத்தின் பாதை; ${கிளை} - தேர்ந்தெடுக்கப்பட்ட கிளை; ${பாகொவ} - தேர்ந்தெடுக்கப்பட்ட உறுதிமொழிடியின் பாகொவ + இயக்கக்கூடிய கோப்பு: + பெயர்: + நோக்கம்: + கிளை + உறுதிமொழி + களஞ்சியம் + செயல்பாட்டிலிருந்து வெளியேற காத்திரு + மின்னஞ்சல் முகவரி + மின்னஞ்சல் முகவரி + அறிவிலி + தொலைகளை தானாக எடு + நிமையங்கள் + இயல்புநிலை தொலை + சிக்கல் கண்காணி + மாதிரி அசூர் வளர்பணிகள் விதியைச் சேர் + மாதிரி அறிவிலிஈ சிக்கலுக்கான விதியைச் சேர் + மாதிரி அறிவிலிஈ இழு கோரிக்கை விதியைச் சேர் + மாதிரி அறிவிலிமையம் விதியைச் சேர் + மாதிரி அறிவிலிஆய்வு சிக்கலுக்கான விதியைச் சேர் + மாதிரி அறிவிலிஆய்வு இணைப்பு கோரிக்கை விதியைச் சேர் + மாதிரி சீரா விதியைச் சேர் + புதிய விதி + வழக்கவெளி வெளிப்பாடு வெளியீடு: + விதியின் பெயர்: + முடிவு முகவரி: + வழக்கவெளி குழுக்கள் மதிப்புகளை அணுக $1, $2 ஐப் பயன்படுத்து + செநு + விருப்பமான சேவை: + 'விருப்பமான சேவை' அமைக்கப்பட்டிருந்தால், மூலஅறிவிலி இந்த களஞ்சியத்தில் மட்டுமே அதைப் பயன்படுத்தும். இல்லையெனில், ஒன்றுக்கு மேற்பட்ட சேவைகள் இருந்தால், அவற்றில் ஒன்றைத் தேர்ந்தெடுப்பதற்கான சூழல் பட்டயல் காண்பிக்கப்படும். + உஉபநெ பதிலாள் + இந்த களஞ்சியத்தால் பயன்படுத்தப்படும் உஉபநெ பதிலாள் + பயனர் பெயர் + இந்த களஞ்சியத்திற்கான பயனர் பெயர் + பணியிடங்கள் + நிறம் + தாவல்களை மீட்டமை + வழக்கமான உறுதிமொழி உதவியாளர் + உடைக்கும் மாற்றம்: + மூடப்பட்ட வெளியீடு சிக்கல்: + மாற்ற விவரங்கள்: + நோக்கம்: + குறுகிய விளக்கம்: + மாற்ற வகை: + நகல் + அனைத்து உரையையும் நகலெடு + முழு பாதையை நகலெடு + நகல் பாதை + கிளையை உருவாக்கு... + இதன் அடிப்படையில்: + உருவாக்கப்பட்ட கிளையைப் சரிபார் + உள்ளக மாற்றங்கள்: + நிராகரி + பதுக்கிவை & மீண்டும் இடு + புதிய கிளை பெயர்: + கிளை பெயரை உள்ளிடவும். + இடைவெளிகள் கோடுகளால் மாற்றப்படும். + உள்ளக கிளையை உருவாக்கு + குறிச்சொல்லை உருவாக்கு... + இங்கு புதிய குறிச்சொல்: + சீபிசீ கையொப்பமிடுதல் + குறிச்சொல் செய்தி: + விருப்பத்தேர்வு. + குறிச்சொல் பெயர்: + பரிந்துரைக்கப்பட்ட வடிவம்: ப1.0.0-ஆனா + உருவாக்கப்பட்ட பிறகு அனைத்து தொலைகளுக்கும் தள்ளு + புதிய குறிசொல் உருவாக்கு + வகை: + annotated + குறைந்தஎடை + நேரடியாகத் தொடங்க கட்டுப்பாட்டை அழுத்திப் பிடி + வெட்டு + கிளையை நீக்கு + கிளை: + நீங்கள் ஒரு தொலை கிளையை நீக்கப் போகிறீர்கள்!!! + தொலை ${0}$ கிளையையும் நீக்கு + பல கிளைகளை நீக்கு + நீங்கள் ஒரே நேரத்தில் பல கிளைகளை நீக்க முயற்சிக்கிறீர்கள் நடவடிக்கை எடுப்பதற்கு முன் மீண்டும் சரிபார்! + தொலையை நீக்கு + தொலை: + பாதை: + இலக்கு: + எல்லா குழந்தைகளும் பட்டியலிலிருந்து நீக்கப்படுவார்கள். + இது பட்டியலிலிருந்து மட்டுமே அகற்றும், வட்டிலிருந்து அல்ல! + குழுவை நீக்குவதை உறுதிப்படுத்து + களஞ்சியத்தை நீக்குவதை உறுதிப்படுத்து + துணைத்தொகுதியை நீக்கு + துணைத்தொகுதி பாதை: + குறிச்சொல்லை நீக்கு + குறிசொல்: + தொலை களஞ்சியங்களிலிருந்து நீக்கு + இருமம் வேறுபாடு + புதிய + பழைய + நகல் + கோப்பு முறை மாற்றப்பட்டது + முதல் வேறுபாடு + வெள்ளைவெளி மாற்றத்தை புறக்கணி + கடைசி வேறுபாடு + பெகோஅ பொருள் மாற்றம் + அடுத்த வேறுபாடு + மாற்றங்கள் இல்லை அல்லது வரிமுடிவு மாற்றங்கள் மட்டும் + முந்தைய வேறுபாடு + ஒட்டாகச் சேமி + மறைக்கப்பட்ட சின்னங்களைக் காட்டு + பக்கவாட்டு வேறுபாடு + துணைத் தொகுதி + புதிய + இடமாற்று + தொடரியல் சிறப்பம்சமாக்கல் + வரி சொல் மடக்கு + தடுப்பு-வழிசெலுத்தலை இயக்கு + ஒன்றிணை கருவியில் திற + அனைத்து வரிகளையும் காட்டு + தெரியும் வரிகளின் எண்ணிக்கையைக் குறை + தெரியும் வரிகளின் எண்ணிக்கையை அதிகரி + மாற்றங்களைக் காண கோப்பைத் தேர்ந்தெடு + ஒன்றிணை கருவியில் திற + மாற்றங்களை நிராகரி + செயல்படும் நகலில் உள்ள அனைத்து உள்ளக மாற்றங்கள். + மாற்றங்கள்: + புறக்கணிக்கப்பட்ட கோப்புகளைச் சேர் + {0} மாற்றங்கள் நிராகரிக்கப்படும் + இந்தச் செயலை நீங்கள் செயல்தவிர்க்க முடியாது!!! + புத்தகக்குறி: + புதிய பெயர்: + இலக்கு: + தேர்ந்தெடுக்கப்பட்ட குழுவைத் திருத்து + தேர்ந்தெடுக்கப்பட்ட களஞ்சியத்தைத் திருத்து + தனிப்பயன் செயலை இயக்கு + செயல் பெயர்: + வேகமாக முன்னோக்கி (சரிபார்க்காமல்) + பெறு + எல்லா தொலைகளையும் பெறு + உள்ளக குறிப்புகளை கட்டாயமாக மீறு + குறிச்சொற்கள் இல்லாமல் பெறு + தொலை: + தொலை மாற்றங்களைப் பெறு + மாறாமல் என கருது + நிராகரி... + {0} கோப்புகளை நிராகரி... + தேர்ந்தெடுக்கப்பட்ட வரிகளில் மாற்றங்களை நிராகரி + வெளிப்புற இணைப்பு கருவியைத் திற + ${0}$ஐப் பயன்படுத்தி தீர் + ஒட்டு என சேமி... + நிலைபடுத்து + {0} fகோப்புகள் நிலைபடுத்து + தேர்ந்தெடுக்கப்பட்ட வரிகளில் மாற்றங்களை நிலைபடுத்து + பதுக்கிவை... + {0} கோப்புகள் பதுக்கிவை... + நிலைநீக்கு + நிலைநீக்கு {0} கோப்புகள் + தேர்ந்தெடுக்கப்பட்ட வரிகளில் மாற்றங்களை நிலைநீக்கு + என்னுடையதைப் பயன்படுத்து (சரிபார் --நமது) + அவர்களுடையதைப் பயன்படுத்து (சரிபார் --அவர்களது) + கோப்பு வரலாறு + மாற்றம் + உள்ளடக்கம் + அறிவிலி-ஓட்டம் + மேம்பாட்டு கிளை: + நற்பொருத்தம்: + நற்பொருத்தம் முன்னொட்டு: + ஓட்டம் - நற்பொருத்தம் முடி + ஓட்டம் - சூடானதிருத்தம் முடி + ஓட்டம் - வெளியீட்டை முடி + இலக்கு: + சூடானதிருத்தம்: + சூடானதிருத்தம் முன்னொட்டு: + அறிவிலி-ஓட்டம் துவக்கு + கிளையை வைத்திரு + உற்பத்தி கிளை: + வெளியீடு: + வெளியீடு முன்னொட்டு: + நற்பொருத்தம் தொடங்கு... + ஓட்டம் - நற்பொருத்தம் தொடங்கு + சூடானதிருத்தம் தொடங்கு... + ஓட்டம் - சூடானதிருத்தம் தொடங்கு + பெயரை உள்ளிடு + வெளியீட்டைத் தொடங்கு... + ஓட்டம் - வெளியீட்டைத் தொடங்கு + பதிப்பு குறிச்சொல் முன்னொட்டு: + அறிவிலி பெகோஅ + அறிவிலி கண்காணி வடிவத்தைச் சேர்... + வடிவம் என்பது கோப்பு பெயர் + தனிப்பயன் வடிவம்: + அறிவிலி பெகோஅ இல் கண்காணி வடிவங்களைச் சேர் + பெறு + அறிவிலி பெகோஅ பொருள்களைப் பதிவிறக்க `அறிவிலி பெகோஅ பெறு` ஐ இயக்கவும் இது செயல்படும் நகலை புதுப்பிக்காது. + அறிவிலி பெகோஅ பொருள்களைப் பெறு + அறிவிலி பெகோஅ கொக்கிகளை நிறுவு + பூட்டுகளைக் காட்டு + பூட்டப்பட்ட கோப்புகள் இல்லை + பூட்டு + எனது பூட்டுகளை மட்டும் காட்டு + பெகோஅ பூட்டுகள் + திற + கட்டாயம் திற + கத்தரி + உள்ளக சேமிப்பகத்திலிருந்து பழைய பெகோஅ கோப்புகளை நீக்க `அறிவிலி பெகோஅ கத்தரி` ஐ இயக்கு + இழு + தற்போதைய குறிக்கு அனைத்து அறிவிலி பெகோஅ கோப்புகளையும் பதிவிறக்கி சரிபார்க்க `அறிவிலி பெகோஅ இழு`ஐ இயக்கு + பெகோஅ பொருள்களை இழு + தள்ளு + வரிசைப்படுத்தப்பட்ட பெரிய கோப்புகளை அறிவிலி பெகோஅ முடிவுபுள்ளிக்கு தள்ளு + பெகோஅ பொருள்கள் தள்ளு + தொலை: + '{0}' என பெயரிடப்பட்ட கோப்புகளைக் கண்காணி + அனைத்து *{0} கோப்புகளையும் கண்காணி + வரலாறு + ஆசிரியர் + ஆசிரியர் நேரம் + வரைபடம் & பொருள் + பாகொவ + உறுதிமொழி நேரம் + தேர்ந்தெடுக்கப்பட்ட {0} உறுதிமொழிகள் + பல உறுதிமொழிகளைத் தேர்ந்தெடுக்க 'கட்டுப்பாடு' அல்லது 'உயர்த்து'ஐ அழுத்திப் பிடி. + பல உறுதிமொழிகளைத் தேர்ந்தெடுக்க ⌘ அல்லது ⇧ ஐ அழுத்திப் பிடி. + குறிப்புகள்: + விசைப்பலகை குறுக்குவழிகள் குறிப்பு + உலகளாவிய + தற்போதைய மேல்தோன்றலை Cancel + புதிய களஞ்சியத்தை நகலி செய் + தற்போதைய பக்கத்தை மூடு + அடுத்த பக்கத்திற்குச் செல் + முந்தைய பக்கத்திற்குச் செல் + புதிய பக்கத்தை உருவாக்கு + விருப்பத்தேர்வுகள் உரையாடலைத் திற + களஞ்சியம் + நிலைபடுத்திய மாற்றங்களை உறுதிமொழி + நிலைபடுத்திய மாற்றங்களை உறுதிமொழி மற்றும் தள்ளு + அனைத்து மாற்றங்களையும் நிலைபடுத்தி உறுதிமொழி + தேர்ந்தெடுக்கப்பட்ட உறுதிமொழியின் அடிப்படையில் ஒரு புதிய கிளையை உருவாக்குகிறது + தேர்ந்தெடுக்கப்பட்ட மாற்றங்களை நிராகரி + எடு, நேரடியாகத் தொடங்குகிறது + முகப்பலகை பயன்முறை (இயல்புநிலை) + உறுதிமொழி தேடல் பயன்முறை + இழு, நேரடியாகத் தொடங்குகிறது + தள்ளு, நேரடியாகத் தொடங்குகிறது + இந்த களஞ்சியத்தை மீண்டும் ஏற்ற கட்டாயப்படுத்து + தேர்ந்தெடுக்கப்பட்ட மாற்றங்களை நிலைபடுத்து/நிலைநீக்கு + 'மாற்றங்கள்' என்பதற்கு மாறு + 'வரலாறுகள்' என்பதற்கு மாறு + 'பதுகிவைத்தவை' என்பதற்கு மாறு + உரை திருத்தி + தேடல் பலகத்தை மூடு + அடுத்த பொருத்தத்தைக் கண்டறி + முந்தைய பொருத்தத்தைக் கண்டறி + தேடல் பலகத்தைத் திற + நிராகரி + நிலைபடுத்து + நிலைநீக்கு + களஞ்சியத்தைத் துவக்கு + பாதை: + கனி-பறி செயல்பாட்டில் உள்ளது. + உறுதிமொழி செயலாக்குதல் + இணைத்தல் செயல்பாட்டில் உள்ளது. + இணைத்தல் + மறுதளம் செயல்பாட்டில் உள்ளது + இல் நிறுத்தப்பட்டது + திரும்ப்பெறும் செயல்பாட்டில் உள்ளது. + திரும்பபெறும் உறுதிமொழி + ஊடாடும் மறுதளம் + மேல்: + இலக்கு கிளை: + இணைப்பை நகலெடு + உலாவியில் திற + பிழை + அறிவிப்பு + கிளையை ஒன்றிணை + Into: + இணைப்பு விருப்பம்: + இதனுள்: + ஒன்றிணை (பல) + அனைத்து மாற்றங்களையும் உறுதிமொழி + சூழ்ச்சிமுறை: + இலக்குகள்: + களஞ்சிய முனையை நகர்த்து + இதற்கான பெற்றோர் முனையைத் தேர்ந்தெடு + பெயர்: + அறிவிலி உள்ளமைக்கப்படவில்லை. [விருப்பத்தேர்வுகள்]க்குச் சென்று முதலில் அதை உள்ளமை. + தரவு சேமிப்பக கோப்பகத்தைத் திற + இதனுடன் திற... + விருப்பத்தேர்வு. + புதிய பக்கத்தை உருவாக்கு + புத்தகக்குறி + மூடு தாவல் + பிற தாவல்களை மூடு + வலதுபுறத்தில் உள்ள தாவல்களை மூடு + களஞ்சிய பாதை நகலெடு + களஞ்சியங்கள் + ஒட்டு + {0} நாட்களுக்கு முன்பு + 1 மணி நேரத்திற்கு முன்பு + {0} மணி நேரத்திற்கு முன்பு + சற்றுமுன் + கடந்த திங்கள் + கடந்த ஆண்டு + {0} நிமையங்களுக்கு முன்பு + {0} திங்களுக்கு முன்பு + {0} ஆண்டுகளுக்கு முன்பு + நேற்று + விருப்பத்தேர்வுகள் + செநு + வேறுபாடு உடனடியாக பகுப்பாய்வு செய் + பநிஇ திறவுகோல் + பொருள் உடனடியாக உருவாக்கு + மாதிரி + பெயர் + சேவையகம் + ஓடையை இயக்கு + தோற்றம் + இயல்புநிலை எழுத்துரு + திருத்தி தாவல் அகலம் + எழுத்துரு அளவு + இயல்புநிலை + திருத்தி + ஒற்றைவெளி எழுத்துரு + ஒற்றைவெளி எழுத்துருவை உரை திருத்தியில் மட்டும் பயன்படுத்து + கருப்பொருள் + கருப்பொருள் மேலெழுதப்படுகிறது + தலைப்புப்பட்டியில் நிலையான தாவல் அகலத்தைப் பயன்படுத்து + சொந்த சாளர சட்டத்தைப் பயன்படுத்து + நிறுவல் பாதை + வேறு/ஒன்றிணை கருவி + வேறு/ஒன்றிணை கருவிக்கான பாதை உள்ளிடு + கருவி + பொது + தொடக்கத்தில் புதுப்பிப்புகளைச் சரிபார் + தேதி வடிவம் + மொழி + வரலாற்று உறுதிமொழிகள் + வரைபடத்தில் உறுதிமொழி நேரத்திற்குப் பதிலாக ஆசிரியர் நேரத்தைக் காட்டு + உறுதிமொழி விவரங்களில் குழந்தைகளைக் காட்டு + உறுதிமொழி வரைபடத்தில் குறிச்சொற்களைக் காட்டு + பொருள் வழிகாட்டி நீளம் + அறிவிலி + தானியங்கி வரிமுடிவை இயக்கு + இயல்புநிலை நகலி அடைவு + பயனர் மின்னஞ்சல் + உலகளாவிய அறிவிலி பயனர் மின்னஞ்சல் + --prune எடுக்கும்போது இயக்கு + அறிவிலி (>= 2.23.0) இந்த பயன்பாட்டிற்கு தேவைப்படுகிறது + நிறுவல் பாதை + உஉபநெ பாகுஅ சரிபார்ப்பை இயக்கு + பயனர் பெயர் + உலகளாவிய அறிவிலி பயனர் பெயர் + அறிவிலி பதிப்பு + சிபிசி கையொப்பமிடுதல் + சிபிசி கையொப்பமிடுதல் உறுதிமொழி + சிபிசி வடிவம் + நிரல் நிறுவல் பாதை + நிறுவப்பட்ட சிபிசி நிரலுக்கான உள்ளீட்டு பாதை + சிபிசி கையொப்பமிடுதலை குறிச்சொலிடு + பயனர் கையொப்பமிடும் திறவுகோல் + பயனரின் கையொப்பமிடும் திறவுகோல் + ஒருங்கிணைப்பு + ஓடு/முனையம் + பாதை + ஓடு/முனையம் + தொலை கத்தரி + இலக்கு: + பணிமரங்கள் கத்தரி + `$GIT_COMMON_DIR/பணிமரங்கள்` இதில் பணிமரம் தகவலை கத்தரி + இழு + தொலை கிளை: + எல்லா கிளைகளையும் எடு + இதனுள்: + உள்ளக மாற்றங்கள்: + நிராகரி + பதுக்கிவை & மீண்டும் இடு + குறிச்சொற்கள் இல்லாமல் பெறு + தொலை: + இழு (எடுத்து ஒன்றிணை) + ஒன்றிணை என்பதற்குப் பதிலாக மறுதளத்தைப் பயன்படுத்து + தள்ளு + துணைத் தொகுதிகள் தள்ளப்பட்டது என்பதை உறுதிசெய் + கட்டாயமாக தள்ளு + உள்ளக கிளை: + தொலை: + மாற்றங்களை தொலைக்கு தள்ளு + தொலை கிளை: + கண்காணிப்பு கிளையாக அமை + அனைத்து குறிச்சொற்களையும் தள்ளு + தொலைக்கு குறிச்சொல்லை தள்ளு + அனைத்து தொலைகளுக்கும் தள்ளு + தொலை: + குறிச்சொல்: + வெளியேறு + தற்போதைய கிளையை மறுதளம் செய் + உள்ளக மாற்றங்களை பதுக்கிவை & மீண்டும் இடு + மேல்: + மறுதளம்: + புதுப்பி + தொலையைச் சேர் + தொலையைத் திருத்து + பெயர்: + களஞ்சிய பெயர் + களஞ்சிய முகவரி: + தொலை அறிவிலி களஞ்சிய முகவரி: + முகவரியை நகலெடு + நீக்கு... + திருத்து... + பெறு + உலாவியில் திற + கத்தரித்தல் + பணிமரத்தை அகற்றுவதை உறுதிப்படுத்து + `--கட்டாயம்` விருப்பத்தை இயக்கு + இலக்கு: + கிளையை மறுபெயரிடு + புதிய பெயர்: + இந்தக் கிளைக்கான தனித்துவமான பெயர் + கிளை: + நிறுத்து + தொலைகளிலிருந்து மாற்றங்களைத் தானாகப் பெறுதல்... + சுத்தப்படுத்தல்(சீசி & கத்தரித்தல்) + இந்த களஞ்சியத்திற்கு `அறிவிலி சீசி` கட்டளையை இயக்கு. + அனைத்தையும் அழி + இந்த களஞ்சியத்தை உள்ளமை + தொடர்க + தனிப்பயன் செயல்கள் + தனிப்பயன் செயல்கள் இல்லை + '--குறிபதிவு' விருப்பத்தை இயக்கு + கோப்பு உலாவியில் திற + கிளைகள்/குறிச்சொற்கள்/துணைத் தொகுதிகளைத் தேடு + வரைபடத்தில் தெரிவுநிலை + அமைவை நீக்கு + உறுதிமொழி வரைபடத்தில் மறை + உறுதிமொழி வரைபடத்தில் வடிகட்டு + '--first-parent' விருப்பம் இயக்கு + தளவமைப்பு + கிடைமட்டம் + செங்குத்து + உறுதிமொழி வரிசை + உறுதிமொழி தேதி + இடவியல் மூலமாக + உள்ளக கிளைகள் + தலைக்கு செல் + கிளையை உருவாக்கு + அறிவிப்புகளை அழி + வரைபடத்தில் தற்போதைய கிளையை மட்டும் முன்னிலை படுத்து + {0} இல் திற + வெளிப்புற கருவிகளில் திற + புதுப்பி + தொலைகள் + தொலையைச் சேர் + உறுதிமொழி தேடு + ஆசிரியர் + உறுதிமொழியாளர் + கோப்பு + செய்தி + பாகொவ + தற்போதைய கிளை + குறிச்சொற்களை மரமாகக் காட்டு + தவிர் + புள்ளிவிவரங்கள் + துணைத் தொகுதிகள் + துணைத் தொகுதியைச் சேர் + துணைத் தொகுதியைப் புதுப்பி + குறிசொற்கள் + புதிய குறிசொல் + படைப்பாளர் தேதியின்படி + பெயர் (ஏறுவரிசை) மூலம் + பெயர் (இறகுவரிசை) மூலம் + வரிசைப்படுத்து + முனையத்தில் திற + வரலாறுகளில் உறவு நேரத்தைப் பயன்படுத்து + பணிமரங்கள் + பணிமரத்தைச் சேர் + கத்தரித்தல் + அறிவிலி களஞ்சிய முகவரி + தற்போதைய கிளையை திருத்தத்திற்கு மீட்டமை + மீட்டமை பயன்முறை: + இதற்கு நகர்த்து: + தற்போதைய கிளை: + கோப்பு உலாவியில் வெளிப்படுத்து + பின்வாங்கு உறுதிமொழி + உறுதிமொழி: + பின்வாங்கு மாற்றங்களை உறுதிமொழி + மாறுசொல் உறுதிமொழி செய்தி + புதிய வரியை உள்ளிட 'உயர்த்து+நுழை' ஐப் பயன்படுத்தவும். 'நுழை' என்பது சரி பொத்தானின் சூடானவிசை ஆகும் + இயங்குகிறது. காத்திருக்கவும்... + சேமி + எனச் சேமி... + ஒட்டு வெற்றிகரமாக சேமிக்கப்பட்டது! + களஞ்சியங்களை வருடு + வேர் அடைவு: + புதுப்பிப்புகளைச் சரிபார்... + இந்த மென்பொருளின் புதிய பதிப்பு கிடைக்கிறது: + புதுப்பிப்புகளைச் சரிபார்க்க முடியவில்லை! + பதிவிறக்கம் + இந்தப் பதிப்பைத் தவிர் + மென்பொருள் புதுப்பி + தற்போது புதுப்பிப்புகள் எதுவும் கிடைக்கவில்லை. + கண்காணிப்பு கிளையை அமை + கிளை: + மேல்ஓடையை நீக்கு + மேல்ஓடை: + SHA ஐ நகலெடு + இதற்கு செல் + நொறுக்கு உறுதிமொழிகள் + இதில்: + பாஓடு தனியார் திறவுகோல்: + தனியார் பாஓடு திறவுகோல் கடை பாதை + தொடங்கு + பதுக்கிவை + பதுக்கிவைத்த பிறகு தானியங்கி மீட்டமை + உங்கள் செயல்படும் கோப்புகள் மாறாமல் இருக்கும், ஆனால் ஒரு பதுக்கிவைக்கப்படும். + கண்காணிக்கப்படாத கோப்புகளைச் சேர் + நிலைப்படுத்தப்பட்ட கோப்புகளை வைத்திரு + செய்தி: + விருப்பத்தேர்வு. இந்த பதுக்கலின் பெயர் + நிலைப்படுத்தப்பட்ட மாற்றங்கள் மட்டும் + தேர்ந்தெடுக்கப்பட்ட கோப்புகளின் நிலைப்படுத்தப்பட்ட மற்றும் நிலைப்படுத்தப்படாத மாற்றங்கள் இரண்டும் பதுக்கிவைக்கப்படும்!!! + உள்ளக மாற்றங்களை பதுக்கிவை + இடு + கைவிடு + ஒட்டாகச் சேமி... + பதுக்கிவைத்தவை கைவிடு + கைவிடு: + பதுக்கிவைத்தவைகள் + மாற்றங்கள் + பதுக்கிவைத்தவைகள் + புள்ளிவிவரங்கள் + உறுதிமொழிகள் + உறுதிமொழியாளர் + மேலோட்டப் பார்வை + திங்கள் + வாரம் + ஆசிரியர்கள்: + உறுதிமொழிகள்: + துணைத் தொகுதி + துணைத் தொகுதியைச் சேர் + உறவு பாதையை நகலெடு + உள்ளமைக்கப்பட்ட துணைத் தொகுதிகளை எடு + துணைத் தொகுதி களஞ்சியத்தைத் திற + உறவு பாதை: + இந்த தொகுதியை சேமிப்பதற்கான தொடர்புடைய கோப்புறை. + துணை தொகுதியை நீக்கு + சரி + குறிச்சொல் பெயரை நகலெடு + குறிச்சொல் செய்தியை நகலெடு + நீக்கு ${0}$... + ${0}$ இதை ${1}$ இல் இணை... + தள்ளு ${0}$... + துணைத்தொகுதிகளைப் புதுப்பி + அனைத்து துணைத்தொகுதிகள் + தேவைக்கேற்றப துவக்கு + சுழற்சி முறையில் + --தொலை விருப்பத்தைப் பயன்படுத்து + முகவரி: + முன்னறிவிப்பு + வரவேற்பு பக்கம் + குழுவை உருவாக்கு + துணைக் குழுவை உருவாக்கு + நகலி களஞ்சியம் + நீக்கு + கோப்புறையை இழுத்து & விடு ஆதரிக்கப்படுகிறது. தனிப்பயன் குழுவாக்க ஆதரவு. + திருத்து + வேறொரு குழுவிற்கு நகர்த்து + அனைத்து களஞ்சியங்களையும் திற + களஞ்சியத்தைத் திற + முனையத்தைத் திற + இயல்புநிலை நகலி அடைவில் களஞ்சியங்களை மீண்டும் வருடு + களஞ்சியங்களைத் தேடு... + வரிசைப்படுத்து + உள்ளக மாற்றங்கள் + அறிவிலி புறக்கணி + எல்லா *{0} கோப்புகளையும் புறக்கணி + ஒரே கோப்புறையில் *{0} கோப்புகளைப் புறக்கணி + ஒரே கோப்புறையில் கோப்புகளைப் புறக்கணி + இந்த கோப்பை மட்டும் புறக்கணி + பின்னொட்டு + இந்த கோப்பை இப்போது நீங்கள் நிலைப்படுத்தலாம். + உறுதிமொழி + உறுதிமொழி & தள்ளு + வளர்புரு/வரலாறுகள் + சொடுக்கு நிகழ்வைத் தூண்டு + உறுதிமொழி (திருத்து) + அனைத்து மாற்றங்களையும் நிலைப்படுத்தி உறுதிமொழி + நீங்கள் {0} கோப்புகளை நிலைப்படுத்தியுள்ளீர்கள், ஆனால் {1} கோப்புகள் மட்டுமே காட்டப்பட்டுள்ளன ({2} கோப்புகள் வடிகட்டப்பட்டுள்ளன). தொடர விரும்புகிறீர்களா? + காலி உறுதிமொழி கண்டறியப்பட்டது! தொடர விரும்புகிறீர்களா(--allow-empty)? + மோதல்கள் கண்டறியப்பட்டது + கோப்பு மோதல்கள் தீர்க்கப்பட்டது + கண்காணிக்கப்படாத கோப்புகளைச் சேர் + அண்மைக் கால உள்ளீட்டு செய்திகள் இல்லை + உறுதிமொழி வளர்புருகள் இல்லை + தேர்ந்தெடுக்கப்பட்ட கோப்பு(களை) வலது சொடுக்கு செய்து, முரண்பாடுகளைத் தீர்க்க உங்கள் விருப்பத்தைத் தேர்ந்தெடு. + கையெழுத்திடு + நிலைபடுத்தியது + நிலைநீக்கு + அனைத்தும் நிலைநீக்கு + நிலைநீக்கு + நிலைபடுத்து + அனைத்தும் நிலைபடுத்து + மாறாதது எனநினைப்பதை பார் + வளர்புரு: ${0}$ + பணியிடம்: + பணியிடங்களை உள்ளமை... + பணிமரம் + பாதையை நகலெடு + பூட்டு + நீக்கு + திற + diff --git a/src/Resources/Locales/zh_CN.axaml b/src/Resources/Locales/zh_CN.axaml index fec5c7804..35a97b6ea 100644 --- a/src/Resources/Locales/zh_CN.axaml +++ b/src/Resources/Locales/zh_CN.axaml @@ -2,19 +2,20 @@ + 关于软件 关于本软件 开源免费的Git客户端 新增工作树 - 检出分支方式 : - 已有分支 - 创建新分支 工作树路径 : 填写该工作树的路径。支持相对路径。 分支名 : 选填。默认使用目标文件夹名称。 跟踪分支 设置上游跟踪分支 + 检出分支方式 : + 创建新分支 + 已有分支 AI助手 重新生成 使用AI助手生成提交信息 @@ -64,8 +65,8 @@ 跟踪的上游分支不存在或已删除! 字节 取 消 - 重置文件到该版本 重置文件到上一版本 + 重置文件到该版本 生成提交信息 切换变更显示模式 文件名+路径列表模式 @@ -73,12 +74,12 @@ 文件目录树形结构模式 检出(checkout)分支 检出(checkout)提交 - 注意:执行该操作后,当前HEAD会变为游离(detached)状态! 提交 : - 目标分支 : + 注意:执行该操作后,当前HEAD会变为游离(detached)状态! 未提交更改 : 丢弃更改 贮藏并自动恢复 + 目标分支 : 挑选提交 提交信息中追加来源信息 提交列表 : @@ -97,9 +98,9 @@ 远程仓库 : 关闭 提交信息编辑器 + 检出此提交 挑选(cherry-pick)此提交 挑选(cherry-pick)... - 检出此提交 与当前HEAD比较 与本地工作树比较 复制简要信息 @@ -134,12 +135,12 @@ 相关引用 提交指纹 浏览器中查看 - 填写提交信息主题 详细描述 + 填写提交信息主题 仓库配置 提交信息模板 - 模板名 : 模板内容 : + 模板名 : 自定义操作 命令行参数 : 请使用${REPO}代替仓库路径,${BRANCH}代替选中的分支,${SHA}代替提交哈希 @@ -156,6 +157,7 @@ 启用定时自动拉取远程更新 分钟 默认远程 + 默认合并方式 ISSUE追踪 新增匹配Azure DevOps规则 新增匹配Gitee议题规则 @@ -179,6 +181,10 @@ 工作区 颜色 启动时恢复打开的仓库 + 确认继续 + 提交未包含变更文件!是否继续(--allow-empty)? + 自动暂存并提交 + 提交未包含变更文件!是否继续(--allow-empty)或是自动暂存所有变更并提交? 规范化提交信息生成 破坏性更新: 关闭的ISSUE: @@ -188,8 +194,8 @@ 类型: 复制 复制全部文本 - 复制路径 复制完整路径 + 复制路径 新建分支 ... 新分支基于 : 完成后切换到新分支 @@ -225,8 +231,8 @@ 路径 : 目标 : 所有子节点将被同时从列表中移除。 - 删除分组确认 仅从列表中移除,不会删除硬盘中的文件! + 删除分组确认 删除仓库确认 删除子模块确认 子模块路径 : @@ -295,11 +301,11 @@ 从暂存中移除 从暂存中移除 {0} 个文件 从暂存中移除选中的更改 - 使用 THEIRS (checkout --theirs) 使用 MINE (checkout --ours) + 使用 THEIRS (checkout --theirs) 文件历史 - 文件内容 文件变更 + 文件内容 GIT工作流 开发分支 : 特性分支 : @@ -329,8 +335,8 @@ 规则 : 添加LFS追踪文件规则 拉取LFS对象 (fetch) - 拉取LFS对象 执行`git lfs prune`命令,下载远程LFS对象,但不会更新工作副本。 + 拉取LFS对象 启用Git LFS支持 显示LFS对象锁 没有锁定的LFS文件 @@ -342,11 +348,11 @@ 精简本地LFS对象存储 运行`git lfs prune`命令,从本地存储中精简当前版本不需要的LFS对象 拉回LFS对象 (pull) - 拉回LFS对象 运行`git lfs pull`命令,下载远程LFS对象并更新工作副本。 + 拉回LFS对象 推送 - 推送LFS对象 将排队的大文件推送到Git LFS远程服务 + 推送LFS对象 远程 : 跟踪名为'{0}'的文件 跟踪所有 *{0} 文件 @@ -365,8 +371,8 @@ 取消弹出面板 克隆远程仓库 关闭当前页面 - 切换到上一个页面 切换到下一个页面 + 切换到上一个页面 新建页面 打开偏好设置面板 仓库页面快捷键 @@ -377,11 +383,11 @@ 丢弃选中的更改 拉取 (fetch) 远程变更 切换左边栏为分支/标签等显示模式(默认) + 切换左边栏为提交搜索模式 拉回 (pull) 远程变更 推送本地变更到远程 重新加载仓库状态 将选中的变更暂存或从暂存列表中移除 - 切换左边栏为提交搜索模式 显示本地更改 显示历史记录 显示贮藏列表 @@ -390,9 +396,9 @@ 定位到下一个匹配搜索的位置 定位到上一个匹配搜索的位置 打开搜索 + 丢弃 暂存 移出暂存区 - 丢弃 初始化新仓库 路径 : 挑选(Cherry-Pick)操作进行中。 @@ -404,10 +410,10 @@ 回滚提交操作进行中。 正在回滚提交 交互式变基 - 目标分支 : 起始提交 : - 在浏览器中访问 + 目标分支 : 复制链接地址 + 在浏览器中访问 出错了 系统提示 合并分支 @@ -433,16 +439,16 @@ 复制仓库路径 新标签页 粘贴 - 刚刚 - {0}分钟前 + {0}天前 1小时前 {0}小时前 - 昨天 - {0}天前 + 刚刚 上个月 - {0}个月前 一年前 + {0}分钟前 + {0}个月前 {0}年前 + 昨天 偏好设置 AI Analyze Diff Prompt @@ -454,11 +460,11 @@ 启用流式输出 外观配置 缺省字体 + 代码字体大小 编辑器制表符宽度 字体大小 默认 代码编辑器 - 代码字体大小 等宽字体 仅在文本编辑器中使用等宽字体 主题 @@ -484,24 +490,24 @@ 邮箱 默认GIT用户邮箱 拉取更新时启用修剪(--prune) + 本软件要求GIT最低版本为2.23.0 安装路径 启用HTTP SSL验证 用户名 默认GIT用户名 Git 版本 - 本软件要求GIT最低版本为2.23.0 GPG签名 启用提交签名 - 启用标签签名 签名格式 签名程序位置 签名程序所在路径 + 启用标签签名 用户签名KEY 输入签名提交所使用的KEY 第三方工具集成 终端/SHELL - 终端/SHELL 安装路径 + 终端/SHELL 清理远程已删除分支 目标 : 清理工作树 @@ -668,11 +674,11 @@ 提交统计 提交次数 提交者 + 总览 本月 本周 - 提交次数: 贡献者人数: - 总览 + 提交次数: 子模块 添加子模块 复制路径 @@ -687,13 +693,13 @@ 删除 ${0}$... 合并 ${0}$ 到 ${1}$... 推送 ${0}$... - 仓库地址 : 更新子模块 更新所有子模块 启用 '--init' 启用 '--recursive' 子模块 : 启用 '--remote' + 仓库地址 : 警告 起始页 新建分组 @@ -723,13 +729,17 @@ 触发点击事件 提交(修改原始提交) 自动暂存所有变更并提交 - 当前有 {0} 个文件在暂存区中,但仅显示了 {1} 个文件({2} 个文件被过滤掉了),是否继续提交? - 提交未包含变更文件!是否继续(--allow-empty)? + 当前有 {0} 个文件在暂存区中,但仅显示了 {1} 个文件({2} 个文件被过滤掉了),是否继续提交? 检测到冲突 + 打开合并工具 + 打开合并工具解决冲突 文件冲突已解决 + 使用 MINE + 使用 THEIRS 显示未跟踪文件 没有提交信息记录 没有可应用的提交信息模板 + 请选中冲突文件,打开右键菜单,选择合适的解决方式 署名 已暂存 从暂存区移除选中 @@ -739,7 +749,6 @@ 暂存所有 查看忽略变更文件 模板:${0}$ - 请选中冲突文件,打开右键菜单,选择合适的解决方式 工作区: 配置工作区... 本地工作树 diff --git a/src/Resources/Locales/zh_TW.axaml b/src/Resources/Locales/zh_TW.axaml index 66bcc33ac..d71281f73 100644 --- a/src/Resources/Locales/zh_TW.axaml +++ b/src/Resources/Locales/zh_TW.axaml @@ -2,19 +2,20 @@ + 關於 關於 SourceGit 開源免費的 Git 客戶端 新增工作區 - 簽出分支方式: - 已有分支 - 建立新分支 工作區路徑: 填寫該工作區的路徑。支援相對路徑。 分支名稱: 選填。預設使用目標資料夾名稱。 追蹤分支 設定遠端追蹤分支 + 簽出分支方式: + 建立新分支 + 已有分支 AI 助理 重新產生 使用 AI 產生提交訊息 @@ -64,8 +65,8 @@ 追蹤上游分支不存在或已刪除! 位元組 取 消 - 重設檔案為此版本 重設檔案到上一版本 + 重設檔案為此版本 產生提交訊息 切換變更顯示模式 檔案名稱 + 路徑列表模式 @@ -73,12 +74,12 @@ 檔案目錄樹狀結構模式 簽出 (checkout) 分支 簽出 (checkout) 提交 - 注意: 執行該操作後,目前 HEAD 會變為分離 (detached) 狀態! 提交: - 目標分支: + 注意: 執行該操作後,目前 HEAD 會變為分離 (detached) 狀態! 未提交變更: 捨棄變更 擱置變更並自動復原 + 目標分支: 揀選提交 提交資訊中追加來源資訊 提交列表: @@ -97,9 +98,9 @@ 遠端存放庫: 關閉 提交訊息編輯器 + 簽出 (checkout) 此提交 揀選 (cherry-pick) 此提交 揀選 (cherry-pick)... - 簽出 (checkout) 此提交 與目前 HEAD 比較 與本機工作區比較 複製摘要資訊 @@ -134,12 +135,12 @@ 相關參照 提交編號 在瀏覽器中檢視 - 填寫提交訊息標題 詳細描述 + 填寫提交訊息標題 存放庫設定 提交訊息範本 - 範本名稱: 範本內容: + 範本名稱: 自訂動作 指令參數: 使用 ${REPO} 表示存放庫路徑、${BRANCH} 表示所選的分支、${SHA} 表示所選的提交編號 @@ -156,6 +157,7 @@ 啟用定時自動提取 (fetch) 遠端更新 分鐘 預設遠端存放庫 + 首選合併模式 Issue 追蹤 新增符合 Azure DevOps 規則 新增符合 Gitee 議題規則 @@ -179,6 +181,10 @@ 工作區 顏色 啟動時還原上次開啟的存放庫 + 确认继续 + 未包含任何檔案變更! 您是否仍要提交 (--allow-empty)? + 自动暂存并提交 + 未包含任何檔案變更! 您是否仍要提交 (--allow-empty)或者自動暫存全部變更並提交? 產生約定式提交訊息 破壞性變更: 關閉的 Issue: @@ -188,8 +194,8 @@ 類型: 複製 複製全部內容 - 複製路徑 複製完整路徑 + 複製路徑 新增分支... 新分支基於: 完成後切換到新分支 @@ -225,8 +231,8 @@ 路徑: 目標: 所有子節點都會從清單中移除。 - 刪除群組確認 只會從清單中移除,而不會刪除磁碟中的檔案! + 刪除群組確認 刪除存放庫確認 刪除子模組確認 子模組路徑: @@ -295,11 +301,11 @@ 取消暫存 從暫存中移除 {0} 個檔案 取消暫存選取的變更 - 使用對方版本 (checkout --theirs) 使用我方版本 (checkout --ours) + 使用對方版本 (checkout --theirs) 檔案歷史 - 檔案内容 檔案變更 + 檔案内容 Git 工作流 開發分支: 功能分支: @@ -329,8 +335,8 @@ 規則: 加入 LFS 追蹤檔案規則 提取 (fetch) - 提取 LFS 物件 執行 `git lfs fetch` 以下載遠端 LFS 物件,但不會更新工作副本。 + 提取 LFS 物件 啟用 Git LFS 支援 顯示 LFS 物件鎖 沒有鎖定的 LFS 物件 @@ -342,11 +348,11 @@ 清理 (prune) 執行 `git lfs prune` 以從本機中清理目前版本不需要的 LFS 物件 拉取 (pull) - 拉取 LFS 物件 執行 `git lfs pull` 以下載遠端 LFS 物件並更新工作副本。 + 拉取 LFS 物件 推送 (push) - 推送 LFS 物件 將大型檔案推送到 Git LFS 遠端服務 + 推送 LFS 物件 遠端存放庫: 追蹤名稱為「{0}」的檔案 追蹤所有 *{0} 檔案 @@ -365,8 +371,8 @@ 取消彈出面板 複製 (clone) 遠端存放庫 關閉目前頁面 - 切換到上一個頁面 切換到下一個頁面 + 切換到上一個頁面 新增頁面 開啟偏好設定面板 存放庫頁面快速鍵 @@ -377,11 +383,11 @@ 捨棄選取的變更 提取 (fetch) 遠端的變更 切換左邊欄為分支/標籤等顯示模式 (預設) + 切換左邊欄為歷史搜尋模式 拉取 (pull) 遠端的變更 推送 (push) 本機變更到遠端存放庫 強制重新載入存放庫 暫存或取消暫存選取的變更 - 切換左邊欄為歷史搜尋模式 顯示本機變更 顯示歷史記錄 顯示擱置變更列表 @@ -390,9 +396,9 @@ 前往下一個搜尋相符的位置 前往上一個搜尋相符的位置 開啟搜尋面板 + 捨棄 暫存 取消暫存 - 捨棄 初始化存放庫 路徑: 揀選 (cherry-pick) 操作進行中。 @@ -404,10 +410,10 @@ 復原提交操作進行中。 正在復原提交 互動式重定基底 - 目標分支: 起始提交: - 在瀏覽器中開啟連結 + 目標分支: 複製連結 + 在瀏覽器中開啟連結 發生錯誤 系統提示 合併分支 @@ -433,16 +439,16 @@ 複製存放庫路徑 新分頁 貼上 - 剛剛 - {0} 分鐘前 + {0} 天前 1 小時前 {0} 小時前 - 昨天 - {0} 天前 + 剛剛 上個月 - {0} 個月前 一年前 + {0} 分鐘前 + {0} 個月前 {0} 年前 + 昨天 偏好設定 AI 分析變更差異提示詞 @@ -483,24 +489,24 @@ 電子郵件 預設 Git 使用者電子郵件 拉取變更時進行清理 (--prune) + 本軟體要求 Git 最低版本為 2.23.0 安裝路徑 啟用 HTTP SSL 驗證 使用者名稱 預設 Git 使用者名稱 Git 版本 - 本軟體要求 Git 最低版本為 2.23.0 GPG 簽章 啟用提交簽章 - 啟用標籤簽章 GPG 簽章格式 可執行檔案路徑 填寫 gpg.exe 所在路徑 + 啟用標籤簽章 使用者簽章金鑰 填寫簽章提交所使用的金鑰 第三方工具整合 終端機/Shell - 終端機/Shell 安裝路徑 + 終端機/Shell 清理遠端已刪除分支 目標: 清理工作區 @@ -667,11 +673,11 @@ 提交統計 提交次數 提交者 + 總覽 本月 本週 - 提交次數: 貢獻者人數: - 總覽 + 提交次數: 子模組 新增子模組 複製路徑 @@ -686,13 +692,13 @@ 刪除 ${0}$... 合併 ${0}$ 到 ${1}$... 推送 ${0}$... - 存放庫網址: 更新子模組 更新所有子模組 啟用 [--init] 選項 啟用 [--recursive] 選項 子模組: 啟用 [--remote] 選項 + 存放庫網址: 警告 起始頁 新增群組 @@ -705,8 +711,8 @@ 開啟所有包含存放庫 開啟本機存放庫 開啟終端機 - 快速搜尋存放庫... 重新掃描預設複製 (clone) 目錄下的存放庫 + 快速搜尋存放庫... 排序 本機變更 加入至 .gitignore 忽略清單 @@ -722,13 +728,17 @@ 觸發點擊事件 提交 (修改原始提交) 自動暫存全部變更並提交 - 您已暫存 {0} 檔案,但只顯示 {1} 檔案 ({2} 檔案被篩選器隱藏)。您要繼續嗎? - 未包含任何檔案變更! 您是否仍要提交 (--allow-empty)? + 您已暫存 {0} 檔案,但只顯示 {1} 檔案 ({2} 檔案被篩選器隱藏)。您要繼續嗎? 檢測到衝突 + 使用外部合併工具開啟 + 使用外部合併工具開啟 檔案衝突已解決 + 使用 MINE + 使用 THEIRS 顯示未追蹤檔案 沒有提交訊息記錄 沒有可套用的提交訊息範本 + 請選擇發生衝突的檔案,開啟右鍵選單,選擇合適的解決方式 署名 已暫存 取消暫存選取的檔案 @@ -738,7 +748,6 @@ 暫存所有檔案 檢視不追蹤變更的檔案 範本: ${0}$ - 請選擇發生衝突的檔案,開啟右鍵選單,選擇合適的解決方式 工作區: 設定工作區... 本機工作區 diff --git a/src/ViewModels/CommitDetail.cs b/src/ViewModels/CommitDetail.cs index d04e674b0..2d7581334 100644 --- a/src/ViewModels/CommitDetail.cs +++ b/src/ViewModels/CommitDetail.cs @@ -548,7 +548,7 @@ public ContextMenu CreateRevisionFileContextMenu(Models.Object file) menu.Items.Add(resetToThisRevision); menu.Items.Add(resetToFirstParent); - menu.Items.Add(new MenuItem() { Header = "-" }); + menu.Items.Add(new MenuItem { Header = "-" }); if (File.Exists(Path.Combine(fullPath))) TryToAddContextMenuItemsForGitLFS(menu, file.Path); @@ -590,8 +590,31 @@ private void Refresh() if (_commit == null) return; - if (_cancellationSource is { IsCancellationRequested: false }) - _cancellationSource.Cancel(); + var sha = _commit.SHA; + + if (_lineCountCache.TryGetValue(sha, out var lineCount)) + { + _commit.AddedLines = lineCount.added; + _commit.RemovedLines = lineCount.removed; + } + else + { + Task.Run(() => + { + (var addedLines, var removedLines) = new Commands.QueryCommitChangedLines(_repo.FullPath, sha).Result(); + _lineCountCache[sha] = (addedLines, removedLines); + + Dispatcher.UIThread.Invoke(() => { + if (_commit != null && _commit.SHA == sha) + { + _commit.AddedLines = addedLines; + _commit.RemovedLines = removedLines; + } + }); + }); + } + + if (_cancellationSource is { IsCancellationRequested: false }) _cancellationSource.Cancel(); _cancellationSource = new CancellationTokenSource(); var token = _cancellationSource.Token; @@ -654,6 +677,24 @@ private void Refresh() }); } + public void PreloadLineCountData(List commitSHAs) + { + if (commitSHAs == null || commitSHAs.Count == 0) + return; + + Task.Run(() => + { + foreach (var sha in commitSHAs) + { + if (!_lineCountCache.ContainsKey(sha)) + { + var (addedLines, removedLines) = new Commands.QueryCommitChangedLines(_repo.FullPath, sha).Result(); + _lineCountCache[sha] = (addedLines, removedLines); + } + } + }); + } + private List ParseLinksInMessage(string message) { var links = new List(); @@ -878,6 +919,7 @@ private void CalcRevisionFileSearchSuggestion() private CancellationTokenSource _cancellationSource = null; private List _revisionFiles = null; private string _revisionFileSearchFilter = string.Empty; + private Dictionary _lineCountCache = new Dictionary(); private List _revisionFileSearchSuggestion = null; } } diff --git a/src/ViewModels/ConfirmEmptyCommit.cs b/src/ViewModels/ConfirmEmptyCommit.cs new file mode 100644 index 000000000..87178b75e --- /dev/null +++ b/src/ViewModels/ConfirmEmptyCommit.cs @@ -0,0 +1,38 @@ +using System; + +namespace SourceGit.ViewModels +{ + public class ConfirmEmptyCommit + { + public bool HasLocalChanges + { + get; + private set; + } + + public string Message + { + get; + private set; + } + + public ConfirmEmptyCommit(bool hasLocalChanges, Action onSure) + { + HasLocalChanges = hasLocalChanges; + Message = App.Text(hasLocalChanges ? "ConfirmEmptyCommit.WithLocalChanges" : "ConfirmEmptyCommit.NoLocalChanges"); + _onSure = onSure; + } + + public void StageAllThenCommit() + { + _onSure?.Invoke(true); + } + + public void Continue() + { + _onSure?.Invoke(false); + } + + private Action _onSure; + } +} diff --git a/src/ViewModels/CreateBranch.cs b/src/ViewModels/CreateBranch.cs index 37db00651..6d7fe27ae 100644 --- a/src/ViewModels/CreateBranch.cs +++ b/src/ViewModels/CreateBranch.cs @@ -6,7 +6,7 @@ namespace SourceGit.ViewModels public class CreateBranch : Popup { [Required(ErrorMessage = "Branch name is required!")] - [RegularExpression(@"^[\w \-/\.#]+$", ErrorMessage = "Bad branch name format!")] + [RegularExpression(@"^[\w \-/\.#\+]+$", ErrorMessage = "Bad branch name format!")] [CustomValidation(typeof(CreateBranch), nameof(ValidateBranchName))] public string Name { diff --git a/src/ViewModels/Histories.cs b/src/ViewModels/Histories.cs index 01114dd32..b0bbff3c9 100644 --- a/src/ViewModels/Histories.cs +++ b/src/ViewModels/Histories.cs @@ -419,12 +419,6 @@ public ContextMenu MakeContextMenu(ListBox list) squash.Icon = App.CreateMenuIcon("Icons.SquashIntoParent"); squash.Click += (_, e) => { - if (_repo.LocalChangesCount > 0) - { - App.RaiseException(_repo.FullPath, "You have local changes. Please run stash or discard first."); - return; - } - if (_repo.CanCreatePopup()) _repo.ShowPopup(new Squash(_repo, commit, commit.SHA)); @@ -458,12 +452,6 @@ public ContextMenu MakeContextMenu(ListBox list) squash.IsEnabled = commit.Parents.Count == 1; squash.Click += (_, e) => { - if (_repo.LocalChangesCount > 0) - { - App.RaiseException(_repo.FullPath, "You have local changes. Please run stash or discard first."); - return; - } - if (commit.Parents.Count == 1) { var parent = _commits.Find(x => x.SHA == commit.Parents[0]); diff --git a/src/ViewModels/Merge.cs b/src/ViewModels/Merge.cs index be9388674..faadaf577 100644 --- a/src/ViewModels/Merge.cs +++ b/src/ViewModels/Merge.cs @@ -69,9 +69,14 @@ public override Task Sure() private Models.MergeMode AutoSelectMergeMode() { + var preferredMergeModeIdx = _repo.Settings.PreferredMergeMode; + if (preferredMergeModeIdx < 0 || preferredMergeModeIdx > Models.MergeMode.Supported.Length) + preferredMergeModeIdx = 0; + + var defaultMergeMode = Models.MergeMode.Supported[preferredMergeModeIdx]; var config = new Commands.Config(_repo.FullPath).Get($"branch.{Into}.mergeoptions"); if (string.IsNullOrEmpty(config)) - return Models.MergeMode.Supported[0]; + return defaultMergeMode; if (config.Equals("--ff-only", StringComparison.Ordinal)) return Models.MergeMode.Supported[1]; if (config.Equals("--no-ff", StringComparison.Ordinal)) @@ -81,7 +86,7 @@ private Models.MergeMode AutoSelectMergeMode() if (config.Equals("--no-commit", StringComparison.Ordinal) || config.Equals("--no-ff --no-commit", StringComparison.Ordinal)) return Models.MergeMode.Supported[4]; - return Models.MergeMode.Supported[0]; + return defaultMergeMode; } private readonly Repository _repo = null; diff --git a/src/ViewModels/RenameBranch.cs b/src/ViewModels/RenameBranch.cs index 0679a5b55..f78eb46b0 100644 --- a/src/ViewModels/RenameBranch.cs +++ b/src/ViewModels/RenameBranch.cs @@ -12,7 +12,7 @@ public Models.Branch Target } [Required(ErrorMessage = "Branch name is required!!!")] - [RegularExpression(@"^[\w \-/\.#]+$", ErrorMessage = "Bad branch name format!")] + [RegularExpression(@"^[\w \-/\.#\+]+$", ErrorMessage = "Bad branch name format!")] [CustomValidation(typeof(RenameBranch), nameof(ValidateBranchName))] public string Name { diff --git a/src/ViewModels/RepositoryConfigure.cs b/src/ViewModels/RepositoryConfigure.cs index 3f590758d..9a3bc9c46 100644 --- a/src/ViewModels/RepositoryConfigure.cs +++ b/src/ViewModels/RepositoryConfigure.cs @@ -36,6 +36,19 @@ public string DefaultRemote } } + public int PreferredMergeMode + { + get => _repo.Settings.PreferredMergeMode; + set + { + if (_repo.Settings.PreferredMergeMode != value) + { + _repo.Settings.PreferredMergeMode = value; + OnPropertyChanged(); + } + } + } + public bool GPGCommitSigningEnabled { get; diff --git a/src/ViewModels/Squash.cs b/src/ViewModels/Squash.cs index 198dbe9ae..eceb8339f 100644 --- a/src/ViewModels/Squash.cs +++ b/src/ViewModels/Squash.cs @@ -33,9 +33,28 @@ public override Task Sure() return Task.Run(() => { - var succ = new Commands.Reset(_repo.FullPath, Target.SHA, "--soft").Exec(); + var autoStashed = false; + var succ = false; + + if (_repo.LocalChangesCount > 0) + { + succ = new Commands.Stash(_repo.FullPath).Push("SQUASH_AUTO_STASH"); + if (!succ) + { + CallUIThread(() => _repo.SetWatcherEnabled(true)); + return false; + } + + autoStashed = true; + } + + succ = new Commands.Reset(_repo.FullPath, Target.SHA, "--soft").Exec(); if (succ) succ = new Commands.Commit(_repo.FullPath, _message, true, _repo.Settings.EnableSignOffForCommit).Run(); + + if (succ && autoStashed) + new Commands.Stash(_repo.FullPath).Pop("stash@{0}"); + CallUIThread(() => _repo.SetWatcherEnabled(true)); return succ; }); diff --git a/src/ViewModels/WorkingCopy.cs b/src/ViewModels/WorkingCopy.cs index a0933ea3b..802c6c5da 100644 --- a/src/ViewModels/WorkingCopy.cs +++ b/src/ViewModels/WorkingCopy.cs @@ -243,7 +243,7 @@ public void SetData(List changes) // Just force refresh selected changes. Dispatcher.UIThread.Invoke(() => { - HasUnsolvedConflicts = _cached.Find(x => x.IsConflit) != null; + HasUnsolvedConflicts = _cached.Find(x => x.IsConflict) != null; UpdateDetail(); UpdateInProgressState(); @@ -275,7 +275,7 @@ public void SetData(List changes) if (c.WorkTree != Models.ChangeState.None) { unstaged.Add(c); - hasConflict |= c.IsConflit; + hasConflict |= c.IsConflict; } } @@ -314,6 +314,12 @@ public void SetData(List changes) }); } + public void OpenExternalMergeToolAllConflicts() + { + // No arg, mergetool runs on all files with merge conflicts! + UseExternalMergeTool(null); + } + public void OpenAssumeUnchanged() { App.OpenDialog(new Views.AssumeUnchangedManager() @@ -373,7 +379,7 @@ public async void UseTheirs(List changes) foreach (var change in changes) { - if (!change.IsConflit) + if (!change.IsConflict) continue; if (change.WorkTree == Models.ChangeState.Deleted) @@ -413,7 +419,7 @@ public async void UseMine(List changes) foreach (var change in changes) { - if (!change.IsConflit) + if (!change.IsConflict) continue; if (change.Index == Models.ChangeState.Deleted) @@ -448,7 +454,8 @@ public async void UseExternalMergeTool(Models.Change change) { var toolType = Preferences.Instance.ExternalMergeToolType; var toolPath = Preferences.Instance.ExternalMergeToolPath; - await Task.Run(() => Commands.MergeTool.OpenForMerge(_repo.FullPath, toolType, toolPath, change.Path)); + var file = change?.Path; // NOTE: With no arg, mergetool runs on on every file with merge conflicts! + await Task.Run(() => Commands.MergeTool.OpenForMerge(_repo.FullPath, toolType, toolPath, file)); } public void ContinueMerge() @@ -585,7 +592,7 @@ public ContextMenu CreateContextMenuForUnstagedChanges() menu.Items.Add(openWith); menu.Items.Add(new MenuItem() { Header = "-" }); - if (change.IsConflit) + if (change.IsConflict) { var useTheirs = new MenuItem(); useTheirs.Icon = App.CreateMenuIcon("Icons.Incoming"); @@ -924,20 +931,20 @@ public ContextMenu CreateContextMenuForUnstagedChanges() else { var hasConflicts = false; - var hasNoneConflicts = false; + var hasNonConflicts = false; foreach (var change in _selectedUnstaged) { - if (change.IsConflit) + if (change.IsConflict) hasConflicts = true; else - hasNoneConflicts = true; + hasNonConflicts = true; } if (hasConflicts) { - if (hasNoneConflicts) + if (hasNonConflicts) { - App.RaiseException(_repo.FullPath, "You have selected both non-conflict changes with conflicts!"); + App.RaiseException(_repo.FullPath, "Selection contains both conflict and non-conflict changes!"); return null; } @@ -1644,7 +1651,7 @@ private void SetDetail(Models.Change change, bool isUnstaged) if (change == null) DetailContext = null; - else if (change.IsConflit && isUnstaged) + else if (change.IsConflict && isUnstaged) DetailContext = new Conflict(_repo, this, change); else DetailContext = new DiffContext(_repo.FullPath, new Models.DiffOption(change, isUnstaged), _detailContext as DiffContext); @@ -1652,6 +1659,9 @@ private void SetDetail(Models.Change change, bool isUnstaged) private void DoCommit(bool autoStage, bool autoPush, bool allowEmpty = false, bool confirmWithFilter = false) { + if (string.IsNullOrWhiteSpace(_commitMessage)) + return; + if (!_repo.CanCreatePopup()) { App.RaiseException(_repo.FullPath, "Repository has unfinished job! Please wait!"); @@ -1672,22 +1682,15 @@ private void DoCommit(bool autoStage, bool autoPush, bool allowEmpty = false, bo return; } - if (string.IsNullOrWhiteSpace(_commitMessage)) - { - App.RaiseException(_repo.FullPath, "Commit without message is NOT allowed!"); - return; - } - if (!_useAmend && !allowEmpty) { if ((autoStage && _count == 0) || (!autoStage && _staged.Count == 0)) { - var confirmMessage = App.Text("WorkingCopy.ConfirmCommitWithoutFiles"); - App.OpenDialog(new Views.ConfirmCommit() + App.OpenDialog(new Views.ConfirmEmptyCommit() { - DataContext = new ConfirmCommit(confirmMessage, () => + DataContext = new ConfirmEmptyCommit(_count > 0, stageAll => { - DoCommit(autoStage, autoPush, true, confirmWithFilter); + DoCommit(stageAll, autoPush, true, confirmWithFilter); }) }); diff --git a/src/Views/ChangeStatusIcon.cs b/src/Views/ChangeStatusIcon.cs index 5d34be09c..7dbd0beb6 100644 --- a/src/Views/ChangeStatusIcon.cs +++ b/src/Views/ChangeStatusIcon.cs @@ -93,7 +93,7 @@ public override void Render(DrawingContext context) string indicator; if (IsUnstagedChange) { - if (Change.IsConflit) + if (Change.IsConflict) { background = Brushes.OrangeRed; indicator = "!"; @@ -139,7 +139,7 @@ protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs chang } if (isUnstaged) - ToolTip.SetTip(this, c.IsConflit ? "Conflict" : TIPS[(int)c.WorkTree]); + ToolTip.SetTip(this, c.IsConflict ? "Conflict" : TIPS[(int)c.WorkTree]); else ToolTip.SetTip(this, TIPS[(int)c.Index]); diff --git a/src/Views/CommitBaseInfo.axaml b/src/Views/CommitBaseInfo.axaml index f83b43fcb..6162556e2 100644 --- a/src/Views/CommitBaseInfo.axaml +++ b/src/Views/CommitBaseInfo.axaml @@ -51,7 +51,7 @@ - + @@ -181,9 +181,32 @@ UseGraphColor="False"/> + + + + + + + + + + + + + + + + + + + + + + + - - + + { + if (e.PropertyName == nameof(detail.Commit)) + { + InvalidateVisual(); + } + }; + } + } + private void OnCopyCommitSHA(object sender, RoutedEventArgs e) { if (sender is Button { DataContext: Models.Commit commit }) diff --git a/src/Views/ConfirmCommit.axaml b/src/Views/ConfirmCommit.axaml index 77bbdb30e..a835f0b66 100644 --- a/src/Views/ConfirmCommit.axaml +++ b/src/Views/ConfirmCommit.axaml @@ -38,7 +38,7 @@ - + diff --git a/src/Views/ConfirmEmptyCommit.axaml b/src/Views/ConfirmEmptyCommit.axaml new file mode 100644 index 000000000..32a1f2cd2 --- /dev/null +++ b/src/Views/ConfirmEmptyCommit.axaml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Views/RepositoryConfigure.axaml b/src/Views/RepositoryConfigure.axaml index e41375b95..ee1d6fa8e 100644 --- a/src/Views/RepositoryConfigure.axaml +++ b/src/Views/RepositoryConfigure.axaml @@ -44,7 +44,7 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + diff --git a/src/Views/Statistics.axaml b/src/Views/Statistics.axaml index 0c0024075..3bbdafbe4 100644 --- a/src/Views/Statistics.axaml +++ b/src/Views/Statistics.axaml @@ -136,7 +136,7 @@ - + - - - + + + + - + @@ -177,7 +181,7 @@ - + diff --git a/src/Views/WorkingCopy.axaml b/src/Views/WorkingCopy.axaml index 94dd0c301..41d80b047 100644 --- a/src/Views/WorkingCopy.axaml +++ b/src/Views/WorkingCopy.axaml @@ -61,7 +61,7 @@ - + @@ -81,6 +81,15 @@ ToolTip.Tip="{DynamicResource Text.WorkingCopy.IncludeUntracked}" IsChecked="{Binding IncludeUntracked, Mode=TwoWay}"/> + - - @@ -295,7 +304,9 @@ - + @@ -309,7 +320,6 @@ Command="{Binding Commit}" HotKey="{OnPlatform Ctrl+Enter, macOS=⌘+Enter}" IsVisible="{Binding InProgressContext, Converter={x:Static ObjectConverters.IsNull}}" - IsEnabled="{Binding !IsCommitting}" ToolTip.Placement="Top" ToolTip.VerticalOffset="0"> @@ -324,6 +334,13 @@ + + + + + + + @@ -331,8 +348,14 @@ Width="0" Height="0" Background="Transparent" Command="{Binding CommitWithAutoStage}" - HotKey="{OnPlatform Ctrl+Shift+Enter, macOS=⌘+Shift+Enter}" - IsEnabled="{Binding !IsCommitting}"/> + HotKey="{OnPlatform Ctrl+Shift+Enter, macOS=⌘+Shift+Enter}"> + + + + + + +