From 441911079035b2cbbe137f168c8fb3baa0887dec Mon Sep 17 00:00:00 2001 From: Charles Wahome Date: Mon, 14 Sep 2020 11:29:34 +0300 Subject: [PATCH] Fix: add fallback texts to placeholder text (#690) * create function to provide fallback texts for placeholder texts * display object value * add fallback text translator to pivot items --- src/app/utils/translate-messages.ts | 22 ++++++++++++++ .../pivot-items/pivot-items.tsx | 29 +++++++++---------- 2 files changed, 36 insertions(+), 15 deletions(-) create mode 100644 src/app/utils/translate-messages.ts diff --git a/src/app/utils/translate-messages.ts b/src/app/utils/translate-messages.ts new file mode 100644 index 000000000..2c1013d9a --- /dev/null +++ b/src/app/utils/translate-messages.ts @@ -0,0 +1,22 @@ +import { geLocale } from '../../appLocale'; +import messages from '../../messages'; + +export function translateMessage(messageId: string): string { + const translatedMessage = getTranslation(messageId, geLocale); + if (translatedMessage) { + return translatedMessage; + } + return getTranslation(messageId, 'en-US') || messageId; +} + +function getTranslation(messageId: string, locale: string) { + const localeMessages: object = (messages as { [key: string]: object })[locale]; + if (localeMessages) { + const key: any = Object.keys(localeMessages).find(k => k === messageId); + const message = (localeMessages as { [key: string]: object })[key]; + if (message) { + return message.toString(); + } + } + return null; +} \ No newline at end of file diff --git a/src/app/views/query-response/pivot-items/pivot-items.tsx b/src/app/views/query-response/pivot-items/pivot-items.tsx index b2092ea6c..d5cd55c8c 100644 --- a/src/app/views/query-response/pivot-items/pivot-items.tsx +++ b/src/app/views/query-response/pivot-items/pivot-items.tsx @@ -1,12 +1,11 @@ import { getId, getTheme, Icon, IconButton, PivotItem, TooltipHost } from 'office-ui-fabric-react'; import React from 'react'; - import { ThemeContext } from '../../../../themes/theme-context'; import { ContentType, Mode } from '../../../../types/enums'; -import { IQuery } from '../../../../types/query-runner'; import { isImageResponse } from '../../../services/actions/query-action-creator-util'; import { lookupTemplate } from '../../../utils/adaptive-cards-lookup'; import { lookupToolkitUrl } from '../../../utils/graph-toolkit-lookup'; +import { translateMessage } from '../../../utils/translate-messages'; import { Image, Monaco } from '../../common'; import { genericCopy } from '../../common/copy'; import { formatXml } from '../../common/monaco/util/format-xml'; @@ -18,7 +17,7 @@ import { Snippets } from '../snippets'; export const getPivotItems = (properties: any) => { - const { headers, body, messages, mode, sampleQuery } = properties; + const { headers, body, mode, sampleQuery } = properties; const resultComponent = displayResultComponent(headers, body); const currentTheme = getTheme(); const dotStyle = queryResponseStyles(currentTheme).dot; @@ -60,8 +59,8 @@ export const getPivotItems = (properties: any) => { key='response-preview' ariaLabel='Response Preview' itemIcon='Reply' - headerText={messages['Response Preview']} - title={messages['Response Preview']} + headerText={translateMessage('Response Preview')} + title={translateMessage('Response Preview')} onRenderItemLink={renderItemLink} > {resultComponent} @@ -69,9 +68,9 @@ export const getPivotItems = (properties: any) => { {headers &&
{ @@ -97,8 +96,8 @@ export const getPivotItems = (properties: any) => { key='graph-toolkit' ariaLabel='Graph Toolkit' itemIcon='CustomizeToolbar' - headerText={messages['Graph toolkit']} - title={messages['Graph toolkit']} + headerText={translateMessage('Graph toolkit')} + title={translateMessage('Graph toolkit')} onRenderItemLink={renderItemLink} > @@ -107,8 +106,8 @@ export const getPivotItems = (properties: any) => { @@ -127,8 +126,8 @@ export const getPivotItems = (properties: any) => {