diff --git a/common/loginpage/src/locale.js b/common/loginpage/src/locale.js index fba82a5bd..a5fdc0a0e 100644 --- a/common/loginpage/src/locale.js +++ b/common/loginpage/src/locale.js @@ -595,8 +595,12 @@ function loadLocale(lang) { +function mixLocale(lang) { utils.Lang = window['en']; - if ( lang && window[lang] ) - loadLocale(lang); + if ( lang ) { + lang = lang.replace('-', '_'); + + if ( window[lang] ) + loadLocale(lang); + } }(window.utils.inParams.lang); /* diff --git a/win-linux/defaults.pri b/win-linux/defaults.pri index 6745700ac..701429fa2 100644 --- a/win-linux/defaults.pri +++ b/win-linux/defaults.pri @@ -11,7 +11,8 @@ TRANSLATIONS = ./langs/en.ts \ ./langs/es.ts \ ./langs/cs.ts \ ./langs/sk.ts \ - ./langs/fr.ts + ./langs/fr.ts \ + ./langs/pt_BR.ts CORE_SRC_PATH = ../../core/DesktopEditor BASEEDITORS_PATH = ../../desktop-sdk/ChromiumBasedEditors diff --git a/win-linux/langs/pt_BR.qm b/win-linux/langs/pt_BR.qm new file mode 100644 index 000000000..26b5158de Binary files /dev/null and b/win-linux/langs/pt_BR.qm differ diff --git a/win-linux/package/windows/associate_page.iss b/win-linux/package/windows/associate_page.iss index 4e4d35d00..e9607554d 100644 --- a/win-linux/package/windows/associate_page.iss +++ b/win-linux/package/windows/associate_page.iss @@ -10,7 +10,7 @@ ChangesAssociations=true [CustomMessages] en.AssociateDescription =Associate office document file types with {#ASSC_APP_NAME} -pt.AssociateDescription =Associe tipos de arquivos de documento office com {#ASSC_APP_NAME} +pt-BR.AssociateDescription =Associe tipos de arquivos de documento office com {#ASSC_APP_NAME} cs.AssociateDescription =Přiřadit typy souborů kancelářských dokumentů {#ASSC_APP_NAME} sk.AssociateDescription =Priradiť typy súborov kancelárskych dokumentov {#ASSC_APP_NAME} ru.AssociateDescription =Ассоциировать типы файлов офисных документов с {#ASSC_APP_NAME} @@ -20,7 +20,7 @@ es.AssociateDescription =Asociar tipos de archivos de documentos de oficina con ;it.AssociateDescription =Associare i tipi di file video/audio ad {#ASSC_APP_NAME} en.AssociateCaption =File Associations -pt.AssociateCaption =Associações de arquivos +pt-BR.AssociateCaption =Associações de arquivos cs.AssociateCaption =Asociace souboru sk.AssociateCaption =Asociácia súboru ru.AssociateCaption =Ассоциации файлов @@ -30,7 +30,7 @@ es.AssociateCaption =Asociaciones de archivos ;it.AssociateCaption =Associazioni dei file en.AssociateDont =Do not associate -pt.AssociateDont =Não associar +pt-BR.AssociateDont =Não associar cs.AssociateDont =Neasociováno sk.AssociateDont =Neasociované ru.AssociateDont =Не ассоциировать @@ -40,7 +40,7 @@ es.AssociateDont =No asociar ;it.AssociateDont =Non associare en.AssociateAll =Associate all -pt.AssociateAll =Associar todos +pt-BR.AssociateAll =Associar todos cs.AssociateAll =Asociovat vše sk.AssociateAll =Asociovať všetko ru.AssociateAll =Ассоциировать все @@ -50,7 +50,7 @@ es.AssociateAll =Asociar todo ;it.AssociateAll =Associare tutto en.AssociateSel =Associate selected -pt.AssociateSel =Associar selecionados +pt-BR.AssociateSel =Associar selecionados cs.AssociateSel =Vybraná asociace sk.AssociateSel =Vybraná asociácia ru.AssociateSel =Ассоциировать выбранные @@ -60,7 +60,7 @@ es.AssociateSel =Asociar seleccionado ;it.AssociateSel =Associare selezione en.AssociateAudio =File types -pt.AssociateAudio =Tipos de arquivo +pt-BR.AssociateAudio =Tipos de arquivo cs.AssociateAudio =Typy souborů sk.AssociateAudio =Typy súborov ru.AssociateAudio =Типы файлов @@ -70,7 +70,7 @@ es.AssociateAudio =Tipos de archivos ;it.AssociateAudio =Tipi di file en.extMSWord =Microsoft Word Document -pt.extMSWord =Documento Microsoft Word +pt-BR.extMSWord =Documento Microsoft Word cs.extMSWord =Microsoft Word Dokument sk.extMSWord =Microsoft Word Dokument ru.extMSWord =Документ Microsoft Word @@ -79,7 +79,7 @@ fr.extMSWord =Document Microsoft Word es.extMSWord =Documento de Microsoft Word en.extMSExcel =Microsoft Excel Workbook -pt.extMSExcel =Planilha Microsoft Excel +pt-BR.extMSExcel =Planilha Microsoft Excel cs.extMSExcel =Microsoft Excel Sešit sk.extMSExcel =Microsoft Excel Zošit ru.extMSExcel =Книга Microsoft Excel @@ -88,7 +88,7 @@ fr.extMSExcel =Classeur Microsoft Excel es.extMSExcel =Libro de Microsoft Excel en.extMSPresentation =Microsoft PowerPoint Presentation -pt.extMSPresentation =Apresentação Microsoft PowerPoint +pt-BR.extMSPresentation =Apresentação Microsoft PowerPoint cs.extMSPresentation =Microsoft PowerPoint Prezentace sk.extMSPresentation =Microsoft PowerPoint Prezentácia ru.extMSPresentation =Презентация Microsoft PowerPoint @@ -97,7 +97,7 @@ fr.extMSPresentation =Présentation Microsoft PowerPoint es.extMSPresentation =Presentación de PowerPoint Microsoft en.extMSSlideshow =Microsoft PowerPoint Slideshow -pt.extMSSlideshow =Apresentações do PowerPoint da Microsoft +pt-BR.extMSSlideshow =Apresentações do PowerPoint da Microsoft cs.extMSSlideshow =Microsoft PowerPoint Slideshow sk.extMSSlideshow =Microsoft PowerPoint Slideshow ru.extMSSlideshow =Слайдшоу Microsoft PowerPoint @@ -106,7 +106,7 @@ fr.extMSSlideshow =Diaporama Microsoft PowerPoint es.extMSSlideshow =Presentación de Microsoft PowerPoint en.extODT =OpenDocument Text Document -pt.extODT =Documento de Texto do OpenDocument +pt-BR.extODT =Documento de Texto do OpenDocument cs.extODT =Dokumenty OpenDocument sk.extODT =Dokumenty OpenDocument ru.extODT =Текстовый документ OpenDocument @@ -115,7 +115,7 @@ fr.extODT =Document OpenDocument Texte es.extODT =Documento de texto de OpenDocument en.extODS =OpenDocument Spreadsheet -pt.extODS =Planilha do OpenDocument +pt-BR.extODS =Planilha do OpenDocument cs.extODS =Sešit OpenDocument sk.extODS =Zošit OpenDocument ru.extODS =Электронная таблица OpenDocument @@ -124,7 +124,7 @@ fr.extODS =Classeur OpenDocument es.extODS =Hoja de cálculo de OpenDocument en.extODP =OpenDocument Presentation -pt.extODP =Apresentação do OpenDocument +pt-BR.extODP =Apresentação do OpenDocument cs.extODP =Prezentace OpenDocument sk.extODP =Prezentácia OpenDocument ru.extODP =Презентация OpenDocument @@ -133,7 +133,7 @@ fr.extODP =Présentation OpenDocument es.extODP =Presentación de OpenDocument en.defprogAppDescription=Free desktop office suite for document editing and collaboration -pt.defprogAppDescription=Pacote office para desktop gratuito para edição e colaboração em documentos +pt-BR.defprogAppDescription=Pacote office para desktop gratuito para edição e colaboração em documentos ru.defprogAppDescription=Бесплатный десктопный офисный пакет для редактирования документов и совместной работы de.defprogAppDescription=Kostenlose Desktop-Office-Suite für Dokumentenbearbeitung und Zusammenarbeit fr.defprogAppDescription=Suite bureautique d'applications de bureau gratuite pour l'édition de documents et la collaboration diff --git a/win-linux/package/windows/common.iss b/win-linux/package/windows/common.iss index f64c00540..d96e35cac 100644 --- a/win-linux/package/windows/common.iss +++ b/win-linux/package/windows/common.iss @@ -56,13 +56,14 @@ Name: sk; MessagesFile: compiler:Languages\Slovak.isl; LicenseFile: ..\..\..\ Name: de; MessagesFile: compiler:Languages\German.isl; LicenseFile: ..\..\..\common\package\license\{#licfile}.rtf; Name: fr; MessagesFile: compiler:Languages\French.isl; LicenseFile: ..\..\..\common\package\license\{#licfile}.rtf; Name: es; MessagesFile: compiler:Languages\Spanish.isl; LicenseFile: ..\..\..\common\package\license\{#licfile}.rtf; +Name: pt-BR; MessagesFile: compiler:Languages\BrazilianPortuguese.isl; LicenseFile: ..\..\..\common\package\license\{#licfile}.rtf; ;Name: it; MessagesFile: compiler:Languages\Italian.isl; [CustomMessages] ;====================================================================================================== en.Launch =Launch %1 -pt.Launch =Lance o %1 +pt-BR.Launch =Lance o %1 cs.Launch =Spuštění %1 sk.Launch =Spustenie %1 ru.Launch =Запустить %1 @@ -72,7 +73,7 @@ es.Launch =Ejecutar %1 ;it.Launch =Eseguire %1 ;====================================================================================================== en.CreateDesktopIcon =Create %1 &desktop icon -pt.CreateDesktopIcon =Criar ícone de &desktop do %1 +pt-BR.CreateDesktopIcon =Criar ícone de &desktop do %1 cs.CreateDesktopIcon =Vytvořte %1 &ikonu pracovní plochy sk.CreateDesktopIcon =Vytvoriť %1 &ikonu na ploche ru.CreateDesktopIcon =Создать иконку %1 на &рабочем столе @@ -82,7 +83,7 @@ es.CreateDesktopIcon =Crear %1 &icono en el escritorio ;it.CreateDesktopIcon =Creare un collegamento %1 sul &desktop ;====================================================================================================== en.InstallAdditionalComponents =Installing additional system components. Please wait... -pt.InstallAdditionalComponents =Instalando componentes do sistema adicional. Aguarde... +pt-BR.InstallAdditionalComponents =Instalando componentes do sistema adicional. Aguarde... cs.InstallAdditionalComponents =Instalace dalších systémových komponent. Prosím, čekejte... sk.InstallAdditionalComponents =Inštalácia ďalších systémových súčastí. Prosím čakajte... ru.InstallAdditionalComponents =Установка дополнительных системных компонентов. Пожалуйста, подождите... @@ -92,7 +93,7 @@ es.InstallAdditionalComponents =Instalando componentes adicionales del sistema. ;it.InstallAdditionalComponents =Installazione dei componenti addizionali del sistema. Per favore, attendi... ;====================================================================================================== en.AdditionalTasks =Tasks: -pt.AdditionalTasks =Tarefas: +pt-BR.AdditionalTasks =Tarefas: cs.AdditionalTasks =Úkoly: sk.AdditionalTasks =Úlohy: ru.AdditionalTasks =Задачи: @@ -102,7 +103,7 @@ es.AdditionalTasks =Tareas: ;it.AdditionalTasks =Compiti: ;====================================================================================================== en.Uninstall =Uninstall -pt.Uninstall =Desinstalar +pt-BR.Uninstall =Desinstalar cs.Uninstall =Odinstalovat sk.Uninstall =Odinštalovať ru.Uninstall =Удаление @@ -112,7 +113,7 @@ es.Uninstall =Desinstalar ;it.Uninstall =Disinstalla ;====================================================================================================== en.WarningWrongArchitecture =You are trying to install the %1-bit application version over the %2-bit version installed. Please uninstall the previous version first or download the correct version for installation. -pt.WarningWrongArchitecture =Você está tentando instalar a versão do aplicativo de %1 bits por cima da versão de %2 bits instalada. Desinstale primeiro a versão anterior ou baixe a versão correta para instalação. +pt-BR.WarningWrongArchitecture =Você está tentando instalar a versão do aplicativo de %1 bits por cima da versão de %2 bits instalada. Desinstale primeiro a versão anterior ou baixe a versão correta para instalação. cs.WarningWrongArchitecture =Pokoušíte se nainstalovat %1-bit verzi aplikace na nainstalovanou %2-bitovou verzi. Nejprve odinstalujte předchozí verzi nebo stáhněte správnou verzi pro instalaci. sk.WarningWrongArchitecture =Pokúšate sa nainštalovať %1-bitovej verziu na nainštalovanú %2-bitovú verziu. Najskôr odinštalujte predchádzajúcu verziu alebo stiahnite správnu verziu pre inštaláciu. ru.WarningWrongArchitecture =Вы устанавливаете %1-битную версию приложения на уже установленную %2-битную. Пожалуйста, удалите предыдущую версию приложения или скачайте подходящую. @@ -123,7 +124,7 @@ es.WarningWrongArchitecture =Usted está tratando de instalar la versión de la ;====================================================================================================== en.UpdateAppRunning=Setup has detected that %1 is currently running.%n%nIt'll be closed automatically. Click OK to continue, or Cancel to exit. -pt.UpdateAppRunning=A configuração detectou que %1 está atualmente em execução.%n%nEla será fechada automaticamente. Clique em OK para continuar ou em Cancelar para sair. +pt-BR.UpdateAppRunning=A configuração detectou que %1 está atualmente em execução.%n%nEla será fechada automaticamente. Clique em OK para continuar ou em Cancelar para sair. cs.UpdateAppRunning=Setup has detected that %1 is currently running.%n%nIt'll be closed automatically. Click OK to continue, or Cancel to exit. sk.UpdateAppRunning=Setup has detected that %1 is currently running.%n%nIt'll be closed automatically. Click OK to continue, or Cancel to exit. ru.UpdateAppRunning=Обнаружен запущенный экземпляр %1.%n%nДля обновления он будет автоматически закрыт. Нажмите «OK», чтобы продолжить, или «Отмена», чтобы выйти. @@ -460,7 +461,7 @@ Source: ..\..\..\common\package\dictionaries\*; DestDir: {app}\dictionarie Source: ..\..\..\..\core\build\jsdesktop\web-apps-ant\*; DestDir: {app}\editors\web-apps; Flags: recursesubdirs; Source: ..\..\..\..\core\build\jsdesktop\sdkjs\*; DestDir: {app}\editors\sdkjs; Flags: recursesubdirs; Source: ..\..\..\..\core\build\jsdesktop\sdkjs-plugins\*; DestDir: {app}\editors\sdkjs-plugins; Flags: recursesubdirs; -Source: ..\..\..\..\core\build\empty\*.*; DestDir: {app}\converter\empty; Languages: en sk; +Source: ..\..\..\..\core\build\empty\*.*; DestDir: {app}\converter\empty; Languages: en sk pt-BR; Source: ..\..\..\..\core\build\empty\ru-RU\*.*; DestDir: {app}\converter\empty; Languages: ru; Source: ..\..\..\..\core\build\empty\fr-FR\*.*; DestDir: {app}\converter\empty; Languages: fr; Source: ..\..\..\..\core\build\empty\es-ES\*.*; DestDir: {app}\converter\empty; Languages: es; diff --git a/win-linux/resources.qrc b/win-linux/resources.qrc index 84c01867a..6762866bf 100644 --- a/win-linux/resources.qrc +++ b/win-linux/resources.qrc @@ -63,6 +63,7 @@ langs/de.qm langs/cs.qm langs/sk.qm + langs/pt_BR.qm res/styles/tabbar.qss diff --git a/win-linux/src/clangater.cpp b/win-linux/src/clangater.cpp index 01d58a005..e5d689e75 100644 --- a/win-linux/src/clangater.cpp +++ b/win-linux/src/clangater.cpp @@ -60,7 +60,6 @@ void CLangater::init() GET_REGISTRY_SYSTEM(reg_system) QString _lang, - _lang_path = ":/i18n/langs/", _cmd_args = g_cmdArgs.join(','); QRegularExpression _re(reCmdLang); @@ -96,6 +95,7 @@ void CLangater::init() !((_lang = reg_system.value("locale").value()).size()) && (_lang = "en").size(); #endif + QString _lang_path = ":/i18n/langs/"; if ( !QFile(_lang_path + _lang + ".qm").exists() ) { if ( QFile("./langs/" + _lang + ".qm").exists() ) { _lang_path = "./langs"; @@ -106,6 +106,10 @@ void CLangater::init() if ( QFile("./langs/" + _lang.left(2) + ".qm").exists() ) { _lang = _lang.left(2); _lang_path = "./langs"; + } else + // check if lang file has alias + if ( QFile(":/i18n/" + _lang + ".qm").exists() ) { + _lang_path = ":/i18n/"; } else _lang = APP_DEFAULT_LOCALE; }