2025-05-01 01:48:08 -07:00

84 KiB

Changelog

All notable changes to this package will be documented in this file.

[1.5.2] - 2024-05-14

Fixed

  • Exporting to an existing CSV file will now replace it instead of over-writing the contents. (LOC-1105). (LOC-1105)
  • Fixed an issue when comparing locales in the player. We now do a check against the locale contents as well as the reference. (LOC-1098)
  • Fixed an issue where a table handle could become invalid and still be used. We now reload when this occurs. (LOC-1098)
  • Removed initialization during preloaded assets phase. This was causing freezing issues when trying to load bundles before any scenes had been loaded. (ADDR-3664)
  • Removed the ability to add a folder to an asset table. This is unsupported. (LOC-1107)
  • Resolved issues with renaming entries when pulling data from a Google Sheet, particularly in cases where the ID between entries had been swapped. (LOC-909)

[1.5.1] - 2024-03-19

Changed

  • Release version of 1.5.0. Contains all preview changes.

[1.5.0-pre.7] - 2024-03-13

Added

  • Added AbortFormattingException, this can be used to stop processing of the current format item in a Smart String when thrown from a custom ISource. (LOC-1087)

Fixed

  • Exported XLIFF 1.2 documents will now include the required attribute datatype on the file elements. (LOC-1091)
  • Fixed errors in smart strings that contain nested localized strings with additional selectors/formatters when the string table had not yet loaded. (LOC-1087)
  • Fixed the GameObjectLocalizer not updating if a persistent variable is changed. (LOC-964)
  • Improved error handling when trying to parse an invalid localized property variant value. (LOC-1081)
  • Improved performance when removing an item from the Localization Tables Window. (LOC-1042)

[1.5.0-pre.6] - 2024-01-31

Changed

  • CSV files will now be exported in UTF8 without the unesessesary byte order mark (BOM).
  • Improved string and asset picker in 2022.2+. The search provider will now start in visual query builder mode and the Inspector panel is now disabled, it was not used.
  • Removed the Locale Source option from the Locale Generator window.
  • Renamed Locale Generator to Add Locale in Localization Settings.

Fixed

  • A locale change event is no longer sent in playmode when a change is detected to the localization tables. This is now only done in edit mode when previewing a locale via the localization scene controls. (LOC-1025)
  • Fixed incorrect calculation of string table row height in the Table window. (LOC-1058)
  • Improved handling of dependency operations that may be released after execution. The localization initialization operation will no longer fail during WaitForCompletion when the addressable initialization operation is automatically released. (LOC-1039)
  • Improved null handling of TrackedProperties values when something went wrong during serialization.
  • We now fail the initialization operation if one of the sub-operations fails. (LOC-1038)

[1.5.0-pre.5] - 2023-12-04

Fixed

  • Fixed an issue with UXML attribute converters not being included in 2023.3.

[1.5.0-pre.4] - 2023-12-01

Changed

  • Removed use of new contextual menu API call ClearHeaderItems. This will be removed in 2023.3.

[1.5.0-pre.3] - 2023-11-30

Fixed

  • Fixed an issue with version defines that was failing to detect 2023.3.

[1.5.0-pre.2] - 2023-11-27

Fixed

  • Added back in removed API for ProjectLocalePopupField and LocalizationTablesWindow to avoid making breaking changes to API.

[1.5.0-pre.1] - 2023-11-21

Added

  • Added AsynchronousBehavior to string and asset database. These can be used to set a global WaitForCompletion flag instead of having to set it on every LocalizedAsset and LocalizedString.
  • Added LocalizationImportMenuAttribute, LocalizationExportMenuAttribute and LocalizationEntryMenuAttribute. These can be used to add custom menu items to the Localization Tables window.
  • Added support for UI Toolkit data bindings. Localized strings and assets can now be added as data bindings to UI Toolkit elements. See docs for more details.

Changed

  • Improved performance of localization object pools and releasing.
  • The Localization Tables window has had several UX improvements made. (LOC-214)

Deprecated

  • ProjectLocalePopupField and XliffVersionPopup UxmlFactory and UxmlTraits are now obsolete when using Unity 2023.2 and above.

