Почему мое приложение не загружает файлы перевода lib

У меня есть приложение щелчка, которые зависят от некоторого lib,
и у меня есть пакет что lib в пакете щелчка.
lib загружается хорошо. но файл переводов (.mo) не основан.
мой файл щелчка бесплатный взгляд как это:

/
/share
/share/locale/<LANG>/LC_MESSAGES/somlib.mo
/lib/i386-linux-gnu/somelib.so

Конечно, существует больше файлов, но это, что я думаю что важный для вопроса.

я также пытаюсь поставить его /usr/share/locale/<LANG>/LC_MESSAGES/somlib.mo

но что я нашел, что попытка lib найти файлы переводов на реальном /usr/share/locale/... что у меня нет доступа к нему с пакетом щелчка для помещения файлов там...
(я копирую файлы в этот путь с mv, и это - работа),

Я пытался использовать strace знать, где тот lib ищут его файлы, но я не знаю, как сделать это по телефону (использующий эмулятор). попытка strace qmlscene дал мне ошибку, которую я должен подключить к серверу Мира или чему-то как этот.

Спасибо.

1
задан 19 June 2015 в 02:42

1 ответ

Каталогом, где gettext будет искать переводы для конкретного домена перевода, управляют bindtextdomain функция. Библиотека, скорее всего, имеет вызов к этой функции где-нибудь в ее стандартных программах инициализации. Таким образом, две опции, которые Вы могли попробовать:

  1. Изменяют библиотеку так эти bindtextdomain, вызов определяет каталог на основе $APP_DIR. Таким образом, где библиотека могла бы работать:

    bindtextdomain (PACKAGE, PACKAGE_LOCALE_DIR);
    

    Вы могли бы изменить его на что-то как:

    const char *app_dir = getenv("APP_DIR");
    if (app_dir) {
        char *localedir = NULL;
        asprintf(&localedir, "%s/share/locale", app_dir);
        bindtextdomain(PACKAGE, localedir);
        free(localedir);
    } else {
        /* Not running as a click package: use compiled in default */
        bindtextdomain(PACKAGE, PACKAGE_LOCALE_DIR);
    }
    
  2. Выполняют второй вызов к bindtextdomain, который будет бежать за инициализацией библиотеки, которая устанавливает корректный каталог для домена перевода библиотеки (возможно использующий код, подобный вышеупомянутому).

трудно дать больше совет, не зная больше о специфических особенностях.

2
ответ дан 10 November 2019 в 10:51

Другие вопросы по тегам:

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