"is translated here but not found in default locale" strings.xml 错误,可翻译="false"
"is translated here but not found in default locale" error in strings.xml with translatable="false"
这是我的 values\strings.xml(默认文件),一切都是不言自明的:
我的问题:
- 如果我正在编辑默认语言环境 (values\strings.xml),怎么会是 "not found in default locale"?
- 设置
translatable="false"
怎么会是lint翻译错误呢?在 values-pl\strings.xml(以及 values-ru、values-iw 文件夹)中,字符串甚至不存在?无论如何都不应该。
- 我似乎不明白为什么我没有得到俄语字符串的错误。
(我会在这里显示 values-ru\string.xml 或 values-pl\string.xml 但没有任何有趣的地方,因为字符串反正都不见了...)
我也遇到过这种情况
我做了两件事:
- 验证整个文件以查看另一个未完成的翻译(我在文件 en 中有一个,但在 pt-br 中)
- 清理、更新 gradle 并退出并重新启动 Android Studio
我创建了一个工具来管理 android 应用程序的翻译状态。
它不仅会告诉您其他语言缺少哪些字符串,而且还会报告并清除您可能已在默认翻译文件中删除的剩余字符串。
https://github.com/gubatron/android-missing-strings
要清除所有其他语言的遗留问题,请像这样调用
./ams --cleanleftovers -o all.txt
这将清除剩余的字符串,并将所有语言的缺失字符串报告输出到 all.txt 文件
我收到了同样的错误消息,只是在默认语言环境本身和所有翻译中出现了一个奇怪的问题。原来你不应该在你的名字中使用点(例如 name="bla.blub"),因为它将在内部转换为 "bla_blub" 然后它不能与 "bla.blub" 匹配,因此错误。
我只需将默认语言环境中的点更改为下划线,然后其他翻译中的所有其他错误(包括名称中的点)也都消失了。
但请注意,其他构建工具仍然会产生问题,因此请将所有点替换为下划线!
重建可能需要很长时间。 YMMV,但是...
只需删除有问题的行并重新添加即可。
对我有用。非常快。
按 使缓存无效/重新启动... 以重新启动 android 工作室。它对我有用。实际上,当我从另一台计算机复制文件并通过文件资源管理器粘贴时,就会发生这种情况。
只需确保您对所有字符串文件都采用相同的命名约定,包括相同的大小写。
假设你在 strings.xml 中有 "sign_in" 并且在你的 fr/string.xml 中有 "sign_In",那么它会给你错误 fr/strings.xml 喜欢 "is translated here but not found in default locale"。因此,当您编辑为 "sign_in" 时。错误将被删除。
您只需要复制有问题的行(或多个有问题的行之一),将其删除,然后 re-paste。这为我解决了这个问题。
就我而言,这对我有帮助:
- Select 导致错误的字符串。
- 剪掉它们。
- 再次粘贴它们
如果它对您不起作用,请尝试将相同的字符串添加到 strings.xml(v21)
文件。
退出 Android Studio 并重新启动它为我修复了它。
我按照以下步骤解决了这个问题:
清理我的项目
重建它
最后在文件菜单中按下无效缓存/重新启动
复制和粘贴对我不起作用。
我也试过清理并重启,之前的错误没有了,但新输入的字符串仍然出现新的错误。
我尝试关闭打开的 strings.xml 文件和 Translations Editor,然后重新启动。
strings.xml file and Translations Editor
这对我有用。
我的 xml 文件中的所有字符串都遇到了这个问题。
事实是,您的默认 strings.xml
不应像其他已翻译文件那样具有 tools:locale
属性。如果是这样,每当我在发布模式下编译应用程序时,它都会将其视为另一个翻译文件。
按 double shift 打开 Translations Error
,然后在 Untranslatable
列中选中并取消选中有错误的项目。
好吧,就我而言,这是在报告的字符串的前一个字符串存在格式错误时发生的。不幸的是,没有报告格式错误。更正格式错误即可解决问题。
如果你 Clean Project
它可能有效。它对我有用。
这是我的 values\strings.xml(默认文件),一切都是不言自明的:
我的问题:
- 如果我正在编辑默认语言环境 (values\strings.xml),怎么会是 "not found in default locale"?
- 设置
translatable="false"
怎么会是lint翻译错误呢?在 values-pl\strings.xml(以及 values-ru、values-iw 文件夹)中,字符串甚至不存在?无论如何都不应该。 - 我似乎不明白为什么我没有得到俄语字符串的错误。
(我会在这里显示 values-ru\string.xml 或 values-pl\string.xml 但没有任何有趣的地方,因为字符串反正都不见了...)
我也遇到过这种情况
我做了两件事:
- 验证整个文件以查看另一个未完成的翻译(我在文件 en 中有一个,但在 pt-br 中)
- 清理、更新 gradle 并退出并重新启动 Android Studio
我创建了一个工具来管理 android 应用程序的翻译状态。 它不仅会告诉您其他语言缺少哪些字符串,而且还会报告并清除您可能已在默认翻译文件中删除的剩余字符串。
https://github.com/gubatron/android-missing-strings
要清除所有其他语言的遗留问题,请像这样调用
./ams --cleanleftovers -o all.txt
这将清除剩余的字符串,并将所有语言的缺失字符串报告输出到 all.txt 文件
我收到了同样的错误消息,只是在默认语言环境本身和所有翻译中出现了一个奇怪的问题。原来你不应该在你的名字中使用点(例如 name="bla.blub"),因为它将在内部转换为 "bla_blub" 然后它不能与 "bla.blub" 匹配,因此错误。 我只需将默认语言环境中的点更改为下划线,然后其他翻译中的所有其他错误(包括名称中的点)也都消失了。
但请注意,其他构建工具仍然会产生问题,因此请将所有点替换为下划线!
重建可能需要很长时间。 YMMV,但是...
只需删除有问题的行并重新添加即可。
对我有用。非常快。
按 使缓存无效/重新启动... 以重新启动 android 工作室。它对我有用。实际上,当我从另一台计算机复制文件并通过文件资源管理器粘贴时,就会发生这种情况。
只需确保您对所有字符串文件都采用相同的命名约定,包括相同的大小写。 假设你在 strings.xml 中有 "sign_in" 并且在你的 fr/string.xml 中有 "sign_In",那么它会给你错误 fr/strings.xml 喜欢 "is translated here but not found in default locale"。因此,当您编辑为 "sign_in" 时。错误将被删除。
您只需要复制有问题的行(或多个有问题的行之一),将其删除,然后 re-paste。这为我解决了这个问题。
就我而言,这对我有帮助:
- Select 导致错误的字符串。
- 剪掉它们。
- 再次粘贴它们
如果它对您不起作用,请尝试将相同的字符串添加到 strings.xml(v21)
文件。
退出 Android Studio 并重新启动它为我修复了它。
我按照以下步骤解决了这个问题:
清理我的项目
重建它
最后在文件菜单中按下无效缓存/重新启动
复制和粘贴对我不起作用。
我也试过清理并重启,之前的错误没有了,但新输入的字符串仍然出现新的错误。
我尝试关闭打开的 strings.xml 文件和 Translations Editor,然后重新启动。
strings.xml file and Translations Editor
这对我有用。
我的 xml 文件中的所有字符串都遇到了这个问题。
事实是,您的默认 strings.xml
不应像其他已翻译文件那样具有 tools:locale
属性。如果是这样,每当我在发布模式下编译应用程序时,它都会将其视为另一个翻译文件。
按 double shift 打开 Translations Error
,然后在 Untranslatable
列中选中并取消选中有错误的项目。
好吧,就我而言,这是在报告的字符串的前一个字符串存在格式错误时发生的。不幸的是,没有报告格式错误。更正格式错误即可解决问题。
如果你 Clean Project
它可能有效。它对我有用。