gpt4 book ai didi

android - 动态 Android 应用程序本地化

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:07:02 30 4
gpt4 key购买 nike

我已阅读 here Android 应用程序中的本地化是通过随应用程序部署的 XML 文件进行的。

是否可以在运行时将这些 XML 文件动态加载到应用程序中?

如果不是,是否可以覆盖 UI XML 和资源 XML 之间的绑定(bind),以便我可以绑定(bind)到我自己的动态加载的 XML 文件,而不是 res/values?

谢谢

最佳答案

Is it possible to dynamically load those xml files at runtime into the app?

不,对不起。

If not, is it possible to override the binding between the UI xml and the resources XML in such a way that I can bind to my own, dynamically loaded xml file instead of one in res/values?

res/values/ 中的任何内容都不会被使用,除非您使用它。因此,没有什么可以“覆盖”。

例如,假设您有一个 TextView。您希望它显示一些文本。您希望将该文本本地化。通常,您会设置一系列字符串资源,每个翻译一个,然后将这些字符串资源与 TextView(例如,android:text 在布局中使用,或者setText() 在 Java 中)。在您的情况下,您不会设置字符串资源,而是“做自己的事”,并根据需要调用 setText()

您在方法中失去的是自动转换。如果用户在您的应用程序运行时切换语言,Android 会将其视为配置更改并在它们返回前台时重新启动您的 Activity。通常,这会自动加载新的字符串资源。在您的情况下,它不会,因为您没有使用字符串资源。相反,您需要告诉 Android 不要重新启动您的 Activity (通过 android:configChanges)并手动重新加载您所有的 TextView 等小部件。如果您忘记了一个,那么,用户就完蛋了。

恕我直言,除非有人用枪指着你的头强制你尝试更改翻译而不发布新版本的应用程序,否则只需使用字符串资源并发布新版本的应用程序。

关于android - 动态 Android 应用程序本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14282204/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com