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

Discussion: Localization, how to handle it? #153

Closed
emilkris33 opened this issue Aug 18, 2016 · 25 comments
Closed

Discussion: Localization, how to handle it? #153

emilkris33 opened this issue Aug 18, 2016 · 25 comments

Comments

@emilkris33
Copy link
Contributor

We have already implemented a localization system to the code which look great. But this means that as we add text to the game we are going to get a lot of PRs like #146 with a lot of discussion most of us can't follow. Also this could be quite a lot of PR once we start adding strings and get people working on more languages. In general i think git is a lot better for handling code collaboration than localization collaboration that tells me that we should probably have translation happen somewhere else.

The way this would work is that we add only english strings while working in unity. Then when a new string gets to the TeamPorcupine/Master through PR the string list gets pulled into another tool where people(even those who don't want to touch unity or git) can translate. And then from that tool we export the translation files to unity, either at regular intervals or when ever significant changes exists. For this we could use one of the tools listed at https://github.com/integrations/feature/localization that have build in git integration or another tool. I have some experience using https://translate.google.com/toolkit/ which while not git integrated has the plus of being completely free.

What are everybody's thoughts on this?

@bjubes
Copy link
Collaborator

bjubes commented Aug 18, 2016

I agree that translating should occur outside of the git repo, especially because the subset of people who translate is different that those who code even if some people are doing both.

At this point in the project, many names and ui elements with text are very subject to change. while having code to handle localizations is nessicary, right now any language other than English may very well be a a waste of time when names of items are changed.

implement localization code now, translate and set up translation integration when the project's names and text are final

@SanteriHetekivi
Copy link
Contributor

I also agree.

Made Finnish translation, just for a test of the translation system.
That got me thinking how it would be pain to update every time something changes in English version.

I would think that mostly everyone who are working on this project can at least understand English.

Also before UI resizing is implemented some of the translations are useless because of text length. -#164

@Tranberry
Copy link
Contributor

What does Quill think, have he said anything on this topic somewhere?

@emilkris33
Copy link
Contributor Author

@Tranberry I don't think @quill18 has addressed this. But he might see now that he has been tagged

@Fogsight
Copy link
Contributor

It is a great idea to have more accessible area for people to contribute their translations, but languages should be represented right from the start for localization to work properly. They just could be updated properly later.

Because in Russian, for example, you'll need to mutate nouns depending on situation, it's less flexible than English. (i.e. This is "Steel Wall", but adding "Build" would change its form, and has to be a separate string, which can be avoided if you don't add "Build" in the first place.)

I'm not a linguist BTW, I'm sure there are many more pitfalls and in other languages as well.

@Aiwha
Copy link
Contributor

Aiwha commented Aug 18, 2016

I agree with Fogsight.
Although translating and updating the translations at every update is not ideal, it is essential that a good system is put in place as early as possible. I've seen a few game translation project where it was next to impossible to translate in some languages.

@brlodi
Copy link

brlodi commented Aug 19, 2016

I also agree with @Fogsight and @Aiwha that getting the framework solid is important early on. That said, the points mentioned above about putting in constant effort to keep many localizations up-to-date are very true.

To address Fogsight's specific concerns about varying language constructions, we should avoid programmatically constructing combined UI text. It's an unnecessary complication to adapt the code to handle every possible localization quirk. Just keeping it as simple string replacement ensures the people deciding the button text in a given language (assumedly people knowledgeable in it) have the final say on the output.

@Tranberry
Copy link
Contributor

Would it be possible to default to english (en_US) where translations are missing?

@alexanderfast
Copy link
Collaborator

@Tranberry If a key is missing it defaults to english.

@Tranberry
Copy link
Contributor

@Mizipzor must be after I tested .

@quill18
Copy link
Member

quill18 commented Aug 20, 2016

Yeah, I feel that people jumped on localizing for ALL THE THINGS a bit too quickly -- they're just creating extra maintenance work for themselves.

Perhaps localization would be a great example of something that should be modularized (i.e. literally made into mods), which could then even be moved to a separate repo.

Still, I'm not opposed to having the language files in-place right now -- but I would minimize the effort put into keeping the language files (other than us_EN) up to date with all the furniture/UI changes. It's just going to be in too much flux right now to make it practical to worry about the languages.

Perhaps after we determine what features we will have as part of the Version 0.1 Milestone, we can then go ahead with the language updates to match. I would also NOT include any robot-generated language files in the 0.1 release.

@alexanderfast
Copy link
Collaborator

@quill18 I think that happened because the localization changes are very easy to do. People jumped on them because of that. If youre really eager to contribute something and maybe dont have the coding skill to make a complicated feature, thats the obvious step. And so what if it creates lots of maintenance, those same people now get to practice git even more.

Its a question Ive asked myself a lot recently, is this about creating a game or practice game development (for beginners)? The primary objective affects lots of decision, such as if it makes sense to implement multiplayer.

@Tranberry
Copy link
Contributor

@Mizipzor you must have misunderstood what I meant. When I choose another language and there are strings not translated I would like it to default to English.

@alexanderfast
Copy link
Collaborator

@Tranberry This logic is in the GetLocalization.cs method. Maybe set a breakpoint there and find out whats going on? :) Or, tell me how to reproduce this bug and I'll fix it.

@brlodi
Copy link

brlodi commented Aug 20, 2016

Perhaps @Tranberry is concerned with the fact it still logs an error on falling back to en_US?

@alexanderfast
Copy link
Collaborator

Oh, now I get it. Unusually daft today. Sorry. Yea that can be fixed. I think its a good beginner task. Maybe we should wait for #375. @Tranberry You wanna give it a go? :)

@Tranberry
Copy link
Contributor

Tranberry commented Aug 20, 2016

No git fooled me again, I don't have the current pull/base/whatever I'll probably re-fork :/

@brlodi
Copy link

brlodi commented Aug 20, 2016

@Mizipzor I'm not sure what conclusion you came to, but I still think logging the missing localization is appropriate. "Build Steel Wall" is a nicer fallback than "build furn_steel_wall" but is still an undesired output that needs to be fixed in the localization file.

@alexanderfast
Copy link
Collaborator

@brlodi Theres actually two fallback modes in the code (currently three but one will be removed in a PR), it ether return the key or English equivalent. So its easy to swap between them. I dont know why that is a feature though, dont feel like something you would find in a settings menu. :P

@brlodi
Copy link

brlodi commented Aug 20, 2016

@Mizipzor oh I totally agree. I was just concerned that your epiphany might have been to remove logging from the FallbackMode.ReturnEnglish case

@alexanderfast
Copy link
Collaborator

@brlodi Nope, I rather like logging. :)

@brlodi
Copy link

brlodi commented Aug 20, 2016

Me too, as long as it's not once per frame for the same issue 😛

@vogonistic
Copy link
Collaborator

Do we need to do more work on localization, or is this issue past its close by date?

@alexanderfast
Copy link
Collaborator

Close it.

@mikejbrown
Copy link
Contributor

Let's close it!

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

No branches or pull requests