Class StringTableCollection | Localization | 0.9.0-preview
docs.unity3d.com
    Show / Hide Table of Contents

    Class StringTableCollection

    Inheritance
    Object
    Object
    ScriptableObject
    LocalizationTableCollection
    StringTableCollection
    Inherited Members
    LocalizationTableCollection.Tables
    LocalizationTableCollection.Extensions
    LocalizationTableCollection.TableCollectionName
    LocalizationTableCollection.TableCollectionNameReference
    LocalizationTableCollection.SharedData
    LocalizationTableCollection.Group
    LocalizationTableCollection.OnEnable()
    LocalizationTableCollection.SetTableCollectionName(String, Boolean)
    LocalizationTableCollection.SetPreloadTableFlag(Boolean, Boolean)
    LocalizationTableCollection.IsPreloadTableFlagSet()
    LocalizationTableCollection.AddTable(LocalizationTable, Boolean, Boolean)
    LocalizationTableCollection.AddNewTable(LocaleIdentifier)
    LocalizationTableCollection.AddNewTable(LocaleIdentifier, String)
    LocalizationTableCollection.RemoveTable(LocalizationTable, Boolean, Boolean)
    LocalizationTableCollection.GetTable(LocaleIdentifier)
    LocalizationTableCollection.RefreshAddressables(Boolean)
    LocalizationTableCollection.ContainsTable(LocalizationTable)
    LocalizationTableCollection.ContainsTable(LocaleIdentifier)
    LocalizationTableCollection.AddExtension(CollectionExtension)
    LocalizationTableCollection.RemoveExtension(CollectionExtension)
    LocalizationTableCollection.GetRowEnumerator<TTable, TEntry>(IEnumerable<TTable>)
    LocalizationTableCollection.CanAddTable(LocalizationTable)
    LocalizationTableCollection.AddSharedTableDataToAddressables()
    LocalizationTableCollection.AddTableToAddressables(LocalizationTable, Boolean)
    LocalizationTableCollection.RemoveTableFromAddressables(LocalizationTable, Boolean)
    LocalizationTableCollection.ImportCollectionIntoProject()
    LocalizationTableCollection.RemoveCollectionFromProject()
    LocalizationTableCollection.OnBeforeSerialize()
    LocalizationTableCollection.OnAfterDeserialize()
    LocalizationTableCollection.ToString()
    ScriptableObject.SetDirty()
    ScriptableObject.CreateInstance(String)
    ScriptableObject.CreateInstance(Type)
    ScriptableObject.CreateInstance<T>()
    Object.GetInstanceID()
    Object.GetHashCode()
    Object.Equals(Object)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, Boolean)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, Boolean)
    Object.Destroy(Object, Single)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, Boolean)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.DontDestroyOnLoad(Object)
    Object.DestroyObject(Object, Single)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    Object.FindObjectsOfType<T>()
    Object.FindObjectOfType<T>()
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.name
    Object.hideFlags
    Namespace: UnityEditor.Localization
    Syntax
    public class StringTableCollection : LocalizationTableCollection, ISerializationCallbackReceiver

    Properties

    DefaultAddressablesGroupName

    Declaration
    protected override string DefaultAddressablesGroupName { get; }
    Property Value
    Type Description
    String
    Overrides
    LocalizationTableCollection.DefaultAddressablesGroupName

    DefaultGroupName

    Declaration
    protected override string DefaultGroupName { get; }
    Property Value
    Type Description
    String
    Overrides
    LocalizationTableCollection.DefaultGroupName

    RequiredExtensionAttribute

    Declaration
    protected override Type RequiredExtensionAttribute { get; }
    Property Value
    Type Description
    Type
    Overrides
    LocalizationTableCollection.RequiredExtensionAttribute

    StringTables

    A helper property which is the contents of loaded and cast to StringTable.

    Declaration
    public virtual ReadOnlyCollection<StringTable> StringTables { get; }
    Property Value
    Type Description
    ReadOnlyCollection<StringTable>

    TableType

    Declaration
    protected override Type TableType { get; }
    Property Value
    Type Description
    Type
    Overrides
    LocalizationTableCollection.TableType

    Methods

    GetRowEnumerator()

    Returns an enumerator that can be used to step through each key and its localized values, such as in a foreach loop. Internally SharedTableData and StringTable's are separate assets with their own internal list of values. This means that when iterating through each key a lookup must be made in each table in order to retrieve the localized value, this can become slow when dealing with a large number of tables and entries. GetRowEnumerator improves this process by first sorting the multiple internal lists and then stepping through each conceptual row at a time. It handles missing keys and table entries and provides a more efficient and faster way to iterate through the tables.

    Declaration
    public IEnumerable<LocalizationTableCollection.Row<StringTableEntry>> GetRowEnumerator()
    Returns
    Type Description
    IEnumerable<LocalizationTableCollection.Row<StringTableEntry>>
    Examples

    This example shows how a StringTableCollection could be exported as CSV.

    [MenuItem("CONTEXT/StringTableCollection/Print CSV")]
    public static void CreateCSV(MenuCommand command)
    {
        var collection = command.context as StringTableCollection;
    
        StringBuilder sb = new StringBuilder();
    
        // Header
        sb.Append("Key,");
        foreach (var table in collection.StringTables)
        {
            sb.Append(table.LocaleIdentifier);
            sb.Append(",");
        }
        sb.Append("\n");
    
        // Add each row
        foreach (var row in collection.GetRowEnumerator())
        {
            // Key column
            sb.Append(row.KeyEntry.Key);
            sb.Append(",");
    
            foreach (var tableEntry in row.TableEntries)
            {
                // The table entry will be null if no entry exists for this key
                sb.Append(tableEntry == null ? string.Empty : tableEntry.Value);
                sb.Append(",");
            }
            sb.Append("\n");
        }
    
        // Print the contents. You could save it to a file here.
        Debug.Log(sb.ToString());
    }

    GetRowEnumerator(StringTable[])

    Declaration
    public static IEnumerable<LocalizationTableCollection.Row<StringTableEntry>> GetRowEnumerator(params StringTable[] tables)
    Parameters
    Type Name Description
    StringTable[] tables
    Returns
    Type Description
    IEnumerable<LocalizationTableCollection.Row<StringTableEntry>>
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie 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.
    Generated by DocFX on 18 October 2023