Skip to content

Commit 61946b3

Browse files
lilybarrettLily Barrett
andauthored
Lb/feature flag with new language picker (#3289)
* Update Laboratory reference to point at MBTA Laboratory fork * Hide Language switcher if Smartling translations are enabled via Laboratory flag WIP Play around with locale testing Some tweaks WIP barebones language picker for Smartling WIP ne Languages picker on feature flag * New, temporary picker for .po file translations via Smartling Linter fixes * Quick barebones language picker for footer Tweak for menu * Appease the linter --------- Co-authored-by: Lily Barrett <lbarrett1@administrators-MacBook-Pro.local>
1 parent 9877880 commit 61946b3

8 files changed

Lines changed: 77 additions & 14 deletions

File tree

config/config.exs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,7 @@ config :dotcom, :httpoison, HTTPoison
1818

1919
config :dotcom,
2020
default_locale_code: "en",
21-
locale_codes: ["en", "es"]
22-
23-
# locale_codes: ["en", "es", "ht", "pt", "vi", "zh]
21+
locale_codes: ["en", "es", "ht", "pt", "vi", "zh"]
2422

2523
config :dotcom, :location_service, LocationService
2624

lib/dotcom/locales.ex

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,22 @@ defmodule Dotcom.Locales do
77

88
@default_locale %Locale{code: "en", endonym: "English"}
99
@development_locale %Locale{code: "es", endonym: "Español"}
10+
11+
@development_additional_locales [
12+
@default_locale,
13+
@development_locale,
14+
%Locale{code: "ht", endonym: "Kreyòl Ayisyen (Haitian Creole)"},
15+
%Locale{code: "pt-BR", endonym: "Português (Portuguese)"},
16+
%Locale{code: "vi", endonym: "Tiếng Việt (Vietnamese)"},
17+
%Locale{code: "zh-CN", endonym: "中文简体 (Chinese Simplified)"},
18+
%Locale{code: "zh-TW", endonym: "中文繁體 (Chinese Traditional)"},
19+
%Locale{code: "fr-FR", endonym: "Français (French)"}
20+
]
21+
22+
def development_additional_locales do
23+
@development_additional_locales
24+
end
25+
1026
# @future_locales [
1127
# %Locale{code: "ht", endonym: "Kreyòl Ayisyen"},
1228
# %Locale{code: "pt", endonym: "Português"},

lib/dotcom_web/templates/layout/_footer.html.heex

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,12 +95,28 @@
9595
)}
9696
</nav>
9797
</div>
98-
<div class="container">
98+
<div class="container m-footer-links">
9999
<div class="lower-footer">
100-
<%= unless assigns[:exclude_google_translate] do %>
100+
<%= unless assigns[:exclude_google_translate] || Laboratory.enabled?(@conn, :use_smartling_translations) do %>
101101
{render("_google_translate_plugin.html", conn: @conn)}
102+
<div class="m-menu__language"></div>
103+
<% else %>
104+
<nav class="m-footer__group" aria-labelledby="footer-languages">
105+
<h2 id="footer-languages" class="m-footer__group-title">{~t(Languages)}</h2>
106+
107+
<ul>
108+
<%= for locale <- Dotcom.Locales.development_additional_locales() do %>
109+
<li>
110+
{link(Gettext.gettext(Dotcom.Gettext, locale.endonym),
111+
to: "?locale=#{locale.code}",
112+
class: "m-footer__link m-menu__language"
113+
)}
114+
</li>
115+
<% end %>
116+
</ul>
117+
</nav>
102118
<% end %>
103-
<div class="m-menu__language"></div>
119+
104120
<div class="social-icons-container">
105121
<a
106122
href="https://www.facebook.com/TheMBTA/"

lib/dotcom_web/templates/layout/_new_nav_desktop.html.heex

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<nav id="navmenu-desktop" class="m-menu--desktop" aria-label="Main">
2-
<%= for %{menu_section: name, link: href, sub_menus: sub_menus} <- DotcomWeb.LayoutView.nav_link_content() do %>
2+
<%= for %{menu_section: name, link: href, sub_menus: sub_menus} <- DotcomWeb.LayoutView.nav_link_content(@conn) do %>
33
<a
44
class="m-menu--desktop__toggle"
55
href={"#{ href }"}
@@ -57,5 +57,7 @@
5757
</div>
5858
</div>
5959
<% end %>
60-
<div class="m-menu__language"></div>
60+
<%= if !Laboratory.enabled?(@conn, :use_smartling_translations) do %>
61+
<div class="m-menu__language"></div>
62+
<% end %>
6163
</nav>

