Multilanguage app, what is going wrong?

So I'm trying to translate all of my buttons and it translates them all except the last one and says it cannot reach the last item in the list, if anyone could take a look and help it would be appreciated :slight_smile:

blocks

error I get is this:
**

**

I am unsure but you could try using a normal list rather than using a CSV list. Also, Do you reset your lists every time the user clicks the button? And try using For Each "item" In List instead of "button"
Try This (Blocks are Draggable To AI2) :
blocks (1)




blocks

1 Like

Still could not get this to work

Check the length of lists for translateList and translation. Are they different ?
Check the contents of lists translateList and translation, are they different ? (they will be in different languages!)

1 Like

Both are lengths of 20

Ah yes you are correct, how come the list is registering as 19 when it takes 20 values from my button list?

You need to check the contents of each list, what are you sending, what is returning....identify which list item is not coming back or is "joined" with another ?

The last item in the list is not translating

I have figured it out, it is merging the two last items in the list (the translation)

how can I fix this

I don't know, I can't make the translator merge the last two items.

What happens if you reduce your button list by one to 19?
Also try removing the space after the comma where you build the translated list

1 Like

Interestingly, I get back a slightly different translation for the last two items:

 "Paramètres", "le Début du Match"
1 Like

aha, I have made it do it by adding Login and Register

"de Connexion", "de Registre", "les Paramètres de Début de Jeu"]

will investigate further

1 Like

Thank you, was up late all night with this problem and still have no idea how to fix it haha

It looks like Yandex is interpreting words separated by commas as phrases and therefore combining them to one word/phrase, instead of respecting the commas (it is after all just a long text string, not a comma separated list).

This means you will have to change your approach, and do something similar to what @Mayank_Kumar suggested which is to use lists. What you do not want to be doing is making 20+ calls to Yandex every time a user wants to change the language, you will therefore need run the translate routine on first use, and to save the translations to a tinydb for reuse later.

I will work up an example blocks routine for how to do this.

1 Like

Try this:

translate.aia (3.7 KB)

BLOCKS

3 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.