Skip to content

Commit

Permalink
Add TranslateTrue and TranslateFalse to TranslateBindingExtension
Browse files Browse the repository at this point in the history
  • Loading branch information
Johan Svensson authored and Johan Svensson committed Oct 31, 2023
1 parent 67ef159 commit e10d4f5
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@
<RepositoryUrl>https://github.com/SirJohnK/LocalizationResourceManager.Maui</RepositoryUrl>
<PackageTags>dotnet,dotnetmaui,localization</PackageTags>
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
<AssemblyVersion>1.2.0.0</AssemblyVersion>
<FileVersion>1.2.0.0</FileVersion>
<PackageReleaseNotes>- Add TranslateBindingExtension for custom binding with format and plural support in XAML.</PackageReleaseNotes>
<Version>1.2.0</Version>
<AssemblyVersion>1.2.1.0</AssemblyVersion>
<FileVersion>1.2.1.0</FileVersion>
<PackageReleaseNotes>- Add TranslateTrue and TranslateFalse to TranslateBindingExtension.</PackageReleaseNotes>
<Version>1.2.1</Version>
</PropertyGroup>

<ItemGroup>
Expand Down
20 changes: 20 additions & 0 deletions LocalizationResourceManager.Maui/TranslateBindingExtension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ public class TranslateBindingExtension : IMarkupExtension<BindingBase>, IMultiVa
/// <inheritdoc/>
public string? TranslateZero { get; set; }

/// <inheritdoc/>
public string? TranslateTrue { get; set; }

/// <inheritdoc/>
public string? TranslateFalse { get; set; }

/// <inheritdoc/>
public object ProvideValue(IServiceProvider serviceProvider)
{
Expand Down Expand Up @@ -75,6 +81,16 @@ public object Convert(object[] values, Type targetType, object parameter, Cultur
return LocalizationResourceManager.Current[TranslateOne, value];
}

if (!string.IsNullOrWhiteSpace(TranslateTrue) && IsTrue(value))
{
return LocalizationResourceManager.Current[TranslateTrue];
}

if (!string.IsNullOrWhiteSpace(TranslateFalse) && IsFalse(value))
{
return LocalizationResourceManager.Current[TranslateFalse];
}

if (!string.IsNullOrWhiteSpace(TranslateFormat))
{
return LocalizationResourceManager.Current[TranslateFormat, value];
Expand All @@ -92,6 +108,10 @@ public object Convert(object[] values, Type targetType, object parameter, Cultur

private static bool IsOne(object value) => (value is int number && number == 1);

private static bool IsTrue(object value) => (value is bool flag && flag);

private static bool IsFalse(object value) => (value is bool flag && !flag);

public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
Expand Down

0 comments on commit e10d4f5

Please sign in to comment.