Class StringTableCollection
Inheritance
StringTableCollection
Syntax
public class StringTableCollection : LocalizationTableCollection, ISerializationCallbackReceiver
Properties
DefaultAddressablesGroupName
Declaration
protected override string DefaultAddressablesGroupName { get; }
Property Value
Overrides
DefaultGroupName
Declaration
protected override string DefaultGroupName { get; }
Property Value
Overrides
RequiredExtensionAttribute
Declaration
protected override Type RequiredExtensionAttribute { get; }
Property Value
Overrides
StringTables
A helper property which is the contents of loaded and cast to StringTable.
Declaration
public virtual ReadOnlyCollection<StringTable> StringTables { get; }
Property Value
TableType
Declaration
protected override Type TableType { get; }
Property Value
Overrides
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
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
Returns