Как локализовать название и дату / время приложения для iPhone - PullRequest
2 голосов
/ 10 июля 2009

Я знаю, как локализовать строки для приложения iPhone (с помощью NSLocalizedString и Localizable.strings) Как я могу сделать то же самое для отображения даты и времени? Прямо сейчас я использую NSDateFormatter для даты / времени.

Ответы [ 7 ]

2 голосов
/ 28 августа 2009

Чтобы локализовать название вашего приложения:

  1. Создайте папку локали с названием en.lproj для английского языка, de.lproj для немецкого, fr.lproj для французского и т. Д. Внутри папки проекта Xcode

  2. В каждой папке *.lproj создайте файл с именем InfoPlist.strings через Xcode:

    а. Нажмите на меню File и выберите New File...

    б. Выберите группу Other и нажмите Strings

    с. Добавьте новый файл строк с нужным именем в нужную папку локали

  3. В вашем проекте XCode перейдите к элементу InfoPlist.strings и откройте его треугольник раскрытия

  4. Нажмите en для английского языка и добавьте строку:

    CFBundleDisplayName = "AppNameInEnglish";

    Для немецкого языка, нажмите de и добавьте строку:

    CFBundleDisplayName = "AppNameAufDeutsch";

    И так далее ...

2 голосов
/ 25 августа 2011

Если вы хотите локализовать дату, сначала конвертируйте дату в двойную, используя следующий метод double double_date = (double) [date timeIntervalSince1970]; после этого вы можете преобразовать это двойное значение в любой формат, используя следующий код

    NSDateFormatter *dateformater =[[NSDateFormatter alloc] init];
    [dateformater setLocale:[NSLocale currentLocale]];
    [dateformater setDateStyle:NSDateFormatterLongStyle];//set current locale
    [dateformater setTimeStyle:NSDateFormatterShortStyle];
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:dateinDouble];//it return the the date according to the locale formate
2 голосов
/ 11 июля 2009

Мне пришлось локализовать часы и отобразить часы относительно пользовательских настроек (военное время, 24 часа) Вот мой код:

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setLocale: [NSLocale currentLocale]];
[dateFormatter setDateStyle:kCFDateFormatterNoStyle];
[dateFormatter setTimeStyle:kCFDateFormatterShortStyle];

NSLog([dateFormatter stringFromDate:[NSDate dateWithTimeIntervalSince1970:currentSong.timestamp]]);
1 голос
/ 12 апреля 2011

Вам не нужно делать ничего особенного, чтобы локализовать дату и время. NSDateFormatter делает это по умолчанию. Причина, по которой вы не видите желаемого поведения (я полагаю, именно поэтому вы задаете вопрос), заключается в том, что у вас, вероятно, неправильно установлен формат региона. Установка одного языка не достаточно. Измените «Формат региона» на вашем тестовом устройстве, и вы увидите локализованные даты: Настройки-> Международный-> Формат региона

0 голосов
/ 29 сентября 2010

Выберите «appname» -Info.plist, command-I и в окне выберите «Make File Localizable». Вернитесь на вкладку Общие и добавьте локализованные настройки с помощью кнопки «Добавить локализацию».

0 голосов
/ 10 июля 2009

Для заголовка приложения вы должны заглянуть в Локализация значений в списке свойств . Вкратце: используйте файлы InfoPlist.strings в ваших локализованных каталогах.

0 голосов
/ 10 июля 2009

Возможно, вы захотите взглянуть на NSLocale ... посмотрите Руководство по программированию локалей .Получение форматеров даты с константами из NSDateFormatter.h, например

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];

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

Вы можете проверить форматировщиктекущая локаль с [dateFormatter locale].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...