CA-156873, CP-31105 (partial): Apply common branding and versioning to assemblies; branding refactoring

Added brand management files and refactored the following brand variables:
* BRANDING_XENSERVER_UPDATE_URL
* BRANDING_PERF_ALERT_MAIL_LANGUAGE_DEFAULT
* BRANDING_SEARCH
* BRANDING_UPDATE
* BRANDING_BACKUP
* BRANDING_LEGACY_PRODUCT_BRAND
* ISO
* BRANDING_VERSION_5_6
* BRANDING_VERSION_6_2
* BRANDING_VERSION_6_0
* BRANDING_VERSION_6_5
* BRANDING_VERSION_7_0
* BRANDING_VERSION_7_1_2
* BRANDING_VERSION_8_0
* BRANDING_VERSION_8_1
* BRANDIND_COPYRIGHT
* BRANDING_COPYRIGHT_2

Also: Try passing the timestamp server as parameter
This commit is contained in:
Konstantina Chremmou 2020-01-22 14:47:39 +00:00 committed by GitHub
parent 1ac66cd769
commit f7391e991b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
90 changed files with 545 additions and 673 deletions

180
Branding/Branding.resx Normal file
View File

@ -0,0 +1,180 @@
<?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="UPDATES_URL" xml:space="preserve">
<value>https://updates.xensource.com/XenServer/updates.xml</value>
</data>
<data name="PERF_ALERT_MAIL_DEFAULT_LANGUAGE" xml:space="preserve">
<value>en-US</value>
</data>
<data name="EXTENSION_SEARCH" xml:space="preserve">
<value>xensearch</value>
</data>
<data name="EXTENSION_UPDATE" xml:space="preserve">
<value>xsupdate</value>
</data>
<data name="EXTENSION_BACKUP" xml:space="preserve">
<value>xbk</value>
</data>
<data name="LEGACY_PRODUCT" xml:space="preserve">
<value>XenServer</value>
</data>
<data name="Label-host.edition-legacy-enterprise-per-socket" xml:space="preserve">
<value>XenServer Enterprise Per-Socket</value>
</data>
<data name="Label-host.edition-legacy-enterprise-per-user" xml:space="preserve">
<value>XenServer Enterprise Per-User</value>
</data>
<data name="Label-host.edition-legacy-free" xml:space="preserve">
<value>XenServer</value>
</data>
<data name="Label-host.edition-legacy-per-socket" xml:space="preserve">
<value>XenServer Per-Socket</value>
</data>
<data name="Label-host.edition-legacy-standard-per-socket" xml:space="preserve">
<value>XenServer Standard Per-Socket</value>
</data>
<data name="Label-host.edition-legacy-xendesktop" xml:space="preserve">
<value>XenServer for XenDesktop</value>
</data>
<data name="Label-host.edition-enterprise-per-socket" xml:space="preserve">
<value>XenServer Premium Per-Socket</value>
</data>
<data name="Label-host.edition-enterprise-per-user" xml:space="preserve">
<value>XenServer Premium Per-User</value>
</data>
<data name="PRODUCT_VERSION_5_6" xml:space="preserve">
<value>5.6</value>
</data>
<data name="PRODUCT_VERSION_6_5" xml:space="preserve">
<value>6.5</value>
</data>
<data name="PRODUCT_VERSION_7_0" xml:space="preserve">
<value>7.0</value>
</data>
<data name="PRODUCT_VERSION_7_1_2" xml:space="preserve">
<value>7.1.2</value>
</data>
<data name="PRODUCT_VERSION_8_0" xml:space="preserve">
<value>8.0</value>
</data>
<data name="PRODUCT_VERSION_8_1" xml:space="preserve">
<value>8.1</value>
</data>
</root>

View File

@ -46,21 +46,14 @@ TOPLEVEL_BRANDING=${ROOT}/branding.git/xenserver/toplevel-branding
BRANDING_COMPANY_NAME_LEGAL=$(cat ${TOPLEVEL_BRANDING} | grep -F "COMPANY_NAME_LEGAL := " | sed -e 's/COMPANY_NAME_LEGAL := //g')
BRANDING_COMPANY_NAME_SHORT=$(cat ${TOPLEVEL_BRANDING} | grep -F "COMPANY_NAME_SHORT := " | sed -e 's/COMPANY_NAME_SHORT := //g')
BRANDING_COPYRIGHT=\"Copyright\ ©\ ${BRANDING_COMPANY_NAME_LEGAL}\"
BRANDING_COPYRIGHT_2=\"Copyright\ \\\\251\ ${BRANDING_COMPANY_NAME_LEGAL}\"
BRANDING_PRODUCT_BRAND=$(cat ${TOPLEVEL_BRANDING} | grep "^PRODUCT_BRAND := " | sed -e 's/PRODUCT_BRAND := //g')
BRANDING_COMPANY_URL=www.$(cat ${TOPLEVEL_BRANDING} | grep -F "COMPANY_DOMAIN := " | sed -e 's/COMPANY_DOMAIN := //g')
BRANDING_PRODUCT_VERSION_TEXT=$(cat ${TOPLEVEL_VERSIONS} | grep -F "PRODUCT_VERSION_TEXT := " | sed -e 's/PRODUCT_VERSION_TEXT := //g')
BRANDING_PRODUCT_MAJOR_VERSION=$(cat ${TOPLEVEL_VERSIONS} | grep -F "PRODUCT_MAJOR_VERSION := " | sed -e 's/PRODUCT_MAJOR_VERSION := //g')
BRANDING_PRODUCT_MINOR_VERSION=$(cat ${TOPLEVEL_VERSIONS} | grep -F "PRODUCT_MINOR_VERSION := " | sed -e 's/PRODUCT_MINOR_VERSION := //g')
BRANDING_SEARCH=xensearch
BRANDING_UPDATE=xsupdate
BRANDING_BACKUP=xbk
BRANDING_LEGACY_PRODUCT_BRAND=XenServer
BRANDING_SERVER=${BRANDING_PRODUCT_BRAND}
BRANDING_COMPANY_AND_PRODUCT=${BRANDING_PRODUCT_BRAND}
BRANDING_BRAND_CONSOLE=$(cat ${TOPLEVEL_BRANDING} | grep -F "BRAND_CONSOLE := " | sed -e 's/BRAND_CONSOLE := //g')
BRANDING_PERF_ALERT_MAIL_LANGUAGE_DEFAULT=en-US
BRANDING_PV_TOOLS=${BRANDING_COMPANY_NAME_SHORT}\ VM\ Tools
# Check for the micro version override and use it if present otherwise use the one from branding
@ -72,13 +65,3 @@ else
fi
BRANDING_XC_PRODUCT_VERSION=${BRANDING_PRODUCT_MAJOR_VERSION}.${BRANDING_PRODUCT_MINOR_VERSION}.${BRANDING_PRODUCT_MICRO_VERSION}
BRANDING_XC_PRODUCT_5_6_VERSION=5.6
BRANDING_XC_PRODUCT_6_0_VERSION=6.0
BRANDING_XC_PRODUCT_6_2_VERSION=6.2
BRANDING_XC_PRODUCT_6_5_VERSION=6.5
BRANDING_XC_PRODUCT_7_0_VERSION=7.0
BRANDING_XC_PRODUCT_7_1_2_VERSION=7.1.2
BRANDING_XC_PRODUCT_8_0_VERSION=8.0
BRANDING_XC_PRODUCT_8_1_VERSION=8.1
BRANDING_XENSERVER_UPDATE_URL="https://updates.xensource.com/XenServer/updates.xml"

View File