Fixed

  • Added IDisposable support to property drawers. This will cleanup resources and reduce the subscribers to editor events helping performance when entering playmode. Note, this also requires the Editor changes that add IDisposable support to property drawers.
  • Fixed GetAllTables WaitForCompletion never finishing when run outside of playmode. (LOC-1011)
  • Fixed LocalizationSettings not initializing in the player until the first request was made. (LOC-975)
  • Fixed NullReferenceException when calling GetAllTables outside of playmode and no editor locale was selected. (LOC-1011)
  • Fixed exception being thrown from WaitForCurrentOperationAsyncOperationBase when the dependency became invalid after WaitForCompletion was called on it. We now fail the operation instead. (LOC-992)
  • Fixed the TableReference field losing its value when OnAfterDeserialize was called multiple times. Fixed the layout of the localized reference field dropdown and buttons. (LOC-985)
  • Initialization operation will now wait for any asynchronous bundle unloading to complete before beginning initialization. This fixes the error "Table does not have a SharedTableData". (LOC-1021)

[1.4.5] - 2023-09-20

Fixed

  • Added handling of null StringReference/AssetReference reference to LocalizedAssetBehaviour and LocalizedStringEvent. (LOC-945)
  • Fixed "Objects are trying to be loaded during a domain backup" error occurring on empty TableReferences during serialization. (LOC-969)
  • Fixed StringTableEntry.IsSmart from not detecting if the entry was marked smart when its local SmartFormatTag metadata was missing but it was still registered in the SmartFormatTag. (LOC-966)
  • Fixed an issue that would cause sprites/textures to flicker when the locale was changed. This was due to us unloading the previous locale's assets before the new ones were available. The LocalizedAsset now holds onto the asset handle until its new one has finished loading. (LOC-976)
  • Fixed compilation errors when using Addressables 2.0.0.
  • Fixed Create Table window controls being hidden when a large number of locales were in the project,. (LOC-913)

[1.4.4] - 2023-06-15

Changed

  • Added support for TMP now being part of the UGUI package in 2023.2.
  • Updated obsolete Unity Search API QueryEngine.Parse to now use QueryEngine.ParseQuery on Unity 2022.2+.
  • Updated to Addressables 1.21.8. (LOC-704)
  • Updated to use the Editor XCODE public API when using 2023.1 and above.

Fixed

  • Added multi-line edit support to name field in LocalizedString and LocalizedAsset property drawers. (LOC-875)
  • Fixed an error in the device simulator when the project contained no locales. (LOC-888)
  • Fixed device simulator Localization menu not showing in 2021.1 and above.
  • Fixed preload locale operation not being released when it was completed instantly.
  • Fixed tables returned by GetAllTables sometimes being released and destroyed. (LOC-882)
  • Fixed the "Expected to have a current operation to wait on" error when initializing localization before Addressables initialization during a WaitForCompletion call. (LOC-929)
  • Fixed the Google Sheet Service Provider - Application Name losing its value after asset creation. (LOC-864)
  • Improved WaitForCompletion code so that it can handle failed dependencies and won't get stuck in an infinite loop. (LOC-929)
  • Reenabled code that ensures localization processes assets after Addressables. This was disabled in 1.3.1. (LOC-704)
  • Removing an entry from a table will now update the shared metadata. (LOC-870)

[1.4.3] - 2023-01-13

Fixed

  • An empty search string will now show all entries in the LocalizedAsset and LocalizedString popup instead of nothing. (LOC-785)
  • Default IOS localized fields are no longer set to empty strings. We now use the project locale values as the defaults. (LOC-804)
  • Fixed AmbiguousMatchException when building to IOS. (LOC-855)
  • Fixed Tag & Shared metadata being duplicated on an entry when they were added multiple times. For example, setting StringTableEntry.IsSmart to true when it was already true would cause 2 SmartFormatTag to be added to the metadata. (LOC-779)
  • Fixed the Table Editor search not checking the first 2 string table columns. (LOC-820)
  • The Active Editor Locale will now persist between Editor sessions. (LOC-787)
  • The Table Editor will no longer draw alternating background bars in the remaining space. (LOC-842)

[1.4.2] - 2022-09-27

