• В скрипте #!/bin/sh в переменную значение от выполнения (grep|awk|sed)

    @gonzo
    Обратные кавычки:

    x=`lsusb | grep ... | awk '{print $2}'`
    Ответ написан
    Комментировать
  • Локализация в xcode?

    @gonzo
    Слишком все у вас как-то запутано. Нужно вначале систематизировать что для чего нужно.

    1. Локализация информации о программе.

    Информация о приложении (название, коипрайт) содержится в файле Info.plist. Переведенные строки хранятся в файле InfoPlist.strings отдельно для каждого языка.

    2. Локализация строк из кода.

    Для локализации текста из кода (например, сообщений об ошибках) используется конструкция вида NSLocalizedStrings(@«key», @«comment») или CFCopyLocalizedString(«key», «comment»). NSLocalizedString ищет переводы в Localizable.strings, который создается и добавляется вручную. Ключи из кода достаются утилитой genstrings(1). Для добавления перевода достаточно добавить «key» = «перевод»; в Localizable.strings для нужного языка.

    3. Локализация XIB/storyboard

    В Xcode4 это работало так (для меня по крайней мере): для кажого языка была своя версия файла. Цикл перевода включал в себя доставание строк из xib/storyboard в стандартный .strings файл используя утилиту ibtool, перевод строк, генерацию локализованой версии xib (например ru.lproj/MainMenu.xib) с помощью того же ibtool.

    Xcode5 теперь позволяет убрать последний шаг, можно сразу создать ru.lproj/MainMenu.strings, где будут переводы строк из en.lproj/MainMenu.xib. Компоновка базового xib-а и переводов будет происходить во время выполнения.

    То есть если текст кнопки устанавливатеся в коде вручную с помощью NSLocalizedString, то «Back» = «Назад»; нужно писать в Localizable.strings. Если же это часть xib'а, то в русскую версию Main.strings добавляется «fqu-r0-dDY.title» = «Назад»;

    Поддерживать все это дело вручную даже на небольшом проекте та еще головная боль. Я когда-то использовал iLingual, но она не верх удобства и уже немного устарела. В результате написал свою тулзовину (disclaimer: она коммерческая, но если перевод всего на один язык, то регистрация не требуется)
    Ответ написан
    Комментировать