mirror of
https://gitlab.com/buildfeed/BuildFeed.git
synced 2024-03-22 21:10:34 +08:00
c23490ad0f
Flexbox menu fixes #72, #56 Localisation updates cover #76
80 lines
4.1 KiB
C#
80 lines
4.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Configuration;
|
|
using System.Globalization;
|
|
using BuildFeed.Local;
|
|
using BuildFeed.Model;
|
|
using OneSignal.CSharp.SDK;
|
|
using OneSignal.CSharp.SDK.Resources;
|
|
using OneSignal.CSharp.SDK.Resources.Notifications;
|
|
|
|
namespace BuildFeed.Code
|
|
{
|
|
public static class OneSignalHelper
|
|
{
|
|
public static void PushNewBuild(this OneSignalClient osc, Build build, string url)
|
|
{
|
|
osc.Notifications.Create(new NotificationCreateOptions
|
|
{
|
|
AppId = Guid.Parse(ConfigurationManager.AppSettings["push:AppId"]),
|
|
IncludedSegments = new List<string>
|
|
{
|
|
#if DEBUG
|
|
"Testers"
|
|
#else
|
|
"All"
|
|
#endif
|
|
},
|
|
Headings =
|
|
{
|
|
{LanguageCodes.Arabic, GetNewBuildTitleForLanguage("ar")},
|
|
{LanguageCodes.Czech, GetNewBuildTitleForLanguage("cs")},
|
|
{LanguageCodes.German, GetNewBuildTitleForLanguage("de")},
|
|
{LanguageCodes.Greek, GetNewBuildTitleForLanguage("el")},
|
|
{LanguageCodes.English, GetNewBuildTitleForLanguage("en")},
|
|
{LanguageCodes.Spanish, GetNewBuildTitleForLanguage("es")},
|
|
{LanguageCodes.Persian, GetNewBuildTitleForLanguage("fa")},
|
|
{LanguageCodes.Finnish, GetNewBuildTitleForLanguage("fi")},
|
|
{LanguageCodes.French, GetNewBuildTitleForLanguage("fr")},
|
|
{LanguageCodes.Hebrew, GetNewBuildTitleForLanguage("he")},
|
|
{LanguageCodes.Croatian, GetNewBuildTitleForLanguage("hr")},
|
|
{LanguageCodes.Hungarian, GetNewBuildTitleForLanguage("hu")},
|
|
{LanguageCodes.Indonesian, GetNewBuildTitleForLanguage("id")},
|
|
{LanguageCodes.Italian, GetNewBuildTitleForLanguage("it")},
|
|
{LanguageCodes.Japanese, GetNewBuildTitleForLanguage("ja")},
|
|
{LanguageCodes.Korean, GetNewBuildTitleForLanguage("ko")},
|
|
{LanguageCodes.Lithuanian, GetNewBuildTitleForLanguage("lt")},
|
|
{LanguageCodes.Dutch, GetNewBuildTitleForLanguage("nl")},
|
|
{LanguageCodes.Polish, GetNewBuildTitleForLanguage("pl")},
|
|
{LanguageCodes.Portuguese, GetNewBuildTitleForLanguage("pt")}, // Portuguese translation has notification translation ready, Brazil is used more, but not available right now.
|
|
{LanguageCodes.Romanian, GetNewBuildTitleForLanguage("ro")},
|
|
{LanguageCodes.Russian, GetNewBuildTitleForLanguage("ru")},
|
|
{LanguageCodes.Slovak, GetNewBuildTitleForLanguage("sk")},
|
|
// no slovenian support for OneSignal?
|
|
{LanguageCodes.Swedish, GetNewBuildTitleForLanguage("sv")},
|
|
{LanguageCodes.Turkish, GetNewBuildTitleForLanguage("tr")},
|
|
{LanguageCodes.Ukrainian, GetNewBuildTitleForLanguage("uk")},
|
|
{LanguageCodes.Vietnamese, GetNewBuildTitleForLanguage("vi")},
|
|
{LanguageCodes.ChineseSimplified, GetNewBuildTitleForLanguage("zh-hans")},
|
|
{LanguageCodes.ChineseTraditional, GetNewBuildTitleForLanguage("zh-hant")}
|
|
},
|
|
Contents =
|
|
{
|
|
{LanguageCodes.English, build.AlternateBuildString}
|
|
},
|
|
Url = url
|
|
});
|
|
}
|
|
|
|
private static string GetNewBuildTitleForLanguage(string lang)
|
|
{
|
|
string localised = VariantTerms.ResourceManager.GetString(nameof(VariantTerms.Notification_NewBuild), CultureInfo.GetCultureInfo(lang));
|
|
|
|
string generic = VariantTerms.ResourceManager.GetString(nameof(VariantTerms.Notification_NewBuild), CultureInfo.InvariantCulture) ?? "{0}";
|
|
|
|
return string.IsNullOrEmpty(localised)
|
|
? string.Format(generic, InvariantTerms.SiteName)
|
|
: string.Format(localised, InvariantTerms.SiteName);
|
|
}
|
|
}
|
|
} |