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;
}