From ad1a1f2d81b11420b77919d80b7c7fad68df8ac7 Mon Sep 17 00:00:00 2001 From: hangy Date: Thu, 24 Jun 2021 16:26:28 +0200 Subject: [PATCH] Register Korean formatter --- .../Humanizer.Tests.Shared.projitems | 1 + .../ko-KR/TimeSpanHumanizeTests.cs | 98 +++++++++++++++++++ .../Configuration/FormatterRegistry.cs | 1 + 3 files changed, 100 insertions(+) create mode 100644 src/Humanizer.Tests.Shared/Localisation/ko-KR/TimeSpanHumanizeTests.cs diff --git a/src/Humanizer.Tests.Shared/Humanizer.Tests.Shared.projitems b/src/Humanizer.Tests.Shared/Humanizer.Tests.Shared.projitems index 8518e6926..f8f0e60b2 100644 --- a/src/Humanizer.Tests.Shared/Humanizer.Tests.Shared.projitems +++ b/src/Humanizer.Tests.Shared/Humanizer.Tests.Shared.projitems @@ -111,6 +111,7 @@ + diff --git a/src/Humanizer.Tests.Shared/Localisation/ko-KR/TimeSpanHumanizeTests.cs b/src/Humanizer.Tests.Shared/Localisation/ko-KR/TimeSpanHumanizeTests.cs new file mode 100644 index 000000000..dae136e78 --- /dev/null +++ b/src/Humanizer.Tests.Shared/Localisation/ko-KR/TimeSpanHumanizeTests.cs @@ -0,0 +1,98 @@ +using System; +using Xunit; + +namespace Humanizer.Tests.Localisation.koKR +{ + [UseCulture("ko-KR")] + public class TimeSpanHumanizeTests + { + [Theory] + [Trait("Translation", "Google")] + [InlineData(366, "1년")] + [InlineData(731, "2년")] + [InlineData(1096, "3년")] + [InlineData(4018, "11년")] + public void Years(int days, string expected) + { + Assert.Equal(expected, TimeSpan.FromDays(days).Humanize(maxUnit: Humanizer.Localisation.TimeUnit.Year)); + } + + [Theory] + [Trait("Translation", "Google")] + [InlineData(31, "1개월")] + [InlineData(61, "2개월")] + [InlineData(92, "3개월")] + [InlineData(335, "11개월")] + public void Months(int days, string expected) + { + Assert.Equal(expected, TimeSpan.FromDays(days).Humanize(maxUnit: Humanizer.Localisation.TimeUnit.Year)); + } + + [Theory] + [Trait("Translation", "Google")] + [InlineData(7, "1주")] + [InlineData(14, "2주")] + public void Weeks(int days, string expected) + { + Assert.Equal(expected, TimeSpan.FromDays(days).Humanize()); + } + + [Theory] + [Trait("Translation", "Google")] + [InlineData(1, "1일")] + [InlineData(2, "2일")] + public void Days(int days, string expected) + { + Assert.Equal(expected, TimeSpan.FromDays(days).Humanize()); + } + + [Theory] + [Trait("Translation", "Google")] + [InlineData(1, "1시간")] + [InlineData(2, "2시간")] + public void Hours(int hours, string expected) + { + Assert.Equal(expected, TimeSpan.FromHours(hours).Humanize()); + } + + [Theory] + [Trait("Translation", "Google")] + [InlineData(1, "1분")] + [InlineData(2, "2분")] + public void Minutes(int minutes, string expected) + { + Assert.Equal(expected, TimeSpan.FromMinutes(minutes).Humanize()); + } + + [Theory] + [Trait("Translation", "Google")] + [InlineData(1, "1초")] + [InlineData(2, "2초")] + public void Seconds(int seconds, string expected) + { + Assert.Equal(expected, TimeSpan.FromSeconds(seconds).Humanize()); + } + + [Theory] + [Trait("Translation", "Google")] + [InlineData(1, "1밀리초")] + [InlineData(2, "2밀리초")] + public void Milliseconds(int milliseconds, string expected) + { + Assert.Equal(expected, TimeSpan.FromMilliseconds(milliseconds).Humanize()); + } + + [Fact] + [Trait("Translation", "Google")] + public void NoTime() + { + Assert.Equal("0밀리초", TimeSpan.Zero.Humanize()); + } + + [Fact] + public void NoTimeToWords() + { + Assert.Equal("방금", TimeSpan.Zero.Humanize(toWords: true)); + } + } +} diff --git a/src/Humanizer/Configuration/FormatterRegistry.cs b/src/Humanizer/Configuration/FormatterRegistry.cs index 9970c6a21..86b33aea4 100644 --- a/src/Humanizer/Configuration/FormatterRegistry.cs +++ b/src/Humanizer/Configuration/FormatterRegistry.cs @@ -41,6 +41,7 @@ public FormatterRegistry() : base(new DefaultFormatter("en-US")) RegisterDefaultFormatter("hy"); RegisterDefaultFormatter("id"); RegisterDefaultFormatter("ja"); + RegisterDefaultFormatter("ko-KR"); Register("mt", new MalteseFormatter("mt")); RegisterDefaultFormatter("nb"); RegisterDefaultFormatter("nb-NO");