translation using NGettext.Wpf
This commit is contained in:
65
src/NGettext.Wpf/Translation.cs
Normal file
65
src/NGettext.Wpf/Translation.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
|
||||
using System.Globalization;
|
||||
|
||||
namespace NGettext.Wpf
|
||||
{
|
||||
public static class Translation
|
||||
{
|
||||
public static string _(string msgId) => Localizer?.Gettext(msgId) ?? "";
|
||||
|
||||
public static string _(string msgId, params object[] parameters)
|
||||
{
|
||||
return parameters.Any()
|
||||
? Localizer?.Gettext(msgId, parameters) ?? ""
|
||||
: Localizer?.Gettext(msgId) ?? "";
|
||||
}
|
||||
|
||||
public static ILocalizer? Localizer { get; set; }
|
||||
|
||||
public static string Noop(string msgId) => msgId;
|
||||
|
||||
[Obsolete("Use GetPluralString() instead. This method will be removed in 2.x")]
|
||||
public static string PluralGettext(int n, string singularMsgId, string pluralMsgId, params object[] @params)
|
||||
{
|
||||
return GetPluralString(singularMsgId, pluralMsgId, n, @params);
|
||||
}
|
||||
|
||||
public static string GetPluralString(string singularMsgId, string pluralMsgId, int n, params object[] args)
|
||||
{
|
||||
if (Localizer is null)
|
||||
{
|
||||
CompositionRoot.WriteMissingInitializationErrorMessage();
|
||||
return string.Format(CultureInfo.InvariantCulture, n == 1 ? singularMsgId : pluralMsgId, args);
|
||||
}
|
||||
|
||||
return args.Any()
|
||||
? Localizer.Catalog.GetPluralString(singularMsgId, pluralMsgId, n, args)
|
||||
: Localizer.Catalog.GetPluralString(singularMsgId, pluralMsgId, n);
|
||||
}
|
||||
|
||||
public static string GetParticularPluralString(string context, string text, string pluralText, int n, params object[] args)
|
||||
{
|
||||
if (Localizer is null)
|
||||
{
|
||||
CompositionRoot.WriteMissingInitializationErrorMessage();
|
||||
return string.Format(CultureInfo.InvariantCulture, n == 1 ? text : pluralText, args);
|
||||
}
|
||||
|
||||
return args.Any()
|
||||
? Localizer.Catalog.GetParticularPluralString(context, text, pluralText, n, args)
|
||||
: Localizer.Catalog.GetParticularPluralString(context, text, pluralText, n);
|
||||
}
|
||||
|
||||
public static string GetParticularString(string context, string text, params object[] args)
|
||||
{
|
||||
if (Localizer is null)
|
||||
{
|
||||
CompositionRoot.WriteMissingInitializationErrorMessage();
|
||||
return (args.Any() ? string.Format(CultureInfo.InvariantCulture, text, args) : text);
|
||||
}
|
||||
return args.Any()
|
||||
? Localizer.Catalog.GetParticularString(context, text, args)
|
||||
: Localizer.Catalog.GetParticularString(context, text);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user