Added

  • Added support for tracking a MeshFilter when using Localized Property Variants. (LOC-719)
  • Added Preload Behavior to Localization Settings. This allows further control over which assets to preload, such as loading fallback assets as well as the selected locale. (LOC-762)
  • Added ITableProvider and ITablePostProcessor. These let you provide tables from custom localizations and to apply changes to a table when it first loads. (LOC-673)
  • Added LoadAssetAsync<TObject>() to LocalizedAssetBase. This helps to filter sub-assets when trying to load them and they share a common type among other sub-assets with the same name. (LOC-793)
  • Added LocalizationEditorEvents.ExtensionAddedToCollection & LocalizationEditorEvents.ExtensionRemovedFromCollection, which you can use to react to collection extension additions & removals. Added CollectionExtension.Destroy() which you can use to perform cleanup when a collection extension is removed. (LOC-685)
  • Added LocalizedMesh class to support localizing mesh assets.
  • Added a step to the Asset Table Addressables Analyzer that checks if sub-assets are referenced by name and offers to upgrade them. (LOC-793)
  • Added support for IConvertible to Plural and Conditional Smart String formatters. This uses the ToDecimal method when a numeric value is required for evaluating the object. (LOC-778)
  • Added support for SystemLanguage.Hindi in Unity 2022.2 and above. (LOC-672)
  • Added support for drawing the enum values in the GameObjectLocalizer editor when tracking an enum property. (LOC-684)
  • Added support for referencing sub-assets. Previously we would only address the main asset and extract the sub-asset by matching the type. This was unpredictable when the main asset was the same type or contained multiple sub-assets with the same type. We now address the sub-asset by name so that we can ensure we get it correctly regardless of the type or number of other sub-assets. (LOC-793)
  • Added the 'NoTranslationFound' event to allow users to register to the callback whenever an entry doesn't have a translation. (LOC-688)

Changed

  • An exception is now thrown when attempting to add a built-in resource to an Asset Table when using AssetTableCollection.AddAssetToTable. Addressables doesn't currently support built-in resources. Create a local copy if you need to use a built-in resource.
  • Updated Google Sheets API to 1.57.0.2720 and Newtonsoft.Json API to 13.0.1. (LOC-250)
  • Updated to Addressables 1.20.5.
  • When possible, the CSV Extension now stores the file path as relative to the project when using the Save... and Open... commands.

Deprecated

  • Deprecated API LocalizedString.CurrentLoadingOperation and LocalizedAsset.CurrentLoadingOperation now produce errors when used.

Fixed

  • Fixed Google Sheets CreateMappingsFromColumnNames not using Locale.LocaleName when considering possible Locale names.
  • Fixed InvalidOperationException: Stack empty when using GoogleSheets extension on Linux. (LOC-698)
  • Fixed ListFormatter missing the spacer when extracting literal characters from a Smart String.
  • Fixed NullReferenceException during Edit mode when calling GetLocalizedString on a smart but empty StringTableEntry. (LOC-754)
  • Fixed errors when exiting playmode with Enter playmode support enabled and use built addressables playmode. (LOC-722)
  • Fixed file path not being saved when using CSV Extension Save... and Open... commands. (LOC-751)
  • Fixed freeze when an invalid Smart String was called with WaitForCompletion and throw exception was enabled in the settings. (LOC-768)
  • Fixed LocalizedString preview not working when the instance was nested inside of a serialized class. (LOC-812)
  • Fixed newly created collections having preload enabled by default.
  • Improved Addressables operations management. Fixed several issues that would cause an addressable operation to be leaked and the asset not released. (LOC-794)
  • Improved the Missing Tables list in the Table Collection Editor so it doesn't return false positives, which causes the "Create" button to become disabled. (LOC-800)

[1.3.2] - 2022-06-01

Changed

  • Changed CSV Extension "Open..." button so it performs a full import instead of a merge. (LOC-540)
  • Disabled fix for "New localization assets created automatically and/or old assets are modified when loading project without Library folder (LOC-400)" on Unity 2019.4 to 2021.3. This is due to a bug in Addressables (ADDR-2521). This fix will be re-enabled in the future. (LOC-704)
  • Updated dependency com.unity.nuget.newtonsoft-json to 2.0.2.

Fixed

  • Fixed NullReferenceException when creating a new table that takes name from renamed table. (LOC-550)
  • Fixed GameObjectLocalizer failing to apply local asset references in Unity versions before 2022.2. (LOC-714)
  • Fixed LocalizedStringTable and LocalizedAssetTable property drawer not setting GUI.changed when the reference was changed. (LOC-725)
  • Fixed Asset Tables being destroyed during preloading. (LOC-727)
  • Improved FormatException error message when String.Format throws during GetLocalizedString.
  • String Table entries will no longer try to use String.Format when using GetLocalizedString with non-null but empty arguments. (LOC-689)

[1.3.1] - 2022-04-14

Added

  • Added Localize Property context menu to properties in the Inspector. This can be used as an alternative to the Track Changes option to manually add the property as a Localized Property Variant. The menu item Remove Localized Property removes properties. The menu item Remove Localized Property Variant removes a specific selected Locale's override. (LOC-358)
  • Added RemoveTrackedProperty to TrackedObject.
  • Added support to handle a locale that has multiple fallbacks defined. (LOC-607)

