Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
4 captures
13 Jun 22 - 14 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by jake_card · Apr 13 at 03:01 PM · architecturelocalizationtranslation

How should I structure my localization string tables?

I'm about to add localization to my game! This is the first time I've ever done localization, and I'm trying to figure out how to structure my string tables.

I have a Weapon ScriptableObject with hundreds of instances (Club, Pickaxe, Scimitar, etc.) and multiple localized fields (name, description, etc.). There are two options that make sense to me:

A single "Weapons" string table with multiple entries per weapon. This would look like:

 * Weapons_en.asset
   * CLUB.name = "Club"
   * CLUB.description = "A thick, solid lump of wood."
   * PICKAXE.name = "Pickaxe"
   * PICKAXE.description = "Tool of sturdy miners."

One string table per field. This would look like:

 * WeaponNames_en.asset
   * CLUB = "Club"
   * PICKAXE= "Pickaxe"
 * WeaponDescriptions_en.asset
   * CLUB = "A thick, solid lump of wood."
   * PICKAXE = "Tool of sturdy miners."

The single "Weapons" string table structure will result in fewer files (especially since I have a few other ScriptableObjects like Weapon), but each file will be messier. The per-field string table will result in more files, but each file will be cleaner and the structure feels more "atomic" which appeals to my programmer brain.

Which structure would you pick? Or is there a better way of doing this that I'm missing?

Comment
Add comment · Show 2
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image sandbaydev · Apr 14 at 03:52 AM 1
Share

It's only a matter where you want to put that mess :) No getting around it!

To me, your approaches both look good.

CLUB.name and CLUB.description looks very clear to me.

I would perhaps prefer this approach, since I assume "when you are changing information about a weapon, you would want to do it in one place (and in one file)".

I use CSV files. I have google spreadsheet where I put stuff, translate stuff, and then export as CSV. Then I have another script that turns that CSV into something useful. Your assets look nicer than my stuff. :)

Edit: I do not have much experience about doing localization properly in Unity. I know there are some assets and systems for handling all that, but I would not trust my opinion :) It's just an opinion.

avatar image jake_card sandbaydev · Apr 14 at 01:48 PM 0
Share

Thanks, that's what I ultimately went with!

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

137 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Unity localization don't build for android 1 Answer

Language/translation connector to Unity - will it be useful? 0 Answers

What is best practice for translation handling? 0 Answers

How do I localize strings in the editor? 2 Answers

Objects Going to 0, 0, 0 Coordinates 3 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges