Skip to content

Commit 74e87ec

Browse files
authored
Merge pull request #516 from Freeesia/copilot/implement-review-request-feature
Implement review request feature for Microsoft Store version
2 parents 68e1f21 + d3a9f76 commit 74e87ec

16 files changed

Lines changed: 505 additions & 14 deletions

WindowTranslator/Modules/Settings/AllSettingsDialog.xaml

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -375,20 +375,29 @@
375375
</Grid>
376376
</TabItem>
377377
<TabItem Header="{x:Static properties:Resources.About}" Visibility="{Binding IsVisibleAbout, Converter={StaticResource b2vConv}}">
378-
<pt:PropertyGrid
379-
Grid.Column="2"
380-
Margin="8"
381-
ControlFactory="{StaticResource factory}"
382-
Operator="{StaticResource operator}"
383-
SelectedObject="{x:Static root:AppInfo.Instance}"
384-
TabVisibility="Collapsed">
385-
<pt:PropertyGrid.Resources>
386-
<Style BasedOn="{StaticResource {x:Type Label}}" TargetType="Label">
387-
<Setter Property="Padding" Value="4,8" />
388-
</Style>
389-
<SolidColorBrush x:Key="TextControlPlaceholderForeground" Color="{StaticResource TextFillColorDisabled}" />
390-
</pt:PropertyGrid.Resources>
391-
</pt:PropertyGrid>
378+
<DockPanel>
379+
<ui:Button
380+
Command="{Binding OpenReviewCommand}"
381+
Content="{x:Static properties:Resources.WriteReview}"
382+
DockPanel.Dock="Bottom"
383+
Icon="{ui:SymbolIcon Star24}"
384+
Margin="8"
385+
Visibility="{Binding IsVisibleReviewButton, Converter={StaticResource b2vConv}}" />
386+
<pt:PropertyGrid
387+
Grid.Column="2"
388+
Margin="8"
389+
ControlFactory="{StaticResource factory}"
390+
Operator="{StaticResource operator}"
391+
SelectedObject="{x:Static root:AppInfo.Instance}"
392+
TabVisibility="Collapsed">
393+
<pt:PropertyGrid.Resources>
394+
<Style BasedOn="{StaticResource {x:Type Label}}" TargetType="Label">
395+
<Setter Property="Padding" Value="4,8" />
396+
</Style>
397+
<SolidColorBrush x:Key="TextControlPlaceholderForeground" Color="{StaticResource TextFillColorDisabled}" />
398+
</pt:PropertyGrid.Resources>
399+
</pt:PropertyGrid>
400+
</DockPanel>
392401
</TabItem>
393402
</TabControl>
394403
</DockPanel>

WindowTranslator/Modules/Settings/AllSettingsViewModel.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ sealed partial class AllSettingsViewModel : ObservableObject, IDisposable
4242
WriteIndented = true,
4343
};
4444
private readonly IUpdateChecker updateChecker;
45+
private readonly IReviewRequestService reviewRequestService;
4546
private readonly IContentDialogService dialogService;
4647
private readonly IPresentationService presentationService;
4748
private readonly IAutoTargetStore autoTargetStore;
@@ -100,11 +101,14 @@ sealed partial class AllSettingsViewModel : ObservableObject, IDisposable
100101

101102
public bool IsVisibleAbout { get; } = !AppInfo.SuppressMode;
102103