Changed

  • Localized string and asset variants that are empty (no table or entry set) will no longer produce errors and will be ignored.
  • Replaced the Locale Code field in the Pseudo localization editor with a Source Locale field that only lets you select a locale in the project. (LOC-611)
  • Updated to Addressables 1.19.19.

Deprecated

  • Replaced Locale.GetFallback with Locale.GetFallbacks in order to support multiple fallbacks per locale. (LOC-607)

Fixed

  • Fixed LocalesProvider.AddLocale ignoring the locale being added when a potential fallback was already in the provider.
  • Fixed LocalizedDatabase.GetTableAsync creating a new operation each time when requesting a table that had not yet loaded. This would consume more memory than was necessary.
  • Fixed LocalizedString and LocalizedAsset not showing prefab overrides in the Inspector. (LOC-592)
  • Fixed NullReferenceException being thrown when applying property variants and the project locale was null. (LOC-601)
  • Fixed bug where calling RefreshString, when the loading operation had not completed, would cause RefreshString to execute twice.
  • Fixed build failures on Android Platform when System Language is used as Locale Source for Chinese (Simplified) & Chinese (Traditional). (LOC-681)
  • Fixed console errors and warnings when making changes in the Inspector and the project was not configured for localization.
  • Fixed duplicating of Addressable assets when importing a project with no library folder. (LOC-400)
  • Fixed errors when trying to create a table in the Packages directory. (LOC-614)
  • Fixed fallback not working when the fallback had a missing table.
  • Fixed operations being released immediately in edit mode, this could cause data to be lost too soon. (LOC-667)
  • Fixed operations sometimes being released too soon, which could cause them to be released before the yield on the operation had executed.
  • Fixed Psuedo locale editor using the incorrect field for the locale name.
  • Fixed Unity freezing when calling WaitForCompletion on a string operation that threw an exception during formatting. (LOC-630)
  • Improved automatic releasing of operations so that we no longer use CompletedTypeless, which generates GC.
  • Improved memory management to reduce the amount of garbage being generated by internal operations and adding/removing events. (LOC-571)
  • Reduced allocations when applying Localized Property variants and the string/asset operation was still loading. (LOC-480)

[1.2.1] - 2022-02-14

Added

  • Added Import/CSV(Merge) to only update the entries in the CSV. (LOC-540)
  • Added Page Controls to the Table editor. This limits the number of items visible at one time and helps to improve the performance when dealing with large tables. (LOC-474)
  • Added GetRowEnumeratorUnsorted to LocalizationTableCollection.cs, this allows for stepping through the rows in the same order as the SharedTableData.
  • Added SetTable and SetEntry methods to LocalizedStringEvents. These can be used with UnityEvents to update localized strings. (LOC-377)

Changed

  • Import/CSV will now replace the contents and remove missing entries. (LOC-540)
  • CSV export now exports the rows in the same order as the SharedTableData. (LOC-588)
  • Improved some menu items UX by renaming to include ellipses ("...") when the action requires additional input.
  • Updated to Addressables 1.19.17.

Fixed

  • Fix null reference exceptions been thrown when Custom Locale does not use Custom Formatter. (LOC-526)
  • Fixed GameObjectLocalizer not updating when reenabled. (LOC-568)
  • Fixed LocalesProvider throwing exception when adding a pseudo-locale with the same name as another. (LOC-548)
  • Fixed LocalizedStringDatabase.GetLocalizedStringAsync wrapping IList arguments with params object[]. (LOC-575)
  • Fixed AvailableLocales locales list returns an empty list if InitializationOperation is not done. (LOC-506)
  • Fixed crash with YGLayoutNodeInternal when opening the docked Project Settings window after deleting the Localization Settings file. (1371884)
  • Fixed InvalidOperationException when setting Asset Table Entry to None when it is already empty. (LOC-520)
  • Fixed issue where GetLocale returns a null reference instead of a fallback Locale when providing CultureInfo. (LOC-462)
  • Fixed Legacy GroupResolver generating a FormattingException when resolving an asset's addressable group name. The Smart String argument {Identifier-Code} should be {Identifier.Code}. This will need to be fixed manually to existing legacy group resolvers, alternatively create a new legacy group resolver asset. (LOC-544)
  • Fixed preloading error "A table with the same key already exists. " caused when loading a table before preloading had completed. (LOC-581)
  • Fixed shared comments not being updated correctly when imported from CSV. (LOC-577)
  • Fixed the Locale Game View Menu from blocking the top part of the GameVIew. (LOC-552)
  • Fixed the player freeze or player crash caused by WaitForCompletion on PreloadDatabaseOperation. when doing an Il2cpp Standalone build. (LOC-527)

