docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Method Export

    Export(TextWriter, StringTableCollection, ITaskReporter)

    Exports all StringTable in collection using default column mappings generated through CreateDefaultMapping(bool).

    Declaration
    public static void Export(TextWriter writer, StringTableCollection collection, ITaskReporter reporter = null)
    Parameters
    Type Name Description
    TextWriter writer

    The target that will be populated with CSV data.

    StringTableCollection collection

    The collection to export to CSV.

    ITaskReporter reporter

    An optional reporter that can be used to provide feedback during export.

    Examples

    This example shows how to export a StringTableCollection to a CSV file.

    var collection = LocalizationEditorSettings.GetStringTableCollection("My Strings");
    using (var stream = new StreamWriter("My Strings CSV.csv", false, new UTF8Encoding(false)))
    {
        Csv.Export(stream, collection);
    }

    Export(TextWriter, StringTableCollection, IList<CsvColumns>, ITaskReporter)

    Exports a StringTableCollection using columnMappings to control the contents of each exported column. CreateDefaultMapping(bool).

    Declaration
    public static void Export(TextWriter writer, StringTableCollection collection, IList<CsvColumns> columnMappings, ITaskReporter reporter = null)
    Parameters
    Type Name Description
    TextWriter writer

    The target that will be populated with CSV data.

    StringTableCollection collection

    The collection to export to CSV.

    IList<CsvColumns> columnMappings

    Controls what will be exported. The KeyIdColumns can be used to export the Key, Id and shared comments whilst LocaleColumns can be used to export the values and comments for a specific Locale

    ITaskReporter reporter

    An optional reporter that can be used to provide feedback during export.

    Examples

    This example shows how to configure the data you wish to export in CSV through column mappings.

    var collection = LocalizationEditorSettings.GetStringTableCollection("My Strings");
    
    // Use custom column mappings to control what data gets exported
    var columnMappings = new List<CsvColumns>();
    
    // We must have 1 KeyIdColumns so that we can map the table entries correctly
    columnMappings.Add(new KeyIdColumns
    {
        IncludeId = true, // Include the Id column field.
        IncludeSharedComments = true, // Include Shared comments.
    });
    
    // Export English with no comments
    columnMappings.Add(new LocaleColumns
    {
        LocaleIdentifier = "en",
        IncludeComments = false
    });
    
    // Export Japanese with comments
    columnMappings.Add(new LocaleColumns
    {
        LocaleIdentifier = SystemLanguage.Japanese,
        IncludeComments = true
    });
    
    // Now export
    using (var stream = new StreamWriter("My Strings CSV.csv", false, new UTF8Encoding(false)))
    {
        Csv.Export(stream, collection, columnMappings);
    }

    This example shows how to export every StringTableCollection that contains a CsvExtension.

    [MenuItem("Localization/CSV/Export All CSV Files(With Extensions)")]
    public static void ExportAllCsvExtensions()
    {
        // Get every String Table Collection
        var stringTableCollections = LocalizationEditorSettings.GetStringTableCollections();
    
        foreach (var collection in stringTableCollections)
        {
            // Its possible a String Table Collection may have more than one extension.
            foreach (var extension in collection.Extensions)
            {
                if (extension is CsvExtension csvExtension)
                {
                    if (!string.IsNullOrEmpty(csvExtension.File))
                    {
                        using (var stream = new StreamWriter(csvExtension.File, false, new UTF8Encoding(false)))
                        {
                            Csv.Export(stream, collection, csvExtension.Columns);
                        }
                    }
                }
            }
        }
    }

    This example shows how to export all StringTableCollection to multiple CSV files.

    [MenuItem("Localization/CSV/Export All CSV Files")]
    public static void ExportAllCsv()
    {
        // Get every String Table Collection
        var stringTableCollections = LocalizationEditorSettings.GetStringTableCollections();
    
        var path = EditorUtility.SaveFolderPanel("Export All String Table Collections - CSV", "", "");
        if (string.IsNullOrEmpty(path))
            return;
    
        foreach (var collection in stringTableCollections)
        {
            var file = Path.Combine(path, collection.TableCollectionName + ".csv");
            using (var stream = new StreamWriter(file, false, new UTF8Encoding(false)))
            {
                Csv.Export(stream, collection);
            }
        }
    }
    See Also
    CreateDefaultMapping(bool)
    In This Article
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)