gpt4 book ai didi

android - 如何将翻译编辑器条目导出到 Excel?

转载 作者:行者123 更新时间:2023-12-04 19:48:34 59 4
gpt4 key购买 nike

在旧版本的 Android Studio 中,可以简单地选择所有条目并将它们复制/粘贴到 excel 中。
现在我使用的是 Android Studio 4.0.1,出于某种原因,他们在翻译编辑器中禁用了 Cmd+A 热键。
我查看了所有可用的插件/第三方工具,但它们似乎都不适合我。
还检查了类似的 SO 线程,那里的任何想法都没有帮助我。
我有巨大的 string.xml 文件翻译成 10 种语言,所以我只寻找自动化解决方案。

最佳答案

我在 Android Studio 中遇到了同样的问题,我无权从翻译编辑器中复制所有条目,所以我决定做自己的 XmlResourceParser,它从特定的 strings.xml 文件中读取所有键和值。当然,您可以根据需要使用和修改此脚本。

private void parseResourceXML(XmlResourceParser parser) {

try
{
int eventType = parser.getEventType();

LinkedHashMap<String, Object> map = new LinkedHashMap<>();
StringBuilder sbValues = new StringBuilder();
StringBuilder sbKeys = new StringBuilder();

String nameAttr = "";
boolean translatableAttr = true;
while (eventType != XmlResourceParser.END_DOCUMENT)
{
if (eventType == XmlResourceParser.START_DOCUMENT)
{
//Log.d("XmlResourceParser", "Start Document");
}
else if (eventType == XmlResourceParser.START_TAG)
{
//Log.d("XmlResourceParser", "Start Tag " + parser.getName());
String element = parser.getName();
if (!TextUtils.isEmpty(element))
{
switch (element)
{
case "string":
nameAttr = parser.getAttributeValue(null, "name");
translatableAttr = parser.getAttributeBooleanValue(null, "translatable", true);
map.put(nameAttr, nameAttr);
sbKeys.append(nameAttr);
sbKeys.append("\n");
break;
case "string-array":
nameAttr = parser.getAttributeValue(null, "name");
translatableAttr = parser.getAttributeBooleanValue(null, "translatable", true);
break;
case "item":
nameAttr = parser.getAttributeValue(null, "name");
translatableAttr = parser.getAttributeBooleanValue(null, "translatable", true);
map.put(nameAttr, nameAttr);
sbKeys.append(nameAttr);
sbKeys.append("\n");
break;
}
}
}
else if (eventType == XmlResourceParser.END_TAG) {
//Log.d("XmlResourceParser", "End Tag " + parser.getName());
}
else if (eventType == XmlResourceParser.TEXT) {
//get the String value text
String text = parser.getText();
map.put(nameAttr, text);
sbValues.append(text);
sbValues.append("\n");
}
eventType = parser.next();
}

String sKeys = sbKeys.toString();
String sValues = sbValues.toString();

int i = 0; //<------- PUT A BREAK POINT HERE and point to sKeys or sValues and click + button and then click on VIEW button (in debug mode) and copy them all. Then Paste all sKeys in Excel in Column1 and sValues in Column2

} catch (Exception e) {
e.printStackTrace();
}
}
您可以在 Activity 的 onCreate 方法中像下面这样调用它:
parseResourceXML(getResources().getXml(R.xml.strings));
并将您的 strings.xml 或本地化的 strings_fr.xml 放在 res/xml 文件夹下。
从上面的脚本中,只需在最后的 sKeys 或 sValues 中放置一个断点,然后单击 + 按钮查看数据,然后单击 VIEW 按钮(在 Debug模式下)以纯文本形式查看所有数据,现在您可以全部选中它们并将它们粘贴到 Excel 列中。我希望它也涵盖你的情况。

关于android - 如何将翻译编辑器条目导出到 Excel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64923065/

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