web-dev-qa-db-ja.com

Android:文字列リソースの不足している翻訳を取得する

Androidでは、res/values/strings.xmlのデフォルトロケールでテキストを指定できます。 res/values-it/strings.xmlの新しい言語の翻訳を追加できます(イタリア語など)。文字列が翻訳されていない場合は、フォールバックデフォルトロケールが使用されます。

現在、翻訳する必要がある文字列(values/strings.xmlにはあるがvalues-$/strings.xmlにはない言語のすべての$の場合)と、どの文字列が翻訳されているかはわかりませんが、廃止されている(values-$/strings.xmlにはあるが、values/strings.xmlにはない言語では$が存在する

欠けている翻訳と時代遅れの翻訳を提供するツールを探しています。

正直なところ、コマンドライン用のそのようなツールを書くことはそれほど難しくありません。誰もこれをすでに行ったことがないとは信じられません。

32
theomega

興味深い質問です。 Androidプロジェクト https://Gist.github.com/1133059 で重複するリソースを見つけるための簡単なスクリプトを書きました。醜いですが、私は知っていますが、数日で書き直し、githubにプロジェクトを作成するかもしれません。コンソールから実行するには:
$scala DuplicatesFinder.scala /path/to/Android/project

更新:
私はgithubでプロジェクトを作成しました https://github.com/4e6/Android-localization-helper 、おそらく誰かがそれを役に立ったと思います

11
4e6

これは自動化されていませんが、非常に高速です。 Eclipseで、Window-> Show View-> Other-> Android-> Resource Explorerに移動します。

次に、下部の(または移動先の)[リソースエクスプローラー]タブの下の[文字列]を確認します。完全な翻訳がある場合、各文字列のバージョン数は同じである必要があるため、数秒でリストをスキャンできます。

文字列を持つプロジェクトごとにこれを行います。

ローカライズするまでこのことは知りませんでしたが、それでも役に立ちます(新しい文字列を追加するときなど)。

22

Android Studioを使用している場合、欠落している文字列を簡単に見つけることができます。

Values/strings.xmlを右クリックして、[翻訳エディタを開く]を選択します: pic 1

以下のように、すべての言語で欠落している文字列を簡単に見つけることができる場所: enter image description here

ありがとうございました...

16
Nikhil Tuck

新しい公式Android Lintツールは、この問題や他の多くの問題を検出するのに役立ちます: http://tools.Android.com/tips/lint

13
satur9nine

SDKバージョン17以降、EclipseにはAndroid Dev Kit lintツールの大幅に改善されたバージョンがあります。こちらのドキュメントを参照してください。 新しいEclipse Lint UI

「lint」ツールバー項目をクリックしてプロジェクトで実行し、表示される「翻訳されていません」項目を開くだけで、翻訳が必要なすべてのタグが表示されます。

Satur9nineの功績-これは、私がこの問題に導いた彼らの回答の更新版です。

4
Tim T

Android lint(Eclipseから簡単にアクセスできます。プロジェクトを右クリックします-> Androidツール-> Lintを実行します。これによりリストが表示されます。不足しているすべての翻訳、およびいくつかの他の一般的なエラーの。

また、デフォルトの翻訳では利用できないリソースや文字列の重複も表示されます。

3
Bert Peters

Android Studio、分析>名前で検査を実行、次のように入力してカスタムスコープの検査を実行Project Production Files

  • 追加翻訳
  • 不完全な翻訳
2

不足しているすべての翻訳を取得する手順は次のとおりです。

  1. アプリレベルのbuild.gradleで翻訳がない場合のlintエラーを有効にする

    lintOptions {
       abortOnError false
       enable 'MissingTranslation'
    }
    
  2. level.gradle(ここでは英語とヒンディー語)のデフォルト構成内で比較する言語を追加します

    resConfigs "en", "hi"
    
  3. デフォルトのstrings.xmlを右クリックします。次に、分析->コードの検査

enter image description here

  1. 検査結果を確認してください。 Android-> Lint->正確さ->メッセージ>不完全な翻訳

enter image description here

  1. 選択したすべての文字列に翻訳がありません
1
Shahbaz Hashmi

私はMOTODEV Studioのプロダクトマネージャーです。 @hjwが述べたように、これは「ローカリゼーションファイルエディター」と呼ばれるMOTODEVスタジオの機能です。このエディタはスプレッドシートに似ており、すべての文字列を1つのビューで表示できます。同じビューでスプレッドシートまたは基になるXMLとして編集できます。

MOTODEV StudioはEclipseのブランドバージョンであるため、Eclipseを使用する場合、既存のプロジェクトで動作するはずです。既存のEclipseセットアップを引き続き使用したい場合でも、一度に1つのバージョンのみがワークスペースを開くことができる限り、MOTODEVスタジオを使用してstring.xmlファイルの編集を処理できます。

使い方について質問がある場合は、気軽にメッセージを送信するか、developer.Motorola.comのディスカッション掲示板に投稿してください。

1
Eric Cloninger

私はこの問題を正確に解決するためのツールを作成しました。このツールは https://github.com/vijtheveg/tea からダウンロードできます。

このツールは、AndroidプロジェクトからExcelスプレッドシートを生成できます。以下に示すようなプロジェクトで、ソース文字列とその翻訳を並べて表示します。 Excel spreadsheet for translation

最も重要なのは、最後の翻訳以降に新しく追加または変更された文字列のみが出力されることです

このExcelスプレッドシートを翻訳者に送信し、翻訳が入力されるとこのExcelファイルからターゲット言語の文字列XMLファイルを再生成できます

何よりも、このプロセス(ソース言語のXMLファイルの文字列を追加/削除/変更)->(Excelを生成して翻訳用に送信)->(ターゲット言語のXMLファイルを再生成)は何度でも実行できます。ツールはExcelファイルへの翻訳が必要な文字列のみを出力します。また、ソース言語から削除された文字列をターゲット言語のXMLファイルから削除します。

上記のツールのGitHubページの詳細。お役に立てば幸いです。

1
Vijayendra Vasu

getlocalization.com Webサイトを使用する場合、翻訳者がローカリゼーションを公に行うことを希望する場合は無料です(それ以外の場合は、プロジェクトプライベート)。

Eclipseプラグインを使用するだけで、Androidプロジェクト: http://getlocalization.github.io/Eclipse/ から文字列を自動的にインポートできます。

次に、これは、翻訳者が実際の翻訳を行うときに表示されるインターフェイスです。

screenshot of web interface given to translators

上のスクリーンショットを右クリックして、別のタブに大きな形式で表示することをお勧めします。それは実際によく考えられており、翻訳者の仕事も簡単にするはずです。

1

私が知っていることは何もありません、私は質問を支持しています。 :)ただし、ベストプラクティスとして、最初にデフォルトのstrings.xmlを完成させ、最後に翻訳します。また、翻訳の終わりを指定する小さなマーカーコメントを追加し、新しい文字列をその下に追加します。これは、翻訳されていないものを追跡するのに役立ちます。

-更新-

Eclipse用の最新のADTツールを使用すると、 Lint をインストールできます。これにより、重複に関するすべての問題と、その包括的な警告セットで多くの問題が処理されます。

1
PravinCG

Android向けMotoDev Studioをご存知ですか?ローカリゼーションツールを備えています。そのツール内では、すべての言語が列であり、すべてのテキストが行です。その「スプレッドシート」内で欠落している翻訳を見つけるのは非常に簡単です。もう1つの方法は、陳腐化した翻訳を見つけることです。

0
Harald Wilhelm

私はams(Android-missing-stringsの場合)と呼ばれるコマンドラインツールを作成しました。これは、欠落しているすべてのエントリと、基本のstrings.xmlファイルに表示されなくなった残りのエントリのレポートを出力します。

こちらから入手できます https://github.com/gubatron/Android-missing-strings

ams - Android Missing Strings reporting tool.

Usage:
ams [-l xx[,yy,zz...]] -o <output_file>

Options:
-h --help            Print this help


-l --lang <xx>       Specify a language or many with comma separated 2-char language codes.

                     e.g:  -l cn         (creates report for Chinese strings.xml)
                           -l cn,it,fr   (creates report for Chinese, Italian and French strings.xml files)

                     If this parameter is ommited, a report with every language file found will be created.


-o --oFile           Specify the output file name for the report

Copyright (c) 2014 - The Mit License (MIT)

Authors:
Angel Leon <[email protected]>
Katay Santos <[email protected]>
0
Gubatron

Amanuens を使用すると、未翻訳の文字列や、マスターファイルと翻訳済みファイルで一致しない文字列を簡単に識別できます。オプションで、翻訳ファイルとリポジトリとの同期を自動的に保つように構成できます。また、翻訳者にサービスへのアクセスを許可すると、使いやすいWebエディターを見つけてアプリケーションを翻訳できます。

0
Matteo Tomasini