Unity Localization with Automatic Translation and TextMeshPro

Поделиться
HTML-код
  • Опубликовано: 29 дек 2024

Комментарии • 66

  • @twinjuke
    @twinjuke Год назад +11

    I'm glad you spat it out and it's very welcome if you share your step-by-step approach. Thank you. Great video!

  • @myk3l9675
    @myk3l9675 Год назад +15

    That's awesome! You can convert from English to Australian now!

    • @Imphenzia
      @Imphenzia  Год назад +4

      Haha, yeah, finally! I've not had a clue what has been said here so far :D

  • @gemidytwins
    @gemidytwins Год назад +4

    I'll definitely use this in the current project. Useful stuff here, thx man.

  • @yolokas
    @yolokas Год назад +3

    Perfect tutorial, thanks alot! Covered everything I needed for my game and will save me a ton of time! Didn't know about the option to add fallback fonts, what a useful feature!

  • @youtuber9991
    @youtuber9991 Месяц назад

    Great video, thanks! I really like the suggestion to use the google sheet translations. I'd love to see a short followup video like you mentioned that has your full polished localization workflow with all the steps to get things setup properly and the most efficiently

  • @legendaryswordsman2279
    @legendaryswordsman2279 Год назад +2

    This is just what I needed to get started adding localization to my own game, however I've had difficulty with some parts such as how to get it working with Google Sheets. I see it's been 6 months now since this video has released, any idea when the tutorial is coming?

  • @rebeltwinsgames
    @rebeltwinsgames Год назад

    Why don't you set the Atlas Population Mode to Dynamic in the Font Asset? Doing so has several advantages, such as:
    Flexibility: Allows for any character to be rendered at runtime, including those not initially defined in the font asset.
    Memory Efficiency: Only the characters that are actually used get added to the texture atlas, which can save memory.
    Dynamic Content: Ideal for user-generated text or multi-language support where the set of characters can vary.

  • @TheOneWithComments
    @TheOneWithComments 5 месяцев назад +1

    This is random and I'm sure you've discovered this by now, but the Chinese simplified language uses a 4 letter code: zh-CN

  • @darkmattergamesofficial
    @darkmattergamesofficial 3 месяца назад

    This is an incredibly helpful and easy to follow tutorial. This video is really everything I needed to know to do this! Thanks so much.

  • @Laumania
    @Laumania Год назад +3

    Great video! I'm doing the EXACT same, with Google sheet and translations and all - works really well!
    One thing though, I would not do the translations in all UPPERCASE - much better to have the text is normal casing, then you can set your TextMeshPro Text to force uppercase where you need it.
    I have had to droppe the "Right to Left" languages too...as it's too big a job to get to work.

    • @Imphenzia
      @Imphenzia  Год назад +2

      Cool, we have to find helpful methods as indiedevelopers :) Good point with the casing, I will do it that way too!

  • @StigDesign
    @StigDesign Год назад +1

    Really Nice :D btw i have wish listed the game :D
    i still listen to all your songs while i work on my game/games :D
    if i didnt have dyslexia i could help with Norwegian hehe :D

  • @StigDesign
    @StigDesign Год назад +1

    am really tempting to try chat-gpt my self and see if it can help me with coding tasks i struggle withand mabe getting better resutl than my code hehe :D btw how did you get voice? Text to speech? :D Looking forward to all your videos :)

  • @milanstevic8424
    @milanstevic8424 Год назад +1

    4:45 I am yet to see an acrylic language group :D
    It's see-ree-lick, it was named after Cyril, a Greek Orthodox Christian philosopher who devised the Glagolitic alphabet along with his religious co-patron Methodius. Allegedly the Cyrillic script was a direct descendant of the Glagolitic alphabet, made in the Bulgarian Empire by the exiled disciples of Cyril and Methodius some time in the late IX century. Not really important or even warranted but there you go.

  • @_Garm_
    @_Garm_ Год назад +4

    Have you tried ChatGTP4 its quite good at translating :)

    • @Imphenzia
      @Imphenzia  Год назад +3

      Not tried that actually, thanks. I like the cell approach in this case to automate - I know it won't be perfect, but a step in the right direction from no localization at all.

    • @gemidytwins
      @gemidytwins Год назад +4

      @@Imphenzia You can ask ChatGPT to put its thoughts into a table. ;)

    • @ryxrr7207
      @ryxrr7207 Год назад

      @@gemidytwins Ah, the good "give me an example of x" approach.

    • @gemidytwins
      @gemidytwins Год назад +3

      @@ryxrr7207 I regularly ask it to compare tools / services / whatever in a table and to summarize it. Not always accurate but gives a rather good intention as a result.

  • @plokkum
    @plokkum Год назад +2

    I’m just here to tell you the Dutch word for Play is “Spelen” and quit is “Stoppen” (more like Stop playing) or “Afsluiten” (close game).
    Toneelstuk refers to a theatrical play, while Ontslag Nemen means quitting your job.

    • @Imphenzia
      @Imphenzia  Год назад +1

      Thanks - I think many of the translated will be wrong to varying degrees so they would need to be revised manually at some point

  • @InstrumentalMusic-yt3ex
    @InstrumentalMusic-yt3ex Год назад +1

    Is there a way to make text have glowing effects, using Unity rich text only?

    • @Imphenzia
      @Imphenzia  Год назад

      Good question. I was very surprised to hear that Unity Shader Graph does not support making UI shaders. It used to work but Unity claims it is by design and that it worked by a coincidence in the past. I will need to see what the options are.

    • @InstrumentalMusic-yt3ex
      @InstrumentalMusic-yt3ex Год назад

      @@Imphenzia thanks

  • @LeonardoLoor
    @LeonardoLoor Год назад +1

    El tutorial que no sabia que necesitaba jeje muchas gracias por compartir tus conocimientos.

  • @fuseinabowl
    @fuseinabowl Год назад +1

    Great video! Have you done any CI before? It might help with the custom characters in the Asian languages. I've set it up for a few other things, it's a pain but once it's done you'd never forget to update them again. It's interesting learning about localisation, thanks!

    • @Imphenzia
      @Imphenzia  Год назад +1

      I'v enot tried that (the only CI meaning I know is Continous Integration - this is something else?? =) - this is new to me and I also incorrectly called asian languages symbolic - so there is a lot for me to learn here :)

  • @mehmedcavas3069
    @mehmedcavas3069 Год назад +1

    could u also make a blender than to unity tutorial about how to handle cloth items like a head or shoe where u can choose between 30 different shoes at run time. how do they change the items in a skinned mesh with out adding all items inside the object and disable them?

    • @Imphenzia
      @Imphenzia  Год назад +1

      This is a good idea, will try to cover that. I've done it in the past for low poly characters (my cowboys) with clothing and accessories but I need to make a proper tutorial instead. Oh, now I am reading the last part - without adding all items and disabling them :) I think that is doable too by instantiating and destroying the game obejects - they still have to be weightpainted to the skinned mesh to work properly.

  • @DineshR-c8x
    @DineshR-c8x 10 месяцев назад

    Hi, how are you using that excel sheet as your table inside unity can you explain that?

  • @MaxLohMusic
    @MaxLohMusic 2 месяца назад

    Why use Google Translate if Gemini or 4o can do everything translate could do but better (including formatting the resulting csv or json)?

  • @brightFlaskGames
    @brightFlaskGames Год назад

    Straight to the point. Super helpful!

  • @TheArghnono
    @TheArghnono Год назад +4

    Korean and Thai are alphabetic scripts, not symbolic. Just FYI :) A very useful video

    • @Imphenzia
      @Imphenzia  Год назад +4

      I had a bad feeling when I was saying symbolic =) Doh, thanks for pointing that out!

  • @theoilygoosestudio2109
    @theoilygoosestudio2109 Месяц назад

    This was a great vid - I tried getting the localization package it was looking good but got a bunch of errors - I think I'm stuck on my current project (old bespoke versions of various packages) so I ended up writing my own - but the spreadsheet technology is fantastic and the fallback fonts I didn't know. Thanks!

  • @AndrzejGieraltCreative
    @AndrzejGieraltCreative Год назад

    Awesome. I'm trying to get this localization stuff working with my current project and TMPro... would definitely appreciate a tutorial :)

  • @ahmedamir7
    @ahmedamir7 Год назад

    Thanks for the great vid.
    Can you make one that covers dynamic text? (i.e: text that changes via code)

  • @goyohiga
    @goyohiga Год назад

    Hello, so kind of you to share this, came very handly.
    I wanted to give you some constructive criticism about your game. From your intro video, it looks technically and visually very well done. I'm afraid the gameplay feel and some movements are not on the same level. I suggest you take some advice from game designers, let them play the game and implement their feedback. After that, do a closed beta to do the same with your target audience.
    I hope the game releases successfuly and wish you the best.

  • @ronweasley7463
    @ronweasley7463 Год назад +1

    3:14 CZ translate "Hrát si" for "Play" sounds more like "jacking off" than "play". If you want some correction love to help.

    • @Imphenzia
      @Imphenzia  Год назад +2

      Haha, yeah, I can imagine some translations just get totally wrong :) Thanks for the offer - will come back and look in this comment section when time comes because any "proper" translation is very welcome!

  • @f11bot
    @f11bot 3 месяца назад

    I'm thankful that I've stuck with the default text component, it just works!
    TMP could have this process a lot more optimized, like automatically detecting character sets of fonts or packing all of them into a single asset, this is just a mess :(

    • @Imphenzia
      @Imphenzia  3 месяца назад +1

      Yeah I totally agree! We use legacy text in Line War and it just works.

  • @Skyvastern
    @Skyvastern Год назад +1

    Last time I checked in Unity, they didn't properly rendered texts of Hindi and other Indian, and some South East Asian languages. For example, try putting this text in Unity -
    नमस्ते (in Notepad, Chrome, Godot, etc.)
    नमसते (in Unity, there will also be a line below third letter)
    With proper font, it shows the letters but the spelling is all incorrect. Otherwise for quick testing you can try putting it anywhere else in the editor (like search fields, etc.) and it will show it wrong again. And this is because, Unity doesn't fully supports GPOS and GSUB to render fonts. And this is a huge issue for me, because if you use the same text on even Notepad it will render it correctly. But Unity isn't able to do it.
    PS: In Godot, it works all good. Same with Notepad, Chrome, and other Windows applications.

    • @Imphenzia
      @Imphenzia  Год назад +1

      I can imagine there is a whole world of problems with multi-language support, especially in Unity. Without knowing the languages too - it's difficult - or even impossible - to spot what's wrong so help would be needed at some point.

    • @Skyvastern
      @Skyvastern Год назад +1

      @@Imphenzia Yes right. I hope Unity fixes these issues with their font rendering soon.

  • @anonymoussloth6687
    @anonymoussloth6687 Год назад

    Is there a way to translate automatically to other languages?

    • @youtuber9991
      @youtuber9991 Месяц назад

      Google translation onto tables seems like the best option

  • @dueddel
    @dueddel Год назад

    Fun fact for Godot: You don't even have to load any package for being able to make use of the translation sytem. It's built in. :D
    Oh, and I just see the imperfection of the translations: For "Controls" in a menu you wouldn't use "Kontrollen" in German, you'd rather use "Steuerung" (yes, it has some relation to the word "steering", the other one has some other meaning and is used in another context, but not for a game character's control).
    That's a pretty good example for using automatic translators are basically a cool thing, because they in general do a lot very good already, but mess up with single words and phrases in a few special cases.

    • @Imphenzia
      @Imphenzia  Год назад

      Nice to have it built in. I am actually surprised that the font system in Unity does not allow all language - I think the old legacy way does support it but then you get blurry fonts instead because the system is not so good (which is why TextMeshPro became a thing to begin with). Feels like a lot of work - nearly like workarounds - to get everything set up. Hopefully it'll get built in at some point with a standard global font. Noto is free, so they should really support that out of the box if that was possible :)

  • @haim96
    @haim96 Год назад +1

    let me know if you need help with Hebrew... :)

    • @Imphenzia
      @Imphenzia  Год назад +1

      Thank you so much, I will come back to the comments when it's time to translate to see who is interested to help out.

  • @trmechanic
    @trmechanic Год назад +1

    Hi, please don't add music to background of your video, thanks.

    • @Imphenzia
      @Imphenzia  Год назад +3

      It's to cover my annoying filler sounds and lipsmacks to some extent :D

    • @trmechanic
      @trmechanic Год назад +1

      @@Imphenzia I understand but it becomes distracting after some time and makes me unable to focus what your are saying. In any case thanks again for the tutorials.

  • @MisterM18
    @MisterM18 Год назад +2

    First!

  • @IlPandax
    @IlPandax Год назад +1

    Probably Salt & Sanctuary did something like that and tried to transalte the game in italian. It was hilarious. Don't do that. If you need help with italian translations, please ask me or other italians. We are way better than Google Translate.

  • @peterpppp1111
    @peterpppp1111 8 месяцев назад

    13:00

  • @ekzac
    @ekzac Год назад +1

    Oh, so it is easy to translate with Google Sheets. That explains a lot why many games are very poorly translated. I usually discard games with poor translations and no warning about automatic translations, chances are high they are not fun and made just to earn easy money.

  • @FilmMichelT
    @FilmMichelT Год назад +1

    I disappear your channel ok friend you

  • @71Arlekino
    @71Arlekino 7 месяцев назад

    You overpowered it, you showed it, but you didn't tell how. Meh

  • @hermandarr6274
    @hermandarr6274 Год назад

    get back on blender dude

    • @Imphenzia
      @Imphenzia  Год назад +1

      I am just helping out all the backlog of "get back on unity dude" comments first - Blender will come too :)