Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit b24c69f

Browse files
committed
Included more encodings in the build settings + only list encoding which are available
see https://developer.xamarin.com/guides/ios/advanced_topics/localization_and_internationalization/encodings/#west for more info
1 parent 037c0a5 commit b24c69f

File tree

5 files changed

+51
-5
lines changed

5 files changed

+51
-5
lines changed

MacLibSe/EncodingHelper.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
using System;
2+
using System.Text;
3+
using System.Collections.Generic;
4+
5+
namespace MacLibSe
6+
{
7+
public static class EncodingHelper
8+
{
9+
private static List<EncodingInfo> _availableEncodings;
10+
public static List<EncodingInfo> GetEncodings()
11+
{
12+
if (_availableEncodings == null)
13+
{
14+
_availableEncodings = new List<EncodingInfo> ();
15+
foreach (EncodingInfo ei in Encoding.GetEncodings())
16+
{
17+
try
18+
{
19+
if (ei.GetEncoding() != null)
20+
{
21+
_availableEncodings.Add(ei);
22+
}
23+
}
24+
catch
25+
{
26+
// ignore
27+
}
28+
}
29+
}
30+
return _availableEncodings;
31+
}
32+
}
33+
}
34+

MacLibSe/MacLibSe.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
<Compile Include="Point.cs" />
6666
<Compile Include="Size.cs" />
6767
<Compile Include="ContentAlignment.cs" />
68+
<Compile Include="EncodingHelper.cs" />
6869
</ItemGroup>
6970
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Mac\Xamarin.Mac.CSharp.targets" />
7071
</Project>

SubtitleEdit/SubtitleEdit.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
<PackageSigningKey>Developer ID Installer</PackageSigningKey>
3232
<XamMacArch>x86_64</XamMacArch>
3333
<Profiling>false</Profiling>
34+
<I18n>cjk,mideast,other,west</I18n>
3435
</PropertyGroup>
3536
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
3637
<DebugType>full</DebugType>

SubtitleEdit/Windows/File/OpenWithManualChosenEncoding.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using AppKit;
77
using Foundation;
88
using Nikse.SubtitleEdit.Core;
9+
using MacLibSe;
910

1011
namespace File
1112
{
@@ -94,7 +95,7 @@ public override void AwakeFromNib()
9495

9596
_allEncodings = new List<Encoding>();
9697
_allEncodings.Add(Encoding.UTF8);
97-
foreach (var ei in Encoding.GetEncodings())
98+
foreach (var ei in EncodingHelper.GetEncodings())
9899
{
99100
try
100101
{

SubtitleEdit/Windows/MainWindow.cs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
using System.Linq;
1212
using UILogic;
1313
using CoreGraphics;
14+
using Nikse.SubtitleEdit.Core.DetectEncoding;
15+
using MacLibSe;
1416

1517
namespace Nikse.SubtitleEdit.Windows
1618
{
@@ -206,7 +208,7 @@ void InitializeToolbar()
206208

207209
toolbarEncodingComboBox.RemoveAll();
208210
toolbarEncodingComboBox.Add(new NSString(Encoding.UTF8.BodyName));
209-
foreach (var ei in Encoding.GetEncodings())
211+
foreach (var ei in EncodingHelper.GetEncodings())
210212
{
211213
if (ei.Name != Encoding.UTF8.BodyName && ei.CodePage >= 949 && !ei.Name.Contains("EBCDIC") && ei.CodePage != 1047) //Configuration.Settings.General.EncodingMinimumCodePage)
212214
toolbarEncodingComboBox.Add(new NSString(ei.CodePage + ": " + ei.Name));
@@ -274,12 +276,19 @@ public void SetEncoding(string encoding)
274276

275277
public Encoding GetEncoding()
276278
{
277-
var selectedValue = toolbarEncodingComboBox.SelectedValue.ToString();
278-
foreach (var ei in Encoding.GetEncodings())
279+
var selectedValue = toolbarEncodingComboBox.SelectedValue.ToString();
280+
foreach (var ei in EncodingHelper.GetEncodings())
279281
{
280282
if (selectedValue.StartsWith(ei.CodePage + ":"))
281283
{
282-
return ei.GetEncoding();
284+
try
285+
{
286+
return ei.GetEncoding();
287+
}
288+
catch (Exception exception)
289+
{
290+
MessageBox.Show("Encoding is missing: " + exception.Message);
291+
}
283292
}
284293
}
285294
return Encoding.UTF8;

0 commit comments

Comments
 (0)