1

Я работаю над локализацией своего приложения, и я заинтересован в том, чтобы «централизовать» все локализуемые строки в моем приложении, предоставляемые из некоторого статического метода: [AppStrings stringWithType: type].iOS Каков правильный способ обработки вложенного текста в приложение программно?

С одной стороны, кажется, что централизованный метод облегчит редактирование локализуемых строк в будущем, но, с другой стороны, сама строка перестает быть читаемой, и мне нужно будет определить множество перечисляемых типов ,

Каков правильный способ локализации строк в большом проекте (более 100 строк для локализации)? Я вставляю NSLocalizedString() в код или пытаюсь каким-то образом централизовать предоставление этих строк?

typedef enum : NSUInteger { 
    ksCheckingCredentials, 
    ksError 
} kStringType; 

+(NSString*)stringWithType:(int)type 

{ 
    switch (type) { 
     case ksCheckingCredentials: 
      return NSLocalizedString(@"Checking Credentials", 
           @"Inform the user that credentials check is being performed"); 
      break; 
     case ksError: 
      return NSLocalizedString(@"Error", 
            @"Generic error message to display to the user"); 
      break; 
     default: 
      break; 
    } 
} 

- или-- ли я просто использовать приведенный ниже код, в 100 различных местах в моем приложении?

self.errorLabel.text = NSLocalizedString(@"Error",@"Generic error message to display to the user"); 

ответ

3

Скорее всего, вы захотите повторно использовать переводы по всему приложению. Например, коэффициенты везде, где есть ошибка, вы хотите эту же локализованную строку ошибок. Способ я сделал это в прошлом:

  1. Сделать LocalizedDefs.h файл (имя не имеет значения), и импортировать его в течение вашего приложения. Там вы разместите серию #define для ваших строк NSLocalized.

Пример:

#define ksLocalizedError NSLocalizedString(@"Error", @"Generic error message to display to the user")

Затем в коде, где вы хотите эту ошибку, вы просто положить в ksLocalizedError.

  1. Наконец-то вы хотите, чтобы ваши переводы (очевидно), поэтому в ваших файлах Localizeable.strings просто установите переводы.

Пример: "Error" = "Error";

+0

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

Смежные вопросы