android studio translations editor,android - How to export Translations Editor entries to Excel? - S...

I had the same issue in Android Studio, i didn't have access to copy all the entries from the Translation Editor, so i decided to do my own XmlResourceParser which reads all the keys and values from a specific strings.xml file. Of course, you can use and modify this script according to your needs.

private void parseResourceXML(XmlResourceParser parser) {

try

{

int eventType = parser.getEventType();

LinkedHashMap 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; //

} catch (Exception e) {

e.printStackTrace();

}

}

And you can call it like below in your onCreate method of your Activity:

parseResourceXML(getResources().getXml(R.xml.strings));

and put your strings.xml or localised strings_fr.xml under res/xml folder.

From the above script just put a break point into sKeys or sValues at the end and click the + button to view the data and then click on VIEW button (in debug mode) to see all data in plain text and now you can select them all and paste them in an Excel column. I hope it covers your case as well.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值