2012-06-18 2 views
0

У меня есть куча следующей строки кода:поддержку интернационализации для NSString-х

[NSString stringWithFormat:@"%@ and %@", subject.title, secondsubject.title]; 

[NSString stringWithFormat:@"%@ and %d others", subject.title, [newsfeeditem count] - 1]; 

и многое другое в приложении. В основном я создаю стиль новостей, например, facebook, где он имеет строковые константы. Бла нравилось бла. Где/как я должен делать эти строковые константы, поэтому это легко сделать для интернационализации? Должен ли я иметь файл только для хранения строковых констант?

+0

Это довольно хороший учебник: http://www.raywenderlich.com/2876/how-to-localize-an-iphone-app-tutorial –

+0

Существует еще один хороший учебник [здесь] (http: // www.delitestudio.com/2012/09/11/how-to-internationalize-an-os-x-ios-app/). – DreamOfMirrors

ответ

2

См. Раздел руководства по программированию ресурсов в разделе String Resources. Ключевой раздел для этой конкретной проблемы - «Форматирование строк».

Вы бы что-то вроде:

[NSString stringWithFormat:NSLocalizedString(@"%[email protected] and %[email protected]", @"two nouns combined by 'and'"), 
          subject.title, secondsubject.title]; 

%[email protected] является расположение первой замены. Это позволяет переупорядочить текст. Тогда вы бы строковые файлы ресурсов, как:

английского языка:

/* two nouns combined by 'and' */ 
"%[email protected] and %[email protected]" = "%[email protected] and %[email protected]"; 

Испанский:

/* two nouns combined by 'and' */ 
"%[email protected] and %[email protected]" = "%[email protected] y %[email protected]"; 

Вы должны быть очень вдумчивый о таких комбинациях. Во-первых, вы никогда не сможете создать предложение из частей предложений в переводе. Вам почти всегда нужно переводить все сообщение за один раз. Я имею в виду, что вы не можете иметь одну строку, которая говорит @"I'm going to delete" и другую строку, которая говорит @"%@ and %@", и склеить их вместе. Порядок слов слишком велик между языками.

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

Но приведенные выше инструменты очень полезны для решения проблемы, которую вы обсуждаете. Подробнее см. В документах.

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