- updated russian translation

-  fixed max windows size to match available desktop area instead of screen area
- added .ini for experimental Sony sdb.xml changes
This commit is contained in:
Horst Beham
2021-09-26 18:52:24 +02:00
parent f57c2b9991
commit c9bbf884b6
30 changed files with 1216 additions and 186 deletions

View File

@@ -247,42 +247,47 @@ namespace ChanSort.Api
#endregion
#region AddDebug()
public void AddDebug(byte val)
public ChannelInfo AddDebug(byte val)
{
if (this.Debug == null)
this.Debug = val.ToString("x2");
else
this.Debug += " " + val.ToString("x2");
return this;
}
public void AddDebug(ushort val)
public ChannelInfo AddDebug(ushort val)
{
if (this.Debug == null)
this.Debug = val.ToString("x4");
else
this.Debug += " " + val.ToString("x4");
return this;
}
public void AddDebug(uint val)
public ChannelInfo AddDebug(uint val)
{
if (this.Debug == null)
this.Debug = val.ToString("x8");
else
this.Debug += " " + val.ToString("x8");
return this;
}
public void AddDebug(byte[] data, int offset, int len)
public ChannelInfo AddDebug(byte[] data, int offset, int len)
{
for (int i = 0; i < len; i++)
this.AddDebug(data[offset + i]);
return this;
}
public void AddDebug(string val)
public ChannelInfo AddDebug(string val)
{
if (this.Debug == null)
this.Debug = val;
else
this.Debug += " " + val;
return this;
}
#endregion

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@@ -117,4 +117,10 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ChannelList_ProgramNrAssignedToMultipleChannels" xml:space="preserve">
<value>Программа {0} (№{1}) назначена на несколько каналов: индекс {2}='{3}' и индекс {4}='{5}'</value>
</data>
<data name="ChannelList_AddChannel__DuplicateUid" xml:space="preserve">
<value>{0}: У канала '{1}' несколько записей данных: индекс {2}=Пр№{3} и индекс {4}=Пр№{5}</value>
</data>
</root>

View File

@@ -137,6 +137,7 @@
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Resources.ro.resx" />
<EmbeddedResource Include="Resources.ru.resx" />
<EmbeddedResource Include="Resources.tr.resx" />
</ItemGroup>
<ItemGroup />

View File

@@ -0,0 +1,128 @@
<?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="Load_NoChannelsMsg" xml:space="preserve">
<value>Этот файл-список каналов не содержит никаких данных.
Скорее всего, во время начальной настройки телевизора был выбран предопределённый список каналов. Такие списки не экспортируются и не могут быть отредактированы на телевизоре или в компьютере.
Чтобы получить список, который можно редактировать на компьютере, нужно сбросить настройки телевизора до заводских и выбрать опцию 'Другое' при настройке спутниковых каналов.</value>
</data>
<data name="Load_NoChannelsCaption" xml:space="preserve">
<value>Каналы не найдены</value>
</data>
</root>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@@ -117,4 +117,34 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="labelControl1.Text" xml:space="preserve">
<value>Этот файл содержит предустановленные номера программ для спутниковых каналов. Из-за проблем с новыми прошивками LG такие списки больше не могут быть надёжно изменены.</value>
</data>
<data name="labelControl3.Text" xml:space="preserve">
<value>Редактирование списка спутниковых каналов отключено!</value>
</data>
<data name="labelControl4.Text" xml:space="preserve">
<value>Чтобы включить редактирование, нужно сначала выполнить чистый полный поиск каналов:</value>
</data>
<data name="labelControl5.Text" xml:space="preserve">
<value>* Сохраните копию текущего файла TLL, если хотите использовать его как базовый список позже</value>
</data>
<data name="labelControl6.Text" xml:space="preserve">
<value>* Выполните автоматический поиск каналов с опциями "Полный", "Нет" и "Слепой поиск"</value>
</data>
<data name="labelControl7.Text" xml:space="preserve">
<value>* Сбросьте настройки телевизора в заводские значения</value>
</data>
<data name="linkDetails.Text" xml:space="preserve">
<value>См. подробности на вики-странице ChanSort</value>
</data>
<data name="btnOk.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="labelControl2.Text" xml:space="preserve">
<value>* Сохраните новый список на USB и откройте его в ChanSort</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Важное замечание</value>
</data>
</root>

View File

@@ -118,6 +118,54 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnCancel.Text" xml:space="preserve">
<value>Отменить</value>
<value>Отмена</value>
</data>
<data name="cbHbbTv.Properties.Caption" xml:space="preserve">
<value>Включить HbbTV (работает только с настройками страны DEU, FRA, NED и ESP)</value>
</data>
<data name="cbCustomCountry.Properties.Caption" xml:space="preserve">
<value>разрешить своё значение (на ваш риск!)</value>
</data>
<data name="labelControl1.Text" xml:space="preserve">
<value>Страна:</value>
</data>
<data name="grpOption.Text" xml:space="preserve">
<value>Меню OPTION</value>
</data>
<data name="btnOk.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="labelControl3.Text" xml:space="preserve">
<value>ПРИМЕЧАНИЕ: Если включён режим отеля, вы не сможете выбирать канал из телегида, а сброс в заводские настройки станет недоступным.</value>
</data>
<data name="labelControl2.Text" xml:space="preserve">
<value>Опции ниже предназначены только для режима отеля</value>
</data>
<data name="cbDtvUpdate.Properties.Caption" xml:space="preserve">
<value>Автообновление каналов D-TV (лучше выключить)</value>
</data>
<data name="cbHotelMode.Properties.Caption" xml:space="preserve">
<value>Включить режим отеля (лучше включить)</value>
</data>
<data name="grpHotelMode.Text" xml:space="preserve">
<value>Режим отеля</value>
</data>
<data name="cbAutoChannelUpdate.Properties.Caption" xml:space="preserve">
<value>Автообновление каналов (лучше выключить)</value>
</data>
<data name="grpSetup.Text" xml:space="preserve">
<value>Меню SETUP</value>
</data>
<data name="labelControl4.Text" xml:space="preserve">
<value>TLL-файл вашей модели телевизора поддерживается не полностью, из-за чего многие функции здесь отключены.</value>
</data>
<data name="grpInformation.Text" xml:space="preserve">
<value>Информация</value>
</data>
<data name="lblHotelMenuAutoDetect.Text" xml:space="preserve">
<value>Автоопределение меню отеля</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Настройки ТВ</value>
</data>
</root>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@@ -117,4 +117,54 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="TllFileSerializer_ERR_wrongChecksum" xml:space="preserve">
<value>Неверная контрольная сумма: вычислено {1:x8}, а у файла {0:x8}</value>
</data>
<data name="TllFileSerializerPlugin_ERR_modelUnknown" xml:space="preserve">
<value>Содержимое файла не соответствует ни одной поддерживаемой модели</value>
</data>
<data name="TllFileSerializerPlugin_ERR_fileTooBig" xml:space="preserve">
<value>Размер файла {0} больше допустимого максимума {1}</value>
</data>
<data name="TllFileSerializer_ERR_dupeChannel" xml:space="preserve">
<value>Канал №{0} (Пр№ {1}) удалён, так как это дубль канала №{2} (Пр№ {3}): {4}</value>
</data>
<data name="GcSerializer_ReadChannelLists_NoChannelsCap" xml:space="preserve">
<value>Пустой список</value>
</data>
<data name="GcSerializer_ReadChannelLists_NoChannelsMsg" xml:space="preserve">
<value>В файле со списком каналов нет каналов.</value>
</data>
<data name="GcSerializer_ReadModelInfo_ModelWarning" xml:space="preserve">
<value>Ваш телевизор будет импортировать файл GlobalClone только в том случае, если в той же папке нет файлов с именами вида xx*.TLL.
Хотите, чтобы программа переименовала конфликтующие файлы?</value>
</data>
<data name="GcSerializer_webOsFirmwareWarning" xml:space="preserve">
<value>ВНИМАНИЕ:
Убедитесь, что в вашем телевизоре на базе WebOS установлена новейшая версия прошивки (LB600 и выше: 4.41.32, UB: 4.51.44).
Более старая прошивка LG для моделей телевизоров на базе WebOS неправильно обрабатывает импорт списков каналов и произвольно переупорядочивает каналы.
(Если прошивка новее, не обращайте внимания на это сообщение.)</value>
</data>
<data name="LG_BlindscanInfo" xml:space="preserve">
<value>!!! ВНИМАНИЕ !!!
Списки каналов LG можно импортировать обратно в телевизор ТОЛЬКО в том случае, если при поиске каналов в телевизоре были выбраны особые параметры:
- Провайдер: ДОЛЖНО быть Нет/Другой (не выбирайте своего провайдера кабельного телевидения или Astra 19.2E)
- Сканирование вслепую: ДОЛЖНО быть выбрано
- Поиск по сети: необязательно (можно выбрать)
Если не выполнить эти действия, телевизор будет обрабатывать список некорректно!</value>
</data>
<data name="LG_BlindscanInfo_OpenWebpage" xml:space="preserve">
<value>См. информацию о поддержке webOS 5 на github.com</value>
</data>
<data name="LG_BlindscanInfo_Continue" xml:space="preserve">
<value>Поиск каналов был выполнен, как описано выше</value>
</data>
<data name="LG_BlindscanInfo_Cancel" xml:space="preserve">
<value>Отмена</value>
</data>
<data name="LG_BlindscanInfo_Rejected" xml:space="preserve">
<value>Загрузка была отменена</value>
</data>
</root>

