Skip to content

Commit 60cf565

Browse files
authored
Merge pull request #18 from ruslanlap/cascade/add-ukrainian-too-and-make-test-79c0be
Cascade/add ukrainian too and make test 79c0be
2 parents 09a8845 + 6f69ea5 commit 60cf565

9 files changed

Lines changed: 2739 additions & 212 deletions

File tree

QuickNotes/Community.PowerToys.Run.Plugin.QuickNotes.UnitTests/MainTests.cs

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
using Microsoft.VisualStudio.TestTools.UnitTesting;
2+
using System.Globalization;
23
using System.Linq;
4+
using System.Threading;
35
using Wox.Plugin;
6+
using Community.PowerToys.Run.Plugin.QuickNotes.Properties;
47

58
namespace Community.PowerToys.Run.Plugin.QuickNotes.UnitTests
69
{
@@ -31,4 +34,139 @@ public void LoadContextMenus_should_return_results()
3134
Assert.IsNotNull(results.First());
3235
}
3336
}
37+
38+
[TestClass]
39+
public class LocalizationTests
40+
{
41+
private CultureInfo originalCulture;
42+
private CultureInfo originalUICulture;
43+
44+
[TestInitialize]
45+
public void TestInitialize()
46+
{
47+
originalCulture = Thread.CurrentThread.CurrentCulture;
48+
originalUICulture = Thread.CurrentThread.CurrentUICulture;
49+
}
50+
51+
[TestCleanup]
52+
public void TestCleanup()
53+
{
54+
Thread.CurrentThread.CurrentCulture = originalCulture;
55+
Thread.CurrentThread.CurrentUICulture = originalUICulture;
56+
Resources.Culture = null;
57+
}
58+
59+
[TestMethod]
60+
public void Resources_English_PluginName_ShouldBeCorrect()
61+
{
62+
Resources.Culture = new CultureInfo("en-US");
63+
Assert.AreEqual("QuickNotes", Resources.PluginName);
64+
}
65+
66+
[TestMethod]
67+
public void Resources_English_PluginDescription_ShouldBeCorrect()
68+
{
69+
Resources.Culture = new CultureInfo("en-US");
70+
Assert.AreEqual("Save, view, manage, search, tag, and pin quick notes", Resources.PluginDescription);
71+
}
72+
73+
[TestMethod]
74+
public void Resources_Ukrainian_PluginName_ShouldBeCorrect()
75+
{
76+
Resources.Culture = new CultureInfo("uk");
77+
Assert.AreEqual("Швидкі нотатки", Resources.PluginName);
78+
}
79+
80+
[TestMethod]
81+
public void Resources_Ukrainian_PluginDescription_ShouldBeCorrect()
82+
{
83+
Resources.Culture = new CultureInfo("uk");
84+
Assert.AreEqual("Зберігайте, переглядайте, керуйте, шукайте, тегуйте та закріплюйте швидкі нотатки", Resources.PluginDescription);
85+
}
86+
87+
[TestMethod]
88+
public void Resources_Ukrainian_CommandHelp_ShouldBeCorrect()
89+
{
90+
Resources.Culture = new CultureInfo("uk");
91+
Assert.AreEqual("Показати довідку з доступними командами ℹ️", Resources.CommandHelp);
92+
}
93+
94+
[TestMethod]
95+
public void Resources_Ukrainian_NoteSaved_ShouldBeCorrect()
96+
{
97+
Resources.Culture = new CultureInfo("uk");
98+
Assert.AreEqual("Нотатку збережено", Resources.NoteSaved);
99+
}
100+
101+
[TestMethod]
102+
public void Resources_Ukrainian_NoteDeleted_ShouldBeCorrect()
103+
{
104+
Resources.Culture = new CultureInfo("uk");
105+
Assert.AreEqual("Нотатку видалено", Resources.NoteDeleted);
106+
}
107+
108+
[TestMethod]
109+
public void Resources_Ukrainian_NotePinned_ShouldBeCorrect()
110+
{
111+
Resources.Culture = new CultureInfo("uk");
112+
Assert.AreEqual("Нотатку закріплено", Resources.NotePinned);
113+
}
114+
115+
[TestMethod]
116+
public void Resources_Ukrainian_NoteUnpinned_ShouldBeCorrect()
117+
{
118+
Resources.Culture = new CultureInfo("uk");
119+
Assert.AreEqual("Нотатку відкріплено", Resources.NoteUnpinned);
120+
}
121+
122+
[TestMethod]
123+
public void Resources_Ukrainian_Error_ShouldBeCorrect()
124+
{
125+
Resources.Culture = new CultureInfo("uk");
126+
Assert.AreEqual("Помилка", Resources.Error);
127+
}
128+
129+
[TestMethod]
130+
public void Resources_Ukrainian_Cancel_ShouldBeCorrect()
131+
{
132+
Resources.Culture = new CultureInfo("uk");
133+
Assert.AreEqual("Скасувати", Resources.Cancel);
134+
}
135+
136+
[TestMethod]
137+
public void Resources_ChineseSimplified_PluginName_ShouldBeCorrect()
138+
{
139+
Resources.Culture = new CultureInfo("zh-CN");
140+
Assert.AreEqual("快速笔记", Resources.PluginName);
141+
}
142+
143+
[TestMethod]
144+
public void Resources_ChineseSimplified_PluginDescription_ShouldBeCorrect()
145+
{
146+
Resources.Culture = new CultureInfo("zh-CN");
147+
Assert.AreEqual("保存、查看、管理、搜索、标签和置顶快速笔记", Resources.PluginDescription);
148+
}
149+
150+
[TestMethod]
151+
public void Resources_AllLocales_ShouldHaveNonEmptyPluginName()
152+
{
153+
var cultures = new[] { "en-US", "uk", "zh-CN" };
154+
foreach (var cultureName in cultures)
155+
{
156+
Resources.Culture = new CultureInfo(cultureName);
157+
Assert.IsFalse(string.IsNullOrEmpty(Resources.PluginName), $"PluginName should not be empty for culture {cultureName}");
158+
}
159+
}
160+
161+
[TestMethod]
162+
public void Resources_AllLocales_ShouldHaveNonEmptyPluginDescription()
163+
{
164+
var cultures = new[] { "en-US", "uk", "zh-CN" };
165+
foreach (var cultureName in cultures)
166+
{
167+
Resources.Culture = new CultureInfo(cultureName);
168+
Assert.IsFalse(string.IsNullOrEmpty(Resources.PluginDescription), $"PluginDescription should not be empty for culture {cultureName}");
169+
}
170+
}
171+
}
34172
}

