如何将Android字符串资源导入/导出到Excel进行本地化?

Emp*_*ath 35 excel android localization android-studio

我在应用开发中使用Android Studio.我想通过导出/导入Android语言资源(strings.xml)到Excel文件(xlsx)来翻译字符串.最好的方法是什么?

Saa*_*mud 35

如果有人需要答案,

res- > strings- >右键 - > Open Translations Editor.选择数据/变量,你需要再从数据复制并粘贴Translations Editorexcel.完成.

来自android studio v2.2的图片

  • 对于任何与我有相同问题的Mac用户,请务必使用(Ctrl + C)进行复制,如@ShellDude所指出的那样 (21认同)
  • 无论如何都要从Excel工作表复制到Android Studio? (7认同)
  • @Pei最近更新后它不再起作用了.我也使用3.2版,按下"Ctrl + A"后没有任何反应.以前您可以使用此组合选择所有值. (6认同)
  • 是的,只需从Android Studio的Ctrl + C,然后Command + V到Google表格完美! (3认同)
  • 我无法将其复制回编辑器:(有谁知道原因可能是什么?我使用的是3.0.1版本 (3认同)
  • 一次只能运行一个,这是无意义的。 (2认同)

Raj*_*Raj 9

由于CTRL + A在android studio中现在无法正常工作。有一种方法可以将android字符串文件转换为CSV,然后借助google转换器将其翻译,然后再次转换回XML

https://skydevelopers.net/blog/2-best-ways-to-translate-the-android-strings-file/

这是一个详细的博客

  • 此评论应获得100的支持 (3认同)

小智 6

正如许多其他人指出的那样,自Android Studio 3.2起,在Translations Editor中按Ctrl+ A无效。

我在一家经常翻译外包的公司工作,因此我们需要将android字符串与xls文件相互转换。为我们工作的唯一解决方案是可靠的这个分支中的较旧的Android朗工具。只需使用Maven构建并运行jar。

它将字符串,字符串数组,复数及其键值导出到xls文件。它甚至导出评论。

  • 第一个链接失效了 (9认同)

san*_*rge 6

  1. 将字符串资源文件导出为 csv
  2. 翻译其内容(可能来自谷歌翻译)
  3. 将翻译后的文件转换回 Strings.xml(android 字符串资源文件)

我使用http://convertcsv.com/csv-to-xml.htm这个网站将 csv 文件转换为字符串资源文件

需要提及自定义输出模板将其转换为字符串资源文件

<string name="{f1}">{f2}</string>
Run Code Online (Sandbox Code Playgroud)

将其放在提供的模板部分中

网站还显示所需的转换输出文件


小智 5

  1. 将 strings.xml 转换为 csv xml-to-csv
  2. 导入到 Google 表格
  3. 使用公式进行翻译=GOOGLETRANSLATE(B2, "auto", "de")
  4. 使用=CONCATENATE("<string name=",char(34),A2,char(34),">",C2,"</string>")其中 A2 是资源 ID、C2 是翻译后的字符串在另一列中生成输出
  5. 复制整个输出列并粘贴到<resource>...</resource>标签内


Bre*_*ntM 4

我建议 Android 应用程序字符串本地化的最佳工具是Android Studio 中内置的翻译编辑器。

\n\n

这是一个很好的方法,因为您可以使翻译过程变得更容易,并且不易出错。Android Studio 中的 XML 字符串文件支持 XLIFF 表示法,这是一种有助于字符串本地化的标准化方法。

\n\n

通过在 XML 字符串文件中使用 XLIFF 表示法,您可以执行以下操作来帮助翻译人员:

\n\n
    \n
  • 为声明的字符串提供额外的上下文
  • \n
  • 标记不应翻译的消息部分
  • \n
\n\n

要在 Android 字符串 XML 文件中使用 XLIFF,您需要包含 XLIFF 1.2 命名空间:

\n\n
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">\n
Run Code Online (Sandbox Code Playgroud)\n\n

以下是Android 本地化文档中的一些字符串示例:

\n\n
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">\n\n<!-- Example placeholder for a special unicode symbol -->\n<string name="star_rating">Check out our 5\n    <xliff:g id="star">\\u2605</xliff:g>\n</string>\n\n<!-- Example placeholder for a for a URL -->\n<string name="app_homeurl">\n    Visit us at <xliff:g id="application_homepage">http://my/app/home.html</xliff:g>\n</string>\n\n<!-- Example placeholder for a name -->\n<string name="prod_name">\n    Learn more at <xliff:g id="prod_gamegroup">Game Group</xliff:g>\n</string>\n\n<!-- Example placeholder for a literal -->\n<string name="promo_message">\n    Please use the "<xliff:g id="promotion_code">ABCDEFG</xliff:g>\xe2\x80\x9d to get a discount.\n</string>\n\n</resources>\n
Run Code Online (Sandbox Code Playgroud)\n\n

要访问 Android Studio 中的翻译编辑器,请从项目树中的 XML 字符串文件(即 strings.xml)的上下文菜单中选择“打开翻译编辑器” (见下文)。

\n\n

打开翻译编辑器

\n

  • vikifor,你的答案是独一无二的。您应该为其创建一个单独的帖子,因为我发现它是这里最有用的答案。对于 MAC 上的用户来说,还有一点……CMD-C 不适用于复制……您必须使用 CONTROL-C 从 Android Studio 的翻译编辑器中复制出来。 (8认同)
  • 您只需将 Open Translations Editor 中的数据复制并粘贴到 Excel 中即可 (4认同)
  • 我不会称之为最好的。:-) 它有两个主要问题:首先,您无法自定义它使用的字体。其次,您不能简单地逐个输入翻译,您必须双击每一项才能获得光标。对于本质上基于键盘的任务来说,它是一个主要的 PITA。 (2认同)
  • 没有回答OP的问题。他明确表示他希望将 `strings.xml` 导入/导出到 `.xlsx` (2认同)