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

Feature: Add support for generating Windows Store listing data. #12

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

orudge
Copy link

@orudge orudge commented Nov 7, 2024

Microsoft flagged up our Windows Store listing as lacking translations for the many other languages that we say we support. (Historically I just copied the English data to these other stores). To ensure we don't get kicked out of the Store, I've submitted machine-translated versions for now for all the supported languages, but it would be preferable if we can have proper translations. Luckily, this problem has already been solved for Steam, so this is my attempt to do so for the Windows Store too.

The Windows Store uses a .csv file to allow import and export of listing data, which is a bit of a pain. To make my life easier, I've written a small C# program (tested in .NET 8) to take the CSV template and generate the multiple language listings. It also enumerates the screenshots, so we should have a better selection on the Store than the single ancient screenshot I uploaded years ago. :)

In the store listing, I've basically just reused the existing Steam fields for the Windows Store. I still need to test that the generated .csv and screenshots import correctly into the Store (but can't do this until MS has approved the submission I made earlier today) - there are some length limitations on some fields, so I may need to make some tweaks yet.

There are 22 languages supported by the Store that are not currently in the repository; I added stubs for them (based on 8686de0), but if I need to do something else to get those languages to show up in the translator, let me know.

@TrueBrain
Copy link
Member

Mostly curious, any specific reason this being a C# application? From what I can tell, this can be done with a lot less lines in a simple Python script, but I might be missing some detail that got lost in the C# boilerplate :D

Not that I mind the C#, but we already have some Python in this repo; keeping things more the same makes things easier. But again, I just might be missing something in the C# code :)

@orudge
Copy link
Author

orudge commented Nov 7, 2024

Mainly because I know C# and I don't really know Python, so it would have taken me far longer to achieve the same in Python. :D The code should run on any platform .NET runs on (it's not Windows-specific). At present the code will just be run manually by me (automating Windows Store uploads may be possible, but is non-trivial).

@TrueBrain
Copy link
Member

All stores currently are updated manually, so that is perfectly fine. Automating that is tricky, so I didn't bother with the other stores. Translations also rarely change.

@orudge orudge changed the title [WIP] Feature: Add support for generating Windows Store listing data. Feature: Add support for generating Windows Store listing data. Nov 12, 2024
@orudge
Copy link
Author

orudge commented Nov 12, 2024

So despite there being 30 DesktopScreenshot lines in the CSV, the web site will only accept 10. But there's not much point in uploading them every time we do an app update, so I've uploaded them manually for now and added the references to the template. Also added in the trailer and a couple of other bits of artwork.

This should be ready to go, then hopefully we can get translations in for the other languages and actually use this.

Copy link
Member

@TrueBrain TrueBrain left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small nitpicks, mostly to make sure we are not going to say: "huh?!" in a year or so :)

I tried to remember whether we could just merge this or not, but I really can't remember. So when you looked at my comments, we are just going to YOLO this. But it might be I need to run some magic command to get the languages visible in eints ... one problem at the time :D


if (!File.Exists(path))
{
// TODO: For now, substitute the English version.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The downside of TODOs: who is going to pick it up when?

So maybe the question .. is it actually a TODO?

new Language("ukrainian", "uk-ua"),
new Language("vietnamese", "vi-vn"),

// The following languages are supported by the Store, but not currently translated
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With this PR, that is no longer true, is it? So maybe already remove the comment, I would think.

new Language("czech", "cs-cz"),
new Language("danish", "da-dk"),
new Language("dutch", "nl-nl"),
new Language("finnish", "fi-fi"), // Not currently selected for OpenTTD on the Windows Store
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If that comment is true, why is it in here? Or might the comment become untrue at some point? Or should we disable the line in total? :)

@@ -0,0 +1 @@
##plural 0
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are all these languages actually plural 0? Or is it just too much copy/paste?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants