move PCL project to shared

This commit is contained in:
2020-05-11 00:44:12 +08:00
parent 8b891cc692
commit 98007c98e4
11 changed files with 191 additions and 122 deletions

View File

@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Xml.Linq;
using System.Xml;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
@ -65,29 +65,41 @@ namespace Pixiview.Resources
{
try
{
#if __IOS__
var langId = $"Pixiview.iOS.Resources.Languages.{lang.Language}.xml";
var langCodeId = $"Pixiview.iOS.Resources.Languages.{lang.LanguageCode}.xml";
#else
var langId = $"Pixiview.Android.Resources.Languages.{lang.Language}.xml";
var langCodeId = $"Pixiview.Android.Resources.Languages.{lang.LanguageCode}.xml";
#endif
var assembly = IntrospectionExtensions.GetTypeInfo(typeof(LanguageResource)).Assembly;
var names = assembly.GetManifestResourceNames();
var name = names.FirstOrDefault(n
=> string.Equals(n, $"Pixiview.Resources.Languages.{lang.Language}.xml", StringComparison.OrdinalIgnoreCase)
|| string.Equals(n, $"Pixiview.Resources.Languages.{lang.LanguageCode}.xml", StringComparison.OrdinalIgnoreCase));
=> string.Equals(n, langId, StringComparison.OrdinalIgnoreCase)
|| string.Equals(n, langCodeId, StringComparison.OrdinalIgnoreCase));
if (name == null)
{
name = "Pixiview.Resources.Languages.zh-CN.xml";
#if __IOS__
name = "Pixiview.iOS.Resources.Languages.zh-CN.xml";
#else
name = "Pixiview.Android.Resources.Languages.zh-CN.xml";
#endif
}
XDocument xml;
var xml = new XmlDocument();
using (var stream = assembly.GetManifestResourceStream(name))
{
xml = XDocument.Load(stream);
xml.Load(stream);
}
strings = new Dictionary<string, string>();
foreach (var ele in xml.Root.Elements())
foreach (XmlElement ele in xml.DocumentElement) // .Root.Elements()
{
strings[ele.Name.LocalName] = ele.Value;
strings[ele.Name] = ele.InnerText; // .LocalName Value
}
}
catch
catch (Exception ex)
{
// load failed
App.DebugError("language.ctor", $"failed to load xml resource: {ex.Message}");
}
}
}