Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Armenian language support #924

Merged
merged 5 commits into from
May 2, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions NuSpecs/Humanizer.Core.hy.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<package>
<metadata minClientVersion="2.12">
<id>Humanizer.Core.hy</id>
<version>$version$</version>
<title>Humanizer Locale (hy)</title>
<authors>Mehdi Khalili, Claire Novotny</authors>
<projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
<icon>logo.png</icon>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Humanizer Locale Armenian (hy)</description>
<copyright>Copyright (c) .NET Foundation and Contributors</copyright>
<license type="expression">MIT</license>
<repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
<language>ru</language>
<dependencies>
<dependency id="Humanizer.Core" version="[$version$]" />
</dependencies>
</metadata>
<files>
<file src="Humanizer\bin\Release\netstandard1.0\hy\*.*" target="lib\netstandard1.0\hy" />
<file src="Humanizer\bin\Release\netstandard2.0\hy\*.*" target="lib\netstandard2.0\hy" />
<file src="..\logo.png" target="logo.png" />
</files>
</package>
4 changes: 4 additions & 0 deletions src/Humanizer.Tests.Shared/Humanizer.Tests.Shared.projitems
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@
<Compile Include="$(MSBuildThisFileDirectory)Localisation\hr\TimeSpanHumanizeTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Localisation\hu\DateHumanizeTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Localisation\hu\TimeSpanHumanizeTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Localisation\hy\DateHumanizeTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Localisation\hy\NumberToWordsTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Localisation\hy\OrdinalizeTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Localisation\hy\TimeSpanHumanizeTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Localisation\id\DateHumanizeTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Localisation\id\TimeSpanHumanizeTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Localisation\invariant\NumberToWordsTests.cs" />
Expand Down
143 changes: 143 additions & 0 deletions src/Humanizer.Tests.Shared/Localisation/hy/DateHumanizeTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
using Humanizer.Localisation;
using Xunit;

namespace Humanizer.Tests.Localisation.hy
{
[UseCulture("hy")]
public class DateHumanizeTests
{

[Theory]
[InlineData(1, "մեկ վայրկյան առաջ")]
[InlineData(2, "2 վայրկյան առաջ")]
[InlineData(3, "3 վայրկյան առաջ")]
[InlineData(4, "4 վայրկյան առաջ")]
[InlineData(11, "11 վայրկյան առաջ")]
[InlineData(21, "21 վայրկյան առաջ")]
[InlineData(24, "24 վայրկյան առաջ")]
[InlineData(40, "40 վայրկյան առաջ")]
public void SecondsAgo(int seconds, string expected)
{
DateHumanize.Verify(expected, seconds, TimeUnit.Second, Tense.Past);
}

[Theory]
[InlineData(1, "մեկ վայրկյանից")]
[InlineData(2, "2 վայրկյանից")]
[InlineData(11, "11 վայրկյանից")]
[InlineData(20, "20 վայրկյանից")]
[InlineData(40, "40 վայրկյանից")]
public void SecondsFromNow(int seconds, string expected)
{
DateHumanize.Verify(expected, seconds, TimeUnit.Second, Tense.Future);
}

[Theory]
[InlineData(1, "մեկ րոպե առաջ")]
[InlineData(2, "2 րոպե առաջ")]
[InlineData(10, "10 րոպե առաջ")]
[InlineData(25, "25 րոպե առաջ")]
[InlineData(40, "40 րոպե առաջ")]
[InlineData(60, "մեկ ժամ առաջ")]
public void MinutesAgo(int minutes, string expected)
{
DateHumanize.Verify(expected, minutes, TimeUnit.Minute, Tense.Past);
}

[Theory]
[InlineData(1, "մեկ րոպեից")]
[InlineData(2, "2 րոպեից")]
[InlineData(19, "19 րոպեից")]
[InlineData(25, "25 րոպեից")]
[InlineData(40, "40 րոպեից")]
public void MinutesFromNow(int minutes, string expected)
{
DateHumanize.Verify(expected, minutes, TimeUnit.Minute, Tense.Future);
}

[Theory]
[InlineData(1, "մեկ ժամ առաջ")]
[InlineData(2, "2 ժամ առաջ")]
[InlineData(19, "19 ժամ առաջ")]
[InlineData(20, "20 ժամ առաջ")]
public void HoursAgo(int hours, string expected)
{
DateHumanize.Verify(expected, hours, TimeUnit.Hour, Tense.Past);
}

[Theory]
[InlineData(1, "մեկ ժամից")]
[InlineData(5, "5 ժամից")]
[InlineData(23, "23 ժամից")]
public void HoursFromNow(int hours, string expected)
{
DateHumanize.Verify(expected, hours, TimeUnit.Hour, Tense.Future);
}

[Theory]
[InlineData(1, "երեկ")]
[InlineData(2, "2 օր առաջ")]
[InlineData(25, "25 օր առաջ")]
public void DaysAgo(int days, string expected)
{
DateHumanize.Verify(expected, days, TimeUnit.Day, Tense.Past);
}

[Theory]
[InlineData(1, "վաղը")]
[InlineData(2, "2 օրից")]
[InlineData(25, "25 օրից")]
public void DaysFromNow(int days, string expected)
{
DateHumanize.Verify(expected, days, TimeUnit.Day, Tense.Future);
}

[Theory]
[InlineData(1, "մեկ ամիս առաջ")]
[InlineData(11, "11 ամիս առաջ")]
public void MonthsAgo(int months, string expected)
{
DateHumanize.Verify(expected, months, TimeUnit.Month, Tense.Past);
}

[Theory]
[InlineData(1, "մեկ ամսից")]
[InlineData(11, "11 ամսից")]
public void MonthsFromNow(int months, string expected)
{
DateHumanize.Verify(expected, months, TimeUnit.Month, Tense.Future);
}

[Theory]
[InlineData(1, "մեկ տարի առաջ")]
[InlineData(2, "2 տարի առաջ")]
[InlineData(21, "21 տարի առաջ")]
[InlineData(111, "111 տարի առաջ")]
[InlineData(121, "121 տարի առաջ")]
[InlineData(222, "222 տարի առաջ")]
[InlineData(325, "325 տարի առաջ")]
public void YearsAgo(int years, string expected)
{
DateHumanize.Verify(expected, years, TimeUnit.Year, Tense.Past);
}

[Theory]
[InlineData(1, "մեկ տարուց")]
[InlineData(2, "2 տարուց")]
[InlineData(21, "21 տարուց")]
[InlineData(111, "111 տարուց")]
[InlineData(121, "121 տարուց")]
[InlineData(222, "222 տարուց")]
[InlineData(325, "325 տարուց")]
public void YearsFromNow(int years, string expected)
{
DateHumanize.Verify(expected, years, TimeUnit.Year, Tense.Future);
}

[Fact]
public void Now()
{
DateHumanize.Verify("հիմա", 0, TimeUnit.Day, Tense.Past);
}
}
}
162 changes: 162 additions & 0 deletions src/Humanizer.Tests.Shared/Localisation/hy/NumberToWordsTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
using Xunit;

