From 090482a7ec56a85e998b9eb296839008f74f21af Mon Sep 17 00:00:00 2001 From: "pls.153" Date: Sat, 30 Apr 2022 15:27:48 +0200 Subject: [PATCH] i18n: after generating *.qm files, make it work in interpreted app too (testing) --- src/cpp/ecl_ext.cpp | 2 +- src/cpp/main.cpp | 3 ++- src/lisp/ini.lisp | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/cpp/ecl_ext.cpp b/src/cpp/ecl_ext.cpp index d96b467..73662fa 100644 --- a/src/cpp/ecl_ext.cpp +++ b/src/cpp/ecl_ext.cpp @@ -322,7 +322,7 @@ cl_object qtranslate(cl_object l_con, cl_object l_src, cl_object l_n) { if (n == -1) { l_ret = from_qstring(QCoreApplication::translate(context, source)); } else { - l_ret = from_qstring(QCoreApplication::translate(context, source, 0, n)); + l_ret = from_qstring(QCoreApplication::translate(context, source, nullptr, n)); } ecl_return1(ecl_process_env(), l_ret); } diff --git a/src/cpp/main.cpp b/src/cpp/main.cpp index c4a6ecb..32e1917 100644 --- a/src/cpp/main.cpp +++ b/src/cpp/main.cpp @@ -97,7 +97,8 @@ int main(int argc, char* argv[]) { } QTranslator translator; - if (translator.load(QLocale(), QString(), QString(), ":/i18n")) { + if ((QFile::exists("i18n") && translator.load(QLocale(), QString(), QString(), "i18n")) + || translator.load(QLocale(), QString(), QString(), ":/i18n")) { QCoreApplication::installTranslator(&translator); } diff --git a/src/lisp/ini.lisp b/src/lisp/ini.lisp index 1c16cf7..7d1411a 100644 --- a/src/lisp/ini.lisp +++ b/src/lisp/ini.lisp @@ -138,7 +138,8 @@ (context* (ignore-errors (eval context)))) `(qml:qtranslate ,(if (stringp context*) context* - (if *compile-file-truename* (file-namestring *compile-file-truename*) "")) + (file-namestring (or *compile-file-truename* + *load-truename*))) ,source* ,plural-number)))