Технические вопросы и ответы QA1605

Как делают я локализую строку меню Services для своей службы

Q: Как я локализую строку меню Services для своей службы?

A: Как я локализую строку меню Services для своей службы?

Когда Вы предоставляете услугу, или через Automator создал поток операций или через распространенную службу из Вашего приложения, можно обеспечить строку, представленную как пункт меню в меню Services, или в контекстных меню. Эта строка может быть локализована так, чтобы пользователи с различными предпочтениями языка могли легко найти Вашу службу. Рисунок 1 показывает службу в качестве примера, использующую строку пункта меню, «Применяют Тестовую Службу», локализовал на французский язык.

  Пример рисунка 1 локализованного элемента сервисного меню.

Пункт меню Services для Вашей службы объявляется в Вашем приложении или поток операций Automator Info.plist файл, под NSServices, NSMenuItem ключ. Всегда существует единственная запись в NSMenuItem словарь назвал «значение по умолчанию», содержащее текст по умолчанию, используемый для Вашего элемента сервисного меню, как показано в Перечислении 1.

  Раздел Info.plist службы Listing 1 Example.

<key>NSServices</key>
<array>
    <dict>
        <key>NSMenuItem</key>
        <dict>
            <key>default</key>
            <string>Apply Test Service</string>
        </dict>
...

Обратите внимание на то, что, если Ваше приложение предоставит многократные услуги, то будет NSMenuItem запись в Info.plist файл для каждой службы.

Добавление Локализованного файла ServicesMenu.strings

Для локализации этого текста необходимо будет добавить, что UTF-16 закодировал строковый названный файл ServicesMenu.strings к Вашему проекту приложения или ресурсам пакета потока операций Automator (подробные данные о том, как сделать, это ниже). Это представляет файл в виде строки, будет содержать, для каждого элемента сервисного меню, который Вы обеспечиваете, запись, использующая текст по умолчанию в качестве ключа и переведенного текста как значение. Для каждого языка Вы хотите поддерживать, Вы обеспечите переведенный ServicesMenu.strings файл в специфичном для языка проекте (.lproj) каталог в Ваших ресурсах проекта. Как пример, французская версия ServicesMenu.strings файл для службы в качестве примера, показанной на рисунке 1 с файлом Info.plist, описанным в Перечислении 1, посмотрел бы что-то как Перечисление 2 и будет найден в Resources/fr.lproj каталог в пакете проекта службы в качестве примера.

  Пример перечисления 2 файл ServicesMenu.strings.

/*     ServicesMenu.strings      Created on 3/12/10. */  "Apply Test Service" = "Appliquer Service Test";

Если Вы предоставите услугу через приложение, то Вы добавите свой локализованный ServicesMenu.strings файл к Вашему проекту приложения через XCode или другой предпочтительный инструмент разработчика управления локализацией (такой как AppleGlot). Если Вы предоставите услугу от создаваемого потока операций Automator, то необходимо будет вручную добавить строковые файлы и .lproj каталоги ресурса к пакету потока операций. Можно найти, что Automator создал пакеты потока операций в корневом каталоге под ~/Library/Services.

Обновление меню Services

Как только Вы обеспечили локализованный текст для своего заголовка элемента сервисного меню, Вы, возможно, должны обновить список меню Служб для наблюдения изменений. Один способ обновить список служб, показанных в меню Services, при помощи средства отладки служб pbs. Это - инструмент командной строки, расположенный в /System/Library/CoreServices это обеспечивает полезные функции отладки служб, такие как обновление списка служб или распечатывания текущий список зарегистрированных служб. Перечисление 3 показывает пример командной строки, можно ввести в Терминальное приложение для обновления списка служб для английского и французского языка.

  Использование перечисления 3 В качестве примера PBS для обновления служб.

/System/Library/CoreServices/pbs -existing_languages en fr

Больше информации

Для получения дополнительной информации о Службах, включая подробные данные о других свойствах служб в Info.plist файл, см. Руководство по внедрению Служб. Для получения дополнительной информации об Интернационализации, Локализации, пакеты, ресурсы и строковые файлы, видят, что Интернационализация Программирует руководство по Темам.



История версии документа


ДатаПримечания
29.03.2010

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