diff --git a/.tx/config b/.tx/config
index 349e8da6302..52720dc3ee5 100644
--- a/.tx/config
+++ b/.tx/config
@@ -1,6 +1,6 @@
[main]
host = https://www.transifex.com
-lang_map = zh_CN: zh-Hans, zh_TW: zh-Hant
+lang_map = pt_BR: pt-BR, pt_PT: pt-PT, zh_CN: zh-Hans, zh_TW: zh-Hant
type = STRINGS
minimum_perc = 80
diff --git a/platform/darwin/resources/pt-BR.lproj/Foundation.stringsdict b/platform/darwin/resources/pt-BR.lproj/Foundation.stringsdict
new file mode 100644
index 00000000000..e99e86d98d1
--- /dev/null
+++ b/platform/darwin/resources/pt-BR.lproj/Foundation.stringsdict
@@ -0,0 +1,54 @@
+
+
+
+
+ COORD_DEG_LONG
+
+ NSStringLocalizedFormatKey
+ %#@degrees@
+ degrees
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ d
+ one
+ %d grau
+ other
+ %d graus
+
+
+ COORD_MIN_LONG
+
+ NSStringLocalizedFormatKey
+ %#@minutes@
+ minutes
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ d
+ one
+ %d minuto
+ other
+ %d minutos
+
+
+ COORD_SEC_LONG
+
+ NSStringLocalizedFormatKey
+ %#@seconds@
+ seconds
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ d
+ one
+ %d segundo
+ other
+ %d segundos
+
+
+
+
diff --git a/platform/ios/CHANGELOG.md b/platform/ios/CHANGELOG.md
index ecf5522f318..c7d4e82e435 100644
--- a/platform/ios/CHANGELOG.md
+++ b/platform/ios/CHANGELOG.md
@@ -8,7 +8,7 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONT
* Added support for right-to-left text and Arabic ligatures in labels. ([#6984](https://github.com/mapbox/mapbox-gl-native/pull/6984), [#7123](https://github.com/mapbox/mapbox-gl-native/pull/7123))
* Improved the line wrapping behavior of point-placed labels, especially labels written in Chinese and Japanese. ([#6828](https://github.com/mapbox/mapbox-gl-native/pull/6828), [#7446](https://github.com/mapbox/mapbox-gl-native/pull/7446))
-* Added Chinese (Simplified and Traditional), French, German, Japanese, Swedish, and Vietnamese localizations. ([#7316](https://github.com/mapbox/mapbox-gl-native/pull/7316), [#7899](https://github.com/mapbox/mapbox-gl-native/pull/7899), [#7999](https://github.com/mapbox/mapbox-gl-native/pull/7999))
+* Added Chinese (Simplified and Traditional), French, German, Japanese, Portuguese (Brazilian), Swedish, and Vietnamese localizations. ([#7316](https://github.com/mapbox/mapbox-gl-native/pull/7316), [#7899](https://github.com/mapbox/mapbox-gl-native/pull/7899), [#7999](https://github.com/mapbox/mapbox-gl-native/pull/7999))
### Styles
diff --git a/platform/ios/framework/Settings.bundle/pt-BR.lproj/Root.strings b/platform/ios/framework/Settings.bundle/pt-BR.lproj/Root.strings
new file mode 100644
index 00000000000..5b81fb66eb0
--- /dev/null
+++ b/platform/ios/framework/Settings.bundle/pt-BR.lproj/Root.strings
@@ -0,0 +1,3 @@
+"TELEMETRY_GROUP_TITLE" = "Configurações de privacidade";
+"TELEMETRY_SWITCH_TITLE" = "Telemetria do Mapbox";
+"TELEMETRY_GROUP_FOOTER" = "Essa configuração permite que o aplicativo compartilhe dados de localização e uso anônimos com o Mapbox.";
diff --git a/platform/ios/ios.xcodeproj/project.pbxproj b/platform/ios/ios.xcodeproj/project.pbxproj
index 97b6c9cffdc..72cbc0c1a6c 100644
--- a/platform/ios/ios.xcodeproj/project.pbxproj
+++ b/platform/ios/ios.xcodeproj/project.pbxproj
@@ -779,6 +779,10 @@
DA8F25B91D51D2570010E6B5 /* MGLStyleLayerTests.mm.ejs */ = {isa = PBXFileReference; lastKnownFileType = text; name = MGLStyleLayerTests.mm.ejs; path = ../test/MGLStyleLayerTests.mm.ejs; sourceTree = ""; };
DA8F25BA1D51D2570010E6B5 /* MGLStyleLayer.h.ejs */ = {isa = PBXFileReference; lastKnownFileType = text; path = MGLStyleLayer.h.ejs; sourceTree = ""; };
DA8F25BB1D51D2570010E6B5 /* MGLStyleLayer.mm.ejs */ = {isa = PBXFileReference; lastKnownFileType = text; path = MGLStyleLayer.mm.ejs; sourceTree = ""; };
+ DA9C012B1E4C7AD900C4742A /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "pt-BR"; path = "pt-BR.lproj/Localizable.stringsdict"; sourceTree = ""; };
+ DA9C012C1E4C7ADB00C4742A /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "pt-BR"; path = "pt-BR.lproj/Foundation.stringsdict"; sourceTree = ""; };
+ DA9C012D1E4C7B1F00C4742A /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; };
+ DA9C012E1E4C7B6100C4742A /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Root.strings"; sourceTree = ""; };
DAA32CA11E4C44DB006F8D24 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = de; path = de.lproj/Foundation.stringsdict; sourceTree = ""; };
DAA32CA21E4C44DD006F8D24 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = de; path = de.lproj/Localizable.stringsdict; sourceTree = ""; };
DAA32CA31E4C44F1006F8D24 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Foundation.strings; sourceTree = ""; };
@@ -1851,6 +1855,7 @@
ja,
sv,
vi,
+ "pt-BR",
);
mainGroup = DA1DC9411CB6C1C2006E619F;
productRefGroup = DA1DC94B1CB6C1C2006E619F /* Products */;
@@ -2229,6 +2234,7 @@
DAA32CB11E4C4C8A006F8D24 /* fr */,
DAA32CB81E4C4EE6006F8D24 /* sv */,
DAA32CBE1E4C4F71006F8D24 /* vi */,
+ DA9C012E1E4C7B6100C4742A /* pt-BR */,
);
name = Root.strings;
sourceTree = "";
@@ -2243,6 +2249,7 @@
DAA32CAC1E4C4971006F8D24 /* fr */,
DAA32CB71E4C4ED8006F8D24 /* sv */,
DAA32CBC1E4C4F5D006F8D24 /* vi */,
+ DA9C012D1E4C7B1F00C4742A /* pt-BR */,
);
name = Localizable.strings;
sourceTree = "";
@@ -2266,6 +2273,7 @@
DA8933BE1CCD2CAD00E68420 /* en */,
DAA32CA11E4C44DB006F8D24 /* de */,
DAA32CAB1E4C491A006F8D24 /* fr */,
+ DA9C012C1E4C7ADB00C4742A /* pt-BR */,
);
name = Foundation.stringsdict;
sourceTree = "";
@@ -2284,6 +2292,7 @@
DAC49C621CD07D74009E1AA3 /* en */,
DAA32CA21E4C44DD006F8D24 /* de */,
DAA32CA91E4C4919006F8D24 /* fr */,
+ DA9C012B1E4C7AD900C4742A /* pt-BR */,
);
name = Localizable.stringsdict;
sourceTree = "";
diff --git a/platform/ios/resources/pt-BR.lproj/Localizable.strings b/platform/ios/resources/pt-BR.lproj/Localizable.strings
new file mode 100644
index 00000000000..56eaa7cf9ff
--- /dev/null
+++ b/platform/ios/resources/pt-BR.lproj/Localizable.strings
@@ -0,0 +1,75 @@
+/* Accessibility hint */
+"ANNOTATION_A11Y_HINT" = "Mostrar mais informações";
+
+/* No comment provided by engineer. */
+"API_CLIENT_400_DESC" = "The session data task failed. Original request was: %@";
+
+/* No comment provided by engineer. */
+"API_CLIENT_400_REASON" = "O código de status foi %ld";
+
+/* No comment provided by engineer. */
+"CANCEL" = "Cancelar";
+
+/* Accessibility hint */
+"COMPASS_A11Y_HINT" = "Rotaciona o mapa com face ao norte";
+
+/* Accessibility label */
+"COMPASS_A11Y_LABEL" = "Compasso";
+
+/* Compass abbreviation for north */
+"COMPASS_NORTH" = "N";
+
+/* Instructions in Interface Builder designable; {key}, {plist file name} */
+"DESIGNABLE" = "To display a Mapbox-hosted map here, set %1$@ to your access token in %2$@\n\nFor detailed instructions, see:";
+
+/* Setup documentation URL display string; keep as short as possible */
+"FIRST_STEPS_URL" = "mapbox.com/help/first-steps-ios-sdk";
+
+/* Accessibility hint */
+"INFO_A11Y_HINT" = "Mostra os créditos, um formulário de avaliação, e mais";
+
+/* Accessibility label */
+"INFO_A11Y_LABEL" = "Sobre este mapa";
+
+/* Accessibility label */
+"LOGO_A11Y_LABEL" = "Mapbox";
+
+/* Accessibility label */
+"MAP_A11Y_LABEL" = "Mapa";
+
+/* Map accessibility value */
+"MAP_A11Y_VALUE" = "Zoom %1$dx\n%2$ld anotações visíveis";
+
+/* Action sheet title */
+"SDK_NAME" = "Mapbox iOS SDK";
+
+/* Telemetry prompt message */
+"TELEMETRY_DISABLED_MSG" = "You can help make OpenStreetMap and Mapbox maps better by contributing anonymous usage data.";
+
+/* Telemetry prompt button */
+"TELEMETRY_DISABLED_OFF" = "Não Participar";
+
+/* Telemetry prompt button */
+"TELEMETRY_DISABLED_ON" = "Participar";
+
+/* Telemetry prompt message */
+"TELEMETRY_ENABLED_MSG" = "You are helping to make OpenStreetMap and Mapbox maps better by contributing anonymous usage data.";
+
+/* Telemetry prompt button */
+"TELEMETRY_ENABLED_OFF" = "Parar de Participar";
+
+/* Telemetry prompt button */
+"TELEMETRY_ENABLED_ON" = "Continuar Participando";
+
+/* Telemetry prompt button */
+"TELEMETRY_MORE" = "Me Diga Mais";
+
+/* Action in attribution sheet */
+"TELEMETRY_NAME" = "Telemetria do Mapbox";
+
+/* Telemetry prompt title */
+"TELEMETRY_TITLE" = "Melhorar os Mapas do Mapbox";
+
+/* Default user location annotation title */
+"USER_DOT_TITLE" = "Você Está Aqui";
+
diff --git a/platform/ios/resources/pt-BR.lproj/Localizable.stringsdict b/platform/ios/resources/pt-BR.lproj/Localizable.stringsdict
new file mode 100644
index 00000000000..2b4bf30cbaa
--- /dev/null
+++ b/platform/ios/resources/pt-BR.lproj/Localizable.stringsdict
@@ -0,0 +1,23 @@
+
+
+
+
+ MAP_A11Y_VALUE
+
+ NSStringLocalizedFormatKey
+ Zoom %dx
+%#@count@
+ count
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ ld
+ one
+ %d anotação visível
+ other
+ %d anotações visíveis
+
+
+
+
diff --git a/platform/macos/CHANGELOG.md b/platform/macos/CHANGELOG.md
index 020f0980cd9..7079f4eee11 100644
--- a/platform/macos/CHANGELOG.md
+++ b/platform/macos/CHANGELOG.md
@@ -6,7 +6,7 @@
* Added support for right-to-left text and Arabic ligatures in labels. ([#6984](https://github.com/mapbox/mapbox-gl-native/pull/6984), [#7123](https://github.com/mapbox/mapbox-gl-native/pull/7123))
* Improved the line wrapping behavior of point-placed labels, especially labels written in Chinese and Japanese. ([#6828](https://github.com/mapbox/mapbox-gl-native/pull/6828), [#7446](https://github.com/mapbox/mapbox-gl-native/pull/7446))
-* Added Chinese (Simplified and Traditional), French, German, Japanese, Swedish, and Vietnamese localizations. ([#7316](https://github.com/mapbox/mapbox-gl-native/pull/7316), [#7503](https://github.com/mapbox/mapbox-gl-native/pull/7503), [#7899](https://github.com/mapbox/mapbox-gl-native/pull/7899), [#7999](https://github.com/mapbox/mapbox-gl-native/pull/7999))
+* Added Chinese (Simplified and Traditional), French, German, Japanese, Portuguese (Brazilian), Swedish, and Vietnamese localizations. ([#7316](https://github.com/mapbox/mapbox-gl-native/pull/7316), [#7503](https://github.com/mapbox/mapbox-gl-native/pull/7503), [#7899](https://github.com/mapbox/mapbox-gl-native/pull/7899), [#7999](https://github.com/mapbox/mapbox-gl-native/pull/7999))
### Styles
diff --git a/platform/macos/macos.xcodeproj/project.pbxproj b/platform/macos/macos.xcodeproj/project.pbxproj
index d7212585131..b6d2f1c979c 100644
--- a/platform/macos/macos.xcodeproj/project.pbxproj
+++ b/platform/macos/macos.xcodeproj/project.pbxproj
@@ -394,6 +394,8 @@
DA8F25B51D51D2240010E6B5 /* MGLStyleLayerTests.mm.ejs */ = {isa = PBXFileReference; lastKnownFileType = text; name = MGLStyleLayerTests.mm.ejs; path = ../test/MGLStyleLayerTests.mm.ejs; sourceTree = ""; };
DA8F25B61D51D2240010E6B5 /* MGLStyleLayer.h.ejs */ = {isa = PBXFileReference; lastKnownFileType = text; path = MGLStyleLayer.h.ejs; sourceTree = ""; };
DA8F25B71D51D2240010E6B5 /* MGLStyleLayer.mm.ejs */ = {isa = PBXFileReference; lastKnownFileType = text; path = MGLStyleLayer.mm.ejs; sourceTree = ""; };
+ DA9C01301E4C7B9300C4742A /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "pt-BR"; path = "pt-BR.lproj/Foundation.stringsdict"; sourceTree = ""; };
+ DA9C01311E4C7B9F00C4742A /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; };
DAA1BB491E2D425C00ABB750 /* libmbgl-loop.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libmbgl-loop.a"; path = "../../build/macos/Debug/libmbgl-loop.a"; sourceTree = ""; };
DAA32CA61E4C4849006F8D24 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; };
DAA32CA71E4C486D006F8D24 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Foundation.strings; sourceTree = ""; };
@@ -1205,6 +1207,7 @@
ja,
sv,
vi,
+ "pt-BR",
);
mainGroup = DA839E891CC2E3400062CAFB;
productRefGroup = DA839E931CC2E3400062CAFB /* Products */;
@@ -1433,6 +1436,7 @@
DAA32CB31E4C4CC3006F8D24 /* ja */,
DAA32CBA1E4C4F10006F8D24 /* sv */,
DAA32CC11E4C4F93006F8D24 /* vi */,
+ DA9C01311E4C7B9F00C4742A /* pt-BR */,
);
name = Localizable.strings;
sourceTree = "";
@@ -1456,6 +1460,7 @@
DA8933B71CCD2C2D00E68420 /* en */,
DAA32CA81E4C48B9006F8D24 /* de */,
DAA32CAE1E4C4B03006F8D24 /* fr */,
+ DA9C01301E4C7B9300C4742A /* pt-BR */,
);
name = Foundation.stringsdict;
sourceTree = "";
diff --git a/platform/macos/sdk/pt-BR.lproj/Localizable.strings b/platform/macos/sdk/pt-BR.lproj/Localizable.strings
new file mode 100644
index 00000000000..c7490ec8d8b
--- /dev/null
+++ b/platform/macos/sdk/pt-BR.lproj/Localizable.strings
@@ -0,0 +1,15 @@
+/* Accessibility title */
+"MAP_A11Y_TITLE" = "Mapbox";
+
+/* Label of Zoom In button */
+"ZOOM_IN_LABEL" = "+";
+
+/* Tooltip of Zoom In button */
+"ZOOM_IN_TOOLTIP" = "Aumentar Zoom";
+
+/* Label of Zoom Out button; U+2212 MINUS SIGN */
+"ZOOM_OUT_LABEL" = "−";
+
+/* Tooltip of Zoom Out button */
+"ZOOM_OUT_TOOLTIP" = "Reduzir Zoom";
+