Skip to content

Instantly share code, notes, and snippets.

@robcthegeek
Forked from davidwhitney/HtmlHelperExtensions.cs
Created November 22, 2010 09:31
Show Gist options
  • Save robcthegeek/709737 to your computer and use it in GitHub Desktop.
Save robcthegeek/709737 to your computer and use it in GitHub Desktop.
Pluralisation in .NET
using System;
using System.Globalization;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Web.Mvc;
namespace Extensions
{
public static class HtmlHelperExtensions
{
public static LanguageExtensions Language(this HtmlHelper helper)
{
return new LanguageExtensions();
}
}
}
using System.Data.Entity.Design.PluralizationServices;
using System.Threading;
namespace Extensions
{
public class LanguageExtensions
{
private readonly PluralizationService _pluralizationService;
public LanguageExtensions()
{
_pluralizationService = PluralizationService.CreateService(Thread.CurrentThread.CurrentCulture);
}
public string Pluaralize(string singular)
{
return _pluralizationService.Pluralize(singular);
}
public string Singularize(string plural)
{
return _pluralizationService.Singularize(plural);
}
public string CorrectTenseForQuantity(int value, string word)
{
switch (value)
{
case 0:
return _pluralizationService.Pluralize(word);
case 1:
return _pluralizationService.Singularize(word);
default:
return _pluralizationService.Pluralize(word);
}
}
}
}
<%@ Import Namespace="Extensions" %>
<%=Html.Language().CorrectTenseForQuantity(Model.Quantity, "word") %>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment