first commit
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="applicationSettings"
|
||||
type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<section name="ClassicAssist.Updater.Properties.Settings"
|
||||
type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
|
||||
requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
<applicationSettings>
|
||||
<ClassicAssist.Updater.Properties.Settings>
|
||||
<setting name="RepositoryName" serializeAs="String">
|
||||
<value>ClassicAssist</value>
|
||||
</setting>
|
||||
<setting name="RepositoryOwner" serializeAs="String">
|
||||
<value>Reetus</value>
|
||||
</setting>
|
||||
</ClassicAssist.Updater.Properties.Settings>
|
||||
</applicationSettings>
|
||||
</configuration>
|
||||
@@ -0,0 +1,9 @@
|
||||
<Application x:Class="ClassicAssist.Updater.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="clr-namespace:ClassicAssist.Updater"
|
||||
StartupUri="MainWindow.xaml" Startup="Application_Startup">
|
||||
<Application.Resources>
|
||||
|
||||
</Application.Resources>
|
||||
</Application>
|
||||
@@ -0,0 +1,52 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System.Windows;
|
||||
using CommandLine;
|
||||
using Exceptionless;
|
||||
using IOPath = System.IO.Path;
|
||||
|
||||
namespace ClassicAssist.Updater
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for App.xaml
|
||||
/// </summary>
|
||||
public partial class App : Application
|
||||
{
|
||||
public static Options CurrentOptions { get; set; }
|
||||
|
||||
private void Application_Startup( object sender, StartupEventArgs e )
|
||||
{
|
||||
ExceptionlessClient.Default.Configuration.DefaultData.Add( "Locale",
|
||||
Thread.CurrentThread.CurrentUICulture.Name );
|
||||
ExceptionlessClient.Default.Startup( "T8v0i7nL90cVRc4sr2pgo5hviThMPRF3OtQ0bK60" );
|
||||
|
||||
Parser.Default.ParseArguments<Options>( e.Args ).WithParsed( o => CurrentOptions = o );
|
||||
|
||||
if ( string.IsNullOrEmpty( CurrentOptions.Path ) )
|
||||
{
|
||||
CurrentOptions.Path = Environment.CurrentDirectory;
|
||||
}
|
||||
|
||||
if ( CurrentOptions.CurrentVersion != null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( File.Exists( IOPath.Combine( CurrentOptions.Path, "ClassicAssist.dll" ) ) )
|
||||
{
|
||||
if ( Version.TryParse(
|
||||
FileVersionInfo.GetVersionInfo( IOPath.Combine( CurrentOptions.Path, "ClassicAssist.dll" ) )
|
||||
.ProductVersion, out Version version ) )
|
||||
{
|
||||
CurrentOptions.CurrentVersion = version;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentOptions.CurrentVersion = new Version( 0, 0, 0, 0 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net48</TargetFramework>
|
||||
<AssemblyTitle>ClassicAssist.Updater</AssemblyTitle>
|
||||
<Product>ClassicAssist.Updater</Product>
|
||||
<OutputPath>..\Output\</OutputPath>
|
||||
<UseWPF>true</UseWPF>
|
||||
<Configurations>Debug;Release;Develop;Linux</Configurations>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<BuildDate>$([System.DateTime]::op_Subtraction($([System.DateTime]::get_Now().get_Date()),$([System.DateTime]::new(2020,7,4))).get_TotalDays())</BuildDate>
|
||||
<Version>0.3.$(BuildDate).0</Version>
|
||||
<StartupObject>ClassicAssist.Updater.App</StartupObject>
|
||||
<ApplicationIcon>Properties\cog.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CommandLineParser" Version="2.6.0" />
|
||||
<PackageReference Include="Exceptionless" Version="4.3.2027" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
||||
<PackageReference Include="Octokit" Version="0.48.0" />
|
||||
<PackageReference Include="System.IO.Compression.ZipFile" Version="4.3.0" />
|
||||
<PackageReference Include="System.Net.Http" Version="4.3.4" />
|
||||
<PackageReference Include="System.Windows.Interactivity.WPF" Version="2.0.20525" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Update="Properties\Resources.Designer.cs">
|
||||
<DesignTime>True</DesignTime>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Update="Properties\Settings.Designer.cs">
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Update="Properties\Resources.resx">
|
||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Update="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,280 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Threading;
|
||||
using ClassicAssist.Updater.Annotations;
|
||||
using ClassicAssist.Updater.Properties;
|
||||
using Exceptionless;
|
||||
using Exceptionless.Models;
|
||||
using Octokit;
|
||||
using Application = System.Windows.Application;
|
||||
|
||||
namespace ClassicAssist.Updater
|
||||
{
|
||||
public class MainViewModel : INotifyPropertyChanged
|
||||
{
|
||||
private readonly Dispatcher _dispatcher;
|
||||
private long _downloadSize;
|
||||
private bool _isIndeterminate = true;
|
||||
private bool _isUpdating;
|
||||
private ObservableCollection<string> _items = new ObservableCollection<string>();
|
||||
|
||||
public MainViewModel()
|
||||
{
|
||||
_dispatcher = Dispatcher.CurrentDispatcher;
|
||||
|
||||
Task.Run( async () =>
|
||||
{
|
||||
if ( App.CurrentOptions.Stage == UpdaterStage.Initial )
|
||||
{
|
||||
string path = await Task.Run( CheckForUpdate );
|
||||
|
||||
if ( !string.IsNullOrEmpty( path ) )
|
||||
{
|
||||
App.CurrentOptions.UpdatePath = path;
|
||||
}
|
||||
}
|
||||
|
||||
if ( !string.IsNullOrEmpty( App.CurrentOptions.UpdatePath ) )
|
||||
{
|
||||
IsUpdating = true;
|
||||
|
||||
AddText( Resources.Updating_files___ );
|
||||
|
||||
DirectoryInfo source = new DirectoryInfo( App.CurrentOptions.UpdatePath );
|
||||
DirectoryInfo destination = new DirectoryInfo( App.CurrentOptions.Path );
|
||||
|
||||
CopyAll( source, destination );
|
||||
|
||||
AddText( Resources.Done_ );
|
||||
|
||||
IsUpdating = false;
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
public long DownloadSize
|
||||
{
|
||||
get => _downloadSize;
|
||||
set
|
||||
{
|
||||
SetProperty( ref _downloadSize, value );
|
||||
IsIndeterminate = value == 0;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsIndeterminate
|
||||
{
|
||||
get => _isIndeterminate;
|
||||
set => SetProperty( ref _isIndeterminate, value );
|
||||
}
|
||||
|
||||
public bool IsUpdating
|
||||
{
|
||||
get => _isUpdating;
|
||||
set => SetProperty( ref _isUpdating, value );
|
||||
}
|
||||
|
||||
public ObservableCollection<string> Items
|
||||
{
|
||||
get => _items;
|
||||
set => SetProperty( ref _items, value );
|
||||
}
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
//https://stackoverflow.com/questions/627504/what-is-the-best-way-to-recursively-copy-contents-in-c/627518#627518
|
||||
public void CopyAll( DirectoryInfo source, DirectoryInfo target )
|
||||
{
|
||||
//check if the target directory exists
|
||||
if ( Directory.Exists( target.FullName ) == false )
|
||||
{
|
||||
Directory.CreateDirectory( target.FullName );
|
||||
}
|
||||
|
||||
//copy all the files into the new directory
|
||||
|
||||
foreach ( FileInfo fi in source.GetFiles() )
|
||||
{
|
||||
try
|
||||
{
|
||||
fi.CopyTo( Path.Combine( target.ToString(), fi.Name ), true );
|
||||
AddText( string.Format( Resources.Copying__0____, fi.Name ) );
|
||||
}
|
||||
catch ( IOException ie )
|
||||
{
|
||||
//handle it here
|
||||
AddText( ie.Message );
|
||||
}
|
||||
}
|
||||
|
||||
//copy all the sub directories using recursion
|
||||
|
||||
foreach ( DirectoryInfo diSourceDir in source.GetDirectories() )
|
||||
{
|
||||
DirectoryInfo nextTargetDir = target.CreateSubdirectory( diSourceDir.Name );
|
||||
CopyAll( diSourceDir, nextTargetDir );
|
||||
}
|
||||
}
|
||||
|
||||
private async Task<string> CheckForUpdate()
|
||||
{
|
||||
try
|
||||
{
|
||||
IsUpdating = true;
|
||||
|
||||
AddText( Resources.Checking_for_latest_release___ );
|
||||
|
||||
GitHubClient client = new GitHubClient( new ProductHeaderValue( "ClassicAssist" ) );
|
||||
|
||||
IReadOnlyList<Release> releases =
|
||||
await client.Repository.Release.GetAll( Settings.Default.RepositoryOwner,
|
||||
Settings.Default.RepositoryName );
|
||||
|
||||
Release latestRelease = releases?.FirstOrDefault();
|
||||
|
||||
if ( latestRelease == null )
|
||||
{
|
||||
throw new InvalidOperationException( Resources.Unable_to_locate_GitHub_release );
|
||||
}
|
||||
|
||||
AddText( $"{Resources.Latest_Release_} {latestRelease.TagName}" );
|
||||
|
||||
Version newVersion = Version.Parse( latestRelease.TagName );
|
||||
|
||||
if ( newVersion > App.CurrentOptions.CurrentVersion || App.CurrentOptions.Force )
|
||||
{
|
||||
ExceptionlessClient.Default.SubmitEvent( new Event
|
||||
{
|
||||
Message =
|
||||
$"Update: Previous version: {App.CurrentOptions.CurrentVersion}, New version: {newVersion}"
|
||||
} );
|
||||
|
||||
if ( App.CurrentOptions.PID != 0 )
|
||||
{
|
||||
Process p = Process.GetProcessById( App.CurrentOptions.PID );
|
||||
p.Kill();
|
||||
await Task.Delay( 2000 );
|
||||
}
|
||||
|
||||
if ( latestRelease.Assets.Count == 0 )
|
||||
{
|
||||
throw new InvalidOperationException( Resources.No_release_asset___ );
|
||||
}
|
||||
|
||||
ReleaseAsset assest = latestRelease.Assets.FirstOrDefault( a =>
|
||||
a.Name.EndsWith( ".zip", StringComparison.InvariantCultureIgnoreCase ) );
|
||||
|
||||
if ( assest == null )
|
||||
{
|
||||
AddText( Resources.Cannot_locate_update_package___ );
|
||||
return null;
|
||||
}
|
||||
|
||||
AddText( $"{Resources.Downloading} {assest.Name}..." );
|
||||
|
||||
string fileName = await DownloadFile( assest.BrowserDownloadUrl, assest.Size );
|
||||
|
||||
AddText( Resources.Extracting_package___ );
|
||||
|
||||
string updatePath = await ExtractPackage( fileName, newVersion );
|
||||
|
||||
if ( !File.Exists( Path.Combine( updatePath, "ClassicAssist.Updater.exe" ) ) )
|
||||
{
|
||||
return updatePath;
|
||||
}
|
||||
|
||||
// if directory contains updater...
|
||||
|
||||
ProcessStartInfo psi = new ProcessStartInfo(
|
||||
Path.Combine( updatePath, "ClassicAssist.Updater.exe" ),
|
||||
$"--stage Install --updatepath {updatePath} --path {App.CurrentOptions.Path}" );
|
||||
Process.Start( psi );
|
||||
|
||||
_dispatcher.Invoke( () => Application.Current.Shutdown() );
|
||||
|
||||
return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
AddText( Resources.No_new_release_available___ );
|
||||
}
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
AddText( $"{Resources.Error_} {e.Message}" );
|
||||
}
|
||||
finally
|
||||
{
|
||||
IsUpdating = false;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static async Task<string> ExtractPackage( string fileName, Version newVersion )
|
||||
{
|
||||
string path = Path.Combine( Path.GetTempPath(), $"CAUpdate-{newVersion}" );
|
||||
|
||||
try
|
||||
{
|
||||
await Task.Run( () => ZipFile.ExtractToDirectory( fileName, path ) );
|
||||
}
|
||||
catch ( Exception )
|
||||
{
|
||||
// ignored
|
||||
}
|
||||
|
||||
return path;
|
||||
}
|
||||
|
||||
private static async Task<string> DownloadFile( string browserDownloadUrl, int size )
|
||||
{
|
||||
using ( HttpClient http = new HttpClient() )
|
||||
{
|
||||
http.Timeout = TimeSpan.FromMinutes( 5 );
|
||||
|
||||
string fileName = Path.Combine( Environment.CurrentDirectory, "Update.zip" );
|
||||
|
||||
http.DefaultRequestHeaders.Add( "User-Agent", "ClassicAssist Updater" );
|
||||
|
||||
byte[] response = await http.GetByteArrayAsync( browserDownloadUrl );
|
||||
|
||||
if ( response.Length != size )
|
||||
{
|
||||
throw new InvalidOperationException( Resources.Downloaded_size_doesn_t_match_expected___ );
|
||||
}
|
||||
|
||||
File.WriteAllBytes( fileName, response );
|
||||
|
||||
return fileName;
|
||||
}
|
||||
}
|
||||
|
||||
private void AddText( string message )
|
||||
{
|
||||
_dispatcher.Invoke( () => Items.Add( message ) );
|
||||
}
|
||||
|
||||
[NotifyPropertyChangedInvocator]
|
||||
protected virtual void OnPropertyChanged( [CallerMemberName] string propertyName = null )
|
||||
{
|
||||
PropertyChanged?.Invoke( this, new PropertyChangedEventArgs( propertyName ) );
|
||||
}
|
||||
|
||||
// ReSharper disable once RedundantAssignment
|
||||
private void SetProperty<T>( ref T obj, T value, [CallerMemberName] string propertyName = null )
|
||||
{
|
||||
obj = value;
|
||||
OnPropertyChanged( propertyName );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
<Window x:Class="ClassicAssist.Updater.MainWindow"
|
||||
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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:ClassicAssist.Updater"
|
||||
xmlns:properties="clr-namespace:ClassicAssist.Updater.Properties"
|
||||
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
|
||||
mc:Ignorable="d"
|
||||
Title="{x:Static properties:Resources.ClassicAssist_Updater}" Height="400" Width="400"
|
||||
WindowStartupLocation="CenterScreen">
|
||||
<Window.Resources>
|
||||
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
|
||||
<local:InverseBooleanConverter x:Key="InverseBooleanConverter" />
|
||||
</Window.Resources>
|
||||
<Window.DataContext>
|
||||
<local:MainViewModel />
|
||||
</Window.DataContext>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<ProgressBar Height="7"
|
||||
Visibility="{Binding IsUpdating, Converter={StaticResource BooleanToVisibilityConverter}}"
|
||||
IsIndeterminate="{Binding IsIndeterminate}"
|
||||
Maximum="{Binding DownloadSize}" Grid.Row="0" />
|
||||
<Grid Grid.Row="1" Margin="10">
|
||||
<ListBox ItemsSource="{Binding Items}" local:ListBoxBehavior.ScrollOnNewItem="True"
|
||||
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
|
||||
ScrollViewer.VerticalScrollBarVisibility="Visible" />
|
||||
</Grid>
|
||||
<StackPanel Grid.Row="2" Margin="10,0,10,10">
|
||||
<Button Content="{x:Static properties:Resources.Close}" Width="100" HorizontalAlignment="Right"
|
||||
IsEnabled="{Binding IsUpdating, Converter={StaticResource InverseBooleanConverter}}">
|
||||
<i:Interaction.Behaviors>
|
||||
<local:CloseBehaviour />
|
||||
</i:Interaction.Behaviors>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Window>
|
||||
@@ -0,0 +1,15 @@
|
||||
using System.Windows;
|
||||
|
||||
namespace ClassicAssist.Updater
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for MainWindow.xaml
|
||||
/// </summary>
|
||||
public partial class MainWindow : Window
|
||||
{
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.ComponentModel;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace ClassicAssist.Updater
|
||||
{
|
||||
internal class ListBoxBehavior
|
||||
{
|
||||
private static readonly Dictionary<ListBox, Capture> Associations = new Dictionary<ListBox, Capture>();
|
||||
|
||||
public static readonly DependencyProperty ScrollOnNewItemProperty =
|
||||
DependencyProperty.RegisterAttached( "ScrollOnNewItem", typeof( bool ), typeof( ListBoxBehavior ),
|
||||
new UIPropertyMetadata( false, OnScrollOnNewItemChanged ) );
|
||||
|
||||
public static bool GetScrollOnNewItem( DependencyObject obj )
|
||||
{
|
||||
return (bool) obj.GetValue( ScrollOnNewItemProperty );
|
||||
}
|
||||
|
||||
public static void SetScrollOnNewItem( DependencyObject obj, bool value )
|
||||
{
|
||||
obj.SetValue( ScrollOnNewItemProperty, value );
|
||||
}
|
||||
|
||||
public static void OnScrollOnNewItemChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
|
||||
{
|
||||
ListBox listBox = d as ListBox;
|
||||
|
||||
if ( listBox == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
bool oldValue = (bool) e.OldValue, newValue = (bool) e.NewValue;
|
||||
|
||||
if ( newValue == oldValue )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( newValue )
|
||||
{
|
||||
listBox.Loaded += ListBox_Loaded;
|
||||
listBox.Unloaded += ListBox_Unloaded;
|
||||
PropertyDescriptor itemsSourcePropertyDescriptor =
|
||||
TypeDescriptor.GetProperties( listBox )["ItemsSource"];
|
||||
itemsSourcePropertyDescriptor.AddValueChanged( listBox, ListBox_ItemsSourceChanged );
|
||||
}
|
||||
else
|
||||
{
|
||||
listBox.Loaded -= ListBox_Loaded;
|
||||
listBox.Unloaded -= ListBox_Unloaded;
|
||||
|
||||
if ( Associations.ContainsKey( listBox ) )
|
||||
{
|
||||
Associations[listBox].Dispose();
|
||||
}
|
||||
|
||||
PropertyDescriptor itemsSourcePropertyDescriptor =
|
||||
TypeDescriptor.GetProperties( listBox )["ItemsSource"];
|
||||
itemsSourcePropertyDescriptor.RemoveValueChanged( listBox, ListBox_ItemsSourceChanged );
|
||||
}
|
||||
}
|
||||
|
||||
private static void ListBox_ItemsSourceChanged( object sender, EventArgs e )
|
||||
{
|
||||
ListBox listBox = (ListBox) sender;
|
||||
|
||||
if ( Associations.ContainsKey( listBox ) )
|
||||
{
|
||||
Associations[listBox].Dispose();
|
||||
}
|
||||
|
||||
Associations[listBox] = new Capture( listBox );
|
||||
}
|
||||
|
||||
private static void ListBox_Unloaded( object sender, RoutedEventArgs e )
|
||||
{
|
||||
ListBox listBox = (ListBox) sender;
|
||||
|
||||
if ( Associations.ContainsKey( listBox ) )
|
||||
{
|
||||
Associations[listBox].Dispose();
|
||||
}
|
||||
|
||||
listBox.Unloaded -= ListBox_Unloaded;
|
||||
}
|
||||
|
||||
private static void ListBox_Loaded( object sender, RoutedEventArgs e )
|
||||
{
|
||||
ListBox listBox = (ListBox) sender;
|
||||
INotifyCollectionChanged incc = listBox.Items;
|
||||
|
||||
if ( incc == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
listBox.Loaded -= ListBox_Loaded;
|
||||
Associations[listBox] = new Capture( listBox );
|
||||
}
|
||||
|
||||
private class Capture : IDisposable
|
||||
{
|
||||
private readonly INotifyCollectionChanged incc;
|
||||
private readonly ListBox listBox;
|
||||
|
||||
public Capture( ListBox listBox )
|
||||
{
|
||||
this.listBox = listBox;
|
||||
incc = listBox.ItemsSource as INotifyCollectionChanged;
|
||||
|
||||
if ( incc != null )
|
||||
{
|
||||
incc.CollectionChanged += incc_CollectionChanged;
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if ( incc != null )
|
||||
{
|
||||
incc.CollectionChanged -= incc_CollectionChanged;
|
||||
}
|
||||
}
|
||||
|
||||
private void incc_CollectionChanged( object sender, NotifyCollectionChangedEventArgs e )
|
||||
{
|
||||
if ( e.Action == NotifyCollectionChangedAction.Add )
|
||||
{
|
||||
listBox.ScrollIntoView( e.NewItems[0] );
|
||||
listBox.SelectedItem = e.NewItems[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class AutoScrollBehavior
|
||||
{
|
||||
public static readonly DependencyProperty AutoScrollProperty =
|
||||
DependencyProperty.RegisterAttached( "AutoScroll", typeof( bool ), typeof( AutoScrollBehavior ),
|
||||
new PropertyMetadata( false, AutoScrollPropertyChanged ) );
|
||||
|
||||
public static void AutoScrollPropertyChanged( DependencyObject obj, DependencyPropertyChangedEventArgs args )
|
||||
{
|
||||
ScrollViewer scrollViewer = obj as ScrollViewer;
|
||||
|
||||
if ( scrollViewer != null && (bool) args.NewValue )
|
||||
{
|
||||
scrollViewer.ScrollChanged += ScrollViewer_ScrollChanged;
|
||||
scrollViewer.ScrollToEnd();
|
||||
}
|
||||
else
|
||||
{
|
||||
scrollViewer.ScrollChanged -= ScrollViewer_ScrollChanged;
|
||||
}
|
||||
}
|
||||
|
||||
private static void ScrollViewer_ScrollChanged( object sender, ScrollChangedEventArgs e )
|
||||
{
|
||||
// Only scroll to bottom when the extent changed. Otherwise you can't scroll up
|
||||
if ( e.ExtentHeightChange != 0 )
|
||||
{
|
||||
ScrollViewer scrollViewer = sender as ScrollViewer;
|
||||
scrollViewer?.ScrollToBottom();
|
||||
}
|
||||
}
|
||||
|
||||
public static bool GetAutoScroll( DependencyObject obj )
|
||||
{
|
||||
return (bool) obj.GetValue( AutoScrollProperty );
|
||||
}
|
||||
|
||||
public static void SetAutoScroll( DependencyObject obj, bool value )
|
||||
{
|
||||
obj.SetValue( AutoScrollProperty, value );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Interactivity;
|
||||
|
||||
namespace ClassicAssist.Updater
|
||||
{
|
||||
public class CloseBehaviour : Behavior<Button>
|
||||
{
|
||||
protected override void OnAttached()
|
||||
{
|
||||
base.OnAttached();
|
||||
|
||||
AssociatedObject.Click += OnClick;
|
||||
}
|
||||
|
||||
protected override void OnDetaching()
|
||||
{
|
||||
AssociatedObject.Click -= OnClick;
|
||||
}
|
||||
|
||||
private void OnClick( object sender, RoutedEventArgs e )
|
||||
{
|
||||
if ( !( sender is Button button ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Window window = Window.GetWindow( button );
|
||||
|
||||
window?.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace ClassicAssist.Updater
|
||||
{
|
||||
public class InverseBooleanConverter : IValueConverter
|
||||
{
|
||||
public object Convert( object value, Type targetType, object parameter, CultureInfo culture )
|
||||
{
|
||||
try
|
||||
{
|
||||
bool testValue = (bool) value;
|
||||
return !testValue; // or do whatever you need with this boolean
|
||||
}
|
||||
catch
|
||||
{
|
||||
return true;
|
||||
} // or false
|
||||
}
|
||||
|
||||
public object ConvertBack( object value, Type targetType, object parameter, CultureInfo culture )
|
||||
{
|
||||
return Convert( value, targetType, parameter, culture );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
using System;
|
||||
using CommandLine;
|
||||
|
||||
namespace ClassicAssist.Updater
|
||||
{
|
||||
public enum UpdaterStage
|
||||
{
|
||||
Initial,
|
||||
Install
|
||||
}
|
||||
|
||||
public class Options
|
||||
{
|
||||
[Option( "version", Required = false )]
|
||||
public Version CurrentVersion { get; set; }
|
||||
|
||||
[Option( "force", Required = false, Default = false )]
|
||||
public bool Force { get; set; }
|
||||
|
||||
[Option( "path", Required = false, Default = "" )]
|
||||
public string Path { get; set; }
|
||||
|
||||
[Option( "pid", Required = false, Default = 0 )]
|
||||
public int PID { get; set; }
|
||||
|
||||
[Option( "stage", Default = UpdaterStage.Initial, Required = false )]
|
||||
public UpdaterStage Stage { get; set; }
|
||||
|
||||
[Option( "updatepath", Required = false, Default = "" )]
|
||||
public string UpdatePath { get; set; }
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
+225
@@ -0,0 +1,225 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <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 ClassicAssist.Updater.Properties {
|
||||
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", "16.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("ClassicAssist.Updater.Properties.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 An error occured....
|
||||
/// </summary>
|
||||
public static string An_error_occured___ {
|
||||
get {
|
||||
return ResourceManager.GetString("An error occured...", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Cannot locate update package....
|
||||
/// </summary>
|
||||
public static string Cannot_locate_update_package___ {
|
||||
get {
|
||||
return ResourceManager.GetString("Cannot locate update package...", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Checking for latest release....
|
||||
/// </summary>
|
||||
public static string Checking_for_latest_release___ {
|
||||
get {
|
||||
return ResourceManager.GetString("Checking for latest release...", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to ClassicAssist Updater.
|
||||
/// </summary>
|
||||
public static string ClassicAssist_Updater {
|
||||
get {
|
||||
return ResourceManager.GetString("ClassicAssist Updater", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Close.
|
||||
/// </summary>
|
||||
public static string Close {
|
||||
get {
|
||||
return ResourceManager.GetString("Close", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Copying {0}....
|
||||
/// </summary>
|
||||
public static string Copying__0____ {
|
||||
get {
|
||||
return ResourceManager.GetString("Copying {0}...", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Done..
|
||||
/// </summary>
|
||||
public static string Done_ {
|
||||
get {
|
||||
return ResourceManager.GetString("Done.", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Downloaded.
|
||||
/// </summary>
|
||||
public static string Downloaded {
|
||||
get {
|
||||
return ResourceManager.GetString("Downloaded", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Downloaded size doesn't match expected....
|
||||
/// </summary>
|
||||
public static string Downloaded_size_doesn_t_match_expected___ {
|
||||
get {
|
||||
return ResourceManager.GetString("Downloaded size doesn\'t match expected...", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Downloading.
|
||||
/// </summary>
|
||||
public static string Downloading {
|
||||
get {
|
||||
return ResourceManager.GetString("Downloading", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Error:.
|
||||
/// </summary>
|
||||
public static string Error_ {
|
||||
get {
|
||||
return ResourceManager.GetString("Error:", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Extracting package....
|
||||
/// </summary>
|
||||
public static string Extracting_package___ {
|
||||
get {
|
||||
return ResourceManager.GetString("Extracting package...", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Latest Release:.
|
||||
/// </summary>
|
||||
public static string Latest_Release_ {
|
||||
get {
|
||||
return ResourceManager.GetString("Latest Release:", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to No new release available....
|
||||
/// </summary>
|
||||
public static string No_new_release_available___ {
|
||||
get {
|
||||
return ResourceManager.GetString("No new release available...", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to No release asset....
|
||||
/// </summary>
|
||||
public static string No_release_asset___ {
|
||||
get {
|
||||
return ResourceManager.GetString("No release asset...", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Relaunching updater....
|
||||
/// </summary>
|
||||
public static string Relaunching_updater___ {
|
||||
get {
|
||||
return ResourceManager.GetString("Relaunching updater...", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Unable to locate GitHub release.
|
||||
/// </summary>
|
||||
public static string Unable_to_locate_GitHub_release {
|
||||
get {
|
||||
return ResourceManager.GetString("Unable to locate GitHub release", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Updating files....
|
||||
/// </summary>
|
||||
public static string Updating_files___ {
|
||||
get {
|
||||
return ResourceManager.GetString("Updating files...", resourceCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
<?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="An error occured..." xml:space="preserve">
|
||||
<value>An error occured...</value>
|
||||
</data>
|
||||
<data name="Cannot locate update package..." xml:space="preserve">
|
||||
<value>Cannot locate update package...</value>
|
||||
</data>
|
||||
<data name="Checking for latest release..." xml:space="preserve">
|
||||
<value>Checking for latest release...</value>
|
||||
</data>
|
||||
<data name="ClassicAssist Updater" xml:space="preserve">
|
||||
<value>ClassicAssist Updater</value>
|
||||
</data>
|
||||
<data name="Close" xml:space="preserve">
|
||||
<value>Close</value>
|
||||
</data>
|
||||
<data name="Copying {0}..." xml:space="preserve">
|
||||
<value>Copying {0}...</value>
|
||||
</data>
|
||||
<data name="Done." xml:space="preserve">
|
||||
<value>Done.</value>
|
||||
</data>
|
||||
<data name="Downloaded" xml:space="preserve">
|
||||
<value>Downloaded</value>
|
||||
</data>
|
||||
<data name="Downloaded size doesn't match expected..." xml:space="preserve">
|
||||
<value>Downloaded size doesn't match expected...</value>
|
||||
</data>
|
||||
<data name="Downloading" xml:space="preserve">
|
||||
<value>Downloading</value>
|
||||
</data>
|
||||
<data name="Error:" xml:space="preserve">
|
||||
<value>Error:</value>
|
||||
</data>
|
||||
<data name="Extracting package..." xml:space="preserve">
|
||||
<value>Extracting package...</value>
|
||||
</data>
|
||||
<data name="Latest Release:" xml:space="preserve">
|
||||
<value>Latest Release:</value>
|
||||
</data>
|
||||
<data name="No new release available..." xml:space="preserve">
|
||||
<value>No new release available...</value>
|
||||
</data>
|
||||
<data name="No release asset..." xml:space="preserve">
|
||||
<value>No release asset...</value>
|
||||
</data>
|
||||
<data name="Relaunching updater..." xml:space="preserve">
|
||||
<value>Relaunching updater...</value>
|
||||
</data>
|
||||
<data name="Unable to locate GitHub release" xml:space="preserve">
|
||||
<value>Unable to locate GitHub release</value>
|
||||
</data>
|
||||
<data name="Updating files..." xml:space="preserve">
|
||||
<value>Updating files...</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,174 @@
|
||||
<?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="An error occured..." xml:space="preserve">
|
||||
<value>An error occured...</value>
|
||||
</data>
|
||||
<data name="Cannot locate update package..." xml:space="preserve">
|
||||
<value>Cannot locate update package...</value>
|
||||
</data>
|
||||
<data name="Checking for latest release..." xml:space="preserve">
|
||||
<value>Checking for latest release...</value>
|
||||
</data>
|
||||
<data name="ClassicAssist Updater" xml:space="preserve">
|
||||
<value>ClassicAssist Updater</value>
|
||||
</data>
|
||||
<data name="Close" xml:space="preserve">
|
||||
<value>Close</value>
|
||||
</data>
|
||||
<data name="Copying {0}..." xml:space="preserve">
|
||||
<value>Copying {0}...</value>
|
||||
</data>
|
||||
<data name="Done." xml:space="preserve">
|
||||
<value>Done.</value>
|
||||
</data>
|
||||
<data name="Downloaded" xml:space="preserve">
|
||||
<value>Downloaded</value>
|
||||
</data>
|
||||
<data name="Downloaded size doesn't match expected..." xml:space="preserve">
|
||||
<value>Downloaded size doesn't match expected...</value>
|
||||
</data>
|
||||
<data name="Downloading" xml:space="preserve">
|
||||
<value>Downloading</value>
|
||||
</data>
|
||||
<data name="Error:" xml:space="preserve">
|
||||
<value>Error:</value>
|
||||
</data>
|
||||
<data name="Extracting package..." xml:space="preserve">
|
||||
<value>Extracting package...</value>
|
||||
</data>
|
||||
<data name="Latest Release:" xml:space="preserve">
|
||||
<value>Latest Release:</value>
|
||||
</data>
|
||||
<data name="No new release available..." xml:space="preserve">
|
||||
<value>No new release available...</value>
|
||||
</data>
|
||||
<data name="No release asset..." xml:space="preserve">
|
||||
<value>No release asset...</value>
|
||||
</data>
|
||||
<data name="Relaunching updater..." xml:space="preserve">
|
||||
<value>Relaunching updater...</value>
|
||||
</data>
|
||||
<data name="Unable to locate GitHub release" xml:space="preserve">
|
||||
<value>Unable to locate GitHub release</value>
|
||||
</data>
|
||||
<data name="Updating files..." xml:space="preserve">
|
||||
<value>Updating files...</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,174 @@
|
||||
<?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="An error occured..." xml:space="preserve">
|
||||
<value>Si è verificato un errore...</value>
|
||||
</data>
|
||||
<data name="Cannot locate update package..." xml:space="preserve">
|
||||
<value>Impossibile individuare il pacchetto di aggiornamento...</value>
|
||||
</data>
|
||||
<data name="Checking for latest release..." xml:space="preserve">
|
||||
<value>Ricerca dell'ultima versione in corso...</value>
|
||||
</data>
|
||||
<data name="ClassicAssist Updater" xml:space="preserve">
|
||||
<value>ClassicAssist Updater</value>
|
||||
</data>
|
||||
<data name="Close" xml:space="preserve">
|
||||
<value>Chiudi</value>
|
||||
</data>
|
||||
<data name="Copying {0}..." xml:space="preserve">
|
||||
<value>Copia di {0} in corso...</value>
|
||||
</data>
|
||||
<data name="Done." xml:space="preserve">
|
||||
<value>Fatto.</value>
|
||||
</data>
|
||||
<data name="Downloaded" xml:space="preserve">
|
||||
<value>Scaricato</value>
|
||||
</data>
|
||||
<data name="Downloaded size doesn't match expected..." xml:space="preserve">
|
||||
<value>Le dimensioni del Download non corrispondono...</value>
|
||||
</data>
|
||||
<data name="Downloading" xml:space="preserve">
|
||||
<value>Sto Scaricando</value>
|
||||
</data>
|
||||
<data name="Error:" xml:space="preserve">
|
||||
<value>Errore:</value>
|
||||
</data>
|
||||
<data name="Extracting package..." xml:space="preserve">
|
||||
<value>Estrazione pacchetto in corso...</value>
|
||||
</data>
|
||||
<data name="Latest Release:" xml:space="preserve">
|
||||
<value>Ultima versione:</value>
|
||||
</data>
|
||||
<data name="No new release available..." xml:space="preserve">
|
||||
<value>Nessuna nuova versione disponibile...</value>
|
||||
</data>
|
||||
<data name="No release asset..." xml:space="preserve">
|
||||
<value>Errore formato update...</value>
|
||||
</data>
|
||||
<data name="Relaunching updater..." xml:space="preserve">
|
||||
<value>Riavvio Updater...</value>
|
||||
</data>
|
||||
<data name="Unable to locate GitHub release" xml:space="preserve">
|
||||
<value>Impossibile individuare la versione di GitHub</value>
|
||||
</data>
|
||||
<data name="Updating files..." xml:space="preserve">
|
||||
<value>Aggiornamento dei file in corso...</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,174 @@
|
||||
<?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="An error occured..." xml:space="preserve">
|
||||
<value>오류가 발생했습니다...</value>
|
||||
</data>
|
||||
<data name="Cannot locate update package..." xml:space="preserve">
|
||||
<value>업데이트 패키지를 찾을 수 없습니다...</value>
|
||||
</data>
|
||||
<data name="ClassicAssist Updater" xml:space="preserve">
|
||||
<value>클래식어시스트 업데이터</value>
|
||||
</data>
|
||||
<data name="Close" xml:space="preserve">
|
||||
<value>닫다</value>
|
||||
</data>
|
||||
<data name="Downloading" xml:space="preserve">
|
||||
<value>다운로드중</value>
|
||||
</data>
|
||||
<data name="Error:" xml:space="preserve">
|
||||
<value>오류:</value>
|
||||
</data>
|
||||
<data name="Extracting package..." xml:space="preserve">
|
||||
<value>패키지 추출 중...</value>
|
||||
</data>
|
||||
<data name="Latest Release:" xml:space="preserve">
|
||||
<value>최신 배포판:</value>
|
||||
</data>
|
||||
<data name="No new release available..." xml:space="preserve">
|
||||
<value>동안미남님 사용할 수 있는 새로운 배포판이 없습니다...</value>
|
||||
</data>
|
||||
<data name="No release asset..." xml:space="preserve">
|
||||
<value>출시된 배포판이 없습니다...</value>
|
||||
</data>
|
||||
<data name="Relaunching updater..." xml:space="preserve">
|
||||
<value>업데이트 다시 시작중...</value>
|
||||
</data>
|
||||
<data name="Unable to locate GitHub release" xml:space="preserve">
|
||||
<value>GitHub에서 찾을 수 없습니다</value>
|
||||
</data>
|
||||
<data name="Updating files..." xml:space="preserve">
|
||||
<value>파일 업데이트 중...</value>
|
||||
</data>
|
||||
<data name="Checking for latest release..." xml:space="preserve">
|
||||
<value>마지막 배포판 확인중...</value>
|
||||
</data>
|
||||
<data name="Copying {0}..." xml:space="preserve">
|
||||
<value>복사중 {0}...</value>
|
||||
</data>
|
||||
<data name="Done." xml:space="preserve">
|
||||
<value>고생했다 다되었구나.</value>
|
||||
</data>
|
||||
<data name="Downloaded" xml:space="preserve">
|
||||
<value>다운로드 완료</value>
|
||||
</data>
|
||||
<data name="Downloaded size doesn't match expected..." xml:space="preserve">
|
||||
<value>다운로드 크기가 올바르지 않습니다...</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,174 @@
|
||||
<?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="An error occured..." xml:space="preserve">
|
||||
<value>Wystąpł błąd...</value>
|
||||
</data>
|
||||
<data name="Cannot locate update package..." xml:space="preserve">
|
||||
<value>Nie można zlokalizować pakietu uaktualnień...</value>
|
||||
</data>
|
||||
<data name="Checking for latest release..." xml:space="preserve">
|
||||
<value>Sprwadzanie najświeższej wersji...</value>
|
||||
</data>
|
||||
<data name="ClassicAssist Updater" xml:space="preserve">
|
||||
<value>ClassicAssist Updater</value>
|
||||
</data>
|
||||
<data name="Close" xml:space="preserve">
|
||||
<value>Zamknij</value>
|
||||
</data>
|
||||
<data name="Copying {0}..." xml:space="preserve">
|
||||
<value>Kopiuje {0}...</value>
|
||||
</data>
|
||||
<data name="Done." xml:space="preserve">
|
||||
<value>Koniec.</value>
|
||||
</data>
|
||||
<data name="Downloaded" xml:space="preserve">
|
||||
<value>Pobrano</value>
|
||||
</data>
|
||||
<data name="Downloaded size doesn't match expected..." xml:space="preserve">
|
||||
<value>Pobrany rozmar nie zgadza się z sumą kontrolną...</value>
|
||||
</data>
|
||||
<data name="Downloading" xml:space="preserve">
|
||||
<value>Pobieram</value>
|
||||
</data>
|
||||
<data name="Error:" xml:space="preserve">
|
||||
<value>Błąd:</value>
|
||||
</data>
|
||||
<data name="Extracting package..." xml:space="preserve">
|
||||
<value>Rozpakowywanie paczki...</value>
|
||||
</data>
|
||||
<data name="Latest Release:" xml:space="preserve">
|
||||
<value>Ostatni release:</value>
|
||||
</data>
|
||||
<data name="No new release available..." xml:space="preserve">
|
||||
<value>Brak dostępnych nowych wersji...</value>
|
||||
</data>
|
||||
<data name="No release asset..." xml:space="preserve">
|
||||
<value>Brak częsci aktualizacji...</value>
|
||||
</data>
|
||||
<data name="Relaunching updater..." xml:space="preserve">
|
||||
<value>Ponowne uruchomienie aktualizacji...</value>
|
||||
</data>
|
||||
<data name="Unable to locate GitHub release" xml:space="preserve">
|
||||
<value>Nie można zlokalizować release na GitHub</value>
|
||||
</data>
|
||||
<data name="Updating files..." xml:space="preserve">
|
||||
<value>Aktualizacja plików...</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,174 @@
|
||||
<?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="An error occured..." xml:space="preserve">
|
||||
<value>An error occured...</value>
|
||||
</data>
|
||||
<data name="Cannot locate update package..." xml:space="preserve">
|
||||
<value>Cannot locate update package...</value>
|
||||
</data>
|
||||
<data name="Checking for latest release..." xml:space="preserve">
|
||||
<value>Checking for latest release...</value>
|
||||
</data>
|
||||
<data name="ClassicAssist Updater" xml:space="preserve">
|
||||
<value>ClassicAssist Updater</value>
|
||||
</data>
|
||||
<data name="Close" xml:space="preserve">
|
||||
<value>Close</value>
|
||||
</data>
|
||||
<data name="Copying {0}..." xml:space="preserve">
|
||||
<value>Copying {0}...</value>
|
||||
</data>
|
||||
<data name="Done." xml:space="preserve">
|
||||
<value>Done.</value>
|
||||
</data>
|
||||
<data name="Downloaded" xml:space="preserve">
|
||||
<value>Downloaded</value>
|
||||
</data>
|
||||
<data name="Downloaded size doesn't match expected..." xml:space="preserve">
|
||||
<value>Downloaded size doesn't match expected...</value>
|
||||
</data>
|
||||
<data name="Downloading" xml:space="preserve">
|
||||
<value>Downloading</value>
|
||||
</data>
|
||||
<data name="Error:" xml:space="preserve">
|
||||
<value>Error:</value>
|
||||
</data>
|
||||
<data name="Extracting package..." xml:space="preserve">
|
||||
<value>Extracting package...</value>
|
||||
</data>
|
||||
<data name="Latest Release:" xml:space="preserve">
|
||||
<value>Latest Release:</value>
|
||||
</data>
|
||||
<data name="No new release available..." xml:space="preserve">
|
||||
<value>No new release available...</value>
|
||||
</data>
|
||||
<data name="No release asset..." xml:space="preserve">
|
||||
<value>No release asset...</value>
|
||||
</data>
|
||||
<data name="Relaunching updater..." xml:space="preserve">
|
||||
<value>Relaunching updater...</value>
|
||||
</data>
|
||||
<data name="Unable to locate GitHub release" xml:space="preserve">
|
||||
<value>Unable to locate GitHub release</value>
|
||||
</data>
|
||||
<data name="Updating files..." xml:space="preserve">
|
||||
<value>Updating files...</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,174 @@
|
||||
<?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="An error occured..." xml:space="preserve">
|
||||
<value>发生错误...</value>
|
||||
</data>
|
||||
<data name="Cannot locate update package..." xml:space="preserve">
|
||||
<value>找不到更新包...</value>
|
||||
</data>
|
||||
<data name="Checking for latest release..." xml:space="preserve">
|
||||
<value>正在检查最新版本...</value>
|
||||
</data>
|
||||
<data name="ClassicAssist Updater" xml:space="preserve">
|
||||
<value>经典辅助更新程序</value>
|
||||
</data>
|
||||
<data name="Close" xml:space="preserve">
|
||||
<value>关闭</value>
|
||||
</data>
|
||||
<data name="Copying {0}..." xml:space="preserve">
|
||||
<value>正在复制{0}...</value>
|
||||
</data>
|
||||
<data name="Done." xml:space="preserve">
|
||||
<value>做。</value>
|
||||
</data>
|
||||
<data name="Downloaded" xml:space="preserve">
|
||||
<value>下载</value>
|
||||
</data>
|
||||
<data name="Downloaded size doesn't match expected..." xml:space="preserve">
|
||||
<value>下载的大小与预期不匹配...</value>
|
||||
</data>
|
||||
<data name="Downloading" xml:space="preserve">
|
||||
<value>下载</value>
|
||||
</data>
|
||||
<data name="Error:" xml:space="preserve">
|
||||
<value>错误:</value>
|
||||
</data>
|
||||
<data name="Extracting package..." xml:space="preserve">
|
||||
<value>正在提取包...</value>
|
||||
</data>
|
||||
<data name="Latest Release:" xml:space="preserve">
|
||||
<value>最新版本:</value>
|
||||
</data>
|
||||
<data name="No new release available..." xml:space="preserve">
|
||||
<value>没有可用的新版本...</value>
|
||||
</data>
|
||||
<data name="No release asset..." xml:space="preserve">
|
||||
<value>没有释放资产...</value>
|
||||
</data>
|
||||
<data name="Relaunching updater..." xml:space="preserve">
|
||||
<value>正在重新启动更新程序...</value>
|
||||
</data>
|
||||
<data name="Unable to locate GitHub release" xml:space="preserve">
|
||||
<value>找不到 GitHub 版本</value>
|
||||
</data>
|
||||
<data name="Updating files..." xml:space="preserve">
|
||||
<value>正在更新文件...</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,44 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <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 ClassicAssist.Updater.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.4.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("ClassicAssist")]
|
||||
public string RepositoryName {
|
||||
get {
|
||||
return ((string)(this["RepositoryName"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Reetus")]
|
||||
public string RepositoryOwner {
|
||||
get {
|
||||
return ((string)(this["RepositoryOwner"]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"
|
||||
GeneratedClassNamespace="ClassicAssist.Updater.Properties" GeneratedClassName="Settings">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="RepositoryName" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">ClassicAssist</Value>
|
||||
</Setting>
|
||||
<Setting Name="RepositoryOwner" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Reetus</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 119 KiB |
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"profiles": {
|
||||
"ClassicAssist.Updater": {
|
||||
"commandName": "Project",
|
||||
"commandLineArgs": "--force"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user