我一直在研究将在不同国家/地区使用的Android应用程序。
因此,我遵循Android Developer Guide支持应用程序的不同语言,并使用Android Studio中的翻译编辑器来指定我要翻译的资源。但是,Android Studio预览版会向我显示正确的资源,但在运行应用程序时不会进行翻译,而是将其保留为默认值。我相信我可能已经错过了一些东西,但似乎找不到它。
以下图像显示了Android Studio中的目录和资源字符串:
默认字符串:
<resources>
<string name="welcome_user">Welcome %1$s</string>
<string name="logout">Logout</string>
<string name="main_menu">Main menu</string>
<string name="inventory">Inventory</string>
<string name="login">Login</string>
</resources>
西班牙语字符串:
<resources>
<string name="welcome_user">Bienvenido %1$s</string>
<string name="logout">Cerrar sesión</string>
<string name="main_menu">Menú principal</string>
<string name="inventory">Inventario</string>
<string name="login">"Iniciar sesión "</string>
</resources>
我通常以自己喜欢的方式引用布局xml中的资源
android:id="@+id/textWelcome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/welcome_user"
以下图像是当我将其设置为西班牙语语言环境(与上面的资源不同的String资源)时,Android Studio向我显示的内容,以及即使将设备语言设置为Español,在运行应用程序时显示的内容:>
答案 0 :(得分:0)
好的,我在搜索了相关文档和问题后在this帖子中找到了答案。问题不在于文件夹的结构或我如何检索资源。
我的resConfigs
文件中的Android Gradle
属性设置为仅支持与英语资源相关的语言资源。由于此设置,所有未指定的其他语言都被删除。
我添加了"es"
和"nl"
之后,一切都按预期显示。
productFlavors {
dev {
dimension "default"
applicationIdSuffix '.dev'
versionNameSuffix '-dev'
resConfigs "en", "nl", "es" //The culprit I created and forgot
}