View File

@@ -131,6 +131,7 @@
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="Resources.ro.resx" />
<EmbeddedResource Include="Resources.ru.resx" />
<EmbeddedResource Include="Resources.tr.resx" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

View File

@@ -0,0 +1,145 @@
<?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="InfoIgnoreImportError" xml:space="preserve">
<value>Телевизор может неправильно сообщать об ошибке импорта, но это можно игнорировать.</value>
</data>
<data name="InfoRestartAfterImport" xml:space="preserve">
<value>ИНФОРМАЦИЯ: После импорта списка обратно в телевизор отключите его и снова включите через несколько секунд.</value>
</data>
<data name="WarningChecksumErrorMsg" xml:space="preserve">
<value>ВНИМАНИЕ: В загруженном списке обнаружены ошибки контрольных сумм!
Возможны две ситуации, как это может произойти:
- Повреждён внутренний список каналов телевизора (например, после обновления прошивки)
Это можно исправить, снова выполнив сканирование каналов или сбросив настройки телевизора.
Затем снова экспортируйте список и откройте его в ChanSort.
Попытка отредактировать и импортировать повреждённый файл может привести к некорректной работе телевизора.
- Плохой USB-накопитель (плохие ячейки памяти или несовместимый формат файла)
Попробуйте использовать флешку объёмом не больше 16 ГБ, отформатированную в FAT32 (но не в NTFS или exFAT).</value>
</data>
<data name="WarningChechsumErrorIgnore" xml:space="preserve">
<value>Игнорировать ошибку и всё равно редактировать список</value>
</data>
<data name="Cancel" xml:space="preserve">
<value>Отмена</value>
</data>
</root>

View File

