首页 > 解决方案 > 如果没有 ID,您如何处理根据语言可能具有不同值的下拉菜单?

问题描述

我习惯于 web 开发,其中下拉列表有一个 ID 字段和文本。当文本可能因语言而变化时,是否有适当的方法来处理关联正确的下拉值?

例如。下拉菜单可能有英语和日语或英语和日本人。视当地方言而定。在网络世界中,我将拥有 ID 1 和 2,而文本无关紧要。有一些方法我可以看到绕过它,但希望有一种更清洁的方法。有时会在许多地方使用一些相当大的列表。

我看过一些本地化教程,但没有一个解决下拉菜单和本地化文本的问题。

我可以在创建下拉列表或执行几个查询(使用 Sqlite)时构建一个字典,但实际上不如只有一个与选项关联的唯一 ID 有效。

标签: unity3dlocalizationdropdown

解决方案


我为我们的游戏这样做了。不漂亮,但它有效。

var index = 0;
MapDropdown.AddOptions(MapConfigs.Instance.Configs.Select((c, i) => {
    if(c.Id == config.Id) {
        index = i;
    }
    return new Dropdown.OptionData { text = c.Name  };
}).ToList());

MapDropdown.value = index;
MapChanged (index);
MapDropdown.onValueChanged.AddListener (MapChanged);

推荐阅读