| 59 | } |
| 60 | |
| 61 | Asset::LoadResult LocalizedStringTable::loadAsset() |
| 62 | { |
| 63 | PROFILE_MEM(Localization); |
| 64 | |
| 65 | // Base |
| 66 | auto result = JsonAssetBase::loadAsset(); |
| 67 | if (result != LoadResult::Ok || IsInternalType()) |
| 68 | return result; |
| 69 | |
| 70 | JsonTools::GetString(Locale, *Data, "Locale"); |
| 71 | JsonTools::GetReference(FallbackTable, *Data, "FallbackTable"); |
| 72 | const auto entriesMember = SERIALIZE_FIND_MEMBER((*Data), "Entries"); |
| 73 | if (entriesMember != Data->MemberEnd() && entriesMember->value.IsObject()) |
| 74 | { |
| 75 | Entries.EnsureCapacity(entriesMember->value.MemberCount()); |
| 76 | for (auto i = entriesMember->value.MemberBegin(); i != entriesMember->value.MemberEnd(); ++i) |
| 77 | { |
| 78 | const String key(i->name.GetText()); |
| 79 | auto& e = Entries[key]; |
| 80 | auto& value = i->value; |
| 81 | if (value.IsString()) |
| 82 | { |
| 83 | e.Resize(1); |
| 84 | e[0] = value.GetText(); |
| 85 | } |
| 86 | else if (value.IsArray()) |
| 87 | { |
| 88 | e.Resize(value.Size()); |
| 89 | for (int32 q = 0; q < e.Count(); q++) |
| 90 | e[q] = value[q].GetText(); |
| 91 | } |
| 92 | } |
| 93 | } |
| 94 | |
| 95 | return result; |
| 96 | } |
| 97 | |
| 98 | void LocalizedStringTable::unload(bool isReloading) |
| 99 | { |
nothing calls this directly
no test coverage detected