namespace Humanizer.Tests.Localisation.hy
{
[UseCulture("hy")]
public class NumberToWordsTests
{
[Theory]
[InlineData(0, "զրո")]
[InlineData(1, "մեկ")]
[InlineData(10, "տաս")]
[InlineData(11, "տասնմեկ")]
[InlineData(12, "տասներկու")]
[InlineData(13, "տասներեք")]
[InlineData(14, "տասնչորս")]
[InlineData(15, "տասնհինգ")]
[InlineData(16, "տասնվեց")]
[InlineData(17, "տասնյոթ")]
[InlineData(18, "տասնութ")]
[InlineData(19, "տասնինը")]
[InlineData(20, "քսան")]
[InlineData(30, "երեսուն")]
[InlineData(40, "քառասուն")]
[InlineData(50, "հիսուն")]
[InlineData(60, "վաթսուն")]
[InlineData(70, "յոթանասուն")]
[InlineData(80, "ութսուն")]
[InlineData(90, "իննսուն")]
[InlineData(100, "հարյուր")]
[InlineData(200, "երկու հարյուր")]
[InlineData(300, "երեք հարյուր")]
[InlineData(400, "չորս հարյուր")]
[InlineData(500, "հինգ հարյուր")]
[InlineData(600, "վեց հարյուր")]
[InlineData(700, "յոթ հարյուր")]
[InlineData(800, "ութ հարյուր")]
[InlineData(900, "ինը հարյուր")]
[InlineData(1000, "հազար")]
[InlineData(2000, "երկու հազար")]
[InlineData(3000, "երեք հազար")]
[InlineData(4000, "չորս հազար")]
[InlineData(5000, "հինգ հազար")]
[InlineData(10000, "տաս հազար")]
[InlineData(100000, "հարյուր հազար")]
[InlineData(1000000, "մեկ միլիոն")]
[InlineData(2000000, "երկու միլիոն")]
[InlineData(10000000, "տաս միլիոն")]
[InlineData(100000000, "հարյուր միլիոն")]
[InlineData(1000000000, "մեկ միլիարդ")]
[InlineData(2000000000, "երկու միլիարդ")]
[InlineData(3000000000, "երեք միլիարդ")]
[InlineData(4000000000, "չորս միլիարդ")]
[InlineData(122, "հարյուր քսաներկու")]
[InlineData(3501, "երեք հազար հինգ հարյուր մեկ")]
[InlineData(111, "հարյուր տասնմեկ")]
[InlineData(1112, "հազար հարյուր տասներկու")]
[InlineData(11213, "տասնմեկ հազար երկու հարյուր տասներեք")]
[InlineData(121314, "հարյուր քսանմեկ հազար երեք հարյուր տասնչորս")]
[InlineData(2132415, "երկու միլիոն հարյուր երեսուներկու հազար չորս հարյուր տասնհինգ")]
[InlineData(12345516, "տասներկու միլիոն երեք հարյուր քառասունհինգ հազար հինգ հարյուր տասնվեց")]
[InlineData(751633617, "յոթ հարյուր հիսունմեկ միլիոն վեց հարյուր երեսուներեք հազար վեց հարյուր տասնյոթ")]
[InlineData(1111111118, "մեկ միլիարդ հարյուր տասնմեկ միլիոն հարյուր տասնմեկ հազար հարյուր տասնութ")]
[InlineData(4111111118, "չորս միլիարդ հարյուր տասնմեկ միլիոն հարյուր տասնմեկ հազար հարյուր տասնութ")]
[InlineData(-751633617, "մինուս յոթ հարյուր հիսունմեկ միլիոն վեց հարյուր երեսուներեք հազար վեց հարյուր տասնյոթ")]
[InlineData(999999999999, "ինը հարյուր իննսունինը միլիարդ ինը հարյուր իննսունինը միլիոն ինը հարյուր իննսունինը հազար ինը հարյուր իննսունինը")]
[InlineData(1_000_000_000_000, "մեկ տրիլիոն")]
[InlineData(3_000_000_000_000, "երեք տրիլիոն")]
[InlineData(5_000_000_000_000, "հինգ տրիլիոն")]
[InlineData(999_000_000_000_000, "ինը հարյուր իննսունինը տրիլիոն")]
[InlineData(
long.MaxValue,
"ինը քվինտիլիոն " +
"երկու հարյուր քսաներեք կվադրիլիոն " +
"երեք հարյուր յոթանասուներկու տրիլիոն " +
"երեսունվեց միլիարդ " +
"ութ հարյուր հիսունչորս միլիոն " +
"յոթ հարյուր յոթանասունհինգ հազար " +
"ութ հարյուր յոթ")]
[InlineData(
long.MinValue,
"մինուս ինը քվինտիլիոն " +
"երկու հարյուր քսաներեք կվադրիլիոն " +
"երեք հարյուր յոթանասուներկու տրիլիոն " +
"երեսունվեց միլիարդ " +
"ութ հարյուր հիսունչորս միլիոն " +
"յոթ հարյուր յոթանասունհինգ հազար " +
"ութ հարյուր ութ")]
public void ToWords(long number, string expected)
{
Assert.Equal(expected, number.ToWords());
}

[Theory]
[InlineData(0, "զրոյական")]
[InlineData(1, "առաջին")]
[InlineData(2, "երկրորդ")]
[InlineData(3, "երրորդ")]
[InlineData(10, "տասերորդ")]
[InlineData(11, "տասնմեկերորդ")]
[InlineData(12, "տասներկուերորդ")]
[InlineData(13, "տասներեքերորդ")]
[InlineData(14, "տասնչորսերորդ")]
[InlineData(15, "տասնհինգերորդ")]
[InlineData(16, "տասնվեցերորդ")]
[InlineData(17, "տասնյոթերորդ")]
[InlineData(18, "տասնութերորդ")]
[InlineData(19, "տասնինըերորդ")]
[InlineData(20, "քսաներորդ")]
[InlineData(30, "երեսուներորդ")]
[InlineData(40, "քառասուներորդ")]
[InlineData(50, "հիսուներորդ")]
[InlineData(60, "վաթսուներորդ")]
[InlineData(70, "յոթանասուներորդ")]
[InlineData(80, "ութսուներորդ")]
[InlineData(90, "իննսուներորդ")]
[InlineData(100, "հարյուրերորդ")]
[InlineData(200, "երկու հարյուրերորդ")]
[InlineData(300, "երեք հարյուրերորդ")]
[InlineData(400, "չորս հարյուրերորդ")]
[InlineData(500, "հինգ հարյուրերորդ")]
[InlineData(600, "վեց հարյուրերորդ")]
[InlineData(700, "յոթ հարյուրերորդ")]
[InlineData(800, "ութ հարյուրերորդ")]
[InlineData(900, "ինը հարյուրերորդ")]
[InlineData(1000, "հազարերորդ")]
[InlineData(2000, "երկու հազարերորդ")]
[InlineData(3000, "երեք հազարերորդ")]
[InlineData(4000, "չորս հազարերորդ")]
[InlineData(5000, "հինգ հազարերորդ")]
[InlineData(10000, "տաս հազարերորդ")]
[InlineData(21000, "քսանմեկ հազարերորդ")]
[InlineData(100000, "հարյուր հազարերորդ")]
[InlineData(101000, "հարյուր մեկ հազարերորդ")]
[InlineData(1000000, "մեկ միլիոներորդ")]
[InlineData(121000, "հարյուր քսանմեկ հազարերորդ")]
[InlineData(200000, "երկու հարյուր հազարերորդ")]
[InlineData(2000000, "երկու միլիոներորդ")]
[InlineData(10000000, "տաս միլիոներորդ")]
[InlineData(21000000, "քսանմեկ միլիոներորդ")]
[InlineData(100000000, "հարյուր միլիոներորդ")]
[InlineData(230000000, "երկու հարյուր երեսուն միլիոներորդ")]
[InlineData(1000000000, "մեկ միլիարդերորդ")]
[InlineData(2000000000, "երկու միլիարդերորդ")]
[InlineData(122, "հարյուր քսաներկուերորդ")]
[InlineData(3501, "երեք հազար հինգ հարյուր մեկերորդ")]
[InlineData(111, "հարյուր տասնմեկերորդ")]
[InlineData(1112, "հազար հարյուր տասներկուերորդ")]
[InlineData(11213, "տասնմեկ հազար երկու հարյուր տասներեքերորդ")]
[InlineData(121314, "հարյուր քսանմեկ հազար երեք հարյուր տասնչորսերորդ")]
[InlineData(2132415, "երկու միլիոն հարյուր երեսուներկու հազար չորս հարյուր տասնհինգերորդ")]
[InlineData(12345516, "տասներկու միլիոն երեք հարյուր քառասունհինգ հազար հինգ հարյուր տասնվեցերորդ")]
[InlineData(751633617, "յոթ հարյուր հիսունմեկ միլիոն վեց հարյուր երեսուներեք հազար վեց հարյուր տասնյոթերորդ")]
[InlineData(1111111118, "մեկ միլիարդ հարյուր տասնմեկ միլիոն հարյուր տասնմեկ հազար հարյուր տասնութերորդ")]
[InlineData(1111111000, "մեկ միլիարդ հարյուր տասնմեկ միլիոն հարյուր տասնմեկ հազարերորդ")]
[InlineData(1234567000, "մեկ միլիարդ երկու հարյուր երեսունչորս միլիոն հինգ հարյուր վաթսունյոթ հազարերորդ")]
[InlineData(-751633617, "մինուս յոթ հարյուր հիսունմեկ միլիոն վեց հարյուր երեսուներեք հազար վեց հարյուր տասնյոթերորդ")]
public void ToOrdinalWords(int number, string expected)
{
Assert.Equal(expected, number.ToOrdinalWords());
}
}
}
42 changes: 42 additions & 0 deletions src/Humanizer.Tests.Shared/Localisation/hy/OrdinalizeTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
using Xunit;

