В настоящее время я работаю над другим кодом, и мне нужно исправить ошибку, связанную с динамическим переводом c.
Когда язык изменяется, загрузчик перезагружается, он работает, но генерирует нежелательные эффекты (включая упомянутую выше ошибку).
Поэтому я попытался найти способ динамического изменения перевода без перезагрузки всего.
Я добавил m_engine->retranslate()
в своей функции switchLanguage
, и это работает отлично, но только для текстов, определенных непосредственно в файлах QML. Дело в том, что в классе основных контроллеров C ++ также есть много текста, определенного с помощью setContextProperty
, и для них он вообще не работает (что кажется вполне нормальным, поскольку m_engine является QQmlApplicationEngine
).
Я не понимаю, как я могу просто заставить эти тексты переводить тоже. У меня они есть почти в каждой функции контроллера, и они используются различными файлами QML. Я боюсь, что не будет другого выбора, кроме как полностью изменить способ управления переводом. Я надеюсь, что опытные программисты могут помочь мне с этим.
Другая информация: