Nano Hash - криптовалюты, майнинг, программирование

Измените язык приложения программно с помощью раскадровки

Мне нужно создать приложение для iPhone, которое будет довольно простым приложением с парой форм, которые отправляют некоторые данные в веб-приложение. Когда пользователь впервые открывает приложение, ему должен быть представлен экран выбора языка.

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

Теперь, как лучше всего реализовать второй язык (французский), поскольку я впервые имею дело с локализованными приложениями. После некоторых поисков я понял, как добавить новый язык/локализацию в раскадровку, и все работает, как задумано, когда в настройках телефона выбран правильный язык. Теперь мне нужно вызвать правильную раскадровку, когда пользователь нажимает на флаг страны в настройках приложения.

Когда пользователь нажимает на флажок, его выбор записывается в стандартные значения UserDefaults. И после этого я пытаюсь перейти на правильную раскадровку.

Некоторый код, который я нашел, выглядит так, что он может быть полезен:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *rootVC = [storyboard instantiateInitialViewController];

Код не работает, так как я не знаю, как вызвать французскую раскадровку.

Любой более простой способ?


Ответы:


1

Почему бы вам не использовать поддержку родного языка. Просто установите свои labelFields, например

labelField.text = NSLocalizedString(@"key", nil);

У вас будет файл Localized.strings с этим

"key" = "translated key";

Приложение автоматически выберет язык, на который настроено устройство.

22.05.2012
  • Нужен этот глупый экран выбора языка, потому что парню, который разработал приложение, нравится, как оно выглядит, и он хочет иметь эту опцию. Если бы я мог реализовать ваше решение с возможностью смены языка на лету, это было бы здорово. 22.05.2012
  • Конечно, вы можете реализовать это решение с помощью чего-то вроде [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@de, @en, @fr, nil] forKey:@AppleLanguages]; 22.05.2012
  • Но попробуй убедить парня, который разработал этот дурацкий интерфейс, может он об этом не знает. 22.05.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..