web-dev-qa-db-ja.com

ローカライズのためにExcelに文字列リソースをインポート/エクスポートする方法Android?

アプリ開発でAndroid Studioを使用します。Android言語リソース(strings.xml)をExcelファイル(xlsx)にエクスポート/インポートして文字列を翻訳したい。それを行う最善の方法は何ですか?

31
Empath

他の誰かが答えを必要とした場合、

from res-> strings->右クリック-> Open Translations Editor。必要なデータ/変数を選択してから、Translations EditorからExcelへ。できた。

image from Android studio v2.2

35
Saad Mahmud

AndroidスタジオでCtrl + Aが機能しなくなったため。 Android文字列ファイルをCSVに変換するの1つの方法があり、Google翻訳者の助けを借りて翻訳してからもう一度XMLに変換するにします。

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

ここに詳細なブログがあります

7
Raj

他の多くの人が指摘したように、 Ctrl+A Android Studio 3.2

私は常に翻訳をアウトソーシングしている会社で働いているので、Android文字列をxlsファイルとの間で変換する必要があります。確実に機能する唯一のソリューションは this forkold Android-lang-tool のmavenでビルドして、jarを実行します。

文字列、文字列配列、複数形、およびそれらのキー値をxlsファイルにエクスポートします。コメントもエクスポートします。

5
Kozaris Yiannis

Androidアプリの文字列ローカリゼーションに最適なツールは、Android Studioに組み込まれているTranslations Editorであることをお勧めします。

これが優れたアプローチである理由は、翻訳者にとってプロセスを簡単にし、エラーを起こしにくくすることができるからです。 Android StudioのXML文字列ファイルは、文字列のローカライズを支援する標準化された方法であるXLIFF表記をサポートしています。

XML文字列ファイルでXLIFF表記を利用することにより、翻訳者を支援するために以下を行うことができます。

  • 宣言された文字列に追加のコンテキストを提供します
  • 翻訳すべきではないメッセージ部分をマークする

Android文字列XMLファイルでXLIFFを使用するには、XLIFF 1.2名前空間を含める必要があります。

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">

Androidローカリゼーションドキュメント の文字列の例をいくつか示します。

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">

<!-- Example placeholder for a special unicode symbol -->
<string name="star_rating">Check out our 5
    <xliff:g id="star">\u2605</xliff:g>
</string>

<!-- Example placeholder for a for a URL -->
<string name="app_homeurl">
    Visit us at <xliff:g id="application_homepage">http://my/app/home.html</xliff:g>
</string>

<!-- Example placeholder for a name -->
<string name="prod_name">
    Learn more at <xliff:g id="prod_gamegroup">Game Group</xliff:g>
</string>

<!-- Example placeholder for a literal -->
<string name="promo_message">
    Please use the "<xliff:g id="promotion_code">ABCDEFG</xliff:g>” to get a discount.
</string>

</resources>

Android Studioの翻訳エディターにアクセスするには、XML文字列ファイル(strings.xmlなど)のコンテキストメニューから[翻訳エディターを開く]を選択します)プロジェクトツリー(下記を参照)。

open translations editor

4
BrentM

Saad Mahmudが答えたように、翻訳エディター(ctrl + a ctrl + c)からコピーして、スプレッドシートに貼り付けることができます。

「デフォルト値」と他の言語の列をコピーするだけで、スプレッドシートから翻訳エディターにコピーし、一番上のデフォルト値をクリックして貼り付けます(ctrl + v)。

また、サブセット(行と列の両方のサブセット)が隣接している限り機能します。

スプレッドシート内の空のセルは、エディター内の翻訳を空白にするわけではなく、現在のセルはそのまま残されることに注意してください。

また、スプレッドシートが作成されてから翻訳キーを追加または削除していないことに注意してください...

他の多くの人が指摘したように、Android Studio 3.2。なので、翻訳エディタから翻訳をコピーして貼り付けることはできません。

私が見つけた最も簡単な解決策は、Excelファイルを翻訳付きでCSVファイルとして保存し、正規表現を使用してXMLに変換したり、その逆を行うことでした。

翻訳を「インポート」するには、次の手順を実行します。

  1. Xls/xlsxファイルを最初の列にキーを、2番目の列に翻訳をCSVファイルとして保存します(Excelがutf-8を使用したCSVでの保存をサポートしていないため、非ANSI文字のファイルがGoogleシートを使用している場合)
  2. "find and replace"を正規表現でサポートするテキストエディターでCSVファイルを開きます(例:Notepad ++)
  3. "find and replace"を開き、正規表現検索を設定します
  4. ^([^,]*),(.*)$を検索し、_<string name="$1">$2</string>_に置き換えます
  5. タグ間でファイルを文字列リソースファイルにコピーする
  6. 起こりうる間違いを修正

「エクスポート」についても同様の方法を逆に使用できます。 <string.+name="(.*)".*>(.*)</string>を使用して検索し、_$1,$2_を使用して置換します。ただし、すべての文字列タグが1行に含まれている場合にのみ機能します。

0
Gregor Ažbe

Windows PCでのみサポートされているExcelへのエクスポートまたはコピー。まだMACではありません

0
miho39