-
Notifications
You must be signed in to change notification settings - Fork 5
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
base: master
Are you sure you want to change the base?
Conversation
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 :) |
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). |
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. |
So despite there being 30 This should be ready to go, then hopefully we can get translations in for the other languages and actually use this. |
There was a problem hiding this 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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The downside of TODO
s: who is going to pick it up when?
So maybe the question .. is it actually a TODO?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, the hope is that once the translations are in EINTS, people translate them, and we no longer need this. :) So I suppose it depends on how long the translations take.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't it always be better to use the english sentence for those translations that do not have a translated string? That is more why I meant if this is actually a TODO. As I don't think you want to do it "for now", but in all cases where the translation is without an actual translation :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Owh, I was misreading the if-statement .. now you created all the language files, is this code that is actually executed? I think it would be better if the tool crashes (or exits with a warning) at this point, not? As that means you didn't create a placeholder file where one is expected?
In other words, eints is not going to create any new files when things are translated; it will only update the ones that currently exist.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, forgot about this over Christmas! In theory, yes, you're correct - we shouldn't have any more files appearing, unless we add more languages in the Windows Store. So that could well be removed, though maybe having it display a warning would be safest.
- GUI improvements, scalable font | ||
- New Help and Manuals option, improved default settings | ||
|
||
Check out our blogs on openttd.org for full details." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am a bit slow, but I missed this entry in my first review.
I would very much prefer if we don't have changelogs hardcoded in this repository. Do we actually need to have it like this? As this feels like asking for trouble :D (and another step in the release pipeline). Is there any way around this, or a way to avoid it?
(to be clear, I am not going to keep back this PR because of this; just want to challenge you if we actually want/need this)
Edit: it is also not translated; so maybe just put an URL in there to the changelog, or website? Not sure .. just thinking out loud, mostly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suppose I can just put it in a .txt file that's not committed to the repository and read it in from there, perhaps. I need to manually generate these release notes for the Store, but there's a character limitation on this field so I can't just use the changelog from OpenTTD as-is.
I could also put in a "Visit https://url/ for the latest changes" or even the awful "Bug fixes and enhancements" that every mobile app now has, but I prefer to actually have some details for users to see. :)
And yes, it's not translated, but neither is changelog.txt in OpenTTD of course.
VoiceTitle,7,Text,, | ||
ShortDescription,8,Text,,$STR_ABSTRACT$ | ||
DevStudio,9,Text,,OpenTTD Developers | ||
CopyrightTrademarkInformation,12,Text,,Copyright © OpenTTD Developers 2002-2024 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe automate the 2024
while doing all this scripting. You will forget to update this every single year, I can promise you :P
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, if I'm taking the changelog out of the .csv template then I should probably do that too!
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.