Update Translation Mechamism in Flow

This commit is contained in:
Kevin Zhang 2021-10-29 21:53:52 -05:00
parent 02bb75fac4
commit 582e29658b
3 changed files with 26 additions and 21 deletions

View file

@ -71,7 +71,7 @@ namespace Flow.Plugin.WindowsSettings.Helper
if (result is null && entry.Keywords is not null)
{
string[] searchKeywords = query.Terms[(string.IsNullOrEmpty(query.ActionKeyword) ? 0 : 1)..];
string[] searchKeywords = query.SearchTerms;
if (searchKeywords
.All(x => entry

View file

@ -19,12 +19,12 @@ namespace Flow.Plugin.WindowsSettings.Helper
/// Translate all settings of the given list with <see cref="WindowsSetting"/>.
/// </summary>
/// <param name="settingsList">The list that contains <see cref="WindowsSetting"/> to translate.</param>
internal static void TranslateAllSettings(in IEnumerable<WindowsSetting>? settingsList)
internal static IEnumerable<WindowsSetting> TranslateAllSettings(in IEnumerable<WindowsSetting>? settingsList)
{
var translatedSettings = new List<WindowsSetting>();
if (settingsList is null)
{
return;
}
return new List<WindowsSetting>();
foreach (var settings in settingsList)
{
@ -47,9 +47,7 @@ namespace Flow.Plugin.WindowsSettings.Helper
Log.Warn($"Resource string for [{settings.Name}] not found", typeof(Main));
}
settings.Area = area ?? settings.Area ?? string.Empty;
settings.Name = name ?? settings.Name ?? string.Empty;
settings.Type = type ?? settings.Type ?? string.Empty;
if (!string.IsNullOrEmpty(settings.Note))
{
@ -61,11 +59,10 @@ namespace Flow.Plugin.WindowsSettings.Helper
settings.Note = note ?? settings.Note ?? string.Empty;
}
if (!(settings.AltNames is null) && settings.AltNames.Any())
List<string>? translatedAltNames = null;
if (settings.AltNames is not null && settings.AltNames.Any())
{
var translatedAltNames = new Collection<string>();
translatedAltNames = new List<string>();
foreach (var altName in settings.AltNames)
{
if (string.IsNullOrWhiteSpace(altName))
@ -82,9 +79,18 @@ namespace Flow.Plugin.WindowsSettings.Helper
translatedAltNames.Add(translatedAltName ?? altName);
}
settings.AltNames = translatedAltNames;
}
var translatedSetting = new WindowsSetting
{
Area = area ?? settings.Area,
Name = name ?? settings.Name,
Type = type ?? settings.Type,
AltNames = translatedAltNames
};
translatedSettings.Add(translatedSetting);
}
return translatedSettings;
}
}
}

View file

@ -52,6 +52,11 @@ namespace Flow.Plugin.WindowsSettings
/// </summary>
private IEnumerable<WindowsSetting>? _settingsList;
/// <summary>
/// List that contains translated string
/// </summary>
private IEnumerable<WindowsSetting> _translatedSettingList = new List<WindowsSetting>();
/// <summary>
/// Initializes a new instance of the <see cref="Main"/> class.
/// </summary>
@ -85,7 +90,7 @@ namespace Flow.Plugin.WindowsSettings
Log.Init(_context.API);
ResultHelper.Init(_context.API);
TranslationHelper.TranslateAllSettings(_settingsList);
_translatedSettingList = TranslationHelper.TranslateAllSettings(_settingsList);
}
/// <summary>
@ -95,13 +100,7 @@ namespace Flow.Plugin.WindowsSettings
/// <returns>A filtered list, can be empty when nothing was found.</returns>
public List<Result> Query(Query query)
{
if (_settingsList is null)
{
return new List<Result>(0);
}
var newList = ResultHelper.GetResultList(_settingsList, query, _defaultIconPath);
var newList = ResultHelper.GetResultList(_translatedSettingList, query, _defaultIconPath);
return newList;