# Is there a way to add the Google Translate button to a site

**URL:** <https://community.glideapps.com/t/is-there-a-way-to-add-the-google-translate-button-to-a-site/57974>\
**Category:** Ask for Help\
**Created:** [February 15, 2023, 8:19am UTC](https://community.glideapps.com/t/is-there-a-way-to-add-the-google-translate-button-to-a-site/57974 "2023-02-15T08:19:10Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gary\_Willmott](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gary_willmott/32/837_2.png) [@Gary\_Willmott](https://community.glideapps.com/u/Gary_Willmott)\
**Post date:** [February 15, 2023, 8:19am UTC](https://community.glideapps.com/t/is-there-a-way-to-add-the-google-translate-button-to-a-site/57974/1 "2023-02-15T08:19:10Z")

</div>

I’m looking for a simple way todo simple language translations on website?  
I’m aware that we can’t embed code as [simply as this](https://www.geeksforgeeks.org/add-google-translate-button-webpage/)

This solution from @david looks great, but I can’t find out how to get an API Key?

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [February 15, 2023, 1:23pm UTC](https://community.glideapps.com/t/is-there-a-way-to-add-the-google-translate-button-to-a-site/57974/2 "2023-02-15T13:23:05Z")

</div>

> [@Gary\_Willmott](#):
>
> This solution from @david looks great, but I can’t find out how to get an API Key?

Can you link us to the solution?

---

<div class="post-metadata">

**Author:** ![Gary\_Willmott](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gary_willmott/32/837_2.png) [@Gary\_Willmott](https://community.glideapps.com/u/Gary_Willmott)\
**Post date:** [February 16, 2023, 6:27am UTC](https://community.glideapps.com/t/is-there-a-way-to-add-the-google-translate-button-to-a-site/57974/3 "2023-02-16T06:27:55Z")

</div>

Here is the link to his solution(s)

> [@Translate Column](https://community.glideapps.com/t/translate-column/30668/8):
>
> It is possible.

> [@Can someone guide me how to translate multi-language text?](https://community.glideapps.com/t/can-someone-guide-me-how-to-translate-multi-language-text/32177/2):
>

Just can’t find a way to get an API key?

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [February 16, 2023, 6:52am UTC](https://community.glideapps.com/t/is-there-a-way-to-add-the-google-translate-button-to-a-site/57974/4 "2023-02-16T06:52:30Z")

</div>

It’s a little bit fiddly. Essentially you need to create a Google Cloud Account, enable the translation API, and generate an API key.

But, a question: do you need dynamic translations or are static translations good enough?

The only real reason to pay for a translation service is if you need dynamic (on-the-fly) translations.  
Google give you 500k characters free per month, but if you have a large user base you can burn through that pretty quickly and it can start to get expensive.

So if most of your content is static text, then you’re probably better off doing manual translations and implementing a language switching mechanism. There are any number of ways you can go about that.

---

<div class="post-metadata">

**Author:** ![Gary\_Willmott](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gary_willmott/32/837_2.png) [@Gary\_Willmott](https://community.glideapps.com/u/Gary_Willmott)\
**Post date:** [February 16, 2023, 2:19pm UTC](https://community.glideapps.com/t/is-there-a-way-to-add-the-google-translate-button-to-a-site/57974/5 "2023-02-16T14:19:54Z")

</div>

I think Manual would be suitable for this project

What do you suggest as an approach?  
A button that toggles language, then an “If/Then/Else” column that applies to the column label, based on the language selection?

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [February 16, 2023, 2:21pm UTC](https://community.glideapps.com/t/is-there-a-way-to-add-the-google-translate-button-to-a-site/57974/6 "2023-02-16T14:21:50Z")

</div>

Will all users be signed in, or do you need to cater for visitors as well?

---

<div class="post-metadata">

**Author:** ![Gary\_Willmott](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gary_willmott/32/837_2.png) [@Gary\_Willmott](https://community.glideapps.com/u/Gary_Willmott)\
**Post date:** [February 16, 2023, 2:24pm UTC](https://community.glideapps.com/t/is-there-a-way-to-add-the-google-translate-button-to-a-site/57974/7 "2023-02-16T14:24:01Z")

</div>

There will be visitors too

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [February 16, 2023, 2:33pm UTC](https://community.glideapps.com/t/is-there-a-way-to-add-the-google-translate-button-to-a-site/57974/8 "2023-02-16T14:33:57Z")

</div>

Okay. The method I use only really works if all users are signed in, because the preferred language is saved in the User Profile.

Dealing with visitors is a little tricker, because you can’t do that. I could probably come up with something, but I’d need to experiment a bit.

I might defer to @kabookie here. She recently showcased a public App that had language support built in. Maybe she will be willing to share her method.

---

<div class="post-metadata">

**Author:** ![Gary\_Willmott](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gary_willmott/32/837_2.png) [@Gary\_Willmott](https://community.glideapps.com/u/Gary_Willmott)\
**Post date:** [February 16, 2023, 3:00pm UTC](https://community.glideapps.com/t/is-there-a-way-to-add-the-google-translate-button-to-a-site/57974/9 "2023-02-16T15:00:36Z")

</div>

Can you tell me more about the Signed-in method?

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [February 16, 2023, 3:20pm UTC](https://community.glideapps.com/t/is-there-a-way-to-add-the-google-translate-button-to-a-site/57974/10 "2023-02-16T15:20:44Z")

</div>

Okay, so this is what I do:

- I have a table called Strings  
– It has one row for each text snippet that’s used anywhere in my App  
– There is one column for the english version, and then a separate column for each supported language and the associated translation. Below is an example of what that looks like in an App where I am supporting 4 languages:

![CleanShot 2023-02-16 at 23.05.33](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/f/1/f16ca1d11953810b3a8fb014e668d2e7fe7b747b.png)

- In my user profiles table, I have a column that stores each users preferred language (en/ms/ta/zh)
- Then back in my Strings table I have a single if-then-else column that determines the appropriate string for the signed in user by referring to their preferred language setting:

 ![CleanShot 2023-02-16 at 23.11.19](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/a/2/a2ebc9fa067569766cbe25dd8580ae98ca15fa6e.png)

- In the example above, the signed in user has his preferred language set as `ms`, so the if-then-else column returns all the Malay translations.
- Now, back in my user profiles table I have a series of single value columns - one for each row in my Strings table. Each one returns N from start, where N is an incrementing number starting at zero. Here is what that looks like:

 ![CleanShot 2023-02-16 at 23.14.44](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/d/0/d04396f71afc642aaa0020a2442f27b0d2c30b9a.png)

- And finally, anywhere in the UI where I need some translated text, I just refer to the appropriate single value column in the user profile:

![CleanShot 2023-02-16 at 23.16.02](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/8/e/8efede81ab8eeec33ef1f5324128198d33da7982.png)

It’s probably not the simplest method, but it gets the job done for me.

---

<div class="post-metadata">

**Author:** ![Gary\_Willmott](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gary_willmott/32/837_2.png) [@Gary\_Willmott](https://community.glideapps.com/u/Gary_Willmott)\
**Post date:** [February 16, 2023, 3:34pm UTC](https://community.glideapps.com/t/is-there-a-way-to-add-the-google-translate-button-to-a-site/57974/11 "2023-02-16T15:34:46Z")

</div>

This is helpful, thanks a mil

---

<div class="post-metadata">

**Author:** ![slscustom.ru](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/slscustom.ru/32/77336_2.png) [@slscustom.ru](https://community.glideapps.com/u/slscustom.ru)\
**Post date:** [February 16, 2023, 4:35pm UTC](https://community.glideapps.com/t/is-there-a-way-to-add-the-google-translate-button-to-a-site/57974/12 "2023-02-16T16:35:48Z")

</div>

Hello! Darren’s solution is very fast performance solution but if you want to add new language you need to do it in editor.  
I’m used little bit different way:  
You can create Translation table with each language in independent row and one column for language name and one column for each word which you need to translate.

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/7/e/7e2f31bc80612d57a1081d80ae1cac06b41082c4.jpeg)

In the user row, you need column with preferred language name and the relation to Translation table from user row preferred Language name to Translation table language name.  
Also you need lookup column in the User table throw relation to translation table. And one lookup column(in the user row) for each word to be translated.

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/2/3/2349d1317d241ba07e17f76f4857a2a508c71b16.jpeg)

The goal of this way is the user can create new translation(new language) from app. But the performance will be less than Single value method(may be)

---

<div class="post-metadata">

**Author:** ![Ovi](https://avatars.discourse-cdn.com/v4/letter/o/3ab097/32.png) [@Ovi](https://community.glideapps.com/u/Ovi)\
**Post date:** [March 14, 2023, 8:11pm UTC](https://community.glideapps.com/t/is-there-a-way-to-add-the-google-translate-button-to-a-site/57974/13 "2023-03-14T20:11:36Z")

</div>

@Darren_Murphy how do we connect this with Glide Pages in order to see the language switcher on the page ?  
also, is there a way to keep the translations for the content that was already translated ?

---

<div class="post-metadata">

**Author:** ![Madx](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/madx/32/43308_2.png) [@Madx](https://community.glideapps.com/u/Madx)\
**Post date:** [October 6, 2026, 3:02pm UTC](https://community.glideapps.com/t/is-there-a-way-to-add-the-google-translate-button-to-a-site/57974/14 "2026-10-06T15:02:15Z")

</div>

For public Glide Pages, I’d use a Translation table with one row per language and relations/lookups for the interface text. A language choice can drive the relation for the current visitor, but don’t rely on User Profiles unless visitors sign in. For important content, keep the original text and its approved translation in separate records so updates don’t overwrite older versions. Test the page on a logged-out device too, since visitor state can behave differently.
