【发布时间】:2009-02-10 15:30:11
【问题描述】:
我的应用程序中有一个“GUI 字符串”.resx 文件,其中包含我显示的所有字符串。我显然可以通过直接访问每个字符串
Resources.Resource_GUI_Strings.CameraSettings_BrightnessLabel
但是如何列出 .resx 文件中的所有设置,作为它们的(名称,值)对,是我使用反射的唯一选择吗?
我想列出所有对(即 CameraSettings_BrightnessLabel 和“Brightness”),以便用户可以编辑每个项目的字符串。这样他们就可以本地化 GUI。我不想完全国际化应用程序,要求只是让用户能够自己做。
所以我需要能够从 .resx 文件中读取成对的值,然后在用户编辑它们时将它们写回。
只是补充一下,我想在应用程序本身的运行时执行此操作,因此我无法解析磁盘上的 .resx 文件。
【问题讨论】:
-
为什么不使用反射?这听起来不像是一段将在循环中运行 1000 次的代码。听起来它会出现在某种 Edit->Options 菜单上,因此即使使用 Reflection,您也不会注意到任何性能损失。
-
我不确定我是否理解您的要求。您想在应用程序运行之间保留值吗?是每个用户都自定义自己的 GUI 版本,还是应该由所有用户共享自定义?
-
客户对基本的国际化感到满意,因此他们唯一希望的是每个用户能够将 GUI 中的任何标签从默认的“英语”标签更改为自己的标签。因此,这些值需要保留,但仅适用于 GUI 的该用户。
标签: c# winforms user-interface resources internationalization