[1.1.1] - 2022-01-13

Fixed

  • Rerelease of 1.1.0 to fix an issue with package promotions.

[1.1.0] - 2022-01-10

Added

  • Added a 'ClearAllEntries' API to StringTableCollection and AssetTableCollection for clearing all the Entries and assets when needed. (LOC-420)
  • Added a new Localized Asset and Localized String picker which uses Unity Search. This has improved performance and supports multiple localization filters and custom table view columns. This is also available in the Unity Search window but does not currently do anything when an entry is selected. The legacy picker can be reenabled through the preferences window. (LOC-267)
  • Added additional Persistent Variable types for: byte, sbyte, short, ushort, long, ulong, uint and double. (LOC-431)
  • Added support for localizing the User Tracking Description (NSUserTrackingUsageDescription) on iOS. (LOC-403)

Changed

  • Added a warning when building to iOS/Android and the App Info has not been configured. App Info must be present in order to correctly configure the apps language settings.
  • Updated to Addressables 1.19.15.

Deprecated

  • LocalizationEditorSettings.FindSimilarKey is now deprecated and will be removed in the future. Unity Search now supports searching. See TableEntrySearchData for further details.

Fixed

  • Added ScrollView support to Table metadata editor. (LOC-500)
  • Entries with duplicate names will now be ignored when pulling from Google Sheets. A message will be added to the report to notify you when this happens. (LOC-464)
  • Fixed NullReferenceException when showing property drawer for PlatForm Override Type Entry and no entry was selected. (LOC-502)
  • Fixed bug where adding Pseudo Locale to the project were not been shown in Active Locale popup in Localization Scene Controls window. (LOC-439)
  • Fixed bug where LocaleIdentifier code comparisons were case-sensitive. (LOC-463)
  • Fixed CSV KeyIdColumns not using the custom Key, Id, and Shared Comments field names when exporting to CSV. (LOC-481)
  • Fixed detection of Android system language. (LOC-478)
  • Fixed possible OverflowException occurring when using multiple Preserve Tags methods in a pseudo-locale. (LOC-517)
  • Fixed localized property variant assets not being applied in 2022.2 standalone player builds due to changes from 1342327.
  • iOS Xcode project will now be configured to use the Project Locale as the development language. This should cause this language to become the default language used when the app does not support the system language. (LOC-507)
  • The SystemLocaleSelector will now detect the preferred language on iOS. (LOC-452)
  • When building to Android the App Name localization will now always be included and not only when an Icon was also configured.

[1.0.5] - 2021-10-27

Fixed

  • Fixed bug where New Localization Tables are not preloaded when Preload All Tables is enabled. (LOC-423)
  • Fixed TreeView compilation issue on 2022.1.

[1.0.4] - 2021-10-19

Fixed

  • Added new XLIFF import option "Import / XLIFF into Collection". (LOC-376)
  • Fixed FileNotFoundException being thrown when using the CSV extension Export button with a new file. (LOC-429)
  • Fixed MissingReferenceException occurring due to ReleaseNextFrame when exiting play mode.
  • Fixed NullReferenceException when pulling a Google sheet with the Remove Missing Pulled Keys option enabled and the missing key did not contain an entry in the first table. (LOC-434)
  • Fixed issue where Localized Property Variants reset the world space UI's z position when Active Locale is changed. (LOC-399)
  • Fixed issue where 'RaiseTableEntryModified' event not been invoked when there is a change in EntryKey. (LOC-397)
  • Fixed nested LocalizedStrings not trigging a ValueChanged event when their local variables were changed. (LOC-418)
  • Modified assets will now be written to disk after importing CSV, XLIFF or Google Sheets. (LOC-341)
  • Pressing Escape key will now close the popup window for selecting a table or table entry. (LOC-416)

[1.0.3] - 2021-09-30

Fixed

  • Removed duplicate sample code StringTableCollectionSamples. This was causing some internal test failures that was preventing us from adding the package to 2021.2.

[1.0.2] - 2021-09-28

