Hm, I switched to Dictionary<string, object>, and pass ints, but still get an error “evaluating the selector”.
Confirmed that my localization settings contain Dictionary Source, as the second item, like your screenshot.
Full stack trace below. So, based on your answer, it seems like the formatter isn’t able to satisfy the selectors in the localized string with the objects being passed to GetLocalizedStringAsync, is that correct? And just to confirm, it’s correct to pass my args dictionary within a 1-item List?
FormattingException: Error parsing format string: Could not evaluate the selector "nCorrect" at 1
{nCorrect} problems solved correctly (out of {nSolved})
-^
UnityEngine.Localization.SmartFormat.SmartFormatter.FormatError (UnityEngine.Localization.SmartFormat.Core.Parsing.FormatItem errorItem, System.Exception innerException, System.Int32 startIndex, UnityEngine.Localization.SmartFormat.Core.Formatting.FormattingInfo formattingInfo) (at Library/PackageCache/com.unity.localization@0.11.1-preview/Runtime/Smart Format/SmartFormatter.cs:310)
UnityEngine.Localization.SmartFormat.SmartFormatter.Format (UnityEngine.Localization.SmartFormat.Core.Formatting.FormattingInfo formattingInfo) (at Library/PackageCache/com.unity.localization@0.11.1-preview/Runtime/Smart Format/SmartFormatter.cs:282)
UnityEngine.Localization.SmartFormat.SmartFormatter.Format (UnityEngine.Localization.SmartFormat.Core.Formatting.FormatDetails formatDetails, UnityEngine.Localization.SmartFormat.Core.Parsing.Format format, System.Object current) (at Library/PackageCache/com.unity.localization@0.11.1-preview/Runtime/Smart Format/SmartFormatter.cs:251)
UnityEngine.Localization.SmartFormat.SmartFormatter.FormatWithCache (UnityEngine.Localization.SmartFormat.Core.Formatting.FormatCache& cache, System.String format, System.IFormatProvider formatProvider, System.Collections.Generic.IList`1[T] args) (at Library/PackageCache/com.unity.localization@0.11.1-preview/Runtime/Smart Format/SmartFormatter.cs:222)
UnityEngine.Localization.Tables.StringTableEntry.GetLocalizedString (System.IFormatProvider formatProvider, System.Collections.Generic.IList`1[T] args, UnityEngine.Localization.Pseudo.PseudoLocale pseudoLocale) (at Library/PackageCache/com.unity.localization@0.11.1-preview/Runtime/Tables/StringTable.cs:143)
UnityEngine.Localization.Settings.LocalizedStringDatabase.GenerateLocalizedString (UnityEngine.Localization.Tables.StringTable table, UnityEngine.Localization.Tables.StringTableEntry entry, UnityEngine.Localization.Tables.TableReference tableReference, UnityEngine.Localization.Tables.TableEntryReference tableEntryReference, UnityEngine.Localization.Locale locale, System.Collections.Generic.IList`1[T] arguments) (at Library/PackageCache/com.unity.localization@0.11.1-preview/Runtime/Settings/Database/LocalizedStringDatabase.cs:136)
UnityEngine.Localization.GetLocalizedStringOperation.Execute () (at Library/PackageCache/com.unity.localization@0.11.1-preview/Runtime/Operations/GetLocalizedStringOperation.cs:49)
UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].InvokeExecute () (at Library/PackageCache/com.unity.addressables@1.18.2/Runtime/ResourceManager/AsyncOperations/AsyncOperationBase.cs:549)
UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].Start (UnityEngine.ResourceManagement.ResourceManager rm, UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle dependency, DelegateList`1[T] updateCallbacks) (at Library/PackageCache/com.unity.addressables@1.18.2/Runtime/ResourceManager/AsyncOperations/AsyncOperationBase.cs:544)
UnityEngine.ResourceManagement.ResourceManager.StartOperation[TObject] (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject] operation, UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle dependency) (at Library/PackageCache/com.unity.addressables@1.18.2/Runtime/ResourceManager/ResourceManager.cs:440)
UnityEngine.Localization.Settings.LocalizedStringDatabase.GetLocalizedStringAsync (UnityEngine.Localization.Tables.TableReference tableReference, UnityEngine.Localization.Tables.TableEntryReference tableEntryReference, System.Collections.Generic.IList`1[T] arguments, UnityEngine.Localization.Locale locale, UnityEngine.Localization.Settings.FallbackBehavior fallbackBehavior) (at Library/PackageCache/com.unity.localization@0.11.1-preview/Runtime/Settings/Database/LocalizedStringDatabase.cs:125)
UnityEngine.Localization.Settings.LocalizedStringDatabase.GetLocalizedStringAsync (UnityEngine.Localization.Tables.TableReference tableReference, UnityEngine.Localization.Tables.TableEntryReference tableEntryReference, UnityEngine.Localization.Locale locale, UnityEngine.Localization.Settings.FallbackBehavior fallbackBehavior, System.Object[] arguments) (at Library/PackageCache/com.unity.localization@0.11.1-preview/Runtime/Settings/Database/LocalizedStringDatabase.cs:104)
UnityEngine.Localization.Settings.LocalizedStringDatabase.GetLocalizedStringAsync (UnityEngine.Localization.Tables.TableEntryReference tableEntryReference, System.Collections.Generic.IList`1[T] arguments, UnityEngine.Localization.Locale locale, UnityEngine.Localization.Settings.FallbackBehavior fallbackBehavior) (at Library/PackageCache/com.unity.localization@0.11.1-preview/Runtime/Settings/Database/LocalizedStringDatabase.cs:87)
Util.setLocalText (System.String key, UnityEngine.UI.Text textComponent, System.Collections.Generic.IList`1[T] args) (at Assets/Scripts/Util.cs:11)
ReplayRunner.ListProblems () (at Assets/Scripts/ReplayRunner.cs:106)
ReplayRunner.HasUserFinishedExperiment () (at Assets/Scripts/ReplayRunner.cs:58)
ReplayRunner.Start () (at Assets/Scripts/ReplayRunner.cs:37)