Merge branch 'master' into fix-code-coverage

This commit is contained in:
Stanley Goldman 2018-09-14 09:00:49 -04:00 коммит произвёл GitHub
Родитель 5360b6b57a d0ae1d57c2
Коммит 22727ae47c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
55 изменённых файлов: 2135 добавлений и 2684 удалений

Просмотреть файл

@ -125,6 +125,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GitHub.TeamFoundation.UnitT
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GitHub.VisualStudio.UnitTests", "test\GitHub.VisualStudio.UnitTests\GitHub.VisualStudio.UnitTests.csproj", "{8B14F90B-0781-465D-AB94-19C8C56E3A94}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.Resources", "src\GitHub.Resources\GitHub.Resources.csproj", "{54E8D71A-AABB-4698-95FE-7F11612B8E59}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -494,6 +496,16 @@ Global
{8B14F90B-0781-465D-AB94-19C8C56E3A94}.Release|Any CPU.Build.0 = Release|Any CPU
{8B14F90B-0781-465D-AB94-19C8C56E3A94}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
{8B14F90B-0781-465D-AB94-19C8C56E3A94}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{54E8D71A-AABB-4698-95FE-7F11612B8E59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{54E8D71A-AABB-4698-95FE-7F11612B8E59}.Debug|Any CPU.Build.0 = Debug|Any CPU
{54E8D71A-AABB-4698-95FE-7F11612B8E59}.DebugCodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU
{54E8D71A-AABB-4698-95FE-7F11612B8E59}.DebugCodeAnalysis|Any CPU.Build.0 = Debug|Any CPU
{54E8D71A-AABB-4698-95FE-7F11612B8E59}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
{54E8D71A-AABB-4698-95FE-7F11612B8E59}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
{54E8D71A-AABB-4698-95FE-7F11612B8E59}.Release|Any CPU.ActiveCfg = Release|Any CPU
{54E8D71A-AABB-4698-95FE-7F11612B8E59}.Release|Any CPU.Build.0 = Release|Any CPU
{54E8D71A-AABB-4698-95FE-7F11612B8E59}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
{54E8D71A-AABB-4698-95FE-7F11612B8E59}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

Просмотреть файл

@ -1,3 +1,3 @@
files:
- source: /src/**/Resources.resx
- source: /src/GitHub.Resources/Resources.resx
translation: /%original_path%/Resources.%locale%.resx

Просмотреть файл

@ -20,17 +20,6 @@
<ItemGroup>
<Resource Include="Images\*.png" />
<Compile Update="Resources.Designer.cs">
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
<EmbeddedResource Update="Resources.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
@ -47,6 +36,7 @@
<ProjectReference Include="..\GitHub.Extensions.Reactive\GitHub.Extensions.Reactive.csproj" />
<ProjectReference Include="..\GitHub.Extensions\GitHub.Extensions.csproj" />
<ProjectReference Include="..\GitHub.Logging\GitHub.Logging.csproj" />
<ProjectReference Include="..\GitHub.Resources\GitHub.Resources.csproj" />
<ProjectReference Include="..\GitHub.Services.Vssdk\GitHub.Services.Vssdk.csproj" />
<ProjectReference Include="..\GitHub.UI.Reactive\GitHub.UI.Reactive.csproj" />
</ItemGroup>

705
src/GitHub.App/Resources.Designer.cs сгенерированный
Просмотреть файл

@ -1,705 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace GitHub.App {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GitHub.App.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized string similar to add.
/// </summary>
public static string AddedFileStatus {
get {
return ResourceManager.GetString("AddedFileStatus", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Approved.
/// </summary>
public static string Approved {
get {
return ResourceManager.GetString("Approved", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Select a containing folder for your new repository..
/// </summary>
public static string BrowseForDirectory {
get {
return ResourceManager.GetString("BrowseForDirectory", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Are you sure you want to cancel this review? You will lose all your pending comments..
/// </summary>
public static string CancelPendingReviewConfirmation {
get {
return ResourceManager.GetString("CancelPendingReviewConfirmation", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Cancel Review.
/// </summary>
public static string CancelPendingReviewConfirmationCaption {
get {
return ResourceManager.GetString("CancelPendingReviewConfirmationCaption", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Changes Requested.
/// </summary>
public static string ChangesRequested {
get {
return ResourceManager.GetString("ChangesRequested", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Clone a Repository.
/// </summary>
public static string CloneTitle {
get {
return ResourceManager.GetString("CloneTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Commented.
/// </summary>
public static string Commented {
get {
return ResourceManager.GetString("Commented", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Could not connect to github.com.
/// </summary>
public static string CouldNotConnectToGitHub {
get {
return ResourceManager.GetString("CouldNotConnectToGitHub", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Couldn&apos;t find Git.exe on PATH.
///
///Please install Git for Windows from:
///https://git-scm.com/download/win.
/// </summary>
public static string CouldntFindGitOnPath {
get {
return ResourceManager.GetString("CouldntFindGitOnPath", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Create a GitHub Gist.
/// </summary>
public static string CreateGistTitle {
get {
return ResourceManager.GetString("CreateGistTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Create a {0} Repository.
/// </summary>
public static string CreateTitle {
get {
return ResourceManager.GetString("CreateTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to GistFromVisualStudio.cs.
/// </summary>
public static string DefaultGistFileName {
get {
return ResourceManager.GetString("DefaultGistFileName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The destination already exists..
/// </summary>
public static string DestinationAlreadyExists {
get {
return ResourceManager.GetString("DestinationAlreadyExists", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Please enter an Enterprise URL.
/// </summary>
public static string EnterpriseUrlValidatorEmpty {
get {
return ResourceManager.GetString("EnterpriseUrlValidatorEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Please enter a valid Enterprise URL.
/// </summary>
public static string EnterpriseUrlValidatorInvalid {
get {
return ResourceManager.GetString("EnterpriseUrlValidatorInvalid", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Not an Enterprise server. Please enter an Enterprise URL.
/// </summary>
public static string EnterpriseUrlValidatorNotAGitHubHost {
get {
return ResourceManager.GetString("EnterpriseUrlValidatorNotAGitHubHost", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to (forgot your password?).
/// </summary>
public static string ForgotPasswordLink {
get {
return ResourceManager.GetString("ForgotPasswordLink", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to fork.
/// </summary>
public static string Fork {
get {
return ResourceManager.GetString("Fork", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Fork Repository.
/// </summary>
public static string ForkRepositoryTitle {
get {
return ResourceManager.GetString("ForkRepositoryTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to InProgress.
/// </summary>
public static string InProgress {
get {
return ResourceManager.GetString("InProgress", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [invalid].
/// </summary>
public static string InvalidBranchName {
get {
return ResourceManager.GetString("InvalidBranchName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Make sure to use your password and not a Personal Access token to sign in..
/// </summary>
public static string LoginFailedForbiddenMessage {
get {
return ResourceManager.GetString("LoginFailedForbiddenMessage", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Check your username and password, then try again.
/// </summary>
public static string LoginFailedMessage {
get {
return ResourceManager.GetString("LoginFailedMessage", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Sign in failed..
/// </summary>
public static string LoginFailedText {
get {
return ResourceManager.GetString("LoginFailedText", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Connect To GitHub.
/// </summary>
public static string LoginTitle {
get {
return ResourceManager.GetString("LoginTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Logout Required.
/// </summary>
public static string LogoutRequired {
get {
return ResourceManager.GetString("LogoutRequired", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to You must pull before you can push.
/// </summary>
public static string MustPullBeforePush {
get {
return ResourceManager.GetString("MustPullBeforePush", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Checkout PR branch before navigating to Editor.
/// </summary>
public static string NavigateToEditorNotCheckedOutInfoMessage {
get {
return ResourceManager.GetString("NavigateToEditorNotCheckedOutInfoMessage", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Press Enter to navigate to Editor (PR branch must be checked out).
/// </summary>
public static string NavigateToEditorNotCheckedOutStatusMessage {
get {
return ResourceManager.GetString("NavigateToEditorNotCheckedOutStatusMessage", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Press Enter to navigate to Editor.
/// </summary>
public static string NavigateToEditorStatusMessage {
get {
return ResourceManager.GetString("NavigateToEditorStatusMessage", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to No commits to pull.
/// </summary>
public static string NoCommitsToPull {
get {
return ResourceManager.GetString("NoCommitsToPull", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to No commits to push.
/// </summary>
public static string NoCommitsToPush {
get {
return ResourceManager.GetString("NoCommitsToPush", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to *No description provided.*.
/// </summary>
public static string NoDescriptionProvidedMarkdown {
get {
return ResourceManager.GetString("NoDescriptionProvidedMarkdown", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Please enter your password.
/// </summary>
public static string PasswordValidatorEmpty {
get {
return ResourceManager.GetString("PasswordValidatorEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Pull Request for branch **{0}** created successfully at [{1}]({2}).
/// </summary>
public static string PRCreatedUpstream {
get {
return ResourceManager.GetString("PRCreatedUpstream", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Publish repository.
/// </summary>
public static string PublishTitle {
get {
return ResourceManager.GetString("PublishTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Publish repository to {0}.
/// </summary>
public static string PublishToTitle {
get {
return ResourceManager.GetString("PublishToTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Please enter a title for the Pull Request.
/// </summary>
public static string PullRequestCreationTitleValidatorEmpty {
get {
return ResourceManager.GetString("PullRequestCreationTitleValidatorEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Checkout {0}.
/// </summary>
public static string PullRequestDetailsCheckout {
get {
return ResourceManager.GetString("PullRequestDetailsCheckout", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Checkout to {0}.
/// </summary>
public static string PullRequestDetailsCheckoutTo {
get {
return ResourceManager.GetString("PullRequestDetailsCheckoutTo", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Pull from {0} branch {1}.
/// </summary>
public static string PullRequestDetailsPullToolTip {
get {
return ResourceManager.GetString("PullRequestDetailsPullToolTip", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Push to {0} branch {1}.
/// </summary>
public static string PullRequestDetailsPushToolTip {
get {
return ResourceManager.GetString("PullRequestDetailsPushToolTip", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Pull Request.
/// </summary>
public static string PullRequestNavigationItemText {
get {
return ResourceManager.GetString("PullRequestNavigationItemText", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Pull Requests.
/// </summary>
public static string PullRequestsNavigationItemText {
get {
return ResourceManager.GetString("PullRequestsNavigationItemText", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Source and target branch cannot be the same.
/// </summary>
public static string PullRequestSourceAndTargetBranchTheSame {
get {
return ResourceManager.GetString("PullRequestSourceAndTargetBranchTheSame", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Source branch doesn&apos;t exist remotely, have you pushed it?.
/// </summary>
public static string PullRequestSourceBranchDoesNotExist {
get {
return ResourceManager.GetString("PullRequestSourceBranchDoesNotExist", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to remote.
/// </summary>
public static string Remote {
get {
return ResourceManager.GetString("Remote", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to rename.
/// </summary>
public static string RenamedFileStatus {
get {
return ResourceManager.GetString("RenamedFileStatus", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to No selected repository..
/// </summary>
public static string RepositoryCloneFailedNoSelectedRepo {
get {
return ResourceManager.GetString("RepositoryCloneFailedNoSelectedRepo", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Please enter a repository path.
/// </summary>
public static string RepositoryCreationClonePathEmpty {
get {
return ResourceManager.GetString("RepositoryCreationClonePathEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Please enter a valid path.
/// </summary>
public static string RepositoryCreationClonePathInvalid {
get {
return ResourceManager.GetString("RepositoryCreationClonePathInvalid", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Path contains invalid characters.
/// </summary>
public static string RepositoryCreationClonePathInvalidCharacters {
get {
return ResourceManager.GetString("RepositoryCreationClonePathInvalidCharacters", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Path too long.
/// </summary>
public static string RepositoryCreationClonePathTooLong {
get {
return ResourceManager.GetString("RepositoryCreationClonePathTooLong", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Repository &apos;{0}/{1}&apos; already exists..
/// </summary>
public static string RepositoryCreationFailedAlreadyExists {
get {
return ResourceManager.GetString("RepositoryCreationFailedAlreadyExists", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Change the repository name or select a different account and try again..
/// </summary>
public static string RepositoryCreationFailedAlreadyExistsMessage {
get {
return ResourceManager.GetString("RepositoryCreationFailedAlreadyExistsMessage", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Exceeded private repositories quota..
/// </summary>
public static string RepositoryCreationFailedQuota {
get {
return ResourceManager.GetString("RepositoryCreationFailedQuota", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Repository with same name already exists at this location.
/// </summary>
public static string RepositoryNameValidatorAlreadyExists {
get {
return ResourceManager.GetString("RepositoryNameValidatorAlreadyExists", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Please enter a repository name.
/// </summary>
public static string RepositoryNameValidatorEmpty {
get {
return ResourceManager.GetString("RepositoryNameValidatorEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Repository name must be fewer than 100 characters.
/// </summary>
public static string RepositoryNameValidatorTooLong {
get {
return ResourceManager.GetString("RepositoryNameValidatorTooLong", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Will be created as {0}.
/// </summary>
public static string SafeRepositoryNameWarning {
get {
return ResourceManager.GetString("SafeRepositoryNameWarning", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The source repository is no longer available..
/// </summary>
public static string SourceRepositoryNoLongerAvailable {
get {
return ResourceManager.GetString("SourceRepositoryNoLongerAvailable", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Switch Origin.
/// </summary>
public static string SwitchOriginTitle {
get {
return ResourceManager.GetString("SwitchOriginTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Sync {0} submodules.
/// </summary>
public static string SyncSubmodules {
get {
return ResourceManager.GetString("SyncSubmodules", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Open the two-factor authentication app on your device to view your authentication code..
/// </summary>
public static string TwoFactorApp {
get {
return ResourceManager.GetString("TwoFactorApp", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to We sent you a message via SMS with your authentication code..
/// </summary>
public static string TwoFactorSms {
get {
return ResourceManager.GetString("TwoFactorSms", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Two-Factor authentication required.
/// </summary>
public static string TwoFactorTitle {
get {
return ResourceManager.GetString("TwoFactorTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Enter a sign in authentication code here.
/// </summary>
public static string TwoFactorUnknown {
get {
return ResourceManager.GetString("TwoFactorUnknown", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Please enter your username or email address.
/// </summary>
public static string UsernameOrEmailValidatorEmpty {
get {
return ResourceManager.GetString("UsernameOrEmailValidatorEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Username or email address must not have spaces.
/// </summary>
public static string UsernameOrEmailValidatorSpaces {
get {
return ResourceManager.GetString("UsernameOrEmailValidatorSpaces", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Cannot checkout as your working directory has uncommitted changes..
/// </summary>
public static string WorkingDirectoryHasUncommittedCHanges {
get {
return ResourceManager.GetString("WorkingDirectoryHasUncommittedCHanges", resourceCulture);
}
}
}
}

Просмотреть файл

@ -1,336 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="BrowseForDirectory" xml:space="preserve">
<value>Select a containing folder for your new repository.</value>
</data>
<data name="CloneTitle" xml:space="preserve">
<value>Clone a Repository</value>
</data>
<data name="CouldNotConnectToGitHub" xml:space="preserve">
<value>Could not connect to github.com</value>
</data>
<data name="CreateGistTitle" xml:space="preserve">
<value>Create a GitHub Gist</value>
</data>
<data name="CreateTitle" xml:space="preserve">
<value>Create a {0} Repository</value>
</data>
<data name="DefaultGistFileName" xml:space="preserve">
<value>GistFromVisualStudio.cs</value>
</data>
<data name="EnterpriseUrlValidatorEmpty" xml:space="preserve">
<value>Please enter an Enterprise URL</value>
</data>
<data name="EnterpriseUrlValidatorInvalid" xml:space="preserve">
<value>Please enter a valid Enterprise URL</value>
</data>
<data name="EnterpriseUrlValidatorNotAGitHubHost" xml:space="preserve">
<value>Not an Enterprise server. Please enter an Enterprise URL</value>
</data>
<data name="ForgotPasswordLink" xml:space="preserve">
<value>(forgot your password?)</value>
</data>
<data name="LoginFailedForbiddenMessage" xml:space="preserve">
<value>Make sure to use your password and not a Personal Access token to sign in.</value>
</data>
<data name="LoginFailedMessage" xml:space="preserve">
<value>Check your username and password, then try again</value>
</data>
<data name="LoginFailedText" xml:space="preserve">
<value>Sign in failed.</value>
</data>
<data name="LoginTitle" xml:space="preserve">
<value>Connect To GitHub</value>
</data>
<data name="PasswordValidatorEmpty" xml:space="preserve">
<value>Please enter your password</value>
</data>
<data name="PRCreatedUpstream" xml:space="preserve">
<value>Pull Request for branch **{0}** created successfully at [{1}]({2})</value>
</data>
<data name="PublishTitle" xml:space="preserve">
<value>Publish repository</value>
</data>
<data name="PublishToTitle" xml:space="preserve">
<value>Publish repository to {0}</value>
</data>
<data name="PullRequestCreationTitleValidatorEmpty" xml:space="preserve">
<value>Please enter a title for the Pull Request</value>
</data>
<data name="PullRequestSourceAndTargetBranchTheSame" xml:space="preserve">
<value>Source and target branch cannot be the same</value>
</data>
<data name="PullRequestSourceBranchDoesNotExist" xml:space="preserve">
<value>Source branch doesn't exist remotely, have you pushed it?</value>
</data>
<data name="RepositoryCloneFailedNoSelectedRepo" xml:space="preserve">
<value>No selected repository.</value>
</data>
<data name="RepositoryCreationClonePathEmpty" xml:space="preserve">
<value>Please enter a repository path</value>
</data>
<data name="RepositoryCreationClonePathInvalid" xml:space="preserve">
<value>Please enter a valid path</value>
</data>
<data name="RepositoryCreationClonePathInvalidCharacters" xml:space="preserve">
<value>Path contains invalid characters</value>
</data>
<data name="RepositoryCreationClonePathTooLong" xml:space="preserve">
<value>Path too long</value>
</data>
<data name="RepositoryCreationFailedAlreadyExists" xml:space="preserve">
<value>Repository '{0}/{1}' already exists.</value>
</data>
<data name="RepositoryCreationFailedAlreadyExistsMessage" xml:space="preserve">
<value>Change the repository name or select a different account and try again.</value>
</data>
<data name="RepositoryCreationFailedQuota" xml:space="preserve">
<value>Exceeded private repositories quota.</value>
</data>
<data name="RepositoryNameValidatorAlreadyExists" xml:space="preserve">
<value>Repository with same name already exists at this location</value>
</data>
<data name="RepositoryNameValidatorEmpty" xml:space="preserve">
<value>Please enter a repository name</value>
</data>
<data name="RepositoryNameValidatorTooLong" xml:space="preserve">
<value>Repository name must be fewer than 100 characters</value>
</data>
<data name="SafeRepositoryNameWarning" xml:space="preserve">
<value>Will be created as {0}</value>
</data>
<data name="TwoFactorApp" xml:space="preserve">
<value>Open the two-factor authentication app on your device to view your authentication code.</value>
</data>
<data name="TwoFactorSms" xml:space="preserve">
<value>We sent you a message via SMS with your authentication code.</value>
</data>
<data name="TwoFactorTitle" xml:space="preserve">
<value>Two-Factor authentication required</value>
</data>
<data name="TwoFactorUnknown" xml:space="preserve">
<value>Enter a sign in authentication code here</value>
</data>
<data name="UsernameOrEmailValidatorEmpty" xml:space="preserve">
<value>Please enter your username or email address</value>
</data>
<data name="UsernameOrEmailValidatorSpaces" xml:space="preserve">
<value>Username or email address must not have spaces</value>
</data>
<data name="PullRequestsNavigationItemText" xml:space="preserve">
<value>Pull Requests</value>
</data>
<data name="PullRequestNavigationItemText" xml:space="preserve">
<value>Pull Request</value>
</data>
<data name="AddedFileStatus" xml:space="preserve">
<value>add</value>
</data>
<data name="Fork" xml:space="preserve">
<value>fork</value>
</data>
<data name="InvalidBranchName" xml:space="preserve">
<value>[invalid]</value>
</data>
<data name="MustPullBeforePush" xml:space="preserve">
<value>You must pull before you can push</value>
</data>
<data name="NoCommitsToPull" xml:space="preserve">
<value>No commits to pull</value>
</data>
<data name="NoCommitsToPush" xml:space="preserve">
<value>No commits to push</value>
</data>
<data name="NoDescriptionProvidedMarkdown" xml:space="preserve">
<value>*No description provided.*</value>
</data>
<data name="PullRequestDetailsCheckout" xml:space="preserve">
<value>Checkout {0}</value>
</data>
<data name="PullRequestDetailsCheckoutTo" xml:space="preserve">
<value>Checkout to {0}</value>
</data>
<data name="PullRequestDetailsPullToolTip" xml:space="preserve">
<value>Pull from {0} branch {1}</value>
</data>
<data name="PullRequestDetailsPushToolTip" xml:space="preserve">
<value>Push to {0} branch {1}</value>
</data>
<data name="Remote" xml:space="preserve">
<value>remote</value>
</data>
<data name="RenamedFileStatus" xml:space="preserve">
<value>rename</value>
</data>
<data name="SourceRepositoryNoLongerAvailable" xml:space="preserve">
<value>The source repository is no longer available.</value>
</data>
<data name="WorkingDirectoryHasUncommittedCHanges" xml:space="preserve">
<value>Cannot checkout as your working directory has uncommitted changes.</value>
</data>
<data name="SyncSubmodules" xml:space="preserve">
<value>Sync {0} submodules</value>
</data>
<data name="CouldntFindGitOnPath" xml:space="preserve">
<value>Couldn't find Git.exe on PATH.
Please install Git for Windows from:
https://git-scm.com/download/win</value>
</data>
<data name="Approved" xml:space="preserve">
<value>Approved</value>
</data>
<data name="ChangesRequested" xml:space="preserve">
<value>Changes Requested</value>
</data>
<data name="Commented" xml:space="preserve">
<value>Commented</value>
</data>
<data name="InProgress" xml:space="preserve">
<value>InProgress</value>
</data>
<data name="NavigateToEditorStatusMessage" xml:space="preserve">
<value>Press Enter to navigate to Editor</value>
</data>
<data name="NavigateToEditorNotCheckedOutInfoMessage" xml:space="preserve">
<value>Checkout PR branch before navigating to Editor</value>
</data>
<data name="NavigateToEditorNotCheckedOutStatusMessage" xml:space="preserve">
<value>Press Enter to navigate to Editor (PR branch must be checked out)</value>
</data>
<data name="ForkRepositoryTitle" xml:space="preserve">
<value>Fork Repository</value>
</data>
<data name="SwitchOriginTitle" xml:space="preserve">
<value>Switch Origin</value>
</data>
<data name="CancelPendingReviewConfirmation" xml:space="preserve">
<value>Are you sure you want to cancel this review? You will lose all your pending comments.</value>
</data>
<data name="CancelPendingReviewConfirmationCaption" xml:space="preserve">
<value>Cancel Review</value>
</data>
<data name="DestinationAlreadyExists" xml:space="preserve">
<value>The destination already exists.</value>
</data>
<data name="LogoutRequired" xml:space="preserve">
<value>Logout Required</value>
</data>
</root>

Просмотреть файл

@ -1,329 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string"/>
<xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="mimetype" type="xsd:string"/>
<xsd:attribute ref="xml:space"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string"/>
<xsd:attribute name="name" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1"/>
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3"/>
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4"/>
<xsd:attribute ref="xml:space"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="BrowseForDirectory" xml:space="preserve">
<value>为新版本库选择文件夹。</value>
</data>
<data name="CloneTitle" xml:space="preserve">
<value>克隆一个 {0} 版本库</value>
</data>
<data name="CouldNotConnectToGitHub" xml:space="preserve">
<value>无法连接到github.com</value>
</data>
<data name="CreateGistTitle" xml:space="preserve">
<value>创建一个GitHub Gist</value>
</data>
<data name="CreateTitle" xml:space="preserve">
<value>创建一个{0}存储库</value>
</data>
<data name="DefaultGistFileName" xml:space="preserve">
<value>GistFromVisualStudio.cs</value>
</data>
<data name="EnterpriseUrlValidatorEmpty" xml:space="preserve">
<value>请输入企业网址</value>
</data>
<data name="EnterpriseUrlValidatorInvalid" xml:space="preserve">
<value>请输入有效的企业网址</value>
</data>
<data name="EnterpriseUrlValidatorNotAGitHubHost" xml:space="preserve">
<value>不是企业服务器。请输入企业服务器 URL</value>
</data>
<data name="ForgotPasswordLink" xml:space="preserve">
<value>(是否忘记了您的密码?)</value>
</data>
<data name="LoginFailedForbiddenMessage" xml:space="preserve">
<value>请确保使用您的密码而不是登录的个人访问令牌。</value>
</data>
<data name="LoginFailedMessage" xml:space="preserve">
<value>检查您的用户名和密码然后重试</value>
</data>
<data name="LoginFailedText" xml:space="preserve">
<value>登录失败。</value>
</data>
<data name="LoginTitle" xml:space="preserve">
<value>连接到 GitHub</value>
</data>
<data name="PasswordValidatorEmpty" xml:space="preserve">
<value>请输入您的密码</value>
</data>
<data name="PRCreatedUpstream" xml:space="preserve">
<value>在 [{1}] ({2}) 上成功创建分支 ** {0} ** 拉取请求</value>
</data>
<data name="PublishTitle" xml:space="preserve">
<value>发布版本库</value>
</data>
<data name="PublishToTitle" xml:space="preserve">
<value>发布版本库至 {0}</value>
</data>
<data name="PullRequestCreationTitleValidatorEmpty" xml:space="preserve">
<value>请输入请求的标题!</value>
</data>
<data name="PullRequestSourceAndTargetBranchTheSame" xml:space="preserve">
<value>源和目标分支不能相同</value>
</data>
<data name="PullRequestSourceBranchDoesNotExist" xml:space="preserve">
<value>远程不存在源分支, 你有没有推送它?</value>
</data>
<data name="RepositoryCloneFailedNoSelectedRepo" xml:space="preserve">
<value>没有选定的存储库。</value>
</data>
<data name="RepositoryCreationClonePathEmpty" xml:space="preserve">
<value>请输入名称</value>
</data>
<data name="RepositoryCreationClonePathInvalid" xml:space="preserve">
<value>请输入有效路径</value>
</data>
<data name="RepositoryCreationClonePathInvalidCharacters" xml:space="preserve">
<value>路径包含无效字符</value>
</data>
<data name="RepositoryCreationClonePathTooLong" xml:space="preserve">
<value>路径太长</value>
</data>
<data name="RepositoryCreationFailedAlreadyExists" xml:space="preserve">
<value>版本库 '{0}/{1}'已存在。</value>
</data>
<data name="RepositoryCreationFailedAlreadyExistsMessage" xml:space="preserve">
<value>请更改存储库名称或选择其他帐户, 然后重试。</value>
</data>
<data name="RepositoryCreationFailedQuota" xml:space="preserve">
<value>私密文档</value>
</data>
<data name="RepositoryNameValidatorAlreadyExists" xml:space="preserve">
<value>同名的广告活动已存在</value>
</data>
<data name="RepositoryNameValidatorEmpty" xml:space="preserve">
<value>请输入姓名</value>
</data>
<data name="RepositoryNameValidatorTooLong" xml:space="preserve">
<value>这个名字不能超过100个字符</value>
</data>
<data name="SafeRepositoryNameWarning" xml:space="preserve">
<value>将要创建为 {0}</value>
</data>
<data name="TwoFactorApp" xml:space="preserve">
<value>在您的手机上安装双重验证程序Google Authenticator</value>
</data>
<data name="TwoFactorSms" xml:space="preserve">
<value>我们将发送一条验证码短信到您的手机。</value>
</data>
<data name="TwoFactorTitle" xml:space="preserve">
<value>双重身份认证</value>
</data>
<data name="TwoFactorUnknown" xml:space="preserve">
<value>在此处输入身份验证代码中的符号</value>
</data>
<data name="UsernameOrEmailValidatorEmpty" xml:space="preserve">
<value>请输入您的用户名或邮箱地址.</value>
</data>
<data name="UsernameOrEmailValidatorSpaces" xml:space="preserve">
<value>用户名或电子邮件地址不能有空格</value>
</data>
<data name="PullRequestsNavigationItemText" xml:space="preserve">
<value>拉取请求</value>
</data>
<data name="PullRequestNavigationItemText" xml:space="preserve">
<value>推送请求</value>
</data>
<data name="AddedFileStatus" xml:space="preserve">
<value>添加</value>
</data>
<data name="Fork" xml:space="preserve">
<value>fork</value>
</data>
<data name="InvalidBranchName" xml:space="preserve">
<value>[无效]</value>
</data>
<data name="MustPullBeforePush" xml:space="preserve">
<value>你必须先拉取再推送</value>
</data>
<data name="NoCommitsToPull" xml:space="preserve">
<value>没有需要拉取的提交</value>
</data>
<data name="NoCommitsToPush" xml:space="preserve">
<value>没有需要推送的提交</value>
</data>
<data name="NoDescriptionProvidedMarkdown" xml:space="preserve">
<value>* 未提供说明。*</value>
</data>
<data name="PullRequestDetailsCheckout" xml:space="preserve">
<value>签出 {0}</value>
</data>
<data name="PullRequestDetailsCheckoutTo" xml:space="preserve">
<value>签出到 {0}</value>
</data>
<data name="PullRequestDetailsPullToolTip" xml:space="preserve">
<value>从 {0} 分支 {1} 拉取</value>
</data>
<data name="PullRequestDetailsPushToolTip" xml:space="preserve">
<value>推至 {0} 分支 {1}</value>
</data>
<data name="Remote" xml:space="preserve">
<value>远程</value>
</data>
<data name="RenamedFileStatus" xml:space="preserve">
<value>重命名</value>
</data>
<data name="SourceRepositoryNoLongerAvailable" xml:space="preserve">
<value>源存版本库不再可用。</value>
</data>
<data name="WorkingDirectoryHasUncommittedCHanges" xml:space="preserve">
<value>无法签出, 因为您的工作目录有未提交的更改。</value>
</data>
<data name="SyncSubmodules" xml:space="preserve">
<value>同步 {0} 子模块</value>
</data>
<data name="CouldntFindGitOnPath" xml:space="preserve">
<value>在PATH 找不到 Git.exe。
请安装 Git for Windows : https://git-scm.com/download/win</value>
</data>
<data name="Approved" xml:space="preserve">
<value>批准</value>
</data>
<data name="ChangesRequested" xml:space="preserve">
<value>更改需求</value>
</data>
<data name="Commented" xml:space="preserve">
<value>已评论</value>
</data>
<data name="InProgress" xml:space="preserve">
<value>进行中</value>
</data>
<data name="NavigateToEditorStatusMessage" xml:space="preserve">
<value>按回车键导航到编辑器</value>
</data>
<data name="NavigateToEditorNotCheckedOutInfoMessage" xml:space="preserve">
<value>在导航到编辑器之前签出 PR 分支</value>
</data>
<data name="NavigateToEditorNotCheckedOutStatusMessage" xml:space="preserve">
<value>按回车键导航到编辑器 (PR 分支必须签出)</value>
</data>
<data name="ForkRepositoryTitle" xml:space="preserve">
<value>Fork存储库</value>
</data>
<data name="SwitchOriginTitle" xml:space="preserve">
<value>开关原点</value>
</data>
<data name="CancelPendingReviewConfirmation" xml:space="preserve">
<value>您确定要取消此评审吗?您将丢失所有待处理的评论。</value>
</data>
<data name="CancelPendingReviewConfirmationCaption" xml:space="preserve">
<value>取消评审</value>
</data>
</root>

Просмотреть файл

@ -547,7 +547,7 @@ namespace GitHub.Services
var textView = vsEditorAdaptersFactory.GetWpfTextView(vsTextView);
var statusMessage = session.IsCheckedOut ?
App.Resources.NavigateToEditorStatusMessage : App.Resources.NavigateToEditorNotCheckedOutStatusMessage;
Resources.NavigateToEditorStatusMessage : Resources.NavigateToEditorNotCheckedOutStatusMessage;
textView.GotAggregateFocus += (s, e) =>
statusBar.ShowMessage(statusMessage);

Просмотреть файл

@ -471,7 +471,7 @@ namespace GitHub.Services
var exitCode = await Where("git");
if (exitCode != 0)
{
progress(App.Resources.CouldntFindGitOnPath);
progress(Resources.CouldntFindGitOnPath);
return false;
}
@ -819,8 +819,8 @@ namespace GitHub.Services
public bool ConfirmCancelPendingReview()
{
return MessageBox.Show(
GitHub.App.Resources.CancelPendingReviewConfirmation,
GitHub.App.Resources.CancelPendingReviewConfirmationCaption,
Resources.CancelPendingReviewConfirmation,
Resources.CancelPendingReviewConfirmationCaption,
MessageBoxButtons.YesNo,
MessageBoxIcon.Question) == DialogResult.Yes;
}

Просмотреть файл

@ -25,6 +25,7 @@ namespace GitHub.ViewModels.Dialog.Clone
readonly IRepositoryCloneService service;
readonly IReadOnlyList<IRepositoryCloneTabViewModel> tabs;
string path;
IRepositoryModel previousRepository;
ObservableAsPropertyHelper<string> pathError;
int selectedTabIndex;
@ -54,7 +55,7 @@ namespace GitHub.ViewModels.Dialog.Clone
pathError = Observable.CombineLatest(
repository,
this.WhenAnyValue(x => x.Path),
this.WhenAnyValue(x => x.Path),
ValidatePath)
.ToProperty(this, x => x.PathError);
@ -138,19 +139,59 @@ namespace GitHub.ViewModels.Dialog.Clone
}
}
void UpdatePath(IRepositoryModel x)
void UpdatePath(IRepositoryModel repository)
{
if (x != null)
if (repository != null)
{
if (Path == service.DefaultClonePath)
var basePath = GetUpdatedBasePath(Path);
previousRepository = repository;
Path = System.IO.Path.Combine(basePath, repository.Owner, repository.Name);
}
}
string GetUpdatedBasePath(string path)
{
if (string.IsNullOrEmpty(path))
{
return service.DefaultClonePath;
}
if (previousRepository == null)
{
return path;
}
if (FindDirWithout(path, previousRepository?.Owner, 2) is string dirWithoutOwner)
{
return dirWithoutOwner;
}
if (FindDirWithout(path, previousRepository?.Name, 1) is string dirWithoutRepo)
{
return dirWithoutRepo;
}
return path;
string FindDirWithout(string dir, string match, int levels)
{
string dirWithout = null;
for (var i = 0; i < 2; i++)
{
Path = System.IO.Path.Combine(Path, x.Name);
}
else
{
var basePath = System.IO.Path.GetDirectoryName(Path);
Path = System.IO.Path.Combine(basePath, x.Name);
if (string.IsNullOrEmpty(dir))
{
break;
}
var name = System.IO.Path.GetFileName(dir);
dir = System.IO.Path.GetDirectoryName(dir);
if (name == match)
{
dirWithout = dir;
}
}
return dirWithout;
}
}

Просмотреть файл

@ -199,6 +199,10 @@
<Project>{8d73575a-a89f-47cc-b153-b47dd06837f0}</Project>
<Name>GitHub.Logging</Name>
</ProjectReference>
<ProjectReference Include="..\GitHub.Resources\GitHub.Resources.csproj">
<Project>{54e8d71a-aabb-4698-95fe-7f11612b8e59}</Project>
<Name>GitHub.Resources</Name>
</ProjectReference>
<ProjectReference Include="..\GitHub.Services.Vssdk\GitHub.Services.Vssdk.csproj">
<Project>{2d3d2834-33be-45ca-b3cc-12f853557d7b}</Project>
<Name>GitHub.Services.Vssdk</Name>

Просмотреть файл

@ -15,8 +15,8 @@ namespace GitHub.InlineReviews.Services
0;
return MessageBox.Show(
VisualStudio.UI.Resources.DeleteCommentConfirmation,
VisualStudio.UI.Resources.DeleteCommentConfirmationCaption,
Resources.DeleteCommentConfirmation,
Resources.DeleteCommentConfirmationCaption,
MessageBoxButtons.YesNo,
MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1,

Просмотреть файл

@ -3,9 +3,9 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:cache="clr-namespace:GitHub.UI.Helpers;assembly=GitHub.UI"
xmlns:controls="clr-namespace:GitHub.VisualStudio.UI.Controls;assembly=GitHub.VisualStudio.UI"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
xmlns:ui="clr-namespace:GitHub.UI;assembly=GitHub.UI"
xmlns:markdig="clr-namespace:Markdig.Wpf;assembly=Markdig.Wpf"
xmlns:sample="clr-namespace:GitHub.InlineReviews.SampleData"
@ -67,7 +67,7 @@
CornerRadius="3"
Padding="2 1"
Visibility="{Binding IsPending, Converter={ui:BooleanToVisibilityConverter}, FallbackValue=Collapsed}">
<TextBlock FontSize="10" Text="{x:Static prop:Resources.Pending}" />
<TextBlock FontSize="10" Text="{x:Static ghfvs:Resources.Pending}" />
</Border>
</StackPanel>
@ -216,9 +216,9 @@
<Button Command="{Binding CommitEdit}" Content="{Binding CommitCaption}"/>
<Button Margin="4 0 0 0"
Command="{Binding StartReview}"
Content="{x:Static prop:Resources.StartAReview}"
Content="{x:Static ghfvs:Resources.StartAReview}"
Visibility="{Binding CanStartReview, Converter={ui:BooleanToVisibilityConverter}}"/>
<Button Margin="4 0 0 0" Command="{Binding CancelEdit}" Content="{x:Static prop:Resources.Cancel}"/>
<Button Margin="4 0 0 0" Command="{Binding CancelEdit}" Content="{x:Static ghfvs:Resources.Cancel}"/>
</StackPanel>
</Grid>
</Grid>

Просмотреть файл

@ -3,10 +3,10 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:local="clr-namespace:GitHub.InlineReviews.Views"
xmlns:cache="clr-namespace:GitHub.UI.Helpers;assembly=GitHub.UI"
xmlns:ui="clr-namespace:GitHub.UI;assembly=GitHub.UI"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
mc:Ignorable="d"
d:DesignHeight="200" d:DesignWidth="500">
<UserControl.Resources>
@ -59,7 +59,7 @@
</Border.Style>
<DockPanel>
<ui:OcticonImage DockPanel.Dock="Left" Icon="alert" Margin="0 0 8 0"/>
<TextBlock TextWrapping="Wrap" Text="{x:Static prop:Resources.YouMustCommitAndPushYourChangesToAddACommentHere}"/>
<TextBlock TextWrapping="Wrap" Text="{x:Static ghfvs:Resources.YouMustCommitAndPushYourChangesToAddACommentHere}"/>
</DockPanel>
</Border>
@ -72,7 +72,7 @@
<Button Margin="2 0" Padding="2" Command="{Binding PreviousComment}"
Style="{StaticResource GitHubToolbarButton}">
<Button.ToolTip>
<TextBlock FontSize="11" Text="{x:Static prop:Resources.PreviousComment}"/>
<TextBlock FontSize="11" Text="{x:Static ghfvs:Resources.PreviousComment}"/>
</Button.ToolTip>
<Canvas Width="16" Height="16">
<!-- TODO: Double check these brushes since they don't seem like the right fill colors -->
@ -86,7 +86,7 @@
<Button Margin="2 0" Padding="2" Command="{Binding NextComment}"
Style="{StaticResource GitHubToolbarButton}">
<Button.ToolTip>
<TextBlock FontSize="11" Text="{x:Static prop:Resources.NextComment}"/>
<TextBlock FontSize="11" Text="{x:Static ghfvs:Resources.NextComment}"/>
</Button.ToolTip>
<Canvas Width="16" Height="16">

Просмотреть файл

@ -3,10 +3,10 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:ui="clr-namespace:GitHub.UI;assembly=GitHub.UI"
xmlns:vsshell="clr-namespace:Microsoft.VisualStudio.Shell;assembly=Microsoft.VisualStudio.Shell.10.0"
xmlns:local="clr-namespace:GitHub.InlineReviews.Views"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
mc:Ignorable="d"
d:DesignHeight="20" d:DesignWidth="60">
@ -53,7 +53,7 @@
</StackPanel>
</Button>
<Grid.ToolTip>
<TextBlock VerticalAlignment="Center" Text="{x:Static prop:Resources.ViewCheckoutOrCreateAPullRequest}"/>
<TextBlock VerticalAlignment="Center" Text="{x:Static ghfvs:Resources.ViewCheckoutOrCreateAPullRequest}"/>
</Grid.ToolTip>
</Grid>

Просмотреть файл

@ -0,0 +1,27 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
<RootNamespace>GitHub</RootNamespace>
</PropertyGroup>
<Import Project="$(SolutionDir)\src\common\signing.props" />
<ItemGroup>
<Reference Include="System.Xaml" />
</ItemGroup>
<ItemGroup>
<Compile Update="Resources.Designer.cs">
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Resources.resx">
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<Generator>PublicResXFileCodeGenerator</Generator>
</EmbeddedResource>
</ItemGroup>
</Project>

Просмотреть файл

@ -0,0 +1,3 @@
using System.Windows.Markup;
[assembly: XmlnsDefinition("https://github.com/github/VisualStudio", "GitHub")]

Просмотреть файл

@ -8,7 +8,7 @@
// </auto-generated>
//------------------------------------------------------------------------------
namespace GitHub.VisualStudio.UI {
namespace GitHub {
using System;
@ -39,7 +39,7 @@ namespace GitHub.VisualStudio.UI {
public static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GitHub.VisualStudio.UI.Resources", typeof(Resources).Assembly);
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GitHub.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
@ -60,6 +60,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to add.
/// </summary>
public static string AddedFileStatus {
get {
return ResourceManager.GetString("AddedFileStatus", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Add review comment.
/// </summary>
@ -96,6 +105,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Approved.
/// </summary>
public static string Approved {
get {
return ResourceManager.GetString("Approved", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Assignee.
/// </summary>
@ -177,6 +195,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Select a containing folder for your new repository..
/// </summary>
public static string BrowseForDirectory {
get {
return ResourceManager.GetString("BrowseForDirectory", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Browse.
/// </summary>
@ -204,6 +231,24 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Are you sure you want to cancel this review? You will lose all your pending comments..
/// </summary>
public static string CancelPendingReviewConfirmation {
get {
return ResourceManager.GetString("CancelPendingReviewConfirmation", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Cancel Review.
/// </summary>
public static string CancelPendingReviewConfirmationCaption {
get {
return ResourceManager.GetString("CancelPendingReviewConfirmationCaption", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Changes ({0}).
/// </summary>
@ -222,6 +267,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Changes Requested.
/// </summary>
public static string ChangesRequested {
get {
return ResourceManager.GetString("ChangesRequested", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Clone.
/// </summary>
@ -231,6 +285,24 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Clone a Repository.
/// </summary>
public static string CloneTitle {
get {
return ResourceManager.GetString("CloneTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Commented.
/// </summary>
public static string Commented {
get {
return ResourceManager.GetString("Commented", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Comment only.
/// </summary>
@ -267,6 +339,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Could not connect to github.com.
/// </summary>
public static string CouldNotConnectToGitHub {
get {
return ResourceManager.GetString("CouldNotConnectToGitHub", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Could not connect to github.com.
/// </summary>
@ -285,6 +366,18 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Couldn&apos;t find Git.exe on PATH.
///
///Please install Git for Windows from:
///https://git-scm.com/download/win.
/// </summary>
public static string CouldntFindGitOnPath {
get {
return ResourceManager.GetString("CouldntFindGitOnPath", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Create an account.
/// </summary>
@ -303,6 +396,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Create a GitHub Gist.
/// </summary>
public static string CreateGistTitle {
get {
return ResourceManager.GetString("CreateGistTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Create.
/// </summary>
@ -330,6 +432,42 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Create a {0} Repository.
/// </summary>
public static string CreateTitle {
get {
return ResourceManager.GetString("CreateTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} day ago.
/// </summary>
public static string day {
get {
return ResourceManager.GetString("day", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} days ago.
/// </summary>
public static string days {
get {
return ResourceManager.GetString("days", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to GistFromVisualStudio.cs.
/// </summary>
public static string DefaultGistFileName {
get {
return ResourceManager.GetString("DefaultGistFileName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Are you sure you want to delete this comment?.
/// </summary>
@ -366,6 +504,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to The destination already exists..
/// </summary>
public static string DestinationAlreadyExists {
get {
return ResourceManager.GetString("DestinationAlreadyExists", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Please open the repository &apos;{0}&apos; and try again.
/// </summary>
@ -420,6 +567,33 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Please enter an Enterprise URL.
/// </summary>
public static string EnterpriseUrlValidatorEmpty {
get {
return ResourceManager.GetString("EnterpriseUrlValidatorEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Please enter a valid Enterprise URL.
/// </summary>
public static string EnterpriseUrlValidatorInvalid {
get {
return ResourceManager.GetString("EnterpriseUrlValidatorInvalid", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Not an Enterprise server. Please enter an Enterprise URL.
/// </summary>
public static string EnterpriseUrlValidatorNotAGitHubHost {
get {
return ResourceManager.GetString("EnterpriseUrlValidatorNotAGitHubHost", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Could not copy to the clipboard. Please try again..
/// </summary>
@ -474,6 +648,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to fork.
/// </summary>
public static string Fork {
get {
return ResourceManager.GetString("Fork", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Fork.
/// </summary>
@ -492,6 +675,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Fork Repository.
/// </summary>
public static string ForkRepositoryTitle {
get {
return ResourceManager.GetString("ForkRepositoryTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Fork the repository.
/// </summary>
@ -555,6 +747,24 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} hour ago.
/// </summary>
public static string hour {
get {
return ResourceManager.GetString("hour", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} hours ago.
/// </summary>
public static string hours {
get {
return ResourceManager.GetString("hours", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Git ignore.
/// </summary>
@ -564,6 +774,24 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to InProgress.
/// </summary>
public static string InProgress {
get {
return ResourceManager.GetString("InProgress", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [invalid].
/// </summary>
public static string InvalidBranchName {
get {
return ResourceManager.GetString("InvalidBranchName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Issues.
/// </summary>
@ -573,6 +801,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to just now.
/// </summary>
public static string JustNow {
get {
return ResourceManager.GetString("JustNow", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Learn more.
/// </summary>
@ -636,6 +873,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Make sure to use your password and not a Personal Access token to sign in..
/// </summary>
public static string LoginFailedForbiddenMessage {
get {
return ResourceManager.GetString("LoginFailedForbiddenMessage", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Check your username and password, then try again.
/// </summary>
@ -663,6 +909,24 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Connect To GitHub.
/// </summary>
public static string LoginTitle {
get {
return ResourceManager.GetString("LoginTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Logout Required.
/// </summary>
public static string LogoutRequired {
get {
return ResourceManager.GetString("LogoutRequired", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Private Repository.
/// </summary>
@ -681,6 +945,51 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} minute ago.
/// </summary>
public static string minute {
get {
return ResourceManager.GetString("minute", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} minutes ago.
/// </summary>
public static string minutes {
get {
return ResourceManager.GetString("minutes", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} month ago.
/// </summary>
public static string month {
get {
return ResourceManager.GetString("month", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} months ago.
/// </summary>
public static string months {
get {
return ResourceManager.GetString("months", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to You must pull before you can push.
/// </summary>
public static string MustPullBeforePush {
get {
return ResourceManager.GetString("MustPullBeforePush", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Name.
/// </summary>
@ -690,6 +999,33 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Checkout PR branch before navigating to Editor.
/// </summary>
public static string NavigateToEditorNotCheckedOutInfoMessage {
get {
return ResourceManager.GetString("NavigateToEditorNotCheckedOutInfoMessage", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Press Enter to navigate to Editor (PR branch must be checked out).
/// </summary>
public static string NavigateToEditorNotCheckedOutStatusMessage {
get {
return ResourceManager.GetString("NavigateToEditorNotCheckedOutStatusMessage", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Press Enter to navigate to Editor.
/// </summary>
public static string NavigateToEditorStatusMessage {
get {
return ResourceManager.GetString("NavigateToEditorStatusMessage", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Next Comment.
/// </summary>
@ -708,6 +1044,33 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to No commits to pull.
/// </summary>
public static string NoCommitsToPull {
get {
return ResourceManager.GetString("NoCommitsToPull", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to No commits to push.
/// </summary>
public static string NoCommitsToPush {
get {
return ResourceManager.GetString("NoCommitsToPush", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to *No description provided.*.
/// </summary>
public static string NoDescriptionProvidedMarkdown {
get {
return ResourceManager.GetString("NoDescriptionProvidedMarkdown", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Couldn&apos;t a find a GitHub URL in clipboard.
/// </summary>
@ -960,6 +1323,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Please enter your password.
/// </summary>
public static string PasswordValidatorEmpty {
get {
return ResourceManager.GetString("PasswordValidatorEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Path.
/// </summary>
@ -978,6 +1350,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Pull Request for branch **{0}** created successfully at [{1}]({2}).
/// </summary>
public static string PRCreatedUpstream {
get {
return ResourceManager.GetString("PRCreatedUpstream", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Previous Comment.
/// </summary>
@ -1014,6 +1395,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Publish repository.
/// </summary>
public static string PublishTitle {
get {
return ResourceManager.GetString("PublishTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Publish to GitHub.
/// </summary>
@ -1023,6 +1413,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Publish repository to {0}.
/// </summary>
public static string PublishToTitle {
get {
return ResourceManager.GetString("PublishToTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Pull.
/// </summary>
@ -1032,6 +1431,60 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Please enter a title for the Pull Request.
/// </summary>
public static string PullRequestCreationTitleValidatorEmpty {
get {
return ResourceManager.GetString("PullRequestCreationTitleValidatorEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Checkout {0}.
/// </summary>
public static string PullRequestDetailsCheckout {
get {
return ResourceManager.GetString("PullRequestDetailsCheckout", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Checkout to {0}.
/// </summary>
public static string PullRequestDetailsCheckoutTo {
get {
return ResourceManager.GetString("PullRequestDetailsCheckoutTo", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Pull from {0} branch {1}.
/// </summary>
public static string PullRequestDetailsPullToolTip {
get {
return ResourceManager.GetString("PullRequestDetailsPullToolTip", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Push to {0} branch {1}.
/// </summary>
public static string PullRequestDetailsPushToolTip {
get {
return ResourceManager.GetString("PullRequestDetailsPushToolTip", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Pull Request.
/// </summary>
public static string PullRequestNavigationItemText {
get {
return ResourceManager.GetString("PullRequestNavigationItemText", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Pull requests let you tell others about changes you&apos;ve pushed to a repository on GitHub.
/// </summary>
@ -1050,6 +1503,24 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Source and target branch cannot be the same.
/// </summary>
public static string PullRequestSourceAndTargetBranchTheSame {
get {
return ResourceManager.GetString("PullRequestSourceAndTargetBranchTheSame", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Source branch doesn&apos;t exist remotely, have you pushed it?.
/// </summary>
public static string PullRequestSourceBranchDoesNotExist {
get {
return ResourceManager.GetString("PullRequestSourceBranchDoesNotExist", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Pulse.
/// </summary>
@ -1068,6 +1539,24 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to remote.
/// </summary>
public static string Remote {
get {
return ResourceManager.GetString("Remote", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to rename.
/// </summary>
public static string RenamedFileStatus {
get {
return ResourceManager.GetString("RenamedFileStatus", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to This repository does not have a remote. Fill out the form to publish it to GitHub..
/// </summary>
@ -1086,6 +1575,105 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to No selected repository..
/// </summary>
public static string RepositoryCloneFailedNoSelectedRepo {
get {
return ResourceManager.GetString("RepositoryCloneFailedNoSelectedRepo", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Please enter a repository path.
/// </summary>
public static string RepositoryCreationClonePathEmpty {
get {
return ResourceManager.GetString("RepositoryCreationClonePathEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Please enter a valid path.
/// </summary>
public static string RepositoryCreationClonePathInvalid {
get {
return ResourceManager.GetString("RepositoryCreationClonePathInvalid", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Path contains invalid characters.
/// </summary>
public static string RepositoryCreationClonePathInvalidCharacters {
get {
return ResourceManager.GetString("RepositoryCreationClonePathInvalidCharacters", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Path too long.
/// </summary>
public static string RepositoryCreationClonePathTooLong {
get {
return ResourceManager.GetString("RepositoryCreationClonePathTooLong", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Repository &apos;{0}/{1}&apos; already exists..
/// </summary>
public static string RepositoryCreationFailedAlreadyExists {
get {
return ResourceManager.GetString("RepositoryCreationFailedAlreadyExists", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Change the repository name or select a different account and try again..
/// </summary>
public static string RepositoryCreationFailedAlreadyExistsMessage {
get {
return ResourceManager.GetString("RepositoryCreationFailedAlreadyExistsMessage", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Exceeded private repositories quota..
/// </summary>
public static string RepositoryCreationFailedQuota {
get {
return ResourceManager.GetString("RepositoryCreationFailedQuota", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Repository with same name already exists at this location.
/// </summary>
public static string RepositoryNameValidatorAlreadyExists {
get {
return ResourceManager.GetString("RepositoryNameValidatorAlreadyExists", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Please enter a repository name.
/// </summary>
public static string RepositoryNameValidatorEmpty {
get {
return ResourceManager.GetString("RepositoryNameValidatorEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Repository name must be fewer than 100 characters.
/// </summary>
public static string RepositoryNameValidatorTooLong {
get {
return ResourceManager.GetString("RepositoryNameValidatorTooLong", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Repository created successfully..
/// </summary>
@ -1140,6 +1728,33 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Will be created as {0}.
/// </summary>
public static string SafeRepositoryNameWarning {
get {
return ResourceManager.GetString("SafeRepositoryNameWarning", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} second ago.
/// </summary>
public static string second {
get {
return ResourceManager.GetString("second", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} seconds ago.
/// </summary>
public static string seconds {
get {
return ResourceManager.GetString("seconds", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Select Fork.
/// </summary>
@ -1203,6 +1818,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to The source repository is no longer available..
/// </summary>
public static string SourceRepositoryNoLongerAvailable {
get {
return ResourceManager.GetString("SourceRepositoryNoLongerAvailable", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Start a review.
/// </summary>
@ -1221,6 +1845,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Switch Origin.
/// </summary>
public static string SwitchOriginTitle {
get {
return ResourceManager.GetString("SwitchOriginTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Switch to List View.
/// </summary>
@ -1248,6 +1881,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Sync {0} submodules.
/// </summary>
public static string SyncSubmodules {
get {
return ResourceManager.GetString("SyncSubmodules", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Welcome to GitHub for Visual Studio! Why not take a look at our [training](show-training) or [documentation](show-docs)?
///
@ -1304,6 +1946,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Open the two-factor authentication app on your device to view your authentication code..
/// </summary>
public static string TwoFactorApp {
get {
return ResourceManager.GetString("TwoFactorApp", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Two-factor authentication.
/// </summary>
@ -1313,6 +1964,33 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to We sent you a message via SMS with your authentication code..
/// </summary>
public static string TwoFactorSms {
get {
return ResourceManager.GetString("TwoFactorSms", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Two-Factor authentication required.
/// </summary>
public static string TwoFactorTitle {
get {
return ResourceManager.GetString("TwoFactorTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Enter a sign in authentication code here.
/// </summary>
public static string TwoFactorUnknown {
get {
return ResourceManager.GetString("TwoFactorUnknown", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Couldn&apos;t open from &apos;{0}&apos;. Only URLs that link to repository files are currently supported..
/// </summary>
@ -1358,6 +2036,24 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Please enter your username or email address.
/// </summary>
public static string UsernameOrEmailValidatorEmpty {
get {
return ResourceManager.GetString("UsernameOrEmailValidatorEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Username or email address must not have spaces.
/// </summary>
public static string UsernameOrEmailValidatorSpaces {
get {
return ResourceManager.GetString("UsernameOrEmailValidatorSpaces", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Verify.
/// </summary>
@ -1412,6 +2108,15 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to Cannot checkout as your working directory has uncommitted changes..
/// </summary>
public static string WorkingDirectoryHasUncommittedCHanges {
get {
return ResourceManager.GetString("WorkingDirectoryHasUncommittedCHanges", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to wrote.
/// </summary>
@ -1421,6 +2126,24 @@ namespace GitHub.VisualStudio.UI {
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} year ago.
/// </summary>
public static string year {
get {
return ResourceManager.GetString("year", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} years ago.
/// </summary>
public static string years {
get {
return ResourceManager.GetString("years", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to You must commit and push your changes to add a comment here..
/// </summary>

Просмотреть файл

@ -117,6 +117,261 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="BrowseForDirectory" xml:space="preserve">
<value>Select a containing folder for your new repository.</value>
</data>
<data name="CloneTitle" xml:space="preserve">
<value>Clone a Repository</value>
</data>
<data name="CouldNotConnectToGitHub" xml:space="preserve">
<value>Could not connect to github.com</value>
</data>
<data name="CreateGistTitle" xml:space="preserve">
<value>Create a GitHub Gist</value>
</data>
<data name="CreateTitle" xml:space="preserve">
<value>Create a {0} Repository</value>
</data>
<data name="DefaultGistFileName" xml:space="preserve">
<value>GistFromVisualStudio.cs</value>
</data>
<data name="EnterpriseUrlValidatorEmpty" xml:space="preserve">
<value>Please enter an Enterprise URL</value>
</data>
<data name="EnterpriseUrlValidatorInvalid" xml:space="preserve">
<value>Please enter a valid Enterprise URL</value>
</data>
<data name="EnterpriseUrlValidatorNotAGitHubHost" xml:space="preserve">
<value>Not an Enterprise server. Please enter an Enterprise URL</value>
</data>
<data name="ForgotPasswordLink" xml:space="preserve">
<value>(forgot your password?)</value>
</data>
<data name="LoginFailedForbiddenMessage" xml:space="preserve">
<value>Make sure to use your password and not a Personal Access token to sign in.</value>
</data>
<data name="LoginFailedMessage" xml:space="preserve">
<value>Check your username and password, then try again</value>
</data>
<data name="LoginFailedText" xml:space="preserve">
<value>Sign in failed.</value>
</data>
<data name="LoginTitle" xml:space="preserve">
<value>Connect To GitHub</value>
</data>
<data name="PasswordValidatorEmpty" xml:space="preserve">
<value>Please enter your password</value>
</data>
<data name="PRCreatedUpstream" xml:space="preserve">
<value>Pull Request for branch **{0}** created successfully at [{1}]({2})</value>
</data>
<data name="PublishTitle" xml:space="preserve">
<value>Publish repository</value>
</data>
<data name="PublishToTitle" xml:space="preserve">
<value>Publish repository to {0}</value>
</data>
<data name="PullRequestCreationTitleValidatorEmpty" xml:space="preserve">
<value>Please enter a title for the Pull Request</value>
</data>
<data name="PullRequestSourceAndTargetBranchTheSame" xml:space="preserve">
<value>Source and target branch cannot be the same</value>
</data>
<data name="PullRequestSourceBranchDoesNotExist" xml:space="preserve">
<value>Source branch doesn't exist remotely, have you pushed it?</value>
</data>
<data name="RepositoryCloneFailedNoSelectedRepo" xml:space="preserve">
<value>No selected repository.</value>
</data>
<data name="RepositoryCreationClonePathEmpty" xml:space="preserve">
<value>Please enter a repository path</value>
</data>
<data name="RepositoryCreationClonePathInvalid" xml:space="preserve">
<value>Please enter a valid path</value>
</data>
<data name="RepositoryCreationClonePathInvalidCharacters" xml:space="preserve">
<value>Path contains invalid characters</value>
</data>
<data name="RepositoryCreationClonePathTooLong" xml:space="preserve">
<value>Path too long</value>
</data>
<data name="RepositoryCreationFailedAlreadyExists" xml:space="preserve">
<value>Repository '{0}/{1}' already exists.</value>
</data>
<data name="RepositoryCreationFailedAlreadyExistsMessage" xml:space="preserve">
<value>Change the repository name or select a different account and try again.</value>
</data>
<data name="RepositoryCreationFailedQuota" xml:space="preserve">
<value>Exceeded private repositories quota.</value>
</data>
<data name="RepositoryNameValidatorAlreadyExists" xml:space="preserve">
<value>Repository with same name already exists at this location</value>
</data>
<data name="RepositoryNameValidatorEmpty" xml:space="preserve">
<value>Please enter a repository name</value>
</data>
<data name="RepositoryNameValidatorTooLong" xml:space="preserve">
<value>Repository name must be fewer than 100 characters</value>
</data>
<data name="SafeRepositoryNameWarning" xml:space="preserve">
<value>Will be created as {0}</value>
</data>
<data name="TwoFactorApp" xml:space="preserve">
<value>Open the two-factor authentication app on your device to view your authentication code.</value>
</data>
<data name="TwoFactorSms" xml:space="preserve">
<value>We sent you a message via SMS with your authentication code.</value>
</data>
<data name="TwoFactorTitle" xml:space="preserve">
<value>Two-Factor authentication required</value>
</data>
<data name="TwoFactorUnknown" xml:space="preserve">
<value>Enter a sign in authentication code here</value>
</data>
<data name="UsernameOrEmailValidatorEmpty" xml:space="preserve">
<value>Please enter your username or email address</value>
</data>
<data name="UsernameOrEmailValidatorSpaces" xml:space="preserve">
<value>Username or email address must not have spaces</value>
</data>
<data name="PullRequestsNavigationItemText" xml:space="preserve">
<value>Pull Requests</value>
</data>
<data name="PullRequestNavigationItemText" xml:space="preserve">
<value>Pull Request</value>
</data>
<data name="AddedFileStatus" xml:space="preserve">
<value>add</value>
</data>
<data name="Fork" xml:space="preserve">
<value>fork</value>
</data>
<data name="InvalidBranchName" xml:space="preserve">
<value>[invalid]</value>
</data>
<data name="MustPullBeforePush" xml:space="preserve">
<value>You must pull before you can push</value>
</data>
<data name="NoCommitsToPull" xml:space="preserve">
<value>No commits to pull</value>
</data>
<data name="NoCommitsToPush" xml:space="preserve">
<value>No commits to push</value>
</data>
<data name="NoDescriptionProvidedMarkdown" xml:space="preserve">
<value>*No description provided.*</value>
</data>
<data name="PullRequestDetailsCheckout" xml:space="preserve">
<value>Checkout {0}</value>
</data>
<data name="PullRequestDetailsCheckoutTo" xml:space="preserve">
<value>Checkout to {0}</value>
</data>
<data name="PullRequestDetailsPullToolTip" xml:space="preserve">
<value>Pull from {0} branch {1}</value>
</data>
<data name="PullRequestDetailsPushToolTip" xml:space="preserve">
<value>Push to {0} branch {1}</value>
</data>
<data name="Remote" xml:space="preserve">
<value>remote</value>
</data>
<data name="RenamedFileStatus" xml:space="preserve">
<value>rename</value>
</data>
<data name="SourceRepositoryNoLongerAvailable" xml:space="preserve">
<value>The source repository is no longer available.</value>
</data>
<data name="WorkingDirectoryHasUncommittedCHanges" xml:space="preserve">
<value>Cannot checkout as your working directory has uncommitted changes.</value>
</data>
<data name="SyncSubmodules" xml:space="preserve">
<value>Sync {0} submodules</value>
</data>
<data name="CouldntFindGitOnPath" xml:space="preserve">
<value>Couldn't find Git.exe on PATH.
Please install Git for Windows from:
https://git-scm.com/download/win</value>
</data>
<data name="Approved" xml:space="preserve">
<value>Approved</value>
</data>
<data name="ChangesRequested" xml:space="preserve">
<value>Changes Requested</value>
</data>
<data name="Commented" xml:space="preserve">
<value>Commented</value>
</data>
<data name="InProgress" xml:space="preserve">
<value>InProgress</value>
</data>
<data name="NavigateToEditorStatusMessage" xml:space="preserve">
<value>Press Enter to navigate to Editor</value>
</data>
<data name="NavigateToEditorNotCheckedOutInfoMessage" xml:space="preserve">
<value>Checkout PR branch before navigating to Editor</value>
</data>
<data name="NavigateToEditorNotCheckedOutStatusMessage" xml:space="preserve">
<value>Press Enter to navigate to Editor (PR branch must be checked out)</value>
</data>
<data name="ForkRepositoryTitle" xml:space="preserve">
<value>Fork Repository</value>
</data>
<data name="SwitchOriginTitle" xml:space="preserve">
<value>Switch Origin</value>
</data>
<data name="CancelPendingReviewConfirmation" xml:space="preserve">
<value>Are you sure you want to cancel this review? You will lose all your pending comments.</value>
</data>
<data name="CancelPendingReviewConfirmationCaption" xml:space="preserve">
<value>Cancel Review</value>
</data>
<data name="DestinationAlreadyExists" xml:space="preserve">
<value>The destination already exists.</value>
</data>
<data name="LogoutRequired" xml:space="preserve">
<value>Logout Required</value>
</data>
<data name="day" xml:space="preserve">
<value>{0:N0} day ago</value>
</data>
<data name="days" xml:space="preserve">
<value>{0:N0} days ago</value>
</data>
<data name="hour" xml:space="preserve">
<value>{0:N0} hour ago</value>
</data>
<data name="hours" xml:space="preserve">
<value>{0:N0} hours ago</value>
</data>
<data name="JustNow" xml:space="preserve">
<value>just now</value>
</data>
<data name="minute" xml:space="preserve">
<value>{0:N0} minute ago</value>
</data>
<data name="minutes" xml:space="preserve">
<value>{0:N0} minutes ago</value>
</data>
<data name="month" xml:space="preserve">
<value>{0:N0} month ago</value>
</data>
<data name="months" xml:space="preserve">
<value>{0:N0} months ago</value>
</data>
<data name="second" xml:space="preserve">
<value>{0:N0} second ago</value>
</data>
<data name="seconds" xml:space="preserve">
<value>{0:N0} seconds ago</value>
</data>
<data name="year" xml:space="preserve">
<value>{0:N0} year ago</value>
</data>
<data name="years" xml:space="preserve">
<value>{0:N0} years ago</value>
</data>
<data name="authenticationFailedLabelContent" xml:space="preserve">
<value>Invalid authentication code</value>
</data>
@ -189,9 +444,6 @@
<data name="PulseNavigationItemText" xml:space="preserve">
<value>Pulse</value>
</data>
<data name="PullRequestsNavigationItemText" xml:space="preserve">
<value>Pull Requests</value>
</data>
<data name="pathText" xml:space="preserve">
<value>Path</value>
</data>
@ -255,9 +507,6 @@
<data name="makePrivateContent" xml:space="preserve">
<value>Private Repository</value>
</data>
<data name="LoginFailedText" xml:space="preserve">
<value>Sign in failed.</value>
</data>
<data name="localPathText" xml:space="preserve">
<value>Local path</value>
</data>
@ -291,15 +540,9 @@
<data name="PasswordPrompt" xml:space="preserve">
<value>Password</value>
</data>
<data name="LoginFailedMessage" xml:space="preserve">
<value>Check your username and password, then try again</value>
</data>
<data name="LoginLink" xml:space="preserve">
<value>Sign in</value>
</data>
<data name="ForgotPasswordLink" xml:space="preserve">
<value>(forgot your password?)</value>
</data>
<data name="dotComConnectionFailedMessageMessage" xml:space="preserve">
<value>Please check your internet connection and try again.</value>
</data>

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -228,6 +228,10 @@
<Project>{8d73575a-a89f-47cc-b153-b47dd06837f0}</Project>
<Name>GitHub.Logging</Name>
</ProjectReference>
<ProjectReference Include="..\GitHub.Resources\GitHub.Resources.csproj">
<Project>{54e8d71a-aabb-4698-95fe-7f11612b8e59}</Project>
<Name>GitHub.Resources</Name>
</ProjectReference>
<ProjectReference Include="..\GitHub.VisualStudio.UI\GitHub.VisualStudio.UI.csproj">
<Project>{d1dfbb0c-b570-4302-8f1e-2e3a19c41961}</Project>
<Name>GitHub.VisualStudio.UI</Name>

Просмотреть файл

@ -293,6 +293,10 @@
<Project>{8d73575a-a89f-47cc-b153-b47dd06837f0}</Project>
<Name>GitHub.Logging</Name>
</ProjectReference>
<ProjectReference Include="..\GitHub.Resources\GitHub.Resources.csproj">
<Project>{54e8d71a-aabb-4698-95fe-7f11612b8e59}</Project>
<Name>GitHub.Resources</Name>
</ProjectReference>
<ProjectReference Include="..\GitHub.VisualStudio.UI\GitHub.VisualStudio.UI.csproj">
<Project>{d1dfbb0c-b570-4302-8f1e-2e3a19c41961}</Project>
<Name>GitHub.VisualStudio.UI</Name>

Просмотреть файл

@ -30,6 +30,7 @@
<ItemGroup>
<ProjectReference Include="..\GitHub.Exports\GitHub.Exports.csproj" />
<ProjectReference Include="..\GitHub.Resources\GitHub.Resources.csproj" />
</ItemGroup>
<ItemGroup>

180
src/GitHub.UI/Resources.Designer.cs сгенерированный
Просмотреть файл

@ -1,180 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace GitHub.UI {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GitHub.UI.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} day ago.
/// </summary>
internal static string day {
get {
return ResourceManager.GetString("day", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} days ago.
/// </summary>
internal static string days {
get {
return ResourceManager.GetString("days", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} hour ago.
/// </summary>
internal static string hour {
get {
return ResourceManager.GetString("hour", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} hours ago.
/// </summary>
internal static string hours {
get {
return ResourceManager.GetString("hours", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to just now.
/// </summary>
internal static string JustNow {
get {
return ResourceManager.GetString("JustNow", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} minute ago.
/// </summary>
internal static string minute {
get {
return ResourceManager.GetString("minute", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} minutes ago.
/// </summary>
internal static string minutes {
get {
return ResourceManager.GetString("minutes", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} month ago.
/// </summary>
internal static string month {
get {
return ResourceManager.GetString("month", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} months ago.
/// </summary>
internal static string months {
get {
return ResourceManager.GetString("months", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} second ago.
/// </summary>
internal static string second {
get {
return ResourceManager.GetString("second", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} seconds ago.
/// </summary>
internal static string seconds {
get {
return ResourceManager.GetString("seconds", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} year ago.
/// </summary>
internal static string year {
get {
return ResourceManager.GetString("year", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0:N0} years ago.
/// </summary>
internal static string years {
get {
return ResourceManager.GetString("years", resourceCulture);
}
}
}
}

Просмотреть файл

@ -1,159 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="day" xml:space="preserve">
<value>{0:N0} day ago</value>
</data>
<data name="days" xml:space="preserve">
<value>{0:N0} days ago</value>
</data>
<data name="hour" xml:space="preserve">
<value>{0:N0} hour ago</value>
</data>
<data name="hours" xml:space="preserve">
<value>{0:N0} hours ago</value>
</data>
<data name="JustNow" xml:space="preserve">
<value>just now</value>
</data>
<data name="minute" xml:space="preserve">
<value>{0:N0} minute ago</value>
</data>
<data name="minutes" xml:space="preserve">
<value>{0:N0} minutes ago</value>
</data>
<data name="month" xml:space="preserve">
<value>{0:N0} month ago</value>
</data>
<data name="months" xml:space="preserve">
<value>{0:N0} months ago</value>
</data>
<data name="second" xml:space="preserve">
<value>{0:N0} second ago</value>
</data>
<data name="seconds" xml:space="preserve">
<value>{0:N0} seconds ago</value>
</data>
<data name="year" xml:space="preserve">
<value>{0:N0} year ago</value>
</data>
<data name="years" xml:space="preserve">
<value>{0:N0} years ago</value>
</data>
</root>

Просмотреть файл

@ -1,156 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string"/>
<xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="mimetype" type="xsd:string"/>
<xsd:attribute ref="xml:space"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string"/>
<xsd:attribute name="name" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1"/>
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3"/>
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4"/>
<xsd:attribute ref="xml:space"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="day" xml:space="preserve">
<value>{0:N0} 天前</value>
</data>
<data name="days" xml:space="preserve">
<value>{0:N0} 天前</value>
</data>
<data name="hour" xml:space="preserve">
<value>{0:N0} 小时前</value>
</data>
<data name="hours" xml:space="preserve">
<value>{0:N0} 小时前</value>
</data>
<data name="minute" xml:space="preserve">
<value>{0:N0} 分钟前</value>
</data>
<data name="minutes" xml:space="preserve">
<value>{0:N0} 分钟前</value>
</data>
<data name="month" xml:space="preserve">
<value>{0:N0} 月前</value>
</data>
<data name="months" xml:space="preserve">
<value>{0:N0} 月前</value>
</data>
<data name="second" xml:space="preserve">
<value>{0:N0} 秒前</value>
</data>
<data name="seconds" xml:space="preserve">
<value>{0:N0} 秒前</value>
</data>
<data name="year" xml:space="preserve">
<value>{0:N0} 年前</value>
</data>
<data name="years" xml:space="preserve">
<value>{0:N0} 年前</value>
</data>
</root>

Просмотреть файл

@ -25,19 +25,4 @@
<PackageReference Include="Markdig.Signed" version="0.13.0" />
<PackageReference Include="Markdig.Wpf.Signed" version="0.2.1" />
</ItemGroup>
<ItemGroup>
<Compile Update="Resources.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Resources.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
</Project>

Просмотреть файл

@ -5,7 +5,6 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:local="clr-namespace:GitHub.VisualStudio.UI.Views"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI"
mc:Ignorable="d"
KeyboardNavigation.TabNavigation="Local"
DataContext="{Binding ViewModel}"
@ -153,16 +152,16 @@
<WrapPanel Orientation="Horizontal"
Margin="6,0,0,6"
Visibility="{Binding SectionConnection.IsLoggedIn, Converter={ghfvs:BooleanToVisibilityConverter}}">
<Button Style="{StaticResource ActionLinkButton}" KeyboardNavigation.TabIndex="0" x:Name="cloneLink" Command="{Binding Clone}" Content="{x:Static prop:Resources.CloneLink}"
<Button Style="{StaticResource ActionLinkButton}" KeyboardNavigation.TabIndex="0" x:Name="cloneLink" Command="{Binding Clone}" Content="{x:Static ghfvs:Resources.CloneLink}"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.CloneHyperlink}"/>
<Separator Margin="3,0,3,0" Style="{StaticResource VerticalSeparator}" />
<Button Style="{StaticResource ActionLinkButton}" KeyboardNavigation.TabIndex="1" x:Name="createLink" Click="createLink_Click" Content="{x:Static prop:Resources.CreateLink}"
<Button Style="{StaticResource ActionLinkButton}" KeyboardNavigation.TabIndex="1" x:Name="createLink" Click="createLink_Click" Content="{x:Static ghfvs:Resources.CreateLink}"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.CreateHyperlink}"/>
<Separator Margin="3,0,3,0" Style="{StaticResource VerticalSeparator}" />
<Button Style="{StaticResource ActionLinkButton}" KeyboardNavigation.TabIndex="2" x:Name="signOut" Click="signOut_Click" Content="{x:Static prop:Resources.SignOutLink}"
<Button Style="{StaticResource ActionLinkButton}" KeyboardNavigation.TabIndex="2" x:Name="signOut" Click="signOut_Click" Content="{x:Static ghfvs:Resources.SignOutLink}"
Visibility="{Binding ShowLogout, Converter={StaticResource BooleanToVisibilityConverter}}"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.SignOutHyperlink}"/>
<Button Style="{StaticResource ActionLinkButton}" KeyboardNavigation.TabIndex="2" x:Name="login" Click="login_Click" Content="{x:Static prop:Resources.LoginLink}"
<Button Style="{StaticResource ActionLinkButton}" KeyboardNavigation.TabIndex="2" x:Name="login" Click="login_Click" Content="{x:Static ghfvs:Resources.LoginLink}"
Visibility="{Binding ShowLogin, Converter={StaticResource BooleanToVisibilityConverter}}"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.SignInHyperlink}"/>
</WrapPanel>
@ -210,7 +209,7 @@
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Margin="0,0,6,0">
<Run Text="{x:Static prop:Resources.nameText}"/>:
<Run Text="{x:Static ghfvs:Resources.nameText}"/>:
</TextBlock>
<TextBlock Grid.Row="0" Grid.Column="1">
<TextBlock.Text>
@ -221,7 +220,7 @@
</TextBlock.Text>
</TextBlock>
<TextBlock Grid.Row="1" Grid.Column="0" Margin="0,0,6,0">
<Run Text="{x:Static prop:Resources.pathText}"/>:
<Run Text="{x:Static ghfvs:Resources.pathText}"/>:
</TextBlock>
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Path=LocalPath}" />
</Grid>
@ -263,13 +262,13 @@
Margin="0,8,0,0"
Orientation="Horizontal">
<Button Style="{StaticResource ActionLinkButton}"
Content="{x:Static prop:Resources.Retry}"
Content="{x:Static ghfvs:Resources.Retry}"
Click="retry_Click"
Margin="0,0,8,0"
Visibility="{Binding ShowRetry, Converter={StaticResource BooleanToVisibilityConverter}}"/>
<Button Style="{StaticResource ActionLinkButton}"
Click="signOut_Click"
Content="{x:Static prop:Resources.SignOutLink}"
Content="{x:Static ghfvs:Resources.SignOutLink}"
Visibility="{Binding ShowLogout, Converter={StaticResource BooleanToVisibilityConverter}}"/>
</StackPanel>
</Grid>

Просмотреть файл

@ -4,7 +4,6 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI"
Width="Auto"
Height="auto"
Background="{DynamicResource GitHubVsToolWindowBackground}"
@ -59,6 +58,6 @@
Click="signIn_Click"
Visibility="{Binding IsLoggedIn, Converter={StaticResource BooleanToInverseVisibilityConverter}}"
Style="{StaticResource ActionLinkButton}"
Content="{x:Static prop:Resources.SignInCallToAction}" />
Content="{x:Static ghfvs:Resources.SignInCallToAction}" />
</StackPanel>
</UserControl>

Просмотреть файл

@ -4,7 +4,6 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI"
mc:Ignorable="d"
DataContext="{Binding ViewModel}" d:DesignWidth="230" d:DesignHeight="120"
KeyboardNavigation.TabNavigation="Local"
@ -66,14 +65,14 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" KeyboardNavigation.TabIndex="0" Style="{StaticResource ActionLinkButton}" HorizontalAlignment="Left" x:Name="login" Click="connect_Click" Content="{x:Static prop:Resources.LoginLink}"
<Button Grid.Column="0" KeyboardNavigation.TabIndex="0" Style="{StaticResource ActionLinkButton}" HorizontalAlignment="Left" x:Name="login" Click="connect_Click" Content="{x:Static ghfvs:Resources.LoginLink}"
Visibility="{Binding ShowLogin, Converter={StaticResource BooleanToVisibilityConverter}}"/>
<TextBlock Grid.Column="1" Margin="3,0,3,0"
Visibility="{Binding ShowLogin, Converter={StaticResource BooleanToVisibilityConverter}}" Text="{x:Static prop:Resources.orText}"
Visibility="{Binding ShowLogin, Converter={StaticResource BooleanToVisibilityConverter}}" Text="{x:Static ghfvs:Resources.orText}"
Foreground="{DynamicResource GitHubVsToolWindowText}" />
<Button Grid.Column="2" KeyboardNavigation.TabIndex="1" Style="{StaticResource ActionLinkButton}" HorizontalAlignment="Left" x:Name="signup" Click="signup_Click" Content="{x:Static prop:Resources.SignUpLink}"
<Button Grid.Column="2" KeyboardNavigation.TabIndex="1" Style="{StaticResource ActionLinkButton}" HorizontalAlignment="Left" x:Name="signup" Click="signup_Click" Content="{x:Static ghfvs:Resources.SignUpLink}"
Visibility="{Binding ShowSignup, Converter={StaticResource BooleanToVisibilityConverter}}"/>
<Button Grid.Column="3" KeyboardNavigation.TabIndex="2" HorizontalAlignment="Right" x:Name="connect" Click="connect_Click" Content="{x:Static prop:Resources.PublishToGitHubButton}"
<Button Grid.Column="3" KeyboardNavigation.TabIndex="2" HorizontalAlignment="Right" x:Name="connect" Click="connect_Click" Content="{x:Static ghfvs:Resources.PublishToGitHubButton}"
Visibility="{Binding ShowGetStarted, Converter={StaticResource BooleanToVisibilityConverter}}"/>
</Grid>

Просмотреть файл

@ -101,7 +101,7 @@ namespace GitHub.Commands
{
if (!info.Session.IsCheckedOut)
{
ShowInfoMessage(App.Resources.NavigateToEditorNotCheckedOutInfoMessage);
ShowInfoMessage(Resources.NavigateToEditorNotCheckedOutInfoMessage);
return;
}

Просмотреть файл

@ -742,14 +742,14 @@
<Project>{1a1da411-8d1f-4578-80a6-04576bea2dc5}</Project>
<Name>GitHub.App</Name>
<Private>True</Private>
<IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup;GetCopyToOutputDirectoryItems;DebugSymbolsProjectOutputGroup;SatelliteDllsProjectOutputGroup</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup;GetCopyToOutputDirectoryItems;DebugSymbolsProjectOutputGroup</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>DebugSymbolsProjectOutputGroup;</IncludeOutputGroupsInVSIXLocalOnly>
</ProjectReference>
<ProjectReference Include="..\GitHub.Exports.Reactive\GitHub.Exports.Reactive.csproj">
<Project>{e4ed0537-d1d9-44b6-9212-3096d7c3f7a1}</Project>
<Name>GitHub.Exports.Reactive</Name>
<Private>True</Private>
<IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup;GetCopyToOutputDirectoryItems;DebugSymbolsProjectOutputGroup;BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;GetCopyToOutputDirectoryItems;SatelliteDllsProjectOutputGroup</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup;GetCopyToOutputDirectoryItems;DebugSymbolsProjectOutputGroup;BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;GetCopyToOutputDirectoryItems</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>DebugSymbolsProjectOutputGroup%3b</IncludeOutputGroupsInVSIXLocalOnly>
</ProjectReference>
<ProjectReference Include="..\GitHub.Exports\GitHub.Exports.csproj">
@ -781,9 +781,15 @@
<Project>{7f5ed78b-74a3-4406-a299-70cfb5885b8b}</Project>
<Name>GitHub.InlineReviews</Name>
<Private>True</Private>
<IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup;GetCopyToOutputDirectoryItems;DebugSymbolsProjectOutputGroup;PkgdefProjectOutputGroup;SatelliteDllsProjectOutputGroup</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup;GetCopyToOutputDirectoryItems;DebugSymbolsProjectOutputGroup;PkgdefProjectOutputGroup</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>DebugSymbolsProjectOutputGroup;PkgdefProjectOutputGroup</IncludeOutputGroupsInVSIXLocalOnly>
</ProjectReference>
<ProjectReference Include="..\GitHub.Resources\GitHub.Resources.csproj">
<Project>{54e8d71a-aabb-4698-95fe-7f11612b8e59}</Project>
<Name>GitHub.Resources</Name>
<IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup;GetCopyToOutputDirectoryItems;DebugSymbolsProjectOutputGroup;SatelliteDllsProjectOutputGroup</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>DebugSymbolsProjectOutputGroup</IncludeOutputGroupsInVSIXLocalOnly>
</ProjectReference>
<ProjectReference Include="..\GitHub.Services.Vssdk\GitHub.Services.Vssdk.csproj">
<Project>{2d3d2834-33be-45ca-b3cc-12f853557d7b}</Project>
<Name>GitHub.Services.Vssdk</Name>
@ -792,7 +798,7 @@
<Project>{50e277b8-8580-487a-8f8e-5c3b9fbf0f77}</Project>
<Name>GitHub.StartPage</Name>
<Private>True</Private>
<IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup;GetCopyToOutputDirectoryItems;DebugSymbolsProjectOutputGroup;PkgdefProjectOutputGroup;SatelliteDllsProjectOutputGroup</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup;GetCopyToOutputDirectoryItems;DebugSymbolsProjectOutputGroup;PkgdefProjectOutputGroup</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>DebugSymbolsProjectOutputGroup;PkgdefProjectOutputGroup</IncludeOutputGroupsInVSIXLocalOnly>
</ProjectReference>
<ProjectReference Include="..\GitHub.TeamFoundation.14\GitHub.TeamFoundation.14.csproj">
@ -822,14 +828,14 @@
<Project>{346384dd-2445-4a28-af22-b45f3957bd89}</Project>
<Name>GitHub.UI</Name>
<Private>True</Private>
<IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup;GetCopyToOutputDirectoryItems;DebugSymbolsProjectOutputGroup;SatelliteDllsProjectOutputGroup</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup;GetCopyToOutputDirectoryItems;DebugSymbolsProjectOutputGroup</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>DebugSymbolsProjectOutputGroup;</IncludeOutputGroupsInVSIXLocalOnly>
</ProjectReference>
<ProjectReference Include="..\GitHub.VisualStudio.UI\GitHub.VisualStudio.UI.csproj">
<Project>{d1dfbb0c-b570-4302-8f1e-2e3a19c41961}</Project>
<Name>GitHub.VisualStudio.UI</Name>
<Private>True</Private>
<IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup;GetCopyToOutputDirectoryItems;DebugSymbolsProjectOutputGroup;SatelliteDllsProjectOutputGroup</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup;GetCopyToOutputDirectoryItems;DebugSymbolsProjectOutputGroup</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>DebugSymbolsProjectOutputGroup;</IncludeOutputGroupsInVSIXLocalOnly>
</ProjectReference>
</ItemGroup>

Просмотреть файл

@ -2,9 +2,9 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:local="clr-namespace:GitHub.VisualStudio.UI"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
d:DesignHeight="200"
mc:Ignorable="d">
<UserControl.Resources>
@ -70,14 +70,14 @@
Padding="6 8 6 8"
Style="{DynamicResource GroupBoxFlat}">
<GroupBox.Header>
<Run Text="{x:Static prop:Resources.Options_PrivacyTitle}" />
<Run Text="{x:Static ghfvs:Resources.Options_PrivacyTitle}" />
</GroupBox.Header>
<DockPanel>
<WrapPanel DockPanel.Dock="Top">
<CheckBox x:Name="chkMetrics" VerticalAlignment="Center" Content="{x:Static prop:Resources.Options_MetricsLabel}" />
<CheckBox x:Name="chkMetrics" VerticalAlignment="Center" Content="{x:Static ghfvs:Resources.Options_MetricsLabel}" />
</WrapPanel>
<TextBlock>
<Hyperlink ToolTip="https://visualstudio.github.com/samples.html" NavigateUri="https://visualstudio.github.com/samples.html" RequestNavigate="Hyperlink_RequestNavigate"><TextBlock Text="{x:Static prop:Resources.learnMoreLink}"/></Hyperlink>
<Hyperlink ToolTip="https://visualstudio.github.com/samples.html" NavigateUri="https://visualstudio.github.com/samples.html" RequestNavigate="Hyperlink_RequestNavigate"><TextBlock Text="{x:Static ghfvs:Resources.learnMoreLink}"/></Hyperlink>
</TextBlock>
</DockPanel>
</GroupBox>
@ -89,10 +89,10 @@
Padding="6 8 6 8"
Style="{DynamicResource GroupBoxFlat}">
<GroupBox.Header>
<Run Text="{x:Static prop:Resources.Options_DebuggingTitle}" />
<Run Text="{x:Static ghfvs:Resources.Options_DebuggingTitle}" />
</GroupBox.Header>
<DockPanel>
<CheckBox x:Name="chkEnableTraceLogging" VerticalAlignment="Center" Content="{x:Static prop:Resources.Options_EnableTraceLoggingText}" />
<CheckBox x:Name="chkEnableTraceLogging" VerticalAlignment="Center" Content="{x:Static ghfvs:Resources.Options_EnableTraceLoggingText}" />
</DockPanel>
</GroupBox>
<GroupBox
@ -103,19 +103,19 @@
Padding="6 8 6 8"
Style="{DynamicResource GroupBoxFlat}">
<GroupBox.Header>
<Run Text="{x:Static prop:Resources.Options_ExperimentalTitle}" />
<Run Text="{x:Static ghfvs:Resources.Options_ExperimentalTitle}" />
</GroupBox.Header>
<DockPanel>
<WrapPanel DockPanel.Dock="Top">
<CheckBox x:Name="chkEditorComments" VerticalAlignment="Center" Content="{x:Static prop:Resources.Options_EditorCommentsLabel}" />
<CheckBox x:Name="chkEditorComments" VerticalAlignment="Center" Content="{x:Static ghfvs:Resources.Options_EditorCommentsLabel}" />
</WrapPanel>
<WrapPanel DockPanel.Dock="Top">
<CheckBox x:Name="chkForkButton" VerticalAlignment="Center" Content="{x:Static prop:Resources.Options_ForkButtonLabel}" />
<CheckBox x:Name="chkForkButton" VerticalAlignment="Center" Content="{x:Static ghfvs:Resources.Options_ForkButtonLabel}" />
</WrapPanel>
<TextBlock DockPanel.Dock="Bottom" TextWrapping="Wrap">
<LineBreak />
<Italic>
<Run Text="{x:Static prop:Resources.Options_ExperimentalNote}" />
<Run Text="{x:Static ghfvs:Resources.Options_ExperimentalNote}" />
</Italic>
</TextBlock>
</DockPanel>

Просмотреть файл

@ -34,7 +34,7 @@
<DockPanel DockPanel.Dock="Bottom"
Margin="16">
<Label DockPanel.Dock="Left">Local Path</Label>
<Label DockPanel.Dock="Left" Content="{x:Static ghfvs:Resources.localPathText}"/>
<Button DockPanel.Dock="Right"
Command="{Binding Browse}"
Style="{DynamicResource GitHubBlueLinkButton}"

Просмотреть файл

@ -3,9 +3,9 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:markdig="clr-namespace:Markdig.Wpf;assembly=Markdig.Wpf"
xmlns:sampleData="clr-namespace:GitHub.SampleData;assembly=GitHub.App"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
xmlns:ui="https://github.com/github/VisualStudio"
VerticalAlignment="Top"
Margin="8"
@ -55,7 +55,7 @@
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ui:OcticonImage Grid.Column="0" Icon="repo_forked" Height="16" Width="16" />
<TextBlock Margin="8 0 0 0" Grid.Column="1" TextWrapping="Wrap" Text="{x:Static prop:Resources.ForkTheRepository}" />
<TextBlock Margin="8 0 0 0" Grid.Column="1" TextWrapping="Wrap" Text="{x:Static ghfvs:Resources.ForkTheRepository}" />
</Grid>
<Grid Margin="0 16 0 0">
@ -66,9 +66,9 @@
<ui:OcticonImage Grid.Column="0" Icon="home" Height="16" Width="16" />
<TextBlock Margin="8 0 0 0" Grid.Column="1" TextWrapping="Wrap">
<Run Text="{x:Static prop:Resources.UpdateYourLocalRepositoryS}"/>
<Run Text="{x:Static ghfvs:Resources.UpdateYourLocalRepositoryS}"/>
<Run Style="{DynamicResource {x:Static markdig:Styles.CodeStyleKey}}">origin</Run>
<Run Text="{x:Static prop:Resources.ToPointTo}"/>
<Run Text="{x:Static ghfvs:Resources.ToPointTo}"/>
<Hyperlink><Run Text="{Binding DestinationRepository.CloneUrl, Mode=OneWay}"/></Hyperlink>
</TextBlock>
</Grid>
@ -95,8 +95,8 @@
Visibility="{Binding Error, Converter={ui:NullToVisibilityConverter}}"
HorizontalAlignment="Left" />
<StackPanel Margin="0 8" Orientation="Horizontal" HorizontalAlignment="Right">
<Button HorizontalAlignment="Right" Padding="16 4" BorderThickness="0" Margin="0 0 4 0" Click="backButton_OnClick" Content="{x:Static prop:Resources.Back}"/>
<Button HorizontalAlignment="Right" Padding="16 4" BorderThickness="0" Click="repoForkButton_OnClick" Content="{x:Static prop:Resources.ForkRepository}"/>
<Button HorizontalAlignment="Right" Padding="16 4" BorderThickness="0" Margin="0 0 4 0" Click="backButton_OnClick" Content="{x:Static ghfvs:Resources.Back}"/>
<Button HorizontalAlignment="Right" Padding="16 4" BorderThickness="0" Click="repoForkButton_OnClick" Content="{x:Static ghfvs:Resources.ForkRepository}"/>
</StackPanel>
</StackPanel>
</StackPanel>

Просмотреть файл

@ -4,7 +4,6 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:GitHub.VisualStudio.Views.Dialog"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
xmlns:ghfvs="https://github.com/github/VisualStudio"
mc:Ignorable="d"
d:DesignWidth="414"
@ -28,7 +27,7 @@
x:Name="createGistButton"
HorizontalAlignment="Center"
Icon="check">
<TextBlock Text="{x:Static prop:Resources.CreateLink}"/>
<TextBlock Text="{x:Static ghfvs:Resources.CreateLink}"/>
</ghfvs:OcticonCircleButton>
<StackPanel>
@ -70,10 +69,10 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" Target="{Binding ElementName=nameTextBox}" Content="{x:Static prop:Resources.fileNameText}"/>
<Label Grid.Column="0" Grid.Row="0" Target="{Binding ElementName=nameTextBox}" Content="{x:Static ghfvs:Resources.fileNameText}"/>
<ghfvs:PromptTextBox x:Name="fileNameTextBox" Grid.Column="1" Grid.Row="0" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.GistFileNameTextBox}" />
<Label Grid.Column="0" Grid.Row="1" Target="{Binding ElementName=descriptionTextBox}" Content="{x:Static prop:Resources.Description}"/>
<Label Grid.Column="0" Grid.Row="1" Target="{Binding ElementName=descriptionTextBox}" Content="{x:Static ghfvs:Resources.Description}"/>
<ghfvs:PromptTextBox x:Name="descriptionTextBox" Grid.Column="1" Grid.Row="1" SpellCheck.IsEnabled="True" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.GistDescriptionTextBlock}"/>
<StackPanel x:Name="accountStackPanel" Grid.Column="1" Grid.Row="2" Orientation="Horizontal">
@ -90,7 +89,7 @@
x:Name="makePrivate"
Grid.Column="1"
Grid.Row="3"
Content="{x:Static prop:Resources.makePrivateGist}"
Content="{x:Static ghfvs:Resources.makePrivateGist}"
Style="{DynamicResource BlueRoundedCheckBox}"
Padding="8,4,0,4"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.PrivateGistCheckBox}" />
@ -100,8 +99,8 @@
Grid.ColumnSpan="2"
Grid.Row="4"
Margin="0,10"
Message="{x:Static prop:Resources.gistCreationFailedMessage}">
<TextBlock x:Name="errorMessageText" TextWrapping="Wrap" Text="{x:Static prop:Resources.gistCreationFailedMessage}"/>
Message="{x:Static ghfvs:Resources.gistCreationFailedMessage}">
<TextBlock x:Name="errorMessageText" TextWrapping="Wrap" Text="{x:Static ghfvs:Resources.gistCreationFailedMessage}"/>
</ghfvs:ErrorMessageDisplay>
</Grid>
</StackPanel>

Просмотреть файл

@ -47,7 +47,7 @@ namespace GitHub.VisualStudio.Views.Dialog
browser?.OpenUrl(new Uri(gist.HtmlUrl));
var ns = serviceProvider.TryGetService<IStatusBarNotificationService>();
ns?.ShowMessage(UI.Resources.gistCreatedMessage);
ns?.ShowMessage(GitHub.Resources.gistCreatedMessage);
});
d(notifications.Listen()

Просмотреть файл

@ -5,7 +5,6 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:local="clr-namespace:GitHub.VisualStudio.Views.Dialog"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
mc:Ignorable="d"
d:DesignWidth="414"
d:DesignHeight="440"
@ -27,7 +26,7 @@
<ghfvs:OcticonImage Icon="logo_github" Style="{DynamicResource GitHubLogo}" />
<WrapPanel Orientation="Vertical" HorizontalAlignment="Center" Margin="0,0,0,12">
<TextBlock
Text="{x:Static prop:Resources.twoFactorAuthText}"
Text="{x:Static ghfvs:Resources.twoFactorAuthText}"
Padding="0"
Margin="0,0,12,0"
Style="{DynamicResource GitHubH1TextBlock}"
@ -42,10 +41,10 @@
TextWrapping="Wrap"
Style="{DynamicResource GitHubDescriptionTextBlock}"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.TwoFactorAuthenticationInformationTextBlock}" >
<Run x:Name="description" Text="{x:Static prop:Resources.openTwoFactorAuthAppText}"/>
<Run x:Name="description" Text="{x:Static ghfvs:Resources.openTwoFactorAuthAppText}"/>
<Hyperlink x:Name="twoFactorReadMoreLink" ToolTip="https://help.github.com/articles/about-two-factor-authentication"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.TwoFactorAuthenticationLearnMoreHyperlink}">
<TextBlock Text="{x:Static prop:Resources.learnMoreLink}"/></Hyperlink>
<TextBlock Text="{x:Static ghfvs:Resources.learnMoreLink}"/></Hyperlink>
</TextBlock>
<ghfvs:TwoFactorInput
x:Name="authenticationCode"
@ -54,14 +53,14 @@
<Grid Margin="0,12,0,0" Height="18">
<ghfvs:ErrorMessageDisplay
x:Name="authenticationFailedLabel"
Message="{x:Static prop:Resources.authenticationFailedLabelMessage}"
Content="{x:Static prop:Resources.authenticationFailedLabelContent}" />
Message="{x:Static ghfvs:Resources.authenticationFailedLabelMessage}"
Content="{x:Static ghfvs:Resources.authenticationFailedLabelContent}" />
<ghfvs:ErrorMessageDisplay
x:Name="authenticationSentLabel"
Icon="check"
IconFill="{DynamicResource GitHubAccentBrush}"
Message="{x:Static prop:Resources.authenticationSentLabelMessage}"
Content="{x:Static prop:Resources.authenticationSentLabelContent}" />
Message="{x:Static ghfvs:Resources.authenticationSentLabelMessage}"
Content="{x:Static ghfvs:Resources.authenticationSentLabelContent}" />
</Grid>
<StackPanel
Orientation="Horizontal"
@ -72,16 +71,16 @@
TabIndex="2"
Icon="check"
IsDefault="True"
Content="{x:Static prop:Resources.verifyText}"
Content="{x:Static ghfvs:Resources.verifyText}"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.TwoFactorAuthenticatonVerifyButton}" />
<ghfvs:OcticonLinkButton
x:Name="resendCodeButton"
TabIndex="3"
ToolTip="{x:Static prop:Resources.resendCodeButtonToolTip}"
ToolTip="{x:Static ghfvs:Resources.resendCodeButtonToolTip}"
FontSize="12"
Icon="sync"
Margin="18,0,0,0"
Content="{x:Static prop:Resources.resendCodeButtonContent}" />
Content="{x:Static ghfvs:Resources.resendCodeButtonContent}" />
</StackPanel>
</StackPanel>
</local:GenericLogin2FaView>

Просмотреть файл

@ -4,7 +4,6 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
xmlns:local="clr-namespace:GitHub.VisualStudio.Views.Dialog"
mc:Ignorable="d"
d:DesignWidth="414"
@ -44,7 +43,7 @@
Margin="0,0,0,10"
Style="{DynamicResource GitHubH1TextBlock}"
IsHitTestVisible="False"
Text="{x:Static prop:Resources.LoginLink}" />
Text="{x:Static ghfvs:Resources.LoginLink}" />
<ghfvs:HorizontalShadowDivider />
</StackPanel>
@ -78,8 +77,8 @@
<TabItem x:Name="dotComTab" Header="GitHub" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.SignInDotcomHostTabItem}" >
<DockPanel Style="{StaticResource TabDockPanel}">
<StackPanel DockPanel.Dock="Bottom" Margin="0">
<TextBlock TextWrapping="Wrap" HorizontalAlignment="Center" Margin="0" Text="{x:Static prop:Resources.dontHaveAnAccountText}" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.DontHaveDotcomAccountTextBlock}">
<Hyperlink x:Name="pricingLink" ToolTip="https://github.com/pricing"><TextBlock Text="{x:Static prop:Resources.SignUpLink}" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.DotcomSignUpHyperlink}" /></Hyperlink>
<TextBlock TextWrapping="Wrap" HorizontalAlignment="Center" Margin="0" Text="{x:Static ghfvs:Resources.dontHaveAnAccountText}" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.DontHaveDotcomAccountTextBlock}">
<Hyperlink x:Name="pricingLink" ToolTip="https://github.com/pricing"><TextBlock Text="{x:Static ghfvs:Resources.SignUpLink}" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.DotcomSignUpHyperlink}" /></Hyperlink>
</TextBlock>
</StackPanel>
@ -88,13 +87,13 @@
<StackPanel Style="{StaticResource FormFieldStackPanel}">
<ghfvs:PromptTextBox
x:Name="dotComUserNameOrEmail"
PromptText="{x:Static prop:Resources.UserNameOrEmailPromptText}"
PromptText="{x:Static ghfvs:Resources.UserNameOrEmailPromptText}"
Margin="0,0,0,10" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.DotcomUsernameEmailTextBox}" />
<ghfvs:SecurePasswordBox x:Name="dotComPassword" PromptText="{x:Static prop:Resources.PasswordPrompt}" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.DotcomPasswordTextBox}"/>
<ghfvs:SecurePasswordBox x:Name="dotComPassword" PromptText="{x:Static ghfvs:Resources.PasswordPrompt}" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.DotcomPasswordTextBox}"/>
<Border Style="{StaticResource LoginButtonBorder}" Margin="0 16 0 0">
<ghfvs:OcticonCircleButton x:Name="dotComLogInButton" Icon="check" Content="{x:Static prop:Resources.LoginLink}" IsDefault="True" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.DotcomSignInButton}"/>
<ghfvs:OcticonCircleButton x:Name="dotComLogInButton" Icon="check" Content="{x:Static ghfvs:Resources.LoginLink}" IsDefault="True" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.DotcomSignInButton}"/>
</Border>
<Grid Margin="0 8">
@ -109,7 +108,7 @@
</Grid>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<ghfvs:GitHubActionLink x:Name="dotComSsaLogInButton" Content="{x:Static prop:Resources.SignInWithYourBrowser}"/>
<ghfvs:GitHubActionLink x:Name="dotComSsaLogInButton" Content="{x:Static ghfvs:Resources.SignInWithYourBrowser}"/>
<ghfvs:OcticonImage Icon="link_external" Margin="0 1 0 0"/>
</StackPanel>
@ -132,8 +131,8 @@
<TabItem x:Name="enterpriseTab" Header="GitHub Enterprise" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.SignInEnterpriseHostTabItem}">
<DockPanel Style="{StaticResource TabDockPanel}">
<StackPanel DockPanel.Dock="Bottom">
<TextBlock TextWrapping="Wrap" HorizontalAlignment="Center" Margin="0" Text="{x:Static prop:Resources.dontHaveGitHubEnterpriseText}" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.DontHaveEnterpriseTextBlock}" >
<Hyperlink x:Name="learnMoreLink" ToolTip="enterprise.github.com"><TextBlock Text="{x:Static prop:Resources.learnMoreLink}" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.EnterpriseLearnMoreHyperlink}"></TextBlock></Hyperlink>
<TextBlock TextWrapping="Wrap" HorizontalAlignment="Center" Margin="0" Text="{x:Static ghfvs:Resources.dontHaveGitHubEnterpriseText}" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.DontHaveEnterpriseTextBlock}" >
<Hyperlink x:Name="learnMoreLink" ToolTip="enterprise.github.com"><TextBlock Text="{x:Static ghfvs:Resources.learnMoreLink}" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.EnterpriseLearnMoreHyperlink}"></TextBlock></Hyperlink>
</TextBlock>
</StackPanel>
@ -142,7 +141,7 @@
Style="{StaticResource FormFieldStackPanel}">
<ghfvs:PromptTextBox x:Name="enterpriseUrl"
PromptText="{x:Static prop:Resources.enterpriseUrlPromptText}"
PromptText="{x:Static ghfvs:Resources.enterpriseUrlPromptText}"
Margin="0,0,0,10"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.EnterpriseServerAddressTextBox}">
<ghfvs:PromptTextBox.IconContentTemplate>
@ -159,23 +158,23 @@
<StackPanel Name="enterpriseUsernamePasswordPanel">
<ghfvs:PromptTextBox
x:Name="enterpriseUserNameOrEmail"
PromptText="{x:Static prop:Resources.UserNameOrEmailPromptText}"
PromptText="{x:Static ghfvs:Resources.UserNameOrEmailPromptText}"
Margin="0,0,0,10"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.EnterpriseUsernameEmailTextBox}" />
<ghfvs:SecurePasswordBox x:Name="enterprisePassword"
PromptText="{x:Static prop:Resources.PasswordPrompt}"
PromptText="{x:Static ghfvs:Resources.PasswordPrompt}"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.EnterprisePasswordTextBox}" />
</StackPanel>
<StackPanel Name="enterpriseTokenPanel">
<ghfvs:SecurePasswordBox x:Name="enterpriseToken"
PromptText="{x:Static prop:Resources.TokenPrompt}"
PromptText="{x:Static ghfvs:Resources.TokenPrompt}"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.EnterprisePasswordTextBox}" />
</StackPanel>
<Border Style="{StaticResource LoginButtonBorder}" Margin="0 16 0 0">
<ghfvs:OcticonCircleButton x:Name="enterpriseLogInButton" Icon="check" Content="{x:Static prop:Resources.LoginLink}" IsDefault="True" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.EnterpriseSignInButton}"/>
<ghfvs:OcticonCircleButton x:Name="enterpriseLogInButton" Icon="check" Content="{x:Static ghfvs:Resources.LoginLink}" IsDefault="True" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.EnterpriseSignInButton}"/>
</Border>
<StackPanel Name="enterpriseSsoPanel">
@ -186,11 +185,11 @@
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Rectangle Grid.Column="0" Fill="#FFDDDDDD" Height="1"/>
<TextBlock Grid.Column="1" Margin="8,0,8,4" Text="{x:Static prop:Resources.orText}"/>
<TextBlock Grid.Column="1" Margin="8,0,8,4" Text="{x:Static ghfvs:Resources.orText}"/>
<Rectangle Grid.Column="2" Fill="#FFDDDDDD" Height="1"/>
</Grid>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<ghfvs:GitHubActionLink x:Name="enterpriseSsaLogInButton" Content="{x:Static prop:Resources.SignInWithYourBrowser}"/>
<ghfvs:GitHubActionLink x:Name="enterpriseSsaLogInButton" Content="{x:Static ghfvs:Resources.SignInWithYourBrowser}"/>
<ghfvs:OcticonImage Icon="link_external" Margin="0 1 0 0"/>
</StackPanel>
</StackPanel>

Просмотреть файл

@ -5,7 +5,6 @@
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:local="clr-namespace:GitHub.VisualStudio.Views.Dialog"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
d:DesignHeight="440"
d:DesignWidth="414"
Style="{DynamicResource DialogUserControl}"
@ -42,7 +41,7 @@
Icon="check"
IsDefault="True"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.CreateRepositoryButton}" >
<TextBlock Text="{x:Static prop:Resources.CreateLink}" />
<TextBlock Text="{x:Static ghfvs:Resources.CreateLink}" />
</ghfvs:OcticonCircleButton>
<StackPanel>
@ -104,7 +103,7 @@
<Label Grid.Row="0"
Grid.Column="0"
Content="{x:Static prop:Resources.nameText}"
Content="{x:Static ghfvs:Resources.nameText}"
Target="{Binding ElementName=nameText}" />
<ghfvs:PromptTextBox x:Name="nameText"
Grid.Row="0"
@ -126,7 +125,7 @@
<Label Grid.Row="2"
Grid.Column="0"
Content="{x:Static prop:Resources.Description}"
Content="{x:Static ghfvs:Resources.Description}"
Target="{Binding ElementName=description}"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.RepositoryDescriptionTextBlock}" />
<ghfvs:PromptTextBox x:Name="description"
@ -138,7 +137,7 @@
<Label Grid.Row="3"
Grid.Column="0"
Content="{x:Static prop:Resources.localPathText}"
Content="{x:Static ghfvs:Resources.localPathText}"
Target="{Binding ElementName=localPathText}" />
<Grid Grid.Row="3" Grid.Column="1">
@ -157,7 +156,7 @@
Grid.Column="1"
Margin="3,0,0,0"
VerticalContentAlignment="Center"
Content="{x:Static prop:Resources.browsePathButtonContent}"
Content="{x:Static ghfvs:Resources.browsePathButtonContent}"
Padding="0"
Style="{StaticResource GitHubBlueLinkButton}"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.CreateRepositoryLocalPathBrowseButton}" />
@ -170,7 +169,7 @@
<Label Grid.Row="5"
Grid.Column="0"
Content="{x:Static prop:Resources.ignoreTemplateListText}"
Content="{x:Static ghfvs:Resources.ignoreTemplateListText}"
Target="{Binding ElementName=ignoreTemplateList}" />
<ghfvs:FilteredComboBox x:Name="ignoreTemplateList"
Grid.Row="5"
@ -193,7 +192,7 @@
<Label Grid.Row="6"
Grid.Column="0"
Content="{x:Static prop:Resources.licenseListText}"
Content="{x:Static ghfvs:Resources.licenseListText}"
Target="{Binding ElementName=licenseList}" />
<ghfvs:FilteredComboBox x:Name="licenseList"
Grid.Row="6"
@ -241,7 +240,7 @@
<CheckBox x:Name="makePrivate"
Grid.Row="9"
Grid.Column="1"
Content="{x:Static prop:Resources.makePrivateContent}"
Content="{x:Static ghfvs:Resources.makePrivateContent}"
Padding="8,0,0,0"
Style="{DynamicResource BlueRoundedCheckBox}"
IsChecked="{Binding KeepPrivate}"

Просмотреть файл

@ -5,7 +5,6 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:local="clr-namespace:GitHub.VisualStudio.Views.Dialog"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
d:DesignHeight="440"
d:DesignWidth="414"
Background="Transparent"
@ -52,7 +51,7 @@
IsDefault="True"
Command="{Binding CloneCommand}"
>
<TextBlock Text="{x:Static prop:Resources.CloneLink}" />
<TextBlock Text="{x:Static ghfvs:Resources.CloneLink}" />
</ghfvs:OcticonCircleButton>
<Border x:Name="repositoriesListPane"
@ -107,7 +106,7 @@
Style="{StaticResource Light}"
HorizontalAlignment="Right"
Margin="4,0"
Content="{x:Static prop:Resources.pathText}"
Content="{x:Static ghfvs:Resources.pathText}"
Target="{Binding ElementName=clonePath}" />
<ghfvs:OcticonImage Grid.Row="0" Grid.Column="1" Icon="repo"/>
@ -142,7 +141,7 @@
Grid.Column="1"
Margin="4,0,4,0"
VerticalContentAlignment="Center"
Content="{x:Static prop:Resources.browsePathButtonContent}"
Content="{x:Static ghfvs:Resources.browsePathButtonContent}"
Padding="0"
Style="{StaticResource GitHubBlueLinkButton}"
Command="{Binding BrowseForDirectory}" />

Просмотреть файл

@ -5,7 +5,6 @@
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:local="clr-namespace:GitHub.VisualStudio.Views.GitHubPane"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
DataContext="{Binding ViewModel}"
d:DesignHeight="300"
d:DesignWidth="300"
@ -32,12 +31,12 @@
Foreground="{DynamicResource GitHubVsWindowText}"
HorizontalAlignment="Center"
FontSize="16"
Content="{x:Static prop:Resources.SignInToGitHub}" />
Content="{x:Static ghfvs:Resources.SignInToGitHub}" />
<TextBlock
TextWrapping="Wrap"
TextAlignment="Center"
HorizontalAlignment="Center"
Text="{x:Static prop:Resources.BlurbText}" />
Text="{x:Static ghfvs:Resources.BlurbText}" />
<StackPanel
Margin="0,5"
HorizontalAlignment="Center"
@ -45,13 +44,13 @@
<TextBlock
Margin="10,0"
HorizontalAlignment="Center">
<Hyperlink Command="{Binding SignIn}" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.GitHubLoggedOutSignInHyperlink}" ><TextBlock Text="{x:Static prop:Resources.SignInLink}" /></Hyperlink>
<Hyperlink Command="{Binding SignIn}" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.GitHubLoggedOutSignInHyperlink}" ><TextBlock Text="{x:Static ghfvs:Resources.SignInLink}" /></Hyperlink>
</TextBlock>
<TextBlock
Margin="10,0"
HorizontalAlignment="Center">
<Hyperlink Command="{Binding Register}" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.GitHubLoggedOutCreateAnAccountHyperlink}" ><TextBlock Text="{x:Static prop:Resources.CreateAccountLink}" /></Hyperlink>
<Hyperlink Command="{Binding Register}" AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.GitHubLoggedOutCreateAnAccountHyperlink}" ><TextBlock Text="{x:Static ghfvs:Resources.CreateAccountLink}" /></Hyperlink>
</TextBlock>
</StackPanel>
</StackPanel>

Просмотреть файл

@ -5,7 +5,6 @@
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:local="clr-namespace:GitHub.VisualStudio.Views.GitHubPane"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
DataContext="{Binding ViewModel}"
d:DesignHeight="300"
d:DesignWidth="300"
@ -31,17 +30,17 @@
Foreground="{DynamicResource GitHubVsWindowText}"
HorizontalAlignment="Center"
FontSize="16"
Content="{x:Static prop:Resources.NotAGitHubRepository}" />
Content="{x:Static ghfvs:Resources.NotAGitHubRepository}" />
<TextBlock
TextWrapping="Wrap"
TextAlignment="Center"
HorizontalAlignment="Center"
Text="{x:Static prop:Resources.NotAGitHubRepositoryMessage}" />
Text="{x:Static ghfvs:Resources.NotAGitHubRepositoryMessage}" />
<Button HorizontalAlignment="Center"
Margin="0,15"
Style="{DynamicResource GitHubVsPrimaryActionButton}"
Command="{Binding Publish}" >
<TextBlock Text="{x:Static prop:Resources.GetStartedText}" />
<TextBlock Text="{x:Static ghfvs:Resources.GetStartedText}" />
</Button>
</StackPanel>
</DockPanel>

Просмотреть файл

@ -5,7 +5,6 @@
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:local="clr-namespace:GitHub.VisualStudio.Views.GitHubPane"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
DataContext="{Binding ViewModel}"
d:DesignHeight="300"
d:DesignWidth="300"
@ -31,12 +30,12 @@
Foreground="{DynamicResource GitHubVsWindowText}"
HorizontalAlignment="Center"
FontSize="16"
Content="{x:Static prop:Resources.NotAGitRepository}" />
Content="{x:Static ghfvs:Resources.NotAGitRepository}" />
<TextBlock
TextWrapping="Wrap"
TextAlignment="Center"
HorizontalAlignment="Center"
Text="{x:Static prop:Resources.NotAGitRepositoryMessage}"/>
Text="{x:Static ghfvs:Resources.NotAGitRepositoryMessage}"/>
</StackPanel>
</DockPanel>
</local:GenericNotAGitRepositoryView>

Просмотреть файл

@ -6,7 +6,6 @@
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:local="clr-namespace:GitHub.VisualStudio.Views.GitHubPane"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
d:DesignHeight="450"
d:DesignWidth="300"
Background="{DynamicResource GitHubVsToolWindowBackground}"
@ -145,7 +144,7 @@
Grid.Row="1"
Margin="10,5"
Text="{Binding PRTitle, UpdateSourceTrigger=PropertyChanged}"
PromptText="{x:Static prop:Resources.TitleRequired}"
PromptText="{x:Static ghfvs:Resources.TitleRequired}"
Style="{DynamicResource GitHubVsPromptTextBox}"
SpellCheck.IsEnabled="True"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.PullRequestCreationTitleTextBox}"/>
@ -154,7 +153,7 @@
MinHeight="100"
Margin="10,5"
AcceptsReturn="True"
PromptText="{x:Static prop:Resources.Description}"
PromptText="{x:Static ghfvs:Resources.Description}"
Text="{Binding Description, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource GitHubVsPromptTextBox}"
VerticalScrollBarVisibility="Auto"
@ -174,13 +173,13 @@
Margin="6,0,0,0"
HorizontalAlignment="Right"
Command="{Binding CreatePullRequest}"
Content="{x:Static prop:Resources.CreatePullRequest}"
Content="{x:Static ghfvs:Resources.CreatePullRequest}"
Style="{StaticResource GitHubVsPrimaryActionButton}"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.PullRequestCreationCreateButton}"/>
<Button DockPanel.Dock="Right"
HorizontalAlignment="Right"
Command="{Binding Cancel}"
Content="{x:Static prop:Resources.CancelLink}"
Content="{x:Static ghfvs:Resources.CancelLink}"
Style="{StaticResource GitHubVsButton}"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.PullRequestCreationCancelButton}"/>

Просмотреть файл

@ -6,7 +6,6 @@
xmlns:local="clr-namespace:GitHub.VisualStudio.Views.GitHubPane"
xmlns:v="clr-namespace:GitHub.VisualStudio.Views"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
xmlns:markdig="clr-namespace:Markdig.Wpf;assembly=Markdig.Wpf"
xmlns:vsui="clr-namespace:Microsoft.VisualStudio.Shell;assembly=Microsoft.VisualStudio.Shell.14.0"
xmlns:theming="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Imaging"
@ -113,7 +112,7 @@
<!-- Updated at -->
<TextBlock Opacity="0.5"
Text="{Binding Model.UpdatedAt, StringFormat={x:Static prop:Resources.UpdatedFormat}, Converter={ghfvs:DurationToStringConverter}, Mode=OneWay}"/>
Text="{Binding Model.UpdatedAt, StringFormat={x:Static ghfvs:Resources.UpdatedFormat}, Converter={ghfvs:DurationToStringConverter}, Mode=OneWay}"/>
<!-- Git operation error message -->
<TextBox Foreground="Red"
@ -154,7 +153,7 @@
Visibility="{Binding UpdateState.UpToDate, FallbackValue=Collapsed, Converter={ghfvs:BooleanToInverseVisibilityConverter}}">
<ghfvs:OcticonImage Icon="arrow_down"/>
<TextBlock Text="{Binding UpdateState.CommitsBehind}" VerticalAlignment="Center"/>
<ghfvs:GitHubActionLink Content="{x:Static prop:Resources.Pull}"
<ghfvs:GitHubActionLink Content="{x:Static ghfvs:Resources.Pull}"
Command="{Binding Pull}"
Margin="4,0"
ToolTip="{Binding UpdateState.PullToolTip}"
@ -162,7 +161,7 @@
VerticalAlignment="Center"/>
<ghfvs:OcticonImage Icon="arrow_up"/>
<TextBlock Text="{Binding UpdateState.CommitsAhead}" VerticalAlignment="Center"/>
<ghfvs:GitHubActionLink Content="{x:Static prop:Resources.Push}"
<ghfvs:GitHubActionLink Content="{x:Static ghfvs:Resources.Push}"
Command="{Binding Push}"
Margin="4,0"
ToolTip="{Binding UpdateState.PushToolTip}"
@ -173,7 +172,7 @@
Visibility="{Binding UpdateState.SyncSubmodulesEnabled, FallbackValue=Collapsed, Converter={ghfvs:BooleanToVisibilityConverter}}" />
<TextBlock Margin="4 0 0 0" Text="{Binding UpdateState.SubmodulesToSync}" VerticalAlignment="Center"
Visibility="{Binding UpdateState.SyncSubmodulesEnabled, FallbackValue=Collapsed, Converter={ghfvs:BooleanToVisibilityConverter}}" />
<ghfvs:GitHubActionLink Content="{x:Static prop:Resources.Sync}"
<ghfvs:GitHubActionLink Content="{x:Static ghfvs:Resources.Sync}"
Command="{Binding SyncSubmodules}"
Margin="4 0"
ToolTip="{Binding UpdateState.SyncSubmodulesToolTip}"
@ -201,13 +200,13 @@
</TextBlock.Style>
<ghfvs:OcticonImage Icon="check" Foreground="#6CC644" Margin="0 0 0 -4"/>
<Run Text="{x:Static prop:Resources.LocalBranchUpToDate}"/>
<Run Text="{x:Static ghfvs:Resources.LocalBranchUpToDate}"/>
</TextBlock>
</StackPanel>
<!-- Author and open time -->
<ghfvs:SectionControl Name="descriptionSection"
HeaderText="{x:Static prop:Resources.Description}"
HeaderText="{x:Static ghfvs:Resources.Description}"
IsExpanded="True"
ghfvs:ScrollingVerticalStackPanel.IsFixed="true">
<StackPanel Orientation="Vertical">
@ -221,7 +220,7 @@
<TextBlock VerticalAlignment="Center" Margin="4 0" TextWrapping="Wrap">
<Run FontWeight="SemiBold" Text="{Binding Model.Author.Login, Mode=OneWay}" />
<Run Text="{x:Static prop:Resources.Wrote}" />
<Run Text="{x:Static ghfvs:Resources.Wrote}" />
</TextBlock>
</StackPanel>
<!-- PR Body -->
@ -232,7 +231,7 @@
</ghfvs:SectionControl>
<ghfvs:SectionControl Name="reviewsSection"
HeaderText="{x:Static prop:Resources.Reviewers}"
HeaderText="{x:Static ghfvs:Resources.Reviewers}"
IsExpanded="True"
Margin="0 8 0 0"
ghfvs:ScrollingVerticalStackPanel.IsFixed="true">
@ -263,7 +262,7 @@
<ghfvs:SectionControl Name="changesSection"
Grid.Row="4"
IsExpanded="True"
HeaderText="{Binding Files.ChangedFilesCount, StringFormat={x:Static prop:Resources.ChangesCountFormat}}"
HeaderText="{Binding Files.ChangedFilesCount, StringFormat={x:Static ghfvs:Resources.ChangesCountFormat}}"
Margin="0 8 10 0"
ghfvs:ScrollingVerticalStackPanel.IsFixed="true"/>

Просмотреть файл

@ -5,7 +5,6 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:local="clr-namespace:GitHub.VisualStudio.Views.GitHubPane"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
xmlns:imaging="clr-namespace:Microsoft.VisualStudio.Imaging;assembly=Microsoft.VisualStudio.Imaging"
mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"
Name="root">
@ -24,10 +23,10 @@
</ResourceDictionary.MergedDictionaries>
<ContextMenu x:Key="FileContextMenu">
<MenuItem Header="{x:Static prop:Resources.ViewChanges}" Command="{Binding DiffFile}"/>
<MenuItem Header="{x:Static prop:Resources.ViewFile}" Command="{Binding ViewFile}"/>
<MenuItem Header="{x:Static prop:Resources.ViewChangesInSolution}" Command="{Binding DiffFileWithWorkingDirectory}"/>
<MenuItem Header="{x:Static prop:Resources.OpenFileInSolution}" Command="{Binding OpenFileInWorkingDirectory}"/>
<MenuItem Header="{x:Static ghfvs:Resources.ViewChanges}" Command="{Binding DiffFile}"/>
<MenuItem Header="{x:Static ghfvs:Resources.ViewFile}" Command="{Binding ViewFile}"/>
<MenuItem Header="{x:Static ghfvs:Resources.ViewChangesInSolution}" Command="{Binding DiffFileWithWorkingDirectory}"/>
<MenuItem Header="{x:Static ghfvs:Resources.OpenFileInSolution}" Command="{Binding OpenFileInWorkingDirectory}"/>
</ContextMenu>
</ResourceDictionary>
</Control.Resources>

Просмотреть файл

@ -7,7 +7,6 @@
xmlns:local="clr-namespace:GitHub.VisualStudio.Views.GitHubPane"
xmlns:v="clr-namespace:GitHub.VisualStudio.Views"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.PullRequestListViewCustom}">
<d:DesignProperties.DataContext>
@ -49,7 +48,7 @@
<ghfvs:GitHubActionLink DockPanel.Dock="Left"
Command="{Binding CreatePullRequest}"
Content="{x:Static prop:Resources.CreateNew}"/>
Content="{x:Static ghfvs:Resources.CreateNew}"/>
<ghfvs:DropDownButton Name="authorFilterDropDown"
DockPanel.Dock="Right"
@ -57,7 +56,7 @@
Cursor="Hand"
Foreground="{DynamicResource GitHubActionLinkItemBrush}"
Padding="2"
ToolTip="{x:Static prop:Resources.FilterByAuthor}"
ToolTip="{x:Static ghfvs:Resources.FilterByAuthor}"
VerticalAlignment="Center"
Visibility="{Binding Items.Count, Converter={ghfvs:CountToVisibilityConverter}}"
PopupOpened="authorFilterDropDown_PopupOpened">
@ -78,7 +77,7 @@
Cursor="Hand"
Foreground="{DynamicResource GitHubActionLinkItemBrush}"
Padding="2"
ToolTip="{x:Static prop:Resources.SelectFork}"
ToolTip="{x:Static ghfvs:Resources.SelectFork}"
VerticalAlignment="Center"
Visibility="{Binding Forks, Converter={ghfvs:NullToVisibilityConverter}}">
<ghfvs:OcticonImage Icon="repo_forked" Height="12" Width="12"/>
@ -112,8 +111,8 @@
KeyDown="ListBox_KeyDown">
<ListBox.ContextMenu>
<ContextMenu>
<MenuItem Header="{x:Static prop:Resources.Open}" Command="{Binding OpenItem}"/>
<MenuItem Header="{x:Static prop:Resources.openInBrowser}" Command="{Binding OpenItemInBrowser}"/>
<MenuItem Header="{x:Static ghfvs:Resources.Open}" Command="{Binding OpenItem}"/>
<MenuItem Header="{x:Static ghfvs:Resources.openInBrowser}" Command="{Binding OpenItemInBrowser}"/>
</ContextMenu>
</ListBox.ContextMenu>
<ListBox.ItemContainerStyle>
@ -140,22 +139,22 @@
HorizontalAlignment="Center"
FontSize="16"
Margin="4"
Text="{x:Static prop:Resources.ThereArenTAnyOpenPullRequests}"/>
Text="{x:Static ghfvs:Resources.ThereArenTAnyOpenPullRequests}"/>
<TextBlock TextWrapping="Wrap"
TextAlignment="Center"
HorizontalAlignment="Center"
Margin="4"
Opacity="0.75"
Text="{x:Static prop:Resources.PullRequestsLetYouTellOthersAboutChangesYouVePushedToARepositoryOnGitHub}"/>
Text="{x:Static ghfvs:Resources.PullRequestsLetYouTellOthersAboutChangesYouVePushedToARepositoryOnGitHub}"/>
<TextBlock TextWrapping="Wrap"
TextAlignment="Center"
HorizontalAlignment="Center"
Margin="4"
Opacity="0.75">
<Run Text="{x:Static prop:Resources.ToGetStartedYouCan}"/>
<Run Text="{x:Static ghfvs:Resources.ToGetStartedYouCan}"/>
<Hyperlink Command="{Binding CreatePullRequest}"
Foreground="{DynamicResource GitHubActionLinkItemBrush}">
<Run Text="{x:Static prop:Resources.CreateAPullRequest}"/>
<Run Text="{x:Static ghfvs:Resources.CreateAPullRequest}"/>
</Hyperlink>
</TextBlock>
</StackPanel>
@ -171,7 +170,7 @@
HorizontalAlignment="Center"
FontSize="16"
Margin="4"
Text="{x:Static prop:Resources.NoResultsMatchedYourSearch}"/>
Text="{x:Static ghfvs:Resources.NoResultsMatchedYourSearch}"/>
</StackPanel>
</Grid>
</DockPanel>

Просмотреть файл

@ -2,13 +2,13 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:cache="clr-namespace:GitHub.UI.Helpers;assembly=GitHub.UI"
xmlns:local="clr-namespace:GitHub.VisualStudio.Views.GitHubPane"
xmlns:markdig="clr-namespace:Markdig.Wpf;assembly=Markdig.Wpf"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ui="clr-namespace:GitHub.UI;assembly=GitHub.UI"
xmlns:c="clr-namespace:GitHub.VisualStudio.UI.Controls;assembly=GitHub.VisualStudio.UI"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
xmlns:models="clr-namespace:GitHub.Models;assembly=GitHub.App"
xmlns:sampleData="clr-namespace:GitHub.SampleData;assembly=GitHub.App"
xmlns:theming="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Imaging"
@ -34,13 +34,13 @@
<ScrollViewer>
<StackPanel Margin="8,0">
<TextBlock FontSize="16" Margin="0 4 0 0">
<Run Text="{x:Static prop:Resources.SubmitYourReviewFor}"/>
<Run Text="{x:Static ghfvs:Resources.SubmitYourReviewFor}"/>
<Hyperlink Command="{Binding NavigateToPullRequest}">
<Run>#</Run><Run Text="{Binding PullRequestModel.Number, Mode=OneWay}"/>
</Hyperlink>
</TextBlock>
<TextBlock Foreground="{DynamicResource GitHubVsGrayText}" Text="{Binding PullRequestModel.Title}" TextWrapping="Wrap"/>
<TextBlock Margin="0 12 0 4" Text="{x:Static prop:Resources.YourReviewSummary}"/>
<TextBlock Margin="0 12 0 4" Text="{x:Static ghfvs:Resources.YourReviewSummary}"/>
<TextBox AcceptsReturn="True"
Background="{DynamicResource VsBrush.BrandedUIBackground}"
Foreground="{DynamicResource VsBrush.BrandedUIText}"
@ -61,19 +61,19 @@
BorderThickness="1"
Padding="4">
<StackPanel Background="{DynamicResource GitHubVsToolWindowBackground}">
<ui:GitHubActionLink Command="{Binding Comment}" Margin="4" Content="{x:Static prop:Resources.CommentOnly}"/>
<ui:GitHubActionLink Command="{Binding Comment}" Margin="4" Content="{x:Static ghfvs:Resources.CommentOnly}"/>
<ui:GitHubActionLink Command="{Binding Approve}"
Visibility="{Binding CanApproveRequestChanges, Converter={ui:BooleanToVisibilityConverter}}"
Margin="4" Content="{x:Static prop:Resources.Approve}"/>
Margin="4" Content="{x:Static ghfvs:Resources.Approve}"/>
<ui:GitHubActionLink Command="{Binding RequestChanges}"
Visibility="{Binding CanApproveRequestChanges, Converter={ui:BooleanToVisibilityConverter}}"
Margin="4" Content="{x:Static prop:Resources.RequestChanges}"/>
Margin="4" Content="{x:Static ghfvs:Resources.RequestChanges}"/>
</StackPanel>
</Border>
</ui:DropDownButton.DropDownContent>
</ui:DropDownButton>
<Rectangle Fill="{DynamicResource GitHubHeaderSeparatorBrush}" Width="1" Height="16" Margin="4 0"/>
<ui:GitHubActionLink Command="{Binding Cancel}" VerticalAlignment="Center" Content="{x:Static prop:Resources.CancelLink}"/>
<ui:GitHubActionLink Command="{Binding Cancel}" VerticalAlignment="Center" Content="{x:Static ghfvs:Resources.CancelLink}"/>
</StackPanel>
<TextBox Grid.Column="0"

Просмотреть файл

@ -11,7 +11,6 @@
xmlns:vm="clr-namespace:GitHub.ViewModels.GitHubPane;assembly=GitHub.App"
xmlns:cache="clr-namespace:GitHub.UI.Helpers;assembly=GitHub.UI"
xmlns:sampleData="clr-namespace:GitHub.SampleData;assembly=GitHub.App"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
mc:Ignorable="d" d:DesignWidth="300"
Name="root">
@ -81,7 +80,7 @@
<ui:GitHubActionLink Command="{Binding Path=DataContext.ShowReview, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:PullRequestDetailView}}}"
CommandParameter="{Binding}"
Margin="2 1 2 0"
Content="{x:Static prop:Resources.ContinueYourReview}"
Content="{x:Static ghfvs:Resources.ContinueYourReview}"
Visibility="{Binding State, Converter={ui:EqualsToVisibilityConverter Pending}}"/>
</Grid>
</Grid>
@ -90,7 +89,7 @@
<ui:GitHubActionLink Command="{Binding Path=DataContext.ShowReview, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:PullRequestDetailView}}}"
CommandParameter="{Binding}"
Visibility="{Binding Id, Converter={ui:EqualsToVisibilityConverter {x:Null}}}"
Content="{x:Static prop:Resources.AddYourReview}"/>
Content="{x:Static ghfvs:Resources.AddYourReview}"/>
</Grid>
</UserControl>

Просмотреть файл

@ -6,7 +6,6 @@
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:local="clr-namespace:GitHub.VisualStudio.Views.GitHubPane"
xmlns:markdig="clr-namespace:Markdig.Wpf;assembly=Markdig.Wpf"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
mc:Ignorable="d" d:DesignHeight="500" d:DesignWidth="300">
<d:DesignData.DataContext>
@ -77,7 +76,7 @@
Margin="0 4"
Visibility="{Binding Body, Converter={ghfvs:NullToVisibilityConverter}}">
<Expander.Header>
<TextBlock FontWeight="SemiBold" Text="{x:Static prop:Resources.Description}"/>
<TextBlock FontWeight="SemiBold" Text="{x:Static ghfvs:Resources.Description}"/>
</Expander.Header>
<markdig:MarkdownViewer Margin="22 4 0 0" Markdown="{Binding Body}"/>
</Expander>
@ -85,7 +84,7 @@
Margin="0 4"
Visibility="{Binding FileComments.Count, Converter={ghfvs:CountToVisibilityConverter}}">
<Expander.Header>
<TextBlock FontWeight="SemiBold" Text="{x:Static prop:Resources.Comments}"/>
<TextBlock FontWeight="SemiBold" Text="{x:Static ghfvs:Resources.Comments}"/>
</Expander.Header>
<local:PullRequestFileCommentsView DataContext="{Binding FileComments}"
Margin="22 4 0 0"/>
@ -93,7 +92,7 @@
<Expander Margin="0 4"
Visibility="{Binding OutdatedFileComments.Count, Converter={ghfvs:CountToVisibilityConverter}}">
<Expander.Header>
<TextBlock FontWeight="SemiBold" Text="{x:Static prop:Resources.OutdatedComments}"/>
<TextBlock FontWeight="SemiBold" Text="{x:Static ghfvs:Resources.OutdatedComments}"/>
</Expander.Header>
<local:PullRequestFileCommentsView DataContext="{Binding OutdatedFileComments}"
Margin="22 4 0 0"/>

Просмотреть файл

@ -5,7 +5,6 @@
xmlns:ghfvs="https://github.com/github/VisualStudio"
xmlns:local="clr-namespace:GitHub.VisualStudio.Views.TeamExplorer"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:prop="clr-namespace:GitHub.VisualStudio.UI;assembly=GitHub.VisualStudio.UI"
Margin="0"
d:DesignHeight="440"
d:DesignWidth="414"
@ -61,7 +60,7 @@
<TextBlock HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Foreground="{DynamicResource GitHubVsGrayText}"
Text="{x:Static prop:Resources.RepoDoesNotHaveRemoteText}"
Text="{x:Static ghfvs:Resources.RepoDoesNotHaveRemoteText}"
TextTrimming="CharacterEllipsis"
TextWrapping="Wrap"
ToolTip="{Binding Text, RelativeSource={RelativeSource Self}}" />
@ -107,7 +106,7 @@
Foreground="{DynamicResource GitHubVsWindowText}"
MaxLength="{x:Static ghfvs:Constants.MaxRepositoryNameLength}"
Text="{Binding RepositoryName}"
PromptText="{x:Static prop:Resources.RepoNameText}"
PromptText="{x:Static ghfvs:Resources.RepoNameText}"
SpellCheck.IsEnabled="True"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.TeamExplorerPublishRepositoryNameTextBox}"
VerticalContentAlignment="Center"/>
@ -121,7 +120,7 @@
Foreground="{DynamicResource GitHubVsWindowText}"
Text="{Binding Description}"
TextWrapping="WrapWithOverflow"
PromptText="{x:Static prop:Resources.DescriptionOptional}"
PromptText="{x:Static ghfvs:Resources.DescriptionOptional}"
SpellCheck.IsEnabled="True"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.TeamExplorerPublishRepositoryDescriptionTextBox}"
VerticalContentAlignment="Center" />
@ -146,7 +145,7 @@
</Style>
</TextBlock.Resources>
<TextBlock.Inlines>
<Run Text="{x:Static prop:Resources.makePrivateContent}" />
<Run Text="{x:Static ghfvs:Resources.makePrivateContent}" />
</TextBlock.Inlines>
</TextBlock>
</CheckBox>
@ -157,7 +156,7 @@
IsDefault="True"
Style="{StaticResource GitHubVsButton}"
AutomationProperties.AutomationId="{x:Static ghfvs:AutomationIDs.TeamExplorerPublishRepositoryButton}" >
<TextBlock Text="{x:Static prop:Resources.publishText}" />
<TextBlock Text="{x:Static ghfvs:Resources.publishText}" />
</Button>
</StackPanel>

Просмотреть файл

@ -32,7 +32,7 @@ namespace GitHub.VisualStudio.Views.TeamExplorer
{
if (state == ProgressState.Success)
{
teServices.ShowMessage(UI.Resources.RepositoryPublishedMessage);
teServices.ShowMessage(GitHub.Resources.RepositoryPublishedMessage);
}
});

Просмотреть файл

@ -111,15 +111,13 @@ namespace GitHub.App.UnitTests.ViewModels.Dialog.Clone
}
[Test]
public async Task Repository_Name_Is_Appended_To_Base_Path()
public async Task Owner_And_Repository_Name_Is_Appended_To_Base_Path()
{
var target = CreateTarget();
var repository = Substitute.For<IRepositoryModel>();
repository.Name.Returns("repo");
SetRepository(target.GitHubTab, repository);
SetRepository(target.GitHubTab, CreateRepositoryModel("owner", "repo"));
Assert.That(target.Path, Is.EqualTo("d:\\efault\\path\\repo"));
Assert.That(target.Path, Is.EqualTo("d:\\efault\\path\\owner\\repo"));
}
[Test]
@ -136,10 +134,7 @@ namespace GitHub.App.UnitTests.ViewModels.Dialog.Clone
public async Task PathError_Is_Set_For_Existing_Destination()
{
var target = CreateTarget();
var repository = Substitute.For<IRepositoryModel>();
repository.Name.Returns("repo");
SetRepository(target.GitHubTab, repository);
SetRepository(target.GitHubTab, CreateRepositoryModel("owner", "repo"));
target.Path = "d:\\exists";
Assert.That(target.PathError, Is.EqualTo(Resources.DestinationAlreadyExists));
@ -149,13 +144,47 @@ namespace GitHub.App.UnitTests.ViewModels.Dialog.Clone
public async Task Repository_Name_Replaces_Last_Part_Of_Non_Base_Path()
{
var target = CreateTarget();
var repository = Substitute.For<IRepositoryModel>();
target.Path = "d:\\efault\\foo";
repository.Name.Returns("repo");
SetRepository(target.GitHubTab, repository);
var owner = "owner";
target.Path = "d:\\efault";
SetRepository(target.GitHubTab, CreateRepositoryModel(owner, "name"));
target.Path = $"d:\\efault\\{owner}\\foo";
SetRepository(target.GitHubTab, CreateRepositoryModel(owner, "repo"));
Assert.That(target.Path, Is.EqualTo("d:\\efault\\repo"));
Assert.That(target.Path, Is.EqualTo($"d:\\efault\\{owner}\\repo"));
}
[TestCase("c:\\base", "owner1/repo1", "c:\\base\\owner1\\repo1", "owner2/repo2", "c:\\base\\owner2\\repo2",
Description = "Path unchanged")]
[TestCase("c:\\base", "owner1/repo1", "c:\\base\\owner1\\changed", "owner2/repo2", "c:\\base\\owner2\\repo2",
Description = "Repo name changed")]
[TestCase("c:\\base", "owner1/repo1", "c:\\base\\owner1", "owner2/repo2", "c:\\base\\owner2\\repo2",
Description = "Repo name deleted")]
[TestCase("c:\\base", "owner1/repo1", "c:\\base", "owner2/repo2", "c:\\base\\owner2\\repo2",
Description = "Base path reverted")]
[TestCase("c:\\base", "owner1/repo1", "c:\\new\\base\\owner1\\changed", "owner2/repo2", "c:\\new\\base\\owner2\\repo2",
Description = "Base path and repo name changed")]
[TestCase("c:\\base", "owner1/repo1", "c:\\new\\base\\owner1", "owner2/repo2", "c:\\new\\base\\owner2\\repo2",
Description = "Base path changed and repo name deleted")]
[TestCase("c:\\base", "owner1/repo1", "c:\\new\\base", "owner2/repo2", "c:\\new\\base\\owner2\\repo2",
Description = "Base path changed and repo owner/name deleted")]
[TestCase("c:\\base", "owner1/repo1", "", "owner2/repo2", "c:\\base\\owner2\\repo2",
Description = "Base path cleared")]
[TestCase("c:\\base", "owner1/repo1", "c:\\base\\repo1", "owner2/repo2", "c:\\base\\owner2\\repo2",
Description = "Owner deleted")]
[TestCase("c:\\base", "same/same", "c:\\base\\same\\same", "owner2/repo2", "c:\\base\\owner2\\repo2",
Description = "Owner and repo have same name")]
public async Task User_Edits_Path(string defaultClonePath, string repo1, string userPath, string repo2, string expectPath)
{
var target = CreateTarget(defaultClonePath: defaultClonePath);
SetRepository(target.GitHubTab, CreateRepositoryModel(repo1));
target.Path = userPath;
SetRepository(target.GitHubTab, CreateRepositoryModel(repo2));
Assert.That(target.Path, Is.EqualTo(expectPath));
}
[Test]
@ -175,7 +204,7 @@ namespace GitHub.App.UnitTests.ViewModels.Dialog.Clone
await target.InitializeAsync(null);
SetRepository(target.GitHubTab, Substitute.For<IRepositoryModel>());
SetRepository(target.GitHubTab, CreateRepositoryModel());
Assert.That(target.Clone.CanExecute(null), Is.True);
}
@ -187,7 +216,7 @@ namespace GitHub.App.UnitTests.ViewModels.Dialog.Clone
await target.InitializeAsync(null);
SetRepository(target.GitHubTab, Substitute.For<IRepositoryModel>());
SetRepository(target.GitHubTab, CreateRepositoryModel());
Assert.That(target.Clone.CanExecute(null), Is.True);
target.Path = "d:\\exists";
@ -233,10 +262,10 @@ namespace GitHub.App.UnitTests.ViewModels.Dialog.Clone
return result;
}
static IRepositoryCloneService CreateRepositoryCloneService()
static IRepositoryCloneService CreateRepositoryCloneService(string defaultClonePath)
{
var result = Substitute.For<IRepositoryCloneService>();
result.DefaultClonePath.Returns("d:\\efault\\path");
result.DefaultClonePath.Returns(defaultClonePath);
result.DestinationExists("d:\\exists").Returns(true);
return result;
}
@ -247,11 +276,12 @@ namespace GitHub.App.UnitTests.ViewModels.Dialog.Clone
IRepositoryCloneService service = null,
IRepositorySelectViewModel gitHubTab = null,
IRepositorySelectViewModel enterpriseTab = null,
IRepositoryUrlViewModel urlTab = null)
IRepositoryUrlViewModel urlTab = null,
string defaultClonePath = "d:\\efault\\path")
{
os = os ?? Substitute.For<IOperatingSystem>();
connectionManager = connectionManager ?? CreateConnectionManager("https://github.com");
service = service ?? CreateRepositoryCloneService();
service = service ?? CreateRepositoryCloneService(defaultClonePath);
gitHubTab = gitHubTab ?? CreateSelectViewModel();
enterpriseTab = enterpriseTab ?? CreateSelectViewModel();
urlTab = urlTab ?? Substitute.For<IRepositoryUrlViewModel>();
@ -264,5 +294,20 @@ namespace GitHub.App.UnitTests.ViewModels.Dialog.Clone
enterpriseTab,
urlTab);
}
static IRepositoryModel CreateRepositoryModel(string repo = "owner/repo")
{
var split = repo.Split('/');
var (owner, name) = (split[0], split[1]);
return CreateRepositoryModel(owner, name);
}
static IRepositoryModel CreateRepositoryModel(string owner, string name)
{
var repository = Substitute.For<IRepositoryModel>();
repository.Owner.Returns(owner);
repository.Name.Returns(name);
return repository;
}
}
}

Просмотреть файл

@ -18,7 +18,7 @@ namespace GitHub.InlineReviews.UnitTests.Services
public void ShouldParsePr960()
{
var target = new DiffService(Substitute.For<IGitClient>());
var result = DiffUtilities.ParseFragment(Resources.pr_960_diff).ToList();
var result = DiffUtilities.ParseFragment(Properties.Resources.pr_960_diff).ToList();
Assert.That(4, Is.EqualTo(result.Count));

Просмотреть файл

@ -1,5 +1,6 @@
using System;
using System.Threading.Tasks;
using GitHub;
using GitHub.Exports;
using GitHub.Primitives;
using GitHub.Services;