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

[Suggestion] Support i18n #35

Closed
Tenebrosful opened this issue Mar 20, 2024 · 7 comments · Fixed by #36
Closed

[Suggestion] Support i18n #35

Tenebrosful opened this issue Mar 20, 2024 · 7 comments · Fixed by #36

Comments

@Tenebrosful
Copy link
Contributor

Should be nice to have multi-lang sync with game lang for Activity and GameInfo, can translate in french if need

@RuiNtD
Copy link
Owner

RuiNtD commented Mar 22, 2024

Unfortunately, Activity can't be easily translated because it's actually generated by Stardew Valley itself. There's a debugPresenceString field in Game1 that is constantly updated in various parts of the Stardew code, in English only, but never actually used.

@RuiNtD
Copy link
Owner

RuiNtD commented Mar 22, 2024

Also, if I added i18n, I would also want the upcoming config menu translated. I also don't actually know how to do translation outsourcing.

@Tenebrosful
Copy link
Contributor Author

@Tenebrosful
Copy link
Contributor Author

Tenebrosful commented Mar 22, 2024

Unfortunately, Activity can't be easily translated because it's actually generated by Stardew Valley itself. There's a debugPresenceString field in Game1 that is constantly updated in various parts of the Stardew code, in English only, but never actually used.

When i was talking about this, i was thinking about strings like

Helper.Events.GameLoop.SaveLoaded += (object sender, SaveLoadedEventArgs e) =>
api.GamePresence = "Getting Started";
Helper.Events.GameLoop.SaveCreated += (object sender, SaveCreatedEventArgs e) =>
api.GamePresence = "Starting a New Game";

SetTag(mod, "GameVerb", ReqWorld(() => Context.IsMultiplayer && Context.IsMainPlayer ? "Hosting" : "Playing"));
SetTag(mod, "GameNoun", ReqWorld(() => Context.IsMultiplayer ? "Co-op" : "Solo"));

for exemple that are hardcoded

@Tenebrosful Tenebrosful changed the title [Suggestion] Support i18n for Activity and GameInfo [Suggestion] Support i18n Mar 22, 2024
@Tenebrosful
Copy link
Contributor Author

Actually i learned how to use visual studio sooooooooo i can pull request it yeay

@RuiNtD
Copy link
Owner

RuiNtD commented Mar 23, 2024

GameVerb, GameNoun, and GameInfo are perfectly fine to be translated. As for where I set GamePresence, those are only meant to give more specific presence, where the game would just provide me with "In menus". Any other activity would be in English. I could probably work around this by translating each possible vanilla message, but that would be a lot of additional effort.

@RuiNtD
Copy link
Owner

RuiNtD commented Mar 23, 2024

Altho, as for GameVerb, GameNoun, and GameInfo, I'm probably going to condense those into one tag.

@RuiNtD RuiNtD linked a pull request Mar 25, 2024 that will close this issue
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 a pull request may close this issue.

2 participants