lib/dotcom_web/templates/layout/_new_nav_mobile.html.heex

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<nav class="m-menu--mobile" id="navmenu" aria-label={~t(Navigation Menu)}>
22
<div class="m-menu__content" data-nav="mobile-content">
33
<h1 class="m-menu__title h2">{~t(Main Menu)}</h1>
4-
<%= for {%{menu_section: menu_section, sub_menus: sub_menus}, index} <- Enum.with_index(nav_link_content()) do %>
4+
<%= for {%{menu_section: menu_section, sub_menus: sub_menus}, index} <- Enum.with_index(nav_link_content(@conn)) do %>
55
<nav aria-labelledby={"section-heading-#{menu_section}"} class="m-menu__section">
66
<h2 id={"section-heading-#{menu_section}"} class="m-menu__section-heading">
77
{menu_section}
@@ -33,6 +33,9 @@
3333
<% end %>
3434
</nav>
3535
<% end %>
36+
<%= if !Laboratory.enabled?(@conn, :use_smartling_translations) do %>
37+
<div class="m-menu__language m-menu__section"></div>
38+
<% end %>
3639
<div class="m-menu__language m-menu__section"></div>
3740
</div>
3841
<div class="m-menu__search" data-nav="search">

lib/dotcom_web/templates/layout/root.html.heex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
<!-- End Google Tag Manager (noscript) -->
9090
<% end %>
9191
<div class="body-wrapper" id="body-wrapper">
92-
<%= if !Application.get_env(:dotcom, :is_prod_env?) do %>
92+
<%= if !Application.get_env(:dotcom, :is_prod_env?) && !Laboratory.enabled?(@conn, :use_smartling_translations) do %>
9393
<% language =
9494
Dotcom.Gettext |> Gettext.get_locale() |> Dotcom.Locales.locale() |> Map.get(:endonym) %>
9595
<div class={["w-full py-2 text-center leading-sm", banner_color_classes()]}>
@@ -102,7 +102,6 @@
102102
>
103103
Toggle {if(language == "English", do: "Spanish", else: "English")}
104104
</a>
105-
106105
<a
107106
:for={%{href: href, name: name, color_classes: color_classes} <- env_links(@conn)}
108107
class={[

lib/dotcom_web/templates/page/menu.html.heex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<div
55
:for={
66
%{menu_section: menu_section, sub_menus: sub_menus} <-
7-
DotcomWeb.LayoutView.nav_link_content()
7+
DotcomWeb.LayoutView.nav_link_content(@conn)
88
}
99
class="page-section"
1010
>

lib/dotcom_web/views/layout_view.ex

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ defmodule DotcomWeb.LayoutView do
7777
"#{module_class} #{template_class}"
7878
end
7979

80-
def nav_link_content,
81-
do: [
80+
def nav_link_content(conn) do
81+
content = [
8282
%{
8383
menu_section: ~t(Transit),
8484
link: ~p"/menu#Transit-section",
@@ -230,6 +230,35 @@ defmodule DotcomWeb.LayoutView do
230230
}
231231
]
232232

233+
if Laboratory.enabled?(conn, :use_smartling_translations) do
234+
language_links =
235+
Enum.map(
236+
Dotcom.Locales.development_additional_locales(),
237+
&language_link_tuple/1
238+
)
239+
240+
content ++
241+
[
242+
%{
243+
menu_section: ~t(Languages),
244+
link: ~p"/menu#Languages-section",
245+
sub_menus: [
246+
%{
247+
sub_menu_section: ~t(Choose Your Language),
248+
links: language_links
249+
}
250+
]
251+
}
252+
]
253+
else
254+
content
255+
end
256+
end
257+
258+
def language_link_tuple(%Dotcom.Locale{code: code, endonym: endonym}) do
259+
{endonym, "?locale=#{code}", :internal_link}
260+
end
261+
233262
def render_nav_link({link_name, href = "/WorldCup", _}) do
234263
icon =
235264
content_tag(:img, "",

0 commit comments

Comments
 (0)