What is a string ID?
A string ID is a sequence of letters and/or numbers that identifies a text string within a content database or a development project. Each entry in the database is a single text string, regardless of length — strings may be single words, phrases, sentences, or even entire paragraphs, depending on how you’ve structured your project.
Developers can generate string IDs depending on the technology they use. Additionally, tools such as content management systems will automatically generate unique string IDs for each new string, and they may also allow you to create your own custom string IDs as well. A CMS with a full-featured string ID system is an essential component to any optimized localization workflow.
What are string IDs used for?
In localization and game development, string IDs are important for a variety of reasons. Not only do they help you manage your content, they also play a key role in localization automation.
- Ensuring content uniqueness: When each string has a unique ID, it’s easy to find duplicate strings. At the same time, you know that each string ID represents a unique bit of content. You’re able to use the same string in multiple places, then update all instances from one place.
- Locating strings: Creating your own string ID naming system allows you to format string IDs so they’re easier to find. For example, any string that contains an item name in a video game might begin with “item.” Filter string IDs by item, and you’ll find them all in seconds.
- Tracking strings across languages: Localized strings will all have the same string ID as the source string. This makes it easy to find and compare the string’s content in different languages.
- Placing text correctly: Hard-coding text into a game or app makes it very cumbersome to extract and localize. Using the string IDs enables you to manage strings separately from your code while ensuring they appear in the right places in your app or game. Hard-coded text is one of the most common localization roadblocks for developers.
- Passing strings between platforms: Handling translations in a CAT tool like Memsouce or memoQ? Pushing strings directly to your game made in Unity or Unreal Engine? String IDs keep everything organized when migrating data from one workspace to another, or when implementing strings into your game.
- Analytics and reporting: String IDs make it easy to track content when A/B testing or running other performance analytics.
Common challenges when localizing with string IDs
String IDs can be a big help during the entire localization process, but they can sometimes be a bit tricky to manage. If you’re introducing string IDs into your localization process, you may have run into some — or even all — of the following pitfalls:
- Inconsistent string ID naming: If creating your own custom string IDs, establish a naming system and stick to it. Each string ID should communicate the string’s role in your project — UI button, item or character name, line of dialogue.
- Duplicate string IDs: If your CMS automatically generates string IDs, you can count on each ID being unique. But if you’re creating your own, steer clear of duplicate string IDs. This will introduce errors when your project’s code calls on a string ID to display the required text.
- User-unfriendly string ID names: Keep your string ID naming system simple. Avoid spaces and special characters as people can more easily miss these when typing. If string IDs aren’t exactly the same in your code and your CMS, you’ll have errors.
- Accidental string ID changes: String IDs need to match exactly for consistent results. If an unwanted change is introduced into a string ID, such as via sloppy copy-pasting or a few stray keystrokes, the project code won’t be able to display the required string.
- System-specific string IDs: Automatically-generated string IDs aren’t always compatible with other platforms. For example, string IDs generated by your CAT tool may not be usable by your game engine, or vice versa.
How Gridly makes it easy to localize with string IDs
The right tooling will help you enjoy all the benefits of managing string IDs while sidestepping the many ways things can easily go wrong. Gridly is a content management platform designed to optimize your localization workflow — and that includes a full-featured setup for creating, managing, and using string IDs.
In Gridly, strings are represented by records in a spreadsheet and identified by an Internal ID that cannot be changed. Gridly uses this ID to identify records within the whole system. It is visible only in export files for controlling purposes. Re-importing a record with a different Internal ID value would cause Gridly to ignore this record, unless you select the option to create a new one.
Public string IDs for string management are handled by the Record ID, which must be unique across an entire Grid or in each folder within the Grid, depending on your project settings. These folders are known as Paths — more on this below.
Display the Record ID as a system column in every Grid to manage public string IDs. You can manage whether it can be updated and by whom, refer to it in your API calls or integrations, and update it during import.
Avoid duplicate IDs
There’s no way to create duplicate string IDs. By enforcing Record ID uniqueness, Gridly ensures that each string you add will appear exactly where it should in your project, and nowhere else.
This string ID management applies to all the content sources feeding into Gridly. Whether you’re importing Excel files, integrating with a CAT tool, or connecting via API to your project, you can count on all strings having unique IDs.
Avoid complex string ID names
Gridly prevents users from creating string IDs with special characters that can make it harder to work with those strings later in the pipeline. When naming strings in Gridly, you’re sure to have unique string IDs that are easy to type.
Reuse custom string IDs within your content structure
Since one Grid can easily contain thousands of individual strings, we’ve made it easier to create custom string IDs while maintaining uniqueness. Gridly’s Paths feature organizes your content into an intuitive and filterable folder-based structure that allows for string ID reuse.
Having a duplicate string ID can make sense when using it in different contexts to identify a range of objects. For example, when creating a game, you might have a different main character for every level, and you might want to use the same string ID every time to identify them. Paths make this easy — add a Path to cover the content for every level, then decide whether to maintain string ID uniqueness within each Path, or within your entire Grid.
Within each Path, all strings will need unique IDs. But from one Path to another, you’re free to recycle string IDs — the Path destination itself is what ensures these strings remain unique from one another. It’s just like two files in your computer with the same name, but stored in separate folders. Your computer knows that C:\Documents\ABC isn’t the same file as C:\Documents\Favorites\ABC.
Support string IDs from other systems
When importing strings from external sources, you can easily map the external ID to the Record ID in Gridly and use it across your project. This allows you to search within your Grid for strings by their externally-created IDs as well as ensure smooth importing and exporting between Gridly and other services.
What other types of IDs can you leverage with Gridly?
In addition to identifying strings with Internal IDs and Record IDs, Gridly provides native support for a range of ID features, such as:
- Column ID: Determines various content types you can add to your strings, such as translations in various languages, audio, or images.
- View ID: Identifies a set of records and content types in a Grid. This ID enables you to filter content and manage access to it.
Every object in Gridly is represented by an ID, which means you can work programmatically with them via API — from Grids, users, groups, or projects, all the way to entire companies.
Stay on top of string IDs with Gridly
String IDs are essential to smooth content management, especially when localizing. And Gridly makes it easy to avoid the many complications that can arise from imperfect string ID implementation.
Maintain string ID uniqueness when creating your own string IDs or when importing strings from external sources. Or use Paths to reuse string IDs while still keeping everything organized.
You can standardize your string ID naming system while also ensuring uniqueness across your project. And with external string ID compatibility, you’re able to import and export strings across your content ecosystem while keeping everything organized.
Get the most out of string IDs when you localize with Gridly. Try it today.