В настоящее время портируем приложение для iPhone на Android. Я столкнулся с проблемой, которую не смог преодолеть.
На iPhone перевод вашего текста тривиален. Поместите все ваши строки / текст в Localizable.strings в формате:
"предложение переводить" = "предложение переведено"
Исходная строка может содержать любые символы любого типа.
Пытаясь воспроизвести нечто похожее на Android, в strings.xml я добавил все ключи, например:
предложение переведено
Тогда я надеялся сделать что-то вроде:
int resID = getResources().getIdentifier(tmp, "strings", "com.name.app_name");
где tmp содержит строку.
Получив resID, я могу получить переведенную строку с помощью findresourcebyId.
К сожалению, выяснилось, что это не так просто. Имя строки не может содержать пробел, не может начинаться с цифры и т. Д.
Eclipse ничего мне не показывает, но при попытке запустить код я просто получаю «В вашем проекте есть ошибки. Пожалуйста, исправьте их перед запуском приложения» и все. Ничего не вижу в журнале ошибок и т.д ..
Итак, каковы ограничения в названии ресурса на Android. Или есть способ обойти это и легко заменить одну строку другой. Я хотел бы сохранить исходный словарь текста, который я использовал на iPhone, чтобы все было просто и не возникало лишних ошибок.
Спасибо