Also noteworthy: Godot's UI system has translation support built-in directly (and its enabled by default), so you shouldn't even have to call `tr()` manually. In your example, you set the text of Label1 to "HELLO" and leave it like that. Godot will automatically pull the English/French/German/Whatever string with the ID "HELLO" and place it in there as soon as you select a language/locale. Same applies to the buttons, too. Only if your string handling is in code (e.g. to use placeholders), you'll have to call `tr()`.
@@whiskeybarrelstudios This works. I had to rewrite one of the labels for it to refresh. Reloading the scene with reload_current_scene() failed, but rewriting one label $MyLabel.text = $MyLabel.text was enough to cause *_everything_* in the scene to change language. The act of setting the label to the same value (ie. the ID like "HELLO") forced Godot to reload its translation system. I guess we only need this sort of thing on the page where the language can be chosen. I'll probably make my labels a capitalized version of the English text so it looks the same size in the editor but it's easy to see if something hasn't been translated by testing the game. It's nice to see people using Godot 4. Thanks for the video & comment!
Great timely video for me - was working on a game that I thought was 'feature' complete - just need to work on content and realized I had forgotten localization! Fortunately since much of the content is not churned out at this point it was fairly easy to implement - great video thanks.
Thank you Oliver, as always. Education is always welcome. Seen a tiny bit of your project in Godot in one of the recent dev logs, seems tidy and more organized than some of your flash ones lol Would be useful to know how you go about it, stuff like signals manager, what overall structure you try to stick with, etc. Thank you and good luck with Gorgon Shield!
For a tool: Make the spreadsheet readable by anyone (you've still got the URL itself as a kind of secret), then copy that link from the Download menu and create a small batch file or shell script calling something as trivial as `curl yoururl > targetfile` and you only have to double-click to download. I'm typing this from memory, but I think that's all it takes! (You can obviously do the same with authentication, but that does take more work.) [ *Edit:* Anyone wanting to try this, check Nathan's reply.]
I couldn't right-click or alt-click the download CSV button, but I found you can replace the "/edit" at the end of the URL with "/gviz/tq?tq=select%20*&tqx=out:csv" which selects all rows and converts it to a CSV.
Hi. I stopped making games after 2014 because Flash lose its popularity but i wanna come back after ten years. Do u suggest godot for a old flash developer? Thx
For sure - I honestly highly recommend it. I tried Unity for a few years but Godot just felt like a really natural successor to Flash. The Node system feels a lot like using MovieClips and there's just a general 'lightweight' approach to everything you do with it. I love it ! Good luck with your return to game dev.
Swords and Sandals Immortals, released earlier this year, was made in Godot. Also my latest game , Gorgon Shield - done in Godot 4 , due out in roughly April .
Just about any language is possible - you just need the corresponding language code. es for spanish, pt for portuguese. (If you google 'country language code' you can find the one you're after).
@@whiskeybarrelstudios only problem is with translation because some worlds of that languange (when translated) in a wrong way without knowing the context of that world.
The system always loads the closest matching language it can find. For example, you can translate everything for the language code "pt" to cover Portuguese. But if there's a string that should be different for Brazilian Portuguese, you can also define "pt-BR" that will only include the differences compared to European Portuguese. Now when you actually play in Brazilian Portuguese, it will look up all translations in "pt-BR" and if it can't find something, it will look in "pt" (and if that's missing, too, it will look in "en"). There's no artifical limitation. You can use/define any language code you want as far as I know.
@@jsgb405 There's no real difference. You could just put localized differences into "es-GT", "es-HN", "es-MX", etc. and it would pick the right one, if the developers provide the necessary language selection (let's say you pick Honduran(?) Spanish, the game would load stuff from "es-HN" and everything else from "es", followd by "en"). There's no limitation to this.
While the tutorial of how to add languages into a game is great, simple translation using google is often not correct and conversational language can be different than strictly translating word for word. It might be helpful to have everything you want to translate in a spreadsheet, and hire a translator or see if any volunteers can then add in their language based on the english version.
Yeah I agree , I'm definitely not endorsing using Google Translate or similar to do your translations - you can pass translators the link to your spreadsheet and have them enter the text based on your original language text.