@ -39,9 +39,9 @@ using System.Runtime.InteropServices;
[assembly: AssemblyTitle("CFUValidator")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("CFUValidator")]
[assembly: AssemblyCopyright("Copyright © 2013")]
[assembly: AssemblyCompany("[Citrix]")]
[assembly: AssemblyProduct("[XenCenter]")]
[assembly: AssemblyCopyright("Copyright © [BRANDING_COMPANY_NAME_LEGAL]")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

View File

@ -36,6 +36,7 @@ using System.IO;
using XenAdmin;
using XenAdmin.Actions;
using XenAdmin.Alerts;
using XenAdmin.Core;
using XenCenterLib.Archive;
namespace CFUValidator.Validators
@ -72,9 +73,10 @@ namespace CFUValidator.Validators
}
string tempFileName = NewTempPath();
DownloadAndUnzipXenServerPatchAction action = new DownloadAndUnzipXenServerPatchAction(patch.Patch.Name,
new Uri(patch.Patch.PatchUrl),
tempFileName, false, Branding.Update, Branding.UpdateIso);
DownloadAndUnzipXenServerPatchAction action = new DownloadAndUnzipXenServerPatchAction(patch.Patch.Name,
new Uri(patch.Patch.PatchUrl),
tempFileName, false, BrandManager.ExtensionUpdate, InvisibleMessages.ISO_UPDATE);
try
{
Status = "Download and unzip patch " + patch.Patch.Name;

View File

@ -39,9 +39,9 @@ using System.Runtime.InteropServices;
[assembly: AssemblyTitle("CommandLib")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Citrix")]
[assembly: AssemblyProduct("CommandLib")]
[assembly: AssemblyCopyright("[BRANDING_COPYRIGHT]")]
[assembly: AssemblyCompany("[Citrix]")]
[assembly: AssemblyProduct("[XenCenter]")]
[assembly: AssemblyCopyright("Copyright © [BRANDING_COMPANY_NAME_LEGAL]")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

2
Jenkinsfile vendored
View File

@ -154,7 +154,7 @@ node('xencenter') {
bat """
cd ${env.WORKSPACE}
sh xenadmin.git/mk/xenadmin-build.sh ${GLOBAL_BUILD_NUMBER} ${env.SIGNING_NODE_NAME} ${sbe} ${env.SELFSIGN_THUMBPRINT_SHA1} ${env.SELFSIGN_THUMBPRINT_SHA256}
sh xenadmin.git/mk/xenadmin-build.sh ${GLOBAL_BUILD_NUMBER} ${env.SIGNING_NODE_NAME} ${sbe} ${env.SELFSIGN_THUMBPRINT_SHA1} ${env.SELFSIGN_THUMBPRINT_SHA256} ${env.TIMESTAMP_SERVER_URL}
"""
}

View File

@ -59,7 +59,7 @@ namespace XenAdmin.Alerts.Types
return string.Empty;
var productVersionText = string.Format(Messages.STRING_SPACE_STRING,
Helpers.NaplesOrGreater(Connection) ? Messages.XENSERVER : Messages.XENSERVER_LEGACY,
Helpers.NaplesOrGreater(Connection) ? Messages.XENSERVER : BrandManager.LegacyProduct,
Helpers.GetMaster(Connection)?.ProductVersionText());
var unlicensed = pool.IsFreeLicenseOrExpired();
@ -103,7 +103,7 @@ namespace XenAdmin.Alerts.Types
var versionText = Helpers.GetMaster(Connection)?.ProductVersionText();
var productVersionText = string.Format(Messages.STRING_SPACE_STRING,
Helpers.NaplesOrGreater(Connection) ? Messages.XENSERVER : Messages.XENSERVER_LEGACY,
Helpers.NaplesOrGreater(Connection) ? Messages.XENSERVER : BrandManager.LegacyProduct,
versionText);
var unlicensed = pool.IsFreeLicenseOrExpired();

View File

@ -1,103 +0,0 @@
/* Copyright (c) Citrix Systems, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms,
* with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the
* following disclaimer in the documentation and/or other
* materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
using System;
using System.Collections.Generic;
using System.Text;
// Values taken from branding.hg
namespace XenAdmin
{
static public class Branding
{
public const string PRODUCT_VERSION_TEXT = "[BRANDING_PRODUCT_VERSION_TEXT]";
public const string XENCENTER_VERSION = "[BRANDING_PRODUCT_VERSION]";
public const string COMPANY_NAME_LEGAL = "[BRANDING_COMPANY_NAME_LEGAL]";
public const string BRAND_CONSOLE = "[XenCenter]";
public const string PRODUCT_BRAND = "[XenServer product]";
public const string LEGACY_PRODUCT_BRAND = "[Legacy XenServer product]";
public const string COMPANY_NAME_SHORT = "[Citrix]";
public const string SEARCH = "[xensearch]";
public const string UPDATE = "[xsupdate]";
public const string UPDATEISO = "[iso]";
public const string BACKUP = "[xbk]";
public const string CHECK_FOR_UPDATES_URL = "[BRANDING_XENSERVER_UPDATE_URL]";
public const string BRANDING_PERF_ALERT_MAIL_LANGUAGE_DEFAULT = "[BRANDING_PERF_ALERT_MAIL_LANGUAGE_DEFAULT]";
public const string PV_TOOLS = "[Citrix VM Tools]";
public const string CONVERSION_VPX_MIN_SUPPORTED_VERSION = "[BRANDING_VERSION_7_0]";
public static string Search
{
get
{
var s = SEARCH;
return s != "[" + "xensearch]" ? s.ToLowerInvariant() : InvisibleMessages.XEN_SEARCH.ToLowerInvariant();
}
}
public static string Update
{
get
{
var s = UPDATE;
return s != "[" + "xsupdate]" ? s.ToLowerInvariant() : InvisibleMessages.XEN_UPDATE.ToLowerInvariant();
}
}
public static string UpdateIso
{
get
{
var s = UPDATEISO;
return s != "[" + "iso]" ? s.ToLowerInvariant() : InvisibleMessages.ISO_UPDATE.ToLowerInvariant();
}
}
public static string CheckForUpdatesUrl
{
get
{
var s = CHECK_FOR_UPDATES_URL;
return s != "[" + "BRANDING_XENSERVER_UPDATE_URL]" ? s : InvisibleMessages.XENSERVER_UPDATE_URL;
}
}
public static string ConversionVpxMinimumSupportedVersion
{
get
{
var s = CONVERSION_VPX_MIN_SUPPORTED_VERSION;
return s != "[" + "BRANDING_VERSION_7_0]" ? s.ToLowerInvariant() : Program.Version.ToString();
}
}
}
}

View File

@ -37,6 +37,7 @@ using XenAPI;
using System.Windows.Forms;
using XenAdmin.Actions;
using System.Collections.ObjectModel;
using XenAdmin.Core;
namespace XenAdmin.Commands
@ -80,10 +81,10 @@ namespace XenAdmin.Commands
{
SaveFileDialog dialog = new SaveFileDialog();
dialog.AddExtension = true;
dialog.Filter = string.Format("{0} (*.{1})|*.{1}|{2} (*.*)|*.*", Messages.XS_BACKUP_FILES, Branding.BACKUP, Messages.ALL_FILES);
dialog.Filter = string.Format("{0} (*.{1})|*.{1}|{2} (*.*)|*.*", Messages.XS_BACKUP_FILES, BrandManager.ExtensionBackup, Messages.ALL_FILES);
dialog.FilterIndex = 0;
dialog.RestoreDirectory = true;
dialog.DefaultExt = Branding.BACKUP;
dialog.DefaultExt = BrandManager.ExtensionBackup;
if (dialog.ShowDialog(Parent) != DialogResult.Cancel)
new HostBackupRestoreAction(host, HostBackupRestoreAction.HostBackupRestoreType.backup, dialog.FileName).RunAsync();

View File

@ -36,6 +36,7 @@ using XenAPI;
using System.IO;
using XenAdmin.Dialogs;
using System.Drawing;
using XenAdmin.Core;
namespace XenAdmin.Commands
@ -88,10 +89,10 @@ namespace XenAdmin.Commands
oldDir = Directory.GetCurrentDirectory();
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = true;
dialog.Filter = string.Format(Messages.XENSEARCH_SAVED_SEARCH, Branding.Search);
dialog.Filter = string.Format(Messages.XENSEARCH_SAVED_SEARCH, BrandManager.ExtensionSearch);
dialog.FilterIndex = 0;
dialog.RestoreDirectory = true;
dialog.DefaultExt = Branding.Search;
dialog.DefaultExt = BrandManager.ExtensionSearch;
dialog.CheckPathExists = false;
if (dialog.ShowDialog(Parent) == DialogResult.OK)
@ -108,7 +109,7 @@ namespace XenAdmin.Commands
{
log.InfoFormat("Importing search from '{0}'", filename);
if (filename.EndsWith("." + Branding.Search) && MainWindowCommandInterface.DoSearch(filename))
if (filename.EndsWith("." + BrandManager.ExtensionSearch) && MainWindowCommandInterface.DoSearch(filename))
{
log.InfoFormat("Imported search from '{0}' successfully.", filename);
}
@ -119,7 +120,7 @@ namespace XenAdmin.Commands
using (var dlg = new ThreeButtonDialog(
new ThreeButtonDialog.Details(
SystemIcons.Error,
String.Format(Messages.UNABLE_TO_IMPORT_SEARCH, filename, Branding.Search),
String.Format(Messages.UNABLE_TO_IMPORT_SEARCH, filename, BrandManager.ExtensionSearch),
Messages.XENCENTER)))
{
dlg.ShowDialog(Parent);

View File

@ -98,10 +98,11 @@ namespace XenAdmin.Commands
oldDir = Directory.GetCurrentDirectory();
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = true;
dialog.Filter = string.Format("{0} (*.{1})|*.{1}|{2} (*.*)|*.*", Messages.XS_BACKUP_FILES, Branding.BACKUP, Messages.ALL_FILES);
dialog.Filter = string.Format("{0} (*.{1})|*.{1}|{2} (*.*)|*.*",
Messages.XS_BACKUP_FILES, BrandManager.ExtensionBackup, Messages.ALL_FILES);
dialog.FilterIndex = 0;
dialog.RestoreDirectory = true;
dialog.DefaultExt = Branding.BACKUP;
dialog.DefaultExt = BrandManager.ExtensionBackup;
dialog.CheckPathExists = false;
if (dialog.ShowDialog(Parent) == DialogResult.Cancel)
return;

View File

@ -176,7 +176,7 @@ namespace XenAdmin.Core
private const string FORCE_SYSTEM_FONTS = "ForceSystemFonts";
private const string DISABLE_PLUGINS = "DisablePlugins";
private const string DONT_SUDO = "DontSudo";
private const string XENCENTER_LOCAL_KEYS = @"SOFTWARE\" + Branding.COMPANY_NAME_SHORT + @"\" + Branding.BRAND_CONSOLE;
private const string XENCENTER_LOCAL_KEYS = @"SOFTWARE\" + BrandManager.COMPANY_NAME_SHORT + @"\" + BrandManager.BRAND_CONSOLE;
private const string PSExecutionPolicyKey = @"Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell";
private const string PSExecutionPolicyName = "ExecutionPolicy";
private const string PowerShellKey = @"Software\Microsoft\PowerShell\1";

View File

@ -214,7 +214,7 @@ namespace XenAdmin.Core
public static DownloadUpdatesXmlAction CreateDownloadUpdatesXmlAction(string checkForUpdatesUrl, bool checkForXenCenter = false, bool checkForServerVersion = false, bool checkForPatches = false)
{
string userAgent = string.Format("{0}/{1}.{2} ({3}-bit)", Branding.BRAND_CONSOLE, Branding.XENCENTER_VERSION, Program.Version.Revision.ToString(), IntPtr.Size * 8);
string userAgent = string.Format("{0}/{1}.{2} ({3}-bit)", BrandManager.BRAND_CONSOLE, BrandManager.XENCENTER_VERSION, Program.Version.Revision.ToString(), IntPtr.Size * 8);
string userAgentId = GetUniqueIdHash();
return new DownloadUpdatesXmlAction(checkForXenCenter, checkForServerVersion, checkForPatches, userAgent, userAgentId, checkForUpdatesUrl);
@ -276,13 +276,7 @@ namespace XenAdmin.Core
return action.Succeeded;
}
public static string CheckForUpdatesUrl
{
get
{
return Registry.CustomUpdatesXmlLocation ?? Branding.CheckForUpdatesUrl;
}
}
public static string CheckForUpdatesUrl => Registry.CustomUpdatesXmlLocation ?? BrandManager.UpdatesUrl;
private static void actionCompleted(ActionBase sender)
{

View File

@ -63,7 +63,7 @@ namespace XenAdmin.Diagnostics.Checks
if (!_pool.Connection.Cache.VMs.Any(vm => vm.IsPvVm()))
return null;
if (!_upgrade || _manualUpgrade)
return new PoolHasPVGuestWarningUrl(this, _pool, _upgrade);
return new PoolHasPVGuestWarningUrl(this, _pool);
try
{
var result = Host.call_plugin(Host.Connection.Session, Host.opaque_ref, "prepare_host_upgrade.py", "getVersion", _installMethodConfig);
@ -74,10 +74,10 @@ namespace XenAdmin.Diagnostics.Checks
catch (Exception exception)
{
log.Warn($"Plugin call prepare_host_upgrade.getVersion on {Host.Name()} threw an exception.", exception);
return new PoolHasPVGuestWarningUrl(this, _pool, _upgrade);
return new PoolHasPVGuestWarningUrl(this, _pool);
}
if (Helpers.QuebecOrGreater(upgradePlatformVersion))
return new PoolHasPVGuestWarningUrl(this, _pool, _upgrade);
return new PoolHasPVGuestWarningUrl(this, _pool);
return null;
}

View File

@ -73,7 +73,7 @@ namespace XenAdmin.Diagnostics.Hotfixing
if (patch == null)
{
var master = Helpers.GetMaster(host.Connection);
var filePath = Path.Combine(Program.AssemblyDir, String.Format("{0}.{1}", Filename, Branding.Update));
var filePath = Path.Combine(Program.AssemblyDir, String.Format("{0}.{1}", Filename, BrandManager.ExtensionUpdate));
var action = new UploadPatchAction(master.Connection, filePath, false, false);
action.RunExternal(session);
patch = action.Patch;
@ -87,7 +87,7 @@ namespace XenAdmin.Diagnostics.Hotfixing
if (update == null)
{
var master = Helpers.GetMaster(host.Connection);
var filePath = Path.Combine(Program.AssemblyDir, String.Format("{0}.{1}", Filename, Branding.UpdateIso));
var filePath = Path.Combine(Program.AssemblyDir, string.Format("{0}.{1}", Filename, InvisibleMessages.ISO_UPDATE));
var action = new UploadSupplementalPackAction(master.Connection, new List<Host> { master }, filePath, false);
action.RunExternal(session);
update = action.PoolUpdate;

View File

@ -70,7 +70,7 @@ namespace XenAdmin.Diagnostics.Problems.HostProblem
if (dom0MemoryAfterUpgrade > 0)
return string.Format(Messages.HOST_MEMORY_POST_UPGRADE_DOM0_MEMORY_WARNING_LONG, Helpers.GetName(host), Util.MemorySizeStringSuitableUnits(dom0MemoryAfterUpgrade, true));
if (string.IsNullOrEmpty(upgradeProductVersion))
return string.Format(Messages.HOST_MEMORY_POST_UPGRADE_DEFAULT_WARNING_LONG, Helpers.GetName(host));
return string.Format(Messages.HOST_MEMORY_POST_UPGRADE_DEFAULT_WARNING_LONG, Helpers.GetName(host), BrandManager.ProductVersion80);
return string.Format(Messages.HOST_MEMORY_POST_UPGRADE_VERSION_WARNING_LONG, Helpers.GetName(host), upgradeProductVersion);
}
}

View File

@ -30,6 +30,7 @@
*/
using System;
using XenAdmin.Core;
using XenAdmin.Diagnostics.Checks;
using XenAPI;
@ -60,10 +61,10 @@ namespace XenAdmin.Diagnostics.Problems.HostProblem
switch (reason)
{
case HostNotSafeToUpgradeReason.NotEnoughSpace :
return Messages.NOT_SAFE_TO_UPGRADE_NOT_ENOUGH_SPACE_LONG;
return string.Format(Messages.NOT_SAFE_TO_UPGRADE_NOT_ENOUGH_SPACE_LONG, BrandManager.ProductVersion70);
default:
return Messages.NOT_SAFE_TO_UPGRADE_DEFAULT_WARNING_LONG;
return string.Format(Messages.NOT_SAFE_TO_UPGRADE_DEFAULT_WARNING_LONG, BrandManager.ProductVersion70);
}
}
}

View File

@ -37,20 +37,18 @@ namespace XenAdmin.Diagnostics.Problems.PoolProblem
{
class PoolHasPVGuestWarningUrl : WarningWithInformationUrl
{
private readonly bool _upgrade;
private readonly Pool _pool;
public PoolHasPVGuestWarningUrl(Check check, Pool pool, bool upgrade)
public PoolHasPVGuestWarningUrl(Check check, Pool pool)
: base(check)
{
_pool = pool;
_upgrade = upgrade;
}
private string PVGuestCheckUrl => string.Format(InvisibleMessages.PV_GUESTS_CHECK_URL);
public override Uri UriToLaunch => new Uri(PVGuestCheckUrl);
public override string Title => Description;
public override string Description => _upgrade ? string.Format(Messages.POOL_HAS_PV_GUEST_UPGRADE_WARNING, _pool.Name()) : string.Format(Messages.POOL_HAS_PV_GUEST_UPDATE_WARNING, _pool.Name());
public override string Description => string.Format(Messages.POOL_HAS_PV_GUEST_WARNING, _pool.Name());
public override string HelpMessage => LinkText;
public override string LinkText => Messages.LEARN_MORE;
}

View File

@ -52,9 +52,9 @@ namespace XenAdmin.Dialogs
? string.Format("{0}: {1}", Program.Version.Revision, Messages.COMMON_CRITERIA_TEXT)
: Program.Version.Revision.ToString();
VersionLabel.Text = string.Format(Messages.VERSION_NUMBER, Branding.PRODUCT_VERSION_TEXT,
Branding.XENCENTER_VERSION, buildText, IntPtr.Size * 8);
label2.Text = string.Format(Messages.COPYRIGHT, Branding.COMPANY_NAME_LEGAL);
VersionLabel.Text = string.Format(Messages.VERSION_NUMBER, BrandManager.PRODUCT_VERSION_TEXT,
BrandManager.XENCENTER_VERSION, buildText, IntPtr.Size * 8);
label2.Text = string.Format(Messages.COPYRIGHT, BrandManager.COMPANY_NAME_LEGAL);
label2.Visible = !HiddenFeatures.CopyrightHidden;
showAgainCheckBox.Checked = Properties.Settings.Default.ShowAboutDialog;

View File

@ -121,15 +121,15 @@ namespace XenAdmin.Dialogs
perSocketRadioButton.Visible = false;
xenDesktopEnterpriseRadioButton.Visible = false;
enterprisePerSocketRadioButton.Checked = true;
enterprisePerSocketRadioButton.Text = String.Format(Messages.LICENSE_EDITION_ENTERPRISE_PERSOCKET_LEGACY,
xos.Sum(x => x.Connection.Cache.Hosts.Sum(h => h.CpuSockets())));
enterprisePerUserRadioButton.Text = Messages.LICENSE_EDITION_ENTERPRISE_PERUSER_LEGACY;
enterprisePerSocketRadioButton.Text = string.Format(Messages.LICENSE_EDITION_ENTERPRISE_PERSOCKET_LEGACY,
xos.Sum(x => x.Connection.Cache.Hosts.Sum(h => h.CpuSockets())), BrandManager.LegacyProduct);
enterprisePerUserRadioButton.Text = string.Format(Messages.LICENSE_EDITION_ENTERPRISE_PERUSER_LEGACY, BrandManager.LegacyProduct);
desktopPlusRadioButton.Text = Messages.LICENSE_EDITION_DESKTOP_PLUS_LEGACY;
desktopRadioButton.Text = Messages.LICENSE_EDITION_DESKTOP_LEGACY;
desktopCloudRadioButton.Visible = xos.TrueForAll(x => Helpers.JuraOrGreater(x.Connection) || Helpers.HavanaOrGreater(x.Connection));
desktopCloudRadioButton.Text = Messages.LICENSE_EDITION_DESKTOP_CLOUD_LEGACY;
standardPerSocketRadioButton.Text = String.Format(Messages.LICENSE_EDITION_STANDARD_PERSOCKET_LEGACY,
xos.Sum(x => x.Connection.Cache.Hosts.Sum(h => h.CpuSockets())));
standardPerSocketRadioButton.Text = string.Format(Messages.LICENSE_EDITION_STANDARD_PERSOCKET_LEGACY,
xos.Sum(x => x.Connection.Cache.Hosts.Sum(h => h.CpuSockets())), BrandManager.LegacyProduct);
}
}

View File

