mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-11-25 12:44:46 +01:00
Merge pull request #1190 from xylographe/xfix1
Let ChooseLanguage not depend on installed Windows cultures
This commit is contained in:
commit
3e2c5f4136
@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using Nikse.SubtitleEdit.Logic;
|
||||
using System.Xml;
|
||||
@ -10,35 +11,64 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
{
|
||||
public sealed partial class ChooseLanguage : PositionAndSizeForm
|
||||
{
|
||||
public class CultureListItem
|
||||
private class TranslationInfo : IEquatable<TranslationInfo>
|
||||
{
|
||||
private CultureInfo _cultureInfo;
|
||||
|
||||
public CultureListItem(CultureInfo cultureInfo)
|
||||
private readonly string _cultureName;
|
||||
public string CultureName
|
||||
{
|
||||
_cultureInfo = cultureInfo;
|
||||
get { return _cultureName; }
|
||||
}
|
||||
|
||||
private readonly string _displayName;
|
||||
public string DisplayName
|
||||
{
|
||||
get { return _displayName; }
|
||||
}
|
||||
|
||||
public TranslationInfo(string cultureName, string displayName)
|
||||
{
|
||||
_cultureName = cultureName;
|
||||
try
|
||||
{
|
||||
var ci = CultureInfo.GetCultureInfo(cultureName);
|
||||
_displayName = char.ToUpper(displayName[0], ci) + displayName.Substring(1);
|
||||
}
|
||||
catch
|
||||
{
|
||||
_displayName = char.ToUpperInvariant(displayName[0]) + displayName.Substring(1);
|
||||
}
|
||||
}
|
||||
|
||||
public bool Equals(TranslationInfo ti)
|
||||
{
|
||||
return (ti != null) ? CultureName.Equals(ti.CultureName, StringComparison.OrdinalIgnoreCase) : false;
|
||||
}
|
||||
|
||||
public override bool Equals(Object obj)
|
||||
{
|
||||
return Equals(obj as TranslationInfo);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return CultureName.ToUpperInvariant().GetHashCode();
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return char.ToUpper(_cultureInfo.NativeName[0]) + _cultureInfo.NativeName.Substring(1);
|
||||
}
|
||||
|
||||
public string Name
|
||||
{
|
||||
get { return _cultureInfo.Name; }
|
||||
return DisplayName;
|
||||
}
|
||||
}
|
||||
|
||||
private readonly TranslationInfo DefaultTranslation;
|
||||
private readonly TranslationInfo CurrentTranslation;
|
||||
|
||||
public string CultureName
|
||||
{
|
||||
get
|
||||
{
|
||||
int index = comboBoxLanguages.SelectedIndex;
|
||||
if (index == -1)
|
||||
return "en-US";
|
||||
else
|
||||
return (comboBoxLanguages.Items[index] as CultureListItem).Name;
|
||||
var translation = comboBoxLanguages.SelectedItem as TranslationInfo;
|
||||
return (translation == null) ? DefaultTranslation.CultureName : translation.CultureName;
|
||||
}
|
||||
}
|
||||
|
||||
@ -46,50 +76,51 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
List<string> list = new List<string>();
|
||||
var defaultLanguage = new Language();
|
||||
DefaultTranslation = new TranslationInfo(defaultLanguage.General.CultureName, defaultLanguage.Name);
|
||||
var currentLanguage = Configuration.Settings.Language;
|
||||
if (currentLanguage == null)
|
||||
{
|
||||
CurrentTranslation = new TranslationInfo(CultureInfo.CurrentUICulture.Name, CultureInfo.CurrentUICulture.NativeName);
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentTranslation = new TranslationInfo(currentLanguage.General.CultureName, currentLanguage.Name);
|
||||
}
|
||||
|
||||
var translations = new HashSet<TranslationInfo>();
|
||||
translations.Add(DefaultTranslation);
|
||||
if (Directory.Exists(Path.Combine(Configuration.BaseDirectory, "Languages")))
|
||||
{
|
||||
string[] versionInfo = Utilities.AssemblyVersion.Split('.');
|
||||
string currentVersion = String.Format("{0}.{1}.{2}", versionInfo[0], versionInfo[1], versionInfo[2]);
|
||||
var versionInfo = Utilities.AssemblyVersion.Split('.');
|
||||
var currentVersion = string.Format("{0}.{1}.{2}", versionInfo[0], versionInfo[1], versionInfo[2]);
|
||||
var document = new XmlDocument { XmlResolver = null };
|
||||
|
||||
foreach (string fileName in Directory.GetFiles(Path.Combine(Configuration.BaseDirectory, "Languages"), "*.xml"))
|
||||
foreach (var fileName in Directory.GetFiles(Path.Combine(Configuration.BaseDirectory, "Languages"), "*.xml"))
|
||||
{
|
||||
string cultureName = Path.GetFileNameWithoutExtension(fileName);
|
||||
XmlDocument doc = new XmlDocument();
|
||||
doc.Load(fileName);
|
||||
document.Load(fileName);
|
||||
try
|
||||
{
|
||||
string version = doc.DocumentElement.SelectSingleNode("General/Version").InnerText;
|
||||
var version = document.DocumentElement.SelectSingleNode("General/Version").InnerText.Trim();
|
||||
if (version == currentVersion)
|
||||
list.Add(cultureName);
|
||||
{
|
||||
var cultureName = document.DocumentElement.SelectSingleNode("General/CultureName").InnerText.Trim();
|
||||
var displayName = document.DocumentElement.Attributes["Name"].Value.Trim();
|
||||
if (!string.IsNullOrEmpty(cultureName) && !string.IsNullOrEmpty(displayName))
|
||||
translations.Add(new TranslationInfo(cultureName, displayName));
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
list.Sort();
|
||||
comboBoxLanguages.Items.Add(new CultureListItem(CultureInfo.CreateSpecificCulture("en-US")));
|
||||
foreach (string cultureName in list)
|
||||
{
|
||||
try
|
||||
{
|
||||
var ci = CultureInfo.CreateSpecificCulture(cultureName);
|
||||
if (!ci.Name.Equals(cultureName, StringComparison.OrdinalIgnoreCase))
|
||||
ci = CultureInfo.GetCultureInfo(cultureName);
|
||||
comboBoxLanguages.Items.Add(new CultureListItem(ci));
|
||||
}
|
||||
catch (ArgumentException)
|
||||
{
|
||||
System.Diagnostics.Debug.WriteLine(cultureName + " is not a valid culture");
|
||||
}
|
||||
}
|
||||
|
||||
int index = 0;
|
||||
for (int i = 0; i < comboBoxLanguages.Items.Count; i++)
|
||||
int index = -1;
|
||||
foreach (var translation in translations.OrderBy(ti => ti.DisplayName, StringComparer.CurrentCultureIgnoreCase).ThenBy(ti => ti.CultureName, StringComparer.Ordinal))
|
||||
{
|
||||
var item = (CultureListItem)comboBoxLanguages.Items[i];
|
||||
if (item.Name == Configuration.Settings.Language.General.CultureName)
|
||||
int i = comboBoxLanguages.Items.Add(translation);
|
||||
if (translation.Equals(CurrentTranslation) || (index < 0 && translation.Equals(DefaultTranslation)))
|
||||
index = i;
|
||||
}
|
||||
comboBoxLanguages.SelectedIndex = index;
|
||||
|
@ -1153,15 +1153,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
|
||||
optionsToolStripMenuItem.Text = _language.Menu.Options.Title;
|
||||
settingsToolStripMenuItem.Text = _language.Menu.Options.Settings;
|
||||
changeLanguageToolStripMenuItem.Text = _language.Menu.Options.ChooseLanguage;
|
||||
try
|
||||
{
|
||||
var ci = System.Globalization.CultureInfo.GetCultureInfo(_languageGeneral.CultureName);
|
||||
changeLanguageToolStripMenuItem.Text += " [" + ci.NativeName + "]";
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
changeLanguageToolStripMenuItem.Text = _language.Menu.Options.ChooseLanguage + " [" + Configuration.Settings.Language.Name + "]";
|
||||
|
||||
toolStripMenuItemNetworking.Text = _language.Menu.Networking.Title;
|
||||
startServerToolStripMenuItem.Text = _language.Menu.Networking.StartNewSession;
|
||||
@ -2581,7 +2573,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
MessageBox.Show(this, errors, Title, MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
errors = (format as AdvancedSubStationAlpha).Errors;
|
||||
if (!string.IsNullOrEmpty(errors))
|
||||
MessageBox.Show(errors, Title, MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
MessageBox.Show(this, errors, Title, MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
}
|
||||
else if (format.GetType() == typeof(SubRip))
|
||||
{
|
||||
@ -9100,7 +9092,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
|
||||
if (noOfErrors > 0)
|
||||
{
|
||||
MessageBox.Show(string.Format("{0} error(s) occured during extraction of bdsup\r\n\r\n{1}", noOfErrors, lastError));
|
||||
MessageBox.Show(string.Format("{0} error(s) occurred during extraction of bdsup\r\n\r\n{1}", noOfErrors, lastError));
|
||||
}
|
||||
|
||||
using (var formSubOcr = new VobSubOcr())
|
||||
@ -11760,11 +11752,13 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
_language = Configuration.Settings.Language.Main;
|
||||
InitializeLanguage();
|
||||
}
|
||||
catch (Exception exception)
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(exception.Message + Environment.NewLine +
|
||||
Environment.NewLine +
|
||||
exception.StackTrace, "Error loading language file");
|
||||
var cap = "Language file load error";
|
||||
var msg = "Could not load language file " + cultureName + ".xml" +
|
||||
"\n\nError Message:\n" + ex.Message +
|
||||
"\n\nStack Trace:\n" + ex.StackTrace;
|
||||
MessageBox.Show(this, msg, cap);
|
||||
Configuration.Settings.Language = new Language(); // default is en-US
|
||||
Configuration.Settings.General.Language = null;
|
||||
_languageGeneral = Configuration.Settings.Language.General;
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Bulgarian">
|
||||
<Language Name="български">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Catalan">
|
||||
<Language Name="català">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Čeština">
|
||||
<Language Name="čeština">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Dansk">
|
||||
<Language Name="dansk">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Greek">
|
||||
<Language Name="Ελληνικά">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Español">
|
||||
<Language Name="Español (Argentina)">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Español">
|
||||
<Language Name="Español (España)">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.2</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Español">
|
||||
<Language Name="Español (México)">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Euskara">
|
||||
<Language Name="euskara">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<Title>شادوساب</Title>
|
||||
<Version>3.2.8</Version>
|
||||
<TranslatedBy>ترجمه توسط:برنامه نويس جوان</TranslatedBy>
|
||||
<CultureName>Fa-IR</CultureName>
|
||||
<CultureName>fa-IR</CultureName>
|
||||
<HelpFile>فایل راهنما</HelpFile>
|
||||
<Ok>تائید</Ok>
|
||||
<Cancel>لغو</Cancel>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Finnish">
|
||||
<Language Name="suomi">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Français">
|
||||
<Language Name="français">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Hrvatski">
|
||||
<Language Name="hrvatski">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Hungarian">
|
||||
<Language Name="magyar">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
@ -440,7 +440,7 @@ Megjegyzés: Ellenőrizze a szabad merevlemez területet.</WaveFileMalformed>
|
||||
<Right>Jobbra</Right>
|
||||
<Center>Középre</Center>
|
||||
<BottomMargin>Alsó margó</BottomMargin>
|
||||
<LeftRightMargin>Bal/jobb margó</LeftRightMargin>
|
||||
<LeftRightMargin>Bal/jobb margó</LeftRightMargin>
|
||||
<SaveBluRraySupAs>Válassza ki a Blu-ray sup fájl nevét</SaveBluRraySupAs>
|
||||
<SaveVobSubAs>Válassza ki a VobSub fájl nevét</SaveVobSubAs>
|
||||
<SaveFabImageScriptAs>Válassza ki a FAB képszkript fájl nevét</SaveFabImageScriptAs>
|
||||
@ -1658,7 +1658,7 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
|
||||
<ToggleDockUndockOfVideoControls>Videóvezérlő dokkolás/leválasztás kapcsoló</ToggleDockUndockOfVideoControls>
|
||||
<CreateSetEndAddNewAndGoToNew>Befejezés beállítása, új hozzáadása és ugrás az újra</CreateSetEndAddNewAndGoToNew>
|
||||
<AdjustViaEndAutoStartAndGoToNext>Beállítás a végpozíción keresztül és ugrás a következőre</AdjustViaEndAutoStartAndGoToNext>
|
||||
<AdjustSetEndTimeAndGoToNext>Befejezés beállítása és ugrás a következőre</AdjustSetEndTimeAndGoToNext>
|
||||
<AdjustSetEndTimeAndGoToNext>Befejezés beállítása és ugrás a következőre</AdjustSetEndTimeAndGoToNext>
|
||||
<AdjustSetStartAutoDurationAndGoToNext>Indítás beállítása, automatikus időtartam és ugrás a következőre</AdjustSetStartAutoDurationAndGoToNext>
|
||||
<AdjustSetEndNextStartAndGoToNext>Befejezés beállítása, következő indítás és ugrás a következőre</AdjustSetEndNextStartAndGoToNext>
|
||||
<AdjustStartDownEndUpAndGoToNext>Le gomb=indítás beállítása, Fel gomb=befejezés beállítása és ugrás a következőre</AdjustStartDownEndUpAndGoToNext>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Italiano">
|
||||
<Language Name="italiano">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Polish">
|
||||
<Language Name="polski">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Brazilian Portuguese">
|
||||
<Language Name="Português (Brasil)">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Portuguese - Portugal">
|
||||
<Language Name="português (Portugal)">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Română">
|
||||
<Language Name="română">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Russian">
|
||||
<Language Name="русский">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Slovenian">
|
||||
<Language Name="slovenski">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Српски">
|
||||
<Language Name="српски">
|
||||
<General>
|
||||
<Title>Сабтајтл едит</Title>
|
||||
<Version>3.2</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Srpski">
|
||||
<Language Name="srpski">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Swedish">
|
||||
<Language Name="svenska">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
<TranslatedBy>Översätt av Ted</TranslatedBy>
|
||||
<CultureName>sv-Subtitle Edit</CultureName>
|
||||
<CultureName>sv-SE</CultureName>
|
||||
<HelpFile />
|
||||
<Ok>OK</Ok>
|
||||
<Cancel>Avbryt</Cancel>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Turkish">
|
||||
<Language Name="Türkçe">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Ukrainian">
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="українська">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
<TranslatedBy>Переклад: Максим Кобєлєв http://mazepa-studio.com</TranslatedBy>
|
||||
<CultureName>uk-UA</CultureName>
|
||||
<HelpFile></HelpFile>
|
||||
<HelpFile />
|
||||
<Ok>&Гаразд</Ok>
|
||||
<Cancel>&Скасувати</Cancel>
|
||||
<Apply>Застосувати</Apply>
|
||||
@ -76,19 +76,17 @@
|
||||
</General>
|
||||
<About>
|
||||
<Title>Про програму Subtitle Edit</Title>
|
||||
<AboutText1>
|
||||
Subtitle Edit - це вільне програмне забезпечення під ліцензією
|
||||
GNU Public License. Ви можете вільно поширювати, редагувати
|
||||
та використовувати його.
|
||||
<AboutText1>Subtitle Edit - це вільне програмне забезпечення під ліцензією
|
||||
GNU Public License. Ви можете вільно поширювати, редагувати
|
||||
та використовувати його.
|
||||
|
||||
Сирцевий код на C# доступний тут https://github.com/SubtitleEdit/subtitleedit
|
||||
Сирцевий код на C# доступний тут https://github.com/SubtitleEdit/subtitleedit
|
||||
|
||||
Відвідайте www.nikse.dk, щоб отримати останню версію.
|
||||
Відвідайте www.nikse.dk, щоб отримати останню версію.
|
||||
|
||||
Пропозиції дуже радо вітаються.
|
||||
Пропозиції дуже радо вітаються.
|
||||
|
||||
Email: mailto:nikse.dk@gmail.com
|
||||
</AboutText1>
|
||||
Email: mailto:nikse.dk@gmail.com</AboutText1>
|
||||
</About>
|
||||
<AddToNames>
|
||||
<Title>Додати до списку імен/шумів і т. п.</Title>
|
||||
@ -114,19 +112,15 @@
|
||||
<GeneratingSpectrogram>Створення спектрограми...</GeneratingSpectrogram>
|
||||
<ExtractingSeconds>Виокремлення аудіо: {0:0.0} секунд</ExtractingSeconds>
|
||||
<ExtractingMinutes>Виокремлення аудіо: {0}.{1:00} хвилин</ExtractingMinutes>
|
||||
<WaveFileNotFound>
|
||||
Не вдалося знайти виокремлений wav-файл!
|
||||
Цей функціонал потребує медіапрогравача VLC версії 1.1.x або новішої ({0}-bit).
|
||||
<WaveFileNotFound>Не вдалося знайти виокремлений wav-файл!
|
||||
Цей функціонал потребує медіапрогравача VLC версії 1.1.x або новішої ({0}-bit).
|
||||
|
||||
Командний рядок: {1} {2}
|
||||
</WaveFileNotFound>
|
||||
<WaveFileMalformed>
|
||||
{0} не вдалося виокремити аудіодані до wav-файлу!
|
||||
Командний рядок: {1} {2}</WaveFileNotFound>
|
||||
<WaveFileMalformed>{0} не вдалося виокремити аудіодані до wav-файлу!
|
||||
|
||||
Командний рядок: {1} {2}
|
||||
Командний рядок: {1} {2}
|
||||
|
||||
Примітка: Перевірте наявність вільного місця на диску.
|
||||
</WaveFileMalformed>
|
||||
Примітка: Перевірте наявність вільного місця на диску.</WaveFileMalformed>
|
||||
<LowDiskSpace>НИЗЬКИЙ РІВЕНЬ ВІЛЬНОГО МІСЦЯ НА ДИСКУ!</LowDiskSpace>
|
||||
<FreeDiskSpace>Вільно {0}</FreeDiskSpace>
|
||||
</AddWaveform>
|
||||
@ -456,10 +450,8 @@
|
||||
<SavePremiereEdlAs>Оберіть ім'я для файлу Premiere EDL</SavePremiereEdlAs>
|
||||
<SaveFcpAs>Оберіть ім'я для xml-файлу Final Cut Pro</SaveFcpAs>
|
||||
<SaveDostAs>Оберіть ім'я для файлу DoStudio dost</SaveDostAs>
|
||||
<SomeLinesWereTooLongX>
|
||||
Деякі рядки були надто довгими:
|
||||
{0}
|
||||
</SomeLinesWereTooLongX>
|
||||
<SomeLinesWereTooLongX>Деякі рядки були надто довгими:
|
||||
{0}</SomeLinesWereTooLongX>
|
||||
<LineHeight>Висота рядка</LineHeight>
|
||||
<BoxSingleLine>Рамка на рядок</BoxSingleLine>
|
||||
<BoxMultiLine>Рамка на всі рядки</BoxMultiLine>
|
||||
@ -1054,15 +1046,11 @@
|
||||
<SavedOriginalSubtitleX>Збережено оригінальний субтитр {0}</SavedOriginalSubtitleX>
|
||||
<FileOnDiskModified>Файл на диску змінено</FileOnDiskModified>
|
||||
<OverwriteModifiedFile>Перезаписати файл {0}, змінений {1} о {2}{3}, поточним файлом, завантаженим з диску {4} о {5}?</OverwriteModifiedFile>
|
||||
<FileXIsReadOnly>
|
||||
Неможливо зберегти {0}
|
||||
<FileXIsReadOnly>Неможливо зберегти {0}
|
||||
|
||||
Файл тільки для читання!
|
||||
</FileXIsReadOnly>
|
||||
<UnableToSaveSubtitleX>
|
||||
Неможливо зберегти файл субтитрів {0}
|
||||
Субтитри видаються порожніми - спробуйте зберегти ще раз, якщо ви працюєте над коректними субтитрами!
|
||||
</UnableToSaveSubtitleX>
|
||||
Файл тільки для читання!</FileXIsReadOnly>
|
||||
<UnableToSaveSubtitleX>Неможливо зберегти файл субтитрів {0}
|
||||
Субтитри видаються порожніми - спробуйте зберегти ще раз, якщо ви працюєте над коректними субтитрами!</UnableToSaveSubtitleX>
|
||||
<BeforeNew>Перед створенням нового файлу</BeforeNew>
|
||||
<New>Новий</New>
|
||||
<BeforeConvertingToX>Перед конвертацією в {0}</BeforeConvertingToX>
|
||||
@ -1073,19 +1061,13 @@
|
||||
<OpenVideoFile>Відкрити відеофайл...</OpenVideoFile>
|
||||
<NewFrameRateUsedToCalculateTimeCodes>Нову частоту кадрів ({0}) було використано для обрахунку часових міток початку/кінця</NewFrameRateUsedToCalculateTimeCodes>
|
||||
<NewFrameRateUsedToCalculateFrameNumbers>Нову частоту кадрів ({0}) було використано для обрахунку номерів кадрів початку/кінця</NewFrameRateUsedToCalculateFrameNumbers>
|
||||
<FindContinue>
|
||||
Об'єкт пошуку не знайдено.
|
||||
Бажаєте розпочати з початку документу і шукати ще раз?
|
||||
</FindContinue>
|
||||
<FindContinue>Об'єкт пошуку не знайдено.
|
||||
Бажаєте розпочати з початку документу і шукати ще раз?</FindContinue>
|
||||
<FindContinueTitle>Продовжити пошук?</FindContinueTitle>
|
||||
<ReplaceContinueNotFound>
|
||||
Об'єкт пошуку не знайдено.
|
||||
Бажаєте розпочати з початку документу і продовжити пошук та заміну?
|
||||
</ReplaceContinueNotFound>
|
||||
<ReplaceXContinue>
|
||||
Об'єкт пошуку було замінено {0} раз(ів).
|
||||
Ви хотіли б розпочати з початку документу і продовжити пошук та заміну?
|
||||
</ReplaceXContinue>
|
||||
<ReplaceContinueNotFound>Об'єкт пошуку не знайдено.
|
||||
Бажаєте розпочати з початку документу і продовжити пошук та заміну?</ReplaceContinueNotFound>
|
||||
<ReplaceXContinue>Об'єкт пошуку було замінено {0} раз(ів).
|
||||
Ви хотіли б розпочати з початку документу і продовжити пошук та заміну?</ReplaceXContinue>
|
||||
<ReplaceContinueTitle>Продовжити заміну?</ReplaceContinueTitle>
|
||||
<SearchingForXFromLineY>Пошук '{0}', починаючи з рядка {1}...</SearchingForXFromLineY>
|
||||
<XFoundAtLineNumberY>'{0}' знайдено в рядку номер {1}</XFoundAtLineNumberY>
|
||||
@ -1115,11 +1097,9 @@
|
||||
<TextingForHearingImpairedRemovedOneLine>Текст для людей із вадами слуху видалено: Один рядок</TextingForHearingImpairedRemovedOneLine>
|
||||
<TextingForHearingImpairedRemovedXLines>Текст для людей із вадами слуху видалено: {0} рядків</TextingForHearingImpairedRemovedXLines>
|
||||
<SubtitleSplitted>Субтитр було розділено</SubtitleSplitted>
|
||||
<SubtitleAppendPrompt>
|
||||
Ви приєднаєте файл субтитрів до субтитрів, які зараз завантажені і які повинні бути вже синхронізовані з відеофайлом.
|
||||
<SubtitleAppendPrompt>Ви приєднаєте файл субтитрів до субтитрів, які зараз завантажені і які повинні бути вже синхронізовані з відеофайлом.
|
||||
|
||||
Продовжити?
|
||||
</SubtitleAppendPrompt>
|
||||
Продовжити?</SubtitleAppendPrompt>
|
||||
<SubtitleAppendPromptTitle>Приєднати субтитри</SubtitleAppendPromptTitle>
|
||||
<OpenSubtitleToAppend>Відкрити субтитри, які слід приєднати...</OpenSubtitleToAppend>
|
||||
<AppendViaVisualSyncTitle>Візуальна синхронізація - приєднання другої частини субтитрів</AppendViaVisualSyncTitle>
|
||||
@ -1302,11 +1282,9 @@
|
||||
<ErrorLoadJpg>Здається, цей файл - файл зображення JPG. Subtitle Edit не відкриває файли JPG.</ErrorLoadJpg>
|
||||
<ErrorLoadSrr>Здається, цей файл - файл ReScene .srr - не є файлом субтитрів.</ErrorLoadSrr>
|
||||
<ErrorLoadTorrent>Здається, цей файл - файл BitTorrent - не є файлом субтитрів.</ErrorLoadTorrent>
|
||||
<ErrorLoadBinaryZeroes>
|
||||
Даруйте, цей файл містить тільки бінарні нулі!
|
||||
<ErrorLoadBinaryZeroes>Даруйте, цей файл містить тільки бінарні нулі!
|
||||
|
||||
Якщо ви редагували цей файл за допомогою Subtitle Edit, ймовірно ви зможете знайти резервну копію через пункт меню Файл -> Відновити автоматичну резервну копію...
|
||||
</ErrorLoadBinaryZeroes>
|
||||
Якщо ви редагували цей файл за допомогою Subtitle Edit, ймовірно ви зможете знайти резервну копію через пункт меню Файл -> Відновити автоматичну резервну копію...</ErrorLoadBinaryZeroes>
|
||||
<ErrorDirectoryDropNotAllowed>Перетягування тек тут не підтримується.</ErrorDirectoryDropNotAllowed>
|
||||
<NoSupportEncryptedVobSub>Зашифрований вміст VobSub не підтримується.</NoSupportEncryptedVobSub>
|
||||
<NoSupportHereBluRaySup>Файли blu-ray sup тут не підтримуються.</NoSupportHereBluRaySup>
|
||||
@ -1401,10 +1379,8 @@
|
||||
</NetworkChat>
|
||||
<NetworkJoin>
|
||||
<Title>Приєднатися до сесії</Title>
|
||||
<Information>
|
||||
Приєднатися до наявної сесії, де кілька осіб
|
||||
можуть спільно редагувати один файл субтитрів (співпрацювати)
|
||||
</Information>
|
||||
<Information>Приєднатися до наявної сесії, де кілька осіб
|
||||
можуть спільно редагувати один файл субтитрів (співпрацювати)</Information>
|
||||
<Join>Приєднатися</Join>
|
||||
</NetworkJoin>
|
||||
<NetworkLogAndInfo>
|
||||
@ -1414,10 +1390,8 @@
|
||||
<NetworkStart>
|
||||
<Title>Розпочати нову сесію</Title>
|
||||
<ConnectionTo>З'єднуємося з {0}...</ConnectionTo>
|
||||
<Information>
|
||||
Розпочати нову сесію, де кілька осіб зможуть
|
||||
спільно редагувати один файл субтитрів (співпрацювати)
|
||||
</Information>
|
||||
<Information>Розпочати нову сесію, де кілька осіб зможуть
|
||||
спільно редагувати один файл субтитрів (співпрацювати)</Information>
|
||||
<Start>Розпочати</Start>
|
||||
</NetworkStart>
|
||||
<OpenVideoDvd>
|
||||
@ -1993,11 +1967,9 @@
|
||||
<FindText>Знайти текст</FindText>
|
||||
<GoToSubPosition>Поз. субтитру</GoToSubPosition>
|
||||
<KeepChangesTitle>Зберегти зміни?</KeepChangesTitle>
|
||||
<KeepChangesMessage>
|
||||
В режимі "візуальної синхронізації" до субтитрів було внесено зміни.
|
||||
<KeepChangesMessage>В режимі "візуальної синхронізації" до субтитрів було внесено зміни.
|
||||
|
||||
Зберегти ці зміни?
|
||||
</KeepChangesMessage>
|
||||
Зберегти ці зміни?</KeepChangesMessage>
|
||||
<SynchronizationDone>Синхронізацію виконано!</SynchronizationDone>
|
||||
<StartSceneMustComeBeforeEndScene>Початкова сцена має бути раніше за кінцеву сцену!</StartSceneMustComeBeforeEndScene>
|
||||
<Tip>Порада: Використовуйте клавіші <ctrl+←/→>, щоб просунутися на 100 мс назад/вперед</Tip>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="Viet Nam">
|
||||
<Language Name="Tiếng Việt">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
<TranslatedBy>Dịch qua Tiếng Việt bởi by everytime
|
||||
Mọi góp ý về bản dịch vui lòng gửi thư tới hộp thư: handes1990@gmail.com
|
||||
Cảm ơn rất nhiều</TranslatedBy>
|
||||
<CultureName>vn-VN</CultureName>
|
||||
<CultureName>vi-VN</CultureName>
|
||||
<HelpFile />
|
||||
<Ok>&Đồng ý</Ok>
|
||||
<Cancel>H&ủy bỏ</Cancel>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="简体中文">
|
||||
<Language Name="中文(简体)">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Language Name="繁體中文">
|
||||
<Language Name="中文(繁體)">
|
||||
<General>
|
||||
<Title>Subtitle Edit</Title>
|
||||
<Version>3.4.8</Version>
|
||||
|
@ -29,6 +29,8 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
{
|
||||
if (!reader.IsEmptyElement && reader.Depth > 0)
|
||||
name.Append('/').Append(reader.Name);
|
||||
else if (reader.Depth == 0)
|
||||
language.Name = reader["Name"];
|
||||
}
|
||||
else if (reader.NodeType == XmlNodeType.EndElement)
|
||||
{
|
||||
|
@ -39,6 +39,8 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
{
|
||||
if (!reader.IsEmptyElement && reader.Depth > 0)
|
||||
name.Append('/').Append(reader.Name);
|
||||
else if (reader.Depth == 0)
|
||||
language.Name = reader[""Name""];
|
||||
}
|
||||
else if (reader.NodeType == XmlNodeType.EndElement)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user