move PCL project to shared
This commit is contained in:
@ -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}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user