@@ -79,5 +79,10 @@
<Name>ChanSort.Api</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="ChanSort.Loader.Sony.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,5 @@
[sdb.xml]
# SDBEdit 0.9 doesn't set any of these flags, the official Sony Editor 1.2.0 does
setProgNrEditedFlag=true
setProgNameEditedFlag=true
setDeletedFlagInNwOptionMask=true

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Xml;
using System.Xml.Schema;
using ChanSort.Api;
// ReSharper disable UnusedMember.Local
namespace ChanSort.Loader.Sony
{
@@ -40,6 +42,8 @@ namespace ChanSort.Loader.Sony
private readonly Dictionary<SignalSource, ChannelListNodes> channeListNodes = new Dictionary<SignalSource, ChannelListNodes>();
private ChannelList mixedFavList;
private readonly IniFile ini;
private readonly IniFile.Section iniSection;
#region enum NwMask
// ui4_nw_mask for the Android "e110"-format
@@ -57,16 +61,18 @@ namespace ChanSort.Loader.Sony
NotDeletedByUserOption = 0x0200,
Radio = 0x0400,
Encrypted = 0x0800,
Tv = 0x2000,
MaskWhenDeleted = 0x0206
}
// ui4_nw_option_mask for the Android "e110"-format
[Flags]
private enum NwOptionMask : uint
{
NameEdited = 1 << 3, // guess based on values from Hisense
ChNumEdited = 1 << 10, // used by Sony Channel Editor 1.2.0, SetEdit 1.21 and Hisense
DeletedByUser = 1 << 13 // used by Sony Channel Editor 1.2.0 and Hisense
NameEdited = 1 << 3, // 8, 0x0008 - guess based on values from Hisense
ChNumEdited = 1 << 10, // 1024, 0x0400 - used by Sony Channel Editor 1.2.0, SetEdit 1.21 and Hisense
DeletedByUser = 1 << 13 // 8192, 0x2000 - used by Sony Channel Editor 1.2.0 and Hisense
}
#endregion
@@ -102,6 +108,10 @@ namespace ChanSort.Loader.Sony
list.VisibleColumnFieldNames.Remove("ShortName");
list.VisibleColumnFieldNames.Remove("Provider");
}
string iniFile = Assembly.GetExecutingAssembly().Location.Replace(".dll", ".ini");
this.ini = new IniFile(iniFile);
this.iniSection = ini.GetSection("sdb.xml");
}
#endregion
@@ -124,10 +134,8 @@ namespace ChanSort.Loader.Sony
ValidationFlags = XmlSchemaValidationFlags.None,
DtdProcessing = DtdProcessing.Ignore
};
using (var reader = XmlReader.Create(new StringReader(textContent), settings))
{
doc.Load(reader);
}
using var reader = XmlReader.Create(new StringReader(textContent), settings);
doc.Load(reader);
}
catch
{
@@ -336,15 +344,15 @@ namespace ChanSort.Loader.Sony
{
var recId = int.Parse(svcData["ui2_svl_rec_id"][i]);
var chan = new Channel(signalSource, i, recId);
var no = ParseInt(svcData["No"][i]);
var no = ParseInt(svcData["No"][i]); // the lower 18 bits always have 0x80 set and bits 0-1 seem to encode a service type like 1=TV, 2=radio, 3=data
chan.AddDebug("No.low=").AddDebug((uint)no & 0x3FFFF);
chan.OldProgramNr = (int)((uint)no >> 18);
chan.RecordOrder = chan.OldProgramNr;
var nwMask = (NwMask)uint.Parse(svcData["ui4_nw_mask"][i]);
chan.AddDebug("NW=");
chan.AddDebug((uint)nwMask);
chan.AddDebug("OPT=");
chan.AddDebug(uint.Parse(svcData["ui4_nw_option_mask"][i]));
chan.AddDebug("NW=").AddDebug((uint)nwMask);
chan.AddDebug("OPT=").AddDebug(uint.Parse(svcData["ui4_nw_option_mask"][i]));
chan.IsDeleted = (nwMask & NwMask.NotDeletedByUserOption) == 0;
chan.IsDeleted |= svcData["b_deleted_by_user"][i] != "1";
chan.IsDeleted |= svcData["b_deleted_by_user"][i] != "1"; // reverse logic: 0=deleted, 1=NOT deleted
chan.Hidden = (nwMask & NwMask.Visible) == 0;
chan.Encrypted = (nwMask & NwMask.Encrypted) != 0;
chan.Encrypted |= dvbData["t_free_ca_mode"][i] == "1";
@@ -749,12 +757,26 @@ namespace ChanSort.Loader.Sony
if (field == "ui4_nw_mask")
{
var mask = ((uint) ch.Favorites << 4) | (ch.Hidden ? 0u : (uint) NwMask.Visible) | (uint.Parse(value) & ~(uint) (NwMask.FavMask | NwMask.Visible));
// for deleted channels in the e110 format SDBEdit 0.9 removes only 0x200 from this mask, Sony Channel Editor 1.2.0 clears 0x206
if (ch.IsDeleted)
mask &= ~(uint)NwMask.MaskWhenDeleted;
return mask.ToString();
}
if (field == "ui4_nw_option_mask")
return (uint.Parse(value) | (uint)(NwOptionMask.ChNumEdited | (ch.IsNameModified ? NwOptionMask.NameEdited : 0) | (ch.IsDeleted ? NwOptionMask.DeletedByUser : 0))).ToString();
{
// SDBEdit 0.9 does not change this field at all (in the e110 format)
// Sony Channel Editor 1.2.0 sets the DeletedByUser flag + ChNumEdited flag
var mask = (NwOptionMask)uint.Parse(value);
if (this.iniSection.GetBool("setProgNrEditedFlag", true))
mask = (mask & ~NwOptionMask.ChNumEdited) | (ch.IsNameModified ? NwOptionMask.ChNumEdited : 0);
if (this.iniSection.GetBool("setProgNameEditedFlag", true))
mask = (mask & ~NwOptionMask.NameEdited) | (ch.IsNameModified ? NwOptionMask.NameEdited : 0);
if (this.iniSection.GetBool("setDeletedFlagInNwOptionMask", true))
mask = mask & ~NwOptionMask.DeletedByUser | (ch.IsDeleted ? NwOptionMask.DeletedByUser : 0);
return ((uint)mask).ToString();
}
if (field == "aui1_custom_data") // mixed favorite list position
{
var vals = value.Split(' ');

View File

@@ -118,7 +118,7 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="$this.Text" xml:space="preserve">
<value>О ChanSort</value>
<value>О программе ChanSort</value>
</data>
<data name="btnClose.Text" xml:space="preserve">
<value>Закрыть</value>
@@ -133,6 +133,6 @@
<value>Лицензия:</value>
</data>
<data name="lblCredits.Text" xml:space="preserve">
<value>Благодарность:</value>
<value>Благодарности:</value>
</data>
</root>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@@ -117,4 +117,10 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="lblMessage.Text" xml:space="preserve">
<value>Как вы хотите продолжить?</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Выберите действие…</value>
</data>
</root>

View File

@@ -437,6 +437,9 @@
<EmbeddedResource Include="ReferenceListForm.ro.resx">
<DependentUpon>ReferenceListForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ReferenceListForm.ru.resx">
<DependentUpon>ReferenceListForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ReferenceListForm.tr.resx">
<DependentUpon>ReferenceListForm.cs</DependentUpon>
</EmbeddedResource>

View File

@@ -121,12 +121,15 @@
<value>Набор символов</value>
</data>
<data name="btnCancel.Text" xml:space="preserve">
<value>Отменить</value>
<value>Отмена</value>
</data>
<data name="btnMyCountry.Text" xml:space="preserve">
<value>Набор символов по умолчанию для моей страны</value>
</data>
<data name="btnOk.Text" xml:space="preserve">
<value>Ok</value>
<value>OK</value>
</data>
<data name="colDisplayName.Caption" xml:space="preserve">
<value>Описание</value>
</data>
</root>

View File

@@ -18,6 +18,7 @@ using ChanSort.Ui.Printing;
using ChanSort.Ui.Properties;
using DevExpress.Data;
using DevExpress.LookAndFeel;
using DevExpress.Office.Services;
using DevExpress.Utils;
using DevExpress.XtraBars;
using DevExpress.XtraEditors;
@@ -2160,11 +2161,12 @@ namespace ChanSort.Ui
if (this.adjustWindowLocationOnScale) // adjust WindowStartPosition "CenterScreen" to new window size, but don't move upper left corner off-screen
{
var screen = Screen.FromPoint(new Point(this.Left + this.Width / 2, this.Top + this.Height / 2));
var b = screen.WorkingArea;
this.Bounds = new Rectangle(
Math.Max(screen.Bounds.Left, this.Left - (newSize.Width - oldSize.Width) / 2),
Math.Max(screen.Bounds.Top, this.Top - (newSize.Height - oldSize.Height) / 2),
Math.Min(screen.Bounds.Width, this.Width),
Math.Min(screen.Bounds.Height, this.Height));
Math.Max(b.Left, this.Left - (newSize.Width - oldSize.Width) / 2),
Math.Max(b.Top, this.Top - (newSize.Height - oldSize.Height) / 2),
Math.Min(b.Width, this.Width),
Math.Min(b.Height, this.Height));
}
this.bar1.Visible = true;

View File

@@ -142,16 +142,16 @@
<value>Переименовать канал</value>
</data>
<data name="miMoveDown.Caption" xml:space="preserve">
<value>Переместить вниз</value>
<value>Переместить ниже</value>
</data>
<data name="rbInsertBefore.Properties.Caption" xml:space="preserve">
<value>до</value>
</data>
<data name="cbCloseGap.Properties.Caption" xml:space="preserve">
<value>Закрыть соединение при перемещении / удалении канала</value>
<value>Закрывать разрыв при перемещении/удалении канала</value>
</data>
<data name="cbCloseGap.ToolTip" xml:space="preserve">
<value>В активном состоянии все каналы после текущего будут автоматически перенумерованы</value>
<value>Если включено, все каналы после текущего будут автоматически перенумерованы</value>
</data>
<data name="lblInsertMode.Text" xml:space="preserve">
<value>Режим вставки:</value>
@@ -163,10 +163,10 @@
<value>Установить:</value>
</data>
<data name="lblSetProgramNr.ToolTip" xml:space="preserve">
<value>Номер программы для добавления и настройки операций</value>
<value>Номер программы для добавления и установки</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>ChanSort {0} - редактор списка каналов для телевизоров</value>
<value>ChanSort {0} - редактор списка каналов телевизоров</value>
</data>
<data name="grpInputList.Text" xml:space="preserve">
<value>Все каналы</value>
@@ -184,7 +184,7 @@
<value>Фильтр</value>
</data>
<data name="btnAddAll.ToolTip" xml:space="preserve">
<value>Добавить все текущие несортированные каналы в конец списка</value>
<value>Добавить все несортированные сейчас каналы в конец списка</value>
</data>
<data name="btnAddAll.Text" xml:space="preserve">
<value>&lt;&lt; Добавить все</value>
@@ -202,7 +202,7 @@
<value>Источник\nсигнала</value>
</data>
<data name="colLogicalIndex.Caption" xml:space="preserve">
<value>Order</value>
<value>Порядок</value>
</data>
<data name="colNetworkOperator.Caption" xml:space="preserve">
<value>Оператор\nсети</value>
@@ -229,7 +229,7 @@
<value>Тип\nсервиса</value>
</data>
<data name="colServiceType.Caption" xml:space="preserve">
<value>ID Тип\nсервиса</value>
<value>ID типа\nсервиса</value>
</data>
<data name="colAudioPid.Caption" xml:space="preserve">
<value>Аудио\nPID</value>
@@ -241,10 +241,10 @@
<value>ID\nсервиса</value>
</data>
<data name="colFreqInMhz.Caption" xml:space="preserve">
<value>Частота\n(MHz)</value>
<value>Частота\n(МГц)</value>
</data>
<data name="colChannelOrTransponder.ToolTip" xml:space="preserve">
<value>Номер канала или транспондер</value>
<value>Номер канала или транспондера</value>
</data>
<data name="colChannelOrTransponder.Caption" xml:space="preserve">
<value>Канал/\nТранспондер</value>
@@ -253,16 +253,16 @@
<value>Зашифрованный</value>
</data>
<data name="colEncrypted.Caption" xml:space="preserve">
<value>Зашифрованный</value>
<value>Шифр</value>
</data>
<data name="colHidden.Caption" xml:space="preserve">
<value>Скрыть</value>
<value>Скрытый</value>
</data>
<data name="colSkip.Caption" xml:space="preserve">
<value>Пропускать</value>
<value>Пропуск</value>
</data>
<data name="colLock.Caption" xml:space="preserve">
<value>Заблокированный</value>
<value>Блокировка</value>
</data>
<data name="colFavorites.Caption" xml:space="preserve">
<value>Избранное</value>
@@ -298,7 +298,7 @@
<value>X</value>
</data>
<data name="btnUp.ToolTip" xml:space="preserve">
<value>Переместить выбранные каналы вверх</value>
<value>Переместить выбранные каналы выше</value>
</data>
<data name="btnUp.Text" xml:space="preserve">
<value>^</value>
@@ -328,7 +328,7 @@
<value>после</value>
</data>
<data name="rbInsertSwap.Properties.Caption" xml:space="preserve">
<value>заменить</value>
<value>обменять</value>
</data>
<data name="miShowWarningsAfterLoad.Caption" xml:space="preserve">
<value>Показывать предупреждения после загрузки файла</value>
@@ -346,7 +346,7 @@
<value>Настройки</value>
</data>
<data name="miCleanupChannels.Hint" xml:space="preserve">
<value>Перенастроить канал и удалить дубликаты</value>
<value>Перенастроить каналы и удалить дубликаты</value>
</data>
<data name="miCleanupChannels.Caption" xml:space="preserve">
<value>Очистка данных канала</value>
@@ -397,7 +397,7 @@
<value>Правка</value>
</data>
<data name="miRecentFiles.Caption" xml:space="preserve">
<value>Последние файлы</value>
<value>Недавние файлы</value>
</data>
<data name="miQuit.Caption" xml:space="preserve">
<value>Выход</value>
@@ -406,13 +406,13 @@
<value>Экспорт в Excel...</value>
</data>
<data name="miSaveReferenceFile.Caption" xml:space="preserve">
<value>Сохранить список...</value>
<value>Сохранить базовый список...</value>
</data>
<data name="miAddFromRefList.Caption" xml:space="preserve">
<value>Добавить каналы из списка...</value>
<value>Добавить каналы из базового списка...</value>
</data>
<data name="miOpenReferenceFile.Caption" xml:space="preserve">
<value>Загрузить список...</value>
<value>Применить порядок из базового списка...</value>
</data>
<data name="miSaveAs.Caption" xml:space="preserve">
<value>Сохранить как...</value>
@@ -421,7 +421,7 @@
<value>Сохранить</value>
</data>
<data name="miFileInformation.Caption" xml:space="preserve">
<value>Файл и информация...</value>
<value>Файловая информация</value>
</data>
<data name="miRestoreOriginal.Caption" xml:space="preserve">
<value>Восстановить из резервной копии</value>
@@ -430,13 +430,13 @@
<value>Перезагрузить</value>
</data>
<data name="miOpen.Caption" xml:space="preserve">
<value>Открыть файл данных TV...</value>
<value>Открыть файл данных ТВ...</value>
</data>
<data name="miFile.Caption" xml:space="preserve">
<value>Файл</value>
</data>
<data name="pageProgNr.Text" xml:space="preserve">
<value>Pr#</value>
<value>№пр</value>
</data>
<data name="lblHotkeyLeft.Text" xml:space="preserve">
<value>F3: Фильтр | F4: Список | -: Вверх | +: Вниз | Del: Удалить</value>
@@ -445,7 +445,7 @@
<value>Скрыть</value>
</data>
<data name="mnuHelp.Caption" xml:space="preserve">
<value>Помощь</value>
<value>Справка</value>
</data>
<data name="miWiki.Caption" xml:space="preserve">
<value>Вики ChanSort</value>
@@ -454,13 +454,13 @@
<value>Сайт ChanSort...</value>
</data>
<data name="miAbout.Caption" xml:space="preserve">
<value>О ChanSort ...</value>
<value>О программе ChanSort ...</value>
</data>
<data name="bar1.Text" xml:space="preserve">
<value>Инструменты</value>
<value>Сервис</value>
</data>
<data name="miMoveUp.Caption" xml:space="preserve">
<value>Переместить вверх</value>
<value>Переместить выше</value>
</data>
<data name="colOutServiceType.Caption" xml:space="preserve">
<value>Тип\nсервиса</value>
@@ -471,4 +471,277 @@
<data name="miTheme.Caption" xml:space="preserve">
<value>Цветовая схема…</value>
</data>
<data name="colOutDeleted.Caption" xml:space="preserve">
<value>Удалено</value>
</data>
<data name="colOutSource.Caption" xml:space="preserve">
<value>Источник</value>
</data>
<data name="colUid1.Caption" xml:space="preserve">
<value>UID</value>
</data>
<data name="btnSearchLeft.AccessibleDescription" xml:space="preserve">
<value>Поиск канала</value>
</data>
<data name="grpSubList.Text" xml:space="preserve">
<value>Субсписок</value>
</data>
<data name="miPrint.Caption" xml:space="preserve">
<value>Печать…</value>
</data>
<data name="miRenumFavByPrNr.Caption" xml:space="preserve">
<value>Перенумеровать каналы по №пр</value>
</data>
<data name="miRenumFavByPrNr.Hint" xml:space="preserve">
<value>Тот же №пр во всех списках каналов и избранного</value>
</data>
<data name="miCopyCsv.Caption" xml:space="preserve">
<value>Скопировать список в буфер обмена</value>
</data>
<data name="mnuLanguage.Caption" xml:space="preserve">
<value>Язык</value>
</data>
<data name="miEnglish.Caption" xml:space="preserve">
<value>Английский</value>
</data>
<data name="miCzech.Caption" xml:space="preserve">
<value>Чешский</value>
</data>
<data name="miGerman.Caption" xml:space="preserve">
<value>Немецкий</value>
</data>
<data name="miSpanish.Caption" xml:space="preserve">
<value>Испанский</value>
</data>
<data name="miHungarian.Caption" xml:space="preserve">
<value>Венгерский</value>
</data>
<data name="miPolski.Caption" xml:space="preserve">
<value>Польский</value>
</data>
<data name="miPortuguese.Caption" xml:space="preserve">
<value>Португальский</value>
</data>
<data name="miRomanian.Caption" xml:space="preserve">
<value>Румынский</value>
</data>
<data name="miRussian.Caption" xml:space="preserve">
<value>Русский</value>
</data>
<data name="miTurkish.Caption" xml:space="preserve">
<value>Турецкий</value>
</data>
<data name="miUtf8Charset.Caption" xml:space="preserve">
<value>UTF-8 (Юникод)</value>
</data>
<data name="miIsoCharSets.Caption" xml:space="preserve">
<value>Наборы символов ISO</value>
</data>
<data name="miUtf16BigEndian.Caption" xml:space="preserve">
<value>UTF-16 Big Endian (Юникод, сначала MSB)</value>
</data>
<data name="miUtf16LittleEndian.Caption" xml:space="preserve">
<value>UTF-16 Little Endian (Юникод, сначала LSB)</value>
</data>
<data name="miSplitView.Caption" xml:space="preserve">
<value>Разделённый просмотр</value>
</data>
<data name="miAutoHideColumns.Caption" xml:space="preserve">
<value>Скрывать/показывать колонки автоматически</value>
</data>
<data name="miLoadListAfterStart.Caption" xml:space="preserve">
<value>Загружать последний использованный при запуске</value>
</data>
<data name="miShowWarningsAfterLoad.Hint" xml:space="preserve">
<value>Автопоказ любых предупреждений после открытия файла</value>
</data>
<data name="miAllowEditPredefinedLists.Caption" xml:space="preserve">
<value>Разрешить правку предопределённых списков (ОПАСНО)</value>
</data>
<data name="miAllowEditPredefinedLists.Hint" xml:space="preserve">
<value>Редактирование списка с предопределёнными номерами каналов может привести к некорректной работе телевизора</value>
</data>
<data name="miExplorerIntegration.Caption" xml:space="preserve">
<value>Интеграция с Проводником Windows</value>
</data>
<data name="miCheckUpdates.Caption" xml:space="preserve">
<value>Проверка обновлений</value>
</data>
<data name="miResetAndRestart.Caption" xml:space="preserve">
<value>Сбросить в стандартные настройки и перезапустить</value>
</data>
<data name="miResetAndRestart.Hint" xml:space="preserve">
<value>Сбросить все изменённые настройки и перезапустить программу</value>
</data>
<data name="mnuAccessibility.Caption" xml:space="preserve">
<value>Доступность</value>
</data>
<data name="mnuGotoChannelList.AccessibleDescription" xml:space="preserve">
<value>Открыть подменю выбора источника входного сигнала. Это меню можно вызвать сразу клавишей F1</value>
</data>
<data name="mnuGotoChannelList.Caption" xml:space="preserve">
<value>Выбрать источник сигнала</value>
</data>
<data name="mnuGotoFavList.AccessibleDescription" xml:space="preserve">
<value>Открыть подменю выбора списка избранного. Это меню можно вызвать сразу клавишами Shift+F1</value>
</data>
<data name="mnuGotoFavList.Caption" xml:space="preserve">
<value>Выбрать список программ/избранного</value>
</data>
<data name="miSelectFavList0.Caption" xml:space="preserve">
<value>Список программ</value>
</data>
<data name="miSelectFavListA.Caption" xml:space="preserve">
<value>Избранное A</value>
</data>
<data name="miSelectFavListB.Caption" xml:space="preserve">
<value>Избранное B</value>
</data>
<data name="miSelectFavListC.Caption" xml:space="preserve">
<value>Избранное C</value>
</data>
<data name="miSelectFavListD.Caption" xml:space="preserve">
<value>Избранное D</value>
</data>
<data name="miSelectFavListE.Caption" xml:space="preserve">
<value>Избранное E</value>
</data>
<data name="miSearch.Caption" xml:space="preserve">
<value>Поиск</value>
</data>
<data name="miGotoLeftList.Caption" xml:space="preserve">
<value>Список слева</value>
</data>
<data name="miGotoRightList.Caption" xml:space="preserve">
<value>Список справа</value>
</data>
<data name="miFontSmall.Caption" xml:space="preserve">
<value>S - Tahoma 8пт</value>
</data>
<data name="miFontMedium.Caption" xml:space="preserve">
<value>M - Segoe UI 9пт</value>
</data>
<data name="miFontLarge.Caption" xml:space="preserve">
<value>L - Segoe UI 10пт</value>
</data>
<data name="miFontXLarge.Caption" xml:space="preserve">
<value>XL - Segoe UI 11пт</value>
</data>
<data name="miFontXxLarge.Caption" xml:space="preserve">
<value>XXL - Segoe UI 12пт</value>
</data>
<data name="btnSearchLeft.ToolTip" xml:space="preserve">
<value>Поиск канала по имени</value>
</data>
<data name="btnToggleFavH.AccessibleDescription" xml:space="preserve">
<value>Вкл./выкл. Избранное H</value>
</data>
<data name="btnToggleFavH.Text" xml:space="preserve">
<value>±H</value>
</data>
<data name="btnToggleFavG.AccessibleDescription" xml:space="preserve">
<value>Вкл./выкл. Избранное G</value>
</data>
<data name="btnToggleFavG.Text" xml:space="preserve">
<value>±G</value>
</data>
<data name="btnToggleFavF.AccessibleDescription" xml:space="preserve">
<value>Вкл./выкл. Избранное F</value>
</data>
<data name="btnToggleFavF.Text" xml:space="preserve">
<value>±F</value>
</data>
<data name="btnToggleLock.Text" xml:space="preserve">
<value>Вкл./выкл. родительский контроль</value>
</data>
<data name="btnToggleFavE.AccessibleDescription" xml:space="preserve">
<value>Вкл./выкл. Избранное E</value>
</data>
<data name="btnToggleFavE.Text" xml:space="preserve">
<value>±E</value>
</data>
<data name="btnToggleFavD.AccessibleDescription" xml:space="preserve">
<value>Вкл./выкл. Избранное D</value>
</data>
<data name="btnToggleFavD.Text" xml:space="preserve">
<value>±D</value>
</data>
<data name="btnToggleFavC.AccessibleDescription" xml:space="preserve">
<value>Вкл./выкл. Избранное C</value>
</data>
<data name="btnToggleFavC.Text" xml:space="preserve">
<value>±C</value>
</data>
<data name="btnToggleFavB.AccessibleDescription" xml:space="preserve">
<value>Вкл./выкл. Избранное B</value>
</data>
<data name="btnToggleFavB.Text" xml:space="preserve">
<value>±B</value>
</data>
<data name="btnToggleFavA.AccessibleDescription" xml:space="preserve">
<value>Вкл./выкл. Избранное A</value>
</data>
<data name="btnToggleFavA.Text" xml:space="preserve">
<value>±A</value>
</data>
<data name="btnClearLeftFilter.AccessibleDescription" xml:space="preserve">
<value>Удалить критерии фильтрации каналов из списка отсортированных каналов</value>
</data>
<data name="colSource.Caption" xml:space="preserve">
<value>Источник</value>
</data>
<data name="colPrNr.Caption" xml:space="preserve">
<value>№пр</value>
</data>
<data name="colDeleted.Caption" xml:space="preserve">
<value>Удалённый</value>
</data>
<data name="colTransportStreamId.Caption" xml:space="preserve">
<value>ID ТП</value>
</data>
<data name="colPcrPid.ToolTip" xml:space="preserve">
<value>ID опорного пакета синхронизации программы</value>
</data>
<data name="colProvider.Caption" xml:space="preserve">
<value>Провайдер</value>
</data>
<data name="colUid.Caption" xml:space="preserve">
<value>UID</value>
</data>
<data name="btnSearch.AccessibleDescription" xml:space="preserve">
<value>Поиск канала</value>
</data>
<data name="btnSearch.ToolTip" xml:space="preserve">
<value>Найти канал по имени</value>
</data>
<data name="lblPredefinedList.Text" xml:space="preserve">
<value>Это предопределённый список, его нельзя редактировать.</value>
</data>
<data name="lblPredefinedList.ToolTip" xml:space="preserve">
<value>Во время настройки телевизора вы выбрали заранее определённый список каналов. Изменение такого списка может привести к неисправности телевизора. Запустите полное сканирование каналов на телевизоре и не выбирайте никакого конкретного провайдера, спутника или списки стран.</value>
</data>
<data name="btnAddAll.AccessibleDescription" xml:space="preserve">
<value>Добавить все несортированные сейчас каналы в конец списка</value>
</data>
<data name="btnClearRightFilter.AccessibleDescription" xml:space="preserve">
<value>Удалить критерии фильтрации каналов из полного списка каналов</value>
</data>
<data name="colServiceType.ToolTip" xml:space="preserve">
<value>Значение типа сервиса DVB</value>
</data>
<data name="colServiceTypeName.ToolTip" xml:space="preserve">
<value>Тип сервиса DVB</value>
</data>
<data name="colNetworkId.ToolTip" xml:space="preserve">
<value>Исходный сетевой идентификатор</value>
</data>
<data name="colServiceId.ToolTip" xml:space="preserve">
<value>Идентификатор сервиса DVB</value>
</data>
<data name="colUid.ToolTip" xml:space="preserve">
<value>Внутренний уникальный идентификатор канала</value>
</data>
<data name="colDebug.Caption" xml:space="preserve">
<value>Отладочные\nданные</value>
</data>
</root>

View File

@@ -118,6 +118,27 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnCancel.Text" xml:space="preserve">
<value>Отменить</value>
<value>Отмена</value>
</data>
<data name="labelControl1.Text" xml:space="preserve">
<value>Сортировка:</value>
</data>
<data name="rbSortByNumber.Properties.Caption" xml:space="preserve">
<value>Номер</value>
</data>
<data name="rbSortByName.Properties.Caption" xml:space="preserve">
<value>Имя</value>
</data>
<data name="labelControl2.Text" xml:space="preserve">
<value>Шрифт:</value>
</data>
<data name="btnPreview.Text" xml:space="preserve">
<value>Предпросмотр…</value>
</data>
<data name="labelControl3.Text" xml:space="preserve">
<value>Колонки:</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Параметры печати</value>
</data>
</root>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@@ -117,4 +117,181 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="MainForm_LoadTll_SourceTllNotFound" xml:space="preserve">
<value>Не удалось найти исходный TLL::
'{0}'</value>
</data>
<data name="MainForm_LoadTll_Exception" xml:space="preserve">
<value>Ошибка загрузки файла с ТВ-данными:
{0}</value>
</data>
<data name="MainForm_FileDialog_OpenFileFilter" xml:space="preserve">
<value>Поддерживаемые файлы|{0}|Все файлы (*.*)|*</value>
</data>
<data name="MainForm_FileDialog_SaveFileFilter" xml:space="preserve">
<value>{0}-файлы|*{0}|Все файлы (*.*)|*</value>
</data>
<data name="MainForm_TryExecute_Exception" xml:space="preserve">
<value>Неизвестная ошибка:
{0}</value>
</data>
<data name="MainForm_SaveTllFile_Exception" xml:space="preserve">
<value>Ошибка записи файла с ТВ-данными:
{0}</value>
</data>
<data name="MainForm_SaveTllFile_Success" xml:space="preserve">
<value>Файл с отсортированными ТВ-данными успешно создан.</value>
</data>
<data name="MainForm_PromptSaveAndContinue_Question" xml:space="preserve">
<value>Сохранить изменения?</value>
</data>
<data name="MainForm_PromptSaveAndContinue_Save" xml:space="preserve">
<value>Сохранить изменения</value>
</data>
<data name="MainForm_PromptSaveAndContinue_Discard" xml:space="preserve">
<value>Не сохранять изменения</value>
</data>
<data name="MainForm_LoadTll_SerializerNotFound" xml:space="preserve">
<value>Не найден плагин для чтения/записи файлов {0}.</value>
</data>
<data name="MainForm_LoadFiles_IOException" xml:space="preserve">
<value>Ошибка загрузки файла</value>
</data>
<data name="MainForm_LoadFiles_ValidationWarningMsg" xml:space="preserve">
<value>Не всё в порядке с содержимым файла, возможно, он повреждён.</value>
</data>
<data name="MainForm_LoadFiles_ValidationWarningCap" xml:space="preserve">
<value>Проверка данных</value>
</data>
<data name="MainForm_RestoreScanOrder_Message" xml:space="preserve">
<value>Все пользовательские изменения будут потеряны.
Вы действительно хотите восстановить порядок из сканирования каналов?</value>
</data>
<data name="MainForm_RestoreScanOrder_Caption" xml:space="preserve">
<value>Порядок из сканирования каналов</value>
</data>
<data name="MainForm_LoadFiles_DupeWarningMsg" xml:space="preserve">
<value>Входной файл содержит несколько записей, в которых используется
один и тот же номер программы. Вполне возможно, что телевизор
не примет изменения, внесённые ChanSort.
Обычно это вызвано выполнением сканирования транспондера вручную.
Рекомендуется использовать чистый входной файл для любых изменений.
Для этого выключите режим отеля, сбросьте настройки телевизора в
заводские, запустите новое слепое сканирование каналов и снова включите
режим отеля, после чего экспортируйте новый чистый TLL-файл.</value>
</data>
<data name="MainForm_btnResetChannelData_Click_Message" xml:space="preserve">
<value>ВНИМАНИЕ: Все аналоговые, DVB-C/T и DVB-S каналы и данные транспондера будут удалены.
После загрузки этого файла в телевизор придётся выполнить полное сканирование каналов.
Продолжить?</value>
</data>
<data name="MainForm_btnResetChannelData_Click_Caption" xml:space="preserve">
<value>Стереть все данные каналов</value>
</data>
<data name="MainForm_miRestoreOriginal_Message" xml:space="preserve">
<value>Невозможно скопировать файл .bak в {0}</value>
</data>
<data name="MainForm_miRestoreOriginal_ItemClick_NoBackup" xml:space="preserve">
<value>Не найден файл резервной копии: {0}</value>
</data>
<data name="MainForm_miRestoreOriginal_ItemClick_Confirm" xml:space="preserve">
<value>Вы собираетесь восстановить данные из резервной копии. Все изменения будут потеряны!
Продолжить?</value>
</data>
<data name="MainForm_SaveFiles_ErrorMsg" xml:space="preserve">
<value>Ошибка при сохранении файла. Убедитесь, что
- у вас есть разрешение на запись в файл
- файл не открыт в другой программе
Сообщение об ошибке:</value>
</data>
<data name="MainForm_SaveFiles_ErrorTitle" xml:space="preserve">
<value>Ошибка записи файла</value>
</data>
<data name="UpdateCheck_NotifyAboutNewVersion_Message" xml:space="preserve">
<value>Доступна новая версия: v{0}.
Открыть веб-страницу загрузки?</value>
</data>
<data name="UpdateCheck_NotifyAboutNewVersion_Caption" xml:space="preserve">
<value>Новая версия</value>
</data>
<data name="MainForm_InitInitialChannelOrder_Question" xml:space="preserve">
<value>Как вы хотите отредактировать список каналов?</value>
</data>
<data name="MainForm_InitInitialChannelOrder_EmptyList" xml:space="preserve">
<value>Создать новый список: Начать с пустого списка и добавить каналы в нужном порядке</value>
</data>
<data name="MainForm_InitInitialChannelOrder_CurrentList" xml:space="preserve">
<value>Изменить текущий список: Начать с текущего списка и изменить его</value>
</data>
<data name="MainForm_InitInitialChannelOrder_ReferenceList" xml:space="preserve">
<value>Скопировать список каналов: Упорядочить каналы, как в справочном списке</value>
</data>
<data name="MainForm_PromptHandlingOfUnsortedChannels_Question" xml:space="preserve">
<value>Как поступить с неотсортированными каналами?</value>
</data>
<data name="MainForm_PromptHandlingOfUnsortedChannels_Append" xml:space="preserve">
<value>Добавить в конец списка</value>
</data>
<data name="MainForm_PromptHandlingOfUnsortedChannels_Delete" xml:space="preserve">
<value>Удалить из списка</value>
</data>
<data name="MainForm_Cancel" xml:space="preserve">
<value>Отмена</value>
</data>
<data name="MainForm_LoadTvDataFile_FileNotFound_Caption" xml:space="preserve">
<value>Файл не найден</value>
</data>
<data name="MainForm_LoadTvDataFile_FileNotFound_Message" xml:space="preserve">
<value>Файл {0} не существует.</value>
</data>
<data name="MainForm_ExportExcelList_Message" xml:space="preserve">
<value>Список каналов скопирован в буфер обмена и
может быть вставлен в Excel или текстовый редактор.</value>
</data>
<data name="MainForm_HandleChannelNumberGaps" xml:space="preserve">
<value>Телевизор может работать неправильно, если есть пропуски номеров каналов.
Хотите, чтобы номера каналов были последовательно переупорядочены?</value>
</data>
<data name="MainForm_LoadFiles_AllZero" xml:space="preserve">
<value>Некорректное содержимое файла. Либо у файла нулевой размер, либо все его байты имеют одинаковое значение.
Типичные причины - USB-накопители с файловой системой NTFS (попробуйте вместо неё использовать FAT32)
или обновление прошивки без повторного сканирования каналов.
(Возможно, новое ПО телевизора не сможет обработать старые данные каналов при экспорте.)</value>
</data>
<data name="ReferenceListForm_AntennaCableSatIPAnalogDigitalTVRadio" xml:space="preserve">
<value>Антенна,Кабель,Спутник,IP,Аналог,Цифра,ТВ,Радио,Данные</value>
</data>
<data name="ReferenceListForm_btnApply_ConflictHandling" xml:space="preserve">
<value>Что делать, если в целевом списке № канала уже занят?</value>
</data>
<data name="ReferenceListForm_btnApply_Click_Clear" xml:space="preserve">
<value>Очистить целевой список перед применением базового списка</value>
</data>
<data name="ReferenceListForm_btnApply_Click_Overwrite" xml:space="preserve">
<value>Перезаписать номера каналов из исходного списка</value>
</data>
<data name="ReferenceListForm_btnApply_Click_Keep" xml:space="preserve">
<value>Сохранить у текущего канала Pr#</value>
</data>
<data name="MainForm_SwapChannels_RowCountMsg" xml:space="preserve">
<value>Для обмена каналов местами нужно выбрать равное количество строк в левой и правой таблицах.</value>
</data>
<data name="MainForm_SwapChannels_RowCountTitle" xml:space="preserve">
<value>Обмен каналами</value>
</data>
<data name="ReferenceListForm_ShowOpenFileDialog_Title" xml:space="preserve">
<value>Выберите базовый список для импорта</value>
</data>
<data name="MainForm_ShowOpenReferenceFileDialog_Filter" xml:space="preserve">
<value>Базовый список ChanSort|*.csv|Базовый список SamToolBox|*.chl|Все базовые списки|*.csv;*.chl</value>
</data>
<data name="MainForm_ShowOpenReferenceFileDialog_Title" xml:space="preserve">
<value>Открыть базовый список</value>
</data>
<data name="MainForm_LoadTll_InvalidZip" xml:space="preserve">
<value>Этот файл не является корректным zip-архивом.
Телевизоры нередко экспортируют с ошибками файлы на USB-накопители с файловой системой NTFS.
Попробуйте выполнить экспорт на USB-флешку, отформатированную в FAT32.</value>
</data>
</root>

View File

@@ -152,30 +152,6 @@ o un archivo de otra TV (SCM, TLL, DB, BIN, …)</value>
<data name="labelControl6.Text" xml:space="preserve">
<value>(p.e. deje que los canales de radio empiecen en 5000 para evitar conflictos con los números de los canales de TV)</value>
</data>
<data name="comboPrNr.EditValue" xml:space="preserve">
<value>1</value>
</data>
<data name="comboPrNr.Properties.Items" xml:space="preserve">
<value>1</value>
</data>
<data name="comboPrNr.Properties.Items1" xml:space="preserve">
<value>100</value>
</data>
<data name="comboPrNr.Properties.Items2" xml:space="preserve">
<value>500</value>
</data>
<data name="comboPrNr.Properties.Items3" xml:space="preserve">
<value>1000</value>
</data>
<data name="comboPrNr.Properties.Items4" xml:space="preserve">
<value>2000</value>
</data>
<data name="comboPrNr.Properties.Items5" xml:space="preserve">
<value>5000</value>
</data>
<data name="comboPrNr.Properties.Items6" xml:space="preserve">
<value>7000</value>
</data>
<data name="cbConsecutive.Properties.Caption" xml:space="preserve">
<value>Usar números consecutivos (elimina huecos de Pr# desde la lista de referencia)</value>
</data>

View File

@@ -150,30 +150,6 @@
<data name="labelControl6.Text" xml:space="preserve">
<value>(pl. a rádiócsatornák induljanak 5000-től, hogy elkerüljük a tévécsatorna számaival való ütközést)</value>
</data>
<data name="comboPrNr.EditValue" xml:space="preserve">
<value>1</value>
</data>
<data name="comboPrNr.Properties.Items" xml:space="preserve">
<value>1</value>
</data>
<data name="comboPrNr.Properties.Items1" xml:space="preserve">
<value>100</value>
</data>
<data name="comboPrNr.Properties.Items2" xml:space="preserve">
<value>500</value>
</data>
<data name="comboPrNr.Properties.Items3" xml:space="preserve">
<value>1000</value>
</data>
<data name="comboPrNr.Properties.Items4" xml:space="preserve">
<value>2000</value>
</data>
<data name="comboPrNr.Properties.Items5" xml:space="preserve">
<value>5000</value>
</data>
<data name="comboPrNr.Properties.Items6" xml:space="preserve">
<value>7000</value>
</data>
<data name="checkEdit1.Properties.Caption" xml:space="preserve">
<value>Adat/Egyéb</value>
</data>

View File

@@ -152,30 +152,6 @@ lub plik danych z innego telewizora (SCM, TLL, DB, BIN, ...)</value>
<data name="labelControl6.Text" xml:space="preserve">
<value>(tzn. niech kanały radiowe zaczynają się od 5000, aby uniknąć konfliktów z numerami kanałów telewizyjnych)</value>
</data>
<data name="comboPrNr.EditValue" xml:space="preserve">
<value>1</value>
</data>
<data name="comboPrNr.Properties.Items" xml:space="preserve">
<value>1</value>
</data>
<data name="comboPrNr.Properties.Items1" xml:space="preserve">
<value>100</value>
</data>
<data name="comboPrNr.Properties.Items2" xml:space="preserve">
<value>500</value>
</data>
<data name="comboPrNr.Properties.Items3" xml:space="preserve">
<value>1000</value>
</data>
<data name="comboPrNr.Properties.Items4" xml:space="preserve">
<value>2000</value>
</data>
<data name="comboPrNr.Properties.Items5" xml:space="preserve">
<value>5000</value>
</data>
<data name="comboPrNr.Properties.Items6" xml:space="preserve">
<value>7000</value>
</data>
<data name="checkEdit1.Properties.Caption" xml:space="preserve">
<value>Dane/Inne</value>
</data>

View File

@@ -152,30 +152,6 @@ sau un fișier de date de la un alt televizor (SCM, TLL, DB, BIN, ...)</value>
<data name="labelControl6.Text" xml:space="preserve">
<value>(adică lăsați canalele radio să înceapă la 5000 pentru a evita conflictele cu numerele de canale TV)</value>
</data>
<data name="comboPrNr.EditValue" xml:space="preserve">
<value>1</value>
</data>
<data name="comboPrNr.Properties.Items" xml:space="preserve">
<value>1</value>
</data>
<data name="comboPrNr.Properties.Items1" xml:space="preserve">
<value>100</value>
</data>
<data name="comboPrNr.Properties.Items2" xml:space="preserve">
<value>500</value>
</data>
<data name="comboPrNr.Properties.Items3" xml:space="preserve">
<value>1000</value>
</data>
<data name="comboPrNr.Properties.Items4" xml:space="preserve">
<value>2000</value>
</data>
<data name="comboPrNr.Properties.Items5" xml:space="preserve">
<value>5000</value>
</data>
<data name="comboPrNr.Properties.Items6" xml:space="preserve">
<value>7000</value>
</data>
<data name="cbConsecutive.Properties.Caption" xml:space="preserve">
<value>Utilizați numere consecutive (eliminați lacunele din lista de referință Pr#)</value>
</data>

View File

@@ -0,0 +1,213 @@
<?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="labelControl1.Text" xml:space="preserve">
<value>Базовый файл-список:</value>
</data>
<data name="edFile.EditValue" xml:space="preserve">
<value>← нажмите кнопку, чтобы выбрать файл</value>
</data>
<data name="labelControl2.Text" xml:space="preserve">
<value>Выберите файл с порядком каналов, который вы хотите применить к текущему списку. Можно использовать один из предопределённых списков ChanSort (TXT, CHL, CSV) или файл данных с другого телевизора (SCM, TLL, DB, BIN, ...)</value>
</data>
<data name="rbAuto.Properties.Caption" xml:space="preserve">
<value>Автопереупорядочивание всех списков в ТВ-файле</value>
</data>
<data name="rbManual.Properties.Caption" xml:space="preserve">
<value>Расширенное переупорядочивание</value>
</data>
<data name="labelControl3.Text" xml:space="preserve">
<value>Базовый список:</value>
</data>
<data name="labelControl4.Text" xml:space="preserve">
<value>Целевой список:</value>
</data>
<data name="cbTv.Properties.Caption" xml:space="preserve">
<value>ТВ</value>
</data>
<data name="cbRadio.Properties.Caption" xml:space="preserve">
<value>Радио</value>
</data>
<data name="labelControl5.Text" xml:space="preserve">
<value>Начинать с №:</value>
</data>
<data name="labelControl6.Text" xml:space="preserve">
<value>(т.е. пусть радиоканалы начинаются с 5000, чтобы избежать конфликтов с номерами телеканалов)</value>
</data>
<data name="checkEdit1.Properties.Caption" xml:space="preserve">
<value>Данные/Другое</value>
</data>
<data name="cbConsecutive.Properties.Caption" xml:space="preserve">
<value>Последовательная нумерация (удалять пропуски из списка №пр)</value>
</data>
<data name="cbIp.Properties.Caption" xml:space="preserve">
<value>IP (сеть)</value>
</data>
<data name="cbSat.Properties.Caption" xml:space="preserve">
<value>Спутник</value>
</data>
<data name="labelControl11.Text" xml:space="preserve">
<value>Вход:</value>
</data>
<data name="cbAntenna.Properties.Caption" xml:space="preserve">
<value>Антенна</value>
</data>
<data name="cbCable.Properties.Caption" xml:space="preserve">
<value>Кабель</value>
</data>
<data name="labelControl9.Text" xml:space="preserve">
<value>Сигнал:</value>
</data>
<data name="cbAnalog.Properties.Caption" xml:space="preserve">
<value>Аналоговый</value>
</data>
<data name="cbDigital.Properties.Caption" xml:space="preserve">
<value>Цифровой</value>
</data>
<data name="labelControl7.Text" xml:space="preserve">
<value>Тип канала:</value>
</data>
<data name="btnApply.Text" xml:space="preserve">
<value>Применить</value>
</data>
<data name="btnOk.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="btnClose.Text" xml:space="preserve">
<value>Закрыть/Отмена</value>
</data>
<data name="linkWiki.Text" xml:space="preserve">
<value>Открыть вики-страницу ChanSort с информацией и загрузкой базовых списков</value>
</data>
<data name="groupControl1.Text" xml:space="preserve">
<value>1. Выберите базовый файл-список</value>
</data>
<data name="labelControl10.Text" xml:space="preserve">
<value>Если ТВ-файл и базовый файл содержат несколько списков или используют различную группировку, к целевому списку можно применить выбранные части базового списка. При необходимости этот шаг можно повторить.</value>
</data>
<data name="labelControl8.Text" xml:space="preserve">
<value>Эта опция доступна, только если ТВ-файл и базовый список организованы одинаково (т.е. те же субсписки для комбинаций антенны / кабеля / спутника, ТВ / радио, аналога / цифры)</value>
</data>
<data name="groupControl2.Text" xml:space="preserve">
<value>2. Наведите порядок в ТВ-файле</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Применить базовый список</value>
</data>
</root>

View File

@@ -152,30 +152,6 @@ veya başka bir TV'den veri dosyası (SCM, TLL, DB, BIN, ...)</value>
<data name="labelControl6.Text" xml:space="preserve">
<value>(TV kanalı numaralarıyla çakışmaları önlemek için radyo kanallarının 5000'den başlamasına izin verin)</value>
</data>
<data name="comboPrNr.EditValue" xml:space="preserve">
<value>1</value>
</data>
<data name="comboPrNr.Properties.Items" xml:space="preserve">
<value>1</value>
</data>
<data name="comboPrNr.Properties.Items1" xml:space="preserve">
<value>100</value>
</data>
<data name="comboPrNr.Properties.Items2" xml:space="preserve">
<value>500</value>
</data>
<data name="comboPrNr.Properties.Items3" xml:space="preserve">
<value>1000</value>
</data>
<data name="comboPrNr.Properties.Items4" xml:space="preserve">
<value>2000</value>
</data>
<data name="comboPrNr.Properties.Items5" xml:space="preserve">
<value>5000</value>
</data>
<data name="comboPrNr.Properties.Items6" xml:space="preserve">
<value>7000</value>
</data>
<data name="checkEdit1.Properties.Caption" xml:space="preserve">
<value>Veri / Diğer</value>
</data>

View File

@@ -118,12 +118,15 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnCancel.Text" xml:space="preserve">
<value>Отменить</value>
<value>Отмена</value>
</data>
<data name="btnOk.Text" xml:space="preserve">
<value>Ok</value>
<value>OK</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Цветовая схема</value>
<value>Цветовая тема</value>
</data>
<data name="btnReset.Text" xml:space="preserve">
<value>Использовать стандартную тему</value>
</data>
</root>

View File

@@ -118,6 +118,9 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="progressPanel1.Description" xml:space="preserve">
<value>Создание файла данных ТВ...</value>
<value>Создание файла ТВ-данных</value>
</data>
<data name="progressPanel1.Caption" xml:space="preserve">
<value>Подождите</value>
</data>
</root>

Binary file not shown.

BIN
source/Translation_ru.xlsx Normal file

Binary file not shown.