@ -172,6 +172,15 @@ namespace XenAdmin.Dialogs
internal override string HelpName => "ConversionManager";
private Version ConversionVpxMinimumSupportedVersion
{
get
{
var version = Program.Version;
return version.ToString() == "0.0.0.0" ? version : new Version(BrandManager.ProductVersion70);
}
}
private void ConnectToVpx()
{
@ -285,14 +294,14 @@ namespace XenAdmin.Dialogs
Program.Invoke(this, () =>
{
if (!Version.TryParse(version, out Version result) ||
result.CompareTo(new Version(Branding.ConversionVpxMinimumSupportedVersion)) < 0)
result.CompareTo(ConversionVpxMinimumSupportedVersion) < 0)
{
statusLabel.Image = Images.StaticImages._000_error_h32bit_16;
statusLabel.Text = Messages.CONVERSION_VERSION_INCOMPATIBILITY;
statusLinkLabel.Reset(Messages.MORE_INFO, () =>
{
using (var dlog = new ThreeButtonDialog(
new ThreeButtonDialog.Details(null, Messages.CONVERSION_VERSION_INCOMPATIBILITY_INFO)))
using (var dlog = new ThreeButtonDialog(new ThreeButtonDialog.Details(null,
string.Format(Messages.CONVERSION_VERSION_INCOMPATIBILITY_INFO, BrandManager.ProductVersion70))))
{
dlog.ShowDialog(this);
}

View File

@ -30,12 +30,7 @@
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using XenAdmin.Core;
namespace XenAdmin.Dialogs
@ -45,13 +40,14 @@ namespace XenAdmin.Dialogs
public LegalNoticesDialog()
{
InitializeComponent();
label2.Text = string.Format(Messages.COPYRIGHT, Branding.COMPANY_NAME_LEGAL);
this.label1.Visible = this.label2.Visible = !XenAdmin.Core.HiddenFeatures.CopyrightHidden;
label1.Text = string.Format(label1.Text, BrandManager.LegacyProduct);
label2.Text = string.Format(Messages.COPYRIGHT, BrandManager.COMPANY_NAME_LEGAL);
label1.Visible = label2.Visible = !HiddenFeatures.CopyrightHidden;
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
Close();
}
}
}

View File

@ -300,7 +300,7 @@ Xen, the Xen logo, XenMotion are trademarks and/or registered trademarks of [Cit
<value>5</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>[Citrix]、[Citrix XenServer]、[Legacy XenServer product]、Xen、Xen のロゴ、[XenCenter]、XenMotion は、米国およびその他の国の [Citrix] Systems, Inc. の商標または登録商標です。</value>
<value>[Citrix]、[Citrix XenServer]、{0}、Xen、Xen のロゴ、[XenCenter]、XenMotion は、米国およびその他の国の [Citrix] Systems, Inc. の商標または登録商標です。</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>

View File

@ -294,13 +294,13 @@ Xen, the Xen logo, XenMotion are trademarks and/or registered trademarks of [Cit
<value>3, 0, 3, 15</value>
</data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>559, 30</value>
<value>514, 30</value>
</data>
<data name="label1.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>[Citrix], [Citrix XenServer], [Legacy XenServer product], Xen, the Xen logo, [XenCenter], XenMotion are trademarks and/or registered trademarks of [Citrix] Systems, Inc. in the United States and other countries.</value>
<value>[Citrix], [Citrix XenServer], {0}, Xen, the Xen logo, [XenCenter], XenMotion are trademarks and/or registered trademarks of [Citrix] Systems, Inc. in the United States and other countries.</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>

View File

@ -300,7 +300,7 @@ Xen, the Xen logo, XenMotion are trademarks and/or registered trademarks of [Cit
<value>5</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>[Citrix]、[Citrix XenServer]、[Legacy XenServer product]、Xen 和 Xen 徽标、[XenCenter]、XenMotion 是 [Citrix] Systems, Inc. 在美国及其他国家/地区的商标和/或注册商标。</value>
<value>[Citrix]、[Citrix XenServer]、{0}、Xen 和 Xen 徽标、[XenCenter]、XenMotion 是 [Citrix] Systems, Inc. 在美国及其他国家/地区的商标和/或注册商标。</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>

View File

@ -31,6 +31,7 @@
using System.Collections.Generic;
using System.Linq;
using XenAdmin.Core;
namespace XenAdmin.Dialogs.LicenseManagerSelectionVerifiers
{
@ -40,7 +41,9 @@ namespace XenAdmin.Dialogs.LicenseManagerSelectionVerifiers
public override string VerificationDetails()
{
return Status == VerificationStatus.Error && RowsToVerify.Count > 1 ? Messages.LICENSE_NO_MULTISELECT_LICENSE : string.Empty;
return Status == VerificationStatus.Error && RowsToVerify.Count > 1
? string.Format(Messages.LICENSE_NO_MULTISELECT_LICENSE, BrandManager.ProductVersion56)
: string.Empty;
}

View File

@ -58,7 +58,7 @@ namespace XenAdmin.Help
HelpUrl = InvisibleMessages.HELP_URL;
HelpQuery = string.Format(InvisibleMessages.HELP_URL_QUERY,
$"{Branding.XENCENTER_VERSION}.{Program.Version.Revision}".Replace('.', '_'),
$"{BrandManager.XENCENTER_VERSION}.{Program.Version.Revision}".Replace('.', '_'),
Messages.XENCENTER);
}
}

View File

@ -867,8 +867,8 @@ namespace XenAdmin
log.InfoFormat("Connected to {0} (version {1}, build {2}.{3}) with {4} {5} (build {6}.{7})",
Helpers.GetName(master), Helpers.HostProductVersionText(master), Helpers.HostProductVersion(master),
master.BuildNumberRaw(), Messages.XENCENTER, Branding.PRODUCT_VERSION_TEXT,
Branding.XENCENTER_VERSION, Program.Version.Revision);
master.BuildNumberRaw(), Messages.XENCENTER, BrandManager.PRODUCT_VERSION_TEXT,
BrandManager.XENCENTER_VERSION, Program.Version.Revision);
// Check the PRODUCT_BRAND
if (!Program.RunInAutomatedTestMode && !SameProductBrand(master))
@ -901,10 +901,10 @@ namespace XenAdmin
Program.Invoke(Program.MainWindow, () =>
{
var title = string.Format(Messages.CONNECTION_REFUSED_TITLE, Helpers.GetName(master).Ellipsise(80));
new ActionBase(title, "", false, true, Messages.SLAVE_TOO_OLD);
new ActionBase(title, "", false, true, string.Format(Messages.SLAVE_TOO_OLD, BrandManager.ProductVersion70));
using (var dlg = new ThreeButtonDialog(
new ThreeButtonDialog.Details(SystemIcons.Error, Messages.SLAVE_TOO_OLD, Messages.CONNECT_TO_SERVER),
new ThreeButtonDialog.Details(SystemIcons.Error, string.Format(Messages.SLAVE_TOO_OLD, BrandManager.ProductVersion70), Messages.CONNECT_TO_SERVER),
ThreeButtonDialog.ButtonOK))
{
dlg.ShowDialog(this);
@ -1000,7 +1000,8 @@ namespace XenAdmin
private static bool SameProductBrand(Host host)
{
var brand = host.ProductBrand();
return brand == Branding.PRODUCT_BRAND || brand == Branding.LEGACY_PRODUCT_BRAND || Branding.PRODUCT_BRAND == "[XenServer product]";
return brand == BrandManager.PRODUCT_BRAND || brand == BrandManager.LegacyProduct ||
BrandManager.PRODUCT_BRAND == "[XenServer product]";
}
/// <summary>

View File

@ -174,7 +174,7 @@ namespace XenAdmin
break;
default://includes Infrastructure and Notifications
Util.ThrowIfParameterNull(search, "search");
newRootNode = new VirtualTreeNode(Branding.BRAND_CONSOLE) { ImageIndex = (int)Icons.Home };
newRootNode = new VirtualTreeNode(BrandManager.BRAND_CONSOLE) { ImageIndex = (int)Icons.Home };
groupAcceptor = CreateGroupAcceptor(newRootNode);
search.PopulateAdapters(groupAcceptor);
break;

View File

@ -287,7 +287,8 @@ namespace XenAdmin.Network
else if (error is ServerNotSupported)
{
// Server version is too old for this version of XenCenter
AddError(owner, connection, Messages.SERVER_TOO_OLD, Messages.SERVER_TOO_OLD_SOLUTION);
AddError(owner, connection, string.Format(Messages.SERVER_TOO_OLD, BrandManager.ProductVersion70),
Messages.SERVER_TOO_OLD_SOLUTION);
}
else
{

View File

@ -908,7 +908,7 @@ namespace XenAdmin.Plugins
request.Method = "POST";
request.ContentType = "xml";
request.ContentLength = Encoding.UTF8.GetBytes(jsCallbackAndData[1]).Length;
request.UserAgent = Branding.BRAND_CONSOLE + "\\Plugin";
request.UserAgent = BrandManager.BRAND_CONSOLE + "\\Plugin";
request.Proxy = XenAdminConfigManager.Provider.GetProxyFromSettings(connection, true);
using (var req = request.GetRequestStream())

View File

@ -220,7 +220,7 @@ namespace XenAdmin
ConnectionsManager.XenConnections.Clear();
ConnectionsManager.History.Clear();
Search.InitSearch(Branding.Search);
Search.InitSearch(BrandManager.ExtensionSearch);
TreeSearch.InitSearch();
AppDomain.CurrentDomain.UnhandledException -= CurrentDomain_UnhandledException;

View File

@ -41,7 +41,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("[Citrix]")]
[assembly: AssemblyProduct("[XenCenter]")]
[assembly: AssemblyCopyright("[BRANDING_COPYRIGHT]")]
[assembly: AssemblyCopyright("Copyright © [BRANDING_COMPANY_NAME_LEGAL]")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

View File

@ -120,8 +120,8 @@ namespace XenAdmin.SettingsPanels
else
{
// Set default value
if (PerfmonOptionsDefinition.MailLanguageHasCode(Branding.BRANDING_PERF_ALERT_MAIL_LANGUAGE_DEFAULT))
MailLanguageComboBox.SelectedValue = Branding.BRANDING_PERF_ALERT_MAIL_LANGUAGE_DEFAULT;
if (PerfmonOptionsDefinition.MailLanguageHasCode(BrandManager.PerfAlertMailDefaultLanguage))
MailLanguageComboBox.SelectedValue = BrandManager.PerfAlertMailDefaultLanguage;
else
MailLanguageComboBox.SelectedIndex = 0;
}

View File

@ -462,7 +462,7 @@ namespace XenAdmin.TabPages
if (vms.Any(vm => vm.has_ballooning() && vm.memory_dynamic_min != vm.memory_static_max))
{
Banner.AppliesToVersion = Messages.XENSERVER_8_1;
Banner.AppliesToVersion = string.Format(Messages.XENSERVER_8_1, BrandManager.ProductVersion81);
Banner.BannerType = DeprecationBanner.Type.Deprecation;
Banner.FeatureName = Messages.DMC;
Banner.LinkUri = HiddenFeatures.LinkLabelHidden ? null : new Uri(InvisibleMessages.DEPRECATION_URL);

View File

@ -292,10 +292,10 @@ namespace XenAdmin.TabPages
using (SaveFileDialog dialog = new SaveFileDialog())
{
dialog.AddExtension = true;
dialog.Filter = string.Format(Messages.XENSEARCH_SAVED_SEARCH, Branding.Search);
dialog.Filter = string.Format(Messages.XENSEARCH_SAVED_SEARCH, BrandManager.ExtensionSearch);
dialog.FilterIndex = 0;
dialog.RestoreDirectory = true;
dialog.DefaultExt = Branding.SEARCH;
dialog.DefaultExt = BrandManager.ExtensionSearch;
dialog.CheckPathExists = false;
if (dialog.ShowDialog(this) != DialogResult.OK)

View File

@ -104,7 +104,7 @@ namespace XenAdmin.TabPages
{
if (sr != null && SR.IsIslOrIslLegacy(sr))
{
Banner.AppliesToVersion = Messages.XENSERVER_6_5;
Banner.AppliesToVersion = string.Format(Messages.XENSERVER_6_5, BrandManager.ProductVersion65);
Banner.BannerType = DeprecationBanner.Type.Removal;
Banner.FeatureName = Messages.ISL_SR;
Banner.LinkUri = HiddenFeatures.LinkLabelHidden ? null : new Uri(InvisibleMessages.ISL_DEPRECATION_URL);

View File

@ -51,6 +51,7 @@ namespace XenAdmin.Wizards.NewPolicyWizard
public NewPolicySnapshotTypePage()
{
InitializeComponent();
label6.Text = string.Format(label6.Text, BrandManager.ProductVersion81);
}
public string SubText

View File

@ -157,7 +157,7 @@
<value>0</value>
</data>
<data name="label6.Text" xml:space="preserve">
<value>[XenServer] [BRANDING_VERSION_8_1] 以降、休止スナップショットは使用できなくなりました。スケジュールされたスナップショットが正常に作成されるようにするには、このオプションの選択を解除してください。</value>
<value>[XenServer] {0} 以降、休止スナップショットは使用できなくなりました。スケジュールされたスナップショットが正常に作成されるようにするには、このオプションの選択を解除してください。</value>
</data>
<data name="&gt;&gt;label6.Name" xml:space="preserve">
<value>label6</value>

View File

@ -157,7 +157,7 @@
<value>0</value>
</data>
<data name="label6.Text" xml:space="preserve">
<value>As of [XenServer] [BRANDING_VERSION_8_1] quiesced snapshots are no longer available. Please deselect this option to ensure your scheduled snapshots are taken successfully.</value>
<value>As of [XenServer] {0} quiesced snapshots are no longer available. Please deselect this option to ensure your scheduled snapshots are taken successfully.</value>
</data>
<data name="&gt;&gt;label6.Name" xml:space="preserve">
<value>label6</value>

View File

@ -157,7 +157,7 @@
<value>0</value>
</data>
<data name="label6.Text" xml:space="preserve">
<value>自 [XenServer] [BRANDING_VERSION_8_1] 起,静止快照不再可用。请取消选择此选项以确保成功创建计划快照。</value>
<value>自 [XenServer] {0} 起,静止快照不再可用。请取消选择此选项以确保成功创建计划快照。</value>
</data>
<data name="&gt;&gt;label6.Name" xml:space="preserve">
<value>label6</value>

View File

@ -73,7 +73,7 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages
{
if(visible)
{
deprecationBanner.AppliesToVersion = Messages.XENSERVER_6_5;
deprecationBanner.AppliesToVersion = string.Format(Messages.XENSERVER_6_5, BrandManager.ProductVersion65);
deprecationBanner.BannerType = DeprecationBanner.Type.Removal;
deprecationBanner.FeatureName = Messages.ISL_SR;
deprecationBanner.LinkUri = HiddenFeatures.LinkLabelHidden ? null : new Uri(InvisibleMessages.ISL_DEPRECATION_URL);

View File

@ -260,9 +260,9 @@ namespace XenAdmin.Wizards.PatchingWizard
else
unzippedUpdateFilePath = null;
if (SelectedPatchFilePath.EndsWith("." + Branding.Update))
if (SelectedPatchFilePath.EndsWith("." + BrandManager.ExtensionUpdate))
SelectedUpdateType = UpdateType.Legacy;
else if (SelectedPatchFilePath.EndsWith("." + Branding.UpdateIso))
else if (SelectedPatchFilePath.EndsWith("." + InvisibleMessages.ISO_UPDATE))
SelectedUpdateType = UpdateType.ISO;
AlertFromFileOnDisk = GetAlertFromFile(SelectedPatchFilePath, out var hasUpdateXml);
@ -295,7 +295,7 @@ namespace XenAdmin.Wizards.PatchingWizard
{
hasUpdateXml = false;
if (!fileName.EndsWith(Branding.UpdateIso))
if (!fileName.EndsWith(InvisibleMessages.ISO_UPDATE))
return null;
var xmlDoc = new XmlDocument();

View File

@ -292,7 +292,7 @@ namespace XenAdmin.Wizards.PatchingWizard
if (!Helpers.ElyOrGreater(host) && Helpers.ElyOrGreater(host.Connection)) // host is pre-Ely, but the master is Ely or greater
{
tooltipText = Messages.PATCHINGWIZARD_SELECTSERVERPAGE_CANNOT_INSTALL_UPDATE_MASTER_POST_7_0;
tooltipText = string.Format(Messages.PATCHINGWIZARD_SELECTSERVERPAGE_CANNOT_INSTALL_UPDATE_MASTER_POST_7_0, BrandManager.ProductVersion70);
return false;
}

View File

@ -88,7 +88,7 @@ namespace XenAdmin.Wizards.PatchingWizard.PlanActions
Uri address = new Uri(patchUri);
tempFileName = Path.GetTempFileName();
var exts = Helpers.ElyOrGreater(Connection) ? Branding.UpdateIso : Branding.Update;
var exts = Helpers.ElyOrGreater(Connection) ? InvisibleMessages.ISO_UPDATE : BrandManager.ExtensionUpdate;
var downloadAction = new DownloadAndUnzipXenServerPatchAction(patch.Name, address, tempFileName, true, exts);
downloadAction.Changed += downloadAndUnzipXenServerPatchAction_Changed;

View File

@ -36,6 +36,7 @@ using System.IO;
using System.Windows.Forms;
using DiscUtils.Iso9660;
using XenAdmin.Actions;
using XenAdmin.Core;
using XenAdmin.Dialogs;
using XenAPI;
@ -54,7 +55,7 @@ namespace XenAdmin.Wizards
{
Multiselect = false,
ShowReadOnly = false,
Filter = string.Format(Messages.PATCHINGWIZARD_SELECTPATCHPAGE_UPDATESEXT, Branding.Update),
Filter = string.Format(Messages.PATCHINGWIZARD_SELECTPATCHPAGE_UPDATESEXT, BrandManager.ExtensionUpdate),
FilterIndex = 0,
CheckFileExists = true,
CheckPathExists = true,
@ -127,7 +128,7 @@ namespace XenAdmin.Wizards
return null;
var unzipAction = new DownloadAndUnzipXenServerPatchAction(Path.GetFileNameWithoutExtension(zippedUpdatePath),
null, zippedUpdatePath, true, Branding.Update, Branding.UpdateIso);
null, zippedUpdatePath, true, BrandManager.ExtensionUpdate, InvisibleMessages.ISO_UPDATE);
using (var dlg = new ActionProgressDialog(unzipAction, ProgressBarStyle.Marquee))
{
@ -151,13 +152,13 @@ namespace XenAdmin.Wizards
return false;
}
bool isValidExt = fileName.ToLowerInvariant().EndsWith("." + Branding.Update.ToLowerInvariant())
bool isValidExt = fileName.ToLowerInvariant().EndsWith("." + BrandManager.ExtensionUpdate.ToLowerInvariant())
|| fileName.ToLowerInvariant().EndsWith(".zip")
|| fileName.ToLowerInvariant().EndsWith(".iso");
if (!isValidExt)
{
failureReason = string.Format(Messages.UPDATES_WIZARD_INVALID_EXTENSION, Branding.Update);
failureReason = string.Format(Messages.UPDATES_WIZARD_INVALID_EXTENSION, BrandManager.ExtensionUpdate);
return false;
}

View File

@ -3310,7 +3310,6 @@
<Compile Include="WinformsXenAdminConfigProvider.cs" />
<Compile Include="Actions\GUIActions\Wlb\ExportReportAction.cs" />
<Compile Include="Actions\GUIActions\Wlb\WlbOptimizePoolAction.cs" />
<Compile Include="Branding.cs" />
<Compile Include="Commands\ActivateVBDCommand.cs" />
<Compile Include="Commands\AddHostCommand.cs">
</Compile>

View File

@ -39,9 +39,9 @@ using System.Runtime.InteropServices;
[assembly: AssemblyTitle("XenAdminTests")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Citrix Systems, Inc.")]
[assembly: AssemblyProduct("XenAdminTests")]
[assembly: AssemblyCopyright("Copyright (c) 2009-2010 Citrix Systems, Inc.")]
[assembly: AssemblyCompany("[Citrix]")]
[assembly: AssemblyProduct("[XenCenter]")]
[assembly: AssemblyCopyright("Copyright © [BRANDING_COMPANY_NAME_LEGAL]")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

View File

@ -34,6 +34,7 @@ using NUnit.Framework;
using XenAdmin.Controls;
using XenAdmin.Model;
using XenAdmin;
using XenAdmin.Core;
using XenAdmin.Network;
namespace XenAdminTests.TreeTests
@ -67,7 +68,7 @@ namespace XenAdminTests.TreeTests
Folder foldersTag = new Folder(null, "Folders");
_tv.Nodes.Add(new VirtualTreeNode(Branding.BRAND_CONSOLE));
_tv.Nodes.Add(new VirtualTreeNode(BrandManager.BRAND_CONSOLE));
VirtualTreeNode folders = new VirtualTreeNode("Folders") { Tag = foldersTag };
@ -80,7 +81,7 @@ namespace XenAdminTests.TreeTests
_tv.SelectedNodes.SetContents(new [] { folders.Nodes[0], folders.Nodes[1] });
// now build up a new nodes tree
VirtualTreeNode newRootNode = new VirtualTreeNode(Branding.BRAND_CONSOLE);
VirtualTreeNode newRootNode = new VirtualTreeNode(BrandManager.BRAND_CONSOLE);
VirtualTreeNode newFolders = new VirtualTreeNode("Folders") { Tag = foldersTag };

View File

@ -31,6 +31,7 @@
using NUnit.Framework;
using XenAdmin.Alerts;
using XenAdmin.Core;
namespace XenAdminTests.UnitTests.AlertTests
@ -44,12 +45,12 @@ namespace XenAdminTests.UnitTests.AlertTests
ClassVerifiers.VerifyGetters(new GuiOldAlert(),
new AlertClassUnitTestData
{
AppliesTo = XenAdmin.Branding.BRAND_CONSOLE,
Description = "There is a newer version of " + XenAdmin.Branding.BRAND_CONSOLE + " available. Please contact your support representative.",
AppliesTo = BrandManager.BRAND_CONSOLE,
Description = "There is a newer version of " + BrandManager.BRAND_CONSOLE + " available. Please contact your support representative.",
FixLinkText = "Go to Web Page",
HelpID = "GuiOldAlert",
HelpLinkText = "Help",
Title = "Newer " + XenAdmin.Branding.BRAND_CONSOLE + " Available",
Title = "Newer " + BrandManager.BRAND_CONSOLE + " Available",
Priority = "Priority5"
});
}

View File

@ -49,11 +49,11 @@ namespace XenAdminTests.UnitTests.AlertTests
ClassVerifiers.VerifyGetters(new XenCenterUpdateAlert(version),
new AlertClassUnitTestData
{
AppliesTo = XenAdmin.Branding.BRAND_CONSOLE,
AppliesTo = BrandManager.BRAND_CONSOLE,
FixLinkText = "Go to Web Page",
HelpID = "XenCenterUpdateAlert",
Description = "xc is now available. Download the new version from the "
+ XenAdmin.Branding.COMPANY_NAME_SHORT + " website.",
+ BrandManager.COMPANY_NAME_SHORT + " website.",
HelpLinkText = "Help",
Title = "xc is now available",
Priority = "Priority5"

View File

@ -65,7 +65,7 @@ namespace XenAdminTests.UnitTests.AlertTests
AppliesTo = "HostAName, HostBName, ConnAName, ConnBName",
FixLinkText = "Go to Web Page",
HelpID = "XenServerUpdateAlert",
Description = "name is now available. Download the latest at the " + XenAdmin.Branding.COMPANY_NAME_SHORT + " website.",
Description = "name is now available. Download the latest at the " + BrandManager.COMPANY_NAME_SHORT + " website.",
HelpLinkText = "Help",
Title = "name is now available",
Priority = "Priority5"
@ -89,7 +89,7 @@ namespace XenAdminTests.UnitTests.AlertTests
AppliesTo = "HostAName, HostBName",
FixLinkText = "Go to Web Page",
HelpID = "XenServerUpdateAlert",
Description = "name is now available. Download the latest at the " + XenAdmin.Branding.COMPANY_NAME_SHORT + " website.",
Description = "name is now available. Download the latest at the " + BrandManager.COMPANY_NAME_SHORT + " website.",
HelpLinkText = "Help",
Title = "name is now available",
Priority = "Priority5"
@ -114,7 +114,7 @@ namespace XenAdminTests.UnitTests.AlertTests
AppliesTo = "ConnAName, ConnBName",
FixLinkText = "Go to Web Page",
HelpID = "XenServerUpdateAlert",
Description = "name is now available. Download the latest at the " + XenAdmin.Branding.COMPANY_NAME_SHORT + " website.",
Description = "name is now available. Download the latest at the " + BrandManager.COMPANY_NAME_SHORT + " website.",
HelpLinkText = "Help",
Title = "name is now available",
Priority = "Priority5"
@ -137,7 +137,7 @@ namespace XenAdminTests.UnitTests.AlertTests
AppliesTo = string.Empty,
FixLinkText = "Go to Web Page",
HelpID = "XenServerUpdateAlert",
Description = "name is now available. Download the latest at the " + XenAdmin.Branding.COMPANY_NAME_SHORT + " website.",
Description = "name is now available. Download the latest at the " + BrandManager.COMPANY_NAME_SHORT + " website.",
HelpLinkText = "Help",
Title = "name is now available",
Priority = "Priority5"

View File

@ -39,6 +39,8 @@ namespace XenAdminTests.WizardTests.updatesState_xml
[TestFixture, Category(TestCategories.UICategoryB)]
public class UpdatesAutomaticModeWizardTest : WizardTest<PatchingWizard>
{
//TODO: as a setup step move succeed.xsupdate to succeed.<BrandManager.ExtensionSearch>
public UpdatesAutomaticModeWizardTest()
: base(new[] {"Before You Start", "Select Update", "Select Servers", "Upload", "Prechecks", "Update Mode", "Install Update"})
{ }

View File

@ -41,7 +41,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("[Citrix]")]
[assembly: AssemblyProduct("[XenCenter]")]
[assembly: AssemblyCopyright("[BRANDING_COPYRIGHT]")]
[assembly: AssemblyCopyright("Copyright © [BRANDING_COMPANY_NAME_LEGAL]")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

View File

@ -41,7 +41,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("[Citrix]")]
[assembly: AssemblyProduct("[XenCenter]")]
[assembly: AssemblyCopyright("[BRANDING_COPYRIGHT]")]
[assembly: AssemblyCopyright("Copyright © [BRANDING_COMPANY_NAME_LEGAL]")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

87
XenModel/BrandManager.cs Normal file
View File

@ -0,0 +1,87 @@
/* Copyright (c) Citrix Systems, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms,
* with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the
* following disclaimer in the documentation and/or other
* materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
using System.Diagnostics;
using System.Resources;
namespace XenAdmin.Core
{
public class BrandManager
{
private static readonly ResourceManager Branding = new ResourceManager("XenAdmin.Branding", typeof(BrandManager).Assembly);
public static string UpdatesUrl => Get("UPDATES_URL");
public static string PerfAlertMailDefaultLanguage => Get("PERF_ALERT_MAIL_DEFAULT_LANGUAGE");
public static string ExtensionSearch => Get("EXTENSION_SEARCH");
public static string ExtensionUpdate => Get("EXTENSION_UPDATE");
public static string ExtensionBackup => Get("EXTENSION_BACKUP");
public static string LegacyProduct => Get("LEGACY_PRODUCT");
public static string ProductVersion56 => Get("PRODUCT_VERSION_5_6");
public static string ProductVersion65 => Get("PRODUCT_VERSION_6_5");
public static string ProductVersion70 => Get("PRODUCT_VERSION_7_0");
public static string ProductVersion712 => Get("PRODUCT_VERSION_7_1_2");
public static string ProductVersion80 => Get("PRODUCT_VERSION_8_0");
public static string ProductVersion81 => Get("PRODUCT_VERSION_8_1");
public const string PRODUCT_BRAND = "[XenServer product]";
public const string COMPANY_NAME_SHORT = "[Citrix]";
public const string COMPANY_AND_PRODUCT_BRAND = "[Citrix XenServer]";
public const string PRODUCT_VERSION_TEXT = "[BRANDING_PRODUCT_VERSION_TEXT]";
public const string XENCENTER_VERSION = "[BRANDING_PRODUCT_VERSION]";
public const string COMPANY_NAME_LEGAL = "[BRANDING_COMPANY_NAME_LEGAL]";
public const string BRAND_CONSOLE = "[XenCenter]";
/// <summary>
/// Returns null if no match is found.
/// </summary>
public static string Get(string s)
{
var result = Branding.GetString(s);
#if DEBUG
Debug.Assert(result != null, $"{s} doesn't exist in Branding");
#endif
return result;
}
}
}

View File

@ -45,20 +45,7 @@ namespace XenAdmin.Core
/// </summary>
public static string GetFriendlyName(string s)
{
var result = FriendlyNames.GetString(s);
#if DEBUG
Debug.Assert(result != null, $"{s} doesn't exist in FriendlyNames");
#endif
return result;
}
/// <summary>
/// Return the result of GetFriendlyName(s), or GetFriendlyName(defKey) if the former returns null.
/// Returns null if no match is found for defKey.
/// </summary>
public static string GetFriendlyName(string s, string defKey)
{
var result = FriendlyNames.GetString(s) ?? FriendlyNames.GetString(defKey);
var result = FriendlyNames.GetString(s) ?? BrandManager.Get(s);
#if DEBUG
Debug.Assert(result != null, $"{s} doesn't exist in FriendlyNames");
#endif

View File

@ -861,24 +861,6 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to [Legacy XenServer product] Premium Per-Socket.
/// </summary>
public static string Label_host_edition_enterprise_per_socket {
get {
return ResourceManager.GetString("Label-host.edition-enterprise-per-socket", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [Legacy XenServer product] Premium Per-User.
/// </summary>
public static string Label_host_edition_enterprise_per_user {
get {
return ResourceManager.GetString("Label-host.edition-enterprise-per-user", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [XenServer product] Express.
/// </summary>
@ -924,42 +906,6 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to [Legacy XenServer product] Enterprise Per-Socket.
/// </summary>
public static string Label_host_edition_legacy_enterprise_per_socket {
get {
return ResourceManager.GetString("Label-host.edition-legacy-enterprise-per-socket", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [Legacy XenServer product] Enterprise Per-User.
/// </summary>
public static string Label_host_edition_legacy_enterprise_per_user {
get {
return ResourceManager.GetString("Label-host.edition-legacy-enterprise-per-user", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [Legacy XenServer product].
/// </summary>
public static string Label_host_edition_legacy_free {
get {
return ResourceManager.GetString("Label-host.edition-legacy-free", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [Legacy XenServer product] Per-Socket.
/// </summary>
public static string Label_host_edition_legacy_per_socket {
get {
return ResourceManager.GetString("Label-host.edition-legacy-per-socket", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [Citrix XenServer] Ultimate Edition.
/// </summary>
@ -978,24 +924,6 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to [Legacy XenServer product] Standard Per-Socket.
/// </summary>
public static string Label_host_edition_legacy_standard_per_socket {
get {
return ResourceManager.GetString("Label-host.edition-legacy-standard-per-socket", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [Legacy XenServer product] for XenDesktop.
/// </summary>
public static string Label_host_edition_legacy_xendesktop {
get {
return ResourceManager.GetString("Label-host.edition-legacy-xendesktop", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [XenServer product] Per-Socket.
/// </summary>
@ -2859,6 +2787,15 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to Unknown.
/// </summary>
public static string Label_SR_SRTypes_dummy {
get {
return ResourceManager.GetString("Label-SR.SRTypes-dummy", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Elastic Block Storage.
/// </summary>
@ -3048,6 +2985,15 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to Unknown.
/// </summary>
public static string Label_SR_SRTypes_tmpfs {
get {
return ResourceManager.GetString("Label-SR.SRTypes-tmpfs", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to udev.
/// </summary>

View File

@ -1886,36 +1886,12 @@
<data name="Label-host.edition-legacy-desktop-plus" xml:space="preserve">
<value>XenApp/XenDesktop Platinum</value>
</data>
<data name="Label-host.edition-legacy-enterprise-per-socket" xml:space="preserve">
<value>[Legacy XenServer product] Enterprise Per-Socket</value>
</data>
<data name="Label-host.edition-legacy-enterprise-per-user" xml:space="preserve">
<value>[Legacy XenServer product] Enterprise Per-User</value>
</data>
<data name="Label-host.edition-legacy-free" xml:space="preserve">
<value>[Legacy XenServer product]</value>
</data>
<data name="Label-host.edition-legacy-per-socket" xml:space="preserve">
<value>[Legacy XenServer product] Per-Socket</value>
</data>
<data name="Label-host.edition-legacy-premium" xml:space="preserve">
<value>[Citrix XenServer] Ultimate Edition</value>
</data>
<data name="Label-host.edition-legacy-standard" xml:space="preserve">
<value>[Citrix XenServer] Standard Edition</value>
</data>
<data name="Label-host.edition-legacy-standard-per-socket" xml:space="preserve">
<value>[Legacy XenServer product] Standard Per-Socket</value>
</data>
<data name="Label-host.edition-legacy-xendesktop" xml:space="preserve">
<value>[Legacy XenServer product] for XenDesktop</value>
</data>
<data name="Label-host.edition-enterprise-per-socket" xml:space="preserve">
<value>[Legacy XenServer product] Premium Per-Socket</value>
</data>
<data name="Label-host.edition-enterprise-per-user" xml:space="preserve">
<value>[Legacy XenServer product] Premium Per-User</value>
</data>
<data name="Description-host.system_status-v6d" xml:space="preserve">
<value>[XenServer] ライセンス デーモン ログ</value>
</data>

View File

@ -345,6 +345,9 @@
<data name="Label-SR.SRTypes-cslg" xml:space="preserve">
<value>StorageLink</value>
</data>
<data name="Label-SR.SRTypes-dummy" xml:space="preserve">
<value>Unknown</value>
</data>
<data name="Label-SR.SRTypes-ebs" xml:space="preserve">
<value>Elastic Block Storage</value>
</data>
@ -390,6 +393,9 @@
<data name="Label-SR.SRTypes-shm" xml:space="preserve">
<value>Local Performance Monitoring</value>
</data>
<data name="Label-SR.SRTypes-tmpfs" xml:space="preserve">
<value>Unknown</value>
</data>
<data name="Label-SR.SRTypes-udev" xml:space="preserve">
<value>udev</value>
</data>
@ -1886,36 +1892,12 @@
<data name="Label-host.edition-legacy-desktop-plus" xml:space="preserve">
<value>XenApp/XenDesktop Platinum</value>
</data>
<data name="Label-host.edition-legacy-enterprise-per-socket" xml:space="preserve">
<value>[Legacy XenServer product] Enterprise Per-Socket</value>
</data>
<data name="Label-host.edition-legacy-enterprise-per-user" xml:space="preserve">
<value>[Legacy XenServer product] Enterprise Per-User</value>
</data>
<data name="Label-host.edition-legacy-free" xml:space="preserve">
<value>[Legacy XenServer product]</value>
</data>
<data name="Label-host.edition-legacy-per-socket" xml:space="preserve">
<value>[Legacy XenServer product] Per-Socket</value>
</data>
<data name="Label-host.edition-legacy-premium" xml:space="preserve">
<value>[Citrix XenServer] Ultimate Edition</value>
</data>
<data name="Label-host.edition-legacy-standard" xml:space="preserve">
<value>[Citrix XenServer] Standard Edition</value>
</data>
<data name="Label-host.edition-legacy-standard-per-socket" xml:space="preserve">
<value>[Legacy XenServer product] Standard Per-Socket</value>
</data>
<data name="Label-host.edition-legacy-xendesktop" xml:space="preserve">
<value>[Legacy XenServer product] for XenDesktop</value>
</data>
<data name="Label-host.edition-enterprise-per-socket" xml:space="preserve">
<value>[Legacy XenServer product] Premium Per-Socket</value>
</data>
<data name="Label-host.edition-enterprise-per-user" xml:space="preserve">
<value>[Legacy XenServer product] Premium Per-User</value>
</data>
<data name="Description-host.system_status-v6d" xml:space="preserve">
<value>[XenServer] licensing daemon logs</value>
</data>

View File

@ -1886,36 +1886,12 @@
<data name="Label-host.edition-legacy-desktop-plus" xml:space="preserve">
<value>XenApp/XenDesktop Platinum</value>
</data>
<data name="Label-host.edition-legacy-enterprise-per-socket" xml:space="preserve">
<value>[Legacy XenServer product] Enterprise Per-Socket</value>
</data>
<data name="Label-host.edition-legacy-enterprise-per-user" xml:space="preserve">
<value>[Legacy XenServer product] Enterprise Per-User</value>
</data>
<data name="Label-host.edition-legacy-free" xml:space="preserve">
<value>[Legacy XenServer product]</value>
</data>
<data name="Label-host.edition-legacy-per-socket" xml:space="preserve">
<value>[Legacy XenServer product] Per-Socket</value>
</data>
<data name="Label-host.edition-legacy-premium" xml:space="preserve">
<value>[Citrix XenServer] Ultimate Edition</value>
</data>
<data name="Label-host.edition-legacy-standard" xml:space="preserve">
<value>[Citrix XenServer] Standard Edition</value>
</data>
<data name="Label-host.edition-legacy-standard-per-socket" xml:space="preserve">
<value>[Legacy XenServer product] Standard Per-Socket</value>
</data>
<data name="Label-host.edition-legacy-xendesktop" xml:space="preserve">
<value>[Legacy XenServer product] for XenDesktop</value>
</data>
<data name="Label-host.edition-enterprise-per-socket" xml:space="preserve">
<value>[Legacy XenServer product] Premium Per-Socket</value>
</data>
<data name="Label-host.edition-enterprise-per-user" xml:space="preserve">
<value>[Legacy XenServer product] Premium Per-User</value>
</data>
<data name="Description-host.system_status-v6d" xml:space="preserve">
<value>[XenServer] 许可守护程序日志</value>
</data>

View File

@ -19,7 +19,7 @@ namespace XenAdmin {
// 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.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class InvisibleMessages {
@ -311,14 +311,5 @@ namespace XenAdmin {
return ResourceManager.GetString("XENDESKTOP_URL", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to https://updates.xensource.com/XenServer/updates.xml.
/// </summary>
public static string XENSERVER_UPDATE_URL {
get {
return ResourceManager.GetString("XENSERVER_UPDATE_URL", resourceCulture);
}
}
}
}

View File

@ -186,9 +186,6 @@
<data name="XEN_UPDATE" xml:space="preserve">
<value>xsupdate</value>
</data>
<data name="XENSERVER_UPDATE_URL" xml:space="preserve">
<value>https://updates.xensource.com/XenServer/updates.xml</value>
</data>
<data name="ISO_UPDATE" xml:space="preserve">
<value>ISO</value>
</data>

View File

@ -186,9 +186,6 @@
<data name="XEN_UPDATE" xml:space="preserve">
<value>xsupdate</value>
</data>
<data name="XENSERVER_UPDATE_URL" xml:space="preserve">
<value>https://updates.xensource.com/XenServer/updates.xml</value>
</data>
<data name="ISO_UPDATE" xml:space="preserve">
<value>iso</value>
</data>

View File

@ -186,9 +186,6 @@
<data name="XEN_UPDATE" xml:space="preserve">
<value>xsupdate</value>
</data>
<data name="XENSERVER_UPDATE_URL" xml:space="preserve">
<value>https://updates.xensource.com/XenServer/updates.xml</value>
</data>
<data name="ISO_UPDATE" xml:space="preserve">
<value>iso</value>
</data>

View File

@ -9641,7 +9641,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to The version of the Conversion Manager virtual appliance you are using is earlier than [BRANDING_VERSION_7_0]. You can use the legacy Conversion Manager console to set up and control conversions. However, it is strongly recommended that you import and configure the Conversion Manager virtual appliance matching your [XenServer] version..
/// Looks up a localized string similar to The version of the Conversion Manager virtual appliance you are using is earlier than {0}. You can use the legacy Conversion Manager console to set up and control conversions. However, it is strongly recommended that you import and configure the Conversion Manager virtual appliance matching your [XenServer] version..
/// </summary>
public static string CONVERSION_VERSION_INCOMPATIBILITY_INFO {
get {
@ -18994,7 +18994,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to If you are upgrading to [XenServer] [BRANDING_VERSION_8_0] and above, the Control Domain memory on {0} will be increased.
/// Looks up a localized string similar to If you are upgrading to [XenServer] {1} and above, the Control Domain memory on {0} will be increased.
///
///This might result in failure to migrate VMs to this server during the RPU or to accommodate after the upgrade all the VMs that are currently residing on this server..
/// </summary>
@ -21473,7 +21473,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to [Legacy XenServer product] E&amp;nterprise Per-Socket ({0} required).
/// Looks up a localized string similar to {1} E&amp;nterprise Per-Socket ({0} required).
/// </summary>
public static string LICENSE_EDITION_ENTERPRISE_PERSOCKET_LEGACY {
get {
@ -21491,7 +21491,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to [Legacy XenServer product] &amp;Enterprise Per-User.
/// Looks up a localized string similar to {0} &amp;Enterprise Per-User.
/// </summary>
public static string LICENSE_EDITION_ENTERPRISE_PERUSER_LEGACY {
get {
@ -21509,7 +21509,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to [Legacy XenServer product] Per-&amp;Socket ({0} required).
/// Looks up a localized string similar to {1} Per-&amp;Socket ({0} required).
/// </summary>
public static string LICENSE_EDITION_PERSOCKET_LEGACY {
get {
@ -21527,7 +21527,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to [Legacy XenServer product] &amp;Standard Per-Socket ({0} required).
/// Looks up a localized string similar to {1} &amp;Standard Per-Socket ({0} required).
/// </summary>
public static string LICENSE_EDITION_STANDARD_PERSOCKET_LEGACY {
get {
@ -21545,7 +21545,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to [Legacy XenServer product] for &amp;XenDesktop.
/// Looks up a localized string similar to {0} for &amp;XenDesktop.
/// </summary>
public static string LICENSE_EDITION_XENDESKTOP_LEGACY {
get {
@ -21779,7 +21779,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to Servers must be selected one at a time when licensing servers which have a version lower than [BRANDING_VERSION_5_6]..
/// Looks up a localized string similar to When licensing servers earlier than {0}, you must select one server at a time..
/// </summary>
public static string LICENSE_NO_MULTISELECT_LICENSE {
get {
@ -27794,9 +27794,9 @@ namespace XenAdmin {
/// <summary>
/// Looks up a localized string similar to VMs on local disk will prevent disk repartitioning.
///
///A new disk partitioning scheme is available in [XenServer] [BRANDING_VERSION_7_0] and above that includes larger dom0 and backup partitions, and dedicated partitions for logging, swap and UEFI.
///A new disk partitioning scheme is available in [XenServer] {0} and above that includes larger dom0 and backup partitions, and dedicated partitions for logging, swap and UEFI.
///
///However, there are VMs on local storage, so the current partitioning scheme will be retained. To benefit from repartitioning on upgrade to [XenServer] [BRANDING_VERSION_7_0] or above, VMs must be moved from local storage first..
///However, there are VMs on local storage, so the current partitioning scheme will be retained. To benefit from repartitioning on upgrade to [XenServer] {0} or above, VMs must be moved from local storage first..
/// </summary>
public static string NOT_SAFE_TO_UPGRADE_DEFAULT_WARNING_LONG {
get {
@ -27816,7 +27816,7 @@ namespace XenAdmin {
/// <summary>
/// Looks up a localized string similar to The disk size of the local storage prevents repartitioning.
///
///A new disk partitioning scheme is available in [XenServer] [BRANDING_VERSION_7_0] and above that includes larger dom0 and backup partitions, and dedicated partitions for logging, swap and UEFI.
///A new disk partitioning scheme is available in [XenServer] {0} and above that includes larger dom0 and backup partitions, and dedicated partitions for logging, swap and UEFI.
///
///However, there is not enough space to perform the repartitioning, so the current partitioning scheme will be retained..
/// </summary>
@ -29051,7 +29051,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to Cannot install updates on this host because the master is running a version higher than [BRANDING_VERSION_7_0].
/// Looks up a localized string similar to Cannot install updates on this host because the master is running a version higher than {0}.
/// </summary>
public static string PATCHINGWIZARD_SELECTSERVERPAGE_CANNOT_INSTALL_UPDATE_MASTER_POST_7_0 {
get {
@ -30067,20 +30067,11 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to {0}: Support for paravirtualized (PV) guests is dropped as of [XenServer] [BRANDING_VERSION_8_1]. Click &quot;Learn more&quot; to see the list of supported guest operating systems. .
/// Looks up a localized string similar to {0}: Support for paravirtualized (PV) guests is dropped as of [XenServer] {1}. Click &quot;Learn more&quot; to see the list of supported guest operating systems. .
/// </summary>
public static string POOL_HAS_PV_GUEST_UPDATE_WARNING {
public static string POOL_HAS_PV_GUEST_WARNING {
get {
return ResourceManager.GetString("POOL_HAS_PV_GUEST_UPDATE_WARNING", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0}: Support for paravirtualized (PV) guests is dropped as of [XenServer] [BRANDING_VERSION_8_1]. Click &quot;Learn more&quot; to see the list of supported guest operating systems. .
/// </summary>
public static string POOL_HAS_PV_GUEST_UPGRADE_WARNING {
get {
return ResourceManager.GetString("POOL_HAS_PV_GUEST_UPGRADE_WARNING", resourceCulture);
return ResourceManager.GetString("POOL_HAS_PV_GUEST_WARNING", resourceCulture);
}
}
@ -32913,7 +32904,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to This version of [XenCenter] supports [XenServer] [BRANDING_VERSION_7_0] onwards..
/// Looks up a localized string similar to This version of [XenCenter] supports [XenServer] {0} onwards..
/// </summary>
public static string SERVER_TOO_OLD {
get {
@ -33481,7 +33472,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to This pool contains servers earlier than [XenServer] [BRANDING_VERSION_7_0]. Please use an earlier version of [XenCenter] to manage this pool..
/// Looks up a localized string similar to This pool contains servers earlier than [XenServer] {0}. Please use an earlier version of [XenCenter] to manage this pool..
/// </summary>
public static string SLAVE_TOO_OLD {
get {
@ -41667,16 +41658,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to [XenServer] [BRANDING_VERSION_6_2].
/// </summary>
public static string XENSERVER_6_2 {
get {
return ResourceManager.GetString("XENSERVER_6_2", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [XenServer] [BRANDING_VERSION_6_5].
/// Looks up a localized string similar to [XenServer] {0}.
/// </summary>
public static string XENSERVER_6_5 {
get {
@ -41685,7 +41667,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to [XenServer] [BRANDING_VERSION_8_1].
/// Looks up a localized string similar to [XenServer] {0}.
/// </summary>
public static string XENSERVER_8_1 {
get {
@ -41693,15 +41675,6 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to [Legacy XenServer product].
/// </summary>
public static string XENSERVER_LEGACY {
get {
return ResourceManager.GetString("XENSERVER_LEGACY", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [XenServer] Templates.
/// </summary>

View File

@ -3476,7 +3476,7 @@ VM {2} をエクスポートしてもよろしいですか?</value>
<value>[XenCenter] は、このバージョンの Conversion Manager 仮想アプライアンスと互換性がありません。</value>
</data>
<data name="CONVERSION_VERSION_INCOMPATIBILITY_INFO" xml:space="preserve">
<value>使用中の Conversion Manager 仮想アプライアンスのバージョンは [BRANDING_VERSION_7_0] より前です。従来の Conversion Manager コンソールを使用して、変換をセットアップおよび制御できます。ただし、お使いの [XenServer] のバージョンに一致する Conversion Manager 仮想アプライアンスをインポートして構成することを強くお勧めします。</value>
<value>使用中の Conversion Manager 仮想アプライアンスのバージョンは {0} より前です。従来の Conversion Manager コンソールを使用して、変換をセットアップおよび制御できます。ただし、お使いの [XenServer] のバージョンに一致する Conversion Manager 仮想アプライアンスをインポートして構成することを強くお勧めします。</value>
</data>
<data name="CONVERSION_VM_PAGE_TEXT" xml:space="preserve">
<value>仮想マシン</value>
@ -6663,7 +6663,7 @@ VM の再起動優先度をクリアしてもよろしいですか?</value>
<value>ローカルとリモート ({0})</value>
</data>
<data name="HOST_MEMORY_POST_UPGRADE_DEFAULT_WARNING_LONG" xml:space="preserve">
<value>[XenServer] [BRANDING_VERSION_8_0] 以降にアップグレードすると、{0} のコントロール ドメイン メモリが増加します。
<value>[XenServer] {1} 以降にアップグレードすると、{0} のコントロール ドメイン メモリが増加します。
そのため、プールのローリング アップグレード中にこのサーバーに VM を移行できないか、またはアップグレード後、このサーバーに現在配置されているすべての VM を格納できない可能性があります。</value>
</data>
@ -7474,31 +7474,31 @@ SCSI ID: {2}
<value>[XenServer product] Premium Per-Socket ({0} ソケット分必要)(&amp;R)</value>
</data>
<data name="LICENSE_EDITION_ENTERPRISE_PERSOCKET_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product] Enterprise Per-Socket ({0} ソケット分必要)(&amp;N)</value>
<value>{1} Enterprise Per-Socket ({0} ソケット分必要)(&amp;N)</value>
</data>
<data name="LICENSE_EDITION_ENTERPRISE_PERUSER" xml:space="preserve">
<value>[XenServer product] Premium Per-User(&amp;E)</value>
</data>
<data name="LICENSE_EDITION_ENTERPRISE_PERUSER_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product] Enterprise Per-User(&amp;E)</value>
<value>{0} Enterprise Per-User(&amp;E)</value>
</data>
<data name="LICENSE_EDITION_PERSOCKET" xml:space="preserve">
<value>[XenServer product] Per-Socket ({0} ソケット分必要)(&amp;S)</value>
</data>
<data name="LICENSE_EDITION_PERSOCKET_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product] Per-Socket ({0} ソケット分必要)(&amp;S)</value>
<value>{1} Per-Socket ({0} ソケット分必要)(&amp;S)</value>
</data>
<data name="LICENSE_EDITION_STANDARD_PERSOCKET" xml:space="preserve">
<value>[XenServer product] Standard Per-Socket ({0} ソケット分必要)(&amp;S)</value>
</data>
<data name="LICENSE_EDITION_STANDARD_PERSOCKET_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product] Standard Per-Socket ({0} ソケット分必要)(&amp;S)</value>
<value>{1} Standard Per-Socket ({0} ソケット分必要)(&amp;S)</value>
</data>
<data name="LICENSE_EDITION_XENDESKTOP" xml:space="preserve">
<value>[XenServer product] for [Citrix] Virtual Desktops(&amp;D)</value>
</data>
<data name="LICENSE_EDITION_XENDESKTOP_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product] for XenDesktop(&amp;X)</value>
<value>{0} for XenDesktop(&amp;X)</value>
</data>
<data name="LICENSE_ERROR_1" xml:space="preserve">
<value>{0} に対するライセンス操作に失敗しました。</value>
@ -7579,9 +7579,6 @@ SCSI ID: {2}
<data name="LICENSE_NO_MULTISELECT_ACTIVATE" xml:space="preserve">
<value>[XenServer] Express をアクティブ化するときは、サーバーを 1 つだけ選択してください。</value>
</data>
<data name="LICENSE_NO_MULTISELECT_LICENSE" xml:space="preserve">
<value>[BRANDING_VERSION_5_6] よりも古い [XenServer] にライセンスを適用するときは、サーバーを 1 つだけ選択してください。</value>
</data>
<data name="LICENSE_REGULAR_GRACE_TOOLTIP" xml:space="preserve">
<value>ライセンス サーバー {0} に接続できません。再接続の猶予期間は {1} までです。</value>
</data>
@ -9649,9 +9646,9 @@ VM が再起動したら、[[Citrix VM Tools] をインストール] を再度
<data name="NOT_SAFE_TO_UPGRADE_DEFAULT_WARNING_LONG" xml:space="preserve">
<value>ローカル ディスク上の VM によって、ディスクの再パーティションが阻止されます。
[XenServer] [BRANDING_VERSION_7_0] およびそれ以降では、新しいディスク パーティション スキーマを使用できます。これにより、より多くのメモリが割り当てられた dom0 およびバックアップ パーティション、ログ専用のパーティション、スワッピング、および UEFI を使用できます。
[XenServer] {0} およびそれ以降では、新しいディスク パーティション スキーマを使用できます。これにより、より多くのメモリが割り当てられた dom0 およびバックアップ パーティション、ログ専用のパーティション、スワッピング、および UEFI を使用できます。
ただし、ローカル ストレージに VM が存在するため、現在のパーティション スキーマが保持されます。 [XenServer] [BRANDING_VERSION_7_0] およびそれ以降にアップグレードして再パーティションを行うには、まず VM をローカル ストレージから移動する必要があります。</value>
ただし、ローカル ストレージに VM が存在するため、現在のパーティション スキーマが保持されます。 [XenServer] {0} およびそれ以降にアップグレードして再パーティションを行うには、まず VM をローカル ストレージから移動する必要があります。</value>
</data>
<data name="NOT_SAFE_TO_UPGRADE_DEFAULT_WARNING_SHORT" xml:space="preserve">
<value>{0}: ローカル ディスク上の VM によってディスクの再パーティションが阻止されます。</value>
@ -9659,7 +9656,7 @@ VM が再起動したら、[[Citrix VM Tools] をインストール] を再度
<data name="NOT_SAFE_TO_UPGRADE_NOT_ENOUGH_SPACE_LONG" xml:space="preserve">
<value>ローカル ストレージのディスク サイズによって、ディスクの再パーティションが阻止されます。
[XenServer] [BRANDING_VERSION_7_0] およびそれ以降では、新しいディスク パーティション スキーマを使用できます。これにより、より多くのメモリが割り当てられた dom0 およびバックアップ パーティション、ログ専用のパーティション、スワッピング、および UEFI を使用できます。
[XenServer] {0} およびそれ以降では、新しいディスク パーティション スキーマを使用できます。これにより、より多くのメモリが割り当てられた dom0 およびバックアップ パーティション、ログ専用のパーティション、スワッピング、および UEFI を使用できます。
ただし、ディスクの容量が不足しているため、再パーティションは行われず、現在のパーティション スキーマが保持されます。</value>
</data>
@ -10029,7 +10026,7 @@ VM が再起動したら、[[Citrix VM Tools] をインストール] を再度
<value>この [XenServer] のバージョンにはサプリメンタル パックをインストールできません</value>
</data>
<data name="PATCHINGWIZARD_SELECTSERVERPAGE_CANNOT_INSTALL_UPDATE_MASTER_POST_7_0" xml:space="preserve">
<value>マスターが [BRANDING_VERSION_7_0] より新しいバージョンを実行しているため、このホストにアップデートをインストールできません。</value>
<value>マスターが {0} より新しいバージョンを実行しているため、このホストにアップデートをインストールできません。</value>
</data>
<data name="PATCHINGWIZARD_SELECTSERVERPAGE_HOST_UNLICENSED" xml:space="preserve">
<value>Subscription Advantage が必要です</value>
@ -10468,11 +10465,8 @@ VM が再起動したら、[[Citrix VM Tools] をインストール] を再度
<data name="POOL_HAS_NO_SHARED_STORAGE" xml:space="preserve">
<value>このプールには共有ストレージがありません</value>
</data>
<data name="POOL_HAS_PV_GUEST_UPDATE_WARNING" xml:space="preserve">
<value>{0}: 準仮想化 (PV) されたゲストは、[XenServer] [BRANDING_VERSION_8_1] 以降サポートされません。サポートされるゲスト オペレーティング システムの一覧を表示するには、[詳細情報] をクリックしてください。 </value>
</data>
<data name="POOL_HAS_PV_GUEST_UPGRADE_WARNING" xml:space="preserve">
<value>{0}: 準仮想化 (PV) されたゲストは、[XenServer] [BRANDING_VERSION_8_1] 以降サポートされません。サポートされるゲスト オペレーティング システムの一覧を表示するには、[詳細情報] をクリックしてください。 </value>
<data name="POOL_HAS_PV_GUEST_WARNING" xml:space="preserve">
<value>{0}: 準仮想化 (PV) されたゲストは、[XenServer] {1} 以降サポートされません。サポートされるゲスト オペレーティング システムの一覧を表示するには、[詳細情報] をクリックしてください。 </value>
</data>
<data name="POOL_IS_PARTIALLY_LICENSED" xml:space="preserve">
<value>このプールは一部のみライセンスが適用されています</value>
@ -11437,7 +11431,7 @@ VM が再起動したら、[[Citrix VM Tools] をインストール] を再度
<value>プール マスターの現在の時間: {0}</value>
</data>
<data name="SERVER_TOO_OLD" xml:space="preserve">
<value>このバージョンの [XenCenter] では [XenServer] [BRANDING_VERSION_7_0] 以降のバージョンがサポートされます。</value>
<value>このバージョンの [XenCenter] では [XenServer] {0} 以降のバージョンがサポートされます。</value>
</data>
<data name="SERVER_TOO_OLD_SOLUTION" xml:space="preserve">
<value>このサーバーを管理するには、以前のバージョンの [XenCenter] を使用してください。</value>
@ -11615,7 +11609,7 @@ VM が再起動したら、[[Citrix VM Tools] をインストール] を再度
プール マスター '{1}' に接続しますか?</value>
</data>
<data name="SLAVE_TOO_OLD" xml:space="preserve">
<value>このプールには、[XenServer] [BRANDING_VERSION_7_0] より前のサーバーが含まれています。このプールを管理するには、以前のバージョンの [XenCenter] を使用してください。</value>
<value>このプールには、[XenServer] {0} より前のサーバーが含まれています。このプールを管理するには、以前のバージョンの [XenCenter] を使用してください。</value>
</data>
<data name="SMALLER_THAN" xml:space="preserve">
<value></value>
@ -14364,17 +14358,11 @@ SR-IOV ネットワークを有効にするには、サーバーの再起動が
<data name="XENSERVER" xml:space="preserve">
<value>[XenServer]</value>
</data>
<data name="XENSERVER_6_2" xml:space="preserve">
<value>[XenServer] [BRANDING_VERSION_6_2]</value>
</data>
<data name="XENSERVER_6_5" xml:space="preserve">
<value>[XenServer] [BRANDING_VERSION_6_5]</value>
<value>[XenServer] {0}</value>
</data>
<data name="XENSERVER_8_1" xml:space="preserve">
<value>[XenServer] [BRANDING_VERSION_8_1]</value>
</data>
<data name="XENSERVER_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product]</value>
<value>[XenServer] {0}</value>
</data>
<data name="XENSERVER_TEMPLATES" xml:space="preserve">
<value>[XenServer] テンプレート</value>

View File

@ -3471,7 +3471,7 @@ This action cannot be undone. Are you sure you want to continue?</value>
<value>[XenCenter] is incompatible with this version of the Conversion Manager virtual appliance.</value>
</data>
<data name="CONVERSION_VERSION_INCOMPATIBILITY_INFO" xml:space="preserve">
<value>The version of the Conversion Manager virtual appliance you are using is earlier than [BRANDING_VERSION_7_0]. You can use the legacy Conversion Manager console to set up and control conversions. However, it is strongly recommended that you import and configure the Conversion Manager virtual appliance matching your [XenServer] version.</value>
<value>The version of the Conversion Manager virtual appliance you are using is earlier than {0}. You can use the legacy Conversion Manager console to set up and control conversions. However, it is strongly recommended that you import and configure the Conversion Manager virtual appliance matching your [XenServer] version.</value>
</data>
<data name="CONVERSION_VM_PAGE_TEXT" xml:space="preserve">
<value>Virtual Machines</value>
@ -6657,7 +6657,7 @@ Click Configure HA to alter the settings displayed below.</value>
<value>Local and Remote ({0})</value>
</data>
<data name="HOST_MEMORY_POST_UPGRADE_DEFAULT_WARNING_LONG" xml:space="preserve">
<value>If you are upgrading to [XenServer] [BRANDING_VERSION_8_0] and above, the Control Domain memory on {0} will be increased.
<value>If you are upgrading to [XenServer] {1} and above, the Control Domain memory on {0} will be increased.
This might result in failure to migrate VMs to this server during the RPU or to accommodate after the upgrade all the VMs that are currently residing on this server.</value>
</data>
@ -7468,31 +7468,31 @@ Size: {3}</value>
<value>[XenServer product] P&amp;remium Per-Socket ({0} required)</value>
</data>
<data name="LICENSE_EDITION_ENTERPRISE_PERSOCKET_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product] E&amp;nterprise Per-Socket ({0} required)</value>
<value>{1} E&amp;nterprise Per-Socket ({0} required)</value>
</data>
<data name="LICENSE_EDITION_ENTERPRISE_PERUSER" xml:space="preserve">
<value>[XenServer product] Pr&amp;emium Per-User</value>
</data>
<data name="LICENSE_EDITION_ENTERPRISE_PERUSER_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product] &amp;Enterprise Per-User</value>
<value>{0} &amp;Enterprise Per-User</value>
</data>
<data name="LICENSE_EDITION_PERSOCKET" xml:space="preserve">
<value>[XenServer product] Per-&amp;Socket ({0} required)</value>
</data>
<data name="LICENSE_EDITION_PERSOCKET_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product] Per-&amp;Socket ({0} required)</value>
<value>{1} Per-&amp;Socket ({0} required)</value>
</data>
<data name="LICENSE_EDITION_STANDARD_PERSOCKET" xml:space="preserve">
<value>[XenServer product] &amp;Standard Per-Socket ({0} required)</value>
</data>
<data name="LICENSE_EDITION_STANDARD_PERSOCKET_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product] &amp;Standard Per-Socket ({0} required)</value>
<value>{1} &amp;Standard Per-Socket ({0} required)</value>
</data>
<data name="LICENSE_EDITION_XENDESKTOP" xml:space="preserve">
<value>[XenServer product] for [Citrix] Virtual &amp;Desktops</value>
</data>
<data name="LICENSE_EDITION_XENDESKTOP_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product] for &amp;XenDesktop</value>
<value>{0} for &amp;XenDesktop</value>
</data>
<data name="LICENSE_ERROR_1" xml:space="preserve">
<value>The licensing action for {0} failed.</value>
@ -7574,7 +7574,7 @@ Size: {3}</value>
<value>Servers must be selected one at a time when activating Express [XenServer].</value>
</data>
<data name="LICENSE_NO_MULTISELECT_LICENSE" xml:space="preserve">
<value>Servers must be selected one at a time when licensing servers which have a version lower than [BRANDING_VERSION_5_6].</value>
<value>When licensing servers earlier than {0}, you must select one server at a time.</value>
</data>
<data name="LICENSE_REGULAR_GRACE_TOOLTIP" xml:space="preserve">
<value>The license server {0} could not be reached. You have until {1} to reconnect to the license server.</value>
@ -9647,9 +9647,9 @@ It is strongly recommended that you Cancel and apply the latest version of the p
<data name="NOT_SAFE_TO_UPGRADE_DEFAULT_WARNING_LONG" xml:space="preserve">
<value>VMs on local disk will prevent disk repartitioning.
A new disk partitioning scheme is available in [XenServer] [BRANDING_VERSION_7_0] and above that includes larger dom0 and backup partitions, and dedicated partitions for logging, swap and UEFI.
A new disk partitioning scheme is available in [XenServer] {0} and above that includes larger dom0 and backup partitions, and dedicated partitions for logging, swap and UEFI.
However, there are VMs on local storage, so the current partitioning scheme will be retained. To benefit from repartitioning on upgrade to [XenServer] [BRANDING_VERSION_7_0] or above, VMs must be moved from local storage first.</value>
However, there are VMs on local storage, so the current partitioning scheme will be retained. To benefit from repartitioning on upgrade to [XenServer] {0} or above, VMs must be moved from local storage first.</value>
</data>
<data name="NOT_SAFE_TO_UPGRADE_DEFAULT_WARNING_SHORT" xml:space="preserve">
<value>{0}: VMs on local disk will prevent disk repartitioning.</value>
@ -9657,7 +9657,7 @@ However, there are VMs on local storage, so the current partitioning scheme will
<data name="NOT_SAFE_TO_UPGRADE_NOT_ENOUGH_SPACE_LONG" xml:space="preserve">
<value>The disk size of the local storage prevents repartitioning.
A new disk partitioning scheme is available in [XenServer] [BRANDING_VERSION_7_0] and above that includes larger dom0 and backup partitions, and dedicated partitions for logging, swap and UEFI.
A new disk partitioning scheme is available in [XenServer] {0} and above that includes larger dom0 and backup partitions, and dedicated partitions for logging, swap and UEFI.
However, there is not enough space to perform the repartitioning, so the current partitioning scheme will be retained.</value>
</data>
@ -10027,7 +10027,7 @@ This will cancel the update process and may leave your system in an unstable sta
<value>Cannot install supplemental packs on this [XenServer] version</value>
</data>
<data name="PATCHINGWIZARD_SELECTSERVERPAGE_CANNOT_INSTALL_UPDATE_MASTER_POST_7_0" xml:space="preserve">
<value>Cannot install updates on this host because the master is running a version higher than [BRANDING_VERSION_7_0]</value>
<value>Cannot install updates on this host because the master is running a version higher than {0}</value>
</data>
<data name="PATCHINGWIZARD_SELECTSERVERPAGE_HOST_UNLICENSED" xml:space="preserve">
<value>Subscription Advantage required</value>
@ -10466,11 +10466,8 @@ Please reconnect the host and try again</value>
<data name="POOL_HAS_NO_SHARED_STORAGE" xml:space="preserve">
<value>This pool has no shared storage</value>
</data>
<data name="POOL_HAS_PV_GUEST_UPDATE_WARNING" xml:space="preserve">
<value>{0}: Support for paravirtualized (PV) guests is dropped as of [XenServer] [BRANDING_VERSION_8_1]. Click "Learn more" to see the list of supported guest operating systems. </value>
</data>
<data name="POOL_HAS_PV_GUEST_UPGRADE_WARNING" xml:space="preserve">
<value>{0}: Support for paravirtualized (PV) guests is dropped as of [XenServer] [BRANDING_VERSION_8_1]. Click "Learn more" to see the list of supported guest operating systems. </value>
<data name="POOL_HAS_PV_GUEST_WARNING" xml:space="preserve">
<value>{0}: Support for paravirtualized (PV) guests is dropped as of [XenServer] {1}. Click "Learn more" to see the list of supported guest operating systems. </value>
</data>
<data name="POOL_IS_PARTIALLY_LICENSED" xml:space="preserve">
<value>The pool is partially licensed</value>
@ -11435,7 +11432,7 @@ The master must be upgraded first, so if you skip the master, the rolling pool u
<value>The current time on the pool master is: {0}</value>
</data>
<data name="SERVER_TOO_OLD" xml:space="preserve">
<value>This version of [XenCenter] supports [XenServer] [BRANDING_VERSION_7_0] onwards.</value>
<value>This version of [XenCenter] supports [XenServer] {0} onwards.</value>
</data>
<data name="SERVER_TOO_OLD_SOLUTION" xml:space="preserve">
<value>Use an earlier version of [XenCenter] to manage this server.</value>
@ -11613,7 +11610,7 @@ The master must be upgraded first, so if you skip the master, the rolling pool u
Do you want to connect to the pool master '{1}'?</value>
</data>
<data name="SLAVE_TOO_OLD" xml:space="preserve">
<value>This pool contains servers earlier than [XenServer] [BRANDING_VERSION_7_0]. Please use an earlier version of [XenCenter] to manage this pool.</value>
<value>This pool contains servers earlier than [XenServer] {0}. Please use an earlier version of [XenCenter] to manage this pool.</value>
</data>
<data name="SMALLER_THAN" xml:space="preserve">
<value>smaller than</value>
@ -14362,17 +14359,11 @@ Are you sure you want to enable automated power management for this Host?</value
<data name="XENSERVER" xml:space="preserve">
<value>[XenServer]</value>
</data>
<data name="XENSERVER_6_2" xml:space="preserve">
<value>[XenServer] [BRANDING_VERSION_6_2]</value>
</data>
<data name="XENSERVER_6_5" xml:space="preserve">
<value>[XenServer] [BRANDING_VERSION_6_5]</value>
<value>[XenServer] {0}</value>
</data>
<data name="XENSERVER_8_1" xml:space="preserve">
<value>[XenServer] [BRANDING_VERSION_8_1]</value>
</data>
<data name="XENSERVER_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product]</value>
<value>[XenServer] {0}</value>
</data>
<data name="XENSERVER_TEMPLATES" xml:space="preserve">
<value>[XenServer] Templates</value>

View File

@ -3472,7 +3472,7 @@
<value>[XenCenter] 与此版本的 Conversion Manager 虚拟设备不兼容。</value>
</data>
<data name="CONVERSION_VERSION_INCOMPATIBILITY_INFO" xml:space="preserve">
<value>您正在使用的 Conversion Manager 虚拟设备的版本早于 [BRANDING_VERSION_7_0]。可以使用旧版 Conversion Manager 控制台来设置和控制转换。但是,强烈建议您导入并配置与您的 [XenServer] 版本匹配的 Conversion Manager 虚拟设备。</value>
<value>您正在使用的 Conversion Manager 虚拟设备的版本早于 {0}。可以使用旧版 Conversion Manager 控制台来设置和控制转换。但是,强烈建议您导入并配置与您的 [XenServer] 版本匹配的 Conversion Manager 虚拟设备。</value>
</data>
<data name="CONVERSION_VM_PAGE_TEXT" xml:space="preserve">
<value>虚拟机</value>
@ -6657,7 +6657,7 @@
<value>本地和远程({0})</value>
</data>
<data name="HOST_MEMORY_POST_UPGRADE_DEFAULT_WARNING_LONG" xml:space="preserve">
<value>如果要升级到 [XenServer] [BRANDING_VERSION_8_0] 及更高版本,则将增加 {0} 上的控制域内存。
<value>如果要升级到 [XenServer] {1} 及更高版本,则将增加 {0} 上的控制域内存。
这可能会导致在 RPU 期间无法将 VM 迁移到此服务器,或在升级后无法容纳当前位于此服务器上的所有 VM。</value>
</data>
@ -7469,31 +7469,31 @@ SCSI ID: {2}
<value>[XenServer product] Premium Per-Socket (需要 {0})(&amp;R)</value>
</data>
<data name="LICENSE_EDITION_ENTERPRISE_PERSOCKET_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product] Enterprise Per-Socket (需要 {0})(&amp;N)</value>
<value>{1} Enterprise Per-Socket (需要 {0})(&amp;N)</value>
</data>
<data name="LICENSE_EDITION_ENTERPRISE_PERUSER" xml:space="preserve">
<value>[XenServer product] Premium Per-User(&amp;E)</value>
</data>
<data name="LICENSE_EDITION_ENTERPRISE_PERUSER_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product] Enterprise Per-User(&amp;E)</value>
<value>{0} Enterprise Per-User(&amp;E)</value>
</data>
<data name="LICENSE_EDITION_PERSOCKET" xml:space="preserve">
<value>[XenServer product] Per-Socket (需要 {0})(&amp;S)</value>
</data>
<data name="LICENSE_EDITION_PERSOCKET_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product] Per-Socket (需要 {0})(&amp;S)</value>
<value>{1} Per-Socket (需要 {0})(&amp;S)</value>
</data>
<data name="LICENSE_EDITION_STANDARD_PERSOCKET" xml:space="preserve">
<value>[XenServer product] Standard Per-Socket (需要 {0})(&amp;S)</value>
</data>
<data name="LICENSE_EDITION_STANDARD_PERSOCKET_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product] Standard Per-Socket (需要 {0})(&amp;S)</value>
<value>{1} Standard Per-Socket (需要 {0})(&amp;S)</value>
</data>
<data name="LICENSE_EDITION_XENDESKTOP" xml:space="preserve">
<value>[XenServer product] for [Citrix] Virtual Desktops(&amp;D)</value>
</data>
<data name="LICENSE_EDITION_XENDESKTOP_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product] for XenDesktop(&amp;X)</value>
<value>{0} for XenDesktop(&amp;X)</value>
</data>
<data name="LICENSE_ERROR_1" xml:space="preserve">
<value>{0} 的许可操作失败。</value>
@ -7574,9 +7574,6 @@ SCSI ID: {2}
<data name="LICENSE_NO_MULTISELECT_ACTIVATE" xml:space="preserve">
<value>激活 [XenServer] Express 时,必须一次选择一个服务器。</value>
</data>
<data name="LICENSE_NO_MULTISELECT_LICENSE" xml:space="preserve">
<value>向版本低于 [BRANDING_VERSION_5_6] 的服务器授权时,必须一次选择一个服务器。</value>
</data>
<data name="LICENSE_REGULAR_GRACE_TOOLTIP" xml:space="preserve">
<value>无法访问许可证服务器 {0}。您可以在 {1} 之前重新连接许可证服务器。</value>
</data>
@ -9648,9 +9645,9 @@ VM 克隆使用文件管理器的快照和克隆功能来实现高性能,并
<data name="NOT_SAFE_TO_UPGRADE_DEFAULT_WARNING_LONG" xml:space="preserve">
<value>本地磁盘上的 VM 将阻止磁盘重新分区。
新磁盘分区方案在包括更大的 dom0 和备份分区以及用于日志记录、交换和 UEFI 的专用分区的 [XenServer] [BRANDING_VERSION_7_0] 及更高版本中可用。
新磁盘分区方案在包括更大的 dom0 和备份分区以及用于日志记录、交换和 UEFI 的专用分区的 [XenServer] {0} 及更高版本中可用。
但是,本地存储上存在 VM因此将保留当前的分区方案。要在升级到 [XenServer] [BRANDING_VERSION_7_0] 或更高版本时从重新分区中获益,必须先移动本地存储中的 VM。</value>
但是,本地存储上存在 VM因此将保留当前的分区方案。要在升级到 [XenServer] {0} 或更高版本时从重新分区中获益,必须先移动本地存储中的 VM。</value>
</data>
<data name="NOT_SAFE_TO_UPGRADE_DEFAULT_WARNING_SHORT" xml:space="preserve">
<value>{0}: 本地磁盘上的 VM 将阻止磁盘重新分区。</value>
@ -9658,7 +9655,7 @@ VM 克隆使用文件管理器的快照和克隆功能来实现高性能,并
<data name="NOT_SAFE_TO_UPGRADE_NOT_ENOUGH_SPACE_LONG" xml:space="preserve">
<value>本地存储的磁盘大小阻止重新分区。
新磁盘分区方案在包括更大的 dom0 和备份分区以及用于日志记录、交换和 UEFI 的专用分区的 [XenServer] [BRANDING_VERSION_7_0] 及更高版本中可用。
新磁盘分区方案在包括更大的 dom0 和备份分区以及用于日志记录、交换和 UEFI 的专用分区的 [XenServer] {0} 及更高版本中可用。
但是,由于空间不足,无法执行重新分区,因此将保留当前的分区方案。</value>
</data>
@ -10028,7 +10025,7 @@ VM 克隆使用文件管理器的快照和克隆功能来实现高性能,并
<value>无法在此版本的 [XenServer] 上安装补充包</value>
</data>
<data name="PATCHINGWIZARD_SELECTSERVERPAGE_CANNOT_INSTALL_UPDATE_MASTER_POST_7_0" xml:space="preserve">
<value>无法在此主机上安装更新,因为主机正在运行的版本高于 [BRANDING_VERSION_7_0]</value>
<value>无法在此主机上安装更新,因为主机正在运行的版本高于 {0}</value>
</data>
<data name="PATCHINGWIZARD_SELECTSERVERPAGE_HOST_UNLICENSED" xml:space="preserve">
<value>需要专享升级服务</value>
@ -10467,11 +10464,8 @@ VM 克隆使用文件管理器的快照和克隆功能来实现高性能,并
<data name="POOL_HAS_NO_SHARED_STORAGE" xml:space="preserve">
<value>该池无共享存储</value>
</data>
<data name="POOL_HAS_PV_GUEST_UPDATE_WARNING" xml:space="preserve">
<value>{0}: 截至 [XenServer] [BRANDING_VERSION_8_1],已放弃对半虚拟化的(PV)来宾的支持。单击“了解更多”可查看支持的来宾操作系统列表。 </value>
</data>
<data name="POOL_HAS_PV_GUEST_UPGRADE_WARNING" xml:space="preserve">
<value>{0}: 截至 [XenServer] [BRANDING_VERSION_8_1],已放弃对半虚拟化的(PV)来宾的支持。单击“了解更多”可查看支持的来宾操作系统列表。 </value>
<data name="POOL_HAS_PV_GUEST_WARNING" xml:space="preserve">
<value>{0}: 截至 [XenServer] {1},已放弃对半虚拟化的(PV)来宾的支持。单击“了解更多”可查看支持的来宾操作系统列表。 </value>
</data>
<data name="POOL_IS_PARTIALLY_LICENSED" xml:space="preserve">
<value>池获得部分许可</value>
@ -11436,7 +11430,7 @@ VM 克隆使用文件管理器的快照和克隆功能来实现高性能,并
<value>池主服务器上的当前时间为: {0}</value>
</data>
<data name="SERVER_TOO_OLD" xml:space="preserve">
<value>此版本的 [XenCenter] 支持 [XenServer] [BRANDING_VERSION_7_0] 及更高版本。</value>
<value>此版本的 [XenCenter] 支持 [XenServer] {0} 及更高版本。</value>
</data>
<data name="SERVER_TOO_OLD_SOLUTION" xml:space="preserve">
<value>使用早期版本的 [XenCenter] 管理此服务器。</value>
@ -11614,7 +11608,7 @@ VM 克隆使用文件管理器的快照和克隆功能来实现高性能,并
是否连接池主服务器“{1}”?</value>
</data>
<data name="SLAVE_TOO_OLD" xml:space="preserve">
<value>此池包含的服务器低于 [XenServer] [BRANDING_VERSION_7_0]。请使用早期版本的 [XenCenter] 来管理此池。</value>
<value>此池包含的服务器低于 [XenServer] {0}。请使用早期版本的 [XenCenter] 来管理此池。</value>
</data>
<data name="SMALLER_THAN" xml:space="preserve">
<value>小于</value>
@ -14361,17 +14355,11 @@ VM 克隆使用文件管理器的快照和克隆功能来实现高性能,并
<data name="XENSERVER" xml:space="preserve">
<value>[XenServer]</value>
</data>
<data name="XENSERVER_6_2" xml:space="preserve">
<value>[XenServer] [BRANDING_VERSION_6_2]</value>
</data>
<data name="XENSERVER_6_5" xml:space="preserve">
<value>[XenServer] [BRANDING_VERSION_6_5]</value>
<value>[XenServer] {0}</value>
</data>
<data name="XENSERVER_8_1" xml:space="preserve">
<value>[XenServer] [BRANDING_VERSION_8_1]</value>
</data>
<data name="XENSERVER_LEGACY" xml:space="preserve">
<value>[Legacy XenServer product]</value>
<value>[XenServer] {0}</value>
</data>
<data name="XENSERVER_TEMPLATES" xml:space="preserve">
<value>[XenServer] 模板</value>

View File

@ -2060,13 +2060,7 @@ namespace XenAdmin.Network
public class ServerNotSupported : DisconnectionException
{
public override string Message
{
get
{
return Messages.SERVER_TOO_OLD;
}
}
public override string Message => string.Format(Messages.SERVER_TOO_OLD, BrandManager.ProductVersion70);
}
public class ConnectionExists : DisconnectionException

View File

@ -42,7 +42,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("[Citrix]")]
[assembly: AssemblyProduct("[XenCenter]")]
[assembly: AssemblyCopyright("[BRANDING_COPYRIGHT]")]
[assembly: AssemblyCopyright("Copyright © [BRANDING_COMPANY_NAME_LEGAL]")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

View File

@ -348,12 +348,12 @@ namespace XenAdmin.Core
{
if (host == null)
return true;
string product_version = HostProductVersion(host);
string product_version = HostProductVersion(host);
return
product_version != null &&
ElyOrGreater(host) &&
!FalconOrGreater(host) &&
productVersionCompare(product_version, "[BRANDING_VERSION_7_1_2]") >= 0;
ElyOrGreater(host) &&
!FalconOrGreater(host) &&
productVersionCompare(product_version, BrandManager.ProductVersion712) >= 0;
}
/// <param name="conn">May be null, in which case true is returned.</param>

View File

@ -128,8 +128,7 @@ namespace XenAPI
/// </summary>
public static string getFriendlyTypeName(SRTypes srType)
{
return FriendlyNameManager.GetFriendlyName(string.Format("Label-SR.SRTypes-{0}", srType.ToString()),
"Label-SR.SRTypes-unknown");
return FriendlyNameManager.GetFriendlyName(string.Format("Label-SR.SRTypes-{0}", srType.ToString()));
}
/// <summary>

View File

@ -159,6 +159,7 @@
<Compile Include="Actions\XCM\ActivateConversionVpxAction.cs" />
<Compile Include="Actions\ZipStatusReportAction.cs" />
<Compile Include="Alerts\Types\Alert.cs" />
<Compile Include="BrandManager.cs" />
<Compile Include="XCM\ConversionClient.cs" />
<Compile Include="XCM\ConversionDescriptors.cs" />
<Compile Include="XCM\IConversion.cs" />
@ -558,6 +559,10 @@
<Compile Include="XenAPI\XenRef.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="..\Branding\Branding.resx">
<Link>Branding.resx</Link>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="FriendlyNames.resx">
<SubType>Designer</SubType>
<Generator>PublicResXFileCodeGenerator</Generator>

View File

@ -1,4 +1,4 @@
/* Copyright (c) Citrix Systems, Inc.
/* Copyright (c) Citrix Systems, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms,
@ -40,8 +40,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyDescription("[Citrix] [XenCenter] OVF API")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("[Citrix]")]
[assembly: AssemblyProduct("XenCenterOVF")]
[assembly: AssemblyCopyright("[BRANDING_COPYRIGHT]")]
[assembly: AssemblyProduct("[XenCenter]")]
[assembly: AssemblyCopyright("Copyright © [BRANDING_COMPANY_NAME_LEGAL]")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

View File

@ -40,8 +40,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyDescription("[Citrix] [XenCenter] OVF transport layer")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("[Citrix]")]
[assembly: AssemblyProduct("[XenCenter]OVFTransport")]
[assembly: AssemblyCopyright("[BRANDING_COPYRIGHT]")]
[assembly: AssemblyProduct("[XenCenter]")]
[assembly: AssemblyCopyright("Copyright © [BRANDING_COMPANY_NAME_LEGAL]")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

View File

@ -1,46 +0,0 @@
/* Copyright (c) Citrix Systems, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms,
* with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the
* following disclaimer in the documentation and/or other
* materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
using System;
using System.Collections.Generic;
using System.Text;
// Values taken from branding.hg
namespace XenServerHealthCheck
{
static public class Branding
{
public const string PRODUCT_BRAND = "[XenServer product]";
public const string COMPANY_NAME_SHORT = "[Citrix]";
public const string COMPANY_AND_PRODUCT_BRAND = "[Citrix XenServer]";
}
}

View File

@ -33,8 +33,6 @@
//
// XenServerHealthCheckInstaller
//
this.XenServerHealthCheckInstaller.Description = Branding.COMPANY_AND_PRODUCT_BRAND + " Health Check";
this.XenServerHealthCheckInstaller.DisplayName = Branding.COMPANY_AND_PRODUCT_BRAND + " Health Check";
this.XenServerHealthCheckInstaller.ServiceName = "XenServerHealthCheck";
this.XenServerHealthCheckInstaller.StartType = System.ServiceProcess.ServiceStartMode.Automatic;
this.XenServerHealthCheckInstaller.AfterInstall += new System.Configuration.Install.InstallEventHandler(this.XenServerHealthCheckInstaller_AfterInstall);

View File

@ -35,6 +35,7 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.Linq;
using XenAdmin.Core;
namespace XenServerHealthCheck
@ -45,6 +46,8 @@ namespace XenServerHealthCheck
public ProjectInstaller()
{
InitializeComponent();
this.XenServerHealthCheckInstaller.Description = BrandManager.COMPANY_AND_PRODUCT_BRAND + " Health Check";
this.XenServerHealthCheckInstaller.DisplayName = BrandManager.COMPANY_AND_PRODUCT_BRAND + " Health Check";
}
private void XenServerHealthCheckInstaller_AfterInstall(object sender, InstallEventArgs e)

View File

@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("[BRANDING_COMPANY_NAME_LEGAL]")]
[assembly: AssemblyProduct("[XenServer] Health Check Service")]
[assembly: AssemblyCopyright("[BRANDING_COPYRIGHT]")]
[assembly: AssemblyCopyright("Copyright © [BRANDING_COMPANY_NAME_LEGAL]")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

View File

@ -31,6 +31,7 @@
using System;
using Microsoft.Win32;
using XenAdmin.Core;
namespace XenServerHealthCheck
{
@ -121,7 +122,7 @@ namespace XenServerHealthCheck
}
}
private const string HEALTH_CHECK_LOCAL_KEYS = @"SOFTWARE\"+ Branding.COMPANY_NAME_SHORT +@"\XenHealthCheck";
private const string HEALTH_CHECK_LOCAL_KEYS = @"SOFTWARE\"+ BrandManager.COMPANY_NAME_SHORT +@"\XenHealthCheck";
private const string HEALTH_CHECK_UPLOAD_DOMAIN_NAME = "HealthCheckUploadDomainName";
private const string HEALTH_CHECK_TIME_INTERVAL = "HealthCheckTimeIntervalInMinutes";

View File

@ -52,7 +52,6 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Branding.cs" />
<Compile Include="CredentialReceiver.cs" />
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>

View File

@ -35,7 +35,6 @@
this.CanHandleSessionChangeEvent = true;
this.CanPauseAndContinue = true;
this.CanShutdown = true;
this.ServiceName = Branding.PRODUCT_BRAND + " Health Check";
}
#endregion

View File

@ -47,6 +47,7 @@ namespace XenServerHealthCheck
public XenServerHealthCheckService()
{
InitializeComponent();
ServiceName = XenAdmin.Core.BrandManager.PRODUCT_BRAND + " Health Check";
AutoLog = false;
XenAPI.Session.UserAgent = string.Format("XenServerHealthCheck/API-{0}", API_Version.LATEST);

View File

@ -43,6 +43,7 @@ version_cpp()
version_csharp()
{
sed -b -i -e "s/0\.0\.0\.0/${BRANDING_XC_PRODUCT_VERSION}.${GLOBAL_BUILD_NUMBER}/g" \
-e "s/0000/${BRANDING_XC_PRODUCT_VERSION}.${GLOBAL_BUILD_NUMBER}/g" \
$1
}
@ -52,48 +53,15 @@ rebranding_global()
-e "s#\[Citrix\]#${BRANDING_COMPANY_NAME_SHORT}#g" \
-e "s#\[Citrix XenServer\]#${BRANDING_COMPANY_AND_PRODUCT}#g" \
-e "s#\[Citrix VM Tools\]#${BRANDING_PV_TOOLS}#g" \
-e "s#\"\[BRANDING_COPYRIGHT\]\"#${BRANDING_COPYRIGHT}#g" \
-e "s#\"\[BRANDING_COPYRIGHT_2\]\"#${BRANDING_COPYRIGHT_2}#g" \
-e "s#\[XenServer product\]#${BRANDING_PRODUCT_BRAND}#g" \
-e "s#\[Legacy XenServer product\]#${BRANDING_LEGACY_PRODUCT_BRAND}#g" \
-e "s#\[BRANDING_PRODUCT_VERSION\]#${BRANDING_XC_PRODUCT_VERSION}#g" \
-e "s#\[BRANDING_PRODUCT_VERSION_TEXT\]#${BRANDING_PRODUCT_VERSION_TEXT}#g" \
-e "s#\[BRANDING_BUILD_NUMBER\]#${GLOBAL_BUILD_NUMBER}#g" \
-e "s#\[xensearch\]#${BRANDING_SEARCH}#g" \
-e "s#\[xsupdate\]#${BRANDING_UPDATE}#g" \
-e "s#\[XenServer\]#${BRANDING_SERVER}#g" \
-e "s#\[XenCenter\]#${BRANDING_BRAND_CONSOLE}#g" \
-e "s#\[xbk\]#${BRANDING_BACKUP}#g" \
-e "s#\[BRANDING_VERSION_5_6\]#${BRANDING_XC_PRODUCT_5_6_VERSION}#g" \
-e "s#\[BRANDING_VERSION_6_0\]#${BRANDING_XC_PRODUCT_6_0_VERSION}#g" \
-e "s#\[BRANDING_VERSION_6_2\]#${BRANDING_XC_PRODUCT_6_2_VERSION}#g" \
-e "s#\[BRANDING_VERSION_6_5\]#${BRANDING_XC_PRODUCT_6_5_VERSION}#g" \
-e "s#\[BRANDING_VERSION_7_0\]#${BRANDING_XC_PRODUCT_7_0_VERSION}#g" \
-e "s#\[BRANDING_VERSION_7_1_2\]#${BRANDING_XC_PRODUCT_7_1_2_VERSION}#g" \
-e "s#\[BRANDING_VERSION_8_0\]#${BRANDING_XC_PRODUCT_8_0_VERSION}#g" \
-e "s#\[BRANDING_VERSION_8_1\]#${BRANDING_XC_PRODUCT_8_1_VERSION}#g" \
-e "s#\[BRANDING_XENSERVER_UPDATE_URL\]#${BRANDING_XENSERVER_UPDATE_URL}#g" \
-e "s#\[BRANDING_PERF_ALERT_MAIL_LANGUAGE_DEFAULT\]#${BRANDING_PERF_ALERT_MAIL_LANGUAGE_DEFAULT}#g" \
$1
}
version_brand_cpp()
{
for file in $1
do
version_cpp ${file} && rebranding_global ${file}
done
}
version_brand_csharp()
{
for projectName in $1
do
assemblyInfo=${REPO}/${projectName}/Properties/AssemblyInfo.cs
version_csharp ${assemblyInfo} && rebranding_global ${assemblyInfo}
done
}
RESX_rebranding()
{
for resx in $1
@ -105,13 +73,18 @@ RESX_rebranding()
}
#splace rebranding
version_brand_cpp "${REPO}/splash/splash.rc ${REPO}/splash/main.cpp ${REPO}/splash/splash.vcproj ${REPO}/splash/splash.vcxproj ${REPO}/splash/util.cpp"
for file in splash.rc main.cpp splash.vcproj splash.vcxproj util.cpp
do
version_cpp "${REPO}/splash/${file}" && rebranding_global "${REPO}/splash/${file}"
done
#AssemblyInfo rebranding
version_brand_csharp "XenAdmin CommandLib XenCenterLib XenModel XenOvfApi XenOvfTransport XenCenterVNC xe xva_verify XenServerHealthCheck"
for projectName in CommandLib xe XenAdmin XenAdminTests XenCenterLib XenCenterVNC XenModel XenOvfApi XenOvfTransport XenServerHealthCheck xva_verify
do
assemblyInfo="${REPO}/${projectName}/Properties/AssemblyInfo.cs"
version_csharp ${assemblyInfo} && rebranding_global ${assemblyInfo}
done
#XenAdmin rebranding
rebranding_global ${REPO}/XenAdmin/Branding.cs
#XenAdmin controls
XENADMIN_RESXS=$(/usr/bin/find ${REPO}/XenAdmin -name \*.resx)
for XENADMIN_RESX in ${XENADMIN_RESXS}
@ -122,7 +95,8 @@ done
RESX_rebranding "${REPO}/XenAdmin/Properties/Resources"
rebranding_global ${REPO}/XenAdmin/app.config
#XenModel rebranding
#XenModel
rebranding_global ${REPO}/XenModel/BrandManager.cs
RESX_rebranding "${REPO}/XenModel/Messages ${REPO}/XenModel/InvisibleMessages ${REPO}/XenModel/FriendlyNames ${REPO}/XenModel/XenAPI/FriendlyErrorNames"
rebranding_global "${REPO}/XenModel/Utils/Helpers.cs"
@ -149,12 +123,7 @@ rebranding_global ${REPO}/XenAdminTests/TestResources/ContextMenuBuilderTestResu
rebranding_global ${REPO}/XenAdminTests/app.config
rebranding_global ${REPO}/XenAdminTests/XenAdminTests.csproj
if [ "${BRANDING_UPDATE}" != "xsupdate" ] ; then
mv ${REPO}/XenAdminTests/TestResources/succeed.xsupdate ${REPO}/XenAdminTests/TestResources/succeed.${BRANDING_UPDATE}
fi
#XenServerHealthCheck
rebranding_global ${REPO}/XenServerHealthCheck/Branding.cs
rebranding_global ${REPO}/XenServerHealthCheck/app.config
set +u

View File

@ -35,8 +35,9 @@ rem 2 Signing node name
rem 3 Sign in SBE
rem 4 Self-signing certificate sha1 thumbprint
rem 5 Self-signing certificate sha256 thumbprint
rem 6 File to be signed
rem 7 Description
rem 6 Timestamp server
rem 7 File to be signed
rem 8 Description
rem reset error level
cmd /c "exit /b 0"
@ -46,17 +47,16 @@ set worker=%~2
set sbe=%~3
set thumb_sha1=%4
set thumb_sha256=%5
set descr=%~7
set thefile=%~6
set timestamp_server=%~6
set descr=%~8
set thefile=%~7
if /I "%~x6"==".msi" (
if /I "%~x7"==".msi" (
set cross_sign=no
) else (
set cross_sign=yes
)
set timestamp_sha1=http://timestamp.digicert.com
set timestamp_sha2=http://timestamp.digicert.com
set CTXSIGN=C:\ctxsign2\ctxsign.exe
if "%sbe%"=="true" (
@ -94,9 +94,9 @@ if "%sbe%"=="true" (
echo "Self signing"
if /I "%cross_sign%" == "yes" (
signtool sign -v -sm -sha1 %thumb_sha1% -d "%descr%" -t %timestamp_sha1% "%thefile%"
signtool sign -v -sm -as -sha1 %thumb_sha256% -d "%descr%" -tr %timestamp_sha2% -td sha256 "%thefile%"
signtool sign -v -sm -sha1 %thumb_sha1% -d "%descr%" -t %timestamp_server% "%thefile%"
signtool sign -v -sm -as -sha1 %thumb_sha256% -d "%descr%" -tr %timestamp_server% -td sha256 "%thefile%"
) else (
signtool sign -v -sm -sha1 %thumb_sha1% -d "%descr%" -tr %timestamp_sha2% -td sha256 "%thefile%"
signtool sign -v -sm -sha1 %thumb_sha1% -d "%descr%" -tr %timestamp_server% -td sha256 "%thefile%"
)
)

View File

@ -36,6 +36,7 @@
# 3 Sign in SBE
# 4 Self-signing certificate sha1 thumbprint
# 5 Self-signing certificate sha256 thumbprint
# 6 Timestamp server
set -exu
@ -78,10 +79,10 @@ ${UNZIP} -d ${SCRATCH_DIR} ${REPO}/packages/XenCenterOVF.zip
cd ${REPO} && "${MSBUILD}" ${SWITCHES} XenAdmin.sln
#sign files only if all parameters are set and non-empty
SIGN_BAT="${REPO}/mk/sign.bat ${GLOBAL_BUILD_NUMBER} $2 $3 $4 $5"
SIGN_BAT="${REPO}/mk/sign.bat ${GLOBAL_BUILD_NUMBER} $2 $3 $4 $5 $6"
SIGN_DESCR="${BRANDING_COMPANY_NAME_SHORT} ${BRANDING_BRAND_CONSOLE}"
if [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ] || [ -z "$5" ] ; then
if [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ] || [ -z "$5" ] || [ -z "$6" ] ; then
echo "Some signing parameters are not set; skip signing binaries"
else
for file in XenCenterMain.exe CommandLib.dll MSTSCLib.dll XenCenterLib.dll XenCenterVNC.dll XenModel.dll XenOvf.dll XenOvfTransport.dll
@ -187,7 +188,7 @@ done
#copy and sign the combined installer
chmod a+rw ${WIX}/${BRANDING_BRAND_CONSOLE}.msi && cp ${WIX}/${BRANDING_BRAND_CONSOLE}.msi ${OUTPUT_DIR}
if [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ] || [ -z "$5" ] ; then
if [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ] || [ -z "$5" ] || [ -z "$6" ] ; then
echo "Some signing parameters are not set; skip signing installer"
else
${SIGN_BAT} ${OUTPUT_DIR}/${BRANDING_BRAND_CONSOLE}.msi "${SIGN_DESCR}"

View File

@ -101,7 +101,7 @@ BEGIN
VALUE "FileDescription", "[XenCenter]"
VALUE "FileVersion", "1, 0, 0, 1"
VALUE "InternalName", "[XenCenter]"
VALUE "LegalCopyright", "[BRANDING_COPYRIGHT_2]"
VALUE "LegalCopyright", "Copyright \\251 [BRANDING_COMPANY_NAME_LEGAL]"
VALUE "OriginalFilename", "[XenCenter].exe"
VALUE "ProductName", "[Citrix] [XenCenter]"
VALUE "ProductVersion", "1, 0, 0, 1"

View File

@ -40,8 +40,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("[Citrix]")]
[assembly: AssemblyProduct("xe")]
[assembly: AssemblyCopyright("[BRANDING_COPYRIGHT]")]
[assembly: AssemblyProduct("[XenCenter]")]
[assembly: AssemblyCopyright("Copyright © [BRANDING_COMPANY_NAME_LEGAL]")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

View File

@ -40,8 +40,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("[Citrix]")]
[assembly: AssemblyProduct("xva_verify")]
[assembly: AssemblyCopyright("[BRANDING_COPYRIGHT]")]
[assembly: AssemblyProduct("[XenCenter]")]
[assembly: AssemblyCopyright("Copyright © [BRANDING_COMPANY_NAME_LEGAL]")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]