QuickNotes/Community.PowerToys.Run.Plugin.QuickNotes/Community.PowerToys.Run.Plugin.QuickNotes.csproj

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<!-- Other important properties -->
1919
<RootNamespace>Community.PowerToys.Run.Plugin.QuickNotes</RootNamespace>
2020
<AssemblyName>Community.PowerToys.Run.Plugin.QuickNotes</AssemblyName>
21-
<Version>1.0.11</Version>
21+
<Version>1.0.12</Version>
2222
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
2323
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
2424
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
@@ -32,6 +32,30 @@
3232
<PackageReference Include="System.Text.Json" Version="9.0.0" />
3333
</ItemGroup>
3434

35+
<!-- Make internals visible to test project -->
36+
<ItemGroup>
37+
<InternalsVisibleTo Include="Community.PowerToys.Run.Plugin.QuickNotes.UnitTests" />
38+
</ItemGroup>
39+
40+
<!-- Resource files for localization -->
41+
<ItemGroup>
42+
<EmbeddedResource Update="Properties\Resources.resx">
43+
<Generator>ResXFileCodeGenerator</Generator>
44+
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
45+
</EmbeddedResource>
46+
<EmbeddedResource Update="Properties\Resources.zh-CN.resx">
47+
<DependentUpon>Resources.resx</DependentUpon>
48+
</EmbeddedResource>
49+
<EmbeddedResource Update="Properties\Resources.uk.resx">
50+
<DependentUpon>Resources.resx</DependentUpon>
51+
</EmbeddedResource>
52+
<Compile Update="Properties\Resources.Designer.cs">
53+
<DesignTime>True</DesignTime>
54+
<AutoGen>True</AutoGen>
55+
<DependentUpon>Resources.resx</DependentUpon>
56+
</Compile>
57+
</ItemGroup>
58+
3559
<!-- Additional files to include in the output -->
3660
<ItemGroup>
3761
<None Include="plugin.json">

0 commit comments

Comments
 (0)