"在这里被翻译但在默认语言环境中找不到#34; strings.xml中的错误,可翻译=" false"

时间:2018-04-25 17:02:01

标签: android xml android-studio localization lint

这是我的 values \ strings.xml (默认文件),一切都是自我解释的: enter image description here

我的问题:

  1. 如何在默认语言环境中找不到""如果我正在编辑默认语言环境(values \ strings.xml)?
  2. 如果设置translatable="false",怎么会出现lint翻译错误?在values-pl \ strings.xml(和values-ru,values-iw文件夹中),字符串甚至不存在?无论如何也不应该这样。
  3. 我似乎无法理解为什么我没有收到俄罗斯字符串的错误。
  4. (我会在这里显示值-ru \ string.xml或values-pl \ string.xml,但没有任何兴趣,因为无论如何都缺少字符串......) < / p>

14 个答案:

答案 0 :(得分:30)

这也发生在我身上

我做了两件事:

  • 验证整个文件以查看未完成的其他翻译(我在文件中有文件但在pt-br中)
  • 清理,更新gradle并退出并重新启动Android Studio

答案 1 :(得分:16)

重建可能需要很长时间。 YMMV,但是...

只需删除有问题的行并重新添加。

为我工作。很快。

答案 2 :(得分:3)

我有相同的错误消息,只是有一个奇怪的问题,那就是它会被默认区域设置本身和所有翻译所引发。事实证明,您不应该在名称中使用点(例如name =“ bla.blub”),因为它会在内部转换为“ bla_blub”,因此无法与“ bla.blub”匹配,因此会出现错误。 我只需要在默认语言环境中将点更改为下划线,然后其他翻译中的所有其他错误(包括名称中的点)也就消失了。

但是请注意,其他构建工具仍然会产生问题,因此请用下划线替换所有点!

答案 3 :(得分:3)

Invalidate Caches / Restart ... (重启缓存),重新启动android studio。它为我工作。实际上,这是当我从另一台计算机复制文件并通过文件资源管理器粘贴时发生的。

答案 4 :(得分:3)

就我而言,这对我有帮助:

  1. 选择导致错误的字符串。
  2. 切掉它们。
  3. 再次粘贴

如果它对您不起作用,请尝试将相同的字符串添加到strings.xml(v21)文件中。

答案 5 :(得分:3)

退出Android Studio并重新启动它为我修复了该问题。

答案 6 :(得分:2)

我创建了一个工具来管理android应用的翻译状态。 它不仅可以告诉您其他语言缺少哪些字符串,还可以报告并清除在默认翻译文件中可能已删除的剩余字符串。

https://github.com/gubatron/android-missing-strings

要清理其他语言中的所有残留物,请像这样

./ams --cleanleftovers -o all.txt

这将清除剩余的字符串,并将所有语言的缺少字符串报告输出到all.txt文件中

答案 7 :(得分:2)

"xmlns:tools="http://schemas.android.com/tools"您应该将此代码添加到string.xml文件的资源标签中

答案 8 :(得分:1)

只要确保您对所有字符串文件具有相同的命名约定,包括相同的大小写即可。 假设您在strings.xml中具有“ sign_in”,在fr / string.xml中具有“ sign_In”,那么它将在fr / strings.xml中给您带来错误,例如“在此处翻译但在默认语言环境中找不到”。因此,当您编辑为“ sign_in”时。该错误将消除。

答案 9 :(得分:1)

您只需要复制有问题的行(或只是有问题的多行之一),将其删除,然后重新粘贴即可。这为我消除了问题。

答案 10 :(得分:0)

我通过以下步骤解决了这个问题:

  1. 清理我的项目

  2. 重建它

  3. 并最终按下无效的缓存/在文件菜单中重新启动

我希望它可以帮助任何在Android Studio中遇到此问题的人。

答案 11 :(得分:0)

复制和粘贴对我不起作用。

我还尝试了清理并重新启动,以前的错误消失了,但是新输入的字符串仍然出现新的错误。

我尝试关闭打开的 strings.xml 文件和翻译编辑器,然后重新启动。

strings.xml file and Translations Editor

对我有用。

答案 12 :(得分:0)

我的xml文件中的所有字符串都遇到这个问题。

问题是,默认的strings.xml不应该像其他翻译文件一样具有tools:locale属性。如果是这样,每当我在发布模式下编译该应用程序时,它将其视为另一个翻译文件。

答案 13 :(得分:0)

按双 Shift 打开 Translations Error,然后在 Untranslatable 列中选中和取消选中有错误的项目。