Fixed

  • Fixed Element 'Style' has no registered factory method error in 2019.4. (LOC-318)
  • Fixed AppIcon not resizing according to the DPI input for the selected Android Icon Configurations when building for Android. (LOC-371)
  • Fixed changes to existing Property Variants being recorded for a Locale that was not currently tracked when Track changes was disabled. (LOC-380)
  • Fixed XLIFF exporter crash when String Table Entry is null or empty. (LOC-383)

[1.0.1] - 2021-09-16

Fixed

  • Fixed missing API issues in Scripting API documentation.

[1.0.0] - 2021-09-10

Added

  • LocalizedString can now be used as a local and global variable. When accessed in a Smart String this gives access to the translated value and can also be used for accessing metadata. See the Persistent Variables sample for an example of handling gender using this method. (LOC-257)
  • Added Local Variables support to LocalizedString. This works in a similar manner to GlobalVariables however the variables can only be accessed via the LocalizedString they are attached to.
  • Added 'Show Folder' button to CSV Extention to displlay the folder where the CSV file was last saved.
  • Added support for defining templates through TemplateFormatter editor.

Changed

  • LocalizedString FallbackState and WaitForCompletion fields are now always visible in the inspector.
  • IVariable interface has been changed from using a property for the source value to a method in order to provide additional information. Please see upgrade guide for further details. (LOC-257)
  • After exporting CSV and XLIFF the output directory will now be opened.
  • Disabled WaitForCompletion support on WebGL.
  • Setting the LocalizedString.LocaleOverride will now force an update.
  • Types marked with ObsoleteAttribute will no longer be shown in dropdown menus.
  • Updated icons with new styles. (LOC-248)
  • Updated to Addressables 1.19.4.

Deprecated

  • GlobalVariables namespace has been renamed to PersistentVariables and associated scripts have also been renamed. Script upgrade API will automatically upgrade relevant scripts.
  • LocalizedStringEvent arguments have been deprecated. A warning will appear in the inspector to say so if they are being used and will offer to upgrade by transferring them into the String Reference Local Variables field.

Fixed

  • Added multi edit support for LocalizedString, LocalizedAsset, and LocalizedStringEvent. (LOC-295)
  • Changes are now saved when fixing missing entries in a table. (LOC-205)
  • CSV files that are imported and exported through the Editor will now use FileShare.ReadWrite to avoid sharing violations with other software that may have the files open. (LOC-348)
  • Custom Locale Window will now show a Save File Panel instead of Save Folder Panel. (LOC 293)
  • Fixed Localization Settings editor String Database/Smart Format, Sources and Formatters not being correctly nested under the Smart Format foldout.
  • Fixed NullReferenceException occuring in ScenePropertyTracker when currentValue was null. (LOC-359)
  • Fixed Selected locale is null error occurring when entering playmode and using WaitForCompletion or calling GetSelectedLocale. (LOC-305)
  • Fixed a compilation error regarding GameObjectLocalizer when using Unity 2020.2.
  • Fixed Android build failure when the application name contains an escape character . (LOC-292)
  • Fixed build failures when building for Android with Android App info metadata for certain Locale codes. (LOC-361)
  • Fixed error regarding unknown Style in 2019.4 when opening Localization Settings editor. (LOC-304)
  • Fixed error where StringTable gets overwritten when removing and re-adding it back to the String Table Collection. (LOC-168)
  • Fixed errors in Table Editor when a selected entry was removed. (LOC-296). (LOC-296)
  • Fixed errors while changing SelectedLocale after adding and removing a method to LocalizedStringTable.TableChanged event. (LOC-320)

[1.0.0-pre.10] - 2021-07-20