namespace Humanizer.Tests.Localisation.hy
{
[UseCulture("hy")]
public class OrdinalizeTests
{

[Theory]
[InlineData("0", "0-րդ")]
[InlineData("1", "1-ին")]
[InlineData("2", "2-րդ")]
[InlineData("103", "103-րդ")]
[InlineData("1001", "1001-րդ")]
public void OrdinalizeStringMasculine(string number, string ordinalized)
{
Assert.Equal(number.Ordinalize(GrammaticalGender.Masculine), ordinalized);
}

[Theory]
[InlineData("0", "0-րդ")]
[InlineData("1", "1-ին")]
[InlineData("2", "2-րդ")]
[InlineData("103", "103-րդ")]
[InlineData("1001", "1001-րդ")]
public void OrdinalizeStringFeminine(string number, string ordinalized)
{
Assert.Equal(number.Ordinalize(GrammaticalGender.Feminine), ordinalized);
}

[Theory]
[InlineData("0", "0-րդ")]
[InlineData("1", "1-ին")]
[InlineData("2", "2-րդ")]
[InlineData("103", "103-րդ")]
[InlineData("1001", "1001-րդ")]
public void OrdinalizeStringNeuter(string number, string ordinalized)
{
Assert.Equal(number.Ordinalize(GrammaticalGender.Neuter), ordinalized);
}
}
}
Loading