From a51abb7f953e18b947a673bc104db4c80c71547e Mon Sep 17 00:00:00 2001 From: asanoaozora Date: Thu, 14 Sep 2017 11:32:16 +0200 Subject: manage the languages with Qt tools, tested for english and japanese --- src/build.sh | 11 +- src/hmi/config/fsa_seoul.conf | 22 ++ .../gdp-theme/800x480/NavigationAppSettings.xcf | Bin 236815 -> 244848 bytes src/hmi/hmi-launcher/CMakeLists.txt | 40 ++- src/hmi/hmi-launcher/main.cpp | 4 + src/hmi/hmi-launcher/translator.h | 70 +++++ src/hmi/qml/Core/NavigationAppEntryField.qml | 2 +- src/hmi/qml/Core/genivi-capi.js | 4 +- src/hmi/qml/Core/genivi-origin.js | 4 +- src/hmi/qml/NavigationApp.qml | 13 + src/hmi/qml/NavigationAppBrowseMap.qml | 16 +- src/hmi/qml/NavigationAppMain.qml | 12 +- src/hmi/qml/NavigationAppMap.qml | 2 +- src/hmi/qml/NavigationAppPOI.qml | 4 +- src/hmi/qml/NavigationAppSearch.qml | 38 +-- src/hmi/qml/NavigationAppSettings.qml | 37 ++- src/hmi/qml/NavigationAppTripComputer.qml | 16 +- src/hmi/translations/deu_DEU.js | 100 ------- src/hmi/translations/deu_DEU_Latn.ts | 300 ++++++++++++++++++++ src/hmi/translations/eng_USA.js | 100 ------- src/hmi/translations/eng_USA_Latn.ts | 301 +++++++++++++++++++++ src/hmi/translations/fra_FRA.js | 100 ------- src/hmi/translations/fra_FRA_Latn.ts | 300 ++++++++++++++++++++ src/hmi/translations/jpn_JPN.js | 99 ------- src/hmi/translations/jpn_JPN_Hrkt.ts | 301 +++++++++++++++++++++ src/hmi/translations/kor_KOR_Hang.ts | 300 ++++++++++++++++++++ src/hmi/translations/translating-qml.pro | 12 + src/run | 6 +- src/update_third_party.sh | 2 +- src/update_translation.sh | 8 + 30 files changed, 1754 insertions(+), 470 deletions(-) create mode 100644 src/hmi/config/fsa_seoul.conf create mode 100644 src/hmi/hmi-launcher/translator.h delete mode 100644 src/hmi/translations/deu_DEU.js create mode 100644 src/hmi/translations/deu_DEU_Latn.ts delete mode 100644 src/hmi/translations/eng_USA.js create mode 100644 src/hmi/translations/eng_USA_Latn.ts delete mode 100644 src/hmi/translations/fra_FRA.js create mode 100644 src/hmi/translations/fra_FRA_Latn.ts delete mode 100644 src/hmi/translations/jpn_JPN.js create mode 100644 src/hmi/translations/jpn_JPN_Hrkt.ts create mode 100644 src/hmi/translations/kor_KOR_Hang.ts create mode 100644 src/hmi/translations/translating-qml.pro create mode 100755 src/update_translation.sh diff --git a/src/build.sh b/src/build.sh index a22d18f..4ec8739 100755 --- a/src/build.sh +++ b/src/build.sh @@ -128,6 +128,11 @@ then rm -f ./build/CMakeCache.txt rm -f ./build/cmake_install.cmake rm -f ./build/Makefile + rm -f ./build/hmi/cmake_install.cmake + rm -f ./build/hmi/Makefile + rm -f ./build/hmi/hmi-launcher/cmake_install.cmake + rm -f ./build/hmi/hmi-launcher/Makefile + rm -rf ./build/hmi/hmi-launcher/moc fi fi @@ -161,9 +166,9 @@ echo 'build fsa' if [ "$clean" = 1 ] then cmake -DWITH_DLT=$dlt_option $commonapi_tools_option -DWITH_DEBUG=$debug -DWITH_STYLESHEET=$theme_option -DWITH_VEHICLE_GATEWAY=$gateway -DWITH_HTML_MIGRATION=$html ../ - echo 'replace a missing font in the configuration file of navit instances' - sed -i -e 's/Liberation Sans/TakaoPGothic/' ./navigation/navit/navit/navit_genivi_mapviewer.xml - sed -i -e 's/Liberation Sans/TakaoPGothic/' ./navigation/navit/navit/navit_genivi_navigationcore.xml + echo 'Allow to display Korean and Japanese by replacing a font in the configuration file of navit instances' + sed -i -e 's/Liberation Sans/NanumGothic/' ./navigation/navit/navit/navit_genivi_mapviewer.xml + sed -i -e 's/Liberation Sans/NanumGothic/' ./navigation/navit/navit/navit_genivi_navigationcore.xml fi make cd ../ diff --git a/src/hmi/config/fsa_seoul.conf b/src/hmi/config/fsa_seoul.conf new file mode 100644 index 0000000..71996d1 --- /dev/null +++ b/src/hmi/config/fsa_seoul.conf @@ -0,0 +1,22 @@ +[Locale] +language=kor +country=KOR +script=Hang +[DefaultPosition] +latitude=37.538835 +longitude=126.993809 +altitude=19 +[DefaultAddress] +country="Korea, Republic of" +city=용산구 +street=서울특별시 +number=791-1 +[Settings] +simulationMode=true +showroom=true +autoguidance=false +radius=5000 +maxResultListSize=10 +defaultCategoryName=fuel +[Log] +verbose=true diff --git a/src/hmi/gimp/gdp-theme/800x480/NavigationAppSettings.xcf b/src/hmi/gimp/gdp-theme/800x480/NavigationAppSettings.xcf index a24cef1..5793f00 100644 Binary files a/src/hmi/gimp/gdp-theme/800x480/NavigationAppSettings.xcf and b/src/hmi/gimp/gdp-theme/800x480/NavigationAppSettings.xcf differ diff --git a/src/hmi/hmi-launcher/CMakeLists.txt b/src/hmi/hmi-launcher/CMakeLists.txt index 202ab1e..38a7e46 100644 --- a/src/hmi/hmi-launcher/CMakeLists.txt +++ b/src/hmi/hmi-launcher/CMakeLists.txt @@ -27,6 +27,9 @@ add_definitions("-fPIC") message(STATUS "hmi-launcher") find_program(XSLTPROC xsltproc REQUIRED) +find_program(QTMOC moc REQUIRED) +find_program(QTLRELEASE lrelease REQUIRED) +find_program(QTLUPDATE lupdate REQUIRED) find_package(PkgConfig REQUIRED) @@ -64,12 +67,13 @@ set(CMAKE_AUTOMOC ON) add_definitions(${QT5_CORE_DEFINITIONS}) add_definitions(-DQT_PLUGIN) add_definitions(-DQT_NO_DEBUG) -if(QT_MOC) - set(qt_moc ${QT_MOC} -o) -else() - set(qt_moc moc -o) -endif() + +set(qt_moc ${QTMOC} -o) +set(qt_release ${QTLRELEASE}) +set(qt_update ${QTLUPDATE}) + set(MOC moc) + set(MOC_DIR ${CMAKE_CURRENT_BINARY_DIR}/${MOC}) link_directories( @@ -122,6 +126,31 @@ set(CONSTANTS_PATH ${CMAKE_CURRENT_BINARY_DIR}) set(ICON_PATH ${NAVIT_PNG_BIN_DIR}) configure_file(${FILE_RESOURCE_IN} ${FILE_RESOURCE_OUT} @ONLY) +#generate or update ts files +execute_process( + COMMAND ${qt_update} ${CMAKE_CURRENT_SOURCE_DIR}/../translations/translating-qml.pro +) + +#generate qm files +file (GLOB TS_TO_RELEASE + ${CMAKE_CURRENT_SOURCE_DIR}/../translations/*.ts +) + +foreach(RAW_FILE ${TS_TO_RELEASE}) + get_filename_component(FILE ${RAW_FILE} NAME_WE) + if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/${FILE}.qm) + execute_process( + COMMAND ${qt_release} ${RAW_FILE} -qm ${CMAKE_CURRENT_BINARY_DIR}/${FILE}.qm + ) + else() + if(${RAW_FILE} IS_NEWER_THAN ${CMAKE_CURRENT_BINARY_DIR}/${FILE}.qm) + execute_process( + COMMAND ${qt_release} ${RAW_FILE} -qm ${CMAKE_CURRENT_BINARY_DIR}/${FILE}.qm + ) + endif() + endif() +endforeach() + # for some reason, automoc doesn't run, so moc is made manually set (SRC_TO_MOC ${CMAKE_CURRENT_SOURCE_DIR}/dbusif.h @@ -131,6 +160,7 @@ set (SRC_TO_MOC ${CMAKE_CURRENT_SOURCE_DIR}/wheelareaplugin.h ${CMAKE_CURRENT_SOURCE_DIR}/preference.h ${CMAKE_CURRENT_SOURCE_DIR}/settings.h + ${CMAKE_CURRENT_SOURCE_DIR}/translator.h ) execute_process( WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" diff --git a/src/hmi/hmi-launcher/main.cpp b/src/hmi/hmi-launcher/main.cpp index 38dadf9..e94643b 100644 --- a/src/hmi/hmi-launcher/main.cpp +++ b/src/hmi/hmi-launcher/main.cpp @@ -40,6 +40,7 @@ #include "wheelarea.h" #include "preference.h" #include "settings.h" +#include "translator.h" int main(int argc, char ** argv) { @@ -59,10 +60,13 @@ int main(int argc, char ** argv) Settings* settings=new Settings; settings->setIniCodec("UTF-8"); + Translator* translator=new Translator(); + int rc = 0; QQmlEngine engine; engine.rootContext()->setContextProperty("Settings",settings); + engine.rootContext()->setContextProperty("Translator",translator); QQmlComponent *component = new QQmlComponent(&engine); diff --git a/src/hmi/hmi-launcher/translator.h b/src/hmi/hmi-launcher/translator.h new file mode 100644 index 0000000..b445c79 --- /dev/null +++ b/src/hmi/hmi-launcher/translator.h @@ -0,0 +1,70 @@ +/** +* @licence app begin@ +* SPDX-License-Identifier: MPL-2.0 +* +* \copyright Copyright (C) 2017, PSA Group +* +* \file translator.h +* +* \brief This file is part of the FSA HMI. +* +* \author Philippe Colliot +* +* \version 1.0 +* +* This Source Code Form is subject to the terms of the +* Mozilla Public License (MPL), v. 2.0. +* If a copy of the MPL was not distributed with this file, +* You can obtain one at http://mozilla.org/MPL/2.0/. +* +* For further information see http://www.genivi.org/. +* +* List of changes: +* +* , , +* +* @licence end@ +*/ +#ifndef INCLUDE_TRANSLATOR +#define INCLUDE_TRANSLATOR + +#include +#include +#include +#include +#include +#include + +class Translator : public QObject +{ + Q_OBJECT + +public: + explicit Translator(QObject *parent = 0) : QObject(parent) {} + +signals: + void languageChanged(QString); + +public: + Q_INVOKABLE inline void setTranslation(const QString translation) { + QDir dir = QDir(qApp->applicationDirPath()).absolutePath(); + if(!mp_translator.load(translation, dir.path())) + { + qDebug() << "Failed to load translation file"; + }else{ + qApp->installTranslator(&mp_translator); + m_translation=translation; + emit languageChanged(translation); + } + } + Q_INVOKABLE inline QString getCurrentTranslation() const {return m_translation; } + Q_INVOKABLE inline QString getEmptyString() const {return QString();} + +private: + QTranslator mp_translator; + QString m_translation; +}; + +Q_DECLARE_METATYPE(Translator*) + +#endif diff --git a/src/hmi/qml/Core/NavigationAppEntryField.qml b/src/hmi/qml/Core/NavigationAppEntryField.qml index 0f0f7fd..e299132 100644 --- a/src/hmi/qml/Core/NavigationAppEntryField.qml +++ b/src/hmi/qml/Core/NavigationAppEntryField.qml @@ -74,7 +74,7 @@ Column { id:input; width: parent.width*3/4; height: parent.height; color: 'white'; font.pixelSize: parent.height*0.75 onMclicked: { callEntry(); } text: Genivi.data[globaldata]?Genivi.data[globaldata]:"" - wrapMode: Text.WordWrap + //wrapMode: Text.WordWrap clip: true MouseArea { anchors.fill: parent diff --git a/src/hmi/qml/Core/genivi-capi.js b/src/hmi/qml/Core/genivi-capi.js index 546f5e3..2debbd0 100644 --- a/src/hmi/qml/Core/genivi-capi.js +++ b/src/hmi/qml/Core/genivi-capi.js @@ -372,8 +372,6 @@ function setlang(language,country,script) g_language=language; g_country=country; g_script=script; - translations = new Array; - Qt.include("../../translations/"+g_language + "_" + g_country+".js"); if(g_language==="eng"){ keyboardLayout=englishLayout; allKeys=englishAllKeys; @@ -417,6 +415,8 @@ function setlang(language,country,script) //default keyboardLayout=germanLayout; allKeys=germanAllKeys; + kbdFirstLayout="ABC"; + kbdSecondLayout="123"; kbdColumns=8; //number of rows per line kbdColumnRatio=4; //size of row spacing (ratio) kbdLines=4; //number of lines diff --git a/src/hmi/qml/Core/genivi-origin.js b/src/hmi/qml/Core/genivi-origin.js index 34ac1a2..59650f0 100644 --- a/src/hmi/qml/Core/genivi-origin.js +++ b/src/hmi/qml/Core/genivi-origin.js @@ -372,8 +372,6 @@ function setlang(language,country,script) g_language=language; g_country=country; g_script=script; - translations = new Array; - Qt.include("../../translations/"+g_language + "_" + g_country+".js"); if(g_language==="eng"){ keyboardLayout=englishLayout; allKeys=englishAllKeys; @@ -417,6 +415,8 @@ function setlang(language,country,script) //default keyboardLayout=germanLayout; allKeys=germanAllKeys; + kbdFirstLayout="ABC"; + kbdSecondLayout="123"; kbdColumns=8; //number of rows per line kbdColumnRatio=4; //size of row spacing (ratio) kbdLines=4; //number of lines diff --git a/src/hmi/qml/NavigationApp.qml b/src/hmi/qml/NavigationApp.qml index 4ed7d34..8980d23 100644 --- a/src/hmi/qml/NavigationApp.qml +++ b/src/hmi/qml/NavigationApp.qml @@ -44,6 +44,7 @@ ApplicationWindow { width: StyleSheetMap.menu[Constants.WIDTH]; height: StyleSheetMap.menu[Constants.HEIGHT]; property Item component; + function load(page) { if (component) { @@ -79,6 +80,14 @@ ApplicationWindow { mode: 0 } + Connections { + target: Translator + onLanguageChanged: { + var translation = Translator.getCurrentTranslation(); + Genivi.hookMessage(dltIf,"Language updated",translation); + } + } + Component.onCompleted: { //init persistent data @@ -138,6 +147,10 @@ ApplicationWindow { var res3=Genivi.navigationcore_session_CreateSession(dbusIf,dltIf); Genivi.g_nav_session_handle[1]=res3[3]; + // load the translation file + var fileName=Genivi.g_language+ "_"+Genivi.g_country+ "_"+Genivi.g_script; + Translator.setTranslation(fileName); + //launch the HMI Genivi.hookMessage(dltIf,"Menu level",Genivi.entrybackheapsize); load("NavigationAppBrowseMap"); diff --git a/src/hmi/qml/NavigationAppBrowseMap.qml b/src/hmi/qml/NavigationAppBrowseMap.qml index 787b5d4..2c2c253 100644 --- a/src/hmi/qml/NavigationAppBrowseMap.qml +++ b/src/hmi/qml/NavigationAppBrowseMap.qml @@ -86,7 +86,7 @@ NavigationAppHMIMenu { { Genivi.hookSignal(dltIf,"routeCalculationFailed"); statusValue.visible=true; - statusValue.text=Genivi.gettext("CalculatedRouteFailed"); + statusValue.text=Translator.getEmptyString()+qsTr("CalculatedRouteFailed"); Genivi.setRouteCalculated(dltIf,false); // Tell the FSA that there's no route available Genivi.fuelstopadvisor_ReleaseRouteHandle(dbusIf,dltIf,Genivi.g_routing_handle); @@ -97,7 +97,7 @@ NavigationAppHMIMenu { { Genivi.hookSignal(dltIf,"routeCalculationProgressUpdate"); statusValue.visible=true; - statusValue.text=Genivi.gettext("CalculatedRouteInProgress"); + statusValue.text=Translator.getEmptyString()+qsTr("CalculatedRouteInProgress"); Genivi.setRouteCalculated(dltIf,false); } @@ -1015,7 +1015,7 @@ NavigationAppHMIMenu { StdButton { source:StyleSheetBrowseMapBottom.menub[Constants.SOURCE]; x:StyleSheetBrowseMapBottom.menub[Constants.X]; y:StyleSheetBrowseMapBottom.menub[Constants.Y]; width:StyleSheetBrowseMapBottom.menub[Constants.WIDTH]; height:StyleSheetBrowseMapBottom.menub[Constants.HEIGHT];textColor:StyleSheetBrowseMapBottom.menubText[Constants.TEXTCOLOR]; pixelSize:StyleSheetBrowseMapBottom.menubText[Constants.PIXELSIZE]; - id:menub; text:Genivi.gettext("Back"); + id:menub; text:Translator.getEmptyString()+qsTr("Back"); onClicked: { disconnectSignals(); if (Genivi.entrybackheapsize){ @@ -1285,7 +1285,7 @@ NavigationAppHMIMenu { id:tiltText; style: Text.Sunken; smooth: true - text: Genivi.gettext("CameraTilt") + text: Translator.getEmptyString()+qsTr("CameraTilt") } StdButton { source:StyleSheetBrowseMapScroll.tiltp[Constants.SOURCE]; x:StyleSheetBrowseMapScroll.tiltp[Constants.X]; y:StyleSheetBrowseMapScroll.tiltp[Constants.Y]; width:StyleSheetBrowseMapScroll.tiltp[Constants.WIDTH]; height:StyleSheetBrowseMapScroll.tiltp[Constants.HEIGHT]; @@ -1305,7 +1305,7 @@ NavigationAppHMIMenu { id:heightText; style: Text.Sunken; smooth: true - text: Genivi.gettext("CameraHeight") + text: Translator.getEmptyString()+qsTr("CameraHeight") } StdButton { source:StyleSheetBrowseMapScroll.heightp[Constants.SOURCE]; x:StyleSheetBrowseMapScroll.heightp[Constants.X]; y:StyleSheetBrowseMapScroll.heightp[Constants.Y]; width:StyleSheetBrowseMapScroll.heightp[Constants.WIDTH]; height:StyleSheetBrowseMapScroll.heightp[Constants.HEIGHT]; @@ -1325,7 +1325,7 @@ NavigationAppHMIMenu { id:distanceText; style: Text.Sunken; smooth: true - text: Genivi.gettext("CameraDistance") + text: Translator.getEmptyString()+qsTr("CameraDistance") } StdButton { source:StyleSheetBrowseMapScroll.distancep[Constants.SOURCE]; x:StyleSheetBrowseMapScroll.distancep[Constants.X]; y:StyleSheetBrowseMapScroll.distancep[Constants.Y]; width:StyleSheetBrowseMapScroll.distancep[Constants.WIDTH]; height:StyleSheetBrowseMapScroll.distancep[Constants.HEIGHT]; @@ -1626,7 +1626,7 @@ NavigationAppHMIMenu { StdButton { source:StyleSheetBrowseMapSettings.restart[Constants.SOURCE]; x:StyleSheetBrowseMapSettings.restart[Constants.X]; y:StyleSheetBrowseMapSettings.restart[Constants.Y]; width:StyleSheetBrowseMapSettings.restart[Constants.WIDTH]; height:StyleSheetBrowseMapSettings.restart[Constants.HEIGHT];textColor:StyleSheetBrowseMapSettings.restartText[Constants.TEXTCOLOR]; pixelSize:StyleSheetBrowseMapSettings.restartText[Constants.PIXELSIZE]; id:restartGuidance; - text: Genivi.gettext("Restart") + text: Translator.getEmptyString()+qsTr("Restart") disabled: (Genivi.guidance_activated || !Genivi.route_calculated); onPressed: { //restart guidance (the route is displayed when the menu is reloaded due to guidance status changed) @@ -1636,7 +1636,7 @@ NavigationAppHMIMenu { StdButton { source:StyleSheetBrowseMapSettings.cancel[Constants.SOURCE]; x:StyleSheetBrowseMapSettings.cancel[Constants.X]; y:StyleSheetBrowseMapSettings.cancel[Constants.Y]; width:StyleSheetBrowseMapSettings.cancel[Constants.WIDTH]; height:StyleSheetBrowseMapSettings.cancel[Constants.HEIGHT];textColor:StyleSheetBrowseMapSettings.cancelText[Constants.TEXTCOLOR]; pixelSize:StyleSheetBrowseMapSettings.cancelText[Constants.PIXELSIZE]; id:cancel; - text: Genivi.gettext("Cancel") + text: Translator.getEmptyString()+qsTr("Cancel") disabled: !(Genivi.guidance_activated); onPressed: { //stop guidance diff --git a/src/hmi/qml/NavigationAppMain.qml b/src/hmi/qml/NavigationAppMain.qml index 25bd573..f194ba0 100644 --- a/src/hmi/qml/NavigationAppMain.qml +++ b/src/hmi/qml/NavigationAppMain.qml @@ -104,7 +104,7 @@ NavigationAppHMIMenu { id:navigationText; style: Text.Sunken; smooth: true - text: Genivi.gettext("Navigation") + text: Translator.getEmptyString()+qsTr("Navigation"); } StdButton { source:StyleSheet.select_navigation[Constants.SOURCE]; x:StyleSheet.select_navigation[Constants.X]; y:StyleSheet.select_navigation[Constants.Y]; width:StyleSheet.select_navigation[Constants.WIDTH]; height:StyleSheet.select_navigation[Constants.HEIGHT]; @@ -121,7 +121,7 @@ NavigationAppHMIMenu { id:poiText; style: Text.Sunken; smooth: true - text: Genivi.gettext("Poi") + text: Translator.getEmptyString()+qsTr("Poi") } StdButton { source:StyleSheet.select_poi[Constants.SOURCE]; x:StyleSheet.select_poi[Constants.X]; y:StyleSheet.select_poi[Constants.Y]; width:StyleSheet.select_poi[Constants.WIDTH]; height:StyleSheet.select_poi[Constants.HEIGHT]; @@ -137,7 +137,7 @@ NavigationAppHMIMenu { id:mapviewText; style: Text.Sunken; smooth: true - text: Genivi.gettext("Mapview") + text: Translator.getEmptyString()+qsTr("Mapview") } StdButton { source:StyleSheet.select_mapview[Constants.SOURCE]; x:StyleSheet.select_mapview[Constants.X]; y:StyleSheet.select_mapview[Constants.Y]; width:StyleSheet.select_mapview[Constants.WIDTH]; height:StyleSheet.select_mapview[Constants.HEIGHT]; @@ -155,7 +155,7 @@ NavigationAppHMIMenu { id:tripText; style: Text.Sunken; smooth: true - text: Genivi.gettext("Trip") + text: Translator.getEmptyString()+qsTr("Trip") } StdButton { source:StyleSheet.select_trip[Constants.SOURCE]; x:StyleSheet.select_trip[Constants.X]; y:StyleSheet.select_trip[Constants.Y]; width:StyleSheet.select_trip[Constants.WIDTH]; height:StyleSheet.select_trip[Constants.HEIGHT]; @@ -170,7 +170,7 @@ NavigationAppHMIMenu { id:settingsText; style: Text.Sunken; smooth: true - text: Genivi.gettext("Configuration") + text: Translator.getEmptyString()+qsTr("Configuration") } StdButton { source:StyleSheet.select_settings[Constants.SOURCE]; x:StyleSheet.select_settings[Constants.X]; y:StyleSheet.select_settings[Constants.Y]; width:StyleSheet.select_settings[Constants.WIDTH]; height:StyleSheet.select_settings[Constants.HEIGHT]; @@ -183,7 +183,7 @@ NavigationAppHMIMenu { StdButton { source:StyleSheet.quit[Constants.SOURCE]; x:StyleSheet.quit[Constants.X]; y:StyleSheet.quit[Constants.Y]; width:StyleSheet.quit[Constants.WIDTH]; height:StyleSheet.quit[Constants.HEIGHT];textColor:StyleSheet.quitText[Constants.TEXTCOLOR]; pixelSize:StyleSheet.quitText[Constants.PIXELSIZE]; - id:quit; text: Genivi.gettext("Quit"); + id:quit; text: Translator.getEmptyString()+qsTr("Quit"); onClicked:{ disconnectSignals(); Qt.quit(); //for the time being quit diff --git a/src/hmi/qml/NavigationAppMap.qml b/src/hmi/qml/NavigationAppMap.qml index 5badfe3..bef0d6e 100644 --- a/src/hmi/qml/NavigationAppMap.qml +++ b/src/hmi/qml/NavigationAppMap.qml @@ -68,7 +68,7 @@ NavigationAppHMIMenu { StdButton { source:StyleSheet.back[Constants.SOURCE]; x:StyleSheet.back[Constants.X]; y:StyleSheet.back[Constants.Y]; width:StyleSheet.back[Constants.WIDTH]; height:StyleSheet.back[Constants.HEIGHT];textColor:StyleSheet.backText[Constants.TEXTCOLOR]; pixelSize:StyleSheet.backText[Constants.PIXELSIZE]; - id:back; text: Genivi.gettext("Back"); disabled:false; + id:back; text: Translator.getEmptyString()+qsTr("Back"); disabled:false; onClicked:{ disconnectSignals(); leaveMenu(dltIf); diff --git a/src/hmi/qml/NavigationAppPOI.qml b/src/hmi/qml/NavigationAppPOI.qml index a63cbca..dd6761c 100644 --- a/src/hmi/qml/NavigationAppPOI.qml +++ b/src/hmi/qml/NavigationAppPOI.qml @@ -325,7 +325,7 @@ NavigationAppHMIMenu { visible: false style: Text.Sunken; smooth: true - text: Genivi.gettext("Selected") + text: Translator.getEmptyString()+qsTr("Selected") } Text { x:StyleSheet.selectedValue[Constants.X]; y:StyleSheet.selectedValue[Constants.Y]; width:StyleSheet.selectedValue[Constants.WIDTH]; height:StyleSheet.selectedValue[Constants.HEIGHT];color:StyleSheet.selectedValue[Constants.TEXTCOLOR];styleColor:StyleSheet.selectedValue[Constants.STYLECOLOR]; font.pixelSize:StyleSheet.selectedValue[Constants.PIXELSIZE]; @@ -464,7 +464,7 @@ NavigationAppHMIMenu { StdButton { source:StyleSheet.back[Constants.SOURCE]; x:StyleSheet.back[Constants.X]; y:StyleSheet.back[Constants.Y]; width:StyleSheet.back[Constants.WIDTH]; height:StyleSheet.back[Constants.HEIGHT];textColor:StyleSheet.backText[Constants.TEXTCOLOR]; pixelSize:StyleSheet.backText[Constants.PIXELSIZE]; id:back; - text: Genivi.gettext("Back"); + text: Translator.getEmptyString()+qsTr("Back"); onClicked: { disconnectSignals(); rootMenu(dltIf,"NavigationAppBrowseMap"); diff --git a/src/hmi/qml/NavigationAppSearch.qml b/src/hmi/qml/NavigationAppSearch.qml index 9bb2458..fb8f82b 100644 --- a/src/hmi/qml/NavigationAppSearch.qml +++ b/src/hmi/qml/NavigationAppSearch.qml @@ -341,7 +341,7 @@ NavigationAppHMIMenu { { Genivi.hookSignal(dltIf,"routeCalculationFailed"); - statusValue.text=Genivi.gettext("CalculatedRouteFailed"); + statusValue.text=Translator.getEmptyString()+qsTr("CalculatedRouteFailed"); Genivi.setRouteCalculated(dltIf,false); // Tell the FSA that there's no route available Genivi.fuelstopadvisor_ReleaseRouteHandle(dbusIf,dltIf,Genivi.g_routing_handle); @@ -351,7 +351,7 @@ NavigationAppHMIMenu { function routeCalculationProgressUpdate(args) { Genivi.hookSignal(dltIf,"routeCalculationProgressUpdate"); - statusValue.text=Genivi.gettext("CalculatedRouteInProgress"); + statusValue.text=Translator.getEmptyString()+qsTr("CalculatedRouteInProgress"); Genivi.setRouteCalculated(dltIf,false); } @@ -725,7 +725,7 @@ NavigationAppHMIMenu { //------------------------------------------// function getRouteOverview() { - statusValue.text=Genivi.gettext("CalculatedRouteSuccess"); + statusValue.text=Translator.getEmptyString()+qsTr("CalculatedRouteSuccess"); var res=Genivi.routing_GetRouteOverviewTimeAndDistance(dbusIf,dltIf); @@ -866,7 +866,7 @@ NavigationAppHMIMenu { style: Text.Sunken; smooth: true; id: elementTitle - text: Genivi.gettext("Element"); + text: Translator.getEmptyString()+qsTr("Element"); } SmartText { x:StyleSheet.elementName[Constants.X]; y:StyleSheet.elementName[Constants.Y]; width:StyleSheet.elementName[Constants.WIDTH]; height:StyleSheet.elementName[Constants.HEIGHT];color:StyleSheet.elementName[Constants.TEXTCOLOR];styleColor:StyleSheet.elementName[Constants.STYLECOLOR]; font.pixelSize:StyleSheet.elementName[Constants.PIXELSIZE]; @@ -889,7 +889,7 @@ NavigationAppHMIMenu { style: Text.Sunken; smooth: true; id: countryTitle - text: Genivi.gettext("Country"); + text: Translator.getEmptyString()+qsTr("Country"); } StdButton { source:StyleSheet.countryKeyboard[Constants.SOURCE]; x:StyleSheet.countryKeyboard[Constants.X]; y:StyleSheet.countryKeyboard[Constants.Y]; width:StyleSheet.countryKeyboard[Constants.WIDTH]; height:StyleSheet.countryKeyboard[Constants.HEIGHT]; @@ -907,7 +907,7 @@ NavigationAppHMIMenu { } NavigationAppEntryField { x:StyleSheet.countryValue[Constants.X]; y:StyleSheet.countryValue[Constants.Y]; width: StyleSheet.countryValue[Constants.WIDTH]; height: StyleSheet.countryValue[Constants.HEIGHT]; - id: countryValue + id: countryValue criterion: Genivi.NAVIGATIONCORE_COUNTRY globaldata: 'countryValue' textfocus: true @@ -918,7 +918,7 @@ NavigationAppHMIMenu { style: Text.Sunken; smooth: true; id:cityTitle - text: Genivi.gettext("City"); + text: Translator.getEmptyString()+qsTr("City"); } StdButton { source:StyleSheet.cityKeyboard[Constants.SOURCE]; x:StyleSheet.cityKeyboard[Constants.X]; y:StyleSheet.cityKeyboard[Constants.Y]; width:StyleSheet.cityKeyboard[Constants.WIDTH]; height:StyleSheet.cityKeyboard[Constants.HEIGHT]; @@ -947,7 +947,7 @@ NavigationAppHMIMenu { style: Text.Sunken; smooth: true; id:streetTitle - text: Genivi.gettext("Street"); + text: Translator.getEmptyString()+qsTr("Street"); } StdButton { source:StyleSheet.streetKeyboard[Constants.SOURCE]; x:StyleSheet.streetKeyboard[Constants.X]; y:StyleSheet.streetKeyboard[Constants.Y]; width:StyleSheet.streetKeyboard[Constants.WIDTH]; height:StyleSheet.streetKeyboard[Constants.HEIGHT]; @@ -973,7 +973,7 @@ NavigationAppHMIMenu { style: Text.Sunken; smooth: true; id:numberTitle - text: Genivi.gettext("Number"); + text: Translator.getEmptyString()+qsTr("Number"); } StdButton { source:StyleSheet.numberKeyboard[Constants.SOURCE]; x:StyleSheet.numberKeyboard[Constants.X]; y:StyleSheet.numberKeyboard[Constants.Y]; width:StyleSheet.numberKeyboard[Constants.WIDTH]; height:StyleSheet.numberKeyboard[Constants.HEIGHT]; @@ -999,7 +999,7 @@ NavigationAppHMIMenu { id:guidanceTitle; style: Text.Sunken; smooth: true; - text: Genivi.gettext("Guidance"); + text: Translator.getEmptyString()+qsTr("Guidance"); visible: false; } Text { @@ -1007,7 +1007,7 @@ NavigationAppHMIMenu { id:displayRouteTitle; style: Text.Sunken; smooth: true - text: Genivi.gettext("DisplayRoute") + text: Translator.getEmptyString()+qsTr("DisplayRoute") visible: false; } Text { @@ -1015,7 +1015,7 @@ NavigationAppHMIMenu { id:distanceTitle; style: Text.Sunken; smooth: true - text: Genivi.gettext("RouteDistance") + text: Translator.getEmptyString()+qsTr("RouteDistance") visible: false; } SmartText { @@ -1029,7 +1029,7 @@ NavigationAppHMIMenu { id:timeTitle; style: Text.Sunken; smooth: true - text: Genivi.gettext("RouteTime") + text: Translator.getEmptyString()+qsTr("RouteTime") visible: false; } SmartText { @@ -1043,7 +1043,7 @@ NavigationAppHMIMenu { id:arrivalTitle; style: Text.Sunken; smooth: true - text: Genivi.gettext("RouteArrival") + text: Translator.getEmptyString()+qsTr("RouteArrival") visible: false; } SmartText { @@ -1057,7 +1057,7 @@ NavigationAppHMIMenu { id:statusTitle; style: Text.Sunken; smooth: true - text: Genivi.gettext("StatusTitle") + text: Translator.getEmptyString()+qsTr("StatusTitle") visible: false; } SmartText { @@ -1087,7 +1087,7 @@ NavigationAppHMIMenu { } StdButton { source:StyleSheet.guidance_start[Constants.SOURCE]; x:StyleSheet.guidance_start[Constants.X]; y:StyleSheet.guidance_start[Constants.Y]; width:StyleSheet.guidance_start[Constants.WIDTH]; height:StyleSheet.guidance_start[Constants.HEIGHT];textColor:StyleSheet.startText[Constants.TEXTCOLOR]; pixelSize:StyleSheet.startText[Constants.PIXELSIZE]; - id:guidance_start; text: Genivi.gettext("On"); disabled:true; + id:guidance_start; text: Translator.getEmptyString()+qsTr("On"); disabled:true; visible: false; onClicked: { Genivi.guidance_StartGuidance(dbusIf,dltIf,Genivi.routing_handle()); @@ -1095,7 +1095,7 @@ NavigationAppHMIMenu { } StdButton { source:StyleSheet.guidance_stop[Constants.SOURCE]; x:StyleSheet.guidance_stop[Constants.X]; y:StyleSheet.guidance_stop[Constants.Y]; width:StyleSheet.guidance_stop[Constants.WIDTH]; height:StyleSheet.guidance_stop[Constants.HEIGHT];textColor:StyleSheet.stopText[Constants.TEXTCOLOR]; pixelSize:StyleSheet.stopText[Constants.PIXELSIZE]; - id:guidance_stop;text: Genivi.gettext("Off"); disabled:true; + id:guidance_stop;text: Translator.getEmptyString()+qsTr("Off"); disabled:true; visible: false; onClicked: { if(Genivi.location_input_activated){ @@ -1261,7 +1261,7 @@ NavigationAppHMIMenu { } StdButton { source:StyleSheet.cancel[Constants.SOURCE]; x:StyleSheet.cancel[Constants.X]; y:StyleSheet.cancel[Constants.Y]; width:StyleSheet.cancel[Constants.WIDTH]; height:StyleSheet.cancel[Constants.HEIGHT];textColor:StyleSheet.cancelText[Constants.TEXTCOLOR]; pixelSize:StyleSheet.cancelText[Constants.PIXELSIZE]; - id:cancel; text: Genivi.gettext("Cancel"); + id:cancel; text: Translator.getEmptyString()+qsTr("Cancel"); disabled: !(keyboardActivated); onClicked: { Genivi.preloadMode=false; @@ -1294,7 +1294,7 @@ NavigationAppHMIMenu { } StdButton { source:StyleSheet.back[Constants.SOURCE]; x:StyleSheet.back[Constants.X]; y:StyleSheet.back[Constants.Y]; width:StyleSheet.back[Constants.WIDTH]; height:StyleSheet.back[Constants.HEIGHT];textColor:StyleSheet.backText[Constants.TEXTCOLOR]; pixelSize:StyleSheet.backText[Constants.PIXELSIZE]; - id:back; text: Genivi.gettext("Back"); + id:back; text: Translator.getEmptyString()+qsTr("Back"); disabled: keyboardActivated; onClicked: { disconnectSignals(); diff --git a/src/hmi/qml/NavigationAppSettings.qml b/src/hmi/qml/NavigationAppSettings.qml index 9d3d5b4..9aebf25 100644 --- a/src/hmi/qml/NavigationAppSettings.qml +++ b/src/hmi/qml/NavigationAppSettings.qml @@ -52,6 +52,14 @@ NavigationAppHMIMenu { id:dbusIf; } + Connections { + target: Translator + onLanguageChanged: { + var translation = Translator.getCurrentTranslation(); + Genivi.hookMessage(dltIf,"Language updated",translation); + } + } + property Item configurationChangedSignal; function configurationChanged(args) { //to be improved ! @@ -141,6 +149,8 @@ NavigationAppHMIMenu { Genivi.navigationcore_configuration_SetLocale(dbusIf,dltIf,language,country,script); Genivi.mapviewer_configuration_SetLocale(dbusIf,dltIf,language,country,script); Genivi.setlang(language,country,script); + var fileName=Genivi.g_language+ "_"+Genivi.g_country+ "_"+Genivi.g_script; + Translator.setTranslation(fileName); pageOpen(dltIf,menu.pagefile); //reload page because of texts... } @@ -278,7 +288,7 @@ NavigationAppHMIMenu { id:languagesTitle; style: Text.Sunken; smooth: true - text: Genivi.gettext("Language") + text: Translator.getEmptyString()+qsTr("Language") } StdButton { objectName:"fra_FRA"; source:StyleSheet.french_flag[Constants.SOURCE]; x:StyleSheet.french_flag[Constants.X]; y:StyleSheet.french_flag[Constants.Y]; width:StyleSheet.french_flag[Constants.WIDTH]; height:StyleSheet.french_flag[Constants.HEIGHT]; @@ -292,13 +302,16 @@ NavigationAppHMIMenu { StdButton { objectName:"jpn_JPN"; source:StyleSheet.japanese_flag[Constants.SOURCE]; x:StyleSheet.japanese_flag[Constants.X]; y:StyleSheet.japanese_flag[Constants.Y]; width:StyleSheet.japanese_flag[Constants.WIDTH]; height:StyleSheet.japanese_flag[Constants.HEIGHT]; id:jpn_JPN; disabled:false;onClicked: {setLocale("jpn","JPN","Hrkt");}} + StdButton { objectName:"kor_KOR"; + source:StyleSheet.korean_flag[Constants.SOURCE]; x:StyleSheet.korean_flag[Constants.X]; y:StyleSheet.korean_flag[Constants.Y]; width:StyleSheet.korean_flag[Constants.WIDTH]; height:StyleSheet.korean_flag[Constants.HEIGHT]; + id:kor_KOR; disabled:false;onClicked: {setLocale("kor","KOR","Hang");}} Text { x:StyleSheet.unitsTitle[Constants.X]; y:StyleSheet.unitsTitle[Constants.Y]; width:StyleSheet.unitsTitle[Constants.WIDTH]; height:StyleSheet.unitsTitle[Constants.HEIGHT];color:StyleSheet.unitsTitle[Constants.TEXTCOLOR];styleColor:StyleSheet.unitsTitle[Constants.STYLECOLOR]; font.pixelSize:StyleSheet.unitsTitle[Constants.PIXELSIZE]; id:unitsTitle; style: Text.Sunken; smooth: true - text: Genivi.gettext("Units") + text: Translator.getEmptyString()+qsTr("Units") } StdButton { source:StyleSheet.unit_km[Constants.SOURCE]; x:StyleSheet.unit_km[Constants.X]; y:StyleSheet.unit_km[Constants.Y]; width:StyleSheet.unit_km[Constants.WIDTH]; height:StyleSheet.unit_km[Constants.HEIGHT]; id:unit_km; disabled:false; @@ -316,7 +329,7 @@ NavigationAppHMIMenu { id:costModelTitle; style: Text.Sunken; smooth: true - text: Genivi.gettext("CostModel") + text: Translator.getEmptyString()+qsTr("CostModel") } Text { @@ -324,7 +337,7 @@ NavigationAppHMIMenu { id:routingPreferencesTitle; style: Text.Sunken; smooth: true - text: Genivi.gettext("RoutingPreferences") + text: Translator.getEmptyString()+qsTr("RoutingPreferences") } Text { @@ -332,7 +345,7 @@ NavigationAppHMIMenu { id: ferriesText; style: Text.Sunken; smooth: true - text: Genivi.gettext("Ferries") + text: Translator.getEmptyString()+qsTr("Ferries") } StdButton { source:StyleSheet.allow_ferries[Constants.SOURCE]; x:StyleSheet.allow_ferries[Constants.X]; y:StyleSheet.allow_ferries[Constants.Y]; width:StyleSheet.allow_ferries[Constants.WIDTH]; height:StyleSheet.allow_ferries[Constants.HEIGHT]; id:ferries_yes;disabled: !Genivi.route_calculated;onClicked:{use(Genivi.NAVIGATIONCORE_FERRY)}} @@ -344,7 +357,7 @@ NavigationAppHMIMenu { id: tollRoadsText; style: Text.Sunken; smooth: true - text: Genivi.gettext("TollRoads") + text: Translator.getEmptyString()+qsTr("TollRoads") } StdButton { source:StyleSheet.allow_tollRoads[Constants.SOURCE]; x:StyleSheet.allow_tollRoads[Constants.X]; y:StyleSheet.allow_tollRoads[Constants.Y]; width:StyleSheet.allow_tollRoads[Constants.WIDTH]; height:StyleSheet.allow_tollRoads[Constants.HEIGHT]; id:toll_roads_yes;disabled: !Genivi.route_calculated;onClicked:{use(Genivi.NAVIGATIONCORE_TOLL_ROADS)}} @@ -356,7 +369,7 @@ NavigationAppHMIMenu { id:motorWaysText; style: Text.Sunken; smooth: true - text: Genivi.gettext("MotorWays") + text: Translator.getEmptyString()+qsTr("MotorWays") } StdButton { source:StyleSheet.allow_motorways[Constants.SOURCE]; x:StyleSheet.allow_motorways[Constants.X]; y:StyleSheet.allow_motorways[Constants.Y]; width:StyleSheet.allow_motorways[Constants.WIDTH]; height:StyleSheet.allow_motorways[Constants.HEIGHT]; id:motorways_yes;disabled: !Genivi.route_calculated;onClicked:{use(Genivi.NAVIGATIONCORE_HIGHWAYS_MOTORWAYS)}} @@ -368,7 +381,7 @@ NavigationAppHMIMenu { id:simulationTitle; style: Text.Sunken; smooth: true - text: Genivi.gettext("Simulation") + text: Translator.getEmptyString()+qsTr("Simulation") } StdButton { x:StyleSheet.simu_mode_enable[Constants.X]; y:StyleSheet.simu_mode_enable[Constants.Y]; width:StyleSheet.simu_mode_enable[Constants.WIDTH]; height:StyleSheet.simu_mode_enable[Constants.HEIGHT]; @@ -407,7 +420,7 @@ NavigationAppHMIMenu { id:showroomTitle; style: Text.Sunken; smooth: true - text: Genivi.gettext("Showroom") + text: Translator.getEmptyString()+qsTr("Showroom") } StdButton { x:StyleSheet.showroom_enable[Constants.X]; y:StyleSheet.showroom_enable[Constants.Y]; width:StyleSheet.showroom_enable[Constants.WIDTH]; height:StyleSheet.showroom_enable[Constants.HEIGHT]; @@ -445,7 +458,7 @@ NavigationAppHMIMenu { id:autoguidanceTitle; style: Text.Sunken; smooth: true - text: Genivi.gettext("Autoguidance") + text: Translator.getEmptyString()+qsTr("Autoguidance") } StdButton { x:StyleSheet.autoguidance_enable[Constants.X]; y:StyleSheet.autoguidance_enable[Constants.Y]; width:StyleSheet.autoguidance_enable[Constants.WIDTH]; height:StyleSheet.autoguidance_enable[Constants.HEIGHT]; @@ -479,7 +492,7 @@ NavigationAppHMIMenu { StdButton { source:StyleSheet.mapDataBase[Constants.SOURCE]; x:StyleSheet.mapDataBase[Constants.X]; y:StyleSheet.mapDataBase[Constants.Y]; width:StyleSheet.mapDataBase[Constants.WIDTH]; height:StyleSheet.mapDataBase[Constants.HEIGHT];textColor:StyleSheet.mapDataBaseText[Constants.TEXTCOLOR]; pixelSize:StyleSheet.mapDataBaseText[Constants.PIXELSIZE]; - id:mapDataBase; text: Genivi.gettext("Mapview"); disabled:false; + id:mapDataBase; text: Translator.getEmptyString()+qsTr("Mapview"); disabled:false; onClicked:{ disconnectSignals(); entryMenu(dltIf,"NavigationAppMap",menu); @@ -488,7 +501,7 @@ NavigationAppHMIMenu { StdButton { source:StyleSheet.back[Constants.SOURCE]; x:StyleSheet.back[Constants.X]; y:StyleSheet.back[Constants.Y]; width:StyleSheet.back[Constants.WIDTH]; height:StyleSheet.back[Constants.HEIGHT];textColor:StyleSheet.backText[Constants.TEXTCOLOR]; pixelSize:StyleSheet.backText[Constants.PIXELSIZE]; - id:back; text: Genivi.gettext("Back"); disabled:false; + id:back; text: Translator.getEmptyString()+qsTr("Back"); disabled:false; onClicked:{ disconnectSignals(); leaveMenu(dltIf); diff --git a/src/hmi/qml/NavigationAppTripComputer.qml b/src/hmi/qml/NavigationAppTripComputer.qml index f032d21..f0c3081 100644 --- a/src/hmi/qml/NavigationAppTripComputer.qml +++ b/src/hmi/qml/NavigationAppTripComputer.qml @@ -271,7 +271,7 @@ NavigationAppHMIMenu { style: Text.Sunken; smooth: true id:avg_speed_title - text: Genivi.gettext("AvgSpeed") + text: Translator.getEmptyString()+qsTr("AvgSpeed") } Text { x:StyleSheet.avg_fuel_value[Constants.X]; y:StyleSheet.avg_fuel_value[Constants.Y]; width:StyleSheet.avg_fuel_value[Constants.WIDTH]; height:StyleSheet.avg_fuel_value[Constants.HEIGHT];color:StyleSheet.avg_fuel_value[Constants.TEXTCOLOR];styleColor:StyleSheet.avg_fuel_value[Constants.STYLECOLOR]; font.pixelSize:StyleSheet.avg_fuel_value[Constants.PIXELSIZE]; @@ -295,7 +295,7 @@ NavigationAppHMIMenu { style: Text.Sunken; smooth: true id:avg_fuel_title - text: Genivi.gettext("AvgFuel") + text: Translator.getEmptyString()+qsTr("AvgFuel") } Text { x:StyleSheet.distance_value[Constants.X]; y:StyleSheet.distance_value[Constants.Y]; width:StyleSheet.distance_value[Constants.WIDTH]; height:StyleSheet.distance_value[Constants.HEIGHT];color:StyleSheet.distance_value[Constants.TEXTCOLOR];styleColor:StyleSheet.distance_value[Constants.STYLECOLOR]; font.pixelSize:StyleSheet.distance_value[Constants.PIXELSIZE]; @@ -319,7 +319,7 @@ NavigationAppHMIMenu { style: Text.Sunken; smooth: true id:distance_title - text: Genivi.gettext("Distance") + text: Translator.getEmptyString()+qsTr("Distance") } Text { x:StyleSheet.fuel_value[Constants.X]; y:StyleSheet.fuel_value[Constants.Y]; width:StyleSheet.fuel_value[Constants.WIDTH]; height:StyleSheet.fuel_value[Constants.HEIGHT];color:StyleSheet.fuel_value[Constants.TEXTCOLOR];styleColor:StyleSheet.fuel_value[Constants.STYLECOLOR]; font.pixelSize:StyleSheet.fuel_value[Constants.PIXELSIZE]; @@ -343,7 +343,7 @@ NavigationAppHMIMenu { style: Text.Sunken; smooth: true id:fuel_title - text: Genivi.gettext("FuelLevel") + text: Translator.getEmptyString()+qsTr("FuelLevel") } Text { x:StyleSheet.tank_distance_value[Constants.X]; y:StyleSheet.tank_distance_value[Constants.Y]; width:StyleSheet.tank_distance_value[Constants.WIDTH]; height:StyleSheet.tank_distance_value[Constants.HEIGHT];color:StyleSheet.tank_distance_value[Constants.TEXTCOLOR];styleColor:StyleSheet.tank_distance_value[Constants.STYLECOLOR]; font.pixelSize:StyleSheet.tank_distance_value[Constants.PIXELSIZE]; @@ -367,7 +367,7 @@ NavigationAppHMIMenu { style: Text.Sunken; smooth: true id:tank_distance_title - text: Genivi.gettext("TankDistance") + text: Translator.getEmptyString()+qsTr("TankDistance") } Text { x:StyleSheet.predictive_tank_distance_value[Constants.X]; y:StyleSheet.predictive_tank_distance_value[Constants.Y]; width:StyleSheet.predictive_tank_distance_value[Constants.WIDTH]; height:StyleSheet.predictive_tank_distance_value[Constants.HEIGHT];color:StyleSheet.predictive_tank_distance_value[Constants.TEXTCOLOR];styleColor:StyleSheet.predictive_tank_distance_value[Constants.STYLECOLOR]; font.pixelSize:StyleSheet.predictive_tank_distance_value[Constants.PIXELSIZE]; @@ -391,12 +391,12 @@ NavigationAppHMIMenu { style: Text.Sunken; smooth: true id:predictive_tank_distance_title - text: Genivi.gettext("PredictiveTankDistance") + text: Translator.getEmptyString()+qsTr("PredictiveTankDistance") } StdButton { source:StyleSheet.reset[Constants.SOURCE]; x:StyleSheet.reset[Constants.X]; y:StyleSheet.reset[Constants.Y]; width:StyleSheet.reset[Constants.WIDTH]; height:StyleSheet.reset[Constants.HEIGHT];textColor:StyleSheet.resetText[Constants.TEXTCOLOR]; pixelSize:StyleSheet.resetText[Constants.PIXELSIZE]; visible: false; - id:reset; text: Genivi.gettext("Reset"); disabled:false; next:select_trip1; prev:back; + id:reset; text: Translator.getEmptyString()+qsTr("Reset"); disabled:false; next:select_trip1; prev:back; onClicked:{ if (Genivi.tripMode == "TRIP_NUMBER1") { Genivi.fuelstopadvisor_ResetTripData(dbusIf,dltIf,0); @@ -432,7 +432,7 @@ NavigationAppHMIMenu { } } StdButton { source:StyleSheet.back[Constants.SOURCE]; x:StyleSheet.back[Constants.X]; y:StyleSheet.back[Constants.Y]; width:StyleSheet.back[Constants.WIDTH]; height:StyleSheet.back[Constants.HEIGHT];textColor:StyleSheet.backText[Constants.TEXTCOLOR]; pixelSize:StyleSheet.backText[Constants.PIXELSIZE]; - id:back; text: Genivi.gettext("Back"); disabled:false; next:reset; prev:select_instant; + id:back; text: Translator.getEmptyString()+qsTr("Back"); disabled:false; next:reset; prev:select_instant; onClicked:{leave(); leaveMenu(dltIf);} } } diff --git a/src/hmi/translations/deu_DEU.js b/src/hmi/translations/deu_DEU.js deleted file mode 100644 index a6ed099..0000000 --- a/src/hmi/translations/deu_DEU.js +++ /dev/null @@ -1,100 +0,0 @@ -/** -* @licence app begin@ -* SPDX-License-Identifier: MPL-2.0 -* -* \copyright Copyright (C) 2013-2014, PCA Peugeot Citroen -* -* \file deu_DEU.js -* -* \brief This file is part of the navigation hmi. -* -* \author Martin Schaller -* \author Philippe Colliot -* -* \version 1.1 -* -* This Source Code Form is subject to the terms of the -* Mozilla Public License (MPL), v. 2.0. -* If a copy of the MPL was not distributed with this file, -* You can obtain one at http://mozilla.org/MPL/2.0/. -* -* For further information see http://www.genivi.org/. -* -* List of changes: -* 2014-03-05, Philippe Colliot, migration to the new HMI design -* , , -* -* @licence end@ -*/ -translations["Navigation"]="NAVI"; -translations["Mapview"]="MAP"; -translations["Poi"]="POI"; -translations["Configuration"]="CONFIG"; -translations["Trip"]="TRIP"; - -translations["Country"]="COUNTRY"; -translations["City"]="CITY"; -translations["Street"]="STREET"; -translations["Number"]="NUMBER"; - -translations["RoutingPreferences"]="ROUTING PREFERENCES"; -translations["Ferries"]="FERRIES"; -translations["TollRoads"]="TOLL ROADS"; -translations["MotorWays"]="MOTORWAYS"; -translations["CostModel"]="COST MODEL"; -translations["Shortest"]="SHORTEST"; -translations["Fastest"]="FASTEST"; -translations["Language"]="LANGUAGE"; -translations["Units"]="UNITS"; -translations["Showroom"]="SHOWROOM"; -translations["Autoguidance"]="AUTOGUIDE"; -translations["Simulation"]="SIMULATION"; - -translations["RouteDistance"]="DISTANCE"; -translations["RouteTime"]="TIME"; -translations["RouteArrival"]="ARRIVAL"; -translations["Guidance"]="GUIDANCE"; -translations["DisplayRoute"]="DISPLAY"; -translations["StatusTitle"]="STATUS"; -translations["CalculatedRouteInProgress"]="CALCULATION IN PROGRESS"; -translations["CalculatedRouteFailed"]="CALCULATION FAILED"; -translations["CalculatedRouteSuccess"]="ROUTE AVAILABLE"; - -translations["FSAWarning"]="Refill"; -translations["NoGuidance"]="No guidance"; -translations["NoManeuver"]="No maneuver"; - -//CameraSettings -translations["North"]="N"; -translations["South"]="S"; -translations["East"]="O"; -translations["West"]="W"; -translations["CameraTilt"]="Tilt"; -translations["CameraHeight"]="Height"; -translations["CameraDistance"]="Dist"; -translations["CameraPerspective3d"]="3d"; -translations["CameraPerspective2d"]="2d"; -translations["Split"]="Sp"; -translations["Join"]="Jo"; -translations["Day"]="Da"; -translations["Night"]="Ni"; - -translations["AvgSpeed"]="AVG SPEED"; -translations["AvgFuel"]="AVG FUEL"; -translations["Distance"]="DISTANCE"; -translations["FuelLevel"]="FUEL LEVEL"; -translations["TankDistance"]="TANK DISTANCE"; -translations["PredictiveTankDistance"]="PREDICTIVE\nTANK DISTANCE"; -translations["Reset"]="RESET"; - -translations["Selected"]="SELECTED"; -translations["Restart"]="RESTART"; - -translations["On"]="ON"; -translations["Off"]="OFF"; -translations["Back"]="BACK"; -translations["Cancel"]="CANCEL"; -translations["Quit"]="QUIT"; - - -translations["Element"]="NAME"; diff --git a/src/hmi/translations/deu_DEU_Latn.ts b/src/hmi/translations/deu_DEU_Latn.ts new file mode 100644 index 0000000..d52aad2 --- /dev/null +++ b/src/hmi/translations/deu_DEU_Latn.ts @@ -0,0 +1,300 @@ + + + + + NavigationAppBrowseMap + + + CalculatedRouteFailed + + + + + CalculatedRouteInProgress + + + + + Back + + + + + CameraTilt + + + + + CameraHeight + + + + + CameraDistance + + + + + Restart + + + + + Cancel + + + + + NavigationAppMain + + + Navigation + + + + + Poi + + + + + Mapview + + + + + Trip + + + + + Configuration + + + + + Quit + + + + + NavigationAppMap + + + Back + + + + + NavigationAppPOI + + + Selected + + + + + Back + + + + + NavigationAppSearch + + + CalculatedRouteFailed + + + + + CalculatedRouteInProgress + + + + + CalculatedRouteSuccess + + + + + Element + + + + + Country + + + + + City + + + + + Street + + + + + Number + + + + + Guidance + + + + + DisplayRoute + + + + + RouteDistance + + + + + RouteTime + + + + + RouteArrival + + + + + StatusTitle + + + + + On + + + + + Off + + + + + Cancel + + + + + Back + + + + + NavigationAppSettings + + + Language + + + + + Units + + + + + CostModel + + + + + RoutingPreferences + + + + + Ferries + + + + + TollRoads + + + + + MotorWays + + + + + Simulation + + + + + Showroom + + + + + Autoguidance + + + + + Mapview + + + + + Back + + + + + NavigationAppTripComputer + + + AvgSpeed + + + + + AvgFuel + + + + + Distance + + + + + FuelLevel + + + + + TankDistance + + + + + PredictiveTankDistance + + + + + Reset + + + + + Back + + + + diff --git a/src/hmi/translations/eng_USA.js b/src/hmi/translations/eng_USA.js deleted file mode 100644 index 960c25f..0000000 --- a/src/hmi/translations/eng_USA.js +++ /dev/null @@ -1,100 +0,0 @@ -/** -* @licence app begin@ -* SPDX-License-Identifier: MPL-2.0 -* -* \copyright Copyright (C) 2013-2014, PCA Peugeot Citroen -* -* \file eng_USA.js -* -* \brief This file is part of the navigation hmi. -* -* \author Martin Schaller -* \author Philippe Colliot -* -* \version 1.1 -* -* This Source Code Form is subject to the terms of the -* Mozilla Public License (MPL), v. 2.0. -* If a copy of the MPL was not distributed with this file, -* You can obtain one at http://mozilla.org/MPL/2.0/. -* -* For further information see http://www.genivi.org/. -* -* List of changes: -* 2014-03-05, Philippe Colliot, migration to the new HMI design -* , , -* -* @licence end@ -*/ -translations["Navigation"]="NAVI"; -translations["Mapview"]="MAP"; -translations["Poi"]="POI"; -translations["Configuration"]="CONFIG"; -translations["Trip"]="TRIP"; - -translations["Country"]="COUNTRY"; -translations["City"]="CITY"; -translations["Street"]="STREET"; -translations["Number"]="NUMBER"; - -translations["RoutingPreferences"]="ROUTING PREFERENCES"; -translations["Ferries"]="FERRIES"; -translations["TollRoads"]="TOLL ROADS"; -translations["MotorWays"]="MOTORWAYS"; -translations["CostModel"]="COST MODEL"; -translations["Shortest"]="SHORTEST"; -translations["Fastest"]="FASTEST"; -translations["Language"]="LANGUAGE"; -translations["Units"]="UNITS"; -translations["Showroom"]="SHOWROOM"; -translations["Autoguidance"]="AUTOGUIDE"; -translations["Simulation"]="SIMULATION"; - -translations["RouteDistance"]="DISTANCE"; -translations["RouteTime"]="TIME"; -translations["RouteArrival"]="ARRIVAL"; -translations["Guidance"]="GUIDANCE"; -translations["DisplayRoute"]="DISPLAY"; -translations["StatusTitle"]="STATUS"; -translations["CalculatedRouteInProgress"]="CALCULATION IN PROGRESS"; -translations["CalculatedRouteFailed"]="CALCULATION FAILED"; -translations["CalculatedRouteSuccess"]="ROUTE AVAILABLE"; - -translations["FSAWarning"]="Refill"; -translations["NoGuidance"]="No guidance"; -translations["NoManeuver"]="No maneuver"; - -//CameraSettings -translations["North"]="N"; -translations["South"]="S"; -translations["East"]="E"; -translations["West"]="W"; -translations["CameraTilt"]="Tilt"; -translations["CameraHeight"]="Height"; -translations["CameraDistance"]="Dist"; -translations["CameraPerspective3d"]="3d"; -translations["CameraPerspective2d"]="2d"; -translations["Split"]="Sp"; -translations["Join"]="Jo"; -translations["Day"]="Da"; -translations["Night"]="Ni"; - -translations["AvgSpeed"]="AVG SPEED"; -translations["AvgFuel"]="AVG FUEL"; -translations["Distance"]="DISTANCE"; -translations["FuelLevel"]="FUEL LEVEL"; -translations["TankDistance"]="TANK DISTANCE"; -translations["PredictiveTankDistance"]="PREDICTIVE\nTANK DISTANCE"; -translations["Reset"]="RESET"; - -translations["Selected"]="SELECTED"; -translations["Restart"]="RESTART"; - -translations["On"]="ON"; -translations["Off"]="OFF"; -translations["Back"]="BACK"; -translations["Cancel"]="CANCEL"; -translations["Quit"]="QUIT"; - - -translations["Element"]="NAME"; diff --git a/src/hmi/translations/eng_USA_Latn.ts b/src/hmi/translations/eng_USA_Latn.ts new file mode 100644 index 0000000..4ca5186 --- /dev/null +++ b/src/hmi/translations/eng_USA_Latn.ts @@ -0,0 +1,301 @@ + + + + + NavigationAppBrowseMap + + + CalculatedRouteFailed + CALCULATION FAILED + + + + CalculatedRouteInProgress + CALCULATION IN PROGRESS + + + + Back + BACK + + + + CameraTilt + Tilt + + + + CameraHeight + Height + + + + CameraDistance + Dist + + + + Restart + RESTART + + + + Cancel + CANCEL + + + + NavigationAppMain + + + Navigation + NAVI + + + + Poi + POI + + + + Mapview + MAP + + + + Trip + TRIP + + + + Configuration + CONFIG + + + + Quit + QUIT + + + + NavigationAppMap + + + Back + BACK + + + + NavigationAppPOI + + + Selected + SELECTED + + + + Back + BACK + + + + NavigationAppSearch + + + CalculatedRouteFailed + CALCULATION FAILED + + + + CalculatedRouteInProgress + CALCULATION IN PROGRESS + + + + CalculatedRouteSuccess + ROUTE AVAILABLE + + + + Element + NAME + + + + Country + COUNTRY + + + + City + CITY + + + + Street + STREET + + + + Number + NUMBER + + + + Guidance + GUIDANCE + + + + DisplayRoute + DISPLAY + + + + RouteDistance + DISTANCE + + + + RouteTime + TIME + + + + RouteArrival + ARRIVAL + + + + StatusTitle + STATUS + + + + On + ON + + + + Off + OFF + + + + Cancel + CANCEL + + + + Back + BACK + + + + NavigationAppSettings + + + Language + LANGUAGE + + + + Units + UNITS + + + + CostModel + COST MODEL + + + + RoutingPreferences + ROUTING PREFERENCES + + + + Ferries + FERRIES + + + + TollRoads + TOLL ROADS + + + + MotorWays + MOTORWAYS + + + + Simulation + SIMULATION + + + + Showroom + SHOWROOM + + + + Autoguidance + AUTOGUIDE + + + + Mapview + MAP + + + + Back + BACK + + + + NavigationAppTripComputer + + + AvgSpeed + AVG SPEED + + + + AvgFuel + AVG FUEL + + + + Distance + DISTANCE + + + + FuelLevel + FUEL LEVEL + + + + TankDistance + TANK DISTANCE + + + + PredictiveTankDistance + PREDICTIVE +TANK DISTANCE + + + + Reset + RESET + + + + Back + BACK + + + diff --git a/src/hmi/translations/fra_FRA.js b/src/hmi/translations/fra_FRA.js deleted file mode 100644 index 286df0e..0000000 --- a/src/hmi/translations/fra_FRA.js +++ /dev/null @@ -1,100 +0,0 @@ -/** -* @licence app begin@ -* SPDX-License-Identifier: MPL-2.0 -* -* \copyright Copyright (C) 2013-2014, PCA Peugeot Citroen -* -* \file fra_FRA.js -* -* \brief This file is part of the navigation hmi. -* -* \author Martin Schaller -* \author Philippe Colliot -* -* \version 1.1 -* -* This Source Code Form is subject to the terms of the -* Mozilla Public License (MPL), v. 2.0. -* If a copy of the MPL was not distributed with this file, -* You can obtain one at http://mozilla.org/MPL/2.0/. -* -* For further information see http://www.genivi.org/. -* -* List of changes: -* 2014-03-05, Philippe Colliot, migration to the new HMI design -* , , -* -* @licence end@ -*/ -translations["Navigation"]="NAVI"; -translations["Mapview"]="MAP"; -translations["Poi"]="POI"; -translations["Configuration"]="CONFIG"; -translations["Trip"]="TRIP"; - -translations["Country"]="PAYS"; -translations["City"]="VILLE"; -translations["Street"]="RUE"; -translations["Number"]="NUMERO"; - -translations["RoutingPreferences"]="ROUTING PREFERENCES"; -translations["Ferries"]="FERRIES"; -translations["TollRoads"]="TOLL ROADS"; -translations["MotorWays"]="MOTORWAYS"; -translations["CostModel"]="COST MODEL"; -translations["Shortest"]="SHORTEST"; -translations["Fastest"]="FASTEST"; -translations["Language"]="LANGAGE"; -translations["Units"]="UNITES"; -translations["Showroom"]="SHOWROOM"; -translations["Autoguidance"]="AUTOGUIDE"; -translations["Simulation"]="SIMULATION"; - -translations["RouteDistance"]="DISTANCE"; -translations["RouteTime"]="DUREE"; -translations["RouteArrival"]="ARRIVEE"; -translations["Guidance"]="GUIDAGE"; -translations["DisplayRoute"]="AFFICHER"; -translations["StatusTitle"]="STATUS"; -translations["CalculatedRouteInProgress"]="CALCULATION IN PROGRESS"; -translations["CalculatedRouteFailed"]="CALCULATION FAILED"; -translations["CalculatedRouteSuccess"]="ROUTE AVAILABLE"; - -translations["FSAWarning"]="Refill"; -translations["NoGuidance"]="No guidance"; -translations["NoManeuver"]="No maneuver"; - -//CameraSettings -translations["North"]="N"; -translations["South"]="S"; -translations["East"]="E"; -translations["West"]="O"; -translations["CameraTilt"]="Tilt"; -translations["CameraHeight"]="Height"; -translations["CameraDistance"]="Dist"; -translations["CameraPerspective3d"]="3d"; -translations["CameraPerspective2d"]="2d"; -translations["Split"]="Sp"; -translations["Join"]="Jo"; -translations["Day"]="Da"; -translations["Night"]="Ni"; - -translations["AvgSpeed"]="VITESSE MOYENNE"; -translations["AvgFuel"]="CONSO MOYENNE"; -translations["Distance"]="DISTANCE"; -translations["FuelLevel"]="RESERVOIR"; -translations["TankDistance"]="AUTONOMIE"; -translations["PredictiveTankDistance"]="AUTONOMIE\nPREDICTIVE"; -translations["Reset"]="RAZ"; - -translations["Selected"]="SELECTION"; -translations["Restart"]="REPRENDRE"; - -translations["On"]="ON"; -translations["Off"]="OFF"; -translations["Back"]="RETOUR"; -translations["Cancel"]="ANNUL"; -translations["Quit"]="QUITTER"; - - -translations["Element"]="NAME"; diff --git a/src/hmi/translations/fra_FRA_Latn.ts b/src/hmi/translations/fra_FRA_Latn.ts new file mode 100644 index 0000000..d52aad2 --- /dev/null +++ b/src/hmi/translations/fra_FRA_Latn.ts @@ -0,0 +1,300 @@ + + + + + NavigationAppBrowseMap + + + CalculatedRouteFailed + + + + + CalculatedRouteInProgress + + + + + Back + + + + + CameraTilt + + + + + CameraHeight + + + + + CameraDistance + + + + + Restart + + + + + Cancel + + + + + NavigationAppMain + + + Navigation + + + + + Poi + + + + + Mapview + + + + + Trip + + + + + Configuration + + + + + Quit + + + + + NavigationAppMap + + + Back + + + + + NavigationAppPOI + + + Selected + + + + + Back + + + + + NavigationAppSearch + + + CalculatedRouteFailed + + + + + CalculatedRouteInProgress + + + + + CalculatedRouteSuccess + + + + + Element + + + + + Country + + + + + City + + + + + Street + + + + + Number + + + + + Guidance + + + + + DisplayRoute + + + + + RouteDistance + + + + + RouteTime + + + + + RouteArrival + + + + + StatusTitle + + + + + On + + + + + Off + + + + + Cancel + + + + + Back + + + + + NavigationAppSettings + + + Language + + + + + Units + + + + + CostModel + + + + + RoutingPreferences + + + + + Ferries + + + + + TollRoads + + + + + MotorWays + + + + + Simulation + + + + + Showroom + + + + + Autoguidance + + + + + Mapview + + + + + Back + + + + + NavigationAppTripComputer + + + AvgSpeed + + + + + AvgFuel + + + + + Distance + + + + + FuelLevel + + + + + TankDistance + + + + + PredictiveTankDistance + + + + + Reset + + + + + Back + + + + diff --git a/src/hmi/translations/jpn_JPN.js b/src/hmi/translations/jpn_JPN.js deleted file mode 100644 index 1f119c3..0000000 --- a/src/hmi/translations/jpn_JPN.js +++ /dev/null @@ -1,99 +0,0 @@ -/** -* @licence app begin@ -* SPDX-License-Identifier: MPL-2.0 -* -* \copyright Copyright (C) 2013-2014, PCA Peugeot Citroen -* -* \file jpn_JPN.js -* -* \brief This file is part of the navigation hmi. -* -* \author Martin Schaller -* \author Philippe Colliot -* -* \version 1.1 -* -* This Source Code Form is subject to the terms of the -* Mozilla Public License (MPL), v. 2.0. -* If a copy of the MPL was not distributed with this file, -* You can obtain one at http://mozilla.org/MPL/2.0/. -* -* For further information see http://www.genivi.org/. -* -* List of changes: -* 2014-03-05, Philippe Colliot, migration to the new HMI design -* , , -* -* @licence end@ -*/ -translations["Navigation"]="ナビ"; -translations["Mapview"]="地図"; -translations["Poi"]="地点"; -translations["Configuration"]="設定"; -translations["Trip"]="旅行"; - -translations["Country"]="国"; -translations["City"]="町"; -translations["Street"]="道"; -translations["Number"]="番号"; - -translations["RoutingPreferences"]="ルートの設定"; -translations["Ferries"]="フェリー"; -translations["TollRoads"]="通行料"; -translations["MotorWays"]="高速道路"; -translations["CostModel"]="COST MODEL"; -translations["Shortest"]="SHORTEST"; -translations["Fastest"]="FASTEST"; -translations["Language"]="言語"; -translations["Units"]="ユニット"; -translations["Showroom"]="ショールーム"; -translations["Autoguidance"]="自動ガイド"; -translations["Simulation"]="シミュレーション"; - -translations["RouteDistance"]="距離"; -translations["RouteTime"]="時間"; -translations["RouteArrival"]="到着"; -translations["Guidance"]="ガイダンス"; -translations["DisplayRoute"]="ルート"; -translations["StatusTitle"]="ステータス"; -translations["CalculatedRouteInProgress"]="進行中"; -translations["CalculatedRouteFailed"]="失敗した"; -translations["CalculatedRouteSuccess"]="成功した"; - -translations["FSAWarning"]="補給"; -translations["NoGuidance"]="No guidance"; -translations["NoManeuver"]="No maneuver"; - -//CameraSettings -translations["North"]="北"; -translations["South"]="南"; -translations["East"]="東"; -translations["West"]="西"; -translations["CameraTilt"]="上下"; -translations["CameraHeight"]="高さ"; -translations["CameraDistance"]="Dist"; -translations["CameraPerspective3d"]="3d"; -translations["CameraPerspective2d"]="2d"; -translations["Split"]="Sp"; -translations["Join"]="Jo"; -translations["Day"]="日"; -translations["Night"]="夜"; - -translations["AvgSpeed"]="時速"; -translations["AvgFuel"]="燃費"; -translations["Distance"]="距離"; -translations["FuelLevel"]="燃料"; -translations["TankDistance"]="走行距離"; -translations["PredictiveTankDistance"]="予報した\n走行距離"; -translations["Reset"]="リセット"; - -translations["Selected"]="選ばれた"; -translations["Restart"]="再スタート"; - -translations["On"]="ON"; -translations["Off"]="OFF"; -translations["Back"]="戻る"; -translations["Cancel"]="キャンセル"; -translations["Quit"]="終了"; - -translations["Element"]="場所"; diff --git a/src/hmi/translations/jpn_JPN_Hrkt.ts b/src/hmi/translations/jpn_JPN_Hrkt.ts new file mode 100644 index 0000000..e0edf91 --- /dev/null +++ b/src/hmi/translations/jpn_JPN_Hrkt.ts @@ -0,0 +1,301 @@ + + + + + NavigationAppBrowseMap + + + CalculatedRouteFailed + 失敗した + + + + CalculatedRouteInProgress + 進行中 + + + + Back + 戻る + + + + CameraTilt + 上下 + + + + CameraHeight + 高さ + + + + CameraDistance + + + + + Restart + 再スタート + + + + Cancel + キャンセル + + + + NavigationAppMain + + + Navigation + ナビ + + + + Poi + 地点 + + + + Mapview + 地図 + + + + Trip + 旅行 + + + + Configuration + 設定 + + + + Quit + 終了 + + + + NavigationAppMap + + + Back + 戻る + + + + NavigationAppPOI + + + Selected + 選ばれた + + + + Back + 戻る + + + + NavigationAppSearch + + + CalculatedRouteFailed + 失敗した + + + + CalculatedRouteInProgress + 進行中 + + + + CalculatedRouteSuccess + 成功した + + + + Element + 場所 + + + + Country + + + + + City + + + + + Street + + + + + Number + 番号 + + + + Guidance + ガイダンス + + + + DisplayRoute + ルート + + + + RouteDistance + 距離 + + + + RouteTime + 時間 + + + + RouteArrival + 到着 + + + + StatusTitle + ステータス + + + + On + ON + + + + Off + OFF + + + + Cancel + キャンセル + + + + Back + 戻る + + + + NavigationAppSettings + + + Language + 言語 + + + + Units + ユニット + + + + CostModel + + + + + RoutingPreferences + ルートの設定 + + + + Ferries + フェリー + + + + TollRoads + 通行料 + + + + MotorWays + 高速道路 + + + + Simulation + シミュレーション + + + + Showroom + ショールーム + + + + Autoguidance + 自動ガイド + + + + Mapview + 地図 + + + + Back + 戻る + + + + NavigationAppTripComputer + + + AvgSpeed + 時速 + + + + AvgFuel + 燃費 + + + + Distance + 距離 + + + + FuelLevel + 燃料 + + + + TankDistance + 走行距離 + + + + PredictiveTankDistance + 予報した +走行距離 + + + + Reset + リセット + + + + Back + 戻る + + + diff --git a/src/hmi/translations/kor_KOR_Hang.ts b/src/hmi/translations/kor_KOR_Hang.ts new file mode 100644 index 0000000..d52aad2 --- /dev/null +++ b/src/hmi/translations/kor_KOR_Hang.ts @@ -0,0 +1,300 @@ + + + + + NavigationAppBrowseMap + + + CalculatedRouteFailed + + + + + CalculatedRouteInProgress + + + + + Back + + + + + CameraTilt + + + + + CameraHeight + + + + + CameraDistance + + + + + Restart + + + + + Cancel + + + + + NavigationAppMain + + + Navigation + + + + + Poi + + + + + Mapview + + + + + Trip + + + + + Configuration + + + + + Quit + + + + + NavigationAppMap + + + Back + + + + + NavigationAppPOI + + + Selected + + + + + Back + + + + + NavigationAppSearch + + + CalculatedRouteFailed + + + + + CalculatedRouteInProgress + + + + + CalculatedRouteSuccess + + + + + Element + + + + + Country + + + + + City + + + + + Street + + + + + Number + + + + + Guidance + + + + + DisplayRoute + + + + + RouteDistance + + + + + RouteTime + + + + + RouteArrival + + + + + StatusTitle + + + + + On + + + + + Off + + + + + Cancel + + + + + Back + + + + + NavigationAppSettings + + + Language + + + + + Units + + + + + CostModel + + + + + RoutingPreferences + + + + + Ferries + + + + + TollRoads + + + + + MotorWays + + + + + Simulation + + + + + Showroom + + + + + Autoguidance + + + + + Mapview + + + + + Back + + + + + NavigationAppTripComputer + + + AvgSpeed + + + + + AvgFuel + + + + + Distance + + + + + FuelLevel + + + + + TankDistance + + + + + PredictiveTankDistance + + + + + Reset + + + + + Back + + + + diff --git a/src/hmi/translations/translating-qml.pro b/src/hmi/translations/translating-qml.pro new file mode 100644 index 0000000..9b828d8 --- /dev/null +++ b/src/hmi/translations/translating-qml.pro @@ -0,0 +1,12 @@ +# list of source files containing strings for translation +lupdate_only { # that way those files will be skipped by C++ compiler + SOURCES = ../qml/*.qml +} + +# list of language files that will store translated strings for every language we want +TRANSLATIONS = eng_USA_Latn.ts \ + jpn_JPN_Hrkt.ts \ + kor_KOR_Hang.ts \ + deu_DEU_Latn.ts \ + fra_FRA_Latn.ts + diff --git a/src/run b/src/run index 0db6f03..64498bc 100755 --- a/src/run +++ b/src/run @@ -186,6 +186,10 @@ do center="-0.13 51.51" config_file=fsa_london.conf ;; + seoul) + center="126.99 37.54" + config_file=fsa_seoul.conf + ;; [0-9-]*) center=$OPTARG ;; @@ -230,7 +234,7 @@ do echo "Usage:" echo "$0 [-a application][-c center][-ghlnoprvx]" echo "-a: Set application (default application.qml)" - echo "-c: Set center (supported values: paris,tokyo,longitude latitude). Default is geneve" + echo "-c: Set center (supported values: paris,tokyo,london,seoul,longitude latitude). Default is geneve" echo "-d: Run subprocesses within gdb (only with -x)" echo "-f: Load another database (for poi)" echo "-g: Run the vehicle gateway (only with -r) -g \" \"" diff --git a/src/update_third_party.sh b/src/update_third_party.sh index dacb8c4..a9c0f30 100755 --- a/src/update_third_party.sh +++ b/src/update_third_party.sh @@ -1,6 +1,6 @@ #!/bin/bash -navigation_version='1580c63e57e4de61a8f24d2bed2c44e3316a3641' +navigation_version='8cd0718826f1c9b3c58cbe4446c38a01897a4af3' positioning_version='9725fe1f553197042d6445997690d452a73490c0' navit_version='f5abdd317e10d56226300d001469595658a605e4' diff --git a/src/update_translation.sh b/src/update_translation.sh new file mode 100755 index 0000000..445db3c --- /dev/null +++ b/src/update_translation.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +lupdate hmi/translations/translating-qml.pro +for file in hmi/translations/*.ts +do + filename=${file##*/} + lrelease "$file" -qm build/hmi/hmi-launcher/"${filename%.*}.qm" +done -- cgit v1.2.1