DEV Community

Alexandru Bucur
Alexandru Bucur

Posted on

4

Quick hack for using google translate (or other services) in Nuxt/Vue.js

Hey guys, here's a quick way of making google translate play nice using setInterval.

export default {
    mounted: function()
    {
        this.$nextTick(() => {
            this.googleTranslateInit();
        });

    },

    methods: {

        googleTranslateInit: function() {

            let checkIfGoogleLoaded = setInterval(() => {

                if (google.translate.TranslateElement != null) {
                    clearInterval(checkIfGoogleLoaded);

                    this.googleTranslateElement('google_translate_element');
                }

            }, 100);

        },

        googleTranslateElement: function(id) {
            new google.translate.TranslateElement({pageLanguage: 'en', layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, id);
        }

    },
};
Enter fullscreen mode Exit fullscreen mode

It's not always easy to have a nice callback available for google translate, especially if you're nested into a component. I'm only using NUXT's external resources setup for directly loading the library, and ignored creating a plugin for this (although I think that's still valid, to create a script and use an onLoad function

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (3)

Collapse
 
lewiscowles1986 profile image
Lewis Cowles

Surely binding to onMutation event handler, then just initing on the root element is the way to go?

Collapse
 
coolgoose profile image
Alexandru Bucur

hey Lewis, sounds, interesting. How would you do it in that case ? I assume you're talking about MutationObservers right ?

Collapse
 
fezebr profile image
faezeh ebrahimy

hi
i use this code but i have this error in console:
index.vue?6ced:29 Uncaught ReferenceError: google is not defined

google in google.translate.TranslateElement

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs