Руководство программиста в Photon (953920), страница 39
Текст из файла (страница 39)
Рис. 14-2. Диалог "Language Selection"
-
Выберите желаемый язык из списка поддерживаемых типов языковых файлов.
-
Щёлкните на "Add".
-
В этом месте Вам потребуется подтвердить свой выбор. Щёлкните на "Yes".
Диалог "Language Selection" закроется, и Вы теперь увидите вновь созданный файл перевода в списке доступных переводов.
Редактирование существующего файла перевода
Чтобы отредактировать файл перевода в списке переводов [список "Translactions" диалога "PhAB Language Editor" – прим. пер.]
-
Щёлкните на нужном языке в списке.
-
Щёлкните на клавише "Open".
Появится диалог "Text Translation Editor". Этот текстовый редактор отображает все текстовые строки, доступные для перевода, в текущей базе данных языков.
Перевод текста
Чтобы перевести текстовую строку:
-
Щёлкните на текстовой строке, которую Вы хотите перевести. Выбранная текстовая строка отобразится в текстовой области в верхней части окна:
Default text принимаемый по умолчанию текст, привязанный к приложению
Translation текущий перевод (если имеется) для текстовой строки. Это область, используемая Вами для набора нового перевода.
|
|
При редактировании перевода Вы можете использовать кнопки вырезки, копирования и вставки, расположенные над областью перевода.
-
Сразу по изменении переводимой строки, выше области перевода появятся кнопки с зелёной птичкой и красным крестиком.
-
Щёлкните на зелёной птичке, чтобы принять Ваши изменения (кнопкой быстрого доступа является <Ctrl> – <Enter>).
-
Щёлкните на красном крестике, чтобы отменить Ваши изменения.
Повторите вышеприведенные шаги для всех строк, которые Вы хотите перевести. Когда закончите, щёлкните на кнопке "Save & Close".
Горячие клавиши
При переводе приложения появляется проблема, связанная с тем, что назначенные горячие клавиши больше не соответствуют переводимой строке, если та не включает значение клавиши быстрого доступа. Исходя из этого соображения, PhAB добавляет в базу данных языка также и строки клавиши быстрого доступа.
При переводе текстовой строки переводчик может также изменить клавишу быстрого доступа. Если клавиша, используемая в качестве горячей, не является функциональной (т.е. код клавиши меньше 0хF000), PhAB автоматически изменит горячую клавишу, чтобы соответствовать клавише быстрого доступа.
Например, предположим, Ваше приложение имеет кнопку с надписью "Cancel". Вы устанавливаете в С значение ресурса Pt_ARG_ACCEL_KEY, и монтируете <Alt> – <C> для вызова ответной реакции Pt_CB_HOTKEY.
Когда Вы генерируете базу данных языков, Вы обнаружите, что она включает надпись на кнопке и её клавишу быстрого доступа. Если Вы переводите приложение на французский, надпись на кнопке станет "Annuler", так что горячая клавиша <Atl> – <C> больше не подходит. Просто переведите Pt_ARG_ACCEL_KEY на А, и горячей клавишей автоматически станет <Alt> – <A>, когда Вы запустите приложение на французском.
Вы должны убедиться, что отсутствуют повторяющиеся клавиши быстрого доступа. Если это, к несчастью, случится, будет признана только первая заданная клавиша.
Ресурсы help'a
Если Вы используете просмотровщик помощи (Photon Helpviewer) для организации помощи в Вашем приложении и планируется обеспечить для Вашего приложения многоязычные файлы помощи, переводчик также может перевести так называемые маршруты тем помощи, чтобы указать правильные позиции внутри соответствующих файлов помощи.
Функции перевода
Вы можете строить свой собственный редактор языков, если обнаружите, что предлагаемый по умолчанию не соответствует Вашим потребностям. Вы найдёте эти функции полезными.
AlClearTranslation() | Удаляет все переводы в базе данных языков или сообщений |
AlCloseDBase() | Закрывает базу данных языков или сообщений |
AlGetEntry() | Получает вход из базы данных языков или сообщений |
AlGetSize() | Получает число записей в базе данных языков или сообщений |
AlOpenDBase() | Загружает базу данных языков или сообщений |
AlReadTranslation() | Читает файл перевода в базе данных |
AlSaveTranslation() | Сохраняет переводы в базе данных языков или сообщений |
AlSetEntry() | Устанавливает переведенную стоку для входа базы данных |
Вы можете использовать эти функции, чтобы создать свой собственный редактор языков, или преобразовать базу данных языков в файл другого формата (например, так Вы сможете переслать файл в не-Photon'овскую или не-QNX'овскую систему для перевода).
Запуск Вашего приложения на исполнение
После того как база данных языков полностью переведена, последним шагом является запуск приложения.
Когда Вы создаёте файлы перевода, они помещаются в той же директории, что и файл Вашего приложения abapp.dfn. Вы можете рассматривать это как рабочие версии файлов. Когда Вы запускаете Ваше приложение из PhAB'а, это является используемыми Вами версиями.
Когда Вы запускаете Ваше приложение вне PhAB, оно просматривает файлы перевода в следующем порядке:
-
В директориях, перечисленных в переменной окружения ABLPATH, если она задана. Этот список имеет вид: dir:dir:dir:dir.
В отличие от переменной окружения PATH, текущая директория должна указываться точкой, а не пробелом. Пробел указывает директорию, где располагается исполняемый файл.
-
В той же директории, где располагается исполняемый файл, если переменная окружения ABLPATH не определена.
Для того, чтобы API PhAB знал, какой файл перевода Вы хотите использовать, Вы должны установить значение переменной ABLANG в одно из следующих значений:
Язык | Значение |
Бельгийский французский | fr_Be |
Канадский английский | en_CA |
Канадский французский | fr_CA |
Датский | da_DK |
Голландский | nl_NL |
Французский | fr_FR |
Немецкий | de_DE |
Итальянский | it_IT |
Японский | ja_JP |
Норвежский | no_NO |
Польский | pl_PL |
Португальский | pt_PT |
Словацкий | sk_SK |
Испанский | es_ES |
Шведский | se_SE |
Швейцарский французский | fr_CH |
Швейцарский немецкий | de_CH |
Английский английский | en_GB |
Американский английский | en_US |
Этот список приведен на момент написания этого документа, но с тех пор мог быть обновлён. Чтобы получить последнюю версию, см. файл /usr/photon/appbuilder/languages.def
[Хе-хе. В безнадёжных поисках ru_RU – Прим.пер.]
Например, чтобы запустить приложение на немецком (как выражаются, в Германии), Вы должны сделать следующее:
$ export ABLANG=de_DE
$ myapplication
Приложение ищет наилучшую возможность совпадения. Например, если расширение языка задано как fr_CA, поиск выполняется следующим образом:
-
Точное совпадение (например, fr_CA);
-
Совпадение в основном (например, fr);
-
Совпадение по групповому символу (например, fr*).
Если никакого перевода не найдено, используется оригинальный текст приложения.
Команда export может быть помещена в профайл входящего пользователя, так что приложение будет запускаться на языке, предопределённом каждым пользователем.
Распространение Вашего приложения
Когда Вы отправляете Ваше приложение клиенту, Вы должны убедиться, что включили файлы переводов в Ваш лист отправки. Например, если Ваше приложение называется myapp, ти у Вас есть файлы переводов на французкий и немецкий, Вам надо включить в приложение файлы myapp.fr_FR и myapp.de_DE.
Эти файлы должны располагаться:
-
В директориях, перечисленных в переменной окружения ABLPATH, если она задана. Этот список имеет вид:
dir:dir:dir:dir
В отличие от переменной окружения PATH, текущая директория должна указываться точкой, а не пробелом. Пробел указывает директорию, где располагается исполняемый файл.
-
В той же директории, где располагается исполняемый файл, если переменная окружения ABLPATH не определена.
Если Вы хотите, чтобы каждый клиент мог переводить приложение, Вы также должны распространять с приложением:
-
языковый редактор (phablang), который можно разместить в директории /usr/bin/photon.
-
файл определения языков (languages.def), который должен быть установлен в той же директории, что и редактор.
-
базу данных языков приложеения (myapp.ldb).
База данных языков и файл перевода, созданные клиентом, должны размещаться:
-
в одной из директорий, перечисленных в переменной окружения ABLPATH, если она задана.
-
В той же директории, где располагается исполняемый файл, если переменная окружения ABLPATH не определена.
Глава 15. Контекстно-чувствительная помощь
Эта глава описывает, как обеспечить в Вашем приложении контекстно-чувствительную помощь:
-
Создание текста помощи
-
Ссылки на темы помощи
-
Связывание помощи с виджетами
-
Доступ к помощи из Вашего кода
Создание текста помощи
Чтобы создать текст помощи для чтения Photon'овским просмотровщиком помощи, Вам потребуется два типа файлов:
-
сами файлы помощи
-
файлы с таблицами содержания
Файлы помощи
Файлы помощи пишутся на HTML и имеют расширение .html. Просмотровщик помощи поддерживает следующие тэги (с атрибутами):
Элемент | Тэги | Атрибуты |
Комментарий | <!--комментарий--> | |
Документ | <html>...</html> | |
Заглавие | <head>...</head> | |
Название | <title>...</title> | |
Связь | <link> | href=usr, rel=string |
Тело | <body>...</body> | |
Заголовок 1 | <h1>...</h1> | id=string, align={left, center, right} |
Заголовок 2 | <h2>...</h2> | id=string, align={left, center, right} |
Заголовок 3 | <h3>...</h3> | id=string, align={left, center, right} |
Заголовок 4 | <h4>...</h4> | id=string, align={left, center, right} |
Заголовок 5 | <h5>...</h5> | id=string, align={left, center, right} |
Заголовок 6 | <h6>...</h6> | id=string, align={left, center, right} |
Правило | <hr> | id=string |
Параграф | <p>...[</p>] | id=string |
Обрыв строки | <br> | id=string |
Образ | <img> | src=url, align={top,middle,bottom}, alt=string, id=string (см. прим. внизу) |
Анкер | <a>...</a> | href=url, name=string, id=string |
Предварительное форматирование | <pre>...</pre> | id=string |
Блок ссылки | <blockquote>...</ blockquote> | id=string |
Адрес | <adress>...</adress> | id=string |
Примечание | <note>...</note> | src=url, id=string |
Список описания | <dl>...</dl> | compact, id=string |
Термин | <dt>...[/dt>] | id=string |
Описание | <dd>...[/dd>] | id=string |
Упорядоченный список | <ol>...</ol> | id=string |
Неупорядоченный список | <ul>...</ul> | id=string |
Пункт списка | <li>...</li> | id=string |
Визуальное выделение | <em>...</em> | id=string |
Сильный | <strong>...</strong> | id=string |
Код | <code>...</code> | |
Образец | <samp>...</samp> | id=string |
Клавиатура | <kbd>...</kbd> | id=string |
Переменная | <var>...</var> | id=string |
Определение | <dfn>...</dfn> | id=string |
Ссылка | <cite>...</cite> | id=string |
Телетайп | <tt>...</tt> | id=string |
Жирный | <b>...</b> | id=string |
Наклонный | <i>...</i> | id=string |
Подчёркнутый | <u>...</u> | id=string |
Таблица | <table>...</table> | border, aling={left,center,right}, id=string |
Шапка таблицы | <th>...</th> | aling={left,center,right}, id=string |
Данные таблицы | <td>...[</td>] | aling={left,center,right}, id=string |
Строка таблицы | <tr>...[</tr>] | id=string |
Просмотровщик помощи использует виджеттт PtWebClient и поддерживает общие форматы образов Интернета. Он также поддерживает объекты стандарта HTML 3.2/ISO для символов, а также следующее:
Объект | Смысл | Отображается как: |
| Фиксированный пробел | Пробел |
  | Широкий пробел | Пробел |
  | Узкий (нормальный) пробел | Пробел |
— | Широкая черта (тире) | Штрих (–) |
– | Короткая черта (дефис) | Штрих (–) |
“ | Левые двойные кавычки | " |
” | Правые двойные кавычки | " |
‘ | Левые одинарные кавычки | ' |
’ | Правые одинарные кавычки | ' |
™ | Торговая марка | ТМ |
Файлы таблиц содержания
Файлы таблиц содержания (Table-of-contents-TOC) определяют список продуктов, имеющих информационную помощь, и иерархию тем для каждого продукта. Эти файлы имеют расширение .toc. Все они располагаются в директории /usr/help/product. Каждый продукт имеет TOC-файл 1-го уровня и директорию с чем-либо ещё. Так, например, помощь по Photon'у включает: