csharp Xamarin RESX
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp Xamarin RESX相关的知识,希望对你有一定的参考价值。
/// <summary>
/// 多言語化されたリソースと、言語の切り替え機能を提供します。
/// </summary>
public class ResourceService : INotifyPropertyChanged
{
#region singleton members
public static ResourceService Current { get; } = new ResourceService();
#endregion
public string this[string key]
{
get
{
return Resource.ResourceManager.GetString(key, Resource.Culture);
}
}
#region INotifyPropertyChanged members
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void RaisePropertyChanged([CallerMemberName] string propertyName = null)
{
var handler = this.PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
/// <summary>
/// 指定されたカルチャ名を使用して、リソースのカルチャを変更します。
/// </summary>
/// <param name="name">カルチャの名前。</param>
public void ChangeCulture(string name)
{
Resource.Culture = CultureInfo.GetCultureInfo(name);
this.RaisePropertyChanged("Item"); //気持ち悪いけどこうするしかないんだ
}
/// <summary>
/// サポートされているカルチャの名前。
/// </summary>
private readonly string[] supportedCultureNames =
{
"ja", // Resources.resx
"en",
"zh-CN",
};
/// <summary>
/// サポートされているカルチャを取得します。
/// </summary>
public IReadOnlyCollection<CultureInfo> SupportedCultures { get; }
private ResourceService()
{
this.SupportedCultures = this.supportedCultureNames
.Select(x =>
{
try
{
return CultureInfo.GetCultureInfo(x);
}
catch (CultureNotFoundException)
{
return null;
}
})
.Where(x => x != null)
.ToList();
}
}
以上是关于csharp Xamarin RESX的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Xamarin iOS/Android 中使用定义 PCL 的 RESX 文件来支持多语言?
带有 .resx 资源的 Windows Phone 8.1 上的 MissingManifestResourceException
dotnet 5 和 Xamarin Android:找不到导入的项目“Xamarin.Android.CSharp.targets”
csharp Xamarin主题
csharp MyBindableCustomPicker / Xamarin.Forms
csharp Xamarin.Forms条目只有底部边框。