Я использую локализацию в своем приложении, но по какой-то причине некоторые строки (не все) не переводятся, вместо значения я вижу ключ. Я попытался проверить, находит ли приложение файлы локализации, выполнив следующие действия:
NSString *enPath = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
NSString *hePath = [[NSBundle mainBundle] pathForResource:@"he" ofType:@"lproj"];
NSString *ruPath = [[NSBundle mainBundle] pathForResource:@"ru" ofType:@"lproj"];
NSString *esPath = [[NSBundle mainBundle] pathForResource:@"es" ofType:@"lproj"];
NSString *frPath = [[NSBundle mainBundle] pathForResource:@"fr" ofType:@"lproj"];
NSString *arPath = [[NSBundle mainBundle] pathForResource:@"ar" ofType:@"lproj"];
И ни один из них не равен нулю.
Я проверил имя файла локализации, оно Localizable.strings
, как и должно быть. Также проверил, существует ли ключ внутри файлов Localizable.strings
и он есть.
Я также пробовал:
- Пустой кэш
- Очистка всех целей
- Удалить папку производных данных
- Начать сначала
- Сбросить симулятор
- Преобразовать в UTF-16
- Удалите все файлы локализации и создайте их заново.
Также пытался сделать все, что есть в этом< /а> вопрос.
Важно сказать, что это проблема не только Симулятора/Кэша. Это также отображается на устройствах, которые загружают приложение. (У меня есть учетная запись Enterprise).
Что еще я могу сделать, чтобы выявить или устранить проблему?