Локализация iPhone: действительно ли возможно перевести файлы пера легко, не имея необходимость копировать перо для каждого языка?

Вы можете сделать это следующим образом:

String foldername = @ "C: \ Users \" & amp; Environment.UserName

Получение имени пользователя с помощью команды: Environment.UserName

10
задан Kevlar 6 March 2009 в 20:31
поделиться

4 ответа

Лучшее, которое можно сделать, является рекурсивно циклом посредством каждого представления и затем устанавливает текст на них:

static void translateView(NSBundle *bundle, UIView *view)
{
    id idView = view;
    if ([idView respondsToSelector:@selector(text)] && [view respondsToSelector:@selector(setText:)])
        [idView setText:[bundle localizedStringForKey:[idView text] value:nil table:nil]];
    if ([idView respondsToSelector:@selector(title)] && [view respondsToSelector:@selector(setTitle:)])
        [idView setTitle:[bundle localizedStringForKey:[idView title] value:nil table:nil]];
    if ([idView respondsToSelector:@selector(placeholder)] && [view respondsToSelector:@selector(setPlaceholder:)])
        [idView setPlaceholder:[bundle localizedStringForKey:[idView placeholder] value:nil table:nil]];
    if ([idView respondsToSelector:@selector(prompt)] && [view respondsToSelector:@selector(setPrompt:)])
        [idView setPrompt:[bundle localizedStringForKey:[idView prompt] value:nil table:nil]];
    if ([idView respondsToSelector:@selector(titleForState:)] && [view respondsToSelector:@selector(setTitle:forState:)])
        [idView setTitle:[bundle localizedStringForKey:[idView titleForState:UIControlStateNormal] value:nil table:nil] forState:UIControlStateNormal];
    if ([idView isKindOfClass:[UITabBar class]] || [idView isKindOfClass:[UIToolbar class]])
        for (UIBarItem *item in [idView items])
            [item setTitle:[bundle localizedStringForKey:[item title] value:nil table:nil]];
    for (UIView *subview in [view subviews])
        translateView(bundle, subview);
}

Предупреждение: май необходимо проверить другие наборы селекторов для ловли всего. Это не лучшая практика, но она походит на намного меньшее количество работы

3
ответ дан 3 December 2019 в 18:36
поделиться

Встроенная программа командной строки Apple ibtool позволяет Вам сделать это. Можно вывести строки от XIB, локализовать их, затем создать новый XIB на основе существующего XIB, но использования локализованных строк. Таким образом, Вы можете всегда иметь основной набор XIBs и воссоздавать их всех каждый раз, когда локализованные строки изменяются.Более подробная информация: http://www.bdunagan.com/2009/03/15/ibtool-localization-made-easy/.

15
ответ дан 3 December 2019 в 18:36
поделиться

Я думаю, что Вы хотите читать об инструменте командной строки: ibtool. Это должно упростить то, что Вы надеетесь делать.

2
ответ дан 3 December 2019 в 18:36
поделиться

Возможно, необходимо обновить каждую строку вручную. Скажем, у Вас есть массив или XML-файл, строк на различных языках, когда пользователь изменяется, язык просто получают переведенную строку от массива и затем изменяют его на UI.

Marco

0
ответ дан 3 December 2019 в 18:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: