Подтвердить что ты не робот

Android: есть ли простой способ найти все строки в моем проекте?

Я хочу отсканировать свой проект Android для всех жестко закодированных строк, чтобы я мог локализовать проект, поставив строки в strings.xml. Я вижу вариант в Eclipse для "Externalize Strings...", но он не специфичен для Android.

Я знаю вы можете реорганизовать отдельные строки, но я бы хотел реорганизовать все строки сразу. У меня тонна файлов, и я стараюсь избегать каждого из них вручную.

4b9b3361

Ответ 1

Я бы просто открыл окно терминала (шпатлевка, если вы на окнах) в корневом каталоге вашего проекта. Затем вы можете запустить что-то вроде следующего:

grep -r --include=*.java '="[^"\r\n]*"' ./*  --to look for something like this String test="text";, a string with =""
or
grep -r --include=*.java '"[^"\r\n]*"' ./*  -- to look for any string, anything enclosed in ""

Конечно, следующая часть состоит в том, чтобы на самом деле заменить строки на Strings.xml, которые также могут быть написаны сценарием, но могут потребовать больше усилий.

Ответ 2

Я сам искал это. Это хороший способ сделать это:

Щелкните правой кнопкой мыши по каталогу "src" → Источник → Внешние строки

Здесь вы найдете все строки, не являющиеся внешними, и вы можете их обойти.

Надеюсь, это поможет:)

Edit:
Это не то же самое, что Android → Extract Android String. Но это может помочь вам найти все строки, не являющиеся внешними. Затем на каждой строке вам нужно будет выполнить:
Ctrl + 1 → Android → Извлечь строку Android.

Ответ 3

Field[] fields = R.string.class.getDeclaredFields(); // or Field[] fields = R.string.class.getFields(); String str = ""; for (int i =0; i < fields.length; i++) { int resId = getResources().getIdentifier(fields[i].getName(), "string", getPackageName()); str += fields[i].getName() + " = "; if (resId != 0) { str += getResources().getString(resId); } str += "\n"; }

Вы получите все коды строк со значениями в переменной "str".

Ответ 5

Я считаю, что Google CodePro аддон для Eclipse имеет эту функцию где-то там