From 49c5791dec6da98d61344e90640144a9df5480af Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Fri, 3 Jan 2025 16:29:25 +0100 Subject: [PATCH] [Glitch] Localize language names Port f9582bcfc3676404bd0053f58702246ed2d98431 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/components/status_content.jsx | 2 +- app/javascript/flavours/glitch/initial_state.js | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/javascript/flavours/glitch/components/status_content.jsx b/app/javascript/flavours/glitch/components/status_content.jsx index 184fc65d39..af70ddcb47 100644 --- a/app/javascript/flavours/glitch/components/status_content.jsx +++ b/app/javascript/flavours/glitch/components/status_content.jsx @@ -94,7 +94,7 @@ class TranslateButton extends PureComponent { if (translation) { const language = preloadedLanguages.find(lang => lang[0] === translation.get('detected_source_language')); - const languageName = language ? language[2] : translation.get('detected_source_language'); + const languageName = language ? language[1] : translation.get('detected_source_language'); const provider = translation.get('provider'); return ( diff --git a/app/javascript/flavours/glitch/initial_state.js b/app/javascript/flavours/glitch/initial_state.js index 4777f31e29..7fb25697ae 100644 --- a/app/javascript/flavours/glitch/initial_state.js +++ b/app/javascript/flavours/glitch/initial_state.js @@ -134,13 +134,22 @@ export const trendsAsLanding = getMeta('trends_as_landing_page'); export const useBlurhash = getMeta('use_blurhash'); export const usePendingItems = getMeta('use_pending_items'); export const version = getMeta('version'); -export const languages = initialState?.languages; export const criticalUpdatesPending = initialState?.critical_updates_pending; export const statusPageUrl = getMeta('status_page_url'); export const sso_redirect = getMeta('sso_redirect'); - export const termsOfServiceEnabled = getMeta('terms_of_service_enabled'); +const displayNames = Intl.DisplayNames && new Intl.DisplayNames(getMeta('locale'), { + type: 'language', + fallback: 'none', + languageDisplay: 'standard', +}); + +export const languages = initialState?.languages?.map(lang => { + // zh-YUE is not a valid CLDR unicode_language_id + return [lang[0], displayNames?.of(lang[0].replace('zh-YUE', 'yue')) || lang[1], lang[2]]; +}); + // Glitch-soc-specific settings export const maxFeedHashtags = (initialState && initialState.max_feed_hashtags) || 4; export const favouriteModal = getMeta('favourite_modal');