Added

  • Added Localized Property Variants feature. This lets any component property be tracked for locale specific changes and provides an alternative workflow to the LocalizedStringEvent/LocalizedAssetEvent component approach. See the docs for further details. Note this feature requires Unity 2020.3 and above.
  • Added AssetTableEntry.SetAssetOverride. This enables updating an Asset Tables localized assets in the player so entries can be updated, such as from an external source. (LOC-217)
  • Added InitializeSynchronously property to LocalizationSettings. This can be used to complete initialization immediately when it is started instead of asyncronously.
  • Added Key property to TableEntry.
  • Added ProjectLocale property to LocalizationSettings`. This is used by the Localized Property Variants to record the default values.
  • Added a warning to the Inspector when a table collection or entry is missing for LocalizedString, LocalizedAsset, LocalizedStringTable and LocalizedAssetTable. (LOC-176)
  • Added overloaded AddAssetToTable that takes a LocaleIdentifier to AssetTableCollection. This version also creates a new table if one does not exist.
  • Added Unicode escape sequence support to Smart Format when using ConvertCharacterStringLiterals. This lets you write unicode in strings in the form \uXXXX.

Changed

  • WaitForCompletion and Enable Fallback fields are now always shown in the LocalizedString and LocalizedAsset property drawers.
  • Added LocalizedAssetBase and LoadAssetAsObjectAsync to all LocalizedAssets. This enables loading Localized assets in a generic way.
  • Changed AssetTable.GetAssetAsync to use a TableEntryReference instead of a long.
  • Changed SharedTableData.Addkey(string) so that if the name already exists then a unique version is generated based on the provided name instead of returning null.
  • Google Sheets Authorization errors are now reported in the console when authorizing through the Google Sheets Service Provider editor.
  • Removed console warning in new project regarding missing LocalizationSettings when opening scene controls (LOC-194) and the project did not contain the LocalizationSettings asset. (LOC-194)
  • Small performance improvement to SystemLocaleSelector, when looking for a fallback Locale we do not check the same Locale twice.
  • Updated to Addressables 1.18.11.

Deprecated

  • Deprecated some API with typos in SheetsServiceProvider (SetOAuthCrendtials and AuthoizeOAuth).

Fixed

  • Google Sheets Service Provider now supports authorizing multiple OAuth tokens. You will need to re-authorize when upgrading. (LOC-188)
  • Pseudo Locale Editor Methods and Preview fields now change expanded state if the label is clicked.
  • LocaleIdentifier property drawer now use the property display name instead of "Identifier".
  • Added xml:space="preserve" to exported XLIFF translation units. (LOC-193). (LOC-193)
  • Fixed Locale not having the correct label applied when first added and the project contained no Addressable Asset Settings.
  • Fixed LocalizedDatabase so it correctly releases all references it holds to a table.
  • Fixed NullReferenceException being thrown when opening the Tables Window menu and the project contains no Localization Settings. (LOC-200)
  • Fixed NullReferenceException being thrown when pushing to a Google Sheet and the String Table Collection contained a Key with no localized values. (LOC-199)
  • Fixed NullReferenceException when the Addressable settings contained a null group. (LOC-196)
  • Fixed SelectedLocale is null error being thrown when calling GetLocalizedString whilst exiting Play Mode. (LOC-209)
  • Fixed a bug in LocalizedStringPropertyDrawer and LocalizedAssetPropertyDrawer that changed LocalizedString and LocalizedAsset values when reordering them in a list. (LOC-128)
  • Fixed Addressables issue that would throw the error Exception: Reentering the Update method is not allowed when calling WaitForCompletion inside of the OnLocaleChanged callback. The event is no longer called from inside of an Addressables update.
  • Fixed Analyze rules throwing an InvalidCastException when no issues were found and the Fix operation was performed. (LOC-201)
  • Fixed background tasks becoming unresponsive after importing/exporting CSV files.
  • Fixed compilation errors in DocCodeSamples.Tests when the UGUI package was not included in the project. (LOC-197)
  • Fixed duplication of existing Locales when importing a Table Collection. (LOC-175)
  • Fixed errors in LocalizationSettings editor when deleting Locales and Addressable asset settings from the project.
  • Fixed errors when opening Device Simulator window.
  • Fixed errors when reordering Table Entry Metadata when PlatformOverride is added as metadata. (LOC-!87)
  • Fixed LocalizedString not using WaitForCompletion when using the StringChanged event. (LOC-218)
  • Updated LocalizationTableCollection.RemoveEntry to remove entries from tables.

[1.0.0-pre.9] - 2021-05-12

Added

  • Added ExcludeEntry Metadata . This can be used to prevent an entry from being exported to Google Sheets, XLIFF, and CSV.
  • Added WaitForCompletion property to LocalizedString and LocalizedAsset. This can be set in the inspector or via script to force synchronous loading.
  • Added synchronous methods to LocalizedString and LocalizedAsset.

Changed

  • LocalizationSettings.SelectedLocale is now syncronous and does not need Initialization to have been completed.
  • Moved TryEvaluateAllLiterals into its own interface IFormatterLiteralExtractor and renamed to WriteAllLiterals.
  • Renamed LocalizeString.GetLocalizedString to LocalizeString.GetLocalizedStringAsync.
  • System Locale Selector will now only output the message The Locale X is not available, however the parent locale Y is available. in the player.
  • Updated Smart Format library to aa9e4288612f79b86ab0cea36066797118d11a69 excluding the Nullable types support.
    • Fixed: Take an erroneous format string like "this is {uncomplete" (missing closing brace). Before v2.7.0 the parser handled {uncomplete as a TextLiteral, not as an erroneous Placeholder.
    • Fixed: Fixed issue where If the Parser encountered a ParsingError.TooManyClosingBraces, this closing brace was simply "swallowed-up". This way, the result with Parser.ErrorAction.MaintainTokens differs from the original format string. From v2.7.0, the redundant closing brace is handled as a TextLiteral.
    • Improved: For ParsingError.TrailingOperatorsInSelector and ParsingError.InvalidCharactersInSelector the causing character is now included in the Exception.Message.
    • Fix: Fully implemented all Settings.ParseErrorAction.
    • Enhanced SubString extension as described in PR142.
  • Updated to Addressables 1.18.2.

Fixed

  • Added support for WaitForCompletion so Async operations can be completed immediately and support synchronous workflows. (LOC-185)
  • Fixed ArgumentException when adding a new table collection in a new project. (LOC-192)
  • Fixed LocalizeStringEvent overwriting the StringReference Arguments when enabled.
  • Fixed NullReferenceException in LoadTableOperation when the Locale could not be found. (LOC-192)
  • Fixed TemplateFormatter not being added when selected through the Add Formatter menu. (LOC-179)
  • Fixed default table version of GetLocalizedStringAsync arguments being wrapped in an object[] when using IList<object>. (LOC-191)
  • Fixed Localized assets not using fallbacks.
  • Fixed table name validation - names can no longer contain leading or trailing whitespace, nor can they contain characters that Unity considers invalid. (LOC-183)
  • Fixed warning regarding SelectedLocale being thrown when entering play mode and the Scene Controls Window was open.
  • Locale Analyzer, String Table Analyzer and Asset Table Analyzer will now check the Addressables groups have valid schemas. (LOC-190)
  • Table Window now updates itself when Tables, Collections or Shared Table Data is deleted or restored in the project. (LOC-182)

[1.0.0-pre.8] - 2021-04-27

Changed

  • Changed to Pre-release.

[0.11.1] - 2021-04-23

Fixed

  • Fixed errors being generated when using Play Mode with Domain and Scene reload disabled. (LOC-165)
  • Fixed NotSupportedException: Collection is read-only error sometimes being produced by preload operation.

[0.11.0] - 2021-04-08

Added

  • Added Addressable Group Rules asset. This can be used to configure what Addressable groups assets should be placed into. See Addressables Integration docs for further details.
  • Added CollectionExtension.Initialize, this will be called when the extension is first added to a table collection.
  • Added IEntryOverride. This can be used to create overrides for table entries to direct to different localized values.
  • Added Locale.LocaleName property. This can be used to customize the name of the Locale instead of using the name of the Locale Asset in the name property. (LOC-144)
  • Added LocalizationEditorSettings.GetPsuedoLocales. This returns all Pseudo Locales that are included in the project.
  • Added LocalizedGameObjectEvent component. This can be used to localize Prefabs.
  • Added LocalizedMaterial & LocalizedGameObject.
  • Added PlatformOverride Metadata. This can be used to override the value for an entry for a chosen platform, the override can change the entry, table or both.
  • Added ReleaseAsset method in AssetTable. This can be used to release an asset from memory for the provided AssetTableEntry.
  • Added ReleaseTables to LocalizedDatabase. This can be used to force a table to be released from the database so that it may be unloaded providing there are no other references to it.
  • Added SetEntryAssetType and GetEntryAssetType to AssetTableCollection.. This can be used to control the expected asset type for an entry.
  • Added SharedEntry property to StringTableEntry and AssetTableEntry. This will return the SharedTableData entry for the current Locale specific entry.
  • Added SharedStringTableEntry and SharedAssetTableEntry to MetadataType. These can be used to only show Metadata for a shared table entry only.
  • Added 3 new Addressable Analyzer rules which can be used to check for Addressable issues and upgrade when changing the Addressable Group Rules.
  • Added additional override for StringTableEntry.GetLocalized which allows for passing in an optional Pseudo Locale. By default the Selected Locale will be used. (LOC-162)
  • Added constructors to LocalizedString, LocalizedAsset, LocalizedStringTable and LocalizedAssetTable. These show the minimum arguments required for the class to function correctly.
  • Added extra override for method GetLocalizedString which now accepts the parameters as list of objects [IList