104+
public bool IsVisibleReviewButton => this.reviewRequestService.CanOpenReview;
105+
103106
public AllSettingsViewModel(
104107
[Inject] PluginProvider provider,
105108
[Inject] IOptionsSnapshot<UserSettings> options,
106109
[Inject] IServiceProvider sp,
107110
[Inject] IUpdateChecker updateChecker,
111+
[Inject] IReviewRequestService reviewRequestService,
108112
[Inject] IContentDialogService dialogService,
109113
[Inject] IPresentationService presentationService,
110114
[Inject] IAutoTargetStore autoTargetStore,
@@ -145,6 +149,7 @@ public AllSettingsViewModel(
145149
this.SelectedTarget = selected;
146150

147151
this.updateChecker = updateChecker;
152+
this.reviewRequestService = reviewRequestService;
148153
this.dialogService = dialogService;
149154
this.presentationService = presentationService;
150155
this.autoTargetStore = autoTargetStore;
@@ -210,6 +215,10 @@ private static bool GetIsStartup()
210215
private static ModuleItem Convert(Plugin plugin)
211216
=> new(plugin.Type.Name, plugin.Name, plugin.Type.IsDefined(typeof(DefaultModuleAttribute)));
212217

218+
[RelayCommand]
219+
public Task OpenReviewAsync()
220+
=> this.reviewRequestService.OpenReviewPageAsync();
221+
213222
[RelayCommand]
214223
public void DeleteAutoTarget(string item)
215224
=> this.AutoTargets.Remove(item);

WindowTranslator/Program.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,11 @@
142142
.AddHostedService(sp => sp.GetRequiredService<UpdateChecker>());
143143
}
144144

145+
// レビュー依頼サービスの登録
146+
builder.Services.AddSingleton<ReviewRequestService>()
147+
.AddSingleton<IReviewRequestService>(sp => sp.GetRequiredService<ReviewRequestService>())
148+
.AddHostedService(sp => sp.GetRequiredService<ReviewRequestService>());
149+
145150
builder.Services.AddScoped<IProcessInfoStoreInternal, ProcessInfoStore>()
146151
.AddScoped<IProcessInfoStore>(sp => sp.GetRequiredService<IProcessInfoStoreInternal>());
147152
builder.Services.AddPresentation<StartupDialog, StartupViewModel>();

WindowTranslator/Properties/Resources.Designer.cs

Lines changed: 45 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

WindowTranslator/Properties/Resources.de.resx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,4 +423,19 @@ Monitore werden nicht unterstützt.
423423
<data name="UnhundledErrorMessage" xml:space="preserve">
424424
<value>Ein unbekannter Fehler ist aufgetreten</value>
425425
</data>
426+
<data name="ReviewRequest" xml:space="preserve">
427+
<value>Bewertung anfordern</value>
428+
</data>
429+
<data name="ReviewRequestMessage" xml:space="preserve">
430+
<value>Vielen Dank, dass Sie WindowTranslator verwenden. Würden Sie eine Bewertung im Microsoft Store hinterlassen?</value>
431+
</data>
432+
<data name="WriteReview" xml:space="preserve">
433+
<value>Bewertung schreiben</value>
434+
</data>
435+
<data name="ReviewLater" xml:space="preserve">
436+
<value>Später</value>
437+
</data>
438+
<data name="ReviewNeverShowAgain" xml:space="preserve">
439+
<value>Nie wieder anzeigen</value>
440+
</data>
426441
</root>

WindowTranslator/Properties/Resources.en.resx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,4 +423,19 @@ Monitors are not supported.
423423
<data name="UnhundledErrorMessage" xml:space="preserve">
424424
<value>An unknown error has occurred</value>
425425
</data>
426+
<data name="ReviewRequest" xml:space="preserve">
427+
<value>Review Request</value>
428+
</data>
429+
<data name="ReviewRequestMessage" xml:space="preserve">
430+
<value>Thank you for using WindowTranslator. Would you mind leaving a review on the Microsoft Store?</value>
431+
</data>
432+
<data name="WriteReview" xml:space="preserve">
433+
<value>Write a Review</value>
434+
</data>
435+
<data name="ReviewLater" xml:space="preserve">
436+
<value>Later</value>
437+
</data>
438+
<data name="ReviewNeverShowAgain" xml:space="preserve">
439+
<value>Never Show Again</value>
440+
</data>
426441
</root>

WindowTranslator/Properties/Resources.hi.resx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,4 +358,22 @@
358358
<data name="FaildApplySettings" xml:space="preserve">
359359
<value>सेटिंग्स लागू करने में विफल।</value>
360360
</data>
361+
<data name="UnhundledErrorMessage" xml:space="preserve">
362+
<value>एक अज्ञात त्रुटि हुई है</value>
363+
</data>
364+
<data name="ReviewRequest" xml:space="preserve">
365+
<value>समीक्षा अनुरोध</value>
366+
</data>
367+
<data name="ReviewRequestMessage" xml:space="preserve">
368+
<value>WindowTranslator का उपयोग करने के लिए धन्यवाद। क्या आप Microsoft Store पर एक समीक्षा छोड़ सकते हैं?</value>
369+
</data>
370+
<data name="WriteReview" xml:space="preserve">
371+
<value>समीक्षा लिखें</value>
372+
</data>
373+
<data name="ReviewLater" xml:space="preserve">
374+
<value>बाद में</value>
375+
</data>
376+
<data name="ReviewNeverShowAgain" xml:space="preserve">
377+
<value>फिर कभी न दिखाएं</value>
378+
</data>
361379
</root>

WindowTranslator/Properties/Resources.id.resx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,4 +364,19 @@ Monitor tidak didukung.</value>
364364
<data name="UnhundledErrorMessage" xml:space="preserve">
365365
<value>Terjadi kesalahan yang tidak diketahui</value>
366366
</data>
367+
<data name="ReviewRequest" xml:space="preserve">
368+
<value>Permintaan Ulasan</value>
369+
</data>
370+
<data name="ReviewRequestMessage" xml:space="preserve">
371+
<value>Terima kasih telah menggunakan WindowTranslator. Bisakah Anda meninggalkan ulasan di Microsoft Store?</value>
372+
</data>
373+
<data name="WriteReview" xml:space="preserve">
374+
<value>Tulis Ulasan</value>
375+
</data>
376+
<data name="ReviewLater" xml:space="preserve">
377+
<value>Nanti</value>
378+
</data>
379+
<data name="ReviewNeverShowAgain" xml:space="preserve">
380+
<value>Jangan Tampilkan Lagi</value>
381+
</data>
367382
</root>

WindowTranslator/Properties/Resources.ko.resx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,4 +423,19 @@
423423
<data name="UnhundledErrorMessage" xml:space="preserve">
424424
<value>알 수 없는 오류가 발생했습니다</value>
425425
</data>
426+
<data name="ReviewRequest" xml:space="preserve">
427+
<value>리뷰 요청</value>
428+
</data>
429+
<data name="ReviewRequestMessage" xml:space="preserve">
430+
<value>WindowTranslator를 사용해 주셔서 감사합니다. Microsoft Store에서 리뷰를 남겨주시겠습니까?</value>
431+
</data>
432+
<data name="WriteReview" xml:space="preserve">
433+
<value>리뷰 작성</value>
434+
</data>
435+
<data name="ReviewLater" xml:space="preserve">
436+
<value>나중에</value>
437+
</data>
438+
<data name="ReviewNeverShowAgain" xml:space="preserve">
439+
<value>다시 표시 안 함</value>
440+
</data>
426441
</root>

WindowTranslator/Properties/Resources.ms.resx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,4 +364,19 @@ Monitor tidak disokong.</value>
364364
<data name="UnhundledErrorMessage" xml:space="preserve">
365365
<value>Ralat tidak diketahui telah berlaku</value>
366366
</data>
367+
<data name="ReviewRequest" xml:space="preserve">
368+
<value>Permintaan Ulasan</value>
369+
</data>
370+
<data name="ReviewRequestMessage" xml:space="preserve">
371+
<value>Terima kasih kerana menggunakan WindowTranslator. Bolehkah anda meninggalkan ulasan di Microsoft Store?</value>
372+
</data>
373+
<data name="WriteReview" xml:space="preserve">
374+
<value>Tulis Ulasan</value>
375+
</data>
376+
<data name="ReviewLater" xml:space="preserve">
377+
<value>Kemudian</value>
378+
</data>
379+
<data name="ReviewNeverShowAgain" xml:space="preserve">
380+
<value>Jangan Tunjuk Lagi</value>
381+
</data>
367382
</root>

0 commit comments

Comments
 (0)