mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-06-30 06:40:42 +00:00
Compare commits
191 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9439df8745 | ||
![]() |
84e9c44f0f | ||
![]() |
61372e2ffd | ||
![]() |
8602ba2fc3 | ||
![]() |
aa6ef80fa5 | ||
![]() |
32086bfc41 | ||
![]() |
7234a45454 | ||
![]() |
51bff8c6dd | ||
![]() |
7c0b681cc0 | ||
![]() |
f26f4d1ed1 | ||
![]() |
0d9bf3c927 | ||
![]() |
133b69de4a | ||
![]() |
1acf2a14df | ||
![]() |
e5eced566b | ||
![]() |
5f9d181a6c | ||
![]() |
019b4836e4 | ||
![]() |
042ae5cc29 | ||
![]() |
0a8323bc1b | ||
![]() |
b31495b89b | ||
![]() |
0729c3044a | ||
![]() |
fbcb3a966e | ||
![]() |
b0a80e41ee | ||
![]() |
f36ab4a189 | ||
![]() |
8d5a6bf4e9 | ||
![]() |
2e6c9d7d89 | ||
![]() |
dda75ae562 | ||
![]() |
0e22503b22 | ||
![]() |
67efe76b97 | ||
![]() |
4f08abdad4 | ||
![]() |
054d5e41f3 | ||
![]() |
271f02b694 | ||
![]() |
e5b845e1c5 | ||
![]() |
a02c2ae99d | ||
![]() |
aabdc66d6d | ||
![]() |
6ddfbe1190 | ||
![]() |
295718effe | ||
![]() |
83f1f2f6cd | ||
![]() |
03d92ab4f9 | ||
![]() |
9e20f25e78 | ||
![]() |
daf4892423 | ||
![]() |
ad7aaa34f0 | ||
![]() |
743be5491a | ||
![]() |
d192712f51 | ||
![]() |
676785f8b1 | ||
![]() |
a8803ca188 | ||
![]() |
71dd58a5d6 | ||
![]() |
dd01c74d11 | ||
![]() |
f657847129 | ||
![]() |
694d89c5dc | ||
![]() |
00ccf29b2b | ||
![]() |
4c4d8ae031 | ||
![]() |
f63eefc81b | ||
![]() |
d4edb41e9f | ||
![]() |
6ea00a3111 | ||
![]() |
e5bd166568 | ||
![]() |
f022ac24bd | ||
![]() |
1af05b3efa | ||
![]() |
e874e66a03 | ||
![]() |
675257aff4 | ||
![]() |
71a4e94802 | ||
![]() |
b519ead5a1 | ||
![]() |
5b6e9805dd | ||
![]() |
ad36366e79 | ||
![]() |
190d2eec73 | ||
![]() |
bfb9d6b6bc | ||
![]() |
9d2f8b1555 | ||
![]() |
f59b34fe25 | ||
![]() |
6e4f35c4e1 | ||
![]() |
6ecdabc212 | ||
![]() |
8b902bd5c9 | ||
![]() |
73eccdb495 | ||
![]() |
9bfc315ace | ||
![]() |
64ffbb113f | ||
![]() |
221e964df0 | ||
![]() |
20daa584e3 | ||
![]() |
c5ad4b837d | ||
![]() |
957c52aac4 | ||
![]() |
8d74586970 | ||
![]() |
dcd8effc32 | ||
![]() |
af2b644792 | ||
![]() |
88fd8f32f1 | ||
![]() |
cadcf40d74 | ||
![]() |
fcf1107304 | ||
![]() |
e81674912c | ||
![]() |
6729d4e896 | ||
![]() |
f9f44ae9cb | ||
![]() |
c67e8e3c64 | ||
![]() |
5ec8ae1296 | ||
![]() |
2d91fed05e | ||
![]() |
3ac803d88c | ||
![]() |
94d25ee6c9 | ||
![]() |
3711399c59 | ||
![]() |
004022648c | ||
![]() |
240db2ea2f | ||
![]() |
5ca1fcfd8f | ||
![]() |
bad8904edc | ||
![]() |
86828b9711 | ||
![]() |
6d682ac409 | ||
![]() |
b06a4cbb8a | ||
![]() |
d404f6dbe2 | ||
![]() |
ae46728bbc | ||
![]() |
957fbbf54f | ||
![]() |
10569022d7 | ||
![]() |
90310a704d | ||
![]() |
a8da8c09ac | ||
![]() |
df7375313e | ||
![]() |
efa6e46471 | ||
![]() |
e102e49f45 | ||
![]() |
dcdc52592c | ||
![]() |
e28b537f89 | ||
![]() |
ed66d2337b | ||
![]() |
0cbf1215e0 | ||
![]() |
74d77ab704 | ||
![]() |
b617181fc5 | ||
![]() |
9dedcacb2f | ||
![]() |
b22733b565 | ||
![]() |
28844c59cf | ||
![]() |
f88652ffdd | ||
![]() |
8dffdef48d | ||
![]() |
158d926189 | ||
![]() |
99b7208a54 | ||
![]() |
05757ebf40 | ||
![]() |
cb6d6a233f | ||
![]() |
79650d1851 | ||
![]() |
7e2f3bec8c | ||
![]() |
7de5991ecb | ||
![]() |
ffac71b15f | ||
![]() |
35eda489be | ||
![]() |
f59851f454 | ||
![]() |
a128b67bd4 | ||
![]() |
196b454ae8 | ||
![]() |
5494093261 | ||
![]() |
c3c7d32167 | ||
![]() |
7c1a894525 | ||
![]() |
bcefb773c1 | ||
![]() |
aa1c8b1cc1 | ||
![]() |
5e303d43d4 | ||
![]() |
7d0536d94b | ||
![]() |
6c04f5390a | ||
![]() |
ee4d8a6a0e | ||
![]() |
0ea4021a64 | ||
![]() |
11a46dbc93 | ||
![]() |
69792b3262 | ||
![]() |
1b1dc2f666 | ||
![]() |
4302d7adb5 | ||
![]() |
932baeec53 | ||
![]() |
637e133f47 | ||
![]() |
a1e76e9bea | ||
![]() |
a8541a780e | ||
![]() |
d55f19586f | ||
![]() |
a22c39519f | ||
![]() |
84fb39f97a | ||
![]() |
fe54d30b70 | ||
![]() |
ba4c0f0cd2 | ||
![]() |
2478d2953b | ||
![]() |
74f52fb266 | ||
![]() |
f830b68f6a | ||
![]() |
d323a2064e | ||
![]() |
203c50350e | ||
![]() |
47012e29dc | ||
![]() |
8db033be99 | ||
![]() |
a2ca071f08 | ||
![]() |
7bba40d03f | ||
![]() |
0c22409b7b | ||
![]() |
f63fe8637b | ||
![]() |
08665e45c1 | ||
![]() |
3bb20868fc | ||
![]() |
ac55bed812 | ||
![]() |
f003f67129 | ||
![]() |
f04b0c5d97 | ||
![]() |
406ace9e79 | ||
![]() |
464fe74580 | ||
![]() |
b969ac161a | ||
![]() |
88c38b4139 | ||
![]() |
54c05ac35a | ||
![]() |
75c32c1a01 | ||
![]() |
a023a9259b | ||
![]() |
eebadd67a1 | ||
![]() |
f716c5ee1e | ||
![]() |
ed496a41fb | ||
![]() |
06a77502bc | ||
![]() |
c2187edbe9 | ||
![]() |
d85f82e171 | ||
![]() |
f7c10d0b33 | ||
![]() |
25e272fa55 | ||
![]() |
98041c803e | ||
![]() |
ee2e7d0127 | ||
![]() |
6517e78ab6 | ||
![]() |
bf43dd828a | ||
![]() |
cd009bda6b | ||
![]() |
cd8ff2e9bf |
263 changed files with 5410 additions and 2466 deletions
|
@ -71,20 +71,20 @@ dotnet_style_predefined_type_for_member_access = true:suggestion
|
||||||
|
|
||||||
# name all constant fields using PascalCase
|
# name all constant fields using PascalCase
|
||||||
dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion
|
dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion
|
||||||
dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields
|
dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields
|
||||||
dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style
|
dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style
|
||||||
|
|
||||||
dotnet_naming_symbols.constant_fields.applicable_kinds = field
|
dotnet_naming_symbols.constant_fields.applicable_kinds = field
|
||||||
dotnet_naming_symbols.constant_fields.required_modifiers = const
|
dotnet_naming_symbols.constant_fields.required_modifiers = const
|
||||||
|
|
||||||
dotnet_naming_style.pascal_case_style.capitalization = pascal_case
|
dotnet_naming_style.pascal_case_style.capitalization = pascal_case
|
||||||
|
|
||||||
# private static fields should have s_ prefix
|
# private static fields should have s_ prefix
|
||||||
dotnet_naming_rule.private_static_fields_should_have_prefix.severity = suggestion
|
dotnet_naming_rule.private_static_fields_should_have_prefix.severity = suggestion
|
||||||
dotnet_naming_rule.private_static_fields_should_have_prefix.symbols = private_static_fields
|
dotnet_naming_rule.private_static_fields_should_have_prefix.symbols = private_static_fields
|
||||||
dotnet_naming_rule.private_static_fields_should_have_prefix.style = private_static_prefix_style
|
dotnet_naming_rule.private_static_fields_should_have_prefix.style = private_static_prefix_style
|
||||||
|
|
||||||
dotnet_naming_symbols.private_static_fields.applicable_kinds = field
|
dotnet_naming_symbols.private_static_fields.applicable_kinds = field
|
||||||
dotnet_naming_symbols.private_static_fields.required_modifiers = static
|
dotnet_naming_symbols.private_static_fields.required_modifiers = static
|
||||||
dotnet_naming_symbols.private_static_fields.applicable_accessibilities = private
|
dotnet_naming_symbols.private_static_fields.applicable_accessibilities = private
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ dotnet_naming_style.private_static_prefix_style.capitalization = camel_case
|
||||||
|
|
||||||
# internal and private fields should be _camelCase
|
# internal and private fields should be _camelCase
|
||||||
dotnet_naming_rule.camel_case_for_private_internal_fields.severity = suggestion
|
dotnet_naming_rule.camel_case_for_private_internal_fields.severity = suggestion
|
||||||
dotnet_naming_rule.camel_case_for_private_internal_fields.symbols = private_internal_fields
|
dotnet_naming_rule.camel_case_for_private_internal_fields.symbols = private_internal_fields
|
||||||
dotnet_naming_rule.camel_case_for_private_internal_fields.style = camel_case_underscore_style
|
dotnet_naming_rule.camel_case_for_private_internal_fields.style = camel_case_underscore_style
|
||||||
|
|
||||||
dotnet_naming_symbols.private_internal_fields.applicable_kinds = field
|
dotnet_naming_symbols.private_internal_fields.applicable_kinds = field
|
||||||
|
|
|
@ -56,7 +56,7 @@ You can find the current translation status in [TRANSLATION.md](https://github.c
|
||||||
|
|
||||||
**To use this tool, you need to install Git(>=2.25.1) first.**
|
**To use this tool, you need to install Git(>=2.25.1) first.**
|
||||||
|
|
||||||
You can download the latest stable from [Releases](https://github.com/sourcegit-scm/sourcegit/releases/latest) or download workflow artifacts from [Github Actions](https://github.com/sourcegit-scm/sourcegit/actions) to try this app based on latest commits.
|
You can download the latest stable from [Releases](https://github.com/sourcegit-scm/sourcegit/releases/latest) or download workflow artifacts from [GitHub Actions](https://github.com/sourcegit-scm/sourcegit/actions) to try this app based on latest commits.
|
||||||
|
|
||||||
This software creates a folder `$"{System.Environment.SpecialFolder.ApplicationData}/SourceGit"`, which is platform-dependent, to store user settings, downloaded avatars and crash logs.
|
This software creates a folder `$"{System.Environment.SpecialFolder.ApplicationData}/SourceGit"`, which is platform-dependent, to store user settings, downloaded avatars and crash logs.
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ For **macOS** users:
|
||||||
brew tap ybeapps/homebrew-sourcegit
|
brew tap ybeapps/homebrew-sourcegit
|
||||||
brew install --cask --no-quarantine sourcegit
|
brew install --cask --no-quarantine sourcegit
|
||||||
```
|
```
|
||||||
* If you want to install `SourceGit.app` from Github Release manually, you need run following command to make sure it works:
|
* If you want to install `SourceGit.app` from GitHub Release manually, you need run following command to make sure it works:
|
||||||
```shell
|
```shell
|
||||||
sudo xattr -cr /Applications/SourceGit.app
|
sudo xattr -cr /Applications/SourceGit.app
|
||||||
```
|
```
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
# Third-Party Licenses
|
# Third-Party Licenses
|
||||||
|
|
||||||
This project incorporates components from the following third parties:
|
The project uses the following third-party libraries or assets
|
||||||
|
|
||||||
## Packages
|
## Packages
|
||||||
|
|
||||||
### AvaloniaUI
|
### AvaloniaUI
|
||||||
|
|
||||||
- **Source**: https://github.com/AvaloniaUI/Avalonia
|
- **Source**: https://github.com/AvaloniaUI/Avalonia
|
||||||
- **Version**: 11.2.5
|
- **Version**: 11.2.8
|
||||||
- **License**: MIT License
|
- **License**: MIT License
|
||||||
- **License Link**: https://github.com/AvaloniaUI/Avalonia/blob/master/licence.md
|
- **License Link**: https://github.com/AvaloniaUI/Avalonia/blob/master/licence.md
|
||||||
|
|
||||||
|
@ -35,17 +35,31 @@ This project incorporates components from the following third parties:
|
||||||
### OpenAI .NET SDK
|
### OpenAI .NET SDK
|
||||||
|
|
||||||
- **Source**: https://github.com/openai/openai-dotnet
|
- **Source**: https://github.com/openai/openai-dotnet
|
||||||
- **Version**: 2.2.0-beta2
|
- **Version**: 2.2.0-beta.4
|
||||||
- **License**: MIT License
|
- **License**: MIT License
|
||||||
- **License Link**: https://github.com/openai/openai-dotnet/blob/main/LICENSE
|
- **License Link**: https://github.com/openai/openai-dotnet/blob/main/LICENSE
|
||||||
|
|
||||||
### Azure.AI.OpenAI
|
### Azure.AI.OpenAI
|
||||||
|
|
||||||
- **Source**: https://github.com/Azure/azure-sdk-for-net
|
- **Source**: https://github.com/Azure/azure-sdk-for-net
|
||||||
- **Version**: 2.2.0-beta2
|
- **Version**: 2.2.0-beta.4
|
||||||
- **License**: MIT License
|
- **License**: MIT License
|
||||||
- **License Link**: https://github.com/Azure/azure-sdk-for-net/blob/main/LICENSE.txt
|
- **License Link**: https://github.com/Azure/azure-sdk-for-net/blob/main/LICENSE.txt
|
||||||
|
|
||||||
|
### BitMiracle.LibTiff.NET
|
||||||
|
|
||||||
|
- **Source**: https://github.com/BitMiracle/libtiff.net
|
||||||
|
- **Version**: 2.4.660
|
||||||
|
- **License**: New BSD License
|
||||||
|
- **License Link**: https://github.com/BitMiracle/libtiff.net/blob/master/license.txt
|
||||||
|
|
||||||
|
### Pfim
|
||||||
|
|
||||||
|
- **Source**: https://github.com/nickbabcock/Pfim
|
||||||
|
- **Version**: 0.11.3
|
||||||
|
- **License**: MIT License
|
||||||
|
- **License Link**: https://github.com/nickbabcock/Pfim/blob/master/LICENSE.txt
|
||||||
|
|
||||||
## Fonts
|
## Fonts
|
||||||
|
|
||||||
### JetBrainsMono
|
### JetBrainsMono
|
||||||
|
|
263
TRANSLATION.md
263
TRANSLATION.md
|
@ -6,49 +6,19 @@ This document shows the translation status of each locale file in the repository
|
||||||
|
|
||||||
### 
|
### 
|
||||||
|
|
||||||
### 
|
### 
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Missing keys in de_DE.axaml</summary>
|
|
||||||
|
|
||||||
- Text.BranchCM.ResetToSelectedCommit
|
|
||||||
- Text.CommitDetail.Changes.Count
|
|
||||||
- Text.CreateBranch.OverwriteExisting
|
|
||||||
- Text.DeinitSubmodule
|
|
||||||
- Text.DeinitSubmodule.Force
|
|
||||||
- Text.DeinitSubmodule.Path
|
|
||||||
- Text.Diff.Submodule.Deleted
|
|
||||||
- Text.GitFlow.FinishWithPush
|
|
||||||
- Text.GitFlow.FinishWithSquash
|
|
||||||
- Text.Hotkeys.Global.SwitchWorkspace
|
|
||||||
- Text.Hotkeys.Global.SwitchTab
|
|
||||||
- Text.Hotkeys.TextEditor.OpenExternalMergeTool
|
|
||||||
- Text.Launcher.Workspaces
|
|
||||||
- Text.Launcher.Pages
|
|
||||||
- Text.Pull.RecurseSubmodules
|
|
||||||
- Text.Repository.ClearStashes
|
|
||||||
- Text.Repository.ShowSubmodulesAsTree
|
|
||||||
- Text.ResetWithoutCheckout
|
|
||||||
- Text.ResetWithoutCheckout.MoveTo
|
|
||||||
- Text.ResetWithoutCheckout.Target
|
|
||||||
- Text.Submodule.Deinit
|
|
||||||
- Text.Submodule.Status
|
|
||||||
- Text.Submodule.Status.Modified
|
|
||||||
- Text.Submodule.Status.NotInited
|
|
||||||
- Text.Submodule.Status.RevisionChanged
|
|
||||||
- Text.Submodule.Status.Unmerged
|
|
||||||
- Text.Submodule.URL
|
|
||||||
- Text.WorkingCopy.ResetAuthor
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
### 
|
### 
|
||||||
|
|
||||||
### 
|
### 
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Missing keys in fr_FR.axaml</summary>
|
<summary>Missing keys in fr_FR.axaml</summary>
|
||||||
|
|
||||||
|
- Text.AddToIgnore
|
||||||
|
- Text.AddToIgnore.Pattern
|
||||||
|
- Text.AddToIgnore.Storage
|
||||||
|
- Text.Avatar.Load
|
||||||
- Text.Bisect
|
- Text.Bisect
|
||||||
- Text.Bisect.Abort
|
- Text.Bisect.Abort
|
||||||
- Text.Bisect.Bad
|
- Text.Bisect.Bad
|
||||||
|
@ -58,12 +28,30 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.Bisect.WaitingForRange
|
- Text.Bisect.WaitingForRange
|
||||||
- Text.BranchCM.ResetToSelectedCommit
|
- Text.BranchCM.ResetToSelectedCommit
|
||||||
- Text.Checkout.RecurseSubmodules
|
- Text.Checkout.RecurseSubmodules
|
||||||
|
- Text.Checkout.WarnLostCommits
|
||||||
|
- Text.Checkout.WithFastForward
|
||||||
|
- Text.Checkout.WithFastForward.Upstream
|
||||||
- Text.CommitCM.CopyAuthor
|
- Text.CommitCM.CopyAuthor
|
||||||
- Text.CommitCM.CopyCommitter
|
- Text.CommitCM.CopyCommitter
|
||||||
- Text.CommitCM.CopySubject
|
- Text.CommitCM.CopySubject
|
||||||
|
- Text.CommitCM.PushRevision
|
||||||
- Text.CommitDetail.Changes.Count
|
- Text.CommitDetail.Changes.Count
|
||||||
- Text.CommitMessageTextBox.SubjectCount
|
- Text.CommitMessageTextBox.SubjectCount
|
||||||
|
- Text.Configure.CustomAction.Arguments.Tip
|
||||||
|
- Text.Configure.CustomAction.InputControls
|
||||||
|
- Text.Configure.CustomAction.InputControls.Edit
|
||||||
|
- Text.Configure.CustomAction.InputControls.Tip
|
||||||
|
- Text.Configure.CustomAction.Scope.Tag
|
||||||
- Text.Configure.Git.PreferredMergeMode
|
- Text.Configure.Git.PreferredMergeMode
|
||||||
|
- Text.ConfigureCustomActionControls
|
||||||
|
- Text.ConfigureCustomActionControls.CheckedValue
|
||||||
|
- Text.ConfigureCustomActionControls.CheckedValue.Tip
|
||||||
|
- Text.ConfigureCustomActionControls.Description
|
||||||
|
- Text.ConfigureCustomActionControls.Description.Tip
|
||||||
|
- Text.ConfigureCustomActionControls.DefaultValue
|
||||||
|
- Text.ConfigureCustomActionControls.IsFolder
|
||||||
|
- Text.ConfigureCustomActionControls.Label
|
||||||
|
- Text.ConfigureCustomActionControls.Type
|
||||||
- Text.ConfirmEmptyCommit.Continue
|
- Text.ConfirmEmptyCommit.Continue
|
||||||
- Text.ConfirmEmptyCommit.NoLocalChanges
|
- Text.ConfirmEmptyCommit.NoLocalChanges
|
||||||
- Text.ConfirmEmptyCommit.StageAllThenCommit
|
- Text.ConfirmEmptyCommit.StageAllThenCommit
|
||||||
|
@ -73,6 +61,8 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.DeinitSubmodule.Force
|
- Text.DeinitSubmodule.Force
|
||||||
- Text.DeinitSubmodule.Path
|
- Text.DeinitSubmodule.Path
|
||||||
- Text.Diff.Submodule.Deleted
|
- Text.Diff.Submodule.Deleted
|
||||||
|
- Text.ExecuteCustomAction.Target
|
||||||
|
- Text.ExecuteCustomAction.Repository
|
||||||
- Text.GitFlow.FinishWithPush
|
- Text.GitFlow.FinishWithPush
|
||||||
- Text.GitFlow.FinishWithSquash
|
- Text.GitFlow.FinishWithSquash
|
||||||
- Text.Hotkeys.Global.SwitchWorkspace
|
- Text.Hotkeys.Global.SwitchWorkspace
|
||||||
|
@ -80,19 +70,25 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.Hotkeys.TextEditor.OpenExternalMergeTool
|
- Text.Hotkeys.TextEditor.OpenExternalMergeTool
|
||||||
- Text.Launcher.Workspaces
|
- Text.Launcher.Workspaces
|
||||||
- Text.Launcher.Pages
|
- Text.Launcher.Pages
|
||||||
|
- Text.Merge.Edit
|
||||||
- Text.Preferences.Git.IgnoreCRAtEOLInDiff
|
- Text.Preferences.Git.IgnoreCRAtEOLInDiff
|
||||||
- Text.Pull.RecurseSubmodules
|
- Text.Pull.RecurseSubmodules
|
||||||
|
- Text.Push.Revision
|
||||||
|
- Text.Push.Revision.Title
|
||||||
- Text.Repository.BranchSort
|
- Text.Repository.BranchSort
|
||||||
- Text.Repository.BranchSort.ByCommitterDate
|
- Text.Repository.BranchSort.ByCommitterDate
|
||||||
- Text.Repository.BranchSort.ByName
|
- Text.Repository.BranchSort.ByName
|
||||||
- Text.Repository.ClearStashes
|
- Text.Repository.ClearStashes
|
||||||
- Text.Repository.Search.ByContent
|
- Text.Repository.Search.ByContent
|
||||||
|
- Text.Repository.Search.ByPath
|
||||||
- Text.Repository.ShowSubmodulesAsTree
|
- Text.Repository.ShowSubmodulesAsTree
|
||||||
- Text.Repository.ViewLogs
|
- Text.Repository.ViewLogs
|
||||||
- Text.Repository.Visit
|
- Text.Repository.Visit
|
||||||
- Text.ResetWithoutCheckout
|
- Text.ResetWithoutCheckout
|
||||||
- Text.ResetWithoutCheckout.MoveTo
|
- Text.ResetWithoutCheckout.MoveTo
|
||||||
- Text.ResetWithoutCheckout.Target
|
- Text.ResetWithoutCheckout.Target
|
||||||
|
- Text.Stash.Mode
|
||||||
|
- Text.StashCM.CopyMessage
|
||||||
- Text.Submodule.Deinit
|
- Text.Submodule.Deinit
|
||||||
- Text.Submodule.Status
|
- Text.Submodule.Status
|
||||||
- Text.Submodule.Status.Modified
|
- Text.Submodule.Status.Modified
|
||||||
|
@ -100,10 +96,13 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.Submodule.Status.RevisionChanged
|
- Text.Submodule.Status.RevisionChanged
|
||||||
- Text.Submodule.Status.Unmerged
|
- Text.Submodule.Status.Unmerged
|
||||||
- Text.Submodule.URL
|
- Text.Submodule.URL
|
||||||
|
- Text.TagCM.CustomAction
|
||||||
- Text.ViewLogs
|
- Text.ViewLogs
|
||||||
- Text.ViewLogs.Clear
|
- Text.ViewLogs.Clear
|
||||||
- Text.ViewLogs.CopyLog
|
- Text.ViewLogs.CopyLog
|
||||||
- Text.ViewLogs.Delete
|
- Text.ViewLogs.Delete
|
||||||
|
- Text.WorkingCopy.AddToGitIgnore.InFolder
|
||||||
|
- Text.WorkingCopy.ConfirmCommitWithDetachedHead
|
||||||
- Text.WorkingCopy.ConfirmCommitWithFilter
|
- Text.WorkingCopy.ConfirmCommitWithFilter
|
||||||
- Text.WorkingCopy.Conflicts.OpenExternalMergeTool
|
- Text.WorkingCopy.Conflicts.OpenExternalMergeTool
|
||||||
- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts
|
- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts
|
||||||
|
@ -113,37 +112,74 @@ This document shows the translation status of each locale file in the repository
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### 
|
### 
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Missing keys in it_IT.axaml</summary>
|
<summary>Missing keys in it_IT.axaml</summary>
|
||||||
|
|
||||||
|
- Text.AddToIgnore
|
||||||
|
- Text.AddToIgnore.Pattern
|
||||||
|
- Text.AddToIgnore.Storage
|
||||||
|
- Text.Avatar.Load
|
||||||
- Text.BranchCM.ResetToSelectedCommit
|
- Text.BranchCM.ResetToSelectedCommit
|
||||||
|
- Text.Checkout.WarnLostCommits
|
||||||
|
- Text.Checkout.WithFastForward
|
||||||
|
- Text.Checkout.WithFastForward.Upstream
|
||||||
|
- Text.CommitCM.PushRevision
|
||||||
- Text.CommitDetail.Changes.Count
|
- Text.CommitDetail.Changes.Count
|
||||||
|
- Text.Configure.CustomAction.Arguments.Tip
|
||||||
|
- Text.Configure.CustomAction.InputControls
|
||||||
|
- Text.Configure.CustomAction.InputControls.Edit
|
||||||
|
- Text.Configure.CustomAction.InputControls.Tip
|
||||||
|
- Text.Configure.CustomAction.Scope.Tag
|
||||||
|
- Text.ConfigureCustomActionControls
|
||||||
|
- Text.ConfigureCustomActionControls.CheckedValue
|
||||||
|
- Text.ConfigureCustomActionControls.CheckedValue.Tip
|
||||||
|
- Text.ConfigureCustomActionControls.Description
|
||||||
|
- Text.ConfigureCustomActionControls.Description.Tip
|
||||||
|
- Text.ConfigureCustomActionControls.DefaultValue
|
||||||
|
- Text.ConfigureCustomActionControls.IsFolder
|
||||||
|
- Text.ConfigureCustomActionControls.Label
|
||||||
|
- Text.ConfigureCustomActionControls.Type
|
||||||
- Text.CreateBranch.OverwriteExisting
|
- Text.CreateBranch.OverwriteExisting
|
||||||
- Text.DeinitSubmodule
|
- Text.DeinitSubmodule
|
||||||
- Text.DeinitSubmodule.Force
|
- Text.DeinitSubmodule.Force
|
||||||
- Text.DeinitSubmodule.Path
|
- Text.DeinitSubmodule.Path
|
||||||
- Text.Diff.Submodule.Deleted
|
- Text.Diff.Submodule.Deleted
|
||||||
|
- Text.ExecuteCustomAction.Target
|
||||||
|
- Text.ExecuteCustomAction.Repository
|
||||||
- Text.Hotkeys.Global.SwitchWorkspace
|
- Text.Hotkeys.Global.SwitchWorkspace
|
||||||
- Text.Hotkeys.Global.SwitchTab
|
- Text.Hotkeys.Global.SwitchTab
|
||||||
- Text.Launcher.Workspaces
|
- Text.Launcher.Workspaces
|
||||||
- Text.Launcher.Pages
|
- Text.Launcher.Pages
|
||||||
|
- Text.Merge.Edit
|
||||||
- Text.Pull.RecurseSubmodules
|
- Text.Pull.RecurseSubmodules
|
||||||
|
- Text.Push.Revision
|
||||||
|
- Text.Push.Revision.Title
|
||||||
- Text.Repository.ClearStashes
|
- Text.Repository.ClearStashes
|
||||||
|
- Text.Repository.Search.ByPath
|
||||||
- Text.ResetWithoutCheckout
|
- Text.ResetWithoutCheckout
|
||||||
- Text.ResetWithoutCheckout.MoveTo
|
- Text.ResetWithoutCheckout.MoveTo
|
||||||
- Text.ResetWithoutCheckout.Target
|
- Text.ResetWithoutCheckout.Target
|
||||||
|
- Text.Stash.Mode
|
||||||
|
- Text.StashCM.CopyMessage
|
||||||
- Text.Submodule.Deinit
|
- Text.Submodule.Deinit
|
||||||
|
- Text.TagCM.CustomAction
|
||||||
|
- Text.WorkingCopy.AddToGitIgnore.InFolder
|
||||||
|
- Text.WorkingCopy.ConfirmCommitWithDetachedHead
|
||||||
- Text.WorkingCopy.ResetAuthor
|
- Text.WorkingCopy.ResetAuthor
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### 
|
### 
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Missing keys in ja_JP.axaml</summary>
|
<summary>Missing keys in ja_JP.axaml</summary>
|
||||||
|
|
||||||
|
- Text.AddToIgnore
|
||||||
|
- Text.AddToIgnore.Pattern
|
||||||
|
- Text.AddToIgnore.Storage
|
||||||
|
- Text.Avatar.Load
|
||||||
- Text.Bisect
|
- Text.Bisect
|
||||||
- Text.Bisect.Abort
|
- Text.Bisect.Abort
|
||||||
- Text.Bisect.Bad
|
- Text.Bisect.Bad
|
||||||
|
@ -154,12 +190,30 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.BranchCM.CompareWithCurrent
|
- Text.BranchCM.CompareWithCurrent
|
||||||
- Text.BranchCM.ResetToSelectedCommit
|
- Text.BranchCM.ResetToSelectedCommit
|
||||||
- Text.Checkout.RecurseSubmodules
|
- Text.Checkout.RecurseSubmodules
|
||||||
|
- Text.Checkout.WarnLostCommits
|
||||||
|
- Text.Checkout.WithFastForward
|
||||||
|
- Text.Checkout.WithFastForward.Upstream
|
||||||
- Text.CommitCM.CopyAuthor
|
- Text.CommitCM.CopyAuthor
|
||||||
- Text.CommitCM.CopyCommitter
|
- Text.CommitCM.CopyCommitter
|
||||||
- Text.CommitCM.CopySubject
|
- Text.CommitCM.CopySubject
|
||||||
|
- Text.CommitCM.PushRevision
|
||||||
- Text.CommitDetail.Changes.Count
|
- Text.CommitDetail.Changes.Count
|
||||||
- Text.CommitMessageTextBox.SubjectCount
|
- Text.CommitMessageTextBox.SubjectCount
|
||||||
|
- Text.Configure.CustomAction.Arguments.Tip
|
||||||
|
- Text.Configure.CustomAction.InputControls
|
||||||
|
- Text.Configure.CustomAction.InputControls.Edit
|
||||||
|
- Text.Configure.CustomAction.InputControls.Tip
|
||||||
|
- Text.Configure.CustomAction.Scope.Tag
|
||||||
- Text.Configure.Git.PreferredMergeMode
|
- Text.Configure.Git.PreferredMergeMode
|
||||||
|
- Text.ConfigureCustomActionControls
|
||||||
|
- Text.ConfigureCustomActionControls.CheckedValue
|
||||||
|
- Text.ConfigureCustomActionControls.CheckedValue.Tip
|
||||||
|
- Text.ConfigureCustomActionControls.Description
|
||||||
|
- Text.ConfigureCustomActionControls.Description.Tip
|
||||||
|
- Text.ConfigureCustomActionControls.DefaultValue
|
||||||
|
- Text.ConfigureCustomActionControls.IsFolder
|
||||||
|
- Text.ConfigureCustomActionControls.Label
|
||||||
|
- Text.ConfigureCustomActionControls.Type
|
||||||
- Text.ConfirmEmptyCommit.Continue
|
- Text.ConfirmEmptyCommit.Continue
|
||||||
- Text.ConfirmEmptyCommit.NoLocalChanges
|
- Text.ConfirmEmptyCommit.NoLocalChanges
|
||||||
- Text.ConfirmEmptyCommit.StageAllThenCommit
|
- Text.ConfirmEmptyCommit.StageAllThenCommit
|
||||||
|
@ -169,6 +223,8 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.DeinitSubmodule.Force
|
- Text.DeinitSubmodule.Force
|
||||||
- Text.DeinitSubmodule.Path
|
- Text.DeinitSubmodule.Path
|
||||||
- Text.Diff.Submodule.Deleted
|
- Text.Diff.Submodule.Deleted
|
||||||
|
- Text.ExecuteCustomAction.Target
|
||||||
|
- Text.ExecuteCustomAction.Repository
|
||||||
- Text.GitFlow.FinishWithPush
|
- Text.GitFlow.FinishWithPush
|
||||||
- Text.GitFlow.FinishWithSquash
|
- Text.GitFlow.FinishWithSquash
|
||||||
- Text.Hotkeys.Global.SwitchWorkspace
|
- Text.Hotkeys.Global.SwitchWorkspace
|
||||||
|
@ -176,21 +232,26 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.Hotkeys.TextEditor.OpenExternalMergeTool
|
- Text.Hotkeys.TextEditor.OpenExternalMergeTool
|
||||||
- Text.Launcher.Workspaces
|
- Text.Launcher.Workspaces
|
||||||
- Text.Launcher.Pages
|
- Text.Launcher.Pages
|
||||||
|
- Text.Merge.Edit
|
||||||
- Text.Preferences.Git.IgnoreCRAtEOLInDiff
|
- Text.Preferences.Git.IgnoreCRAtEOLInDiff
|
||||||
- Text.Pull.RecurseSubmodules
|
- Text.Pull.RecurseSubmodules
|
||||||
|
- Text.Push.Revision
|
||||||
|
- Text.Push.Revision.Title
|
||||||
- Text.Repository.BranchSort
|
- Text.Repository.BranchSort
|
||||||
- Text.Repository.BranchSort.ByCommitterDate
|
- Text.Repository.BranchSort.ByCommitterDate
|
||||||
- Text.Repository.BranchSort.ByName
|
- Text.Repository.BranchSort.ByName
|
||||||
- Text.Repository.ClearStashes
|
- Text.Repository.ClearStashes
|
||||||
- Text.Repository.FilterCommits
|
- Text.Repository.FilterCommits
|
||||||
- Text.Repository.Search.ByContent
|
- Text.Repository.Search.ByContent
|
||||||
|
- Text.Repository.Search.ByPath
|
||||||
- Text.Repository.ShowSubmodulesAsTree
|
- Text.Repository.ShowSubmodulesAsTree
|
||||||
- Text.Repository.Tags.OrderByNameDes
|
|
||||||
- Text.Repository.ViewLogs
|
- Text.Repository.ViewLogs
|
||||||
- Text.Repository.Visit
|
- Text.Repository.Visit
|
||||||
- Text.ResetWithoutCheckout
|
- Text.ResetWithoutCheckout
|
||||||
- Text.ResetWithoutCheckout.MoveTo
|
- Text.ResetWithoutCheckout.MoveTo
|
||||||
- Text.ResetWithoutCheckout.Target
|
- Text.ResetWithoutCheckout.Target
|
||||||
|
- Text.Stash.Mode
|
||||||
|
- Text.StashCM.CopyMessage
|
||||||
- Text.Submodule.Deinit
|
- Text.Submodule.Deinit
|
||||||
- Text.Submodule.Status
|
- Text.Submodule.Status
|
||||||
- Text.Submodule.Status.Modified
|
- Text.Submodule.Status.Modified
|
||||||
|
@ -198,10 +259,13 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.Submodule.Status.RevisionChanged
|
- Text.Submodule.Status.RevisionChanged
|
||||||
- Text.Submodule.Status.Unmerged
|
- Text.Submodule.Status.Unmerged
|
||||||
- Text.Submodule.URL
|
- Text.Submodule.URL
|
||||||
|
- Text.TagCM.CustomAction
|
||||||
- Text.ViewLogs
|
- Text.ViewLogs
|
||||||
- Text.ViewLogs.Clear
|
- Text.ViewLogs.Clear
|
||||||
- Text.ViewLogs.CopyLog
|
- Text.ViewLogs.CopyLog
|
||||||
- Text.ViewLogs.Delete
|
- Text.ViewLogs.Delete
|
||||||
|
- Text.WorkingCopy.AddToGitIgnore.InFolder
|
||||||
|
- Text.WorkingCopy.ConfirmCommitWithDetachedHead
|
||||||
- Text.WorkingCopy.ConfirmCommitWithFilter
|
- Text.WorkingCopy.ConfirmCommitWithFilter
|
||||||
- Text.WorkingCopy.Conflicts.OpenExternalMergeTool
|
- Text.WorkingCopy.Conflicts.OpenExternalMergeTool
|
||||||
- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts
|
- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts
|
||||||
|
@ -211,17 +275,21 @@ This document shows the translation status of each locale file in the repository
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### 
|
### 
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Missing keys in pt_BR.axaml</summary>
|
<summary>Missing keys in pt_BR.axaml</summary>
|
||||||
|
|
||||||
|
- Text.AddToIgnore
|
||||||
|
- Text.AddToIgnore.Pattern
|
||||||
|
- Text.AddToIgnore.Storage
|
||||||
- Text.AIAssistant.Regen
|
- Text.AIAssistant.Regen
|
||||||
- Text.AIAssistant.Use
|
- Text.AIAssistant.Use
|
||||||
- Text.ApplyStash
|
- Text.ApplyStash
|
||||||
- Text.ApplyStash.DropAfterApply
|
- Text.ApplyStash.DropAfterApply
|
||||||
- Text.ApplyStash.RestoreIndex
|
- Text.ApplyStash.RestoreIndex
|
||||||
- Text.ApplyStash.Stash
|
- Text.ApplyStash.Stash
|
||||||
|
- Text.Avatar.Load
|
||||||
- Text.Bisect
|
- Text.Bisect
|
||||||
- Text.Bisect.Abort
|
- Text.Bisect.Abort
|
||||||
- Text.Bisect.Bad
|
- Text.Bisect.Bad
|
||||||
|
@ -234,21 +302,39 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.BranchCM.ResetToSelectedCommit
|
- Text.BranchCM.ResetToSelectedCommit
|
||||||
- Text.BranchUpstreamInvalid
|
- Text.BranchUpstreamInvalid
|
||||||
- Text.Checkout.RecurseSubmodules
|
- Text.Checkout.RecurseSubmodules
|
||||||
|
- Text.Checkout.WarnLostCommits
|
||||||
|
- Text.Checkout.WithFastForward
|
||||||
|
- Text.Checkout.WithFastForward.Upstream
|
||||||
- Text.Clone.RecurseSubmodules
|
- Text.Clone.RecurseSubmodules
|
||||||
- Text.CommitCM.CopyAuthor
|
- Text.CommitCM.CopyAuthor
|
||||||
- Text.CommitCM.CopyCommitter
|
- Text.CommitCM.CopyCommitter
|
||||||
- Text.CommitCM.CopySubject
|
- Text.CommitCM.CopySubject
|
||||||
- Text.CommitCM.Merge
|
- Text.CommitCM.Merge
|
||||||
- Text.CommitCM.MergeMultiple
|
- Text.CommitCM.MergeMultiple
|
||||||
|
- Text.CommitCM.PushRevision
|
||||||
- Text.CommitDetail.Changes.Count
|
- Text.CommitDetail.Changes.Count
|
||||||
- Text.CommitDetail.Files.Search
|
- Text.CommitDetail.Files.Search
|
||||||
- Text.CommitDetail.Info.Children
|
- Text.CommitDetail.Info.Children
|
||||||
- Text.CommitMessageTextBox.SubjectCount
|
- Text.CommitMessageTextBox.SubjectCount
|
||||||
|
- Text.Configure.CustomAction.Arguments.Tip
|
||||||
|
- Text.Configure.CustomAction.InputControls
|
||||||
|
- Text.Configure.CustomAction.InputControls.Edit
|
||||||
|
- Text.Configure.CustomAction.InputControls.Tip
|
||||||
- Text.Configure.CustomAction.Scope.Branch
|
- Text.Configure.CustomAction.Scope.Branch
|
||||||
|
- Text.Configure.CustomAction.Scope.Tag
|
||||||
- Text.Configure.CustomAction.WaitForExit
|
- Text.Configure.CustomAction.WaitForExit
|
||||||
- Text.Configure.Git.PreferredMergeMode
|
- Text.Configure.Git.PreferredMergeMode
|
||||||
- Text.Configure.IssueTracker.AddSampleGiteeIssue
|
- Text.Configure.IssueTracker.AddSampleGiteeIssue
|
||||||
- Text.Configure.IssueTracker.AddSampleGiteePullRequest
|
- Text.Configure.IssueTracker.AddSampleGiteePullRequest
|
||||||
|
- Text.ConfigureCustomActionControls
|
||||||
|
- Text.ConfigureCustomActionControls.CheckedValue
|
||||||
|
- Text.ConfigureCustomActionControls.CheckedValue.Tip
|
||||||
|
- Text.ConfigureCustomActionControls.Description
|
||||||
|
- Text.ConfigureCustomActionControls.Description.Tip
|
||||||
|
- Text.ConfigureCustomActionControls.DefaultValue
|
||||||
|
- Text.ConfigureCustomActionControls.IsFolder
|
||||||
|
- Text.ConfigureCustomActionControls.Label
|
||||||
|
- Text.ConfigureCustomActionControls.Type
|
||||||
- Text.ConfirmEmptyCommit.Continue
|
- Text.ConfirmEmptyCommit.Continue
|
||||||
- Text.ConfirmEmptyCommit.NoLocalChanges
|
- Text.ConfirmEmptyCommit.NoLocalChanges
|
||||||
- Text.ConfirmEmptyCommit.StageAllThenCommit
|
- Text.ConfirmEmptyCommit.StageAllThenCommit
|
||||||
|
@ -266,6 +352,8 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.Diff.Last
|
- Text.Diff.Last
|
||||||
- Text.Diff.Submodule.Deleted
|
- Text.Diff.Submodule.Deleted
|
||||||
- Text.Diff.UseBlockNavigation
|
- Text.Diff.UseBlockNavigation
|
||||||
|
- Text.ExecuteCustomAction.Target
|
||||||
|
- Text.ExecuteCustomAction.Repository
|
||||||
- Text.Fetch.Force
|
- Text.Fetch.Force
|
||||||
- Text.FileCM.ResolveUsing
|
- Text.FileCM.ResolveUsing
|
||||||
- Text.GitFlow.FinishWithPush
|
- Text.GitFlow.FinishWithPush
|
||||||
|
@ -280,6 +368,7 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.InProgress.Revert.Head
|
- Text.InProgress.Revert.Head
|
||||||
- Text.Launcher.Workspaces
|
- Text.Launcher.Workspaces
|
||||||
- Text.Launcher.Pages
|
- Text.Launcher.Pages
|
||||||
|
- Text.Merge.Edit
|
||||||
- Text.Merge.Source
|
- Text.Merge.Source
|
||||||
- Text.MergeMultiple
|
- Text.MergeMultiple
|
||||||
- Text.MergeMultiple.CommitChanges
|
- Text.MergeMultiple.CommitChanges
|
||||||
|
@ -293,6 +382,8 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.Preferences.Git.IgnoreCRAtEOLInDiff
|
- Text.Preferences.Git.IgnoreCRAtEOLInDiff
|
||||||
- Text.Preferences.Git.SSLVerify
|
- Text.Preferences.Git.SSLVerify
|
||||||
- Text.Pull.RecurseSubmodules
|
- Text.Pull.RecurseSubmodules
|
||||||
|
- Text.Push.Revision
|
||||||
|
- Text.Push.Revision.Title
|
||||||
- Text.Repository.BranchSort
|
- Text.Repository.BranchSort
|
||||||
- Text.Repository.BranchSort.ByCommitterDate
|
- Text.Repository.BranchSort.ByCommitterDate
|
||||||
- Text.Repository.BranchSort.ByName
|
- Text.Repository.BranchSort.ByName
|
||||||
|
@ -305,11 +396,11 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.Repository.Notifications.Clear
|
- Text.Repository.Notifications.Clear
|
||||||
- Text.Repository.OnlyHighlightCurrentBranchInHistories
|
- Text.Repository.OnlyHighlightCurrentBranchInHistories
|
||||||
- Text.Repository.Search.ByContent
|
- Text.Repository.Search.ByContent
|
||||||
|
- Text.Repository.Search.ByPath
|
||||||
- Text.Repository.ShowSubmodulesAsTree
|
- Text.Repository.ShowSubmodulesAsTree
|
||||||
- Text.Repository.Skip
|
- Text.Repository.Skip
|
||||||
- Text.Repository.Tags.OrderByCreatorDate
|
- Text.Repository.Tags.OrderByCreatorDate
|
||||||
- Text.Repository.Tags.OrderByNameAsc
|
- Text.Repository.Tags.OrderByName
|
||||||
- Text.Repository.Tags.OrderByNameDes
|
|
||||||
- Text.Repository.Tags.Sort
|
- Text.Repository.Tags.Sort
|
||||||
- Text.Repository.UseRelativeTimeInHistories
|
- Text.Repository.UseRelativeTimeInHistories
|
||||||
- Text.Repository.ViewLogs
|
- Text.Repository.ViewLogs
|
||||||
|
@ -322,8 +413,8 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.SetUpstream.Unset
|
- Text.SetUpstream.Unset
|
||||||
- Text.SetUpstream.Upstream
|
- Text.SetUpstream.Upstream
|
||||||
- Text.SHALinkCM.NavigateTo
|
- Text.SHALinkCM.NavigateTo
|
||||||
- Text.Stash.AutoRestore
|
- Text.Stash.Mode
|
||||||
- Text.Stash.AutoRestore.Tip
|
- Text.StashCM.CopyMessage
|
||||||
- Text.StashCM.SaveAsPatch
|
- Text.StashCM.SaveAsPatch
|
||||||
- Text.Submodule.Deinit
|
- Text.Submodule.Deinit
|
||||||
- Text.Submodule.Status
|
- Text.Submodule.Status
|
||||||
|
@ -332,11 +423,14 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.Submodule.Status.RevisionChanged
|
- Text.Submodule.Status.RevisionChanged
|
||||||
- Text.Submodule.Status.Unmerged
|
- Text.Submodule.Status.Unmerged
|
||||||
- Text.Submodule.URL
|
- Text.Submodule.URL
|
||||||
|
- Text.TagCM.CustomAction
|
||||||
- Text.ViewLogs
|
- Text.ViewLogs
|
||||||
- Text.ViewLogs.Clear
|
- Text.ViewLogs.Clear
|
||||||
- Text.ViewLogs.CopyLog
|
- Text.ViewLogs.CopyLog
|
||||||
- Text.ViewLogs.Delete
|
- Text.ViewLogs.Delete
|
||||||
|
- Text.WorkingCopy.AddToGitIgnore.InFolder
|
||||||
- Text.WorkingCopy.CommitToEdit
|
- Text.WorkingCopy.CommitToEdit
|
||||||
|
- Text.WorkingCopy.ConfirmCommitWithDetachedHead
|
||||||
- Text.WorkingCopy.ConfirmCommitWithFilter
|
- Text.WorkingCopy.ConfirmCommitWithFilter
|
||||||
- Text.WorkingCopy.Conflicts.OpenExternalMergeTool
|
- Text.WorkingCopy.Conflicts.OpenExternalMergeTool
|
||||||
- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts
|
- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts
|
||||||
|
@ -347,22 +441,17 @@ This document shows the translation status of each locale file in the repository
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### 
|
### 
|
||||||
|
|
||||||
<details>
|
### 
|
||||||
<summary>Missing keys in ru_RU.axaml</summary>
|
|
||||||
|
|
||||||
- Text.BranchCM.CompareWithCurrent
|
|
||||||
- Text.Repository.ClearStashes
|
|
||||||
- Text.WorkingCopy.ResetAuthor
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
### 
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Missing keys in ta_IN.axaml</summary>
|
<summary>Missing keys in ta_IN.axaml</summary>
|
||||||
|
|
||||||
|
- Text.AddToIgnore
|
||||||
|
- Text.AddToIgnore.Pattern
|
||||||
|
- Text.AddToIgnore.Storage
|
||||||
|
- Text.Avatar.Load
|
||||||
- Text.Bisect
|
- Text.Bisect
|
||||||
- Text.Bisect.Abort
|
- Text.Bisect.Abort
|
||||||
- Text.Bisect.Bad
|
- Text.Bisect.Bad
|
||||||
|
@ -373,12 +462,30 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.BranchCM.CompareWithCurrent
|
- Text.BranchCM.CompareWithCurrent
|
||||||
- Text.BranchCM.ResetToSelectedCommit
|
- Text.BranchCM.ResetToSelectedCommit
|
||||||
- Text.Checkout.RecurseSubmodules
|
- Text.Checkout.RecurseSubmodules
|
||||||
|
- Text.Checkout.WarnLostCommits
|
||||||
|
- Text.Checkout.WithFastForward
|
||||||
|
- Text.Checkout.WithFastForward.Upstream
|
||||||
- Text.CommitCM.CopyAuthor
|
- Text.CommitCM.CopyAuthor
|
||||||
- Text.CommitCM.CopyCommitter
|
- Text.CommitCM.CopyCommitter
|
||||||
- Text.CommitCM.CopySubject
|
- Text.CommitCM.CopySubject
|
||||||
|
- Text.CommitCM.PushRevision
|
||||||
- Text.CommitDetail.Changes.Count
|
- Text.CommitDetail.Changes.Count
|
||||||
- Text.CommitMessageTextBox.SubjectCount
|
- Text.CommitMessageTextBox.SubjectCount
|
||||||
|
- Text.Configure.CustomAction.Arguments.Tip
|
||||||
|
- Text.Configure.CustomAction.InputControls
|
||||||
|
- Text.Configure.CustomAction.InputControls.Edit
|
||||||
|
- Text.Configure.CustomAction.InputControls.Tip
|
||||||
|
- Text.Configure.CustomAction.Scope.Tag
|
||||||
- Text.Configure.Git.PreferredMergeMode
|
- Text.Configure.Git.PreferredMergeMode
|
||||||
|
- Text.ConfigureCustomActionControls
|
||||||
|
- Text.ConfigureCustomActionControls.CheckedValue
|
||||||
|
- Text.ConfigureCustomActionControls.CheckedValue.Tip
|
||||||
|
- Text.ConfigureCustomActionControls.Description
|
||||||
|
- Text.ConfigureCustomActionControls.Description.Tip
|
||||||
|
- Text.ConfigureCustomActionControls.DefaultValue
|
||||||
|
- Text.ConfigureCustomActionControls.IsFolder
|
||||||
|
- Text.ConfigureCustomActionControls.Label
|
||||||
|
- Text.ConfigureCustomActionControls.Type
|
||||||
- Text.ConfirmEmptyCommit.Continue
|
- Text.ConfirmEmptyCommit.Continue
|
||||||
- Text.ConfirmEmptyCommit.NoLocalChanges
|
- Text.ConfirmEmptyCommit.NoLocalChanges
|
||||||
- Text.ConfirmEmptyCommit.StageAllThenCommit
|
- Text.ConfirmEmptyCommit.StageAllThenCommit
|
||||||
|
@ -388,6 +495,8 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.DeinitSubmodule.Force
|
- Text.DeinitSubmodule.Force
|
||||||
- Text.DeinitSubmodule.Path
|
- Text.DeinitSubmodule.Path
|
||||||
- Text.Diff.Submodule.Deleted
|
- Text.Diff.Submodule.Deleted
|
||||||
|
- Text.ExecuteCustomAction.Target
|
||||||
|
- Text.ExecuteCustomAction.Repository
|
||||||
- Text.GitFlow.FinishWithPush
|
- Text.GitFlow.FinishWithPush
|
||||||
- Text.GitFlow.FinishWithSquash
|
- Text.GitFlow.FinishWithSquash
|
||||||
- Text.Hotkeys.Global.SwitchWorkspace
|
- Text.Hotkeys.Global.SwitchWorkspace
|
||||||
|
@ -395,19 +504,25 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.Hotkeys.TextEditor.OpenExternalMergeTool
|
- Text.Hotkeys.TextEditor.OpenExternalMergeTool
|
||||||
- Text.Launcher.Workspaces
|
- Text.Launcher.Workspaces
|
||||||
- Text.Launcher.Pages
|
- Text.Launcher.Pages
|
||||||
|
- Text.Merge.Edit
|
||||||
- Text.Preferences.Git.IgnoreCRAtEOLInDiff
|
- Text.Preferences.Git.IgnoreCRAtEOLInDiff
|
||||||
- Text.Pull.RecurseSubmodules
|
- Text.Pull.RecurseSubmodules
|
||||||
|
- Text.Push.Revision
|
||||||
|
- Text.Push.Revision.Title
|
||||||
- Text.Repository.BranchSort
|
- Text.Repository.BranchSort
|
||||||
- Text.Repository.BranchSort.ByCommitterDate
|
- Text.Repository.BranchSort.ByCommitterDate
|
||||||
- Text.Repository.BranchSort.ByName
|
- Text.Repository.BranchSort.ByName
|
||||||
- Text.Repository.ClearStashes
|
- Text.Repository.ClearStashes
|
||||||
- Text.Repository.Search.ByContent
|
- Text.Repository.Search.ByContent
|
||||||
|
- Text.Repository.Search.ByPath
|
||||||
- Text.Repository.ShowSubmodulesAsTree
|
- Text.Repository.ShowSubmodulesAsTree
|
||||||
- Text.Repository.ViewLogs
|
- Text.Repository.ViewLogs
|
||||||
- Text.Repository.Visit
|
- Text.Repository.Visit
|
||||||
- Text.ResetWithoutCheckout
|
- Text.ResetWithoutCheckout
|
||||||
- Text.ResetWithoutCheckout.MoveTo
|
- Text.ResetWithoutCheckout.MoveTo
|
||||||
- Text.ResetWithoutCheckout.Target
|
- Text.ResetWithoutCheckout.Target
|
||||||
|
- Text.Stash.Mode
|
||||||
|
- Text.StashCM.CopyMessage
|
||||||
- Text.Submodule.Deinit
|
- Text.Submodule.Deinit
|
||||||
- Text.Submodule.Status
|
- Text.Submodule.Status
|
||||||
- Text.Submodule.Status.Modified
|
- Text.Submodule.Status.Modified
|
||||||
|
@ -415,11 +530,14 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.Submodule.Status.RevisionChanged
|
- Text.Submodule.Status.RevisionChanged
|
||||||
- Text.Submodule.Status.Unmerged
|
- Text.Submodule.Status.Unmerged
|
||||||
- Text.Submodule.URL
|
- Text.Submodule.URL
|
||||||
|
- Text.TagCM.CustomAction
|
||||||
- Text.UpdateSubmodules.Target
|
- Text.UpdateSubmodules.Target
|
||||||
- Text.ViewLogs
|
- Text.ViewLogs
|
||||||
- Text.ViewLogs.Clear
|
- Text.ViewLogs.Clear
|
||||||
- Text.ViewLogs.CopyLog
|
- Text.ViewLogs.CopyLog
|
||||||
- Text.ViewLogs.Delete
|
- Text.ViewLogs.Delete
|
||||||
|
- Text.WorkingCopy.AddToGitIgnore.InFolder
|
||||||
|
- Text.WorkingCopy.ConfirmCommitWithDetachedHead
|
||||||
- Text.WorkingCopy.Conflicts.OpenExternalMergeTool
|
- Text.WorkingCopy.Conflicts.OpenExternalMergeTool
|
||||||
- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts
|
- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts
|
||||||
- Text.WorkingCopy.Conflicts.UseMine
|
- Text.WorkingCopy.Conflicts.UseMine
|
||||||
|
@ -428,11 +546,15 @@ This document shows the translation status of each locale file in the repository
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### 
|
### 
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Missing keys in uk_UA.axaml</summary>
|
<summary>Missing keys in uk_UA.axaml</summary>
|
||||||
|
|
||||||
|
- Text.AddToIgnore
|
||||||
|
- Text.AddToIgnore.Pattern
|
||||||
|
- Text.AddToIgnore.Storage
|
||||||
|
- Text.Avatar.Load
|
||||||
- Text.Bisect
|
- Text.Bisect
|
||||||
- Text.Bisect.Abort
|
- Text.Bisect.Abort
|
||||||
- Text.Bisect.Bad
|
- Text.Bisect.Bad
|
||||||
|
@ -442,17 +564,37 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.Bisect.WaitingForRange
|
- Text.Bisect.WaitingForRange
|
||||||
- Text.BranchCM.ResetToSelectedCommit
|
- Text.BranchCM.ResetToSelectedCommit
|
||||||
- Text.Checkout.RecurseSubmodules
|
- Text.Checkout.RecurseSubmodules
|
||||||
|
- Text.Checkout.WarnLostCommits
|
||||||
|
- Text.Checkout.WithFastForward
|
||||||
|
- Text.Checkout.WithFastForward.Upstream
|
||||||
- Text.CommitCM.CopyAuthor
|
- Text.CommitCM.CopyAuthor
|
||||||
- Text.CommitCM.CopyCommitter
|
- Text.CommitCM.CopyCommitter
|
||||||
- Text.CommitCM.CopySubject
|
- Text.CommitCM.CopySubject
|
||||||
|
- Text.CommitCM.PushRevision
|
||||||
- Text.CommitDetail.Changes.Count
|
- Text.CommitDetail.Changes.Count
|
||||||
- Text.CommitMessageTextBox.SubjectCount
|
- Text.CommitMessageTextBox.SubjectCount
|
||||||
|
- Text.Configure.CustomAction.Arguments.Tip
|
||||||
|
- Text.Configure.CustomAction.InputControls
|
||||||
|
- Text.Configure.CustomAction.InputControls.Edit
|
||||||
|
- Text.Configure.CustomAction.InputControls.Tip
|
||||||
|
- Text.Configure.CustomAction.Scope.Tag
|
||||||
|
- Text.ConfigureCustomActionControls
|
||||||
|
- Text.ConfigureCustomActionControls.CheckedValue
|
||||||
|
- Text.ConfigureCustomActionControls.CheckedValue.Tip
|
||||||
|
- Text.ConfigureCustomActionControls.Description
|
||||||
|
- Text.ConfigureCustomActionControls.Description.Tip
|
||||||
|
- Text.ConfigureCustomActionControls.DefaultValue
|
||||||
|
- Text.ConfigureCustomActionControls.IsFolder
|
||||||
|
- Text.ConfigureCustomActionControls.Label
|
||||||
|
- Text.ConfigureCustomActionControls.Type
|
||||||
- Text.ConfigureWorkspace.Name
|
- Text.ConfigureWorkspace.Name
|
||||||
- Text.CreateBranch.OverwriteExisting
|
- Text.CreateBranch.OverwriteExisting
|
||||||
- Text.DeinitSubmodule
|
- Text.DeinitSubmodule
|
||||||
- Text.DeinitSubmodule.Force
|
- Text.DeinitSubmodule.Force
|
||||||
- Text.DeinitSubmodule.Path
|
- Text.DeinitSubmodule.Path
|
||||||
- Text.Diff.Submodule.Deleted
|
- Text.Diff.Submodule.Deleted
|
||||||
|
- Text.ExecuteCustomAction.Target
|
||||||
|
- Text.ExecuteCustomAction.Repository
|
||||||
- Text.GitFlow.FinishWithPush
|
- Text.GitFlow.FinishWithPush
|
||||||
- Text.GitFlow.FinishWithSquash
|
- Text.GitFlow.FinishWithSquash
|
||||||
- Text.Hotkeys.Global.SwitchWorkspace
|
- Text.Hotkeys.Global.SwitchWorkspace
|
||||||
|
@ -460,19 +602,25 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.Hotkeys.TextEditor.OpenExternalMergeTool
|
- Text.Hotkeys.TextEditor.OpenExternalMergeTool
|
||||||
- Text.Launcher.Workspaces
|
- Text.Launcher.Workspaces
|
||||||
- Text.Launcher.Pages
|
- Text.Launcher.Pages
|
||||||
|
- Text.Merge.Edit
|
||||||
- Text.Preferences.Git.IgnoreCRAtEOLInDiff
|
- Text.Preferences.Git.IgnoreCRAtEOLInDiff
|
||||||
- Text.Pull.RecurseSubmodules
|
- Text.Pull.RecurseSubmodules
|
||||||
|
- Text.Push.Revision
|
||||||
|
- Text.Push.Revision.Title
|
||||||
- Text.Repository.BranchSort
|
- Text.Repository.BranchSort
|
||||||
- Text.Repository.BranchSort.ByCommitterDate
|
- Text.Repository.BranchSort.ByCommitterDate
|
||||||
- Text.Repository.BranchSort.ByName
|
- Text.Repository.BranchSort.ByName
|
||||||
- Text.Repository.ClearStashes
|
- Text.Repository.ClearStashes
|
||||||
- Text.Repository.Search.ByContent
|
- Text.Repository.Search.ByContent
|
||||||
|
- Text.Repository.Search.ByPath
|
||||||
- Text.Repository.ShowSubmodulesAsTree
|
- Text.Repository.ShowSubmodulesAsTree
|
||||||
- Text.Repository.ViewLogs
|
- Text.Repository.ViewLogs
|
||||||
- Text.Repository.Visit
|
- Text.Repository.Visit
|
||||||
- Text.ResetWithoutCheckout
|
- Text.ResetWithoutCheckout
|
||||||
- Text.ResetWithoutCheckout.MoveTo
|
- Text.ResetWithoutCheckout.MoveTo
|
||||||
- Text.ResetWithoutCheckout.Target
|
- Text.ResetWithoutCheckout.Target
|
||||||
|
- Text.Stash.Mode
|
||||||
|
- Text.StashCM.CopyMessage
|
||||||
- Text.Submodule.Deinit
|
- Text.Submodule.Deinit
|
||||||
- Text.Submodule.Status
|
- Text.Submodule.Status
|
||||||
- Text.Submodule.Status.Modified
|
- Text.Submodule.Status.Modified
|
||||||
|
@ -480,10 +628,13 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.Submodule.Status.RevisionChanged
|
- Text.Submodule.Status.RevisionChanged
|
||||||
- Text.Submodule.Status.Unmerged
|
- Text.Submodule.Status.Unmerged
|
||||||
- Text.Submodule.URL
|
- Text.Submodule.URL
|
||||||
|
- Text.TagCM.CustomAction
|
||||||
- Text.ViewLogs
|
- Text.ViewLogs
|
||||||
- Text.ViewLogs.Clear
|
- Text.ViewLogs.Clear
|
||||||
- Text.ViewLogs.CopyLog
|
- Text.ViewLogs.CopyLog
|
||||||
- Text.ViewLogs.Delete
|
- Text.ViewLogs.Delete
|
||||||
|
- Text.WorkingCopy.AddToGitIgnore.InFolder
|
||||||
|
- Text.WorkingCopy.ConfirmCommitWithDetachedHead
|
||||||
- Text.WorkingCopy.ResetAuthor
|
- Text.WorkingCopy.ResetAuthor
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
2025.20
|
2025.24
|
|
@ -12,4 +12,4 @@
|
||||||
dotnet publish -c Release -r $RUNTIME_IDENTIFIER -o $DESTINATION_FOLDER src/SourceGit.csproj
|
dotnet publish -c Release -r $RUNTIME_IDENTIFIER -o $DESTINATION_FOLDER src/SourceGit.csproj
|
||||||
```
|
```
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> Please replace the `$RUNTIME_IDENTIFIER` with one of `win-x64`,`win-arm64`,`linux-x64`,`linux-arm64`,`osx-x64`,`osx-arm64`, and replece the `$DESTINATION_FOLDER` with the real path that will store the output executable files.
|
> Please replace the `$RUNTIME_IDENTIFIER` with one of `win-x64`,`win-arm64`,`linux-x64`,`linux-arm64`,`osx-x64`,`osx-arm64`, and replace the `$DESTINATION_FOLDER` with the real path that will store the output executable files.
|
||||||
|
|
|
@ -95,7 +95,7 @@ namespace SourceGit
|
||||||
builder.Append($"App Start Time: {Process.GetCurrentProcess().StartTime}\n");
|
builder.Append($"App Start Time: {Process.GetCurrentProcess().StartTime}\n");
|
||||||
builder.Append($"Exception Time: {DateTime.Now}\n");
|
builder.Append($"Exception Time: {DateTime.Now}\n");
|
||||||
builder.Append($"Memory Usage: {Process.GetCurrentProcess().PrivateMemorySize64 / 1024 / 1024} MB\n");
|
builder.Append($"Memory Usage: {Process.GetCurrentProcess().PrivateMemorySize64 / 1024 / 1024} MB\n");
|
||||||
builder.Append($"---------------------------\n\n");
|
builder.Append("---------------------------\n\n");
|
||||||
builder.Append(ex);
|
builder.Append(ex);
|
||||||
|
|
||||||
var time = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss");
|
var time = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss");
|
||||||
|
@ -301,7 +301,7 @@ namespace SourceGit
|
||||||
return await clipboard.GetTextAsync();
|
return await clipboard.GetTextAsync();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return default;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string Text(string key, params object[] args)
|
public static string Text(string key, params object[] args)
|
||||||
|
@ -323,8 +323,7 @@ namespace SourceGit
|
||||||
icon.Height = 12;
|
icon.Height = 12;
|
||||||
icon.Stretch = Stretch.Uniform;
|
icon.Stretch = Stretch.Uniform;
|
||||||
|
|
||||||
var geo = Current?.FindResource(key) as StreamGeometry;
|
if (Current?.FindResource(key) is StreamGeometry geo)
|
||||||
if (geo != null)
|
|
||||||
icon.Data = geo;
|
icon.Data = geo;
|
||||||
|
|
||||||
return icon;
|
return icon;
|
||||||
|
@ -338,7 +337,7 @@ namespace SourceGit
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ViewModels.Launcher GetLauncer()
|
public static ViewModels.Launcher GetLauncher()
|
||||||
{
|
{
|
||||||
return Current is App app ? app._launcher : null;
|
return Current is App app ? app._launcher : null;
|
||||||
}
|
}
|
||||||
|
@ -522,7 +521,7 @@ namespace SourceGit
|
||||||
private bool TryLaunchAsCoreEditor(IClassicDesktopStyleApplicationLifetime desktop)
|
private bool TryLaunchAsCoreEditor(IClassicDesktopStyleApplicationLifetime desktop)
|
||||||
{
|
{
|
||||||
var args = desktop.Args;
|
var args = desktop.Args;
|
||||||
if (args == null || args.Length <= 1 || !args[0].Equals("--core-editor", StringComparison.Ordinal))
|
if (args is not { Length: > 1 } || !args[0].Equals("--core-editor", StringComparison.Ordinal))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var file = args[1];
|
var file = args[1];
|
||||||
|
@ -532,8 +531,8 @@ namespace SourceGit
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var editor = new Views.StandaloneCommitMessageEditor();
|
var editor = new Views.CommitMessageEditor();
|
||||||
editor.SetFile(file);
|
editor.AsStandalone(file);
|
||||||
desktop.MainWindow = editor;
|
desktop.MainWindow = editor;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -682,8 +681,7 @@ namespace SourceGit
|
||||||
}
|
}
|
||||||
|
|
||||||
var name = sb.ToString();
|
var name = sb.ToString();
|
||||||
var idx = name.IndexOf('#');
|
if (name.Contains('#', StringComparison.Ordinal))
|
||||||
if (idx >= 0)
|
|
||||||
{
|
{
|
||||||
if (!name.Equals("fonts:Inter#Inter", StringComparison.Ordinal) &&
|
if (!name.Equals("fonts:Inter#Inter", StringComparison.Ordinal) &&
|
||||||
!name.Equals("fonts:SourceGit#JetBrains Mono", StringComparison.Ordinal))
|
!name.Equals("fonts:SourceGit#JetBrains Mono", StringComparison.Ordinal))
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
<!-- This manifest is used on Windows only.
|
<!-- This manifest is used on Windows only.
|
||||||
Don't remove it as it might cause problems with window transparency and embeded controls.
|
Don't remove it as it might cause problems with window transparency and embedded controls.
|
||||||
For more details visit https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests -->
|
For more details visit https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests -->
|
||||||
<assemblyIdentity version="1.0.0.0" name="SourceGit.Desktop"/>
|
<assemblyIdentity version="1.0.0.0" name="SourceGit.Desktop"/>
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ namespace SourceGit.Commands
|
||||||
|
|
||||||
private void ParseLine(string line)
|
private void ParseLine(string line)
|
||||||
{
|
{
|
||||||
if (line.IndexOf('\0', StringComparison.Ordinal) >= 0)
|
if (line.Contains('\0', StringComparison.Ordinal))
|
||||||
{
|
{
|
||||||
_result.IsBinary = true;
|
_result.IsBinary = true;
|
||||||
_result.LineInfos.Clear();
|
_result.LineInfos.Clear();
|
||||||
|
@ -89,7 +89,7 @@ namespace SourceGit.Commands
|
||||||
|
|
||||||
private readonly Models.BlameData _result = new Models.BlameData();
|
private readonly Models.BlameData _result = new Models.BlameData();
|
||||||
private readonly StringBuilder _content = new StringBuilder();
|
private readonly StringBuilder _content = new StringBuilder();
|
||||||
private readonly string _dateFormat = Models.DateTimeFormat.Actived.DateOnly;
|
private readonly string _dateFormat = Models.DateTimeFormat.Active.DateOnly;
|
||||||
private string _lastSHA = string.Empty;
|
private string _lastSHA = string.Empty;
|
||||||
private bool _needUnifyCommitSHA = false;
|
private bool _needUnifyCommitSHA = false;
|
||||||
private int _minSHALen = 64;
|
private int _minSHALen = 64;
|
||||||
|
|
|
@ -9,7 +9,7 @@ namespace SourceGit.Commands
|
||||||
var cmd = new Command();
|
var cmd = new Command();
|
||||||
cmd.WorkingDirectory = repo;
|
cmd.WorkingDirectory = repo;
|
||||||
cmd.Context = repo;
|
cmd.Context = repo;
|
||||||
cmd.Args = $"branch --show-current";
|
cmd.Args = "branch --show-current";
|
||||||
return cmd.ReadToEnd().StdOut.Trim();
|
return cmd.ReadToEnd().StdOut.Trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -169,18 +169,12 @@ namespace SourceGit.Commands
|
||||||
}
|
}
|
||||||
|
|
||||||
// Force using this app as git editor.
|
// Force using this app as git editor.
|
||||||
switch (Editor)
|
start.Arguments += Editor switch
|
||||||
{
|
{
|
||||||
case EditorType.CoreEditor:
|
EditorType.CoreEditor => $"-c core.editor=\"\\\"{selfExecFile}\\\" --core-editor\" ",
|
||||||
start.Arguments += $"-c core.editor=\"\\\"{selfExecFile}\\\" --core-editor\" ";
|
EditorType.RebaseEditor => $"-c core.editor=\"\\\"{selfExecFile}\\\" --rebase-message-editor\" -c sequence.editor=\"\\\"{selfExecFile}\\\" --rebase-todo-editor\" -c rebase.abbreviateCommands=true ",
|
||||||
break;
|
_ => "-c core.editor=true ",
|
||||||
case EditorType.RebaseEditor:
|
};
|
||||||
start.Arguments += $"-c core.editor=\"\\\"{selfExecFile}\\\" --rebase-message-editor\" -c sequence.editor=\"\\\"{selfExecFile}\\\" --rebase-todo-editor\" -c rebase.abbreviateCommands=true ";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
start.Arguments += "-c core.editor=true ";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Append command args
|
// Append command args
|
||||||
start.Arguments += Args;
|
start.Arguments += Args;
|
||||||
|
@ -194,7 +188,7 @@ namespace SourceGit.Commands
|
||||||
|
|
||||||
private void HandleOutput(string line, List<string> errs)
|
private void HandleOutput(string line, List<string> errs)
|
||||||
{
|
{
|
||||||
line = line ?? string.Empty;
|
line ??= string.Empty;
|
||||||
Log?.AppendLine(line);
|
Log?.AppendLine(line);
|
||||||
|
|
||||||
// Lines to hide in error message.
|
// Lines to hide in error message.
|
||||||
|
|
|
@ -34,6 +34,6 @@ namespace SourceGit.Commands
|
||||||
return succ;
|
return succ;
|
||||||
}
|
}
|
||||||
|
|
||||||
private string _tmpFile = string.Empty;
|
private readonly string _tmpFile;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ namespace SourceGit.Commands
|
||||||
foreach (var line in lines)
|
foreach (var line in lines)
|
||||||
ParseLine(line);
|
ParseLine(line);
|
||||||
|
|
||||||
_changes.Sort((l, r) => string.Compare(l.Path, r.Path, StringComparison.Ordinal));
|
_changes.Sort((l, r) => Models.NumericSort.Compare(l.Path, r.Path));
|
||||||
return _changes;
|
return _changes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,86 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
using Avalonia.Threading;
|
|
||||||
|
|
||||||
namespace SourceGit.Commands
|
|
||||||
{
|
|
||||||
public static class ExecuteCustomAction
|
|
||||||
{
|
|
||||||
public static void Run(string repo, string file, string args)
|
|
||||||
{
|
|
||||||
var start = new ProcessStartInfo();
|
|
||||||
start.FileName = file;
|
|
||||||
start.Arguments = args;
|
|
||||||
start.UseShellExecute = false;
|
|
||||||
start.CreateNoWindow = true;
|
|
||||||
start.WorkingDirectory = repo;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Process.Start(start);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Dispatcher.UIThread.Invoke(() => App.RaiseException(repo, e.Message));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void RunAndWait(string repo, string file, string args, Models.ICommandLog log)
|
|
||||||
{
|
|
||||||
var start = new ProcessStartInfo();
|
|
||||||
start.FileName = file;
|
|
||||||
start.Arguments = args;
|
|
||||||
start.UseShellExecute = false;
|
|
||||||
start.CreateNoWindow = true;
|
|
||||||
start.RedirectStandardOutput = true;
|
|
||||||
start.RedirectStandardError = true;
|
|
||||||
start.StandardOutputEncoding = Encoding.UTF8;
|
|
||||||
start.StandardErrorEncoding = Encoding.UTF8;
|
|
||||||
start.WorkingDirectory = repo;
|
|
||||||
|
|
||||||
log?.AppendLine($"$ {file} {args}\n");
|
|
||||||
|
|
||||||
var proc = new Process() { StartInfo = start };
|
|
||||||
var builder = new StringBuilder();
|
|
||||||
|
|
||||||
proc.OutputDataReceived += (_, e) =>
|
|
||||||
{
|
|
||||||
if (e.Data != null)
|
|
||||||
log?.AppendLine(e.Data);
|
|
||||||
};
|
|
||||||
|
|
||||||
proc.ErrorDataReceived += (_, e) =>
|
|
||||||
{
|
|
||||||
if (e.Data != null)
|
|
||||||
{
|
|
||||||
log?.AppendLine(e.Data);
|
|
||||||
builder.AppendLine(e.Data);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
proc.Start();
|
|
||||||
proc.BeginOutputReadLine();
|
|
||||||
proc.BeginErrorReadLine();
|
|
||||||
proc.WaitForExit();
|
|
||||||
|
|
||||||
var exitCode = proc.ExitCode;
|
|
||||||
if (exitCode != 0)
|
|
||||||
{
|
|
||||||
var errMsg = builder.ToString().Trim();
|
|
||||||
if (!string.IsNullOrEmpty(errMsg))
|
|
||||||
Dispatcher.UIThread.Invoke(() => App.RaiseException(repo, errMsg));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Dispatcher.UIThread.Invoke(() => App.RaiseException(repo, e.Message));
|
|
||||||
}
|
|
||||||
|
|
||||||
proc.Close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
using System.IO;
|
|
||||||
|
|
||||||
namespace SourceGit.Commands
|
|
||||||
{
|
|
||||||
public static class GitIgnore
|
|
||||||
{
|
|
||||||
public static void Add(string repo, string pattern)
|
|
||||||
{
|
|
||||||
var file = Path.Combine(repo, ".gitignore");
|
|
||||||
if (!File.Exists(file))
|
|
||||||
{
|
|
||||||
File.WriteAllLines(file, [pattern]);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var org = File.ReadAllText(file);
|
|
||||||
if (!org.EndsWith('\n'))
|
|
||||||
File.AppendAllLines(file, ["", pattern]);
|
|
||||||
else
|
|
||||||
File.AppendAllLines(file, [pattern]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -10,7 +10,7 @@ namespace SourceGit.Commands
|
||||||
[GeneratedRegex(@"^(.+)\s+([\w.]+)\s+\w+:(\d+)$")]
|
[GeneratedRegex(@"^(.+)\s+([\w.]+)\s+\w+:(\d+)$")]
|
||||||
private static partial Regex REG_LOCK();
|
private static partial Regex REG_LOCK();
|
||||||
|
|
||||||
class SubCmd : Command
|
private class SubCmd : Command
|
||||||
{
|
{
|
||||||
public SubCmd(string repo, string args, Models.ICommandLog log)
|
public SubCmd(string repo, string args, Models.ICommandLog log)
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,11 +5,20 @@ namespace SourceGit.Commands
|
||||||
{
|
{
|
||||||
public class Merge : Command
|
public class Merge : Command
|
||||||
{
|
{
|
||||||
public Merge(string repo, string source, string mode)
|
public Merge(string repo, string source, string mode, bool edit)
|
||||||
{
|
{
|
||||||
WorkingDirectory = repo;
|
WorkingDirectory = repo;
|
||||||
Context = repo;
|
Context = repo;
|
||||||
Args = $"merge --progress {source} {mode}";
|
Editor = EditorType.CoreEditor;
|
||||||
|
|
||||||
|
var builder = new StringBuilder();
|
||||||
|
builder.Append("merge --progress ");
|
||||||
|
builder.Append(edit ? "--edit " : "--no-edit ");
|
||||||
|
builder.Append(source);
|
||||||
|
builder.Append(' ');
|
||||||
|
builder.Append(mode);
|
||||||
|
|
||||||
|
Args = builder.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Merge(string repo, List<string> targets, bool autoCommit, string strategy)
|
public Merge(string repo, List<string> targets, bool autoCommit, string strategy)
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace SourceGit.Commands
|
||||||
|
|
||||||
if (!File.Exists(toolPath))
|
if (!File.Exists(toolPath))
|
||||||
{
|
{
|
||||||
Dispatcher.UIThread.Post(() => App.RaiseException(repo, $"Can NOT found external merge tool in '{toolPath}'!"));
|
Dispatcher.UIThread.Post(() => App.RaiseException(repo, $"Can NOT find external merge tool in '{toolPath}'!"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ namespace SourceGit.Commands
|
||||||
|
|
||||||
if (!File.Exists(toolPath))
|
if (!File.Exists(toolPath))
|
||||||
{
|
{
|
||||||
Dispatcher.UIThread.Invoke(() => App.RaiseException(repo, $"Can NOT found external diff tool in '{toolPath}'!"));
|
Dispatcher.UIThread.Invoke(() => App.RaiseException(repo, $"Can NOT find external diff tool in '{toolPath}'!"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,16 +48,12 @@ namespace SourceGit.Commands
|
||||||
if (remoteHeads.TryGetValue(b.Upstream, out var upstreamHead))
|
if (remoteHeads.TryGetValue(b.Upstream, out var upstreamHead))
|
||||||
{
|
{
|
||||||
b.IsUpstreamGone = false;
|
b.IsUpstreamGone = false;
|
||||||
|
b.TrackStatus ??= new QueryTrackStatus(WorkingDirectory, b.Head, upstreamHead).Result();
|
||||||
if (b.TrackStatus == null)
|
|
||||||
b.TrackStatus = new QueryTrackStatus(WorkingDirectory, b.Head, upstreamHead).Result();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
b.IsUpstreamGone = true;
|
b.IsUpstreamGone = true;
|
||||||
|
b.TrackStatus ??= new Models.BranchTrackStatus();
|
||||||
if (b.TrackStatus == null)
|
|
||||||
b.TrackStatus = new Models.BranchTrackStatus();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ namespace SourceGit.Commands
|
||||||
|
|
||||||
search = argsBuilder.ToString();
|
search = argsBuilder.ToString();
|
||||||
}
|
}
|
||||||
else if (method == Models.CommitSearchMethod.ByFile)
|
else if (method == Models.CommitSearchMethod.ByPath)
|
||||||
{
|
{
|
||||||
search += $"-- \"{filter}\"";
|
search += $"-- \"{filter}\"";
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,6 +90,6 @@ namespace SourceGit.Commands
|
||||||
|
|
||||||
private List<Models.InteractiveCommit> _commits = [];
|
private List<Models.InteractiveCommit> _commits = [];
|
||||||
private Models.InteractiveCommit _current = null;
|
private Models.InteractiveCommit _current = null;
|
||||||
private string _boundary = "";
|
private readonly string _boundary;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,5 +35,39 @@ namespace SourceGit.Commands
|
||||||
|
|
||||||
return stream;
|
return stream;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Stream FromLFS(string repo, string oid, long size)
|
||||||
|
{
|
||||||
|
var starter = new ProcessStartInfo();
|
||||||
|
starter.WorkingDirectory = repo;
|
||||||
|
starter.FileName = Native.OS.GitExecutable;
|
||||||
|
starter.Arguments = "lfs smudge";
|
||||||
|
starter.UseShellExecute = false;
|
||||||
|
starter.CreateNoWindow = true;
|
||||||
|
starter.WindowStyle = ProcessWindowStyle.Hidden;
|
||||||
|
starter.RedirectStandardInput = true;
|
||||||
|
starter.RedirectStandardOutput = true;
|
||||||
|
|
||||||
|
var stream = new MemoryStream();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var proc = new Process() { StartInfo = starter };
|
||||||
|
proc.Start();
|
||||||
|
proc.StandardInput.WriteLine("version https://git-lfs.github.com/spec/v1");
|
||||||
|
proc.StandardInput.WriteLine($"oid sha256:{oid}");
|
||||||
|
proc.StandardInput.WriteLine($"size {size}");
|
||||||
|
proc.StandardOutput.BaseStream.CopyTo(stream);
|
||||||
|
proc.WaitForExit();
|
||||||
|
proc.Close();
|
||||||
|
|
||||||
|
stream.Position = 0;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
App.RaiseException(repo, $"Failed to query file content: {e}");
|
||||||
|
}
|
||||||
|
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,9 +16,6 @@ namespace SourceGit.Commands
|
||||||
|
|
||||||
public long Result()
|
public long Result()
|
||||||
{
|
{
|
||||||
if (_result != 0)
|
|
||||||
return _result;
|
|
||||||
|
|
||||||
var rs = ReadToEnd();
|
var rs = ReadToEnd();
|
||||||
if (rs.IsSuccess)
|
if (rs.IsSuccess)
|
||||||
{
|
{
|
||||||
|
@ -29,7 +26,5 @@ namespace SourceGit.Commands
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly long _result = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,21 +51,14 @@ namespace SourceGit.Commands
|
||||||
obj.Type = Models.ObjectType.Blob;
|
obj.Type = Models.ObjectType.Blob;
|
||||||
obj.Path = match.Groups[3].Value;
|
obj.Path = match.Groups[3].Value;
|
||||||
|
|
||||||
switch (match.Groups[1].Value)
|
obj.Type = match.Groups[1].Value switch
|
||||||
{
|
{
|
||||||
case "blob":
|
"blob" => Models.ObjectType.Blob,
|
||||||
obj.Type = Models.ObjectType.Blob;
|
"tree" => Models.ObjectType.Tree,
|
||||||
break;
|
"tag" => Models.ObjectType.Tag,
|
||||||
case "tree":
|
"commit" => Models.ObjectType.Commit,
|
||||||
obj.Type = Models.ObjectType.Tree;
|
_ => obj.Type,
|
||||||
break;
|
};
|
||||||
case "tag":
|
|
||||||
obj.Type = Models.ObjectType.Tag;
|
|
||||||
break;
|
|
||||||
case "commit":
|
|
||||||
obj.Type = Models.ObjectType.Commit;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
_objects.Add(obj);
|
_objects.Add(obj);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ namespace SourceGit.Commands
|
||||||
{
|
{
|
||||||
WorkingDirectory = repo;
|
WorkingDirectory = repo;
|
||||||
Context = repo;
|
Context = repo;
|
||||||
Args = "stash list --format=%H%n%P%n%ct%n%gd%n%s";
|
Args = "stash list -z --no-show-signature --format=\"%H%n%P%n%ct%n%gd%n%B\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Models.Stash> Result()
|
public List<Models.Stash> Result()
|
||||||
|
@ -19,55 +19,50 @@ namespace SourceGit.Commands
|
||||||
if (!rs.IsSuccess)
|
if (!rs.IsSuccess)
|
||||||
return outs;
|
return outs;
|
||||||
|
|
||||||
var nextPartIdx = 0;
|
var items = rs.StdOut.Split('\0', StringSplitOptions.RemoveEmptyEntries);
|
||||||
var start = 0;
|
foreach (var item in items)
|
||||||
var end = rs.StdOut.IndexOf('\n', start);
|
|
||||||
while (end > 0)
|
|
||||||
{
|
{
|
||||||
var line = rs.StdOut.Substring(start, end - start);
|
var current = new Models.Stash();
|
||||||
|
|
||||||
switch (nextPartIdx)
|
var nextPartIdx = 0;
|
||||||
|
var start = 0;
|
||||||
|
var end = item.IndexOf('\n', start);
|
||||||
|
while (end > 0 && nextPartIdx < 4)
|
||||||
{
|
{
|
||||||
case 0:
|
var line = item.Substring(start, end - start);
|
||||||
_current = new Models.Stash() { SHA = line };
|
|
||||||
outs.Add(_current);
|
switch (nextPartIdx)
|
||||||
break;
|
{
|
||||||
case 1:
|
case 0:
|
||||||
ParseParent(line);
|
current.SHA = line;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 1:
|
||||||
_current.Time = ulong.Parse(line);
|
if (line.Length > 6)
|
||||||
break;
|
current.Parents.AddRange(line.Split(' ', StringSplitOptions.RemoveEmptyEntries));
|
||||||
case 3:
|
break;
|
||||||
_current.Name = line;
|
case 2:
|
||||||
break;
|
current.Time = ulong.Parse(line);
|
||||||
case 4:
|
break;
|
||||||
_current.Message = line;
|
case 3:
|
||||||
|
current.Name = line;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
nextPartIdx++;
|
||||||
|
|
||||||
|
start = end + 1;
|
||||||
|
if (start >= item.Length - 1)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
end = item.IndexOf('\n', start);
|
||||||
}
|
}
|
||||||
|
|
||||||
nextPartIdx++;
|
if (start < item.Length)
|
||||||
if (nextPartIdx > 4)
|
current.Message = item.Substring(start);
|
||||||
nextPartIdx = 0;
|
|
||||||
|
|
||||||
start = end + 1;
|
outs.Add(current);
|
||||||
end = rs.StdOut.IndexOf('\n', start);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (start < rs.StdOut.Length)
|
|
||||||
_current.Message = rs.StdOut.Substring(start);
|
|
||||||
|
|
||||||
return outs;
|
return outs;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ParseParent(string data)
|
|
||||||
{
|
|
||||||
if (data.Length < 8)
|
|
||||||
return;
|
|
||||||
|
|
||||||
_current.Parents.AddRange(data.Split(separator: ' ', options: StringSplitOptions.RemoveEmptyEntries));
|
|
||||||
}
|
|
||||||
|
|
||||||
private Models.Stash _current = null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace SourceGit.Commands
|
||||||
var records = rs.StdOut.Split(_boundary, StringSplitOptions.RemoveEmptyEntries);
|
var records = rs.StdOut.Split(_boundary, StringSplitOptions.RemoveEmptyEntries);
|
||||||
foreach (var record in records)
|
foreach (var record in records)
|
||||||
{
|
{
|
||||||
var subs = record.Split('\0', StringSplitOptions.None);
|
var subs = record.Split('\0');
|
||||||
if (subs.Length != 6)
|
if (subs.Length != 6)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
|
@ -10,15 +10,15 @@ namespace SourceGit.Commands
|
||||||
{
|
{
|
||||||
public static void Run(string repo, string revision, string file, string saveTo)
|
public static void Run(string repo, string revision, string file, string saveTo)
|
||||||
{
|
{
|
||||||
|
var dir = Path.GetDirectoryName(saveTo);
|
||||||
|
if (!Directory.Exists(dir))
|
||||||
|
Directory.CreateDirectory(dir);
|
||||||
|
|
||||||
var isLFSFiltered = new IsLFSFiltered(repo, revision, file).Result();
|
var isLFSFiltered = new IsLFSFiltered(repo, revision, file).Result();
|
||||||
if (isLFSFiltered)
|
if (isLFSFiltered)
|
||||||
{
|
{
|
||||||
var tmpFile = saveTo + ".tmp";
|
var pointerStream = QueryFileContent.Run(repo, revision, file);
|
||||||
if (ExecCmd(repo, $"show {revision}:\"{file}\"", tmpFile))
|
ExecCmd(repo, "lfs smudge", saveTo, pointerStream);
|
||||||
{
|
|
||||||
ExecCmd(repo, $"lfs smudge", saveTo, tmpFile);
|
|
||||||
}
|
|
||||||
File.Delete(tmpFile);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -26,7 +26,7 @@ namespace SourceGit.Commands
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool ExecCmd(string repo, string args, string outputFile, string inputFile = null)
|
private static void ExecCmd(string repo, string args, string outputFile, Stream input = null)
|
||||||
{
|
{
|
||||||
var starter = new ProcessStartInfo();
|
var starter = new ProcessStartInfo();
|
||||||
starter.WorkingDirectory = repo;
|
starter.WorkingDirectory = repo;
|
||||||
|
@ -45,27 +45,11 @@ namespace SourceGit.Commands
|
||||||
{
|
{
|
||||||
var proc = new Process() { StartInfo = starter };
|
var proc = new Process() { StartInfo = starter };
|
||||||
proc.Start();
|
proc.Start();
|
||||||
|
if (input != null)
|
||||||
if (inputFile != null)
|
proc.StandardInput.Write(new StreamReader(input).ReadToEnd());
|
||||||
{
|
|
||||||
using (StreamReader sr = new StreamReader(inputFile))
|
|
||||||
{
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
var line = sr.ReadLine();
|
|
||||||
if (line == null)
|
|
||||||
break;
|
|
||||||
proc.StandardInput.WriteLine(line);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
proc.StandardOutput.BaseStream.CopyTo(sw);
|
proc.StandardOutput.BaseStream.CopyTo(sw);
|
||||||
proc.WaitForExit();
|
proc.WaitForExit();
|
||||||
var rs = proc.ExitCode == 0;
|
|
||||||
proc.Close();
|
proc.Close();
|
||||||
|
|
||||||
return rs;
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -73,7 +57,6 @@ namespace SourceGit.Commands
|
||||||
{
|
{
|
||||||
App.RaiseException(repo, "Save file failed: " + e.Message);
|
App.RaiseException(repo, "Save file failed: " + e.Message);
|
||||||
});
|
});
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,13 +23,11 @@ namespace SourceGit.Commands
|
||||||
_patchBuilder.Append(c.DataForAmend.ObjectHash);
|
_patchBuilder.Append(c.DataForAmend.ObjectHash);
|
||||||
_patchBuilder.Append("\t");
|
_patchBuilder.Append("\t");
|
||||||
_patchBuilder.Append(c.OriginalPath);
|
_patchBuilder.Append(c.OriginalPath);
|
||||||
_patchBuilder.Append("\n");
|
|
||||||
}
|
}
|
||||||
else if (c.Index == Models.ChangeState.Added)
|
else if (c.Index == Models.ChangeState.Added)
|
||||||
{
|
{
|
||||||
_patchBuilder.Append("0 0000000000000000000000000000000000000000\t");
|
_patchBuilder.Append("0 0000000000000000000000000000000000000000\t");
|
||||||
_patchBuilder.Append(c.Path);
|
_patchBuilder.Append(c.Path);
|
||||||
_patchBuilder.Append("\n");
|
|
||||||
}
|
}
|
||||||
else if (c.Index == Models.ChangeState.Deleted)
|
else if (c.Index == Models.ChangeState.Deleted)
|
||||||
{
|
{
|
||||||
|
@ -37,7 +35,6 @@ namespace SourceGit.Commands
|
||||||
_patchBuilder.Append(c.DataForAmend.ObjectHash);
|
_patchBuilder.Append(c.DataForAmend.ObjectHash);
|
||||||
_patchBuilder.Append("\t");
|
_patchBuilder.Append("\t");
|
||||||
_patchBuilder.Append(c.Path);
|
_patchBuilder.Append(c.Path);
|
||||||
_patchBuilder.Append("\n");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -46,8 +43,9 @@ namespace SourceGit.Commands
|
||||||
_patchBuilder.Append(c.DataForAmend.ObjectHash);
|
_patchBuilder.Append(c.DataForAmend.ObjectHash);
|
||||||
_patchBuilder.Append("\t");
|
_patchBuilder.Append("\t");
|
||||||
_patchBuilder.Append(c.Path);
|
_patchBuilder.Append(c.Path);
|
||||||
_patchBuilder.Append("\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_patchBuilder.Append("\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,15 +8,12 @@ namespace SourceGit.Converters
|
||||||
public static readonly FuncValueConverter<Models.FilterMode, IBrush> ToBorderBrush =
|
public static readonly FuncValueConverter<Models.FilterMode, IBrush> ToBorderBrush =
|
||||||
new FuncValueConverter<Models.FilterMode, IBrush>(v =>
|
new FuncValueConverter<Models.FilterMode, IBrush>(v =>
|
||||||
{
|
{
|
||||||
switch (v)
|
return v switch
|
||||||
{
|
{
|
||||||
case Models.FilterMode.Included:
|
Models.FilterMode.Included => Brushes.Green,
|
||||||
return Brushes.Green;
|
Models.FilterMode.Excluded => Brushes.Red,
|
||||||
case Models.FilterMode.Excluded:
|
_ => Brushes.Transparent,
|
||||||
return Brushes.Red;
|
};
|
||||||
default:
|
|
||||||
return Brushes.Transparent;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,42 +8,19 @@ namespace SourceGit.Converters
|
||||||
public static readonly FuncValueConverter<Models.InteractiveRebaseAction, IBrush> ToIconBrush =
|
public static readonly FuncValueConverter<Models.InteractiveRebaseAction, IBrush> ToIconBrush =
|
||||||
new FuncValueConverter<Models.InteractiveRebaseAction, IBrush>(v =>
|
new FuncValueConverter<Models.InteractiveRebaseAction, IBrush>(v =>
|
||||||
{
|
{
|
||||||
switch (v)
|
return v switch
|
||||||
{
|
{
|
||||||
case Models.InteractiveRebaseAction.Pick:
|
Models.InteractiveRebaseAction.Pick => Brushes.Green,
|
||||||
return Brushes.Green;
|
Models.InteractiveRebaseAction.Edit => Brushes.Orange,
|
||||||
case Models.InteractiveRebaseAction.Edit:
|
Models.InteractiveRebaseAction.Reword => Brushes.Orange,
|
||||||
return Brushes.Orange;
|
Models.InteractiveRebaseAction.Squash => Brushes.LightGray,
|
||||||
case Models.InteractiveRebaseAction.Reword:
|
Models.InteractiveRebaseAction.Fixup => Brushes.LightGray,
|
||||||
return Brushes.Orange;
|
_ => Brushes.Red,
|
||||||
case Models.InteractiveRebaseAction.Squash:
|
};
|
||||||
return Brushes.LightGray;
|
|
||||||
case Models.InteractiveRebaseAction.Fixup:
|
|
||||||
return Brushes.LightGray;
|
|
||||||
default:
|
|
||||||
return Brushes.Red;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
public static readonly FuncValueConverter<Models.InteractiveRebaseAction, string> ToName =
|
public static readonly FuncValueConverter<Models.InteractiveRebaseAction, string> ToName =
|
||||||
new FuncValueConverter<Models.InteractiveRebaseAction, string>(v =>
|
new FuncValueConverter<Models.InteractiveRebaseAction, string>(v => v.ToString());
|
||||||
{
|
|
||||||
switch (v)
|
|
||||||
{
|
|
||||||
case Models.InteractiveRebaseAction.Pick:
|
|
||||||
return "Pick";
|
|
||||||
case Models.InteractiveRebaseAction.Edit:
|
|
||||||
return "Edit";
|
|
||||||
case Models.InteractiveRebaseAction.Reword:
|
|
||||||
return "Reword";
|
|
||||||
case Models.InteractiveRebaseAction.Squash:
|
|
||||||
return "Squash";
|
|
||||||
case Models.InteractiveRebaseAction.Fixup:
|
|
||||||
return "Fixup";
|
|
||||||
default:
|
|
||||||
return "Drop";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
public static readonly FuncValueConverter<Models.InteractiveRebaseAction, bool> CanEditMessage =
|
public static readonly FuncValueConverter<Models.InteractiveRebaseAction, bool> CanEditMessage =
|
||||||
new FuncValueConverter<Models.InteractiveRebaseAction, bool>(v => v == Models.InteractiveRebaseAction.Reword || v == Models.InteractiveRebaseAction.Squash);
|
new FuncValueConverter<Models.InteractiveRebaseAction, bool>(v => v == Models.InteractiveRebaseAction.Reword || v == Models.InteractiveRebaseAction.Squash);
|
||||||
|
|
27
src/Converters/ObjectConverters.cs
Normal file
27
src/Converters/ObjectConverters.cs
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
using Avalonia.Data.Converters;
|
||||||
|
|
||||||
|
namespace SourceGit.Converters
|
||||||
|
{
|
||||||
|
public static class ObjectConverters
|
||||||
|
{
|
||||||
|
public class IsTypeOfConverter : IValueConverter
|
||||||
|
{
|
||||||
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
if (value == null || parameter == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return value.GetType().IsAssignableTo((Type)parameter);
|
||||||
|
}
|
||||||
|
|
||||||
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
return new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static readonly IsTypeOfConverter IsTypeOf = new IsTypeOfConverter();
|
||||||
|
}
|
||||||
|
}
|
|
@ -17,7 +17,7 @@ namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
public interface IAvatarHost
|
public interface IAvatarHost
|
||||||
{
|
{
|
||||||
void OnAvatarResourceChanged(string email);
|
void OnAvatarResourceChanged(string email, Bitmap image);
|
||||||
}
|
}
|
||||||
|
|
||||||
public partial class AvatarManager
|
public partial class AvatarManager
|
||||||
|
@ -26,10 +26,7 @@ namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (_instance == null)
|
return _instance ??= new AvatarManager();
|
||||||
_instance = new AvatarManager();
|
|
||||||
|
|
||||||
return _instance;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +35,7 @@ namespace SourceGit.Models
|
||||||
[GeneratedRegex(@"^(?:(\d+)\+)?(.+?)@.+\.github\.com$")]
|
[GeneratedRegex(@"^(?:(\d+)\+)?(.+?)@.+\.github\.com$")]
|
||||||
private static partial Regex REG_GITHUB_USER_EMAIL();
|
private static partial Regex REG_GITHUB_USER_EMAIL();
|
||||||
|
|
||||||
private object _synclock = new object();
|
private readonly Lock _synclock = new();
|
||||||
private string _storePath;
|
private string _storePath;
|
||||||
private List<IAvatarHost> _avatars = new List<IAvatarHost>();
|
private List<IAvatarHost> _avatars = new List<IAvatarHost>();
|
||||||
private Dictionary<string, Bitmap> _resources = new Dictionary<string, Bitmap>();
|
private Dictionary<string, Bitmap> _resources = new Dictionary<string, Bitmap>();
|
||||||
|
@ -119,7 +116,7 @@ namespace SourceGit.Models
|
||||||
Dispatcher.UIThread.InvokeAsync(() =>
|
Dispatcher.UIThread.InvokeAsync(() =>
|
||||||
{
|
{
|
||||||
_resources[email] = img;
|
_resources[email] = img;
|
||||||
NotifyResourceChanged(email);
|
NotifyResourceChanged(email, img);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -144,14 +141,13 @@ namespace SourceGit.Models
|
||||||
if (_defaultAvatars.Contains(email))
|
if (_defaultAvatars.Contains(email))
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
if (_resources.ContainsKey(email))
|
_resources.Remove(email);
|
||||||
_resources.Remove(email);
|
|
||||||
|
|
||||||
var localFile = Path.Combine(_storePath, GetEmailHash(email));
|
var localFile = Path.Combine(_storePath, GetEmailHash(email));
|
||||||
if (File.Exists(localFile))
|
if (File.Exists(localFile))
|
||||||
File.Delete(localFile);
|
File.Delete(localFile);
|
||||||
|
|
||||||
NotifyResourceChanged(email);
|
NotifyResourceChanged(email, null);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -179,13 +175,40 @@ namespace SourceGit.Models
|
||||||
|
|
||||||
lock (_synclock)
|
lock (_synclock)
|
||||||
{
|
{
|
||||||
if (!_requesting.Contains(email))
|
_requesting.Add(email);
|
||||||
_requesting.Add(email);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetFromLocal(string email, string file)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Bitmap image;
|
||||||
|
|
||||||
|
using (var stream = File.OpenRead(file))
|
||||||
|
{
|
||||||
|
image = Bitmap.DecodeToWidth(stream, 128);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (image == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_resources[email] = image;
|
||||||
|
|
||||||
|
_requesting.Remove(email);
|
||||||
|
|
||||||
|
var store = Path.Combine(_storePath, GetEmailHash(email));
|
||||||
|
File.Copy(file, store, true);
|
||||||
|
NotifyResourceChanged(email, image);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void LoadDefaultAvatar(string key, string img)
|
private void LoadDefaultAvatar(string key, string img)
|
||||||
{
|
{
|
||||||
var icon = AssetLoader.Open(new Uri($"avares://SourceGit/Resources/Images/{img}", UriKind.RelativeOrAbsolute));
|
var icon = AssetLoader.Open(new Uri($"avares://SourceGit/Resources/Images/{img}", UriKind.RelativeOrAbsolute));
|
||||||
|
@ -203,12 +226,10 @@ namespace SourceGit.Models
|
||||||
return builder.ToString();
|
return builder.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void NotifyResourceChanged(string email)
|
private void NotifyResourceChanged(string email, Bitmap image)
|
||||||
{
|
{
|
||||||
foreach (var avatar in _avatars)
|
foreach (var avatar in _avatars)
|
||||||
{
|
avatar.OnAvatarResourceChanged(email, image);
|
||||||
avatar.OnAvatarResourceChanged(email);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,14 +12,14 @@ namespace SourceGit.Models
|
||||||
ByAuthor,
|
ByAuthor,
|
||||||
ByCommitter,
|
ByCommitter,
|
||||||
ByMessage,
|
ByMessage,
|
||||||
ByFile,
|
ByPath,
|
||||||
ByContent,
|
ByContent,
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Commit
|
public class Commit
|
||||||
{
|
{
|
||||||
// As retrieved by: git mktree </dev/null
|
// As retrieved by: git mktree </dev/null
|
||||||
public static readonly string EmptyTreeSHA1 = "4b825dc642cb6eb9a060e54bf8d69288fbee4904";
|
public const string EmptyTreeSHA1 = "4b825dc642cb6eb9a060e54bf8d69288fbee4904";
|
||||||
|
|
||||||
public static double OpacityForNotMerged
|
public static double OpacityForNotMerged
|
||||||
{
|
{
|
||||||
|
@ -33,14 +33,14 @@ namespace SourceGit.Models
|
||||||
public User Committer { get; set; } = User.Invalid;
|
public User Committer { get; set; } = User.Invalid;
|
||||||
public ulong CommitterTime { get; set; } = 0;
|
public ulong CommitterTime { get; set; } = 0;
|
||||||
public string Subject { get; set; } = string.Empty;
|
public string Subject { get; set; } = string.Empty;
|
||||||
public List<string> Parents { get; set; } = new List<string>();
|
public List<string> Parents { get; set; } = new();
|
||||||
public List<Decorator> Decorators { get; set; } = new List<Decorator>();
|
public List<Decorator> Decorators { get; set; } = new();
|
||||||
public bool HasDecorators => Decorators.Count > 0;
|
public bool HasDecorators => Decorators.Count > 0;
|
||||||
|
|
||||||
public string AuthorTimeStr => DateTime.UnixEpoch.AddSeconds(AuthorTime).ToLocalTime().ToString(DateTimeFormat.Actived.DateTime);
|
public string AuthorTimeStr => DateTime.UnixEpoch.AddSeconds(AuthorTime).ToLocalTime().ToString(DateTimeFormat.Active.DateTime);
|
||||||
public string CommitterTimeStr => DateTime.UnixEpoch.AddSeconds(CommitterTime).ToLocalTime().ToString(DateTimeFormat.Actived.DateTime);
|
public string CommitterTimeStr => DateTime.UnixEpoch.AddSeconds(CommitterTime).ToLocalTime().ToString(DateTimeFormat.Active.DateTime);
|
||||||
public string AuthorTimeShortStr => DateTime.UnixEpoch.AddSeconds(AuthorTime).ToLocalTime().ToString(DateTimeFormat.Actived.DateOnly);
|
public string AuthorTimeShortStr => DateTime.UnixEpoch.AddSeconds(AuthorTime).ToLocalTime().ToString(DateTimeFormat.Active.DateOnly);
|
||||||
public string CommitterTimeShortStr => DateTime.UnixEpoch.AddSeconds(CommitterTime).ToLocalTime().ToString(DateTimeFormat.Actived.DateOnly);
|
public string CommitterTimeShortStr => DateTime.UnixEpoch.AddSeconds(CommitterTime).ToLocalTime().ToString(DateTimeFormat.Active.DateOnly);
|
||||||
|
|
||||||
public bool IsMerged { get; set; } = false;
|
public bool IsMerged { get; set; } = false;
|
||||||
public bool IsCommitterVisible => !Author.Equals(Committer) || AuthorTime != CommitterTime;
|
public bool IsCommitterVisible => !Author.Equals(Committer) || AuthorTime != CommitterTime;
|
||||||
|
@ -49,7 +49,7 @@ namespace SourceGit.Models
|
||||||
public int Color { get; set; } = 0;
|
public int Color { get; set; } = 0;
|
||||||
public double Opacity => IsMerged ? 1 : OpacityForNotMerged;
|
public double Opacity => IsMerged ? 1 : OpacityForNotMerged;
|
||||||
public FontWeight FontWeight => IsCurrentHead ? FontWeight.Bold : FontWeight.Regular;
|
public FontWeight FontWeight => IsCurrentHead ? FontWeight.Bold : FontWeight.Regular;
|
||||||
public Thickness Margin { get; set; } = new Thickness(0);
|
public Thickness Margin { get; set; } = new(0);
|
||||||
public IBrush Brush => CommitGraph.Pens[Color].Brush;
|
public IBrush Brush => CommitGraph.Pens[Color].Brush;
|
||||||
|
|
||||||
public void ParseDecorators(string data)
|
public void ParseDecorators(string data)
|
||||||
|
@ -113,7 +113,7 @@ namespace SourceGit.Models
|
||||||
if (l.Type != r.Type)
|
if (l.Type != r.Type)
|
||||||
return (int)l.Type - (int)r.Type;
|
return (int)l.Type - (int)r.Type;
|
||||||
else
|
else
|
||||||
return string.Compare(l.Name, r.Name, StringComparison.Ordinal);
|
return NumericSort.Compare(l.Name, r.Name);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,6 +121,6 @@ namespace SourceGit.Models
|
||||||
public class CommitFullMessage
|
public class CommitFullMessage
|
||||||
{
|
{
|
||||||
public string Message { get; set; } = string.Empty;
|
public string Message { get; set; } = string.Empty;
|
||||||
public List<InlineElement> Inlines { get; set; } = [];
|
public InlineElementCollector Inlines { get; set; } = new();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,21 +13,13 @@ namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
switch (VerifyResult)
|
return VerifyResult switch
|
||||||
{
|
{
|
||||||
case 'G':
|
'G' or 'U' => Brushes.Green,
|
||||||
case 'U':
|
'X' or 'Y' or 'R' => Brushes.DarkOrange,
|
||||||
return Brushes.Green;
|
'B' or 'E' => Brushes.Red,
|
||||||
case 'X':
|
_ => Brushes.Transparent,
|
||||||
case 'Y':
|
};
|
||||||
case 'R':
|
|
||||||
return Brushes.DarkOrange;
|
|
||||||
case 'B':
|
|
||||||
case 'E':
|
|
||||||
return Brushes.Red;
|
|
||||||
default:
|
|
||||||
return Brushes.Transparent;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,25 +27,17 @@ namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
switch (VerifyResult)
|
return VerifyResult switch
|
||||||
{
|
{
|
||||||
case 'G':
|
'G' => "Good signature.",
|
||||||
return "Good signature.";
|
'U' => "Good signature with unknown validity.",
|
||||||
case 'U':
|
'X' => "Good signature but has expired.",
|
||||||
return "Good signature with unknown validity.";
|
'Y' => "Good signature made by expired key.",
|
||||||
case 'X':
|
'R' => "Good signature made by a revoked key.",
|
||||||
return "Good signature but has expired.";
|
'B' => "Bad signature.",
|
||||||
case 'Y':
|
'E' => "Signature cannot be checked.",
|
||||||
return "Good signature made by expired key.";
|
_ => "No signature.",
|
||||||
case 'R':
|
};
|
||||||
return "Good signature made by a revoked key.";
|
|
||||||
case 'B':
|
|
||||||
return "Bad signature.";
|
|
||||||
case 'E':
|
|
||||||
return "Signature cannot be checked.";
|
|
||||||
default:
|
|
||||||
return "No signature.";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
|
|
||||||
namespace SourceGit.Models
|
namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
public partial class CommitTemplate : ObservableObject
|
public class CommitTemplate : ObservableObject
|
||||||
{
|
{
|
||||||
public string Name
|
public string Name
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using Avalonia.Collections;
|
||||||
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
|
|
||||||
namespace SourceGit.Models
|
namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
|
@ -7,6 +8,53 @@ namespace SourceGit.Models
|
||||||
Repository,
|
Repository,
|
||||||
Commit,
|
Commit,
|
||||||
Branch,
|
Branch,
|
||||||
|
Tag,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum CustomActionControlType
|
||||||
|
{
|
||||||
|
TextBox = 0,
|
||||||
|
PathSelector,
|
||||||
|
CheckBox,
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CustomActionControl : ObservableObject
|
||||||
|
{
|
||||||
|
public CustomActionControlType Type
|
||||||
|
{
|
||||||
|
get => _type;
|
||||||
|
set => SetProperty(ref _type, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Label
|
||||||
|
{
|
||||||
|
get => _label;
|
||||||
|
set => SetProperty(ref _label, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Description
|
||||||
|
{
|
||||||
|
get => _description;
|
||||||
|
set => SetProperty(ref _description, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string StringValue
|
||||||
|
{
|
||||||
|
get => _stringValue;
|
||||||
|
set => SetProperty(ref _stringValue, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool BoolValue
|
||||||
|
{
|
||||||
|
get => _boolValue;
|
||||||
|
set => SetProperty(ref _boolValue, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private CustomActionControlType _type = CustomActionControlType.TextBox;
|
||||||
|
private string _label = string.Empty;
|
||||||
|
private string _description = string.Empty;
|
||||||
|
private string _stringValue = string.Empty;
|
||||||
|
private bool _boolValue = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CustomAction : ObservableObject
|
public class CustomAction : ObservableObject
|
||||||
|
@ -35,6 +83,12 @@ namespace SourceGit.Models
|
||||||
set => SetProperty(ref _arguments, value);
|
set => SetProperty(ref _arguments, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AvaloniaList<CustomActionControl> Controls
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
set;
|
||||||
|
} = [];
|
||||||
|
|
||||||
public bool WaitForExit
|
public bool WaitForExit
|
||||||
{
|
{
|
||||||
get => _waitForExit;
|
get => _waitForExit;
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace SourceGit.Models
|
||||||
set;
|
set;
|
||||||
} = 0;
|
} = 0;
|
||||||
|
|
||||||
public static DateTimeFormat Actived
|
public static DateTimeFormat Active
|
||||||
{
|
{
|
||||||
get => Supported[ActiveIndex];
|
get => Supported[ActiveIndex];
|
||||||
}
|
}
|
||||||
|
|
22
src/Models/DealWithChangesAfterStashing.cs
Normal file
22
src/Models/DealWithChangesAfterStashing.cs
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace SourceGit.Models
|
||||||
|
{
|
||||||
|
public class DealWithChangesAfterStashing
|
||||||
|
{
|
||||||
|
public string Label { get; set; }
|
||||||
|
public string Desc { get; set; }
|
||||||
|
|
||||||
|
public static readonly List<DealWithChangesAfterStashing> Supported = [
|
||||||
|
new ("Discard", "All (or selected) changes will be discarded"),
|
||||||
|
new ("Keep Index", "Staged changes are left intact"),
|
||||||
|
new ("Keep All", "All (or selected) changes are left intact"),
|
||||||
|
];
|
||||||
|
|
||||||
|
public DealWithChangesAfterStashing(string label, string desc)
|
||||||
|
{
|
||||||
|
Label = label;
|
||||||
|
Desc = desc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -16,11 +16,10 @@ namespace SourceGit.Models
|
||||||
Deleted,
|
Deleted,
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TextInlineRange
|
public class TextInlineRange(int p, int n)
|
||||||
{
|
{
|
||||||
public int Start { get; set; }
|
public int Start { get; set; } = p;
|
||||||
public int End { get; set; }
|
public int End { get; set; } = p + n - 1;
|
||||||
public TextInlineRange(int p, int n) { Start = p; End = p + n - 1; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TextDiffLine
|
public class TextDiffLine
|
||||||
|
@ -101,7 +100,7 @@ namespace SourceGit.Models
|
||||||
rs.HasChanges = true;
|
rs.HasChanges = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (isOldSide)
|
if (isOldSide)
|
||||||
{
|
{
|
||||||
rs.HasLeftChanges = true;
|
rs.HasLeftChanges = true;
|
||||||
}
|
}
|
||||||
|
@ -117,7 +116,7 @@ namespace SourceGit.Models
|
||||||
rs.HasChanges = true;
|
rs.HasChanges = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (isOldSide)
|
if (isOldSide)
|
||||||
{
|
{
|
||||||
rs.HasChanges = true;
|
rs.HasChanges = true;
|
||||||
}
|
}
|
||||||
|
@ -164,7 +163,7 @@ namespace SourceGit.Models
|
||||||
if (revert)
|
if (revert)
|
||||||
{
|
{
|
||||||
var totalLines = Lines.Count - 1;
|
var totalLines = Lines.Count - 1;
|
||||||
builder.Append($"@@ -0,").Append(totalLines - additions).Append(" +0,").Append(totalLines).Append(" @@");
|
builder.Append("@@ -0,").Append(totalLines - additions).Append(" +0,").Append(totalLines).Append(" @@");
|
||||||
for (int i = 1; i <= totalLines; i++)
|
for (int i = 1; i <= totalLines; i++)
|
||||||
{
|
{
|
||||||
var line = Lines[i];
|
var line = Lines[i];
|
||||||
|
@ -556,7 +555,7 @@ namespace SourceGit.Models
|
||||||
}
|
}
|
||||||
else if (test.Type == TextDiffLineType.Added)
|
else if (test.Type == TextDiffLineType.Added)
|
||||||
{
|
{
|
||||||
if (i < start - 1)
|
if (i < start - 1 || isOldSide)
|
||||||
{
|
{
|
||||||
if (revert)
|
if (revert)
|
||||||
{
|
{
|
||||||
|
@ -566,18 +565,7 @@ namespace SourceGit.Models
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (isOldSide)
|
newCount++;
|
||||||
{
|
|
||||||
if (revert)
|
|
||||||
{
|
|
||||||
newCount++;
|
|
||||||
oldCount++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
newCount++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i == end - 1 && tailed)
|
if (i == end - 1 && tailed)
|
||||||
|
@ -655,15 +643,7 @@ namespace SourceGit.Models
|
||||||
public string NewImageSize => New != null ? $"{New.PixelSize.Width} x {New.PixelSize.Height}" : "0 x 0";
|
public string NewImageSize => New != null ? $"{New.PixelSize.Width} x {New.PixelSize.Height}" : "0 x 0";
|
||||||
}
|
}
|
||||||
|
|
||||||
public class NoOrEOLChange
|
public class NoOrEOLChange;
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public class FileModeDiff
|
|
||||||
{
|
|
||||||
public string Old { get; set; } = string.Empty;
|
|
||||||
public string New { get; set; } = string.Empty;
|
|
||||||
}
|
|
||||||
|
|
||||||
public class SubmoduleDiff
|
public class SubmoduleDiff
|
||||||
{
|
{
|
||||||
|
|
|
@ -107,8 +107,7 @@ namespace SourceGit.Models
|
||||||
// Ignore
|
// Ignore
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_customPaths == null)
|
_customPaths ??= new ExternalToolPaths();
|
||||||
_customPaths = new ExternalToolPaths();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TryAdd(string name, string icon, Func<string> finder, Func<string, string> execArgsGenerator = null)
|
public void TryAdd(string name, string icon, Func<string> finder, Func<string, string> execArgsGenerator = null)
|
||||||
|
|
|
@ -30,17 +30,13 @@
|
||||||
|
|
||||||
public string GetPrefix(GitFlowBranchType type)
|
public string GetPrefix(GitFlowBranchType type)
|
||||||
{
|
{
|
||||||
switch (type)
|
return type switch
|
||||||
{
|
{
|
||||||
case GitFlowBranchType.Feature:
|
GitFlowBranchType.Feature => FeaturePrefix,
|
||||||
return FeaturePrefix;
|
GitFlowBranchType.Release => ReleasePrefix,
|
||||||
case GitFlowBranchType.Release:
|
GitFlowBranchType.Hotfix => HotfixPrefix,
|
||||||
return ReleasePrefix;
|
_ => string.Empty,
|
||||||
case GitFlowBranchType.Hotfix:
|
};
|
||||||
return HotfixPrefix;
|
|
||||||
default:
|
|
||||||
return string.Empty;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
26
src/Models/GitIgnoreFile.cs
Normal file
26
src/Models/GitIgnoreFile.cs
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using Avalonia.Media;
|
||||||
|
|
||||||
|
namespace SourceGit.Models
|
||||||
|
{
|
||||||
|
public class GitIgnoreFile
|
||||||
|
{
|
||||||
|
public static readonly List<GitIgnoreFile> Supported = [new(true), new(false)];
|
||||||
|
|
||||||
|
public bool IsShared { get; set; }
|
||||||
|
public string File => IsShared ? ".gitignore" : "<git_dir>/info/exclude";
|
||||||
|
public string Desc => IsShared ? "Shared" : "Private";
|
||||||
|
public IBrush Brush => IsShared ? Brushes.Green : Brushes.Gray;
|
||||||
|
|
||||||
|
public GitIgnoreFile(bool isShared)
|
||||||
|
{
|
||||||
|
IsShared = isShared;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetFullPath(string repoPath, string gitDir)
|
||||||
|
{
|
||||||
|
return IsShared ? Path.Combine(repoPath, ".gitignore") : Path.Combine(gitDir, "info", "exclude");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
10
src/Models/ImageDecoder.cs
Normal file
10
src/Models/ImageDecoder.cs
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
namespace SourceGit.Models
|
||||||
|
{
|
||||||
|
public enum ImageDecoder
|
||||||
|
{
|
||||||
|
None = 0,
|
||||||
|
Builtin,
|
||||||
|
Pfim,
|
||||||
|
Tiff,
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,8 +2,7 @@
|
||||||
{
|
{
|
||||||
public enum InlineElementType
|
public enum InlineElementType
|
||||||
{
|
{
|
||||||
None = 0,
|
Keyword = 0,
|
||||||
Keyword,
|
|
||||||
Link,
|
Link,
|
||||||
CommitSHA,
|
CommitSHA,
|
||||||
Code,
|
Code,
|
||||||
|
@ -11,10 +10,10 @@
|
||||||
|
|
||||||
public class InlineElement
|
public class InlineElement
|
||||||
{
|
{
|
||||||
public InlineElementType Type { get; set; } = InlineElementType.None;
|
public InlineElementType Type { get; }
|
||||||
public int Start { get; set; } = 0;
|
public int Start { get; }
|
||||||
public int Length { get; set; } = 0;
|
public int Length { get; }
|
||||||
public string Link { get; set; } = "";
|
public string Link { get; }
|
||||||
|
|
||||||
public InlineElement(InlineElementType type, int start, int length, string link)
|
public InlineElement(InlineElementType type, int start, int length, string link)
|
||||||
{
|
{
|
||||||
|
@ -24,7 +23,7 @@
|
||||||
Link = link;
|
Link = link;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Intersect(int start, int length)
|
public bool IsIntersecting(int start, int length)
|
||||||
{
|
{
|
||||||
if (start == Start)
|
if (start == Start)
|
||||||
return true;
|
return true;
|
||||||
|
|
38
src/Models/InlineElementCollector.cs
Normal file
38
src/Models/InlineElementCollector.cs
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace SourceGit.Models
|
||||||
|
{
|
||||||
|
public class InlineElementCollector
|
||||||
|
{
|
||||||
|
public int Count => _implementation.Count;
|
||||||
|
public InlineElement this[int index] => _implementation[index];
|
||||||
|
|
||||||
|
public InlineElement Intersect(int start, int length)
|
||||||
|
{
|
||||||
|
foreach (var elem in _implementation)
|
||||||
|
{
|
||||||
|
if (elem.IsIntersecting(start, length))
|
||||||
|
return elem;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Add(InlineElement element)
|
||||||
|
{
|
||||||
|
_implementation.Add(element);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Sort()
|
||||||
|
{
|
||||||
|
_implementation.Sort((l, r) => l.Start.CompareTo(r.Start));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Clear()
|
||||||
|
{
|
||||||
|
_implementation.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
private readonly List<InlineElement> _implementation = [];
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,10 +8,7 @@ namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
public class IpcChannel : IDisposable
|
public class IpcChannel : IDisposable
|
||||||
{
|
{
|
||||||
public bool IsFirstInstance
|
public bool IsFirstInstance { get; }
|
||||||
{
|
|
||||||
get => _isFirstInstance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public event Action<string> MessageReceived;
|
public event Action<string> MessageReceived;
|
||||||
|
|
||||||
|
@ -19,8 +16,8 @@ namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_singletoneLock = File.Open(Path.Combine(Native.OS.DataDir, "process.lock"), FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
|
_singletonLock = File.Open(Path.Combine(Native.OS.DataDir, "process.lock"), FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
|
||||||
_isFirstInstance = true;
|
IsFirstInstance = true;
|
||||||
_server = new NamedPipeServerStream(
|
_server = new NamedPipeServerStream(
|
||||||
"SourceGitIPCChannel" + Environment.UserName,
|
"SourceGitIPCChannel" + Environment.UserName,
|
||||||
PipeDirection.In,
|
PipeDirection.In,
|
||||||
|
@ -32,7 +29,7 @@ namespace SourceGit.Models
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
_isFirstInstance = false;
|
IsFirstInstance = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,7 +64,7 @@ namespace SourceGit.Models
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
_cancellationTokenSource?.Cancel();
|
_cancellationTokenSource?.Cancel();
|
||||||
_singletoneLock?.Dispose();
|
_singletonLock?.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void StartServer()
|
private async void StartServer()
|
||||||
|
@ -96,8 +93,7 @@ namespace SourceGit.Models
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private FileStream _singletoneLock = null;
|
private FileStream _singletonLock = null;
|
||||||
private bool _isFirstInstance = false;
|
|
||||||
private NamedPipeServerStream _server = null;
|
private NamedPipeServerStream _server = null;
|
||||||
private CancellationTokenSource _cancellationTokenSource = null;
|
private CancellationTokenSource _cancellationTokenSource = null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
using System.Collections.Generic;
|
using System.Text.RegularExpressions;
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
|
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
|
|
||||||
|
@ -46,7 +45,7 @@ namespace SourceGit.Models
|
||||||
set => SetProperty(ref _urlTemplate, value);
|
set => SetProperty(ref _urlTemplate, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Matches(List<InlineElement> outs, string message)
|
public void Matches(InlineElementCollector outs, string message)
|
||||||
{
|
{
|
||||||
if (_regex == null || string.IsNullOrEmpty(_urlTemplate))
|
if (_regex == null || string.IsNullOrEmpty(_urlTemplate))
|
||||||
return;
|
return;
|
||||||
|
@ -60,17 +59,7 @@ namespace SourceGit.Models
|
||||||
|
|
||||||
var start = match.Index;
|
var start = match.Index;
|
||||||
var len = match.Length;
|
var len = match.Length;
|
||||||
var intersect = false;
|
if (outs.Intersect(start, len) != null)
|
||||||
foreach (var exist in outs)
|
|
||||||
{
|
|
||||||
if (exist.Intersect(start, len))
|
|
||||||
{
|
|
||||||
intersect = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (intersect)
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
var link = _urlTemplate;
|
var link = _urlTemplate;
|
||||||
|
|
|
@ -1,8 +1,22 @@
|
||||||
namespace SourceGit.Models
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
|
namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
public class LFSObject
|
public partial class LFSObject
|
||||||
{
|
{
|
||||||
|
[GeneratedRegex(@"^version https://git-lfs.github.com/spec/v\d+\r?\noid sha256:([0-9a-f]+)\r?\nsize (\d+)[\r\n]*$")]
|
||||||
|
private static partial Regex REG_FORMAT();
|
||||||
|
|
||||||
public string Oid { get; set; } = string.Empty;
|
public string Oid { get; set; } = string.Empty;
|
||||||
public long Size { get; set; } = 0;
|
public long Size { get; set; } = 0;
|
||||||
|
|
||||||
|
public static LFSObject Parse(string content)
|
||||||
|
{
|
||||||
|
var match = REG_FORMAT().Match(content);
|
||||||
|
if (match.Success)
|
||||||
|
return new() { Oid = match.Groups[1].Value, Size = long.Parse(match.Groups[2].Value) };
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
namespace SourceGit.Models
|
namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
public class Null
|
public class Null;
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
namespace SourceGit.Models
|
using System;
|
||||||
|
|
||||||
|
namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
public static class NumericSort
|
public static class NumericSort
|
||||||
{
|
{
|
||||||
|
@ -10,52 +12,35 @@
|
||||||
int marker1 = 0;
|
int marker1 = 0;
|
||||||
int marker2 = 0;
|
int marker2 = 0;
|
||||||
|
|
||||||
char[] tmp1 = new char[len1];
|
|
||||||
char[] tmp2 = new char[len2];
|
|
||||||
|
|
||||||
while (marker1 < len1 && marker2 < len2)
|
while (marker1 < len1 && marker2 < len2)
|
||||||
{
|
{
|
||||||
char c1 = s1[marker1];
|
char c1 = s1[marker1];
|
||||||
char c2 = s2[marker2];
|
char c2 = s2[marker2];
|
||||||
int loc1 = 0;
|
|
||||||
int loc2 = 0;
|
|
||||||
|
|
||||||
bool isDigit1 = char.IsDigit(c1);
|
bool isDigit1 = char.IsDigit(c1);
|
||||||
bool isDigit2 = char.IsDigit(c2);
|
bool isDigit2 = char.IsDigit(c2);
|
||||||
if (isDigit1 != isDigit2)
|
if (isDigit1 != isDigit2)
|
||||||
return c1.CompareTo(c2);
|
return c1.CompareTo(c2);
|
||||||
|
|
||||||
do
|
int subLen1 = 1;
|
||||||
{
|
while (marker1 + subLen1 < len1 && char.IsDigit(s1[marker1 + subLen1]) == isDigit1)
|
||||||
tmp1[loc1] = c1;
|
subLen1++;
|
||||||
loc1++;
|
|
||||||
marker1++;
|
|
||||||
|
|
||||||
if (marker1 < len1)
|
int subLen2 = 1;
|
||||||
c1 = s1[marker1];
|
while (marker2 + subLen2 < len2 && char.IsDigit(s2[marker2 + subLen2]) == isDigit2)
|
||||||
else
|
subLen2++;
|
||||||
break;
|
|
||||||
} while (char.IsDigit(c1) == isDigit1);
|
|
||||||
|
|
||||||
do
|
string sub1 = s1.Substring(marker1, subLen1);
|
||||||
{
|
string sub2 = s2.Substring(marker2, subLen2);
|
||||||
tmp2[loc2] = c2;
|
|
||||||
loc2++;
|
|
||||||
marker2++;
|
|
||||||
|
|
||||||
if (marker2 < len2)
|
marker1 += subLen1;
|
||||||
c2 = s2[marker2];
|
marker2 += subLen2;
|
||||||
else
|
|
||||||
break;
|
|
||||||
} while (char.IsDigit(c2) == isDigit2);
|
|
||||||
|
|
||||||
string sub1 = new string(tmp1, 0, loc1);
|
|
||||||
string sub2 = new string(tmp2, 0, loc2);
|
|
||||||
int result;
|
int result;
|
||||||
if (isDigit1)
|
if (isDigit1)
|
||||||
result = loc1 == loc2 ? string.CompareOrdinal(sub1, sub2) : loc1 - loc2;
|
result = (subLen1 == subLen2) ? string.CompareOrdinal(sub1, sub2) : (subLen1 - subLen2);
|
||||||
else
|
else
|
||||||
result = string.CompareOrdinal(sub1, sub2);
|
result = string.Compare(sub1, sub2, StringComparison.OrdinalIgnoreCase);
|
||||||
|
|
||||||
if (result != 0)
|
if (result != 0)
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -177,18 +177,10 @@ namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
var server = new Uri(_server);
|
var server = new Uri(_server);
|
||||||
var key = new ApiKeyCredential(_apiKey);
|
var key = new ApiKeyCredential(_apiKey);
|
||||||
var client = null as ChatClient;
|
var oaiClient = _server.Contains("openai.azure.com/", StringComparison.Ordinal)
|
||||||
if (_server.Contains("openai.azure.com/", StringComparison.Ordinal))
|
? new AzureOpenAIClient(server, key)
|
||||||
{
|
: new OpenAIClient(key, new() { Endpoint = server });
|
||||||
var azure = new AzureOpenAIClient(server, key);
|
var client = oaiClient.GetChatClient(_model);
|
||||||
client = azure.GetChatClient(_model);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var openai = new OpenAIClient(key, new() { Endpoint = server });
|
|
||||||
client = openai.GetChatClient(_model);
|
|
||||||
}
|
|
||||||
|
|
||||||
var messages = new List<ChatMessage>();
|
var messages = new List<ChatMessage>();
|
||||||
messages.Add(_model.Equals("o1-mini", StringComparison.Ordinal) ? new UserChatMessage(prompt) : new SystemChatMessage(prompt));
|
messages.Add(_model.Equals("o1-mini", StringComparison.Ordinal) ? new UserChatMessage(prompt) : new SystemChatMessage(prompt));
|
||||||
messages.Add(new UserChatMessage(question));
|
messages.Add(new UserChatMessage(question));
|
||||||
|
|
|
@ -32,7 +32,7 @@ namespace SourceGit.Models
|
||||||
set;
|
set;
|
||||||
} = false;
|
} = false;
|
||||||
|
|
||||||
public bool OnlyHighlighCurrentBranchInHistories
|
public bool OnlyHighlightCurrentBranchInHistories
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
set;
|
set;
|
||||||
|
@ -176,19 +176,13 @@ namespace SourceGit.Models
|
||||||
set;
|
set;
|
||||||
} = false;
|
} = false;
|
||||||
|
|
||||||
public bool KeepIndexWhenStash
|
public int ChangesAfterStashing
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
set;
|
set;
|
||||||
} = false;
|
} = 0;
|
||||||
|
|
||||||
public bool AutoRestoreAfterStash
|
public string PreferredOpenAIService
|
||||||
{
|
|
||||||
get;
|
|
||||||
set;
|
|
||||||
} = false;
|
|
||||||
|
|
||||||
public string PreferedOpenAIService
|
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
set;
|
set;
|
||||||
|
@ -287,9 +281,8 @@ namespace SourceGit.Models
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < HistoriesFilters.Count; i++)
|
foreach (var filter in HistoriesFilters)
|
||||||
{
|
{
|
||||||
var filter = HistoriesFilters[i];
|
|
||||||
if (filter.Type != type)
|
if (filter.Type != type)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -453,5 +446,19 @@ namespace SourceGit.Models
|
||||||
if (act != null)
|
if (act != null)
|
||||||
CustomActions.Remove(act);
|
CustomActions.Remove(act);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void MoveCustomActionUp(CustomAction act)
|
||||||
|
{
|
||||||
|
var idx = CustomActions.IndexOf(act);
|
||||||
|
if (idx > 0)
|
||||||
|
CustomActions.Move(idx - 1, idx);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void MoveCustomActionDown(CustomAction act)
|
||||||
|
{
|
||||||
|
var idx = CustomActions.IndexOf(act);
|
||||||
|
if (idx < CustomActions.Count - 1)
|
||||||
|
CustomActions.Move(idx + 1, idx);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
using Avalonia.Media.Imaging;
|
using System.Globalization;
|
||||||
|
using System.IO;
|
||||||
|
using Avalonia.Media.Imaging;
|
||||||
|
|
||||||
namespace SourceGit.Models
|
namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
|
@ -9,10 +11,17 @@ namespace SourceGit.Models
|
||||||
|
|
||||||
public class RevisionImageFile
|
public class RevisionImageFile
|
||||||
{
|
{
|
||||||
public Bitmap Image { get; set; } = null;
|
public Bitmap Image { get; }
|
||||||
public long FileSize { get; set; } = 0;
|
public long FileSize { get; }
|
||||||
public string ImageType { get; set; } = string.Empty;
|
public string ImageType { get; }
|
||||||
public string ImageSize => Image != null ? $"{Image.PixelSize.Width} x {Image.PixelSize.Height}" : "0 x 0";
|
public string ImageSize => Image != null ? $"{Image.PixelSize.Width} x {Image.PixelSize.Height}" : "0 x 0";
|
||||||
|
|
||||||
|
public RevisionImageFile(string file, Bitmap img, long size)
|
||||||
|
{
|
||||||
|
Image = img;
|
||||||
|
FileSize = size;
|
||||||
|
ImageType = Path.GetExtension(file)!.Substring(1).ToUpper(CultureInfo.CurrentCulture);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RevisionTextFile
|
public class RevisionTextFile
|
||||||
|
|
8
src/Models/ScanDir.cs
Normal file
8
src/Models/ScanDir.cs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
namespace SourceGit.Models
|
||||||
|
{
|
||||||
|
public record ScanDir(string path, string desc)
|
||||||
|
{
|
||||||
|
public string Path { get; set; } = path;
|
||||||
|
public string Desc { get; set; } = desc;
|
||||||
|
}
|
||||||
|
}
|
|
@ -33,9 +33,7 @@ namespace SourceGit.Models
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class AlreadyUpToDate
|
public class AlreadyUpToDate;
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public class SelfUpdateFailed
|
public class SelfUpdateFailed
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,6 +11,24 @@ namespace SourceGit.Models
|
||||||
public ulong Time { get; set; } = 0;
|
public ulong Time { get; set; } = 0;
|
||||||
public string Message { get; set; } = "";
|
public string Message { get; set; } = "";
|
||||||
|
|
||||||
public string TimeStr => DateTime.UnixEpoch.AddSeconds(Time).ToLocalTime().ToString(DateTimeFormat.Actived.DateTime);
|
public string Subject
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var idx = Message.IndexOf('\n', StringComparison.Ordinal);
|
||||||
|
return idx > 0 ? Message.Substring(0, idx).Trim() : Message;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string TimeStr
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return DateTime.UnixEpoch
|
||||||
|
.AddSeconds(Time)
|
||||||
|
.ToLocalTime()
|
||||||
|
.ToString(DateTimeFormat.Active.DateTime);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,8 +5,7 @@ namespace SourceGit.Models
|
||||||
public enum TagSortMode
|
public enum TagSortMode
|
||||||
{
|
{
|
||||||
CreatorDate = 0,
|
CreatorDate = 0,
|
||||||
NameInAscending,
|
Name,
|
||||||
NameInDescending,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Tag : ObservableObject
|
public class Tag : ObservableObject
|
||||||
|
|
|
@ -102,7 +102,7 @@ namespace SourceGit.Models
|
||||||
private int? Integer()
|
private int? Integer()
|
||||||
{
|
{
|
||||||
var start = _pos;
|
var start = _pos;
|
||||||
while (Peek() is char c && c >= '0' && c <= '9')
|
while (Peek() is >= '0' and <= '9')
|
||||||
{
|
{
|
||||||
_pos++;
|
_pos++;
|
||||||
}
|
}
|
||||||
|
@ -118,7 +118,7 @@ namespace SourceGit.Models
|
||||||
// text token start
|
// text token start
|
||||||
var tok = _pos;
|
var tok = _pos;
|
||||||
bool esc = false;
|
bool esc = false;
|
||||||
while (Next() is char c)
|
while (Next() is { } c)
|
||||||
{
|
{
|
||||||
if (esc)
|
if (esc)
|
||||||
{
|
{
|
||||||
|
@ -129,7 +129,7 @@ namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
case ESCAPE:
|
case ESCAPE:
|
||||||
// allow to escape only \ and $
|
// allow to escape only \ and $
|
||||||
if (Peek() is char nc && (nc == ESCAPE || nc == VARIABLE_ANCHOR))
|
if (Peek() is { } nc && (nc == ESCAPE || nc == VARIABLE_ANCHOR))
|
||||||
{
|
{
|
||||||
esc = true;
|
esc = true;
|
||||||
FlushText(tok, _pos - 1);
|
FlushText(tok, _pos - 1);
|
||||||
|
@ -173,7 +173,7 @@ namespace SourceGit.Models
|
||||||
if (Next() != VARIABLE_START)
|
if (Next() != VARIABLE_START)
|
||||||
return null;
|
return null;
|
||||||
int name_start = _pos;
|
int name_start = _pos;
|
||||||
while (Next() is char c)
|
while (Next() is { } c)
|
||||||
{
|
{
|
||||||
// name character, continue advancing
|
// name character, continue advancing
|
||||||
if (IsNameChar(c))
|
if (IsNameChar(c))
|
||||||
|
@ -228,7 +228,7 @@ namespace SourceGit.Models
|
||||||
var sb = new StringBuilder();
|
var sb = new StringBuilder();
|
||||||
var tok = _pos;
|
var tok = _pos;
|
||||||
var esc = false;
|
var esc = false;
|
||||||
while (Next() is char c)
|
while (Next() is { } c)
|
||||||
{
|
{
|
||||||
if (esc)
|
if (esc)
|
||||||
{
|
{
|
||||||
|
@ -277,7 +277,7 @@ namespace SourceGit.Models
|
||||||
var sb = new StringBuilder();
|
var sb = new StringBuilder();
|
||||||
var tok = _pos;
|
var tok = _pos;
|
||||||
var esc = false;
|
var esc = false;
|
||||||
while (Next() is char c)
|
while (Next() is { } c)
|
||||||
{
|
{
|
||||||
if (esc)
|
if (esc)
|
||||||
{
|
{
|
||||||
|
@ -402,7 +402,7 @@ namespace SourceGit.Models
|
||||||
|
|
||||||
sb.AppendJoin(", ", paths);
|
sb.AppendJoin(", ", paths);
|
||||||
if (max < context.changes.Count)
|
if (max < context.changes.Count)
|
||||||
sb.AppendFormat(" and {0} other files", context.changes.Count - max);
|
sb.Append($" and {context.changes.Count - max} other files");
|
||||||
|
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,30 +2,22 @@
|
||||||
|
|
||||||
namespace SourceGit.Models
|
namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
public class TextInlineChange
|
public class TextInlineChange(int dp, int dc, int ap, int ac)
|
||||||
{
|
{
|
||||||
public int DeletedStart { get; set; }
|
public int DeletedStart { get; set; } = dp;
|
||||||
public int DeletedCount { get; set; }
|
public int DeletedCount { get; set; } = dc;
|
||||||
public int AddedStart { get; set; }
|
public int AddedStart { get; set; } = ap;
|
||||||
public int AddedCount { get; set; }
|
public int AddedCount { get; set; } = ac;
|
||||||
|
|
||||||
class Chunk
|
private class Chunk(int hash, int start, int size)
|
||||||
{
|
{
|
||||||
public int Hash;
|
public readonly int Hash = hash;
|
||||||
|
public readonly int Start = start;
|
||||||
|
public readonly int Size = size;
|
||||||
public bool Modified;
|
public bool Modified;
|
||||||
public int Start;
|
|
||||||
public int Size;
|
|
||||||
|
|
||||||
public Chunk(int hash, int start, int size)
|
|
||||||
{
|
|
||||||
Hash = hash;
|
|
||||||
Modified = false;
|
|
||||||
Start = start;
|
|
||||||
Size = size;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
enum Edit
|
private enum Edit
|
||||||
{
|
{
|
||||||
None,
|
None,
|
||||||
DeletedRight,
|
DeletedRight,
|
||||||
|
@ -34,7 +26,7 @@ namespace SourceGit.Models
|
||||||
AddedLeft,
|
AddedLeft,
|
||||||
}
|
}
|
||||||
|
|
||||||
class EditResult
|
private class EditResult
|
||||||
{
|
{
|
||||||
public Edit State;
|
public Edit State;
|
||||||
public int DeleteStart;
|
public int DeleteStart;
|
||||||
|
@ -43,14 +35,6 @@ namespace SourceGit.Models
|
||||||
public int AddEnd;
|
public int AddEnd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TextInlineChange(int dp, int dc, int ap, int ac)
|
|
||||||
{
|
|
||||||
DeletedStart = dp;
|
|
||||||
DeletedCount = dc;
|
|
||||||
AddedStart = ap;
|
|
||||||
AddedCount = ac;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static List<TextInlineChange> Compare(string oldValue, string newValue)
|
public static List<TextInlineChange> Compare(string oldValue, string newValue)
|
||||||
{
|
{
|
||||||
var hashes = new Dictionary<string, int>();
|
var hashes = new Dictionary<string, int>();
|
||||||
|
@ -204,11 +188,10 @@ namespace SourceGit.Models
|
||||||
|
|
||||||
for (int i = 0; i <= half; i++)
|
for (int i = 0; i <= half; i++)
|
||||||
{
|
{
|
||||||
|
|
||||||
for (int j = -i; j <= i; j += 2)
|
for (int j = -i; j <= i; j += 2)
|
||||||
{
|
{
|
||||||
var idx = j + half;
|
var idx = j + half;
|
||||||
int o, n;
|
int o;
|
||||||
if (j == -i || (j != i && forward[idx - 1] < forward[idx + 1]))
|
if (j == -i || (j != i && forward[idx - 1] < forward[idx + 1]))
|
||||||
{
|
{
|
||||||
o = forward[idx + 1];
|
o = forward[idx + 1];
|
||||||
|
@ -220,7 +203,7 @@ namespace SourceGit.Models
|
||||||
rs.State = Edit.DeletedRight;
|
rs.State = Edit.DeletedRight;
|
||||||
}
|
}
|
||||||
|
|
||||||
n = o - j;
|
var n = o - j;
|
||||||
|
|
||||||
var startX = o;
|
var startX = o;
|
||||||
var startY = n;
|
var startY = n;
|
||||||
|
@ -258,7 +241,7 @@ namespace SourceGit.Models
|
||||||
for (int j = -i; j <= i; j += 2)
|
for (int j = -i; j <= i; j += 2)
|
||||||
{
|
{
|
||||||
var idx = j + half;
|
var idx = j + half;
|
||||||
int o, n;
|
int o;
|
||||||
if (j == -i || (j != i && reverse[idx + 1] <= reverse[idx - 1]))
|
if (j == -i || (j != i && reverse[idx + 1] <= reverse[idx - 1]))
|
||||||
{
|
{
|
||||||
o = reverse[idx + 1] - 1;
|
o = reverse[idx + 1] - 1;
|
||||||
|
@ -270,7 +253,7 @@ namespace SourceGit.Models
|
||||||
rs.State = Edit.AddedLeft;
|
rs.State = Edit.AddedLeft;
|
||||||
}
|
}
|
||||||
|
|
||||||
n = o - (j + delta);
|
var n = o - (j + delta);
|
||||||
|
|
||||||
var endX = o;
|
var endX = o;
|
||||||
var endY = n;
|
var endY = n;
|
||||||
|
@ -312,8 +295,7 @@ namespace SourceGit.Models
|
||||||
|
|
||||||
private static void AddChunk(List<Chunk> chunks, Dictionary<string, int> hashes, string data, int start)
|
private static void AddChunk(List<Chunk> chunks, Dictionary<string, int> hashes, string data, int start)
|
||||||
{
|
{
|
||||||
int hash;
|
if (hashes.TryGetValue(data, out var hash))
|
||||||
if (hashes.TryGetValue(data, out hash))
|
|
||||||
{
|
{
|
||||||
chunks.Add(new Chunk(hash, start, data.Length));
|
chunks.Add(new Chunk(hash, start, data.Length));
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,11 +26,7 @@ namespace SourceGit.Models
|
||||||
|
|
||||||
public override bool Equals(object obj)
|
public override bool Equals(object obj)
|
||||||
{
|
{
|
||||||
if (obj == null || !(obj is User))
|
return obj is User other && Name == other.Name && Email == other.Email;
|
||||||
return false;
|
|
||||||
|
|
||||||
var other = obj as User;
|
|
||||||
return Name == other.Name && Email == other.Email;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override int GetHashCode()
|
public override int GetHashCode()
|
||||||
|
|
|
@ -12,27 +12,50 @@ namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
_repo = repo;
|
_repo = repo;
|
||||||
|
|
||||||
_wcWatcher = new FileSystemWatcher();
|
var testGitDir = new DirectoryInfo(Path.Combine(fullpath, ".git")).FullName;
|
||||||
_wcWatcher.Path = fullpath;
|
var desiredDir = new DirectoryInfo(gitDir).FullName;
|
||||||
_wcWatcher.Filter = "*";
|
if (testGitDir.Equals(desiredDir, StringComparison.Ordinal))
|
||||||
_wcWatcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.DirectoryName | NotifyFilters.FileName | NotifyFilters.Size | NotifyFilters.CreationTime;
|
{
|
||||||
_wcWatcher.IncludeSubdirectories = true;
|
var combined = new FileSystemWatcher();
|
||||||
_wcWatcher.Created += OnWorkingCopyChanged;
|
combined.Path = fullpath;
|
||||||
_wcWatcher.Renamed += OnWorkingCopyChanged;
|
combined.Filter = "*";
|
||||||
_wcWatcher.Changed += OnWorkingCopyChanged;
|
combined.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.DirectoryName | NotifyFilters.FileName | NotifyFilters.Size | NotifyFilters.CreationTime;
|
||||||
_wcWatcher.Deleted += OnWorkingCopyChanged;
|
combined.IncludeSubdirectories = true;
|
||||||
_wcWatcher.EnableRaisingEvents = true;
|
combined.Created += OnRepositoryChanged;
|
||||||
|
combined.Renamed += OnRepositoryChanged;
|
||||||
|
combined.Changed += OnRepositoryChanged;
|
||||||
|
combined.Deleted += OnRepositoryChanged;
|
||||||
|
combined.EnableRaisingEvents = true;
|
||||||
|
|
||||||
_repoWatcher = new FileSystemWatcher();
|
_watchers.Add(combined);
|
||||||
_repoWatcher.Path = gitDir;
|
}
|
||||||
_repoWatcher.Filter = "*";
|
else
|
||||||
_repoWatcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.DirectoryName | NotifyFilters.FileName;
|
{
|
||||||
_repoWatcher.IncludeSubdirectories = true;
|
var wc = new FileSystemWatcher();
|
||||||
_repoWatcher.Created += OnRepositoryChanged;
|
wc.Path = fullpath;
|
||||||
_repoWatcher.Renamed += OnRepositoryChanged;
|
wc.Filter = "*";
|
||||||
_repoWatcher.Changed += OnRepositoryChanged;
|
wc.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.DirectoryName | NotifyFilters.FileName | NotifyFilters.Size | NotifyFilters.CreationTime;
|
||||||
_repoWatcher.Deleted += OnRepositoryChanged;
|
wc.IncludeSubdirectories = true;
|
||||||
_repoWatcher.EnableRaisingEvents = true;
|
wc.Created += OnWorkingCopyChanged;
|
||||||
|
wc.Renamed += OnWorkingCopyChanged;
|
||||||
|
wc.Changed += OnWorkingCopyChanged;
|
||||||
|
wc.Deleted += OnWorkingCopyChanged;
|
||||||
|
wc.EnableRaisingEvents = true;
|
||||||
|
|
||||||
|
var git = new FileSystemWatcher();
|
||||||
|
git.Path = gitDir;
|
||||||
|
git.Filter = "*";
|
||||||
|
git.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.DirectoryName | NotifyFilters.FileName;
|
||||||
|
git.IncludeSubdirectories = true;
|
||||||
|
git.Created += OnGitDirChanged;
|
||||||
|
git.Renamed += OnGitDirChanged;
|
||||||
|
git.Changed += OnGitDirChanged;
|
||||||
|
git.Deleted += OnGitDirChanged;
|
||||||
|
git.EnableRaisingEvents = true;
|
||||||
|
|
||||||
|
_watchers.Add(wc);
|
||||||
|
_watchers.Add(git);
|
||||||
|
}
|
||||||
|
|
||||||
_timer = new Timer(Tick, null, 100, 100);
|
_timer = new Timer(Tick, null, 100, 100);
|
||||||
}
|
}
|
||||||
|
@ -77,22 +100,13 @@ namespace SourceGit.Models
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
_repoWatcher.EnableRaisingEvents = false;
|
foreach (var watcher in _watchers)
|
||||||
_repoWatcher.Created -= OnRepositoryChanged;
|
{
|
||||||
_repoWatcher.Renamed -= OnRepositoryChanged;
|
watcher.EnableRaisingEvents = false;
|
||||||
_repoWatcher.Changed -= OnRepositoryChanged;
|
watcher.Dispose();
|
||||||
_repoWatcher.Deleted -= OnRepositoryChanged;
|
}
|
||||||
_repoWatcher.Dispose();
|
|
||||||
_repoWatcher = null;
|
|
||||||
|
|
||||||
_wcWatcher.EnableRaisingEvents = false;
|
|
||||||
_wcWatcher.Created -= OnWorkingCopyChanged;
|
|
||||||
_wcWatcher.Renamed -= OnWorkingCopyChanged;
|
|
||||||
_wcWatcher.Changed -= OnWorkingCopyChanged;
|
|
||||||
_wcWatcher.Deleted -= OnWorkingCopyChanged;
|
|
||||||
_wcWatcher.Dispose();
|
|
||||||
_wcWatcher = null;
|
|
||||||
|
|
||||||
|
_watchers.Clear();
|
||||||
_timer.Dispose();
|
_timer.Dispose();
|
||||||
_timer = null;
|
_timer = null;
|
||||||
}
|
}
|
||||||
|
@ -153,11 +167,45 @@ namespace SourceGit.Models
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnRepositoryChanged(object o, FileSystemEventArgs e)
|
private void OnRepositoryChanged(object o, FileSystemEventArgs e)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(e.Name) || e.Name.Equals(".git", StringComparison.Ordinal))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var name = e.Name.Replace('\\', '/').TrimEnd('/');
|
||||||
|
if (name.EndsWith("/.git", StringComparison.Ordinal))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (name.StartsWith(".git/", StringComparison.Ordinal))
|
||||||
|
HandleGitDirFileChanged(name.Substring(5));
|
||||||
|
else
|
||||||
|
HandleWorkingCopyFileChanged(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnGitDirChanged(object o, FileSystemEventArgs e)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(e.Name))
|
if (string.IsNullOrEmpty(e.Name))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var name = e.Name.Replace("\\", "/");
|
var name = e.Name.Replace('\\', '/').TrimEnd('/');
|
||||||
|
HandleGitDirFileChanged(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnWorkingCopyChanged(object o, FileSystemEventArgs e)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(e.Name))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var name = e.Name.Replace('\\', '/').TrimEnd('/');
|
||||||
|
if (name.Equals(".git", StringComparison.Ordinal) ||
|
||||||
|
name.StartsWith(".git/", StringComparison.Ordinal) ||
|
||||||
|
name.EndsWith("/.git", StringComparison.Ordinal))
|
||||||
|
return;
|
||||||
|
|
||||||
|
HandleWorkingCopyFileChanged(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HandleGitDirFileChanged(string name)
|
||||||
|
{
|
||||||
if (name.Contains("fsmonitor--daemon/", StringComparison.Ordinal) ||
|
if (name.Contains("fsmonitor--daemon/", StringComparison.Ordinal) ||
|
||||||
name.EndsWith(".lock", StringComparison.Ordinal) ||
|
name.EndsWith(".lock", StringComparison.Ordinal) ||
|
||||||
name.StartsWith("lfs/", StringComparison.Ordinal))
|
name.StartsWith("lfs/", StringComparison.Ordinal))
|
||||||
|
@ -200,17 +248,8 @@ namespace SourceGit.Models
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnWorkingCopyChanged(object o, FileSystemEventArgs e)
|
private void HandleWorkingCopyFileChanged(string name)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(e.Name))
|
|
||||||
return;
|
|
||||||
|
|
||||||
var name = e.Name.Replace("\\", "/");
|
|
||||||
if (name.Equals(".git", StringComparison.Ordinal) ||
|
|
||||||
name.StartsWith(".git/", StringComparison.Ordinal) ||
|
|
||||||
name.EndsWith("/.git", StringComparison.Ordinal))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (name.StartsWith(".vs/", StringComparison.Ordinal))
|
if (name.StartsWith(".vs/", StringComparison.Ordinal))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -236,8 +275,7 @@ namespace SourceGit.Models
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly IRepository _repo = null;
|
private readonly IRepository _repo = null;
|
||||||
private FileSystemWatcher _repoWatcher = null;
|
private List<FileSystemWatcher> _watchers = [];
|
||||||
private FileSystemWatcher _wcWatcher = null;
|
|
||||||
private Timer _timer = null;
|
private Timer _timer = null;
|
||||||
private int _lockCount = 0;
|
private int _lockCount = 0;
|
||||||
private long _updateWC = 0;
|
private long _updateWC = 0;
|
||||||
|
@ -246,7 +284,7 @@ namespace SourceGit.Models
|
||||||
private long _updateStashes = 0;
|
private long _updateStashes = 0;
|
||||||
private long _updateTags = 0;
|
private long _updateTags = 0;
|
||||||
|
|
||||||
private object _lockSubmodule = new object();
|
private readonly Lock _lockSubmodule = new();
|
||||||
private List<string> _submodules = new List<string>();
|
private List<string> _submodules = new List<string>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace SourceGit.Models
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (IsDetached)
|
if (IsDetached)
|
||||||
return $"deteched HEAD at {Head.AsSpan(10)}";
|
return $"detached HEAD at {Head.AsSpan(10)}";
|
||||||
|
|
||||||
if (Branch.StartsWith("refs/heads/", StringComparison.Ordinal))
|
if (Branch.StartsWith("refs/heads/", StringComparison.Ordinal))
|
||||||
return Branch.Substring(11);
|
return Branch.Substring(11);
|
||||||
|
|
|
@ -120,8 +120,8 @@ namespace SourceGit.Native
|
||||||
private string FindExecutable(string filename)
|
private string FindExecutable(string filename)
|
||||||
{
|
{
|
||||||
var pathVariable = Environment.GetEnvironmentVariable("PATH") ?? string.Empty;
|
var pathVariable = Environment.GetEnvironmentVariable("PATH") ?? string.Empty;
|
||||||
var pathes = pathVariable.Split(Path.PathSeparator, StringSplitOptions.RemoveEmptyEntries);
|
var paths = pathVariable.Split(Path.PathSeparator, StringSplitOptions.RemoveEmptyEntries);
|
||||||
foreach (var path in pathes)
|
foreach (var path in paths)
|
||||||
{
|
{
|
||||||
var test = Path.Combine(path, filename);
|
var test = Path.Combine(path, filename);
|
||||||
if (File.Exists(test))
|
if (File.Exists(test))
|
||||||
|
|
|
@ -57,21 +57,15 @@ namespace SourceGit.Native
|
||||||
|
|
||||||
public string FindTerminal(Models.ShellOrTerminal shell)
|
public string FindTerminal(Models.ShellOrTerminal shell)
|
||||||
{
|
{
|
||||||
switch (shell.Type)
|
return shell.Type switch
|
||||||
{
|
{
|
||||||
case "mac-terminal":
|
"mac-terminal" => "Terminal",
|
||||||
return "Terminal";
|
"iterm2" => "iTerm",
|
||||||
case "iterm2":
|
"warp" => "Warp",
|
||||||
return "iTerm";
|
"ghostty" => "Ghostty",
|
||||||
case "warp":
|
"kitty" => "kitty",
|
||||||
return "Warp";
|
_ => string.Empty,
|
||||||
case "ghostty":
|
};
|
||||||
return "Ghostty";
|
|
||||||
case "kitty":
|
|
||||||
return "kitty";
|
|
||||||
}
|
|
||||||
|
|
||||||
return string.Empty;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Models.ExternalTool> FindExternalTools()
|
public List<Models.ExternalTool> FindExternalTools()
|
||||||
|
|
|
@ -165,7 +165,7 @@ namespace SourceGit.Native
|
||||||
public static void OpenTerminal(string workdir)
|
public static void OpenTerminal(string workdir)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(ShellOrTerminal))
|
if (string.IsNullOrEmpty(ShellOrTerminal))
|
||||||
App.RaiseException(workdir, $"Terminal is not specified! Please confirm that the correct shell/terminal has been configured.");
|
App.RaiseException(workdir, "Terminal is not specified! Please confirm that the correct shell/terminal has been configured.");
|
||||||
else
|
else
|
||||||
_backend.OpenTerminal(workdir);
|
_backend.OpenTerminal(workdir);
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,7 +54,7 @@ namespace SourceGit.Native
|
||||||
public void SetupApp(AppBuilder builder)
|
public void SetupApp(AppBuilder builder)
|
||||||
{
|
{
|
||||||
// Fix drop shadow issue on Windows 10
|
// Fix drop shadow issue on Windows 10
|
||||||
if (!OperatingSystem.IsWindowsVersionAtLeast(10, 22000, 0))
|
if (!OperatingSystem.IsWindowsVersionAtLeast(10, 22000))
|
||||||
{
|
{
|
||||||
Window.WindowStateProperty.Changed.AddClassHandler<Window>((w, _) => FixWindowFrameOnWin10(w));
|
Window.WindowStateProperty.Changed.AddClassHandler<Window>((w, _) => FixWindowFrameOnWin10(w));
|
||||||
Control.LoadedEvent.AddClassHandler<Window>((w, _) => FixWindowFrameOnWin10(w));
|
Control.LoadedEvent.AddClassHandler<Window>((w, _) => FixWindowFrameOnWin10(w));
|
||||||
|
@ -80,41 +80,32 @@ namespace SourceGit.Native
|
||||||
var p = IntPtrToPixelPoint(lParam);
|
var p = IntPtrToPixelPoint(lParam);
|
||||||
GetWindowRect(hWnd, out var rcWindow);
|
GetWindowRect(hWnd, out var rcWindow);
|
||||||
|
|
||||||
var borderThinkness = (int)(4 * window.RenderScaling);
|
var borderThickness = (int)(4 * window.RenderScaling);
|
||||||
int y = 1;
|
int y = 1;
|
||||||
int x = 1;
|
int x = 1;
|
||||||
if (p.X >= rcWindow.left && p.X < rcWindow.left + borderThinkness)
|
if (p.X >= rcWindow.left && p.X < rcWindow.left + borderThickness)
|
||||||
x = 0;
|
x = 0;
|
||||||
else if (p.X < rcWindow.right && p.X >= rcWindow.right - borderThinkness)
|
else if (p.X < rcWindow.right && p.X >= rcWindow.right - borderThickness)
|
||||||
x = 2;
|
x = 2;
|
||||||
|
|
||||||
if (p.Y >= rcWindow.top && p.Y < rcWindow.top + borderThinkness)
|
if (p.Y >= rcWindow.top && p.Y < rcWindow.top + borderThickness)
|
||||||
y = 0;
|
y = 0;
|
||||||
else if (p.Y < rcWindow.bottom && p.Y >= rcWindow.bottom - borderThinkness)
|
else if (p.Y < rcWindow.bottom && p.Y >= rcWindow.bottom - borderThickness)
|
||||||
y = 2;
|
y = 2;
|
||||||
|
|
||||||
var zone = y * 3 + x;
|
var zone = y * 3 + x;
|
||||||
switch (zone)
|
return zone switch
|
||||||
{
|
{
|
||||||
case 0:
|
0 => 13, // HTTOPLEFT
|
||||||
return 13; // HTTOPLEFT
|
1 => 12, // HTTOP
|
||||||
case 1:
|
2 => 14, // HTTOPRIGHT
|
||||||
return 12; // HTTOP
|
3 => 10, // HTLEFT
|
||||||
case 2:
|
4 => 1, // HTCLIENT
|
||||||
return 14; // HTTOPRIGHT
|
5 => 11, // HTRIGHT
|
||||||
case 3:
|
6 => 16, // HTBOTTOMLEFT
|
||||||
return 10; // HTLEFT
|
7 => 15, // HTBOTTOM
|
||||||
case 4:
|
_ => 17,
|
||||||
return 1; // HTCLIENT
|
};
|
||||||
case 5:
|
|
||||||
return 11; // HTRIGHT
|
|
||||||
case 6:
|
|
||||||
return 16; // HTBOTTOMLEFT
|
|
||||||
case 7:
|
|
||||||
return 15; // HTBOTTOM
|
|
||||||
default:
|
|
||||||
return 17; // HTBOTTOMRIGHT
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return IntPtr.Zero;
|
return IntPtr.Zero;
|
||||||
|
@ -127,23 +118,17 @@ namespace SourceGit.Native
|
||||||
Microsoft.Win32.RegistryHive.LocalMachine,
|
Microsoft.Win32.RegistryHive.LocalMachine,
|
||||||
Microsoft.Win32.RegistryView.Registry64);
|
Microsoft.Win32.RegistryView.Registry64);
|
||||||
|
|
||||||
var git = reg.OpenSubKey("SOFTWARE\\GitForWindows");
|
var git = reg.OpenSubKey(@"SOFTWARE\GitForWindows");
|
||||||
if (git != null && git.GetValue("InstallPath") is string installPath)
|
if (git?.GetValue("InstallPath") is string installPath)
|
||||||
{
|
|
||||||
return Path.Combine(installPath, "bin", "git.exe");
|
return Path.Combine(installPath, "bin", "git.exe");
|
||||||
}
|
|
||||||
|
|
||||||
var builder = new StringBuilder("git.exe", 259);
|
var builder = new StringBuilder("git.exe", 259);
|
||||||
if (!PathFindOnPath(builder, null))
|
if (!PathFindOnPath(builder, null))
|
||||||
{
|
|
||||||
return null;
|
return null;
|
||||||
}
|
|
||||||
|
|
||||||
var exePath = builder.ToString();
|
var exePath = builder.ToString();
|
||||||
if (!string.IsNullOrEmpty(exePath))
|
if (!string.IsNullOrEmpty(exePath))
|
||||||
{
|
|
||||||
return exePath;
|
return exePath;
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -181,7 +166,7 @@ namespace SourceGit.Native
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case "cmd":
|
case "cmd":
|
||||||
return "C:\\Windows\\System32\\cmd.exe";
|
return @"C:\Windows\System32\cmd.exe";
|
||||||
case "wt":
|
case "wt":
|
||||||
var wtFinder = new StringBuilder("wt.exe", 512);
|
var wtFinder = new StringBuilder("wt.exe", 512);
|
||||||
if (PathFindOnPath(wtFinder, null))
|
if (PathFindOnPath(wtFinder, null))
|
||||||
|
@ -199,8 +184,8 @@ namespace SourceGit.Native
|
||||||
finder.VSCode(FindVSCode);
|
finder.VSCode(FindVSCode);
|
||||||
finder.VSCodeInsiders(FindVSCodeInsiders);
|
finder.VSCodeInsiders(FindVSCodeInsiders);
|
||||||
finder.VSCodium(FindVSCodium);
|
finder.VSCodium(FindVSCodium);
|
||||||
finder.Fleet(() => $"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}\\Programs\\Fleet\\Fleet.exe");
|
finder.Fleet(() => $@"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}\Programs\Fleet\Fleet.exe");
|
||||||
finder.FindJetBrainsFromToolbox(() => $"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}\\JetBrains\\Toolbox");
|
finder.FindJetBrainsFromToolbox(() => $@"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}\JetBrains\Toolbox");
|
||||||
finder.SublimeText(FindSublimeText);
|
finder.SublimeText(FindSublimeText);
|
||||||
finder.TryAdd("Visual Studio", "vs", FindVisualStudio, GenerateCommandlineArgsForVisualStudio);
|
finder.TryAdd("Visual Studio", "vs", FindVisualStudio, GenerateCommandlineArgsForVisualStudio);
|
||||||
return finder.Founded;
|
return finder.Founded;
|
||||||
|
@ -217,7 +202,7 @@ namespace SourceGit.Native
|
||||||
{
|
{
|
||||||
if (!File.Exists(OS.ShellOrTerminal))
|
if (!File.Exists(OS.ShellOrTerminal))
|
||||||
{
|
{
|
||||||
App.RaiseException(workdir, $"Terminal is not specified! Please confirm that the correct shell/terminal has been configured.");
|
App.RaiseException(workdir, "Terminal is not specified! Please confirm that the correct shell/terminal has been configured.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -299,9 +284,7 @@ namespace SourceGit.Native
|
||||||
// VSCode (system)
|
// VSCode (system)
|
||||||
var systemVScode = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{EA457B21-F73E-494C-ACAB-524FDE069978}_is1");
|
var systemVScode = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{EA457B21-F73E-494C-ACAB-524FDE069978}_is1");
|
||||||
if (systemVScode != null)
|
if (systemVScode != null)
|
||||||
{
|
|
||||||
return systemVScode.GetValue("DisplayIcon") as string;
|
return systemVScode.GetValue("DisplayIcon") as string;
|
||||||
}
|
|
||||||
|
|
||||||
var currentUser = Microsoft.Win32.RegistryKey.OpenBaseKey(
|
var currentUser = Microsoft.Win32.RegistryKey.OpenBaseKey(
|
||||||
Microsoft.Win32.RegistryHive.CurrentUser,
|
Microsoft.Win32.RegistryHive.CurrentUser,
|
||||||
|
@ -310,9 +293,7 @@ namespace SourceGit.Native
|
||||||
// VSCode (user)
|
// VSCode (user)
|
||||||
var vscode = currentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{771FD6B0-FA20-440A-A002-3B3BAC16DC50}_is1");
|
var vscode = currentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{771FD6B0-FA20-440A-A002-3B3BAC16DC50}_is1");
|
||||||
if (vscode != null)
|
if (vscode != null)
|
||||||
{
|
|
||||||
return vscode.GetValue("DisplayIcon") as string;
|
return vscode.GetValue("DisplayIcon") as string;
|
||||||
}
|
|
||||||
|
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
|
@ -326,9 +307,7 @@ namespace SourceGit.Native
|
||||||
// VSCode - Insiders (system)
|
// VSCode - Insiders (system)
|
||||||
var systemVScodeInsiders = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1287CAD5-7C8D-410D-88B9-0D1EE4A83FF2}_is1");
|
var systemVScodeInsiders = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1287CAD5-7C8D-410D-88B9-0D1EE4A83FF2}_is1");
|
||||||
if (systemVScodeInsiders != null)
|
if (systemVScodeInsiders != null)
|
||||||
{
|
|
||||||
return systemVScodeInsiders.GetValue("DisplayIcon") as string;
|
return systemVScodeInsiders.GetValue("DisplayIcon") as string;
|
||||||
}
|
|
||||||
|
|
||||||
var currentUser = Microsoft.Win32.RegistryKey.OpenBaseKey(
|
var currentUser = Microsoft.Win32.RegistryKey.OpenBaseKey(
|
||||||
Microsoft.Win32.RegistryHive.CurrentUser,
|
Microsoft.Win32.RegistryHive.CurrentUser,
|
||||||
|
@ -337,9 +316,7 @@ namespace SourceGit.Native
|
||||||
// VSCode - Insiders (user)
|
// VSCode - Insiders (user)
|
||||||
var vscodeInsiders = currentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{217B4C08-948D-4276-BFBB-BEE930AE5A2C}_is1");
|
var vscodeInsiders = currentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{217B4C08-948D-4276-BFBB-BEE930AE5A2C}_is1");
|
||||||
if (vscodeInsiders != null)
|
if (vscodeInsiders != null)
|
||||||
{
|
|
||||||
return vscodeInsiders.GetValue("DisplayIcon") as string;
|
return vscodeInsiders.GetValue("DisplayIcon") as string;
|
||||||
}
|
|
||||||
|
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
|
@ -351,11 +328,9 @@ namespace SourceGit.Native
|
||||||
Microsoft.Win32.RegistryView.Registry64);
|
Microsoft.Win32.RegistryView.Registry64);
|
||||||
|
|
||||||
// VSCodium (system)
|
// VSCodium (system)
|
||||||
var systemVScodium = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{88DA3577-054F-4CA1-8122-7D820494CFFB}_is1");
|
var systemVSCodium = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{88DA3577-054F-4CA1-8122-7D820494CFFB}_is1");
|
||||||
if (systemVScodium != null)
|
if (systemVSCodium != null)
|
||||||
{
|
return systemVSCodium.GetValue("DisplayIcon") as string;
|
||||||
return systemVScodium.GetValue("DisplayIcon") as string;
|
|
||||||
}
|
|
||||||
|
|
||||||
var currentUser = Microsoft.Win32.RegistryKey.OpenBaseKey(
|
var currentUser = Microsoft.Win32.RegistryKey.OpenBaseKey(
|
||||||
Microsoft.Win32.RegistryHive.CurrentUser,
|
Microsoft.Win32.RegistryHive.CurrentUser,
|
||||||
|
@ -364,9 +339,7 @@ namespace SourceGit.Native
|
||||||
// VSCodium (user)
|
// VSCodium (user)
|
||||||
var vscodium = currentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{2E1F05D1-C245-4562-81EE-28188DB6FD17}_is1");
|
var vscodium = currentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{2E1F05D1-C245-4562-81EE-28188DB6FD17}_is1");
|
||||||
if (vscodium != null)
|
if (vscodium != null)
|
||||||
{
|
|
||||||
return vscodium.GetValue("DisplayIcon") as string;
|
return vscodium.GetValue("DisplayIcon") as string;
|
||||||
}
|
|
||||||
|
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
|
@ -403,15 +376,13 @@ namespace SourceGit.Native
|
||||||
Microsoft.Win32.RegistryView.Registry64);
|
Microsoft.Win32.RegistryView.Registry64);
|
||||||
|
|
||||||
// Get default class for VisualStudio.Launcher.sln - the handler for *.sln files
|
// Get default class for VisualStudio.Launcher.sln - the handler for *.sln files
|
||||||
if (localMachine.OpenSubKey(@"SOFTWARE\Classes\VisualStudio.Launcher.sln\CLSID") is Microsoft.Win32.RegistryKey launcher)
|
if (localMachine.OpenSubKey(@"SOFTWARE\Classes\VisualStudio.Launcher.sln\CLSID") is { } launcher)
|
||||||
{
|
{
|
||||||
// Get actual path to the executable
|
// Get actual path to the executable
|
||||||
if (launcher.GetValue(string.Empty) is string CLSID &&
|
if (launcher.GetValue(string.Empty) is string CLSID &&
|
||||||
localMachine.OpenSubKey(@$"SOFTWARE\Classes\CLSID\{CLSID}\LocalServer32") is Microsoft.Win32.RegistryKey devenv &&
|
localMachine.OpenSubKey(@$"SOFTWARE\Classes\CLSID\{CLSID}\LocalServer32") is { } devenv &&
|
||||||
devenv.GetValue(string.Empty) is string localServer32)
|
devenv.GetValue(string.Empty) is string localServer32)
|
||||||
{
|
|
||||||
return localServer32!.Trim('\"');
|
return localServer32!.Trim('\"');
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
<StreamGeometry x:Key="Icons.ClearNotifications">M591 907A85 85 0 01427 875h114a299 299 0 0050 32zM725 405c130 0 235 105 235 235s-105 235-235 235-235-105-235-235 105-235 235-235zM512 64a43 43 0 0143 43v24c126 17 229 107 264 225A298 298 0 00725 341l-4 0A235 235 0 00512 213l-5 0c-125 4-224 104-228 229l-0 6v167a211 211 0 01-26 101l-4 7-14 23h211a298 298 0 0050 85l-276-0a77 77 0 01-66-39c-13-22-14-50-2-73l2-4 22-36c10-17 16-37 17-57l0-7v-167C193 287 313 153 469 131V107a43 43 0 0139-43zm345 505L654 771a149 149 0 00202-202zM725 491a149 149 0 00-131 220l202-202A149 149 0 00725 491z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.ClearNotifications">M591 907A85 85 0 01427 875h114a299 299 0 0050 32zM725 405c130 0 235 105 235 235s-105 235-235 235-235-105-235-235 105-235 235-235zM512 64a43 43 0 0143 43v24c126 17 229 107 264 225A298 298 0 00725 341l-4 0A235 235 0 00512 213l-5 0c-125 4-224 104-228 229l-0 6v167a211 211 0 01-26 101l-4 7-14 23h211a298 298 0 0050 85l-276-0a77 77 0 01-66-39c-13-22-14-50-2-73l2-4 22-36c10-17 16-37 17-57l0-7v-167C193 287 313 153 469 131V107a43 43 0 0139-43zm345 505L654 771a149 149 0 00202-202zM725 491a149 149 0 00-131 220l202-202A149 149 0 00725 491z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Clean">M797 829a49 49 0 1049 49 49 49 0 00-49-49zm147-114A49 49 0 10992 764a49 49 0 00-49-49zM928 861a49 49 0 1049 49A49 49 0 00928 861zm-5-586L992 205 851 64l-71 71a67 67 0 00-94 0l235 235a67 67 0 000-94zm-853 128a32 32 0 00-32 50 1291 1291 0 0075 112L288 552c20 0 25 21 8 37l-93 86a1282 1282 0 00120 114l100-32c19-6 28 15 14 34l-40 55c26 19 53 36 82 53a89 89 0 00115-20 1391 1391 0 00256-485l-188-188s-306 224-595 198z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Clean">M797 829a49 49 0 1049 49 49 49 0 00-49-49zm147-114A49 49 0 10992 764a49 49 0 00-49-49zM928 861a49 49 0 1049 49A49 49 0 00928 861zm-5-586L992 205 851 64l-71 71a67 67 0 00-94 0l235 235a67 67 0 000-94zm-853 128a32 32 0 00-32 50 1291 1291 0 0075 112L288 552c20 0 25 21 8 37l-93 86a1282 1282 0 00120 114l100-32c19-6 28 15 14 34l-40 55c26 19 53 36 82 53a89 89 0 00115-20 1391 1391 0 00256-485l-188-188s-306 224-595 198z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Clone">M1280 704c0 141-115 256-256 256H288C129 960 0 831 0 672c0-126 80-232 192-272A327 327 0 01192 384c0-177 143-320 320-320 119 0 222 64 277 160C820 204 857 192 896 192c106 0 192 86 192 192 0 24-5 48-13 69C1192 477 1280 580 1280 704zm-493-128H656V352c0-18-14-32-32-32h-96c-18 0-32 14-32 32v224h-131c-29 0-43 34-23 55l211 211c12 12 33 12 45 0l211-211c20-20 6-55-23-55z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Clone">M1280 704c0 141-115 256-256 256H288C129 960 0 831 0 672c0-126 80-232 192-272A327 327 0 01192 384c0-177 143-320 320-320 119 0 222 64 277 160C820 204 857 192 896 192c106 0 192 86 192 192 0 24-5 48-13 69C1192 477 1280 580 1280 704zm-493-128H656V352c0-18-14-32-32-32h-96c-18 0-32 14-32 32v224h-131c-29 0-43 34-23 55l211 211c12 12 33 12 45 0l211-211c20-20 6-55-23-55z</StreamGeometry>
|
||||||
|
<StreamGeometry x:Key="Icons.Close">M523 398 918 3l113 113-396 396 397 397-113 113-397-397-397 397-113-113 397-397L14 116l113-113 396 396z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Code">M853 102H171C133 102 102 133 102 171v683C102 891 133 922 171 922h683C891 922 922 891 922 853V171C922 133 891 102 853 102zM390 600l-48 48L205 512l137-137 48 48L301 512l88 88zM465 819l-66-18L559 205l66 18L465 819zm218-171L634 600 723 512l-88-88 48-48L819 512 683 649z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Code">M853 102H171C133 102 102 133 102 171v683C102 891 133 922 171 922h683C891 922 922 891 922 853V171C922 133 891 102 853 102zM390 600l-48 48L205 512l137-137 48 48L301 512l88 88zM465 819l-66-18L559 205l66 18L465 819zm218-171L634 600 723 512l-88-88 48-48L819 512 683 649z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.CodeBlock">M684 736 340 736l0-53 344 1-0 53zM552 565l-213-2 0-53 212 2-0 53zM684 392 340 392l0-53 344 1-0 53zM301 825c-45 0-78-9-100-27-22-18-33-43-33-75v-116c0-22-4-37-12-45-7-9-20-13-40-13v-61c19 0 32-4 40-12 8-9 12-24 12-46v-116c0-32 11-57 33-75 22-18 56-27 100-27h24v61h-24a35 35 0 00-27 12 41 41 0 00-11 29v116c0 35-10 60-31 75a66 66 0 01-31 14c11 2 22 6 31 14 20 17 31 42 31 75v116c0 12 4 22 11 29 7 8 16 12 27 12h24v61h-24zM701 764h24c10 0 19-4 27-12a41 41 0 0011-29v-116c0-33 10-58 31-75 9-7 19-12 31-14a66 66 0 01-31-14c-20-15-31-40-31-75v-116a41 41 0 00-11-29 35 35 0 00-27-12h-24v-61h24c45 0 78 9 100 27 22 18 33 43 33 75v116c0 22 4 37 11 46 8 8 21 12 40 12v61c-19 0-33 4-40 13-7 8-11 23-11 45v116c0 32-11 57-33 75-22 18-55 27-100 27h-24v-61z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.CodeBlock">M684 736 340 736l0-53 344 1-0 53zM552 565l-213-2 0-53 212 2-0 53zM684 392 340 392l0-53 344 1-0 53zM301 825c-45 0-78-9-100-27-22-18-33-43-33-75v-116c0-22-4-37-12-45-7-9-20-13-40-13v-61c19 0 32-4 40-12 8-9 12-24 12-46v-116c0-32 11-57 33-75 22-18 56-27 100-27h24v61h-24a35 35 0 00-27 12 41 41 0 00-11 29v116c0 35-10 60-31 75a66 66 0 01-31 14c11 2 22 6 31 14 20 17 31 42 31 75v116c0 12 4 22 11 29 7 8 16 12 27 12h24v61h-24zM701 764h24c10 0 19-4 27-12a41 41 0 0011-29v-116c0-33 10-58 31-75 9-7 19-12 31-14a66 66 0 01-31-14c-20-15-31-40-31-75v-116a41 41 0 00-11-29 35 35 0 00-27-12h-24v-61h24c45 0 78 9 100 27 22 18 33 43 33 75v116c0 22 4 37 11 46 8 8 21 12 40 12v61c-19 0-33 4-40 13-7 8-11 23-11 45v116c0 32-11 57-33 75-22 18-55 27-100 27h-24v-61z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.ColorPicker">M128 854h768v86H128zM390 797c13 13 29 19 48 19s35-6 45-19l291-288c26-22 26-64 0-90L435 83l-61 61L426 192l-272 269c-22 22-22 64 0 90l237 246zm93-544 211 211-32 32H240l243-243zM707 694c0 48 38 86 86 86 48 0 86-38 86-86 0-22-10-45-26-61L794 576l-61 61c-13 13-26 35-26 58z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.ColorPicker">M128 854h768v86H128zM390 797c13 13 29 19 48 19s35-6 45-19l291-288c26-22 26-64 0-90L435 83l-61 61L426 192l-272 269c-22 22-22 64 0 90l237 246zm93-544 211 211-32 32H240l243-243zM707 694c0 48 38 86 86 86 48 0 86-38 86-86 0-22-10-45-26-61L794 576l-61 61c-13 13-26 35-26 58z</StreamGeometry>
|
||||||
|
@ -84,15 +85,19 @@
|
||||||
<StreamGeometry x:Key="Icons.Logs">M908 366h-25V248a18 18 0 00-0-2 20 20 0 00-5-13L681 7 681 7a19 19 0 00-4-3c-0-0-1-1-1-1a29 29 0 00-4-2L671 1a24 24 0 00-5-1H181a40 40 0 00-40 40v326h-25c-32 0-57 26-57 57v298c0 32 26 57 57 57h25v204c0 22 18 40 40 40H843a40 40 0 0040-40v-204h25c32 0 57-26 57-57V424a57 57 0 00-57-57zM181 40h465v205c0 11 9 20 20 20h177v101H181V40zm413 527c0 89-54 143-134 143-81 0-128-61-128-138 0-82 52-143 132-143 84 0 129 63 129 138zm-440 139V433h62v220h108v52h-170zm690 267H181v-193H843l0 193zm18-280a305 305 0 01-91 15c-50 0-86-12-111-37-25-23-39-59-38-99 0-90 66-142 155-142 35 0 62 7 76 13l-13 49c-15-6-33-12-63-12-51 0-90 29-90 88 0 56 35 89 86 89 14 0 25-2 30-4v-57h-42v-48h101v143zM397 570c0 53 25 91 66 91 42 0 65-40 65-92 0-49-23-91-66-91-42 0-66 40-66 93z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Logs">M908 366h-25V248a18 18 0 00-0-2 20 20 0 00-5-13L681 7 681 7a19 19 0 00-4-3c-0-0-1-1-1-1a29 29 0 00-4-2L671 1a24 24 0 00-5-1H181a40 40 0 00-40 40v326h-25c-32 0-57 26-57 57v298c0 32 26 57 57 57h25v204c0 22 18 40 40 40H843a40 40 0 0040-40v-204h25c32 0 57-26 57-57V424a57 57 0 00-57-57zM181 40h465v205c0 11 9 20 20 20h177v101H181V40zm413 527c0 89-54 143-134 143-81 0-128-61-128-138 0-82 52-143 132-143 84 0 129 63 129 138zm-440 139V433h62v220h108v52h-170zm690 267H181v-193H843l0 193zm18-280a305 305 0 01-91 15c-50 0-86-12-111-37-25-23-39-59-38-99 0-90 66-142 155-142 35 0 62 7 76 13l-13 49c-15-6-33-12-63-12-51 0-90 29-90 88 0 56 35 89 86 89 14 0 25-2 30-4v-57h-42v-48h101v143zM397 570c0 53 25 91 66 91 42 0 65-40 65-92 0-49-23-91-66-91-42 0-66 40-66 93z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Menu">M192 192m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0ZM192 512m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0ZM192 832m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0ZM864 160H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h512c17.7 0 32-14.3 32-32s-14.3-32-32-32zM864 480H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h512c17.7 0 32-14.3 32-32s-14.3-32-32-32zM864 800H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h512c17.7 0 32-14.3 32-32s-14.3-32-32-32z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Menu">M192 192m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0ZM192 512m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0ZM192 832m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0ZM864 160H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h512c17.7 0 32-14.3 32-32s-14.3-32-32-32zM864 480H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h512c17.7 0 32-14.3 32-32s-14.3-32-32-32zM864 800H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h512c17.7 0 32-14.3 32-32s-14.3-32-32-32z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Merge">M824 645V307c0-56-46-102-102-102h-102V102l-154 154 154 154V307h102v338c-46 20-82 67-82 123 0 72 61 133 133 133 72 0 133-61 133-133 0-56-36-102-82-123zm-51 195c-41 0-72-31-72-72s31-72 72-72c41 0 72 31 72 72s-31 72-72 72zM384 256c0-72-61-133-133-133-72 0-133 61-133 133 0 56 36 102 82 123v266C154 666 118 712 118 768c0 72 61 133 133 133 72 0 133-61 133-133 0-56-36-102-82-123V379C348 358 384 312 384 256zM323 768c0 41-31 72-72 72-41 0-72-31-72-72s31-72 72-72c41 0 72 31 72 72zM251 328c-41 0-72-31-72-72s31-72 72-72c41 0 72 31 72 72s-31 72-72 72z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Merge">M824 645V307c0-56-46-102-102-102h-102V102l-154 154 154 154V307h102v338c-46 20-82 67-82 123 0 72 61 133 133 133 72 0 133-61 133-133 0-56-36-102-82-123zm-51 195c-41 0-72-31-72-72s31-72 72-72c41 0 72 31 72 72s-31 72-72 72zM384 256c0-72-61-133-133-133-72 0-133 61-133 133 0 56 36 102 82 123v266C154 666 118 712 118 768c0 72 61 133 133 133 72 0 133-61 133-133 0-56-36-102-82-123V379C348 358 384 312 384 256zM323 768c0 41-31 72-72 72-41 0-72-31-72-72s31-72 72-72c41 0 72 31 72 72zM251 328c-41 0-72-31-72-72s31-72 72-72c41 0 72 31 72 72s-31 72-72 72z</StreamGeometry>
|
||||||
|
<StreamGeometry x:Key="Icons.Minus">M0 512M1024 512M512 0M512 1024M64 576h896V448H64z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Modified">M896 64H128C96 64 64 96 64 128v768c0 32 32 64 64 64h768c32 0 64-32 64-64V128c0-32-32-64-64-64z m-64 736c0 16-17 32-32 32H224c-18 0-32-12-32-32V224c0-16 16-32 32-32h576c15 0 32 16 32 32v576zM512 384c-71 0-128 57-128 128s57 128 128 128 128-57 128-128-57-128-128-128z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Modified">M896 64H128C96 64 64 96 64 128v768c0 32 32 64 64 64h768c32 0 64-32 64-64V128c0-32-32-64-64-64z m-64 736c0 16-17 32-32 32H224c-18 0-32-12-32-32V224c0-16 16-32 32-32h576c15 0 32 16 32 32v576zM512 384c-71 0-128 57-128 128s57 128 128 128 128-57 128-128-57-128-128-128z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.More">M0 512M1024 512M512 0M512 1024M813 448c-46 0-83 37-83 83 0 46 37 83 83 83 46 0 83-37 83-83 0-46-37-83-83-83zM211 448C165 448 128 485 128 531c0 46 37 83 83 83 46 0 83-37 83-83 0-46-37-83-83-83zM512 448c-46 0-83 37-83 83 0 46 37 83 83 83 46 0 83-37 83-83C595 485 558 448 512 448z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.More">M0 512M1024 512M512 0M512 1024M813 448c-46 0-83 37-83 83 0 46 37 83 83 83 46 0 83-37 83-83 0-46-37-83-83-83zM211 448C165 448 128 485 128 531c0 46 37 83 83 83 46 0 83-37 83-83 0-46-37-83-83-83zM512 448c-46 0-83 37-83 83 0 46 37 83 83 83 46 0 83-37 83-83C595 485 558 448 512 448z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Move">M299 811 299 725 384 725 384 811 299 811M469 811 469 725 555 725 555 811 469 811M640 811 640 725 725 725 725 811 640 811M299 640 299 555 384 555 384 640 299 640M469 640 469 555 555 555 555 640 469 640M640 640 640 555 725 555 725 640 640 640M299 469 299 384 384 384 384 469 299 469M469 469 469 384 555 384 555 469 469 469M640 469 640 384 725 384 725 469 640 469M299 299 299 213 384 213 384 299 299 299M469 299 469 213 555 213 555 299 469 299M640 299 640 213 725 213 725 299 640 299Z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Move">M299 811 299 725 384 725 384 811 299 811M469 811 469 725 555 725 555 811 469 811M640 811 640 725 725 725 725 811 640 811M299 640 299 555 384 555 384 640 299 640M469 640 469 555 555 555 555 640 469 640M640 640 640 555 725 555 725 640 640 640M299 469 299 384 384 384 384 469 299 469M469 469 469 384 555 384 555 469 469 469M640 469 640 384 725 384 725 469 640 469M299 299 299 213 384 213 384 299 299 299M469 299 469 213 555 213 555 299 469 299M640 299 640 213 725 213 725 299 640 299Z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.MoveToAnotherGroup">M64 363l0 204 265 0L329 460c0-11 6-18 14-20C349 437 355 437 362 441c93 60 226 149 226 149 33 22 34 60 0 82 0 0-133 89-226 149-14 9-32-3-32-18l-1-110L64 693l0 117c0 41 34 75 75 75l746 0c41 0 75-34 75-74L960 364c0-0 0-1 0-1L64 363zM64 214l0 75 650 0-33-80c-16-38-62-69-103-69l-440 0C97 139 64 173 64 214z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.MoveToAnotherGroup">M64 363l0 204 265 0L329 460c0-11 6-18 14-20C349 437 355 437 362 441c93 60 226 149 226 149 33 22 34 60 0 82 0 0-133 89-226 149-14 9-32-3-32-18l-1-110L64 693l0 117c0 41 34 75 75 75l746 0c41 0 75-34 75-74L960 364c0-0 0-1 0-1L64 363zM64 214l0 75 650 0-33-80c-16-38-62-69-103-69l-440 0C97 139 64 173 64 214z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.OpenWith">M683 409v204L1024 308 683 0v191c-413 0-427 526-427 526c117-229 203-307 427-307zm85 492H102V327h153s38-63 114-122H51c-28 0-51 27-51 61v697c0 34 23 61 51 61h768c28 0 51-27 51-61V614l-102 100v187z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.OpenWith">M683 409v204L1024 308 683 0v191c-413 0-427 526-427 526c117-229 203-307 427-307zm85 492H102V327h153s38-63 114-122H51c-28 0-51 27-51 61v697c0 34 23 61 51 61h768c28 0 51-27 51-61V614l-102 100v187z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Order">M841 627A43 43 0 00811 555h-299v85h196l-183 183A43 43 0 00555 896h299v-85h-196l183-183zM299 170H213v512H85l171 171 171-171H299zM725 128h-85c-18 0-34 11-40 28l-117 313h91L606 384h154l32 85h91l-117-313A43 43 0 00725 128zm-88 171 32-85h26l32 85h-90z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.OrderByName">M841 627A43 43 0 00811 555h-299v85h196l-183 183A43 43 0 00555 896h299v-85h-196l183-183zM299 170H213v512H85l171 171 171-171H299zM725 128h-85c-18 0-34 11-40 28l-117 313h91L606 384h154l32 85h91l-117-313A43 43 0 00725 128zm-88 171 32-85h26l32 85h-90z</StreamGeometry>
|
||||||
|
<StreamGeometry x:Key="Icons.OrderByTime">M512 0a512 512 0 01512 512 57 57 0 01-114 0 398 398 0 10-398 398 57 57 0 010 114A512 512 0 01512 0zm367 600 121 120a57 57 0 01-80 81l-40-40V967a57 57 0 01-50 57l-7 0a57 57 0 01-57-57v-205l-40 40a57 57 0 01-75 5l-5-5a57 57 0 01-0-80l120-121a80 80 0 01113-0zM512 272a57 57 0 0157 57V499h114a57 57 0 0156 50L740 556a57 57 0 01-57 57H512a57 57 0 01-57-57v-228a57 57 0 0150-57L512 272z</StreamGeometry>
|
||||||
|
<StreamGeometry x:Key="Icons.Parameter">M834 0H190C85 0 0 85 0 189v646c0 104 85 189 189 189h645c104 0 189-85 189-189V189C1024 85 939 0 834 0zM658 748c-25 29-62 47-111 54v54h-66v-56c-38-4-72-19-101-44-29-26-43-71-43-135v-28h144v35c0 39 1 63 4 72 3 9 10 14 22 14 10 0 17-3 22-10 5-7 7-16 7-29 0-32-2-55-7-69-5-14-20-29-46-45-44-28-74-48-90-61-16-13-29-31-41-55-12-24-17-50-17-80 0-43 12-77 37-101 24-24 61-40 110-45v-46h66v46c44 6 78 21 100 45 22 24 33 57 33 100 0 6-0 15-1 27H535v-24c0-25-2-42-5-50-3-8-10-12-21-12-9 0-15 3-20 10-4 7-7 17-7 30 0 23 5 38 14 47 9 9 35 27 78 53 37 22 62 39 75 51 13 12 25 28 34 50 9 22 14 48 14 80 0 51-12 92-37 121z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Password">M640 96c-158 0-288 130-288 288 0 17 3 31 5 46L105 681 96 691V928h224v-96h96v-96h96v-95c38 18 82 31 128 31 158 0 288-130 288-288s-130-288-288-288zm0 64c123 0 224 101 224 224s-101 224-224 224a235 235 0 01-109-28l-8-4H448v96h-96v96H256v96H160v-146l253-254 12-11-3-17C419 417 416 400 416 384c0-123 101-224 224-224zm64 96a64 64 0 100 128 64 64 0 100-128z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Password">M640 96c-158 0-288 130-288 288 0 17 3 31 5 46L105 681 96 691V928h224v-96h96v-96h96v-95c38 18 82 31 128 31 158 0 288-130 288-288s-130-288-288-288zm0 64c123 0 224 101 224 224s-101 224-224 224a235 235 0 01-109-28l-8-4H448v96h-96v96H256v96H160v-146l253-254 12-11-3-17C419 417 416 400 416 384c0-123 101-224 224-224zm64 96a64 64 0 100 128 64 64 0 100-128z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Paste">M544 85c49 0 90 37 95 85h75a96 96 0 0196 89L811 267a32 32 0 01-28 32L779 299a32 32 0 01-32-28L747 267a32 32 0 00-28-32L715 235h-91a96 96 0 01-80 42H395c-33 0-62-17-80-42L224 235a32 32 0 00-32 28L192 267v576c0 16 12 30 28 32l4 0h128a32 32 0 0132 28l0 4a32 32 0 01-32 32h-128a96 96 0 01-96-89L128 843V267a96 96 0 0189-96L224 171h75a96 96 0 0195-85h150zm256 256a96 96 0 0196 89l0 7v405a96 96 0 01-89 96L800 939h-277a96 96 0 01-96-89L427 843v-405a96 96 0 0189-96L523 341h277zm-256-192H395a32 32 0 000 64h150a32 32 0 100-64z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Paste">M544 85c49 0 90 37 95 85h75a96 96 0 0196 89L811 267a32 32 0 01-28 32L779 299a32 32 0 01-32-28L747 267a32 32 0 00-28-32L715 235h-91a96 96 0 01-80 42H395c-33 0-62-17-80-42L224 235a32 32 0 00-32 28L192 267v576c0 16 12 30 28 32l4 0h128a32 32 0 0132 28l0 4a32 32 0 01-32 32h-128a96 96 0 01-96-89L128 843V267a96 96 0 0189-96L224 171h75a96 96 0 0195-85h150zm256 256a96 96 0 0196 89l0 7v405a96 96 0 01-89 96L800 939h-277a96 96 0 01-96-89L427 843v-405a96 96 0 0189-96L523 341h277zm-256-192H395a32 32 0 000 64h150a32 32 0 100-64z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Plus">m186 532 287 0 0 287c0 11 9 20 20 20s20-9 20-20l0-287 287 0c11 0 20-9 20-20s-9-20-20-20l-287 0 0-287c0-11-9-20-20-20s-20 9-20 20l0 287-287 0c-11 0-20 9-20 20s9 20 20 20z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Pattern">M470 722q-23 3-43 3T384 722v-150l-106 106q-34-26-60-59L324 512H174q-3-23-3-43t3-42h150L218 320q16-20 28-32t32-27L384 367V217q23-4 43-4t43 4v150l106-106q34 26 60 59l-106 107h150q3 22 3 42T680 512h-150l106 107q-16 20-28 32t-32 27l-106-106v150zM0 811q0-36 25-61t61-25 61 25 25 61-25 61-61 25-61-25T0 811z</StreamGeometry>
|
||||||
|
<StreamGeometry x:Key="Icons.Plus">M576 64H448v384H64v128h384v384h128V576h384V448H576z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Pull">M432 0h160c27 0 48 21 48 48v336h175c36 0 53 43 28 68L539 757c-15 15-40 15-55 0L180 452c-25-25-7-68 28-68H384V48c0-27 21-48 48-48zm592 752v224c0 27-21 48-48 48H48c-27 0-48-21-48-48V752c0-27 21-48 48-48h293l98 98c40 40 105 40 145 0l98-98H976c27 0 48 21 48 48zm-248 176c0-22-18-40-40-40s-40 18-40 40s18 40 40 40s40-18 40-40zm128 0c0-22-18-40-40-40s-40 18-40 40s18 40 40 40s40-18 40-40z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Pull">M432 0h160c27 0 48 21 48 48v336h175c36 0 53 43 28 68L539 757c-15 15-40 15-55 0L180 452c-25-25-7-68 28-68H384V48c0-27 21-48 48-48zm592 752v224c0 27-21 48-48 48H48c-27 0-48-21-48-48V752c0-27 21-48 48-48h293l98 98c40 40 105 40 145 0l98-98H976c27 0 48 21 48 48zm-248 176c0-22-18-40-40-40s-40 18-40 40s18 40 40 40s40-18 40-40zm128 0c0-22-18-40-40-40s-40 18-40 40s18 40 40 40s40-18 40-40z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Push">M592 768h-160c-27 0-48-21-48-48V384h-175c-36 0-53-43-28-68L485 11c15-15 40-15 55 0l304 304c25 25 7 68-28 68H640v336c0 27-21 48-48 48zm432-16v224c0 27-21 48-48 48H48c-27 0-48-21-48-48V752c0-27 21-48 48-48h272v16c0 62 50 112 112 112h160c62 0 112-50 112-112v-16h272c27 0 48 21 48 48zm-248 176c0-22-18-40-40-40s-40 18-40 40s18 40 40 40s40-18 40-40zm128 0c0-22-18-40-40-40s-40 18-40 40s18 40 40 40s40-18 40-40z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Push">M592 768h-160c-27 0-48-21-48-48V384h-175c-36 0-53-43-28-68L485 11c15-15 40-15 55 0l304 304c25 25 7 68-28 68H640v336c0 27-21 48-48 48zm432-16v224c0 27-21 48-48 48H48c-27 0-48-21-48-48V752c0-27 21-48 48-48h272v16c0 62 50 112 112 112h160c62 0 112-50 112-112v-16h272c27 0 48 21 48 48zm-248 176c0-22-18-40-40-40s-40 18-40 40s18 40 40 40s40-18 40-40zm128 0c0-22-18-40-40-40s-40 18-40 40s18 40 40 40s40-18 40-40z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Quit">M563 555c0 28-23 51-51 51-28 0-51-23-51-51L461 113c0-28 23-51 51-51s51 23 51 51L563 555 563 555zM85 535c0-153 81-287 201-362 24-15 55-8 70 16C371 214 363 245 340 260 248 318 187 419 187 535c0 180 146 325 325 325 180-0 325-146 325-325 0-119-64-223-160-280-24-14-32-46-18-70 14-24 46-32 70-18 125 74 210 211 210 367 0 236-191 427-427 427C276 963 85 772 85 535</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Quit">M563 555c0 28-23 51-51 51-28 0-51-23-51-51L461 113c0-28 23-51 51-51s51 23 51 51L563 555 563 555zM85 535c0-153 81-287 201-362 24-15 55-8 70 16C371 214 363 245 340 260 248 318 187 419 187 535c0 180 146 325 325 325 180-0 325-146 325-325 0-119-64-223-160-280-24-14-32-46-18-70 14-24 46-32 70-18 125 74 210 211 210 367 0 236-191 427-427 427C276 963 85 772 85 535</StreamGeometry>
|
||||||
|
@ -139,9 +144,9 @@
|
||||||
<StreamGeometry x:Key="Icons.Waiting">M812 864h-29V654c0-21-11-40-28-52l-133-88 134-89c18-12 28-31 28-52V164h28c18 0 32-14 32-32s-14-32-32-32H212c-18 0-32 14-32 32s14 32 32 32h30v210c0 21 11 40 28 52l133 88-134 89c-18 12-28 31-28 52V864H212c-18 0-32 14-32 32s14 32 32 32h600c18 0 32-14 32-32s-14-32-32-32zM441 566c18-12 28-31 28-52s-11-40-28-52L306 373V164h414v209l-136 90c-18 12-28 31-28 52 0 21 11 40 28 52l135 89V695c-9-7-20-13-32-19-30-15-93-41-176-41-63 0-125 14-175 38-12 6-22 12-31 18v-36l136-90z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Waiting">M812 864h-29V654c0-21-11-40-28-52l-133-88 134-89c18-12 28-31 28-52V164h28c18 0 32-14 32-32s-14-32-32-32H212c-18 0-32 14-32 32s14 32 32 32h30v210c0 21 11 40 28 52l133 88-134 89c-18 12-28 31-28 52V864H212c-18 0-32 14-32 32s14 32 32 32h600c18 0 32-14 32-32s-14-32-32-32zM441 566c18-12 28-31 28-52s-11-40-28-52L306 373V164h414v209l-136 90c-18 12-28 31-28 52 0 21 11 40 28 52l135 89V695c-9-7-20-13-32-19-30-15-93-41-176-41-63 0-125 14-175 38-12 6-22 12-31 18v-36l136-90z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Whitespace">M0 512M1024 512M512 0M512 1024M762 412v100h-500v-100h-150v200h800v-200h-150z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Whitespace">M0 512M1024 512M512 0M512 1024M762 412v100h-500v-100h-150v200h800v-200h-150z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Window.Close">M519 459 222 162a37 37 0 10-52 52l297 297L169 809a37 37 0 1052 52l297-297 297 297a37 37 0 1052-52l-297-297 297-297a37 37 0 10-52-52L519 459z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Window.Close">M519 459 222 162a37 37 0 10-52 52l297 297L169 809a37 37 0 1052 52l297-297 297 297a37 37 0 1052-52l-297-297 297-297a37 37 0 10-52-52L519 459z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Window.Minimize">M1024 565V459H0V565H1024ZM512 0M512 1024</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Window.Minimize">M0 0M32 512H936v96H32z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Window.Maximize">M153 154h768v768h-768v-768zm64 64v640h640v-640h-640z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Window.Maximize">M153 154h768v768h-768v-768zm64 64v640h640v-640h-640z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Window.Restore">M256 128l0 192L64 320l0 576 704 0 0-192 192 0L960 128 256 128zM704 832 128 832 128 384l576 0L704 832zM896 640l-128 0L768 320 320 320 320 192l576 0L896 640z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Window.Restore">M796 231v727H64V231h732zm-82 78H146V880h567V309zM229 66H960v732H796v-82h82V148h-567v82h-82V66z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.WordWrap">M248 221a77 77 0 00-30-21c-18-7-40-10-68-5a224 224 0 00-45 13c-5 2-10 5-15 8l-3 2v68l11-9c10-8 21-14 34-19 13-5 26-7 39-7 12 0 21 3 28 10 6 6 9 16 9 29l-62 9c-14 2-26 6-36 11a80 80 0 00-25 20c-7 8-12 17-15 27-6 21-6 44 1 65a70 70 0 0041 43c10 4 21 6 34 6a80 80 0 0063-28v22h64V298c0-16-2-31-6-44a91 91 0 00-18-33zm-41 121v15c0 8-1 15-4 22a48 48 0 01-24 29 44 44 0 01-33 2 29 29 0 01-10-6 25 25 0 01-6-9 30 30 0 01-2-12c0-5 1-9 2-14a21 21 0 015-9 28 28 0 0110-7 83 83 0 0120-5l42-6zm323-68a144 144 0 00-16-42 87 87 0 00-28-29 75 75 0 00-41-11 73 73 0 00-44 14c-6 5-12 11-17 17V64H326v398h59v-18c8 10 18 17 30 21 6 2 13 3 21 3 16 0 31-4 43-11 12-7 23-18 31-31a147 147 0 0019-46 248 248 0 006-57c0-17-2-33-5-49zm-55 49c0 15-1 28-4 39-2 11-6 20-10 27a41 41 0 01-15 15 37 37 0 01-36 1 44 44 0 01-13-12 59 59 0 01-9-18A76 76 0 01384 352v-33c0-10 1-20 4-29 2-8 6-15 10-22a43 43 0 0115-13 37 37 0 0119-5 35 35 0 0132 18c4 6 7 14 9 23 2 9 3 20 3 31zM154 634a58 58 0 0120-15c14-6 35-7 49-1 7 3 13 6 20 12l21 17V572l-6-4a124 124 0 00-58-14c-20 0-38 4-54 11-16 7-30 17-41 30-12 13-20 29-26 46-6 17-9 36-9 57 0 18 3 36 8 52 6 16 14 30 24 42 10 12 23 21 38 28 15 7 32 10 50 10 15 0 28-2 39-5 11-3 21-8 30-14l5-4v-57l-13 6a26 26 0 01-5 2c-3 1-6 2-8 3-2 1-15 6-15 6-4 2-9 3-14 4a63 63 0 01-38-4 53 53 0 01-20-14 70 70 0 01-13-24 111 111 0 01-5-34c0-13 2-26 5-36 3-10 8-19 14-26zM896 384h-256V320h288c21 1 32 12 32 32v384c0 18-12 32-32 32H504l132 133-45 45-185-185c-16-21-16-25 0-45l185-185L637 576l-128 128H896V384z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.WordWrap">M248 221a77 77 0 00-30-21c-18-7-40-10-68-5a224 224 0 00-45 13c-5 2-10 5-15 8l-3 2v68l11-9c10-8 21-14 34-19 13-5 26-7 39-7 12 0 21 3 28 10 6 6 9 16 9 29l-62 9c-14 2-26 6-36 11a80 80 0 00-25 20c-7 8-12 17-15 27-6 21-6 44 1 65a70 70 0 0041 43c10 4 21 6 34 6a80 80 0 0063-28v22h64V298c0-16-2-31-6-44a91 91 0 00-18-33zm-41 121v15c0 8-1 15-4 22a48 48 0 01-24 29 44 44 0 01-33 2 29 29 0 01-10-6 25 25 0 01-6-9 30 30 0 01-2-12c0-5 1-9 2-14a21 21 0 015-9 28 28 0 0110-7 83 83 0 0120-5l42-6zm323-68a144 144 0 00-16-42 87 87 0 00-28-29 75 75 0 00-41-11 73 73 0 00-44 14c-6 5-12 11-17 17V64H326v398h59v-18c8 10 18 17 30 21 6 2 13 3 21 3 16 0 31-4 43-11 12-7 23-18 31-31a147 147 0 0019-46 248 248 0 006-57c0-17-2-33-5-49zm-55 49c0 15-1 28-4 39-2 11-6 20-10 27a41 41 0 01-15 15 37 37 0 01-36 1 44 44 0 01-13-12 59 59 0 01-9-18A76 76 0 01384 352v-33c0-10 1-20 4-29 2-8 6-15 10-22a43 43 0 0115-13 37 37 0 0119-5 35 35 0 0132 18c4 6 7 14 9 23 2 9 3 20 3 31zM154 634a58 58 0 0120-15c14-6 35-7 49-1 7 3 13 6 20 12l21 17V572l-6-4a124 124 0 00-58-14c-20 0-38 4-54 11-16 7-30 17-41 30-12 13-20 29-26 46-6 17-9 36-9 57 0 18 3 36 8 52 6 16 14 30 24 42 10 12 23 21 38 28 15 7 32 10 50 10 15 0 28-2 39-5 11-3 21-8 30-14l5-4v-57l-13 6a26 26 0 01-5 2c-3 1-6 2-8 3-2 1-15 6-15 6-4 2-9 3-14 4a63 63 0 01-38-4 53 53 0 01-20-14 70 70 0 01-13-24 111 111 0 01-5-34c0-13 2-26 5-36 3-10 8-19 14-26zM896 384h-256V320h288c21 1 32 12 32 32v384c0 18-12 32-32 32H504l132 133-45 45-185-185c-16-21-16-25 0-45l185-185L637 576l-128 128H896V384z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Workspace">M128 691H6V38h838v160h-64V102H70v525H128zM973 806H154V250h819v557zm-755-64h691V314H218v429zM365 877h448v64h-448z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Workspace">M128 691H6V38h838v160h-64V102H70v525H128zM973 806H154V250h819v557zm-755-64h691V314H218v429zM365 877h448v64h-448z</StreamGeometry>
|
||||||
<StreamGeometry x:Key="Icons.Worktree">M853 267H514c-4 0-6-2-9-4l-38-66c-13-21-38-36-64-36H171c-41 0-75 34-75 75v555c0 41 34 75 75 75h683c41 0 75-34 75-75V341c0-41-34-75-75-75zm-683-43h233c4 0 6 2 9 4l38 66c13 21 38 36 64 36H853c6 0 11 4 11 11v75h-704V235c0-6 4-11 11-11zm683 576H171c-6 0-11-4-11-11V480h704V789c0 6-4 11-11 11z</StreamGeometry>
|
<StreamGeometry x:Key="Icons.Worktree">M853 267H514c-4 0-6-2-9-4l-38-66c-13-21-38-36-64-36H171c-41 0-75 34-75 75v555c0 41 34 75 75 75h683c41 0 75-34 75-75V341c0-41-34-75-75-75zm-683-43h233c4 0 6 2 9 4l38 66c13 21 38 36 64 36H853c6 0 11 4 11 11v75h-704V235c0-6 4-11 11-11zm683 576H171c-6 0-11-4-11-11V480h704V789c0 6-4 11-11 11z</StreamGeometry>
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 2.6 KiB |
Binary file not shown.
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 3.2 KiB |
|
@ -6,6 +6,9 @@
|
||||||
<x:String x:Key="Text.About" xml:space="preserve">Info</x:String>
|
<x:String x:Key="Text.About" xml:space="preserve">Info</x:String>
|
||||||
<x:String x:Key="Text.About.Menu" xml:space="preserve">Über SourceGit</x:String>
|
<x:String x:Key="Text.About.Menu" xml:space="preserve">Über SourceGit</x:String>
|
||||||
<x:String x:Key="Text.About.SubTitle" xml:space="preserve">Open Source & freier Git GUI Client</x:String>
|
<x:String x:Key="Text.About.SubTitle" xml:space="preserve">Open Source & freier Git GUI Client</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore" xml:space="preserve">Zu ignorierende Datei(en) hinzufügen</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore.Pattern" xml:space="preserve">Muster:</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore.Storage" xml:space="preserve">Speichern in Datei:</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree" xml:space="preserve">Worktree hinzufügen</x:String>
|
<x:String x:Key="Text.AddWorktree" xml:space="preserve">Worktree hinzufügen</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree.Location" xml:space="preserve">Ordner:</x:String>
|
<x:String x:Key="Text.AddWorktree.Location" xml:space="preserve">Ordner:</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree.Location.Placeholder" xml:space="preserve">Pfad für diesen Worktree. Relativer Pfad wird unterstützt.</x:String>
|
<x:String x:Key="Text.AddWorktree.Location.Placeholder" xml:space="preserve">Pfad für diesen Worktree. Relativer Pfad wird unterstützt.</x:String>
|
||||||
|
@ -39,6 +42,8 @@
|
||||||
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">ALS UNVERÄNDERT ANGENOMMENE DATEIEN</x:String>
|
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">ALS UNVERÄNDERT ANGENOMMENE DATEIEN</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">KEINE ALS UNVERÄNDERT ANGENOMMENEN DATEIEN</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">KEINE ALS UNVERÄNDERT ANGENOMMENEN DATEIEN</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">ENTFERNEN</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">ENTFERNEN</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Load" xml:space="preserve">Bild laden...</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Refetch" xml:space="preserve">Aktualisieren</x:String>
|
||||||
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">BINÄRE DATEI NICHT UNTERSTÜTZT!!!</x:String>
|
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">BINÄRE DATEI NICHT UNTERSTÜTZT!!!</x:String>
|
||||||
<x:String x:Key="Text.Bisect">Bisect</x:String>
|
<x:String x:Key="Text.Bisect">Bisect</x:String>
|
||||||
<x:String x:Key="Text.Bisect.Abort">Abbrechen</x:String>
|
<x:String x:Key="Text.Bisect.Abort">Abbrechen</x:String>
|
||||||
|
@ -66,6 +71,7 @@
|
||||||
<x:String x:Key="Text.BranchCM.Push" xml:space="preserve">Push ${0}$</x:String>
|
<x:String x:Key="Text.BranchCM.Push" xml:space="preserve">Push ${0}$</x:String>
|
||||||
<x:String x:Key="Text.BranchCM.Rebase" xml:space="preserve">Rebase ${0}$ auf ${1}$...</x:String>
|
<x:String x:Key="Text.BranchCM.Rebase" xml:space="preserve">Rebase ${0}$ auf ${1}$...</x:String>
|
||||||
<x:String x:Key="Text.BranchCM.Rename" xml:space="preserve">Benenne ${0}$ um...</x:String>
|
<x:String x:Key="Text.BranchCM.Rename" xml:space="preserve">Benenne ${0}$ um...</x:String>
|
||||||
|
<x:String x:Key="Text.BranchCM.ResetToSelectedCommit" xml:space="preserve">Setze ${0}$ zurück auf ${1}$...</x:String>
|
||||||
<x:String x:Key="Text.BranchCM.Tracking" xml:space="preserve">Setze verfolgten Branch...</x:String>
|
<x:String x:Key="Text.BranchCM.Tracking" xml:space="preserve">Setze verfolgten Branch...</x:String>
|
||||||
<x:String x:Key="Text.BranchCompare" xml:space="preserve">Branch Vergleich</x:String>
|
<x:String x:Key="Text.BranchCompare" xml:space="preserve">Branch Vergleich</x:String>
|
||||||
<x:String x:Key="Text.BranchUpstreamInvalid" xml:space="preserve">Ungültiger upstream!</x:String>
|
<x:String x:Key="Text.BranchUpstreamInvalid" xml:space="preserve">Ungültiger upstream!</x:String>
|
||||||
|
@ -87,6 +93,9 @@
|
||||||
<x:String x:Key="Text.Checkout.LocalChanges.StashAndReply" xml:space="preserve">Stashen & wieder anwenden</x:String>
|
<x:String x:Key="Text.Checkout.LocalChanges.StashAndReply" xml:space="preserve">Stashen & wieder anwenden</x:String>
|
||||||
<x:String x:Key="Text.Checkout.RecurseSubmodules" xml:space="preserve">Alle Submodule updaten</x:String>
|
<x:String x:Key="Text.Checkout.RecurseSubmodules" xml:space="preserve">Alle Submodule updaten</x:String>
|
||||||
<x:String x:Key="Text.Checkout.Target" xml:space="preserve">Branch:</x:String>
|
<x:String x:Key="Text.Checkout.Target" xml:space="preserve">Branch:</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WarnLostCommits" xml:space="preserve">Dein aktueller HEAD enthält Commit(s) ohne Verbindung zu einem Branch/Tag. Möchtest du trotzdem fortfahren?</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WithFastForward" xml:space="preserve">Auschecken & Fast-Forward</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WithFastForward.Upstream" xml:space="preserve">Fast-Forward zu:</x:String>
|
||||||
<x:String x:Key="Text.CherryPick" xml:space="preserve">Cherry Pick</x:String>
|
<x:String x:Key="Text.CherryPick" xml:space="preserve">Cherry Pick</x:String>
|
||||||
<x:String x:Key="Text.CherryPick.AppendSourceToMessage" xml:space="preserve">Quelle an Commit-Nachricht anhängen</x:String>
|
<x:String x:Key="Text.CherryPick.AppendSourceToMessage" xml:space="preserve">Quelle an Commit-Nachricht anhängen</x:String>
|
||||||
<x:String x:Key="Text.CherryPick.Commit" xml:space="preserve">Commit(s):</x:String>
|
<x:String x:Key="Text.CherryPick.Commit" xml:space="preserve">Commit(s):</x:String>
|
||||||
|
@ -119,6 +128,7 @@
|
||||||
<x:String x:Key="Text.CommitCM.InteractiveRebase" xml:space="preserve">Interactives Rebase von ${0}$ auf diesen Commit</x:String>
|
<x:String x:Key="Text.CommitCM.InteractiveRebase" xml:space="preserve">Interactives Rebase von ${0}$ auf diesen Commit</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Merge" xml:space="preserve">Merge in ${0}$ hinein</x:String>
|
<x:String x:Key="Text.CommitCM.Merge" xml:space="preserve">Merge in ${0}$ hinein</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.MergeMultiple" xml:space="preserve">Merge ...</x:String>
|
<x:String x:Key="Text.CommitCM.MergeMultiple" xml:space="preserve">Merge ...</x:String>
|
||||||
|
<x:String x:Key="Text.CommitCM.PushRevision" xml:space="preserve">Push ${0}$ zu ${1}$</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Rebase" xml:space="preserve">Rebase von ${0}$ auf diesen Commit</x:String>
|
<x:String x:Key="Text.CommitCM.Rebase" xml:space="preserve">Rebase von ${0}$ auf diesen Commit</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Reset" xml:space="preserve">Reset ${0}$ auf diesen Commit</x:String>
|
<x:String x:Key="Text.CommitCM.Reset" xml:space="preserve">Reset ${0}$ auf diesen Commit</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Revert" xml:space="preserve">Commit rückgängig machen</x:String>
|
<x:String x:Key="Text.CommitCM.Revert" xml:space="preserve">Commit rückgängig machen</x:String>
|
||||||
|
@ -127,6 +137,7 @@
|
||||||
<x:String x:Key="Text.CommitCM.Squash" xml:space="preserve">Squash in den Vorgänger</x:String>
|
<x:String x:Key="Text.CommitCM.Squash" xml:space="preserve">Squash in den Vorgänger</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.SquashCommitsSinceThis" xml:space="preserve">Squash Nachfolger Commits bis hier</x:String>
|
<x:String x:Key="Text.CommitCM.SquashCommitsSinceThis" xml:space="preserve">Squash Nachfolger Commits bis hier</x:String>
|
||||||
<x:String x:Key="Text.CommitDetail.Changes" xml:space="preserve">ÄNDERUNGEN</x:String>
|
<x:String x:Key="Text.CommitDetail.Changes" xml:space="preserve">ÄNDERUNGEN</x:String>
|
||||||
|
<x:String x:Key="Text.CommitDetail.Changes.Count" xml:space="preserve">geänderte Datei(en)</x:String>
|
||||||
<x:String x:Key="Text.CommitDetail.Changes.Search" xml:space="preserve">Änderungen durchsuchen...</x:String>
|
<x:String x:Key="Text.CommitDetail.Changes.Search" xml:space="preserve">Änderungen durchsuchen...</x:String>
|
||||||
<x:String x:Key="Text.CommitDetail.Files" xml:space="preserve">DATEIEN</x:String>
|
<x:String x:Key="Text.CommitDetail.Files" xml:space="preserve">DATEIEN</x:String>
|
||||||
<x:String x:Key="Text.CommitDetail.Files.LFS" xml:space="preserve">LFS DATEI</x:String>
|
<x:String x:Key="Text.CommitDetail.Files.LFS" xml:space="preserve">LFS DATEI</x:String>
|
||||||
|
@ -154,13 +165,17 @@
|
||||||
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">Template Name:</x:String>
|
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">Template Name:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">BENUTZERDEFINIERTE AKTION</x:String>
|
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">BENUTZERDEFINIERTE AKTION</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">Argumente:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">Argumente:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">${REPO} - Repository Pfad; ${SHA} - SHA-Wert des selektierten Commits</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">Vordefinierte Parameter: ${REPO} - Repository Pfad; ${BRANCH} - selektierter Branch; ${SHA} - Hash des selektierten Commits; ${TAG} - selektiertes Tag</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">Ausführbare Datei:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">Ausführbare Datei:</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls" xml:space="preserve">Eingabe-Steuerelemente:</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls.Edit" xml:space="preserve">Bearbeiten</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls.Tip" xml:space="preserve">$1, $2 ... können als Argumente in Eingabe-Steuerelementen benutzt werden</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">Name:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">Name:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">Geltungsbereich:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">Geltungsbereich:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Branch" xml:space="preserve">Branch</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Branch" xml:space="preserve">Branch</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Commit" xml:space="preserve">Commit</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Commit" xml:space="preserve">Commit</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Repository" xml:space="preserve">Repository</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Repository" xml:space="preserve">Repository</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Tag" xml:space="preserve">Tag</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.WaitForExit" xml:space="preserve">Auf Beenden der Aktion warten</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.WaitForExit" xml:space="preserve">Auf Beenden der Aktion warten</x:String>
|
||||||
<x:String x:Key="Text.Configure.Email" xml:space="preserve">Email Adresse</x:String>
|
<x:String x:Key="Text.Configure.Email" xml:space="preserve">Email Adresse</x:String>
|
||||||
<x:String x:Key="Text.Configure.Email.Placeholder" xml:space="preserve">Email Adresse</x:String>
|
<x:String x:Key="Text.Configure.Email.Placeholder" xml:space="preserve">Email Adresse</x:String>
|
||||||
|
@ -189,6 +204,15 @@
|
||||||
<x:String x:Key="Text.Configure.Proxy.Placeholder" xml:space="preserve">HTTP Proxy für dieses Repository</x:String>
|
<x:String x:Key="Text.Configure.Proxy.Placeholder" xml:space="preserve">HTTP Proxy für dieses Repository</x:String>
|
||||||
<x:String x:Key="Text.Configure.User" xml:space="preserve">Benutzername</x:String>
|
<x:String x:Key="Text.Configure.User" xml:space="preserve">Benutzername</x:String>
|
||||||
<x:String x:Key="Text.Configure.User.Placeholder" xml:space="preserve">Benutzername für dieses Repository</x:String>
|
<x:String x:Key="Text.Configure.User.Placeholder" xml:space="preserve">Benutzername für dieses Repository</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls" xml:space="preserve">Bearbeite Steuerelemente für benutzerdefinierte Aktionen</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.CheckedValue" xml:space="preserve">Wert bei Markierung:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.CheckedValue.Tip" xml:space="preserve">Wenn markiert, wird dieser Wert in Kommandozeilen-Argumenten benutzt</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Description" xml:space="preserve">Beschreibung:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Description.Tip" xml:space="preserve">Dient als Platzhalter in TextBox/Path Selector (Pfadeingabe) oder als Tooltip in CheckBox (Kontrollkästchen)</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.DefaultValue" xml:space="preserve">Standardwert:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.IsFolder" xml:space="preserve">Ordner?</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Label" xml:space="preserve">Bezeichnung:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Type" xml:space="preserve">Typ:</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace" xml:space="preserve">Arbeitsplätze</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace" xml:space="preserve">Arbeitsplätze</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace.Color" xml:space="preserve">Farbe</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace.Color" xml:space="preserve">Farbe</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace.Name" xml:space="preserve">Name</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace.Name" xml:space="preserve">Name</x:String>
|
||||||
|
@ -218,6 +242,7 @@
|
||||||
<x:String x:Key="Text.CreateBranch.Name.Placeholder" xml:space="preserve">Branch-Namen eingeben.</x:String>
|
<x:String x:Key="Text.CreateBranch.Name.Placeholder" xml:space="preserve">Branch-Namen eingeben.</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.Name.WarnSpace" xml:space="preserve">Leerzeichen werden durch Bindestriche ersetzt.</x:String>
|
<x:String x:Key="Text.CreateBranch.Name.WarnSpace" xml:space="preserve">Leerzeichen werden durch Bindestriche ersetzt.</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.Title" xml:space="preserve">Lokalen Branch erstellen</x:String>
|
<x:String x:Key="Text.CreateBranch.Title" xml:space="preserve">Lokalen Branch erstellen</x:String>
|
||||||
|
<x:String x:Key="Text.CreateBranch.OverwriteExisting" xml:space="preserve">Überschreibe existierenden Branch</x:String>
|
||||||
<x:String x:Key="Text.CreateTag" xml:space="preserve">Tag erstellen...</x:String>
|
<x:String x:Key="Text.CreateTag" xml:space="preserve">Tag erstellen...</x:String>
|
||||||
<x:String x:Key="Text.CreateTag.BasedOn" xml:space="preserve">Neuer Tag auf:</x:String>
|
<x:String x:Key="Text.CreateTag.BasedOn" xml:space="preserve">Neuer Tag auf:</x:String>
|
||||||
<x:String x:Key="Text.CreateTag.GPGSign" xml:space="preserve">Mit GPG signieren</x:String>
|
<x:String x:Key="Text.CreateTag.GPGSign" xml:space="preserve">Mit GPG signieren</x:String>
|
||||||
|
@ -232,6 +257,9 @@
|
||||||
<x:String x:Key="Text.CreateTag.Type.Lightweight" xml:space="preserve">Ohne Anmerkung</x:String>
|
<x:String x:Key="Text.CreateTag.Type.Lightweight" xml:space="preserve">Ohne Anmerkung</x:String>
|
||||||
<x:String x:Key="Text.CtrlClickTip" xml:space="preserve">Halte Strg gedrückt, um direkt auszuführen</x:String>
|
<x:String x:Key="Text.CtrlClickTip" xml:space="preserve">Halte Strg gedrückt, um direkt auszuführen</x:String>
|
||||||
<x:String x:Key="Text.Cut" xml:space="preserve">Ausschneiden</x:String>
|
<x:String x:Key="Text.Cut" xml:space="preserve">Ausschneiden</x:String>
|
||||||
|
<x:String x:Key="Text.DeinitSubmodule" xml:space="preserve">De-initialisiere Submodul</x:String>
|
||||||
|
<x:String x:Key="Text.DeinitSubmodule.Force" xml:space="preserve">Erzwinge De-Initialisierung, selbst wenn es lokale Änderungen enthält.</x:String>
|
||||||
|
<x:String x:Key="Text.DeinitSubmodule.Path" xml:space="preserve">Submodul:</x:String>
|
||||||
<x:String x:Key="Text.DeleteBranch" xml:space="preserve">Branch löschen</x:String>
|
<x:String x:Key="Text.DeleteBranch" xml:space="preserve">Branch löschen</x:String>
|
||||||
<x:String x:Key="Text.DeleteBranch.Branch" xml:space="preserve">Branch:</x:String>
|
<x:String x:Key="Text.DeleteBranch.Branch" xml:space="preserve">Branch:</x:String>
|
||||||
<x:String x:Key="Text.DeleteBranch.IsRemoteTip" xml:space="preserve">Du löscht gerade einen Remote-Branch!!!</x:String>
|
<x:String x:Key="Text.DeleteBranch.IsRemoteTip" xml:space="preserve">Du löscht gerade einen Remote-Branch!!!</x:String>
|
||||||
|
@ -267,6 +295,7 @@
|
||||||
<x:String x:Key="Text.Diff.ShowHiddenSymbols" xml:space="preserve">Zeige versteckte Symbole</x:String>
|
<x:String x:Key="Text.Diff.ShowHiddenSymbols" xml:space="preserve">Zeige versteckte Symbole</x:String>
|
||||||
<x:String x:Key="Text.Diff.SideBySide" xml:space="preserve">Nebeneinander</x:String>
|
<x:String x:Key="Text.Diff.SideBySide" xml:space="preserve">Nebeneinander</x:String>
|
||||||
<x:String x:Key="Text.Diff.Submodule" xml:space="preserve">SUBMODUL</x:String>
|
<x:String x:Key="Text.Diff.Submodule" xml:space="preserve">SUBMODUL</x:String>
|
||||||
|
<x:String x:Key="Text.Diff.Submodule.Deleted" xml:space="preserve">GELÖSCHT</x:String>
|
||||||
<x:String x:Key="Text.Diff.Submodule.New" xml:space="preserve">NEU</x:String>
|
<x:String x:Key="Text.Diff.Submodule.New" xml:space="preserve">NEU</x:String>
|
||||||
<x:String x:Key="Text.Diff.SwapCommits" xml:space="preserve">Seiten wechseln</x:String>
|
<x:String x:Key="Text.Diff.SwapCommits" xml:space="preserve">Seiten wechseln</x:String>
|
||||||
<x:String x:Key="Text.Diff.SyntaxHighlight" xml:space="preserve">Syntax Hervorhebung</x:String>
|
<x:String x:Key="Text.Diff.SyntaxHighlight" xml:space="preserve">Syntax Hervorhebung</x:String>
|
||||||
|
@ -289,8 +318,8 @@
|
||||||
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">Ziel:</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">Ziel:</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">Ausgewählte Gruppe bearbeiten</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">Ausgewählte Gruppe bearbeiten</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">Ausgewähltes Repository bearbeiten</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">Ausgewähltes Repository bearbeiten</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction" xml:space="preserve">Führe benutzerdefinierte Aktion aus</x:String>
|
<x:String x:Key="Text.ExecuteCustomAction.Target" xml:space="preserve">Ziel:</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction.Name" xml:space="preserve">Name der Aktion:</x:String>
|
<x:String x:Key="Text.ExecuteCustomAction.Repository" xml:space="preserve">Dieses Repository</x:String>
|
||||||
<x:String x:Key="Text.Fetch" xml:space="preserve">Fetch</x:String>
|
<x:String x:Key="Text.Fetch" xml:space="preserve">Fetch</x:String>
|
||||||
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">Alle Remotes fetchen</x:String>
|
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">Alle Remotes fetchen</x:String>
|
||||||
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">Aktiviere '--force' Option</x:String>
|
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">Aktiviere '--force' Option</x:String>
|
||||||
|
@ -325,6 +354,8 @@
|
||||||
<x:String x:Key="Text.GitFlow.FinishHotfix" xml:space="preserve">FLOW - Finish Hotfix</x:String>
|
<x:String x:Key="Text.GitFlow.FinishHotfix" xml:space="preserve">FLOW - Finish Hotfix</x:String>
|
||||||
<x:String x:Key="Text.GitFlow.FinishRelease" xml:space="preserve">FLOW - Finish Release</x:String>
|
<x:String x:Key="Text.GitFlow.FinishRelease" xml:space="preserve">FLOW - Finish Release</x:String>
|
||||||
<x:String x:Key="Text.GitFlow.FinishTarget" xml:space="preserve">Ziel:</x:String>
|
<x:String x:Key="Text.GitFlow.FinishTarget" xml:space="preserve">Ziel:</x:String>
|
||||||
|
<x:String x:Key="Text.GitFlow.FinishWithPush" xml:space="preserve">Push zu Remote(s) nach Durchführung des Finish</x:String>
|
||||||
|
<x:String x:Key="Text.GitFlow.FinishWithSquash" xml:space="preserve">Squash beim Merge</x:String>
|
||||||
<x:String x:Key="Text.GitFlow.Hotfix" xml:space="preserve">Hotfix:</x:String>
|
<x:String x:Key="Text.GitFlow.Hotfix" xml:space="preserve">Hotfix:</x:String>
|
||||||
<x:String x:Key="Text.GitFlow.HotfixPrefix" xml:space="preserve">Hotfix-Prefix:</x:String>
|
<x:String x:Key="Text.GitFlow.HotfixPrefix" xml:space="preserve">Hotfix-Prefix:</x:String>
|
||||||
<x:String x:Key="Text.GitFlow.Init" xml:space="preserve">Git-Flow initialisieren</x:String>
|
<x:String x:Key="Text.GitFlow.Init" xml:space="preserve">Git-Flow initialisieren</x:String>
|
||||||
|
@ -386,6 +417,8 @@
|
||||||
<x:String x:Key="Text.Hotkeys.Global.GotoPrevTab" xml:space="preserve">Zum vorherigen Tab wechseln</x:String>
|
<x:String x:Key="Text.Hotkeys.Global.GotoPrevTab" xml:space="preserve">Zum vorherigen Tab wechseln</x:String>
|
||||||
<x:String x:Key="Text.Hotkeys.Global.NewTab" xml:space="preserve">Neuen Tab erstellen</x:String>
|
<x:String x:Key="Text.Hotkeys.Global.NewTab" xml:space="preserve">Neuen Tab erstellen</x:String>
|
||||||
<x:String x:Key="Text.Hotkeys.Global.OpenPreferences" xml:space="preserve">Einstellungen öffnen</x:String>
|
<x:String x:Key="Text.Hotkeys.Global.OpenPreferences" xml:space="preserve">Einstellungen öffnen</x:String>
|
||||||
|
<x:String x:Key="Text.Hotkeys.Global.SwitchWorkspace" xml:space="preserve">Aktiven Arbeitsplatz wechseln</x:String>
|
||||||
|
<x:String x:Key="Text.Hotkeys.Global.SwitchTab" xml:space="preserve">Aktiven Tab wechseln</x:String>
|
||||||
<x:String x:Key="Text.Hotkeys.Repo" xml:space="preserve">REPOSITORY</x:String>
|
<x:String x:Key="Text.Hotkeys.Repo" xml:space="preserve">REPOSITORY</x:String>
|
||||||
<x:String x:Key="Text.Hotkeys.Repo.Commit" xml:space="preserve">Gestagte Änderungen committen</x:String>
|
<x:String x:Key="Text.Hotkeys.Repo.Commit" xml:space="preserve">Gestagte Änderungen committen</x:String>
|
||||||
<x:String x:Key="Text.Hotkeys.Repo.CommitAndPush" xml:space="preserve">Gestagte Änderungen committen und pushen</x:String>
|
<x:String x:Key="Text.Hotkeys.Repo.CommitAndPush" xml:space="preserve">Gestagte Änderungen committen und pushen</x:String>
|
||||||
|
@ -406,6 +439,7 @@
|
||||||
<x:String x:Key="Text.Hotkeys.TextEditor.CloseSearch" xml:space="preserve">Suchpanel schließen</x:String>
|
<x:String x:Key="Text.Hotkeys.TextEditor.CloseSearch" xml:space="preserve">Suchpanel schließen</x:String>
|
||||||
<x:String x:Key="Text.Hotkeys.TextEditor.GotoNextMatch" xml:space="preserve">Suche nächste Übereinstimmung</x:String>
|
<x:String x:Key="Text.Hotkeys.TextEditor.GotoNextMatch" xml:space="preserve">Suche nächste Übereinstimmung</x:String>
|
||||||
<x:String x:Key="Text.Hotkeys.TextEditor.GotoPrevMatch" xml:space="preserve">Suche vorherige Übereinstimmung</x:String>
|
<x:String x:Key="Text.Hotkeys.TextEditor.GotoPrevMatch" xml:space="preserve">Suche vorherige Übereinstimmung</x:String>
|
||||||
|
<x:String x:Key="Text.Hotkeys.TextEditor.OpenExternalMergeTool" xml:space="preserve">Öffne mit externem Diff/Merge Tool</x:String>
|
||||||
<x:String x:Key="Text.Hotkeys.TextEditor.Search" xml:space="preserve">Öffne Suchpanel</x:String>
|
<x:String x:Key="Text.Hotkeys.TextEditor.Search" xml:space="preserve">Öffne Suchpanel</x:String>
|
||||||
<x:String x:Key="Text.Hunk.Discard" xml:space="preserve">Verwerfen</x:String>
|
<x:String x:Key="Text.Hunk.Discard" xml:space="preserve">Verwerfen</x:String>
|
||||||
<x:String x:Key="Text.Hunk.Stage" xml:space="preserve">Stagen</x:String>
|
<x:String x:Key="Text.Hunk.Stage" xml:space="preserve">Stagen</x:String>
|
||||||
|
@ -427,7 +461,10 @@
|
||||||
<x:String x:Key="Text.IssueLinkCM.OpenInBrowser" xml:space="preserve">In Browser öffnen</x:String>
|
<x:String x:Key="Text.IssueLinkCM.OpenInBrowser" xml:space="preserve">In Browser öffnen</x:String>
|
||||||
<x:String x:Key="Text.Launcher.Error" xml:space="preserve">FEHLER</x:String>
|
<x:String x:Key="Text.Launcher.Error" xml:space="preserve">FEHLER</x:String>
|
||||||
<x:String x:Key="Text.Launcher.Info" xml:space="preserve">INFO</x:String>
|
<x:String x:Key="Text.Launcher.Info" xml:space="preserve">INFO</x:String>
|
||||||
|
<x:String x:Key="Text.Launcher.Workspaces" xml:space="preserve">Arbeitsplätze</x:String>
|
||||||
|
<x:String x:Key="Text.Launcher.Pages" xml:space="preserve">Tabs</x:String>
|
||||||
<x:String x:Key="Text.Merge" xml:space="preserve">Branch mergen</x:String>
|
<x:String x:Key="Text.Merge" xml:space="preserve">Branch mergen</x:String>
|
||||||
|
<x:String x:Key="Text.Merge.Edit" xml:space="preserve">Merge-Nachricht anpassen</x:String>
|
||||||
<x:String x:Key="Text.Merge.Into" xml:space="preserve">Ziel-Branch:</x:String>
|
<x:String x:Key="Text.Merge.Into" xml:space="preserve">Ziel-Branch:</x:String>
|
||||||
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">Merge Option:</x:String>
|
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">Merge Option:</x:String>
|
||||||
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Quelle:</x:String>
|
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Quelle:</x:String>
|
||||||
|
@ -460,6 +497,7 @@
|
||||||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">Vor {0} Monaten</x:String>
|
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">Vor {0} Monaten</x:String>
|
||||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">Vor {0} Jahren</x:String>
|
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">Vor {0} Jahren</x:String>
|
||||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Gestern</x:String>
|
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Gestern</x:String>
|
||||||
|
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">Verwende 'Shift+Enter' um eine neue Zeile einzufügen. 'Enter' ist das Kürzel für den OK Button</x:String>
|
||||||
<x:String x:Key="Text.Preferences" xml:space="preserve">Einstellungen</x:String>
|
<x:String x:Key="Text.Preferences" xml:space="preserve">Einstellungen</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">OPEN AI</x:String>
|
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">OPEN AI</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analysierung des Diff Befehl</x:String>
|
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analysierung des Diff Befehl</x:String>
|
||||||
|
@ -499,7 +537,7 @@
|
||||||
<x:String x:Key="Text.Preferences.Git.DefaultCloneDir" xml:space="preserve">Klon Standardordner</x:String>
|
<x:String x:Key="Text.Preferences.Git.DefaultCloneDir" xml:space="preserve">Klon Standardordner</x:String>
|
||||||
<x:String x:Key="Text.Preferences.Git.Email" xml:space="preserve">Benutzer Email</x:String>
|
<x:String x:Key="Text.Preferences.Git.Email" xml:space="preserve">Benutzer Email</x:String>
|
||||||
<x:String x:Key="Text.Preferences.Git.Email.Placeholder" xml:space="preserve">Globale Git Benutzer Email</x:String>
|
<x:String x:Key="Text.Preferences.Git.Email.Placeholder" xml:space="preserve">Globale Git Benutzer Email</x:String>
|
||||||
<x:String x:Key="Text.Preferences.Git.EnablePruneOnFetch" xml:space="preserve">Aktivere --prune beim fetchen</x:String>
|
<x:String x:Key="Text.Preferences.Git.EnablePruneOnFetch" xml:space="preserve">Aktiviere --prune beim Fetchen</x:String>
|
||||||
<x:String x:Key="Text.Preferences.Git.IgnoreCRAtEOLInDiff" xml:space="preserve">Aktiviere --ignore-cr-at-eol beim Unterschied</x:String>
|
<x:String x:Key="Text.Preferences.Git.IgnoreCRAtEOLInDiff" xml:space="preserve">Aktiviere --ignore-cr-at-eol beim Unterschied</x:String>
|
||||||
<x:String x:Key="Text.Preferences.Git.Invalid" xml:space="preserve">Diese App setzt Git (>= 2.25.1) voraus</x:String>
|
<x:String x:Key="Text.Preferences.Git.Invalid" xml:space="preserve">Diese App setzt Git (>= 2.25.1) voraus</x:String>
|
||||||
<x:String x:Key="Text.Preferences.Git.Path" xml:space="preserve">Installationspfad</x:String>
|
<x:String x:Key="Text.Preferences.Git.Path" xml:space="preserve">Installationspfad</x:String>
|
||||||
|
@ -529,6 +567,7 @@
|
||||||
<x:String x:Key="Text.Pull.LocalChanges" xml:space="preserve">Lokale Änderungen:</x:String>
|
<x:String x:Key="Text.Pull.LocalChanges" xml:space="preserve">Lokale Änderungen:</x:String>
|
||||||
<x:String x:Key="Text.Pull.LocalChanges.Discard" xml:space="preserve">Verwerfen</x:String>
|
<x:String x:Key="Text.Pull.LocalChanges.Discard" xml:space="preserve">Verwerfen</x:String>
|
||||||
<x:String x:Key="Text.Pull.LocalChanges.StashAndReply" xml:space="preserve">Stashen & wieder anwenden</x:String>
|
<x:String x:Key="Text.Pull.LocalChanges.StashAndReply" xml:space="preserve">Stashen & wieder anwenden</x:String>
|
||||||
|
<x:String x:Key="Text.Pull.RecurseSubmodules" xml:space="preserve">Alle Submodule aktualisieren</x:String>
|
||||||
<x:String x:Key="Text.Pull.Remote" xml:space="preserve">Remote:</x:String>
|
<x:String x:Key="Text.Pull.Remote" xml:space="preserve">Remote:</x:String>
|
||||||
<x:String x:Key="Text.Pull.Title" xml:space="preserve">Pull (Fetch & Merge)</x:String>
|
<x:String x:Key="Text.Pull.Title" xml:space="preserve">Pull (Fetch & Merge)</x:String>
|
||||||
<x:String x:Key="Text.Pull.UseRebase" xml:space="preserve">Rebase anstatt Merge verwenden</x:String>
|
<x:String x:Key="Text.Pull.UseRebase" xml:space="preserve">Rebase anstatt Merge verwenden</x:String>
|
||||||
|
@ -537,6 +576,8 @@
|
||||||
<x:String x:Key="Text.Push.Force" xml:space="preserve">Erzwinge Push</x:String>
|
<x:String x:Key="Text.Push.Force" xml:space="preserve">Erzwinge Push</x:String>
|
||||||
<x:String x:Key="Text.Push.Local" xml:space="preserve">Lokaler Branch:</x:String>
|
<x:String x:Key="Text.Push.Local" xml:space="preserve">Lokaler Branch:</x:String>
|
||||||
<x:String x:Key="Text.Push.Remote" xml:space="preserve">Remote:</x:String>
|
<x:String x:Key="Text.Push.Remote" xml:space="preserve">Remote:</x:String>
|
||||||
|
<x:String x:Key="Text.Push.Revision" xml:space="preserve">Revision:</x:String>
|
||||||
|
<x:String x:Key="Text.Push.Revision.Title" xml:space="preserve">Push Revision zu Remote-Branch</x:String>
|
||||||
<x:String x:Key="Text.Push.Title" xml:space="preserve">Push</x:String>
|
<x:String x:Key="Text.Push.Title" xml:space="preserve">Push</x:String>
|
||||||
<x:String x:Key="Text.Push.To" xml:space="preserve">Remote-Branch:</x:String>
|
<x:String x:Key="Text.Push.To" xml:space="preserve">Remote-Branch:</x:String>
|
||||||
<x:String x:Key="Text.Push.Tracking" xml:space="preserve">Remote-Branch verfolgen</x:String>
|
<x:String x:Key="Text.Push.Tracking" xml:space="preserve">Remote-Branch verfolgen</x:String>
|
||||||
|
@ -550,7 +591,6 @@
|
||||||
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">Lokale Änderungen stashen & wieder anwenden</x:String>
|
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">Lokale Änderungen stashen & wieder anwenden</x:String>
|
||||||
<x:String x:Key="Text.Rebase.On" xml:space="preserve">Auf:</x:String>
|
<x:String x:Key="Text.Rebase.On" xml:space="preserve">Auf:</x:String>
|
||||||
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">Rebase:</x:String>
|
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">Rebase:</x:String>
|
||||||
<x:String x:Key="Text.RefetchAvatar" xml:space="preserve">Aktualisieren</x:String>
|
|
||||||
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">Remote hinzufügen</x:String>
|
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">Remote hinzufügen</x:String>
|
||||||
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">Remote bearbeiten</x:String>
|
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">Remote bearbeiten</x:String>
|
||||||
<x:String x:Key="Text.Remote.Name" xml:space="preserve">Name:</x:String>
|
<x:String x:Key="Text.Remote.Name" xml:space="preserve">Name:</x:String>
|
||||||
|
@ -578,6 +618,7 @@
|
||||||
<x:String x:Key="Text.Repository.Clean" xml:space="preserve">Aufräumen (GC & Prune)</x:String>
|
<x:String x:Key="Text.Repository.Clean" xml:space="preserve">Aufräumen (GC & Prune)</x:String>
|
||||||
<x:String x:Key="Text.Repository.CleanTips" xml:space="preserve">Führt `git gc` auf diesem Repository aus.</x:String>
|
<x:String x:Key="Text.Repository.CleanTips" xml:space="preserve">Führt `git gc` auf diesem Repository aus.</x:String>
|
||||||
<x:String x:Key="Text.Repository.ClearAllCommitsFilter" xml:space="preserve">Filter aufheben</x:String>
|
<x:String x:Key="Text.Repository.ClearAllCommitsFilter" xml:space="preserve">Filter aufheben</x:String>
|
||||||
|
<x:String x:Key="Text.Repository.ClearStashes" xml:space="preserve">Löschen</x:String>
|
||||||
<x:String x:Key="Text.Repository.Configure" xml:space="preserve">Repository Einstellungen</x:String>
|
<x:String x:Key="Text.Repository.Configure" xml:space="preserve">Repository Einstellungen</x:String>
|
||||||
<x:String x:Key="Text.Repository.Continue" xml:space="preserve">WEITER</x:String>
|
<x:String x:Key="Text.Repository.Continue" xml:space="preserve">WEITER</x:String>
|
||||||
<x:String x:Key="Text.Repository.CustomActions" xml:space="preserve">Benutzerdefinierte Aktionen</x:String>
|
<x:String x:Key="Text.Repository.CustomActions" xml:space="preserve">Benutzerdefinierte Aktionen</x:String>
|
||||||
|
@ -611,10 +652,11 @@
|
||||||
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">Autor</x:String>
|
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">Autor</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">Committer</x:String>
|
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">Committer</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByContent" xml:space="preserve">Inhalt</x:String>
|
<x:String x:Key="Text.Repository.Search.ByContent" xml:space="preserve">Inhalt</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByFile" xml:space="preserve">Dateiname</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Commit-Nachricht</x:String>
|
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Commit-Nachricht</x:String>
|
||||||
|
<x:String x:Key="Text.Repository.Search.ByPath" xml:space="preserve">Pfad</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">Aktueller Branch</x:String>
|
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">Aktueller Branch</x:String>
|
||||||
|
<x:String x:Key="Text.Repository.ShowSubmodulesAsTree" xml:space="preserve">Submodule als Baum anzeigen</x:String>
|
||||||
<x:String x:Key="Text.Repository.ShowTagsAsTree" xml:space="preserve">Zeige Tags als Baum</x:String>
|
<x:String x:Key="Text.Repository.ShowTagsAsTree" xml:space="preserve">Zeige Tags als Baum</x:String>
|
||||||
<x:String x:Key="Text.Repository.Skip" xml:space="preserve">ÜBERSPRINGEN</x:String>
|
<x:String x:Key="Text.Repository.Skip" xml:space="preserve">ÜBERSPRINGEN</x:String>
|
||||||
<x:String x:Key="Text.Repository.Statistics" xml:space="preserve">Statistiken</x:String>
|
<x:String x:Key="Text.Repository.Statistics" xml:space="preserve">Statistiken</x:String>
|
||||||
|
@ -624,8 +666,7 @@
|
||||||
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">TAGS</x:String>
|
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">TAGS</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">NEUER TAG</x:String>
|
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">NEUER TAG</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">Nach Erstellungsdatum</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">Nach Erstellungsdatum</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameAsc" xml:space="preserve">Nach Namen (Aufsteigend)</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByName" xml:space="preserve">Nach Namen</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameDes" xml:space="preserve">Nach Namen (Absteigend)</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">Sortiere</x:String>
|
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">Sortiere</x:String>
|
||||||
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">Öffne im Terminal</x:String>
|
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">Öffne im Terminal</x:String>
|
||||||
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">Verwende relative Zeitangaben in Verlauf</x:String>
|
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">Verwende relative Zeitangaben in Verlauf</x:String>
|
||||||
|
@ -639,12 +680,14 @@
|
||||||
<x:String x:Key="Text.Reset.Mode" xml:space="preserve">Rücksetzmodus:</x:String>
|
<x:String x:Key="Text.Reset.Mode" xml:space="preserve">Rücksetzmodus:</x:String>
|
||||||
<x:String x:Key="Text.Reset.MoveTo" xml:space="preserve">Verschiebe zu:</x:String>
|
<x:String x:Key="Text.Reset.MoveTo" xml:space="preserve">Verschiebe zu:</x:String>
|
||||||
<x:String x:Key="Text.Reset.Target" xml:space="preserve">Aktueller Branch:</x:String>
|
<x:String x:Key="Text.Reset.Target" xml:space="preserve">Aktueller Branch:</x:String>
|
||||||
|
<x:String x:Key="Text.ResetWithoutCheckout" xml:space="preserve">Reset Branch (ohne Checkout)</x:String>
|
||||||
|
<x:String x:Key="Text.ResetWithoutCheckout.MoveTo" xml:space="preserve">Auf:</x:String>
|
||||||
|
<x:String x:Key="Text.ResetWithoutCheckout.Target" xml:space="preserve">Branch:</x:String>
|
||||||
<x:String x:Key="Text.RevealFile" xml:space="preserve">Zeige im Datei-Explorer</x:String>
|
<x:String x:Key="Text.RevealFile" xml:space="preserve">Zeige im Datei-Explorer</x:String>
|
||||||
<x:String x:Key="Text.Revert" xml:space="preserve">Commit rückgängig machen</x:String>
|
<x:String x:Key="Text.Revert" xml:space="preserve">Commit rückgängig machen</x:String>
|
||||||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit:</x:String>
|
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit:</x:String>
|
||||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commit Änderungen rückgängig machen</x:String>
|
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commit Änderungen rückgängig machen</x:String>
|
||||||
<x:String x:Key="Text.Reword" xml:space="preserve">Commit Nachricht umformulieren</x:String>
|
<x:String x:Key="Text.Reword" xml:space="preserve">Commit Nachricht umformulieren</x:String>
|
||||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">Verwende 'Shift+Enter' um eine neue Zeile einzufügen. 'Enter' ist das Kürzel für den OK Button</x:String>
|
|
||||||
<x:String x:Key="Text.Running" xml:space="preserve">Bitte warten...</x:String>
|
<x:String x:Key="Text.Running" xml:space="preserve">Bitte warten...</x:String>
|
||||||
<x:String x:Key="Text.Save" xml:space="preserve">SPEICHERN</x:String>
|
<x:String x:Key="Text.Save" xml:space="preserve">SPEICHERN</x:String>
|
||||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">Speichern als...</x:String>
|
<x:String x:Key="Text.SaveAs" xml:space="preserve">Speichern als...</x:String>
|
||||||
|
@ -670,16 +713,15 @@
|
||||||
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">Pfad zum privaten SSH Schlüssel</x:String>
|
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">Pfad zum privaten SSH Schlüssel</x:String>
|
||||||
<x:String x:Key="Text.Start" xml:space="preserve">START</x:String>
|
<x:String x:Key="Text.Start" xml:space="preserve">START</x:String>
|
||||||
<x:String x:Key="Text.Stash" xml:space="preserve">Stash</x:String>
|
<x:String x:Key="Text.Stash" xml:space="preserve">Stash</x:String>
|
||||||
<x:String x:Key="Text.Stash.AutoRestore" xml:space="preserve">Automatisch wiederherstellen nach dem Stashen</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.AutoRestore.Tip" xml:space="preserve">Die Arbeitsdateien bleiben unverändert, aber ein Stash wird gespeichert.</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Inklusive nicht-verfolgter Dateien</x:String>
|
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Inklusive nicht-verfolgter Dateien</x:String>
|
||||||
<x:String x:Key="Text.Stash.KeepIndex" xml:space="preserve">Behalte gestagte Dateien</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Name:</x:String>
|
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Name:</x:String>
|
||||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Optional. Name dieses Stashes</x:String>
|
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Optional. Informationen zu dieses Stashes</x:String>
|
||||||
|
<x:String x:Key="Text.Stash.Mode" xml:space="preserve">Modus:</x:String>
|
||||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Nur gestagte Änderungen</x:String>
|
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Nur gestagte Änderungen</x:String>
|
||||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Gestagte und unstagte Änderungen der ausgewähleten Datei(en) werden gestasht!!!</x:String>
|
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Gestagte und unstagte Änderungen der ausgewähleten Datei(en) werden gestasht!!!</x:String>
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Lokale Änderungen stashen</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Lokale Änderungen stashen</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Anwenden</x:String>
|
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Anwenden</x:String>
|
||||||
|
<x:String x:Key="Text.StashCM.CopyMessage" xml:space="preserve">Kopiere Nachricht</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Entfernen</x:String>
|
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Entfernen</x:String>
|
||||||
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">Als Path speichern...</x:String>
|
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">Als Path speichern...</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Stash entfernen</x:String>
|
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Stash entfernen</x:String>
|
||||||
|
@ -698,14 +740,22 @@
|
||||||
<x:String x:Key="Text.Submodule" xml:space="preserve">SUBMODULE</x:String>
|
<x:String x:Key="Text.Submodule" xml:space="preserve">SUBMODULE</x:String>
|
||||||
<x:String x:Key="Text.Submodule.Add" xml:space="preserve">Submodul hinzufügen</x:String>
|
<x:String x:Key="Text.Submodule.Add" xml:space="preserve">Submodul hinzufügen</x:String>
|
||||||
<x:String x:Key="Text.Submodule.CopyPath" xml:space="preserve">Relativen Pfad kopieren</x:String>
|
<x:String x:Key="Text.Submodule.CopyPath" xml:space="preserve">Relativen Pfad kopieren</x:String>
|
||||||
|
<x:String x:Key="Text.Submodule.Deinit" xml:space="preserve">De-initialisiere Submodul</x:String>
|
||||||
<x:String x:Key="Text.Submodule.FetchNested" xml:space="preserve">Untergeordnete Submodule fetchen</x:String>
|
<x:String x:Key="Text.Submodule.FetchNested" xml:space="preserve">Untergeordnete Submodule fetchen</x:String>
|
||||||
<x:String x:Key="Text.Submodule.Open" xml:space="preserve">Öffne Submodul Repository</x:String>
|
<x:String x:Key="Text.Submodule.Open" xml:space="preserve">Öffne Submodul Repository</x:String>
|
||||||
<x:String x:Key="Text.Submodule.RelativePath" xml:space="preserve">Relativer Pfad:</x:String>
|
<x:String x:Key="Text.Submodule.RelativePath" xml:space="preserve">Relativer Pfad:</x:String>
|
||||||
<x:String x:Key="Text.Submodule.RelativePath.Placeholder" xml:space="preserve">Relativer Ordner um dieses Submodul zu speichern.</x:String>
|
<x:String x:Key="Text.Submodule.RelativePath.Placeholder" xml:space="preserve">Relativer Ordner um dieses Submodul zu speichern.</x:String>
|
||||||
<x:String x:Key="Text.Submodule.Remove" xml:space="preserve">Submodul löschen</x:String>
|
<x:String x:Key="Text.Submodule.Remove" xml:space="preserve">Submodul löschen</x:String>
|
||||||
|
<x:String x:Key="Text.Submodule.Status" xml:space="preserve">STATUS</x:String>
|
||||||
|
<x:String x:Key="Text.Submodule.Status.Modified" xml:space="preserve">geändert</x:String>
|
||||||
|
<x:String x:Key="Text.Submodule.Status.NotInited" xml:space="preserve">nicht initialisiert</x:String>
|
||||||
|
<x:String x:Key="Text.Submodule.Status.RevisionChanged" xml:space="preserve">Revision geändert</x:String>
|
||||||
|
<x:String x:Key="Text.Submodule.Status.Unmerged" xml:space="preserve">nicht gemerged</x:String>
|
||||||
|
<x:String x:Key="Text.Submodule.URL" xml:space="preserve">URL</x:String>
|
||||||
<x:String x:Key="Text.Sure" xml:space="preserve">OK</x:String>
|
<x:String x:Key="Text.Sure" xml:space="preserve">OK</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Tag-Namen kopieren</x:String>
|
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Tag-Namen kopieren</x:String>
|
||||||
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Tag-Nachricht kopieren</x:String>
|
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Tag-Nachricht kopieren</x:String>
|
||||||
|
<x:String x:Key="Text.TagCM.CustomAction" xml:space="preserve">Benutzerdefinierte Aktion</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Lösche ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Lösche ${0}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Merge ${0}$ in ${1}$ hinein...</x:String>
|
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Merge ${0}$ in ${1}$ hinein...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Pushe ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Pushe ${0}$...</x:String>
|
||||||
|
@ -739,7 +789,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Git Ignore</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Git Ignore</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">Ignoriere alle *{0} Dateien</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">Ignoriere alle *{0} Dateien</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">Ignoriere *{0} Datein im selben Ordner</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">Ignoriere *{0} Datein im selben Ordner</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InSameFolder" xml:space="preserve">Ignoriere Dateien im selben Ordner</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InFolder" xml:space="preserve">Ignoriere nicht-verfolgte Dateien in diesem Ordner</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">Ignoriere nur diese Datei</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">Ignoriere nur diese Datei</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Amend</x:String>
|
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Amend</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">Du kannst diese Datei jetzt stagen.</x:String>
|
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">Du kannst diese Datei jetzt stagen.</x:String>
|
||||||
|
@ -749,7 +799,8 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitTip" xml:space="preserve">Klick-Ereignis auslösen</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitTip" xml:space="preserve">Klick-Ereignis auslösen</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitToEdit" xml:space="preserve">Commit (Bearbeitung)</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitToEdit" xml:space="preserve">Commit (Bearbeitung)</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitWithAutoStage" xml:space="preserve">Alle Änderungen stagen und committen</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitWithAutoStage" xml:space="preserve">Alle Änderungen stagen und committen</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithFilter">Du hast {0} Datei(en) gestaged, aber nur {1} werden angezeigt ({2} sind herausgefiltert). Willst du trotzdem fortfahren?</x:String>
|
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithDetachedHead">Du erzeugst einen Commit auf einem losgelösten (detached) HEAD. Möchtest du trotzdem fortfahren?</x:String>
|
||||||
|
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithFilter">Du hast {0} Datei(en) gestaged, aber nur {1} werden angezeigt ({2} sind herausgefiltert). Möchtest du trotzdem fortfahren?</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Conflicts" xml:space="preserve">KONFLIKTE ERKANNT</x:String>
|
<x:String x:Key="Text.WorkingCopy.Conflicts" xml:space="preserve">KONFLIKTE ERKANNT</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Conflicts.OpenExternalMergeTool" xml:space="preserve">EXTERNES MERGE-TOOL ÖFFNEN</x:String>
|
<x:String x:Key="Text.WorkingCopy.Conflicts.OpenExternalMergeTool" xml:space="preserve">EXTERNES MERGE-TOOL ÖFFNEN</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts" xml:space="preserve">ALLE KONFLIKTE IN EXTERNEM MERGE-TOOL ÖFFNEN</x:String>
|
<x:String x:Key="Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts" xml:space="preserve">ALLE KONFLIKTE IN EXTERNEM MERGE-TOOL ÖFFNEN</x:String>
|
||||||
|
@ -759,6 +810,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.IncludeUntracked" xml:space="preserve">NICHT-VERFOLGTE DATEIEN INKLUDIEREN</x:String>
|
<x:String x:Key="Text.WorkingCopy.IncludeUntracked" xml:space="preserve">NICHT-VERFOLGTE DATEIEN INKLUDIEREN</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.NoCommitHistories" xml:space="preserve">KEINE BISHERIGEN COMMIT-NACHRICHTEN</x:String>
|
<x:String x:Key="Text.WorkingCopy.NoCommitHistories" xml:space="preserve">KEINE BISHERIGEN COMMIT-NACHRICHTEN</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.NoCommitTemplates" xml:space="preserve">KEINE COMMIT TEMPLATES</x:String>
|
<x:String x:Key="Text.WorkingCopy.NoCommitTemplates" xml:space="preserve">KEINE COMMIT TEMPLATES</x:String>
|
||||||
|
<x:String x:Key="Text.WorkingCopy.ResetAuthor" xml:space="preserve">Autor zurücksetzen</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.ResolveTip" xml:space="preserve">Rechtsklick auf selektierte Dateien und wähle die Konfliktlösungen aus.</x:String>
|
<x:String x:Key="Text.WorkingCopy.ResolveTip" xml:space="preserve">Rechtsklick auf selektierte Dateien und wähle die Konfliktlösungen aus.</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.SignOff" xml:space="preserve">SignOff</x:String>
|
<x:String x:Key="Text.WorkingCopy.SignOff" xml:space="preserve">SignOff</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Staged" xml:space="preserve">GESTAGED</x:String>
|
<x:String x:Key="Text.WorkingCopy.Staged" xml:space="preserve">GESTAGED</x:String>
|
||||||
|
@ -767,7 +819,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">UNSTAGED</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">UNSTAGED</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">STAGEN</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">STAGEN</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">ALLES STAGEN</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">ALLES STAGEN</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">ALS UNVERÄNDERT ANGENOMMENE ANZEIGEN</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">ALS UNVERÄNDERT ANGENOMMENE ANZEIGEN</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Template: ${0}$</x:String>
|
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Template: ${0}$</x:String>
|
||||||
<x:String x:Key="Text.Workspace" xml:space="preserve">ARBEITSPLATZ: </x:String>
|
<x:String x:Key="Text.Workspace" xml:space="preserve">ARBEITSPLATZ: </x:String>
|
||||||
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Arbeitsplätze konfigurieren...</x:String>
|
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Arbeitsplätze konfigurieren...</x:String>
|
||||||
|
|
|
@ -2,6 +2,9 @@
|
||||||
<x:String x:Key="Text.About" xml:space="preserve">About</x:String>
|
<x:String x:Key="Text.About" xml:space="preserve">About</x:String>
|
||||||
<x:String x:Key="Text.About.Menu" xml:space="preserve">About SourceGit</x:String>
|
<x:String x:Key="Text.About.Menu" xml:space="preserve">About SourceGit</x:String>
|
||||||
<x:String x:Key="Text.About.SubTitle" xml:space="preserve">Opensource & Free Git GUI Client</x:String>
|
<x:String x:Key="Text.About.SubTitle" xml:space="preserve">Opensource & Free Git GUI Client</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore" xml:space="preserve">Add File(s) To Ignore</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore.Pattern" xml:space="preserve">Pattern:</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore.Storage" xml:space="preserve">Storage File:</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree" xml:space="preserve">Add Worktree</x:String>
|
<x:String x:Key="Text.AddWorktree" xml:space="preserve">Add Worktree</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree.Location" xml:space="preserve">Location:</x:String>
|
<x:String x:Key="Text.AddWorktree.Location" xml:space="preserve">Location:</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree.Location.Placeholder" xml:space="preserve">Path for this worktree. Relative path is supported.</x:String>
|
<x:String x:Key="Text.AddWorktree.Location.Placeholder" xml:space="preserve">Path for this worktree. Relative path is supported.</x:String>
|
||||||
|
@ -35,6 +38,8 @@
|
||||||
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">FILES ASSUME UNCHANGED</x:String>
|
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">FILES ASSUME UNCHANGED</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">NO FILES ASSUMED AS UNCHANGED</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">NO FILES ASSUMED AS UNCHANGED</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">REMOVE</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">REMOVE</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Load" xml:space="preserve">Load Image...</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Refetch" xml:space="preserve">Refresh</x:String>
|
||||||
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">BINARY FILE NOT SUPPORTED!!!</x:String>
|
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">BINARY FILE NOT SUPPORTED!!!</x:String>
|
||||||
<x:String x:Key="Text.Bisect">Bisect</x:String>
|
<x:String x:Key="Text.Bisect">Bisect</x:String>
|
||||||
<x:String x:Key="Text.Bisect.Abort">Abort</x:String>
|
<x:String x:Key="Text.Bisect.Abort">Abort</x:String>
|
||||||
|
@ -84,6 +89,9 @@
|
||||||
<x:String x:Key="Text.Checkout.LocalChanges.StashAndReply" xml:space="preserve">Stash & Reapply</x:String>
|
<x:String x:Key="Text.Checkout.LocalChanges.StashAndReply" xml:space="preserve">Stash & Reapply</x:String>
|
||||||
<x:String x:Key="Text.Checkout.RecurseSubmodules" xml:space="preserve">Update all submodules</x:String>
|
<x:String x:Key="Text.Checkout.RecurseSubmodules" xml:space="preserve">Update all submodules</x:String>
|
||||||
<x:String x:Key="Text.Checkout.Target" xml:space="preserve">Branch:</x:String>
|
<x:String x:Key="Text.Checkout.Target" xml:space="preserve">Branch:</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WarnLostCommits" xml:space="preserve">Your current HEAD contains commit(s) not connected to any branches/tags! Do you want to continue?</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WithFastForward" xml:space="preserve">Checkout & Fast-Forward</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WithFastForward.Upstream" xml:space="preserve">Fast-Forward to:</x:String>
|
||||||
<x:String x:Key="Text.CherryPick" xml:space="preserve">Cherry Pick</x:String>
|
<x:String x:Key="Text.CherryPick" xml:space="preserve">Cherry Pick</x:String>
|
||||||
<x:String x:Key="Text.CherryPick.AppendSourceToMessage" xml:space="preserve">Append source to commit message</x:String>
|
<x:String x:Key="Text.CherryPick.AppendSourceToMessage" xml:space="preserve">Append source to commit message</x:String>
|
||||||
<x:String x:Key="Text.CherryPick.Commit" xml:space="preserve">Commit(s):</x:String>
|
<x:String x:Key="Text.CherryPick.Commit" xml:space="preserve">Commit(s):</x:String>
|
||||||
|
@ -116,6 +124,7 @@
|
||||||
<x:String x:Key="Text.CommitCM.InteractiveRebase" xml:space="preserve">Interactively Rebase ${0}$ on Here</x:String>
|
<x:String x:Key="Text.CommitCM.InteractiveRebase" xml:space="preserve">Interactively Rebase ${0}$ on Here</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Merge" xml:space="preserve">Merge to ${0}$</x:String>
|
<x:String x:Key="Text.CommitCM.Merge" xml:space="preserve">Merge to ${0}$</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.MergeMultiple" xml:space="preserve">Merge ...</x:String>
|
<x:String x:Key="Text.CommitCM.MergeMultiple" xml:space="preserve">Merge ...</x:String>
|
||||||
|
<x:String x:Key="Text.CommitCM.PushRevision" xml:space="preserve">Push ${0}$ to ${1}$</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Rebase" xml:space="preserve">Rebase ${0}$ on Here</x:String>
|
<x:String x:Key="Text.CommitCM.Rebase" xml:space="preserve">Rebase ${0}$ on Here</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Reset" xml:space="preserve">Reset ${0}$ to Here</x:String>
|
<x:String x:Key="Text.CommitCM.Reset" xml:space="preserve">Reset ${0}$ to Here</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Revert" xml:space="preserve">Revert Commit</x:String>
|
<x:String x:Key="Text.CommitCM.Revert" xml:space="preserve">Revert Commit</x:String>
|
||||||
|
@ -152,13 +161,17 @@
|
||||||
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">Template Name:</x:String>
|
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">Template Name:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">CUSTOM ACTION</x:String>
|
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">CUSTOM ACTION</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">Arguments:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">Arguments:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">${REPO} - Repository's path; ${BRANCH} - Selected branch; ${SHA} - Selected commit's SHA</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">Built-in parameters: ${REPO} - repository's path; ${BRANCH} - selected branch; ${SHA} - selected commit's hash; ${TAG} - selected tag</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">Executable File:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">Executable File:</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls" xml:space="preserve">Input Controls:</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls.Edit" xml:space="preserve">Edit</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls.Tip" xml:space="preserve">You can use $1, $2 ... in arguments for input control values</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">Name:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">Name:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">Scope:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">Scope:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Branch" xml:space="preserve">Branch</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Branch" xml:space="preserve">Branch</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Commit" xml:space="preserve">Commit</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Commit" xml:space="preserve">Commit</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Repository" xml:space="preserve">Repository</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Repository" xml:space="preserve">Repository</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Tag" xml:space="preserve">Tag</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.WaitForExit" xml:space="preserve">Wait for action exit</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.WaitForExit" xml:space="preserve">Wait for action exit</x:String>
|
||||||
<x:String x:Key="Text.Configure.Email" xml:space="preserve">Email Address</x:String>
|
<x:String x:Key="Text.Configure.Email" xml:space="preserve">Email Address</x:String>
|
||||||
<x:String x:Key="Text.Configure.Email.Placeholder" xml:space="preserve">Email address</x:String>
|
<x:String x:Key="Text.Configure.Email.Placeholder" xml:space="preserve">Email address</x:String>
|
||||||
|
@ -187,6 +200,15 @@
|
||||||
<x:String x:Key="Text.Configure.Proxy.Placeholder" xml:space="preserve">HTTP proxy used by this repository</x:String>
|
<x:String x:Key="Text.Configure.Proxy.Placeholder" xml:space="preserve">HTTP proxy used by this repository</x:String>
|
||||||
<x:String x:Key="Text.Configure.User" xml:space="preserve">User Name</x:String>
|
<x:String x:Key="Text.Configure.User" xml:space="preserve">User Name</x:String>
|
||||||
<x:String x:Key="Text.Configure.User.Placeholder" xml:space="preserve">User name for this repository</x:String>
|
<x:String x:Key="Text.Configure.User.Placeholder" xml:space="preserve">User name for this repository</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls" xml:space="preserve">Edit Custom Action Controls</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.CheckedValue" xml:space="preserve">Checked Value:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.CheckedValue.Tip" xml:space="preserve">When checked, this value will be used in command-line arguments</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Description" xml:space="preserve">Description:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Description.Tip" xml:space="preserve">Used as placeholder in TextBox/PathSelector or tooltip in CheckBox</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.DefaultValue" xml:space="preserve">Default:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.IsFolder" xml:space="preserve">Is Folder:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Label" xml:space="preserve">Label:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Type" xml:space="preserve">Type:</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace" xml:space="preserve">Workspaces</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace" xml:space="preserve">Workspaces</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace.Color" xml:space="preserve">Color</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace.Color" xml:space="preserve">Color</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace.Name" xml:space="preserve">Name</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace.Name" xml:space="preserve">Name</x:String>
|
||||||
|
@ -292,8 +314,8 @@
|
||||||
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">Target:</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">Target:</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">Edit Selected Group</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">Edit Selected Group</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">Edit Selected Repository</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">Edit Selected Repository</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction" xml:space="preserve">Run Custom Action</x:String>
|
<x:String x:Key="Text.ExecuteCustomAction.Target" xml:space="preserve">Target:</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction.Name" xml:space="preserve">Action Name:</x:String>
|
<x:String x:Key="Text.ExecuteCustomAction.Repository" xml:space="preserve">This repository</x:String>
|
||||||
<x:String x:Key="Text.Fetch" xml:space="preserve">Fetch</x:String>
|
<x:String x:Key="Text.Fetch" xml:space="preserve">Fetch</x:String>
|
||||||
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">Fetch all remotes</x:String>
|
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">Fetch all remotes</x:String>
|
||||||
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">Force override local refs</x:String>
|
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">Force override local refs</x:String>
|
||||||
|
@ -438,6 +460,7 @@
|
||||||
<x:String x:Key="Text.Launcher.Workspaces" xml:space="preserve">Workspaces</x:String>
|
<x:String x:Key="Text.Launcher.Workspaces" xml:space="preserve">Workspaces</x:String>
|
||||||
<x:String x:Key="Text.Launcher.Pages" xml:space="preserve">Pages</x:String>
|
<x:String x:Key="Text.Launcher.Pages" xml:space="preserve">Pages</x:String>
|
||||||
<x:String x:Key="Text.Merge" xml:space="preserve">Merge Branch</x:String>
|
<x:String x:Key="Text.Merge" xml:space="preserve">Merge Branch</x:String>
|
||||||
|
<x:String x:Key="Text.Merge.Edit" xml:space="preserve">Customize merge message</x:String>
|
||||||
<x:String x:Key="Text.Merge.Into" xml:space="preserve">Into:</x:String>
|
<x:String x:Key="Text.Merge.Into" xml:space="preserve">Into:</x:String>
|
||||||
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">Merge Option:</x:String>
|
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">Merge Option:</x:String>
|
||||||
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Source:</x:String>
|
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Source:</x:String>
|
||||||
|
@ -470,6 +493,7 @@
|
||||||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} months ago</x:String>
|
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} months ago</x:String>
|
||||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} years ago</x:String>
|
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} years ago</x:String>
|
||||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Yesterday</x:String>
|
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Yesterday</x:String>
|
||||||
|
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">Use 'Shift+Enter' to input a new line. 'Enter' is the hotkey of OK button</x:String>
|
||||||
<x:String x:Key="Text.Preferences" xml:space="preserve">Preferences</x:String>
|
<x:String x:Key="Text.Preferences" xml:space="preserve">Preferences</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analyze Diff Prompt</x:String>
|
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analyze Diff Prompt</x:String>
|
||||||
|
@ -548,6 +572,8 @@
|
||||||
<x:String x:Key="Text.Push.Force" xml:space="preserve">Force push</x:String>
|
<x:String x:Key="Text.Push.Force" xml:space="preserve">Force push</x:String>
|
||||||
<x:String x:Key="Text.Push.Local" xml:space="preserve">Local Branch:</x:String>
|
<x:String x:Key="Text.Push.Local" xml:space="preserve">Local Branch:</x:String>
|
||||||
<x:String x:Key="Text.Push.Remote" xml:space="preserve">Remote:</x:String>
|
<x:String x:Key="Text.Push.Remote" xml:space="preserve">Remote:</x:String>
|
||||||
|
<x:String x:Key="Text.Push.Revision" xml:space="preserve">Revision:</x:String>
|
||||||
|
<x:String x:Key="Text.Push.Revision.Title" xml:space="preserve">Push Revision To Remote</x:String>
|
||||||
<x:String x:Key="Text.Push.Title" xml:space="preserve">Push Changes To Remote</x:String>
|
<x:String x:Key="Text.Push.Title" xml:space="preserve">Push Changes To Remote</x:String>
|
||||||
<x:String x:Key="Text.Push.To" xml:space="preserve">Remote Branch:</x:String>
|
<x:String x:Key="Text.Push.To" xml:space="preserve">Remote Branch:</x:String>
|
||||||
<x:String x:Key="Text.Push.Tracking" xml:space="preserve">Set as tracking branch</x:String>
|
<x:String x:Key="Text.Push.Tracking" xml:space="preserve">Set as tracking branch</x:String>
|
||||||
|
@ -561,7 +587,6 @@
|
||||||
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">Stash & reapply local changes</x:String>
|
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">Stash & reapply local changes</x:String>
|
||||||
<x:String x:Key="Text.Rebase.On" xml:space="preserve">On:</x:String>
|
<x:String x:Key="Text.Rebase.On" xml:space="preserve">On:</x:String>
|
||||||
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">Rebase:</x:String>
|
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">Rebase:</x:String>
|
||||||
<x:String x:Key="Text.RefetchAvatar" xml:space="preserve">Refresh</x:String>
|
|
||||||
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">Add Remote</x:String>
|
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">Add Remote</x:String>
|
||||||
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">Edit Remote</x:String>
|
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">Edit Remote</x:String>
|
||||||
<x:String x:Key="Text.Remote.Name" xml:space="preserve">Name:</x:String>
|
<x:String x:Key="Text.Remote.Name" xml:space="preserve">Name:</x:String>
|
||||||
|
@ -623,8 +648,8 @@
|
||||||
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">Author</x:String>
|
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">Author</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">Committer</x:String>
|
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">Committer</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByContent" xml:space="preserve">Content</x:String>
|
<x:String x:Key="Text.Repository.Search.ByContent" xml:space="preserve">Content</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByFile" xml:space="preserve">File</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Message</x:String>
|
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Message</x:String>
|
||||||
|
<x:String x:Key="Text.Repository.Search.ByPath" xml:space="preserve">Path</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">Current Branch</x:String>
|
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">Current Branch</x:String>
|
||||||
<x:String x:Key="Text.Repository.ShowSubmodulesAsTree" xml:space="preserve">Show Submodules as Tree</x:String>
|
<x:String x:Key="Text.Repository.ShowSubmodulesAsTree" xml:space="preserve">Show Submodules as Tree</x:String>
|
||||||
|
@ -637,8 +662,7 @@
|
||||||
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">TAGS</x:String>
|
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">TAGS</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">New Tag</x:String>
|
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">New Tag</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">By Creator Date</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">By Creator Date</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameAsc" xml:space="preserve">By Name (Ascending)</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByName" xml:space="preserve">By Name</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameDes" xml:space="preserve">By Name (Descending)</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">Sort</x:String>
|
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">Sort</x:String>
|
||||||
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">Open in Terminal</x:String>
|
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">Open in Terminal</x:String>
|
||||||
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">Use relative time in histories</x:String>
|
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">Use relative time in histories</x:String>
|
||||||
|
@ -660,7 +684,6 @@
|
||||||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit:</x:String>
|
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit:</x:String>
|
||||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commit revert changes</x:String>
|
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commit revert changes</x:String>
|
||||||
<x:String x:Key="Text.Reword" xml:space="preserve">Reword Commit Message</x:String>
|
<x:String x:Key="Text.Reword" xml:space="preserve">Reword Commit Message</x:String>
|
||||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">Use 'Shift+Enter' to input a new line. 'Enter' is the hotkey of OK button</x:String>
|
|
||||||
<x:String x:Key="Text.Running" xml:space="preserve">Running. Please wait...</x:String>
|
<x:String x:Key="Text.Running" xml:space="preserve">Running. Please wait...</x:String>
|
||||||
<x:String x:Key="Text.Save" xml:space="preserve">SAVE</x:String>
|
<x:String x:Key="Text.Save" xml:space="preserve">SAVE</x:String>
|
||||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">Save As...</x:String>
|
<x:String x:Key="Text.SaveAs" xml:space="preserve">Save As...</x:String>
|
||||||
|
@ -686,16 +709,15 @@
|
||||||
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">Private SSH key store path</x:String>
|
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">Private SSH key store path</x:String>
|
||||||
<x:String x:Key="Text.Start" xml:space="preserve">START</x:String>
|
<x:String x:Key="Text.Start" xml:space="preserve">START</x:String>
|
||||||
<x:String x:Key="Text.Stash" xml:space="preserve">Stash</x:String>
|
<x:String x:Key="Text.Stash" xml:space="preserve">Stash</x:String>
|
||||||
<x:String x:Key="Text.Stash.AutoRestore" xml:space="preserve">Auto-restore after stashing</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.AutoRestore.Tip" xml:space="preserve">Your working files remain unchanged, but a stash is saved.</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Include untracked files</x:String>
|
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Include untracked files</x:String>
|
||||||
<x:String x:Key="Text.Stash.KeepIndex" xml:space="preserve">Keep staged files</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Message:</x:String>
|
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Message:</x:String>
|
||||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Optional. Name of this stash</x:String>
|
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Optional. Message of this stash</x:String>
|
||||||
|
<x:String x:Key="Text.Stash.Mode" xml:space="preserve">Mode:</x:String>
|
||||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Only staged changes</x:String>
|
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Only staged changes</x:String>
|
||||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Both staged and unstaged changes of selected file(s) will be stashed!!!</x:String>
|
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Both staged and unstaged changes of selected file(s) will be stashed!!!</x:String>
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stash Local Changes</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stash Local Changes</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Apply</x:String>
|
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Apply</x:String>
|
||||||
|
<x:String x:Key="Text.StashCM.CopyMessage" xml:space="preserve">Copy Message</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Drop</x:String>
|
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Drop</x:String>
|
||||||
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">Save as Patch...</x:String>
|
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">Save as Patch...</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Drop Stash</x:String>
|
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Drop Stash</x:String>
|
||||||
|
@ -729,6 +751,7 @@
|
||||||
<x:String x:Key="Text.Sure" xml:space="preserve">OK</x:String>
|
<x:String x:Key="Text.Sure" xml:space="preserve">OK</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Copy Tag Name</x:String>
|
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Copy Tag Name</x:String>
|
||||||
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Copy Tag Message</x:String>
|
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Copy Tag Message</x:String>
|
||||||
|
<x:String x:Key="Text.TagCM.CustomAction" xml:space="preserve">Custom Action</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Delete ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Delete ${0}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Merge ${0}$ into ${1}$...</x:String>
|
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Merge ${0}$ into ${1}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Push ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Push ${0}$...</x:String>
|
||||||
|
@ -762,7 +785,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Git Ignore</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Git Ignore</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">Ignore all *{0} files</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">Ignore all *{0} files</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">Ignore *{0} files in the same folder</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">Ignore *{0} files in the same folder</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InSameFolder" xml:space="preserve">Ignore files in the same folder</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InFolder" xml:space="preserve">Ignore untracked files in this folder</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">Ignore this file only</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">Ignore this file only</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Amend</x:String>
|
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Amend</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">You can stage this file now.</x:String>
|
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">You can stage this file now.</x:String>
|
||||||
|
@ -772,6 +795,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitTip" xml:space="preserve">Trigger click event</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitTip" xml:space="preserve">Trigger click event</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitToEdit" xml:space="preserve">Commit (Edit)</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitToEdit" xml:space="preserve">Commit (Edit)</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitWithAutoStage" xml:space="preserve">Stage all changes and commit</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitWithAutoStage" xml:space="preserve">Stage all changes and commit</x:String>
|
||||||
|
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithDetachedHead">You are creating commit on a detached HEAD. Do you want to continue?</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithFilter">You have staged {0} file(s) but only {1} file(s) displayed ({2} files are filtered out). Do you want to continue?</x:String>
|
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithFilter">You have staged {0} file(s) but only {1} file(s) displayed ({2} files are filtered out). Do you want to continue?</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Conflicts" xml:space="preserve">CONFLICTS DETECTED</x:String>
|
<x:String x:Key="Text.WorkingCopy.Conflicts" xml:space="preserve">CONFLICTS DETECTED</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Conflicts.OpenExternalMergeTool" xml:space="preserve">OPEN EXTERNAL MERGETOOL</x:String>
|
<x:String x:Key="Text.WorkingCopy.Conflicts.OpenExternalMergeTool" xml:space="preserve">OPEN EXTERNAL MERGETOOL</x:String>
|
||||||
|
@ -791,7 +815,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">UNSTAGED</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">UNSTAGED</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">STAGE</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">STAGE</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">STAGE ALL</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">STAGE ALL</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">VIEW ASSUME UNCHANGED</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">VIEW ASSUME UNCHANGED</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Template: ${0}$</x:String>
|
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Template: ${0}$</x:String>
|
||||||
<x:String x:Key="Text.Workspace" xml:space="preserve">WORKSPACE: </x:String>
|
<x:String x:Key="Text.Workspace" xml:space="preserve">WORKSPACE: </x:String>
|
||||||
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configure Workspaces...</x:String>
|
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configure Workspaces...</x:String>
|
||||||
|
|
|
@ -6,6 +6,9 @@
|
||||||
<x:String x:Key="Text.About" xml:space="preserve">Acerca de</x:String>
|
<x:String x:Key="Text.About" xml:space="preserve">Acerca de</x:String>
|
||||||
<x:String x:Key="Text.About.Menu" xml:space="preserve">Acerca de SourceGit</x:String>
|
<x:String x:Key="Text.About.Menu" xml:space="preserve">Acerca de SourceGit</x:String>
|
||||||
<x:String x:Key="Text.About.SubTitle" xml:space="preserve">Cliente Git GUI de código abierto y gratuito</x:String>
|
<x:String x:Key="Text.About.SubTitle" xml:space="preserve">Cliente Git GUI de código abierto y gratuito</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore" xml:space="preserve">Agregar Archivo(s) Para Ignorar</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore.Pattern" xml:space="preserve">Patrón:</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore.Storage" xml:space="preserve">Almacenar Archivo:</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree" xml:space="preserve">Agregar Worktree</x:String>
|
<x:String x:Key="Text.AddWorktree" xml:space="preserve">Agregar Worktree</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree.Location" xml:space="preserve">Ubicación:</x:String>
|
<x:String x:Key="Text.AddWorktree.Location" xml:space="preserve">Ubicación:</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree.Location.Placeholder" xml:space="preserve">Ruta para este worktree. Se admite ruta relativa.</x:String>
|
<x:String x:Key="Text.AddWorktree.Location.Placeholder" xml:space="preserve">Ruta para este worktree. Se admite ruta relativa.</x:String>
|
||||||
|
@ -39,6 +42,8 @@
|
||||||
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">ARCHIVOS ASUMIDOS COMO SIN CAMBIOS</x:String>
|
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">ARCHIVOS ASUMIDOS COMO SIN CAMBIOS</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">NO HAY ARCHIVOS ASUMIDOS COMO SIN CAMBIOS</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">NO HAY ARCHIVOS ASUMIDOS COMO SIN CAMBIOS</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">REMOVER</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">REMOVER</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Load" xml:space="preserve">Cargar Imagen...</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Refetch" xml:space="preserve">Refrescar</x:String>
|
||||||
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">¡ARCHIVO BINARIO NO SOPORTADO!</x:String>
|
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">¡ARCHIVO BINARIO NO SOPORTADO!</x:String>
|
||||||
<x:String x:Key="Text.Bisect">Bisect</x:String>
|
<x:String x:Key="Text.Bisect">Bisect</x:String>
|
||||||
<x:String x:Key="Text.Bisect.Abort">Abortar</x:String>
|
<x:String x:Key="Text.Bisect.Abort">Abortar</x:String>
|
||||||
|
@ -88,6 +93,9 @@
|
||||||
<x:String x:Key="Text.Checkout.LocalChanges.StashAndReply" xml:space="preserve">Stash & Reaplicar</x:String>
|
<x:String x:Key="Text.Checkout.LocalChanges.StashAndReply" xml:space="preserve">Stash & Reaplicar</x:String>
|
||||||
<x:String x:Key="Text.Checkout.RecurseSubmodules" xml:space="preserve">Actualizar todos los submódulos</x:String>
|
<x:String x:Key="Text.Checkout.RecurseSubmodules" xml:space="preserve">Actualizar todos los submódulos</x:String>
|
||||||
<x:String x:Key="Text.Checkout.Target" xml:space="preserve">Rama:</x:String>
|
<x:String x:Key="Text.Checkout.Target" xml:space="preserve">Rama:</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WarnLostCommits" xml:space="preserve">¡Tu HEAD actual contiene commit(s) que no están conectados a ningunas ramas/etiquetas! ¿Quieres continuar?</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WithFastForward" xml:space="preserve">Checkout & Fast-Forward</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WithFastForward.Upstream" xml:space="preserve">Fast-Forward a:</x:String>
|
||||||
<x:String x:Key="Text.CherryPick" xml:space="preserve">Cherry Pick</x:String>
|
<x:String x:Key="Text.CherryPick" xml:space="preserve">Cherry Pick</x:String>
|
||||||
<x:String x:Key="Text.CherryPick.AppendSourceToMessage" xml:space="preserve">Añadir fuente al mensaje de commit</x:String>
|
<x:String x:Key="Text.CherryPick.AppendSourceToMessage" xml:space="preserve">Añadir fuente al mensaje de commit</x:String>
|
||||||
<x:String x:Key="Text.CherryPick.Commit" xml:space="preserve">Commit(s):</x:String>
|
<x:String x:Key="Text.CherryPick.Commit" xml:space="preserve">Commit(s):</x:String>
|
||||||
|
@ -120,6 +128,7 @@
|
||||||
<x:String x:Key="Text.CommitCM.InteractiveRebase" xml:space="preserve">Rebase Interactivo ${0}$ hasta Aquí</x:String>
|
<x:String x:Key="Text.CommitCM.InteractiveRebase" xml:space="preserve">Rebase Interactivo ${0}$ hasta Aquí</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Merge" xml:space="preserve">Merge a ${0}$</x:String>
|
<x:String x:Key="Text.CommitCM.Merge" xml:space="preserve">Merge a ${0}$</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.MergeMultiple" xml:space="preserve">Merge ...</x:String>
|
<x:String x:Key="Text.CommitCM.MergeMultiple" xml:space="preserve">Merge ...</x:String>
|
||||||
|
<x:String x:Key="Text.CommitCM.PushRevision" xml:space="preserve">Push ${0}$ a ${1}$</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Rebase" xml:space="preserve">Rebase ${0}$ hasta Aquí</x:String>
|
<x:String x:Key="Text.CommitCM.Rebase" xml:space="preserve">Rebase ${0}$ hasta Aquí</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Reset" xml:space="preserve">Reset ${0}$ hasta Aquí</x:String>
|
<x:String x:Key="Text.CommitCM.Reset" xml:space="preserve">Reset ${0}$ hasta Aquí</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Revert" xml:space="preserve">Revertir Commit</x:String>
|
<x:String x:Key="Text.CommitCM.Revert" xml:space="preserve">Revertir Commit</x:String>
|
||||||
|
@ -156,13 +165,17 @@
|
||||||
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">Nombre de la Plantilla:</x:String>
|
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">Nombre de la Plantilla:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">ACCIÓN PERSONALIZADA</x:String>
|
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">ACCIÓN PERSONALIZADA</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">Argumentos:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">Argumentos:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">${REPO} - Ruta del repositorio; ${SHA} - SHA del commit seleccionado</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">Parámetros incorporados: ${REPO} - ruta del repositorio; ${BRANCH} - rama seleccionada; ${SHA} - hash del commit seleccionado; ${TAG} - etiqueta seleccionada</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">Archivo Ejecutable:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">Archivo Ejecutable:</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls" xml:space="preserve">Controles de entrada:</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls.Edit" xml:space="preserve">Editar</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls.Tip" xml:space="preserve">Puedes usar $1, $2 ... en argumentos, para valores de los controles de entrada</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">Nombre:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">Nombre:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">Alcance:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">Alcance:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Branch" xml:space="preserve">Rama</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Branch" xml:space="preserve">Rama</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Commit" xml:space="preserve">Commit</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Commit" xml:space="preserve">Commit</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Repository" xml:space="preserve">Repositorio</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Repository" xml:space="preserve">Repositorio</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Tag" xml:space="preserve">Etiqueta</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.WaitForExit" xml:space="preserve">Esperar la acción de salida</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.WaitForExit" xml:space="preserve">Esperar la acción de salida</x:String>
|
||||||
<x:String x:Key="Text.Configure.Email" xml:space="preserve">Dirección de Email</x:String>
|
<x:String x:Key="Text.Configure.Email" xml:space="preserve">Dirección de Email</x:String>
|
||||||
<x:String x:Key="Text.Configure.Email.Placeholder" xml:space="preserve">Dirección de email</x:String>
|
<x:String x:Key="Text.Configure.Email.Placeholder" xml:space="preserve">Dirección de email</x:String>
|
||||||
|
@ -191,6 +204,15 @@
|
||||||
<x:String x:Key="Text.Configure.Proxy.Placeholder" xml:space="preserve">Proxy HTTP utilizado por este repositorio</x:String>
|
<x:String x:Key="Text.Configure.Proxy.Placeholder" xml:space="preserve">Proxy HTTP utilizado por este repositorio</x:String>
|
||||||
<x:String x:Key="Text.Configure.User" xml:space="preserve">Nombre de Usuario</x:String>
|
<x:String x:Key="Text.Configure.User" xml:space="preserve">Nombre de Usuario</x:String>
|
||||||
<x:String x:Key="Text.Configure.User.Placeholder" xml:space="preserve">Nombre de usuario para este repositorio</x:String>
|
<x:String x:Key="Text.Configure.User.Placeholder" xml:space="preserve">Nombre de usuario para este repositorio</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls" xml:space="preserve">Editar Controles de Acción Personalizados</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.CheckedValue" xml:space="preserve">Valor Comprobado:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.CheckedValue.Tip" xml:space="preserve">Cuando sea comprobado, este valor será usado en argumentos de la línea de comandos</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Description" xml:space="preserve">Descripción:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Description.Tip" xml:space="preserve">Utilizado como marcador de posición en CajaDeTexto/SelectorDeRuta ó tooltip en CheckBox</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.DefaultValue" xml:space="preserve">Por defecto:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.IsFolder" xml:space="preserve">Es Carpeta:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Label" xml:space="preserve">Etiqueta:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Type" xml:space="preserve">Tipo:</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace" xml:space="preserve">Espacios de Trabajo</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace" xml:space="preserve">Espacios de Trabajo</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace.Color" xml:space="preserve">Color</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace.Color" xml:space="preserve">Color</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace.Name" xml:space="preserve">Nombre</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace.Name" xml:space="preserve">Nombre</x:String>
|
||||||
|
@ -296,8 +318,8 @@
|
||||||
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">Destino:</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">Destino:</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">Editar Grupo Seleccionado</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">Editar Grupo Seleccionado</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">Editar Repositorio Seleccionado</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">Editar Repositorio Seleccionado</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction" xml:space="preserve">Ejecutar Acción Personalizada</x:String>
|
<x:String x:Key="Text.ExecuteCustomAction.Target" xml:space="preserve">Destino:</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction.Name" xml:space="preserve">Nombre de la Acción:</x:String>
|
<x:String x:Key="Text.ExecuteCustomAction.Repository" xml:space="preserve">Este repositorio</x:String>
|
||||||
<x:String x:Key="Text.Fetch" xml:space="preserve">Fetch</x:String>
|
<x:String x:Key="Text.Fetch" xml:space="preserve">Fetch</x:String>
|
||||||
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">Fetch todos los remotos</x:String>
|
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">Fetch todos los remotos</x:String>
|
||||||
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">Utilizar opción '--force'</x:String>
|
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">Utilizar opción '--force'</x:String>
|
||||||
|
@ -442,6 +464,7 @@
|
||||||
<x:String x:Key="Text.Launcher.Workspaces" xml:space="preserve">Espacios de trabajo</x:String>
|
<x:String x:Key="Text.Launcher.Workspaces" xml:space="preserve">Espacios de trabajo</x:String>
|
||||||
<x:String x:Key="Text.Launcher.Pages" xml:space="preserve">Páginas</x:String>
|
<x:String x:Key="Text.Launcher.Pages" xml:space="preserve">Páginas</x:String>
|
||||||
<x:String x:Key="Text.Merge" xml:space="preserve">Merge Rama</x:String>
|
<x:String x:Key="Text.Merge" xml:space="preserve">Merge Rama</x:String>
|
||||||
|
<x:String x:Key="Text.Merge.Edit" xml:space="preserve">Personalizar mensaje de merge</x:String>
|
||||||
<x:String x:Key="Text.Merge.Into" xml:space="preserve">En:</x:String>
|
<x:String x:Key="Text.Merge.Into" xml:space="preserve">En:</x:String>
|
||||||
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">Opción de Merge:</x:String>
|
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">Opción de Merge:</x:String>
|
||||||
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Rama Fuente:</x:String>
|
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Rama Fuente:</x:String>
|
||||||
|
@ -474,6 +497,7 @@
|
||||||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">Hace {0} meses</x:String>
|
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">Hace {0} meses</x:String>
|
||||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">Hace {0} años</x:String>
|
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">Hace {0} años</x:String>
|
||||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Ayer</x:String>
|
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Ayer</x:String>
|
||||||
|
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">Usa 'Shift+Enter' para introducir una nueva línea. 'Enter' es el atajo del botón OK</x:String>
|
||||||
<x:String x:Key="Text.Preferences" xml:space="preserve">Preferencias</x:String>
|
<x:String x:Key="Text.Preferences" xml:space="preserve">Preferencias</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">OPEN AI</x:String>
|
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">OPEN AI</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analizar Diff Prompt</x:String>
|
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analizar Diff Prompt</x:String>
|
||||||
|
@ -552,6 +576,8 @@
|
||||||
<x:String x:Key="Text.Push.Force" xml:space="preserve">Forzar push</x:String>
|
<x:String x:Key="Text.Push.Force" xml:space="preserve">Forzar push</x:String>
|
||||||
<x:String x:Key="Text.Push.Local" xml:space="preserve">Rama Local:</x:String>
|
<x:String x:Key="Text.Push.Local" xml:space="preserve">Rama Local:</x:String>
|
||||||
<x:String x:Key="Text.Push.Remote" xml:space="preserve">Remoto:</x:String>
|
<x:String x:Key="Text.Push.Remote" xml:space="preserve">Remoto:</x:String>
|
||||||
|
<x:String x:Key="Text.Push.Revision" xml:space="preserve">Revisión:</x:String>
|
||||||
|
<x:String x:Key="Text.Push.Revision.Title" xml:space="preserve">Push Revisión al Remoto</x:String>
|
||||||
<x:String x:Key="Text.Push.Title" xml:space="preserve">Push Cambios al Remoto</x:String>
|
<x:String x:Key="Text.Push.Title" xml:space="preserve">Push Cambios al Remoto</x:String>
|
||||||
<x:String x:Key="Text.Push.To" xml:space="preserve">Rama Remota:</x:String>
|
<x:String x:Key="Text.Push.To" xml:space="preserve">Rama Remota:</x:String>
|
||||||
<x:String x:Key="Text.Push.Tracking" xml:space="preserve">Establecer como rama de seguimiento</x:String>
|
<x:String x:Key="Text.Push.Tracking" xml:space="preserve">Establecer como rama de seguimiento</x:String>
|
||||||
|
@ -565,7 +591,6 @@
|
||||||
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">Stash & reaplicar cambios locales</x:String>
|
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">Stash & reaplicar cambios locales</x:String>
|
||||||
<x:String x:Key="Text.Rebase.On" xml:space="preserve">En:</x:String>
|
<x:String x:Key="Text.Rebase.On" xml:space="preserve">En:</x:String>
|
||||||
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">Rebase:</x:String>
|
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">Rebase:</x:String>
|
||||||
<x:String x:Key="Text.RefetchAvatar" xml:space="preserve">Refrescar</x:String>
|
|
||||||
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">Añadir Remoto</x:String>
|
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">Añadir Remoto</x:String>
|
||||||
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">Editar Remoto</x:String>
|
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">Editar Remoto</x:String>
|
||||||
<x:String x:Key="Text.Remote.Name" xml:space="preserve">Nombre:</x:String>
|
<x:String x:Key="Text.Remote.Name" xml:space="preserve">Nombre:</x:String>
|
||||||
|
@ -627,8 +652,8 @@
|
||||||
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">Autor</x:String>
|
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">Autor</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">Committer</x:String>
|
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">Committer</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByContent" xml:space="preserve">Contenido</x:String>
|
<x:String x:Key="Text.Repository.Search.ByContent" xml:space="preserve">Contenido</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByFile" xml:space="preserve">Archivo</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Mensaje</x:String>
|
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Mensaje</x:String>
|
||||||
|
<x:String x:Key="Text.Repository.Search.ByPath" xml:space="preserve">Ruta</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">Rama Actual</x:String>
|
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">Rama Actual</x:String>
|
||||||
<x:String x:Key="Text.Repository.ShowSubmodulesAsTree" xml:space="preserve">Mostrar Submódulos como Árbol</x:String>
|
<x:String x:Key="Text.Repository.ShowSubmodulesAsTree" xml:space="preserve">Mostrar Submódulos como Árbol</x:String>
|
||||||
|
@ -641,8 +666,7 @@
|
||||||
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">ETIQUETAS</x:String>
|
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">ETIQUETAS</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">NUEVA ETIQUETA</x:String>
|
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">NUEVA ETIQUETA</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">Por Fecha de Creación</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">Por Fecha de Creación</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameAsc" xml:space="preserve">Por Nombre (Ascendiente)</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByName" xml:space="preserve">Por Nombre</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameDes" xml:space="preserve">Por Nombre (Descendiente)</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">Ordenar</x:String>
|
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">Ordenar</x:String>
|
||||||
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">Abrir en Terminal</x:String>
|
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">Abrir en Terminal</x:String>
|
||||||
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">Usar tiempo relativo en las historias</x:String>
|
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">Usar tiempo relativo en las historias</x:String>
|
||||||
|
@ -664,7 +688,6 @@
|
||||||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit:</x:String>
|
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit:</x:String>
|
||||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commit revertir cambios</x:String>
|
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commit revertir cambios</x:String>
|
||||||
<x:String x:Key="Text.Reword" xml:space="preserve">Reescribir Mensaje de Commit</x:String>
|
<x:String x:Key="Text.Reword" xml:space="preserve">Reescribir Mensaje de Commit</x:String>
|
||||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">Usa 'Shift+Enter' para introducir una nueva línea. 'Enter' es el atajo del botón OK</x:String>
|
|
||||||
<x:String x:Key="Text.Running" xml:space="preserve">Ejecutando. Por favor espera...</x:String>
|
<x:String x:Key="Text.Running" xml:space="preserve">Ejecutando. Por favor espera...</x:String>
|
||||||
<x:String x:Key="Text.Save" xml:space="preserve">GUARDAR</x:String>
|
<x:String x:Key="Text.Save" xml:space="preserve">GUARDAR</x:String>
|
||||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">Guardar Como...</x:String>
|
<x:String x:Key="Text.SaveAs" xml:space="preserve">Guardar Como...</x:String>
|
||||||
|
@ -690,16 +713,15 @@
|
||||||
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">Ruta de almacenamiento de la clave privada SSH</x:String>
|
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">Ruta de almacenamiento de la clave privada SSH</x:String>
|
||||||
<x:String x:Key="Text.Start" xml:space="preserve">INICIAR</x:String>
|
<x:String x:Key="Text.Start" xml:space="preserve">INICIAR</x:String>
|
||||||
<x:String x:Key="Text.Stash" xml:space="preserve">Stash</x:String>
|
<x:String x:Key="Text.Stash" xml:space="preserve">Stash</x:String>
|
||||||
<x:String x:Key="Text.Stash.AutoRestore" xml:space="preserve">Restaurar automáticamente después del stashing</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.AutoRestore.Tip" xml:space="preserve">Tus archivos de trabajo permanecen sin cambios, pero se guarda un stash.</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Incluir archivos no rastreados</x:String>
|
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Incluir archivos no rastreados</x:String>
|
||||||
<x:String x:Key="Text.Stash.KeepIndex" xml:space="preserve">Mantener archivos staged</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Mensaje:</x:String>
|
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Mensaje:</x:String>
|
||||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Opcional. Nombre de este stash</x:String>
|
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Opcional. Información de este stash</x:String>
|
||||||
|
<x:String x:Key="Text.Stash.Mode" xml:space="preserve">Modo:</x:String>
|
||||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Solo cambios staged</x:String>
|
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Solo cambios staged</x:String>
|
||||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">¡Tanto los cambios staged como los no staged de los archivos seleccionados serán stashed!</x:String>
|
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">¡Tanto los cambios staged como los no staged de los archivos seleccionados serán stashed!</x:String>
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stash Cambios Locales</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stash Cambios Locales</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Aplicar</x:String>
|
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Aplicar</x:String>
|
||||||
|
<x:String x:Key="Text.StashCM.CopyMessage" xml:space="preserve">Copiar Mensaje</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Eliminar</x:String>
|
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Eliminar</x:String>
|
||||||
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">Guardar como Parche...</x:String>
|
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">Guardar como Parche...</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Eliminar Stash</x:String>
|
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Eliminar Stash</x:String>
|
||||||
|
@ -733,6 +755,7 @@
|
||||||
<x:String x:Key="Text.Sure" xml:space="preserve">OK</x:String>
|
<x:String x:Key="Text.Sure" xml:space="preserve">OK</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Copiar Nombre de la Etiqueta</x:String>
|
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Copiar Nombre de la Etiqueta</x:String>
|
||||||
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Copiar Mensaje de la Etiqueta</x:String>
|
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Copiar Mensaje de la Etiqueta</x:String>
|
||||||
|
<x:String x:Key="Text.TagCM.CustomAction" xml:space="preserve">Acción Personalizada</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Eliminar ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Eliminar ${0}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Merge ${0}$ en ${1}$...</x:String>
|
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Merge ${0}$ en ${1}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Push ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Push ${0}$...</x:String>
|
||||||
|
@ -766,7 +789,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Git Ignore</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Git Ignore</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">Ignorar todos los archivos *{0}</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">Ignorar todos los archivos *{0}</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">Ignorar archivos *{0} en la misma carpeta</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">Ignorar archivos *{0} en la misma carpeta</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InSameFolder" xml:space="preserve">Ignorar archivos en la misma carpeta</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InFolder" xml:space="preserve">Ignorar archivos no rastreados en esta carpeta</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">Ignorar solo este archivo</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">Ignorar solo este archivo</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Enmendar</x:String>
|
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Enmendar</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">Puedes hacer stage a este archivo ahora.</x:String>
|
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">Puedes hacer stage a este archivo ahora.</x:String>
|
||||||
|
@ -776,6 +799,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitTip" xml:space="preserve">Activar evento de clic</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitTip" xml:space="preserve">Activar evento de clic</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitToEdit" xml:space="preserve">Commit (Editar)</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitToEdit" xml:space="preserve">Commit (Editar)</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitWithAutoStage" xml:space="preserve">Hacer stage a todos los cambios y commit</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitWithAutoStage" xml:space="preserve">Hacer stage a todos los cambios y commit</x:String>
|
||||||
|
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithDetachedHead">Estas creando un commit en una HEAD separada. ¿Quieres continuar?</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithFilter">Tienes {0} archivo(s) en stage, pero solo {1} archivo(s) mostrado(s) ({2} archivo(s) están filtrados). ¿Quieres continuar?</x:String>
|
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithFilter">Tienes {0} archivo(s) en stage, pero solo {1} archivo(s) mostrado(s) ({2} archivo(s) están filtrados). ¿Quieres continuar?</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Conflicts" xml:space="preserve">CONFLICTOS DETECTADOS</x:String>
|
<x:String x:Key="Text.WorkingCopy.Conflicts" xml:space="preserve">CONFLICTOS DETECTADOS</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Conflicts.OpenExternalMergeTool" xml:space="preserve">ABRIR HERRAMIENTA DE MERGE EXTERNA</x:String>
|
<x:String x:Key="Text.WorkingCopy.Conflicts.OpenExternalMergeTool" xml:space="preserve">ABRIR HERRAMIENTA DE MERGE EXTERNA</x:String>
|
||||||
|
@ -795,7 +819,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">UNSTAGED</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">UNSTAGED</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">STAGE</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">STAGE</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">STAGE TODO</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">STAGE TODO</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">VER ASSUME UNCHANGED</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">VER ASSUME UNCHANGED</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Plantilla: ${0}$</x:String>
|
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Plantilla: ${0}$</x:String>
|
||||||
<x:String x:Key="Text.Workspace" xml:space="preserve">ESPACIO DE TRABAJO: </x:String>
|
<x:String x:Key="Text.Workspace" xml:space="preserve">ESPACIO DE TRABAJO: </x:String>
|
||||||
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configura Espacios de Trabajo...</x:String>
|
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configura Espacios de Trabajo...</x:String>
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">FICHIERS PRÉSUMÉS INCHANGÉS</x:String>
|
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">FICHIERS PRÉSUMÉS INCHANGÉS</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">PAS DE FICHIERS PRÉSUMÉS INCHANGÉS</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">PAS DE FICHIERS PRÉSUMÉS INCHANGÉS</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">SUPPRIMER</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">SUPPRIMER</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Refetch" xml:space="preserve">Rafraîchir</x:String>
|
||||||
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">FICHIER BINAIRE NON SUPPORTÉ !!!</x:String>
|
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">FICHIER BINAIRE NON SUPPORTÉ !!!</x:String>
|
||||||
<x:String x:Key="Text.Blame" xml:space="preserve">Blâme</x:String>
|
<x:String x:Key="Text.Blame" xml:space="preserve">Blâme</x:String>
|
||||||
<x:String x:Key="Text.BlameTypeNotSupported" xml:space="preserve">LE BLÂME SUR CE FICHIER N'EST PAS SUPPORTÉ!!!</x:String>
|
<x:String x:Key="Text.BlameTypeNotSupported" xml:space="preserve">LE BLÂME SUR CE FICHIER N'EST PAS SUPPORTÉ!!!</x:String>
|
||||||
|
@ -142,7 +143,6 @@
|
||||||
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">Nom de modèle:</x:String>
|
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">Nom de modèle:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">ACTION PERSONNALISÉE</x:String>
|
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">ACTION PERSONNALISÉE</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">Arguments :</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">Arguments :</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">${REPO} - Chemin du repository; ${SHA} - SHA du commit sélectionné</x:String>
|
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">Fichier exécutable :</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">Fichier exécutable :</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">Nom :</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">Nom :</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">Portée :</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">Portée :</x:String>
|
||||||
|
@ -272,8 +272,6 @@
|
||||||
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">Cible :</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">Cible :</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">Éditer le groupe sélectionné</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">Éditer le groupe sélectionné</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">Éditer le dépôt sélectionné</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">Éditer le dépôt sélectionné</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction" xml:space="preserve">Lancer action personnalisée</x:String>
|
|
||||||
<x:String x:Key="Text.ExecuteCustomAction.Name" xml:space="preserve">Nom de l'action :</x:String>
|
|
||||||
<x:String x:Key="Text.Fetch" xml:space="preserve">Fetch</x:String>
|
<x:String x:Key="Text.Fetch" xml:space="preserve">Fetch</x:String>
|
||||||
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">Fetch toutes les branches distantes</x:String>
|
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">Fetch toutes les branches distantes</x:String>
|
||||||
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">Outrepasser les vérifications de refs</x:String>
|
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">Outrepasser les vérifications de refs</x:String>
|
||||||
|
@ -443,6 +441,7 @@
|
||||||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">il y a {0} mois</x:String>
|
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">il y a {0} mois</x:String>
|
||||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">il y a {0} ans</x:String>
|
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">il y a {0} ans</x:String>
|
||||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Hier</x:String>
|
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Hier</x:String>
|
||||||
|
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">Utiliser 'Maj+Entrée' pour insérer une nouvelle ligne. 'Entrée' est la touche pour valider</x:String>
|
||||||
<x:String x:Key="Text.Preferences" xml:space="preserve">Préférences</x:String>
|
<x:String x:Key="Text.Preferences" xml:space="preserve">Préférences</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">IA</x:String>
|
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">IA</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analyser Diff Prompt</x:String>
|
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analyser Diff Prompt</x:String>
|
||||||
|
@ -532,7 +531,6 @@
|
||||||
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">Stash & réappliquer changements locaux</x:String>
|
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">Stash & réappliquer changements locaux</x:String>
|
||||||
<x:String x:Key="Text.Rebase.On" xml:space="preserve">Sur :</x:String>
|
<x:String x:Key="Text.Rebase.On" xml:space="preserve">Sur :</x:String>
|
||||||
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">Rebase :</x:String>
|
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">Rebase :</x:String>
|
||||||
<x:String x:Key="Text.RefetchAvatar" xml:space="preserve">Rafraîchir</x:String>
|
|
||||||
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">Ajouter dépôt distant</x:String>
|
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">Ajouter dépôt distant</x:String>
|
||||||
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">Modifier dépôt distant</x:String>
|
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">Modifier dépôt distant</x:String>
|
||||||
<x:String x:Key="Text.Remote.Name" xml:space="preserve">Nom :</x:String>
|
<x:String x:Key="Text.Remote.Name" xml:space="preserve">Nom :</x:String>
|
||||||
|
@ -589,7 +587,6 @@
|
||||||
<x:String x:Key="Text.Repository.Search" xml:space="preserve">Rechercher un commit</x:String>
|
<x:String x:Key="Text.Repository.Search" xml:space="preserve">Rechercher un commit</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">Auteur</x:String>
|
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">Auteur</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">Committer</x:String>
|
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">Committer</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByFile" xml:space="preserve">Fichier</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Message</x:String>
|
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Message</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">Branche actuelle</x:String>
|
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">Branche actuelle</x:String>
|
||||||
|
@ -602,8 +599,7 @@
|
||||||
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">TAGS</x:String>
|
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">TAGS</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">NOUVEAU TAG</x:String>
|
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">NOUVEAU TAG</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">Par date de créateur</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">Par date de créateur</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameAsc" xml:space="preserve">Par nom (Croissant)</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByName" xml:space="preserve">Par nom</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameDes" xml:space="preserve">Par nom (Décroissant)</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">Trier</x:String>
|
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">Trier</x:String>
|
||||||
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">Ouvrir dans un terminal</x:String>
|
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">Ouvrir dans un terminal</x:String>
|
||||||
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">Utiliser le temps relatif dans les historiques</x:String>
|
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">Utiliser le temps relatif dans les historiques</x:String>
|
||||||
|
@ -620,7 +616,6 @@
|
||||||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit :</x:String>
|
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit :</x:String>
|
||||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commit les changements de l'annulation</x:String>
|
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commit les changements de l'annulation</x:String>
|
||||||
<x:String x:Key="Text.Reword" xml:space="preserve">Reformuler le message de commit</x:String>
|
<x:String x:Key="Text.Reword" xml:space="preserve">Reformuler le message de commit</x:String>
|
||||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">Utiliser 'Maj+Entrée' pour insérer une nouvelle ligne. 'Entrée' est la touche pour valider</x:String>
|
|
||||||
<x:String x:Key="Text.Running" xml:space="preserve">En exécution. Veuillez patienter...</x:String>
|
<x:String x:Key="Text.Running" xml:space="preserve">En exécution. Veuillez patienter...</x:String>
|
||||||
<x:String x:Key="Text.Save" xml:space="preserve">SAUVEGARDER</x:String>
|
<x:String x:Key="Text.Save" xml:space="preserve">SAUVEGARDER</x:String>
|
||||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">Sauvegarder en tant que...</x:String>
|
<x:String x:Key="Text.SaveAs" xml:space="preserve">Sauvegarder en tant que...</x:String>
|
||||||
|
@ -646,12 +641,9 @@
|
||||||
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">Chemin du magasin de clés privées SSH</x:String>
|
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">Chemin du magasin de clés privées SSH</x:String>
|
||||||
<x:String x:Key="Text.Start" xml:space="preserve">START</x:String>
|
<x:String x:Key="Text.Start" xml:space="preserve">START</x:String>
|
||||||
<x:String x:Key="Text.Stash" xml:space="preserve">Stash</x:String>
|
<x:String x:Key="Text.Stash" xml:space="preserve">Stash</x:String>
|
||||||
<x:String x:Key="Text.Stash.AutoRestore" xml:space="preserve">Auto-restauration après le stash</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.AutoRestore.Tip" xml:space="preserve">Vos fichiers de travail restent inchangés, mais une sauvegarde est enregistrée.</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Inclure les fichiers non-suivis</x:String>
|
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Inclure les fichiers non-suivis</x:String>
|
||||||
<x:String x:Key="Text.Stash.KeepIndex" xml:space="preserve">Garder les fichiers indexés</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Message :</x:String>
|
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Message :</x:String>
|
||||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Optionnel. Nom de ce stash</x:String>
|
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Optionnel. Information de ce stash</x:String>
|
||||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Seulement les changements indexés</x:String>
|
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Seulement les changements indexés</x:String>
|
||||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Les modifications indexées et non-indexées des fichiers sélectionnés seront stockées!!!</x:String>
|
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Les modifications indexées et non-indexées des fichiers sélectionnés seront stockées!!!</x:String>
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stash les changements locaux</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stash les changements locaux</x:String>
|
||||||
|
@ -711,7 +703,6 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Git Ignore</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Git Ignore</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">Ignorer tous les *{0} fichiers</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">Ignorer tous les *{0} fichiers</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">Ignorer *{0} fichiers dans le même dossier</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">Ignorer *{0} fichiers dans le même dossier</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InSameFolder" xml:space="preserve">Ignorer les fichiers dans le même dossier</x:String>
|
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">N'ignorer que ce fichier</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">N'ignorer que ce fichier</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Amender</x:String>
|
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Amender</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">Vous pouvez indexer ce fichier.</x:String>
|
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">Vous pouvez indexer ce fichier.</x:String>
|
||||||
|
@ -734,7 +725,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">NON INDEXÉ</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">NON INDEXÉ</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">INDEXER</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">INDEXER</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">INDEXER TOUT</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">INDEXER TOUT</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">VOIR LES FICHIERS PRÉSUMÉS INCHANGÉS</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">VOIR LES FICHIERS PRÉSUMÉS INCHANGÉS</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Modèle: ${0}$</x:String>
|
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Modèle: ${0}$</x:String>
|
||||||
<x:String x:Key="Text.Workspace" xml:space="preserve">ESPACE DE TRAVAIL : </x:String>
|
<x:String x:Key="Text.Workspace" xml:space="preserve">ESPACE DE TRAVAIL : </x:String>
|
||||||
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configurer les espaces de travail...</x:String>
|
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configurer les espaces de travail...</x:String>
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">FILE ASSUNTI COME INVARIATI</x:String>
|
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">FILE ASSUNTI COME INVARIATI</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">NESSUN FILE ASSUNTO COME INVARIATO</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">NESSUN FILE ASSUNTO COME INVARIATO</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">RIMUOVI</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">RIMUOVI</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Refetch" xml:space="preserve">Aggiorna</x:String>
|
||||||
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">FILE BINARIO NON SUPPORTATO!!!</x:String>
|
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">FILE BINARIO NON SUPPORTATO!!!</x:String>
|
||||||
<x:String x:Key="Text.Bisect" xml:space="preserve">Biseca</x:String>
|
<x:String x:Key="Text.Bisect" xml:space="preserve">Biseca</x:String>
|
||||||
<x:String x:Key="Text.Bisect.Abort" xml:space="preserve">Annulla</x:String>
|
<x:String x:Key="Text.Bisect.Abort" xml:space="preserve">Annulla</x:String>
|
||||||
|
@ -154,7 +155,6 @@
|
||||||
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">Nome Template:</x:String>
|
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">Nome Template:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">AZIONE PERSONALIZZATA</x:String>
|
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">AZIONE PERSONALIZZATA</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">Argomenti:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">Argomenti:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">${REPO} - Percorso del repository; ${SHA} - SHA del commit selezionato</x:String>
|
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">File Eseguibile:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">File Eseguibile:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">Nome:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">Nome:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">Ambito:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">Ambito:</x:String>
|
||||||
|
@ -289,8 +289,6 @@
|
||||||
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">Destinazione:</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">Destinazione:</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">Modifica Gruppo Selezionato</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">Modifica Gruppo Selezionato</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">Modifica Repository Selezionato</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">Modifica Repository Selezionato</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction" xml:space="preserve">Esegui Azione Personalizzata</x:String>
|
|
||||||
<x:String x:Key="Text.ExecuteCustomAction.Name" xml:space="preserve">Nome Azione:</x:String>
|
|
||||||
<x:String x:Key="Text.Fetch" xml:space="preserve">Recupera</x:String>
|
<x:String x:Key="Text.Fetch" xml:space="preserve">Recupera</x:String>
|
||||||
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">Recupera da tutti i remoti</x:String>
|
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">Recupera da tutti i remoti</x:String>
|
||||||
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">Forza la sovrascrittura dei riferimenti locali</x:String>
|
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">Forza la sovrascrittura dei riferimenti locali</x:String>
|
||||||
|
@ -463,6 +461,7 @@
|
||||||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} mesi fa</x:String>
|
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} mesi fa</x:String>
|
||||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} anni fa</x:String>
|
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} anni fa</x:String>
|
||||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Ieri</x:String>
|
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Ieri</x:String>
|
||||||
|
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">Usa 'Shift+Enter' per inserire una nuova riga. 'Enter' è il tasto rapido per il pulsante OK</x:String>
|
||||||
<x:String x:Key="Text.Preferences" xml:space="preserve">Preferenze</x:String>
|
<x:String x:Key="Text.Preferences" xml:space="preserve">Preferenze</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analizza il Prompt Differenza</x:String>
|
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analizza il Prompt Differenza</x:String>
|
||||||
|
@ -553,7 +552,6 @@
|
||||||
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">Stasha e Riapplica modifiche locali</x:String>
|
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">Stasha e Riapplica modifiche locali</x:String>
|
||||||
<x:String x:Key="Text.Rebase.On" xml:space="preserve">Su:</x:String>
|
<x:String x:Key="Text.Rebase.On" xml:space="preserve">Su:</x:String>
|
||||||
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">Riallinea:</x:String>
|
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">Riallinea:</x:String>
|
||||||
<x:String x:Key="Text.RefetchAvatar" xml:space="preserve">Aggiorna</x:String>
|
|
||||||
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">Aggiungi Remoto</x:String>
|
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">Aggiungi Remoto</x:String>
|
||||||
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">Modifica Remoto</x:String>
|
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">Modifica Remoto</x:String>
|
||||||
<x:String x:Key="Text.Remote.Name" xml:space="preserve">Nome:</x:String>
|
<x:String x:Key="Text.Remote.Name" xml:space="preserve">Nome:</x:String>
|
||||||
|
@ -614,7 +612,6 @@
|
||||||
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">Autore</x:String>
|
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">Autore</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">Committer</x:String>
|
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">Committer</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByContent" xml:space="preserve">Contenuto</x:String>
|
<x:String x:Key="Text.Repository.Search.ByContent" xml:space="preserve">Contenuto</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByFile" xml:space="preserve">File</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Messaggio</x:String>
|
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Messaggio</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">Branch Corrente</x:String>
|
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">Branch Corrente</x:String>
|
||||||
|
@ -628,8 +625,7 @@
|
||||||
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">TAG</x:String>
|
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">TAG</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">NUOVO TAG</x:String>
|
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">NUOVO TAG</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">Per data di creazione</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">Per data di creazione</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameAsc" xml:space="preserve">Per nome (ascendente)</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByName" xml:space="preserve">Per nome</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameDes" xml:space="preserve">Per nome (discendente)</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">Ordina</x:String>
|
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">Ordina</x:String>
|
||||||
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">Apri nel Terminale</x:String>
|
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">Apri nel Terminale</x:String>
|
||||||
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">Usa tempo relativo nello storico</x:String>
|
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">Usa tempo relativo nello storico</x:String>
|
||||||
|
@ -648,7 +644,6 @@
|
||||||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit:</x:String>
|
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit:</x:String>
|
||||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commit delle modifiche di ripristino</x:String>
|
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commit delle modifiche di ripristino</x:String>
|
||||||
<x:String x:Key="Text.Reword" xml:space="preserve">Modifica Messaggio di Commit</x:String>
|
<x:String x:Key="Text.Reword" xml:space="preserve">Modifica Messaggio di Commit</x:String>
|
||||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">Usa 'Shift+Enter' per inserire una nuova riga. 'Enter' è il tasto rapido per il pulsante OK</x:String>
|
|
||||||
<x:String x:Key="Text.Running" xml:space="preserve">In esecuzione. Attendere...</x:String>
|
<x:String x:Key="Text.Running" xml:space="preserve">In esecuzione. Attendere...</x:String>
|
||||||
<x:String x:Key="Text.Save" xml:space="preserve">SALVA</x:String>
|
<x:String x:Key="Text.Save" xml:space="preserve">SALVA</x:String>
|
||||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">Salva come...</x:String>
|
<x:String x:Key="Text.SaveAs" xml:space="preserve">Salva come...</x:String>
|
||||||
|
@ -674,12 +669,9 @@
|
||||||
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">Percorso per la chiave SSH privata</x:String>
|
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">Percorso per la chiave SSH privata</x:String>
|
||||||
<x:String x:Key="Text.Start" xml:space="preserve">AVVIA</x:String>
|
<x:String x:Key="Text.Start" xml:space="preserve">AVVIA</x:String>
|
||||||
<x:String x:Key="Text.Stash" xml:space="preserve">Stasha</x:String>
|
<x:String x:Key="Text.Stash" xml:space="preserve">Stasha</x:String>
|
||||||
<x:String x:Key="Text.Stash.AutoRestore" xml:space="preserve">Auto-ripristino dopo lo stash</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.AutoRestore.Tip" xml:space="preserve">I tuoi file di lavoro rimangono inalterati, ma viene salvato uno stash.</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Includi file non tracciati</x:String>
|
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Includi file non tracciati</x:String>
|
||||||
<x:String x:Key="Text.Stash.KeepIndex" xml:space="preserve">Mantieni file in stage</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Messaggio:</x:String>
|
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Messaggio:</x:String>
|
||||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Opzionale. Nome di questo stash</x:String>
|
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Opzionale. Informazioni di questo stash</x:String>
|
||||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Solo modifiche in stage</x:String>
|
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Solo modifiche in stage</x:String>
|
||||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Sia le modifiche in stage che quelle non in stage dei file selezionati saranno stashate!!!</x:String>
|
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Sia le modifiche in stage che quelle non in stage dei file selezionati saranno stashate!!!</x:String>
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stasha Modifiche Locali</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stasha Modifiche Locali</x:String>
|
||||||
|
@ -749,7 +741,6 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Git Ignore</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Git Ignore</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">Ignora tutti i file *{0}</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">Ignora tutti i file *{0}</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">Ignora i file *{0} nella stessa cartella</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">Ignora i file *{0} nella stessa cartella</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InSameFolder" xml:space="preserve">Ignora i file nella stessa cartella</x:String>
|
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">Ignora solo questo file</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">Ignora solo questo file</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Modifica</x:String>
|
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Modifica</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">Puoi aggiungere in stage questo file ora.</x:String>
|
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">Puoi aggiungere in stage questo file ora.</x:String>
|
||||||
|
@ -777,7 +768,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">NON IN STAGE</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">NON IN STAGE</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">FAI LO STAGE</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">FAI LO STAGE</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">FAI LO STAGE DI TUTTO</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">FAI LO STAGE DI TUTTO</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">VISUALIZZA COME NON MODIFICATO</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">VISUALIZZA COME NON MODIFICATO</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Template: ${0}$</x:String>
|
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Template: ${0}$</x:String>
|
||||||
<x:String x:Key="Text.Workspace" xml:space="preserve">WORKSPACE:</x:String>
|
<x:String x:Key="Text.Workspace" xml:space="preserve">WORKSPACE:</x:String>
|
||||||
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configura Workspaces...</x:String>
|
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configura Workspaces...</x:String>
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">変更されていないとみなされるファイル</x:String>
|
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">変更されていないとみなされるファイル</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">変更されていないとみなされるファイルはありません</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">変更されていないとみなされるファイルはありません</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">削除</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">削除</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Refetch" xml:space="preserve">更新</x:String>
|
||||||
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">バイナリファイルはサポートされていません!!!</x:String>
|
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">バイナリファイルはサポートされていません!!!</x:String>
|
||||||
<x:String x:Key="Text.Blame" xml:space="preserve">Blame</x:String>
|
<x:String x:Key="Text.Blame" xml:space="preserve">Blame</x:String>
|
||||||
<x:String x:Key="Text.BlameTypeNotSupported" xml:space="preserve">BLAMEではこのファイルはサポートされていません!!!</x:String>
|
<x:String x:Key="Text.BlameTypeNotSupported" xml:space="preserve">BLAMEではこのファイルはサポートされていません!!!</x:String>
|
||||||
|
@ -141,7 +142,6 @@
|
||||||
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">テンプレート名:</x:String>
|
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">テンプレート名:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">カスタムアクション</x:String>
|
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">カスタムアクション</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">引数:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">引数:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">${REPO} - リポジトリのパス; ${BRANCH} - 選択中のブランチ; ${SHA} - 選択中のコミットのSHA</x:String>
|
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">実行ファイル:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">実行ファイル:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">名前:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">名前:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">スコープ:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">スコープ:</x:String>
|
||||||
|
@ -271,8 +271,6 @@
|
||||||
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">対象:</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">対象:</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">選択中のグループを編集</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">選択中のグループを編集</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">選択中のリポジトリを編集</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">選択中のリポジトリを編集</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction" xml:space="preserve">カスタムアクションを実行</x:String>
|
|
||||||
<x:String x:Key="Text.ExecuteCustomAction.Name" xml:space="preserve">アクション名:</x:String>
|
|
||||||
<x:String x:Key="Text.Fetch" xml:space="preserve">フェッチ</x:String>
|
<x:String x:Key="Text.Fetch" xml:space="preserve">フェッチ</x:String>
|
||||||
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">すべてのリモートをフェッチ</x:String>
|
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">すべてのリモートをフェッチ</x:String>
|
||||||
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">ローカル参照を強制的に上書き</x:String>
|
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">ローカル参照を強制的に上書き</x:String>
|
||||||
|
@ -442,6 +440,7 @@
|
||||||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} ヶ月前</x:String>
|
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} ヶ月前</x:String>
|
||||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} 年前</x:String>
|
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} 年前</x:String>
|
||||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">昨日</x:String>
|
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">昨日</x:String>
|
||||||
|
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">改行には'Shift+Enter'キーを使用します。 'Enter"はOKボタンのホットキーとして機能します。</x:String>
|
||||||
<x:String x:Key="Text.Preferences" xml:space="preserve">設定</x:String>
|
<x:String x:Key="Text.Preferences" xml:space="preserve">設定</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">差分分析プロンプト</x:String>
|
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">差分分析プロンプト</x:String>
|
||||||
|
@ -531,7 +530,6 @@
|
||||||
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">ローカルの変更をスタッシュして再適用</x:String>
|
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">ローカルの変更をスタッシュして再適用</x:String>
|
||||||
<x:String x:Key="Text.Rebase.On" xml:space="preserve">On:</x:String>
|
<x:String x:Key="Text.Rebase.On" xml:space="preserve">On:</x:String>
|
||||||
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">リベース:</x:String>
|
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">リベース:</x:String>
|
||||||
<x:String x:Key="Text.RefetchAvatar" xml:space="preserve">更新</x:String>
|
|
||||||
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">リモートを追加</x:String>
|
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">リモートを追加</x:String>
|
||||||
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">リモートを編集</x:String>
|
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">リモートを編集</x:String>
|
||||||
<x:String x:Key="Text.Remote.Name" xml:space="preserve">名前:</x:String>
|
<x:String x:Key="Text.Remote.Name" xml:space="preserve">名前:</x:String>
|
||||||
|
@ -587,7 +585,6 @@
|
||||||
<x:String x:Key="Text.Repository.Search" xml:space="preserve">コミットを検索</x:String>
|
<x:String x:Key="Text.Repository.Search" xml:space="preserve">コミットを検索</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">著者</x:String>
|
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">著者</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">コミッター</x:String>
|
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">コミッター</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByFile" xml:space="preserve">ファイル</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">メッセージ</x:String>
|
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">メッセージ</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">現在のブランチ</x:String>
|
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">現在のブランチ</x:String>
|
||||||
|
@ -600,7 +597,7 @@
|
||||||
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">タグ</x:String>
|
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">タグ</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">新しいタグを作成</x:String>
|
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">新しいタグを作成</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">作成者日時</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">作成者日時</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameAsc" xml:space="preserve">名前 (昇順)</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByName" xml:space="preserve">名前</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">ソート</x:String>
|
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">ソート</x:String>
|
||||||
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">ターミナルで開く</x:String>
|
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">ターミナルで開く</x:String>
|
||||||
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">履歴に相対時間を使用</x:String>
|
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">履歴に相対時間を使用</x:String>
|
||||||
|
@ -617,7 +614,6 @@
|
||||||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">コミット:</x:String>
|
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">コミット:</x:String>
|
||||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">コミットの変更を戻す</x:String>
|
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">コミットの変更を戻す</x:String>
|
||||||
<x:String x:Key="Text.Reword" xml:space="preserve">コミットメッセージを書き直す</x:String>
|
<x:String x:Key="Text.Reword" xml:space="preserve">コミットメッセージを書き直す</x:String>
|
||||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">改行には'Shift+Enter'キーを使用します。 'Enter"はOKボタンのホットキーとして機能します。</x:String>
|
|
||||||
<x:String x:Key="Text.Running" xml:space="preserve">実行中です。しばらくお待ちください...</x:String>
|
<x:String x:Key="Text.Running" xml:space="preserve">実行中です。しばらくお待ちください...</x:String>
|
||||||
<x:String x:Key="Text.Save" xml:space="preserve">保存</x:String>
|
<x:String x:Key="Text.Save" xml:space="preserve">保存</x:String>
|
||||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">名前を付けて保存...</x:String>
|
<x:String x:Key="Text.SaveAs" xml:space="preserve">名前を付けて保存...</x:String>
|
||||||
|
@ -643,12 +639,9 @@
|
||||||
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">プライベートSSHキーストアのパス</x:String>
|
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">プライベートSSHキーストアのパス</x:String>
|
||||||
<x:String x:Key="Text.Start" xml:space="preserve">スタート</x:String>
|
<x:String x:Key="Text.Start" xml:space="preserve">スタート</x:String>
|
||||||
<x:String x:Key="Text.Stash" xml:space="preserve">スタッシュ</x:String>
|
<x:String x:Key="Text.Stash" xml:space="preserve">スタッシュ</x:String>
|
||||||
<x:String x:Key="Text.Stash.AutoRestore" xml:space="preserve">スタッシュ後に自動で復元</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.AutoRestore.Tip" xml:space="preserve">作業ファイルは変更されず、スタッシュが保存されます。</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">追跡されていないファイルを含める</x:String>
|
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">追跡されていないファイルを含める</x:String>
|
||||||
<x:String x:Key="Text.Stash.KeepIndex" xml:space="preserve">ステージされたファイルを保持</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">メッセージ:</x:String>
|
<x:String x:Key="Text.Stash.Message" xml:space="preserve">メッセージ:</x:String>
|
||||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">オプション. このスタッシュの名前を入力</x:String>
|
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">オプション. このスタッシュの情報</x:String>
|
||||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">ステージされた変更のみ</x:String>
|
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">ステージされた変更のみ</x:String>
|
||||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">選択したファイルの、ステージされた変更とステージされていない変更の両方がスタッシュされます!!!</x:String>
|
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">選択したファイルの、ステージされた変更とステージされていない変更の両方がスタッシュされます!!!</x:String>
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">ローカルの変更をスタッシュ</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">ローカルの変更をスタッシュ</x:String>
|
||||||
|
@ -708,7 +701,6 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Git Ignore</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Git Ignore</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">すべての*{0}ファイルを無視</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">すべての*{0}ファイルを無視</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">同じフォルダ内の*{0}ファイルを無視</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">同じフォルダ内の*{0}ファイルを無視</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InSameFolder" xml:space="preserve">同じフォルダ内のファイルを無視</x:String>
|
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">このファイルのみを無視</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">このファイルのみを無視</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Amend</x:String>
|
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Amend</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">このファイルを今すぐステージできます。</x:String>
|
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">このファイルを今すぐステージできます。</x:String>
|
||||||
|
@ -731,7 +723,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">未ステージのファイル</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">未ステージのファイル</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">ステージへ移動</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">ステージへ移動</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">すべてステージへ移動</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">すべてステージへ移動</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">変更されていないとみなしたものを表示</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">変更されていないとみなしたものを表示</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">テンプレート: ${0}$</x:String>
|
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">テンプレート: ${0}$</x:String>
|
||||||
<x:String x:Key="Text.Workspace" xml:space="preserve">ワークスペース: </x:String>
|
<x:String x:Key="Text.Workspace" xml:space="preserve">ワークスペース: </x:String>
|
||||||
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">ワークスペースを設定...</x:String>
|
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">ワークスペースを設定...</x:String>
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">ARQUIVOS CONSIDERADOS SEM ALTERAÇÕES</x:String>
|
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">ARQUIVOS CONSIDERADOS SEM ALTERAÇÕES</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">NENHUM ARQUIVO CONSIDERADO SEM ALTERAÇÕES</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">NENHUM ARQUIVO CONSIDERADO SEM ALTERAÇÕES</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">REMOVER</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">REMOVER</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Refetch" xml:space="preserve">Atualizar</x:String>
|
||||||
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">ARQUIVO BINÁRIO NÃO SUPORTADO!!!</x:String>
|
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">ARQUIVO BINÁRIO NÃO SUPORTADO!!!</x:String>
|
||||||
<x:String x:Key="Text.Blame" xml:space="preserve">Blame</x:String>
|
<x:String x:Key="Text.Blame" xml:space="preserve">Blame</x:String>
|
||||||
<x:String x:Key="Text.BlameTypeNotSupported" xml:space="preserve">BLAME NESTE ARQUIVO NÃO É SUPORTADO!!!</x:String>
|
<x:String x:Key="Text.BlameTypeNotSupported" xml:space="preserve">BLAME NESTE ARQUIVO NÃO É SUPORTADO!!!</x:String>
|
||||||
|
@ -128,7 +129,6 @@
|
||||||
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">Nome do Template:</x:String>
|
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">Nome do Template:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">AÇÃO CUSTOMIZADA</x:String>
|
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">AÇÃO CUSTOMIZADA</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">Argumentos:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">Argumentos:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">${REPO} - Caminho do repositório; ${SHA} - SHA do commit selecionado</x:String>
|
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">Caminho do executável:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">Caminho do executável:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">Nome:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">Nome:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">Escopo:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">Escopo:</x:String>
|
||||||
|
@ -246,8 +246,6 @@
|
||||||
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">Alvo:</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">Alvo:</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">Editar Grupo Selecionado</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">Editar Grupo Selecionado</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">Editar Repositório Selecionado</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">Editar Repositório Selecionado</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction" xml:space="preserve">Executar ação customizada</x:String>
|
|
||||||
<x:String x:Key="Text.ExecuteCustomAction.Name" xml:space="preserve">Nome da ação:</x:String>
|
|
||||||
<x:String x:Key="Text.Fetch" xml:space="preserve">Buscar</x:String>
|
<x:String x:Key="Text.Fetch" xml:space="preserve">Buscar</x:String>
|
||||||
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">Buscar todos os remotos</x:String>
|
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">Buscar todos os remotos</x:String>
|
||||||
<x:String x:Key="Text.Fetch.NoTags" xml:space="preserve">Buscar sem tags</x:String>
|
<x:String x:Key="Text.Fetch.NoTags" xml:space="preserve">Buscar sem tags</x:String>
|
||||||
|
@ -405,6 +403,7 @@
|
||||||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} meses atrás</x:String>
|
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} meses atrás</x:String>
|
||||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} anos atrás</x:String>
|
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} anos atrás</x:String>
|
||||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Ontem</x:String>
|
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Ontem</x:String>
|
||||||
|
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">Use 'Shift+Enter' para inserir uma nova linha. 'Enter' é a tecla de atalho do botão OK</x:String>
|
||||||
<x:String x:Key="Text.Preferences" xml:space="preserve">Preferências</x:String>
|
<x:String x:Key="Text.Preferences" xml:space="preserve">Preferências</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">INTELIGÊNCIA ARTIFICIAL</x:String>
|
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">INTELIGÊNCIA ARTIFICIAL</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Prompt para Analisar Diff</x:String>
|
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Prompt para Analisar Diff</x:String>
|
||||||
|
@ -488,7 +487,6 @@
|
||||||
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">Guardar & reaplicar alterações locais</x:String>
|
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">Guardar & reaplicar alterações locais</x:String>
|
||||||
<x:String x:Key="Text.Rebase.On" xml:space="preserve">Em:</x:String>
|
<x:String x:Key="Text.Rebase.On" xml:space="preserve">Em:</x:String>
|
||||||
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">Rebase:</x:String>
|
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">Rebase:</x:String>
|
||||||
<x:String x:Key="Text.RefetchAvatar" xml:space="preserve">Atualizar</x:String>
|
|
||||||
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">Adicionar Remoto</x:String>
|
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">Adicionar Remoto</x:String>
|
||||||
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">Editar Remoto</x:String>
|
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">Editar Remoto</x:String>
|
||||||
<x:String x:Key="Text.Remote.Name" xml:space="preserve">Nome:</x:String>
|
<x:String x:Key="Text.Remote.Name" xml:space="preserve">Nome:</x:String>
|
||||||
|
@ -538,7 +536,6 @@
|
||||||
<x:String x:Key="Text.Repository.Search" xml:space="preserve">Pesquisar Commit</x:String>
|
<x:String x:Key="Text.Repository.Search" xml:space="preserve">Pesquisar Commit</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">Autor</x:String>
|
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">Autor</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">Committer</x:String>
|
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">Committer</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByFile" xml:space="preserve">Arquivo</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Mensagem</x:String>
|
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Mensagem</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">Branch Atual</x:String>
|
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">Branch Atual</x:String>
|
||||||
|
@ -563,7 +560,6 @@
|
||||||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit:</x:String>
|
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit:</x:String>
|
||||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commitar alterações de reversão</x:String>
|
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commitar alterações de reversão</x:String>
|
||||||
<x:String x:Key="Text.Reword" xml:space="preserve">Reescrever Mensagem do Commit</x:String>
|
<x:String x:Key="Text.Reword" xml:space="preserve">Reescrever Mensagem do Commit</x:String>
|
||||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">Use 'Shift+Enter' para inserir uma nova linha. 'Enter' é a tecla de atalho do botão OK</x:String>
|
|
||||||
<x:String x:Key="Text.Running" xml:space="preserve">Executando. Por favor, aguarde...</x:String>
|
<x:String x:Key="Text.Running" xml:space="preserve">Executando. Por favor, aguarde...</x:String>
|
||||||
<x:String x:Key="Text.Save" xml:space="preserve">SALVAR</x:String>
|
<x:String x:Key="Text.Save" xml:space="preserve">SALVAR</x:String>
|
||||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">Salvar Como...</x:String>
|
<x:String x:Key="Text.SaveAs" xml:space="preserve">Salvar Como...</x:String>
|
||||||
|
@ -585,9 +581,8 @@
|
||||||
<x:String x:Key="Text.Start" xml:space="preserve">INICIAR</x:String>
|
<x:String x:Key="Text.Start" xml:space="preserve">INICIAR</x:String>
|
||||||
<x:String x:Key="Text.Stash" xml:space="preserve">Stash</x:String>
|
<x:String x:Key="Text.Stash" xml:space="preserve">Stash</x:String>
|
||||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Incluir arquivos não rastreados</x:String>
|
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Incluir arquivos não rastreados</x:String>
|
||||||
<x:String x:Key="Text.Stash.KeepIndex" xml:space="preserve">Manter arquivos em stage</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Mensagem:</x:String>
|
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Mensagem:</x:String>
|
||||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Opcional. Nome deste stash</x:String>
|
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Opcional. Informações deste stash</x:String>
|
||||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Apenas mudanças em stage</x:String>
|
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Apenas mudanças em stage</x:String>
|
||||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Tanto mudanças em stage e fora de stage dos arquivos selecionados serão enviadas para stash!!!</x:String>
|
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Tanto mudanças em stage e fora de stage dos arquivos selecionados serão enviadas para stash!!!</x:String>
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Guardar Alterações Locais</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Guardar Alterações Locais</x:String>
|
||||||
|
@ -646,7 +641,6 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Git Ignore</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Git Ignore</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">Ignorar todos os arquivos *{0}</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">Ignorar todos os arquivos *{0}</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">Ignorar arquivos *{0} na mesma pasta</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">Ignorar arquivos *{0} na mesma pasta</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InSameFolder" xml:space="preserve">Ignorar arquivos na mesma pasta</x:String>
|
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">Ignorar apenas este arquivo</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">Ignorar apenas este arquivo</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Corrigir</x:String>
|
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Corrigir</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">Você pode stagear este arquivo agora.</x:String>
|
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">Você pode stagear este arquivo agora.</x:String>
|
||||||
|
@ -667,7 +661,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">UNSTAGED</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">UNSTAGED</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">STAGE</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">STAGE</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">STAGE TODOS</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">STAGE TODOS</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">VER SUPOR NÃO ALTERADO</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">VER SUPOR NÃO ALTERADO</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Template: ${0}$</x:String>
|
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Template: ${0}$</x:String>
|
||||||
<x:String x:Key="Text.Workspace" xml:space="preserve">Workspaces: </x:String>
|
<x:String x:Key="Text.Workspace" xml:space="preserve">Workspaces: </x:String>
|
||||||
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configurar workspaces...</x:String>
|
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configurar workspaces...</x:String>
|
||||||
|
|
|
@ -6,6 +6,9 @@
|
||||||
<x:String x:Key="Text.About" xml:space="preserve">О программе</x:String>
|
<x:String x:Key="Text.About" xml:space="preserve">О программе</x:String>
|
||||||
<x:String x:Key="Text.About.Menu" xml:space="preserve">О SourceGit</x:String>
|
<x:String x:Key="Text.About.Menu" xml:space="preserve">О SourceGit</x:String>
|
||||||
<x:String x:Key="Text.About.SubTitle" xml:space="preserve">Бесплатный графический клиент Git с исходным кодом</x:String>
|
<x:String x:Key="Text.About.SubTitle" xml:space="preserve">Бесплатный графический клиент Git с исходным кодом</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore" xml:space="preserve">Добавить файл(ы) к игнорируемым</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore.Pattern" xml:space="preserve">Шаблон:</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore.Storage" xml:space="preserve">Файл хранилища:</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree" xml:space="preserve">Добавить рабочий каталог</x:String>
|
<x:String x:Key="Text.AddWorktree" xml:space="preserve">Добавить рабочий каталог</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree.Location" xml:space="preserve">Расположение:</x:String>
|
<x:String x:Key="Text.AddWorktree.Location" xml:space="preserve">Расположение:</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree.Location.Placeholder" xml:space="preserve">Путь к рабочему каталогу (поддерживается относительный путь)</x:String>
|
<x:String x:Key="Text.AddWorktree.Location.Placeholder" xml:space="preserve">Путь к рабочему каталогу (поддерживается относительный путь)</x:String>
|
||||||
|
@ -39,6 +42,8 @@
|
||||||
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">НЕОТСЛЕЖИВАЕМЫЕ ФАЙЛЫ</x:String>
|
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">НЕОТСЛЕЖИВАЕМЫЕ ФАЙЛЫ</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">СПИСОК ПУСТ</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">СПИСОК ПУСТ</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">УДАЛИТЬ</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">УДАЛИТЬ</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Load" xml:space="preserve">Загрузить картинку...</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Refetch" xml:space="preserve">Обновить</x:String>
|
||||||
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">ДВОИЧНЫЙ ФАЙЛ НЕ ПОДДЕРЖИВАЕТСЯ!!!</x:String>
|
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">ДВОИЧНЫЙ ФАЙЛ НЕ ПОДДЕРЖИВАЕТСЯ!!!</x:String>
|
||||||
<x:String x:Key="Text.Bisect">Раздвоить</x:String>
|
<x:String x:Key="Text.Bisect">Раздвоить</x:String>
|
||||||
<x:String x:Key="Text.Bisect.Abort">О</x:String>
|
<x:String x:Key="Text.Bisect.Abort">О</x:String>
|
||||||
|
@ -50,6 +55,7 @@
|
||||||
<x:String x:Key="Text.Blame" xml:space="preserve">Расследование</x:String>
|
<x:String x:Key="Text.Blame" xml:space="preserve">Расследование</x:String>
|
||||||
<x:String x:Key="Text.BlameTypeNotSupported" xml:space="preserve">РАССЛЕДОВАНИЕ В ЭТОМ ФАЙЛЕ НЕ ПОДДЕРЖИВАЕТСЯ!!!</x:String>
|
<x:String x:Key="Text.BlameTypeNotSupported" xml:space="preserve">РАССЛЕДОВАНИЕ В ЭТОМ ФАЙЛЕ НЕ ПОДДЕРЖИВАЕТСЯ!!!</x:String>
|
||||||
<x:String x:Key="Text.BranchCM.Checkout" xml:space="preserve">Переключиться на ${0}$...</x:String>
|
<x:String x:Key="Text.BranchCM.Checkout" xml:space="preserve">Переключиться на ${0}$...</x:String>
|
||||||
|
<x:String x:Key="Text.BranchCM.CompareWithCurrent" xml:space="preserve">Сравнить с ${0}$</x:String>
|
||||||
<x:String x:Key="Text.BranchCM.CompareWithWorktree" xml:space="preserve">Сравнить с рабочим каталогом</x:String>
|
<x:String x:Key="Text.BranchCM.CompareWithWorktree" xml:space="preserve">Сравнить с рабочим каталогом</x:String>
|
||||||
<x:String x:Key="Text.BranchCM.CopyName" xml:space="preserve">Копировать имя ветки</x:String>
|
<x:String x:Key="Text.BranchCM.CopyName" xml:space="preserve">Копировать имя ветки</x:String>
|
||||||
<x:String x:Key="Text.BranchCM.CustomAction" xml:space="preserve">Изменить действие</x:String>
|
<x:String x:Key="Text.BranchCM.CustomAction" xml:space="preserve">Изменить действие</x:String>
|
||||||
|
@ -87,6 +93,9 @@
|
||||||
<x:String x:Key="Text.Checkout.LocalChanges.StashAndReply" xml:space="preserve">Отложить и примненить повторно</x:String>
|
<x:String x:Key="Text.Checkout.LocalChanges.StashAndReply" xml:space="preserve">Отложить и примненить повторно</x:String>
|
||||||
<x:String x:Key="Text.Checkout.RecurseSubmodules" xml:space="preserve">Обновить все подкаталоги</x:String>
|
<x:String x:Key="Text.Checkout.RecurseSubmodules" xml:space="preserve">Обновить все подкаталоги</x:String>
|
||||||
<x:String x:Key="Text.Checkout.Target" xml:space="preserve">Ветка:</x:String>
|
<x:String x:Key="Text.Checkout.Target" xml:space="preserve">Ветка:</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WarnLostCommits" xml:space="preserve">Ваша текущая ГОЛОВА содержит ревизию(и), не связанные ни с к какими ветками или метками! Вы хотите продолжить?</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WithFastForward" xml:space="preserve">Переключиться и перемотать</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WithFastForward.Upstream" xml:space="preserve">Перемотать к:</x:String>
|
||||||
<x:String x:Key="Text.CherryPick" xml:space="preserve"> Частичный выбор</x:String>
|
<x:String x:Key="Text.CherryPick" xml:space="preserve"> Частичный выбор</x:String>
|
||||||
<x:String x:Key="Text.CherryPick.AppendSourceToMessage" xml:space="preserve">Добавить источник для ревизии сообщения</x:String>
|
<x:String x:Key="Text.CherryPick.AppendSourceToMessage" xml:space="preserve">Добавить источник для ревизии сообщения</x:String>
|
||||||
<x:String x:Key="Text.CherryPick.Commit" xml:space="preserve">Ревизия(и):</x:String>
|
<x:String x:Key="Text.CherryPick.Commit" xml:space="preserve">Ревизия(и):</x:String>
|
||||||
|
@ -119,6 +128,7 @@
|
||||||
<x:String x:Key="Text.CommitCM.InteractiveRebase" xml:space="preserve">Интерактивное перемещение (rebase -i) ${0}$ сюда</x:String>
|
<x:String x:Key="Text.CommitCM.InteractiveRebase" xml:space="preserve">Интерактивное перемещение (rebase -i) ${0}$ сюда</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Merge" xml:space="preserve">Влить в ${0}$</x:String>
|
<x:String x:Key="Text.CommitCM.Merge" xml:space="preserve">Влить в ${0}$</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.MergeMultiple" xml:space="preserve">Влить ...</x:String>
|
<x:String x:Key="Text.CommitCM.MergeMultiple" xml:space="preserve">Влить ...</x:String>
|
||||||
|
<x:String x:Key="Text.CommitCM.PushRevision" xml:space="preserve">Выложить ${0}$ в ${1}$</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Rebase" xml:space="preserve">Переместить ${0}$ сюда</x:String>
|
<x:String x:Key="Text.CommitCM.Rebase" xml:space="preserve">Переместить ${0}$ сюда</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Reset" xml:space="preserve">Сбросить ${0}$ сюда</x:String>
|
<x:String x:Key="Text.CommitCM.Reset" xml:space="preserve">Сбросить ${0}$ сюда</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Revert" xml:space="preserve">Отменить ревизию</x:String>
|
<x:String x:Key="Text.CommitCM.Revert" xml:space="preserve">Отменить ревизию</x:String>
|
||||||
|
@ -155,13 +165,17 @@
|
||||||
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">Название:</x:String>
|
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">Название:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">ПОЛЬЗОВАТЕЛЬСКОЕ ДЕЙСТВИЕ</x:String>
|
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">ПОЛЬЗОВАТЕЛЬСКОЕ ДЕЙСТВИЕ</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">Аргументы:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">Аргументы:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">${REPO} - Путь к репозиторию; ${SHA} - SHA ревизий</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">Встроенные параметры: ${REPO} — путь к репозиторию; ${BRANCH} — выбранная ветка; ${SHA} — хеш выбранной ревизии; ${TAG} — выбранная метка</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">Исполняемый файл:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">Исполняемый файл:</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls" xml:space="preserve">Элементы управления вводом:</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls.Edit" xml:space="preserve">Редактор</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls.Tip" xml:space="preserve">Вы можете использовать $1, $2 ... в аргументах для значений элемента управления вводом</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">Имя:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">Имя:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">Диапазон:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">Диапазон:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Branch" xml:space="preserve">Ветка</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Branch" xml:space="preserve">Ветка</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Commit" xml:space="preserve">Ревизия</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Commit" xml:space="preserve">Ревизия</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Repository" xml:space="preserve">Репозиторий</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Repository" xml:space="preserve">Репозиторий</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Tag" xml:space="preserve">Метка</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.WaitForExit" xml:space="preserve">Ждать для выполения выхода</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.WaitForExit" xml:space="preserve">Ждать для выполения выхода</x:String>
|
||||||
<x:String x:Key="Text.Configure.Email" xml:space="preserve">Адрес электронной почты</x:String>
|
<x:String x:Key="Text.Configure.Email" xml:space="preserve">Адрес электронной почты</x:String>
|
||||||
<x:String x:Key="Text.Configure.Email.Placeholder" xml:space="preserve">Адрес электронной почты</x:String>
|
<x:String x:Key="Text.Configure.Email.Placeholder" xml:space="preserve">Адрес электронной почты</x:String>
|
||||||
|
@ -190,6 +204,15 @@
|
||||||
<x:String x:Key="Text.Configure.Proxy.Placeholder" xml:space="preserve">HTTP-прокси для репозитория</x:String>
|
<x:String x:Key="Text.Configure.Proxy.Placeholder" xml:space="preserve">HTTP-прокси для репозитория</x:String>
|
||||||
<x:String x:Key="Text.Configure.User" xml:space="preserve">Имя пользователя</x:String>
|
<x:String x:Key="Text.Configure.User" xml:space="preserve">Имя пользователя</x:String>
|
||||||
<x:String x:Key="Text.Configure.User.Placeholder" xml:space="preserve">Имя пользователя репозитория</x:String>
|
<x:String x:Key="Text.Configure.User.Placeholder" xml:space="preserve">Имя пользователя репозитория</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls" xml:space="preserve">Пользовательское редактирование элементами действий</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.CheckedValue" xml:space="preserve">Проверяемое значение:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.CheckedValue.Tip" xml:space="preserve">Если установлено, то данное значение будет использоваться в аргументах командной строки</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Description" xml:space="preserve">Описание:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Description.Tip" xml:space="preserve">Используется в качестве заполнителя в текстовом поле/селекторе пути или всплывающей подсказки в флажке</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.DefaultValue" xml:space="preserve">По умолчанию:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.IsFolder" xml:space="preserve">Это каталог:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Label" xml:space="preserve">Метка:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Type" xml:space="preserve">Тип:</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace" xml:space="preserve">Рабочие пространства</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace" xml:space="preserve">Рабочие пространства</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace.Color" xml:space="preserve">Цвет</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace.Color" xml:space="preserve">Цвет</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace.Name" xml:space="preserve">Имя</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace.Name" xml:space="preserve">Имя</x:String>
|
||||||
|
@ -295,8 +318,8 @@
|
||||||
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">Цель:</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">Цель:</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">Редактировать выбранную группу</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">Редактировать выбранную группу</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">Редактировать выбранный репозиторий</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">Редактировать выбранный репозиторий</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction" xml:space="preserve">Выполнить пользовательское действие</x:String>
|
<x:String x:Key="Text.ExecuteCustomAction.Target" xml:space="preserve">Цель:</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction.Name" xml:space="preserve">Имя действия:</x:String>
|
<x:String x:Key="Text.ExecuteCustomAction.Repository" xml:space="preserve">Этот репозиторий</x:String>
|
||||||
<x:String x:Key="Text.Fetch" xml:space="preserve">Извлечь</x:String>
|
<x:String x:Key="Text.Fetch" xml:space="preserve">Извлечь</x:String>
|
||||||
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">Извлечь все внешние репозитории</x:String>
|
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">Извлечь все внешние репозитории</x:String>
|
||||||
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">Разрешить опцию (--force)</x:String>
|
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">Разрешить опцию (--force)</x:String>
|
||||||
|
@ -441,6 +464,7 @@
|
||||||
<x:String x:Key="Text.Launcher.Workspaces" xml:space="preserve">Рабочие места</x:String>
|
<x:String x:Key="Text.Launcher.Workspaces" xml:space="preserve">Рабочие места</x:String>
|
||||||
<x:String x:Key="Text.Launcher.Pages" xml:space="preserve">Страницы</x:String>
|
<x:String x:Key="Text.Launcher.Pages" xml:space="preserve">Страницы</x:String>
|
||||||
<x:String x:Key="Text.Merge" xml:space="preserve">Влить ветку</x:String>
|
<x:String x:Key="Text.Merge" xml:space="preserve">Влить ветку</x:String>
|
||||||
|
<x:String x:Key="Text.Merge.Edit" xml:space="preserve">Изменить сообщение слияния</x:String>
|
||||||
<x:String x:Key="Text.Merge.Into" xml:space="preserve">В:</x:String>
|
<x:String x:Key="Text.Merge.Into" xml:space="preserve">В:</x:String>
|
||||||
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">Опции слияния:</x:String>
|
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">Опции слияния:</x:String>
|
||||||
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Источник:</x:String>
|
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Источник:</x:String>
|
||||||
|
@ -473,6 +497,7 @@
|
||||||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} месяцев назад</x:String>
|
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} месяцев назад</x:String>
|
||||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} лет назад</x:String>
|
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} лет назад</x:String>
|
||||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Вчера</x:String>
|
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Вчера</x:String>
|
||||||
|
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">Используйте «Shift+Enter» для ввода новой строки. «Enter» - это горячая клавиша кнопки «OK»</x:String>
|
||||||
<x:String x:Key="Text.Preferences" xml:space="preserve">Параметры</x:String>
|
<x:String x:Key="Text.Preferences" xml:space="preserve">Параметры</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">ОТКРЫТЬ ИИ</x:String>
|
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">ОТКРЫТЬ ИИ</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Запрос на анализ сравнения</x:String>
|
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Запрос на анализ сравнения</x:String>
|
||||||
|
@ -551,6 +576,8 @@
|
||||||
<x:String x:Key="Text.Push.Force" xml:space="preserve">Принудительно выложить</x:String>
|
<x:String x:Key="Text.Push.Force" xml:space="preserve">Принудительно выложить</x:String>
|
||||||
<x:String x:Key="Text.Push.Local" xml:space="preserve">Локальная ветка:</x:String>
|
<x:String x:Key="Text.Push.Local" xml:space="preserve">Локальная ветка:</x:String>
|
||||||
<x:String x:Key="Text.Push.Remote" xml:space="preserve">Внешний репозиторий:</x:String>
|
<x:String x:Key="Text.Push.Remote" xml:space="preserve">Внешний репозиторий:</x:String>
|
||||||
|
<x:String x:Key="Text.Push.Revision" xml:space="preserve">Ревизия:</x:String>
|
||||||
|
<x:String x:Key="Text.Push.Revision.Title" xml:space="preserve">Выложить ревизию на удалёную</x:String>
|
||||||
<x:String x:Key="Text.Push.Title" xml:space="preserve">Выложить изменения на внешний репозиторий</x:String>
|
<x:String x:Key="Text.Push.Title" xml:space="preserve">Выложить изменения на внешний репозиторий</x:String>
|
||||||
<x:String x:Key="Text.Push.To" xml:space="preserve">Ветка внешнего репозитория:</x:String>
|
<x:String x:Key="Text.Push.To" xml:space="preserve">Ветка внешнего репозитория:</x:String>
|
||||||
<x:String x:Key="Text.Push.Tracking" xml:space="preserve">Отслеживать ветку</x:String>
|
<x:String x:Key="Text.Push.Tracking" xml:space="preserve">Отслеживать ветку</x:String>
|
||||||
|
@ -564,7 +591,6 @@
|
||||||
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">Отложить и применить повторно локальные изменения</x:String>
|
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">Отложить и применить повторно локальные изменения</x:String>
|
||||||
<x:String x:Key="Text.Rebase.On" xml:space="preserve">На:</x:String>
|
<x:String x:Key="Text.Rebase.On" xml:space="preserve">На:</x:String>
|
||||||
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">Переместить:</x:String>
|
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">Переместить:</x:String>
|
||||||
<x:String x:Key="Text.RefetchAvatar" xml:space="preserve">Обновить</x:String>
|
|
||||||
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">Добавить внешний репозиторий</x:String>
|
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">Добавить внешний репозиторий</x:String>
|
||||||
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">Редактировать внешний репозиторий</x:String>
|
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">Редактировать внешний репозиторий</x:String>
|
||||||
<x:String x:Key="Text.Remote.Name" xml:space="preserve">Имя:</x:String>
|
<x:String x:Key="Text.Remote.Name" xml:space="preserve">Имя:</x:String>
|
||||||
|
@ -592,6 +618,7 @@
|
||||||
<x:String x:Key="Text.Repository.Clean" xml:space="preserve">Очистить (Сбор мусора и удаление) </x:String>
|
<x:String x:Key="Text.Repository.Clean" xml:space="preserve">Очистить (Сбор мусора и удаление) </x:String>
|
||||||
<x:String x:Key="Text.Repository.CleanTips" xml:space="preserve">Запустить команду (git gc) для данного репозитория.</x:String>
|
<x:String x:Key="Text.Repository.CleanTips" xml:space="preserve">Запустить команду (git gc) для данного репозитория.</x:String>
|
||||||
<x:String x:Key="Text.Repository.ClearAllCommitsFilter" xml:space="preserve">Очистить всё</x:String>
|
<x:String x:Key="Text.Repository.ClearAllCommitsFilter" xml:space="preserve">Очистить всё</x:String>
|
||||||
|
<x:String x:Key="Text.Repository.ClearStashes" xml:space="preserve">Очистить</x:String>
|
||||||
<x:String x:Key="Text.Repository.Configure" xml:space="preserve">Настройка репозитория</x:String>
|
<x:String x:Key="Text.Repository.Configure" xml:space="preserve">Настройка репозитория</x:String>
|
||||||
<x:String x:Key="Text.Repository.Continue" xml:space="preserve">ПРОДОЛЖИТЬ</x:String>
|
<x:String x:Key="Text.Repository.Continue" xml:space="preserve">ПРОДОЛЖИТЬ</x:String>
|
||||||
<x:String x:Key="Text.Repository.CustomActions" xml:space="preserve">Изменить действия</x:String>
|
<x:String x:Key="Text.Repository.CustomActions" xml:space="preserve">Изменить действия</x:String>
|
||||||
|
@ -625,8 +652,8 @@
|
||||||
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">Автор</x:String>
|
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">Автор</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">Ревизор</x:String>
|
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">Ревизор</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByContent" xml:space="preserve">Содержимое</x:String>
|
<x:String x:Key="Text.Repository.Search.ByContent" xml:space="preserve">Содержимое</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByFile" xml:space="preserve">Файл</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Сообщение</x:String>
|
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Сообщение</x:String>
|
||||||
|
<x:String x:Key="Text.Repository.Search.ByPath" xml:space="preserve">Путь</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">Текущая ветка</x:String>
|
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">Текущая ветка</x:String>
|
||||||
<x:String x:Key="Text.Repository.ShowSubmodulesAsTree" xml:space="preserve">Показывать подмодули как дерево</x:String>
|
<x:String x:Key="Text.Repository.ShowSubmodulesAsTree" xml:space="preserve">Показывать подмодули как дерево</x:String>
|
||||||
|
@ -639,8 +666,7 @@
|
||||||
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">МЕТКИ</x:String>
|
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">МЕТКИ</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">НОВАЯ МЕТКА</x:String>
|
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">НОВАЯ МЕТКА</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">По дате создания</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">По дате создания</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameAsc" xml:space="preserve">По имени (по возрастанию)</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByName" xml:space="preserve">По имени</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameDes" xml:space="preserve">По имени (по убыванию)</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">Сортировать</x:String>
|
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">Сортировать</x:String>
|
||||||
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">Открыть в терминале</x:String>
|
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">Открыть в терминале</x:String>
|
||||||
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">Использовать относительное время в историях</x:String>
|
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">Использовать относительное время в историях</x:String>
|
||||||
|
@ -662,7 +688,6 @@
|
||||||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Ревизия:</x:String>
|
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Ревизия:</x:String>
|
||||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Отмена ревизии</x:String>
|
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Отмена ревизии</x:String>
|
||||||
<x:String x:Key="Text.Reword" xml:space="preserve">Изменить комментарий ревизии</x:String>
|
<x:String x:Key="Text.Reword" xml:space="preserve">Изменить комментарий ревизии</x:String>
|
||||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">Используйте «Shift+Enter» для ввода новой строки. «Enter» - это горячая клавиша кнопки «OK»</x:String>
|
|
||||||
<x:String x:Key="Text.Running" xml:space="preserve">Запуск. Подождите пожалуйста...</x:String>
|
<x:String x:Key="Text.Running" xml:space="preserve">Запуск. Подождите пожалуйста...</x:String>
|
||||||
<x:String x:Key="Text.Save" xml:space="preserve">СОХРАНИТЬ</x:String>
|
<x:String x:Key="Text.Save" xml:space="preserve">СОХРАНИТЬ</x:String>
|
||||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">Сохранить как...</x:String>
|
<x:String x:Key="Text.SaveAs" xml:space="preserve">Сохранить как...</x:String>
|
||||||
|
@ -688,16 +713,15 @@
|
||||||
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">Путь хранения приватного ключа SSH</x:String>
|
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">Путь хранения приватного ключа SSH</x:String>
|
||||||
<x:String x:Key="Text.Start" xml:space="preserve">ЗАПУСК</x:String>
|
<x:String x:Key="Text.Start" xml:space="preserve">ЗАПУСК</x:String>
|
||||||
<x:String x:Key="Text.Stash" xml:space="preserve">Отложить</x:String>
|
<x:String x:Key="Text.Stash" xml:space="preserve">Отложить</x:String>
|
||||||
<x:String x:Key="Text.Stash.AutoRestore" xml:space="preserve">Автоматически восстанавливать после откладывания</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.AutoRestore.Tip" xml:space="preserve">Ваши рабочие файлы остаются неизменными, но отложенные сохранятся.</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Включить неотслеживаемые файлы</x:String>
|
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Включить неотслеживаемые файлы</x:String>
|
||||||
<x:String x:Key="Text.Stash.KeepIndex" xml:space="preserve">Хранить отложенные файлы</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Сообщение:</x:String>
|
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Сообщение:</x:String>
|
||||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Имя тайника (необязательно)</x:String>
|
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Имя тайника (необязательно)</x:String>
|
||||||
|
<x:String x:Key="Text.Stash.Mode" xml:space="preserve">Режим:</x:String>
|
||||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Только сформированные изменения</x:String>
|
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Только сформированные изменения</x:String>
|
||||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Сформированные так и несформированные изменения выбранных файлов будут сохранены!!!</x:String>
|
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Сформированные так и несформированные изменения выбранных файлов будут сохранены!!!</x:String>
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Отложить локальные изменения</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Отложить локальные изменения</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Принять</x:String>
|
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Принять</x:String>
|
||||||
|
<x:String x:Key="Text.StashCM.CopyMessage" xml:space="preserve">Копировать сообщение</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Отбросить</x:String>
|
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Отбросить</x:String>
|
||||||
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">Сохранить как заплатку...</x:String>
|
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">Сохранить как заплатку...</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Отбросить тайник</x:String>
|
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Отбросить тайник</x:String>
|
||||||
|
@ -730,7 +754,8 @@
|
||||||
<x:String x:Key="Text.Submodule.URL" xml:space="preserve">URL-адрес</x:String>
|
<x:String x:Key="Text.Submodule.URL" xml:space="preserve">URL-адрес</x:String>
|
||||||
<x:String x:Key="Text.Sure" xml:space="preserve">ОК</x:String>
|
<x:String x:Key="Text.Sure" xml:space="preserve">ОК</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Копировать имя метки</x:String>
|
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Копировать имя метки</x:String>
|
||||||
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Копировать сообщение с метки</x:String>
|
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Копировать сообщение метки</x:String>
|
||||||
|
<x:String x:Key="Text.TagCM.CustomAction" xml:space="preserve">Пользовательское действие</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Удалить ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Удалить ${0}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Влить ${0}$ в ${1}$...</x:String>
|
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Влить ${0}$ в ${1}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Выложить ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Выложить ${0}$...</x:String>
|
||||||
|
@ -764,7 +789,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Игнорировать Git</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Игнорировать Git</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">Игнорировать все *{0} файлы</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">Игнорировать все *{0} файлы</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">Игнорировать *{0} файлы в том же каталоге</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">Игнорировать *{0} файлы в том же каталоге</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InSameFolder" xml:space="preserve">Игнорировать файлы в том же каталоге</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InFolder" xml:space="preserve">Игнорировать неотслеживаемые файлы в этом каталоге</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">Игнорировать только эти файлы</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">Игнорировать только эти файлы</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Изменить</x:String>
|
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Изменить</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">Теперь вы можете сформировать этот файл.</x:String>
|
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">Теперь вы можете сформировать этот файл.</x:String>
|
||||||
|
@ -774,6 +799,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitTip" xml:space="preserve">Запустить событие щелчка</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitTip" xml:space="preserve">Запустить событие щелчка</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitToEdit" xml:space="preserve">Зафиксировать (Редактировать)</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitToEdit" xml:space="preserve">Зафиксировать (Редактировать)</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitWithAutoStage" xml:space="preserve">Сформировать все изменения и зафиксировать</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitWithAutoStage" xml:space="preserve">Сформировать все изменения и зафиксировать</x:String>
|
||||||
|
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithDetachedHead">Вы создаёте ревизию на отсоединённой ГОЛОВЕ. Вы хотите продолжить?</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithFilter">Вы сформировали {0} файл(ов), но отображается только {1} файл(ов) ({2} файл(ов) отфильтровано). Вы хотите продолжить?</x:String>
|
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithFilter">Вы сформировали {0} файл(ов), но отображается только {1} файл(ов) ({2} файл(ов) отфильтровано). Вы хотите продолжить?</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Conflicts" xml:space="preserve">ОБНАРУЖЕНЫ КОНФЛИКТЫ</x:String>
|
<x:String x:Key="Text.WorkingCopy.Conflicts" xml:space="preserve">ОБНАРУЖЕНЫ КОНФЛИКТЫ</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Conflicts.OpenExternalMergeTool" xml:space="preserve">ОТКРЫТЬ ВНЕШНИЙ ИНСТРУМЕНТ СЛИЯНИЯ</x:String>
|
<x:String x:Key="Text.WorkingCopy.Conflicts.OpenExternalMergeTool" xml:space="preserve">ОТКРЫТЬ ВНЕШНИЙ ИНСТРУМЕНТ СЛИЯНИЯ</x:String>
|
||||||
|
@ -784,6 +810,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.IncludeUntracked" xml:space="preserve">ВКЛЮЧИТЬ НЕОТСЛЕЖИВАЕМЫЕ ФАЙЛЫ</x:String>
|
<x:String x:Key="Text.WorkingCopy.IncludeUntracked" xml:space="preserve">ВКЛЮЧИТЬ НЕОТСЛЕЖИВАЕМЫЕ ФАЙЛЫ</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.NoCommitHistories" xml:space="preserve">НЕТ ПОСЛЕДНИХ ВХОДНЫХ СООБЩЕНИЙ</x:String>
|
<x:String x:Key="Text.WorkingCopy.NoCommitHistories" xml:space="preserve">НЕТ ПОСЛЕДНИХ ВХОДНЫХ СООБЩЕНИЙ</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.NoCommitTemplates" xml:space="preserve">НЕТ ШАБЛОНОВ РЕВИЗИИ</x:String>
|
<x:String x:Key="Text.WorkingCopy.NoCommitTemplates" xml:space="preserve">НЕТ ШАБЛОНОВ РЕВИЗИИ</x:String>
|
||||||
|
<x:String x:Key="Text.WorkingCopy.ResetAuthor" xml:space="preserve">Сбросить автора</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.ResolveTip" xml:space="preserve">Щёлкните правой кнопкой мыши выбранный файл(ы) и разрешите конфликты.</x:String>
|
<x:String x:Key="Text.WorkingCopy.ResolveTip" xml:space="preserve">Щёлкните правой кнопкой мыши выбранный файл(ы) и разрешите конфликты.</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.SignOff" xml:space="preserve">Завершение работы</x:String>
|
<x:String x:Key="Text.WorkingCopy.SignOff" xml:space="preserve">Завершение работы</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Staged" xml:space="preserve">СФОРМИРОВАННЫЕ</x:String>
|
<x:String x:Key="Text.WorkingCopy.Staged" xml:space="preserve">СФОРМИРОВАННЫЕ</x:String>
|
||||||
|
@ -792,7 +819,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">НЕСФОРМИРОВАННЫЕ</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">НЕСФОРМИРОВАННЫЕ</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">СФОРМИРОВАТЬ</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">СФОРМИРОВАТЬ</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">СФОРМИРОВАТЬ ВСЁ</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">СФОРМИРОВАТЬ ВСЁ</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">ОТКРЫТЬ СПИСОК НЕОТСЛЕЖИВАЕМЫХ ФАЙЛОВ</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">ОТКРЫТЬ СПИСОК НЕОТСЛЕЖИВАЕМЫХ ФАЙЛОВ</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Шаблон: ${0}$</x:String>
|
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Шаблон: ${0}$</x:String>
|
||||||
<x:String x:Key="Text.Workspace" xml:space="preserve">РАБОЧЕЕ ПРОСТРАНСТВО: </x:String>
|
<x:String x:Key="Text.Workspace" xml:space="preserve">РАБОЧЕЕ ПРОСТРАНСТВО: </x:String>
|
||||||
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Настройка рабочего пространства...</x:String>
|
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Настройка рабочего пространства...</x:String>
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">கோப்புகள் மாற்றப்படவில்லை எனக் கருதப்படுகிறது</x:String>
|
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">கோப்புகள் மாற்றப்படவில்லை எனக் கருதப்படுகிறது</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">எந்த கோப்புகளும் மாற்றப்படவில்லை எனக் கருதப்படுகிறது</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">எந்த கோப்புகளும் மாற்றப்படவில்லை எனக் கருதப்படுகிறது</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">நீக்கு</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">நீக்கு</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Refetch" xml:space="preserve">புதுப்பி</x:String>
|
||||||
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">இருமம் கோப்பு ஆதரிக்கப்படவில்லை!!!</x:String>
|
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">இருமம் கோப்பு ஆதரிக்கப்படவில்லை!!!</x:String>
|
||||||
<x:String x:Key="Text.Blame" xml:space="preserve">குற்றச்சாட்டு</x:String>
|
<x:String x:Key="Text.Blame" xml:space="preserve">குற்றச்சாட்டு</x:String>
|
||||||
<x:String x:Key="Text.BlameTypeNotSupported" xml:space="preserve">இந்த கோப்பில் குற்றம் சாட்ட ஆதரிக்கப்படவில்லை!!!</x:String>
|
<x:String x:Key="Text.BlameTypeNotSupported" xml:space="preserve">இந்த கோப்பில் குற்றம் சாட்ட ஆதரிக்கப்படவில்லை!!!</x:String>
|
||||||
|
@ -141,7 +142,6 @@
|
||||||
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">வார்ப்புரு பெயர்:</x:String>
|
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">வார்ப்புரு பெயர்:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">தனிப்பயன் செயல்</x:String>
|
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">தனிப்பயன் செயல்</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">வாதங்கள்:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">வாதங்கள்:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">${களஞ்சிய} - களஞ்சியத்தின் பாதை; ${கிளை} - தேர்ந்தெடுக்கப்பட்ட கிளை; ${பாகொவ} - தேர்ந்தெடுக்கப்பட்ட உறுதிமொழிடியின் பாகொவ</x:String>
|
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">இயக்கக்கூடிய கோப்பு:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">இயக்கக்கூடிய கோப்பு:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">பெயர்:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">பெயர்:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">நோக்கம்:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">நோக்கம்:</x:String>
|
||||||
|
@ -271,8 +271,6 @@
|
||||||
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">இலக்கு:</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">இலக்கு:</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">தேர்ந்தெடுக்கப்பட்ட குழுவைத் திருத்து</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">தேர்ந்தெடுக்கப்பட்ட குழுவைத் திருத்து</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">தேர்ந்தெடுக்கப்பட்ட களஞ்சியத்தைத் திருத்து</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">தேர்ந்தெடுக்கப்பட்ட களஞ்சியத்தைத் திருத்து</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction" xml:space="preserve">தனிப்பயன் செயலை இயக்கு</x:String>
|
|
||||||
<x:String x:Key="Text.ExecuteCustomAction.Name" xml:space="preserve">செயல் பெயர்:</x:String>
|
|
||||||
<x:String x:Key="Text.Fetch" xml:space="preserve">பெறு</x:String>
|
<x:String x:Key="Text.Fetch" xml:space="preserve">பெறு</x:String>
|
||||||
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">எல்லா தொலைகளையும் பெறு</x:String>
|
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">எல்லா தொலைகளையும் பெறு</x:String>
|
||||||
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">உள்ளக குறிப்புகளை கட்டாயமாக மீறு</x:String>
|
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">உள்ளக குறிப்புகளை கட்டாயமாக மீறு</x:String>
|
||||||
|
@ -442,6 +440,7 @@
|
||||||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} திங்களுக்கு முன்பு</x:String>
|
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} திங்களுக்கு முன்பு</x:String>
|
||||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} ஆண்டுகளுக்கு முன்பு</x:String>
|
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} ஆண்டுகளுக்கு முன்பு</x:String>
|
||||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">நேற்று</x:String>
|
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">நேற்று</x:String>
|
||||||
|
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">புதிய வரியை உள்ளிட 'உயர்த்து+நுழை' ஐப் பயன்படுத்தவும். 'நுழை' என்பது சரி பொத்தானின் சூடானவிசை ஆகும்</x:String>
|
||||||
<x:String x:Key="Text.Preferences" xml:space="preserve">விருப்பத்தேர்வுகள்</x:String>
|
<x:String x:Key="Text.Preferences" xml:space="preserve">விருப்பத்தேர்வுகள்</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">செநு</x:String>
|
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">செநு</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">வேறுபாடு உடனடியாக பகுப்பாய்வு செய்</x:String>
|
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">வேறுபாடு உடனடியாக பகுப்பாய்வு செய்</x:String>
|
||||||
|
@ -531,7 +530,6 @@
|
||||||
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">உள்ளக மாற்றங்களை பதுக்கிவை & மீண்டும் இடு</x:String>
|
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">உள்ளக மாற்றங்களை பதுக்கிவை & மீண்டும் இடு</x:String>
|
||||||
<x:String x:Key="Text.Rebase.On" xml:space="preserve">மேல்:</x:String>
|
<x:String x:Key="Text.Rebase.On" xml:space="preserve">மேல்:</x:String>
|
||||||
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">மறுதளம்:</x:String>
|
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">மறுதளம்:</x:String>
|
||||||
<x:String x:Key="Text.RefetchAvatar" xml:space="preserve">புதுப்பி</x:String>
|
|
||||||
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">தொலையைச் சேர்</x:String>
|
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">தொலையைச் சேர்</x:String>
|
||||||
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">தொலையைத் திருத்து</x:String>
|
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">தொலையைத் திருத்து</x:String>
|
||||||
<x:String x:Key="Text.Remote.Name" xml:space="preserve">பெயர்:</x:String>
|
<x:String x:Key="Text.Remote.Name" xml:space="preserve">பெயர்:</x:String>
|
||||||
|
@ -588,7 +586,6 @@
|
||||||
<x:String x:Key="Text.Repository.Search" xml:space="preserve">உறுதிமொழி தேடு</x:String>
|
<x:String x:Key="Text.Repository.Search" xml:space="preserve">உறுதிமொழி தேடு</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">ஆசிரியர்</x:String>
|
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">ஆசிரியர்</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">உறுதிமொழியாளர்</x:String>
|
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">உறுதிமொழியாளர்</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByFile" xml:space="preserve">கோப்பு</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">செய்தி</x:String>
|
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">செய்தி</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">பாகொவ</x:String>
|
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">பாகொவ</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">தற்போதைய கிளை</x:String>
|
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">தற்போதைய கிளை</x:String>
|
||||||
|
@ -601,8 +598,7 @@
|
||||||
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">குறிசொற்கள்</x:String>
|
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">குறிசொற்கள்</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">புதிய குறிசொல்</x:String>
|
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">புதிய குறிசொல்</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">படைப்பாளர் தேதியின்படி</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">படைப்பாளர் தேதியின்படி</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameAsc" xml:space="preserve">பெயர் (ஏறுவரிசை) மூலம்</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByName" xml:space="preserve">பெயர் மூலம்</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameDes" xml:space="preserve">பெயர் (இறகுவரிசை) மூலம்</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">வரிசைப்படுத்து</x:String>
|
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">வரிசைப்படுத்து</x:String>
|
||||||
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">முனையத்தில் திற</x:String>
|
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">முனையத்தில் திற</x:String>
|
||||||
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">வரலாறுகளில் உறவு நேரத்தைப் பயன்படுத்து</x:String>
|
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">வரலாறுகளில் உறவு நேரத்தைப் பயன்படுத்து</x:String>
|
||||||
|
@ -619,7 +615,6 @@
|
||||||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">உறுதிமொழி:</x:String>
|
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">உறுதிமொழி:</x:String>
|
||||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">பின்வாங்கு மாற்றங்களை உறுதிமொழி</x:String>
|
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">பின்வாங்கு மாற்றங்களை உறுதிமொழி</x:String>
|
||||||
<x:String x:Key="Text.Reword" xml:space="preserve">மாறுசொல் உறுதிமொழி செய்தி</x:String>
|
<x:String x:Key="Text.Reword" xml:space="preserve">மாறுசொல் உறுதிமொழி செய்தி</x:String>
|
||||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">புதிய வரியை உள்ளிட 'உயர்த்து+நுழை' ஐப் பயன்படுத்தவும். 'நுழை' என்பது சரி பொத்தானின் சூடானவிசை ஆகும்</x:String>
|
|
||||||
<x:String x:Key="Text.Running" xml:space="preserve">இயங்குகிறது. காத்திருக்கவும்...</x:String>
|
<x:String x:Key="Text.Running" xml:space="preserve">இயங்குகிறது. காத்திருக்கவும்...</x:String>
|
||||||
<x:String x:Key="Text.Save" xml:space="preserve">சேமி</x:String>
|
<x:String x:Key="Text.Save" xml:space="preserve">சேமி</x:String>
|
||||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">எனச் சேமி...</x:String>
|
<x:String x:Key="Text.SaveAs" xml:space="preserve">எனச் சேமி...</x:String>
|
||||||
|
@ -645,10 +640,7 @@
|
||||||
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">தனியார் பாஓடு திறவுகோல் கடை பாதை</x:String>
|
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">தனியார் பாஓடு திறவுகோல் கடை பாதை</x:String>
|
||||||
<x:String x:Key="Text.Start" xml:space="preserve">தொடங்கு</x:String>
|
<x:String x:Key="Text.Start" xml:space="preserve">தொடங்கு</x:String>
|
||||||
<x:String x:Key="Text.Stash" xml:space="preserve">பதுக்கிவை</x:String>
|
<x:String x:Key="Text.Stash" xml:space="preserve">பதுக்கிவை</x:String>
|
||||||
<x:String x:Key="Text.Stash.AutoRestore" xml:space="preserve">பதுக்கிவைத்த பிறகு தானியங்கி மீட்டமை</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.AutoRestore.Tip" xml:space="preserve">உங்கள் செயல்படும் கோப்புகள் மாறாமல் இருக்கும், ஆனால் ஒரு பதுக்கிவைக்கப்படும்.</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">கண்காணிக்கப்படாத கோப்புகளைச் சேர்</x:String>
|
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">கண்காணிக்கப்படாத கோப்புகளைச் சேர்</x:String>
|
||||||
<x:String x:Key="Text.Stash.KeepIndex" xml:space="preserve">நிலைப்படுத்தப்பட்ட கோப்புகளை வைத்திரு</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">செய்தி:</x:String>
|
<x:String x:Key="Text.Stash.Message" xml:space="preserve">செய்தி:</x:String>
|
||||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">விருப்பத்தேர்வு. இந்த பதுக்கலின் பெயர்</x:String>
|
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">விருப்பத்தேர்வு. இந்த பதுக்கலின் பெயர்</x:String>
|
||||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">நிலைப்படுத்தப்பட்ட மாற்றங்கள் மட்டும்</x:String>
|
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">நிலைப்படுத்தப்பட்ட மாற்றங்கள் மட்டும்</x:String>
|
||||||
|
@ -709,7 +701,6 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">அறிவிலி புறக்கணி</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">அறிவிலி புறக்கணி</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">எல்லா *{0} கோப்புகளையும் புறக்கணி</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">எல்லா *{0} கோப்புகளையும் புறக்கணி</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">ஒரே கோப்புறையில் *{0} கோப்புகளைப் புறக்கணி</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">ஒரே கோப்புறையில் *{0} கோப்புகளைப் புறக்கணி</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InSameFolder" xml:space="preserve">ஒரே கோப்புறையில் கோப்புகளைப் புறக்கணி</x:String>
|
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">இந்த கோப்பை மட்டும் புறக்கணி</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">இந்த கோப்பை மட்டும் புறக்கணி</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">பின்னொட்டு</x:String>
|
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">பின்னொட்டு</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">இந்த கோப்பை இப்போது நீங்கள் நிலைப்படுத்தலாம்.</x:String>
|
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">இந்த கோப்பை இப்போது நீங்கள் நிலைப்படுத்தலாம்.</x:String>
|
||||||
|
@ -733,7 +724,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">நிலைநீக்கு</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">நிலைநீக்கு</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">நிலைபடுத்து</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">நிலைபடுத்து</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">அனைத்தும் நிலைபடுத்து</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">அனைத்தும் நிலைபடுத்து</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">மாறாதது எனநினைப்பதை பார்</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">மாறாதது எனநினைப்பதை பார்</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">வளர்புரு: ${0}$</x:String>
|
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">வளர்புரு: ${0}$</x:String>
|
||||||
<x:String x:Key="Text.Workspace" xml:space="preserve">பணியிடம்:</x:String>
|
<x:String x:Key="Text.Workspace" xml:space="preserve">பணியிடம்:</x:String>
|
||||||
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">பணியிடங்களை உள்ளமை...</x:String>
|
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">பணியிடங்களை உள்ளமை...</x:String>
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">ФАЙЛИ, ЩО ВВАЖАЮТЬСЯ НЕЗМІНЕНИМИ</x:String>
|
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">ФАЙЛИ, ЩО ВВАЖАЮТЬСЯ НЕЗМІНЕНИМИ</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">НЕМАЄ ФАЙЛІВ, ЩО ВВАЖАЮТЬСЯ НЕЗМІНЕНИМИ</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">НЕМАЄ ФАЙЛІВ, ЩО ВВАЖАЮТЬСЯ НЕЗМІНЕНИМИ</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">ВИДАЛИТИ</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">ВИДАЛИТИ</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Refetch" xml:space="preserve">Оновити</x:String>
|
||||||
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">БІНАРНИЙ ФАЙЛ НЕ ПІДТРИМУЄТЬСЯ!!!</x:String>
|
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">БІНАРНИЙ ФАЙЛ НЕ ПІДТРИМУЄТЬСЯ!!!</x:String>
|
||||||
<x:String x:Key="Text.Blame" xml:space="preserve">Автор рядка</x:String>
|
<x:String x:Key="Text.Blame" xml:space="preserve">Автор рядка</x:String>
|
||||||
<x:String x:Key="Text.BlameTypeNotSupported" xml:space="preserve">ПОШУК АВТОРА РЯДКА ДЛЯ ЦЬОГО ФАЙЛУ НЕ ПІДТРИМУЄТЬСЯ!!!</x:String>
|
<x:String x:Key="Text.BlameTypeNotSupported" xml:space="preserve">ПОШУК АВТОРА РЯДКА ДЛЯ ЦЬОГО ФАЙЛУ НЕ ПІДТРИМУЄТЬСЯ!!!</x:String>
|
||||||
|
@ -142,7 +143,6 @@
|
||||||
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">Назва шаблону:</x:String>
|
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">Назва шаблону:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">СПЕЦІАЛЬНА ДІЯ</x:String>
|
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">СПЕЦІАЛЬНА ДІЯ</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">Аргументи:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">Аргументи:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">${REPO} - Шлях до сховища; ${BRANCH} - Вибрана гілка; ${SHA} - SHA вибраного коміту</x:String>
|
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">Виконуваний файл:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">Виконуваний файл:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">Назва:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">Назва:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">Область застосування:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">Область застосування:</x:String>
|
||||||
|
@ -276,8 +276,6 @@
|
||||||
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">Ціль:</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">Ціль:</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">Редагувати вибрану групу</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">Редагувати вибрану групу</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">Редагувати вибраний репозиторій</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">Редагувати вибраний репозиторій</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction" xml:space="preserve">Виконати спеціальну дію</x:String>
|
|
||||||
<x:String x:Key="Text.ExecuteCustomAction.Name" xml:space="preserve">Ім'я дії:</x:String>
|
|
||||||
<x:String x:Key="Text.Fetch" xml:space="preserve">Витягти</x:String>
|
<x:String x:Key="Text.Fetch" xml:space="preserve">Витягти</x:String>
|
||||||
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">Витягти всі віддалені сховища</x:String>
|
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">Витягти всі віддалені сховища</x:String>
|
||||||
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">Примусово перезаписати локальні refs</x:String>
|
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">Примусово перезаписати локальні refs</x:String>
|
||||||
|
@ -447,6 +445,7 @@
|
||||||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} місяців тому</x:String>
|
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} місяців тому</x:String>
|
||||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} років тому</x:String>
|
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} років тому</x:String>
|
||||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Вчора</x:String>
|
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Вчора</x:String>
|
||||||
|
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">Використовуйте 'Shift+Enter' для введення нового рядка. 'Enter' - гаряча клавіша кнопки OK</x:String>
|
||||||
<x:String x:Key="Text.Preferences" xml:space="preserve">Налаштування</x:String>
|
<x:String x:Key="Text.Preferences" xml:space="preserve">Налаштування</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Промпт для аналізу різниці</x:String>
|
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Промпт для аналізу різниці</x:String>
|
||||||
|
@ -536,7 +535,6 @@
|
||||||
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">Сховати та застосувати локальні зміни</x:String>
|
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">Сховати та застосувати локальні зміни</x:String>
|
||||||
<x:String x:Key="Text.Rebase.On" xml:space="preserve">На:</x:String>
|
<x:String x:Key="Text.Rebase.On" xml:space="preserve">На:</x:String>
|
||||||
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">Перебазувати:</x:String>
|
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">Перебазувати:</x:String>
|
||||||
<x:String x:Key="Text.RefetchAvatar" xml:space="preserve">Оновити</x:String>
|
|
||||||
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">Додати віддалене сховище</x:String>
|
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">Додати віддалене сховище</x:String>
|
||||||
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">Редагувати віддалене сховище</x:String>
|
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">Редагувати віддалене сховище</x:String>
|
||||||
<x:String x:Key="Text.Remote.Name" xml:space="preserve">Назва:</x:String>
|
<x:String x:Key="Text.Remote.Name" xml:space="preserve">Назва:</x:String>
|
||||||
|
@ -593,7 +591,6 @@
|
||||||
<x:String x:Key="Text.Repository.Search" xml:space="preserve">Пошук коміту</x:String>
|
<x:String x:Key="Text.Repository.Search" xml:space="preserve">Пошук коміту</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">Автор</x:String>
|
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">Автор</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">Комітер</x:String>
|
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">Комітер</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByFile" xml:space="preserve">Файл</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Повідомлення</x:String>
|
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Повідомлення</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">Поточна гілка</x:String>
|
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">Поточна гілка</x:String>
|
||||||
|
@ -606,8 +603,7 @@
|
||||||
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">ТЕГИ</x:String>
|
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">ТЕГИ</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">НОВИЙ ТЕГ</x:String>
|
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">НОВИЙ ТЕГ</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">За датою створення</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">За датою створення</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameAsc" xml:space="preserve">За назвою (за зростанням)</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByName" xml:space="preserve">За назвою</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameDes" xml:space="preserve">За назвою (за спаданням)</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">Сортувати</x:String>
|
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">Сортувати</x:String>
|
||||||
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">Відкрити в терміналі</x:String>
|
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">Відкрити в терміналі</x:String>
|
||||||
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">Використовувати відносний час в історії</x:String>
|
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">Використовувати відносний час в історії</x:String>
|
||||||
|
@ -624,7 +620,6 @@
|
||||||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Коміт:</x:String>
|
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Коміт:</x:String>
|
||||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Закомітити зміни скасування</x:String>
|
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Закомітити зміни скасування</x:String>
|
||||||
<x:String x:Key="Text.Reword" xml:space="preserve">Змінити повідомлення коміту</x:String>
|
<x:String x:Key="Text.Reword" xml:space="preserve">Змінити повідомлення коміту</x:String>
|
||||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">Використовуйте 'Shift+Enter' для введення нового рядка. 'Enter' - гаряча клавіша кнопки OK</x:String>
|
|
||||||
<x:String x:Key="Text.Running" xml:space="preserve">Виконується. Будь ласка, зачекайте...</x:String>
|
<x:String x:Key="Text.Running" xml:space="preserve">Виконується. Будь ласка, зачекайте...</x:String>
|
||||||
<x:String x:Key="Text.Save" xml:space="preserve">ЗБЕРЕГТИ</x:String>
|
<x:String x:Key="Text.Save" xml:space="preserve">ЗБЕРЕГТИ</x:String>
|
||||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">Зберегти як...</x:String>
|
<x:String x:Key="Text.SaveAs" xml:space="preserve">Зберегти як...</x:String>
|
||||||
|
@ -650,10 +645,7 @@
|
||||||
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">Шлях до сховища приватного ключа SSH</x:String>
|
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">Шлях до сховища приватного ключа SSH</x:String>
|
||||||
<x:String x:Key="Text.Start" xml:space="preserve">ПОЧАТИ</x:String>
|
<x:String x:Key="Text.Start" xml:space="preserve">ПОЧАТИ</x:String>
|
||||||
<x:String x:Key="Text.Stash" xml:space="preserve">Stash (Сховати)</x:String>
|
<x:String x:Key="Text.Stash" xml:space="preserve">Stash (Сховати)</x:String>
|
||||||
<x:String x:Key="Text.Stash.AutoRestore" xml:space="preserve">Автоматично відновити після схову</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.AutoRestore.Tip" xml:space="preserve">Ваші робочі файли залишаться без змін, але буде збережено схованку.</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Включити невідстежувані файли</x:String>
|
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Включити невідстежувані файли</x:String>
|
||||||
<x:String x:Key="Text.Stash.KeepIndex" xml:space="preserve">Зберегти проіндексовані файли</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Повідомлення:</x:String>
|
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Повідомлення:</x:String>
|
||||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Необов'язково. Назва цієї схованки</x:String>
|
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Необов'язково. Назва цієї схованки</x:String>
|
||||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Лише проіндексовані зміни</x:String>
|
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Лише проіндексовані зміни</x:String>
|
||||||
|
@ -715,7 +707,6 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Git Ignore</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">Git Ignore</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">Ігнорувати всі файли *{0}</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">Ігнорувати всі файли *{0}</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">Ігнорувати файли *{0} у цій же теці</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">Ігнорувати файли *{0} у цій же теці</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InSameFolder" xml:space="preserve">Ігнорувати файли у цій же теці</x:String>
|
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">Ігнорувати лише цей файл</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">Ігнорувати лише цей файл</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Amend (Доповнити)</x:String>
|
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Amend (Доповнити)</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">Тепер ви можете проіндексувати цей файл.</x:String>
|
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">Тепер ви можете проіндексувати цей файл.</x:String>
|
||||||
|
@ -743,7 +734,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">НЕПРОІНДЕКСОВАНІ</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">НЕПРОІНДЕКСОВАНІ</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">ІНДЕКСУВАТИ</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">ІНДЕКСУВАТИ</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">ІНДЕКСУВАТИ ВСЕ</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">ІНДЕКСУВАТИ ВСЕ</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">ПЕРЕГЛЯНУТИ ФАЙЛИ, ЩО ВВАЖАЮТЬСЯ НЕЗМІНЕНИМИ</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">ПЕРЕГЛЯНУТИ ФАЙЛИ, ЩО ВВАЖАЮТЬСЯ НЕЗМІНЕНИМИ</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Шаблон: ${0}$</x:String>
|
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Шаблон: ${0}$</x:String>
|
||||||
<x:String x:Key="Text.Workspace" xml:space="preserve">РОБОЧИЙ ПРОСТІР: </x:String>
|
<x:String x:Key="Text.Workspace" xml:space="preserve">РОБОЧИЙ ПРОСТІР: </x:String>
|
||||||
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Налаштувати робочі простори...</x:String>
|
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Налаштувати робочі простори...</x:String>
|
||||||
|
|
|
@ -6,6 +6,9 @@
|
||||||
<x:String x:Key="Text.About" xml:space="preserve">关于软件</x:String>
|
<x:String x:Key="Text.About" xml:space="preserve">关于软件</x:String>
|
||||||
<x:String x:Key="Text.About.Menu" xml:space="preserve">关于本软件</x:String>
|
<x:String x:Key="Text.About.Menu" xml:space="preserve">关于本软件</x:String>
|
||||||
<x:String x:Key="Text.About.SubTitle" xml:space="preserve">开源免费的Git客户端</x:String>
|
<x:String x:Key="Text.About.SubTitle" xml:space="preserve">开源免费的Git客户端</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore" xml:space="preserve">新增忽略文件</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore.Pattern" xml:space="preserve">匹配模式 :</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore.Storage" xml:space="preserve">保存位置 :</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree" xml:space="preserve">新增工作树</x:String>
|
<x:String x:Key="Text.AddWorktree" xml:space="preserve">新增工作树</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree.Location" xml:space="preserve">工作树路径 :</x:String>
|
<x:String x:Key="Text.AddWorktree.Location" xml:space="preserve">工作树路径 :</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree.Location.Placeholder" xml:space="preserve">填写该工作树的路径。支持相对路径。</x:String>
|
<x:String x:Key="Text.AddWorktree.Location.Placeholder" xml:space="preserve">填写该工作树的路径。支持相对路径。</x:String>
|
||||||
|
@ -39,6 +42,8 @@
|
||||||
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">不跟踪更改的文件</x:String>
|
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">不跟踪更改的文件</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">没有不跟踪更改的文件</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">没有不跟踪更改的文件</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">移除</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">移除</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Load" xml:space="preserve">加载本地图片</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Refetch" xml:space="preserve">重新加载</x:String>
|
||||||
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">二进制文件不支持该操作!!!</x:String>
|
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">二进制文件不支持该操作!!!</x:String>
|
||||||
<x:String x:Key="Text.Bisect">二分定位(bisect)</x:String>
|
<x:String x:Key="Text.Bisect">二分定位(bisect)</x:String>
|
||||||
<x:String x:Key="Text.Bisect.Abort">终止</x:String>
|
<x:String x:Key="Text.Bisect.Abort">终止</x:String>
|
||||||
|
@ -88,6 +93,9 @@
|
||||||
<x:String x:Key="Text.Checkout.LocalChanges.StashAndReply" xml:space="preserve">贮藏并自动恢复</x:String>
|
<x:String x:Key="Text.Checkout.LocalChanges.StashAndReply" xml:space="preserve">贮藏并自动恢复</x:String>
|
||||||
<x:String x:Key="Text.Checkout.RecurseSubmodules" xml:space="preserve">同时更新所有子模块</x:String>
|
<x:String x:Key="Text.Checkout.RecurseSubmodules" xml:space="preserve">同时更新所有子模块</x:String>
|
||||||
<x:String x:Key="Text.Checkout.Target" xml:space="preserve">目标分支 :</x:String>
|
<x:String x:Key="Text.Checkout.Target" xml:space="preserve">目标分支 :</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WarnLostCommits" xml:space="preserve">您当前游离的HEAD包含未被任何分支及标签引用的提交!是否继续?</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WithFastForward" xml:space="preserve">检出分支并快进</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WithFastForward.Upstream" xml:space="preserve">上游分支 :</x:String>
|
||||||
<x:String x:Key="Text.CherryPick" xml:space="preserve">挑选提交</x:String>
|
<x:String x:Key="Text.CherryPick" xml:space="preserve">挑选提交</x:String>
|
||||||
<x:String x:Key="Text.CherryPick.AppendSourceToMessage" xml:space="preserve">提交信息中追加来源信息</x:String>
|
<x:String x:Key="Text.CherryPick.AppendSourceToMessage" xml:space="preserve">提交信息中追加来源信息</x:String>
|
||||||
<x:String x:Key="Text.CherryPick.Commit" xml:space="preserve">提交列表 :</x:String>
|
<x:String x:Key="Text.CherryPick.Commit" xml:space="preserve">提交列表 :</x:String>
|
||||||
|
@ -120,6 +128,7 @@
|
||||||
<x:String x:Key="Text.CommitCM.InteractiveRebase" xml:space="preserve">交互式变基(rebase -i) ${0}$ 到此处</x:String>
|
<x:String x:Key="Text.CommitCM.InteractiveRebase" xml:space="preserve">交互式变基(rebase -i) ${0}$ 到此处</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Merge" xml:space="preserve">合并(merge)此提交至 ${0}$</x:String>
|
<x:String x:Key="Text.CommitCM.Merge" xml:space="preserve">合并(merge)此提交至 ${0}$</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.MergeMultiple" xml:space="preserve">合并(merge)...</x:String>
|
<x:String x:Key="Text.CommitCM.MergeMultiple" xml:space="preserve">合并(merge)...</x:String>
|
||||||
|
<x:String x:Key="Text.CommitCM.PushRevision" xml:space="preserve">推送(push) ${0}$ 到 ${1}$</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Rebase" xml:space="preserve">变基(rebase) ${0}$ 到此处</x:String>
|
<x:String x:Key="Text.CommitCM.Rebase" xml:space="preserve">变基(rebase) ${0}$ 到此处</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Reset" xml:space="preserve">重置(reset) ${0}$ 到此处</x:String>
|
<x:String x:Key="Text.CommitCM.Reset" xml:space="preserve">重置(reset) ${0}$ 到此处</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Revert" xml:space="preserve">回滚此提交</x:String>
|
<x:String x:Key="Text.CommitCM.Revert" xml:space="preserve">回滚此提交</x:String>
|
||||||
|
@ -156,13 +165,17 @@
|
||||||
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">模板名 :</x:String>
|
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">模板名 :</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">自定义操作</x:String>
|
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">自定义操作</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">命令行参数 :</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">命令行参数 :</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">请使用${REPO}代替仓库路径,${BRANCH}代替选中的分支,${SHA}代替提交哈希</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">内置变量:${REPO} 仓库路径、${BRANCH} 选中的分支、${SHA} 选中的提交哈希,${TAG} 选中的标签</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">可执行文件路径 :</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">可执行文件路径 :</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls" xml:space="preserve">输入控件 :</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls.Edit" xml:space="preserve">编辑</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls.Tip" xml:space="preserve">请在命令行参数中使用 $1, $2 等占位符表示输入控件的值</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">名称 :</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">名称 :</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">作用目标 :</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">作用目标 :</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Branch" xml:space="preserve">选中的分支</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Branch" xml:space="preserve">选中的分支</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Commit" xml:space="preserve">选中的提交</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Commit" xml:space="preserve">选中的提交</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Repository" xml:space="preserve">仓库</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Repository" xml:space="preserve">仓库</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Tag" xml:space="preserve">选中的标签</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.WaitForExit" xml:space="preserve">等待操作执行完成</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.WaitForExit" xml:space="preserve">等待操作执行完成</x:String>
|
||||||
<x:String x:Key="Text.Configure.Email" xml:space="preserve">电子邮箱</x:String>
|
<x:String x:Key="Text.Configure.Email" xml:space="preserve">电子邮箱</x:String>
|
||||||
<x:String x:Key="Text.Configure.Email.Placeholder" xml:space="preserve">邮箱地址</x:String>
|
<x:String x:Key="Text.Configure.Email.Placeholder" xml:space="preserve">邮箱地址</x:String>
|
||||||
|
@ -191,6 +204,15 @@
|
||||||
<x:String x:Key="Text.Configure.Proxy.Placeholder" xml:space="preserve">HTTP网络代理</x:String>
|
<x:String x:Key="Text.Configure.Proxy.Placeholder" xml:space="preserve">HTTP网络代理</x:String>
|
||||||
<x:String x:Key="Text.Configure.User" xml:space="preserve">用户名</x:String>
|
<x:String x:Key="Text.Configure.User" xml:space="preserve">用户名</x:String>
|
||||||
<x:String x:Key="Text.Configure.User.Placeholder" xml:space="preserve">应用于本仓库的用户名</x:String>
|
<x:String x:Key="Text.Configure.User.Placeholder" xml:space="preserve">应用于本仓库的用户名</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls" xml:space="preserve">编辑自定义操作输入控件</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.CheckedValue" xml:space="preserve">启用时命令行参数 :</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.CheckedValue.Tip" xml:space="preserve">此CheckBox勾选后,该值会被应用于命令行参数</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Description" xml:space="preserve">描述 :</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Description.Tip" xml:space="preserve">TextBox及Path Selector中用作Placeholder,CheckBox中用作ToolTip</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.DefaultValue" xml:space="preserve">默认值 :</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.IsFolder" xml:space="preserve">目标是否是目录 :</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Label" xml:space="preserve">名称 :</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Type" xml:space="preserve">类型 :</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace" xml:space="preserve">工作区</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace" xml:space="preserve">工作区</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace.Color" xml:space="preserve">颜色</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace.Color" xml:space="preserve">颜色</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace.Name" xml:space="preserve">名称</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace.Name" xml:space="preserve">名称</x:String>
|
||||||
|
@ -296,8 +318,8 @@
|
||||||
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">目标 :</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">目标 :</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">编辑分组</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">编辑分组</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">编辑仓库</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">编辑仓库</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction" xml:space="preserve">执行自定义操作</x:String>
|
<x:String x:Key="Text.ExecuteCustomAction.Target" xml:space="preserve">目标:</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction.Name" xml:space="preserve">自定义操作 :</x:String>
|
<x:String x:Key="Text.ExecuteCustomAction.Repository" xml:space="preserve">本仓库</x:String>
|
||||||
<x:String x:Key="Text.Fetch" xml:space="preserve">拉取(fetch)</x:String>
|
<x:String x:Key="Text.Fetch" xml:space="preserve">拉取(fetch)</x:String>
|
||||||
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">拉取所有的远程仓库</x:String>
|
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">拉取所有的远程仓库</x:String>
|
||||||
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">强制覆盖本地REFs</x:String>
|
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">强制覆盖本地REFs</x:String>
|
||||||
|
@ -442,6 +464,7 @@
|
||||||
<x:String x:Key="Text.Launcher.Workspaces" xml:space="preserve">工作区列表</x:String>
|
<x:String x:Key="Text.Launcher.Workspaces" xml:space="preserve">工作区列表</x:String>
|
||||||
<x:String x:Key="Text.Launcher.Pages" xml:space="preserve">页面列表</x:String>
|
<x:String x:Key="Text.Launcher.Pages" xml:space="preserve">页面列表</x:String>
|
||||||
<x:String x:Key="Text.Merge" xml:space="preserve">合并分支</x:String>
|
<x:String x:Key="Text.Merge" xml:space="preserve">合并分支</x:String>
|
||||||
|
<x:String x:Key="Text.Merge.Edit" xml:space="preserve">编辑合并信息</x:String>
|
||||||
<x:String x:Key="Text.Merge.Into" xml:space="preserve">目标分支 :</x:String>
|
<x:String x:Key="Text.Merge.Into" xml:space="preserve">目标分支 :</x:String>
|
||||||
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">合并方式 :</x:String>
|
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">合并方式 :</x:String>
|
||||||
<x:String x:Key="Text.Merge.Source" xml:space="preserve">合并目标 :</x:String>
|
<x:String x:Key="Text.Merge.Source" xml:space="preserve">合并目标 :</x:String>
|
||||||
|
@ -474,6 +497,7 @@
|
||||||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0}个月前</x:String>
|
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0}个月前</x:String>
|
||||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0}年前</x:String>
|
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0}年前</x:String>
|
||||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">昨天</x:String>
|
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">昨天</x:String>
|
||||||
|
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">请使用Shift+Enter换行。Enter键已被【确 定】按钮占用。</x:String>
|
||||||
<x:String x:Key="Text.Preferences" xml:space="preserve">偏好设置</x:String>
|
<x:String x:Key="Text.Preferences" xml:space="preserve">偏好设置</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analyze Diff Prompt</x:String>
|
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analyze Diff Prompt</x:String>
|
||||||
|
@ -552,6 +576,8 @@
|
||||||
<x:String x:Key="Text.Push.Force" xml:space="preserve">启用强制推送</x:String>
|
<x:String x:Key="Text.Push.Force" xml:space="preserve">启用强制推送</x:String>
|
||||||
<x:String x:Key="Text.Push.Local" xml:space="preserve">本地分支 :</x:String>
|
<x:String x:Key="Text.Push.Local" xml:space="preserve">本地分支 :</x:String>
|
||||||
<x:String x:Key="Text.Push.Remote" xml:space="preserve">远程仓库 :</x:String>
|
<x:String x:Key="Text.Push.Remote" xml:space="preserve">远程仓库 :</x:String>
|
||||||
|
<x:String x:Key="Text.Push.Revision" xml:space="preserve">修订 :</x:String>
|
||||||
|
<x:String x:Key="Text.Push.Revision.Title" xml:space="preserve">推送指定修订到远程仓库</x:String>
|
||||||
<x:String x:Key="Text.Push.Title" xml:space="preserve">推送到远程仓库</x:String>
|
<x:String x:Key="Text.Push.Title" xml:space="preserve">推送到远程仓库</x:String>
|
||||||
<x:String x:Key="Text.Push.To" xml:space="preserve">远程分支 :</x:String>
|
<x:String x:Key="Text.Push.To" xml:space="preserve">远程分支 :</x:String>
|
||||||
<x:String x:Key="Text.Push.Tracking" xml:space="preserve">跟踪远程分支</x:String>
|
<x:String x:Key="Text.Push.Tracking" xml:space="preserve">跟踪远程分支</x:String>
|
||||||
|
@ -565,7 +591,6 @@
|
||||||
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">自动贮藏并恢复本地变更</x:String>
|
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">自动贮藏并恢复本地变更</x:String>
|
||||||
<x:String x:Key="Text.Rebase.On" xml:space="preserve">目标提交 :</x:String>
|
<x:String x:Key="Text.Rebase.On" xml:space="preserve">目标提交 :</x:String>
|
||||||
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">分支 :</x:String>
|
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">分支 :</x:String>
|
||||||
<x:String x:Key="Text.RefetchAvatar" xml:space="preserve">重新加载</x:String>
|
|
||||||
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">添加远程仓库</x:String>
|
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">添加远程仓库</x:String>
|
||||||
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">编辑远程仓库</x:String>
|
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">编辑远程仓库</x:String>
|
||||||
<x:String x:Key="Text.Remote.Name" xml:space="preserve">远程名 :</x:String>
|
<x:String x:Key="Text.Remote.Name" xml:space="preserve">远程名 :</x:String>
|
||||||
|
@ -627,8 +652,8 @@
|
||||||
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">作者</x:String>
|
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">作者</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">提交者</x:String>
|
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">提交者</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByContent" xml:space="preserve">变更内容</x:String>
|
<x:String x:Key="Text.Repository.Search.ByContent" xml:space="preserve">变更内容</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByFile" xml:space="preserve">文件</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">提交信息</x:String>
|
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">提交信息</x:String>
|
||||||
|
<x:String x:Key="Text.Repository.Search.ByPath" xml:space="preserve">路径</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">提交指纹</x:String>
|
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">提交指纹</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">仅在当前分支中查找</x:String>
|
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">仅在当前分支中查找</x:String>
|
||||||
<x:String x:Key="Text.Repository.ShowSubmodulesAsTree" xml:space="preserve">以树型结构展示</x:String>
|
<x:String x:Key="Text.Repository.ShowSubmodulesAsTree" xml:space="preserve">以树型结构展示</x:String>
|
||||||
|
@ -641,8 +666,7 @@
|
||||||
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">标签列表</x:String>
|
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">标签列表</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">新建标签</x:String>
|
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">新建标签</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">按创建时间</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">按创建时间</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameAsc" xml:space="preserve">按名称(升序)</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByName" xml:space="preserve">按名称</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameDes" xml:space="preserve">按名称(降序)</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">排序</x:String>
|
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">排序</x:String>
|
||||||
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">在终端中打开</x:String>
|
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">在终端中打开</x:String>
|
||||||
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">在提交列表中使用相对时间</x:String>
|
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">在提交列表中使用相对时间</x:String>
|
||||||
|
@ -664,7 +688,6 @@
|
||||||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">目标提交 :</x:String>
|
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">目标提交 :</x:String>
|
||||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">回滚后提交更改</x:String>
|
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">回滚后提交更改</x:String>
|
||||||
<x:String x:Key="Text.Reword" xml:space="preserve">编辑提交信息</x:String>
|
<x:String x:Key="Text.Reword" xml:space="preserve">编辑提交信息</x:String>
|
||||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">请使用Shift+Enter换行。Enter键已被【确 定】按钮占用。</x:String>
|
|
||||||
<x:String x:Key="Text.Running" xml:space="preserve">执行操作中,请耐心等待...</x:String>
|
<x:String x:Key="Text.Running" xml:space="preserve">执行操作中,请耐心等待...</x:String>
|
||||||
<x:String x:Key="Text.Save" xml:space="preserve">保 存</x:String>
|
<x:String x:Key="Text.Save" xml:space="preserve">保 存</x:String>
|
||||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">另存为...</x:String>
|
<x:String x:Key="Text.SaveAs" xml:space="preserve">另存为...</x:String>
|
||||||
|
@ -690,16 +713,15 @@
|
||||||
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">SSH密钥文件</x:String>
|
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">SSH密钥文件</x:String>
|
||||||
<x:String x:Key="Text.Start" xml:space="preserve">开 始</x:String>
|
<x:String x:Key="Text.Start" xml:space="preserve">开 始</x:String>
|
||||||
<x:String x:Key="Text.Stash" xml:space="preserve">贮藏(stash)</x:String>
|
<x:String x:Key="Text.Stash" xml:space="preserve">贮藏(stash)</x:String>
|
||||||
<x:String x:Key="Text.Stash.AutoRestore" xml:space="preserve">贮藏后自动恢复工作区</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.AutoRestore.Tip" xml:space="preserve">工作区文件保持未修改状态,但贮藏内容已保存。</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">包含未跟踪的文件</x:String>
|
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">包含未跟踪的文件</x:String>
|
||||||
<x:String x:Key="Text.Stash.KeepIndex" xml:space="preserve">保留暂存区文件</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">信息 :</x:String>
|
<x:String x:Key="Text.Stash.Message" xml:space="preserve">信息 :</x:String>
|
||||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">选填,用于命名此贮藏</x:String>
|
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">选填,此贮藏的描述信息</x:String>
|
||||||
|
<x:String x:Key="Text.Stash.Mode" xml:space="preserve">模式 :</x:String>
|
||||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">仅贮藏暂存区的变更</x:String>
|
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">仅贮藏暂存区的变更</x:String>
|
||||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">选中文件的所有变更均会被贮藏!</x:String>
|
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">选中文件的所有变更均会被贮藏!</x:String>
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">贮藏本地变更</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">贮藏本地变更</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">应用(apply)</x:String>
|
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">应用(apply)</x:String>
|
||||||
|
<x:String x:Key="Text.StashCM.CopyMessage" xml:space="preserve">复制描述信息</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">删除(drop)</x:String>
|
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">删除(drop)</x:String>
|
||||||
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">另存为补丁...</x:String>
|
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">另存为补丁...</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">丢弃贮藏确认</x:String>
|
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">丢弃贮藏确认</x:String>
|
||||||
|
@ -733,6 +755,7 @@
|
||||||
<x:String x:Key="Text.Sure" xml:space="preserve">确 定</x:String>
|
<x:String x:Key="Text.Sure" xml:space="preserve">确 定</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">复制标签名</x:String>
|
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">复制标签名</x:String>
|
||||||
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">复制标签信息</x:String>
|
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">复制标签信息</x:String>
|
||||||
|
<x:String x:Key="Text.TagCM.CustomAction" xml:space="preserve">自定义操作</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">删除 ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">删除 ${0}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">合并 ${0}$ 到 ${1}$...</x:String>
|
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">合并 ${0}$ 到 ${1}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">推送 ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">推送 ${0}$...</x:String>
|
||||||
|
@ -766,7 +789,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">添加至 .gitignore 忽略列表</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">添加至 .gitignore 忽略列表</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">忽略所有 *{0} 文件</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">忽略所有 *{0} 文件</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">忽略同目录下所有 *{0} 文件</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">忽略同目录下所有 *{0} 文件</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InSameFolder" xml:space="preserve">忽略同目录下所有文件</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InFolder" xml:space="preserve">忽略该目录下的新文件</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">忽略本文件</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">忽略本文件</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">修补</x:String>
|
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">修补</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">现在您已可将其加入暂存区中</x:String>
|
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">现在您已可将其加入暂存区中</x:String>
|
||||||
|
@ -776,6 +799,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitTip" xml:space="preserve">触发点击事件</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitTip" xml:space="preserve">触发点击事件</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitToEdit" xml:space="preserve">提交(修改原始提交)</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitToEdit" xml:space="preserve">提交(修改原始提交)</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitWithAutoStage" xml:space="preserve">自动暂存所有变更并提交</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitWithAutoStage" xml:space="preserve">自动暂存所有变更并提交</x:String>
|
||||||
|
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithDetachedHead">您正在向一个游离的 HEAD 提交变更,是否继续提交?</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithFilter" xml:space="preserve">当前有 {0} 个文件在暂存区中,但仅显示了 {1} 个文件({2} 个文件被过滤掉了),是否继续提交?</x:String>
|
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithFilter" xml:space="preserve">当前有 {0} 个文件在暂存区中,但仅显示了 {1} 个文件({2} 个文件被过滤掉了),是否继续提交?</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Conflicts" xml:space="preserve">检测到冲突</x:String>
|
<x:String x:Key="Text.WorkingCopy.Conflicts" xml:space="preserve">检测到冲突</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Conflicts.OpenExternalMergeTool" xml:space="preserve">打开合并工具</x:String>
|
<x:String x:Key="Text.WorkingCopy.Conflicts.OpenExternalMergeTool" xml:space="preserve">打开合并工具</x:String>
|
||||||
|
@ -795,7 +819,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">未暂存</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">未暂存</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">暂存选中</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">暂存选中</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">暂存所有</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">暂存所有</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">查看忽略变更文件</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">查看忽略变更文件</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">模板:${0}$</x:String>
|
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">模板:${0}$</x:String>
|
||||||
<x:String x:Key="Text.Workspace" xml:space="preserve">工作区:</x:String>
|
<x:String x:Key="Text.Workspace" xml:space="preserve">工作区:</x:String>
|
||||||
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">配置工作区...</x:String>
|
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">配置工作区...</x:String>
|
||||||
|
|
|
@ -6,6 +6,9 @@
|
||||||
<x:String x:Key="Text.About" xml:space="preserve">關於</x:String>
|
<x:String x:Key="Text.About" xml:space="preserve">關於</x:String>
|
||||||
<x:String x:Key="Text.About.Menu" xml:space="preserve">關於 SourceGit</x:String>
|
<x:String x:Key="Text.About.Menu" xml:space="preserve">關於 SourceGit</x:String>
|
||||||
<x:String x:Key="Text.About.SubTitle" xml:space="preserve">開源免費的 Git 客戶端</x:String>
|
<x:String x:Key="Text.About.SubTitle" xml:space="preserve">開源免費的 Git 客戶端</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore" xml:space="preserve">新增忽略檔案</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore.Pattern" xml:space="preserve">匹配模式 :</x:String>
|
||||||
|
<x:String x:Key="Text.AddToIgnore.Storage" xml:space="preserve">儲存路徑 :</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree" xml:space="preserve">新增工作區</x:String>
|
<x:String x:Key="Text.AddWorktree" xml:space="preserve">新增工作區</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree.Location" xml:space="preserve">工作區路徑:</x:String>
|
<x:String x:Key="Text.AddWorktree.Location" xml:space="preserve">工作區路徑:</x:String>
|
||||||
<x:String x:Key="Text.AddWorktree.Location.Placeholder" xml:space="preserve">填寫該工作區的路徑。支援相對路徑。</x:String>
|
<x:String x:Key="Text.AddWorktree.Location.Placeholder" xml:space="preserve">填寫該工作區的路徑。支援相對路徑。</x:String>
|
||||||
|
@ -39,6 +42,8 @@
|
||||||
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">不追蹤變更的檔案</x:String>
|
<x:String x:Key="Text.AssumeUnchanged" xml:space="preserve">不追蹤變更的檔案</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">沒有不追蹤變更的檔案</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Empty" xml:space="preserve">沒有不追蹤變更的檔案</x:String>
|
||||||
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">移除</x:String>
|
<x:String x:Key="Text.AssumeUnchanged.Remove" xml:space="preserve">移除</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Load" xml:space="preserve">載入本機圖片...</x:String>
|
||||||
|
<x:String x:Key="Text.Avatar.Refetch" xml:space="preserve">重新載入</x:String>
|
||||||
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">二進位檔案不支援該操作!</x:String>
|
<x:String x:Key="Text.BinaryNotSupported" xml:space="preserve">二進位檔案不支援該操作!</x:String>
|
||||||
<x:String x:Key="Text.Bisect">二分搜尋 (bisect)</x:String>
|
<x:String x:Key="Text.Bisect">二分搜尋 (bisect)</x:String>
|
||||||
<x:String x:Key="Text.Bisect.Abort">中止</x:String>
|
<x:String x:Key="Text.Bisect.Abort">中止</x:String>
|
||||||
|
@ -88,6 +93,9 @@
|
||||||
<x:String x:Key="Text.Checkout.LocalChanges.StashAndReply" xml:space="preserve">擱置變更並自動復原</x:String>
|
<x:String x:Key="Text.Checkout.LocalChanges.StashAndReply" xml:space="preserve">擱置變更並自動復原</x:String>
|
||||||
<x:String x:Key="Text.Checkout.RecurseSubmodules" xml:space="preserve">同時更新所有子模組</x:String>
|
<x:String x:Key="Text.Checkout.RecurseSubmodules" xml:space="preserve">同時更新所有子模組</x:String>
|
||||||
<x:String x:Key="Text.Checkout.Target" xml:space="preserve">目標分支:</x:String>
|
<x:String x:Key="Text.Checkout.Target" xml:space="preserve">目標分支:</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WarnLostCommits" xml:space="preserve">您目前的分離的 HEAD 包含與任何分支/標籤無關的提交!您要繼續嗎?</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WithFastForward" xml:space="preserve">簽出分支並快轉</x:String>
|
||||||
|
<x:String x:Key="Text.Checkout.WithFastForward.Upstream" xml:space="preserve">上游分支 :</x:String>
|
||||||
<x:String x:Key="Text.CherryPick" xml:space="preserve">揀選提交</x:String>
|
<x:String x:Key="Text.CherryPick" xml:space="preserve">揀選提交</x:String>
|
||||||
<x:String x:Key="Text.CherryPick.AppendSourceToMessage" xml:space="preserve">提交資訊中追加來源資訊</x:String>
|
<x:String x:Key="Text.CherryPick.AppendSourceToMessage" xml:space="preserve">提交資訊中追加來源資訊</x:String>
|
||||||
<x:String x:Key="Text.CherryPick.Commit" xml:space="preserve">提交列表:</x:String>
|
<x:String x:Key="Text.CherryPick.Commit" xml:space="preserve">提交列表:</x:String>
|
||||||
|
@ -120,6 +128,7 @@
|
||||||
<x:String x:Key="Text.CommitCM.InteractiveRebase" xml:space="preserve">互動式重定基底 (rebase -i) ${0}$ 到此處</x:String>
|
<x:String x:Key="Text.CommitCM.InteractiveRebase" xml:space="preserve">互動式重定基底 (rebase -i) ${0}$ 到此處</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Merge" xml:space="preserve">合併 (merge) 此提交到 ${0}$</x:String>
|
<x:String x:Key="Text.CommitCM.Merge" xml:space="preserve">合併 (merge) 此提交到 ${0}$</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.MergeMultiple" xml:space="preserve">合併 (merge)...</x:String>
|
<x:String x:Key="Text.CommitCM.MergeMultiple" xml:space="preserve">合併 (merge)...</x:String>
|
||||||
|
<x:String x:Key="Text.CommitCM.PushRevision" xml:space="preserve">推送(push) ${0}$ 至 ${1}$</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Rebase" xml:space="preserve">重定基底 (rebase) ${0}$ 到此處</x:String>
|
<x:String x:Key="Text.CommitCM.Rebase" xml:space="preserve">重定基底 (rebase) ${0}$ 到此處</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Reset" xml:space="preserve">重設 (reset) ${0}$ 到此處</x:String>
|
<x:String x:Key="Text.CommitCM.Reset" xml:space="preserve">重設 (reset) ${0}$ 到此處</x:String>
|
||||||
<x:String x:Key="Text.CommitCM.Revert" xml:space="preserve">復原此提交</x:String>
|
<x:String x:Key="Text.CommitCM.Revert" xml:space="preserve">復原此提交</x:String>
|
||||||
|
@ -156,13 +165,17 @@
|
||||||
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">範本名稱:</x:String>
|
<x:String x:Key="Text.Configure.CommitMessageTemplate.Name" xml:space="preserve">範本名稱:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">自訂動作</x:String>
|
<x:String x:Key="Text.Configure.CustomAction" xml:space="preserve">自訂動作</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">指令參數:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments" xml:space="preserve">指令參數:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">使用 ${REPO} 表示存放庫路徑、${BRANCH} 表示所選的分支、${SHA} 表示所選的提交編號</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Arguments.Tip" xml:space="preserve">內建參數: ${REPO} 存放庫路徑、${BRANCH} 所選的分支、${SHA} 所選的提交編號、${TAG} 所選的標籤</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">可執行檔案路徑:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Executable" xml:space="preserve">可執行檔案路徑:</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls" xml:space="preserve">輸入控件:</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls.Edit" xml:space="preserve">編輯</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.InputControls.Tip" xml:space="preserve">請使用占位符如 $1, $2 來代表輸入控制項的值</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">名稱:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Name" xml:space="preserve">名稱:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">執行範圍:</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope" xml:space="preserve">執行範圍:</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Branch" xml:space="preserve">選取的分支</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Branch" xml:space="preserve">選取的分支</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Commit" xml:space="preserve">選取的提交</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Commit" xml:space="preserve">選取的提交</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.Scope.Repository" xml:space="preserve">存放庫</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Repository" xml:space="preserve">存放庫</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.CustomAction.Scope.Tag" xml:space="preserve">選取的標籤</x:String>
|
||||||
<x:String x:Key="Text.Configure.CustomAction.WaitForExit" xml:space="preserve">等待自訂動作執行結束</x:String>
|
<x:String x:Key="Text.Configure.CustomAction.WaitForExit" xml:space="preserve">等待自訂動作執行結束</x:String>
|
||||||
<x:String x:Key="Text.Configure.Email" xml:space="preserve">電子郵件</x:String>
|
<x:String x:Key="Text.Configure.Email" xml:space="preserve">電子郵件</x:String>
|
||||||
<x:String x:Key="Text.Configure.Email.Placeholder" xml:space="preserve">電子郵件地址</x:String>
|
<x:String x:Key="Text.Configure.Email.Placeholder" xml:space="preserve">電子郵件地址</x:String>
|
||||||
|
@ -191,6 +204,15 @@
|
||||||
<x:String x:Key="Text.Configure.Proxy.Placeholder" xml:space="preserve">HTTP 網路代理</x:String>
|
<x:String x:Key="Text.Configure.Proxy.Placeholder" xml:space="preserve">HTTP 網路代理</x:String>
|
||||||
<x:String x:Key="Text.Configure.User" xml:space="preserve">使用者名稱</x:String>
|
<x:String x:Key="Text.Configure.User" xml:space="preserve">使用者名稱</x:String>
|
||||||
<x:String x:Key="Text.Configure.User.Placeholder" xml:space="preserve">用於本存放庫的使用者名稱</x:String>
|
<x:String x:Key="Text.Configure.User.Placeholder" xml:space="preserve">用於本存放庫的使用者名稱</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls" xml:space="preserve">編輯自訂動作輸入控件</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.CheckedValue" xml:space="preserve">啟用時的指令行參數:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.CheckedValue.Tip" xml:space="preserve">勾選 CheckBox 後,此值將用於命令列參數中</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Description" xml:space="preserve">描述:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Description.Tip" xml:space="preserve">在 TextBox/PathSelector 中用作占位符,或在 CheckBox 中用作工具提示</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.DefaultValue" xml:space="preserve">預設值:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.IsFolder" xml:space="preserve">目標路徑是否為資料夾:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Label" xml:space="preserve">名稱:</x:String>
|
||||||
|
<x:String x:Key="Text.ConfigureCustomActionControls.Type" xml:space="preserve">類型:</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace" xml:space="preserve">工作區</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace" xml:space="preserve">工作區</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace.Color" xml:space="preserve">顏色</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace.Color" xml:space="preserve">顏色</x:String>
|
||||||
<x:String x:Key="Text.ConfigureWorkspace.Name" xml:space="preserve">名稱</x:String>
|
<x:String x:Key="Text.ConfigureWorkspace.Name" xml:space="preserve">名稱</x:String>
|
||||||
|
@ -296,8 +318,8 @@
|
||||||
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">目標:</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.Target" xml:space="preserve">目標:</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">編輯群組</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForGroup" xml:space="preserve">編輯群組</x:String>
|
||||||
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">編輯存放庫</x:String>
|
<x:String x:Key="Text.EditRepositoryNode.TitleForRepository" xml:space="preserve">編輯存放庫</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction" xml:space="preserve">執行自訂動作</x:String>
|
<x:String x:Key="Text.ExecuteCustomAction.Target" xml:space="preserve">目標:</x:String>
|
||||||
<x:String x:Key="Text.ExecuteCustomAction.Name" xml:space="preserve">自訂動作:</x:String>
|
<x:String x:Key="Text.ExecuteCustomAction.Repository" xml:space="preserve">本存放庫</x:String>
|
||||||
<x:String x:Key="Text.Fetch" xml:space="preserve">提取 (fetch)</x:String>
|
<x:String x:Key="Text.Fetch" xml:space="preserve">提取 (fetch)</x:String>
|
||||||
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">提取所有的遠端存放庫</x:String>
|
<x:String x:Key="Text.Fetch.AllRemotes" xml:space="preserve">提取所有的遠端存放庫</x:String>
|
||||||
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">強制覆寫本機 REFs</x:String>
|
<x:String x:Key="Text.Fetch.Force" xml:space="preserve">強制覆寫本機 REFs</x:String>
|
||||||
|
@ -442,6 +464,7 @@
|
||||||
<x:String x:Key="Text.Launcher.Workspaces" xml:space="preserve">工作區列表</x:String>
|
<x:String x:Key="Text.Launcher.Workspaces" xml:space="preserve">工作區列表</x:String>
|
||||||
<x:String x:Key="Text.Launcher.Pages" xml:space="preserve">頁面列表</x:String>
|
<x:String x:Key="Text.Launcher.Pages" xml:space="preserve">頁面列表</x:String>
|
||||||
<x:String x:Key="Text.Merge" xml:space="preserve">合併分支</x:String>
|
<x:String x:Key="Text.Merge" xml:space="preserve">合併分支</x:String>
|
||||||
|
<x:String x:Key="Text.Merge.Edit" xml:space="preserve">編輯合併訊息</x:String>
|
||||||
<x:String x:Key="Text.Merge.Into" xml:space="preserve">目標分支:</x:String>
|
<x:String x:Key="Text.Merge.Into" xml:space="preserve">目標分支:</x:String>
|
||||||
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">合併方式:</x:String>
|
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">合併方式:</x:String>
|
||||||
<x:String x:Key="Text.Merge.Source" xml:space="preserve">合併來源:</x:String>
|
<x:String x:Key="Text.Merge.Source" xml:space="preserve">合併來源:</x:String>
|
||||||
|
@ -474,6 +497,7 @@
|
||||||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} 個月前</x:String>
|
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} 個月前</x:String>
|
||||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} 年前</x:String>
|
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} 年前</x:String>
|
||||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">昨天</x:String>
|
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">昨天</x:String>
|
||||||
|
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">請使用 Shift + Enter 換行。Enter 鍵已被 [確定] 按鈕佔用。</x:String>
|
||||||
<x:String x:Key="Text.Preferences" xml:space="preserve">偏好設定</x:String>
|
<x:String x:Key="Text.Preferences" xml:space="preserve">偏好設定</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
||||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">分析變更差異提示詞</x:String>
|
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">分析變更差異提示詞</x:String>
|
||||||
|
@ -552,6 +576,8 @@
|
||||||
<x:String x:Key="Text.Push.Force" xml:space="preserve">啟用強制推送</x:String>
|
<x:String x:Key="Text.Push.Force" xml:space="preserve">啟用強制推送</x:String>
|
||||||
<x:String x:Key="Text.Push.Local" xml:space="preserve">本機分支:</x:String>
|
<x:String x:Key="Text.Push.Local" xml:space="preserve">本機分支:</x:String>
|
||||||
<x:String x:Key="Text.Push.Remote" xml:space="preserve">遠端存放庫:</x:String>
|
<x:String x:Key="Text.Push.Remote" xml:space="preserve">遠端存放庫:</x:String>
|
||||||
|
<x:String x:Key="Text.Push.Revision" xml:space="preserve">修訂:</x:String>
|
||||||
|
<x:String x:Key="Text.Push.Revision.Title" xml:space="preserve">推送修訂到遠端存放庫</x:String>
|
||||||
<x:String x:Key="Text.Push.Title" xml:space="preserve">推送到遠端存放庫</x:String>
|
<x:String x:Key="Text.Push.Title" xml:space="preserve">推送到遠端存放庫</x:String>
|
||||||
<x:String x:Key="Text.Push.To" xml:space="preserve">遠端分支:</x:String>
|
<x:String x:Key="Text.Push.To" xml:space="preserve">遠端分支:</x:String>
|
||||||
<x:String x:Key="Text.Push.Tracking" xml:space="preserve">追蹤遠端分支</x:String>
|
<x:String x:Key="Text.Push.Tracking" xml:space="preserve">追蹤遠端分支</x:String>
|
||||||
|
@ -565,7 +591,6 @@
|
||||||
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">自動擱置變更並復原本機變更</x:String>
|
<x:String x:Key="Text.Rebase.AutoStash" xml:space="preserve">自動擱置變更並復原本機變更</x:String>
|
||||||
<x:String x:Key="Text.Rebase.On" xml:space="preserve">目標提交:</x:String>
|
<x:String x:Key="Text.Rebase.On" xml:space="preserve">目標提交:</x:String>
|
||||||
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">分支:</x:String>
|
<x:String x:Key="Text.Rebase.Target" xml:space="preserve">分支:</x:String>
|
||||||
<x:String x:Key="Text.RefetchAvatar" xml:space="preserve">重新載入</x:String>
|
|
||||||
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">新增遠端存放庫</x:String>
|
<x:String x:Key="Text.Remote.AddTitle" xml:space="preserve">新增遠端存放庫</x:String>
|
||||||
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">編輯遠端存放庫</x:String>
|
<x:String x:Key="Text.Remote.EditTitle" xml:space="preserve">編輯遠端存放庫</x:String>
|
||||||
<x:String x:Key="Text.Remote.Name" xml:space="preserve">遠端名稱:</x:String>
|
<x:String x:Key="Text.Remote.Name" xml:space="preserve">遠端名稱:</x:String>
|
||||||
|
@ -627,8 +652,8 @@
|
||||||
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">作者</x:String>
|
<x:String x:Key="Text.Repository.Search.ByAuthor" xml:space="preserve">作者</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">提交者</x:String>
|
<x:String x:Key="Text.Repository.Search.ByCommitter" xml:space="preserve">提交者</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByContent" xml:space="preserve">變更內容</x:String>
|
<x:String x:Key="Text.Repository.Search.ByContent" xml:space="preserve">變更內容</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.ByFile" xml:space="preserve">檔案</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">提交訊息</x:String>
|
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">提交訊息</x:String>
|
||||||
|
<x:String x:Key="Text.Repository.Search.ByPath" xml:space="preserve">路徑</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">提交編號</x:String>
|
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">提交編號</x:String>
|
||||||
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">僅搜尋目前分支</x:String>
|
<x:String x:Key="Text.Repository.Search.InCurrentBranch" xml:space="preserve">僅搜尋目前分支</x:String>
|
||||||
<x:String x:Key="Text.Repository.ShowSubmodulesAsTree" xml:space="preserve">以樹型結構展示</x:String>
|
<x:String x:Key="Text.Repository.ShowSubmodulesAsTree" xml:space="preserve">以樹型結構展示</x:String>
|
||||||
|
@ -641,8 +666,7 @@
|
||||||
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">標籤列表</x:String>
|
<x:String x:Key="Text.Repository.Tags" xml:space="preserve">標籤列表</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">新增標籤</x:String>
|
<x:String x:Key="Text.Repository.Tags.Add" xml:space="preserve">新增標籤</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">依建立時間</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">依建立時間</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameAsc" xml:space="preserve">依名稱升序</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByName" xml:space="preserve">依名稱</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameDes" xml:space="preserve">依名稱降序</x:String>
|
|
||||||
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">排序</x:String>
|
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">排序</x:String>
|
||||||
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">在終端機中開啟</x:String>
|
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">在終端機中開啟</x:String>
|
||||||
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">在提交列表中使用相對時間</x:String>
|
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">在提交列表中使用相對時間</x:String>
|
||||||
|
@ -664,7 +688,6 @@
|
||||||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">目標提交:</x:String>
|
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">目標提交:</x:String>
|
||||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">復原後提交變更</x:String>
|
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">復原後提交變更</x:String>
|
||||||
<x:String x:Key="Text.Reword" xml:space="preserve">編輯提交訊息</x:String>
|
<x:String x:Key="Text.Reword" xml:space="preserve">編輯提交訊息</x:String>
|
||||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">請使用 Shift + Enter 換行。Enter 鍵已被 [確定] 按鈕佔用。</x:String>
|
|
||||||
<x:String x:Key="Text.Running" xml:space="preserve">執行操作中,請耐心等待...</x:String>
|
<x:String x:Key="Text.Running" xml:space="preserve">執行操作中,請耐心等待...</x:String>
|
||||||
<x:String x:Key="Text.Save" xml:space="preserve">儲存</x:String>
|
<x:String x:Key="Text.Save" xml:space="preserve">儲存</x:String>
|
||||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">另存新檔...</x:String>
|
<x:String x:Key="Text.SaveAs" xml:space="preserve">另存新檔...</x:String>
|
||||||
|
@ -690,16 +713,15 @@
|
||||||
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">SSH 金鑰檔案</x:String>
|
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">SSH 金鑰檔案</x:String>
|
||||||
<x:String x:Key="Text.Start" xml:space="preserve">開 始</x:String>
|
<x:String x:Key="Text.Start" xml:space="preserve">開 始</x:String>
|
||||||
<x:String x:Key="Text.Stash" xml:space="preserve">擱置變更 (stash)</x:String>
|
<x:String x:Key="Text.Stash" xml:space="preserve">擱置變更 (stash)</x:String>
|
||||||
<x:String x:Key="Text.Stash.AutoRestore" xml:space="preserve">擱置變更後自動復原工作區</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.AutoRestore.Tip" xml:space="preserve">工作區檔案保持未修改,但擱置內容已儲存。</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">包含未追蹤的檔案</x:String>
|
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">包含未追蹤的檔案</x:String>
|
||||||
<x:String x:Key="Text.Stash.KeepIndex" xml:space="preserve">保留已暫存的變更</x:String>
|
|
||||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">擱置變更訊息:</x:String>
|
<x:String x:Key="Text.Stash.Message" xml:space="preserve">擱置變更訊息:</x:String>
|
||||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">選填,用於命名此擱置變更</x:String>
|
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">選填,用於描述此擱置變更</x:String>
|
||||||
|
<x:String x:Key="Text.Stash.Mode" xml:space="preserve">操作模式:</x:String>
|
||||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">僅擱置已暫存的變更</x:String>
|
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">僅擱置已暫存的變更</x:String>
|
||||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">已選取的檔案中的變更均會被擱置!</x:String>
|
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">已選取的檔案中的變更均會被擱置!</x:String>
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">擱置本機變更</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">擱置本機變更</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">套用 (apply)</x:String>
|
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">套用 (apply)</x:String>
|
||||||
|
<x:String x:Key="Text.StashCM.CopyMessage" xml:space="preserve">複製描述訊息</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">刪除 (drop)</x:String>
|
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">刪除 (drop)</x:String>
|
||||||
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">另存為修補檔 (patch)...</x:String>
|
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">另存為修補檔 (patch)...</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">捨棄擱置變更確認</x:String>
|
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">捨棄擱置變更確認</x:String>
|
||||||
|
@ -733,6 +755,7 @@
|
||||||
<x:String x:Key="Text.Sure" xml:space="preserve">確 定</x:String>
|
<x:String x:Key="Text.Sure" xml:space="preserve">確 定</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">複製標籤名稱</x:String>
|
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">複製標籤名稱</x:String>
|
||||||
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">複製標籤訊息</x:String>
|
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">複製標籤訊息</x:String>
|
||||||
|
<x:String x:Key="Text.TagCM.CustomAction" xml:space="preserve">自訂動作</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">刪除 ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">刪除 ${0}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">合併 ${0}$ 到 ${1}$...</x:String>
|
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">合併 ${0}$ 到 ${1}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">推送 ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">推送 ${0}$...</x:String>
|
||||||
|
@ -766,7 +789,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">加入至 .gitignore 忽略清單</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore" xml:space="preserve">加入至 .gitignore 忽略清單</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">忽略所有 *{0} 檔案</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.Extension" xml:space="preserve">忽略所有 *{0} 檔案</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">忽略同路徑下所有 *{0} 檔案</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.ExtensionInSameFolder" xml:space="preserve">忽略同路徑下所有 *{0} 檔案</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InSameFolder" xml:space="preserve">忽略同路徑下所有檔案</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.InFolder" xml:space="preserve">忽略本路徑下的新增檔案</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">忽略本檔案</x:String>
|
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">忽略本檔案</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">修補</x:String>
|
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">修補</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">現在您已可將其加入暫存區中</x:String>
|
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">現在您已可將其加入暫存區中</x:String>
|
||||||
|
@ -776,6 +799,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitTip" xml:space="preserve">觸發點擊事件</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitTip" xml:space="preserve">觸發點擊事件</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitToEdit" xml:space="preserve">提交 (修改原始提交)</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitToEdit" xml:space="preserve">提交 (修改原始提交)</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.CommitWithAutoStage" xml:space="preserve">自動暫存全部變更並提交</x:String>
|
<x:String x:Key="Text.WorkingCopy.CommitWithAutoStage" xml:space="preserve">自動暫存全部變更並提交</x:String>
|
||||||
|
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithDetachedHead">您正在向一个分離狀態的 HEAD 提交變更,您確定要繼續提交嗎?</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithFilter" xml:space="preserve">您已暫存 {0} 個檔案,但只顯示 {1} 個檔案 ({2} 個檔案被篩選器隱藏)。您確定要繼續提交嗎?</x:String>
|
<x:String x:Key="Text.WorkingCopy.ConfirmCommitWithFilter" xml:space="preserve">您已暫存 {0} 個檔案,但只顯示 {1} 個檔案 ({2} 個檔案被篩選器隱藏)。您確定要繼續提交嗎?</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Conflicts" xml:space="preserve">偵測到衝突</x:String>
|
<x:String x:Key="Text.WorkingCopy.Conflicts" xml:space="preserve">偵測到衝突</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Conflicts.OpenExternalMergeTool" xml:space="preserve">使用外部合併工具開啟</x:String>
|
<x:String x:Key="Text.WorkingCopy.Conflicts.OpenExternalMergeTool" xml:space="preserve">使用外部合併工具開啟</x:String>
|
||||||
|
@ -795,7 +819,7 @@
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">未暫存</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">未暫存</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">暫存選取的檔案</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">暫存選取的檔案</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">暫存所有檔案</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">暫存所有檔案</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">檢視不追蹤變更的檔案</x:String>
|
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">檢視不追蹤變更的檔案</x:String>
|
||||||
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">範本: ${0}$</x:String>
|
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">範本: ${0}$</x:String>
|
||||||
<x:String x:Key="Text.Workspace" xml:space="preserve">工作區:</x:String>
|
<x:String x:Key="Text.Workspace" xml:space="preserve">工作區:</x:String>
|
||||||
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">設定工作區...</x:String>
|
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">設定工作區...</x:String>
|
||||||
|
|
|
@ -434,8 +434,6 @@
|
||||||
<Setter Property="VerticalAlignment" Value="Stretch"/>
|
<Setter Property="VerticalAlignment" Value="Stretch"/>
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="Button.caption_button > Path">
|
<Style Selector="Button.caption_button > Path">
|
||||||
<Setter Property="Width" Value="10"/>
|
|
||||||
<Setter Property="Height" Value="10"/>
|
|
||||||
<Setter Property="Fill" Value="{DynamicResource Brush.FG1}"/>
|
<Setter Property="Fill" Value="{DynamicResource Brush.FG1}"/>
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="Button.caption_button /template/ ContentPresenter#PART_ContentPresenter">
|
<Style Selector="Button.caption_button /template/ ContentPresenter#PART_ContentPresenter">
|
||||||
|
@ -529,13 +527,7 @@
|
||||||
<Setter Property="MinHeight" Value="24"/>
|
<Setter Property="MinHeight" Value="24"/>
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<ControlTemplate>
|
<ControlTemplate>
|
||||||
<Grid>
|
<Grid ColumnDefinitions="*,1,Auto">
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="*" />
|
|
||||||
<ColumnDefinition Width="1" />
|
|
||||||
<ColumnDefinition Width="Auto" />
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
|
|
||||||
<Button x:Name="PART_PrimaryButton"
|
<Button x:Name="PART_PrimaryButton"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
Classes="flat primary"
|
Classes="flat primary"
|
||||||
|
@ -843,6 +835,14 @@
|
||||||
<DataTemplate DataType="x:String">
|
<DataTemplate DataType="x:String">
|
||||||
<v:NameHighlightedTextBlock Text="{Binding}" VerticalAlignment="Center"/>
|
<v:NameHighlightedTextBlock Text="{Binding}" VerticalAlignment="Center"/>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
|
|
||||||
|
<DataTemplate DataType="vm:CommitMessageRecord">
|
||||||
|
<TextBlock Text="{Binding Subject}" VerticalAlignment="Center" TextTrimming="CharacterEllipsis"/>
|
||||||
|
</DataTemplate>
|
||||||
|
|
||||||
|
<DataTemplate DataType="vm:FilterModeInGraph">
|
||||||
|
<v:FilterModeInGraph/>
|
||||||
|
</DataTemplate>
|
||||||
</ContentPresenter.DataTemplates>
|
</ContentPresenter.DataTemplates>
|
||||||
</ContentPresenter>
|
</ContentPresenter>
|
||||||
|
|
||||||
|
@ -949,6 +949,20 @@
|
||||||
</Style>
|
</Style>
|
||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
|
<Style Selector="MenuItem.filter_mode_switcher">
|
||||||
|
<Setter Property="Height" Value="48"/>
|
||||||
|
<Setter Property="StaysOpenOnClick" Value="True"/>
|
||||||
|
|
||||||
|
<Style Selector="^:selected">
|
||||||
|
<Style Selector="^ /template/ Border#PART_LayoutRoot">
|
||||||
|
<Setter Property="Background" Value="Transparent" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^ /template/ ContentPresenter#PART_HeaderPresenter">
|
||||||
|
<Setter Property="Foreground" Value="Transparent" />
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
|
||||||
<Style Selector="ComboBox">
|
<Style Selector="ComboBox">
|
||||||
<Style.Resources>
|
<Style.Resources>
|
||||||
<Thickness x:Key="ComboBoxDropdownBorderPadding">4,0</Thickness>
|
<Thickness x:Key="ComboBoxDropdownBorderPadding">4,0</Thickness>
|
||||||
|
@ -983,12 +997,7 @@
|
||||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<ControlTemplate>
|
<ControlTemplate>
|
||||||
<Grid Background="Transparent">
|
<Grid Background="Transparent" ColumnDefinitions="Auto,*">
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="Auto"/>
|
|
||||||
<ColumnDefinition Width="*"/>
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
|
|
||||||
<Border x:Name="Border" Grid.Column="0" Width="16" Height="16" VerticalAlignment="Center" BorderBrush="{DynamicResource Brush.Border1}" BorderThickness="1" Background="Transparent" CornerRadius="2">
|
<Border x:Name="Border" Grid.Column="0" Width="16" Height="16" VerticalAlignment="Center" BorderBrush="{DynamicResource Brush.Border1}" BorderThickness="1" Background="Transparent" CornerRadius="2">
|
||||||
<Path x:Name="Icon" Height="12" Width="12" Data="{DynamicResource Icons.Check}" Fill="{DynamicResource Brush.Accent}" IsVisible="False" Margin="0,2,0,0"/>
|
<Path x:Name="Icon" Height="12" Width="12" Data="{DynamicResource Icons.Check}" Fill="{DynamicResource Brush.Accent}" IsVisible="False" Margin="0,2,0,0"/>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
|
@ -47,9 +47,11 @@
|
||||||
<PackageReference Include="Avalonia.AvaloniaEdit" Version="11.2.0" />
|
<PackageReference Include="Avalonia.AvaloniaEdit" Version="11.2.0" />
|
||||||
<PackageReference Include="AvaloniaEdit.TextMate" Version="11.2.0" />
|
<PackageReference Include="AvaloniaEdit.TextMate" Version="11.2.0" />
|
||||||
<PackageReference Include="Azure.AI.OpenAI" Version="2.2.0-beta.4" />
|
<PackageReference Include="Azure.AI.OpenAI" Version="2.2.0-beta.4" />
|
||||||
|
<PackageReference Include="BitMiracle.LibTiff.NET" Version="2.4.660" />
|
||||||
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.0" />
|
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.0" />
|
||||||
<PackageReference Include="LiveChartsCore.SkiaSharpView.Avalonia" Version="2.0.0-rc5.4" />
|
<PackageReference Include="LiveChartsCore.SkiaSharpView.Avalonia" Version="2.0.0-rc5.4" />
|
||||||
<PackageReference Include="OpenAI" Version="2.2.0-beta.4" />
|
<PackageReference Include="OpenAI" Version="2.2.0-beta.4" />
|
||||||
|
<PackageReference Include="Pfim" Version="0.11.3" />
|
||||||
<PackageReference Include="TextMateSharp" Version="1.0.66" />
|
<PackageReference Include="TextMateSharp" Version="1.0.66" />
|
||||||
<PackageReference Include="TextMateSharp.Grammars" Version="1.0.66" />
|
<PackageReference Include="TextMateSharp.Grammars" Version="1.0.66" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
64
src/ViewModels/AddToIgnore.cs
Normal file
64
src/ViewModels/AddToIgnore.cs
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.IO;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace SourceGit.ViewModels
|
||||||
|
{
|
||||||
|
public class AddToIgnore : Popup
|
||||||
|
{
|
||||||
|
[Required(ErrorMessage = "Ignore pattern is required!")]
|
||||||
|
public string Pattern
|
||||||
|
{
|
||||||
|
get => _pattern;
|
||||||
|
set => SetProperty(ref _pattern, value, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Required(ErrorMessage = "Storage file is required!!!")]
|
||||||
|
public Models.GitIgnoreFile StorageFile
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AddToIgnore(Repository repo, string pattern)
|
||||||
|
{
|
||||||
|
_repo = repo;
|
||||||
|
_pattern = pattern;
|
||||||
|
StorageFile = Models.GitIgnoreFile.Supported[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
public override Task<bool> Sure()
|
||||||
|
{
|
||||||
|
_repo.SetWatcherEnabled(false);
|
||||||
|
ProgressDescription = "Adding Ignored File(s) ...";
|
||||||
|
|
||||||
|
return Task.Run(() =>
|
||||||
|
{
|
||||||
|
var file = StorageFile.GetFullPath(_repo.FullPath, _repo.GitDir);
|
||||||
|
if (!File.Exists(file))
|
||||||
|
{
|
||||||
|
File.WriteAllLines(file, [_pattern]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var org = File.ReadAllText(file);
|
||||||
|
if (!org.EndsWith('\n'))
|
||||||
|
File.AppendAllLines(file, ["", _pattern]);
|
||||||
|
else
|
||||||
|
File.AppendAllLines(file, [_pattern]);
|
||||||
|
}
|
||||||
|
|
||||||
|
CallUIThread(() =>
|
||||||
|
{
|
||||||
|
_repo.MarkWorkingCopyDirtyManually();
|
||||||
|
_repo.SetWatcherEnabled(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private readonly Repository _repo;
|
||||||
|
private string _pattern;
|
||||||
|
}
|
||||||
|
}
|
|
@ -25,7 +25,7 @@ namespace SourceGit.ViewModels
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(file))
|
if (!string.IsNullOrEmpty(file))
|
||||||
{
|
{
|
||||||
var log = _repo.CreateLog("Remove Assue Unchanged File");
|
var log = _repo.CreateLog("Remove Assume Unchanged File");
|
||||||
new Commands.AssumeUnchanged(_repo.FullPath, file, false).Use(log).Exec();
|
new Commands.AssumeUnchanged(_repo.FullPath, file, false).Use(log).Exec();
|
||||||
log.Complete();
|
log.Complete();
|
||||||
Files.Remove(file);
|
Files.Remove(file);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
using Avalonia.Threading;
|
using Avalonia.Threading;
|
||||||
|
@ -10,10 +11,25 @@ namespace SourceGit.ViewModels
|
||||||
{
|
{
|
||||||
public class Blame : ObservableObject
|
public class Blame : ObservableObject
|
||||||
{
|
{
|
||||||
public string Title
|
public string FilePath
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
private set;
|
}
|
||||||
|
|
||||||
|
public Models.Commit Revision
|
||||||
|
{
|
||||||
|
get => _revision;
|
||||||
|
private set => SetProperty(ref _revision, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Models.BlameData Data
|
||||||
|
{
|
||||||
|
get => _data;
|
||||||
|
private set
|
||||||
|
{
|
||||||
|
if (SetProperty(ref _data, value))
|
||||||
|
OnPropertyChanged(nameof(IsBinary));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsBinary
|
public bool IsBinary
|
||||||
|
@ -21,42 +37,27 @@ namespace SourceGit.ViewModels
|
||||||
get => _data != null && _data.IsBinary;
|
get => _data != null && _data.IsBinary;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Models.BlameData Data
|
public bool CanBack
|
||||||
{
|
{
|
||||||
get => _data;
|
get => _navigationActiveIndex > 0;
|
||||||
private set => SetProperty(ref _data, value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Blame(string repo, string file, string revision)
|
public bool CanForward
|
||||||
{
|
{
|
||||||
|
get => _navigationActiveIndex < _navigationHistory.Count - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Blame(string repo, string file, Models.Commit commit)
|
||||||
|
{
|
||||||
|
var sha = commit.SHA.Substring(0, 10);
|
||||||
|
|
||||||
|
FilePath = file;
|
||||||
|
Revision = commit;
|
||||||
|
|
||||||
_repo = repo;
|
_repo = repo;
|
||||||
|
_navigationHistory.Add(sha);
|
||||||
Title = $"{file} @ {revision.AsSpan(0, 10)}";
|
_commits.Add(sha, commit);
|
||||||
Task.Run(() =>
|
SetBlameData(sha);
|
||||||
{
|
|
||||||
var result = new Commands.Blame(repo, file, revision).Result();
|
|
||||||
Dispatcher.UIThread.Invoke(() =>
|
|
||||||
{
|
|
||||||
Data = result;
|
|
||||||
OnPropertyChanged(nameof(IsBinary));
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public void NavigateToCommit(string commitSHA)
|
|
||||||
{
|
|
||||||
var launcher = App.GetLauncer();
|
|
||||||
if (launcher == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
foreach (var page in launcher.Pages)
|
|
||||||
{
|
|
||||||
if (page.Data is Repository repo && repo.FullPath.Equals(_repo))
|
|
||||||
{
|
|
||||||
repo.NavigateToCommit(commitSHA);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetCommitMessage(string sha)
|
public string GetCommitMessage(string sha)
|
||||||
|
@ -69,8 +70,102 @@ namespace SourceGit.ViewModels
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly string _repo;
|
public void Back()
|
||||||
|
{
|
||||||
|
if (_navigationActiveIndex <= 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_navigationActiveIndex--;
|
||||||
|
OnPropertyChanged(nameof(CanBack));
|
||||||
|
OnPropertyChanged(nameof(CanForward));
|
||||||
|
NavigateToCommit(_navigationHistory[_navigationActiveIndex]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Forward()
|
||||||
|
{
|
||||||
|
if (_navigationActiveIndex >= _navigationHistory.Count - 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_navigationActiveIndex++;
|
||||||
|
OnPropertyChanged(nameof(CanBack));
|
||||||
|
OnPropertyChanged(nameof(CanForward));
|
||||||
|
NavigateToCommit(_navigationHistory[_navigationActiveIndex]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void NavigateToCommit(string commitSHA)
|
||||||
|
{
|
||||||
|
if (!_navigationHistory[_navigationActiveIndex].Equals(commitSHA, StringComparison.Ordinal))
|
||||||
|
{
|
||||||
|
_navigationHistory.Add(commitSHA);
|
||||||
|
_navigationActiveIndex = _navigationHistory.Count - 1;
|
||||||
|
OnPropertyChanged(nameof(CanBack));
|
||||||
|
OnPropertyChanged(nameof(CanForward));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Revision.SHA.StartsWith(commitSHA, StringComparison.Ordinal))
|
||||||
|
SetBlameData(commitSHA);
|
||||||
|
|
||||||
|
if (App.GetLauncher() is { Pages: { } pages })
|
||||||
|
{
|
||||||
|
foreach (var page in pages)
|
||||||
|
{
|
||||||
|
if (page.Data is Repository repo && repo.FullPath.Equals(_repo))
|
||||||
|
{
|
||||||
|
repo.NavigateToCommit(commitSHA);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetBlameData(string commitSHA)
|
||||||
|
{
|
||||||
|
if (_cancellationSource is { IsCancellationRequested: false })
|
||||||
|
_cancellationSource.Cancel();
|
||||||
|
|
||||||
|
_cancellationSource = new CancellationTokenSource();
|
||||||
|
var token = _cancellationSource.Token;
|
||||||
|
|
||||||
|
if (_commits.TryGetValue(commitSHA, out var c))
|
||||||
|
{
|
||||||
|
Revision = c;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Task.Run(() =>
|
||||||
|
{
|
||||||
|
var result = new Commands.QuerySingleCommit(_repo, commitSHA).Result();
|
||||||
|
|
||||||
|
Dispatcher.UIThread.Invoke(() =>
|
||||||
|
{
|
||||||
|
if (!token.IsCancellationRequested)
|
||||||
|
{
|
||||||
|
_commits.Add(commitSHA, result);
|
||||||
|
Revision = result ?? new Models.Commit() { SHA = commitSHA };
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, token);
|
||||||
|
}
|
||||||
|
|
||||||
|
Task.Run(() =>
|
||||||
|
{
|
||||||
|
var result = new Commands.Blame(_repo, FilePath, commitSHA).Result();
|
||||||
|
|
||||||
|
Dispatcher.UIThread.Invoke(() =>
|
||||||
|
{
|
||||||
|
if (!token.IsCancellationRequested)
|
||||||
|
Data = result;
|
||||||
|
});
|
||||||
|
}, token);
|
||||||
|
}
|
||||||
|
|
||||||
|
private string _repo;
|
||||||
|
private Models.Commit _revision;
|
||||||
|
private CancellationTokenSource _cancellationSource = null;
|
||||||
|
private int _navigationActiveIndex = 0;
|
||||||
|
private List<string> _navigationHistory = [];
|
||||||
private Models.BlameData _data = null;
|
private Models.BlameData _data = null;
|
||||||
private Dictionary<string, string> _commitMessages = new Dictionary<string, string>();
|
private Dictionary<string, Models.Commit> _commits = new();
|
||||||
|
private Dictionary<string, string> _commitMessages = new();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,7 +86,7 @@ namespace SourceGit.ViewModels
|
||||||
|
|
||||||
public void NavigateTo(string commitSHA)
|
public void NavigateTo(string commitSHA)
|
||||||
{
|
{
|
||||||
var launcher = App.GetLauncer();
|
var launcher = App.GetLauncher();
|
||||||
if (launcher == null)
|
if (launcher == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ namespace SourceGit.ViewModels
|
||||||
|
|
||||||
public ContextMenu CreateChangeContextMenu()
|
public ContextMenu CreateChangeContextMenu()
|
||||||
{
|
{
|
||||||
if (_selectedChanges == null || _selectedChanges.Count != 1)
|
if (_selectedChanges is not { Count: 1 })
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
var change = _selectedChanges[0];
|
var change = _selectedChanges[0];
|
||||||
|
|
|
@ -74,9 +74,9 @@ namespace SourceGit.ViewModels
|
||||||
|
|
||||||
public class Builder
|
public class Builder
|
||||||
{
|
{
|
||||||
public List<BranchTreeNode> Locals => _locals;
|
public List<BranchTreeNode> Locals { get; } = [];
|
||||||
public List<BranchTreeNode> Remotes => _remotes;
|
public List<BranchTreeNode> Remotes { get; } = [];
|
||||||
public List<string> InvalidExpandedNodes => _invalidExpandedNodes;
|
public List<string> InvalidExpandedNodes { get; } = [];
|
||||||
|
|
||||||
public Builder(Models.BranchSortMode localSortMode, Models.BranchSortMode remoteSortMode)
|
public Builder(Models.BranchSortMode localSortMode, Models.BranchSortMode remoteSortMode)
|
||||||
{
|
{
|
||||||
|
@ -109,14 +109,14 @@ namespace SourceGit.ViewModels
|
||||||
|
|
||||||
fakeRemoteTime--;
|
fakeRemoteTime--;
|
||||||
folders.Add(path, node);
|
folders.Add(path, node);
|
||||||
_remotes.Add(node);
|
Remotes.Add(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var branch in branches)
|
foreach (var branch in branches)
|
||||||
{
|
{
|
||||||
if (branch.IsLocal)
|
if (branch.IsLocal)
|
||||||
{
|
{
|
||||||
MakeBranchNode(branch, _locals, folders, "refs/heads", bForceExpanded);
|
MakeBranchNode(branch, Locals, folders, "refs/heads", bForceExpanded);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -131,20 +131,20 @@ namespace SourceGit.ViewModels
|
||||||
foreach (var path in _expanded)
|
foreach (var path in _expanded)
|
||||||
{
|
{
|
||||||
if (!folders.ContainsKey(path))
|
if (!folders.ContainsKey(path))
|
||||||
_invalidExpandedNodes.Add(path);
|
InvalidExpandedNodes.Add(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
folders.Clear();
|
folders.Clear();
|
||||||
|
|
||||||
if (_localSortMode == Models.BranchSortMode.Name)
|
if (_localSortMode == Models.BranchSortMode.Name)
|
||||||
SortNodesByName(_locals);
|
SortNodesByName(Locals);
|
||||||
else
|
else
|
||||||
SortNodesByTime(_locals);
|
SortNodesByTime(Locals);
|
||||||
|
|
||||||
if (_remoteSortMode == Models.BranchSortMode.Name)
|
if (_remoteSortMode == Models.BranchSortMode.Name)
|
||||||
SortNodesByName(_remotes);
|
SortNodesByName(Remotes);
|
||||||
else
|
else
|
||||||
SortNodesByTime(_remotes);
|
SortNodesByTime(Remotes);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MakeBranchNode(Models.Branch branch, List<BranchTreeNode> roots, Dictionary<string, BranchTreeNode> folders, string prefix, bool bForceExpanded)
|
private void MakeBranchNode(Models.Branch branch, List<BranchTreeNode> roots, Dictionary<string, BranchTreeNode> folders, string prefix, bool bForceExpanded)
|
||||||
|
@ -269,9 +269,6 @@ namespace SourceGit.ViewModels
|
||||||
|
|
||||||
private readonly Models.BranchSortMode _localSortMode = Models.BranchSortMode.Name;
|
private readonly Models.BranchSortMode _localSortMode = Models.BranchSortMode.Name;
|
||||||
private readonly Models.BranchSortMode _remoteSortMode = Models.BranchSortMode.Name;
|
private readonly Models.BranchSortMode _remoteSortMode = Models.BranchSortMode.Name;
|
||||||
private readonly List<BranchTreeNode> _locals = new List<BranchTreeNode>();
|
|
||||||
private readonly List<BranchTreeNode> _remotes = new List<BranchTreeNode>();
|
|
||||||
private readonly List<string> _invalidExpandedNodes = new List<string>();
|
|
||||||
private readonly HashSet<string> _expanded = new HashSet<string>();
|
private readonly HashSet<string> _expanded = new HashSet<string>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,9 +44,15 @@ namespace SourceGit.ViewModels
|
||||||
var updateSubmodules = IsRecurseSubmoduleVisible && RecurseSubmodules;
|
var updateSubmodules = IsRecurseSubmoduleVisible && RecurseSubmodules;
|
||||||
return Task.Run(() =>
|
return Task.Run(() =>
|
||||||
{
|
{
|
||||||
var succ = false;
|
bool succ;
|
||||||
var needPopStash = false;
|
var needPopStash = false;
|
||||||
|
|
||||||
|
if (!_repo.ConfirmCheckoutBranch())
|
||||||
|
{
|
||||||
|
CallUIThread(() => _repo.SetWatcherEnabled(true));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (DiscardLocalChanges)
|
if (DiscardLocalChanges)
|
||||||
{
|
{
|
||||||
succ = new Commands.Checkout(_repo.FullPath).Use(log).Branch(Branch, true);
|
succ = new Commands.Checkout(_repo.FullPath).Use(log).Branch(Branch, true);
|
||||||
|
|
117
src/ViewModels/CheckoutAndFastForward.cs
Normal file
117
src/ViewModels/CheckoutAndFastForward.cs
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace SourceGit.ViewModels
|
||||||
|
{
|
||||||
|
public class CheckoutAndFastForward : Popup
|
||||||
|
{
|
||||||
|
public Models.Branch LocalBranch
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Models.Branch RemoteBranch
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool DiscardLocalChanges
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsRecurseSubmoduleVisible
|
||||||
|
{
|
||||||
|
get => _repo.Submodules.Count > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool RecurseSubmodules
|
||||||
|
{
|
||||||
|
get => _repo.Settings.UpdateSubmodulesOnCheckoutBranch;
|
||||||
|
set => _repo.Settings.UpdateSubmodulesOnCheckoutBranch = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CheckoutAndFastForward(Repository repo, Models.Branch localBranch, Models.Branch remoteBranch)
|
||||||
|
{
|
||||||
|
_repo = repo;
|
||||||
|
LocalBranch = localBranch;
|
||||||
|
RemoteBranch = remoteBranch;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override Task<bool> Sure()
|
||||||
|
{
|
||||||
|
_repo.SetWatcherEnabled(false);
|
||||||
|
ProgressDescription = $"Checkout and Fast-Forward '{LocalBranch.Name}' ...";
|
||||||
|
|
||||||
|
var log = _repo.CreateLog($"Checkout and Fast-Forward '{LocalBranch.Name}' ...");
|
||||||
|
Use(log);
|
||||||
|
|
||||||
|
var updateSubmodules = IsRecurseSubmoduleVisible && RecurseSubmodules;
|
||||||
|
return Task.Run(() =>
|
||||||
|
{
|
||||||
|
var succ = false;
|
||||||
|
var needPopStash = false;
|
||||||
|
|
||||||
|
if (!_repo.ConfirmCheckoutBranch())
|
||||||
|
{
|
||||||
|
CallUIThread(() => _repo.SetWatcherEnabled(true));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DiscardLocalChanges)
|
||||||
|
{
|
||||||
|
succ = new Commands.Checkout(_repo.FullPath).Use(log).Branch(LocalBranch.Name, RemoteBranch.Head, true, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var changes = new Commands.CountLocalChangesWithoutUntracked(_repo.FullPath).Result();
|
||||||
|
if (changes > 0)
|
||||||
|
{
|
||||||
|
succ = new Commands.Stash(_repo.FullPath).Use(log).Push("CHECKOUT_AND_FASTFORWARD_AUTO_STASH");
|
||||||
|
if (!succ)
|
||||||
|
{
|
||||||
|
log.Complete();
|
||||||
|
CallUIThread(() => _repo.SetWatcherEnabled(true));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
needPopStash = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
succ = new Commands.Checkout(_repo.FullPath).Use(log).Branch(LocalBranch.Name, RemoteBranch.Head, false, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (succ)
|
||||||
|
{
|
||||||
|
if (updateSubmodules)
|
||||||
|
{
|
||||||
|
var submodules = new Commands.QueryUpdatableSubmodules(_repo.FullPath).Result();
|
||||||
|
if (submodules.Count > 0)
|
||||||
|
new Commands.Submodule(_repo.FullPath).Use(log).Update(submodules, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (needPopStash)
|
||||||
|
new Commands.Stash(_repo.FullPath).Use(log).Pop("stash@{0}");
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Complete();
|
||||||
|
|
||||||
|
CallUIThread(() =>
|
||||||
|
{
|
||||||
|
ProgressDescription = "Waiting for branch updated...";
|
||||||
|
|
||||||
|
if (_repo.HistoriesFilterMode == Models.FilterMode.Included)
|
||||||
|
_repo.SetBranchFilterMode(LocalBranch, Models.FilterMode.Included, true, false);
|
||||||
|
|
||||||
|
_repo.MarkBranchesDirtyManually();
|
||||||
|
_repo.SetWatcherEnabled(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
Task.Delay(400).Wait();
|
||||||
|
return succ;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private Repository _repo;
|
||||||
|
}
|
||||||
|
}
|
|
@ -44,9 +44,15 @@ namespace SourceGit.ViewModels
|
||||||
var updateSubmodules = IsRecurseSubmoduleVisible && RecurseSubmodules;
|
var updateSubmodules = IsRecurseSubmoduleVisible && RecurseSubmodules;
|
||||||
return Task.Run(() =>
|
return Task.Run(() =>
|
||||||
{
|
{
|
||||||
var succ = false;
|
bool succ;
|
||||||
var needPop = false;
|
var needPop = false;
|
||||||
|
|
||||||
|
if (!_repo.ConfirmCheckoutBranch())
|
||||||
|
{
|
||||||
|
CallUIThread(() => _repo.SetWatcherEnabled(true));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (DiscardLocalChanges)
|
if (DiscardLocalChanges)
|
||||||
{
|
{
|
||||||
succ = new Commands.Checkout(_repo.FullPath).Use(log).Commit(Commit.SHA, true);
|
succ = new Commands.Checkout(_repo.FullPath).Use(log).Commit(Commit.SHA, true);
|
||||||
|
|
|
@ -66,7 +66,8 @@ namespace SourceGit.ViewModels
|
||||||
public override Task<bool> Sure()
|
public override Task<bool> Sure()
|
||||||
{
|
{
|
||||||
_repo.SetWatcherEnabled(false);
|
_repo.SetWatcherEnabled(false);
|
||||||
ProgressDescription = $"Cherry-Pick commit(s) ...";
|
_repo.ClearCommitMessage();
|
||||||
|
ProgressDescription = "Cherry-Pick commit(s) ...";
|
||||||
|
|
||||||
var log = _repo.CreateLog("Cherry-Pick");
|
var log = _repo.CreateLog("Cherry-Pick");
|
||||||
Use(log);
|
Use(log);
|
||||||
|
|
|
@ -120,6 +120,9 @@ namespace SourceGit.ViewModels
|
||||||
var name = Path.GetFileName(_remote)!;
|
var name = Path.GetFileName(_remote)!;
|
||||||
if (name.EndsWith(".git", StringComparison.Ordinal))
|
if (name.EndsWith(".git", StringComparison.Ordinal))
|
||||||
name = name.Substring(0, name.Length - 4);
|
name = name.Substring(0, name.Length - 4);
|
||||||
|
else if (name.EndsWith(".bundle", StringComparison.Ordinal))
|
||||||
|
name = name.Substring(0, name.Length - 7);
|
||||||
|
|
||||||
path = Path.GetFullPath(Path.Combine(path, name));
|
path = Path.GetFullPath(Path.Combine(path, name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,7 +153,7 @@ namespace SourceGit.ViewModels
|
||||||
CallUIThread(() =>
|
CallUIThread(() =>
|
||||||
{
|
{
|
||||||
var node = Preferences.Instance.FindOrAddNodeByRepositoryPath(path, null, true);
|
var node = Preferences.Instance.FindOrAddNodeByRepositoryPath(path, null, true);
|
||||||
var launcher = App.GetLauncer();
|
var launcher = App.GetLauncher();
|
||||||
var page = null as LauncherPage;
|
var page = null as LauncherPage;
|
||||||
foreach (var one in launcher.Pages)
|
foreach (var one in launcher.Pages)
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,7 +11,7 @@ namespace SourceGit.ViewModels
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
private set;
|
private set;
|
||||||
} = string.Empty;
|
}
|
||||||
|
|
||||||
public DateTime StartTime
|
public DateTime StartTime
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using Avalonia.Media.Imaging;
|
|
||||||
using Avalonia.Platform.Storage;
|
using Avalonia.Platform.Storage;
|
||||||
using Avalonia.Threading;
|
using Avalonia.Threading;
|
||||||
|
|
||||||
|
@ -56,7 +54,7 @@ namespace SourceGit.ViewModels
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
private set;
|
private set;
|
||||||
} = [];
|
}
|
||||||
|
|
||||||
public List<string> Children
|
public List<string> Children
|
||||||
{
|
{
|
||||||
|
@ -83,7 +81,7 @@ namespace SourceGit.ViewModels
|
||||||
{
|
{
|
||||||
if (SetProperty(ref _selectedChanges, value))
|
if (SetProperty(ref _selectedChanges, value))
|
||||||
{
|
{
|
||||||
if (value == null || value.Count != 1)
|
if (value is not { Count: 1 })
|
||||||
DiffContext = null;
|
DiffContext = null;
|
||||||
else
|
else
|
||||||
DiffContext = new DiffContext(_repo.FullPath, new Models.DiffOption(_commit, value[0]), _diffContext);
|
DiffContext = new DiffContext(_repo.FullPath, new Models.DiffOption(_commit, value[0]), _diffContext);
|
||||||
|
@ -103,16 +101,20 @@ namespace SourceGit.ViewModels
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (SetProperty(ref _searchChangeFilter, value))
|
if (SetProperty(ref _searchChangeFilter, value))
|
||||||
{
|
|
||||||
RefreshVisibleChanges();
|
RefreshVisibleChanges();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string ViewRevisionFilePath
|
||||||
|
{
|
||||||
|
get => _viewRevisionFilePath;
|
||||||
|
private set => SetProperty(ref _viewRevisionFilePath, value);
|
||||||
|
}
|
||||||
|
|
||||||
public object ViewRevisionFileContent
|
public object ViewRevisionFileContent
|
||||||
{
|
{
|
||||||
get => _viewRevisionFileContent;
|
get => _viewRevisionFileContent;
|
||||||
set => SetProperty(ref _viewRevisionFileContent, value);
|
private set => SetProperty(ref _viewRevisionFileContent, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public string RevisionFileSearchFilter
|
public string RevisionFileSearchFilter
|
||||||
|
@ -131,6 +133,12 @@ namespace SourceGit.ViewModels
|
||||||
private set => SetProperty(ref _revisionFileSearchSuggestion, value);
|
private set => SetProperty(ref _revisionFileSearchSuggestion, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool CanOpenRevisionFileWithDefaultEditor
|
||||||
|
{
|
||||||
|
get => _canOpenRevisionFileWithDefaultEditor;
|
||||||
|
private set => SetProperty(ref _canOpenRevisionFileWithDefaultEditor, value);
|
||||||
|
}
|
||||||
|
|
||||||
public CommitDetail(Repository repo)
|
public CommitDetail(Repository repo)
|
||||||
{
|
{
|
||||||
_repo = repo;
|
_repo = repo;
|
||||||
|
@ -193,26 +201,28 @@ namespace SourceGit.ViewModels
|
||||||
{
|
{
|
||||||
if (file == null)
|
if (file == null)
|
||||||
{
|
{
|
||||||
|
ViewRevisionFilePath = string.Empty;
|
||||||
ViewRevisionFileContent = null;
|
ViewRevisionFileContent = null;
|
||||||
|
CanOpenRevisionFileWithDefaultEditor = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ViewRevisionFilePath = file.Path;
|
||||||
|
|
||||||
switch (file.Type)
|
switch (file.Type)
|
||||||
{
|
{
|
||||||
case Models.ObjectType.Blob:
|
case Models.ObjectType.Blob:
|
||||||
|
CanOpenRevisionFileWithDefaultEditor = true;
|
||||||
Task.Run(() =>
|
Task.Run(() =>
|
||||||
{
|
{
|
||||||
var isBinary = new Commands.IsBinary(_repo.FullPath, _commit.SHA, file.Path).Result();
|
var isBinary = new Commands.IsBinary(_repo.FullPath, _commit.SHA, file.Path).Result();
|
||||||
if (isBinary)
|
if (isBinary)
|
||||||
{
|
{
|
||||||
var ext = Path.GetExtension(file.Path);
|
var imgDecoder = ImageSource.GetDecoder(file.Path);
|
||||||
if (IMG_EXTS.Contains(ext))
|
if (imgDecoder != Models.ImageDecoder.None)
|
||||||
{
|
{
|
||||||
var stream = Commands.QueryFileContent.Run(_repo.FullPath, _commit.SHA, file.Path);
|
var source = ImageSource.FromRevision(_repo.FullPath, _commit.SHA, file.Path, imgDecoder);
|
||||||
var fileSize = stream.Length;
|
var image = new Models.RevisionImageFile(file.Path, source.Bitmap, source.Size);
|
||||||
var bitmap = fileSize > 0 ? new Bitmap(stream) : null;
|
|
||||||
var imageType = ext!.Substring(1).ToUpper(CultureInfo.CurrentCulture);
|
|
||||||
var image = new Models.RevisionImageFile() { Image = bitmap, FileSize = fileSize, ImageType = imageType };
|
|
||||||
Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = image);
|
Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = image);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -227,13 +237,20 @@ namespace SourceGit.ViewModels
|
||||||
|
|
||||||
var contentStream = Commands.QueryFileContent.Run(_repo.FullPath, _commit.SHA, file.Path);
|
var contentStream = Commands.QueryFileContent.Run(_repo.FullPath, _commit.SHA, file.Path);
|
||||||
var content = new StreamReader(contentStream).ReadToEnd();
|
var content = new StreamReader(contentStream).ReadToEnd();
|
||||||
var matchLFS = REG_LFS_FORMAT().Match(content);
|
var lfs = Models.LFSObject.Parse(content);
|
||||||
if (matchLFS.Success)
|
if (lfs != null)
|
||||||
{
|
{
|
||||||
var obj = new Models.RevisionLFSObject() { Object = new Models.LFSObject() };
|
var imgDecoder = ImageSource.GetDecoder(file.Path);
|
||||||
obj.Object.Oid = matchLFS.Groups[1].Value;
|
if (imgDecoder != Models.ImageDecoder.None)
|
||||||
obj.Object.Size = long.Parse(matchLFS.Groups[2].Value);
|
{
|
||||||
Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = obj);
|
var combined = new RevisionLFSImage(_repo.FullPath, file.Path, lfs, imgDecoder);
|
||||||
|
Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = combined);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var rlfs = new Models.RevisionLFSObject() { Object = lfs };
|
||||||
|
Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = rlfs);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -243,40 +260,42 @@ namespace SourceGit.ViewModels
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case Models.ObjectType.Commit:
|
case Models.ObjectType.Commit:
|
||||||
|
CanOpenRevisionFileWithDefaultEditor = false;
|
||||||
Task.Run(() =>
|
Task.Run(() =>
|
||||||
{
|
{
|
||||||
var submoduleRoot = Path.Combine(_repo.FullPath, file.Path);
|
var submoduleRoot = Path.Combine(_repo.FullPath, file.Path).Replace('\\', '/').Trim('/');
|
||||||
var commit = new Commands.QuerySingleCommit(submoduleRoot, file.SHA).Result();
|
var commit = new Commands.QuerySingleCommit(submoduleRoot, file.SHA).Result();
|
||||||
if (commit != null)
|
var message = commit != null ? new Commands.QueryCommitFullMessage(submoduleRoot, file.SHA).Result() : null;
|
||||||
|
var module = new Models.RevisionSubmodule()
|
||||||
{
|
{
|
||||||
var body = new Commands.QueryCommitFullMessage(submoduleRoot, file.SHA).Result();
|
Commit = commit ?? new Models.Commit() { SHA = _commit.SHA },
|
||||||
var submodule = new Models.RevisionSubmodule()
|
FullMessage = new Models.CommitFullMessage { Message = message }
|
||||||
{
|
};
|
||||||
Commit = commit,
|
|
||||||
FullMessage = new Models.CommitFullMessage { Message = body }
|
|
||||||
};
|
|
||||||
|
|
||||||
Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = submodule);
|
Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = module);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Dispatcher.UIThread.Invoke(() =>
|
|
||||||
{
|
|
||||||
ViewRevisionFileContent = new Models.RevisionSubmodule()
|
|
||||||
{
|
|
||||||
Commit = new Models.Commit() { SHA = file.SHA },
|
|
||||||
FullMessage = null,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
CanOpenRevisionFileWithDefaultEditor = false;
|
||||||
ViewRevisionFileContent = null;
|
ViewRevisionFileContent = null;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Task OpenRevisionFileWithDefaultEditor(string file)
|
||||||
|
{
|
||||||
|
return Task.Run(() =>
|
||||||
|
{
|
||||||
|
var fullPath = Native.OS.GetAbsPath(_repo.FullPath, file);
|
||||||
|
var fileName = Path.GetFileNameWithoutExtension(fullPath) ?? "";
|
||||||
|
var fileExt = Path.GetExtension(fullPath) ?? "";
|
||||||
|
var tmpFile = Path.Combine(Path.GetTempPath(), $"{fileName}~{_commit.SHA.Substring(0, 10)}{fileExt}");
|
||||||
|
|
||||||
|
Commands.SaveRevisionFile.Run(_repo.FullPath, _commit.SHA, file, tmpFile);
|
||||||
|
Native.OS.OpenWithDefaultEditor(tmpFile);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public ContextMenu CreateChangeContextMenu(Models.Change change)
|
public ContextMenu CreateChangeContextMenu(Models.Change change)
|
||||||
{
|
{
|
||||||
var diffWithMerger = new MenuItem();
|
var diffWithMerger = new MenuItem();
|
||||||
|
@ -318,7 +337,7 @@ namespace SourceGit.ViewModels
|
||||||
blame.IsEnabled = change.Index != Models.ChangeState.Deleted;
|
blame.IsEnabled = change.Index != Models.ChangeState.Deleted;
|
||||||
blame.Click += (_, ev) =>
|
blame.Click += (_, ev) =>
|
||||||
{
|
{
|
||||||
App.ShowWindow(new Blame(_repo.FullPath, change.Path, _commit.SHA), false);
|
App.ShowWindow(new Blame(_repo.FullPath, change.Path, _commit), false);
|
||||||
ev.Handled = true;
|
ev.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -426,13 +445,10 @@ namespace SourceGit.ViewModels
|
||||||
var openWith = new MenuItem();
|
var openWith = new MenuItem();
|
||||||
openWith.Header = App.Text("OpenWith");
|
openWith.Header = App.Text("OpenWith");
|
||||||
openWith.Icon = App.CreateMenuIcon("Icons.OpenWith");
|
openWith.Icon = App.CreateMenuIcon("Icons.OpenWith");
|
||||||
openWith.Click += (_, ev) =>
|
openWith.IsEnabled = file.Type == Models.ObjectType.Blob;
|
||||||
|
openWith.Click += async (_, ev) =>
|
||||||
{
|
{
|
||||||
var fileName = Path.GetFileNameWithoutExtension(fullPath) ?? "";
|
await OpenRevisionFileWithDefaultEditor(file.Path);
|
||||||
var fileExt = Path.GetExtension(fullPath) ?? "";
|
|
||||||
var tmpFile = Path.Combine(Path.GetTempPath(), $"{fileName}~{_commit.SHA.Substring(0, 10)}{fileExt}");
|
|
||||||
Commands.SaveRevisionFile.Run(_repo.FullPath, _commit.SHA, file.Path, tmpFile);
|
|
||||||
Native.OS.OpenWithDefaultEditor(tmpFile);
|
|
||||||
ev.Handled = true;
|
ev.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -453,9 +469,9 @@ namespace SourceGit.ViewModels
|
||||||
if (selected.Count == 1)
|
if (selected.Count == 1)
|
||||||
{
|
{
|
||||||
var folder = selected[0];
|
var folder = selected[0];
|
||||||
var folderPath = folder is { Path: { IsAbsoluteUri: true } path } ? path.LocalPath : folder?.Path.ToString();
|
var folderPath = folder is { Path: { IsAbsoluteUri: true } path } ? path.LocalPath : folder.Path.ToString();
|
||||||
var saveTo = Path.Combine(folderPath, Path.GetFileName(file.Path));
|
var saveTo = Path.Combine(folderPath, Path.GetFileName(file.Path)!);
|
||||||
Commands.SaveRevisionFile.Run(_repo.FullPath, _commit.SHA, file.Path, saveTo);
|
await Task.Run(() => Commands.SaveRevisionFile.Run(_repo.FullPath, _commit.SHA, file.Path, saveTo));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
|
@ -486,7 +502,7 @@ namespace SourceGit.ViewModels
|
||||||
blame.IsEnabled = file.Type == Models.ObjectType.Blob;
|
blame.IsEnabled = file.Type == Models.ObjectType.Blob;
|
||||||
blame.Click += (_, ev) =>
|
blame.Click += (_, ev) =>
|
||||||
{
|
{
|
||||||
App.ShowWindow(new Blame(_repo.FullPath, file.Path, _commit.SHA), false);
|
App.ShowWindow(new Blame(_repo.FullPath, file.Path, _commit), false);
|
||||||
ev.Handled = true;
|
ev.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -554,6 +570,8 @@ namespace SourceGit.ViewModels
|
||||||
|
|
||||||
SignInfo = null;
|
SignInfo = null;
|
||||||
ViewRevisionFileContent = null;
|
ViewRevisionFileContent = null;
|
||||||
|
ViewRevisionFilePath = string.Empty;
|
||||||
|
CanOpenRevisionFileWithDefaultEditor = false;
|
||||||
Children = null;
|
Children = null;
|
||||||
RevisionFileSearchFilter = string.Empty;
|
RevisionFileSearchFilter = string.Empty;
|
||||||
RevisionFileSearchSuggestion = null;
|
RevisionFileSearchSuggestion = null;
|
||||||
|
@ -574,14 +592,14 @@ namespace SourceGit.ViewModels
|
||||||
|
|
||||||
if (!token.IsCancellationRequested)
|
if (!token.IsCancellationRequested)
|
||||||
Dispatcher.UIThread.Invoke(() => FullMessage = new Models.CommitFullMessage { Message = message, Inlines = inlines });
|
Dispatcher.UIThread.Invoke(() => FullMessage = new Models.CommitFullMessage { Message = message, Inlines = inlines });
|
||||||
});
|
}, token);
|
||||||
|
|
||||||
Task.Run(() =>
|
Task.Run(() =>
|
||||||
{
|
{
|
||||||
var signInfo = new Commands.QueryCommitSignInfo(_repo.FullPath, _commit.SHA, !_repo.HasAllowedSignersFile).Result();
|
var signInfo = new Commands.QueryCommitSignInfo(_repo.FullPath, _commit.SHA, !_repo.HasAllowedSignersFile).Result();
|
||||||
if (!token.IsCancellationRequested)
|
if (!token.IsCancellationRequested)
|
||||||
Dispatcher.UIThread.Invoke(() => SignInfo = signInfo);
|
Dispatcher.UIThread.Invoke(() => SignInfo = signInfo);
|
||||||
});
|
}, token);
|
||||||
|
|
||||||
if (Preferences.Instance.ShowChildren)
|
if (Preferences.Instance.ShowChildren)
|
||||||
{
|
{
|
||||||
|
@ -592,7 +610,7 @@ namespace SourceGit.ViewModels
|
||||||
var children = cmd.Result();
|
var children = cmd.Result();
|
||||||
if (!token.IsCancellationRequested)
|
if (!token.IsCancellationRequested)
|
||||||
Dispatcher.UIThread.Post(() => Children = children);
|
Dispatcher.UIThread.Post(() => Children = children);
|
||||||
});
|
}, token);
|
||||||
}
|
}
|
||||||
|
|
||||||
Task.Run(() =>
|
Task.Run(() =>
|
||||||
|
@ -622,12 +640,12 @@ namespace SourceGit.ViewModels
|
||||||
SelectedChanges = null;
|
SelectedChanges = null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
}, token);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Models.InlineElement> ParseInlinesInMessage(string message)
|
private Models.InlineElementCollector ParseInlinesInMessage(string message)
|
||||||
{
|
{
|
||||||
var inlines = new List<Models.InlineElement>();
|
var inlines = new Models.InlineElementCollector();
|
||||||
if (_repo.Settings.IssueTrackerRules is { Count: > 0 } rules)
|
if (_repo.Settings.IssueTrackerRules is { Count: > 0 } rules)
|
||||||
{
|
{
|
||||||
foreach (var rule in rules)
|
foreach (var rule in rules)
|
||||||
|
@ -643,17 +661,7 @@ namespace SourceGit.ViewModels
|
||||||
|
|
||||||
var start = match.Index;
|
var start = match.Index;
|
||||||
var len = match.Length;
|
var len = match.Length;
|
||||||
var intersect = false;
|
if (inlines.Intersect(start, len) != null)
|
||||||
foreach (var link in inlines)
|
|
||||||
{
|
|
||||||
if (link.Intersect(start, len))
|
|
||||||
{
|
|
||||||
intersect = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (intersect)
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
var url = message.Substring(start, len);
|
var url = message.Substring(start, len);
|
||||||
|
@ -670,17 +678,7 @@ namespace SourceGit.ViewModels
|
||||||
|
|
||||||
var start = match.Index;
|
var start = match.Index;
|
||||||
var len = match.Length;
|
var len = match.Length;
|
||||||
var intersect = false;
|
if (inlines.Intersect(start, len) != null)
|
||||||
foreach (var link in inlines)
|
|
||||||
{
|
|
||||||
if (link.Intersect(start, len))
|
|
||||||
{
|
|
||||||
intersect = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (intersect)
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
var sha = match.Groups[1].Value;
|
var sha = match.Groups[1].Value;
|
||||||
|
@ -689,9 +687,7 @@ namespace SourceGit.ViewModels
|
||||||
inlines.Add(new Models.InlineElement(Models.InlineElementType.CommitSHA, start, len, sha));
|
inlines.Add(new Models.InlineElement(Models.InlineElementType.CommitSHA, start, len, sha));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inlines.Count > 0)
|
inlines.Sort();
|
||||||
inlines.Sort((l, r) => l.Start - r.Start);
|
|
||||||
|
|
||||||
return inlines;
|
return inlines;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -897,14 +893,6 @@ namespace SourceGit.ViewModels
|
||||||
[GeneratedRegex(@"\b([0-9a-fA-F]{6,40})\b")]
|
[GeneratedRegex(@"\b([0-9a-fA-F]{6,40})\b")]
|
||||||
private static partial Regex REG_SHA_FORMAT();
|
private static partial Regex REG_SHA_FORMAT();
|
||||||
|
|
||||||
[GeneratedRegex(@"^version https://git-lfs.github.com/spec/v\d+\r?\noid sha256:([0-9a-f]+)\r?\nsize (\d+)[\r\n]*$")]
|
|
||||||
private static partial Regex REG_LFS_FORMAT();
|
|
||||||
|
|
||||||
private static readonly HashSet<string> IMG_EXTS = new HashSet<string>()
|
|
||||||
{
|
|
||||||
".ico", ".bmp", ".jpg", ".png", ".jpeg", ".webp"
|
|
||||||
};
|
|
||||||
|
|
||||||
private Repository _repo = null;
|
private Repository _repo = null;
|
||||||
private Models.Commit _commit = null;
|
private Models.Commit _commit = null;
|
||||||
private Models.CommitFullMessage _fullMessage = null;
|
private Models.CommitFullMessage _fullMessage = null;
|
||||||
|
@ -915,11 +903,13 @@ namespace SourceGit.ViewModels
|
||||||
private List<Models.Change> _selectedChanges = null;
|
private List<Models.Change> _selectedChanges = null;
|
||||||
private string _searchChangeFilter = string.Empty;
|
private string _searchChangeFilter = string.Empty;
|
||||||
private DiffContext _diffContext = null;
|
private DiffContext _diffContext = null;
|
||||||
|
private string _viewRevisionFilePath = string.Empty;
|
||||||
private object _viewRevisionFileContent = null;
|
private object _viewRevisionFileContent = null;
|
||||||
private CancellationTokenSource _cancellationSource = null;
|
private CancellationTokenSource _cancellationSource = null;
|
||||||
private bool _requestingRevisionFiles = false;
|
private bool _requestingRevisionFiles = false;
|
||||||
private List<string> _revisionFiles = null;
|
private List<string> _revisionFiles = null;
|
||||||
private string _revisionFileSearchFilter = string.Empty;
|
private string _revisionFileSearchFilter = string.Empty;
|
||||||
private List<string> _revisionFileSearchSuggestion = null;
|
private List<string> _revisionFileSearchSuggestion = null;
|
||||||
|
private bool _canOpenRevisionFileWithDefaultEditor = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
62
src/ViewModels/ConfigureCustomActionControls.cs
Normal file
62
src/ViewModels/ConfigureCustomActionControls.cs
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
using Avalonia.Collections;
|
||||||
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
|
|
||||||
|
namespace SourceGit.ViewModels
|
||||||
|
{
|
||||||
|
public class ConfigureCustomActionControls : ObservableObject
|
||||||
|
{
|
||||||
|
public AvaloniaList<Models.CustomActionControl> Controls
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Models.CustomActionControl Edit
|
||||||
|
{
|
||||||
|
get => _edit;
|
||||||
|
set => SetProperty(ref _edit, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConfigureCustomActionControls(AvaloniaList<Models.CustomActionControl> controls)
|
||||||
|
{
|
||||||
|
Controls = controls;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Add()
|
||||||
|
{
|
||||||
|
var added = new Models.CustomActionControl() { Type = Models.CustomActionControlType.TextBox };
|
||||||
|
Controls.Add(added);
|
||||||
|
Edit = added;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Remove()
|
||||||
|
{
|
||||||
|
if (_edit == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Controls.Remove(_edit);
|
||||||
|
Edit = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void MoveUp()
|
||||||
|
{
|
||||||
|
if (_edit == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var idx = Controls.IndexOf(_edit);
|
||||||
|
if (idx > 0)
|
||||||
|
Controls.Move(idx - 1, idx);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void MoveDown()
|
||||||
|
{
|
||||||
|
if (_edit == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var idx = Controls.IndexOf(_edit);
|
||||||
|
if (idx < Controls.Count - 1)
|
||||||
|
Controls.Move(idx + 1, idx);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Models.CustomActionControl _edit;
|
||||||
|
}
|
||||||
|
}
|
|
@ -29,8 +29,7 @@ namespace SourceGit.ViewModels
|
||||||
|
|
||||||
public ConfigureWorkspace()
|
public ConfigureWorkspace()
|
||||||
{
|
{
|
||||||
Workspaces = new AvaloniaList<Workspace>();
|
Workspaces = new(Preferences.Instance.Workspaces);
|
||||||
Workspaces.AddRange(Preferences.Instance.Workspaces);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Add()
|
public void Add()
|
||||||
|
|
31
src/ViewModels/Confirm.cs
Normal file
31
src/ViewModels/Confirm.cs
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace SourceGit.ViewModels
|
||||||
|
{
|
||||||
|
public class Confirm
|
||||||
|
{
|
||||||
|
public string Message
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
private set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Confirm(string message, Action onSure, Action onCancel = null)
|
||||||
|
{
|
||||||
|
Message = message;
|
||||||
|
_onSure = onSure;
|
||||||
|
_onCancel = onCancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Done(bool isSure)
|
||||||
|
{
|
||||||
|
if (isSure)
|
||||||
|
_onSure?.Invoke();
|
||||||
|
else
|
||||||
|
_onCancel?.Invoke();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Action _onSure;
|
||||||
|
private Action _onCancel;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,26 +0,0 @@
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace SourceGit.ViewModels
|
|
||||||
{
|
|
||||||
public class ConfirmCommit
|
|
||||||
{
|
|
||||||
public string Message
|
|
||||||
{
|
|
||||||
get;
|
|
||||||
private set;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ConfirmCommit(string message, Action onSure)
|
|
||||||
{
|
|
||||||
Message = message;
|
|
||||||
_onSure = onSure;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Continue()
|
|
||||||
{
|
|
||||||
_onSure?.Invoke();
|
|
||||||
}
|
|
||||||
|
|
||||||
private Action _onSure;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -129,7 +129,14 @@ namespace SourceGit.ViewModels
|
||||||
var updateSubmodules = IsRecurseSubmoduleVisible && RecurseSubmodules;
|
var updateSubmodules = IsRecurseSubmoduleVisible && RecurseSubmodules;
|
||||||
return Task.Run(() =>
|
return Task.Run(() =>
|
||||||
{
|
{
|
||||||
bool succ = false;
|
bool succ;
|
||||||
|
|
||||||
|
if (CheckoutAfterCreated && !_repo.ConfirmCheckoutBranch())
|
||||||
|
{
|
||||||
|
CallUIThread(() => _repo.SetWatcherEnabled(true));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (CheckoutAfterCreated && !_repo.IsBare)
|
if (CheckoutAfterCreated && !_repo.IsBare)
|
||||||
{
|
{
|
||||||
var needPopStash = false;
|
var needPopStash = false;
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue